What are the differences and similarities between ffmpeg, libav, and avconv?
Asked Answered
A

1

260

When I run ffmpeg on Ubuntu, it shows:

$ ffmpeg 
ffmpeg version v0.8, Copyright (c) 2000-2011 the Libav developers
  built on Feb 28 2012 13:27:36 with gcc 4.6.1
This program is not developed anymore and is only provided for compatibility. Use avconv instead (see Changelog for the list of incompatible changes).

Or it shows (depending on the Ubuntu version):

$ ffmpeg
ffmpeg version 0.8.5-6:0.8.5-0ubuntu0.12.10.1, Copyright (c) 2000-2012 the Libav developers
  built on Jan 24 2013 14:49:20 with gcc 4.7.2
*** THIS PROGRAM IS DEPRECATED ***
This program is only provided for compatibility and will be removed in a future release. Please use avconv instead.

I found avconv on http://libav.org. I am just perplexed by them.

Acyclic answered 28/2, 2012 at 5:57 Comment(5)
This implies that you are giving wrong command line arguments.Udder
This program is not developed anymore and is only provided for compatibility. Use avconv instead Acyclic
What are you trying to do? ffmpeg is library mostly and main ffmpeg commandline is more for demonstration of its features (though it doesn't matter that you use if it helps). If you want to use only as a command, there are many applications that use ffmpeg to do what you want to do.Udder
There is a helpful explanation of the whole deal at blog.pkh.me/p/13-the-ffmpeg-libav-situation.htmlOlcott
I cannot tell you all the differences, but: avconv -ss 00:01:42 -t 00:00:32 -i sourcefilename -acodec copy targetfilename does not work, and ffmpeg -ss 00:01:42 -t 00:00:32 -i sourcefilename -acodec copy targetfilename does work as expected even though the documentations matchZygote
A
508

Libav is dead

Last commit was on 2019-08-21 and they shut down the git repo. Use FFmpeg.

Confusing messages

The messages mentioned in the question are rather misleading and understandably a source of confusion.

The fork was basically a non-amicable result of conflicting personalities and development styles within the FFmpeg community.

The real ffmpeg vs the fake one

For a while both Libav and FFmpeg separately developed their own version of ffmpeg.

Libav then renamed their bizarro ffmpeg to avconv to distance themselves from the FFmpeg project. During the transition period the "not developed anymore" message was displayed to tell users to start using avconv instead of their counterfeit version of ffmpeg. This confused users into thinking that FFmpeg (the project) is dead, which is not true. A bad choice of words, but I can't imagine Libav not expecting such a response by general users.

This message was removed upstream when the fake "ffmpeg" was finally removed from the Libav source.

In June 2012, the message was re-worded in Ubuntu for the package libav - 4:0.8.3-0ubuntu0.12.04.1. Unfortunately the new "deprecated" message has caused additional user confusion.

Starting with Ubuntu 15.04 "Vivid Vervet", FFmpeg's ffmpeg is returned to the repositories.

libav vs Libav

To further complicate matters, Libav chose a name that was historically used by FFmpeg to refer to its libraries (libavcodec, libavformat, etc). For example the libav-user mailing list, for questions and discussions about using the FFmpeg libraries, is unrelated to the Libav project.

How to tell the difference

If you are using avconv then you are using Libav. If you are using ffmpeg you could be using FFmpeg or Libav. Refer to the first line in the console output to tell the difference: the copyright notice will either mention FFmpeg or Libav.

Secondly, the version numbering schemes differ. Each of the FFmpeg or Libav libraries contains a version.h header which shows a version number. FFmpeg will end in three digits, such as 57.67.100, and Libav will end in one digit such as 57.67.0. You can also view the library version numbers by running ffmpeg or avconv and viewing the console output.

Also see

For an interesting blog article on the situation, as well as a discussion about the main technical differences between the projects, see The FFmpeg/Libav situation.

Asinine answered 28/2, 2012 at 7:5 Comment(7)
looks like it's a personal issueJerroldjerroll
If even after installing the real ffmpeg you are not able to get it working. You should remove default ffmpeg shipped with ubuntu as libav-tools, see : askubuntu.com/questions/162740/how-do-i-uninstall-ffmpeg.Cockneyfy
@Cockneyfy It depends on how you installed ffmpeg. See How to Compile FFmpeg on Ubuntu, Debian, or Mint or just use a Linux build of ffmpeg. Either of these methods should work if the repository package is also installed.Asinine
I did build ffmpeg but when running ffmpeg from terminal the one shipped default was running and doing apt-get remove ffmpeg did not remove it. So I left a message for those stuck with this issue, just to clear the confusion. It is shipped as libav-tools.Cockneyfy
It seems like some "trademark" system is needed in the open-source community to avoid these situations !!!Blade
An additional note: Libav refused to incorporate any changes from FFmpeg, but FFmpeg was perfectly happy to take Libav's fixes, so FFmpeg was usually the better software.Owlish
Also Libav seems to be dead now (last commit Aug 2019), while FFmpeg continues active developmentOwlish

© 2022 - 2024 — McMap. All rights reserved.