Libav

From Wikipedia, the free encyclopedia
Jump to: navigation, search
Libav
Libav Logo.svg
Avplay sintel snapshot.png
Screenshot of the movie Sintel being played using the avplay program from the Libav project.
Developer(s) Libav team
Initial release March 13, 2011 (2011-03-13)[1]
Stable release 10.2 (June 27, 2014; 61 days ago (2014-06-27)) [±]
Development status Active
Written in C[2]
Operating system Cross-platform[which?]
Platform Multi-platform[which?]
Type Multimedia framework
License GNU LGPL 2.1+
GNU GPL 2+
Website libav.org

Libav is a free software project that produces libraries and programs for handling multimedia data. The most notable parts of Libav are libavcodec, an audio/video codec library used by several other projects, libavformat, an audio/video container mux and demux library, and the avconv command line program for transcoding multimedia files. The Libav source code is published under the GNU Lesser General Public License 2.1+.[3]

Libav is developed for many operating systems, including GNU/Linux, Mac OS X, Microsoft Windows, AmigaOS and its heir MorphOS. Most computing platforms and microprocessor instruction set architectures are also supported, like x86 (IA-32 and x86-64), PPC (PowerPC), ARM, DEC Alpha, SPARC, and MIPS architecture.[4]

The Libav logo uses a zigzag pattern that shows how MPEG video codecs handle entropy encoding; it was the FFmpeg logo when the project was forked.

Legal aspects[edit]

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

List of project's components[edit]

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.
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/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 adler32, crc, md5, sha1, 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[edit]

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[edit]

Libav includes video decoders and/or encoders for the following formats:[7]

Audio codecs[edit]

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

Supported file formats[edit]

Additionally to the aforementioned codecs, libav also supports several file formats which are designed to contain audio and/or video data and subtitles, called containers:

Supported protocols[edit]

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

  • IETF standards: TCP, UDP, Gopher, HTTP, RTP, RTSP and SDP
  • Apple related protocols: HTTP Live Streaming
  • RealMedia related protocols: RealMedia RTSP/RDT
  • Adobe related protocols: RTMP, RTMPT (via librtmp), RTMPE (via librtmp), RTMPTE (via librtmp) and RTMPS (via librtmp)
  • Microsoft related protocols: MMS over TCP and MMS over HTTP

Google Summer of Code participation[edit]

As of 2012, Libav has been successful in being accepted into the Google Summer of Code program in both years since its inception.[20]

With participation in the Google Summer of Code, Libav has had many new features and improvements done for various components of Libav. These new features and improvements include implementing a WMVP/WVP2 decoder, hardware accelerated H.264 decoding on Android, and G.723.1 codec support.[20]

History[edit]

Fork from FFmpeg[edit]

The Libav project is a fork of the FFmpeg project which was originally started by Fabrice Bellard[3] (using the pseudonym "Gerard Lantau"). The Libav project was announced on March 13, 2011 by a group of FFmpeg developers.[21][22][23] The event seems related to an issue in project management.[24][25]

Software using Libav instead of FFmpeg[edit]

Since the time of the fork, the maintainer of FFmpeg packages for Debian[26] and Ubuntu,[27] being one of the group of developers who forked FFmpeg, have switched to this fork. Hence most software on these systems that earlier used FFmpeg now automatically use Libav.

With Gentoo, users are free to choose between FFmpeg and its fork libav by the way they install their "virtual" FFmpeg.[28] Arch Linux has a source port in AUR, which is its additional repository for packages provided by the community but not being maintained by the arch developers themselves.[29] MPlayer2, a fork of MPlayer, uses Libav exclusively. GStreamer supports both through different plugins.

See also[edit]

References[edit]

  1. ^ "Libav Home/News Page". libav.org. 2012-05-09. 
  2. ^ "Developer Documentation". libav.org. 2011-12-08. Retrieved 2012-05-17. 
  3. ^ "FATE". libav.org. Retrieved 2012-05-17. 
  4. ^ "Supported File Formats and Codecs". libav.org. Retrieved 2014-05-04. 
  5. ^ "Libav License and Legal Considerations". libav.org. Retrieved 2014-05-04. 
  6. ^ "General Documentation". libav.org. Retrieved 2012-05-19. 
  7. ^ a b c d e f g banan (17 April 2007). "Changelog". mplayerhq.hu. Retrieved 26 April 2007. 
  8. ^ http://git.libav.org/?p=libav.git&a=commit&h=50ea93158d4c480f64069e8bd1da388486dcf4ba
  9. ^ https://github.com/OpenHEVC/libav
  10. ^ a b ivo (7 May 2007). "FFmpeg development mailing list". mplayerhq.hu. Retrieved 24 December 2010. 
  11. ^ "General Documentation". libav.org. Retrieved 2012-05-19. 
  12. ^ "#210 (24bit flac encoding) - FFmpeg". Ffmpeg.org. Retrieved 2012-02-03. 
  13. ^ vitor (13 April 2008). "FFmpeg development mailing list". mplayerhq.hu. Retrieved 14 April 2008. 
  14. ^ vitor (30 March 2008). "FFmpeg development mailing list". mplayerhq.hu. Retrieved 30 March 2008. 
  15. ^ faust3 (21 March 2008). "FFmpeg development mailing list". mplayerhq.hu. Retrieved 21 March 2008. 
  16. ^ benoit (14 April 2008). "FFmpeg development mailing list". mplayerhq.hu. Retrieved 14 April 2008. 
  17. ^ ramiro (18 March 2008). "FFmpeg development mailing list". mplayerhq.hu. Retrieved 18 March 2008. 
  18. ^ banan (8 June 2008). "FFmpeg development mailing list". mplayerhq.hu. Retrieved 8 June 2008. 
  19. ^ a b "FFmpeg/Libav Summer of Code". multimedia.cx. Retrieved 2012-05-19. 
  20. ^ "Libav project site". libav.org. Retrieved 2012-01-04. 
  21. ^ Ronald S. Bultje (2011-03-14). "Project renamed to Libav". gmane.org. Retrieved 2012-01-04. 
  22. ^ "A group of FFmpeg developers just forked as Libav". phoronix.com. Phoronix. 2011-03-14. Retrieved 2012-01-04. 
  23. ^ "What happened to FFmpeg". multimedia.cx. 2011-03-30. Retrieved 2012-05-19. 
  24. ^ "FFMpeg turmoil". lwn.net. 2011-01-19. Retrieved 2012-01-04. 
  25. ^ "transition: Libav 0.7". debian.org. 2011-05-01. Retrieved 2012-01-04. 
  26. ^ "Ubuntu Release Management: Transition: "libav"". canonical.com. Retrieved 2012-01-04. 
  27. ^ http://packages.gentoo.org/package/virtual/ffmpeg
  28. ^ "libav in AUR". aur.archlinux.org. Retrieved 2013-03-30. 
  29. ^ "Page showing Libav snapshot VLC uses". videolan.org. Retrieved 2012-05-24. 

External links[edit]