From Audacity Wiki
Revision as of 13:58, 4 January 2012 by Arent (talk | contribs)
Jump to: navigation, search
FFmpeg is a command-line program that can record, convert and stream digital audio and video in numerous formats. It is composed of a collection of free software / open source libraries. The name of the project comes from the MPEG video standards group, together with "FF" for "fast forward".
FFmpeg support was integrated into Audacity as a Google Summer of Code 2008 project and first released in Audacity 1.3.6 (Beta). FFmpeg allows Audacity to import and export a much wider range of audio formats including importing audio from video files.
Related article(s):

History and Licence

The project was started by Fabrice Bellard (using the pseudonym "Gerard Lantau"). Bellard was the brilliant programmer behind TCC, a tiny 'C' compiler that is nine times faster than GCC. FFmpeg 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.

Two video codecs were invented during the development of the FFmpeg project. These are the lossless FFV1 and the only nearly complete lossless or lossy working Snow codec based on wavelet transformations and an intelligent version of range encoding.

FFmpeg is released under the GNU Lesser General Public License or GNU General Public License (depending on which sub-libraries one would include).

Downloading and compiling FFmpeg

FFmpeg is developed under Linux and there are no binaries, but it can be compiled under most operating systems, including Apple Mac OS X, Microsoft Windows and Amiga Workbench. There are no releases. Instead, FFmpeg developers recommend using the latest subversion snapshot - the developers attempt to maintain a stable trunk.


  • ffmpeg is a command line tool to convert one video file format to another. It also supports grabbing and encoding in real time from a TV card.
  • ffserver is an HTTP (RTSP is being developed) multimedia streaming server for live broadcasts. Time shifting of live broadcast is also supported.
  • ffplay is a simple media player based on SDL and on the FFmpeg libraries.
  • 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. Other projects than FFmpeg also use the libavcodec library.
  • libavformat is a library containing muxers and demuxers for audio/video container formats.
  • libavutil is a helper library containing routines common to different parts of FFmpeg.
  • libpostproc is a library containing video postprocessing routines.
  • libswscale is a library containing video image scaling routines.

File formats (from ffmpeg)

 E 3g2             3gp2 format
 E 3gp             3gp format
D  4xm             4X Technologies format
D  MTV             MTV format
DE RoQ             Id RoQ format
D  aac             ADTS AAC
DE ac3             raw ac3
 E adts            ADTS AAC
DE aiff            Audio IFF
DE alaw            pcm A law format
DE amr             3gpp amr file format
D  apc             CRYO APC format
D  ape             Monkey's Audio
DE asf             asf format
 E asf_stream      asf format
DE au              SUN AU Format
DE avi             avi format
D  avs             AVISynth
D  bethsoftvid     Bethesda Softworks 'Daggerfall' VID format
D  c93             Interplay C93
 E crc             crc testing format
D  daud            D-Cinema audio format
D  dsicin          Delphine Software International CIN format
D  dts             raw dts
DE dv              DV video format
 E dvd             MPEG2 PS format (DVD VOB)
D  dxa             dxa
D  ea              Electronic Arts Multimedia Format
D  ea_cdata        Electronic Arts cdata
DE ffm             ffm format
D  film_cpk        Sega FILM/CPK format
DE flac            raw flac
D  flic            FLI/FLC/FLX animation format
DE flv             flv format
 E framecrc        framecrc testing format
DE gif             GIF Animation
DE gxf             GXF format
DE h261            raw h261
DE h263            raw h263
DE h264            raw H264 video format
D  idcin           Id CIN format
DE image2          image2 sequence
DE image2pipe      piped image2 sequence
D  ingenient       Ingenient MJPEG
D  ipmovie         Interplay MVE format
DE libnut          nut format
DE m4v             raw MPEG4 video format
DE matroska        Matroska File Format
DE mjpeg           MJPEG video
D  mm              American Laser Games MM format
DE mmf             mmf format
 E mov             mov format
D  mov,mp4,m4a,3gp,3g2,mj2 QuickTime/MPEG4/Motion JPEG 2000 format
 E mp2             MPEG audio layer 2
DE mp3             MPEG audio layer 3
 E mp4             mp4 format
D  mpc             musepack
D  mpc8            musepack8
DE mpeg            MPEG1 System format
 E mpeg1video      MPEG video
 E mpeg2video      MPEG2 video
DE mpegts          MPEG2 transport stream format
D  mpegtsraw       MPEG2 raw transport stream format
D  mpegvideo       MPEG video
 E mpjpeg          Mime multipart JPEG format
DE mulaw           pcm mu law format
D  mxf             MXF format
D  nsv             NullSoft Video format
 E null            null video format
DE nut             nut format
D  nuv             NuppelVideo format
DE ogg             Ogg format
 E psp             psp mp4 format
D  psxstr          Sony Playstation STR format
DE rawvideo        raw video format
D  redir           Redirector format
DE rm              rm format
 E rtp             RTP output format
D  rtsp            RTSP input format
DE s16be           pcm signed 16 bit big endian format
DE s16le           pcm signed 16 bit little endian format
DE s8              pcm signed 8 bit format
D  sdp             SDP
D  shn             raw shorten
D  siff            Beam Software SIFF
D  smk             Smacker Video
D  sol             Sierra SOL Format
 E svcd            MPEG2 PS format (VOB)
DE swf             Flash format
D  thp             THP
D  tiertexseq      Tiertex Limited SEQ format
D  tta             true-audio
D  txd             txd format
DE u16be           pcm unsigned 16 bit big endian format
DE u16le           pcm unsigned 16 bit little endian format
DE u8              pcm unsigned 8 bit format
D  vc1             raw vc1
 E vcd             MPEG1 System format (VCD)
D  vmd             Sierra VMD format
 E vob             MPEG2 PS format (VOB)
DE voc             Creative Voice File format
DE wav             wav format
D  wc3movie        Wing Commander III movie format
D  wsaud           Westwood Studios audio format
D  wsvqa           Westwood Studios VQA format
D  wv              WavPack
DE yuv4mpegpipe    YUV4MPEG pipe format

Note, the names of encoders and decoders do not always match, so there are several cases where the above table shows encoder only or decoder only entries even though both encoding and decoding are supported. For example, the h263 decoder corresponds to the h263 and h263p encoders, for file formats it is even worse.

Audio codecs (from ffmpeg)

 EA    ac3
D A    adpcm_4xm
DEA    adpcm_adx
D A    adpcm_ct
D A    adpcm_ea
D A    adpcm_ea_r1
D A    adpcm_ea_r2
D A    adpcm_ea_r3
D A    adpcm_ea_xas
D A    adpcm_ima_amv
D A    adpcm_ima_dk3
D A    adpcm_ima_dk4
D A    adpcm_ima_ea_eacs
D A    adpcm_ima_ea_sead
D A    adpcm_ima_qt
D A    adpcm_ima_smjpeg
DEA    adpcm_ima_wav
D A    adpcm_ima_ws
DEA    adpcm_ms
D A    adpcm_sbpro_2
D A    adpcm_sbpro_3
D A    adpcm_sbpro_4
DEA    adpcm_swf
D A    adpcm_thp
D A    adpcm_xa
DEA    adpcm_yamaha
D A    alac
D A    ape
D A    atrac 3
D A    cook
D A    dca
D A    dsicinaudio
DEA    flac
DEA    g726
D A    imc
D A    interplay_dpcm
D A    liba52
DEA    libamr_nb
DEA    libamr_wb
 EA    libfaac
D A    libfaad
DEA    libgsm
DEA    libgsm_ms
 EA    libmp3lame
 EA    libvorbis
D A    mace3
D A    mace6
DEA    mp2
D A    mp3
D A    mp3adu
D A    mp3on4
D A    mpc sv7
D A    mpc sv8
D A    mpeg4aac
D A    nellymoser
DEA    pcm_alaw
DEA    pcm_mulaw
DEA    pcm_s16be
DEA    pcm_s16le
D A    pcm_s16le_planar
DEA    pcm_s24be
DEA    pcm_s24daud
DEA    pcm_s24le
DEA    pcm_s32be
DEA    pcm_s32le
DEA    pcm_s8
DEA    pcm_u16be
DEA    pcm_u16le
DEA    pcm_u24be
DEA    pcm_u24le
DEA    pcm_u32be
DEA    pcm_u32le
DEA    pcm_u8
DEA    pcm_zork
D A    qdm2
D A    real_144
D A    real_288
DEA    roq_dpcm
D A    shorten
D A    smackaud
D A    sol_dpcm
DEA    sonic
 EA    sonicls
D A    truespeech
D A    tta
D A    vmdaudio
DEA    vorbis
D A    wavpack
DEA    wmav1
DEA    wmav2
D A    ws_snd1
D A    xan_dpcm

Legal issues

FFmpeg's legal status varies by country. Some included codecs, (such as Sorenson 3), are 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. 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. In any case, many Linux distributions do not include FFmpeg to avoid legal complications.