libavcodec
Git [±] | |
---|---|
Repository | |
Written in | 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 |
libavcodec is a
libavcodec is an integral part of many open-source multimedia applications and frameworks. The popular
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]
- Animated GIF
- Asus video format v1 and v2
- AVS (decoding only, encoding through libxavs)
- AV1
- CamStudio format (decoding only)
- CineForm (decoding only)
- Cinepak
- Creative YUV (CYUV, decoding only)
- Dirac
- DNxHD
- Duck Corporation Truemotion 1, 2, and RT codecs (Decoding only)
- FFV1
- Flash Screen Video v1 and v2
- H.261
- H.262/MPEG-2 Part 2
- H.263
- H.264/MPEG-4 AVC (native decoder, encoding through x264and hardware encoding)
- H.265 HEVC (native decoder, encoding through x265 and hardware encoding)
- Huffyuv
- id Software RoQ Video
- Indeo (decoding only)
- Lagarith (decoding only)
- MJPEG
- MPEG-1
- MPEG-4 Part 2 (the format used for example by the popular DivX and Xvid codecs)
- Apple ProRes
- QuickDraw (decoding only)
- QuickTime: Graphics (decoding only), Video (decoding only) and Animation (RLE)
- RealVideo RV10 and RV20
- RealVideo RV30 and RV40 (decoding only)
- SheerVideo (decoding only)
- Smacker video (decoding only)
- Snow
- Sorenson Sparkunder the name FLV1
- SVQ1
- SVQ3(decoding only)
- libtheora)
- TrueMotionv1 and v2 (decoding only)
- VC-1 (decoding only)
- Sierra VMD Video (decoding only)
- VMware VMnc (decoding only)
- VP3 (decoding only)
- VP5(decoding only)
- VP6 (decoding only)
- VP7(decoding only)
- VP8 (native decoder, encoding through libvpx)
- VP9 (native decoder, encoding through libvpx)
- VQA(decoding only)
- VVC (native decoder)[7]
- WMV version 7 and 8
- WMV version 9 (decoding only)
- Windows Media Video Image(decoding only)
- Windows Media Video Screen1 and 2 (decoding only)
- Wing Commander/Xan Video (decoding only)
Implemented audio codecs
libavcodec includes decoders and encoders for the following formats:[6]
- 8SVX (decoding only)
- AAC
- AC-3
- AMR (decoding only)
- AMR-WB (decoding only)
- Apple Lossless
- ATRAC1, ATRAC3, ATRAC3plus and ATRAC9 (decoding only)
- Codec 2
- Cook Codec (decoding only)
- DTS(encoder is highly experimental)
- EA ADPCM (decoding only)
- E-AC-3
- EVRC (decoding only)
- FLAC
- G.711 (μ-law and A-law)
- G.722
- G.723.1
- G.726
- G.729 (decoding only)
- libgsm)
- Intel Music Coder and Indeo Audio Coder (decoding only)
- Meridian Lossless Packing / Dolby TrueHD
- Monkey's Audio (decoding only)
- MP1(decoding only)
- MP2
- MP3 (native decoder, encoding through LAME)
- Nellymoser Asao Codec in Flash
- libopus)
- QCELP(decoding only)
- QDM2 (decoding only)
- RealAudio 1.0
- RealAudio 2.0(decoding only)
- Shorten(decoding only)
- Truespeech (decoding only)
- TTA
- TwinVQ (decoding only)
- Vorbis
- WAV
- WavPack
- Windows Media Audio 1 and 2
- Windows Media Audio 9 Lossless(decoding only)
- Windows Media Audio 9 Professional(decoding only)
- Windows Media Audio Voice (decoding only)
Legal aspects
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
- 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
Audio players
- Audacious(Uses in audacious-plugins's ffaudio)
- Rockbox (Includes only FLAC code)
- XMMS2
Multimedia players
Video editors
Audio editors
Video converters
Video libraries
Optical disc authoring
Graphics libraries
3D graphics editors
VoIP
Multimedia streaming server
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
Browser
- Google Chrome[14]
- Mozilla Firefox[15]
Media center
Screen capture
- xvidcap[16]
Device utilities
- BitPim – utilities for CDMA phones
CCTV
- ZoneMinder – video camera security suite
- Motion – video camera security/monitoring program
Games
Others
- CorePlayer
- FreeJ
- Ingex Studio – used by BBC
- PulseAudio – includes only resamplers code[17]
- Steam digital distribution service
References
- ^ [1]
- ^ "Download". ffmpeg.org. FFmpeg. Archived from the original on 2013-09-27. Retrieved 2012-01-04.
- ^ 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).
- ^ "Libav License and Legal Considerations". libav.org. Archived from the original on 2021-05-15. Retrieved 2013-05-07.
- ^ libavcodec – AfterDawn: Glossary of technology terms & acronyms, AfterDawn, 2010-07-02, archived from the original on 2010-02-14, retrieved 2012-01-17
- ^ a b General Documentation, Ffmpeg.org, archived from the original on 2019-07-17, retrieved 2021-05-05
- ^ "git.ffmpeg.org Git - ffmpeg.git/commit". git.ffmpeg.org. Retrieved 2024-01-03.
- ^ "Codecs list". ffmpeg.org. Archived from the original on 2014-06-29. Retrieved 2012-01-01.
- ^ "Legal information on FFmpeg's website". ffmpeg.org. Archived from the original on 2010-09-18. Retrieved 2012-01-04.
- Council Directive 91/250/EEC of 14 May 1991 on the legal protection of computer programs
- S2CID 236469263.
- ISBN 9780470471586, archivedfrom the original on 2022-03-14, retrieved 2012-01-17
- ISBN 9780596554040, archivedfrom the original on 2021-08-27, retrieved 2012-01-17
- ^ whatwg MPEG-1 subset proposal for HTML5 video codec, Lists.whatwg.org, archived from the original on 2012-02-19, retrieved 2012-01-17
- ^ "Firefox Source Code Libavcodec". Firefox source code repository. Retrieved 2024-01-08.
- ISBN 9780387096834, archivedfrom the original on 2021-08-29, retrieved 2012-01-17
- ^ pulseaudio.git/tree – src/pulsecore/ffmpeg/, Git.0pointer.de, archived from the original on 2012-07-13, retrieved 2012-01-17