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