You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-11-23 21:54:53 +02:00
doc/ffmpeg.texi
Merge changes done to avconv.texi since the last merge into ffmpeg.texi Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
@@ -26,6 +26,23 @@ 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
|
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.
|
rates and resize video on the fly with a high quality polyphase filter.
|
||||||
|
|
||||||
|
ffmpeg reads from an arbitrary number of input "files" (which can be regular
|
||||||
|
files, pipes, network streams, grabbing devices, etc.), specified by the
|
||||||
|
@code{-i} option, and writes to an arbitrary number of output "files", which are
|
||||||
|
specified by a plain output filename. Anything found on the commandline which
|
||||||
|
cannot be interpreted as an option is considered to be an output filename.
|
||||||
|
|
||||||
|
Each input or output file can in principle contain any number of streams of
|
||||||
|
different types (video/audio/subtitle/attachment/data). Allowed number and/or
|
||||||
|
types of streams can be limited by the container format. Selecting, which
|
||||||
|
streams from which inputs go into output, is done either automatically or with
|
||||||
|
the @code{-map} option (see the Stream selection chapter).
|
||||||
|
|
||||||
|
To refer to input files in options, you must use their indices (0-based). E.g.
|
||||||
|
the first input file is @code{0}, the second is @code{1} etc. Similarly, streams
|
||||||
|
within a file are referred to by their indices. E.g. @code{2:3} refers to the
|
||||||
|
fourth stream in the third input file. See also the Stream specifiers chapter.
|
||||||
|
|
||||||
As a general rule, options are applied to the next specified
|
As a general rule, options are applied to the next specified
|
||||||
file. Therefore, order is important, and you can have the same
|
file. Therefore, order is important, and you can have the same
|
||||||
option on the command line multiple times. Each occurrence is
|
option on the command line multiple times. Each occurrence is
|
||||||
@@ -33,6 +50,10 @@ then applied to the next input or output file.
|
|||||||
Exceptions from this rule are the global options (e.g. verbosity level),
|
Exceptions from this rule are the global options (e.g. verbosity level),
|
||||||
which should be specified first.
|
which should be specified first.
|
||||||
|
|
||||||
|
Do not mix input and output files -- first specify all input files, then all
|
||||||
|
output files. Also do not mix options which belong to different files. All
|
||||||
|
options apply ONLY to the next input or output file and are reset between files.
|
||||||
|
|
||||||
@itemize
|
@itemize
|
||||||
@item
|
@item
|
||||||
To set the video bitrate of the output file to 64kbit/s:
|
To set the video bitrate of the output file to 64kbit/s:
|
||||||
@@ -171,10 +192,6 @@ To set the language of the second stream:
|
|||||||
ffmpeg -i INPUT -metadata:s:1 language=eng OUTPUT
|
ffmpeg -i INPUT -metadata:s:1 language=eng OUTPUT
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@item -v @var{number} (@emph{global})
|
|
||||||
This option is deprecated and has no effect, use -loglevel
|
|
||||||
to set verbosity level.
|
|
||||||
|
|
||||||
@item -target @var{type} (@emph{output})
|
@item -target @var{type} (@emph{output})
|
||||||
Specify target file type (@code{vcd}, @code{svcd}, @code{dvd}, @code{dv},
|
Specify target file type (@code{vcd}, @code{svcd}, @code{dvd}, @code{dv},
|
||||||
@code{dv50}). @var{type} may be prefixed with @code{pal-}, @code{ntsc-} or
|
@code{dv50}). @var{type} may be prefixed with @code{pal-}, @code{ntsc-} or
|
||||||
@@ -203,10 +220,48 @@ Stop writing to the stream after @var{framecount} frames.
|
|||||||
Use fixed quality scale (VBR). The meaning of @var{q} is
|
Use fixed quality scale (VBR). The meaning of @var{q} is
|
||||||
codec-dependent.
|
codec-dependent.
|
||||||
|
|
||||||
@item -filter[:@var{stream_specifier}] @var{filter_graph}
|
@item -filter[:@var{stream_specifier}] @var{filter_graph} (@emph{output,per-stream})
|
||||||
@var{filter_graph} is a description of the filter graph to apply to
|
@var{filter_graph} is a description of the filter graph to apply to
|
||||||
the stream. Use @code{-filters} to show all the available filters
|
the stream. Use @code{-filters} to show all the available filters
|
||||||
(including also sources and sinks).
|
(including also sources and sinks).
|
||||||
|
@item -pre[:@var{stream_specifier}] @var{preset_name} (@emph{output,per-stream})
|
||||||
|
Specify the preset for matching stream(s).
|
||||||
|
|
||||||
|
@item -stats (@emph{global})
|
||||||
|
Print encoding progress/statistics. On by default.
|
||||||
|
|
||||||
|
@item -attach @var{filename} (@emph{output})
|
||||||
|
Add an attachment to the output file. This is supported by a few formats
|
||||||
|
like Matroska for e.g. fonts used in rendering subtitles. Attachments
|
||||||
|
are implemented as a specific type of stream, so this option will add
|
||||||
|
a new stream to the file. It is then possible to use per-stream options
|
||||||
|
on this stream in the usual way. Attachment streams created with this
|
||||||
|
option will be created after all the other streams (i.e. those created
|
||||||
|
with @code{-map} or automatic mappings).
|
||||||
|
|
||||||
|
Note that for Matroska you also have to set the mimetype metadata tag:
|
||||||
|
@example
|
||||||
|
ffmpeg -i INPUT -attach DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv
|
||||||
|
@end example
|
||||||
|
(assuming that the attachment stream will be third in the output file).
|
||||||
|
|
||||||
|
@item -dump_attachment[:@var{stream_specifier}] @var{filename} (@emph{input,per-stream})
|
||||||
|
Extract the matching attachment stream into a file named @var{filename}. If
|
||||||
|
@var{filename} is empty, then the value of the @code{filename} metadata tag
|
||||||
|
will be used.
|
||||||
|
|
||||||
|
E.g. to extract the first attachment to a file named 'out.ttf':
|
||||||
|
@example
|
||||||
|
ffmpeg -dump_attachment:t:0 out.ttf INPUT
|
||||||
|
@end example
|
||||||
|
To extract all attachments to files determined by the @code{filename} tag:
|
||||||
|
@example
|
||||||
|
ffmpeg -dump_attachment:t "" INPUT
|
||||||
|
@end example
|
||||||
|
|
||||||
|
Technical note -- attachments are implemented as codec extradata, so this
|
||||||
|
option can actually be used to extract extradata from any stream, not just
|
||||||
|
attachments.
|
||||||
|
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@@ -218,7 +273,7 @@ Set the number of video frames to record. This is an alias for @code{-frames:v}.
|
|||||||
@item -r[:@var{stream_specifier}] @var{fps} (@emph{input/output,per-stream})
|
@item -r[:@var{stream_specifier}] @var{fps} (@emph{input/output,per-stream})
|
||||||
Set frame rate (Hz value, fraction or abbreviation), (default = 25).
|
Set frame rate (Hz value, fraction or abbreviation), (default = 25).
|
||||||
@item -s[:@var{stream_specifier}] @var{size} (@emph{input/output,per-stream})
|
@item -s[:@var{stream_specifier}] @var{size} (@emph{input/output,per-stream})
|
||||||
Set frame size. The format is @samp{wxh} (ffserver default = 160x128, ffmpeg default = same as source).
|
Set frame size. The format is @samp{wxh} (default - same as source).
|
||||||
The following abbreviations are recognized:
|
The following abbreviations are recognized:
|
||||||
@table @samp
|
@table @samp
|
||||||
@item sqcif
|
@item sqcif
|
||||||
@@ -593,6 +648,10 @@ frames after each specified time.
|
|||||||
This option can be useful to ensure that a seek point is present at a
|
This option can be useful to ensure that a seek point is present at a
|
||||||
chapter mark or any other designated place in the output file.
|
chapter mark or any other designated place in the output file.
|
||||||
The timestamps must be specified in ascending order.
|
The timestamps must be specified in ascending order.
|
||||||
|
|
||||||
|
@item -copyinkf[:@var{stream_specifier}] (@emph{output,per-stream})
|
||||||
|
When doing stream copy, copy also non-key frames found at the
|
||||||
|
beginning.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@section Audio Options
|
@section Audio Options
|
||||||
@@ -617,7 +676,7 @@ Disable audio recording.
|
|||||||
@item -acodec @var{codec} (@emph{input/output})
|
@item -acodec @var{codec} (@emph{input/output})
|
||||||
Set the audio codec. This is an alias for @code{-codec:a}.
|
Set the audio codec. This is an alias for @code{-codec:a}.
|
||||||
@item -sample_fmt[:@var{stream_specifier}] @var{sample_fmt} (@emph{output,per-stream})
|
@item -sample_fmt[:@var{stream_specifier}] @var{sample_fmt} (@emph{output,per-stream})
|
||||||
Set the audio sample format. Use @code{-help sample_fmts} to get a list
|
Set the audio sample format. Use @code{-sample_fmts} to get a list
|
||||||
of supported sample formats.
|
of supported sample formats.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@@ -995,6 +1054,21 @@ quality).
|
|||||||
@chapter Examples
|
@chapter Examples
|
||||||
@c man begin EXAMPLES
|
@c man begin EXAMPLES
|
||||||
|
|
||||||
|
@section Preset files
|
||||||
|
|
||||||
|
A preset file contains a sequence of @var{option=value} pairs, one for
|
||||||
|
each line, specifying a sequence of options which can be specified also on
|
||||||
|
the command line. Lines starting with the hash ('#') character are ignored and
|
||||||
|
are used to provide comments. Empty lines are also ignored. Check the
|
||||||
|
@file{presets} directory in the FFmpeg source tree for examples.
|
||||||
|
|
||||||
|
Preset files are specified with the @code{pre} option, this option takes a
|
||||||
|
preset name as input. FFmpeg searches for a file named @var{preset_name}.avpreset in
|
||||||
|
the directories @file{$AVCONV_DATADIR} (if set), and @file{$HOME/.ffmpeg}, and in
|
||||||
|
the data directory 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.avpreset}.
|
||||||
|
|
||||||
@section Video and Audio grabbing
|
@section Video and Audio grabbing
|
||||||
|
|
||||||
If you specify the input format and device then ffmpeg can grab video
|
If you specify the input format and device then ffmpeg can grab video
|
||||||
|
|||||||
Reference in New Issue
Block a user