doc/fftools-common-opts.texi
0cb2d324
 All the numerical options, if not specified otherwise, accept a string
 representing a number as input, which may be followed by one of the SI
 unit prefixes, for example: 'K', 'M', or 'G'.
 
 If 'i' is appended to the SI unit prefix, the complete prefix will be
8c1b942a
 interpreted as a unit prefix for binary multiples, which are based on
0cb2d324
 powers of 1024 instead of powers of 1000. Appending 'B' to the SI unit
 prefix multiplies the value by 8. This allows using, for example:
 'KB', 'MiB', 'G' and 'B' as number suffixes.
25e25617
 
92d71714
 Options which do not take arguments are boolean options, and set the
 corresponding value to true. They can be set to false by prefixing
0cb2d324
 the option name with "no". For example using "-nofoo"
 will set the boolean option with name "foo" to false.
92d71714
 
a7b5e841
 @anchor{Stream specifiers}
99442bfe
 @section Stream specifiers
 Some options are applied per-stream, e.g. bitrate or codec. Stream specifiers
7d057515
 are used to precisely specify which stream(s) a given option belongs to.
99442bfe
 
 A stream specifier is a string generally appended to the option name and
7d057515
 separated from it by a colon. E.g. @code{-codec:a:1 ac3} contains the
 @code{a:1} stream specifier, which matches the second audio stream. Therefore, it
99442bfe
 would select the ac3 codec for the second audio stream.
 
7d057515
 A stream specifier can match several streams, so that the option is applied to all
99442bfe
 of them. E.g. the stream specifier in @code{-b:a 128k} matches all audio
 streams.
 
7d057515
 An empty stream specifier matches all streams. For example, @code{-codec copy}
99442bfe
 or @code{-codec: copy} would copy all the streams without reencoding.
 
 Possible forms of stream specifiers are:
 @table @option
 @item @var{stream_index}
 Matches the stream with this index. E.g. @code{-threads:1 4} would set the
 thread count for the second stream to 4.
 @item @var{stream_type}[:@var{stream_index}]
26a0cd1b
 @var{stream_type} is one of following: 'v' or 'V' for video, 'a' for audio, 's'
 for subtitle, 'd' for data, and 't' for attachments. 'v' matches all video
 streams, 'V' only matches video streams which are not attached pictures, video
 thumbnails or cover arts.  If @var{stream_index} is given, then it matches
7d057515
 stream number @var{stream_index} of this type. Otherwise, it matches all
3ccd1580
 streams of this type.
a5f05e52
 @item p:@var{program_id}[:@var{stream_index}]
7d057515
 If @var{stream_index} is given, then it matches the stream with number @var{stream_index}
 in the program with the id @var{program_id}. Otherwise, it matches all streams in the
 program.
bb6de15d
 @item #@var{stream_id} or i:@var{stream_id}
 Match the stream by stream id (e.g. PID in MPEG-TS container).
b8e4c11d
 @item m:@var{key}[:@var{value}]
 Matches streams with the metadata tag @var{key} having the specified value. If
 @var{value} is not given, matches streams that contain the given tag with any
 value.
50255b7a
 @item u
 Matches streams with usable configuration, the codec must be defined and the
 essential information such as video dimension or audio sample rate must be present.
b8e4c11d
 
082d5235
 Note that in @command{ffmpeg}, matching by metadata will only work properly for
b8e4c11d
 input files.
99442bfe
 @end table
3bd3e46c
 
8b9da8b5
 @section Generic options
 
1a3f7ded
 These options are shared amongst the ff* tools.
8b9da8b5
 
 @table @option
 
5f6cb6eb
 @item -L
 Show license.
 
a3ad68d3
 @item -h, -?, -help, --help [@var{arg}]
 Show help. An optional parameter may be specified to print help about a specific
4149981b
 item. If no argument is specified, only basic (non advanced) tool
 options are shown.
a3ad68d3
 
 Possible values of @var{arg} are:
 @table @option
4149981b
 @item long
 Print advanced tool options in addition to the basic tool options.
 
 @item full
 Print complete list of options, including shared and private options
 for encoders, decoders, demuxers, muxers, filters, etc.
 
a3ad68d3
 @item decoder=@var{decoder_name}
 Print detailed information about the decoder named @var{decoder_name}. Use the
 @option{-decoders} option to get a list of all decoders.
 
 @item encoder=@var{encoder_name}
 Print detailed information about the encoder named @var{encoder_name}. Use the
 @option{-encoders} option to get a list of all encoders.
1136bd36
 
 @item demuxer=@var{demuxer_name}
 Print detailed information about the demuxer named @var{demuxer_name}. Use the
 @option{-formats} option to get a list of all demuxers and muxers.
 
 @item muxer=@var{muxer_name}
 Print detailed information about the muxer named @var{muxer_name}. Use the
 @option{-formats} option to get a list of all muxers and demuxers.
 
92104600
 @item filter=@var{filter_name}
 Print detailed information about the filter name @var{filter_name}. Use the
 @option{-filters} option to get a list of all filters.
a3ad68d3
 @end table
5f6cb6eb
 
 @item -version
 Show version.
 
 @item -formats
1cff9085
 Show available formats (including devices).
 
40b6e287
 @item -demuxers
 Show available demuxers.
 
 @item -muxers
 Show available muxers.
 
1cff9085
 @item -devices
 Show available devices.
5f6cb6eb
 
 @item -codecs
7c101949
 Show all codecs known to libavcodec.
5f6cb6eb
 
7c101949
 Note that the term 'codec' is used throughout this documentation as a shortcut
 for what is more correctly called a media bitstream format.
 
 @item -decoders
 Show available decoders.
 
 @item -encoders
 Show all available encoders.
5f6cb6eb
 
 @item -bsfs
 Show available bitstream filters.
 
 @item -protocols
 Show available protocols.
 
 @item -filters
 Show available libavfilter filters.
 
3f7bb426
 @item -pix_fmts
 Show available pixel formats.
 
05bffc12
 @item -sample_fmts
 Show available sample formats.
 
786dadc0
 @item -layouts
 Show channel names and standard channel layouts.
 
4e268285
 @item -colors
 Show recognized color names.
 
5f558198
 @item -sources @var{device}[,@var{opt1}=@var{val1}[,@var{opt2}=@var{val2}]...]
fdd4922d
 Show autodetected sources of the input device.
5f558198
 Some devices may provide system-dependent source names that cannot be autodetected.
 The returned list cannot be assumed to be always complete.
 @example
 ffmpeg -sources pulse,server=192.168.0.4
 @end example
 
 @item -sinks @var{device}[,@var{opt1}=@var{val1}[,@var{opt2}=@var{val2}]...]
 Show autodetected sinks of the output device.
 Some devices may provide system-dependent sink names that cannot be autodetected.
 The returned list cannot be assumed to be always complete.
 @example
 ffmpeg -sinks pulse,server=192.168.0.4
 @end example
 
0f8435c0
 @item -loglevel [repeat+]@var{loglevel} | -v [repeat+]@var{loglevel}
5f6cb6eb
 Set the logging level used by the library.
0f8435c0
 Adding "repeat+" indicates that repeated log output should not be compressed
 to the first line and the "Last message repeated n times" line will be
 omitted. "repeat" can also be used alone.
 If "repeat" is used alone, and with no prior loglevel set, the default
 loglevel will be used. If multiple loglevel parameters are given, using
 'repeat' will not change the loglevel.
55c5a383
 @var{loglevel} is a string or a number containing one of the following values:
5f6cb6eb
 @table @samp
55c5a383
 @item quiet, -8
4c79367e
 Show nothing at all; be silent.
55c5a383
 @item panic, 0
4c79367e
 Only show fatal errors which could lead the process to crash, such as
99d68d46
 an assertion failure. This is not currently used for anything.
55c5a383
 @item fatal, 8
4c79367e
 Only show fatal errors. These are errors after which the process absolutely
99d68d46
 cannot continue.
55c5a383
 @item error, 16
4c79367e
 Show all errors, including ones which can be recovered from.
55c5a383
 @item warning, 24
4c79367e
 Show all warnings and errors. Any message related to possibly
 incorrect or unexpected events will be shown.
55c5a383
 @item info, 32
4c79367e
 Show informative messages during processing. This is in addition to
 warnings and errors. This is the default value.
55c5a383
 @item verbose, 40
4c79367e
 Same as @code{info}, except more verbose.
55c5a383
 @item debug, 48
4c79367e
 Show everything, including debugging information.
8e8219e0
 @item trace, 56
5f6cb6eb
 @end table
 
99d68d46
 By default the program logs to stderr. If coloring is supported by the
1e27c477
 terminal, colors are used to mark errors and warnings. Log coloring
3011ecde
 can be disabled setting the environment variable
1466a518
 @env{AV_LOG_FORCE_NOCOLOR} or @env{NO_COLOR}, or can be forced setting
 the environment variable @env{AV_LOG_FORCE_COLOR}.
c3d07c17
 The use of the environment variable @env{NO_COLOR} is deprecated and
99d68d46
 will be dropped in a future FFmpeg version.
1e27c477
 
337ce558
 @item -report
 Dump full command line and console output to a file named
 @code{@var{program}-@var{YYYYMMDD}-@var{HHMMSS}.log} in the current
 directory.
 This file can be useful for bug reports.
 It also implies @code{-loglevel verbose}.
 
10ef8f06
 Setting the environment variable @env{FFREPORT} to any value has the
992772b9
 same effect. If the value is a ':'-separated key=value sequence, these
10ef8f06
 options will affect the report; option values must be escaped if they
992772b9
 contain special characters or the options delimiter ':' (see the
10ef8f06
 ``Quoting and escaping'' section in the ffmpeg-utils manual).
 
 The following options are recognized:
1fa47f8d
 @table @option
 @item file
 set the file name to use for the report; @code{%p} is expanded to the name
 of the program, @code{%t} is expanded to a timestamp, @code{%%} is expanded
 to a plain @code{%}
d82ecfce
 @item level
10ef8f06
 set the log verbosity level using a numerical value (see @code{-loglevel}).
1fa47f8d
 @end table
 
10ef8f06
 For example, to output a report to a file named @file{ffreport.log}
 using a log level of @code{32} (alias for log level @code{info}):
 
 @example
 FFREPORT=file=ffreport.log:level=32 ffmpeg -i input output
 @end example
 
1fa47f8d
 Errors in parsing the environment variable are not fatal, and will not
 appear in the report.
337ce558
 
b4c89c90
 @item -hide_banner
 Suppress printing banner.
 
 All FFmpeg tools will normally show a copyright notice, build options
 and library versions. This option can be used to suppress printing
 this information.
 
6df42f98
 @item -cpuflags flags (@emph{global})
 Allows setting and clearing cpu flags. This option is intended
 for testing. Do not use it unless you know what you're doing.
3bd749f3
 @example
 ffmpeg -cpuflags -sse+mmx ...
 ffmpeg -cpuflags mmx ...
 ffmpeg -cpuflags 0 ...
 @end example
e54a15b6
 Possible flags for this option are:
 @table @samp
 @item x86
 @table @samp
 @item mmx
 @item mmxext
 @item sse
 @item sse2
 @item sse2slow
 @item sse3
 @item sse3slow
 @item ssse3
 @item atom
 @item sse4.1
 @item sse4.2
 @item avx
410c93cf
 @item avx2
e54a15b6
 @item xop
410c93cf
 @item fma3
e54a15b6
 @item fma4
 @item 3dnow
 @item 3dnowext
410c93cf
 @item bmi1
 @item bmi2
e54a15b6
 @item cmov
 @end table
 @item ARM
 @table @samp
 @item armv5te
 @item armv6
 @item armv6t2
 @item vfp
 @item vfpv3
 @item neon
666ec9bd
 @item setend
e54a15b6
 @end table
9fc45681
 @item AArch64
 @table @samp
 @item armv8
 @item vfp
 @item neon
 @end table
e54a15b6
 @item PowerPC
 @table @samp
 @item altivec
 @end table
 @item Specific Processors
 @table @samp
 @item pentium2
 @item pentium3
 @item pentium4
 @item k6
 @item k62
 @item athlon
 @item athlonxp
 @item k8
 @end table
 @end table
8b9da8b5
 @end table
22b203ba
 
 @section AVOptions
 
e0e65ddb
 These options are provided directly by the libavformat, libavdevice and
 libavcodec libraries. To see the list of available AVOptions, use the
22b203ba
 @option{-help} option. They are separated into two categories:
 @table @option
 @item generic
d5837d7f
 These options can be set for any container, codec or device. Generic options
 are listed under AVFormatContext options for containers/devices and under
e0e65ddb
 AVCodecContext options for codecs.
22b203ba
 @item private
e0e65ddb
 These options are specific to the given container, device or codec. Private
 options are listed under their corresponding containers/devices/codecs.
22b203ba
 @end table
 
 For example to write an ID3v2.3 header instead of a default ID3v2.4 to
 an MP3 file, use the @option{id3v2_version} private option of the MP3
 muxer:
 @example
 ffmpeg -i input.flac -id3v2_version 3 out.mp3
 @end example
 
57618d80
 All codec AVOptions are per-stream, and thus a stream specifier
 should be attached to them.
d4863fc1
 
57618d80
 Note: the @option{-nooption} syntax cannot be used for boolean
 AVOptions, use @option{-option 0}/@option{-option 1}.
d4863fc1
 
57618d80
 Note: the old undocumented way of specifying per-stream AVOptions by
 prepending v/a/s to the options name is now obsolete and will be
 removed soon.