The Libav project was a fork of the FFmpeg project.[6] It was announced on March 13, 2011 by a group of FFmpeg developers.[7][8][9] The event was related to an issue in project management and different goals: FFmpeg supporters wanted to keep development velocity in favour of more features, while Libav supporters and developers wanted to improve the state of the code and take the time to design better APIs.[10][11]
The maintainer of the FFmpeg packages for Debian[12] and Ubuntu,[13] being one of the group of developers who forked FFmpeg, switched the packages to this fork in 2011. Hence, most software on these systems that depended on FFmpeg automatically switched to Libav. On July 8, 2015, Debian announced it would return to FFmpeg[14] for various, technical reasons.[15] Several arguments justified this step. Firstly, FFmpeg had a better record of responding to vulnerabilities than Libav. Secondly, Mateusz "j00ru" Jurczyk, a security-oriented developer at Google, argued that all issues he found in FFmpeg were fixed in a timely manner, while Libav was still affected by various bugs.[16] Finally, FFmpeg supported a far wider variety of codecs and containers than Libav.
As of 2022,[update] Libav is an abandoned software project, with Libav developers either returning to FFmpeg, moving to other multimedia projects like the AV1 video codec,[17] or leaving the multimedia field entirely.
Confusion
At the beginning of this fork, Libav and FFmpeg separately developed their own versions of the ffmpeg command. Libav then renamed their ffmpeg to avconv to distance themselves from the FFmpeg project. During the transition period, when a Libav user typed ffmpeg, there was a message telling the user that the ffmpeg command was deprecated and avconv has to be used instead. This confused some users into thinking that FFmpeg (the project) was dead.[18]
This message was removed upstream when ffmpeg was finally removed from the Libav sources. In June 2012, on Ubuntu 12.04, the message was re-worded, but that new "deprecated" message caused even more user confusion. Starting with Ubuntu 15.04 "Vivid", FFmpeg's ffmpeg is back in the repositories again.
To further complicate matters, Libav chose a name that was 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.[19][20]
Software using Libav instead of FFmpeg
Debian followed Libav when it was announced, and announced it would return to FFmpeg for Debian Stretch (9.0).[21]
MPlayer2, a defunct fork of MPlayer, used Libav exclusively, but could be used with GStreamer with its public API. The MPV media player no longer supports Libav due to missing API changes.[22]
Legal aspects
Codecs
Libav contains more than 100 codecs.[23] Many codecs that compress information have been claimed by patent holders.[24] Such claims may be enforceable in countries like the United States which have implemented software patents, but are considered unenforceable or void in countries that have not implemented software patents.
Logo
The Libav logo uses a zigzag pattern that references how MPEG video codecs handle entropy encoding.[25] It was previously the logo of the FFmpeg project until Libav was forked from it. Following the fork, in 2011 one of the Libav developers Måns Rullgård claimed copyright over the logo and requested FFmpeg cease and desist from using it.[26] FFmpeg subsequently altered their logo into a 3D version.[27]
With participation in the Google Summer of Code, Libav has had many new features and improvements developed, including a WMVP/WVP2 decoder, hardware accelerated H.264 decoding on Android, and G.723.1 codec support.[28]
Technical details
Components
Libav primarily consists of libavcodec, which is an audio/video codec library used by several other projects, libavformat, which is an audio/video containermuxing and demuxing library, and avconv, which is a multimedia manipulation tool similar to FFmpeg's ffmpeg or Gstreamergst-launch-1.0 command.
A helper library containing routines common to different parts of Libav.
This library includes Adler-32, CRC, MD5, SHA-1, LZO decompressor, Base64 encoder/decoder, DES encrypter/decrypter, RC4 encrypter/decrypter and AES encrypter/decrypter.
Numerous free and open-source implementations of existing algorithms for the (usually lossy) compression and decompression of audio or video data, called codecs, are available. Please note that an algorithm can be subject to patent law in some jurisdictions. Here are lists of the ones contained in the libav library:
Video codecs
Libav includes video decoders and/or encoders for the following formats:[29]
Additionally to the aforementioned codecs, Libav also supports several file formats (file formats designed to contain audio and/or video data and subtitles, are called "containers", but that is just a special denomination.):
^"About Libav". libav.org. Archived from the original on 2014-12-05. Retrieved 2014-11-30. ... which convinced us to fork "properly" under the name Libav with its own website, mailing lists, IRC channel and repositories, thus completely separating from the old FFmpeg project{{cite web}}: CS1 maint: bot: original URL status unknown (link)
^"What happened to FFmpeg". multimedia.cx. 2011-03-30. Archived from the original on 2012-03-07. Retrieved 2012-05-19.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
^"transition: Libav 0.7". debian.org. 2011-05-01. Archived from the original on 2015-02-11. Retrieved 2012-01-04.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
^"FFmpeg and a thousand fixes". 10 January 2014. Archived from the original on 2021-09-15. Retrieved 2021-09-15.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
^"General Documentation". libav.org. Archived from the original on 2012-05-27. Retrieved 2012-05-19.{{cite web}}: CS1 maint: bot: original URL status unknown (link)