Difference between revisions of "FFmpeg"

From Audacity Wiki
Jump to: navigation, search
(New Page)
 
m (Text replace - "http://manual.audacityteam.org" to "https://manual.audacityteam.org")
 
(18 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[http://en.wikipedia.org/wiki/Ffmpeg FFmpeg] is a computer program that can record, convert and stream digital audio and video in numerous formats. FFmpeg is a command line tool that is composed of a collection of free software / open source libraries. It includes libavcodec, an audio/video codec library used by several other projects, and libavformat, an audio/video container mux and demux library. The name of the project comes from the MPEG video standards group, together with "FF" for "fast forward".
+
{{Introrel|1=[http://ffmpeg.mplayerhq.hu/ 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".|2=FFmpeg support was integrated into Audacity as a [[FFmpeg integration|Google Summer of Code 2008 project]] and first released in Audacity 1.3.6. FFmpeg allows Audacity to import and export a much wider range of audio formats including importing audio from video files.|3=[https://manual.audacityteam.org/o/man/faq_installation_and_plug_ins.html#ffdown Recommended FFmpeg Windows / Mac installers for current Audacity]
 +
* [http://ffmpeg.zeranoe.com/builds/ Latest git FFmpeg Windows builds by Zeranoe] - may not work with official Audacity releases
 +
*[http://lrn.mooo.com/other/gsoc/ffmpegcity/ffmpeg/distributable Older FFmpeg 0.5 Windows builds by LRN] - [http://en.wikipedia.org/wiki/GNU_General_Public_License GPL] and [http://en.wikipedia.org/wiki/LGPL LGPL] versions, will work with current Audacity
 +
*[http://ffmpeg.arrozcru.org/wiki/index.php?title=Main_Page Building FFmpeg on Windows] - instructions for developers
 +
* [http://ffmpegmac.net/ Mac 32-bit and 64-bit FFmpeg] latest static binaries
 +
* [http://www.evermeet.cx/ffmpeg/ Mac Intel 64-bit FFmpeg] latest static binaries
 +
*[http://ffmpeg.org/general.html FFmpeg general documentation and supported formats/codecs]
 +
*[http://www.ffmpeg.org/ffmpeg-doc.html Using FFmpeg at the command line]
 +
*[http://www.inb.uni-luebeck.de/~boehme/libavcodec_update.html Using libavcodec] (older information)}}
 +
 
 +
 
 +
==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 [http://gcc.gnu.org/ GCC].  FFmpeg is now maintained by Michael Niedermayer. Many FFmpeg developers are also part of the [http://www.mplayerhq.hu/design7/info.html 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, Microsoft Windows and Amiga Workbench. There are no releases. Instead, FFmpeg developers recommend using the latest [http://ffmpeg.mplayerhq.hu/download.html subversion snapshot] - the developers attempt to maintain a stable trunk.
 +
 
 +
 
 +
==Components==
 +
 
 +
* 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 [http://en.wikipedia.org/wiki/Multiplexer 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.
  
The project was started by Fabrice Bellard 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.
 
  
 
[[Category:For Developers]]
 
[[Category:For Developers]]
 +
[[Category:Digital Audio Technology]]
 +
[[Category:Library]]

Latest revision as of 12:54, 21 August 2017

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. 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, 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.


Components

  • 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.