Libav

Last updated
Libav
Developer(s) Libav team
Initial releaseMarch 13, 2011 (2011-03-13) [1]
Final release 12.3 (February 12, 2018;5 years ago (2018-02-12)) [±]
Written in C [2]
Operating system Linux, BSD, macOS, Microsoft Windows, AmigaOS, MorphOS [3]
Platform IA-32, x86-64, PowerPC, ARM, DEC Alpha, SPARC, and MIPS [3]
Type Multimedia framework
License LGPL-2.1-or-later
GPL-2.0-or-later [4]
Website libav.org

Libav is an abandoned [5] free software project, forked from FFmpeg in 2011, that contains libraries and programs for handling multimedia data.

Contents

History

Fork from FFmpeg

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, 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.[ citation needed ]

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. [18] [19]

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). [20]

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. [21]

Codecs

Libav contains more than 100 codecs. [22] Many codecs that compress information have been claimed by patent holders. [23] 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.

The Libav logo uses a zigzag pattern that references how MPEG video codecs handle entropy encoding. [24] 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. [25] FFmpeg subsequently altered their logo into a 3D version. [26]

Google Summer of Code participation

Libav participated in the Google Summer of Code program in 2011 and 2012. [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. [27]

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 container muxing and demuxing library, and avconv, which is a multimedia manipulation tool similar to FFmpeg's ffmpeg or Gstreamer gst-launch-1.0 command.

The command line-programs:

avconv
A video and audio converter that can also grab from a live audio/video source.
avserver
A streaming server for both audio and video.
avplay
A very simple and portable media player using the Libav libraries and the SDL library.
avprobe
Gathers information from multimedia streams and prints it in human- and machine-readable fashion.

The libraries:

libavcodec
A library containing all the Libav audio/video encoders and decoders.
libavfilter
The substitute for vhook which allows the video/audio to be modified or examined between the decoder and the encoder.
libavformat
A library containing demuxers and muxers for audio and video container formats.
libavresample
A library containing audio resampling routines.
libavutil
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.

libswscale
A library containing video image scaling and colorspace/pixelformat conversion routines.

Contained codecs

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: [28]

Audio codecs

Libav includes decoders and encoders for the following formats: [33]

Supported file formats

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.):

Supported protocols

Support for several communications protocols is also contained in Libav. Here is a list:

See also

Related Research Articles

<span class="mw-page-title-main">Ogg</span> Open container format maintained by the Xiph.Org Foundation

Ogg is a free, open container format maintained by the Xiph.Org Foundation. The authors of the Ogg format state that it is unrestricted by software patents and is designed to provide for efficient streaming and manipulation of high-quality digital multimedia. Its name is derived from "ogging", jargon from the computer game Netrek.

<span class="mw-page-title-main">MPlayer</span> Free and open source media player

MPlayer is a free and open-source media player software application. It is available for Linux, OS X and Microsoft Windows. Versions for OS/2, Syllable, AmigaOS, MorphOS and AROS Research Operating System are also available. A port for DOS using DJGPP is also available. Versions for the Wii Homebrew Channel and Amazon Kindle have also been developed.

<span class="mw-page-title-main">FFmpeg</span> Multimedia framework

FFmpeg is a free and open-source software project consisting of a suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the command-line ffmpeg tool itself, designed for processing of video and audio files. It is widely used for format transcoding, basic editing, video scaling, video post-production effects and standards compliance.

Advanced Audio Coding (AAC) is an audio coding standard for lossy digital audio compression. It was designed to be the successor of the MP3 format and generally achieves higher sound quality than MP3 at the same bit rate.

Matroska is a project to create a container format that can hold an unlimited number of video, audio, picture, or subtitle tracks in one file. The Matroska Multimedia Container is similar in concept to other containers like AVI, MP4, or Advanced Systems Format (ASF), but is an open standard.

<span class="mw-page-title-main">GStreamer</span> Multimedia framework

GStreamer is a pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one format, processes them, and exports them in another. The formats and processes can be changed in a plug and play fashion.

ffdshow Open-source unmaintained codec library

ffdshow is an open-source unmaintained codec library that is mainly used for decoding of video in the MPEG-4 ASP and H.264/MPEG-4 AVC video formats, but it supports numerous other video and audio formats as well. It is free software released under GNU General Public License 2.0, runs on Windows, and is implemented as a Video for Windows (VFW) codec and a DirectShow filter.

LAV or Lav may refer to:

<span class="mw-page-title-main">Bink Video</span> Proprietary video format

Bink Video is a proprietary file format for video developed by Epic Games Tools, a part of Epic Games.

FAAC or Freeware Advanced Audio Coder is a software project which includes the AAC encoder FAAC and decoder FAAD2. It supports MPEG-2 AAC as well as MPEG-4 AAC. It supports several MPEG-4 Audio object types, file formats, multichannel and gapless encoding/decoding and MP4 metadata tags. The encoder and decoder is compatible with standard-compliant audio applications using one or more of these object types and facilities. It also supports Digital Radio Mondiale.

<span class="mw-page-title-main">Indeo</span> Audio and video formats by Intel

Indeo Video is a family of audio and video formats and codecs first released in 1992, and designed for real-time video playback on desktop CPUs. While its original version was related to Intel's DVI video stream format, a hardware-only codec for the compression of television-quality video onto compact discs, Indeo was distinguished by being one of the first codecs allowing full-speed video playback without using hardware acceleration. Also unlike Cinepak and TrueMotion S, the compression used the same Y'CbCr 4:2:0 colorspace as the ITU's H.261 and ISO's MPEG-1. Indeo use was free of charge to allow for broadest usage.

<span class="mw-page-title-main">Avidemux</span> Free and open-source transcoding and video editing software

Avidemux is a free and open-source software application for non-linear video editing and transcoding multimedia files. The developers intend it as "a simple tool for simple video processing tasks" and to allow users "to do elementary things in a very straightforward way". It is written in C++ and uses Qt for its graphical user interface, and FFmpeg for its multimedia functions. Starting with version 2.4, Avidemux also offers a command-line interface, and since version 2.6, the original GTK port has not been maintained and is now discontinued.

libavcodec is a free and open-source library of codecs for encoding and decoding video and audio data.

FFV1 is a lossless intra-frame video coding format. It can use either variable-length coding or arithmetic coding for entropy coding. The encoder and decoder are part of the free, open-source library libavcodec in the project FFmpeg since June 2003. FFV1 is also included in ffdshow and LAV Filters, which makes the video codec available to Microsoft Windows applications that support system-wide codecs over Video for Windows (VfW) or DirectShow. FFV1 is particularly popular for its performance regarding speed and size, compared to other lossless preservation codecs, such as M-JPEG2000. The European Broadcasting Union (EBU) lists FFV1 under the codec-family index "31" in their combined list of video codec references.

Asao is a proprietary single-channel (mono) codec and compression format optimized for low-bitrate transmission of audio, developed by Nellymoser Inc.

Video Acceleration API (VA-API) is an open source application programming interface that allows applications such as VLC media player or GStreamer to use hardware video acceleration capabilities, usually provided by the graphics processing unit (GPU). It is implemented by the free and open-source library libva, combined with a hardware-specific driver, usually provided together with the GPU driver.

<span class="mw-page-title-main">Opus (audio format)</span> Lossy audio coding format

Opus is a lossy audio coding format developed by the Xiph.Org Foundation and standardized by the Internet Engineering Task Force, designed to efficiently code speech and general audio in a single format, while remaining low-latency enough for real-time interactive communication and low-complexity enough for low-end embedded processors. Opus replaces both Vorbis and Speex for new applications, and several blind listening tests have ranked it higher-quality than any other standard audio format at any given bitrate until transparency is reached, including MP3, AAC, and HE-AAC.

Fraunhofer FDK AAC is an open-source library for encoding and decoding digital audio in the Advanced Audio Coding (AAC) format. Fraunhofer IIS, developed this library for Android 4.1. It supports several Audio Object Types including MPEG-2 and MPEG-4 AAC LC, HE-AAC, HE-AACv2 as well AAC-LD and AAC-ELD for real-time communication. The encoding library supports sample rates up to 96 kHz and up to eight channels.

References

  1. "Libav Home/News Page". libav.org. 2012-05-09. Archived from the original on 2022-06-22. Retrieved 2018-09-01.
  2. "Developer Documentation". libav.org. 2011-12-08. Retrieved 2012-05-17.
  3. 1 2 "FATE". libav.org. Archived from the original on 2018-09-02. Retrieved 2012-05-17.
  4. "FFmpeg Maintainer remarks on end of libav". Archived from the original on 2020-08-12. Retrieved 2020-12-20.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  5. "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)
  6. "Libav project site". libav.org. Archived from the original on 2022-06-22. Retrieved 2012-01-04.
  7. Ronald S. Bultje (2011-03-14). "Project renamed to Libav". gmane.org. Archived from the original on 2016-11-07. Retrieved 2012-01-04.
  8. "A group of FFmpeg developers just forked as Libav". phoronix.com. Phoronix. 2011-03-14. Retrieved 2012-01-04.
  9. "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)
  10. "FFMpeg turmoil". lwn.net. 2011-01-19. Retrieved 2012-01-04.
  11. "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)
  12. "Ubuntu Release Management: Transition: "Libav"". canonical.com. Archived from the original on 2012-01-07. Retrieved 2012-01-04.
  13. "libav and FFmpeg: switch over". debian.org. 2015-08-02. Retrieved 2015-08-02.
  14. "Debate/libav-provider/ffmpeg - Debian Wiki". debian.org. 2015-08-02. Retrieved 2015-08-02.
  15. "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)
  16. "Luca Barbato's (Libav developer) blog". 9 April 2019.
  17. "What are the differences and similarities between ffmpeg, libav, and avconv?". February 28, 2012. Retrieved 14 August 2015.
  18. "The FFmpeg/Libav situation". 30 June 2012. Archived from the original on 1 July 2012. Retrieved 14 August 2015.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  19. "Debian to switch back to ffmpeg". July 8, 2015. Archived from the original on 2015-07-26. Retrieved 14 August 2015.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  20. "mpv - README - FFmpeg vs. Libav". GitHub . April 20, 2018. Archived from the original on September 15, 2021. Retrieved June 5, 2018.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  21. "Supported File Formats and Codecs". libav.org. Retrieved 2014-05-04.
  22. "Libav License and Legal Considerations". libav.org. Retrieved 2014-05-04.
  23. FFmpeg logo Archived 2017-04-28 at the Wayback Machine - FFMpeg mailing list, 20 Feb 2007
  24. Legal Threat - ffmpeg.org 28 May 2011
  25. "FFmpeg License and Legal Considerations". ffmpeg.org. 2011-05-31. Archived from the original on 2012-01-03.
  26. 1 2 "FFmpeg/Libav Summer of Code". multimedia.cx. Archived from the original on 2011-11-17. Retrieved 2012-05-19.
  27. "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)
  28. 1 2 3 4 5 6 7 banan (17 April 2007). "Changelog". mplayerhq.hu. Retrieved 26 April 2007.[ permanent dead link ]
  29. "Add libx265 encoder". Github.com. Retrieved 19 January 2023.
  30. "OpenHEVC/Libav · GitHub". GitHub . Archived from the original on 25 August 2013.
  31. 1 2 ivo (7 May 2007). "FFmpeg development mailing list". mplayerhq.hu. Archived from the original on 11 August 2007. Retrieved 24 December 2010.
  32. "General Documentation". libav.org. Archived from the original on 2012-05-27. Retrieved 2012-05-19.
  33. "#210 (24bit flac encoding) - FFmpeg". Ffmpeg.org. Retrieved 2012-02-03.
  34. vitor (13 April 2008). "FFmpeg development mailing list". mplayerhq.hu. Retrieved 14 April 2008.[ permanent dead link ]
  35. vitor (30 March 2008). "FFmpeg development mailing list". mplayerhq.hu. Retrieved 30 March 2008.[ permanent dead link ]
  36. faust3 (21 March 2008). "FFmpeg development mailing list". mplayerhq.hu. Archived from the original on 25 April 2008. Retrieved 21 March 2008.{{cite web}}: CS1 maint: numeric names: authors list (link)
  37. benoit (14 April 2008). "FFmpeg development mailing list". mplayerhq.hu. Retrieved 14 April 2008.[ permanent dead link ]
  38. ramiro (18 March 2008). "FFmpeg development mailing list". mplayerhq.hu. Archived from the original on 17 August 2008. Retrieved 18 March 2008.
  39. banan (8 June 2008). "FFmpeg development mailing list". mplayerhq.hu. Archived from the original on 14 January 2009. Retrieved 8 June 2008.
  40. "Page showing Libav and FFmpeg snapshots VLC uses (people can compile VLC with either FFmpeg or Libav)". videolan.org. Retrieved 2018-04-06.