FFmpeg: Wikis


Note: Many of our articles have direct quotes from sources you can cite, within the Wikipedia article! This article doesn't yet, but we're working on it! See more info or our list of citable articles.


From Wikipedia, the free encyclopedia

Ffmpeg logo.svg
Developer(s) FFmpeg team
Stable release 0.5.1 / March 2, 2010; 12 day(s) ago (2010-03-02)
Preview release SVN
Written in C
Operating system Cross-platform
Platform Multi-platform
Development status active
Type Multimedia framework
License GNU Lesser General Public License
Website http://ffmpeg.org/

FFmpeg is a free software / open source project that produces libraries and programs for handling multimedia data and publishes them under the GNU Lesser General Public License or GNU General Public License (depending on which options are enabled). The most notable parts of FFmpeg are libavcodec, an audio/video codec library used by several other projects, libavformat, an audio/video container mux and demux library, and the ffmpeg command line program for transcoding multimedia files.

The project was started by Fabrice Bellard[1] (using the pseudonym “Gerard Lantau”), and is now maintained by Michael Niedermayer. Many FFmpeg developers are also part of the MPlayer project, and FFmpeg is hosted at the MPlayer project server. The name of the project comes from the MPEG video standards group, together with "FF" for "fast forward".[2] The logo uses a zigzag pattern that shows how MPEG video codecs handle entropy encoding.

FFmpeg is developed under GNU/Linux, but it can be compiled under most operating systems, including Apple Inc. Mac OS X, Microsoft Windows, AmigaOS and its heir MorphOS. Most computing platforms and microprocessor instruction set architecture are also supported, like x86 (IA-32 and x86-64), PPC (PowerPC), ARM, DEC Alpha, SPARC, and MIPS architecture.[3]

FFmpeg version 0.5 appeared after a long time without formal releases. Previously, FFmpeg developers recommended using the latest neutral build from their source code Subversion version control system as development attempts to maintain a stable trunk.[4]

There are two video codecs and one video container invented in the FFmpeg project during its development. The two video codecs are the lossless "FFV1", and the lossless or lossy "Snow codec", which is still in a sporadic development, but its bitstream format hasn't been finalized yet, making it experimental for now (January 2010), and the multimedia container is "NUT" which is not being actively developed anymore.



Diagram showing different applications (VDR, MPlayer, Xine and VideoLAN) using FFmpeg


The project is made of several components:

  • ffmpeg is a command line tool to convert one video file format to another. It can also grab and encode in real time from a TV card.
  • ffserver is an HTTP and RTSP multimedia streaming server for live broadcasts. It can also time shift live broadcast.
  • ffplay is a simple media player based on SDL and on the FFmpeg libraries.
  • ffprobe is a command line tool to show media information.
  • libavcodec is a library containing all the FFmpeg audio/video encoders and decoders. Most codecs were developed from scratch to ensure best performance and high code reusability.
  • libavformat is a library containing demuxers and muxers for audio/video container formats.
  • libavutil is a helper library containing routines common to different parts of FFmpeg. This library include adler32, crc, md5, sha1, lzo decompressor, Base64 encoder/decoder, des encrypter/decrypter, rc4 encrypter/decrypter and aes encrypter/decrypter.
  • libpostproc is a library containing video postprocessing routines.
  • libswscale is a library containing video image scaling and colorspace/pixelformat conversion routines.
  • libavfilter is the substitute for vhook which allows the video to be modified or examined between the decoder and the encoder.

Codecs, formats and protocols supported



Codecs with the origin in the project:

The FFmpeg developers have implemented among others:

The default MPEG-4 codec used by FFmpeg for encoding has the FourCC of FMP4.



Projects using FFmpeg

FFmpeg is used by many open source projects, including ffmpeg2theora, VLC, MPlayer, Handbrake, Blender, Google Chrome, and others.[13]

FFmpeg handles the HTML5 Video and Audio media content in the Origyn Web Browser for MorphOS Operating System.[14][15]

Multimedia frameworks using FFmpeg

Legal status of codecs

FFmpeg contains more than 100 codecs [16] most of which do not just store uncompressed data. At least all codecs that compress information could be claimed by patent holders.[17] 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. However, these terms of use are forbidden in certain countries. For example, some European Union nations have not implemented software patents and/or have laws expressly allowing reverse engineering for purposes of interoperability.[18]

Most GNU/Linux distributions include a stripped version of FFmpeg only including certain codecs to avoid legal complications, instead providing such software at unofficial repositories.[citation needed]

See also


  1. ^ http://ffmpeg.org/legal.html
  2. ^ Bellard, Fabrice (18 February 2006). "FFmpeg naming and logo". FFmpeg developer mailing list. Mplayer website. http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2006-February/007707.html. Retrieved 29 March 2007. 
  3. ^ FFmpeg Automated Testing Environment
  4. ^ "FFmpeg Download and SVN". FFmpeg website. http://ffmpeg.org/download.html. Retrieved 22 March 2008. 
  5. ^ a b c d e f g banan (17 April 2007). "Changelog". FFmpeg trunk SVN. FFmpeg website. http://svn.mplayerhq.hu/ffmpeg/trunk/Changelog?revision=8747&view=marku. Retrieved 26 April 2007. 
  6. ^ a b banan (7 May 2007). "FFmpeg development mailing list". FFmpeg development. FFmpeg website. http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2007-May/028761.html. Retrieved 1 June 2007. 
  7. ^ vitor (13 April 2008). "FFmpeg development mailing list". FFmpeg development. FFmpeg website. https://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/2008-April/013231.html. Retrieved 14 April 2008. 
  8. ^ vitor (30 March 2008). "FFmpeg development mailing list". FFmpeg development. FFmpeg website. https://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/2008-March/012963.html. Retrieved 30 March 2008. 
  9. ^ faust3 (21 March 2008). "FFmpeg development mailing list". FFmpeg development. FFmpeg website. http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/2008-March/012799.html. Retrieved 21 March 2008. 
  10. ^ benoit (14 April 2008). "FFmpeg development mailing list". FFmpeg development. FFmpeg website. https://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/2008-April/013245.html. Retrieved 14 April 2008. 
  11. ^ ramiro (18 March 2008). "FFmpeg development mailing list". FFmpeg development. FFmpeg website. http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/2008-March/012708.html. Retrieved 18 March 2008. 
  12. ^ banan (8 June 2008). "FFmpeg development mailing list". FFmpeg development. FFmpeg website. http://lists.mplayerhq.hu/pipermail/ffmpeg-cvslog/2008-June/014417.html. Retrieved 8 June 2008. 
  13. ^ http://ffmpeg.org/projects.html
  14. ^ "Origyn Web Browser for MorphOS". Fabian Coeurjoly. http://fabportnawak.free.fr/owb/. 
  15. ^ Thom Holwerda (March 8, 2010). "Origyn Web Browser 1.7 Supports HTML5 Media, More". OSNews. http://www.osnews.com/story/22971/Origyn_Web_Browser_1_7_Supports_HTML5_Media_More. 
  16. ^ "Codecs list". http://ffmpeg.org/general.html#SEC8. 
  17. ^ "Legal information on FFmpeg's website". http://ffmpeg.org/legal.html. 
  18. ^ . Council Directive 91/250/EEC of 14 May 1991 on the legal protection of computer programs. 

External links


Got something to say? Make a comment.
Your name
Your email address