Note that you must activate the right video source and channel before
launching FFmpeg with any TV viewer such as xawtv
-(@url{http://bytesex.org/xawtv/}) by Gerd Knorr. You also
+(@url{http://linux.bytesex.org/xawtv/}) by Gerd Knorr. You also
have to set the audio recording levels correctly with a
standard mixer.
NOTE: To see the supported input formats, use @code{ffmpeg -formats}.
-* You can extract images from a video:
+* You can extract images from a video, or create a video from many images:
+For extracting images from a video:
@example
ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
@end example
output them in files named @file{foo-001.jpeg}, @file{foo-002.jpeg},
etc. Images will be rescaled to fit the new WxH values.
+If you want to extract just a limited number of frames, you can use the
+above command in combination with the -vframes or -t option, or in
+combination with -ss to start extracting from a certain point in time.
+
+For creating a video from many images:
+@example
+ffmpeg -f image2 -i foo-%03d.jpeg -r 12 -s WxH foo.avi
+@end example
+
The syntax @code{foo-%03d.jpeg} specifies to use a decimal number
composed of three digits padded with zeroes to express the sequence
number. It is the same syntax supported by the C printf function, but
only formats accepting a normal integer are suitable.
-If you want to extract just a limited number of frames, you can use the
-above command in combination with the -vframes or -t option, or in
-combination with -ss to start extracting from a certain point in time.
-
* You can put many streams of the same type in the output:
@example
@section Main options
@table @option
-@item -L
-Show license.
-
-@item -h
-Show help.
-
-@item -version
-Show version.
-
-@item -formats
-Show available formats, codecs, protocols, ...
+@include fftools-common-opts.texi
@item -f @var{fmt}
Force format.
Specifying a positive offset means that the corresponding
streams are delayed by 'offset' seconds.
-@item -title @var{string}
-Set the title.
-
@item -timestamp @var{time}
Set the timestamp.
-@item -author @var{string}
-Set the author.
-
-@item -copyright @var{string}
-Set the copyright.
-
-@item -comment @var{string}
-Set the comment.
-
-@item -album @var{string}
-Set the album.
+@item -metadata @var{key}=@var{value}
+Set a metadata key/value pair.
-@item -track @var{number}
-Set the track.
-
-@item -year @var{number}
-Set the year.
+For example, for setting the title in the output file:
+@example
+ffmpeg -i in.avi -metadata title="my title" out.flv
+@end example
@item -v @var{number}
Set the logging verbosity level.
352x288
@item 4cif
704x576
+@item 16cif
+1408x1152
@item qqvga
160x120
@item qvga
@item -newvideo
Add a new video stream to the current output stream.
+@item -vlang @var{code}
+Set the ISO 639 language code (3 letters) of the current video stream.
+
@end table
@section Advanced Video Options
Dump video coding statistics to @file{vstats_HHMMSS.log}.
@item -vstats_file @var{file}
Dump video coding statistics to @var{file}.
-@item -vhook @var{module}
-Insert video processing @var{module}. @var{module} contains the module
-name and its parameters separated by spaces.
@item -top @var{n}
top=1/bottom=0/auto=-1 field first
@item -dc @var{precision}
Add a new subtitle stream to the current output stream.
@item -slang @var{code}
Set the ISO 639 language code (3 letters) of the current subtitle stream.
+@item -sn
+Disable subtitle recording.
@item -sbsf @var{bitstream_filter}
Bitstream filters available are "mov2textsub", "text2movsub".
@example
@item -bitexact
Only use bit exact algorithms (for codec testing).
@item -ps @var{size}
-Set packet size in bits.
+Set RTP payload size in bytes.
@item -re
Read input at native frame rate. Mainly used to simulate a grab device.
@item -loop_input
('#') character are ignored and are used to provide comments. Check
the @file{ffpresets} directory in the FFmpeg source tree for examples.
-Preset files are specified with the @code{vpre}, @code{apre} and
-@code{spre} options. The options specified in a preset file are
+Preset files are specified with the @code{vpre}, @code{apre},
+@code{spre}, and @code{fpre} options. The @code{fpre} option takes the
+filename of the preset instead of a preset name as input and can be
+used for any kind of codec. For the @code{vpre}, @code{apre}, and
+@code{spre} options, the options specified in a preset file are
applied to the currently selected codec of the same type as the preset
option.
-The argument passed to the preset options identifies the preset file
-to use according to the following rules.
+The argument passed to the @code{vpre}, @code{apre}, and @code{spre}
+preset options identifies the preset file to use according to the
+following rules:
First ffmpeg searches for a file named @var{arg}.ffpreset in the
-directories @file{$HOME/.ffmpeg}, @file{/usr/local/share/ffmpeg} and
-@file{/usr/share/ffmpeg} in that order. For example, if the argument
-is @code{libx264-max}, it will search for the file
-@file{libx264-max.ffpreset}.
+directories @file{$HOME/.ffmpeg}, and in the datadir defined at
+configuration time (usually @file{PREFIX/share/ffmpeg}) in that
+order. For example, if the argument is @code{libx264-max}, it will
+search for the file @file{libx264-max.ffpreset}.
If no such file is found, then ffmpeg will search for a file named
@var{codec_name}-@var{arg}.ffpreset in the above-mentioned
the video codec with @code{-vcodec libx264} and use @code{-vpre max},
then it will search for the file @file{libx264-max.ffpreset}.
-Finally, if the above rules failed and the argument specifies an
-absolute pathname, ffmpeg will search for that filename. This way you
-can specify the absolute and complete filename of the preset file, for
-example @file{./ffpresets/libx264-max.ffpreset}.
-
-@node FFmpeg formula evaluator
+@anchor{FFmpeg formula evaluator}
@section FFmpeg formula evaluator
When evaluating a rate control string, FFmpeg uses an internal formula
FFmpeg also handles many protocols specified with an URL syntax.
-Use 'ffmpeg -formats' to see a list of the supported protocols.
+Use 'ffmpeg -protocols' to see 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