libavcodec is a
free and open-source
Free and open-source software (FOSS) is software available under a Software license, license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term ...
library of
codecs
A codec is a computer hardware or software component that encodes or decodes a data stream or signal. ''Codec'' is a portmanteau of coder/decoder.
In electronic communications, an endec is a device that acts as both an encoder and a decoder o ...
for encoding and decoding video and audio data.
libavcodec is an integral part of many open-source multimedia applications and frameworks. The popular
MPV,
xine
xine is a multimedia playback engine for Unix-like operating systems released under the GNU General Public License. xine is built around a shared library (xine-lib) that supports different frontend player applications. xine uses libraries fr ...
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
Reverse engineering (also known as backwards engineering or back engineering) is a process or method through which one attempts to understand through deductive reasoning how a previously made device, process, system, or piece of software accompl ...
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
A color space is a specific organization of colors. In combination with color profiling supported by various physical devices, it supports reproducible representations of colorwhether such representation entails an analog or a digital represe ...
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:
Implemented audio codecs
libavcodec includes decoders and encoders for the following formats:
Legal aspects
Libavcodec contains more than 100 codecs, most of which do not just store uncompressed data. Most codecs that compress information could be claimed by patent holders. Such claims may be enforceable in countries like the United States which have implemented
software patent
A software patent is a patent on a piece of software, such as a computer program, library, user interface, or algorithm. The validity of these patents can be difficult to evaluate, as software is often at once a product of engineering, something ...
s, 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
The European Union (EU) is a supranational union, supranational political union, political and economic union of Member state of the European Union, member states that are Geography of the European Union, located primarily in Europe. The u ...
nations have not implemented software patents and have laws expressly allowing
reverse engineering
Reverse engineering (also known as backwards engineering or back engineering) is a process or method through which one attempts to understand through deductive reasoning how a previously made device, process, system, or piece of software accompl ...
for purposes of interoperability.
Libraries that depend on libavcodec
* libavformat (part of
FFmpeg
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 vide ...
)
* libgegl (optional part of
GEGL)
** libgimp (part of
GIMP
Gimp or GIMP may refer to:
Clothing
* Bondage suit, also called a gimp suit, a type of suit used in BDSM
* Bondage mask, also called a gimp mask, often worn in conjunction with a gimp suit
Embroidery and crafts
* Gimp (thread), an ornamental tr ...
)
* libmpcodecs (part of
MPlayer
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 Desktop, Syllable, AmigaOS, MorphOS and AROS Research Operating System are also available. A ...
)
** libmpdemux (part of MPlayer)
Applications using libavcodec
Video players
*
FFplay
*
MPlayer
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 Desktop, Syllable, AmigaOS, MorphOS and AROS Research Operating System are also available. A ...
*
mpv
*
MPC-HC and
MPC-BE
*
VLC
*
xine
xine is a multimedia playback engine for Unix-like operating systems released under the GNU General Public License. xine is built around a shared library (xine-lib) that supports different frontend player applications. xine uses libraries fr ...
Audio players
*
Audacious (Uses in audacious-plugins's ffaudio)
*
Rockbox (Includes only FLAC code)
* XMMS2
Multimedia players
*
Gnash
*
Moonlight
*
swfdec
Video editors
*
Avidemux
*
Cinelerra
*
Kdenlive
*
Kino
Audio editors
*
Audacity (since 1.3.6)
*
SoX (optional)
Video converters
*
avconv
*
FFmpeg
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 vide ...
*
HandBrake
*
MEncoder
*
SUPER
Super may refer to:
Computing
* SUPER (computer program), or Simplified Universal Player Encoder & Renderer, a video converter/player
* Super (computer science), a keyword in object-oriented programming languages
* Super key (keyboard butto ...
Video libraries
*
GPAC
*
Media Lovin' Toolkit
Optical disc authoring
*
K3b
Graphics libraries
*
GEGL
*
ImageMagick
3D graphics editors
*
Blender
VoIP
*
Ekiga
*
QuteCom
*
Linphone
Multimedia streaming server
*
FFserver
*
VLC media player
VLC media player (previously the VideoLAN Client) is a free and open-source software, free and open-source, software portability, portable, cross-platform media player software and streaming media Server (computing), server developed by the Vide ...
Multimedia frameworks
*
ffdshow (wraps libavcodec as a
DirectShow filter and adds postprocessing to improve image quality; once installed, it is automatically used by all Windows DirectShow video players, such as
Windows Media Player
Windows Media Player (WMP, officially referred to as Windows Media Player Legacy to retronym, distinguish it from Windows Media Player (2022), the new Windows Media Player introduced with Windows 11) is the first media player (application soft ...
,
Media Player Classic,
Winamp etc. It also wraps libavcodec as a
Video for Windows
Video for Windows was a suite of video-playing and editing software introduced by Microsoft in 1992. A runtime version for viewing videos only was made available as a free add-on to Windows 3.1, which then became an integral component of Windows ...
filter; the framework used by most video editing software.)
*
LAV Filters
*
GStreamer
GStreamer is a Pipeline (computing), 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 f ...
via the GStreamer FFmpeg
plugin
*
Perian
*
Bellagio OpenMAX Integration Layer – open-source OpenMAX IL API implementation
Computer vision libraries
*
OpenCV
OpenCV (Open Source Computer Vision Library) is a Library (computing), library of programming functions mainly for Real-time computing, real-time computer vision. Originally developed by Intel, it was later supported by Willow Garage, then Itseez ...
Browser
*
Google Chrome
Google Chrome is a web browser developed by Google. It was first released in 2008 for Microsoft Windows, built with free software components from Apple WebKit and Mozilla Firefox. Versions were later released for Linux, macOS, iOS, iPadOS, an ...
*
Mozilla Firefox
Media center
*
MythTV
*
Plex
*
Kodi (formerly XBMC)
Screen capture
* xvidcap
Device utilities
*
BitPim – utilities for CDMA phones
CCTV
*
ZoneMinder – video camera security suite
* Motion – video camera security/monitoring program
Games
*
Performous – music game including singing, band and dance.
*
StepMania
*
Ultrastar
*
osu!
Others
*
CorePlayer
*
FreeJ
*
Ingex Studio – used by
BBC
The British Broadcasting Corporation (BBC) is a British public service broadcaster headquartered at Broadcasting House in London, England. Originally established in 1922 as the British Broadcasting Company, it evolved into its current sta ...
*
PulseAudio – includes only resamplers code
*
Steam
Steam is water vapor, often mixed with air or an aerosol of liquid water droplets. This may occur due to evaporation or due to boiling, where heat is applied until water reaches the enthalpy of vaporization. Saturated or superheated steam is inv ...
digital distribution service
References
{{Compression formats
Audio libraries
C (programming language) libraries
Free codecs
Free computer libraries
Video libraries
Free software programmed in C