Difference between revisions of "FFmpeg"
(New Page) |
PeterSampson (talk | contribs) 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:// | + | {{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. | ||
− | |||
[[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".
|
Related article(s):
|
Contents
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.