Developer(s) | Libav team |
---|---|
Initial release | March 13, 2011 [1] |
Final release | 12.3 (February 12, 2018 ) [±] |
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 |
Libav is an abandoned [5] free software project, forked from FFmpeg in 2011, that contains libraries and programs for handling multimedia data.
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.
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]
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]
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.
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]
Libav participated in the Google Summer of Code program in 2011 and 2012. [28]
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]
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:
The libraries:
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:
Libav includes video decoders and/or encoders for the following formats: [29]
|
|
Libav includes decoders and encoders for the following formats: [34]
|
|
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.):
Support for several communications protocols is also contained in Libav. Here is a list:
H.263 is a video compression method originally designed as a low-bit-rate compressed format for videotelephony. It was standardized by the ITU-T Video Coding Experts Group (VCEG) in a project ending in 1995/1996. It is a member of the H.26x family of video coding standards in the domain of the ITU-T.
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.
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.
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 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.
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 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.
Bink Video is a proprietary file format for video developed by Epic Games Tools, a part of Epic Games.
FAAC 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.
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.
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. FFV1 is particularly popular for its performance regarding speed and size, compared to other lossless preservation codecs, such as M-JPEG2000.
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.
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.
... 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){{cite web}}
: CS1 maint: bot: original URL status unknown (link){{cite web}}
: CS1 maint: bot: original URL status unknown (link){{cite web}}
: CS1 maint: bot: original URL status unknown (link){{cite web}}
: CS1 maint: bot: original URL status unknown (link){{cite web}}
: CS1 maint: bot: original URL status unknown (link){{cite web}}
: CS1 maint: bot: original URL status unknown (link){{cite web}}
: CS1 maint: numeric names: authors list (link)