If no input file is given, audio/video grabbing is done.
As a general rule, options are applied to the next specified
file. For example, if you give the '-b 64' option, it sets the video
bitrate of the next file. 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 parameter fors the outputs as the one
specified for the inputs.
@section Main options
@table @samp
@item -L
show license
@item -h
show help
@item -formats
show available formats, codecs, protocols, ...
@item -f fmt
force format
@item -i filename
input file name
@item -y
overwrite output files
@item -t duration
set the recording time in seconds. @code{hh:mm:ss[.xxx]} syntax is also
supported.
@item -title string
set the title
@item -author string
set the author
@item -copyright string
set the copyright
@item -comment string
set the comment
@item -b bitrate
set video bitrate (in kbit/s)
@end table
@section Video Options
@table @samp
@item -s size
set frame size [160x128]
@item -r fps
set frame rate [25]
@item -b bitrate
set the video bitrate in kbit/s [200]
@item -vn
disable video recording [no]
@item -bt tolerance
set video bitrate tolerance (in kbit/s)
@item -sameq
use same video quality as source (implies VBR)
@item -pass n
select the pass number (1 or 2). It is useful to do two pass encoding. The statistics of the video are recorded in the first pass and the video at the exact requested bit rate is generated in the second pass.
@item -passlogfile file
select two pass log file name
@end table
@section Audio Options
@table @samp
@item -ab bitrate
set audio bitrate (in kbit/s)
@item -ar freq
set the audio sampling freq [44100]
@item -ab bitrate
set the audio bitrate in kbit/s [64]
@item -ac channels
set the number of audio channels [1]
@item -an
disable audio recording [no]
@end table
@section Advanced options
@table @samp
@item -map file:stream
set input stream mapping
@item -g gop_size
set the group of picture size
@item -intra
use only intra frames
@item -qscale q
use fixed video quantiser scale (VBR)
@item -qmin q
min video quantiser scale (VBR)
@item -qmax q
max video quantiser scale (VBR)
@item -qdiff q
max difference between the quantiser scale (VBR)
@item -qblur blur
video quantiser scale blur (VBR)
@item -qcomp compression
video quantiser scale compression (VBR)
@item -vd device
set video device
@item -vcodec codec
force video codec
@item -me method
set motion estimation method
@item -bf frames
use 'frames' B frames (only MPEG-4)
@item -hq
activate high quality settings
@item -4mv
use four motion vector by macroblock (only MPEG-4)
@item -ad device
set audio device
@item -acodec codec
force audio codec
@item -deinterlace
deinterlace pictures
@item -benchmark
add timings for benchmarking
@item -hex
dump each input packet
@item -psnr
calculate PSNR of compressed frames
@item -vstats
dump video coding statistics to file
@end table
@section Protocols
The output file can be "-" to output to a pipe. This is only possible
with mpeg1 and h263 formats.
ffmpeg handles also many protocols specified with the URL syntax.
Use 'ffmpeg -formats' to have a list of the supported protocols.
The protocol @code{http:} is currently used only to communicate with
ffserver (see the ffserver documentation). When ffmpeg will be a
video player it will also be used for streaming :-)
@chapter Tips
@itemize
@item For streaming at very low bit rate application, use a low frame rate
and a small gop size. This is especially true for real video where
the Linux player does not seem to be very fast, so it can miss