FFmpeg is a multi-purpose multimedia tool which can convert between an amazing variety of different file formats and audio and video CoDecs. Its development is done in common with that of MPlayer.
FFmpeg is undergoing continual development. Hence, any copy included with your distro is guaranteed to be out of date. Instead, always get the latest version via SubVersion from the repository linked from the FFmpeg home page (below).
Basic usage:
ffmpeg input-spec [input-spec ...] output-spec [output-spec ...] [mapping-options]
where each input-spec consists of
-i input-filename
possibly preceded by options that apply to that input file, and each output-spec consists of
output-filename
possibly preceded by options to be applied in generating that output file.
FFmpeg does not concatenate multiple input files, it multiplexes them. Thus, you can specify an input video-only file and an input audio-only file, and get a combined video-plus-audio output file. Or you can demultiplex the input into multiple output files, for example video-only into one output file, audio-only into another, or different encodings of the same video or audio input into different outputs.
The mapping-options allow the specification of which streams from whicn input file(s) are mapped onto which streams in the output file(s). These are only necessary if FFmpeg can't figure out the right thing to do.
Extract a single video frame into a JPEG file:
ffmpeg -ss hh:mm:ss:cc -t 00:00:00:01 -i input-filename -f mjpeg output-name.jpeg
For example, extract the frame at time 3 minutes and 51.04 seconds into the input video file:
ffmpeg -ss 00:03:51.04 -t 00:00:00:01 -i my-doggie.mpg -f mjpeg my-doggie-thumbnail.jpeg
Generate a specified duration of silence:
NrChannels=2 SampleRate=48000 NrSeconds=1 # above parameters can be changed as appropriate ffmpeg -ar $SampleRate -acodec pcm_s16le -f s16le -ac $NrChannels \ -i <(dd if=/dev/zero bs=$(($SampleRate * $NrChannels * 2)) count=$NrSeconds) \ silence.wav
Generate a static background suitable for a non-animated DVD-Video menu. This takes a single still frame (probably best to stick to JPEG format, certainly PNG didn't work) and turns it into an MPEG-2 output movie with a silent soundtrack. The movie is of one-second duration, which is sufficient because it can be set to loop during the DVD authoring process:
ffmpeg -loop_input -t 1.0 -i stillframename \ -ar 48000 -f s16le -i <(dd if=/dev/zero bs=19200 count=1) \ -target pal-dvd outputmoviename
where pal-dvd can be replaced with ntsc-dvd if authoring an NTSC disc rather than PAL.
Links:
3 pages link to FFmpeg: