FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes libavcodec - the leading audio/video codec library.
FFmpeg is free software licensed under the LGPL or GPL depending on your choice of configuration options. If you use FFmpeg or its constituent libraries, you must adhere to the terms of the license in question.
ffmpeg is a very fast video and audio converter that can also grab from a live audio/video source. It can also convert between arbitrary sample rates and resize video on the fly with a high quality polyphase filter.
The command line interface is designed to be intuitive, in the sense that ffmpeg tries to figure out all parameters that can possibly be derived automatically. You usually only have to specify the target bitrate you want.
As a general rule, options are applied to the next specified file. Therefore, order is important, and you can have the same option on the command line multiple times. Each occurrence is then applied to the next input or output file.
* To set the video bitrate of the output file to 64kbit/s:
ffmpeg -i input.avi -b 64k output.avi
* To force the frame rate of the output file to 24 fps:
ffmpeg -i input.avi -r 24 output.avi
* To force the frame rate of the input file (valid for raw formats only) to 1 fps and the frame rate of the output file to 24 fps:
ffmpeg -r 1 -i input.m2v -r 24 output.avi
The format option may be needed for raw input files.
By default ffmpeg tries to convert as losslessly as possible: It uses the same audio and video parameters for the outputs as the one specified for the inputs.
The project is made of several components:
* ffmpeg is a command line tool to convert multimedia files between formats.
* ffserver is a multimedia streaming server for live broadcasts.
* ffplay is a simple media player based on SDL and the FFmpeg libraries.
* ffprobe is a is a simple multimedia stream analyzer.
* libavutil is a library containing functions for simplifying programming, including random number generators, data structures, mathematics routines, core multimedia utilities, and much more.
* libavcodec is a library containing decoders and encoders for audio/video codecs.
* libavformat is a library containing demuxers and muxers for multimedia container formats.
* libavdevice is a library containing input and output devices for grabbing from and rendering to many common multimedia input/output software frameworks, including Video4Linux, Video4Linux2, VfW, and ALSA.
* libavfilter is a library containing media filters.
* libswscale is a library performing highly optimized image scaling and color space/pixel format conversion operations.