Libavcodec

Last updated
libavcodec
Developer(s) FFmpeg team
Stable release 60.31.102 (included in FFmpeg 6.1.1) [1] (December 31, 2023;2 months ago (2023-12-31)) [±]
Preview release Git [±]
Repository
Written in C99
Operating system Available for Windows, OS X, Linux but may be compiled for any other OS [2]
Platform Available for x86 but may be compiled for any desktop computer or supercomputer
Type Multimedia Library
License GNU LGPL 2.1+ or GNU GPL 2+ or non-redistributable if compiled as such [3]
Website ffmpeg.org

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

Contents

libavcodec is an integral part of many open-source multimedia applications and frameworks. The popular MPV, xine and VLC media players use it as their main, built-in decoding engine that enables playback of many audio and video formats on all supported platforms. It is also used by the ffdshow tryouts decoder as its primary decoding library. libavcodec is also used in video editing and transcoding applications like Avidemux, MEncoder or Kdenlive for both decoding and encoding.

libavcodec contains decoder and sometimes encoder implementations of several proprietary formats, including ones for which no public specification has been released. As such, a significant reverse engineering effort is part of libavcodec development. Having such codecs available within the standard libavcodec framework gives a number of benefits over using the original codecs, most notably increased portability, and in some cases also better performance, since libavcodec contains a standard library of highly optimized implementations of common building blocks, such as DCT and color space conversion. However, while libavcodec does strive to achieve decoding that is bit-exact to their official format implementations, occasional bugs and missing features in such re-implementations can sometimes introduce playback compatibility problems for certain files.

Implemented video codecs

libavcodec includes video decoders and/or encoders for the following formats, this list is not exhaustive: [6]

Implemented audio codecs

libavcodec includes decoders and encoders for the following formats: [6]

Libavcodec contains more than 100 codecs, [8] most of which do not just store uncompressed data. Most codecs that compress information could be claimed by patent holders. [9] 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.

Furthermore, many of these codecs are only released under terms that forbid reverse engineering, even for purposes of interoperability. These terms of use are forbidden in certain countries. For example, some European Union nations have not implemented software patents and have laws expressly allowing reverse engineering for purposes of interoperability. [10]

Libraries that depend on libavcodec

Applications using libavcodec

Video players

Audio players

Multimedia players

Video editors

Audio editors

Video converters

Video libraries

Optical disc authoring

Graphics libraries

3D graphics editors

VoIP

Multimedia streaming server

Multimedia frameworks

Computer vision libraries

Browser

Media center

Screen capture

Device utilities

CCTV

Games

Others

Related Research Articles

Windows Media Audio (WMA) is a series of audio codecs and their corresponding audio coding formats developed by Microsoft. It is a proprietary technology that forms part of the Windows Media framework. WMA consists of four distinct codecs. The original WMA codec, known simply as WMA, was conceived as a competitor to the popular MP3 and RealAudio codecs. WMA Pro, a newer and more advanced codec, supports multichannel and high resolution audio. A lossless codec, WMA Lossless, compresses audio data without loss of audio fidelity. WMA Voice, targeted at voice content, applies compression using a range of low bit rates. Microsoft has also developed a digital container format called Advanced Systems Format to store audio encoded by WMA.

RealAudio, also spelled Real Audio, is a proprietary audio format developed by RealNetworks and first released in April 1995. It uses a variety of audio codecs, ranging from low-bitrate formats that can be used over dialup modems, to high-fidelity formats for music. It can be used as a streaming audio format, that is played at the same time as it is downloaded.

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

The Apple Lossless Audio Codec (ALAC), also known as Apple Lossless, or Apple Lossless Encoder (ALE), is an audio coding format, and its reference audio codec implementation, developed by Apple Inc. for lossless data compression of digital music. After initially keeping it proprietary from its inception in 2004, in late 2011 Apple made the codec available open source and royalty-free. Traditionally, Apple has referred to the codec as Apple Lossless, though more recently it has begun to use the abbreviated term ALAC when referring to the codec.

The following comparison of video players compares general and technical information for notable software media player programs.

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.

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.

Flash Video is a container file format used to deliver digital video content over the Internet using Adobe Flash Player version 6 and newer. Flash Video content may also be embedded within SWF files. There are two different Flash Video file formats: FLV and F4V. The audio and video data within FLV files are encoded in the same way as SWF files. The F4V file format is based on the ISO base media file format, starting with Flash Player 9 update 3. Both formats are supported in Adobe Flash Player and developed by Adobe Systems. FLV was originally developed by Macromedia. In the early 2000s, Flash Video was the de facto standard for web-based streaming video. Users include Hulu, VEVO, Yahoo! Video, metacafe, Reuters.com, and many other news providers.

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

The following tables compare general and technical information for a variety of audio coding formats.

<span class="mw-page-title-main">Perian</span>

Perian is a discontinued open-source QuickTime component that enabled Apple Inc.’s QuickTime to play several popular video formats not supported natively by QuickTime on macOS. It was a joint development of several earlier open source components based on the multiplatform FFmpeg project's libavcodec and libavformat, as well as liba52 and libmatroska.

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">WebM</span> Audiovisual media file format

WebM is an audiovisual media file format. It is primarily intended to offer a royalty-free alternative to use in the HTML5 video and the HTML5 audio elements. It has a sister project, WebP, for images. The development of the format is sponsored by Google, and the corresponding software is distributed under a BSD license.

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

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

OpenH264 is a free software library for real-time encoding and decoding video streams in the H.264/MPEG-4 AVC format. It is released under the terms of the Simplified BSD License.

References

  1. "Download". ffmpeg.org. FFmpeg. Archived from the original on 2013-09-27. Retrieved 2012-01-04.
  2. libavcodec can be configured to make it a proprietary and non-redistributable library since some optional external libraries are proprietary software and cannot be distributed under the terms of the GPL (e.g. Decklink).
  3. "Libav License and Legal Considerations". libav.org. Archived from the original on 2021-05-15. Retrieved 2013-05-07.
  4. libavcodec – AfterDawn: Glossary of technology terms & acronyms, AfterDawn, 2010-07-02, archived from the original on 2010-02-14, retrieved 2012-01-17
  5. 1 2 General Documentation, Ffmpeg.org, archived from the original on 2019-07-17, retrieved 2021-05-05
  6. "git.ffmpeg.org Git - ffmpeg.git/commit". git.ffmpeg.org. Retrieved 2024-01-03.
  7. "Codecs list". ffmpeg.org. Archived from the original on 2014-06-29. Retrieved 2012-01-01.
  8. "Legal information on FFmpeg's website". ffmpeg.org. Archived from the original on 2010-09-18. Retrieved 2012-01-04.
  9. Council Directive 91/250/EEC of 14 May 1991 on the legal protection of computer programs
  10. Wieckowski, Adam; Lehmann, Christian; Bross, Benjamin; Marpe, Detlev; Biatek, Thibaud; Raulet, Mickael; Jean Le Feuvre (2021). "A Complete End to End Open Source Toolchain for the Versatile Video Coding (VVC) Standard". Proceedings of the 29th ACM International Conference on Multimedia. pp. 3795–3798. arXiv: 2107.13385 . doi:10.1145/3474085.3478320. ISBN   9781450386517. S2CID   236469263.
  11. Gumster, Jason van (13 April 2009), Blender for Dummies, Wiley, p. 320, ISBN   9780470471586, archived from the original on 2022-03-14, retrieved 2012-01-17
  12. Bradski, Gary; Kaehler, Adrian (2008-09-24), Learning OpenCV: computer vision with the OpenCV library, "O'Reilly Media, Inc.", p. 9, ISBN   9780596554040, archived from the original on 2021-08-27, retrieved 2012-01-17
  13. whatwg MPEG-1 subset proposal for HTML5 video codec, Lists.whatwg.org, archived from the original on 2012-02-19, retrieved 2012-01-17
  14. "Firefox Source Code Libavcodec". Firefox source code repository. Retrieved 2024-01-08.
  15. Russo, Barbara; Damiani, Ernesto; Hissam, Scott; Lundell, Björn; Succi, Giancarlo (17 July 2008), Open Source Development, Communities and Quality: IFIP 20th World Computer, Springer, p. 167, ISBN   9780387096834, archived from the original on 2021-08-29, retrieved 2012-01-17
  16. pulseaudio.git/tree – src/pulsecore/ffmpeg/, Git.0pointer.de, archived from the original on 2012-07-13, retrieved 2012-01-17