libavcodec

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
libavcodec
DeveloperFFmpeg team
Stable release
62.11.100 / November 20, 2025; 4 months ago (2025-11-20)[1]
Preview releaseGit [±]
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inC99
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemAvailable for Windows, OS X, Linux but may be compiled for any other OS[2]
    PlatformAvailable for x86 but may be compiled for any desktop computer or supercomputer
    TypeMultimedia Library
    LicenseGNU LGPL 2.1+ or GNU GPL 2+ or non-redistributable if compiled as such[3]
    Websiteffmpeg.org

    Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal'). libavcodec is a free and open-source[4] library of codecs for encoding and decoding video and audio data.[5]

    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

    [edit | edit source]

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

    Implemented audio codecs

    [edit | edit source]

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

    [edit | edit source]

    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

    [edit | edit source]
    • libavformat (part of FFmpeg)
    • libgegl (optional part of GEGL)
      • libgimp (part of GIMP)
    • libmpcodecs (part of MPlayer)
      • libmpdemux (part of MPlayer)

    Applications using libavcodec

    [edit | edit source]

    Video players

    [edit | edit source]

    Audio players

    [edit | edit source]
    • Audacious (Uses in audacious-plugins's ffaudio)
    • Rockbox (Includes only FLAC code)
    • XMMS2

    Multimedia players

    [edit | edit source]

    Video editors

    [edit | edit source]

    Audio editors

    [edit | edit source]

    Video converters

    [edit | edit source]

    Video libraries

    [edit | edit source]

    Optical disc authoring

    [edit | edit source]

    Graphics libraries

    [edit | edit source]

    3D graphics editors

    [edit | edit source]

    Multimedia streaming server

    [edit | edit source]

    Multimedia frameworks

    [edit | edit source]

    Computer vision libraries

    [edit | edit source]

    Browser

    [edit | edit source]

    Media center

    [edit | edit source]

    Screen capture

    [edit | edit source]

    Device utilities

    [edit | edit source]
    • BitPim – utilities for CDMA phones
    • ZoneMinder – video camera security suite
    • Motion – video camera security/monitoring program

    Games

    [edit | edit source]

    Others

    [edit | edit source]

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ 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).
    4. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    10. ^ Council Directive 91/250/EEC of 14 May 1991 on the legal protection of computer programs
    11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    13. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    14. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    15. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    16. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    17. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).