libavcodec is a free and open-source library of codecs 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 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:

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 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.Council Directive 91/250/EEC of 14 May 1991 on the legal protection of computer programs

Libraries that depend on libavcodec libavformat (part of FFmpeg) libgegl (optional part of GEGL) libgimp (part of GIMP) libmpcodecs (part of MPlayer) libmpdemux (part of MPlayer)

Applications using libavcodec

Video players FFplay MPlayer mpv MPC-HC and MPC-BE VLC xine

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 FFmpeg HandBrake MEncoder SUPER

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

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, Media Player Classic, Winamp etc. It also wraps libavcodec as a Video for Windows filter; the framework used by most video editing software.) LAV Filters GStreamer via the GStreamer FFmpeg plugin Perian Bellagio OpenMAX Integration Layer – open-source OpenMAX IL API implementation

Computer vision libraries OpenCV

Browser Google Chrome 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 PulseAudio – includes only resamplers code Steam digital distribution service

References