Why prefer libav(avconv) over ffmpeg? #6986

Closed
opened 2026-02-21 03:28:43 -05:00 by deekerman · 11 comments
Owner

Originally created by @mikhaelkh on GitHub (Feb 20, 2016).

ffmpeg is better in practically every way - explained here

Originally created by @mikhaelkh on GitHub (Feb 20, 2016). ffmpeg is better in practically every way - explained [here](https://wiki.debian.org/Debate/libav-provider/ffmpeg)
Author
Owner

@jaimeMF commented on GitHub (Feb 20, 2016):

Personally I would prefer ffmpeg.
But it seems that there could be some problems in Ubuntu, I don't know if the last versions have it though.

@jaimeMF commented on GitHub (Feb 20, 2016): Personally I would prefer ffmpeg. But it seems that there could be [some problems in Ubuntu](https://github.com/rg3/youtube-dl/pull/353#issuecomment-6081888), I don't know if the last versions have it though.
Author
Owner

@remitamine commented on GitHub (Feb 20, 2016):

I don't know if the last versions have it though.

it should be available at least in the last two version:
http://packages.ubuntu.com/search?keywords=ffmpeg

i also prefer ffmpeg.
avconv is not available in the official repositoy of archlinux.
mpv prefer ffmpeg: https://github.com/mpv-player/mpv/wiki/FFmpeg-versus-Libav
the same for mplayer: http://www.mplayerhq.hu/design7/news.html
and i think vlc also prefer ffmpeg(they host a mirror for ffmpeg): http://git.videolan.org/?p=ffmpeg.git;a=summary

@remitamine commented on GitHub (Feb 20, 2016): > I don't know if the last versions have it though. it should be available at least in the last two version: http://packages.ubuntu.com/search?keywords=ffmpeg i also prefer ffmpeg. avconv is not available in the official repositoy of archlinux. mpv prefer ffmpeg: https://github.com/mpv-player/mpv/wiki/FFmpeg-versus-Libav the same for mplayer: http://www.mplayerhq.hu/design7/news.html and i think vlc also prefer ffmpeg(they host a mirror for ffmpeg): http://git.videolan.org/?p=ffmpeg.git;a=summary
Author
Owner

@yan12125 commented on GitHub (Feb 20, 2016):

It's possible to detect whether ffmpeg is really ffmpeg or symlinked to avconv - either find "avconv" in ffmpeg -version or checking symlinks should work.

I prefer ffmpeg, too. Here are some issues relating ffmpeg/avconv:
Only avconv fails:

  • #7238 file: protocol is problematic
  • #7208 data: protocol not implemented
  • #6737 MP3 Conversion error
  • #6046 duplicated embedded image (need more checking)
  • #2437 av_interleaved_write_frame(): Invalid argument
  • #7374 Non-monotonous mpegts fragments not playable. Can't reproduce with avconv v12_dev0-2381-g8caadfc
  • #8135 avconv issue (?)
  • #8170 avconv not supporting AES-128
  • avconv fails for test_NBC_2 and ffmpeg succeed

Only ffmpeg fails:

avconv is not available in the official repositoy of archlinux.

@remitamine I use libav-git-no-libs from AUR. It coexists fine with official ffmpeg.

@yan12125 commented on GitHub (Feb 20, 2016): It's possible to detect whether ffmpeg is really ffmpeg or symlinked to avconv - either find "avconv" in `ffmpeg -version` or checking symlinks should work. I prefer ffmpeg, too. Here are some issues relating ffmpeg/avconv: Only avconv fails: - #7238 file: protocol is problematic - #7208 data: protocol not implemented - #6737 MP3 Conversion error - #6046 duplicated embedded image (need more checking) - #2437 av_interleaved_write_frame(): Invalid argument - #7374 Non-monotonous mpegts fragments not playable. Can't reproduce with avconv v12_dev0-2381-g8caadfc - #8135 avconv issue (?) - #8170 avconv not supporting AES-128 - avconv fails for test_NBC_2 and ffmpeg succeed Only ffmpeg fails: - #8350 avconv can handle streams without aac_adtstoasc - https://github.com/rg3/youtube-dl/pull/8408#issuecomment-179163549 ffmpeg can't handle files from kaltura.com properly > avconv is not available in the official repositoy of archlinux. @remitamine I use libav-git-no-libs from AUR. It coexists fine with official ffmpeg.
Author
Owner

@remitamine commented on GitHub (Feb 20, 2016):

I use libav-git-no-libs from AUR. It coexists fine with official ffmpeg.

compiling from the source using pkgs from AUR take time(it takes hours for me to compile it) and sometimes it doesn't work unless you use some tweaks(i have to extend the tmp file system to use the local disk to be able to compile and it slows down the process) while using the pkgs from official repositoy is simple(no need for compilation).

@remitamine commented on GitHub (Feb 20, 2016): > I use libav-git-no-libs from AUR. It coexists fine with official ffmpeg. compiling from the source using pkgs from AUR take time(it takes hours for me to compile it) and sometimes it doesn't work unless you use some tweaks(i have to extend the tmp file system to use the local disk to be able to compile and it slows down the process) while using the pkgs from official repositoy is simple(no need for compilation).
Author
Owner

@Reino17 commented on GitHub (Feb 21, 2016):

#8408 (comment) ffmpeg can't handle files from kaltura.com properly

Related: #5248 (FFMpeg can't open protected HLS-streams)

@Reino17 commented on GitHub (Feb 21, 2016): > [#8408 (comment)](https://github.com/rg3/youtube-dl/pull/8408#issuecomment-179163549) ffmpeg can't handle files from kaltura.com properly Related: [#5248 (FFMpeg can't open protected HLS-streams)](https://trac.ffmpeg.org/ticket/5248)
Author
Owner

@yan12125 commented on GitHub (Feb 21, 2016):

https://trac.ffmpeg.org/ticket/5248 is about HLS streams while #8408 handles DASH streams. I have opened https://trac.ffmpeg.org/ticket/5216 for it.

@yan12125 commented on GitHub (Feb 21, 2016): https://trac.ffmpeg.org/ticket/5248 is about HLS streams while #8408 handles DASH streams. I have opened https://trac.ffmpeg.org/ticket/5216 for it.
Author
Owner

@siddht4 commented on GitHub (Aug 6, 2017):

This is a tricky question which one to prefer avconv or ffmpeg.

The thing is avconv/libav happens to be a fork of ffmpeg https://en.wikipedia.org/wiki/Libav. You can even see logo similarity for both of them. This was due to project management, in which developers disagreed with the leadership of FFmpeg.

Now the tricky part is both of them independently developed their own version of ffmpeg which lead to two versions of ffmpeg,one being the official,the other by libav or fork.

libav eventually renamed their version of ffmpeg to avconv,so an error message was shown when an libav user typed ffmpeg. Think it similar to why gnome 2 fork (deprecated) was renamed to mate to avoid conflicts with packages and then eventually maintained.

Now days libav also happens to be a stable version of ffmpeg,similar to ubuntu project being considerd as the stable version of debian(ubuntu base branch is debian stable). I am also stating this because most of the libav developers were also the devs in ubuntu,debian. And then the ubuntu devs would backport it to debian(like a feedback).

Now there is news of the possible merge of both the projects,which means that both the packages are now relatively same i.e possibly same sets of developers on both the projects. (similar to how mariadb happens to a fork of mysql, and during same time percona db development, now new features in mariadb will soon arrive in perconadb and vice versa ,and both the database keeps comtabilty with mysql)

So in summary you can use either one as its relatively same.

@siddht4 commented on GitHub (Aug 6, 2017): This is a tricky question which one to prefer avconv or ffmpeg. The thing is avconv/libav happens to be a fork of ffmpeg https://en.wikipedia.org/wiki/Libav. You can even see logo similarity for both of them. This was due to project management, in which developers disagreed with the leadership of FFmpeg. Now the tricky part is both of them independently developed their own version of ffmpeg which lead to two versions of ffmpeg,one being the official,the other by libav or fork. libav eventually renamed their version of ffmpeg to avconv,so an error message was shown when an libav user typed ffmpeg. Think it similar to why gnome 2 fork (deprecated) was renamed to mate to avoid conflicts with packages and then eventually maintained. Now days libav also happens to be a stable version of ffmpeg,similar to ubuntu project being considerd as the stable version of debian(ubuntu base branch is debian stable). I am also stating this because most of the libav developers were also the devs in ubuntu,debian. And then the ubuntu devs would backport it to debian(like a feedback). Now there is news of the possible merge of both the projects,which means that both the packages are now relatively same i.e possibly same sets of developers on both the projects. (similar to how mariadb happens to a fork of mysql, and during same time percona db development, now new features in mariadb will soon arrive in perconadb and vice versa ,and both the database keeps comtabilty with mysql) So in summary you can use either one as its relatively same.
Author
Owner

@siddht4 commented on GitHub (Aug 6, 2017):

@mikhaelkh you are probably wondering why a story ,

I will give you my example:-
I recently installed Winff (a gui for avconv)(see the name meant actually means ffmpeg but it uses avconv instead).I have ffmpeg installed even before I installed Winff,so I expected it would also install avconv as a dependency,but its simply installed its docs alongside and the installation was complete. Found out it was using ffmpeg as its parameter and was working fine. No issue whatsover.

@siddht4 commented on GitHub (Aug 6, 2017): @mikhaelkh you are probably wondering why a story , I will give you my example:- I recently installed Winff (a gui for avconv)(see the name meant actually means ffmpeg but it uses avconv instead).I have ffmpeg installed even before I installed Winff,so I expected it would also install avconv as a dependency,but its simply installed its docs alongside and the installation was complete. Found out it was using ffmpeg as its parameter and was working fine. No issue whatsover.
Author
Owner

@Saparonia commented on GitHub (Aug 27, 2017):

If you are debating over ffmpeg because you need and can't find the avconv update to use youtube-dl - I can make a suggestion that I used when I moved onto a new hard drive and found I couldn't download anything with the youtube-dl version in the repositories.

searching my old hard drive I found that I had previously used
youtube-dl_2014.12.17.2-1~ webupd8 ~precise0_all

Even though My operating system is elementary Freya, and based on trusty,
I installed from that , the PPA is on webupd8.org and now everything is good

@Saparonia commented on GitHub (Aug 27, 2017): If you are debating over ffmpeg because you need and can't find the avconv update to use youtube-dl - I can make a suggestion that I used when I moved onto a new hard drive and found I couldn't download anything with the youtube-dl version in the repositories. searching my old hard drive I found that I had previously used **youtube-dl_2014.12.17.2-1~ webupd8 ~precise0_all** Even though My operating system is elementary Freya, **and based on trusty**, I installed from that , the PPA is on webupd8.org and now everything is good
Author
Owner

@vxbinaca commented on GitHub (Sep 5, 2017):

@Saparonia perhaps use pip instead?

@vxbinaca commented on GitHub (Sep 5, 2017): @Saparonia perhaps use pip instead?
Author
Owner

@rautamiekka commented on GitHub (Sep 5, 2017):

Ubuntu-based can use https://launchpad.net/~nilarimogard/+archive/ubuntu/webupd8 to update youtube-dl (probly wanting to use pinning to prevent installing other packages or other versions) since it keeps a fairly tight eye on the official website or GitHub, or run a cron as root which updates ytdl from the official site with Wget into a system folder.

Before I included ytdl's native update command in my scripts I used Wget before running ytdl, which works fine on Window$ where I always use the public downloads for ytdl's location.

@rautamiekka commented on GitHub (Sep 5, 2017): Ubuntu-based can use https://launchpad.net/~nilarimogard/+archive/ubuntu/webupd8 to update youtube-dl (probly wanting to use [pinning](https://help.ubuntu.com/community/PinningHowto) to prevent installing other packages or other versions) since it keeps a fairly tight eye on the official website or GitHub, or run a cron as `root` which updates ytdl from the official site with Wget into a system folder. Before I included ytdl's native update command in my scripts I used Wget before running ytdl, which works fine on Window$ where I always use the public downloads for ytdl's location.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/youtube-dl-ytdl-org#6986
No description provided.