|
|
|
@ -7,7 +7,7 @@ |
|
|
|
|
files or from a live audio/video source. |
|
|
|
|
|
|
|
|
|
The command line interface is designed to be intuitive, in the sense |
|
|
|
|
that ffmpeg tries to figure out all the paramters, when |
|
|
|
|
that ffmpeg tries to figure out all the parameters, when |
|
|
|
|
possible. You have usually to give only the target bitrate you want. |
|
|
|
|
|
|
|
|
|
FFmpeg can also convert from any sample rate to any other, and |
|
|
|
@ -16,7 +16,7 @@ |
|
|
|
|
1) Video and Audio grabbing |
|
|
|
|
--------------------------- |
|
|
|
|
|
|
|
|
|
* ffmpeg can use a video4linux compatible video source and any Open |
|
|
|
|
* FFmpeg can use a video4linux compatible video source and any Open |
|
|
|
|
Sound System audio source: |
|
|
|
|
|
|
|
|
|
ffmpeg /tmp/out.mpg |
|
|
|
@ -29,43 +29,72 @@ |
|
|
|
|
2) Video and Audio file format convertion |
|
|
|
|
----------------------------------------- |
|
|
|
|
|
|
|
|
|
* ffmpeg can use any supported file format and protocol as input : |
|
|
|
|
* ffmpeg can use any supported file format and protocol as input: |
|
|
|
|
|
|
|
|
|
examples: |
|
|
|
|
Examples: |
|
|
|
|
|
|
|
|
|
* You can input from YUV files: |
|
|
|
|
|
|
|
|
|
ffmpeg -i /tmp/test%d.Y /tmp/out.mpg |
|
|
|
|
|
|
|
|
|
If will use the files: |
|
|
|
|
/tmp/test0.Y, /tmp/test0.U, /tmp/test0.V, |
|
|
|
|
/tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, etc... |
|
|
|
|
It will use the files: |
|
|
|
|
/tmp/test0.Y, /tmp/test0.U, /tmp/test0.V, |
|
|
|
|
/tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, etc... |
|
|
|
|
|
|
|
|
|
The Y files use twice the resolution of the U and V files. They are |
|
|
|
|
raw files, without header. They can be generated by all decent video |
|
|
|
|
decoders. You must specify the size of the image with the '-s' option |
|
|
|
|
if ffmpeg cannot guess it. |
|
|
|
|
|
|
|
|
|
* You can input from a RAW YUV420P file: |
|
|
|
|
|
|
|
|
|
ffmpeg -i /tmp/test.yuv /tmp/out.avi |
|
|
|
|
|
|
|
|
|
The RAW YUV420P is a file containing RAW YUV planar, for each frame first |
|
|
|
|
come the Y plane followed by U and V planes, which are half vertical and |
|
|
|
|
horizontal resolution. |
|
|
|
|
|
|
|
|
|
The Y files use twice the resolution of the U and V files. They are |
|
|
|
|
raw files, without header. They can be generated by all decent video |
|
|
|
|
decoders. You must specify the size of the image with the '-s' option |
|
|
|
|
if ffmpeg cannot guess it. |
|
|
|
|
* You can output to a RAW YUV420P file: |
|
|
|
|
|
|
|
|
|
ffmpeg -i mydivx.avi -o hugefile.yuv |
|
|
|
|
|
|
|
|
|
* You can set several input files and output files: |
|
|
|
|
|
|
|
|
|
ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg |
|
|
|
|
|
|
|
|
|
Convert the audio file a.wav and the raw yuv video file a.yuv to mpeg file a.mpg |
|
|
|
|
Convert the audio file a.wav and the raw yuv video file a.yuv |
|
|
|
|
to mpeg file a.mpg |
|
|
|
|
|
|
|
|
|
* you can also do audio and video convertions at the same time: |
|
|
|
|
* You can also do audio and video convertions at the same time: |
|
|
|
|
|
|
|
|
|
ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2 |
|
|
|
|
|
|
|
|
|
Convert the sample rate of a.wav to 22050 Hz and encode it to MPEG audio. |
|
|
|
|
Convert the sample rate of a.wav to 22050 Hz and encode it to MPEG audio. |
|
|
|
|
|
|
|
|
|
* you can encode to several formats at the same time and define a |
|
|
|
|
* You can encode to several formats at the same time and define a |
|
|
|
|
mapping from input stream to output streams: |
|
|
|
|
|
|
|
|
|
ffmpeg -i /tmp/a.wav -ab 64 /tmp/a.mp2 -ab 128 /tmp/b.mp2 -map 0:0 -map 0:0 |
|
|
|
|
|
|
|
|
|
convert a.wav to a.mp2 at 64 kbits and b.mp2 at 128 kbits. '-map |
|
|
|
|
Convert a.wav to a.mp2 at 64 kbits and b.mp2 at 128 kbits. '-map |
|
|
|
|
file:index' specify which input stream is used for each output |
|
|
|
|
stream, in the order of the definition of output streams. |
|
|
|
|
|
|
|
|
|
NOTE: to see the supported input formats, use 'ffmpeg -formats'. |
|
|
|
|
* You can transcode decrypted VOBs |
|
|
|
|
|
|
|
|
|
ffmpeg -i snatch_1.vob -f avi -vcodec mpeg4 -b 800 -g 300 -bf 2 -acodec |
|
|
|
|
mp3 -ab 128 snatch.avi |
|
|
|
|
|
|
|
|
|
This is a typicall DVD ripper example, input from a VOB file, output to |
|
|
|
|
an AVI file with MPEG-4 video and MP3 audio, note that in this command we |
|
|
|
|
use B frames so the MPEG-4 stream is DivX5 compatible, GOP size is 300 |
|
|
|
|
that means an INTRA frame every 10 seconds for 29.97 fps input video. |
|
|
|
|
Also the audio stream is MP3 encoded so you need LAME support which is |
|
|
|
|
enabled using '--enable-mp3lame' when configuring. |
|
|
|
|
The mapping is particullary usefull for DVD transcoding to get the desired |
|
|
|
|
audio language. |
|
|
|
|
|
|
|
|
|
NOTE: to see the supported input formats, use 'ffmpeg -formats'. |
|
|
|
|
|
|
|
|
|
2) Invocation |
|
|
|
|
------------- |
|
|
|
@ -87,24 +116,28 @@ NOTE: to see the supported input formats, use 'ffmpeg -formats'. |
|
|
|
|
|
|
|
|
|
* Main options are: |
|
|
|
|
|
|
|
|
|
-L show license |
|
|
|
|
-h show help |
|
|
|
|
-formats show available formats, codecs and protocols |
|
|
|
|
-L print the LICENSE |
|
|
|
|
-formats show available formats, codecs, protocols, ... |
|
|
|
|
-f fmt force format |
|
|
|
|
-i filename input file name |
|
|
|
|
-y overwrite output files |
|
|
|
|
-t duration set recording time in seconds |
|
|
|
|
-f format set encoding format [guessed] |
|
|
|
|
-t duration set the recording time |
|
|
|
|
-title string set the title |
|
|
|
|
-author string set the author |
|
|
|
|
-copyright string set the copyright |
|
|
|
|
-comment string set the comment |
|
|
|
|
-b bitrate set video bitrate (in kbit/s) |
|
|
|
|
|
|
|
|
|
* Video Options are: |
|
|
|
|
|
|
|
|
|
-s size set frame size [160x128] |
|
|
|
|
-r fps set frame rate [25] |
|
|
|
|
-b bitrate set the video bitrate in kbit/s [200] |
|
|
|
|
-vn disable video recording [no] |
|
|
|
|
-s size set frame size [160x128] |
|
|
|
|
-r fps set frame rate [25] |
|
|
|
|
-b bitrate set the video bitrate in kbit/s [200] |
|
|
|
|
-vn disable video recording [no] |
|
|
|
|
-bt tolerance set video bitrate tolerance (in kbit/s) |
|
|
|
|
-sameq use same video quality as source (implies VBR) |
|
|
|
|
-ab bitrate set audio bitrate (in kbit/s) |
|
|
|
|
|
|
|
|
|
* Audio Options are: |
|
|
|
|
|
|
|
|
@ -113,18 +146,30 @@ NOTE: to see the supported input formats, use 'ffmpeg -formats'. |
|
|
|
|
-ac channels set the number of audio channels [1] |
|
|
|
|
-an disable audio recording [no] |
|
|
|
|
|
|
|
|
|
Advanced options are: |
|
|
|
|
* Advanced options are: |
|
|
|
|
|
|
|
|
|
-map file:stream set input stream mapping |
|
|
|
|
-g gop_size set the group of picture size [12] |
|
|
|
|
-intra use only intra frames [no] |
|
|
|
|
-g gop_size set the group of picture size |
|
|
|
|
-intra use only intra frames |
|
|
|
|
-qscale q use fixed video quantiser scale (VBR) |
|
|
|
|
-c comment set the comment string |
|
|
|
|
-vd device set video4linux device name [/dev/video] |
|
|
|
|
-vcodec codec force audio codec |
|
|
|
|
-qmin q min video quantiser scale (VBR) |
|
|
|
|
-qmax q max video quantiser scale (VBR) |
|
|
|
|
-qdiff q max difference between the quantiser scale (VBR) |
|
|
|
|
-qblur blur video quantiser scale blur (VBR) |
|
|
|
|
-qcomp compression video quantiser scale compression (VBR) |
|
|
|
|
-vd device set video device |
|
|
|
|
-vcodec codec force video codec |
|
|
|
|
-me method set motion estimation method |
|
|
|
|
-ad device set audio device name [/dev/dsp] |
|
|
|
|
-bf frames use 'frames' B frames (only MPEG-4) |
|
|
|
|
-hq activate high quality settings |
|
|
|
|
-4mv use four motion vector by macroblock (only MPEG-4) |
|
|
|
|
-ad device set audio device |
|
|
|
|
-acodec codec force audio codec |
|
|
|
|
-deinterlace deinterlace pictures |
|
|
|
|
-benchmark add timings for benchmarking |
|
|
|
|
-hex dump each input packet |
|
|
|
|
-psnr calculate PSNR of compressed frames |
|
|
|
|
-vstats dump video coding statistics to file |
|
|
|
|
|
|
|
|
|
The output file can be "-" to output to a pipe. This is only possible |
|
|
|
|
with mpeg1 and h263 formats. |
|
|
|
|