annotate ffmpeg/doc/ffprobe-all.1 @ 13:844d341cf643 tip

Back up before ISMIR
author Yading Song <yading.song@eecs.qmul.ac.uk>
date Thu, 31 Oct 2013 13:17:06 +0000
parents 6840f77b83aa
children
rev   line source
yading@10 1 .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
yading@10 2 .\"
yading@10 3 .\" Standard preamble:
yading@10 4 .\" ========================================================================
yading@10 5 .de Sp \" Vertical space (when we can't use .PP)
yading@10 6 .if t .sp .5v
yading@10 7 .if n .sp
yading@10 8 ..
yading@10 9 .de Vb \" Begin verbatim text
yading@10 10 .ft CW
yading@10 11 .nf
yading@10 12 .ne \\$1
yading@10 13 ..
yading@10 14 .de Ve \" End verbatim text
yading@10 15 .ft R
yading@10 16 .fi
yading@10 17 ..
yading@10 18 .\" Set up some character translations and predefined strings. \*(-- will
yading@10 19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
yading@10 20 .\" double quote, and \*(R" will give a right double quote. \*(C+ will
yading@10 21 .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
yading@10 22 .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
yading@10 23 .\" nothing in troff, for use with C<>.
yading@10 24 .tr \(*W-
yading@10 25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
yading@10 26 .ie n \{\
yading@10 27 . ds -- \(*W-
yading@10 28 . ds PI pi
yading@10 29 . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
yading@10 30 . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
yading@10 31 . ds L" ""
yading@10 32 . ds R" ""
yading@10 33 . ds C` ""
yading@10 34 . ds C' ""
yading@10 35 'br\}
yading@10 36 .el\{\
yading@10 37 . ds -- \|\(em\|
yading@10 38 . ds PI \(*p
yading@10 39 . ds L" ``
yading@10 40 . ds R" ''
yading@10 41 'br\}
yading@10 42 .\"
yading@10 43 .\" Escape single quotes in literal strings from groff's Unicode transform.
yading@10 44 .ie \n(.g .ds Aq \(aq
yading@10 45 .el .ds Aq '
yading@10 46 .\"
yading@10 47 .\" If the F register is turned on, we'll generate index entries on stderr for
yading@10 48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
yading@10 49 .\" entries marked with X<> in POD. Of course, you'll have to process the
yading@10 50 .\" output yourself in some meaningful fashion.
yading@10 51 .ie \nF \{\
yading@10 52 . de IX
yading@10 53 . tm Index:\\$1\t\\n%\t"\\$2"
yading@10 54 ..
yading@10 55 . nr % 0
yading@10 56 . rr F
yading@10 57 .\}
yading@10 58 .el \{\
yading@10 59 . de IX
yading@10 60 ..
yading@10 61 .\}
yading@10 62 .\"
yading@10 63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
yading@10 64 .\" Fear. Run. Save yourself. No user-serviceable parts.
yading@10 65 . \" fudge factors for nroff and troff
yading@10 66 .if n \{\
yading@10 67 . ds #H 0
yading@10 68 . ds #V .8m
yading@10 69 . ds #F .3m
yading@10 70 . ds #[ \f1
yading@10 71 . ds #] \fP
yading@10 72 .\}
yading@10 73 .if t \{\
yading@10 74 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
yading@10 75 . ds #V .6m
yading@10 76 . ds #F 0
yading@10 77 . ds #[ \&
yading@10 78 . ds #] \&
yading@10 79 .\}
yading@10 80 . \" simple accents for nroff and troff
yading@10 81 .if n \{\
yading@10 82 . ds ' \&
yading@10 83 . ds ` \&
yading@10 84 . ds ^ \&
yading@10 85 . ds , \&
yading@10 86 . ds ~ ~
yading@10 87 . ds /
yading@10 88 .\}
yading@10 89 .if t \{\
yading@10 90 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
yading@10 91 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
yading@10 92 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
yading@10 93 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
yading@10 94 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
yading@10 95 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
yading@10 96 .\}
yading@10 97 . \" troff and (daisy-wheel) nroff accents
yading@10 98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
yading@10 99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
yading@10 100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
yading@10 101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
yading@10 102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
yading@10 103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
yading@10 104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
yading@10 105 .ds ae a\h'-(\w'a'u*4/10)'e
yading@10 106 .ds Ae A\h'-(\w'A'u*4/10)'E
yading@10 107 . \" corrections for vroff
yading@10 108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
yading@10 109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
yading@10 110 . \" for low resolution devices (crt and lpr)
yading@10 111 .if \n(.H>23 .if \n(.V>19 \
yading@10 112 \{\
yading@10 113 . ds : e
yading@10 114 . ds 8 ss
yading@10 115 . ds o a
yading@10 116 . ds d- d\h'-1'\(ga
yading@10 117 . ds D- D\h'-1'\(hy
yading@10 118 . ds th \o'bp'
yading@10 119 . ds Th \o'LP'
yading@10 120 . ds ae ae
yading@10 121 . ds Ae AE
yading@10 122 .\}
yading@10 123 .rm #[ #] #H #V #F C
yading@10 124 .\" ========================================================================
yading@10 125 .\"
yading@10 126 .IX Title "FFPROBE-ALL 1"
yading@10 127 .TH FFPROBE-ALL 1 "2013-04-21" " " " "
yading@10 128 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
yading@10 129 .\" way too many mistakes in technical documents.
yading@10 130 .if n .ad l
yading@10 131 .nh
yading@10 132 .SH "NAME"
yading@10 133 ffprobe \- ffprobe media prober
yading@10 134 .SH "SYNOPSIS"
yading@10 135 .IX Header "SYNOPSIS"
yading@10 136 ffprobe [\fIoptions\fR] [\fIinput_file\fR]
yading@10 137 .SH "DESCRIPTION"
yading@10 138 .IX Header "DESCRIPTION"
yading@10 139 ffprobe gathers information from multimedia streams and prints it in
yading@10 140 human\- and machine-readable fashion.
yading@10 141 .PP
yading@10 142 For example it can be used to check the format of the container used
yading@10 143 by a multimedia stream and the format and type of each media stream
yading@10 144 contained in it.
yading@10 145 .PP
yading@10 146 If a filename is specified in input, ffprobe will try to open and
yading@10 147 probe the file content. If the file cannot be opened or recognized as
yading@10 148 a multimedia file, a positive exit code is returned.
yading@10 149 .PP
yading@10 150 ffprobe may be employed both as a standalone application or in
yading@10 151 combination with a textual filter, which may perform more
yading@10 152 sophisticated processing, e.g. statistical processing or plotting.
yading@10 153 .PP
yading@10 154 Options are used to list some of the formats supported by ffprobe or
yading@10 155 for specifying which information to display, and for setting how
yading@10 156 ffprobe will show it.
yading@10 157 .PP
yading@10 158 ffprobe output is designed to be easily parsable by a textual filter,
yading@10 159 and consists of one or more sections of a form defined by the selected
yading@10 160 writer, which is specified by the \fBprint_format\fR option.
yading@10 161 .PP
yading@10 162 Sections may contain other nested sections, and are identified by a
yading@10 163 name (which may be shared by other sections), and an unique
yading@10 164 name. See the output of \fBsections\fR.
yading@10 165 .PP
yading@10 166 Metadata tags stored in the container or in the streams are recognized
yading@10 167 and printed in the corresponding \*(L"\s-1FORMAT\s0\*(R" or \*(L"\s-1STREAM\s0\*(R" section.
yading@10 168 .SH "OPTIONS"
yading@10 169 .IX Header "OPTIONS"
yading@10 170 All the numerical options, if not specified otherwise, accept a string
yading@10 171 representing a number as input, which may be followed by one of the \s-1SI\s0
yading@10 172 unit prefixes, for example: 'K', 'M', or 'G'.
yading@10 173 .PP
yading@10 174 If 'i' is appended to the \s-1SI\s0 unit prefix, the complete prefix will be
yading@10 175 interpreted as a unit prefix for binary multiplies, which are based on
yading@10 176 powers of 1024 instead of powers of 1000. Appending 'B' to the \s-1SI\s0 unit
yading@10 177 prefix multiplies the value by 8. This allows using, for example:
yading@10 178 \&'\s-1KB\s0', 'MiB', 'G' and 'B' as number suffixes.
yading@10 179 .PP
yading@10 180 Options which do not take arguments are boolean options, and set the
yading@10 181 corresponding value to true. They can be set to false by prefixing
yading@10 182 the option name with \*(L"no\*(R". For example using \*(L"\-nofoo\*(R"
yading@10 183 will set the boolean option with name \*(L"foo\*(R" to false.
yading@10 184 .SS "Stream specifiers"
yading@10 185 .IX Subsection "Stream specifiers"
yading@10 186 Some options are applied per-stream, e.g. bitrate or codec. Stream specifiers
yading@10 187 are used to precisely specify which stream(s) a given option belongs to.
yading@10 188 .PP
yading@10 189 A stream specifier is a string generally appended to the option name and
yading@10 190 separated from it by a colon. E.g. \f(CW\*(C`\-codec:a:1 ac3\*(C'\fR contains the
yading@10 191 \&\f(CW\*(C`a:1\*(C'\fR stream specifier, which matches the second audio stream. Therefore, it
yading@10 192 would select the ac3 codec for the second audio stream.
yading@10 193 .PP
yading@10 194 A stream specifier can match several streams, so that the option is applied to all
yading@10 195 of them. E.g. the stream specifier in \f(CW\*(C`\-b:a 128k\*(C'\fR matches all audio
yading@10 196 streams.
yading@10 197 .PP
yading@10 198 An empty stream specifier matches all streams. For example, \f(CW\*(C`\-codec copy\*(C'\fR
yading@10 199 or \f(CW\*(C`\-codec: copy\*(C'\fR would copy all the streams without reencoding.
yading@10 200 .PP
yading@10 201 Possible forms of stream specifiers are:
yading@10 202 .IP "\fIstream_index\fR" 4
yading@10 203 .IX Item "stream_index"
yading@10 204 Matches the stream with this index. E.g. \f(CW\*(C`\-threads:1 4\*(C'\fR would set the
yading@10 205 thread count for the second stream to 4.
yading@10 206 .IP "\fIstream_type\fR\fB[:\fR\fIstream_index\fR\fB]\fR" 4
yading@10 207 .IX Item "stream_type[:stream_index]"
yading@10 208 \&\fIstream_type\fR is one of following: 'v' for video, 'a' for audio, 's' for subtitle,
yading@10 209 \&'d' for data, and 't' for attachments. If \fIstream_index\fR is given, then it matches
yading@10 210 stream number \fIstream_index\fR of this type. Otherwise, it matches all
yading@10 211 streams of this type.
yading@10 212 .IP "\fBp:\fR\fIprogram_id\fR\fB[:\fR\fIstream_index\fR\fB]\fR" 4
yading@10 213 .IX Item "p:program_id[:stream_index]"
yading@10 214 If \fIstream_index\fR is given, then it matches the stream with number \fIstream_index\fR
yading@10 215 in the program with the id \fIprogram_id\fR. Otherwise, it matches all streams in the
yading@10 216 program.
yading@10 217 .IP "\fB#\fR\fIstream_id\fR" 4
yading@10 218 .IX Item "#stream_id"
yading@10 219 Matches the stream by a format-specific \s-1ID\s0.
yading@10 220 .SS "Generic options"
yading@10 221 .IX Subsection "Generic options"
yading@10 222 These options are shared amongst the ff* tools.
yading@10 223 .IP "\fB\-L\fR" 4
yading@10 224 .IX Item "-L"
yading@10 225 Show license.
yading@10 226 .IP "\fB\-h, \-?, \-help, \-\-help [\fR\fIarg\fR\fB]\fR" 4
yading@10 227 .IX Item "-h, -?, -help, --help [arg]"
yading@10 228 Show help. An optional parameter may be specified to print help about a specific
yading@10 229 item.
yading@10 230 .Sp
yading@10 231 Possible values of \fIarg\fR are:
yading@10 232 .RS 4
yading@10 233 .IP "\fBdecoder=\fR\fIdecoder_name\fR" 4
yading@10 234 .IX Item "decoder=decoder_name"
yading@10 235 Print detailed information about the decoder named \fIdecoder_name\fR. Use the
yading@10 236 \&\fB\-decoders\fR option to get a list of all decoders.
yading@10 237 .IP "\fBencoder=\fR\fIencoder_name\fR" 4
yading@10 238 .IX Item "encoder=encoder_name"
yading@10 239 Print detailed information about the encoder named \fIencoder_name\fR. Use the
yading@10 240 \&\fB\-encoders\fR option to get a list of all encoders.
yading@10 241 .IP "\fBdemuxer=\fR\fIdemuxer_name\fR" 4
yading@10 242 .IX Item "demuxer=demuxer_name"
yading@10 243 Print detailed information about the demuxer named \fIdemuxer_name\fR. Use the
yading@10 244 \&\fB\-formats\fR option to get a list of all demuxers and muxers.
yading@10 245 .IP "\fBmuxer=\fR\fImuxer_name\fR" 4
yading@10 246 .IX Item "muxer=muxer_name"
yading@10 247 Print detailed information about the muxer named \fImuxer_name\fR. Use the
yading@10 248 \&\fB\-formats\fR option to get a list of all muxers and demuxers.
yading@10 249 .IP "\fBfilter=\fR\fIfilter_name\fR" 4
yading@10 250 .IX Item "filter=filter_name"
yading@10 251 Print detailed information about the filter name \fIfilter_name\fR. Use the
yading@10 252 \&\fB\-filters\fR option to get a list of all filters.
yading@10 253 .RE
yading@10 254 .RS 4
yading@10 255 .RE
yading@10 256 .IP "\fB\-version\fR" 4
yading@10 257 .IX Item "-version"
yading@10 258 Show version.
yading@10 259 .IP "\fB\-formats\fR" 4
yading@10 260 .IX Item "-formats"
yading@10 261 Show available formats.
yading@10 262 .IP "\fB\-codecs\fR" 4
yading@10 263 .IX Item "-codecs"
yading@10 264 Show all codecs known to libavcodec.
yading@10 265 .Sp
yading@10 266 Note that the term 'codec' is used throughout this documentation as a shortcut
yading@10 267 for what is more correctly called a media bitstream format.
yading@10 268 .IP "\fB\-decoders\fR" 4
yading@10 269 .IX Item "-decoders"
yading@10 270 Show available decoders.
yading@10 271 .IP "\fB\-encoders\fR" 4
yading@10 272 .IX Item "-encoders"
yading@10 273 Show all available encoders.
yading@10 274 .IP "\fB\-bsfs\fR" 4
yading@10 275 .IX Item "-bsfs"
yading@10 276 Show available bitstream filters.
yading@10 277 .IP "\fB\-protocols\fR" 4
yading@10 278 .IX Item "-protocols"
yading@10 279 Show available protocols.
yading@10 280 .IP "\fB\-filters\fR" 4
yading@10 281 .IX Item "-filters"
yading@10 282 Show available libavfilter filters.
yading@10 283 .IP "\fB\-pix_fmts\fR" 4
yading@10 284 .IX Item "-pix_fmts"
yading@10 285 Show available pixel formats.
yading@10 286 .IP "\fB\-sample_fmts\fR" 4
yading@10 287 .IX Item "-sample_fmts"
yading@10 288 Show available sample formats.
yading@10 289 .IP "\fB\-layouts\fR" 4
yading@10 290 .IX Item "-layouts"
yading@10 291 Show channel names and standard channel layouts.
yading@10 292 .IP "\fB\-loglevel [repeat+]\fR\fIloglevel\fR \fB| \-v [repeat+]\fR\fIloglevel\fR" 4
yading@10 293 .IX Item "-loglevel [repeat+]loglevel | -v [repeat+]loglevel"
yading@10 294 Set the logging level used by the library.
yading@10 295 Adding \*(L"repeat+\*(R" indicates that repeated log output should not be compressed
yading@10 296 to the first line and the \*(L"Last message repeated n times\*(R" line will be
yading@10 297 omitted. \*(L"repeat\*(R" can also be used alone.
yading@10 298 If \*(L"repeat\*(R" is used alone, and with no prior loglevel set, the default
yading@10 299 loglevel will be used. If multiple loglevel parameters are given, using
yading@10 300 \&'repeat' will not change the loglevel.
yading@10 301 \&\fIloglevel\fR is a number or a string containing one of the following values:
yading@10 302 .RS 4
yading@10 303 .IP "\fBquiet\fR" 4
yading@10 304 .IX Item "quiet"
yading@10 305 Show nothing at all; be silent.
yading@10 306 .IP "\fBpanic\fR" 4
yading@10 307 .IX Item "panic"
yading@10 308 Only show fatal errors which could lead the process to crash, such as
yading@10 309 and assert failure. This is not currently used for anything.
yading@10 310 .IP "\fBfatal\fR" 4
yading@10 311 .IX Item "fatal"
yading@10 312 Only show fatal errors. These are errors after which the process absolutely
yading@10 313 cannot continue after.
yading@10 314 .IP "\fBerror\fR" 4
yading@10 315 .IX Item "error"
yading@10 316 Show all errors, including ones which can be recovered from.
yading@10 317 .IP "\fBwarning\fR" 4
yading@10 318 .IX Item "warning"
yading@10 319 Show all warnings and errors. Any message related to possibly
yading@10 320 incorrect or unexpected events will be shown.
yading@10 321 .IP "\fBinfo\fR" 4
yading@10 322 .IX Item "info"
yading@10 323 Show informative messages during processing. This is in addition to
yading@10 324 warnings and errors. This is the default value.
yading@10 325 .IP "\fBverbose\fR" 4
yading@10 326 .IX Item "verbose"
yading@10 327 Same as \f(CW\*(C`info\*(C'\fR, except more verbose.
yading@10 328 .IP "\fBdebug\fR" 4
yading@10 329 .IX Item "debug"
yading@10 330 Show everything, including debugging information.
yading@10 331 .RE
yading@10 332 .RS 4
yading@10 333 .Sp
yading@10 334 By default the program logs to stderr, if coloring is supported by the
yading@10 335 terminal, colors are used to mark errors and warnings. Log coloring
yading@10 336 can be disabled setting the environment variable
yading@10 337 \&\fB\s-1AV_LOG_FORCE_NOCOLOR\s0\fR or \fB\s-1NO_COLOR\s0\fR, or can be forced setting
yading@10 338 the environment variable \fB\s-1AV_LOG_FORCE_COLOR\s0\fR.
yading@10 339 The use of the environment variable \fB\s-1NO_COLOR\s0\fR is deprecated and
yading@10 340 will be dropped in a following FFmpeg version.
yading@10 341 .RE
yading@10 342 .IP "\fB\-report\fR" 4
yading@10 343 .IX Item "-report"
yading@10 344 Dump full command line and console output to a file named
yading@10 345 \&\f(CW\*(C`\f(CIprogram\f(CW\-\f(CIYYYYMMDD\f(CW\-\f(CIHHMMSS\f(CW.log\*(C'\fR in the current
yading@10 346 directory.
yading@10 347 This file can be useful for bug reports.
yading@10 348 It also implies \f(CW\*(C`\-loglevel verbose\*(C'\fR.
yading@10 349 .Sp
yading@10 350 Setting the environment variable \f(CW\*(C`FFREPORT\*(C'\fR to any value has the
yading@10 351 same effect. If the value is a ':'\-separated key=value sequence, these
yading@10 352 options will affect the report; options values must be escaped if they
yading@10 353 contain special characters or the options delimiter ':' (see the
yading@10 354 ``Quoting and escaping'' section in the ffmpeg-utils manual). The
yading@10 355 following option is recognized:
yading@10 356 .RS 4
yading@10 357 .IP "\fBfile\fR" 4
yading@10 358 .IX Item "file"
yading@10 359 set the file name to use for the report; \f(CW%p\fR is expanded to the name
yading@10 360 of the program, \f(CW%t\fR is expanded to a timestamp, \f(CW\*(C`%%\*(C'\fR is expanded
yading@10 361 to a plain \f(CW\*(C`%\*(C'\fR
yading@10 362 .RE
yading@10 363 .RS 4
yading@10 364 .Sp
yading@10 365 Errors in parsing the environment variable are not fatal, and will not
yading@10 366 appear in the report.
yading@10 367 .RE
yading@10 368 .IP "\fB\-cpuflags flags (\fR\fIglobal\fR\fB)\fR" 4
yading@10 369 .IX Item "-cpuflags flags (global)"
yading@10 370 Allows setting and clearing cpu flags. This option is intended
yading@10 371 for testing. Do not use it unless you know what you're doing.
yading@10 372 .Sp
yading@10 373 .Vb 3
yading@10 374 \& ffmpeg \-cpuflags \-sse+mmx ...
yading@10 375 \& ffmpeg \-cpuflags mmx ...
yading@10 376 \& ffmpeg \-cpuflags 0 ...
yading@10 377 .Ve
yading@10 378 .Sp
yading@10 379 Possible flags for this option are:
yading@10 380 .RS 4
yading@10 381 .IP "\fBx86\fR" 4
yading@10 382 .IX Item "x86"
yading@10 383 .RS 4
yading@10 384 .PD 0
yading@10 385 .IP "\fBmmx\fR" 4
yading@10 386 .IX Item "mmx"
yading@10 387 .IP "\fBmmxext\fR" 4
yading@10 388 .IX Item "mmxext"
yading@10 389 .IP "\fBsse\fR" 4
yading@10 390 .IX Item "sse"
yading@10 391 .IP "\fBsse2\fR" 4
yading@10 392 .IX Item "sse2"
yading@10 393 .IP "\fBsse2slow\fR" 4
yading@10 394 .IX Item "sse2slow"
yading@10 395 .IP "\fBsse3\fR" 4
yading@10 396 .IX Item "sse3"
yading@10 397 .IP "\fBsse3slow\fR" 4
yading@10 398 .IX Item "sse3slow"
yading@10 399 .IP "\fBssse3\fR" 4
yading@10 400 .IX Item "ssse3"
yading@10 401 .IP "\fBatom\fR" 4
yading@10 402 .IX Item "atom"
yading@10 403 .IP "\fBsse4.1\fR" 4
yading@10 404 .IX Item "sse4.1"
yading@10 405 .IP "\fBsse4.2\fR" 4
yading@10 406 .IX Item "sse4.2"
yading@10 407 .IP "\fBavx\fR" 4
yading@10 408 .IX Item "avx"
yading@10 409 .IP "\fBxop\fR" 4
yading@10 410 .IX Item "xop"
yading@10 411 .IP "\fBfma4\fR" 4
yading@10 412 .IX Item "fma4"
yading@10 413 .IP "\fB3dnow\fR" 4
yading@10 414 .IX Item "3dnow"
yading@10 415 .IP "\fB3dnowext\fR" 4
yading@10 416 .IX Item "3dnowext"
yading@10 417 .IP "\fBcmov\fR" 4
yading@10 418 .IX Item "cmov"
yading@10 419 .RE
yading@10 420 .RS 4
yading@10 421 .RE
yading@10 422 .IP "\fB\s-1ARM\s0\fR" 4
yading@10 423 .IX Item "ARM"
yading@10 424 .RS 4
yading@10 425 .IP "\fBarmv5te\fR" 4
yading@10 426 .IX Item "armv5te"
yading@10 427 .IP "\fBarmv6\fR" 4
yading@10 428 .IX Item "armv6"
yading@10 429 .IP "\fBarmv6t2\fR" 4
yading@10 430 .IX Item "armv6t2"
yading@10 431 .IP "\fBvfp\fR" 4
yading@10 432 .IX Item "vfp"
yading@10 433 .IP "\fBvfpv3\fR" 4
yading@10 434 .IX Item "vfpv3"
yading@10 435 .IP "\fBneon\fR" 4
yading@10 436 .IX Item "neon"
yading@10 437 .RE
yading@10 438 .RS 4
yading@10 439 .RE
yading@10 440 .IP "\fBPowerPC\fR" 4
yading@10 441 .IX Item "PowerPC"
yading@10 442 .RS 4
yading@10 443 .IP "\fBaltivec\fR" 4
yading@10 444 .IX Item "altivec"
yading@10 445 .RE
yading@10 446 .RS 4
yading@10 447 .RE
yading@10 448 .IP "\fBSpecific Processors\fR" 4
yading@10 449 .IX Item "Specific Processors"
yading@10 450 .RS 4
yading@10 451 .IP "\fBpentium2\fR" 4
yading@10 452 .IX Item "pentium2"
yading@10 453 .IP "\fBpentium3\fR" 4
yading@10 454 .IX Item "pentium3"
yading@10 455 .IP "\fBpentium4\fR" 4
yading@10 456 .IX Item "pentium4"
yading@10 457 .IP "\fBk6\fR" 4
yading@10 458 .IX Item "k6"
yading@10 459 .IP "\fBk62\fR" 4
yading@10 460 .IX Item "k62"
yading@10 461 .IP "\fBathlon\fR" 4
yading@10 462 .IX Item "athlon"
yading@10 463 .IP "\fBathlonxp\fR" 4
yading@10 464 .IX Item "athlonxp"
yading@10 465 .IP "\fBk8\fR" 4
yading@10 466 .IX Item "k8"
yading@10 467 .RE
yading@10 468 .RS 4
yading@10 469 .RE
yading@10 470 .RE
yading@10 471 .RS 4
yading@10 472 .RE
yading@10 473 .IP "\fB\-opencl_options options (\fR\fIglobal\fR\fB)\fR" 4
yading@10 474 .IX Item "-opencl_options options (global)"
yading@10 475 .PD
yading@10 476 Set OpenCL environment options. This option is only available when
yading@10 477 FFmpeg has been compiled with \f(CW\*(C`\-\-enable\-opencl\*(C'\fR.
yading@10 478 .Sp
yading@10 479 \&\fIoptions\fR must be a list of \fIkey\fR=\fIvalue\fR option pairs
yading@10 480 separated by ':'. See the ``OpenCL Options'' section in the
yading@10 481 ffmpeg-utils manual for the list of supported options.
yading@10 482 .SS "AVOptions"
yading@10 483 .IX Subsection "AVOptions"
yading@10 484 These options are provided directly by the libavformat, libavdevice and
yading@10 485 libavcodec libraries. To see the list of available AVOptions, use the
yading@10 486 \&\fB\-help\fR option. They are separated into two categories:
yading@10 487 .IP "\fBgeneric\fR" 4
yading@10 488 .IX Item "generic"
yading@10 489 These options can be set for any container, codec or device. Generic options
yading@10 490 are listed under AVFormatContext options for containers/devices and under
yading@10 491 AVCodecContext options for codecs.
yading@10 492 .IP "\fBprivate\fR" 4
yading@10 493 .IX Item "private"
yading@10 494 These options are specific to the given container, device or codec. Private
yading@10 495 options are listed under their corresponding containers/devices/codecs.
yading@10 496 .PP
yading@10 497 For example to write an ID3v2.3 header instead of a default ID3v2.4 to
yading@10 498 an \s-1MP3\s0 file, use the \fBid3v2_version\fR private option of the \s-1MP3\s0
yading@10 499 muxer:
yading@10 500 .PP
yading@10 501 .Vb 1
yading@10 502 \& ffmpeg \-i input.flac \-id3v2_version 3 out.mp3
yading@10 503 .Ve
yading@10 504 .PP
yading@10 505 All codec AVOptions are obviously per-stream, so the chapter on stream
yading@10 506 specifiers applies to them
yading@10 507 .PP
yading@10 508 Note \fB\-nooption\fR syntax cannot be used for boolean AVOptions,
yading@10 509 use \fB\-option 0\fR/\fB\-option 1\fR.
yading@10 510 .PP
yading@10 511 Note2 old undocumented way of specifying per-stream AVOptions by prepending
yading@10 512 v/a/s to the options name is now obsolete and will be removed soon.
yading@10 513 .SS "Main options"
yading@10 514 .IX Subsection "Main options"
yading@10 515 .IP "\fB\-f\fR \fIformat\fR" 4
yading@10 516 .IX Item "-f format"
yading@10 517 Force format to use.
yading@10 518 .IP "\fB\-unit\fR" 4
yading@10 519 .IX Item "-unit"
yading@10 520 Show the unit of the displayed values.
yading@10 521 .IP "\fB\-prefix\fR" 4
yading@10 522 .IX Item "-prefix"
yading@10 523 Use \s-1SI\s0 prefixes for the displayed values.
yading@10 524 Unless the \*(L"\-byte_binary_prefix\*(R" option is used all the prefixes
yading@10 525 are decimal.
yading@10 526 .IP "\fB\-byte_binary_prefix\fR" 4
yading@10 527 .IX Item "-byte_binary_prefix"
yading@10 528 Force the use of binary prefixes for byte values.
yading@10 529 .IP "\fB\-sexagesimal\fR" 4
yading@10 530 .IX Item "-sexagesimal"
yading@10 531 Use sexagesimal format \s-1HH:MM:SS\s0.MICROSECONDS for time values.
yading@10 532 .IP "\fB\-pretty\fR" 4
yading@10 533 .IX Item "-pretty"
yading@10 534 Prettify the format of the displayed values, it corresponds to the
yading@10 535 options \*(L"\-unit \-prefix \-byte_binary_prefix \-sexagesimal\*(R".
yading@10 536 .IP "\fB\-of, \-print_format\fR \fIwriter_name\fR\fB[=\fR\fIwriter_options\fR\fB]\fR" 4
yading@10 537 .IX Item "-of, -print_format writer_name[=writer_options]"
yading@10 538 Set the output printing format.
yading@10 539 .Sp
yading@10 540 \&\fIwriter_name\fR specifies the name of the writer, and
yading@10 541 \&\fIwriter_options\fR specifies the options to be passed to the writer.
yading@10 542 .Sp
yading@10 543 For example for printing the output in \s-1JSON\s0 format, specify:
yading@10 544 .Sp
yading@10 545 .Vb 1
yading@10 546 \& \-print_format json
yading@10 547 .Ve
yading@10 548 .Sp
yading@10 549 For more details on the available output printing formats, see the
yading@10 550 Writers section below.
yading@10 551 .IP "\fB\-sections\fR" 4
yading@10 552 .IX Item "-sections"
yading@10 553 Print sections structure and section information, and exit. The output
yading@10 554 is not meant to be parsed by a machine.
yading@10 555 .IP "\fB\-select_streams\fR \fIstream_specifier\fR" 4
yading@10 556 .IX Item "-select_streams stream_specifier"
yading@10 557 Select only the streams specified by \fIstream_specifier\fR. This
yading@10 558 option affects only the options related to streams
yading@10 559 (e.g. \f(CW\*(C`show_streams\*(C'\fR, \f(CW\*(C`show_packets\*(C'\fR, etc.).
yading@10 560 .Sp
yading@10 561 For example to show only audio streams, you can use the command:
yading@10 562 .Sp
yading@10 563 .Vb 1
yading@10 564 \& ffprobe \-show_streams \-select_streams a INPUT
yading@10 565 .Ve
yading@10 566 .Sp
yading@10 567 To show only video packets belonging to the video stream with index 1:
yading@10 568 .Sp
yading@10 569 .Vb 1
yading@10 570 \& ffprobe \-show_packets \-select_streams v:1 INPUT
yading@10 571 .Ve
yading@10 572 .IP "\fB\-show_data\fR" 4
yading@10 573 .IX Item "-show_data"
yading@10 574 Show payload data, as an hexadecimal and \s-1ASCII\s0 dump. Coupled with
yading@10 575 \&\fB\-show_packets\fR, it will dump the packets' data. Coupled with
yading@10 576 \&\fB\-show_streams\fR, it will dump the codec extradata.
yading@10 577 .Sp
yading@10 578 The dump is printed as the \*(L"data\*(R" field. It may contain newlines.
yading@10 579 .IP "\fB\-show_error\fR" 4
yading@10 580 .IX Item "-show_error"
yading@10 581 Show information about the error found when trying to probe the input.
yading@10 582 .Sp
yading@10 583 The error information is printed within a section with name \*(L"\s-1ERROR\s0\*(R".
yading@10 584 .IP "\fB\-show_format\fR" 4
yading@10 585 .IX Item "-show_format"
yading@10 586 Show information about the container format of the input multimedia
yading@10 587 stream.
yading@10 588 .Sp
yading@10 589 All the container format information is printed within a section with
yading@10 590 name \*(L"\s-1FORMAT\s0\*(R".
yading@10 591 .IP "\fB\-show_format_entry\fR \fIname\fR" 4
yading@10 592 .IX Item "-show_format_entry name"
yading@10 593 Like \fB\-show_format\fR, but only prints the specified entry of the
yading@10 594 container format information, rather than all. This option may be given more
yading@10 595 than once, then all specified entries will be shown.
yading@10 596 .Sp
yading@10 597 This option is deprecated, use \f(CW\*(C`show_entries\*(C'\fR instead.
yading@10 598 .IP "\fB\-show_entries\fR \fIsection_entries\fR" 4
yading@10 599 .IX Item "-show_entries section_entries"
yading@10 600 Set list of entries to show.
yading@10 601 .Sp
yading@10 602 Entries are specified according to the following
yading@10 603 syntax. \fIsection_entries\fR contains a list of section entries
yading@10 604 separated by \f(CW\*(C`:\*(C'\fR. Each section entry is composed by a section
yading@10 605 name (or unique name), optionally followed by a list of entries local
yading@10 606 to that section, separated by \f(CW\*(C`,\*(C'\fR.
yading@10 607 .Sp
yading@10 608 If section name is specified but is followed by no \f(CW\*(C`=\*(C'\fR, all
yading@10 609 entries are printed to output, together with all the contained
yading@10 610 sections. Otherwise only the entries specified in the local section
yading@10 611 entries list are printed. In particular, if \f(CW\*(C`=\*(C'\fR is specified but
yading@10 612 the list of local entries is empty, then no entries will be shown for
yading@10 613 that section.
yading@10 614 .Sp
yading@10 615 Note that the order of specification of the local section entries is
yading@10 616 not honored in the output, and the usual display order will be
yading@10 617 retained.
yading@10 618 .Sp
yading@10 619 The formal syntax is given by:
yading@10 620 .Sp
yading@10 621 .Vb 3
yading@10 622 \& <LOCAL_SECTION_ENTRIES> ::= <SECTION_ENTRY_NAME>[,<LOCAL_SECTION_ENTRIES>]
yading@10 623 \& <SECTION_ENTRY> ::= <SECTION_NAME>[=[<LOCAL_SECTION_ENTRIES>]]
yading@10 624 \& <SECTION_ENTRIES> ::= <SECTION_ENTRY>[:<SECTION_ENTRIES>]
yading@10 625 .Ve
yading@10 626 .Sp
yading@10 627 For example, to show only the index and type of each stream, and the \s-1PTS\s0
yading@10 628 time, duration time, and stream index of the packets, you can specify
yading@10 629 the argument:
yading@10 630 .Sp
yading@10 631 .Vb 1
yading@10 632 \& packet=pts_time,duration_time,stream_index : stream=index,codec_type
yading@10 633 .Ve
yading@10 634 .Sp
yading@10 635 To show all the entries in the section \*(L"format\*(R", but only the codec
yading@10 636 type in the section \*(L"stream\*(R", specify the argument:
yading@10 637 .Sp
yading@10 638 .Vb 1
yading@10 639 \& format : stream=codec_type
yading@10 640 .Ve
yading@10 641 .Sp
yading@10 642 To show all the tags in the stream and format sections:
yading@10 643 .Sp
yading@10 644 .Vb 1
yading@10 645 \& format_tags : format_tags
yading@10 646 .Ve
yading@10 647 .Sp
yading@10 648 To show only the \f(CW\*(C`title\*(C'\fR tag (if available) in the stream
yading@10 649 sections:
yading@10 650 .Sp
yading@10 651 .Vb 1
yading@10 652 \& stream_tags=title
yading@10 653 .Ve
yading@10 654 .IP "\fB\-show_packets\fR" 4
yading@10 655 .IX Item "-show_packets"
yading@10 656 Show information about each packet contained in the input multimedia
yading@10 657 stream.
yading@10 658 .Sp
yading@10 659 The information for each single packet is printed within a dedicated
yading@10 660 section with name \*(L"\s-1PACKET\s0\*(R".
yading@10 661 .IP "\fB\-show_frames\fR" 4
yading@10 662 .IX Item "-show_frames"
yading@10 663 Show information about each frame contained in the input multimedia
yading@10 664 stream.
yading@10 665 .Sp
yading@10 666 The information for each single frame is printed within a dedicated
yading@10 667 section with name \*(L"\s-1FRAME\s0\*(R".
yading@10 668 .IP "\fB\-show_streams\fR" 4
yading@10 669 .IX Item "-show_streams"
yading@10 670 Show information about each media stream contained in the input
yading@10 671 multimedia stream.
yading@10 672 .Sp
yading@10 673 Each media stream information is printed within a dedicated section
yading@10 674 with name \*(L"\s-1STREAM\s0\*(R".
yading@10 675 .IP "\fB\-count_frames\fR" 4
yading@10 676 .IX Item "-count_frames"
yading@10 677 Count the number of frames per stream and report it in the
yading@10 678 corresponding stream section.
yading@10 679 .IP "\fB\-count_packets\fR" 4
yading@10 680 .IX Item "-count_packets"
yading@10 681 Count the number of packets per stream and report it in the
yading@10 682 corresponding stream section.
yading@10 683 .IP "\fB\-show_private_data, \-private\fR" 4
yading@10 684 .IX Item "-show_private_data, -private"
yading@10 685 Show private data, that is data depending on the format of the
yading@10 686 particular shown element.
yading@10 687 This option is enabled by default, but you may need to disable it
yading@10 688 for specific uses, for example when creating XSD-compliant \s-1XML\s0 output.
yading@10 689 .IP "\fB\-show_program_version\fR" 4
yading@10 690 .IX Item "-show_program_version"
yading@10 691 Show information related to program version.
yading@10 692 .Sp
yading@10 693 Version information is printed within a section with name
yading@10 694 \&\*(L"\s-1PROGRAM_VERSION\s0\*(R".
yading@10 695 .IP "\fB\-show_library_versions\fR" 4
yading@10 696 .IX Item "-show_library_versions"
yading@10 697 Show information related to library versions.
yading@10 698 .Sp
yading@10 699 Version information for each library is printed within a section with
yading@10 700 name \*(L"\s-1LIBRARY_VERSION\s0\*(R".
yading@10 701 .IP "\fB\-show_versions\fR" 4
yading@10 702 .IX Item "-show_versions"
yading@10 703 Show information related to program and library versions. This is the
yading@10 704 equivalent of setting both \fB\-show_program_version\fR and
yading@10 705 \&\fB\-show_library_versions\fR options.
yading@10 706 .IP "\fB\-bitexact\fR" 4
yading@10 707 .IX Item "-bitexact"
yading@10 708 Force bitexact output, useful to produce output which is not dependent
yading@10 709 on the specific build.
yading@10 710 .IP "\fB\-i\fR \fIinput_file\fR" 4
yading@10 711 .IX Item "-i input_file"
yading@10 712 Read \fIinput_file\fR.
yading@10 713 .SH "WRITERS"
yading@10 714 .IX Header "WRITERS"
yading@10 715 A writer defines the output format adopted by \fBffprobe\fR, and will be
yading@10 716 used for printing all the parts of the output.
yading@10 717 .PP
yading@10 718 A writer may accept one or more arguments, which specify the options
yading@10 719 to adopt. The options are specified as a list of \fIkey\fR=\fIvalue\fR
yading@10 720 pairs, separated by \*(L":\*(R".
yading@10 721 .PP
yading@10 722 A description of the currently available writers follows.
yading@10 723 .SS "default"
yading@10 724 .IX Subsection "default"
yading@10 725 Default format.
yading@10 726 .PP
yading@10 727 Print each section in the form:
yading@10 728 .PP
yading@10 729 .Vb 5
yading@10 730 \& [SECTION]
yading@10 731 \& key1=val1
yading@10 732 \& ...
yading@10 733 \& keyN=valN
yading@10 734 \& [/SECTION]
yading@10 735 .Ve
yading@10 736 .PP
yading@10 737 Metadata tags are printed as a line in the corresponding \s-1FORMAT\s0 or
yading@10 738 \&\s-1STREAM\s0 section, and are prefixed by the string \*(L"\s-1TAG:\s0\*(R".
yading@10 739 .PP
yading@10 740 A description of the accepted options follows.
yading@10 741 .IP "\fBnokey, nk\fR" 4
yading@10 742 .IX Item "nokey, nk"
yading@10 743 If set to 1 specify not to print the key of each field. Default value
yading@10 744 is 0.
yading@10 745 .IP "\fBnoprint_wrappers, nw\fR" 4
yading@10 746 .IX Item "noprint_wrappers, nw"
yading@10 747 If set to 1 specify not to print the section header and footer.
yading@10 748 Default value is 0.
yading@10 749 .SS "compact, csv"
yading@10 750 .IX Subsection "compact, csv"
yading@10 751 Compact and \s-1CSV\s0 format.
yading@10 752 .PP
yading@10 753 The \f(CW\*(C`csv\*(C'\fR writer is equivalent to \f(CW\*(C`compact\*(C'\fR, but supports
yading@10 754 different defaults.
yading@10 755 .PP
yading@10 756 Each section is printed on a single line.
yading@10 757 If no option is specifid, the output has the form:
yading@10 758 .PP
yading@10 759 .Vb 1
yading@10 760 \& section|key1=val1| ... |keyN=valN
yading@10 761 .Ve
yading@10 762 .PP
yading@10 763 Metadata tags are printed in the corresponding \*(L"format\*(R" or \*(L"stream\*(R"
yading@10 764 section. A metadata tag key, if printed, is prefixed by the string
yading@10 765 \&\*(L"tag:\*(R".
yading@10 766 .PP
yading@10 767 The description of the accepted options follows.
yading@10 768 .IP "\fBitem_sep, s\fR" 4
yading@10 769 .IX Item "item_sep, s"
yading@10 770 Specify the character to use for separating fields in the output line.
yading@10 771 It must be a single printable character, it is \*(L"|\*(R" by default (\*(L",\*(R" for
yading@10 772 the \f(CW\*(C`csv\*(C'\fR writer).
yading@10 773 .IP "\fBnokey, nk\fR" 4
yading@10 774 .IX Item "nokey, nk"
yading@10 775 If set to 1 specify not to print the key of each field. Its default
yading@10 776 value is 0 (1 for the \f(CW\*(C`csv\*(C'\fR writer).
yading@10 777 .IP "\fBescape, e\fR" 4
yading@10 778 .IX Item "escape, e"
yading@10 779 Set the escape mode to use, default to \*(L"c\*(R" (\*(L"csv\*(R" for the \f(CW\*(C`csv\*(C'\fR
yading@10 780 writer).
yading@10 781 .Sp
yading@10 782 It can assume one of the following values:
yading@10 783 .RS 4
yading@10 784 .IP "\fBc\fR" 4
yading@10 785 .IX Item "c"
yading@10 786 Perform C\-like escaping. Strings containing a newline ('\en'), carriage
yading@10 787 return ('\er'), a tab ('\et'), a form feed ('\ef'), the escaping
yading@10 788 character ('\e') or the item separator character \fI\s-1SEP\s0\fR are escaped using C\-like fashioned
yading@10 789 escaping, so that a newline is converted to the sequence \*(L"\en\*(R", a
yading@10 790 carriage return to \*(L"\er\*(R", '\e' to \*(L"\e\e\*(R" and the separator \fI\s-1SEP\s0\fR is
yading@10 791 converted to "\e\fI\s-1SEP\s0\fR".
yading@10 792 .IP "\fBcsv\fR" 4
yading@10 793 .IX Item "csv"
yading@10 794 Perform CSV-like escaping, as described in \s-1RFC4180\s0. Strings
yading@10 795 containing a newline ('\en'), a carriage return ('\er'), a double quote
yading@10 796 ('"'), or \fI\s-1SEP\s0\fR are enclosed in double-quotes.
yading@10 797 .IP "\fBnone\fR" 4
yading@10 798 .IX Item "none"
yading@10 799 Perform no escaping.
yading@10 800 .RE
yading@10 801 .RS 4
yading@10 802 .RE
yading@10 803 .IP "\fBprint_section, p\fR" 4
yading@10 804 .IX Item "print_section, p"
yading@10 805 Print the section name at the begin of each line if the value is
yading@10 806 \&\f(CW1\fR, disable it with value set to \f(CW0\fR. Default value is
yading@10 807 \&\f(CW1\fR.
yading@10 808 .SS "flat"
yading@10 809 .IX Subsection "flat"
yading@10 810 Flat format.
yading@10 811 .PP
yading@10 812 A free-form output where each line contains an explicit key=value, such as
yading@10 813 \&\*(L"streams.stream.3.tags.foo=bar\*(R". The output is shell escaped, so it can be
yading@10 814 directly embedded in sh scripts as long as the separator character is an
yading@10 815 alphanumeric character or an underscore (see \fIsep_char\fR option).
yading@10 816 .PP
yading@10 817 The description of the accepted options follows.
yading@10 818 .IP "\fBsep_char, s\fR" 4
yading@10 819 .IX Item "sep_char, s"
yading@10 820 Separator character used to separate the chapter, the section name, IDs and
yading@10 821 potential tags in the printed field key.
yading@10 822 .Sp
yading@10 823 Default value is '.'.
yading@10 824 .IP "\fBhierarchical, h\fR" 4
yading@10 825 .IX Item "hierarchical, h"
yading@10 826 Specify if the section name specification should be hierarchical. If
yading@10 827 set to 1, and if there is more than one section in the current
yading@10 828 chapter, the section name will be prefixed by the name of the
yading@10 829 chapter. A value of 0 will disable this behavior.
yading@10 830 .Sp
yading@10 831 Default value is 1.
yading@10 832 .SS "ini"
yading@10 833 .IX Subsection "ini"
yading@10 834 \&\s-1INI\s0 format output.
yading@10 835 .PP
yading@10 836 Print output in an \s-1INI\s0 based format.
yading@10 837 .PP
yading@10 838 The following conventions are adopted:
yading@10 839 .IP "\(bu" 4
yading@10 840 all key and values are \s-1UTF\-8\s0
yading@10 841 .IP "\(bu" 4
yading@10 842 \&'.' is the subgroup separator
yading@10 843 .IP "\(bu" 4
yading@10 844 newline, '\et', '\ef', '\eb' and the following characters are escaped
yading@10 845 .IP "\(bu" 4
yading@10 846 \&'\e' is the escape character
yading@10 847 .IP "\(bu" 4
yading@10 848 \&'#' is the comment indicator
yading@10 849 .IP "\(bu" 4
yading@10 850 \&'=' is the key/value separator
yading@10 851 .IP "\(bu" 4
yading@10 852 \&':' is not used but usually parsed as key/value separator
yading@10 853 .PP
yading@10 854 This writer accepts options as a list of \fIkey\fR=\fIvalue\fR pairs,
yading@10 855 separated by \*(L":\*(R".
yading@10 856 .PP
yading@10 857 The description of the accepted options follows.
yading@10 858 .IP "\fBhierarchical, h\fR" 4
yading@10 859 .IX Item "hierarchical, h"
yading@10 860 Specify if the section name specification should be hierarchical. If
yading@10 861 set to 1, and if there is more than one section in the current
yading@10 862 chapter, the section name will be prefixed by the name of the
yading@10 863 chapter. A value of 0 will disable this behavior.
yading@10 864 .Sp
yading@10 865 Default value is 1.
yading@10 866 .SS "json"
yading@10 867 .IX Subsection "json"
yading@10 868 \&\s-1JSON\s0 based format.
yading@10 869 .PP
yading@10 870 Each section is printed using \s-1JSON\s0 notation.
yading@10 871 .PP
yading@10 872 The description of the accepted options follows.
yading@10 873 .IP "\fBcompact, c\fR" 4
yading@10 874 .IX Item "compact, c"
yading@10 875 If set to 1 enable compact output, that is each section will be
yading@10 876 printed on a single line. Default value is 0.
yading@10 877 .PP
yading@10 878 For more information about \s-1JSON\s0, see <\fBhttp://www.json.org/\fR>.
yading@10 879 .SS "xml"
yading@10 880 .IX Subsection "xml"
yading@10 881 \&\s-1XML\s0 based format.
yading@10 882 .PP
yading@10 883 The \s-1XML\s0 output is described in the \s-1XML\s0 schema description file
yading@10 884 \&\fIffprobe.xsd\fR installed in the FFmpeg datadir.
yading@10 885 .PP
yading@10 886 An updated version of the schema can be retrieved at the url
yading@10 887 <\fBhttp://www.ffmpeg.org/schema/ffprobe.xsd\fR>, which redirects to the
yading@10 888 latest schema committed into the FFmpeg development source code tree.
yading@10 889 .PP
yading@10 890 Note that the output issued will be compliant to the
yading@10 891 \&\fIffprobe.xsd\fR schema only when no special global output options
yading@10 892 (\fBunit\fR, \fBprefix\fR, \fBbyte_binary_prefix\fR,
yading@10 893 \&\fBsexagesimal\fR etc.) are specified.
yading@10 894 .PP
yading@10 895 The description of the accepted options follows.
yading@10 896 .IP "\fBfully_qualified, q\fR" 4
yading@10 897 .IX Item "fully_qualified, q"
yading@10 898 If set to 1 specify if the output should be fully qualified. Default
yading@10 899 value is 0.
yading@10 900 This is required for generating an \s-1XML\s0 file which can be validated
yading@10 901 through an \s-1XSD\s0 file.
yading@10 902 .IP "\fBxsd_compliant, x\fR" 4
yading@10 903 .IX Item "xsd_compliant, x"
yading@10 904 If set to 1 perform more checks for ensuring that the output is \s-1XSD\s0
yading@10 905 compliant. Default value is 0.
yading@10 906 This option automatically sets \fBfully_qualified\fR to 1.
yading@10 907 .PP
yading@10 908 For more information about the \s-1XML\s0 format, see
yading@10 909 <\fBhttp://www.w3.org/XML/\fR>.
yading@10 910 .SH "TIMECODE"
yading@10 911 .IX Header "TIMECODE"
yading@10 912 \&\fBffprobe\fR supports Timecode extraction:
yading@10 913 .IP "\(bu" 4
yading@10 914 \&\s-1MPEG1/2\s0 timecode is extracted from the \s-1GOP\s0, and is available in the video
yading@10 915 stream details (\fB\-show_streams\fR, see \fItimecode\fR).
yading@10 916 .IP "\(bu" 4
yading@10 917 \&\s-1MOV\s0 timecode is extracted from tmcd track, so is available in the tmcd
yading@10 918 stream metadata (\fB\-show_streams\fR, see \fITAG:timecode\fR).
yading@10 919 .IP "\(bu" 4
yading@10 920 \&\s-1DV\s0, \s-1GXF\s0 and \s-1AVI\s0 timecodes are available in format metadata
yading@10 921 (\fB\-show_format\fR, see \fITAG:timecode\fR).
yading@10 922 .SH "SYNTAX"
yading@10 923 .IX Header "SYNTAX"
yading@10 924 This section documents the syntax and formats employed by the FFmpeg
yading@10 925 libraries and tools.
yading@10 926 .SS "Quoting and escaping"
yading@10 927 .IX Subsection "Quoting and escaping"
yading@10 928 FFmpeg adopts the following quoting and escaping mechanism, unless
yading@10 929 explicitly specified. The following rules are applied:
yading@10 930 .IP "\(bu" 4
yading@10 931 \&\f(CW\*(C`\*(Aq\*(C'\fR and \f(CW\*(C`\e\*(C'\fR are special characters (respectively used for
yading@10 932 quoting and escaping). In addition to them, there might be other
yading@10 933 special characters depending on the specific syntax where the escaping
yading@10 934 and quoting are employed.
yading@10 935 .IP "\(bu" 4
yading@10 936 A special character is escaped by prefixing it with a '\e'.
yading@10 937 .IP "\(bu" 4
yading@10 938 All characters enclosed between '' are included literally in the
yading@10 939 parsed string. The quote character \f(CW\*(C`\*(Aq\*(C'\fR itself cannot be quoted,
yading@10 940 so you may need to close the quote and escape it.
yading@10 941 .IP "\(bu" 4
yading@10 942 Leading and trailing whitespaces, unless escaped or quoted, are
yading@10 943 removed from the parsed string.
yading@10 944 .PP
yading@10 945 Note that you may need to add a second level of escaping when using
yading@10 946 the command line or a script, which depends on the syntax of the
yading@10 947 adopted shell language.
yading@10 948 .PP
yading@10 949 The function \f(CW\*(C`av_get_token\*(C'\fR defined in
yading@10 950 \&\fIlibavutil/avstring.h\fR can be used to parse a token quoted or
yading@10 951 escaped according to the rules defined above.
yading@10 952 .PP
yading@10 953 The tool \fItools/ffescape\fR in the FFmpeg source tree can be used
yading@10 954 to automatically quote or escape a string in a script.
yading@10 955 .PP
yading@10 956 \fIExamples\fR
yading@10 957 .IX Subsection "Examples"
yading@10 958 .IP "\(bu" 4
yading@10 959 Escape the string \f(CW\*(C`Crime d\*(AqAmour\*(C'\fR containing the \f(CW\*(C`\*(Aq\*(C'\fR special
yading@10 960 character:
yading@10 961 .Sp
yading@10 962 .Vb 1
yading@10 963 \& Crime d\e\*(AqAmour
yading@10 964 .Ve
yading@10 965 .IP "\(bu" 4
yading@10 966 The string above contains a quote, so the \f(CW\*(C`\*(Aq\*(C'\fR needs to be escaped
yading@10 967 when quoting it:
yading@10 968 .Sp
yading@10 969 .Vb 1
yading@10 970 \& \*(AqCrime d\*(Aq\e\*(Aq\*(AqAmour\*(Aq
yading@10 971 .Ve
yading@10 972 .IP "\(bu" 4
yading@10 973 Include leading or trailing whitespaces using quoting:
yading@10 974 .Sp
yading@10 975 .Vb 1
yading@10 976 \& \*(Aq this string starts and ends with whitespaces \*(Aq
yading@10 977 .Ve
yading@10 978 .IP "\(bu" 4
yading@10 979 Escaping and quoting can be mixed together:
yading@10 980 .Sp
yading@10 981 .Vb 1
yading@10 982 \& \*(Aq The string \*(Aq\e\*(Aqstring\e\*(Aq\*(Aq is a string \*(Aq
yading@10 983 .Ve
yading@10 984 .IP "\(bu" 4
yading@10 985 To include a literal \f(CW\*(C`\e\*(C'\fR you can use either escaping or quoting:
yading@10 986 .Sp
yading@10 987 .Vb 1
yading@10 988 \& \*(Aqc:\efoo\*(Aq can be written as c:\e\efoo
yading@10 989 .Ve
yading@10 990 .SS "Date"
yading@10 991 .IX Subsection "Date"
yading@10 992 The accepted syntax is:
yading@10 993 .PP
yading@10 994 .Vb 2
yading@10 995 \& [(YYYY\-MM\-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
yading@10 996 \& now
yading@10 997 .Ve
yading@10 998 .PP
yading@10 999 If the value is \*(L"now\*(R" it takes the current time.
yading@10 1000 .PP
yading@10 1001 Time is local time unless Z is appended, in which case it is
yading@10 1002 interpreted as \s-1UTC\s0.
yading@10 1003 If the year-month-day part is not specified it takes the current
yading@10 1004 year-month-day.
yading@10 1005 .SS "Time duration"
yading@10 1006 .IX Subsection "Time duration"
yading@10 1007 The accepted syntax is:
yading@10 1008 .PP
yading@10 1009 .Vb 2
yading@10 1010 \& [\-][HH:]MM:SS[.m...]
yading@10 1011 \& [\-]S+[.m...]
yading@10 1012 .Ve
yading@10 1013 .PP
yading@10 1014 \&\fI\s-1HH\s0\fR expresses the number of hours, \fI\s-1MM\s0\fR the number a of minutes
yading@10 1015 and \fI\s-1SS\s0\fR the number of seconds.
yading@10 1016 .SS "Video size"
yading@10 1017 .IX Subsection "Video size"
yading@10 1018 Specify the size of the sourced video, it may be a string of the form
yading@10 1019 \&\fIwidth\fRx\fIheight\fR, or the name of a size abbreviation.
yading@10 1020 .PP
yading@10 1021 The following abbreviations are recognized:
yading@10 1022 .IP "\fBntsc\fR" 4
yading@10 1023 .IX Item "ntsc"
yading@10 1024 720x480
yading@10 1025 .IP "\fBpal\fR" 4
yading@10 1026 .IX Item "pal"
yading@10 1027 720x576
yading@10 1028 .IP "\fBqntsc\fR" 4
yading@10 1029 .IX Item "qntsc"
yading@10 1030 352x240
yading@10 1031 .IP "\fBqpal\fR" 4
yading@10 1032 .IX Item "qpal"
yading@10 1033 352x288
yading@10 1034 .IP "\fBsntsc\fR" 4
yading@10 1035 .IX Item "sntsc"
yading@10 1036 640x480
yading@10 1037 .IP "\fBspal\fR" 4
yading@10 1038 .IX Item "spal"
yading@10 1039 768x576
yading@10 1040 .IP "\fBfilm\fR" 4
yading@10 1041 .IX Item "film"
yading@10 1042 352x240
yading@10 1043 .IP "\fBntsc-film\fR" 4
yading@10 1044 .IX Item "ntsc-film"
yading@10 1045 352x240
yading@10 1046 .IP "\fBsqcif\fR" 4
yading@10 1047 .IX Item "sqcif"
yading@10 1048 128x96
yading@10 1049 .IP "\fBqcif\fR" 4
yading@10 1050 .IX Item "qcif"
yading@10 1051 176x144
yading@10 1052 .IP "\fBcif\fR" 4
yading@10 1053 .IX Item "cif"
yading@10 1054 352x288
yading@10 1055 .IP "\fB4cif\fR" 4
yading@10 1056 .IX Item "4cif"
yading@10 1057 704x576
yading@10 1058 .IP "\fB16cif\fR" 4
yading@10 1059 .IX Item "16cif"
yading@10 1060 1408x1152
yading@10 1061 .IP "\fBqqvga\fR" 4
yading@10 1062 .IX Item "qqvga"
yading@10 1063 160x120
yading@10 1064 .IP "\fBqvga\fR" 4
yading@10 1065 .IX Item "qvga"
yading@10 1066 320x240
yading@10 1067 .IP "\fBvga\fR" 4
yading@10 1068 .IX Item "vga"
yading@10 1069 640x480
yading@10 1070 .IP "\fBsvga\fR" 4
yading@10 1071 .IX Item "svga"
yading@10 1072 800x600
yading@10 1073 .IP "\fBxga\fR" 4
yading@10 1074 .IX Item "xga"
yading@10 1075 1024x768
yading@10 1076 .IP "\fBuxga\fR" 4
yading@10 1077 .IX Item "uxga"
yading@10 1078 1600x1200
yading@10 1079 .IP "\fBqxga\fR" 4
yading@10 1080 .IX Item "qxga"
yading@10 1081 2048x1536
yading@10 1082 .IP "\fBsxga\fR" 4
yading@10 1083 .IX Item "sxga"
yading@10 1084 1280x1024
yading@10 1085 .IP "\fBqsxga\fR" 4
yading@10 1086 .IX Item "qsxga"
yading@10 1087 2560x2048
yading@10 1088 .IP "\fBhsxga\fR" 4
yading@10 1089 .IX Item "hsxga"
yading@10 1090 5120x4096
yading@10 1091 .IP "\fBwvga\fR" 4
yading@10 1092 .IX Item "wvga"
yading@10 1093 852x480
yading@10 1094 .IP "\fBwxga\fR" 4
yading@10 1095 .IX Item "wxga"
yading@10 1096 1366x768
yading@10 1097 .IP "\fBwsxga\fR" 4
yading@10 1098 .IX Item "wsxga"
yading@10 1099 1600x1024
yading@10 1100 .IP "\fBwuxga\fR" 4
yading@10 1101 .IX Item "wuxga"
yading@10 1102 1920x1200
yading@10 1103 .IP "\fBwoxga\fR" 4
yading@10 1104 .IX Item "woxga"
yading@10 1105 2560x1600
yading@10 1106 .IP "\fBwqsxga\fR" 4
yading@10 1107 .IX Item "wqsxga"
yading@10 1108 3200x2048
yading@10 1109 .IP "\fBwquxga\fR" 4
yading@10 1110 .IX Item "wquxga"
yading@10 1111 3840x2400
yading@10 1112 .IP "\fBwhsxga\fR" 4
yading@10 1113 .IX Item "whsxga"
yading@10 1114 6400x4096
yading@10 1115 .IP "\fBwhuxga\fR" 4
yading@10 1116 .IX Item "whuxga"
yading@10 1117 7680x4800
yading@10 1118 .IP "\fBcga\fR" 4
yading@10 1119 .IX Item "cga"
yading@10 1120 320x200
yading@10 1121 .IP "\fBega\fR" 4
yading@10 1122 .IX Item "ega"
yading@10 1123 640x350
yading@10 1124 .IP "\fBhd480\fR" 4
yading@10 1125 .IX Item "hd480"
yading@10 1126 852x480
yading@10 1127 .IP "\fBhd720\fR" 4
yading@10 1128 .IX Item "hd720"
yading@10 1129 1280x720
yading@10 1130 .IP "\fBhd1080\fR" 4
yading@10 1131 .IX Item "hd1080"
yading@10 1132 1920x1080
yading@10 1133 .IP "\fB2k\fR" 4
yading@10 1134 .IX Item "2k"
yading@10 1135 2048x1080
yading@10 1136 .IP "\fB2kflat\fR" 4
yading@10 1137 .IX Item "2kflat"
yading@10 1138 1998x1080
yading@10 1139 .IP "\fB2kscope\fR" 4
yading@10 1140 .IX Item "2kscope"
yading@10 1141 2048x858
yading@10 1142 .IP "\fB4k\fR" 4
yading@10 1143 .IX Item "4k"
yading@10 1144 4096x2160
yading@10 1145 .IP "\fB4kflat\fR" 4
yading@10 1146 .IX Item "4kflat"
yading@10 1147 3996x2160
yading@10 1148 .IP "\fB4kscope\fR" 4
yading@10 1149 .IX Item "4kscope"
yading@10 1150 4096x1716
yading@10 1151 .SS "Video rate"
yading@10 1152 .IX Subsection "Video rate"
yading@10 1153 Specify the frame rate of a video, expressed as the number of frames
yading@10 1154 generated per second. It has to be a string in the format
yading@10 1155 \&\fIframe_rate_num\fR/\fIframe_rate_den\fR, an integer number, a float
yading@10 1156 number or a valid video frame rate abbreviation.
yading@10 1157 .PP
yading@10 1158 The following abbreviations are recognized:
yading@10 1159 .IP "\fBntsc\fR" 4
yading@10 1160 .IX Item "ntsc"
yading@10 1161 30000/1001
yading@10 1162 .IP "\fBpal\fR" 4
yading@10 1163 .IX Item "pal"
yading@10 1164 25/1
yading@10 1165 .IP "\fBqntsc\fR" 4
yading@10 1166 .IX Item "qntsc"
yading@10 1167 30000/1001
yading@10 1168 .IP "\fBqpal\fR" 4
yading@10 1169 .IX Item "qpal"
yading@10 1170 25/1
yading@10 1171 .IP "\fBsntsc\fR" 4
yading@10 1172 .IX Item "sntsc"
yading@10 1173 30000/1001
yading@10 1174 .IP "\fBspal\fR" 4
yading@10 1175 .IX Item "spal"
yading@10 1176 25/1
yading@10 1177 .IP "\fBfilm\fR" 4
yading@10 1178 .IX Item "film"
yading@10 1179 24/1
yading@10 1180 .IP "\fBntsc-film\fR" 4
yading@10 1181 .IX Item "ntsc-film"
yading@10 1182 24000/1001
yading@10 1183 .SS "Ratio"
yading@10 1184 .IX Subsection "Ratio"
yading@10 1185 A ratio can be expressed as an expression, or in the form
yading@10 1186 \&\fInumerator\fR:\fIdenominator\fR.
yading@10 1187 .PP
yading@10 1188 Note that a ratio with infinite (1/0) or negative value is
yading@10 1189 considered valid, so you should check on the returned value if you
yading@10 1190 want to exclude those values.
yading@10 1191 .PP
yading@10 1192 The undefined value can be expressed using the \*(L"0:0\*(R" string.
yading@10 1193 .SS "Color"
yading@10 1194 .IX Subsection "Color"
yading@10 1195 It can be the name of a color (case insensitive match) or a
yading@10 1196 [0x|#]RRGGBB[\s-1AA\s0] sequence, possibly followed by \*(L"@\*(R" and a string
yading@10 1197 representing the alpha component.
yading@10 1198 .PP
yading@10 1199 The alpha component may be a string composed by \*(L"0x\*(R" followed by an
yading@10 1200 hexadecimal number or a decimal number between 0.0 and 1.0, which
yading@10 1201 represents the opacity value (0x00/0.0 means completely transparent,
yading@10 1202 0xff/1.0 completely opaque).
yading@10 1203 If the alpha component is not specified then 0xff is assumed.
yading@10 1204 .PP
yading@10 1205 The string \*(L"random\*(R" will result in a random color.
yading@10 1206 .SH "EXPRESSION EVALUATION"
yading@10 1207 .IX Header "EXPRESSION EVALUATION"
yading@10 1208 When evaluating an arithmetic expression, FFmpeg uses an internal
yading@10 1209 formula evaluator, implemented through the \fIlibavutil/eval.h\fR
yading@10 1210 interface.
yading@10 1211 .PP
yading@10 1212 An expression may contain unary, binary operators, constants, and
yading@10 1213 functions.
yading@10 1214 .PP
yading@10 1215 Two expressions \fIexpr1\fR and \fIexpr2\fR can be combined to form
yading@10 1216 another expression "\fIexpr1\fR;\fIexpr2\fR".
yading@10 1217 \&\fIexpr1\fR and \fIexpr2\fR are evaluated in turn, and the new
yading@10 1218 expression evaluates to the value of \fIexpr2\fR.
yading@10 1219 .PP
yading@10 1220 The following binary operators are available: \f(CW\*(C`+\*(C'\fR, \f(CW\*(C`\-\*(C'\fR,
yading@10 1221 \&\f(CW\*(C`*\*(C'\fR, \f(CW\*(C`/\*(C'\fR, \f(CW\*(C`^\*(C'\fR.
yading@10 1222 .PP
yading@10 1223 The following unary operators are available: \f(CW\*(C`+\*(C'\fR, \f(CW\*(C`\-\*(C'\fR.
yading@10 1224 .PP
yading@10 1225 The following functions are available:
yading@10 1226 .IP "\fBabs(x)\fR" 4
yading@10 1227 .IX Item "abs(x)"
yading@10 1228 Compute absolute value of \fIx\fR.
yading@10 1229 .IP "\fBacos(x)\fR" 4
yading@10 1230 .IX Item "acos(x)"
yading@10 1231 Compute arccosine of \fIx\fR.
yading@10 1232 .IP "\fBasin(x)\fR" 4
yading@10 1233 .IX Item "asin(x)"
yading@10 1234 Compute arcsine of \fIx\fR.
yading@10 1235 .IP "\fBatan(x)\fR" 4
yading@10 1236 .IX Item "atan(x)"
yading@10 1237 Compute arctangent of \fIx\fR.
yading@10 1238 .IP "\fBbetween(x, min, max)\fR" 4
yading@10 1239 .IX Item "between(x, min, max)"
yading@10 1240 Return 1 if \fIx\fR is greater than or equal to \fImin\fR and lesser than or
yading@10 1241 equal to \fImax\fR, 0 otherwise.
yading@10 1242 .IP "\fBbitand(x, y)\fR" 4
yading@10 1243 .IX Item "bitand(x, y)"
yading@10 1244 .PD 0
yading@10 1245 .IP "\fBbitor(x, y)\fR" 4
yading@10 1246 .IX Item "bitor(x, y)"
yading@10 1247 .PD
yading@10 1248 Compute bitwise and/or operation on \fIx\fR and \fIy\fR.
yading@10 1249 .Sp
yading@10 1250 The results of the evaluation of \fIx\fR and \fIy\fR are converted to
yading@10 1251 integers before executing the bitwise operation.
yading@10 1252 .Sp
yading@10 1253 Note that both the conversion to integer and the conversion back to
yading@10 1254 floating point can lose precision. Beware of unexpected results for
yading@10 1255 large numbers (usually 2^53 and larger).
yading@10 1256 .IP "\fBceil(expr)\fR" 4
yading@10 1257 .IX Item "ceil(expr)"
yading@10 1258 Round the value of expression \fIexpr\fR upwards to the nearest
yading@10 1259 integer. For example, \*(L"ceil(1.5)\*(R" is \*(L"2.0\*(R".
yading@10 1260 .IP "\fBcos(x)\fR" 4
yading@10 1261 .IX Item "cos(x)"
yading@10 1262 Compute cosine of \fIx\fR.
yading@10 1263 .IP "\fBcosh(x)\fR" 4
yading@10 1264 .IX Item "cosh(x)"
yading@10 1265 Compute hyperbolic cosine of \fIx\fR.
yading@10 1266 .IP "\fBeq(x, y)\fR" 4
yading@10 1267 .IX Item "eq(x, y)"
yading@10 1268 Return 1 if \fIx\fR and \fIy\fR are equivalent, 0 otherwise.
yading@10 1269 .IP "\fBexp(x)\fR" 4
yading@10 1270 .IX Item "exp(x)"
yading@10 1271 Compute exponential of \fIx\fR (with base \f(CW\*(C`e\*(C'\fR, the Euler's number).
yading@10 1272 .IP "\fBfloor(expr)\fR" 4
yading@10 1273 .IX Item "floor(expr)"
yading@10 1274 Round the value of expression \fIexpr\fR downwards to the nearest
yading@10 1275 integer. For example, \*(L"floor(\-1.5)\*(R" is \*(L"\-2.0\*(R".
yading@10 1276 .IP "\fBgauss(x)\fR" 4
yading@10 1277 .IX Item "gauss(x)"
yading@10 1278 Compute Gauss function of \fIx\fR, corresponding to
yading@10 1279 \&\f(CW\*(C`exp(\-x*x/2) / sqrt(2*PI)\*(C'\fR.
yading@10 1280 .IP "\fBgcd(x, y)\fR" 4
yading@10 1281 .IX Item "gcd(x, y)"
yading@10 1282 Return the greatest common divisor of \fIx\fR and \fIy\fR. If both \fIx\fR and
yading@10 1283 \&\fIy\fR are 0 or either or both are less than zero then behavior is undefined.
yading@10 1284 .IP "\fBgt(x, y)\fR" 4
yading@10 1285 .IX Item "gt(x, y)"
yading@10 1286 Return 1 if \fIx\fR is greater than \fIy\fR, 0 otherwise.
yading@10 1287 .IP "\fBgte(x, y)\fR" 4
yading@10 1288 .IX Item "gte(x, y)"
yading@10 1289 Return 1 if \fIx\fR is greater than or equal to \fIy\fR, 0 otherwise.
yading@10 1290 .IP "\fBhypot(x, y)\fR" 4
yading@10 1291 .IX Item "hypot(x, y)"
yading@10 1292 This function is similar to the C function with the same name; it returns
yading@10 1293 "sqrt(\fIx\fR*\fIx\fR + \fIy\fR*\fIy\fR)", the length of the hypotenuse of a
yading@10 1294 right triangle with sides of length \fIx\fR and \fIy\fR, or the distance of the
yading@10 1295 point (\fIx\fR, \fIy\fR) from the origin.
yading@10 1296 .IP "\fBif(x, y)\fR" 4
yading@10 1297 .IX Item "if(x, y)"
yading@10 1298 Evaluate \fIx\fR, and if the result is non-zero return the result of
yading@10 1299 the evaluation of \fIy\fR, return 0 otherwise.
yading@10 1300 .IP "\fBif(x, y, z)\fR" 4
yading@10 1301 .IX Item "if(x, y, z)"
yading@10 1302 Evaluate \fIx\fR, and if the result is non-zero return the evaluation
yading@10 1303 result of \fIy\fR, otherwise the evaluation result of \fIz\fR.
yading@10 1304 .IP "\fBifnot(x, y)\fR" 4
yading@10 1305 .IX Item "ifnot(x, y)"
yading@10 1306 Evaluate \fIx\fR, and if the result is zero return the result of the
yading@10 1307 evaluation of \fIy\fR, return 0 otherwise.
yading@10 1308 .IP "\fBifnot(x, y, z)\fR" 4
yading@10 1309 .IX Item "ifnot(x, y, z)"
yading@10 1310 Evaluate \fIx\fR, and if the result is zero return the evaluation
yading@10 1311 result of \fIy\fR, otherwise the evaluation result of \fIz\fR.
yading@10 1312 .IP "\fBisinf(x)\fR" 4
yading@10 1313 .IX Item "isinf(x)"
yading@10 1314 Return 1.0 if \fIx\fR is +/\-INFINITY, 0.0 otherwise.
yading@10 1315 .IP "\fBisnan(x)\fR" 4
yading@10 1316 .IX Item "isnan(x)"
yading@10 1317 Return 1.0 if \fIx\fR is \s-1NAN\s0, 0.0 otherwise.
yading@10 1318 .IP "\fBld(var)\fR" 4
yading@10 1319 .IX Item "ld(var)"
yading@10 1320 Allow to load the value of the internal variable with number
yading@10 1321 \&\fIvar\fR, which was previously stored with st(\fIvar\fR, \fIexpr\fR).
yading@10 1322 The function returns the loaded value.
yading@10 1323 .IP "\fBlog(x)\fR" 4
yading@10 1324 .IX Item "log(x)"
yading@10 1325 Compute natural logarithm of \fIx\fR.
yading@10 1326 .IP "\fBlt(x, y)\fR" 4
yading@10 1327 .IX Item "lt(x, y)"
yading@10 1328 Return 1 if \fIx\fR is lesser than \fIy\fR, 0 otherwise.
yading@10 1329 .IP "\fBlte(x, y)\fR" 4
yading@10 1330 .IX Item "lte(x, y)"
yading@10 1331 Return 1 if \fIx\fR is lesser than or equal to \fIy\fR, 0 otherwise.
yading@10 1332 .IP "\fBmax(x, y)\fR" 4
yading@10 1333 .IX Item "max(x, y)"
yading@10 1334 Return the maximum between \fIx\fR and \fIy\fR.
yading@10 1335 .IP "\fBmin(x, y)\fR" 4
yading@10 1336 .IX Item "min(x, y)"
yading@10 1337 Return the maximum between \fIx\fR and \fIy\fR.
yading@10 1338 .IP "\fBmod(x, y)\fR" 4
yading@10 1339 .IX Item "mod(x, y)"
yading@10 1340 Compute the remainder of division of \fIx\fR by \fIy\fR.
yading@10 1341 .IP "\fBnot(expr)\fR" 4
yading@10 1342 .IX Item "not(expr)"
yading@10 1343 Return 1.0 if \fIexpr\fR is zero, 0.0 otherwise.
yading@10 1344 .IP "\fBpow(x, y)\fR" 4
yading@10 1345 .IX Item "pow(x, y)"
yading@10 1346 Compute the power of \fIx\fR elevated \fIy\fR, it is equivalent to
yading@10 1347 "(\fIx\fR)^(\fIy\fR)".
yading@10 1348 .IP "\fBprint(t)\fR" 4
yading@10 1349 .IX Item "print(t)"
yading@10 1350 .PD 0
yading@10 1351 .IP "\fBprint(t, l)\fR" 4
yading@10 1352 .IX Item "print(t, l)"
yading@10 1353 .PD
yading@10 1354 Print the value of expression \fIt\fR with loglevel \fIl\fR. If
yading@10 1355 \&\fIl\fR is not specified then a default log level is used.
yading@10 1356 Returns the value of the expression printed.
yading@10 1357 .Sp
yading@10 1358 Prints t with loglevel l
yading@10 1359 .IP "\fBrandom(x)\fR" 4
yading@10 1360 .IX Item "random(x)"
yading@10 1361 Return a pseudo random value between 0.0 and 1.0. \fIx\fR is the index of the
yading@10 1362 internal variable which will be used to save the seed/state.
yading@10 1363 .IP "\fBroot(expr, max)\fR" 4
yading@10 1364 .IX Item "root(expr, max)"
yading@10 1365 Find an input value for which the function represented by \fIexpr\fR
yading@10 1366 with argument \fI\fIld\fI\|(0)\fR is 0 in the interval 0..\fImax\fR.
yading@10 1367 .Sp
yading@10 1368 The expression in \fIexpr\fR must denote a continuous function or the
yading@10 1369 result is undefined.
yading@10 1370 .Sp
yading@10 1371 \&\fI\fIld\fI\|(0)\fR is used to represent the function input value, which means
yading@10 1372 that the given expression will be evaluated multiple times with
yading@10 1373 various input values that the expression can access through
yading@10 1374 \&\f(CWld(0)\fR. When the expression evaluates to 0 then the
yading@10 1375 corresponding input value will be returned.
yading@10 1376 .IP "\fBsin(x)\fR" 4
yading@10 1377 .IX Item "sin(x)"
yading@10 1378 Compute sine of \fIx\fR.
yading@10 1379 .IP "\fBsinh(x)\fR" 4
yading@10 1380 .IX Item "sinh(x)"
yading@10 1381 Compute hyperbolic sine of \fIx\fR.
yading@10 1382 .IP "\fBsqrt(expr)\fR" 4
yading@10 1383 .IX Item "sqrt(expr)"
yading@10 1384 Compute the square root of \fIexpr\fR. This is equivalent to
yading@10 1385 "(\fIexpr\fR)^.5".
yading@10 1386 .IP "\fBsquish(x)\fR" 4
yading@10 1387 .IX Item "squish(x)"
yading@10 1388 Compute expression \f(CW\*(C`1/(1 + exp(4*x))\*(C'\fR.
yading@10 1389 .IP "\fBst(var, expr)\fR" 4
yading@10 1390 .IX Item "st(var, expr)"
yading@10 1391 Allow to store the value of the expression \fIexpr\fR in an internal
yading@10 1392 variable. \fIvar\fR specifies the number of the variable where to
yading@10 1393 store the value, and it is a value ranging from 0 to 9. The function
yading@10 1394 returns the value stored in the internal variable.
yading@10 1395 Note, Variables are currently not shared between expressions.
yading@10 1396 .IP "\fBtan(x)\fR" 4
yading@10 1397 .IX Item "tan(x)"
yading@10 1398 Compute tangent of \fIx\fR.
yading@10 1399 .IP "\fBtanh(x)\fR" 4
yading@10 1400 .IX Item "tanh(x)"
yading@10 1401 Compute hyperbolic tangent of \fIx\fR.
yading@10 1402 .IP "\fBtaylor(expr, x)\fR" 4
yading@10 1403 .IX Item "taylor(expr, x)"
yading@10 1404 .PD 0
yading@10 1405 .IP "\fBtaylor(expr, x, id)\fR" 4
yading@10 1406 .IX Item "taylor(expr, x, id)"
yading@10 1407 .PD
yading@10 1408 Evaluate a Taylor series at \fIx\fR, given an expression representing
yading@10 1409 the \f(CW\*(C`ld(id)\*(C'\fR\-th derivative of a function at 0.
yading@10 1410 .Sp
yading@10 1411 When the series does not converge the result is undefined.
yading@10 1412 .Sp
yading@10 1413 \&\fIld(id)\fR is used to represent the derivative order in \fIexpr\fR,
yading@10 1414 which means that the given expression will be evaluated multiple times
yading@10 1415 with various input values that the expression can access through
yading@10 1416 \&\f(CW\*(C`ld(id)\*(C'\fR. If \fIid\fR is not specified then 0 is assumed.
yading@10 1417 .Sp
yading@10 1418 Note, when you have the derivatives at y instead of 0,
yading@10 1419 \&\f(CW\*(C`taylor(expr, x\-y)\*(C'\fR can be used.
yading@10 1420 .IP "\fB\f(BItime\fB\|(0)\fR" 4
yading@10 1421 .IX Item "time"
yading@10 1422 Return the current (wallclock) time in seconds.
yading@10 1423 .IP "\fBtrunc(expr)\fR" 4
yading@10 1424 .IX Item "trunc(expr)"
yading@10 1425 Round the value of expression \fIexpr\fR towards zero to the nearest
yading@10 1426 integer. For example, \*(L"trunc(\-1.5)\*(R" is \*(L"\-1.0\*(R".
yading@10 1427 .IP "\fBwhile(cond, expr)\fR" 4
yading@10 1428 .IX Item "while(cond, expr)"
yading@10 1429 Evaluate expression \fIexpr\fR while the expression \fIcond\fR is
yading@10 1430 non-zero, and returns the value of the last \fIexpr\fR evaluation, or
yading@10 1431 \&\s-1NAN\s0 if \fIcond\fR was always false.
yading@10 1432 .PP
yading@10 1433 The following constants are available:
yading@10 1434 .IP "\fB\s-1PI\s0\fR" 4
yading@10 1435 .IX Item "PI"
yading@10 1436 area of the unit disc, approximately 3.14
yading@10 1437 .IP "\fBE\fR" 4
yading@10 1438 .IX Item "E"
yading@10 1439 \&\fIexp\fR\|(1) (Euler's number), approximately 2.718
yading@10 1440 .IP "\fB\s-1PHI\s0\fR" 4
yading@10 1441 .IX Item "PHI"
yading@10 1442 golden ratio (1+\fIsqrt\fR\|(5))/2, approximately 1.618
yading@10 1443 .PP
yading@10 1444 Assuming that an expression is considered \*(L"true\*(R" if it has a non-zero
yading@10 1445 value, note that:
yading@10 1446 .PP
yading@10 1447 \&\f(CW\*(C`*\*(C'\fR works like \s-1AND\s0
yading@10 1448 .PP
yading@10 1449 \&\f(CW\*(C`+\*(C'\fR works like \s-1OR\s0
yading@10 1450 .PP
yading@10 1451 For example the construct:
yading@10 1452 .PP
yading@10 1453 .Vb 1
yading@10 1454 \& if (A AND B) then C
yading@10 1455 .Ve
yading@10 1456 .PP
yading@10 1457 is equivalent to:
yading@10 1458 .PP
yading@10 1459 .Vb 1
yading@10 1460 \& if(A*B, C)
yading@10 1461 .Ve
yading@10 1462 .PP
yading@10 1463 In your C code, you can extend the list of unary and binary functions,
yading@10 1464 and define recognized constants, so that they are available for your
yading@10 1465 expressions.
yading@10 1466 .PP
yading@10 1467 The evaluator also recognizes the International System unit prefixes.
yading@10 1468 If 'i' is appended after the prefix, binary prefixes are used, which
yading@10 1469 are based on powers of 1024 instead of powers of 1000.
yading@10 1470 The 'B' postfix multiplies the value by 8, and can be appended after a
yading@10 1471 unit prefix or used alone. This allows using for example '\s-1KB\s0', 'MiB',
yading@10 1472 \&'G' and 'B' as number postfix.
yading@10 1473 .PP
yading@10 1474 The list of available International System prefixes follows, with
yading@10 1475 indication of the corresponding powers of 10 and of 2.
yading@10 1476 .IP "\fBy\fR" 4
yading@10 1477 .IX Item "y"
yading@10 1478 10^\-24 / 2^\-80
yading@10 1479 .IP "\fBz\fR" 4
yading@10 1480 .IX Item "z"
yading@10 1481 10^\-21 / 2^\-70
yading@10 1482 .IP "\fBa\fR" 4
yading@10 1483 .IX Item "a"
yading@10 1484 10^\-18 / 2^\-60
yading@10 1485 .IP "\fBf\fR" 4
yading@10 1486 .IX Item "f"
yading@10 1487 10^\-15 / 2^\-50
yading@10 1488 .IP "\fBp\fR" 4
yading@10 1489 .IX Item "p"
yading@10 1490 10^\-12 / 2^\-40
yading@10 1491 .IP "\fBn\fR" 4
yading@10 1492 .IX Item "n"
yading@10 1493 10^\-9 / 2^\-30
yading@10 1494 .IP "\fBu\fR" 4
yading@10 1495 .IX Item "u"
yading@10 1496 10^\-6 / 2^\-20
yading@10 1497 .IP "\fBm\fR" 4
yading@10 1498 .IX Item "m"
yading@10 1499 10^\-3 / 2^\-10
yading@10 1500 .IP "\fBc\fR" 4
yading@10 1501 .IX Item "c"
yading@10 1502 10^\-2
yading@10 1503 .IP "\fBd\fR" 4
yading@10 1504 .IX Item "d"
yading@10 1505 10^\-1
yading@10 1506 .IP "\fBh\fR" 4
yading@10 1507 .IX Item "h"
yading@10 1508 10^2
yading@10 1509 .IP "\fBk\fR" 4
yading@10 1510 .IX Item "k"
yading@10 1511 10^3 / 2^10
yading@10 1512 .IP "\fBK\fR" 4
yading@10 1513 .IX Item "K"
yading@10 1514 10^3 / 2^10
yading@10 1515 .IP "\fBM\fR" 4
yading@10 1516 .IX Item "M"
yading@10 1517 10^6 / 2^20
yading@10 1518 .IP "\fBG\fR" 4
yading@10 1519 .IX Item "G"
yading@10 1520 10^9 / 2^30
yading@10 1521 .IP "\fBT\fR" 4
yading@10 1522 .IX Item "T"
yading@10 1523 10^12 / 2^40
yading@10 1524 .IP "\fBP\fR" 4
yading@10 1525 .IX Item "P"
yading@10 1526 10^15 / 2^40
yading@10 1527 .IP "\fBE\fR" 4
yading@10 1528 .IX Item "E"
yading@10 1529 10^18 / 2^50
yading@10 1530 .IP "\fBZ\fR" 4
yading@10 1531 .IX Item "Z"
yading@10 1532 10^21 / 2^60
yading@10 1533 .IP "\fBY\fR" 4
yading@10 1534 .IX Item "Y"
yading@10 1535 10^24 / 2^70
yading@10 1536 .SH "OPENCL OPTIONS"
yading@10 1537 .IX Header "OPENCL OPTIONS"
yading@10 1538 When FFmpeg is configured with \f(CW\*(C`\-\-enable\-opencl\*(C'\fR, it is possible
yading@10 1539 to set the options for the global OpenCL context.
yading@10 1540 .PP
yading@10 1541 The list of supported options follows:
yading@10 1542 .IP "\fBbuild_options\fR" 4
yading@10 1543 .IX Item "build_options"
yading@10 1544 Set build options used to compile the registered kernels.
yading@10 1545 .Sp
yading@10 1546 See reference \*(L"OpenCL Specification Version: 1.2 chapter 5.6.4\*(R".
yading@10 1547 .IP "\fBplatform_idx\fR" 4
yading@10 1548 .IX Item "platform_idx"
yading@10 1549 Select the index of the platform to run OpenCL code.
yading@10 1550 .Sp
yading@10 1551 The specified index must be one of the indexes in the device list
yading@10 1552 which can be obtained with \f(CW\*(C`av_opencl_get_device_list()\*(C'\fR.
yading@10 1553 .IP "\fBdevice_idx\fR" 4
yading@10 1554 .IX Item "device_idx"
yading@10 1555 Select the index of the device used to run OpenCL code.
yading@10 1556 .Sp
yading@10 1557 The specifed index must be one of the indexes in the device list which
yading@10 1558 can be obtained with \f(CW\*(C`av_opencl_get_device_list()\*(C'\fR.
yading@10 1559 .SH "CODEC OPTIONS"
yading@10 1560 .IX Header "CODEC OPTIONS"
yading@10 1561 libavcodec provides some generic global options, which can be set on
yading@10 1562 all the encoders and decoders. In addition each codec may support
yading@10 1563 so-called private options, which are specific for a given codec.
yading@10 1564 .PP
yading@10 1565 Sometimes, a global option may only affect a specific kind of codec,
yading@10 1566 and may be unsensical or ignored by another, so you need to be aware
yading@10 1567 of the meaning of the specified options. Also some options are
yading@10 1568 meant only for decoding or encoding.
yading@10 1569 .PP
yading@10 1570 Options may be set by specifying \-\fIoption\fR \fIvalue\fR in the
yading@10 1571 FFmpeg tools, or by setting the value explicitly in the
yading@10 1572 \&\f(CW\*(C`AVCodecContext\*(C'\fR options or using the \fIlibavutil/opt.h\fR \s-1API\s0
yading@10 1573 for programmatic use.
yading@10 1574 .PP
yading@10 1575 The list of supported options follow:
yading@10 1576 .IP "\fBb\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4
yading@10 1577 .IX Item "b integer (encoding,audio,video)"
yading@10 1578 Set bitrate in bits/s. Default value is 200K.
yading@10 1579 .IP "\fBab\fR \fIinteger\fR \fB(\fR\fIencoding,audio\fR\fB)\fR" 4
yading@10 1580 .IX Item "ab integer (encoding,audio)"
yading@10 1581 Set audio bitrate (in bits/s). Default value is 128K.
yading@10 1582 .IP "\fBbt\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1583 .IX Item "bt integer (encoding,video)"
yading@10 1584 Set video bitrate tolerance (in bits/s). In 1\-pass mode, bitrate
yading@10 1585 tolerance specifies how far ratecontrol is willing to deviate from the
yading@10 1586 target average bitrate value. This is not related to min/max
yading@10 1587 bitrate. Lowering tolerance too much has an adverse effect on quality.
yading@10 1588 .IP "\fBflags\fR \fIflags\fR \fB(\fR\fIdecoding/encoding,audio,video,subtitles\fR\fB)\fR" 4
yading@10 1589 .IX Item "flags flags (decoding/encoding,audio,video,subtitles)"
yading@10 1590 Set generic flags.
yading@10 1591 .Sp
yading@10 1592 Possible values:
yading@10 1593 .RS 4
yading@10 1594 .IP "\fBmv4\fR" 4
yading@10 1595 .IX Item "mv4"
yading@10 1596 Use four motion vector by macroblock (mpeg4).
yading@10 1597 .IP "\fBqpel\fR" 4
yading@10 1598 .IX Item "qpel"
yading@10 1599 Use 1/4 pel motion compensation.
yading@10 1600 .IP "\fBloop\fR" 4
yading@10 1601 .IX Item "loop"
yading@10 1602 Use loop filter.
yading@10 1603 .IP "\fBqscale\fR" 4
yading@10 1604 .IX Item "qscale"
yading@10 1605 Use fixed qscale.
yading@10 1606 .IP "\fBgmc\fR" 4
yading@10 1607 .IX Item "gmc"
yading@10 1608 Use gmc.
yading@10 1609 .IP "\fBmv0\fR" 4
yading@10 1610 .IX Item "mv0"
yading@10 1611 Always try a mb with mv=<0,0>.
yading@10 1612 .IP "\fBinput_preserved\fR" 4
yading@10 1613 .IX Item "input_preserved"
yading@10 1614 .PD 0
yading@10 1615 .IP "\fBpass1\fR" 4
yading@10 1616 .IX Item "pass1"
yading@10 1617 .PD
yading@10 1618 Use internal 2pass ratecontrol in first pass mode.
yading@10 1619 .IP "\fBpass2\fR" 4
yading@10 1620 .IX Item "pass2"
yading@10 1621 Use internal 2pass ratecontrol in second pass mode.
yading@10 1622 .IP "\fBgray\fR" 4
yading@10 1623 .IX Item "gray"
yading@10 1624 Only decode/encode grayscale.
yading@10 1625 .IP "\fBemu_edge\fR" 4
yading@10 1626 .IX Item "emu_edge"
yading@10 1627 Do not draw edges.
yading@10 1628 .IP "\fBpsnr\fR" 4
yading@10 1629 .IX Item "psnr"
yading@10 1630 Set error[?] variables during encoding.
yading@10 1631 .IP "\fBtruncated\fR" 4
yading@10 1632 .IX Item "truncated"
yading@10 1633 .PD 0
yading@10 1634 .IP "\fBnaq\fR" 4
yading@10 1635 .IX Item "naq"
yading@10 1636 .PD
yading@10 1637 Normalize adaptive quantization.
yading@10 1638 .IP "\fBildct\fR" 4
yading@10 1639 .IX Item "ildct"
yading@10 1640 Use interlaced \s-1DCT\s0.
yading@10 1641 .IP "\fBlow_delay\fR" 4
yading@10 1642 .IX Item "low_delay"
yading@10 1643 Force low delay.
yading@10 1644 .IP "\fBglobal_header\fR" 4
yading@10 1645 .IX Item "global_header"
yading@10 1646 Place global headers in extradata instead of every keyframe.
yading@10 1647 .IP "\fBbitexact\fR" 4
yading@10 1648 .IX Item "bitexact"
yading@10 1649 Use only bitexact stuff (except (I)DCT).
yading@10 1650 .IP "\fBaic\fR" 4
yading@10 1651 .IX Item "aic"
yading@10 1652 Apply H263 advanced intra coding / mpeg4 ac prediction.
yading@10 1653 .IP "\fBcbp\fR" 4
yading@10 1654 .IX Item "cbp"
yading@10 1655 Deprecated, use mpegvideo private options instead.
yading@10 1656 .IP "\fBqprd\fR" 4
yading@10 1657 .IX Item "qprd"
yading@10 1658 Deprecated, use mpegvideo private options instead.
yading@10 1659 .IP "\fBilme\fR" 4
yading@10 1660 .IX Item "ilme"
yading@10 1661 Apply interlaced motion estimation.
yading@10 1662 .IP "\fBcgop\fR" 4
yading@10 1663 .IX Item "cgop"
yading@10 1664 Use closed gop.
yading@10 1665 .RE
yading@10 1666 .RS 4
yading@10 1667 .RE
yading@10 1668 .IP "\fBsub_id\fR \fIinteger\fR" 4
yading@10 1669 .IX Item "sub_id integer"
yading@10 1670 Deprecated, currently unused.
yading@10 1671 .IP "\fBme_method\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1672 .IX Item "me_method integer (encoding,video)"
yading@10 1673 Set motion estimation method.
yading@10 1674 .Sp
yading@10 1675 Possible values:
yading@10 1676 .RS 4
yading@10 1677 .IP "\fBzero\fR" 4
yading@10 1678 .IX Item "zero"
yading@10 1679 zero motion estimation (fastest)
yading@10 1680 .IP "\fBfull\fR" 4
yading@10 1681 .IX Item "full"
yading@10 1682 full motion estimation (slowest)
yading@10 1683 .IP "\fBepzs\fR" 4
yading@10 1684 .IX Item "epzs"
yading@10 1685 \&\s-1EPZS\s0 motion estimation (default)
yading@10 1686 .IP "\fBesa\fR" 4
yading@10 1687 .IX Item "esa"
yading@10 1688 esa motion estimation (alias for full)
yading@10 1689 .IP "\fBtesa\fR" 4
yading@10 1690 .IX Item "tesa"
yading@10 1691 tesa motion estimation
yading@10 1692 .IP "\fBdia\fR" 4
yading@10 1693 .IX Item "dia"
yading@10 1694 dia motion estimation (alias for epzs)
yading@10 1695 .IP "\fBlog\fR" 4
yading@10 1696 .IX Item "log"
yading@10 1697 log motion estimation
yading@10 1698 .IP "\fBphods\fR" 4
yading@10 1699 .IX Item "phods"
yading@10 1700 phods motion estimation
yading@10 1701 .IP "\fBx1\fR" 4
yading@10 1702 .IX Item "x1"
yading@10 1703 X1 motion estimation
yading@10 1704 .IP "\fBhex\fR" 4
yading@10 1705 .IX Item "hex"
yading@10 1706 hex motion estimation
yading@10 1707 .IP "\fBumh\fR" 4
yading@10 1708 .IX Item "umh"
yading@10 1709 umh motion estimation
yading@10 1710 .IP "\fBiter\fR" 4
yading@10 1711 .IX Item "iter"
yading@10 1712 iter motion estimation
yading@10 1713 .RE
yading@10 1714 .RS 4
yading@10 1715 .RE
yading@10 1716 .IP "\fBextradata_size\fR \fIinteger\fR" 4
yading@10 1717 .IX Item "extradata_size integer"
yading@10 1718 Set extradata size.
yading@10 1719 .IP "\fBtime_base\fR \fIrational number\fR" 4
yading@10 1720 .IX Item "time_base rational number"
yading@10 1721 Set codec time base.
yading@10 1722 .Sp
yading@10 1723 It is the fundamental unit of time (in seconds) in terms of which
yading@10 1724 frame timestamps are represented. For fixed-fps content, timebase
yading@10 1725 should be \f(CW\*(C`1 / frame_rate\*(C'\fR and timestamp increments should be
yading@10 1726 identically 1.
yading@10 1727 .IP "\fBg\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1728 .IX Item "g integer (encoding,video)"
yading@10 1729 Set the group of picture size. Default value is 12.
yading@10 1730 .IP "\fBar\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,audio\fR\fB)\fR" 4
yading@10 1731 .IX Item "ar integer (decoding/encoding,audio)"
yading@10 1732 Set audio sampling rate (in Hz).
yading@10 1733 .IP "\fBac\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,audio\fR\fB)\fR" 4
yading@10 1734 .IX Item "ac integer (decoding/encoding,audio)"
yading@10 1735 Set number of audio channels.
yading@10 1736 .IP "\fBcutoff\fR \fIinteger\fR \fB(\fR\fIencoding,audio\fR\fB)\fR" 4
yading@10 1737 .IX Item "cutoff integer (encoding,audio)"
yading@10 1738 Set cutoff bandwidth.
yading@10 1739 .IP "\fBframe_size\fR \fIinteger\fR \fB(\fR\fIencoding,audio\fR\fB)\fR" 4
yading@10 1740 .IX Item "frame_size integer (encoding,audio)"
yading@10 1741 Set audio frame size.
yading@10 1742 .Sp
yading@10 1743 Each submitted frame except the last must contain exactly frame_size
yading@10 1744 samples per channel. May be 0 when the codec has
yading@10 1745 \&\s-1CODEC_CAP_VARIABLE_FRAME_SIZE\s0 set, in that case the frame size is not
yading@10 1746 restricted. It is set by some decoders to indicate constant frame
yading@10 1747 size.
yading@10 1748 .IP "\fBframe_number\fR \fIinteger\fR" 4
yading@10 1749 .IX Item "frame_number integer"
yading@10 1750 Set the frame number.
yading@10 1751 .IP "\fBdelay\fR \fIinteger\fR" 4
yading@10 1752 .IX Item "delay integer"
yading@10 1753 .PD 0
yading@10 1754 .IP "\fBqcomp\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1755 .IX Item "qcomp float (encoding,video)"
yading@10 1756 .PD
yading@10 1757 Set video quantizer scale compression (\s-1VBR\s0). It is used as a constant
yading@10 1758 in the ratecontrol equation. Recommended range for default rc_eq:
yading@10 1759 0.0\-1.0.
yading@10 1760 .IP "\fBqblur\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1761 .IX Item "qblur float (encoding,video)"
yading@10 1762 Set video quantizer scale blur (\s-1VBR\s0).
yading@10 1763 .IP "\fBqmin\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1764 .IX Item "qmin integer (encoding,video)"
yading@10 1765 Set min video quantizer scale (\s-1VBR\s0). Must be included between \-1 and
yading@10 1766 69, default value is 2.
yading@10 1767 .IP "\fBqmax\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1768 .IX Item "qmax integer (encoding,video)"
yading@10 1769 Set max video quantizer scale (\s-1VBR\s0). Must be included between \-1 and
yading@10 1770 1024, default value is 31.
yading@10 1771 .IP "\fBqdiff\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1772 .IX Item "qdiff integer (encoding,video)"
yading@10 1773 Set max difference between the quantizer scale (\s-1VBR\s0).
yading@10 1774 .IP "\fBbf\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1775 .IX Item "bf integer (encoding,video)"
yading@10 1776 Set max number of B frames.
yading@10 1777 .IP "\fBb_qfactor\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1778 .IX Item "b_qfactor float (encoding,video)"
yading@10 1779 Set qp factor between P and B frames.
yading@10 1780 .IP "\fBrc_strategy\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1781 .IX Item "rc_strategy integer (encoding,video)"
yading@10 1782 Set ratecontrol method.
yading@10 1783 .IP "\fBb_strategy\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1784 .IX Item "b_strategy integer (encoding,video)"
yading@10 1785 Set strategy to choose between I/P/B\-frames.
yading@10 1786 .IP "\fBps\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1787 .IX Item "ps integer (encoding,video)"
yading@10 1788 Set \s-1RTP\s0 payload size in bytes.
yading@10 1789 .IP "\fBmv_bits\fR \fIinteger\fR" 4
yading@10 1790 .IX Item "mv_bits integer"
yading@10 1791 .PD 0
yading@10 1792 .IP "\fBheader_bits\fR \fIinteger\fR" 4
yading@10 1793 .IX Item "header_bits integer"
yading@10 1794 .IP "\fBi_tex_bits\fR \fIinteger\fR" 4
yading@10 1795 .IX Item "i_tex_bits integer"
yading@10 1796 .IP "\fBp_tex_bits\fR \fIinteger\fR" 4
yading@10 1797 .IX Item "p_tex_bits integer"
yading@10 1798 .IP "\fBi_count\fR \fIinteger\fR" 4
yading@10 1799 .IX Item "i_count integer"
yading@10 1800 .IP "\fBp_count\fR \fIinteger\fR" 4
yading@10 1801 .IX Item "p_count integer"
yading@10 1802 .IP "\fBskip_count\fR \fIinteger\fR" 4
yading@10 1803 .IX Item "skip_count integer"
yading@10 1804 .IP "\fBmisc_bits\fR \fIinteger\fR" 4
yading@10 1805 .IX Item "misc_bits integer"
yading@10 1806 .IP "\fBframe_bits\fR \fIinteger\fR" 4
yading@10 1807 .IX Item "frame_bits integer"
yading@10 1808 .IP "\fBcodec_tag\fR \fIinteger\fR" 4
yading@10 1809 .IX Item "codec_tag integer"
yading@10 1810 .IP "\fBbug\fR \fIflags\fR \fB(\fR\fIdecoding,video\fR\fB)\fR" 4
yading@10 1811 .IX Item "bug flags (decoding,video)"
yading@10 1812 .PD
yading@10 1813 Workaround not auto detected encoder bugs.
yading@10 1814 .Sp
yading@10 1815 Possible values:
yading@10 1816 .RS 4
yading@10 1817 .IP "\fBautodetect\fR" 4
yading@10 1818 .IX Item "autodetect"
yading@10 1819 .PD 0
yading@10 1820 .IP "\fBold_msmpeg4\fR" 4
yading@10 1821 .IX Item "old_msmpeg4"
yading@10 1822 .PD
yading@10 1823 some old lavc generated msmpeg4v3 files (no autodetection)
yading@10 1824 .IP "\fBxvid_ilace\fR" 4
yading@10 1825 .IX Item "xvid_ilace"
yading@10 1826 Xvid interlacing bug (autodetected if fourcc==XVIX)
yading@10 1827 .IP "\fBump4\fR" 4
yading@10 1828 .IX Item "ump4"
yading@10 1829 (autodetected if fourcc==UMP4)
yading@10 1830 .IP "\fBno_padding\fR" 4
yading@10 1831 .IX Item "no_padding"
yading@10 1832 padding bug (autodetected)
yading@10 1833 .IP "\fBamv\fR" 4
yading@10 1834 .IX Item "amv"
yading@10 1835 .PD 0
yading@10 1836 .IP "\fBac_vlc\fR" 4
yading@10 1837 .IX Item "ac_vlc"
yading@10 1838 .PD
yading@10 1839 illegal vlc bug (autodetected per fourcc)
yading@10 1840 .IP "\fBqpel_chroma\fR" 4
yading@10 1841 .IX Item "qpel_chroma"
yading@10 1842 .PD 0
yading@10 1843 .IP "\fBstd_qpel\fR" 4
yading@10 1844 .IX Item "std_qpel"
yading@10 1845 .PD
yading@10 1846 old standard qpel (autodetected per fourcc/version)
yading@10 1847 .IP "\fBqpel_chroma2\fR" 4
yading@10 1848 .IX Item "qpel_chroma2"
yading@10 1849 .PD 0
yading@10 1850 .IP "\fBdirect_blocksize\fR" 4
yading@10 1851 .IX Item "direct_blocksize"
yading@10 1852 .PD
yading@10 1853 direct-qpel-blocksize bug (autodetected per fourcc/version)
yading@10 1854 .IP "\fBedge\fR" 4
yading@10 1855 .IX Item "edge"
yading@10 1856 edge padding bug (autodetected per fourcc/version)
yading@10 1857 .IP "\fBhpel_chroma\fR" 4
yading@10 1858 .IX Item "hpel_chroma"
yading@10 1859 .PD 0
yading@10 1860 .IP "\fBdc_clip\fR" 4
yading@10 1861 .IX Item "dc_clip"
yading@10 1862 .IP "\fBms\fR" 4
yading@10 1863 .IX Item "ms"
yading@10 1864 .PD
yading@10 1865 Workaround various bugs in microsoft broken decoders.
yading@10 1866 .IP "\fBtrunc\fR" 4
yading@10 1867 .IX Item "trunc"
yading@10 1868 trancated frames
yading@10 1869 .RE
yading@10 1870 .RS 4
yading@10 1871 .RE
yading@10 1872 .IP "\fBlelim\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1873 .IX Item "lelim integer (encoding,video)"
yading@10 1874 Set single coefficient elimination threshold for luminance (negative
yading@10 1875 values also consider \s-1DC\s0 coefficient).
yading@10 1876 .IP "\fBcelim\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1877 .IX Item "celim integer (encoding,video)"
yading@10 1878 Set single coefficient elimination threshold for chrominance (negative
yading@10 1879 values also consider dc coefficient)
yading@10 1880 .IP "\fBstrict\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,audio,video\fR\fB)\fR" 4
yading@10 1881 .IX Item "strict integer (decoding/encoding,audio,video)"
yading@10 1882 Specify how strictly to follow the standards.
yading@10 1883 .Sp
yading@10 1884 Possible values:
yading@10 1885 .RS 4
yading@10 1886 .IP "\fBvery\fR" 4
yading@10 1887 .IX Item "very"
yading@10 1888 strictly conform to a older more strict version of the spec or reference software
yading@10 1889 .IP "\fBstrict\fR" 4
yading@10 1890 .IX Item "strict"
yading@10 1891 strictly conform to all the things in the spec no matter what consequences
yading@10 1892 .IP "\fBnormal\fR" 4
yading@10 1893 .IX Item "normal"
yading@10 1894 .PD 0
yading@10 1895 .IP "\fBunofficial\fR" 4
yading@10 1896 .IX Item "unofficial"
yading@10 1897 .PD
yading@10 1898 allow unofficial extensions
yading@10 1899 .IP "\fBexperimental\fR" 4
yading@10 1900 .IX Item "experimental"
yading@10 1901 allow non standardized experimental things
yading@10 1902 .RE
yading@10 1903 .RS 4
yading@10 1904 .RE
yading@10 1905 .IP "\fBb_qoffset\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1906 .IX Item "b_qoffset float (encoding,video)"
yading@10 1907 Set \s-1QP\s0 offset between P and B frames.
yading@10 1908 .IP "\fBerr_detect\fR \fIflags\fR \fB(\fR\fIdecoding,audio,video\fR\fB)\fR" 4
yading@10 1909 .IX Item "err_detect flags (decoding,audio,video)"
yading@10 1910 Set error detection flags.
yading@10 1911 .Sp
yading@10 1912 Possible values:
yading@10 1913 .RS 4
yading@10 1914 .IP "\fBcrccheck\fR" 4
yading@10 1915 .IX Item "crccheck"
yading@10 1916 verify embedded CRCs
yading@10 1917 .IP "\fBbitstream\fR" 4
yading@10 1918 .IX Item "bitstream"
yading@10 1919 detect bitstream specification deviations
yading@10 1920 .IP "\fBbuffer\fR" 4
yading@10 1921 .IX Item "buffer"
yading@10 1922 detect improper bitstream length
yading@10 1923 .IP "\fBexplode\fR" 4
yading@10 1924 .IX Item "explode"
yading@10 1925 abort decoding on minor error detection
yading@10 1926 .IP "\fBcareful\fR" 4
yading@10 1927 .IX Item "careful"
yading@10 1928 consider things that violate the spec and have not been seen in the wild as errors
yading@10 1929 .IP "\fBcompliant\fR" 4
yading@10 1930 .IX Item "compliant"
yading@10 1931 consider all spec non compliancies as errors
yading@10 1932 .IP "\fBaggressive\fR" 4
yading@10 1933 .IX Item "aggressive"
yading@10 1934 consider things that a sane encoder should not do as an error
yading@10 1935 .RE
yading@10 1936 .RS 4
yading@10 1937 .RE
yading@10 1938 .IP "\fBhas_b_frames\fR \fIinteger\fR" 4
yading@10 1939 .IX Item "has_b_frames integer"
yading@10 1940 .PD 0
yading@10 1941 .IP "\fBblock_align\fR \fIinteger\fR" 4
yading@10 1942 .IX Item "block_align integer"
yading@10 1943 .IP "\fBmpeg_quant\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1944 .IX Item "mpeg_quant integer (encoding,video)"
yading@10 1945 .PD
yading@10 1946 Use \s-1MPEG\s0 quantizers instead of H.263.
yading@10 1947 .IP "\fBqsquish\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1948 .IX Item "qsquish float (encoding,video)"
yading@10 1949 How to keep quantizer between qmin and qmax (0 = clip, 1 = use
yading@10 1950 differentiable function).
yading@10 1951 .IP "\fBrc_qmod_amp\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1952 .IX Item "rc_qmod_amp float (encoding,video)"
yading@10 1953 Set experimental quantizer modulation.
yading@10 1954 .IP "\fBrc_qmod_freq\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1955 .IX Item "rc_qmod_freq integer (encoding,video)"
yading@10 1956 Set experimental quantizer modulation.
yading@10 1957 .IP "\fBrc_override_count\fR \fIinteger\fR" 4
yading@10 1958 .IX Item "rc_override_count integer"
yading@10 1959 .PD 0
yading@10 1960 .IP "\fBrc_eq\fR \fIstring\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1961 .IX Item "rc_eq string (encoding,video)"
yading@10 1962 .PD
yading@10 1963 Set rate control equation. When computing the expression, besides the
yading@10 1964 standard functions defined in the section 'Expression Evaluation', the
yading@10 1965 following functions are available: bits2qp(bits), qp2bits(qp). Also
yading@10 1966 the following constants are available: iTex pTex tex mv fCode iCount
yading@10 1967 mcVar var isI isP isB avgQP qComp avgIITex avgPITex avgPPTex avgBPTex
yading@10 1968 avgTex.
yading@10 1969 .IP "\fBmaxrate\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4
yading@10 1970 .IX Item "maxrate integer (encoding,audio,video)"
yading@10 1971 Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
yading@10 1972 .IP "\fBminrate\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4
yading@10 1973 .IX Item "minrate integer (encoding,audio,video)"
yading@10 1974 Set min bitrate tolerance (in bits/s). Most useful in setting up a \s-1CBR\s0
yading@10 1975 encode. It is of little use elsewise.
yading@10 1976 .IP "\fBbufsize\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4
yading@10 1977 .IX Item "bufsize integer (encoding,audio,video)"
yading@10 1978 Set ratecontrol buffer size (in bits).
yading@10 1979 .IP "\fBrc_buf_aggressivity\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1980 .IX Item "rc_buf_aggressivity float (encoding,video)"
yading@10 1981 Currently useless.
yading@10 1982 .IP "\fBi_qfactor\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1983 .IX Item "i_qfactor float (encoding,video)"
yading@10 1984 Set \s-1QP\s0 factor between P and I frames.
yading@10 1985 .IP "\fBi_qoffset\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1986 .IX Item "i_qoffset float (encoding,video)"
yading@10 1987 Set \s-1QP\s0 offset between P and I frames.
yading@10 1988 .IP "\fBrc_init_cplx\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1989 .IX Item "rc_init_cplx float (encoding,video)"
yading@10 1990 Set initial complexity for 1\-pass encoding.
yading@10 1991 .IP "\fBdct\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 1992 .IX Item "dct integer (encoding,video)"
yading@10 1993 Set \s-1DCT\s0 algorithm.
yading@10 1994 .Sp
yading@10 1995 Possible values:
yading@10 1996 .RS 4
yading@10 1997 .IP "\fBauto\fR" 4
yading@10 1998 .IX Item "auto"
yading@10 1999 autoselect a good one (default)
yading@10 2000 .IP "\fBfastint\fR" 4
yading@10 2001 .IX Item "fastint"
yading@10 2002 fast integer
yading@10 2003 .IP "\fBint\fR" 4
yading@10 2004 .IX Item "int"
yading@10 2005 accurate integer
yading@10 2006 .IP "\fBmmx\fR" 4
yading@10 2007 .IX Item "mmx"
yading@10 2008 .PD 0
yading@10 2009 .IP "\fBaltivec\fR" 4
yading@10 2010 .IX Item "altivec"
yading@10 2011 .IP "\fBfaan\fR" 4
yading@10 2012 .IX Item "faan"
yading@10 2013 .PD
yading@10 2014 floating point \s-1AAN\s0 \s-1DCT\s0
yading@10 2015 .RE
yading@10 2016 .RS 4
yading@10 2017 .RE
yading@10 2018 .IP "\fBlumi_mask\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2019 .IX Item "lumi_mask float (encoding,video)"
yading@10 2020 Compress bright areas stronger than medium ones.
yading@10 2021 .IP "\fBtcplx_mask\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2022 .IX Item "tcplx_mask float (encoding,video)"
yading@10 2023 Set temporal complexity masking.
yading@10 2024 .IP "\fBscplx_mask\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2025 .IX Item "scplx_mask float (encoding,video)"
yading@10 2026 Set spatial complexity masking.
yading@10 2027 .IP "\fBp_mask\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2028 .IX Item "p_mask float (encoding,video)"
yading@10 2029 Set inter masking.
yading@10 2030 .IP "\fBdark_mask\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2031 .IX Item "dark_mask float (encoding,video)"
yading@10 2032 Compress dark areas stronger than medium ones.
yading@10 2033 .IP "\fBidct\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4
yading@10 2034 .IX Item "idct integer (decoding/encoding,video)"
yading@10 2035 Select \s-1IDCT\s0 implementation.
yading@10 2036 .Sp
yading@10 2037 Possible values:
yading@10 2038 .RS 4
yading@10 2039 .IP "\fBauto\fR" 4
yading@10 2040 .IX Item "auto"
yading@10 2041 .PD 0
yading@10 2042 .IP "\fBint\fR" 4
yading@10 2043 .IX Item "int"
yading@10 2044 .IP "\fBsimple\fR" 4
yading@10 2045 .IX Item "simple"
yading@10 2046 .IP "\fBsimplemmx\fR" 4
yading@10 2047 .IX Item "simplemmx"
yading@10 2048 .IP "\fBlibmpeg2mmx\fR" 4
yading@10 2049 .IX Item "libmpeg2mmx"
yading@10 2050 .IP "\fBmmi\fR" 4
yading@10 2051 .IX Item "mmi"
yading@10 2052 .IP "\fBarm\fR" 4
yading@10 2053 .IX Item "arm"
yading@10 2054 .IP "\fBaltivec\fR" 4
yading@10 2055 .IX Item "altivec"
yading@10 2056 .IP "\fBsh4\fR" 4
yading@10 2057 .IX Item "sh4"
yading@10 2058 .IP "\fBsimplearm\fR" 4
yading@10 2059 .IX Item "simplearm"
yading@10 2060 .IP "\fBsimplearmv5te\fR" 4
yading@10 2061 .IX Item "simplearmv5te"
yading@10 2062 .IP "\fBsimplearmv6\fR" 4
yading@10 2063 .IX Item "simplearmv6"
yading@10 2064 .IP "\fBsimpleneon\fR" 4
yading@10 2065 .IX Item "simpleneon"
yading@10 2066 .IP "\fBsimplealpha\fR" 4
yading@10 2067 .IX Item "simplealpha"
yading@10 2068 .IP "\fBh264\fR" 4
yading@10 2069 .IX Item "h264"
yading@10 2070 .IP "\fBvp3\fR" 4
yading@10 2071 .IX Item "vp3"
yading@10 2072 .IP "\fBipp\fR" 4
yading@10 2073 .IX Item "ipp"
yading@10 2074 .IP "\fBxvidmmx\fR" 4
yading@10 2075 .IX Item "xvidmmx"
yading@10 2076 .IP "\fBfaani\fR" 4
yading@10 2077 .IX Item "faani"
yading@10 2078 .PD
yading@10 2079 floating point \s-1AAN\s0 \s-1IDCT\s0
yading@10 2080 .RE
yading@10 2081 .RS 4
yading@10 2082 .RE
yading@10 2083 .IP "\fBslice_count\fR \fIinteger\fR" 4
yading@10 2084 .IX Item "slice_count integer"
yading@10 2085 .PD 0
yading@10 2086 .IP "\fBec\fR \fIflags\fR \fB(\fR\fIdecoding,video\fR\fB)\fR" 4
yading@10 2087 .IX Item "ec flags (decoding,video)"
yading@10 2088 .PD
yading@10 2089 Set error concealment strategy.
yading@10 2090 .Sp
yading@10 2091 Possible values:
yading@10 2092 .RS 4
yading@10 2093 .IP "\fBguess_mvs\fR" 4
yading@10 2094 .IX Item "guess_mvs"
yading@10 2095 iterative motion vector (\s-1MV\s0) search (slow)
yading@10 2096 .IP "\fBdeblock\fR" 4
yading@10 2097 .IX Item "deblock"
yading@10 2098 use strong deblock filter for damaged MBs
yading@10 2099 .RE
yading@10 2100 .RS 4
yading@10 2101 .RE
yading@10 2102 .IP "\fBbits_per_coded_sample\fR \fIinteger\fR" 4
yading@10 2103 .IX Item "bits_per_coded_sample integer"
yading@10 2104 .PD 0
yading@10 2105 .IP "\fBpred\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2106 .IX Item "pred integer (encoding,video)"
yading@10 2107 .PD
yading@10 2108 Set prediction method.
yading@10 2109 .Sp
yading@10 2110 Possible values:
yading@10 2111 .RS 4
yading@10 2112 .IP "\fBleft\fR" 4
yading@10 2113 .IX Item "left"
yading@10 2114 .PD 0
yading@10 2115 .IP "\fBplane\fR" 4
yading@10 2116 .IX Item "plane"
yading@10 2117 .IP "\fBmedian\fR" 4
yading@10 2118 .IX Item "median"
yading@10 2119 .RE
yading@10 2120 .RS 4
yading@10 2121 .RE
yading@10 2122 .IP "\fBaspect\fR \fIrational number\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2123 .IX Item "aspect rational number (encoding,video)"
yading@10 2124 .PD
yading@10 2125 Set sample aspect ratio.
yading@10 2126 .IP "\fBdebug\fR \fIflags\fR \fB(\fR\fIdecoding/encoding,audio,video,subtitles\fR\fB)\fR" 4
yading@10 2127 .IX Item "debug flags (decoding/encoding,audio,video,subtitles)"
yading@10 2128 Print specific debug info.
yading@10 2129 .Sp
yading@10 2130 Possible values:
yading@10 2131 .RS 4
yading@10 2132 .IP "\fBpict\fR" 4
yading@10 2133 .IX Item "pict"
yading@10 2134 picture info
yading@10 2135 .IP "\fBrc\fR" 4
yading@10 2136 .IX Item "rc"
yading@10 2137 rate control
yading@10 2138 .IP "\fBbitstream\fR" 4
yading@10 2139 .IX Item "bitstream"
yading@10 2140 .PD 0
yading@10 2141 .IP "\fBmb_type\fR" 4
yading@10 2142 .IX Item "mb_type"
yading@10 2143 .PD
yading@10 2144 macroblock (\s-1MB\s0) type
yading@10 2145 .IP "\fBqp\fR" 4
yading@10 2146 .IX Item "qp"
yading@10 2147 per-block quantization parameter (\s-1QP\s0)
yading@10 2148 .IP "\fBmv\fR" 4
yading@10 2149 .IX Item "mv"
yading@10 2150 motion vector
yading@10 2151 .IP "\fBdct_coeff\fR" 4
yading@10 2152 .IX Item "dct_coeff"
yading@10 2153 .PD 0
yading@10 2154 .IP "\fBskip\fR" 4
yading@10 2155 .IX Item "skip"
yading@10 2156 .IP "\fBstartcode\fR" 4
yading@10 2157 .IX Item "startcode"
yading@10 2158 .IP "\fBpts\fR" 4
yading@10 2159 .IX Item "pts"
yading@10 2160 .IP "\fBer\fR" 4
yading@10 2161 .IX Item "er"
yading@10 2162 .PD
yading@10 2163 error recognition
yading@10 2164 .IP "\fBmmco\fR" 4
yading@10 2165 .IX Item "mmco"
yading@10 2166 memory management control operations (H.264)
yading@10 2167 .IP "\fBbugs\fR" 4
yading@10 2168 .IX Item "bugs"
yading@10 2169 .PD 0
yading@10 2170 .IP "\fBvis_qp\fR" 4
yading@10 2171 .IX Item "vis_qp"
yading@10 2172 .PD
yading@10 2173 visualize quantization parameter (\s-1QP\s0), lower \s-1QP\s0 are tinted greener
yading@10 2174 .IP "\fBvis_mb_type\fR" 4
yading@10 2175 .IX Item "vis_mb_type"
yading@10 2176 visualize block types
yading@10 2177 .IP "\fBbuffers\fR" 4
yading@10 2178 .IX Item "buffers"
yading@10 2179 picture buffer allocations
yading@10 2180 .IP "\fBthread_ops\fR" 4
yading@10 2181 .IX Item "thread_ops"
yading@10 2182 threading operations
yading@10 2183 .RE
yading@10 2184 .RS 4
yading@10 2185 .RE
yading@10 2186 .IP "\fBvismv\fR \fIinteger\fR \fB(\fR\fIdecoding,video\fR\fB)\fR" 4
yading@10 2187 .IX Item "vismv integer (decoding,video)"
yading@10 2188 Visualize motion vectors (MVs).
yading@10 2189 .Sp
yading@10 2190 Possible values:
yading@10 2191 .RS 4
yading@10 2192 .IP "\fBpf\fR" 4
yading@10 2193 .IX Item "pf"
yading@10 2194 forward predicted MVs of P\-frames
yading@10 2195 .IP "\fBbf\fR" 4
yading@10 2196 .IX Item "bf"
yading@10 2197 forward predicted MVs of B\-frames
yading@10 2198 .IP "\fBbb\fR" 4
yading@10 2199 .IX Item "bb"
yading@10 2200 backward predicted MVs of B\-frames
yading@10 2201 .RE
yading@10 2202 .RS 4
yading@10 2203 .RE
yading@10 2204 .IP "\fBcmp\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2205 .IX Item "cmp integer (encoding,video)"
yading@10 2206 Set full pel me compare function.
yading@10 2207 .Sp
yading@10 2208 Possible values:
yading@10 2209 .RS 4
yading@10 2210 .IP "\fBsad\fR" 4
yading@10 2211 .IX Item "sad"
yading@10 2212 sum of absolute differences, fast (default)
yading@10 2213 .IP "\fBsse\fR" 4
yading@10 2214 .IX Item "sse"
yading@10 2215 sum of squared errors
yading@10 2216 .IP "\fBsatd\fR" 4
yading@10 2217 .IX Item "satd"
yading@10 2218 sum of absolute Hadamard transformed differences
yading@10 2219 .IP "\fBdct\fR" 4
yading@10 2220 .IX Item "dct"
yading@10 2221 sum of absolute \s-1DCT\s0 transformed differences
yading@10 2222 .IP "\fBpsnr\fR" 4
yading@10 2223 .IX Item "psnr"
yading@10 2224 sum of squared quantization errors (avoid, low quality)
yading@10 2225 .IP "\fBbit\fR" 4
yading@10 2226 .IX Item "bit"
yading@10 2227 number of bits needed for the block
yading@10 2228 .IP "\fBrd\fR" 4
yading@10 2229 .IX Item "rd"
yading@10 2230 rate distortion optimal, slow
yading@10 2231 .IP "\fBzero\fR" 4
yading@10 2232 .IX Item "zero"
yading@10 2233 0
yading@10 2234 .IP "\fBvsad\fR" 4
yading@10 2235 .IX Item "vsad"
yading@10 2236 sum of absolute vertical differences
yading@10 2237 .IP "\fBvsse\fR" 4
yading@10 2238 .IX Item "vsse"
yading@10 2239 sum of squared vertical differences
yading@10 2240 .IP "\fBnsse\fR" 4
yading@10 2241 .IX Item "nsse"
yading@10 2242 noise preserving sum of squared differences
yading@10 2243 .IP "\fBw53\fR" 4
yading@10 2244 .IX Item "w53"
yading@10 2245 5/3 wavelet, only used in snow
yading@10 2246 .IP "\fBw97\fR" 4
yading@10 2247 .IX Item "w97"
yading@10 2248 9/7 wavelet, only used in snow
yading@10 2249 .IP "\fBdctmax\fR" 4
yading@10 2250 .IX Item "dctmax"
yading@10 2251 .PD 0
yading@10 2252 .IP "\fBchroma\fR" 4
yading@10 2253 .IX Item "chroma"
yading@10 2254 .RE
yading@10 2255 .RS 4
yading@10 2256 .RE
yading@10 2257 .IP "\fBsubcmp\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2258 .IX Item "subcmp integer (encoding,video)"
yading@10 2259 .PD
yading@10 2260 Set sub pel me compare function.
yading@10 2261 .Sp
yading@10 2262 Possible values:
yading@10 2263 .RS 4
yading@10 2264 .IP "\fBsad\fR" 4
yading@10 2265 .IX Item "sad"
yading@10 2266 sum of absolute differences, fast (default)
yading@10 2267 .IP "\fBsse\fR" 4
yading@10 2268 .IX Item "sse"
yading@10 2269 sum of squared errors
yading@10 2270 .IP "\fBsatd\fR" 4
yading@10 2271 .IX Item "satd"
yading@10 2272 sum of absolute Hadamard transformed differences
yading@10 2273 .IP "\fBdct\fR" 4
yading@10 2274 .IX Item "dct"
yading@10 2275 sum of absolute \s-1DCT\s0 transformed differences
yading@10 2276 .IP "\fBpsnr\fR" 4
yading@10 2277 .IX Item "psnr"
yading@10 2278 sum of squared quantization errors (avoid, low quality)
yading@10 2279 .IP "\fBbit\fR" 4
yading@10 2280 .IX Item "bit"
yading@10 2281 number of bits needed for the block
yading@10 2282 .IP "\fBrd\fR" 4
yading@10 2283 .IX Item "rd"
yading@10 2284 rate distortion optimal, slow
yading@10 2285 .IP "\fBzero\fR" 4
yading@10 2286 .IX Item "zero"
yading@10 2287 0
yading@10 2288 .IP "\fBvsad\fR" 4
yading@10 2289 .IX Item "vsad"
yading@10 2290 sum of absolute vertical differences
yading@10 2291 .IP "\fBvsse\fR" 4
yading@10 2292 .IX Item "vsse"
yading@10 2293 sum of squared vertical differences
yading@10 2294 .IP "\fBnsse\fR" 4
yading@10 2295 .IX Item "nsse"
yading@10 2296 noise preserving sum of squared differences
yading@10 2297 .IP "\fBw53\fR" 4
yading@10 2298 .IX Item "w53"
yading@10 2299 5/3 wavelet, only used in snow
yading@10 2300 .IP "\fBw97\fR" 4
yading@10 2301 .IX Item "w97"
yading@10 2302 9/7 wavelet, only used in snow
yading@10 2303 .IP "\fBdctmax\fR" 4
yading@10 2304 .IX Item "dctmax"
yading@10 2305 .PD 0
yading@10 2306 .IP "\fBchroma\fR" 4
yading@10 2307 .IX Item "chroma"
yading@10 2308 .RE
yading@10 2309 .RS 4
yading@10 2310 .RE
yading@10 2311 .IP "\fBmbcmp\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2312 .IX Item "mbcmp integer (encoding,video)"
yading@10 2313 .PD
yading@10 2314 Set macroblock compare function.
yading@10 2315 .Sp
yading@10 2316 Possible values:
yading@10 2317 .RS 4
yading@10 2318 .IP "\fBsad\fR" 4
yading@10 2319 .IX Item "sad"
yading@10 2320 sum of absolute differences, fast (default)
yading@10 2321 .IP "\fBsse\fR" 4
yading@10 2322 .IX Item "sse"
yading@10 2323 sum of squared errors
yading@10 2324 .IP "\fBsatd\fR" 4
yading@10 2325 .IX Item "satd"
yading@10 2326 sum of absolute Hadamard transformed differences
yading@10 2327 .IP "\fBdct\fR" 4
yading@10 2328 .IX Item "dct"
yading@10 2329 sum of absolute \s-1DCT\s0 transformed differences
yading@10 2330 .IP "\fBpsnr\fR" 4
yading@10 2331 .IX Item "psnr"
yading@10 2332 sum of squared quantization errors (avoid, low quality)
yading@10 2333 .IP "\fBbit\fR" 4
yading@10 2334 .IX Item "bit"
yading@10 2335 number of bits needed for the block
yading@10 2336 .IP "\fBrd\fR" 4
yading@10 2337 .IX Item "rd"
yading@10 2338 rate distortion optimal, slow
yading@10 2339 .IP "\fBzero\fR" 4
yading@10 2340 .IX Item "zero"
yading@10 2341 0
yading@10 2342 .IP "\fBvsad\fR" 4
yading@10 2343 .IX Item "vsad"
yading@10 2344 sum of absolute vertical differences
yading@10 2345 .IP "\fBvsse\fR" 4
yading@10 2346 .IX Item "vsse"
yading@10 2347 sum of squared vertical differences
yading@10 2348 .IP "\fBnsse\fR" 4
yading@10 2349 .IX Item "nsse"
yading@10 2350 noise preserving sum of squared differences
yading@10 2351 .IP "\fBw53\fR" 4
yading@10 2352 .IX Item "w53"
yading@10 2353 5/3 wavelet, only used in snow
yading@10 2354 .IP "\fBw97\fR" 4
yading@10 2355 .IX Item "w97"
yading@10 2356 9/7 wavelet, only used in snow
yading@10 2357 .IP "\fBdctmax\fR" 4
yading@10 2358 .IX Item "dctmax"
yading@10 2359 .PD 0
yading@10 2360 .IP "\fBchroma\fR" 4
yading@10 2361 .IX Item "chroma"
yading@10 2362 .RE
yading@10 2363 .RS 4
yading@10 2364 .RE
yading@10 2365 .IP "\fBildctcmp\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2366 .IX Item "ildctcmp integer (encoding,video)"
yading@10 2367 .PD
yading@10 2368 Set interlaced dct compare function.
yading@10 2369 .Sp
yading@10 2370 Possible values:
yading@10 2371 .RS 4
yading@10 2372 .IP "\fBsad\fR" 4
yading@10 2373 .IX Item "sad"
yading@10 2374 sum of absolute differences, fast (default)
yading@10 2375 .IP "\fBsse\fR" 4
yading@10 2376 .IX Item "sse"
yading@10 2377 sum of squared errors
yading@10 2378 .IP "\fBsatd\fR" 4
yading@10 2379 .IX Item "satd"
yading@10 2380 sum of absolute Hadamard transformed differences
yading@10 2381 .IP "\fBdct\fR" 4
yading@10 2382 .IX Item "dct"
yading@10 2383 sum of absolute \s-1DCT\s0 transformed differences
yading@10 2384 .IP "\fBpsnr\fR" 4
yading@10 2385 .IX Item "psnr"
yading@10 2386 sum of squared quantization errors (avoid, low quality)
yading@10 2387 .IP "\fBbit\fR" 4
yading@10 2388 .IX Item "bit"
yading@10 2389 number of bits needed for the block
yading@10 2390 .IP "\fBrd\fR" 4
yading@10 2391 .IX Item "rd"
yading@10 2392 rate distortion optimal, slow
yading@10 2393 .IP "\fBzero\fR" 4
yading@10 2394 .IX Item "zero"
yading@10 2395 0
yading@10 2396 .IP "\fBvsad\fR" 4
yading@10 2397 .IX Item "vsad"
yading@10 2398 sum of absolute vertical differences
yading@10 2399 .IP "\fBvsse\fR" 4
yading@10 2400 .IX Item "vsse"
yading@10 2401 sum of squared vertical differences
yading@10 2402 .IP "\fBnsse\fR" 4
yading@10 2403 .IX Item "nsse"
yading@10 2404 noise preserving sum of squared differences
yading@10 2405 .IP "\fBw53\fR" 4
yading@10 2406 .IX Item "w53"
yading@10 2407 5/3 wavelet, only used in snow
yading@10 2408 .IP "\fBw97\fR" 4
yading@10 2409 .IX Item "w97"
yading@10 2410 9/7 wavelet, only used in snow
yading@10 2411 .IP "\fBdctmax\fR" 4
yading@10 2412 .IX Item "dctmax"
yading@10 2413 .PD 0
yading@10 2414 .IP "\fBchroma\fR" 4
yading@10 2415 .IX Item "chroma"
yading@10 2416 .RE
yading@10 2417 .RS 4
yading@10 2418 .RE
yading@10 2419 .IP "\fBdia_size\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2420 .IX Item "dia_size integer (encoding,video)"
yading@10 2421 .PD
yading@10 2422 Set diamond type & size for motion estimation.
yading@10 2423 .IP "\fBlast_pred\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2424 .IX Item "last_pred integer (encoding,video)"
yading@10 2425 Set amount of motion predictors from the previous frame.
yading@10 2426 .IP "\fBpreme\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2427 .IX Item "preme integer (encoding,video)"
yading@10 2428 Set pre motion estimation.
yading@10 2429 .IP "\fBprecmp\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2430 .IX Item "precmp integer (encoding,video)"
yading@10 2431 Set pre motion estimation compare function.
yading@10 2432 .Sp
yading@10 2433 Possible values:
yading@10 2434 .RS 4
yading@10 2435 .IP "\fBsad\fR" 4
yading@10 2436 .IX Item "sad"
yading@10 2437 sum of absolute differences, fast (default)
yading@10 2438 .IP "\fBsse\fR" 4
yading@10 2439 .IX Item "sse"
yading@10 2440 sum of squared errors
yading@10 2441 .IP "\fBsatd\fR" 4
yading@10 2442 .IX Item "satd"
yading@10 2443 sum of absolute Hadamard transformed differences
yading@10 2444 .IP "\fBdct\fR" 4
yading@10 2445 .IX Item "dct"
yading@10 2446 sum of absolute \s-1DCT\s0 transformed differences
yading@10 2447 .IP "\fBpsnr\fR" 4
yading@10 2448 .IX Item "psnr"
yading@10 2449 sum of squared quantization errors (avoid, low quality)
yading@10 2450 .IP "\fBbit\fR" 4
yading@10 2451 .IX Item "bit"
yading@10 2452 number of bits needed for the block
yading@10 2453 .IP "\fBrd\fR" 4
yading@10 2454 .IX Item "rd"
yading@10 2455 rate distortion optimal, slow
yading@10 2456 .IP "\fBzero\fR" 4
yading@10 2457 .IX Item "zero"
yading@10 2458 0
yading@10 2459 .IP "\fBvsad\fR" 4
yading@10 2460 .IX Item "vsad"
yading@10 2461 sum of absolute vertical differences
yading@10 2462 .IP "\fBvsse\fR" 4
yading@10 2463 .IX Item "vsse"
yading@10 2464 sum of squared vertical differences
yading@10 2465 .IP "\fBnsse\fR" 4
yading@10 2466 .IX Item "nsse"
yading@10 2467 noise preserving sum of squared differences
yading@10 2468 .IP "\fBw53\fR" 4
yading@10 2469 .IX Item "w53"
yading@10 2470 5/3 wavelet, only used in snow
yading@10 2471 .IP "\fBw97\fR" 4
yading@10 2472 .IX Item "w97"
yading@10 2473 9/7 wavelet, only used in snow
yading@10 2474 .IP "\fBdctmax\fR" 4
yading@10 2475 .IX Item "dctmax"
yading@10 2476 .PD 0
yading@10 2477 .IP "\fBchroma\fR" 4
yading@10 2478 .IX Item "chroma"
yading@10 2479 .RE
yading@10 2480 .RS 4
yading@10 2481 .RE
yading@10 2482 .IP "\fBpre_dia_size\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2483 .IX Item "pre_dia_size integer (encoding,video)"
yading@10 2484 .PD
yading@10 2485 Set diamond type & size for motion estimation pre-pass.
yading@10 2486 .IP "\fBsubq\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2487 .IX Item "subq integer (encoding,video)"
yading@10 2488 Set sub pel motion estimation quality.
yading@10 2489 .IP "\fBdtg_active_format\fR \fIinteger\fR" 4
yading@10 2490 .IX Item "dtg_active_format integer"
yading@10 2491 .PD 0
yading@10 2492 .IP "\fBme_range\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2493 .IX Item "me_range integer (encoding,video)"
yading@10 2494 .PD
yading@10 2495 Set limit motion vectors range (1023 for DivX player).
yading@10 2496 .IP "\fBibias\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2497 .IX Item "ibias integer (encoding,video)"
yading@10 2498 Set intra quant bias.
yading@10 2499 .IP "\fBpbias\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2500 .IX Item "pbias integer (encoding,video)"
yading@10 2501 Set inter quant bias.
yading@10 2502 .IP "\fBcolor_table_id\fR \fIinteger\fR" 4
yading@10 2503 .IX Item "color_table_id integer"
yading@10 2504 .PD 0
yading@10 2505 .IP "\fBglobal_quality\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4
yading@10 2506 .IX Item "global_quality integer (encoding,audio,video)"
yading@10 2507 .IP "\fBcoder\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2508 .IX Item "coder integer (encoding,video)"
yading@10 2509 .PD
yading@10 2510 Possible values:
yading@10 2511 .RS 4
yading@10 2512 .IP "\fBvlc\fR" 4
yading@10 2513 .IX Item "vlc"
yading@10 2514 variable length coder / huffman coder
yading@10 2515 .IP "\fBac\fR" 4
yading@10 2516 .IX Item "ac"
yading@10 2517 arithmetic coder
yading@10 2518 .IP "\fBraw\fR" 4
yading@10 2519 .IX Item "raw"
yading@10 2520 raw (no encoding)
yading@10 2521 .IP "\fBrle\fR" 4
yading@10 2522 .IX Item "rle"
yading@10 2523 run-length coder
yading@10 2524 .IP "\fBdeflate\fR" 4
yading@10 2525 .IX Item "deflate"
yading@10 2526 deflate-based coder
yading@10 2527 .RE
yading@10 2528 .RS 4
yading@10 2529 .RE
yading@10 2530 .IP "\fBcontext\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2531 .IX Item "context integer (encoding,video)"
yading@10 2532 Set context model.
yading@10 2533 .IP "\fBslice_flags\fR \fIinteger\fR" 4
yading@10 2534 .IX Item "slice_flags integer"
yading@10 2535 .PD 0
yading@10 2536 .IP "\fBxvmc_acceleration\fR \fIinteger\fR" 4
yading@10 2537 .IX Item "xvmc_acceleration integer"
yading@10 2538 .IP "\fBmbd\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2539 .IX Item "mbd integer (encoding,video)"
yading@10 2540 .PD
yading@10 2541 Set macroblock decision algorithm (high quality mode).
yading@10 2542 .Sp
yading@10 2543 Possible values:
yading@10 2544 .RS 4
yading@10 2545 .IP "\fBsimple\fR" 4
yading@10 2546 .IX Item "simple"
yading@10 2547 use mbcmp (default)
yading@10 2548 .IP "\fBbits\fR" 4
yading@10 2549 .IX Item "bits"
yading@10 2550 use fewest bits
yading@10 2551 .IP "\fBrd\fR" 4
yading@10 2552 .IX Item "rd"
yading@10 2553 use best rate distortion
yading@10 2554 .RE
yading@10 2555 .RS 4
yading@10 2556 .RE
yading@10 2557 .IP "\fBstream_codec_tag\fR \fIinteger\fR" 4
yading@10 2558 .IX Item "stream_codec_tag integer"
yading@10 2559 .PD 0
yading@10 2560 .IP "\fBsc_threshold\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2561 .IX Item "sc_threshold integer (encoding,video)"
yading@10 2562 .PD
yading@10 2563 Set scene change threshold.
yading@10 2564 .IP "\fBlmin\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2565 .IX Item "lmin integer (encoding,video)"
yading@10 2566 Set min lagrange factor (\s-1VBR\s0).
yading@10 2567 .IP "\fBlmax\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2568 .IX Item "lmax integer (encoding,video)"
yading@10 2569 Set max lagrange factor (\s-1VBR\s0).
yading@10 2570 .IP "\fBnr\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2571 .IX Item "nr integer (encoding,video)"
yading@10 2572 Set noise reduction.
yading@10 2573 .IP "\fBrc_init_occupancy\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2574 .IX Item "rc_init_occupancy integer (encoding,video)"
yading@10 2575 Set number of bits which should be loaded into the rc buffer before
yading@10 2576 decoding starts.
yading@10 2577 .IP "\fBinter_threshold\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2578 .IX Item "inter_threshold integer (encoding,video)"
yading@10 2579 .PD 0
yading@10 2580 .IP "\fBflags2\fR \fIflags\fR \fB(\fR\fIdecoding/encoding,audio,video\fR\fB)\fR" 4
yading@10 2581 .IX Item "flags2 flags (decoding/encoding,audio,video)"
yading@10 2582 .PD
yading@10 2583 Possible values:
yading@10 2584 .RS 4
yading@10 2585 .IP "\fBfast\fR" 4
yading@10 2586 .IX Item "fast"
yading@10 2587 allow non spec compliant speedup tricks
yading@10 2588 .IP "\fBsgop\fR" 4
yading@10 2589 .IX Item "sgop"
yading@10 2590 Deprecated, use mpegvideo private options instead
yading@10 2591 .IP "\fBnoout\fR" 4
yading@10 2592 .IX Item "noout"
yading@10 2593 skip bitstream encoding
yading@10 2594 .IP "\fBlocal_header\fR" 4
yading@10 2595 .IX Item "local_header"
yading@10 2596 place global headers at every keyframe instead of in extradata
yading@10 2597 .IP "\fBchunks\fR" 4
yading@10 2598 .IX Item "chunks"
yading@10 2599 Frame data might be split into multiple chunks
yading@10 2600 .IP "\fBshowall\fR" 4
yading@10 2601 .IX Item "showall"
yading@10 2602 Show all frames before the first keyframe
yading@10 2603 .IP "\fBskiprd\fR" 4
yading@10 2604 .IX Item "skiprd"
yading@10 2605 Deprecated, use mpegvideo private options instead
yading@10 2606 .RE
yading@10 2607 .RS 4
yading@10 2608 .RE
yading@10 2609 .IP "\fBerror\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2610 .IX Item "error integer (encoding,video)"
yading@10 2611 .PD 0
yading@10 2612 .IP "\fBqns\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2613 .IX Item "qns integer (encoding,video)"
yading@10 2614 .PD
yading@10 2615 Deprecated, use mpegvideo private options instead.
yading@10 2616 .IP "\fBthreads\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4
yading@10 2617 .IX Item "threads integer (decoding/encoding,video)"
yading@10 2618 Possible values:
yading@10 2619 .RS 4
yading@10 2620 .IP "\fBauto\fR" 4
yading@10 2621 .IX Item "auto"
yading@10 2622 detect a good number of threads
yading@10 2623 .RE
yading@10 2624 .RS 4
yading@10 2625 .RE
yading@10 2626 .IP "\fBme_threshold\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2627 .IX Item "me_threshold integer (encoding,video)"
yading@10 2628 Set motion estimation threshold.
yading@10 2629 .IP "\fBmb_threshold\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2630 .IX Item "mb_threshold integer (encoding,video)"
yading@10 2631 Set macroblock threshold.
yading@10 2632 .IP "\fBdc\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2633 .IX Item "dc integer (encoding,video)"
yading@10 2634 Set intra_dc_precision.
yading@10 2635 .IP "\fBnssew\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2636 .IX Item "nssew integer (encoding,video)"
yading@10 2637 Set nsse weight.
yading@10 2638 .IP "\fBskip_top\fR \fIinteger\fR \fB(\fR\fIdecoding,video\fR\fB)\fR" 4
yading@10 2639 .IX Item "skip_top integer (decoding,video)"
yading@10 2640 Set number of macroblock rows at the top which are skipped.
yading@10 2641 .IP "\fBskip_bottom\fR \fIinteger\fR \fB(\fR\fIdecoding,video\fR\fB)\fR" 4
yading@10 2642 .IX Item "skip_bottom integer (decoding,video)"
yading@10 2643 Set number of macroblock rows at the bottom which are skipped.
yading@10 2644 .IP "\fBprofile\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4
yading@10 2645 .IX Item "profile integer (encoding,audio,video)"
yading@10 2646 Possible values:
yading@10 2647 .RS 4
yading@10 2648 .IP "\fBunknown\fR" 4
yading@10 2649 .IX Item "unknown"
yading@10 2650 .PD 0
yading@10 2651 .IP "\fBaac_main\fR" 4
yading@10 2652 .IX Item "aac_main"
yading@10 2653 .IP "\fBaac_low\fR" 4
yading@10 2654 .IX Item "aac_low"
yading@10 2655 .IP "\fBaac_ssr\fR" 4
yading@10 2656 .IX Item "aac_ssr"
yading@10 2657 .IP "\fBaac_ltp\fR" 4
yading@10 2658 .IX Item "aac_ltp"
yading@10 2659 .IP "\fBaac_he\fR" 4
yading@10 2660 .IX Item "aac_he"
yading@10 2661 .IP "\fBaac_he_v2\fR" 4
yading@10 2662 .IX Item "aac_he_v2"
yading@10 2663 .IP "\fBaac_ld\fR" 4
yading@10 2664 .IX Item "aac_ld"
yading@10 2665 .IP "\fBaac_eld\fR" 4
yading@10 2666 .IX Item "aac_eld"
yading@10 2667 .IP "\fBdts\fR" 4
yading@10 2668 .IX Item "dts"
yading@10 2669 .IP "\fBdts_es\fR" 4
yading@10 2670 .IX Item "dts_es"
yading@10 2671 .IP "\fBdts_96_24\fR" 4
yading@10 2672 .IX Item "dts_96_24"
yading@10 2673 .IP "\fBdts_hd_hra\fR" 4
yading@10 2674 .IX Item "dts_hd_hra"
yading@10 2675 .IP "\fBdts_hd_ma\fR" 4
yading@10 2676 .IX Item "dts_hd_ma"
yading@10 2677 .RE
yading@10 2678 .RS 4
yading@10 2679 .RE
yading@10 2680 .IP "\fBlevel\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4
yading@10 2681 .IX Item "level integer (encoding,audio,video)"
yading@10 2682 .PD
yading@10 2683 Possible values:
yading@10 2684 .RS 4
yading@10 2685 .IP "\fBunknown\fR" 4
yading@10 2686 .IX Item "unknown"
yading@10 2687 .RE
yading@10 2688 .RS 4
yading@10 2689 .RE
yading@10 2690 .PD 0
yading@10 2691 .IP "\fBlowres\fR \fIinteger\fR \fB(\fR\fIdecoding,audio,video\fR\fB)\fR" 4
yading@10 2692 .IX Item "lowres integer (decoding,audio,video)"
yading@10 2693 .PD
yading@10 2694 Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
yading@10 2695 .IP "\fBskip_threshold\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2696 .IX Item "skip_threshold integer (encoding,video)"
yading@10 2697 Set frame skip threshold.
yading@10 2698 .IP "\fBskip_factor\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2699 .IX Item "skip_factor integer (encoding,video)"
yading@10 2700 Set frame skip factor.
yading@10 2701 .IP "\fBskip_exp\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2702 .IX Item "skip_exp integer (encoding,video)"
yading@10 2703 Set frame skip exponent.
yading@10 2704 .IP "\fBskipcmp\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2705 .IX Item "skipcmp integer (encoding,video)"
yading@10 2706 Set frame skip compare function.
yading@10 2707 .Sp
yading@10 2708 Possible values:
yading@10 2709 .RS 4
yading@10 2710 .IP "\fBsad\fR" 4
yading@10 2711 .IX Item "sad"
yading@10 2712 sum of absolute differences, fast (default)
yading@10 2713 .IP "\fBsse\fR" 4
yading@10 2714 .IX Item "sse"
yading@10 2715 sum of squared errors
yading@10 2716 .IP "\fBsatd\fR" 4
yading@10 2717 .IX Item "satd"
yading@10 2718 sum of absolute Hadamard transformed differences
yading@10 2719 .IP "\fBdct\fR" 4
yading@10 2720 .IX Item "dct"
yading@10 2721 sum of absolute \s-1DCT\s0 transformed differences
yading@10 2722 .IP "\fBpsnr\fR" 4
yading@10 2723 .IX Item "psnr"
yading@10 2724 sum of squared quantization errors (avoid, low quality)
yading@10 2725 .IP "\fBbit\fR" 4
yading@10 2726 .IX Item "bit"
yading@10 2727 number of bits needed for the block
yading@10 2728 .IP "\fBrd\fR" 4
yading@10 2729 .IX Item "rd"
yading@10 2730 rate distortion optimal, slow
yading@10 2731 .IP "\fBzero\fR" 4
yading@10 2732 .IX Item "zero"
yading@10 2733 0
yading@10 2734 .IP "\fBvsad\fR" 4
yading@10 2735 .IX Item "vsad"
yading@10 2736 sum of absolute vertical differences
yading@10 2737 .IP "\fBvsse\fR" 4
yading@10 2738 .IX Item "vsse"
yading@10 2739 sum of squared vertical differences
yading@10 2740 .IP "\fBnsse\fR" 4
yading@10 2741 .IX Item "nsse"
yading@10 2742 noise preserving sum of squared differences
yading@10 2743 .IP "\fBw53\fR" 4
yading@10 2744 .IX Item "w53"
yading@10 2745 5/3 wavelet, only used in snow
yading@10 2746 .IP "\fBw97\fR" 4
yading@10 2747 .IX Item "w97"
yading@10 2748 9/7 wavelet, only used in snow
yading@10 2749 .IP "\fBdctmax\fR" 4
yading@10 2750 .IX Item "dctmax"
yading@10 2751 .PD 0
yading@10 2752 .IP "\fBchroma\fR" 4
yading@10 2753 .IX Item "chroma"
yading@10 2754 .RE
yading@10 2755 .RS 4
yading@10 2756 .RE
yading@10 2757 .IP "\fBborder_mask\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2758 .IX Item "border_mask float (encoding,video)"
yading@10 2759 .PD
yading@10 2760 Increase the quantizer for macroblocks close to borders.
yading@10 2761 .IP "\fBmblmin\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2762 .IX Item "mblmin integer (encoding,video)"
yading@10 2763 Set min macroblock lagrange factor (\s-1VBR\s0).
yading@10 2764 .IP "\fBmblmax\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2765 .IX Item "mblmax integer (encoding,video)"
yading@10 2766 Set max macroblock lagrange factor (\s-1VBR\s0).
yading@10 2767 .IP "\fBmepc\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2768 .IX Item "mepc integer (encoding,video)"
yading@10 2769 Set motion estimation bitrate penalty compensation (1.0 = 256).
yading@10 2770 .IP "\fBskip_loop_filter\fR \fIinteger\fR \fB(\fR\fIdecoding,video\fR\fB)\fR" 4
yading@10 2771 .IX Item "skip_loop_filter integer (decoding,video)"
yading@10 2772 .PD 0
yading@10 2773 .IP "\fBskip_idct\fR \fIinteger\fR \fB(\fR\fIdecoding,video\fR\fB)\fR" 4
yading@10 2774 .IX Item "skip_idct integer (decoding,video)"
yading@10 2775 .IP "\fBskip_frame\fR \fIinteger\fR \fB(\fR\fIdecoding,video\fR\fB)\fR" 4
yading@10 2776 .IX Item "skip_frame integer (decoding,video)"
yading@10 2777 .PD
yading@10 2778 Make decoder discard processing depending on the frame type selected
yading@10 2779 by the option value.
yading@10 2780 .Sp
yading@10 2781 \&\fBskip_loop_filter\fR skips frame loop filtering, \fBskip_idct\fR
yading@10 2782 skips frame IDCT/dequantization, \fBskip_frame\fR skips decoding.
yading@10 2783 .Sp
yading@10 2784 Possible values:
yading@10 2785 .RS 4
yading@10 2786 .IP "\fBnone\fR" 4
yading@10 2787 .IX Item "none"
yading@10 2788 Discard no frame.
yading@10 2789 .IP "\fBdefault\fR" 4
yading@10 2790 .IX Item "default"
yading@10 2791 Discard useless frames like 0\-sized frames.
yading@10 2792 .IP "\fBnoref\fR" 4
yading@10 2793 .IX Item "noref"
yading@10 2794 Discard all non-reference frames.
yading@10 2795 .IP "\fBbidir\fR" 4
yading@10 2796 .IX Item "bidir"
yading@10 2797 Discard all bidirectional frames.
yading@10 2798 .IP "\fBnokey\fR" 4
yading@10 2799 .IX Item "nokey"
yading@10 2800 Discard all frames excepts keyframes.
yading@10 2801 .IP "\fBall\fR" 4
yading@10 2802 .IX Item "all"
yading@10 2803 Discard all frames.
yading@10 2804 .RE
yading@10 2805 .RS 4
yading@10 2806 .Sp
yading@10 2807 Default value is \fBdefault\fR.
yading@10 2808 .RE
yading@10 2809 .IP "\fBbidir_refine\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2810 .IX Item "bidir_refine integer (encoding,video)"
yading@10 2811 Refine the two motion vectors used in bidirectional macroblocks.
yading@10 2812 .IP "\fBbrd_scale\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2813 .IX Item "brd_scale integer (encoding,video)"
yading@10 2814 Downscale frames for dynamic B\-frame decision.
yading@10 2815 .IP "\fBkeyint_min\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2816 .IX Item "keyint_min integer (encoding,video)"
yading@10 2817 Set minimum interval between IDR-frames.
yading@10 2818 .IP "\fBrefs\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2819 .IX Item "refs integer (encoding,video)"
yading@10 2820 Set reference frames to consider for motion compensation.
yading@10 2821 .IP "\fBchromaoffset\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2822 .IX Item "chromaoffset integer (encoding,video)"
yading@10 2823 Set chroma qp offset from luma.
yading@10 2824 .IP "\fBtrellis\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4
yading@10 2825 .IX Item "trellis integer (encoding,audio,video)"
yading@10 2826 Set rate-distortion optimal quantization.
yading@10 2827 .IP "\fBsc_factor\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2828 .IX Item "sc_factor integer (encoding,video)"
yading@10 2829 Set value multiplied by qscale for each frame and added to
yading@10 2830 scene_change_score.
yading@10 2831 .IP "\fBmv0_threshold\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2832 .IX Item "mv0_threshold integer (encoding,video)"
yading@10 2833 .PD 0
yading@10 2834 .IP "\fBb_sensitivity\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2835 .IX Item "b_sensitivity integer (encoding,video)"
yading@10 2836 .PD
yading@10 2837 Adjust sensitivity of b_frame_strategy 1.
yading@10 2838 .IP "\fBcompression_level\fR \fIinteger\fR \fB(\fR\fIencoding,audio,video\fR\fB)\fR" 4
yading@10 2839 .IX Item "compression_level integer (encoding,audio,video)"
yading@10 2840 .PD 0
yading@10 2841 .IP "\fBmin_prediction_order\fR \fIinteger\fR \fB(\fR\fIencoding,audio\fR\fB)\fR" 4
yading@10 2842 .IX Item "min_prediction_order integer (encoding,audio)"
yading@10 2843 .IP "\fBmax_prediction_order\fR \fIinteger\fR \fB(\fR\fIencoding,audio\fR\fB)\fR" 4
yading@10 2844 .IX Item "max_prediction_order integer (encoding,audio)"
yading@10 2845 .IP "\fBtimecode_frame_start\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2846 .IX Item "timecode_frame_start integer (encoding,video)"
yading@10 2847 .PD
yading@10 2848 Set \s-1GOP\s0 timecode frame start number, in non drop frame format.
yading@10 2849 .IP "\fBrequest_channels\fR \fIinteger\fR \fB(\fR\fIdecoding,audio\fR\fB)\fR" 4
yading@10 2850 .IX Item "request_channels integer (decoding,audio)"
yading@10 2851 Set desired number of audio channels.
yading@10 2852 .IP "\fBbits_per_raw_sample\fR \fIinteger\fR" 4
yading@10 2853 .IX Item "bits_per_raw_sample integer"
yading@10 2854 .PD 0
yading@10 2855 .IP "\fBchannel_layout\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,audio\fR\fB)\fR" 4
yading@10 2856 .IX Item "channel_layout integer (decoding/encoding,audio)"
yading@10 2857 .PD
yading@10 2858 Possible values:
yading@10 2859 .IP "\fBrequest_channel_layout\fR \fIinteger\fR \fB(\fR\fIdecoding,audio\fR\fB)\fR" 4
yading@10 2860 .IX Item "request_channel_layout integer (decoding,audio)"
yading@10 2861 Possible values:
yading@10 2862 .IP "\fBrc_max_vbv_use\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2863 .IX Item "rc_max_vbv_use float (encoding,video)"
yading@10 2864 .PD 0
yading@10 2865 .IP "\fBrc_min_vbv_use\fR \fIfloat\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2866 .IX Item "rc_min_vbv_use float (encoding,video)"
yading@10 2867 .IP "\fBticks_per_frame\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,audio,video\fR\fB)\fR" 4
yading@10 2868 .IX Item "ticks_per_frame integer (decoding/encoding,audio,video)"
yading@10 2869 .IP "\fBcolor_primaries\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4
yading@10 2870 .IX Item "color_primaries integer (decoding/encoding,video)"
yading@10 2871 .IP "\fBcolor_trc\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4
yading@10 2872 .IX Item "color_trc integer (decoding/encoding,video)"
yading@10 2873 .IP "\fBcolorspace\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4
yading@10 2874 .IX Item "colorspace integer (decoding/encoding,video)"
yading@10 2875 .IP "\fBcolor_range\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4
yading@10 2876 .IX Item "color_range integer (decoding/encoding,video)"
yading@10 2877 .IP "\fBchroma_sample_location\fR \fIinteger\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4
yading@10 2878 .IX Item "chroma_sample_location integer (decoding/encoding,video)"
yading@10 2879 .IP "\fBlog_level_offset\fR \fIinteger\fR" 4
yading@10 2880 .IX Item "log_level_offset integer"
yading@10 2881 .PD
yading@10 2882 Set the log level offset.
yading@10 2883 .IP "\fBslices\fR \fIinteger\fR \fB(\fR\fIencoding,video\fR\fB)\fR" 4
yading@10 2884 .IX Item "slices integer (encoding,video)"
yading@10 2885 Number of slices, used in parallelized encoding.
yading@10 2886 .IP "\fBthread_type\fR \fIflags\fR \fB(\fR\fIdecoding/encoding,video\fR\fB)\fR" 4
yading@10 2887 .IX Item "thread_type flags (decoding/encoding,video)"
yading@10 2888 Select multithreading type.
yading@10 2889 .Sp
yading@10 2890 Possible values:
yading@10 2891 .RS 4
yading@10 2892 .IP "\fBslice\fR" 4
yading@10 2893 .IX Item "slice"
yading@10 2894 .PD 0
yading@10 2895 .IP "\fBframe\fR" 4
yading@10 2896 .IX Item "frame"
yading@10 2897 .RE
yading@10 2898 .RS 4
yading@10 2899 .RE
yading@10 2900 .IP "\fBaudio_service_type\fR \fIinteger\fR \fB(\fR\fIencoding,audio\fR\fB)\fR" 4
yading@10 2901 .IX Item "audio_service_type integer (encoding,audio)"
yading@10 2902 .PD
yading@10 2903 Set audio service type.
yading@10 2904 .Sp
yading@10 2905 Possible values:
yading@10 2906 .RS 4
yading@10 2907 .IP "\fBma\fR" 4
yading@10 2908 .IX Item "ma"
yading@10 2909 Main Audio Service
yading@10 2910 .IP "\fBef\fR" 4
yading@10 2911 .IX Item "ef"
yading@10 2912 Effects
yading@10 2913 .IP "\fBvi\fR" 4
yading@10 2914 .IX Item "vi"
yading@10 2915 Visually Impaired
yading@10 2916 .IP "\fBhi\fR" 4
yading@10 2917 .IX Item "hi"
yading@10 2918 Hearing Impaired
yading@10 2919 .IP "\fBdi\fR" 4
yading@10 2920 .IX Item "di"
yading@10 2921 Dialogue
yading@10 2922 .IP "\fBco\fR" 4
yading@10 2923 .IX Item "co"
yading@10 2924 Commentary
yading@10 2925 .IP "\fBem\fR" 4
yading@10 2926 .IX Item "em"
yading@10 2927 Emergency
yading@10 2928 .IP "\fBvo\fR" 4
yading@10 2929 .IX Item "vo"
yading@10 2930 Voice Over
yading@10 2931 .IP "\fBka\fR" 4
yading@10 2932 .IX Item "ka"
yading@10 2933 Karaoke
yading@10 2934 .RE
yading@10 2935 .RS 4
yading@10 2936 .RE
yading@10 2937 .IP "\fBrequest_sample_fmt\fR \fIsample_fmt\fR \fB(\fR\fIdecoding,audio\fR\fB)\fR" 4
yading@10 2938 .IX Item "request_sample_fmt sample_fmt (decoding,audio)"
yading@10 2939 Set sample format audio decoders should prefer. Default value is
yading@10 2940 \&\f(CW\*(C`none\*(C'\fR.
yading@10 2941 .IP "\fBpkt_timebase\fR \fIrational number\fR" 4
yading@10 2942 .IX Item "pkt_timebase rational number"
yading@10 2943 .PD 0
yading@10 2944 .IP "\fBsub_charenc\fR \fIencoding\fR \fB(\fR\fIdecoding,subtitles\fR\fB)\fR" 4
yading@10 2945 .IX Item "sub_charenc encoding (decoding,subtitles)"
yading@10 2946 .PD
yading@10 2947 Set the input subtitles character encoding.
yading@10 2948 .SH "DECODERS"
yading@10 2949 .IX Header "DECODERS"
yading@10 2950 Decoders are configured elements in FFmpeg which allow the decoding of
yading@10 2951 multimedia streams.
yading@10 2952 .PP
yading@10 2953 When you configure your FFmpeg build, all the supported native decoders
yading@10 2954 are enabled by default. Decoders requiring an external library must be enabled
yading@10 2955 manually via the corresponding \f(CW\*(C`\-\-enable\-lib\*(C'\fR option. You can list all
yading@10 2956 available decoders using the configure option \f(CW\*(C`\-\-list\-decoders\*(C'\fR.
yading@10 2957 .PP
yading@10 2958 You can disable all the decoders with the configure option
yading@10 2959 \&\f(CW\*(C`\-\-disable\-decoders\*(C'\fR and selectively enable / disable single decoders
yading@10 2960 with the options \f(CW\*(C`\-\-enable\-decoder=\f(CIDECODER\f(CW\*(C'\fR /
yading@10 2961 \&\f(CW\*(C`\-\-disable\-decoder=\f(CIDECODER\f(CW\*(C'\fR.
yading@10 2962 .PP
yading@10 2963 The option \f(CW\*(C`\-codecs\*(C'\fR of the ff* tools will display the list of
yading@10 2964 enabled decoders.
yading@10 2965 .SH "VIDEO DECODERS"
yading@10 2966 .IX Header "VIDEO DECODERS"
yading@10 2967 A description of some of the currently available video decoders
yading@10 2968 follows.
yading@10 2969 .SS "rawvideo"
yading@10 2970 .IX Subsection "rawvideo"
yading@10 2971 Raw video decoder.
yading@10 2972 .PP
yading@10 2973 This decoder decodes rawvideo streams.
yading@10 2974 .PP
yading@10 2975 \fIOptions\fR
yading@10 2976 .IX Subsection "Options"
yading@10 2977 .IP "\fBtop\fR \fItop_field_first\fR" 4
yading@10 2978 .IX Item "top top_field_first"
yading@10 2979 Specify the assumed field type of the input video.
yading@10 2980 .RS 4
yading@10 2981 .IP "\fB\-1\fR" 4
yading@10 2982 .IX Item "-1"
yading@10 2983 the video is assumed to be progressive (default)
yading@10 2984 .IP "\fB0\fR" 4
yading@10 2985 .IX Item "0"
yading@10 2986 bottom-field-first is assumed
yading@10 2987 .IP "\fB1\fR" 4
yading@10 2988 .IX Item "1"
yading@10 2989 top-field-first is assumed
yading@10 2990 .RE
yading@10 2991 .RS 4
yading@10 2992 .RE
yading@10 2993 .SH "AUDIO DECODERS"
yading@10 2994 .IX Header "AUDIO DECODERS"
yading@10 2995 .SS "ffwavesynth"
yading@10 2996 .IX Subsection "ffwavesynth"
yading@10 2997 Internal wave synthetizer.
yading@10 2998 .PP
yading@10 2999 This decoder generates wave patterns according to predefined sequences. Its
yading@10 3000 use is purely internal and the format of the data it accepts is not publicly
yading@10 3001 documented.
yading@10 3002 .SH "SUBTITLES DECODERS"
yading@10 3003 .IX Header "SUBTITLES DECODERS"
yading@10 3004 .SS "dvdsub"
yading@10 3005 .IX Subsection "dvdsub"
yading@10 3006 This codec decodes the bitmap subtitles used in DVDs; the same subtitles can
yading@10 3007 also be found in VobSub file pairs and in some Matroska files.
yading@10 3008 .PP
yading@10 3009 \fIOptions\fR
yading@10 3010 .IX Subsection "Options"
yading@10 3011 .IP "\fBpalette\fR" 4
yading@10 3012 .IX Item "palette"
yading@10 3013 Specify the global palette used by the bitmaps. When stored in VobSub, the
yading@10 3014 palette is normally specified in the index file; in Matroska, the palette is
yading@10 3015 stored in the codec extra-data in the same format as in VobSub. In DVDs, the
yading@10 3016 palette is stored in the \s-1IFO\s0 file, and therefore not available when reading
yading@10 3017 from dumped \s-1VOB\s0 files.
yading@10 3018 .Sp
yading@10 3019 The format for this option is a string containing 16 24\-bits hexadecimal
yading@10 3020 numbers (without 0x prefix) separated by comas, for example \f(CW\*(C`0d00ee,
yading@10 3021 ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b, 0d617a, 7b7b7b, d1d1d1,
yading@10 3022 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c, 7c127b\*(C'\fR.
yading@10 3023 .SH "ENCODERS"
yading@10 3024 .IX Header "ENCODERS"
yading@10 3025 Encoders are configured elements in FFmpeg which allow the encoding of
yading@10 3026 multimedia streams.
yading@10 3027 .PP
yading@10 3028 When you configure your FFmpeg build, all the supported native encoders
yading@10 3029 are enabled by default. Encoders requiring an external library must be enabled
yading@10 3030 manually via the corresponding \f(CW\*(C`\-\-enable\-lib\*(C'\fR option. You can list all
yading@10 3031 available encoders using the configure option \f(CW\*(C`\-\-list\-encoders\*(C'\fR.
yading@10 3032 .PP
yading@10 3033 You can disable all the encoders with the configure option
yading@10 3034 \&\f(CW\*(C`\-\-disable\-encoders\*(C'\fR and selectively enable / disable single encoders
yading@10 3035 with the options \f(CW\*(C`\-\-enable\-encoder=\f(CIENCODER\f(CW\*(C'\fR /
yading@10 3036 \&\f(CW\*(C`\-\-disable\-encoder=\f(CIENCODER\f(CW\*(C'\fR.
yading@10 3037 .PP
yading@10 3038 The option \f(CW\*(C`\-codecs\*(C'\fR of the ff* tools will display the list of
yading@10 3039 enabled encoders.
yading@10 3040 .SH "AUDIO ENCODERS"
yading@10 3041 .IX Header "AUDIO ENCODERS"
yading@10 3042 A description of some of the currently available audio encoders
yading@10 3043 follows.
yading@10 3044 .SS "ac3 and ac3_fixed"
yading@10 3045 .IX Subsection "ac3 and ac3_fixed"
yading@10 3046 \&\s-1AC\-3\s0 audio encoders.
yading@10 3047 .PP
yading@10 3048 These encoders implement part of \s-1ATSC\s0 A/52:2010 and \s-1ETSI\s0 \s-1TS\s0 102 366, as well as
yading@10 3049 the undocumented RealAudio 3 (a.k.a. dnet).
yading@10 3050 .PP
yading@10 3051 The \fIac3\fR encoder uses floating-point math, while the \fIac3_fixed\fR
yading@10 3052 encoder only uses fixed-point integer math. This does not mean that one is
yading@10 3053 always faster, just that one or the other may be better suited to a
yading@10 3054 particular system. The floating-point encoder will generally produce better
yading@10 3055 quality audio for a given bitrate. The \fIac3_fixed\fR encoder is not the
yading@10 3056 default codec for any of the output formats, so it must be specified explicitly
yading@10 3057 using the option \f(CW\*(C`\-acodec ac3_fixed\*(C'\fR in order to use it.
yading@10 3058 .PP
yading@10 3059 \fI\s-1AC\-3\s0 Metadata\fR
yading@10 3060 .IX Subsection "AC-3 Metadata"
yading@10 3061 .PP
yading@10 3062 The \s-1AC\-3\s0 metadata options are used to set parameters that describe the audio,
yading@10 3063 but in most cases do not affect the audio encoding itself. Some of the options
yading@10 3064 do directly affect or influence the decoding and playback of the resulting
yading@10 3065 bitstream, while others are just for informational purposes. A few of the
yading@10 3066 options will add bits to the output stream that could otherwise be used for
yading@10 3067 audio data, and will thus affect the quality of the output. Those will be
yading@10 3068 indicated accordingly with a note in the option list below.
yading@10 3069 .PP
yading@10 3070 These parameters are described in detail in several publicly-available
yading@10 3071 documents.
yading@10 3072 .IP "*<<\fBhttp://www.atsc.org/cms/standards/a_52\-2010.pdf\fR>>" 4
yading@10 3073 .IX Item "*<<http://www.atsc.org/cms/standards/a_52-2010.pdf>>"
yading@10 3074 .PD 0
yading@10 3075 .IP "*<<\fBhttp://www.atsc.org/cms/standards/a_54a_with_corr_1.pdf\fR>>" 4
yading@10 3076 .IX Item "*<<http://www.atsc.org/cms/standards/a_54a_with_corr_1.pdf>>"
yading@10 3077 .IP "*<<\fBhttp://www.dolby.com/uploadedFiles/zz\-_Shared_Assets/English_PDFs/Professional/18_Metadata.Guide.pdf\fR>>" 4
yading@10 3078 .IX Item "*<<http://www.dolby.com/uploadedFiles/zz-_Shared_Assets/English_PDFs/Professional/18_Metadata.Guide.pdf>>"
yading@10 3079 .IP "*<<\fBhttp://www.dolby.com/uploadedFiles/zz\-_Shared_Assets/English_PDFs/Professional/46_DDEncodingGuidelines.pdf\fR>>" 4
yading@10 3080 .IX Item "*<<http://www.dolby.com/uploadedFiles/zz-_Shared_Assets/English_PDFs/Professional/46_DDEncodingGuidelines.pdf>>"
yading@10 3081 .PD
yading@10 3082 .PP
yading@10 3083 Metadata Control Options
yading@10 3084 .IX Subsection "Metadata Control Options"
yading@10 3085 .IP "\fB\-per_frame_metadata\fR \fIboolean\fR" 4
yading@10 3086 .IX Item "-per_frame_metadata boolean"
yading@10 3087 Allow Per-Frame Metadata. Specifies if the encoder should check for changing
yading@10 3088 metadata for each frame.
yading@10 3089 .RS 4
yading@10 3090 .IP "\fB0\fR" 4
yading@10 3091 .IX Item "0"
yading@10 3092 The metadata values set at initialization will be used for every frame in the
yading@10 3093 stream. (default)
yading@10 3094 .IP "\fB1\fR" 4
yading@10 3095 .IX Item "1"
yading@10 3096 Metadata values can be changed before encoding each frame.
yading@10 3097 .RE
yading@10 3098 .RS 4
yading@10 3099 .RE
yading@10 3100 .PP
yading@10 3101 Downmix Levels
yading@10 3102 .IX Subsection "Downmix Levels"
yading@10 3103 .IP "\fB\-center_mixlev\fR \fIlevel\fR" 4
yading@10 3104 .IX Item "-center_mixlev level"
yading@10 3105 Center Mix Level. The amount of gain the decoder should apply to the center
yading@10 3106 channel when downmixing to stereo. This field will only be written to the
yading@10 3107 bitstream if a center channel is present. The value is specified as a scale
yading@10 3108 factor. There are 3 valid values:
yading@10 3109 .RS 4
yading@10 3110 .IP "\fB0.707\fR" 4
yading@10 3111 .IX Item "0.707"
yading@10 3112 Apply \-3dB gain
yading@10 3113 .IP "\fB0.595\fR" 4
yading@10 3114 .IX Item "0.595"
yading@10 3115 Apply \-4.5dB gain (default)
yading@10 3116 .IP "\fB0.500\fR" 4
yading@10 3117 .IX Item "0.500"
yading@10 3118 Apply \-6dB gain
yading@10 3119 .RE
yading@10 3120 .RS 4
yading@10 3121 .RE
yading@10 3122 .IP "\fB\-surround_mixlev\fR \fIlevel\fR" 4
yading@10 3123 .IX Item "-surround_mixlev level"
yading@10 3124 Surround Mix Level. The amount of gain the decoder should apply to the surround
yading@10 3125 channel(s) when downmixing to stereo. This field will only be written to the
yading@10 3126 bitstream if one or more surround channels are present. The value is specified
yading@10 3127 as a scale factor. There are 3 valid values:
yading@10 3128 .RS 4
yading@10 3129 .IP "\fB0.707\fR" 4
yading@10 3130 .IX Item "0.707"
yading@10 3131 Apply \-3dB gain
yading@10 3132 .IP "\fB0.500\fR" 4
yading@10 3133 .IX Item "0.500"
yading@10 3134 Apply \-6dB gain (default)
yading@10 3135 .IP "\fB0.000\fR" 4
yading@10 3136 .IX Item "0.000"
yading@10 3137 Silence Surround Channel(s)
yading@10 3138 .RE
yading@10 3139 .RS 4
yading@10 3140 .RE
yading@10 3141 .PP
yading@10 3142 Audio Production Information
yading@10 3143 .IX Subsection "Audio Production Information"
yading@10 3144 .PP
yading@10 3145 Audio Production Information is optional information describing the mixing
yading@10 3146 environment. Either none or both of the fields are written to the bitstream.
yading@10 3147 .IP "\fB\-mixing_level\fR \fInumber\fR" 4
yading@10 3148 .IX Item "-mixing_level number"
yading@10 3149 Mixing Level. Specifies peak sound pressure level (\s-1SPL\s0) in the production
yading@10 3150 environment when the mix was mastered. Valid values are 80 to 111, or \-1 for
yading@10 3151 unknown or not indicated. The default value is \-1, but that value cannot be
yading@10 3152 used if the Audio Production Information is written to the bitstream. Therefore,
yading@10 3153 if the \f(CW\*(C`room_type\*(C'\fR option is not the default value, the \f(CW\*(C`mixing_level\*(C'\fR
yading@10 3154 option must not be \-1.
yading@10 3155 .IP "\fB\-room_type\fR \fItype\fR" 4
yading@10 3156 .IX Item "-room_type type"
yading@10 3157 Room Type. Describes the equalization used during the final mixing session at
yading@10 3158 the studio or on the dubbing stage. A large room is a dubbing stage with the
yading@10 3159 industry standard X\-curve equalization; a small room has flat equalization.
yading@10 3160 This field will not be written to the bitstream if both the \f(CW\*(C`mixing_level\*(C'\fR
yading@10 3161 option and the \f(CW\*(C`room_type\*(C'\fR option have the default values.
yading@10 3162 .RS 4
yading@10 3163 .IP "\fB0\fR" 4
yading@10 3164 .IX Item "0"
yading@10 3165 .PD 0
yading@10 3166 .IP "\fBnotindicated\fR" 4
yading@10 3167 .IX Item "notindicated"
yading@10 3168 .PD
yading@10 3169 Not Indicated (default)
yading@10 3170 .IP "\fB1\fR" 4
yading@10 3171 .IX Item "1"
yading@10 3172 .PD 0
yading@10 3173 .IP "\fBlarge\fR" 4
yading@10 3174 .IX Item "large"
yading@10 3175 .PD
yading@10 3176 Large Room
yading@10 3177 .IP "\fB2\fR" 4
yading@10 3178 .IX Item "2"
yading@10 3179 .PD 0
yading@10 3180 .IP "\fBsmall\fR" 4
yading@10 3181 .IX Item "small"
yading@10 3182 .PD
yading@10 3183 Small Room
yading@10 3184 .RE
yading@10 3185 .RS 4
yading@10 3186 .RE
yading@10 3187 .PP
yading@10 3188 Other Metadata Options
yading@10 3189 .IX Subsection "Other Metadata Options"
yading@10 3190 .IP "\fB\-copyright\fR \fIboolean\fR" 4
yading@10 3191 .IX Item "-copyright boolean"
yading@10 3192 Copyright Indicator. Specifies whether a copyright exists for this audio.
yading@10 3193 .RS 4
yading@10 3194 .IP "\fB0\fR" 4
yading@10 3195 .IX Item "0"
yading@10 3196 .PD 0
yading@10 3197 .IP "\fBoff\fR" 4
yading@10 3198 .IX Item "off"
yading@10 3199 .PD
yading@10 3200 No Copyright Exists (default)
yading@10 3201 .IP "\fB1\fR" 4
yading@10 3202 .IX Item "1"
yading@10 3203 .PD 0
yading@10 3204 .IP "\fBon\fR" 4
yading@10 3205 .IX Item "on"
yading@10 3206 .PD
yading@10 3207 Copyright Exists
yading@10 3208 .RE
yading@10 3209 .RS 4
yading@10 3210 .RE
yading@10 3211 .IP "\fB\-dialnorm\fR \fIvalue\fR" 4
yading@10 3212 .IX Item "-dialnorm value"
yading@10 3213 Dialogue Normalization. Indicates how far the average dialogue level of the
yading@10 3214 program is below digital 100% full scale (0 dBFS). This parameter determines a
yading@10 3215 level shift during audio reproduction that sets the average volume of the
yading@10 3216 dialogue to a preset level. The goal is to match volume level between program
yading@10 3217 sources. A value of \-31dB will result in no volume level change, relative to
yading@10 3218 the source volume, during audio reproduction. Valid values are whole numbers in
yading@10 3219 the range \-31 to \-1, with \-31 being the default.
yading@10 3220 .IP "\fB\-dsur_mode\fR \fImode\fR" 4
yading@10 3221 .IX Item "-dsur_mode mode"
yading@10 3222 Dolby Surround Mode. Specifies whether the stereo signal uses Dolby Surround
yading@10 3223 (Pro Logic). This field will only be written to the bitstream if the audio
yading@10 3224 stream is stereo. Using this option does \fB\s-1NOT\s0\fR mean the encoder will actually
yading@10 3225 apply Dolby Surround processing.
yading@10 3226 .RS 4
yading@10 3227 .IP "\fB0\fR" 4
yading@10 3228 .IX Item "0"
yading@10 3229 .PD 0
yading@10 3230 .IP "\fBnotindicated\fR" 4
yading@10 3231 .IX Item "notindicated"
yading@10 3232 .PD
yading@10 3233 Not Indicated (default)
yading@10 3234 .IP "\fB1\fR" 4
yading@10 3235 .IX Item "1"
yading@10 3236 .PD 0
yading@10 3237 .IP "\fBoff\fR" 4
yading@10 3238 .IX Item "off"
yading@10 3239 .PD
yading@10 3240 Not Dolby Surround Encoded
yading@10 3241 .IP "\fB2\fR" 4
yading@10 3242 .IX Item "2"
yading@10 3243 .PD 0
yading@10 3244 .IP "\fBon\fR" 4
yading@10 3245 .IX Item "on"
yading@10 3246 .PD
yading@10 3247 Dolby Surround Encoded
yading@10 3248 .RE
yading@10 3249 .RS 4
yading@10 3250 .RE
yading@10 3251 .IP "\fB\-original\fR \fIboolean\fR" 4
yading@10 3252 .IX Item "-original boolean"
yading@10 3253 Original Bit Stream Indicator. Specifies whether this audio is from the
yading@10 3254 original source and not a copy.
yading@10 3255 .RS 4
yading@10 3256 .IP "\fB0\fR" 4
yading@10 3257 .IX Item "0"
yading@10 3258 .PD 0
yading@10 3259 .IP "\fBoff\fR" 4
yading@10 3260 .IX Item "off"
yading@10 3261 .PD
yading@10 3262 Not Original Source
yading@10 3263 .IP "\fB1\fR" 4
yading@10 3264 .IX Item "1"
yading@10 3265 .PD 0
yading@10 3266 .IP "\fBon\fR" 4
yading@10 3267 .IX Item "on"
yading@10 3268 .PD
yading@10 3269 Original Source (default)
yading@10 3270 .RE
yading@10 3271 .RS 4
yading@10 3272 .RE
yading@10 3273 .PP
yading@10 3274 \fIExtended Bitstream Information\fR
yading@10 3275 .IX Subsection "Extended Bitstream Information"
yading@10 3276 .PP
yading@10 3277 The extended bitstream options are part of the Alternate Bit Stream Syntax as
yading@10 3278 specified in Annex D of the A/52:2010 standard. It is grouped into 2 parts.
yading@10 3279 If any one parameter in a group is specified, all values in that group will be
yading@10 3280 written to the bitstream. Default values are used for those that are written
yading@10 3281 but have not been specified. If the mixing levels are written, the decoder
yading@10 3282 will use these values instead of the ones specified in the \f(CW\*(C`center_mixlev\*(C'\fR
yading@10 3283 and \f(CW\*(C`surround_mixlev\*(C'\fR options if it supports the Alternate Bit Stream
yading@10 3284 Syntax.
yading@10 3285 .PP
yading@10 3286 Extended Bitstream Information \- Part 1
yading@10 3287 .IX Subsection "Extended Bitstream Information - Part 1"
yading@10 3288 .IP "\fB\-dmix_mode\fR \fImode\fR" 4
yading@10 3289 .IX Item "-dmix_mode mode"
yading@10 3290 Preferred Stereo Downmix Mode. Allows the user to select either Lt/Rt
yading@10 3291 (Dolby Surround) or Lo/Ro (normal stereo) as the preferred stereo downmix mode.
yading@10 3292 .RS 4
yading@10 3293 .IP "\fB0\fR" 4
yading@10 3294 .IX Item "0"
yading@10 3295 .PD 0
yading@10 3296 .IP "\fBnotindicated\fR" 4
yading@10 3297 .IX Item "notindicated"
yading@10 3298 .PD
yading@10 3299 Not Indicated (default)
yading@10 3300 .IP "\fB1\fR" 4
yading@10 3301 .IX Item "1"
yading@10 3302 .PD 0
yading@10 3303 .IP "\fBltrt\fR" 4
yading@10 3304 .IX Item "ltrt"
yading@10 3305 .PD
yading@10 3306 Lt/Rt Downmix Preferred
yading@10 3307 .IP "\fB2\fR" 4
yading@10 3308 .IX Item "2"
yading@10 3309 .PD 0
yading@10 3310 .IP "\fBloro\fR" 4
yading@10 3311 .IX Item "loro"
yading@10 3312 .PD
yading@10 3313 Lo/Ro Downmix Preferred
yading@10 3314 .RE
yading@10 3315 .RS 4
yading@10 3316 .RE
yading@10 3317 .IP "\fB\-ltrt_cmixlev\fR \fIlevel\fR" 4
yading@10 3318 .IX Item "-ltrt_cmixlev level"
yading@10 3319 Lt/Rt Center Mix Level. The amount of gain the decoder should apply to the
yading@10 3320 center channel when downmixing to stereo in Lt/Rt mode.
yading@10 3321 .RS 4
yading@10 3322 .IP "\fB1.414\fR" 4
yading@10 3323 .IX Item "1.414"
yading@10 3324 Apply +3dB gain
yading@10 3325 .IP "\fB1.189\fR" 4
yading@10 3326 .IX Item "1.189"
yading@10 3327 Apply +1.5dB gain
yading@10 3328 .IP "\fB1.000\fR" 4
yading@10 3329 .IX Item "1.000"
yading@10 3330 Apply 0dB gain
yading@10 3331 .IP "\fB0.841\fR" 4
yading@10 3332 .IX Item "0.841"
yading@10 3333 Apply \-1.5dB gain
yading@10 3334 .IP "\fB0.707\fR" 4
yading@10 3335 .IX Item "0.707"
yading@10 3336 Apply \-3.0dB gain
yading@10 3337 .IP "\fB0.595\fR" 4
yading@10 3338 .IX Item "0.595"
yading@10 3339 Apply \-4.5dB gain (default)
yading@10 3340 .IP "\fB0.500\fR" 4
yading@10 3341 .IX Item "0.500"
yading@10 3342 Apply \-6.0dB gain
yading@10 3343 .IP "\fB0.000\fR" 4
yading@10 3344 .IX Item "0.000"
yading@10 3345 Silence Center Channel
yading@10 3346 .RE
yading@10 3347 .RS 4
yading@10 3348 .RE
yading@10 3349 .IP "\fB\-ltrt_surmixlev\fR \fIlevel\fR" 4
yading@10 3350 .IX Item "-ltrt_surmixlev level"
yading@10 3351 Lt/Rt Surround Mix Level. The amount of gain the decoder should apply to the
yading@10 3352 surround channel(s) when downmixing to stereo in Lt/Rt mode.
yading@10 3353 .RS 4
yading@10 3354 .IP "\fB0.841\fR" 4
yading@10 3355 .IX Item "0.841"
yading@10 3356 Apply \-1.5dB gain
yading@10 3357 .IP "\fB0.707\fR" 4
yading@10 3358 .IX Item "0.707"
yading@10 3359 Apply \-3.0dB gain
yading@10 3360 .IP "\fB0.595\fR" 4
yading@10 3361 .IX Item "0.595"
yading@10 3362 Apply \-4.5dB gain
yading@10 3363 .IP "\fB0.500\fR" 4
yading@10 3364 .IX Item "0.500"
yading@10 3365 Apply \-6.0dB gain (default)
yading@10 3366 .IP "\fB0.000\fR" 4
yading@10 3367 .IX Item "0.000"
yading@10 3368 Silence Surround Channel(s)
yading@10 3369 .RE
yading@10 3370 .RS 4
yading@10 3371 .RE
yading@10 3372 .IP "\fB\-loro_cmixlev\fR \fIlevel\fR" 4
yading@10 3373 .IX Item "-loro_cmixlev level"
yading@10 3374 Lo/Ro Center Mix Level. The amount of gain the decoder should apply to the
yading@10 3375 center channel when downmixing to stereo in Lo/Ro mode.
yading@10 3376 .RS 4
yading@10 3377 .IP "\fB1.414\fR" 4
yading@10 3378 .IX Item "1.414"
yading@10 3379 Apply +3dB gain
yading@10 3380 .IP "\fB1.189\fR" 4
yading@10 3381 .IX Item "1.189"
yading@10 3382 Apply +1.5dB gain
yading@10 3383 .IP "\fB1.000\fR" 4
yading@10 3384 .IX Item "1.000"
yading@10 3385 Apply 0dB gain
yading@10 3386 .IP "\fB0.841\fR" 4
yading@10 3387 .IX Item "0.841"
yading@10 3388 Apply \-1.5dB gain
yading@10 3389 .IP "\fB0.707\fR" 4
yading@10 3390 .IX Item "0.707"
yading@10 3391 Apply \-3.0dB gain
yading@10 3392 .IP "\fB0.595\fR" 4
yading@10 3393 .IX Item "0.595"
yading@10 3394 Apply \-4.5dB gain (default)
yading@10 3395 .IP "\fB0.500\fR" 4
yading@10 3396 .IX Item "0.500"
yading@10 3397 Apply \-6.0dB gain
yading@10 3398 .IP "\fB0.000\fR" 4
yading@10 3399 .IX Item "0.000"
yading@10 3400 Silence Center Channel
yading@10 3401 .RE
yading@10 3402 .RS 4
yading@10 3403 .RE
yading@10 3404 .IP "\fB\-loro_surmixlev\fR \fIlevel\fR" 4
yading@10 3405 .IX Item "-loro_surmixlev level"
yading@10 3406 Lo/Ro Surround Mix Level. The amount of gain the decoder should apply to the
yading@10 3407 surround channel(s) when downmixing to stereo in Lo/Ro mode.
yading@10 3408 .RS 4
yading@10 3409 .IP "\fB0.841\fR" 4
yading@10 3410 .IX Item "0.841"
yading@10 3411 Apply \-1.5dB gain
yading@10 3412 .IP "\fB0.707\fR" 4
yading@10 3413 .IX Item "0.707"
yading@10 3414 Apply \-3.0dB gain
yading@10 3415 .IP "\fB0.595\fR" 4
yading@10 3416 .IX Item "0.595"
yading@10 3417 Apply \-4.5dB gain
yading@10 3418 .IP "\fB0.500\fR" 4
yading@10 3419 .IX Item "0.500"
yading@10 3420 Apply \-6.0dB gain (default)
yading@10 3421 .IP "\fB0.000\fR" 4
yading@10 3422 .IX Item "0.000"
yading@10 3423 Silence Surround Channel(s)
yading@10 3424 .RE
yading@10 3425 .RS 4
yading@10 3426 .RE
yading@10 3427 .PP
yading@10 3428 Extended Bitstream Information \- Part 2
yading@10 3429 .IX Subsection "Extended Bitstream Information - Part 2"
yading@10 3430 .IP "\fB\-dsurex_mode\fR \fImode\fR" 4
yading@10 3431 .IX Item "-dsurex_mode mode"
yading@10 3432 Dolby Surround \s-1EX\s0 Mode. Indicates whether the stream uses Dolby Surround \s-1EX\s0
yading@10 3433 (7.1 matrixed to 5.1). Using this option does \fB\s-1NOT\s0\fR mean the encoder will actually
yading@10 3434 apply Dolby Surround \s-1EX\s0 processing.
yading@10 3435 .RS 4
yading@10 3436 .IP "\fB0\fR" 4
yading@10 3437 .IX Item "0"
yading@10 3438 .PD 0
yading@10 3439 .IP "\fBnotindicated\fR" 4
yading@10 3440 .IX Item "notindicated"
yading@10 3441 .PD
yading@10 3442 Not Indicated (default)
yading@10 3443 .IP "\fB1\fR" 4
yading@10 3444 .IX Item "1"
yading@10 3445 .PD 0
yading@10 3446 .IP "\fBon\fR" 4
yading@10 3447 .IX Item "on"
yading@10 3448 .PD
yading@10 3449 Dolby Surround \s-1EX\s0 Off
yading@10 3450 .IP "\fB2\fR" 4
yading@10 3451 .IX Item "2"
yading@10 3452 .PD 0
yading@10 3453 .IP "\fBoff\fR" 4
yading@10 3454 .IX Item "off"
yading@10 3455 .PD
yading@10 3456 Dolby Surround \s-1EX\s0 On
yading@10 3457 .RE
yading@10 3458 .RS 4
yading@10 3459 .RE
yading@10 3460 .IP "\fB\-dheadphone_mode\fR \fImode\fR" 4
yading@10 3461 .IX Item "-dheadphone_mode mode"
yading@10 3462 Dolby Headphone Mode. Indicates whether the stream uses Dolby Headphone
yading@10 3463 encoding (multi-channel matrixed to 2.0 for use with headphones). Using this
yading@10 3464 option does \fB\s-1NOT\s0\fR mean the encoder will actually apply Dolby Headphone
yading@10 3465 processing.
yading@10 3466 .RS 4
yading@10 3467 .IP "\fB0\fR" 4
yading@10 3468 .IX Item "0"
yading@10 3469 .PD 0
yading@10 3470 .IP "\fBnotindicated\fR" 4
yading@10 3471 .IX Item "notindicated"
yading@10 3472 .PD
yading@10 3473 Not Indicated (default)
yading@10 3474 .IP "\fB1\fR" 4
yading@10 3475 .IX Item "1"
yading@10 3476 .PD 0
yading@10 3477 .IP "\fBon\fR" 4
yading@10 3478 .IX Item "on"
yading@10 3479 .PD
yading@10 3480 Dolby Headphone Off
yading@10 3481 .IP "\fB2\fR" 4
yading@10 3482 .IX Item "2"
yading@10 3483 .PD 0
yading@10 3484 .IP "\fBoff\fR" 4
yading@10 3485 .IX Item "off"
yading@10 3486 .PD
yading@10 3487 Dolby Headphone On
yading@10 3488 .RE
yading@10 3489 .RS 4
yading@10 3490 .RE
yading@10 3491 .IP "\fB\-ad_conv_type\fR \fItype\fR" 4
yading@10 3492 .IX Item "-ad_conv_type type"
yading@10 3493 A/D Converter Type. Indicates whether the audio has passed through \s-1HDCD\s0 A/D
yading@10 3494 conversion.
yading@10 3495 .RS 4
yading@10 3496 .IP "\fB0\fR" 4
yading@10 3497 .IX Item "0"
yading@10 3498 .PD 0
yading@10 3499 .IP "\fBstandard\fR" 4
yading@10 3500 .IX Item "standard"
yading@10 3501 .PD
yading@10 3502 Standard A/D Converter (default)
yading@10 3503 .IP "\fB1\fR" 4
yading@10 3504 .IX Item "1"
yading@10 3505 .PD 0
yading@10 3506 .IP "\fBhdcd\fR" 4
yading@10 3507 .IX Item "hdcd"
yading@10 3508 .PD
yading@10 3509 \&\s-1HDCD\s0 A/D Converter
yading@10 3510 .RE
yading@10 3511 .RS 4
yading@10 3512 .RE
yading@10 3513 .PP
yading@10 3514 \fIOther \s-1AC\-3\s0 Encoding Options\fR
yading@10 3515 .IX Subsection "Other AC-3 Encoding Options"
yading@10 3516 .IP "\fB\-stereo_rematrixing\fR \fIboolean\fR" 4
yading@10 3517 .IX Item "-stereo_rematrixing boolean"
yading@10 3518 Stereo Rematrixing. Enables/Disables use of rematrixing for stereo input. This
yading@10 3519 is an optional \s-1AC\-3\s0 feature that increases quality by selectively encoding
yading@10 3520 the left/right channels as mid/side. This option is enabled by default, and it
yading@10 3521 is highly recommended that it be left as enabled except for testing purposes.
yading@10 3522 .PP
yading@10 3523 \fIFloating-Point-Only \s-1AC\-3\s0 Encoding Options\fR
yading@10 3524 .IX Subsection "Floating-Point-Only AC-3 Encoding Options"
yading@10 3525 .PP
yading@10 3526 These options are only valid for the floating-point encoder and do not exist
yading@10 3527 for the fixed-point encoder due to the corresponding features not being
yading@10 3528 implemented in fixed-point.
yading@10 3529 .IP "\fB\-channel_coupling\fR \fIboolean\fR" 4
yading@10 3530 .IX Item "-channel_coupling boolean"
yading@10 3531 Enables/Disables use of channel coupling, which is an optional \s-1AC\-3\s0 feature
yading@10 3532 that increases quality by combining high frequency information from multiple
yading@10 3533 channels into a single channel. The per-channel high frequency information is
yading@10 3534 sent with less accuracy in both the frequency and time domains. This allows
yading@10 3535 more bits to be used for lower frequencies while preserving enough information
yading@10 3536 to reconstruct the high frequencies. This option is enabled by default for the
yading@10 3537 floating-point encoder and should generally be left as enabled except for
yading@10 3538 testing purposes or to increase encoding speed.
yading@10 3539 .RS 4
yading@10 3540 .IP "\fB\-1\fR" 4
yading@10 3541 .IX Item "-1"
yading@10 3542 .PD 0
yading@10 3543 .IP "\fBauto\fR" 4
yading@10 3544 .IX Item "auto"
yading@10 3545 .PD
yading@10 3546 Selected by Encoder (default)
yading@10 3547 .IP "\fB0\fR" 4
yading@10 3548 .IX Item "0"
yading@10 3549 .PD 0
yading@10 3550 .IP "\fBoff\fR" 4
yading@10 3551 .IX Item "off"
yading@10 3552 .PD
yading@10 3553 Disable Channel Coupling
yading@10 3554 .IP "\fB1\fR" 4
yading@10 3555 .IX Item "1"
yading@10 3556 .PD 0
yading@10 3557 .IP "\fBon\fR" 4
yading@10 3558 .IX Item "on"
yading@10 3559 .PD
yading@10 3560 Enable Channel Coupling
yading@10 3561 .RE
yading@10 3562 .RS 4
yading@10 3563 .RE
yading@10 3564 .IP "\fB\-cpl_start_band\fR \fInumber\fR" 4
yading@10 3565 .IX Item "-cpl_start_band number"
yading@10 3566 Coupling Start Band. Sets the channel coupling start band, from 1 to 15. If a
yading@10 3567 value higher than the bandwidth is used, it will be reduced to 1 less than the
yading@10 3568 coupling end band. If \fIauto\fR is used, the start band will be determined by
yading@10 3569 the encoder based on the bit rate, sample rate, and channel layout. This option
yading@10 3570 has no effect if channel coupling is disabled.
yading@10 3571 .RS 4
yading@10 3572 .IP "\fB\-1\fR" 4
yading@10 3573 .IX Item "-1"
yading@10 3574 .PD 0
yading@10 3575 .IP "\fBauto\fR" 4
yading@10 3576 .IX Item "auto"
yading@10 3577 .PD
yading@10 3578 Selected by Encoder (default)
yading@10 3579 .RE
yading@10 3580 .RS 4
yading@10 3581 .RE
yading@10 3582 .SH "VIDEO ENCODERS"
yading@10 3583 .IX Header "VIDEO ENCODERS"
yading@10 3584 A description of some of the currently available video encoders
yading@10 3585 follows.
yading@10 3586 .SS "libtheora"
yading@10 3587 .IX Subsection "libtheora"
yading@10 3588 Theora format supported through libtheora.
yading@10 3589 .PP
yading@10 3590 Requires the presence of the libtheora headers and library during
yading@10 3591 configuration. You need to explicitly configure the build with
yading@10 3592 \&\f(CW\*(C`\-\-enable\-libtheora\*(C'\fR.
yading@10 3593 .PP
yading@10 3594 \fIOptions\fR
yading@10 3595 .IX Subsection "Options"
yading@10 3596 .PP
yading@10 3597 The following global options are mapped to internal libtheora options
yading@10 3598 which affect the quality and the bitrate of the encoded stream.
yading@10 3599 .IP "\fBb\fR" 4
yading@10 3600 .IX Item "b"
yading@10 3601 Set the video bitrate, only works if the \f(CW\*(C`qscale\*(C'\fR flag in
yading@10 3602 \&\fBflags\fR is not enabled.
yading@10 3603 .IP "\fBflags\fR" 4
yading@10 3604 .IX Item "flags"
yading@10 3605 Used to enable constant quality mode encoding through the
yading@10 3606 \&\fBqscale\fR flag, and to enable the \f(CW\*(C`pass1\*(C'\fR and \f(CW\*(C`pass2\*(C'\fR
yading@10 3607 modes.
yading@10 3608 .IP "\fBg\fR" 4
yading@10 3609 .IX Item "g"
yading@10 3610 Set the \s-1GOP\s0 size.
yading@10 3611 .IP "\fBglobal_quality\fR" 4
yading@10 3612 .IX Item "global_quality"
yading@10 3613 Set the global quality in lambda units, only works if the
yading@10 3614 \&\f(CW\*(C`qscale\*(C'\fR flag in \fBflags\fR is enabled. The value is clipped
yading@10 3615 in the [0 \- 10*\f(CW\*(C`FF_QP2LAMBDA\*(C'\fR] range, and then multiplied for 6.3
yading@10 3616 to get a value in the native libtheora range [0\-63]. A higher value
yading@10 3617 corresponds to a higher quality.
yading@10 3618 .Sp
yading@10 3619 For example, to set maximum constant quality encoding with
yading@10 3620 \&\fBffmpeg\fR:
yading@10 3621 .Sp
yading@10 3622 .Vb 1
yading@10 3623 \& ffmpeg \-i INPUT \-flags:v qscale \-global_quality:v "10*QP2LAMBDA" \-codec:v libtheora OUTPUT.ogg
yading@10 3624 .Ve
yading@10 3625 .SS "libvpx"
yading@10 3626 .IX Subsection "libvpx"
yading@10 3627 \&\s-1VP8\s0 format supported through libvpx.
yading@10 3628 .PP
yading@10 3629 Requires the presence of the libvpx headers and library during configuration.
yading@10 3630 You need to explicitly configure the build with \f(CW\*(C`\-\-enable\-libvpx\*(C'\fR.
yading@10 3631 .PP
yading@10 3632 \fIOptions\fR
yading@10 3633 .IX Subsection "Options"
yading@10 3634 .PP
yading@10 3635 Mapping from FFmpeg to libvpx options with conversion notes in parentheses.
yading@10 3636 .IP "\fBthreads\fR" 4
yading@10 3637 .IX Item "threads"
yading@10 3638 g_threads
yading@10 3639 .IP "\fBprofile\fR" 4
yading@10 3640 .IX Item "profile"
yading@10 3641 g_profile
yading@10 3642 .IP "\fBvb\fR" 4
yading@10 3643 .IX Item "vb"
yading@10 3644 rc_target_bitrate
yading@10 3645 .IP "\fBg\fR" 4
yading@10 3646 .IX Item "g"
yading@10 3647 kf_max_dist
yading@10 3648 .IP "\fBkeyint_min\fR" 4
yading@10 3649 .IX Item "keyint_min"
yading@10 3650 kf_min_dist
yading@10 3651 .IP "\fBqmin\fR" 4
yading@10 3652 .IX Item "qmin"
yading@10 3653 rc_min_quantizer
yading@10 3654 .IP "\fBqmax\fR" 4
yading@10 3655 .IX Item "qmax"
yading@10 3656 rc_max_quantizer
yading@10 3657 .IP "\fBbufsize, vb\fR" 4
yading@10 3658 .IX Item "bufsize, vb"
yading@10 3659 rc_buf_sz
yading@10 3660 \&\f(CW\*(C`(bufsize * 1000 / vb)\*(C'\fR
yading@10 3661 .Sp
yading@10 3662 rc_buf_optimal_sz
yading@10 3663 \&\f(CW\*(C`(bufsize * 1000 / vb * 5 / 6)\*(C'\fR
yading@10 3664 .IP "\fBrc_init_occupancy, vb\fR" 4
yading@10 3665 .IX Item "rc_init_occupancy, vb"
yading@10 3666 rc_buf_initial_sz
yading@10 3667 \&\f(CW\*(C`(rc_init_occupancy * 1000 / vb)\*(C'\fR
yading@10 3668 .IP "\fBrc_buffer_aggressivity\fR" 4
yading@10 3669 .IX Item "rc_buffer_aggressivity"
yading@10 3670 rc_undershoot_pct
yading@10 3671 .IP "\fBskip_threshold\fR" 4
yading@10 3672 .IX Item "skip_threshold"
yading@10 3673 rc_dropframe_thresh
yading@10 3674 .IP "\fBqcomp\fR" 4
yading@10 3675 .IX Item "qcomp"
yading@10 3676 rc_2pass_vbr_bias_pct
yading@10 3677 .IP "\fBmaxrate, vb\fR" 4
yading@10 3678 .IX Item "maxrate, vb"
yading@10 3679 rc_2pass_vbr_maxsection_pct
yading@10 3680 \&\f(CW\*(C`(maxrate * 100 / vb)\*(C'\fR
yading@10 3681 .IP "\fBminrate, vb\fR" 4
yading@10 3682 .IX Item "minrate, vb"
yading@10 3683 rc_2pass_vbr_minsection_pct
yading@10 3684 \&\f(CW\*(C`(minrate * 100 / vb)\*(C'\fR
yading@10 3685 .IP "\fBminrate, maxrate, vb\fR" 4
yading@10 3686 .IX Item "minrate, maxrate, vb"
yading@10 3687 \&\f(CW\*(C`VPX_CBR\*(C'\fR
yading@10 3688 \&\f(CW\*(C`(minrate == maxrate == vb)\*(C'\fR
yading@10 3689 .IP "\fBcrf\fR" 4
yading@10 3690 .IX Item "crf"
yading@10 3691 \&\f(CW\*(C`VPX_CQ\*(C'\fR, \f(CW\*(C`VP8E_SET_CQ_LEVEL\*(C'\fR
yading@10 3692 .IP "\fBquality\fR" 4
yading@10 3693 .IX Item "quality"
yading@10 3694 .RS 4
yading@10 3695 .PD 0
yading@10 3696 .IP "\fIbest\fR" 4
yading@10 3697 .IX Item "best"
yading@10 3698 .PD
yading@10 3699 \&\f(CW\*(C`VPX_DL_BEST_QUALITY\*(C'\fR
yading@10 3700 .IP "\fIgood\fR" 4
yading@10 3701 .IX Item "good"
yading@10 3702 \&\f(CW\*(C`VPX_DL_GOOD_QUALITY\*(C'\fR
yading@10 3703 .IP "\fIrealtime\fR" 4
yading@10 3704 .IX Item "realtime"
yading@10 3705 \&\f(CW\*(C`VPX_DL_REALTIME\*(C'\fR
yading@10 3706 .RE
yading@10 3707 .RS 4
yading@10 3708 .RE
yading@10 3709 .IP "\fBspeed\fR" 4
yading@10 3710 .IX Item "speed"
yading@10 3711 \&\f(CW\*(C`VP8E_SET_CPUUSED\*(C'\fR
yading@10 3712 .IP "\fBnr\fR" 4
yading@10 3713 .IX Item "nr"
yading@10 3714 \&\f(CW\*(C`VP8E_SET_NOISE_SENSITIVITY\*(C'\fR
yading@10 3715 .IP "\fBmb_threshold\fR" 4
yading@10 3716 .IX Item "mb_threshold"
yading@10 3717 \&\f(CW\*(C`VP8E_SET_STATIC_THRESHOLD\*(C'\fR
yading@10 3718 .IP "\fBslices\fR" 4
yading@10 3719 .IX Item "slices"
yading@10 3720 \&\f(CW\*(C`VP8E_SET_TOKEN_PARTITIONS\*(C'\fR
yading@10 3721 .IP "\fBmax-intra-rate\fR" 4
yading@10 3722 .IX Item "max-intra-rate"
yading@10 3723 \&\f(CW\*(C`VP8E_SET_MAX_INTRA_BITRATE_PCT\*(C'\fR
yading@10 3724 .IP "\fBforce_key_frames\fR" 4
yading@10 3725 .IX Item "force_key_frames"
yading@10 3726 \&\f(CW\*(C`VPX_EFLAG_FORCE_KF\*(C'\fR
yading@10 3727 .IP "\fBAlternate reference frame related\fR" 4
yading@10 3728 .IX Item "Alternate reference frame related"
yading@10 3729 .RS 4
yading@10 3730 .PD 0
yading@10 3731 .IP "\fBvp8flags altref\fR" 4
yading@10 3732 .IX Item "vp8flags altref"
yading@10 3733 .PD
yading@10 3734 \&\f(CW\*(C`VP8E_SET_ENABLEAUTOALTREF\*(C'\fR
yading@10 3735 .IP "\fIarnr_max_frames\fR" 4
yading@10 3736 .IX Item "arnr_max_frames"
yading@10 3737 \&\f(CW\*(C`VP8E_SET_ARNR_MAXFRAMES\*(C'\fR
yading@10 3738 .IP "\fIarnr_type\fR" 4
yading@10 3739 .IX Item "arnr_type"
yading@10 3740 \&\f(CW\*(C`VP8E_SET_ARNR_TYPE\*(C'\fR
yading@10 3741 .IP "\fIarnr_strength\fR" 4
yading@10 3742 .IX Item "arnr_strength"
yading@10 3743 \&\f(CW\*(C`VP8E_SET_ARNR_STRENGTH\*(C'\fR
yading@10 3744 .IP "\fIrc_lookahead\fR" 4
yading@10 3745 .IX Item "rc_lookahead"
yading@10 3746 g_lag_in_frames
yading@10 3747 .RE
yading@10 3748 .RS 4
yading@10 3749 .RE
yading@10 3750 .IP "\fBvp8flags error_resilient\fR" 4
yading@10 3751 .IX Item "vp8flags error_resilient"
yading@10 3752 g_error_resilient
yading@10 3753 .PP
yading@10 3754 For more information about libvpx see:
yading@10 3755 <\fBhttp://www.webmproject.org/\fR>
yading@10 3756 .SS "libx264"
yading@10 3757 .IX Subsection "libx264"
yading@10 3758 x264 H.264/MPEG\-4 \s-1AVC\s0 encoder wrapper
yading@10 3759 .PP
yading@10 3760 Requires the presence of the libx264 headers and library during
yading@10 3761 configuration. You need to explicitly configure the build with
yading@10 3762 \&\f(CW\*(C`\-\-enable\-libx264\*(C'\fR.
yading@10 3763 .PP
yading@10 3764 x264 supports an impressive number of features, including 8x8 and 4x4 adaptive
yading@10 3765 spatial transform, adaptive B\-frame placement, \s-1CAVLC/CABAC\s0 entropy coding,
yading@10 3766 interlacing (\s-1MBAFF\s0), lossless mode, psy optimizations for detail retention
yading@10 3767 (adaptive quantization, psy-RD, psy-trellis).
yading@10 3768 .PP
yading@10 3769 The FFmpeg wrapper provides a mapping for most of them using global options
yading@10 3770 that match those of the encoders and provides private options for the unique
yading@10 3771 encoder options. Additionally an expert override is provided to directly pass
yading@10 3772 a list of key=value tuples as accepted by x264_param_parse.
yading@10 3773 .PP
yading@10 3774 \fIOption Mapping\fR
yading@10 3775 .IX Subsection "Option Mapping"
yading@10 3776 .PP
yading@10 3777 The following options are supported by the x264 wrapper, the x264\-equivalent
yading@10 3778 options follow the FFmpeg ones.
yading@10 3779 .IP "\fBb : bitrate\fR" 4
yading@10 3780 .IX Item "b : bitrate"
yading@10 3781 FFmpeg \f(CW\*(C`b\*(C'\fR option is expressed in bits/s, x264 \f(CW\*(C`bitrate\*(C'\fR in kilobits/s.
yading@10 3782 .IP "\fBbf : bframes\fR" 4
yading@10 3783 .IX Item "bf : bframes"
yading@10 3784 Maximum number of B\-frames.
yading@10 3785 .IP "\fBg : keyint\fR" 4
yading@10 3786 .IX Item "g : keyint"
yading@10 3787 Maximum \s-1GOP\s0 size.
yading@10 3788 .IP "\fBqmin : qpmin\fR" 4
yading@10 3789 .IX Item "qmin : qpmin"
yading@10 3790 .PD 0
yading@10 3791 .IP "\fBqmax : qpmax\fR" 4
yading@10 3792 .IX Item "qmax : qpmax"
yading@10 3793 .IP "\fBqdiff : qpstep\fR" 4
yading@10 3794 .IX Item "qdiff : qpstep"
yading@10 3795 .IP "\fBqblur : qblur\fR" 4
yading@10 3796 .IX Item "qblur : qblur"
yading@10 3797 .IP "\fBqcomp : qcomp\fR" 4
yading@10 3798 .IX Item "qcomp : qcomp"
yading@10 3799 .IP "\fBrefs : ref\fR" 4
yading@10 3800 .IX Item "refs : ref"
yading@10 3801 .IP "\fBsc_threshold : scenecut\fR" 4
yading@10 3802 .IX Item "sc_threshold : scenecut"
yading@10 3803 .IP "\fBtrellis : trellis\fR" 4
yading@10 3804 .IX Item "trellis : trellis"
yading@10 3805 .IP "\fBnr : nr\fR" 4
yading@10 3806 .IX Item "nr : nr"
yading@10 3807 .PD
yading@10 3808 Noise reduction.
yading@10 3809 .IP "\fBme_range : merange\fR" 4
yading@10 3810 .IX Item "me_range : merange"
yading@10 3811 .PD 0
yading@10 3812 .IP "\fBme_method : me\fR" 4
yading@10 3813 .IX Item "me_method : me"
yading@10 3814 .IP "\fBsubq : subme\fR" 4
yading@10 3815 .IX Item "subq : subme"
yading@10 3816 .IP "\fBb_strategy : b\-adapt\fR" 4
yading@10 3817 .IX Item "b_strategy : b-adapt"
yading@10 3818 .IP "\fBkeyint_min : keyint-min\fR" 4
yading@10 3819 .IX Item "keyint_min : keyint-min"
yading@10 3820 .IP "\fBcoder : cabac\fR" 4
yading@10 3821 .IX Item "coder : cabac"
yading@10 3822 .PD
yading@10 3823 Set coder to \f(CW\*(C`ac\*(C'\fR to use \s-1CABAC\s0.
yading@10 3824 .IP "\fBcmp : chroma-me\fR" 4
yading@10 3825 .IX Item "cmp : chroma-me"
yading@10 3826 Set to \f(CW\*(C`chroma\*(C'\fR to use chroma motion estimation.
yading@10 3827 .IP "\fBthreads : threads\fR" 4
yading@10 3828 .IX Item "threads : threads"
yading@10 3829 .PD 0
yading@10 3830 .IP "\fBthread_type : sliced_threads\fR" 4
yading@10 3831 .IX Item "thread_type : sliced_threads"
yading@10 3832 .PD
yading@10 3833 Set to \f(CW\*(C`slice\*(C'\fR to use sliced threading instead of frame threading.
yading@10 3834 .IP "\fBflags \-cgop : open-gop\fR" 4
yading@10 3835 .IX Item "flags -cgop : open-gop"
yading@10 3836 Set \f(CW\*(C`\-cgop\*(C'\fR to use recovery points to close GOPs.
yading@10 3837 .IP "\fBrc_init_occupancy : vbv-init\fR" 4
yading@10 3838 .IX Item "rc_init_occupancy : vbv-init"
yading@10 3839 Initial buffer occupancy.
yading@10 3840 .PP
yading@10 3841 \fIPrivate Options\fR
yading@10 3842 .IX Subsection "Private Options"
yading@10 3843 .IP "\fB\-preset\fR \fIstring\fR" 4
yading@10 3844 .IX Item "-preset string"
yading@10 3845 Set the encoding preset (cf. x264 \-\-fullhelp).
yading@10 3846 .IP "\fB\-tune\fR \fIstring\fR" 4
yading@10 3847 .IX Item "-tune string"
yading@10 3848 Tune the encoding params (cf. x264 \-\-fullhelp).
yading@10 3849 .IP "\fB\-profile\fR \fIstring\fR" 4
yading@10 3850 .IX Item "-profile string"
yading@10 3851 Set profile restrictions (cf. x264 \-\-fullhelp).
yading@10 3852 .IP "\fB\-fastfirstpass\fR \fIinteger\fR" 4
yading@10 3853 .IX Item "-fastfirstpass integer"
yading@10 3854 Use fast settings when encoding first pass.
yading@10 3855 .IP "\fB\-crf\fR \fIfloat\fR" 4
yading@10 3856 .IX Item "-crf float"
yading@10 3857 Select the quality for constant quality mode.
yading@10 3858 .IP "\fB\-crf_max\fR \fIfloat\fR" 4
yading@10 3859 .IX Item "-crf_max float"
yading@10 3860 In \s-1CRF\s0 mode, prevents \s-1VBV\s0 from lowering quality beyond this point.
yading@10 3861 .IP "\fB\-qp\fR \fIinteger\fR" 4
yading@10 3862 .IX Item "-qp integer"
yading@10 3863 Constant quantization parameter rate control method.
yading@10 3864 .IP "\fB\-aq\-mode\fR \fIinteger\fR" 4
yading@10 3865 .IX Item "-aq-mode integer"
yading@10 3866 \&\s-1AQ\s0 method
yading@10 3867 .Sp
yading@10 3868 Possible values:
yading@10 3869 .RS 4
yading@10 3870 .IP "\fBnone\fR" 4
yading@10 3871 .IX Item "none"
yading@10 3872 .PD 0
yading@10 3873 .IP "\fBvariance\fR" 4
yading@10 3874 .IX Item "variance"
yading@10 3875 .PD
yading@10 3876 Variance \s-1AQ\s0 (complexity mask).
yading@10 3877 .IP "\fBautovariance\fR" 4
yading@10 3878 .IX Item "autovariance"
yading@10 3879 Auto-variance \s-1AQ\s0 (experimental).
yading@10 3880 .RE
yading@10 3881 .RS 4
yading@10 3882 .RE
yading@10 3883 .IP "\fB\-aq\-strength\fR \fIfloat\fR" 4
yading@10 3884 .IX Item "-aq-strength float"
yading@10 3885 \&\s-1AQ\s0 strength, reduces blocking and blurring in flat and textured areas.
yading@10 3886 .IP "\fB\-psy\fR \fIinteger\fR" 4
yading@10 3887 .IX Item "-psy integer"
yading@10 3888 Use psychovisual optimizations.
yading@10 3889 .IP "\fB\-psy\-rd\fR \fIstring\fR" 4
yading@10 3890 .IX Item "-psy-rd string"
yading@10 3891 Strength of psychovisual optimization, in <psy\-rd>:<psy\-trellis> format.
yading@10 3892 .IP "\fB\-rc\-lookahead\fR \fIinteger\fR" 4
yading@10 3893 .IX Item "-rc-lookahead integer"
yading@10 3894 Number of frames to look ahead for frametype and ratecontrol.
yading@10 3895 .IP "\fB\-weightb\fR \fIinteger\fR" 4
yading@10 3896 .IX Item "-weightb integer"
yading@10 3897 Weighted prediction for B\-frames.
yading@10 3898 .IP "\fB\-weightp\fR \fIinteger\fR" 4
yading@10 3899 .IX Item "-weightp integer"
yading@10 3900 Weighted prediction analysis method.
yading@10 3901 .Sp
yading@10 3902 Possible values:
yading@10 3903 .RS 4
yading@10 3904 .IP "\fBnone\fR" 4
yading@10 3905 .IX Item "none"
yading@10 3906 .PD 0
yading@10 3907 .IP "\fBsimple\fR" 4
yading@10 3908 .IX Item "simple"
yading@10 3909 .IP "\fBsmart\fR" 4
yading@10 3910 .IX Item "smart"
yading@10 3911 .RE
yading@10 3912 .RS 4
yading@10 3913 .RE
yading@10 3914 .IP "\fB\-ssim\fR \fIinteger\fR" 4
yading@10 3915 .IX Item "-ssim integer"
yading@10 3916 .PD
yading@10 3917 Calculate and print \s-1SSIM\s0 stats.
yading@10 3918 .IP "\fB\-intra\-refresh\fR \fIinteger\fR" 4
yading@10 3919 .IX Item "-intra-refresh integer"
yading@10 3920 Use Periodic Intra Refresh instead of \s-1IDR\s0 frames.
yading@10 3921 .IP "\fB\-b\-bias\fR \fIinteger\fR" 4
yading@10 3922 .IX Item "-b-bias integer"
yading@10 3923 Influences how often B\-frames are used.
yading@10 3924 .IP "\fB\-b\-pyramid\fR \fIinteger\fR" 4
yading@10 3925 .IX Item "-b-pyramid integer"
yading@10 3926 Keep some B\-frames as references.
yading@10 3927 .Sp
yading@10 3928 Possible values:
yading@10 3929 .RS 4
yading@10 3930 .IP "\fBnone\fR" 4
yading@10 3931 .IX Item "none"
yading@10 3932 .PD 0
yading@10 3933 .IP "\fBstrict\fR" 4
yading@10 3934 .IX Item "strict"
yading@10 3935 .PD
yading@10 3936 Strictly hierarchical pyramid.
yading@10 3937 .IP "\fBnormal\fR" 4
yading@10 3938 .IX Item "normal"
yading@10 3939 Non-strict (not Blu-ray compatible).
yading@10 3940 .RE
yading@10 3941 .RS 4
yading@10 3942 .RE
yading@10 3943 .IP "\fB\-mixed\-refs\fR \fIinteger\fR" 4
yading@10 3944 .IX Item "-mixed-refs integer"
yading@10 3945 One reference per partition, as opposed to one reference per macroblock.
yading@10 3946 .IP "\fB\-8x8dct\fR \fIinteger\fR" 4
yading@10 3947 .IX Item "-8x8dct integer"
yading@10 3948 High profile 8x8 transform.
yading@10 3949 .IP "\fB\-fast\-pskip\fR \fIinteger\fR" 4
yading@10 3950 .IX Item "-fast-pskip integer"
yading@10 3951 .PD 0
yading@10 3952 .IP "\fB\-aud\fR \fIinteger\fR" 4
yading@10 3953 .IX Item "-aud integer"
yading@10 3954 .PD
yading@10 3955 Use access unit delimiters.
yading@10 3956 .IP "\fB\-mbtree\fR \fIinteger\fR" 4
yading@10 3957 .IX Item "-mbtree integer"
yading@10 3958 Use macroblock tree ratecontrol.
yading@10 3959 .IP "\fB\-deblock\fR \fIstring\fR" 4
yading@10 3960 .IX Item "-deblock string"
yading@10 3961 Loop filter parameters, in <alpha:beta> form.
yading@10 3962 .IP "\fB\-cplxblur\fR \fIfloat\fR" 4
yading@10 3963 .IX Item "-cplxblur float"
yading@10 3964 Reduce fluctuations in \s-1QP\s0 (before curve compression).
yading@10 3965 .IP "\fB\-partitions\fR \fIstring\fR" 4
yading@10 3966 .IX Item "-partitions string"
yading@10 3967 A comma-separated list of partitions to consider, possible values: p8x8, p4x4, b8x8, i8x8, i4x4, none, all.
yading@10 3968 .IP "\fB\-direct\-pred\fR \fIinteger\fR" 4
yading@10 3969 .IX Item "-direct-pred integer"
yading@10 3970 Direct \s-1MV\s0 prediction mode
yading@10 3971 .Sp
yading@10 3972 Possible values:
yading@10 3973 .RS 4
yading@10 3974 .IP "\fBnone\fR" 4
yading@10 3975 .IX Item "none"
yading@10 3976 .PD 0
yading@10 3977 .IP "\fBspatial\fR" 4
yading@10 3978 .IX Item "spatial"
yading@10 3979 .IP "\fBtemporal\fR" 4
yading@10 3980 .IX Item "temporal"
yading@10 3981 .IP "\fBauto\fR" 4
yading@10 3982 .IX Item "auto"
yading@10 3983 .RE
yading@10 3984 .RS 4
yading@10 3985 .RE
yading@10 3986 .IP "\fB\-slice\-max\-size\fR \fIinteger\fR" 4
yading@10 3987 .IX Item "-slice-max-size integer"
yading@10 3988 .PD
yading@10 3989 Limit the size of each slice in bytes.
yading@10 3990 .IP "\fB\-stats\fR \fIstring\fR" 4
yading@10 3991 .IX Item "-stats string"
yading@10 3992 Filename for 2 pass stats.
yading@10 3993 .IP "\fB\-nal\-hrd\fR \fIinteger\fR" 4
yading@10 3994 .IX Item "-nal-hrd integer"
yading@10 3995 Signal \s-1HRD\s0 information (requires vbv-bufsize; cbr not allowed in .mp4).
yading@10 3996 .Sp
yading@10 3997 Possible values:
yading@10 3998 .RS 4
yading@10 3999 .IP "\fBnone\fR" 4
yading@10 4000 .IX Item "none"
yading@10 4001 .PD 0
yading@10 4002 .IP "\fBvbr\fR" 4
yading@10 4003 .IX Item "vbr"
yading@10 4004 .IP "\fBcbr\fR" 4
yading@10 4005 .IX Item "cbr"
yading@10 4006 .RE
yading@10 4007 .RS 4
yading@10 4008 .RE
yading@10 4009 .IP "\fBx264opts\fR \fIoptions\fR" 4
yading@10 4010 .IX Item "x264opts options"
yading@10 4011 .PD
yading@10 4012 Allow to set any x264 option, see \f(CW\*(C`x264 \-\-fullhelp\*(C'\fR for a list.
yading@10 4013 .Sp
yading@10 4014 \&\fIoptions\fR is a list of \fIkey\fR=\fIvalue\fR couples separated by
yading@10 4015 \&\*(L":\*(R". In \fIfilter\fR and \fIpsy-rd\fR options that use \*(L":\*(R" as a separator
yading@10 4016 themselves, use \*(L",\*(R" instead. They accept it as well since long ago but this
yading@10 4017 is kept undocumented for some reason.
yading@10 4018 .Sp
yading@10 4019 For example to specify libx264 encoding options with \fBffmpeg\fR:
yading@10 4020 .Sp
yading@10 4021 .Vb 1
yading@10 4022 \& ffmpeg \-i foo.mpg \-vcodec libx264 \-x264opts keyint=123:min\-keyint=20 \-an out.mkv
yading@10 4023 .Ve
yading@10 4024 .Sp
yading@10 4025 For more information about libx264 and the supported options see:
yading@10 4026 <\fBhttp://www.videolan.org/developers/x264.html\fR>
yading@10 4027 .IP "\fB\-x264\-params\fR \fIstring\fR" 4
yading@10 4028 .IX Item "-x264-params string"
yading@10 4029 Override the x264 configuration using a :\-separated list of key=value parameters.
yading@10 4030 .Sp
yading@10 4031 .Vb 1
yading@10 4032 \& \-x264\-params level=30:bframes=0:weightp=0:cabac=0:ref=1:vbv\-maxrate=768:vbv\-bufsize=2000:analyse=all:me=umh:no\-fast\-pskip=1:subq=6:8x8dct=0:trellis=0
yading@10 4033 .Ve
yading@10 4034 .PP
yading@10 4035 Encoding avpresets for common usages are provided so they can be used with the
yading@10 4036 general presets system (e.g. passing the \f(CW\*(C`\-pre\*(C'\fR option).
yading@10 4037 .SS "ProRes"
yading@10 4038 .IX Subsection "ProRes"
yading@10 4039 Apple ProRes encoder.
yading@10 4040 .PP
yading@10 4041 FFmpeg contains 2 ProRes encoders, the prores-aw and prores-ks encoder.
yading@10 4042 The used encoder can be choosen with the \f(CW\*(C`\-vcodec\*(C'\fR option.
yading@10 4043 .PP
yading@10 4044 \fIPrivate Options for prores-ks\fR
yading@10 4045 .IX Subsection "Private Options for prores-ks"
yading@10 4046 .IP "\fBprofile\fR \fIinteger\fR" 4
yading@10 4047 .IX Item "profile integer"
yading@10 4048 Select the ProRes profile to encode
yading@10 4049 .RS 4
yading@10 4050 .IP "\fBproxy\fR" 4
yading@10 4051 .IX Item "proxy"
yading@10 4052 .PD 0
yading@10 4053 .IP "\fBlt\fR" 4
yading@10 4054 .IX Item "lt"
yading@10 4055 .IP "\fBstandard\fR" 4
yading@10 4056 .IX Item "standard"
yading@10 4057 .IP "\fBhq\fR" 4
yading@10 4058 .IX Item "hq"
yading@10 4059 .RE
yading@10 4060 .RS 4
yading@10 4061 .RE
yading@10 4062 .IP "\fBquant_mat\fR \fIinteger\fR" 4
yading@10 4063 .IX Item "quant_mat integer"
yading@10 4064 .PD
yading@10 4065 Select quantization matrix.
yading@10 4066 .RS 4
yading@10 4067 .IP "\fBauto\fR" 4
yading@10 4068 .IX Item "auto"
yading@10 4069 .PD 0
yading@10 4070 .IP "\fBdefault\fR" 4
yading@10 4071 .IX Item "default"
yading@10 4072 .IP "\fBproxy\fR" 4
yading@10 4073 .IX Item "proxy"
yading@10 4074 .IP "\fBlt\fR" 4
yading@10 4075 .IX Item "lt"
yading@10 4076 .IP "\fBstandard\fR" 4
yading@10 4077 .IX Item "standard"
yading@10 4078 .IP "\fBhq\fR" 4
yading@10 4079 .IX Item "hq"
yading@10 4080 .RE
yading@10 4081 .RS 4
yading@10 4082 .PD
yading@10 4083 .Sp
yading@10 4084 If set to \fIauto\fR, the matrix matching the profile will be picked.
yading@10 4085 If not set, the matrix providing the highest quality, \fIdefault\fR, will be
yading@10 4086 picked.
yading@10 4087 .RE
yading@10 4088 .IP "\fBbits_per_mb\fR \fIinteger\fR" 4
yading@10 4089 .IX Item "bits_per_mb integer"
yading@10 4090 How many bits to allot for coding one macroblock. Different profiles use
yading@10 4091 between 200 and 2400 bits per macroblock, the maximum is 8000.
yading@10 4092 .IP "\fBmbs_per_slice\fR \fIinteger\fR" 4
yading@10 4093 .IX Item "mbs_per_slice integer"
yading@10 4094 Number of macroblocks in each slice (1\-8); the default value (8)
yading@10 4095 should be good in almost all situations.
yading@10 4096 .IP "\fBvendor\fR \fIstring\fR" 4
yading@10 4097 .IX Item "vendor string"
yading@10 4098 Override the 4\-byte vendor \s-1ID\s0.
yading@10 4099 A custom vendor \s-1ID\s0 like \fIapl0\fR would claim the stream was produced by
yading@10 4100 the Apple encoder.
yading@10 4101 .PP
yading@10 4102 \fISpeed considerations\fR
yading@10 4103 .IX Subsection "Speed considerations"
yading@10 4104 .PP
yading@10 4105 In the default mode of operation the encoder has to honor frame constraints
yading@10 4106 (i.e. not produc frames with size bigger than requested) while still making
yading@10 4107 output picture as good as possible.
yading@10 4108 A frame containing a lot of small details is harder to compress and the encoder
yading@10 4109 would spend more time searching for appropriate quantizers for each slice.
yading@10 4110 .PP
yading@10 4111 Setting a higher \fBbits_per_mb\fR limit will improve the speed.
yading@10 4112 .PP
yading@10 4113 For the fastest encoding speed set the \fBqscale\fR parameter (4 is the
yading@10 4114 recommended value) and do not set a size constraint.
yading@10 4115 .SH "BITSTREAM FILTERS"
yading@10 4116 .IX Header "BITSTREAM FILTERS"
yading@10 4117 When you configure your FFmpeg build, all the supported bitstream
yading@10 4118 filters are enabled by default. You can list all available ones using
yading@10 4119 the configure option \f(CW\*(C`\-\-list\-bsfs\*(C'\fR.
yading@10 4120 .PP
yading@10 4121 You can disable all the bitstream filters using the configure option
yading@10 4122 \&\f(CW\*(C`\-\-disable\-bsfs\*(C'\fR, and selectively enable any bitstream filter using
yading@10 4123 the option \f(CW\*(C`\-\-enable\-bsf=BSF\*(C'\fR, or you can disable a particular
yading@10 4124 bitstream filter using the option \f(CW\*(C`\-\-disable\-bsf=BSF\*(C'\fR.
yading@10 4125 .PP
yading@10 4126 The option \f(CW\*(C`\-bsfs\*(C'\fR of the ff* tools will display the list of
yading@10 4127 all the supported bitstream filters included in your build.
yading@10 4128 .PP
yading@10 4129 Below is a description of the currently available bitstream filters.
yading@10 4130 .SS "aac_adtstoasc"
yading@10 4131 .IX Subsection "aac_adtstoasc"
yading@10 4132 .SS "chomp"
yading@10 4133 .IX Subsection "chomp"
yading@10 4134 .SS "dump_extradata"
yading@10 4135 .IX Subsection "dump_extradata"
yading@10 4136 .SS "h264_mp4toannexb"
yading@10 4137 .IX Subsection "h264_mp4toannexb"
yading@10 4138 Convert an H.264 bitstream from length prefixed mode to start code
yading@10 4139 prefixed mode (as defined in the Annex B of the ITU-T H.264
yading@10 4140 specification).
yading@10 4141 .PP
yading@10 4142 This is required by some streaming formats, typically the \s-1MPEG\-2\s0
yading@10 4143 transport stream format (\*(L"mpegts\*(R").
yading@10 4144 .PP
yading@10 4145 For example to remux an \s-1MP4\s0 file containing an H.264 stream to mpegts
yading@10 4146 format with \fBffmpeg\fR, you can use the command:
yading@10 4147 .PP
yading@10 4148 .Vb 1
yading@10 4149 \& ffmpeg \-i INPUT.mp4 \-codec copy \-bsf:v h264_mp4toannexb OUTPUT.ts
yading@10 4150 .Ve
yading@10 4151 .SS "imx_dump_header"
yading@10 4152 .IX Subsection "imx_dump_header"
yading@10 4153 .SS "mjpeg2jpeg"
yading@10 4154 .IX Subsection "mjpeg2jpeg"
yading@10 4155 Convert \s-1MJPEG/AVI1\s0 packets to full \s-1JPEG/JFIF\s0 packets.
yading@10 4156 .PP
yading@10 4157 \&\s-1MJPEG\s0 is a video codec wherein each video frame is essentially a
yading@10 4158 \&\s-1JPEG\s0 image. The individual frames can be extracted without loss,
yading@10 4159 e.g. by
yading@10 4160 .PP
yading@10 4161 .Vb 1
yading@10 4162 \& ffmpeg \-i ../some_mjpeg.avi \-c:v copy frames_%d.jpg
yading@10 4163 .Ve
yading@10 4164 .PP
yading@10 4165 Unfortunately, these chunks are incomplete \s-1JPEG\s0 images, because
yading@10 4166 they lack the \s-1DHT\s0 segment required for decoding. Quoting from
yading@10 4167 <\fBhttp://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml\fR>:
yading@10 4168 .PP
yading@10 4169 Avery Lee, writing in the rec.video.desktop newsgroup in 2001,
yading@10 4170 commented that \*(L"\s-1MJPEG\s0, or at least the \s-1MJPEG\s0 in AVIs having the
yading@10 4171 \&\s-1MJPG\s0 fourcc, is restricted \s-1JPEG\s0 with a fixed \*(-- and *omitted* \*(--
yading@10 4172 Huffman table. The \s-1JPEG\s0 must be YCbCr colorspace, it must be 4:2:2,
yading@10 4173 and it must use basic Huffman encoding, not arithmetic or
yading@10 4174 progressive. . . . You can indeed extract the \s-1MJPEG\s0 frames and
yading@10 4175 decode them with a regular \s-1JPEG\s0 decoder, but you have to prepend
yading@10 4176 the \s-1DHT\s0 segment to them, or else the decoder won't have any idea
yading@10 4177 how to decompress the data. The exact table necessary is given in
yading@10 4178 the OpenDML spec.\*(R"
yading@10 4179 .PP
yading@10 4180 This bitstream filter patches the header of frames extracted from an \s-1MJPEG\s0
yading@10 4181 stream (carrying the \s-1AVI1\s0 header \s-1ID\s0 and lacking a \s-1DHT\s0 segment) to
yading@10 4182 produce fully qualified \s-1JPEG\s0 images.
yading@10 4183 .PP
yading@10 4184 .Vb 3
yading@10 4185 \& ffmpeg \-i mjpeg\-movie.avi \-c:v copy \-bsf:v mjpeg2jpeg frame_%d.jpg
yading@10 4186 \& exiftran \-i \-9 frame*.jpg
yading@10 4187 \& ffmpeg \-i frame_%d.jpg \-c:v copy rotated.avi
yading@10 4188 .Ve
yading@10 4189 .SS "mjpega_dump_header"
yading@10 4190 .IX Subsection "mjpega_dump_header"
yading@10 4191 .SS "movsub"
yading@10 4192 .IX Subsection "movsub"
yading@10 4193 .SS "mp3_header_compress"
yading@10 4194 .IX Subsection "mp3_header_compress"
yading@10 4195 .SS "mp3_header_decompress"
yading@10 4196 .IX Subsection "mp3_header_decompress"
yading@10 4197 .SS "noise"
yading@10 4198 .IX Subsection "noise"
yading@10 4199 .SS "remove_extradata"
yading@10 4200 .IX Subsection "remove_extradata"
yading@10 4201 .SH "FORMAT OPTIONS"
yading@10 4202 .IX Header "FORMAT OPTIONS"
yading@10 4203 The libavformat library provides some generic global options, which
yading@10 4204 can be set on all the muxers and demuxers. In addition each muxer or
yading@10 4205 demuxer may support so-called private options, which are specific for
yading@10 4206 that component.
yading@10 4207 .PP
yading@10 4208 Options may be set by specifying \-\fIoption\fR \fIvalue\fR in the
yading@10 4209 FFmpeg tools, or by setting the value explicitly in the
yading@10 4210 \&\f(CW\*(C`AVFormatContext\*(C'\fR options or using the \fIlibavutil/opt.h\fR \s-1API\s0
yading@10 4211 for programmatic use.
yading@10 4212 .PP
yading@10 4213 The list of supported options follows:
yading@10 4214 .IP "\fBavioflags\fR \fIflags\fR \fB(\fR\fIinput/output\fR\fB)\fR" 4
yading@10 4215 .IX Item "avioflags flags (input/output)"
yading@10 4216 Possible values:
yading@10 4217 .RS 4
yading@10 4218 .IP "\fBdirect\fR" 4
yading@10 4219 .IX Item "direct"
yading@10 4220 Reduce buffering.
yading@10 4221 .RE
yading@10 4222 .RS 4
yading@10 4223 .RE
yading@10 4224 .IP "\fBprobesize\fR \fIinteger\fR \fB(\fR\fIinput\fR\fB)\fR" 4
yading@10 4225 .IX Item "probesize integer (input)"
yading@10 4226 Set probing size in bytes, i.e. the size of the data to analyze to get
yading@10 4227 stream information. A higher value will allow to detect more
yading@10 4228 information in case it is dispersed into the stream, but will increase
yading@10 4229 latency. Must be an integer not lesser than 32. It is 5000000 by default.
yading@10 4230 .IP "\fBpacketsize\fR \fIinteger\fR \fB(\fR\fIoutput\fR\fB)\fR" 4
yading@10 4231 .IX Item "packetsize integer (output)"
yading@10 4232 Set packet size.
yading@10 4233 .IP "\fBfflags\fR \fIflags\fR \fB(\fR\fIinput/output\fR\fB)\fR" 4
yading@10 4234 .IX Item "fflags flags (input/output)"
yading@10 4235 Set format flags.
yading@10 4236 .Sp
yading@10 4237 Possible values:
yading@10 4238 .RS 4
yading@10 4239 .IP "\fBignidx\fR" 4
yading@10 4240 .IX Item "ignidx"
yading@10 4241 Ignore index.
yading@10 4242 .IP "\fBgenpts\fR" 4
yading@10 4243 .IX Item "genpts"
yading@10 4244 Generate \s-1PTS\s0.
yading@10 4245 .IP "\fBnofillin\fR" 4
yading@10 4246 .IX Item "nofillin"
yading@10 4247 Do not fill in missing values that can be exactly calculated.
yading@10 4248 .IP "\fBnoparse\fR" 4
yading@10 4249 .IX Item "noparse"
yading@10 4250 Disable AVParsers, this needs \f(CW\*(C`+nofillin\*(C'\fR too.
yading@10 4251 .IP "\fBigndts\fR" 4
yading@10 4252 .IX Item "igndts"
yading@10 4253 Ignore \s-1DTS\s0.
yading@10 4254 .IP "\fBdiscardcorrupt\fR" 4
yading@10 4255 .IX Item "discardcorrupt"
yading@10 4256 Discard corrupted frames.
yading@10 4257 .IP "\fBsortdts\fR" 4
yading@10 4258 .IX Item "sortdts"
yading@10 4259 Try to interleave output packets by \s-1DTS\s0.
yading@10 4260 .IP "\fBkeepside\fR" 4
yading@10 4261 .IX Item "keepside"
yading@10 4262 Do not merge side data.
yading@10 4263 .IP "\fBlatm\fR" 4
yading@10 4264 .IX Item "latm"
yading@10 4265 Enable \s-1RTP\s0 \s-1MP4A\-LATM\s0 payload.
yading@10 4266 .IP "\fBnobuffer\fR" 4
yading@10 4267 .IX Item "nobuffer"
yading@10 4268 Reduce the latency introduced by optional buffering
yading@10 4269 .RE
yading@10 4270 .RS 4
yading@10 4271 .RE
yading@10 4272 .IP "\fBanalyzeduration\fR \fIinteger\fR \fB(\fR\fIinput\fR\fB)\fR" 4
yading@10 4273 .IX Item "analyzeduration integer (input)"
yading@10 4274 Specify how many microseconds are analyzed to probe the input. A
yading@10 4275 higher value will allow to detect more accurate information, but will
yading@10 4276 increase latency. It defaults to 5,000,000 microseconds = 5 seconds.
yading@10 4277 .IP "\fBcryptokey\fR \fIhexadecimal string\fR \fB(\fR\fIinput\fR\fB)\fR" 4
yading@10 4278 .IX Item "cryptokey hexadecimal string (input)"
yading@10 4279 Set decryption key.
yading@10 4280 .IP "\fBindexmem\fR \fIinteger\fR \fB(\fR\fIinput\fR\fB)\fR" 4
yading@10 4281 .IX Item "indexmem integer (input)"
yading@10 4282 Set max memory used for timestamp index (per stream).
yading@10 4283 .IP "\fBrtbufsize\fR \fIinteger\fR \fB(\fR\fIinput\fR\fB)\fR" 4
yading@10 4284 .IX Item "rtbufsize integer (input)"
yading@10 4285 Set max memory used for buffering real-time frames.
yading@10 4286 .IP "\fBfdebug\fR \fIflags\fR \fB(\fR\fIinput/output\fR\fB)\fR" 4
yading@10 4287 .IX Item "fdebug flags (input/output)"
yading@10 4288 Print specific debug info.
yading@10 4289 .Sp
yading@10 4290 Possible values:
yading@10 4291 .RS 4
yading@10 4292 .IP "\fBts\fR" 4
yading@10 4293 .IX Item "ts"
yading@10 4294 .RE
yading@10 4295 .RS 4
yading@10 4296 .RE
yading@10 4297 .PD 0
yading@10 4298 .IP "\fBmax_delay\fR \fIinteger\fR \fB(\fR\fIinput/output\fR\fB)\fR" 4
yading@10 4299 .IX Item "max_delay integer (input/output)"
yading@10 4300 .PD
yading@10 4301 Set maximum muxing or demuxing delay in microseconds.
yading@10 4302 .IP "\fBfpsprobesize\fR \fIinteger\fR \fB(\fR\fIinput\fR\fB)\fR" 4
yading@10 4303 .IX Item "fpsprobesize integer (input)"
yading@10 4304 Set number of frames used to probe fps.
yading@10 4305 .IP "\fBaudio_preload\fR \fIinteger\fR \fB(\fR\fIoutput\fR\fB)\fR" 4
yading@10 4306 .IX Item "audio_preload integer (output)"
yading@10 4307 Set microseconds by which audio packets should be interleaved earlier.
yading@10 4308 .IP "\fBchunk_duration\fR \fIinteger\fR \fB(\fR\fIoutput\fR\fB)\fR" 4
yading@10 4309 .IX Item "chunk_duration integer (output)"
yading@10 4310 Set microseconds for each chunk.
yading@10 4311 .IP "\fBchunk_size\fR \fIinteger\fR \fB(\fR\fIoutput\fR\fB)\fR" 4
yading@10 4312 .IX Item "chunk_size integer (output)"
yading@10 4313 Set size in bytes for each chunk.
yading@10 4314 .IP "\fBerr_detect, f_err_detect\fR \fIflags\fR \fB(\fR\fIinput\fR\fB)\fR" 4
yading@10 4315 .IX Item "err_detect, f_err_detect flags (input)"
yading@10 4316 Set error detection flags. \f(CW\*(C`f_err_detect\*(C'\fR is deprecated and
yading@10 4317 should be used only via the \fBffmpeg\fR tool.
yading@10 4318 .Sp
yading@10 4319 Possible values:
yading@10 4320 .RS 4
yading@10 4321 .IP "\fBcrccheck\fR" 4
yading@10 4322 .IX Item "crccheck"
yading@10 4323 Verify embedded CRCs.
yading@10 4324 .IP "\fBbitstream\fR" 4
yading@10 4325 .IX Item "bitstream"
yading@10 4326 Detect bitstream specification deviations.
yading@10 4327 .IP "\fBbuffer\fR" 4
yading@10 4328 .IX Item "buffer"
yading@10 4329 Detect improper bitstream length.
yading@10 4330 .IP "\fBexplode\fR" 4
yading@10 4331 .IX Item "explode"
yading@10 4332 Abort decoding on minor error detection.
yading@10 4333 .IP "\fBcareful\fR" 4
yading@10 4334 .IX Item "careful"
yading@10 4335 Consider things that violate the spec and have not been seen in the
yading@10 4336 wild as errors.
yading@10 4337 .IP "\fBcompliant\fR" 4
yading@10 4338 .IX Item "compliant"
yading@10 4339 Consider all spec non compliancies as errors.
yading@10 4340 .IP "\fBaggressive\fR" 4
yading@10 4341 .IX Item "aggressive"
yading@10 4342 Consider things that a sane encoder should not do as an error.
yading@10 4343 .RE
yading@10 4344 .RS 4
yading@10 4345 .RE
yading@10 4346 .IP "\fBuse_wallclock_as_timestamps\fR \fIinteger\fR \fB(\fR\fIinput\fR\fB)\fR" 4
yading@10 4347 .IX Item "use_wallclock_as_timestamps integer (input)"
yading@10 4348 Use wallclock as timestamps.
yading@10 4349 .IP "\fBavoid_negative_ts\fR \fIinteger\fR \fB(\fR\fIoutput\fR\fB)\fR" 4
yading@10 4350 .IX Item "avoid_negative_ts integer (output)"
yading@10 4351 Shift timestamps to make them positive. A value of 1 enables shifting,
yading@10 4352 a value of 0 disables it, the default value of \-1 enables shifting
yading@10 4353 when required by the target format.
yading@10 4354 .Sp
yading@10 4355 When shifting is enabled, all output timestamps are shifted by the
yading@10 4356 same amount. Audio, video, and subtitles desynching and relative
yading@10 4357 timestamp differences are preserved compared to how they would have
yading@10 4358 been without shifting.
yading@10 4359 .Sp
yading@10 4360 Also note that this affects only leading negative timestamps, and not
yading@10 4361 non-monotonic negative timestamps.
yading@10 4362 .IP "\fBflush_packets\fR \fIinteger\fR \fB(\fR\fIoutput\fR\fB)\fR" 4
yading@10 4363 .IX Item "flush_packets integer (output)"
yading@10 4364 Flush the underlying I/O stream after each packet. Default 1 enables it, and
yading@10 4365 has the effect of reducing the latency; 0 disables it and may slightly
yading@10 4366 increase performance in some cases.
yading@10 4367 .SH "DEMUXERS"
yading@10 4368 .IX Header "DEMUXERS"
yading@10 4369 Demuxers are configured elements in FFmpeg which allow to read the
yading@10 4370 multimedia streams from a particular type of file.
yading@10 4371 .PP
yading@10 4372 When you configure your FFmpeg build, all the supported demuxers
yading@10 4373 are enabled by default. You can list all available ones using the
yading@10 4374 configure option \f(CW\*(C`\-\-list\-demuxers\*(C'\fR.
yading@10 4375 .PP
yading@10 4376 You can disable all the demuxers using the configure option
yading@10 4377 \&\f(CW\*(C`\-\-disable\-demuxers\*(C'\fR, and selectively enable a single demuxer with
yading@10 4378 the option \f(CW\*(C`\-\-enable\-demuxer=\f(CIDEMUXER\f(CW\*(C'\fR, or disable it
yading@10 4379 with the option \f(CW\*(C`\-\-disable\-demuxer=\f(CIDEMUXER\f(CW\*(C'\fR.
yading@10 4380 .PP
yading@10 4381 The option \f(CW\*(C`\-formats\*(C'\fR of the ff* tools will display the list of
yading@10 4382 enabled demuxers.
yading@10 4383 .PP
yading@10 4384 The description of some of the currently available demuxers follows.
yading@10 4385 .SS "applehttp"
yading@10 4386 .IX Subsection "applehttp"
yading@10 4387 Apple \s-1HTTP\s0 Live Streaming demuxer.
yading@10 4388 .PP
yading@10 4389 This demuxer presents all AVStreams from all variant streams.
yading@10 4390 The id field is set to the bitrate variant index number. By setting
yading@10 4391 the discard flags on AVStreams (by pressing 'a' or 'v' in ffplay),
yading@10 4392 the caller can decide which variant streams to actually receive.
yading@10 4393 The total bitrate of the variant that the stream belongs to is
yading@10 4394 available in a metadata key named \*(L"variant_bitrate\*(R".
yading@10 4395 .SS "concat"
yading@10 4396 .IX Subsection "concat"
yading@10 4397 Virtual concatenation script demuxer.
yading@10 4398 .PP
yading@10 4399 This demuxer reads a list of files and other directives from a text file and
yading@10 4400 demuxes them one after the other, as if all their packet had been muxed
yading@10 4401 together.
yading@10 4402 .PP
yading@10 4403 The timestamps in the files are adjusted so that the first file starts at 0
yading@10 4404 and each next file starts where the previous one finishes. Note that it is
yading@10 4405 done globally and may cause gaps if all streams do not have exactly the same
yading@10 4406 length.
yading@10 4407 .PP
yading@10 4408 All files must have the same streams (same codecs, same time base, etc.).
yading@10 4409 .PP
yading@10 4410 The duration of each file is used to adjust the timestamps of the next file:
yading@10 4411 if the duration is incorrect (because it was computed using the bit-rate or
yading@10 4412 because the file is truncated, for example), it can cause artifacts. The
yading@10 4413 \&\f(CW\*(C`duration\*(C'\fR directive can be used to override the duration stored in
yading@10 4414 each file.
yading@10 4415 .PP
yading@10 4416 \fISyntax\fR
yading@10 4417 .IX Subsection "Syntax"
yading@10 4418 .PP
yading@10 4419 The script is a text file in extended-ASCII, with one directive per line.
yading@10 4420 Empty lines, leading spaces and lines starting with '#' are ignored. The
yading@10 4421 following directive is recognized:
yading@10 4422 .ie n .IP "\fB\fB""file \f(BIpath\f(CB""\fB\fR" 4
yading@10 4423 .el .IP "\fB\f(CBfile \f(CBpath\f(CB\fB\fR" 4
yading@10 4424 .IX Item "file path"
yading@10 4425 Path to a file to read; special characters and spaces must be escaped with
yading@10 4426 backslash or single quotes.
yading@10 4427 .Sp
yading@10 4428 All subsequent directives apply to that file.
yading@10 4429 .ie n .IP "\fB\fB""ffconcat version 1.0""\fB\fR" 4
yading@10 4430 .el .IP "\fB\f(CBffconcat version 1.0\fB\fR" 4
yading@10 4431 .IX Item "ffconcat version 1.0"
yading@10 4432 Identify the script type and version. It also sets the \fBsafe\fR option
yading@10 4433 to 1 if it was to its default \-1.
yading@10 4434 .Sp
yading@10 4435 To make FFmpeg recognize the format automatically, this directive must
yading@10 4436 appears exactly as is (no extra space or byte-order-mark) on the very first
yading@10 4437 line of the script.
yading@10 4438 .ie n .IP "\fB\fB""duration \f(BIdur\f(CB""\fB\fR" 4
yading@10 4439 .el .IP "\fB\f(CBduration \f(CBdur\f(CB\fB\fR" 4
yading@10 4440 .IX Item "duration dur"
yading@10 4441 Duration of the file. This information can be specified from the file;
yading@10 4442 specifying it here may be more efficient or help if the information from the
yading@10 4443 file is not available or accurate.
yading@10 4444 .Sp
yading@10 4445 If the duration is set for all files, then it is possible to seek in the
yading@10 4446 whole concatenated video.
yading@10 4447 .PP
yading@10 4448 \fIOptions\fR
yading@10 4449 .IX Subsection "Options"
yading@10 4450 .PP
yading@10 4451 This demuxer accepts the following option:
yading@10 4452 .IP "\fBsafe\fR" 4
yading@10 4453 .IX Item "safe"
yading@10 4454 If set to 1, reject unsafe file paths. A file path is considered safe if it
yading@10 4455 does not contain a protocol specification and is relative and all components
yading@10 4456 only contain characters from the portable character set (letters, digits,
yading@10 4457 period, underscore and hyphen) and have no period at the beginning of a
yading@10 4458 component.
yading@10 4459 .Sp
yading@10 4460 If set to 0, any file name is accepted.
yading@10 4461 .Sp
yading@10 4462 The default is \-1, it is equivalent to 1 if the format was automatically
yading@10 4463 probed and 0 otherwise.
yading@10 4464 .SS "libquvi"
yading@10 4465 .IX Subsection "libquvi"
yading@10 4466 Play media from Internet services using the quvi project.
yading@10 4467 .PP
yading@10 4468 The demuxer accepts a \fBformat\fR option to request a specific quality. It
yading@10 4469 is by default set to \fIbest\fR.
yading@10 4470 .PP
yading@10 4471 See <\fBhttp://quvi.sourceforge.net/\fR> for more information.
yading@10 4472 .PP
yading@10 4473 FFmpeg needs to be built with \f(CW\*(C`\-\-enable\-libquvi\*(C'\fR for this demuxer to be
yading@10 4474 enabled.
yading@10 4475 .SS "image2"
yading@10 4476 .IX Subsection "image2"
yading@10 4477 Image file demuxer.
yading@10 4478 .PP
yading@10 4479 This demuxer reads from a list of image files specified by a pattern.
yading@10 4480 The syntax and meaning of the pattern is specified by the
yading@10 4481 option \fIpattern_type\fR.
yading@10 4482 .PP
yading@10 4483 The pattern may contain a suffix which is used to automatically
yading@10 4484 determine the format of the images contained in the files.
yading@10 4485 .PP
yading@10 4486 The size, the pixel format, and the format of each image must be the
yading@10 4487 same for all the files in the sequence.
yading@10 4488 .PP
yading@10 4489 This demuxer accepts the following options:
yading@10 4490 .IP "\fBframerate\fR" 4
yading@10 4491 .IX Item "framerate"
yading@10 4492 Set the frame rate for the video stream. It defaults to 25.
yading@10 4493 .IP "\fBloop\fR" 4
yading@10 4494 .IX Item "loop"
yading@10 4495 If set to 1, loop over the input. Default value is 0.
yading@10 4496 .IP "\fBpattern_type\fR" 4
yading@10 4497 .IX Item "pattern_type"
yading@10 4498 Select the pattern type used to interpret the provided filename.
yading@10 4499 .Sp
yading@10 4500 \&\fIpattern_type\fR accepts one of the following values.
yading@10 4501 .RS 4
yading@10 4502 .IP "\fBsequence\fR" 4
yading@10 4503 .IX Item "sequence"
yading@10 4504 Select a sequence pattern type, used to specify a sequence of files
yading@10 4505 indexed by sequential numbers.
yading@10 4506 .Sp
yading@10 4507 A sequence pattern may contain the string \*(L"%d\*(R" or "%0\fIN\fRd\*(L", which
yading@10 4508 specifies the position of the characters representing a sequential
yading@10 4509 number in each filename matched by the pattern. If the form
yading@10 4510 \&\*(R"%d0\fIN\fRd" is used, the string representing the number in each
yading@10 4511 filename is 0\-padded and \fIN\fR is the total number of 0\-padded
yading@10 4512 digits representing the number. The literal character '%' can be
yading@10 4513 specified in the pattern with the string \*(L"%%\*(R".
yading@10 4514 .Sp
yading@10 4515 If the sequence pattern contains \*(L"%d\*(R" or "%0\fIN\fRd", the first filename of
yading@10 4516 the file list specified by the pattern must contain a number
yading@10 4517 inclusively contained between \fIstart_number\fR and
yading@10 4518 \&\fIstart_number\fR+\fIstart_number_range\fR\-1, and all the following
yading@10 4519 numbers must be sequential.
yading@10 4520 .Sp
yading@10 4521 For example the pattern \*(L"img\-%03d.bmp\*(R" will match a sequence of
yading@10 4522 filenames of the form \fIimg\-001.bmp\fR, \fIimg\-002.bmp\fR, ...,
yading@10 4523 \&\fIimg\-010.bmp\fR, etc.; the pattern \*(L"i%%m%%g\-%d.jpg\*(R" will match a
yading@10 4524 sequence of filenames of the form \fIi%m%g\-1.jpg\fR,
yading@10 4525 \&\fIi%m%g\-2.jpg\fR, ..., \fIi%m%g\-10.jpg\fR, etc.
yading@10 4526 .Sp
yading@10 4527 Note that the pattern must not necessarily contain \*(L"%d\*(R" or
yading@10 4528 "%0\fIN\fRd", for example to convert a single image file
yading@10 4529 \&\fIimg.jpeg\fR you can employ the command:
yading@10 4530 .Sp
yading@10 4531 .Vb 1
yading@10 4532 \& ffmpeg \-i img.jpeg img.png
yading@10 4533 .Ve
yading@10 4534 .IP "\fBglob\fR" 4
yading@10 4535 .IX Item "glob"
yading@10 4536 Select a glob wildcard pattern type.
yading@10 4537 .Sp
yading@10 4538 The pattern is interpreted like a \f(CW\*(C`glob()\*(C'\fR pattern. This is only
yading@10 4539 selectable if libavformat was compiled with globbing support.
yading@10 4540 .IP "\fBglob_sequence\fR \fI(deprecated, will be removed)\fR" 4
yading@10 4541 .IX Item "glob_sequence (deprecated, will be removed)"
yading@10 4542 Select a mixed glob wildcard/sequence pattern.
yading@10 4543 .Sp
yading@10 4544 If your version of libavformat was compiled with globbing support, and
yading@10 4545 the provided pattern contains at least one glob meta character among
yading@10 4546 \&\f(CW\*(C`%*?[]{}\*(C'\fR that is preceded by an unescaped \*(L"%\*(R", the pattern is
yading@10 4547 interpreted like a \f(CW\*(C`glob()\*(C'\fR pattern, otherwise it is interpreted
yading@10 4548 like a sequence pattern.
yading@10 4549 .Sp
yading@10 4550 All glob special characters \f(CW\*(C`%*?[]{}\*(C'\fR must be prefixed
yading@10 4551 with \*(L"%\*(R". To escape a literal \*(L"%\*(R" you shall use \*(L"%%\*(R".
yading@10 4552 .Sp
yading@10 4553 For example the pattern \f(CW\*(C`foo\-%*.jpeg\*(C'\fR will match all the
yading@10 4554 filenames prefixed by \*(L"foo\-\*(R" and terminating with \*(L".jpeg\*(R", and
yading@10 4555 \&\f(CW\*(C`foo\-%?%?%?.jpeg\*(C'\fR will match all the filenames prefixed with
yading@10 4556 \&\*(L"foo\-\*(R", followed by a sequence of three characters, and terminating
yading@10 4557 with \*(L".jpeg\*(R".
yading@10 4558 .Sp
yading@10 4559 This pattern type is deprecated in favor of \fIglob\fR and
yading@10 4560 \&\fIsequence\fR.
yading@10 4561 .RE
yading@10 4562 .RS 4
yading@10 4563 .Sp
yading@10 4564 Default value is \fIglob_sequence\fR.
yading@10 4565 .RE
yading@10 4566 .IP "\fBpixel_format\fR" 4
yading@10 4567 .IX Item "pixel_format"
yading@10 4568 Set the pixel format of the images to read. If not specified the pixel
yading@10 4569 format is guessed from the first image file in the sequence.
yading@10 4570 .IP "\fBstart_number\fR" 4
yading@10 4571 .IX Item "start_number"
yading@10 4572 Set the index of the file matched by the image file pattern to start
yading@10 4573 to read from. Default value is 0.
yading@10 4574 .IP "\fBstart_number_range\fR" 4
yading@10 4575 .IX Item "start_number_range"
yading@10 4576 Set the index interval range to check when looking for the first image
yading@10 4577 file in the sequence, starting from \fIstart_number\fR. Default value
yading@10 4578 is 5.
yading@10 4579 .IP "\fBvideo_size\fR" 4
yading@10 4580 .IX Item "video_size"
yading@10 4581 Set the video size of the images to read. If not specified the video
yading@10 4582 size is guessed from the first image file in the sequence.
yading@10 4583 .PP
yading@10 4584 \fIExamples\fR
yading@10 4585 .IX Subsection "Examples"
yading@10 4586 .IP "\(bu" 4
yading@10 4587 Use \fBffmpeg\fR for creating a video from the images in the file
yading@10 4588 sequence \fIimg\-001.jpeg\fR, \fIimg\-002.jpeg\fR, ..., assuming an
yading@10 4589 input frame rate of 10 frames per second:
yading@10 4590 .Sp
yading@10 4591 .Vb 1
yading@10 4592 \& ffmpeg \-i \*(Aqimg\-%03d.jpeg\*(Aq \-r 10 out.mkv
yading@10 4593 .Ve
yading@10 4594 .IP "\(bu" 4
yading@10 4595 As above, but start by reading from a file with index 100 in the sequence:
yading@10 4596 .Sp
yading@10 4597 .Vb 1
yading@10 4598 \& ffmpeg \-start_number 100 \-i \*(Aqimg\-%03d.jpeg\*(Aq \-r 10 out.mkv
yading@10 4599 .Ve
yading@10 4600 .IP "\(bu" 4
yading@10 4601 Read images matching the \*(L"*.png\*(R" glob pattern , that is all the files
yading@10 4602 terminating with the \*(L".png\*(R" suffix:
yading@10 4603 .Sp
yading@10 4604 .Vb 1
yading@10 4605 \& ffmpeg \-pattern_type glob \-i "*.png" \-r 10 out.mkv
yading@10 4606 .Ve
yading@10 4607 .SS "rawvideo"
yading@10 4608 .IX Subsection "rawvideo"
yading@10 4609 Raw video demuxer.
yading@10 4610 .PP
yading@10 4611 This demuxer allows to read raw video data. Since there is no header
yading@10 4612 specifying the assumed video parameters, the user must specify them
yading@10 4613 in order to be able to decode the data correctly.
yading@10 4614 .PP
yading@10 4615 This demuxer accepts the following options:
yading@10 4616 .IP "\fBframerate\fR" 4
yading@10 4617 .IX Item "framerate"
yading@10 4618 Set input video frame rate. Default value is 25.
yading@10 4619 .IP "\fBpixel_format\fR" 4
yading@10 4620 .IX Item "pixel_format"
yading@10 4621 Set the input video pixel format. Default value is \f(CW\*(C`yuv420p\*(C'\fR.
yading@10 4622 .IP "\fBvideo_size\fR" 4
yading@10 4623 .IX Item "video_size"
yading@10 4624 Set the input video size. This value must be specified explicitly.
yading@10 4625 .PP
yading@10 4626 For example to read a rawvideo file \fIinput.raw\fR with
yading@10 4627 \&\fBffplay\fR, assuming a pixel format of \f(CW\*(C`rgb24\*(C'\fR, a video
yading@10 4628 size of \f(CW\*(C`320x240\*(C'\fR, and a frame rate of 10 images per second, use
yading@10 4629 the command:
yading@10 4630 .PP
yading@10 4631 .Vb 1
yading@10 4632 \& ffplay \-f rawvideo \-pixel_format rgb24 \-video_size 320x240 \-framerate 10 input.raw
yading@10 4633 .Ve
yading@10 4634 .SS "sbg"
yading@10 4635 .IX Subsection "sbg"
yading@10 4636 SBaGen script demuxer.
yading@10 4637 .PP
yading@10 4638 This demuxer reads the script language used by SBaGen
yading@10 4639 <\fBhttp://uazu.net/sbagen/\fR> to generate binaural beats sessions. A \s-1SBG\s0
yading@10 4640 script looks like that:
yading@10 4641 .PP
yading@10 4642 .Vb 9
yading@10 4643 \& \-SE
yading@10 4644 \& a: 300\-2.5/3 440+4.5/0
yading@10 4645 \& b: 300\-2.5/0 440+4.5/3
yading@10 4646 \& off: \-
yading@10 4647 \& NOW == a
yading@10 4648 \& +0:07:00 == b
yading@10 4649 \& +0:14:00 == a
yading@10 4650 \& +0:21:00 == b
yading@10 4651 \& +0:30:00 off
yading@10 4652 .Ve
yading@10 4653 .PP
yading@10 4654 A \s-1SBG\s0 script can mix absolute and relative timestamps. If the script uses
yading@10 4655 either only absolute timestamps (including the script start time) or only
yading@10 4656 relative ones, then its layout is fixed, and the conversion is
yading@10 4657 straightforward. On the other hand, if the script mixes both kind of
yading@10 4658 timestamps, then the \fI\s-1NOW\s0\fR reference for relative timestamps will be
yading@10 4659 taken from the current time of day at the time the script is read, and the
yading@10 4660 script layout will be frozen according to that reference. That means that if
yading@10 4661 the script is directly played, the actual times will match the absolute
yading@10 4662 timestamps up to the sound controller's clock accuracy, but if the user
yading@10 4663 somehow pauses the playback or seeks, all times will be shifted accordingly.
yading@10 4664 .SS "tedcaptions"
yading@10 4665 .IX Subsection "tedcaptions"
yading@10 4666 \&\s-1JSON\s0 captions used for <\fBhttp://www.ted.com/\fR>.
yading@10 4667 .PP
yading@10 4668 \&\s-1TED\s0 does not provide links to the captions, but they can be guessed from the
yading@10 4669 page. The file \fItools/bookmarklets.html\fR from the FFmpeg source tree
yading@10 4670 contains a bookmarklet to expose them.
yading@10 4671 .PP
yading@10 4672 This demuxer accepts the following option:
yading@10 4673 .IP "\fBstart_time\fR" 4
yading@10 4674 .IX Item "start_time"
yading@10 4675 Set the start time of the \s-1TED\s0 talk, in milliseconds. The default is 15000
yading@10 4676 (15s). It is used to sync the captions with the downloadable videos, because
yading@10 4677 they include a 15s intro.
yading@10 4678 .PP
yading@10 4679 Example: convert the captions to a format most players understand:
yading@10 4680 .PP
yading@10 4681 .Vb 1
yading@10 4682 \& ffmpeg \-i http://www.ted.com/talks/subtitles/id/1/lang/en talk1\-en.srt
yading@10 4683 .Ve
yading@10 4684 .SH "MUXERS"
yading@10 4685 .IX Header "MUXERS"
yading@10 4686 Muxers are configured elements in FFmpeg which allow writing
yading@10 4687 multimedia streams to a particular type of file.
yading@10 4688 .PP
yading@10 4689 When you configure your FFmpeg build, all the supported muxers
yading@10 4690 are enabled by default. You can list all available muxers using the
yading@10 4691 configure option \f(CW\*(C`\-\-list\-muxers\*(C'\fR.
yading@10 4692 .PP
yading@10 4693 You can disable all the muxers with the configure option
yading@10 4694 \&\f(CW\*(C`\-\-disable\-muxers\*(C'\fR and selectively enable / disable single muxers
yading@10 4695 with the options \f(CW\*(C`\-\-enable\-muxer=\f(CIMUXER\f(CW\*(C'\fR /
yading@10 4696 \&\f(CW\*(C`\-\-disable\-muxer=\f(CIMUXER\f(CW\*(C'\fR.
yading@10 4697 .PP
yading@10 4698 The option \f(CW\*(C`\-formats\*(C'\fR of the ff* tools will display the list of
yading@10 4699 enabled muxers.
yading@10 4700 .PP
yading@10 4701 A description of some of the currently available muxers follows.
yading@10 4702 .SS "crc"
yading@10 4703 .IX Subsection "crc"
yading@10 4704 \&\s-1CRC\s0 (Cyclic Redundancy Check) testing format.
yading@10 4705 .PP
yading@10 4706 This muxer computes and prints the Adler\-32 \s-1CRC\s0 of all the input audio
yading@10 4707 and video frames. By default audio frames are converted to signed
yading@10 4708 16\-bit raw audio and video frames to raw video before computing the
yading@10 4709 \&\s-1CRC\s0.
yading@10 4710 .PP
yading@10 4711 The output of the muxer consists of a single line of the form:
yading@10 4712 CRC=0x\fI\s-1CRC\s0\fR, where \fI\s-1CRC\s0\fR is a hexadecimal number 0\-padded to
yading@10 4713 8 digits containing the \s-1CRC\s0 for all the decoded input frames.
yading@10 4714 .PP
yading@10 4715 For example to compute the \s-1CRC\s0 of the input, and store it in the file
yading@10 4716 \&\fIout.crc\fR:
yading@10 4717 .PP
yading@10 4718 .Vb 1
yading@10 4719 \& ffmpeg \-i INPUT \-f crc out.crc
yading@10 4720 .Ve
yading@10 4721 .PP
yading@10 4722 You can print the \s-1CRC\s0 to stdout with the command:
yading@10 4723 .PP
yading@10 4724 .Vb 1
yading@10 4725 \& ffmpeg \-i INPUT \-f crc \-
yading@10 4726 .Ve
yading@10 4727 .PP
yading@10 4728 You can select the output format of each frame with \fBffmpeg\fR by
yading@10 4729 specifying the audio and video codec and format. For example to
yading@10 4730 compute the \s-1CRC\s0 of the input audio converted to \s-1PCM\s0 unsigned 8\-bit
yading@10 4731 and the input video converted to \s-1MPEG\-2\s0 video, use the command:
yading@10 4732 .PP
yading@10 4733 .Vb 1
yading@10 4734 \& ffmpeg \-i INPUT \-c:a pcm_u8 \-c:v mpeg2video \-f crc \-
yading@10 4735 .Ve
yading@10 4736 .PP
yading@10 4737 See also the framecrc muxer.
yading@10 4738 .SS "framecrc"
yading@10 4739 .IX Subsection "framecrc"
yading@10 4740 Per-packet \s-1CRC\s0 (Cyclic Redundancy Check) testing format.
yading@10 4741 .PP
yading@10 4742 This muxer computes and prints the Adler\-32 \s-1CRC\s0 for each audio
yading@10 4743 and video packet. By default audio frames are converted to signed
yading@10 4744 16\-bit raw audio and video frames to raw video before computing the
yading@10 4745 \&\s-1CRC\s0.
yading@10 4746 .PP
yading@10 4747 The output of the muxer consists of a line for each audio and video
yading@10 4748 packet of the form:
yading@10 4749 .PP
yading@10 4750 .Vb 1
yading@10 4751 \& <stream_index>, <packet_dts>, <packet_pts>, <packet_duration>, <packet_size>, 0x<CRC>
yading@10 4752 .Ve
yading@10 4753 .PP
yading@10 4754 \&\fI\s-1CRC\s0\fR is a hexadecimal number 0\-padded to 8 digits containing the
yading@10 4755 \&\s-1CRC\s0 of the packet.
yading@10 4756 .PP
yading@10 4757 For example to compute the \s-1CRC\s0 of the audio and video frames in
yading@10 4758 \&\fI\s-1INPUT\s0\fR, converted to raw audio and video packets, and store it
yading@10 4759 in the file \fIout.crc\fR:
yading@10 4760 .PP
yading@10 4761 .Vb 1
yading@10 4762 \& ffmpeg \-i INPUT \-f framecrc out.crc
yading@10 4763 .Ve
yading@10 4764 .PP
yading@10 4765 To print the information to stdout, use the command:
yading@10 4766 .PP
yading@10 4767 .Vb 1
yading@10 4768 \& ffmpeg \-i INPUT \-f framecrc \-
yading@10 4769 .Ve
yading@10 4770 .PP
yading@10 4771 With \fBffmpeg\fR, you can select the output format to which the
yading@10 4772 audio and video frames are encoded before computing the \s-1CRC\s0 for each
yading@10 4773 packet by specifying the audio and video codec. For example, to
yading@10 4774 compute the \s-1CRC\s0 of each decoded input audio frame converted to \s-1PCM\s0
yading@10 4775 unsigned 8\-bit and of each decoded input video frame converted to
yading@10 4776 \&\s-1MPEG\-2\s0 video, use the command:
yading@10 4777 .PP
yading@10 4778 .Vb 1
yading@10 4779 \& ffmpeg \-i INPUT \-c:a pcm_u8 \-c:v mpeg2video \-f framecrc \-
yading@10 4780 .Ve
yading@10 4781 .PP
yading@10 4782 See also the crc muxer.
yading@10 4783 .SS "framemd5"
yading@10 4784 .IX Subsection "framemd5"
yading@10 4785 Per-packet \s-1MD5\s0 testing format.
yading@10 4786 .PP
yading@10 4787 This muxer computes and prints the \s-1MD5\s0 hash for each audio
yading@10 4788 and video packet. By default audio frames are converted to signed
yading@10 4789 16\-bit raw audio and video frames to raw video before computing the
yading@10 4790 hash.
yading@10 4791 .PP
yading@10 4792 The output of the muxer consists of a line for each audio and video
yading@10 4793 packet of the form:
yading@10 4794 .PP
yading@10 4795 .Vb 1
yading@10 4796 \& <stream_index>, <packet_dts>, <packet_pts>, <packet_duration>, <packet_size>, <MD5>
yading@10 4797 .Ve
yading@10 4798 .PP
yading@10 4799 \&\fI\s-1MD5\s0\fR is a hexadecimal number representing the computed \s-1MD5\s0 hash
yading@10 4800 for the packet.
yading@10 4801 .PP
yading@10 4802 For example to compute the \s-1MD5\s0 of the audio and video frames in
yading@10 4803 \&\fI\s-1INPUT\s0\fR, converted to raw audio and video packets, and store it
yading@10 4804 in the file \fIout.md5\fR:
yading@10 4805 .PP
yading@10 4806 .Vb 1
yading@10 4807 \& ffmpeg \-i INPUT \-f framemd5 out.md5
yading@10 4808 .Ve
yading@10 4809 .PP
yading@10 4810 To print the information to stdout, use the command:
yading@10 4811 .PP
yading@10 4812 .Vb 1
yading@10 4813 \& ffmpeg \-i INPUT \-f framemd5 \-
yading@10 4814 .Ve
yading@10 4815 .PP
yading@10 4816 See also the md5 muxer.
yading@10 4817 .SS "hls"
yading@10 4818 .IX Subsection "hls"
yading@10 4819 Apple \s-1HTTP\s0 Live Streaming muxer that segments MPEG-TS according to
yading@10 4820 the \s-1HTTP\s0 Live Streaming specification.
yading@10 4821 .PP
yading@10 4822 It creates a playlist file and numbered segment files. The output
yading@10 4823 filename specifies the playlist filename; the segment filenames
yading@10 4824 receive the same basename as the playlist, a sequential number and
yading@10 4825 a .ts extension.
yading@10 4826 .PP
yading@10 4827 .Vb 1
yading@10 4828 \& ffmpeg \-i in.nut out.m3u8
yading@10 4829 .Ve
yading@10 4830 .IP "\fB\-hls_time\fR \fIseconds\fR" 4
yading@10 4831 .IX Item "-hls_time seconds"
yading@10 4832 Set the segment length in seconds.
yading@10 4833 .IP "\fB\-hls_list_size\fR \fIsize\fR" 4
yading@10 4834 .IX Item "-hls_list_size size"
yading@10 4835 Set the maximum number of playlist entries.
yading@10 4836 .IP "\fB\-hls_wrap\fR \fIwrap\fR" 4
yading@10 4837 .IX Item "-hls_wrap wrap"
yading@10 4838 Set the number after which index wraps.
yading@10 4839 .IP "\fB\-start_number\fR \fInumber\fR" 4
yading@10 4840 .IX Item "-start_number number"
yading@10 4841 Start the sequence from \fInumber\fR.
yading@10 4842 .SS "ico"
yading@10 4843 .IX Subsection "ico"
yading@10 4844 \&\s-1ICO\s0 file muxer.
yading@10 4845 .PP
yading@10 4846 Microsoft's icon file format (\s-1ICO\s0) has some strict limitations that should be noted:
yading@10 4847 .IP "\(bu" 4
yading@10 4848 Size cannot exceed 256 pixels in any dimension
yading@10 4849 .IP "\(bu" 4
yading@10 4850 Only \s-1BMP\s0 and \s-1PNG\s0 images can be stored
yading@10 4851 .IP "\(bu" 4
yading@10 4852 If a \s-1BMP\s0 image is used, it must be one of the following pixel formats:
yading@10 4853 .Sp
yading@10 4854 .Vb 7
yading@10 4855 \& BMP Bit Depth FFmpeg Pixel Format
yading@10 4856 \& 1bit pal8
yading@10 4857 \& 4bit pal8
yading@10 4858 \& 8bit pal8
yading@10 4859 \& 16bit rgb555le
yading@10 4860 \& 24bit bgr24
yading@10 4861 \& 32bit bgra
yading@10 4862 .Ve
yading@10 4863 .IP "\(bu" 4
yading@10 4864 If a \s-1BMP\s0 image is used, it must use the \s-1BITMAPINFOHEADER\s0 \s-1DIB\s0 header
yading@10 4865 .IP "\(bu" 4
yading@10 4866 If a \s-1PNG\s0 image is used, it must use the rgba pixel format
yading@10 4867 .SS "image2"
yading@10 4868 .IX Subsection "image2"
yading@10 4869 Image file muxer.
yading@10 4870 .PP
yading@10 4871 The image file muxer writes video frames to image files.
yading@10 4872 .PP
yading@10 4873 The output filenames are specified by a pattern, which can be used to
yading@10 4874 produce sequentially numbered series of files.
yading@10 4875 The pattern may contain the string \*(L"%d\*(R" or "%0\fIN\fRd\*(L", this string
yading@10 4876 specifies the position of the characters representing a numbering in
yading@10 4877 the filenames. If the form \*(R"%0\fIN\fRd" is used, the string
yading@10 4878 representing the number in each filename is 0\-padded to \fIN\fR
yading@10 4879 digits. The literal character '%' can be specified in the pattern with
yading@10 4880 the string \*(L"%%\*(R".
yading@10 4881 .PP
yading@10 4882 If the pattern contains \*(L"%d\*(R" or "%0\fIN\fRd", the first filename of
yading@10 4883 the file list specified will contain the number 1, all the following
yading@10 4884 numbers will be sequential.
yading@10 4885 .PP
yading@10 4886 The pattern may contain a suffix which is used to automatically
yading@10 4887 determine the format of the image files to write.
yading@10 4888 .PP
yading@10 4889 For example the pattern \*(L"img\-%03d.bmp\*(R" will specify a sequence of
yading@10 4890 filenames of the form \fIimg\-001.bmp\fR, \fIimg\-002.bmp\fR, ...,
yading@10 4891 \&\fIimg\-010.bmp\fR, etc.
yading@10 4892 The pattern \*(L"img%%\-%d.jpg\*(R" will specify a sequence of filenames of the
yading@10 4893 form \fIimg%\-1.jpg\fR, \fIimg%\-2.jpg\fR, ..., \fIimg%\-10.jpg\fR,
yading@10 4894 etc.
yading@10 4895 .PP
yading@10 4896 The following example shows how to use \fBffmpeg\fR for creating a
yading@10 4897 sequence of files \fIimg\-001.jpeg\fR, \fIimg\-002.jpeg\fR, ...,
yading@10 4898 taking one image every second from the input video:
yading@10 4899 .PP
yading@10 4900 .Vb 1
yading@10 4901 \& ffmpeg \-i in.avi \-vsync 1 \-r 1 \-f image2 \*(Aqimg\-%03d.jpeg\*(Aq
yading@10 4902 .Ve
yading@10 4903 .PP
yading@10 4904 Note that with \fBffmpeg\fR, if the format is not specified with the
yading@10 4905 \&\f(CW\*(C`\-f\*(C'\fR option and the output filename specifies an image file
yading@10 4906 format, the image2 muxer is automatically selected, so the previous
yading@10 4907 command can be written as:
yading@10 4908 .PP
yading@10 4909 .Vb 1
yading@10 4910 \& ffmpeg \-i in.avi \-vsync 1 \-r 1 \*(Aqimg\-%03d.jpeg\*(Aq
yading@10 4911 .Ve
yading@10 4912 .PP
yading@10 4913 Note also that the pattern must not necessarily contain \*(L"%d\*(R" or
yading@10 4914 "%0\fIN\fRd", for example to create a single image file
yading@10 4915 \&\fIimg.jpeg\fR from the input video you can employ the command:
yading@10 4916 .PP
yading@10 4917 .Vb 1
yading@10 4918 \& ffmpeg \-i in.avi \-f image2 \-frames:v 1 img.jpeg
yading@10 4919 .Ve
yading@10 4920 .IP "\fBstart_number\fR \fInumber\fR" 4
yading@10 4921 .IX Item "start_number number"
yading@10 4922 Start the sequence from \fInumber\fR. Default value is 1. Must be a
yading@10 4923 positive number.
yading@10 4924 .IP "\fB\-update\fR \fInumber\fR" 4
yading@10 4925 .IX Item "-update number"
yading@10 4926 If \fInumber\fR is nonzero, the filename will always be interpreted as just a
yading@10 4927 filename, not a pattern, and this file will be continuously overwritten with new
yading@10 4928 images.
yading@10 4929 .PP
yading@10 4930 The image muxer supports the .Y.U.V image file format. This format is
yading@10 4931 special in that that each image frame consists of three files, for
yading@10 4932 each of the \s-1YUV420P\s0 components. To read or write this image file format,
yading@10 4933 specify the name of the '.Y' file. The muxer will automatically open the
yading@10 4934 \&'.U' and '.V' files as required.
yading@10 4935 .SS "md5"
yading@10 4936 .IX Subsection "md5"
yading@10 4937 \&\s-1MD5\s0 testing format.
yading@10 4938 .PP
yading@10 4939 This muxer computes and prints the \s-1MD5\s0 hash of all the input audio
yading@10 4940 and video frames. By default audio frames are converted to signed
yading@10 4941 16\-bit raw audio and video frames to raw video before computing the
yading@10 4942 hash.
yading@10 4943 .PP
yading@10 4944 The output of the muxer consists of a single line of the form:
yading@10 4945 MD5=\fI\s-1MD5\s0\fR, where \fI\s-1MD5\s0\fR is a hexadecimal number representing
yading@10 4946 the computed \s-1MD5\s0 hash.
yading@10 4947 .PP
yading@10 4948 For example to compute the \s-1MD5\s0 hash of the input converted to raw
yading@10 4949 audio and video, and store it in the file \fIout.md5\fR:
yading@10 4950 .PP
yading@10 4951 .Vb 1
yading@10 4952 \& ffmpeg \-i INPUT \-f md5 out.md5
yading@10 4953 .Ve
yading@10 4954 .PP
yading@10 4955 You can print the \s-1MD5\s0 to stdout with the command:
yading@10 4956 .PP
yading@10 4957 .Vb 1
yading@10 4958 \& ffmpeg \-i INPUT \-f md5 \-
yading@10 4959 .Ve
yading@10 4960 .PP
yading@10 4961 See also the framemd5 muxer.
yading@10 4962 .SS "\s-1MOV/MP4/ISMV\s0"
yading@10 4963 .IX Subsection "MOV/MP4/ISMV"
yading@10 4964 The mov/mp4/ismv muxer supports fragmentation. Normally, a \s-1MOV/MP4\s0
yading@10 4965 file has all the metadata about all packets stored in one location
yading@10 4966 (written at the end of the file, it can be moved to the start for
yading@10 4967 better playback by adding \fIfaststart\fR to the \fImovflags\fR, or
yading@10 4968 using the \fBqt-faststart\fR tool). A fragmented
yading@10 4969 file consists of a number of fragments, where packets and metadata
yading@10 4970 about these packets are stored together. Writing a fragmented
yading@10 4971 file has the advantage that the file is decodable even if the
yading@10 4972 writing is interrupted (while a normal \s-1MOV/MP4\s0 is undecodable if
yading@10 4973 it is not properly finished), and it requires less memory when writing
yading@10 4974 very long files (since writing normal \s-1MOV/MP4\s0 files stores info about
yading@10 4975 every single packet in memory until the file is closed). The downside
yading@10 4976 is that it is less compatible with other applications.
yading@10 4977 .PP
yading@10 4978 Fragmentation is enabled by setting one of the AVOptions that define
yading@10 4979 how to cut the file into fragments:
yading@10 4980 .IP "\fB\-moov_size\fR \fIbytes\fR" 4
yading@10 4981 .IX Item "-moov_size bytes"
yading@10 4982 Reserves space for the moov atom at the beginning of the file instead of placing the
yading@10 4983 moov atom at the end. If the space reserved is insufficient, muxing will fail.
yading@10 4984 .IP "\fB\-movflags frag_keyframe\fR" 4
yading@10 4985 .IX Item "-movflags frag_keyframe"
yading@10 4986 Start a new fragment at each video keyframe.
yading@10 4987 .IP "\fB\-frag_duration\fR \fIduration\fR" 4
yading@10 4988 .IX Item "-frag_duration duration"
yading@10 4989 Create fragments that are \fIduration\fR microseconds long.
yading@10 4990 .IP "\fB\-frag_size\fR \fIsize\fR" 4
yading@10 4991 .IX Item "-frag_size size"
yading@10 4992 Create fragments that contain up to \fIsize\fR bytes of payload data.
yading@10 4993 .IP "\fB\-movflags frag_custom\fR" 4
yading@10 4994 .IX Item "-movflags frag_custom"
yading@10 4995 Allow the caller to manually choose when to cut fragments, by
yading@10 4996 calling \f(CW\*(C`av_write_frame(ctx, NULL)\*(C'\fR to write a fragment with
yading@10 4997 the packets written so far. (This is only useful with other
yading@10 4998 applications integrating libavformat, not from \fBffmpeg\fR.)
yading@10 4999 .IP "\fB\-min_frag_duration\fR \fIduration\fR" 4
yading@10 5000 .IX Item "-min_frag_duration duration"
yading@10 5001 Don't create fragments that are shorter than \fIduration\fR microseconds long.
yading@10 5002 .PP
yading@10 5003 If more than one condition is specified, fragments are cut when
yading@10 5004 one of the specified conditions is fulfilled. The exception to this is
yading@10 5005 \&\f(CW\*(C`\-min_frag_duration\*(C'\fR, which has to be fulfilled for any of the other
yading@10 5006 conditions to apply.
yading@10 5007 .PP
yading@10 5008 Additionally, the way the output file is written can be adjusted
yading@10 5009 through a few other options:
yading@10 5010 .IP "\fB\-movflags empty_moov\fR" 4
yading@10 5011 .IX Item "-movflags empty_moov"
yading@10 5012 Write an initial moov atom directly at the start of the file, without
yading@10 5013 describing any samples in it. Generally, an mdat/moov pair is written
yading@10 5014 at the start of the file, as a normal \s-1MOV/MP4\s0 file, containing only
yading@10 5015 a short portion of the file. With this option set, there is no initial
yading@10 5016 mdat atom, and the moov atom only describes the tracks but has
yading@10 5017 a zero duration.
yading@10 5018 .Sp
yading@10 5019 Files written with this option set do not work in QuickTime.
yading@10 5020 This option is implicitly set when writing ismv (Smooth Streaming) files.
yading@10 5021 .IP "\fB\-movflags separate_moof\fR" 4
yading@10 5022 .IX Item "-movflags separate_moof"
yading@10 5023 Write a separate moof (movie fragment) atom for each track. Normally,
yading@10 5024 packets for all tracks are written in a moof atom (which is slightly
yading@10 5025 more efficient), but with this option set, the muxer writes one moof/mdat
yading@10 5026 pair for each track, making it easier to separate tracks.
yading@10 5027 .Sp
yading@10 5028 This option is implicitly set when writing ismv (Smooth Streaming) files.
yading@10 5029 .IP "\fB\-movflags faststart\fR" 4
yading@10 5030 .IX Item "-movflags faststart"
yading@10 5031 Run a second pass moving the moov atom on top of the file. This
yading@10 5032 operation can take a while, and will not work in various situations such
yading@10 5033 as fragmented output, thus it is not enabled by default.
yading@10 5034 .IP "\fB\-movflags rtphint\fR" 4
yading@10 5035 .IX Item "-movflags rtphint"
yading@10 5036 Add \s-1RTP\s0 hinting tracks to the output file.
yading@10 5037 .PP
yading@10 5038 Smooth Streaming content can be pushed in real time to a publishing
yading@10 5039 point on \s-1IIS\s0 with this muxer. Example:
yading@10 5040 .PP
yading@10 5041 .Vb 1
yading@10 5042 \& ffmpeg \-re <<normal input/transcoding options>> \-movflags isml+frag_keyframe \-f ismv http://server/publishingpoint.isml/Streams(Encoder1)
yading@10 5043 .Ve
yading@10 5044 .SS "mpegts"
yading@10 5045 .IX Subsection "mpegts"
yading@10 5046 \&\s-1MPEG\s0 transport stream muxer.
yading@10 5047 .PP
yading@10 5048 This muxer implements \s-1ISO\s0 13818\-1 and part of \s-1ETSI\s0 \s-1EN\s0 300 468.
yading@10 5049 .PP
yading@10 5050 The muxer options are:
yading@10 5051 .IP "\fB\-mpegts_original_network_id\fR \fInumber\fR" 4
yading@10 5052 .IX Item "-mpegts_original_network_id number"
yading@10 5053 Set the original_network_id (default 0x0001). This is unique identifier
yading@10 5054 of a network in \s-1DVB\s0. Its main use is in the unique identification of a
yading@10 5055 service through the path Original_Network_ID, Transport_Stream_ID.
yading@10 5056 .IP "\fB\-mpegts_transport_stream_id\fR \fInumber\fR" 4
yading@10 5057 .IX Item "-mpegts_transport_stream_id number"
yading@10 5058 Set the transport_stream_id (default 0x0001). This identifies a
yading@10 5059 transponder in \s-1DVB\s0.
yading@10 5060 .IP "\fB\-mpegts_service_id\fR \fInumber\fR" 4
yading@10 5061 .IX Item "-mpegts_service_id number"
yading@10 5062 Set the service_id (default 0x0001) also known as program in \s-1DVB\s0.
yading@10 5063 .IP "\fB\-mpegts_pmt_start_pid\fR \fInumber\fR" 4
yading@10 5064 .IX Item "-mpegts_pmt_start_pid number"
yading@10 5065 Set the first \s-1PID\s0 for \s-1PMT\s0 (default 0x1000, max 0x1f00).
yading@10 5066 .IP "\fB\-mpegts_start_pid\fR \fInumber\fR" 4
yading@10 5067 .IX Item "-mpegts_start_pid number"
yading@10 5068 Set the first \s-1PID\s0 for data packets (default 0x0100, max 0x0f00).
yading@10 5069 .PP
yading@10 5070 The recognized metadata settings in mpegts muxer are \f(CW\*(C`service_provider\*(C'\fR
yading@10 5071 and \f(CW\*(C`service_name\*(C'\fR. If they are not set the default for
yading@10 5072 \&\f(CW\*(C`service_provider\*(C'\fR is \*(L"FFmpeg\*(R" and the default for
yading@10 5073 \&\f(CW\*(C`service_name\*(C'\fR is \*(L"Service01\*(R".
yading@10 5074 .PP
yading@10 5075 .Vb 9
yading@10 5076 \& ffmpeg \-i file.mpg \-c copy \e
yading@10 5077 \& \-mpegts_original_network_id 0x1122 \e
yading@10 5078 \& \-mpegts_transport_stream_id 0x3344 \e
yading@10 5079 \& \-mpegts_service_id 0x5566 \e
yading@10 5080 \& \-mpegts_pmt_start_pid 0x1500 \e
yading@10 5081 \& \-mpegts_start_pid 0x150 \e
yading@10 5082 \& \-metadata service_provider="Some provider" \e
yading@10 5083 \& \-metadata service_name="Some Channel" \e
yading@10 5084 \& \-y out.ts
yading@10 5085 .Ve
yading@10 5086 .SS "null"
yading@10 5087 .IX Subsection "null"
yading@10 5088 Null muxer.
yading@10 5089 .PP
yading@10 5090 This muxer does not generate any output file, it is mainly useful for
yading@10 5091 testing or benchmarking purposes.
yading@10 5092 .PP
yading@10 5093 For example to benchmark decoding with \fBffmpeg\fR you can use the
yading@10 5094 command:
yading@10 5095 .PP
yading@10 5096 .Vb 1
yading@10 5097 \& ffmpeg \-benchmark \-i INPUT \-f null out.null
yading@10 5098 .Ve
yading@10 5099 .PP
yading@10 5100 Note that the above command does not read or write the \fIout.null\fR
yading@10 5101 file, but specifying the output file is required by the \fBffmpeg\fR
yading@10 5102 syntax.
yading@10 5103 .PP
yading@10 5104 Alternatively you can write the command as:
yading@10 5105 .PP
yading@10 5106 .Vb 1
yading@10 5107 \& ffmpeg \-benchmark \-i INPUT \-f null \-
yading@10 5108 .Ve
yading@10 5109 .SS "matroska"
yading@10 5110 .IX Subsection "matroska"
yading@10 5111 Matroska container muxer.
yading@10 5112 .PP
yading@10 5113 This muxer implements the matroska and webm container specs.
yading@10 5114 .PP
yading@10 5115 The recognized metadata settings in this muxer are:
yading@10 5116 .IP "\fBtitle=\fR\fItitle name\fR" 4
yading@10 5117 .IX Item "title=title name"
yading@10 5118 Name provided to a single track
yading@10 5119 .IP "\fBlanguage=\fR\fIlanguage name\fR" 4
yading@10 5120 .IX Item "language=language name"
yading@10 5121 Specifies the language of the track in the Matroska languages form
yading@10 5122 .IP "\fBstereo_mode=\fR\fImode\fR" 4
yading@10 5123 .IX Item "stereo_mode=mode"
yading@10 5124 Stereo 3D video layout of two views in a single video track
yading@10 5125 .RS 4
yading@10 5126 .IP "\fBmono\fR" 4
yading@10 5127 .IX Item "mono"
yading@10 5128 video is not stereo
yading@10 5129 .IP "\fBleft_right\fR" 4
yading@10 5130 .IX Item "left_right"
yading@10 5131 Both views are arranged side by side, Left-eye view is on the left
yading@10 5132 .IP "\fBbottom_top\fR" 4
yading@10 5133 .IX Item "bottom_top"
yading@10 5134 Both views are arranged in top-bottom orientation, Left-eye view is at bottom
yading@10 5135 .IP "\fBtop_bottom\fR" 4
yading@10 5136 .IX Item "top_bottom"
yading@10 5137 Both views are arranged in top-bottom orientation, Left-eye view is on top
yading@10 5138 .IP "\fBcheckerboard_rl\fR" 4
yading@10 5139 .IX Item "checkerboard_rl"
yading@10 5140 Each view is arranged in a checkerboard interleaved pattern, Left-eye view being first
yading@10 5141 .IP "\fBcheckerboard_lr\fR" 4
yading@10 5142 .IX Item "checkerboard_lr"
yading@10 5143 Each view is arranged in a checkerboard interleaved pattern, Right-eye view being first
yading@10 5144 .IP "\fBrow_interleaved_rl\fR" 4
yading@10 5145 .IX Item "row_interleaved_rl"
yading@10 5146 Each view is constituted by a row based interleaving, Right-eye view is first row
yading@10 5147 .IP "\fBrow_interleaved_lr\fR" 4
yading@10 5148 .IX Item "row_interleaved_lr"
yading@10 5149 Each view is constituted by a row based interleaving, Left-eye view is first row
yading@10 5150 .IP "\fBcol_interleaved_rl\fR" 4
yading@10 5151 .IX Item "col_interleaved_rl"
yading@10 5152 Both views are arranged in a column based interleaving manner, Right-eye view is first column
yading@10 5153 .IP "\fBcol_interleaved_lr\fR" 4
yading@10 5154 .IX Item "col_interleaved_lr"
yading@10 5155 Both views are arranged in a column based interleaving manner, Left-eye view is first column
yading@10 5156 .IP "\fBanaglyph_cyan_red\fR" 4
yading@10 5157 .IX Item "anaglyph_cyan_red"
yading@10 5158 All frames are in anaglyph format viewable through red-cyan filters
yading@10 5159 .IP "\fBright_left\fR" 4
yading@10 5160 .IX Item "right_left"
yading@10 5161 Both views are arranged side by side, Right-eye view is on the left
yading@10 5162 .IP "\fBanaglyph_green_magenta\fR" 4
yading@10 5163 .IX Item "anaglyph_green_magenta"
yading@10 5164 All frames are in anaglyph format viewable through green-magenta filters
yading@10 5165 .IP "\fBblock_lr\fR" 4
yading@10 5166 .IX Item "block_lr"
yading@10 5167 Both eyes laced in one Block, Left-eye view is first
yading@10 5168 .IP "\fBblock_rl\fR" 4
yading@10 5169 .IX Item "block_rl"
yading@10 5170 Both eyes laced in one Block, Right-eye view is first
yading@10 5171 .RE
yading@10 5172 .RS 4
yading@10 5173 .RE
yading@10 5174 .PP
yading@10 5175 For example a 3D WebM clip can be created using the following command line:
yading@10 5176 .PP
yading@10 5177 .Vb 1
yading@10 5178 \& ffmpeg \-i sample_left_right_clip.mpg \-an \-c:v libvpx \-metadata stereo_mode=left_right \-y stereo_clip.webm
yading@10 5179 .Ve
yading@10 5180 .SS "segment, stream_segment, ssegment"
yading@10 5181 .IX Subsection "segment, stream_segment, ssegment"
yading@10 5182 Basic stream segmenter.
yading@10 5183 .PP
yading@10 5184 The segmenter muxer outputs streams to a number of separate files of nearly
yading@10 5185 fixed duration. Output filename pattern can be set in a fashion similar to
yading@10 5186 image2.
yading@10 5187 .PP
yading@10 5188 \&\f(CW\*(C`stream_segment\*(C'\fR is a variant of the muxer used to write to
yading@10 5189 streaming output formats, i.e. which do not require global headers,
yading@10 5190 and is recommended for outputting e.g. to \s-1MPEG\s0 transport stream segments.
yading@10 5191 \&\f(CW\*(C`ssegment\*(C'\fR is a shorter alias for \f(CW\*(C`stream_segment\*(C'\fR.
yading@10 5192 .PP
yading@10 5193 Every segment starts with a keyframe of the selected reference stream,
yading@10 5194 which is set through the \fBreference_stream\fR option.
yading@10 5195 .PP
yading@10 5196 Note that if you want accurate splitting for a video file, you need to
yading@10 5197 make the input key frames correspond to the exact splitting times
yading@10 5198 expected by the segmenter, or the segment muxer will start the new
yading@10 5199 segment with the key frame found next after the specified start
yading@10 5200 time.
yading@10 5201 .PP
yading@10 5202 The segment muxer works best with a single constant frame rate video.
yading@10 5203 .PP
yading@10 5204 Optionally it can generate a list of the created segments, by setting
yading@10 5205 the option \fIsegment_list\fR. The list type is specified by the
yading@10 5206 \&\fIsegment_list_type\fR option.
yading@10 5207 .PP
yading@10 5208 The segment muxer supports the following options:
yading@10 5209 .IP "\fBreference_stream\fR \fIspecifier\fR" 4
yading@10 5210 .IX Item "reference_stream specifier"
yading@10 5211 Set the reference stream, as specified by the string \fIspecifier\fR.
yading@10 5212 If \fIspecifier\fR is set to \f(CW\*(C`auto\*(C'\fR, the reference is choosen
yading@10 5213 automatically. Otherwise it must be a stream specifier (see the ``Stream
yading@10 5214 specifiers'' chapter in the ffmpeg manual) which specifies the
yading@10 5215 reference stream. The default value is ``auto''.
yading@10 5216 .IP "\fBsegment_format\fR \fIformat\fR" 4
yading@10 5217 .IX Item "segment_format format"
yading@10 5218 Override the inner container format, by default it is guessed by the filename
yading@10 5219 extension.
yading@10 5220 .IP "\fBsegment_list\fR \fIname\fR" 4
yading@10 5221 .IX Item "segment_list name"
yading@10 5222 Generate also a listfile named \fIname\fR. If not specified no
yading@10 5223 listfile is generated.
yading@10 5224 .IP "\fBsegment_list_flags\fR \fIflags\fR" 4
yading@10 5225 .IX Item "segment_list_flags flags"
yading@10 5226 Set flags affecting the segment list generation.
yading@10 5227 .Sp
yading@10 5228 It currently supports the following flags:
yading@10 5229 .RS 4
yading@10 5230 .IP "\fIcache\fR" 4
yading@10 5231 .IX Item "cache"
yading@10 5232 Allow caching (only affects M3U8 list files).
yading@10 5233 .IP "\fIlive\fR" 4
yading@10 5234 .IX Item "live"
yading@10 5235 Allow live-friendly file generation.
yading@10 5236 .RE
yading@10 5237 .RS 4
yading@10 5238 .Sp
yading@10 5239 Default value is \f(CW\*(C`cache\*(C'\fR.
yading@10 5240 .RE
yading@10 5241 .IP "\fBsegment_list_size\fR \fIsize\fR" 4
yading@10 5242 .IX Item "segment_list_size size"
yading@10 5243 Update the list file so that it contains at most the last \fIsize\fR
yading@10 5244 segments. If 0 the list file will contain all the segments. Default
yading@10 5245 value is 0.
yading@10 5246 .IP "\fBsegment_list type\fR \fItype\fR" 4
yading@10 5247 .IX Item "segment_list type type"
yading@10 5248 Specify the format for the segment list file.
yading@10 5249 .Sp
yading@10 5250 The following values are recognized:
yading@10 5251 .RS 4
yading@10 5252 .IP "\fBflat\fR" 4
yading@10 5253 .IX Item "flat"
yading@10 5254 Generate a flat list for the created segments, one segment per line.
yading@10 5255 .IP "\fBcsv, ext\fR" 4
yading@10 5256 .IX Item "csv, ext"
yading@10 5257 Generate a list for the created segments, one segment per line,
yading@10 5258 each line matching the format (comma-separated values):
yading@10 5259 .Sp
yading@10 5260 .Vb 1
yading@10 5261 \& <segment_filename>,<segment_start_time>,<segment_end_time>
yading@10 5262 .Ve
yading@10 5263 .Sp
yading@10 5264 \&\fIsegment_filename\fR is the name of the output file generated by the
yading@10 5265 muxer according to the provided pattern. \s-1CSV\s0 escaping (according to
yading@10 5266 \&\s-1RFC4180\s0) is applied if required.
yading@10 5267 .Sp
yading@10 5268 \&\fIsegment_start_time\fR and \fIsegment_end_time\fR specify
yading@10 5269 the segment start and end time expressed in seconds.
yading@10 5270 .Sp
yading@10 5271 A list file with the suffix \f(CW".csv"\fR or \f(CW".ext"\fR will
yading@10 5272 auto-select this format.
yading@10 5273 .Sp
yading@10 5274 \&\f(CW\*(C`ext\*(C'\fR is deprecated in favor or \f(CW\*(C`csv\*(C'\fR.
yading@10 5275 .IP "\fBffconcat\fR" 4
yading@10 5276 .IX Item "ffconcat"
yading@10 5277 Generate an ffconcat file for the created segments. The resulting file
yading@10 5278 can be read using the FFmpeg concat demuxer.
yading@10 5279 .Sp
yading@10 5280 A list file with the suffix \f(CW".ffcat"\fR or \f(CW".ffconcat"\fR will
yading@10 5281 auto-select this format.
yading@10 5282 .IP "\fBm3u8\fR" 4
yading@10 5283 .IX Item "m3u8"
yading@10 5284 Generate an extended M3U8 file, version 3, compliant with
yading@10 5285 <\fBhttp://tools.ietf.org/id/draft\-pantos\-http\-live\-streaming\fR>.
yading@10 5286 .Sp
yading@10 5287 A list file with the suffix \f(CW".m3u8"\fR will auto-select this format.
yading@10 5288 .RE
yading@10 5289 .RS 4
yading@10 5290 .Sp
yading@10 5291 If not specified the type is guessed from the list file name suffix.
yading@10 5292 .RE
yading@10 5293 .IP "\fBsegment_time\fR \fItime\fR" 4
yading@10 5294 .IX Item "segment_time time"
yading@10 5295 Set segment duration to \fItime\fR, the value must be a duration
yading@10 5296 specification. Default value is \*(L"2\*(R". See also the
yading@10 5297 \&\fBsegment_times\fR option.
yading@10 5298 .Sp
yading@10 5299 Note that splitting may not be accurate, unless you force the
yading@10 5300 reference stream key-frames at the given time. See the introductory
yading@10 5301 notice and the examples below.
yading@10 5302 .IP "\fBsegment_time_delta\fR \fIdelta\fR" 4
yading@10 5303 .IX Item "segment_time_delta delta"
yading@10 5304 Specify the accuracy time when selecting the start time for a
yading@10 5305 segment, expressed as a duration specification. Default value is \*(L"0\*(R".
yading@10 5306 .Sp
yading@10 5307 When delta is specified a key-frame will start a new segment if its
yading@10 5308 \&\s-1PTS\s0 satisfies the relation:
yading@10 5309 .Sp
yading@10 5310 .Vb 1
yading@10 5311 \& PTS >= start_time \- time_delta
yading@10 5312 .Ve
yading@10 5313 .Sp
yading@10 5314 This option is useful when splitting video content, which is always
yading@10 5315 split at \s-1GOP\s0 boundaries, in case a key frame is found just before the
yading@10 5316 specified split time.
yading@10 5317 .Sp
yading@10 5318 In particular may be used in combination with the \fIffmpeg\fR option
yading@10 5319 \&\fIforce_key_frames\fR. The key frame times specified by
yading@10 5320 \&\fIforce_key_frames\fR may not be set accurately because of rounding
yading@10 5321 issues, with the consequence that a key frame time may result set just
yading@10 5322 before the specified time. For constant frame rate videos a value of
yading@10 5323 1/2*\fIframe_rate\fR should address the worst case mismatch between
yading@10 5324 the specified time and the time set by \fIforce_key_frames\fR.
yading@10 5325 .IP "\fBsegment_times\fR \fItimes\fR" 4
yading@10 5326 .IX Item "segment_times times"
yading@10 5327 Specify a list of split points. \fItimes\fR contains a list of comma
yading@10 5328 separated duration specifications, in increasing order. See also
yading@10 5329 the \fBsegment_time\fR option.
yading@10 5330 .IP "\fBsegment_frames\fR \fIframes\fR" 4
yading@10 5331 .IX Item "segment_frames frames"
yading@10 5332 Specify a list of split video frame numbers. \fIframes\fR contains a
yading@10 5333 list of comma separated integer numbers, in increasing order.
yading@10 5334 .Sp
yading@10 5335 This option specifies to start a new segment whenever a reference
yading@10 5336 stream key frame is found and the sequential number (starting from 0)
yading@10 5337 of the frame is greater or equal to the next value in the list.
yading@10 5338 .IP "\fBsegment_wrap\fR \fIlimit\fR" 4
yading@10 5339 .IX Item "segment_wrap limit"
yading@10 5340 Wrap around segment index once it reaches \fIlimit\fR.
yading@10 5341 .IP "\fBsegment_start_number\fR \fInumber\fR" 4
yading@10 5342 .IX Item "segment_start_number number"
yading@10 5343 Set the sequence number of the first segment. Defaults to \f(CW0\fR.
yading@10 5344 .IP "\fBreset_timestamps\fR \fI1|0\fR" 4
yading@10 5345 .IX Item "reset_timestamps 1|0"
yading@10 5346 Reset timestamps at the begin of each segment, so that each segment
yading@10 5347 will start with near-zero timestamps. It is meant to ease the playback
yading@10 5348 of the generated segments. May not work with some combinations of
yading@10 5349 muxers/codecs. It is set to \f(CW0\fR by default.
yading@10 5350 .PP
yading@10 5351 \fIExamples\fR
yading@10 5352 .IX Subsection "Examples"
yading@10 5353 .IP "\(bu" 4
yading@10 5354 To remux the content of file \fIin.mkv\fR to a list of segments
yading@10 5355 \&\fIout\-000.nut\fR, \fIout\-001.nut\fR, etc., and write the list of
yading@10 5356 generated segments to \fIout.list\fR:
yading@10 5357 .Sp
yading@10 5358 .Vb 1
yading@10 5359 \& ffmpeg \-i in.mkv \-codec copy \-map 0 \-f segment \-segment_list out.list out%03d.nut
yading@10 5360 .Ve
yading@10 5361 .IP "\(bu" 4
yading@10 5362 As the example above, but segment the input file according to the split
yading@10 5363 points specified by the \fIsegment_times\fR option:
yading@10 5364 .Sp
yading@10 5365 .Vb 1
yading@10 5366 \& ffmpeg \-i in.mkv \-codec copy \-map 0 \-f segment \-segment_list out.csv \-segment_times 1,2,3,5,8,13,21 out%03d.nut
yading@10 5367 .Ve
yading@10 5368 .IP "\(bu" 4
yading@10 5369 As the example above, but use the \f(CW\*(C`ffmpeg\*(C'\fR \fIforce_key_frames\fR
yading@10 5370 option to force key frames in the input at the specified location, together
yading@10 5371 with the segment option \fIsegment_time_delta\fR to account for
yading@10 5372 possible roundings operated when setting key frame times.
yading@10 5373 .Sp
yading@10 5374 .Vb 2
yading@10 5375 \& ffmpeg \-i in.mkv \-force_key_frames 1,2,3,5,8,13,21 \-codec:v mpeg4 \-codec:a pcm_s16le \-map 0 \e
yading@10 5376 \& \-f segment \-segment_list out.csv \-segment_times 1,2,3,5,8,13,21 \-segment_time_delta 0.05 out%03d.nut
yading@10 5377 .Ve
yading@10 5378 .Sp
yading@10 5379 In order to force key frames on the input file, transcoding is
yading@10 5380 required.
yading@10 5381 .IP "\(bu" 4
yading@10 5382 Segment the input file by splitting the input file according to the
yading@10 5383 frame numbers sequence specified with the \fIsegment_frames\fR option:
yading@10 5384 .Sp
yading@10 5385 .Vb 1
yading@10 5386 \& ffmpeg \-i in.mkv \-codec copy \-map 0 \-f segment \-segment_list out.csv \-segment_frames 100,200,300,500,800 out%03d.nut
yading@10 5387 .Ve
yading@10 5388 .IP "\(bu" 4
yading@10 5389 To convert the \fIin.mkv\fR to \s-1TS\s0 segments using the \f(CW\*(C`libx264\*(C'\fR
yading@10 5390 and \f(CW\*(C`libfaac\*(C'\fR encoders:
yading@10 5391 .Sp
yading@10 5392 .Vb 1
yading@10 5393 \& ffmpeg \-i in.mkv \-map 0 \-codec:v libx264 \-codec:a libfaac \-f ssegment \-segment_list out.list out%03d.ts
yading@10 5394 .Ve
yading@10 5395 .IP "\(bu" 4
yading@10 5396 Segment the input file, and create an M3U8 live playlist (can be used
yading@10 5397 as live \s-1HLS\s0 source):
yading@10 5398 .Sp
yading@10 5399 .Vb 2
yading@10 5400 \& ffmpeg \-re \-i in.mkv \-codec copy \-map 0 \-f segment \-segment_list playlist.m3u8 \e
yading@10 5401 \& \-segment_list_flags +live \-segment_time 10 out%03d.mkv
yading@10 5402 .Ve
yading@10 5403 .SS "mp3"
yading@10 5404 .IX Subsection "mp3"
yading@10 5405 The \s-1MP3\s0 muxer writes a raw \s-1MP3\s0 stream with an ID3v2 header at the beginning and
yading@10 5406 optionally an ID3v1 tag at the end. ID3v2.3 and ID3v2.4 are supported, the
yading@10 5407 \&\f(CW\*(C`id3v2_version\*(C'\fR option controls which one is used. The legacy ID3v1 tag is
yading@10 5408 not written by default, but may be enabled with the \f(CW\*(C`write_id3v1\*(C'\fR option.
yading@10 5409 .PP
yading@10 5410 For seekable output the muxer also writes a Xing frame at the beginning, which
yading@10 5411 contains the number of frames in the file. It is useful for computing duration
yading@10 5412 of \s-1VBR\s0 files.
yading@10 5413 .PP
yading@10 5414 The muxer supports writing ID3v2 attached pictures (\s-1APIC\s0 frames). The pictures
yading@10 5415 are supplied to the muxer in form of a video stream with a single packet. There
yading@10 5416 can be any number of those streams, each will correspond to a single \s-1APIC\s0 frame.
yading@10 5417 The stream metadata tags \fItitle\fR and \fIcomment\fR map to \s-1APIC\s0
yading@10 5418 \&\fIdescription\fR and \fIpicture type\fR respectively. See
yading@10 5419 <\fBhttp://id3.org/id3v2.4.0\-frames\fR> for allowed picture types.
yading@10 5420 .PP
yading@10 5421 Note that the \s-1APIC\s0 frames must be written at the beginning, so the muxer will
yading@10 5422 buffer the audio frames until it gets all the pictures. It is therefore advised
yading@10 5423 to provide the pictures as soon as possible to avoid excessive buffering.
yading@10 5424 .PP
yading@10 5425 Examples:
yading@10 5426 .PP
yading@10 5427 Write an mp3 with an ID3v2.3 header and an ID3v1 footer:
yading@10 5428 .PP
yading@10 5429 .Vb 1
yading@10 5430 \& ffmpeg \-i INPUT \-id3v2_version 3 \-write_id3v1 1 out.mp3
yading@10 5431 .Ve
yading@10 5432 .PP
yading@10 5433 To attach a picture to an mp3 file select both the audio and the picture stream
yading@10 5434 with \f(CW\*(C`map\*(C'\fR:
yading@10 5435 .PP
yading@10 5436 .Vb 2
yading@10 5437 \& ffmpeg \-i input.mp3 \-i cover.png \-c copy \-map 0 \-map 1
yading@10 5438 \& \-metadata:s:v title="Album cover" \-metadata:s:v comment="Cover (Front)" out.mp3
yading@10 5439 .Ve
yading@10 5440 .SS "ogg"
yading@10 5441 .IX Subsection "ogg"
yading@10 5442 Ogg container muxer.
yading@10 5443 .IP "\fB\-page_duration\fR \fIduration\fR" 4
yading@10 5444 .IX Item "-page_duration duration"
yading@10 5445 Preferred page duration, in microseconds. The muxer will attempt to create
yading@10 5446 pages that are approximately \fIduration\fR microseconds long. This allows the
yading@10 5447 user to compromise between seek granularity and container overhead. The default
yading@10 5448 is 1 second. A value of 0 will fill all segments, making pages as large as
yading@10 5449 possible. A value of 1 will effectively use 1 packet-per-page in most
yading@10 5450 situations, giving a small seek granularity at the cost of additional container
yading@10 5451 overhead.
yading@10 5452 .SS "tee"
yading@10 5453 .IX Subsection "tee"
yading@10 5454 The tee muxer can be used to write the same data to several files or any
yading@10 5455 other kind of muxer. It can be used, for example, to both stream a video to
yading@10 5456 the network and save it to disk at the same time.
yading@10 5457 .PP
yading@10 5458 It is different from specifying several outputs to the \fBffmpeg\fR
yading@10 5459 command-line tool because the audio and video data will be encoded only once
yading@10 5460 with the tee muxer; encoding can be a very expensive process. It is not
yading@10 5461 useful when using the libavformat \s-1API\s0 directly because it is then possible
yading@10 5462 to feed the same packets to several muxers directly.
yading@10 5463 .PP
yading@10 5464 The slave outputs are specified in the file name given to the muxer,
yading@10 5465 separated by '|'. If any of the slave name contains the '|' separator,
yading@10 5466 leading or trailing spaces or any special character, it must be
yading@10 5467 escaped (see the ``Quoting and escaping'' section in the ffmpeg-utils
yading@10 5468 manual).
yading@10 5469 .PP
yading@10 5470 Options can be specified for each slave by prepending them as a list of
yading@10 5471 \&\fIkey\fR=\fIvalue\fR pairs separated by ':', between square brackets. If
yading@10 5472 the options values contain a special character or the ':' separator, they
yading@10 5473 must be escaped; note that this is a second level escaping.
yading@10 5474 .PP
yading@10 5475 Example: encode something and both archive it in a WebM file and stream it
yading@10 5476 as MPEG-TS over \s-1UDP\s0 (the streams need to be explicitly mapped):
yading@10 5477 .PP
yading@10 5478 .Vb 2
yading@10 5479 \& ffmpeg \-i ... \-c:v libx264 \-c:a mp2 \-f tee \-map 0:v \-map 0:a
yading@10 5480 \& "archive\-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
yading@10 5481 .Ve
yading@10 5482 .PP
yading@10 5483 Note: some codecs may need different options depending on the output format;
yading@10 5484 the auto-detection of this can not work with the tee muxer. The main example
yading@10 5485 is the \fBglobal_header\fR flag.
yading@10 5486 .SH "METADATA"
yading@10 5487 .IX Header "METADATA"
yading@10 5488 FFmpeg is able to dump metadata from media files into a simple UTF\-8\-encoded
yading@10 5489 INI-like text file and then load it back using the metadata muxer/demuxer.
yading@10 5490 .PP
yading@10 5491 The file format is as follows:
yading@10 5492 .IP "1." 4
yading@10 5493 A file consists of a header and a number of metadata tags divided into sections,
yading@10 5494 each on its own line.
yading@10 5495 .IP "2." 4
yading@10 5496 The header is a ';FFMETADATA' string, followed by a version number (now 1).
yading@10 5497 .IP "3." 4
yading@10 5498 Metadata tags are of the form 'key=value'
yading@10 5499 .IP "4." 4
yading@10 5500 Immediately after header follows global metadata
yading@10 5501 .IP "5." 4
yading@10 5502 After global metadata there may be sections with per\-stream/per\-chapter
yading@10 5503 metadata.
yading@10 5504 .IP "6." 4
yading@10 5505 A section starts with the section name in uppercase (i.e. \s-1STREAM\s0 or \s-1CHAPTER\s0) in
yading@10 5506 brackets ('[', ']') and ends with next section or end of file.
yading@10 5507 .IP "7." 4
yading@10 5508 At the beginning of a chapter section there may be an optional timebase to be
yading@10 5509 used for start/end values. It must be in form 'TIMEBASE=num/den', where num and
yading@10 5510 den are integers. If the timebase is missing then start/end times are assumed to
yading@10 5511 be in milliseconds.
yading@10 5512 Next a chapter section must contain chapter start and end times in form
yading@10 5513 \&'START=num', 'END=num', where num is a positive integer.
yading@10 5514 .IP "8." 4
yading@10 5515 Empty lines and lines starting with ';' or '#' are ignored.
yading@10 5516 .IP "9." 4
yading@10 5517 Metadata keys or values containing special characters ('=', ';', '#', '\e' and a
yading@10 5518 newline) must be escaped with a backslash '\e'.
yading@10 5519 .IP "10." 4
yading@10 5520 Note that whitespace in metadata (e.g. foo = bar) is considered to be a part of
yading@10 5521 the tag (in the example above key is 'foo ', value is ' bar').
yading@10 5522 .PP
yading@10 5523 A ffmetadata file might look like this:
yading@10 5524 .PP
yading@10 5525 .Vb 4
yading@10 5526 \& ;FFMETADATA1
yading@10 5527 \& title=bike\e\eshed
yading@10 5528 \& ;this is a comment
yading@10 5529 \& artist=FFmpeg troll team
yading@10 5530 \&
yading@10 5531 \& [CHAPTER]
yading@10 5532 \& TIMEBASE=1/1000
yading@10 5533 \& START=0
yading@10 5534 \& #chapter ends at 0:01:00
yading@10 5535 \& END=60000
yading@10 5536 \& title=chapter \e#1
yading@10 5537 \& [STREAM]
yading@10 5538 \& title=multi\e
yading@10 5539 \& line
yading@10 5540 .Ve
yading@10 5541 .SH "PROTOCOLS"
yading@10 5542 .IX Header "PROTOCOLS"
yading@10 5543 Protocols are configured elements in FFmpeg which allow to access
yading@10 5544 resources which require the use of a particular protocol.
yading@10 5545 .PP
yading@10 5546 When you configure your FFmpeg build, all the supported protocols are
yading@10 5547 enabled by default. You can list all available ones using the
yading@10 5548 configure option \*(L"\-\-list\-protocols\*(R".
yading@10 5549 .PP
yading@10 5550 You can disable all the protocols using the configure option
yading@10 5551 \&\*(L"\-\-disable\-protocols\*(R", and selectively enable a protocol using the
yading@10 5552 option "\-\-enable\-protocol=\fI\s-1PROTOCOL\s0\fR\*(L", or you can disable a
yading@10 5553 particular protocol using the option
yading@10 5554 \&\*(R"\-\-disable\-protocol=\fI\s-1PROTOCOL\s0\fR".
yading@10 5555 .PP
yading@10 5556 The option \*(L"\-protocols\*(R" of the ff* tools will display the list of
yading@10 5557 supported protocols.
yading@10 5558 .PP
yading@10 5559 A description of the currently available protocols follows.
yading@10 5560 .SS "bluray"
yading@10 5561 .IX Subsection "bluray"
yading@10 5562 Read BluRay playlist.
yading@10 5563 .PP
yading@10 5564 The accepted options are:
yading@10 5565 .IP "\fBangle\fR" 4
yading@10 5566 .IX Item "angle"
yading@10 5567 BluRay angle
yading@10 5568 .IP "\fBchapter\fR" 4
yading@10 5569 .IX Item "chapter"
yading@10 5570 Start chapter (1...N)
yading@10 5571 .IP "\fBplaylist\fR" 4
yading@10 5572 .IX Item "playlist"
yading@10 5573 Playlist to read (\s-1BDMV/PLAYLIST/\s0?????.mpls)
yading@10 5574 .PP
yading@10 5575 Examples:
yading@10 5576 .PP
yading@10 5577 Read longest playlist from BluRay mounted to /mnt/bluray:
yading@10 5578 .PP
yading@10 5579 .Vb 1
yading@10 5580 \& bluray:/mnt/bluray
yading@10 5581 .Ve
yading@10 5582 .PP
yading@10 5583 Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start from chapter 2:
yading@10 5584 .PP
yading@10 5585 .Vb 1
yading@10 5586 \& \-playlist 4 \-angle 2 \-chapter 2 bluray:/mnt/bluray
yading@10 5587 .Ve
yading@10 5588 .SS "concat"
yading@10 5589 .IX Subsection "concat"
yading@10 5590 Physical concatenation protocol.
yading@10 5591 .PP
yading@10 5592 Allow to read and seek from many resource in sequence as if they were
yading@10 5593 a unique resource.
yading@10 5594 .PP
yading@10 5595 A \s-1URL\s0 accepted by this protocol has the syntax:
yading@10 5596 .PP
yading@10 5597 .Vb 1
yading@10 5598 \& concat:<URL1>|<URL2>|...|<URLN>
yading@10 5599 .Ve
yading@10 5600 .PP
yading@10 5601 where \fI\s-1URL1\s0\fR, \fI\s-1URL2\s0\fR, ..., \fI\s-1URLN\s0\fR are the urls of the
yading@10 5602 resource to be concatenated, each one possibly specifying a distinct
yading@10 5603 protocol.
yading@10 5604 .PP
yading@10 5605 For example to read a sequence of files \fIsplit1.mpeg\fR,
yading@10 5606 \&\fIsplit2.mpeg\fR, \fIsplit3.mpeg\fR with \fBffplay\fR use the
yading@10 5607 command:
yading@10 5608 .PP
yading@10 5609 .Vb 1
yading@10 5610 \& ffplay concat:split1.mpeg\e|split2.mpeg\e|split3.mpeg
yading@10 5611 .Ve
yading@10 5612 .PP
yading@10 5613 Note that you may need to escape the character \*(L"|\*(R" which is special for
yading@10 5614 many shells.
yading@10 5615 .SS "data"
yading@10 5616 .IX Subsection "data"
yading@10 5617 Data in-line in the \s-1URI\s0. See <\fBhttp://en.wikipedia.org/wiki/Data_URI_scheme\fR>.
yading@10 5618 .PP
yading@10 5619 For example, to convert a \s-1GIF\s0 file given inline with \fBffmpeg\fR:
yading@10 5620 .PP
yading@10 5621 .Vb 1
yading@10 5622 \& ffmpeg \-i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
yading@10 5623 .Ve
yading@10 5624 .SS "file"
yading@10 5625 .IX Subsection "file"
yading@10 5626 File access protocol.
yading@10 5627 .PP
yading@10 5628 Allow to read from or read to a file.
yading@10 5629 .PP
yading@10 5630 For example to read from a file \fIinput.mpeg\fR with \fBffmpeg\fR
yading@10 5631 use the command:
yading@10 5632 .PP
yading@10 5633 .Vb 1
yading@10 5634 \& ffmpeg \-i file:input.mpeg output.mpeg
yading@10 5635 .Ve
yading@10 5636 .PP
yading@10 5637 The ff* tools default to the file protocol, that is a resource
yading@10 5638 specified with the name \*(L"\s-1FILE\s0.mpeg\*(R" is interpreted as the \s-1URL\s0
yading@10 5639 \&\*(L"file:FILE.mpeg\*(R".
yading@10 5640 .SS "gopher"
yading@10 5641 .IX Subsection "gopher"
yading@10 5642 Gopher protocol.
yading@10 5643 .SS "hls"
yading@10 5644 .IX Subsection "hls"
yading@10 5645 Read Apple \s-1HTTP\s0 Live Streaming compliant segmented stream as
yading@10 5646 a uniform one. The M3U8 playlists describing the segments can be
yading@10 5647 remote \s-1HTTP\s0 resources or local files, accessed using the standard
yading@10 5648 file protocol.
yading@10 5649 The nested protocol is declared by specifying
yading@10 5650 "+\fIproto\fR" after the hls \s-1URI\s0 scheme name, where \fIproto\fR
yading@10 5651 is either \*(L"file\*(R" or \*(L"http\*(R".
yading@10 5652 .PP
yading@10 5653 .Vb 2
yading@10 5654 \& hls+http://host/path/to/remote/resource.m3u8
yading@10 5655 \& hls+file://path/to/local/resource.m3u8
yading@10 5656 .Ve
yading@10 5657 .PP
yading@10 5658 Using this protocol is discouraged \- the hls demuxer should work
yading@10 5659 just as well (if not, please report the issues) and is more complete.
yading@10 5660 To use the hls demuxer instead, simply use the direct URLs to the
yading@10 5661 m3u8 files.
yading@10 5662 .SS "http"
yading@10 5663 .IX Subsection "http"
yading@10 5664 \&\s-1HTTP\s0 (Hyper Text Transfer Protocol).
yading@10 5665 .PP
yading@10 5666 This protocol accepts the following options.
yading@10 5667 .IP "\fBseekable\fR" 4
yading@10 5668 .IX Item "seekable"
yading@10 5669 Control seekability of connection. If set to 1 the resource is
yading@10 5670 supposed to be seekable, if set to 0 it is assumed not to be seekable,
yading@10 5671 if set to \-1 it will try to autodetect if it is seekable. Default
yading@10 5672 value is \-1.
yading@10 5673 .IP "\fBchunked_post\fR" 4
yading@10 5674 .IX Item "chunked_post"
yading@10 5675 If set to 1 use chunked transfer-encoding for posts, default is 1.
yading@10 5676 .IP "\fBheaders\fR" 4
yading@10 5677 .IX Item "headers"
yading@10 5678 Set custom \s-1HTTP\s0 headers, can override built in default headers. The
yading@10 5679 value must be a string encoding the headers.
yading@10 5680 .IP "\fBcontent_type\fR" 4
yading@10 5681 .IX Item "content_type"
yading@10 5682 Force a content type.
yading@10 5683 .IP "\fBuser-agent\fR" 4
yading@10 5684 .IX Item "user-agent"
yading@10 5685 Override User-Agent header. If not specified the protocol will use a
yading@10 5686 string describing the libavformat build.
yading@10 5687 .IP "\fBmultiple_requests\fR" 4
yading@10 5688 .IX Item "multiple_requests"
yading@10 5689 Use persistent connections if set to 1. By default it is 0.
yading@10 5690 .IP "\fBpost_data\fR" 4
yading@10 5691 .IX Item "post_data"
yading@10 5692 Set custom \s-1HTTP\s0 post data.
yading@10 5693 .IP "\fBtimeout\fR" 4
yading@10 5694 .IX Item "timeout"
yading@10 5695 Set timeout of socket I/O operations used by the underlying low level
yading@10 5696 operation. By default it is set to \-1, which means that the timeout is
yading@10 5697 not specified.
yading@10 5698 .IP "\fBmime_type\fR" 4
yading@10 5699 .IX Item "mime_type"
yading@10 5700 Set \s-1MIME\s0 type.
yading@10 5701 .IP "\fBcookies\fR" 4
yading@10 5702 .IX Item "cookies"
yading@10 5703 Set the cookies to be sent in future requests. The format of each cookie is the
yading@10 5704 same as the value of a Set-Cookie \s-1HTTP\s0 response field. Multiple cookies can be
yading@10 5705 delimited by a newline character.
yading@10 5706 .PP
yading@10 5707 \fI\s-1HTTP\s0 Cookies\fR
yading@10 5708 .IX Subsection "HTTP Cookies"
yading@10 5709 .PP
yading@10 5710 Some \s-1HTTP\s0 requests will be denied unless cookie values are passed in with the
yading@10 5711 request. The \fBcookies\fR option allows these cookies to be specified. At
yading@10 5712 the very least, each cookie must specify a value along with a path and domain.
yading@10 5713 \&\s-1HTTP\s0 requests that match both the domain and path will automatically include the
yading@10 5714 cookie value in the \s-1HTTP\s0 Cookie header field. Multiple cookies can be delimited
yading@10 5715 by a newline.
yading@10 5716 .PP
yading@10 5717 The required syntax to play a stream specifying a cookie is:
yading@10 5718 .PP
yading@10 5719 .Vb 1
yading@10 5720 \& ffplay \-cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
yading@10 5721 .Ve
yading@10 5722 .SS "mmst"
yading@10 5723 .IX Subsection "mmst"
yading@10 5724 \&\s-1MMS\s0 (Microsoft Media Server) protocol over \s-1TCP\s0.
yading@10 5725 .SS "mmsh"
yading@10 5726 .IX Subsection "mmsh"
yading@10 5727 \&\s-1MMS\s0 (Microsoft Media Server) protocol over \s-1HTTP\s0.
yading@10 5728 .PP
yading@10 5729 The required syntax is:
yading@10 5730 .PP
yading@10 5731 .Vb 1
yading@10 5732 \& mmsh://<server>[:<port>][/<app>][/<playpath>]
yading@10 5733 .Ve
yading@10 5734 .SS "md5"
yading@10 5735 .IX Subsection "md5"
yading@10 5736 \&\s-1MD5\s0 output protocol.
yading@10 5737 .PP
yading@10 5738 Computes the \s-1MD5\s0 hash of the data to be written, and on close writes
yading@10 5739 this to the designated output or stdout if none is specified. It can
yading@10 5740 be used to test muxers without writing an actual file.
yading@10 5741 .PP
yading@10 5742 Some examples follow.
yading@10 5743 .PP
yading@10 5744 .Vb 2
yading@10 5745 \& # Write the MD5 hash of the encoded AVI file to the file output.avi.md5.
yading@10 5746 \& ffmpeg \-i input.flv \-f avi \-y md5:output.avi.md5
yading@10 5747 \&
yading@10 5748 \& # Write the MD5 hash of the encoded AVI file to stdout.
yading@10 5749 \& ffmpeg \-i input.flv \-f avi \-y md5:
yading@10 5750 .Ve
yading@10 5751 .PP
yading@10 5752 Note that some formats (typically \s-1MOV\s0) require the output protocol to
yading@10 5753 be seekable, so they will fail with the \s-1MD5\s0 output protocol.
yading@10 5754 .SS "pipe"
yading@10 5755 .IX Subsection "pipe"
yading@10 5756 \&\s-1UNIX\s0 pipe access protocol.
yading@10 5757 .PP
yading@10 5758 Allow to read and write from \s-1UNIX\s0 pipes.
yading@10 5759 .PP
yading@10 5760 The accepted syntax is:
yading@10 5761 .PP
yading@10 5762 .Vb 1
yading@10 5763 \& pipe:[<number>]
yading@10 5764 .Ve
yading@10 5765 .PP
yading@10 5766 \&\fInumber\fR is the number corresponding to the file descriptor of the
yading@10 5767 pipe (e.g. 0 for stdin, 1 for stdout, 2 for stderr). If \fInumber\fR
yading@10 5768 is not specified, by default the stdout file descriptor will be used
yading@10 5769 for writing, stdin for reading.
yading@10 5770 .PP
yading@10 5771 For example to read from stdin with \fBffmpeg\fR:
yading@10 5772 .PP
yading@10 5773 .Vb 3
yading@10 5774 \& cat test.wav | ffmpeg \-i pipe:0
yading@10 5775 \& # ...this is the same as...
yading@10 5776 \& cat test.wav | ffmpeg \-i pipe:
yading@10 5777 .Ve
yading@10 5778 .PP
yading@10 5779 For writing to stdout with \fBffmpeg\fR:
yading@10 5780 .PP
yading@10 5781 .Vb 3
yading@10 5782 \& ffmpeg \-i test.wav \-f avi pipe:1 | cat > test.avi
yading@10 5783 \& # ...this is the same as...
yading@10 5784 \& ffmpeg \-i test.wav \-f avi pipe: | cat > test.avi
yading@10 5785 .Ve
yading@10 5786 .PP
yading@10 5787 Note that some formats (typically \s-1MOV\s0), require the output protocol to
yading@10 5788 be seekable, so they will fail with the pipe output protocol.
yading@10 5789 .SS "rtmp"
yading@10 5790 .IX Subsection "rtmp"
yading@10 5791 Real-Time Messaging Protocol.
yading@10 5792 .PP
yading@10 5793 The Real-Time Messaging Protocol (\s-1RTMP\s0) is used for streaming multimedia
yading@10 5794 content across a \s-1TCP/IP\s0 network.
yading@10 5795 .PP
yading@10 5796 The required syntax is:
yading@10 5797 .PP
yading@10 5798 .Vb 1
yading@10 5799 \& rtmp://<server>[:<port>][/<app>][/<instance>][/<playpath>]
yading@10 5800 .Ve
yading@10 5801 .PP
yading@10 5802 The accepted parameters are:
yading@10 5803 .IP "\fBserver\fR" 4
yading@10 5804 .IX Item "server"
yading@10 5805 The address of the \s-1RTMP\s0 server.
yading@10 5806 .IP "\fBport\fR" 4
yading@10 5807 .IX Item "port"
yading@10 5808 The number of the \s-1TCP\s0 port to use (by default is 1935).
yading@10 5809 .IP "\fBapp\fR" 4
yading@10 5810 .IX Item "app"
yading@10 5811 It is the name of the application to access. It usually corresponds to
yading@10 5812 the path where the application is installed on the \s-1RTMP\s0 server
yading@10 5813 (e.g. \fI/ondemand/\fR, \fI/flash/live/\fR, etc.). You can override
yading@10 5814 the value parsed from the \s-1URI\s0 through the \f(CW\*(C`rtmp_app\*(C'\fR option, too.
yading@10 5815 .IP "\fBplaypath\fR" 4
yading@10 5816 .IX Item "playpath"
yading@10 5817 It is the path or name of the resource to play with reference to the
yading@10 5818 application specified in \fIapp\fR, may be prefixed by \*(L"mp4:\*(R". You
yading@10 5819 can override the value parsed from the \s-1URI\s0 through the \f(CW\*(C`rtmp_playpath\*(C'\fR
yading@10 5820 option, too.
yading@10 5821 .IP "\fBlisten\fR" 4
yading@10 5822 .IX Item "listen"
yading@10 5823 Act as a server, listening for an incoming connection.
yading@10 5824 .IP "\fBtimeout\fR" 4
yading@10 5825 .IX Item "timeout"
yading@10 5826 Maximum time to wait for the incoming connection. Implies listen.
yading@10 5827 .PP
yading@10 5828 Additionally, the following parameters can be set via command line options
yading@10 5829 (or in code via \f(CW\*(C`AVOption\*(C'\fRs):
yading@10 5830 .IP "\fBrtmp_app\fR" 4
yading@10 5831 .IX Item "rtmp_app"
yading@10 5832 Name of application to connect on the \s-1RTMP\s0 server. This option
yading@10 5833 overrides the parameter specified in the \s-1URI\s0.
yading@10 5834 .IP "\fBrtmp_buffer\fR" 4
yading@10 5835 .IX Item "rtmp_buffer"
yading@10 5836 Set the client buffer time in milliseconds. The default is 3000.
yading@10 5837 .IP "\fBrtmp_conn\fR" 4
yading@10 5838 .IX Item "rtmp_conn"
yading@10 5839 Extra arbitrary \s-1AMF\s0 connection parameters, parsed from a string,
yading@10 5840 e.g. like \f(CW\*(C`B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0\*(C'\fR.
yading@10 5841 Each value is prefixed by a single character denoting the type,
yading@10 5842 B for Boolean, N for number, S for string, O for object, or Z for null,
yading@10 5843 followed by a colon. For Booleans the data must be either 0 or 1 for
yading@10 5844 \&\s-1FALSE\s0 or \s-1TRUE\s0, respectively. Likewise for Objects the data must be 0 or
yading@10 5845 1 to end or begin an object, respectively. Data items in subobjects may
yading@10 5846 be named, by prefixing the type with 'N' and specifying the name before
yading@10 5847 the value (i.e. \f(CW\*(C`NB:myFlag:1\*(C'\fR). This option may be used multiple
yading@10 5848 times to construct arbitrary \s-1AMF\s0 sequences.
yading@10 5849 .IP "\fBrtmp_flashver\fR" 4
yading@10 5850 .IX Item "rtmp_flashver"
yading@10 5851 Version of the Flash plugin used to run the \s-1SWF\s0 player. The default
yading@10 5852 is \s-1LNX\s0 9,0,124,2.
yading@10 5853 .IP "\fBrtmp_flush_interval\fR" 4
yading@10 5854 .IX Item "rtmp_flush_interval"
yading@10 5855 Number of packets flushed in the same request (\s-1RTMPT\s0 only). The default
yading@10 5856 is 10.
yading@10 5857 .IP "\fBrtmp_live\fR" 4
yading@10 5858 .IX Item "rtmp_live"
yading@10 5859 Specify that the media is a live stream. No resuming or seeking in
yading@10 5860 live streams is possible. The default value is \f(CW\*(C`any\*(C'\fR, which means the
yading@10 5861 subscriber first tries to play the live stream specified in the
yading@10 5862 playpath. If a live stream of that name is not found, it plays the
yading@10 5863 recorded stream. The other possible values are \f(CW\*(C`live\*(C'\fR and
yading@10 5864 \&\f(CW\*(C`recorded\*(C'\fR.
yading@10 5865 .IP "\fBrtmp_pageurl\fR" 4
yading@10 5866 .IX Item "rtmp_pageurl"
yading@10 5867 \&\s-1URL\s0 of the web page in which the media was embedded. By default no
yading@10 5868 value will be sent.
yading@10 5869 .IP "\fBrtmp_playpath\fR" 4
yading@10 5870 .IX Item "rtmp_playpath"
yading@10 5871 Stream identifier to play or to publish. This option overrides the
yading@10 5872 parameter specified in the \s-1URI\s0.
yading@10 5873 .IP "\fBrtmp_subscribe\fR" 4
yading@10 5874 .IX Item "rtmp_subscribe"
yading@10 5875 Name of live stream to subscribe to. By default no value will be sent.
yading@10 5876 It is only sent if the option is specified or if rtmp_live
yading@10 5877 is set to live.
yading@10 5878 .IP "\fBrtmp_swfhash\fR" 4
yading@10 5879 .IX Item "rtmp_swfhash"
yading@10 5880 \&\s-1SHA256\s0 hash of the decompressed \s-1SWF\s0 file (32 bytes).
yading@10 5881 .IP "\fBrtmp_swfsize\fR" 4
yading@10 5882 .IX Item "rtmp_swfsize"
yading@10 5883 Size of the decompressed \s-1SWF\s0 file, required for SWFVerification.
yading@10 5884 .IP "\fBrtmp_swfurl\fR" 4
yading@10 5885 .IX Item "rtmp_swfurl"
yading@10 5886 \&\s-1URL\s0 of the \s-1SWF\s0 player for the media. By default no value will be sent.
yading@10 5887 .IP "\fBrtmp_swfverify\fR" 4
yading@10 5888 .IX Item "rtmp_swfverify"
yading@10 5889 \&\s-1URL\s0 to player swf file, compute hash/size automatically.
yading@10 5890 .IP "\fBrtmp_tcurl\fR" 4
yading@10 5891 .IX Item "rtmp_tcurl"
yading@10 5892 \&\s-1URL\s0 of the target stream. Defaults to proto://host[:port]/app.
yading@10 5893 .PP
yading@10 5894 For example to read with \fBffplay\fR a multimedia resource named
yading@10 5895 \&\*(L"sample\*(R" from the application \*(L"vod\*(R" from an \s-1RTMP\s0 server \*(L"myserver\*(R":
yading@10 5896 .PP
yading@10 5897 .Vb 1
yading@10 5898 \& ffplay rtmp://myserver/vod/sample
yading@10 5899 .Ve
yading@10 5900 .SS "rtmpe"
yading@10 5901 .IX Subsection "rtmpe"
yading@10 5902 Encrypted Real-Time Messaging Protocol.
yading@10 5903 .PP
yading@10 5904 The Encrypted Real-Time Messaging Protocol (\s-1RTMPE\s0) is used for
yading@10 5905 streaming multimedia content within standard cryptographic primitives,
yading@10 5906 consisting of Diffie-Hellman key exchange and \s-1HMACSHA256\s0, generating
yading@10 5907 a pair of \s-1RC4\s0 keys.
yading@10 5908 .SS "rtmps"
yading@10 5909 .IX Subsection "rtmps"
yading@10 5910 Real-Time Messaging Protocol over a secure \s-1SSL\s0 connection.
yading@10 5911 .PP
yading@10 5912 The Real-Time Messaging Protocol (\s-1RTMPS\s0) is used for streaming
yading@10 5913 multimedia content across an encrypted connection.
yading@10 5914 .SS "rtmpt"
yading@10 5915 .IX Subsection "rtmpt"
yading@10 5916 Real-Time Messaging Protocol tunneled through \s-1HTTP\s0.
yading@10 5917 .PP
yading@10 5918 The Real-Time Messaging Protocol tunneled through \s-1HTTP\s0 (\s-1RTMPT\s0) is used
yading@10 5919 for streaming multimedia content within \s-1HTTP\s0 requests to traverse
yading@10 5920 firewalls.
yading@10 5921 .SS "rtmpte"
yading@10 5922 .IX Subsection "rtmpte"
yading@10 5923 Encrypted Real-Time Messaging Protocol tunneled through \s-1HTTP\s0.
yading@10 5924 .PP
yading@10 5925 The Encrypted Real-Time Messaging Protocol tunneled through \s-1HTTP\s0 (\s-1RTMPTE\s0)
yading@10 5926 is used for streaming multimedia content within \s-1HTTP\s0 requests to traverse
yading@10 5927 firewalls.
yading@10 5928 .SS "rtmpts"
yading@10 5929 .IX Subsection "rtmpts"
yading@10 5930 Real-Time Messaging Protocol tunneled through \s-1HTTPS\s0.
yading@10 5931 .PP
yading@10 5932 The Real-Time Messaging Protocol tunneled through \s-1HTTPS\s0 (\s-1RTMPTS\s0) is used
yading@10 5933 for streaming multimedia content within \s-1HTTPS\s0 requests to traverse
yading@10 5934 firewalls.
yading@10 5935 .SS "rtmp, rtmpe, rtmps, rtmpt, rtmpte"
yading@10 5936 .IX Subsection "rtmp, rtmpe, rtmps, rtmpt, rtmpte"
yading@10 5937 Real-Time Messaging Protocol and its variants supported through
yading@10 5938 librtmp.
yading@10 5939 .PP
yading@10 5940 Requires the presence of the librtmp headers and library during
yading@10 5941 configuration. You need to explicitly configure the build with
yading@10 5942 \&\*(L"\-\-enable\-librtmp\*(R". If enabled this will replace the native \s-1RTMP\s0
yading@10 5943 protocol.
yading@10 5944 .PP
yading@10 5945 This protocol provides most client functions and a few server
yading@10 5946 functions needed to support \s-1RTMP\s0, \s-1RTMP\s0 tunneled in \s-1HTTP\s0 (\s-1RTMPT\s0),
yading@10 5947 encrypted \s-1RTMP\s0 (\s-1RTMPE\s0), \s-1RTMP\s0 over \s-1SSL/TLS\s0 (\s-1RTMPS\s0) and tunneled
yading@10 5948 variants of these encrypted types (\s-1RTMPTE\s0, \s-1RTMPTS\s0).
yading@10 5949 .PP
yading@10 5950 The required syntax is:
yading@10 5951 .PP
yading@10 5952 .Vb 1
yading@10 5953 \& <rtmp_proto>://<server>[:<port>][/<app>][/<playpath>] <options>
yading@10 5954 .Ve
yading@10 5955 .PP
yading@10 5956 where \fIrtmp_proto\fR is one of the strings \*(L"rtmp\*(R", \*(L"rtmpt\*(R", \*(L"rtmpe\*(R",
yading@10 5957 \&\*(L"rtmps\*(R", \*(L"rtmpte\*(R", \*(L"rtmpts\*(R" corresponding to each \s-1RTMP\s0 variant, and
yading@10 5958 \&\fIserver\fR, \fIport\fR, \fIapp\fR and \fIplaypath\fR have the same
yading@10 5959 meaning as specified for the \s-1RTMP\s0 native protocol.
yading@10 5960 \&\fIoptions\fR contains a list of space-separated options of the form
yading@10 5961 \&\fIkey\fR=\fIval\fR.
yading@10 5962 .PP
yading@10 5963 See the librtmp manual page (man 3 librtmp) for more information.
yading@10 5964 .PP
yading@10 5965 For example, to stream a file in real-time to an \s-1RTMP\s0 server using
yading@10 5966 \&\fBffmpeg\fR:
yading@10 5967 .PP
yading@10 5968 .Vb 1
yading@10 5969 \& ffmpeg \-re \-i myfile \-f flv rtmp://myserver/live/mystream
yading@10 5970 .Ve
yading@10 5971 .PP
yading@10 5972 To play the same stream using \fBffplay\fR:
yading@10 5973 .PP
yading@10 5974 .Vb 1
yading@10 5975 \& ffplay "rtmp://myserver/live/mystream live=1"
yading@10 5976 .Ve
yading@10 5977 .SS "rtp"
yading@10 5978 .IX Subsection "rtp"
yading@10 5979 Real-Time Protocol.
yading@10 5980 .SS "rtsp"
yading@10 5981 .IX Subsection "rtsp"
yading@10 5982 \&\s-1RTSP\s0 is not technically a protocol handler in libavformat, it is a demuxer
yading@10 5983 and muxer. The demuxer supports both normal \s-1RTSP\s0 (with data transferred
yading@10 5984 over \s-1RTP\s0; this is used by e.g. Apple and Microsoft) and Real-RTSP (with
yading@10 5985 data transferred over \s-1RDT\s0).
yading@10 5986 .PP
yading@10 5987 The muxer can be used to send a stream using \s-1RTSP\s0 \s-1ANNOUNCE\s0 to a server
yading@10 5988 supporting it (currently Darwin Streaming Server and Mischa Spiegelmock's
yading@10 5989 <\fBhttp://github.com/revmischa/rtsp\-server\fR>).
yading@10 5990 .PP
yading@10 5991 The required syntax for a \s-1RTSP\s0 url is:
yading@10 5992 .PP
yading@10 5993 .Vb 1
yading@10 5994 \& rtsp://<hostname>[:<port>]/<path>
yading@10 5995 .Ve
yading@10 5996 .PP
yading@10 5997 The following options (set on the \fBffmpeg\fR/\fBffplay\fR command
yading@10 5998 line, or set in code via \f(CW\*(C`AVOption\*(C'\fRs or in \f(CW\*(C`avformat_open_input\*(C'\fR),
yading@10 5999 are supported:
yading@10 6000 .PP
yading@10 6001 Flags for \f(CW\*(C`rtsp_transport\*(C'\fR:
yading@10 6002 .IP "\fBudp\fR" 4
yading@10 6003 .IX Item "udp"
yading@10 6004 Use \s-1UDP\s0 as lower transport protocol.
yading@10 6005 .IP "\fBtcp\fR" 4
yading@10 6006 .IX Item "tcp"
yading@10 6007 Use \s-1TCP\s0 (interleaving within the \s-1RTSP\s0 control channel) as lower
yading@10 6008 transport protocol.
yading@10 6009 .IP "\fBudp_multicast\fR" 4
yading@10 6010 .IX Item "udp_multicast"
yading@10 6011 Use \s-1UDP\s0 multicast as lower transport protocol.
yading@10 6012 .IP "\fBhttp\fR" 4
yading@10 6013 .IX Item "http"
yading@10 6014 Use \s-1HTTP\s0 tunneling as lower transport protocol, which is useful for
yading@10 6015 passing proxies.
yading@10 6016 .PP
yading@10 6017 Multiple lower transport protocols may be specified, in that case they are
yading@10 6018 tried one at a time (if the setup of one fails, the next one is tried).
yading@10 6019 For the muxer, only the \f(CW\*(C`tcp\*(C'\fR and \f(CW\*(C`udp\*(C'\fR options are supported.
yading@10 6020 .PP
yading@10 6021 Flags for \f(CW\*(C`rtsp_flags\*(C'\fR:
yading@10 6022 .IP "\fBfilter_src\fR" 4
yading@10 6023 .IX Item "filter_src"
yading@10 6024 Accept packets only from negotiated peer address and port.
yading@10 6025 .IP "\fBlisten\fR" 4
yading@10 6026 .IX Item "listen"
yading@10 6027 Act as a server, listening for an incoming connection.
yading@10 6028 .PP
yading@10 6029 When receiving data over \s-1UDP\s0, the demuxer tries to reorder received packets
yading@10 6030 (since they may arrive out of order, or packets may get lost totally). This
yading@10 6031 can be disabled by setting the maximum demuxing delay to zero (via
yading@10 6032 the \f(CW\*(C`max_delay\*(C'\fR field of AVFormatContext).
yading@10 6033 .PP
yading@10 6034 When watching multi-bitrate Real-RTSP streams with \fBffplay\fR, the
yading@10 6035 streams to display can be chosen with \f(CW\*(C`\-vst\*(C'\fR \fIn\fR and
yading@10 6036 \&\f(CW\*(C`\-ast\*(C'\fR \fIn\fR for video and audio respectively, and can be switched
yading@10 6037 on the fly by pressing \f(CW\*(C`v\*(C'\fR and \f(CW\*(C`a\*(C'\fR.
yading@10 6038 .PP
yading@10 6039 Example command lines:
yading@10 6040 .PP
yading@10 6041 To watch a stream over \s-1UDP\s0, with a max reordering delay of 0.5 seconds:
yading@10 6042 .PP
yading@10 6043 .Vb 1
yading@10 6044 \& ffplay \-max_delay 500000 \-rtsp_transport udp rtsp://server/video.mp4
yading@10 6045 .Ve
yading@10 6046 .PP
yading@10 6047 To watch a stream tunneled over \s-1HTTP:\s0
yading@10 6048 .PP
yading@10 6049 .Vb 1
yading@10 6050 \& ffplay \-rtsp_transport http rtsp://server/video.mp4
yading@10 6051 .Ve
yading@10 6052 .PP
yading@10 6053 To send a stream in realtime to a \s-1RTSP\s0 server, for others to watch:
yading@10 6054 .PP
yading@10 6055 .Vb 1
yading@10 6056 \& ffmpeg \-re \-i <input> \-f rtsp \-muxdelay 0.1 rtsp://server/live.sdp
yading@10 6057 .Ve
yading@10 6058 .PP
yading@10 6059 To receive a stream in realtime:
yading@10 6060 .PP
yading@10 6061 .Vb 1
yading@10 6062 \& ffmpeg \-rtsp_flags listen \-i rtsp://ownaddress/live.sdp <output>
yading@10 6063 .Ve
yading@10 6064 .IP "\fBstimeout\fR" 4
yading@10 6065 .IX Item "stimeout"
yading@10 6066 Socket \s-1IO\s0 timeout in micro seconds.
yading@10 6067 .SS "sap"
yading@10 6068 .IX Subsection "sap"
yading@10 6069 Session Announcement Protocol (\s-1RFC\s0 2974). This is not technically a
yading@10 6070 protocol handler in libavformat, it is a muxer and demuxer.
yading@10 6071 It is used for signalling of \s-1RTP\s0 streams, by announcing the \s-1SDP\s0 for the
yading@10 6072 streams regularly on a separate port.
yading@10 6073 .PP
yading@10 6074 \fIMuxer\fR
yading@10 6075 .IX Subsection "Muxer"
yading@10 6076 .PP
yading@10 6077 The syntax for a \s-1SAP\s0 url given to the muxer is:
yading@10 6078 .PP
yading@10 6079 .Vb 1
yading@10 6080 \& sap://<destination>[:<port>][?<options>]
yading@10 6081 .Ve
yading@10 6082 .PP
yading@10 6083 The \s-1RTP\s0 packets are sent to \fIdestination\fR on port \fIport\fR,
yading@10 6084 or to port 5004 if no port is specified.
yading@10 6085 \&\fIoptions\fR is a \f(CW\*(C`&\*(C'\fR\-separated list. The following options
yading@10 6086 are supported:
yading@10 6087 .IP "\fBannounce_addr=\fR\fIaddress\fR" 4
yading@10 6088 .IX Item "announce_addr=address"
yading@10 6089 Specify the destination \s-1IP\s0 address for sending the announcements to.
yading@10 6090 If omitted, the announcements are sent to the commonly used \s-1SAP\s0
yading@10 6091 announcement multicast address 224.2.127.254 (sap.mcast.net), or
yading@10 6092 ff0e::2:7ffe if \fIdestination\fR is an IPv6 address.
yading@10 6093 .IP "\fBannounce_port=\fR\fIport\fR" 4
yading@10 6094 .IX Item "announce_port=port"
yading@10 6095 Specify the port to send the announcements on, defaults to
yading@10 6096 9875 if not specified.
yading@10 6097 .IP "\fBttl=\fR\fIttl\fR" 4
yading@10 6098 .IX Item "ttl=ttl"
yading@10 6099 Specify the time to live value for the announcements and \s-1RTP\s0 packets,
yading@10 6100 defaults to 255.
yading@10 6101 .IP "\fBsame_port=\fR\fI0|1\fR" 4
yading@10 6102 .IX Item "same_port=0|1"
yading@10 6103 If set to 1, send all \s-1RTP\s0 streams on the same port pair. If zero (the
yading@10 6104 default), all streams are sent on unique ports, with each stream on a
yading@10 6105 port 2 numbers higher than the previous.
yading@10 6106 VLC/Live555 requires this to be set to 1, to be able to receive the stream.
yading@10 6107 The \s-1RTP\s0 stack in libavformat for receiving requires all streams to be sent
yading@10 6108 on unique ports.
yading@10 6109 .PP
yading@10 6110 Example command lines follow.
yading@10 6111 .PP
yading@10 6112 To broadcast a stream on the local subnet, for watching in \s-1VLC:\s0
yading@10 6113 .PP
yading@10 6114 .Vb 1
yading@10 6115 \& ffmpeg \-re \-i <input> \-f sap sap://224.0.0.255?same_port=1
yading@10 6116 .Ve
yading@10 6117 .PP
yading@10 6118 Similarly, for watching in \fBffplay\fR:
yading@10 6119 .PP
yading@10 6120 .Vb 1
yading@10 6121 \& ffmpeg \-re \-i <input> \-f sap sap://224.0.0.255
yading@10 6122 .Ve
yading@10 6123 .PP
yading@10 6124 And for watching in \fBffplay\fR, over IPv6:
yading@10 6125 .PP
yading@10 6126 .Vb 1
yading@10 6127 \& ffmpeg \-re \-i <input> \-f sap sap://[ff0e::1:2:3:4]
yading@10 6128 .Ve
yading@10 6129 .PP
yading@10 6130 \fIDemuxer\fR
yading@10 6131 .IX Subsection "Demuxer"
yading@10 6132 .PP
yading@10 6133 The syntax for a \s-1SAP\s0 url given to the demuxer is:
yading@10 6134 .PP
yading@10 6135 .Vb 1
yading@10 6136 \& sap://[<address>][:<port>]
yading@10 6137 .Ve
yading@10 6138 .PP
yading@10 6139 \&\fIaddress\fR is the multicast address to listen for announcements on,
yading@10 6140 if omitted, the default 224.2.127.254 (sap.mcast.net) is used. \fIport\fR
yading@10 6141 is the port that is listened on, 9875 if omitted.
yading@10 6142 .PP
yading@10 6143 The demuxers listens for announcements on the given address and port.
yading@10 6144 Once an announcement is received, it tries to receive that particular stream.
yading@10 6145 .PP
yading@10 6146 Example command lines follow.
yading@10 6147 .PP
yading@10 6148 To play back the first stream announced on the normal \s-1SAP\s0 multicast address:
yading@10 6149 .PP
yading@10 6150 .Vb 1
yading@10 6151 \& ffplay sap://
yading@10 6152 .Ve
yading@10 6153 .PP
yading@10 6154 To play back the first stream announced on one the default IPv6 \s-1SAP\s0 multicast address:
yading@10 6155 .PP
yading@10 6156 .Vb 1
yading@10 6157 \& ffplay sap://[ff0e::2:7ffe]
yading@10 6158 .Ve
yading@10 6159 .SS "tcp"
yading@10 6160 .IX Subsection "tcp"
yading@10 6161 Trasmission Control Protocol.
yading@10 6162 .PP
yading@10 6163 The required syntax for a \s-1TCP\s0 url is:
yading@10 6164 .PP
yading@10 6165 .Vb 1
yading@10 6166 \& tcp://<hostname>:<port>[?<options>]
yading@10 6167 .Ve
yading@10 6168 .IP "\fBlisten\fR" 4
yading@10 6169 .IX Item "listen"
yading@10 6170 Listen for an incoming connection
yading@10 6171 .IP "\fBtimeout=\fR\fImicroseconds\fR" 4
yading@10 6172 .IX Item "timeout=microseconds"
yading@10 6173 In read mode: if no data arrived in more than this time interval, raise error.
yading@10 6174 In write mode: if socket cannot be written in more than this time interval, raise error.
yading@10 6175 This also sets timeout on \s-1TCP\s0 connection establishing.
yading@10 6176 .Sp
yading@10 6177 .Vb 2
yading@10 6178 \& ffmpeg \-i <input> \-f <format> tcp://<hostname>:<port>?listen
yading@10 6179 \& ffplay tcp://<hostname>:<port>
yading@10 6180 .Ve
yading@10 6181 .SS "tls"
yading@10 6182 .IX Subsection "tls"
yading@10 6183 Transport Layer Security/Secure Sockets Layer
yading@10 6184 .PP
yading@10 6185 The required syntax for a \s-1TLS/SSL\s0 url is:
yading@10 6186 .PP
yading@10 6187 .Vb 1
yading@10 6188 \& tls://<hostname>:<port>[?<options>]
yading@10 6189 .Ve
yading@10 6190 .IP "\fBlisten\fR" 4
yading@10 6191 .IX Item "listen"
yading@10 6192 Act as a server, listening for an incoming connection.
yading@10 6193 .IP "\fBcafile=\fR\fIfilename\fR" 4
yading@10 6194 .IX Item "cafile=filename"
yading@10 6195 Certificate authority file. The file must be in OpenSSL \s-1PEM\s0 format.
yading@10 6196 .IP "\fBcert=\fR\fIfilename\fR" 4
yading@10 6197 .IX Item "cert=filename"
yading@10 6198 Certificate file. The file must be in OpenSSL \s-1PEM\s0 format.
yading@10 6199 .IP "\fBkey=\fR\fIfilename\fR" 4
yading@10 6200 .IX Item "key=filename"
yading@10 6201 Private key file.
yading@10 6202 .IP "\fBverify=\fR\fI0|1\fR" 4
yading@10 6203 .IX Item "verify=0|1"
yading@10 6204 Verify the peer's certificate.
yading@10 6205 .PP
yading@10 6206 Example command lines:
yading@10 6207 .PP
yading@10 6208 To create a \s-1TLS/SSL\s0 server that serves an input stream.
yading@10 6209 .PP
yading@10 6210 .Vb 1
yading@10 6211 \& ffmpeg \-i <input> \-f <format> tls://<hostname>:<port>?listen&cert=<server.crt>&key=<server.key>
yading@10 6212 .Ve
yading@10 6213 .PP
yading@10 6214 To play back a stream from the \s-1TLS/SSL\s0 server using \fBffplay\fR:
yading@10 6215 .PP
yading@10 6216 .Vb 1
yading@10 6217 \& ffplay tls://<hostname>:<port>
yading@10 6218 .Ve
yading@10 6219 .SS "udp"
yading@10 6220 .IX Subsection "udp"
yading@10 6221 User Datagram Protocol.
yading@10 6222 .PP
yading@10 6223 The required syntax for a \s-1UDP\s0 url is:
yading@10 6224 .PP
yading@10 6225 .Vb 1
yading@10 6226 \& udp://<hostname>:<port>[?<options>]
yading@10 6227 .Ve
yading@10 6228 .PP
yading@10 6229 \&\fIoptions\fR contains a list of &\-separated options of the form \fIkey\fR=\fIval\fR.
yading@10 6230 .PP
yading@10 6231 In case threading is enabled on the system, a circular buffer is used
yading@10 6232 to store the incoming data, which allows to reduce loss of data due to
yading@10 6233 \&\s-1UDP\s0 socket buffer overruns. The \fIfifo_size\fR and
yading@10 6234 \&\fIoverrun_nonfatal\fR options are related to this buffer.
yading@10 6235 .PP
yading@10 6236 The list of supported options follows.
yading@10 6237 .IP "\fBbuffer_size=\fR\fIsize\fR" 4
yading@10 6238 .IX Item "buffer_size=size"
yading@10 6239 Set the \s-1UDP\s0 socket buffer size in bytes. This is used both for the
yading@10 6240 receiving and the sending buffer size.
yading@10 6241 .IP "\fBlocalport=\fR\fIport\fR" 4
yading@10 6242 .IX Item "localport=port"
yading@10 6243 Override the local \s-1UDP\s0 port to bind with.
yading@10 6244 .IP "\fBlocaladdr=\fR\fIaddr\fR" 4
yading@10 6245 .IX Item "localaddr=addr"
yading@10 6246 Choose the local \s-1IP\s0 address. This is useful e.g. if sending multicast
yading@10 6247 and the host has multiple interfaces, where the user can choose
yading@10 6248 which interface to send on by specifying the \s-1IP\s0 address of that interface.
yading@10 6249 .IP "\fBpkt_size=\fR\fIsize\fR" 4
yading@10 6250 .IX Item "pkt_size=size"
yading@10 6251 Set the size in bytes of \s-1UDP\s0 packets.
yading@10 6252 .IP "\fBreuse=\fR\fI1|0\fR" 4
yading@10 6253 .IX Item "reuse=1|0"
yading@10 6254 Explicitly allow or disallow reusing \s-1UDP\s0 sockets.
yading@10 6255 .IP "\fBttl=\fR\fIttl\fR" 4
yading@10 6256 .IX Item "ttl=ttl"
yading@10 6257 Set the time to live value (for multicast only).
yading@10 6258 .IP "\fBconnect=\fR\fI1|0\fR" 4
yading@10 6259 .IX Item "connect=1|0"
yading@10 6260 Initialize the \s-1UDP\s0 socket with \f(CW\*(C`connect()\*(C'\fR. In this case, the
yading@10 6261 destination address can't be changed with ff_udp_set_remote_url later.
yading@10 6262 If the destination address isn't known at the start, this option can
yading@10 6263 be specified in ff_udp_set_remote_url, too.
yading@10 6264 This allows finding out the source address for the packets with getsockname,
yading@10 6265 and makes writes return with \s-1AVERROR\s0(\s-1ECONNREFUSED\s0) if \*(L"destination
yading@10 6266 unreachable\*(R" is received.
yading@10 6267 For receiving, this gives the benefit of only receiving packets from
yading@10 6268 the specified peer address/port.
yading@10 6269 .IP "\fBsources=\fR\fIaddress\fR\fB[,\fR\fIaddress\fR\fB]\fR" 4
yading@10 6270 .IX Item "sources=address[,address]"
yading@10 6271 Only receive packets sent to the multicast group from one of the
yading@10 6272 specified sender \s-1IP\s0 addresses.
yading@10 6273 .IP "\fBblock=\fR\fIaddress\fR\fB[,\fR\fIaddress\fR\fB]\fR" 4
yading@10 6274 .IX Item "block=address[,address]"
yading@10 6275 Ignore packets sent to the multicast group from the specified
yading@10 6276 sender \s-1IP\s0 addresses.
yading@10 6277 .IP "\fBfifo_size=\fR\fIunits\fR" 4
yading@10 6278 .IX Item "fifo_size=units"
yading@10 6279 Set the \s-1UDP\s0 receiving circular buffer size, expressed as a number of
yading@10 6280 packets with size of 188 bytes. If not specified defaults to 7*4096.
yading@10 6281 .IP "\fBoverrun_nonfatal=\fR\fI1|0\fR" 4
yading@10 6282 .IX Item "overrun_nonfatal=1|0"
yading@10 6283 Survive in case of \s-1UDP\s0 receiving circular buffer overrun. Default
yading@10 6284 value is 0.
yading@10 6285 .IP "\fBtimeout=\fR\fImicroseconds\fR" 4
yading@10 6286 .IX Item "timeout=microseconds"
yading@10 6287 In read mode: if no data arrived in more than this time interval, raise error.
yading@10 6288 .PP
yading@10 6289 Some usage examples of the \s-1UDP\s0 protocol with \fBffmpeg\fR follow.
yading@10 6290 .PP
yading@10 6291 To stream over \s-1UDP\s0 to a remote endpoint:
yading@10 6292 .PP
yading@10 6293 .Vb 1
yading@10 6294 \& ffmpeg \-i <input> \-f <format> udp://<hostname>:<port>
yading@10 6295 .Ve
yading@10 6296 .PP
yading@10 6297 To stream in mpegts format over \s-1UDP\s0 using 188 sized \s-1UDP\s0 packets, using a large input buffer:
yading@10 6298 .PP
yading@10 6299 .Vb 1
yading@10 6300 \& ffmpeg \-i <input> \-f mpegts udp://<hostname>:<port>?pkt_size=188&buffer_size=65535
yading@10 6301 .Ve
yading@10 6302 .PP
yading@10 6303 To receive over \s-1UDP\s0 from a remote endpoint:
yading@10 6304 .PP
yading@10 6305 .Vb 1
yading@10 6306 \& ffmpeg \-i udp://[<multicast\-address>]:<port>
yading@10 6307 .Ve
yading@10 6308 .SH "DEVICE OPTIONS"
yading@10 6309 .IX Header "DEVICE OPTIONS"
yading@10 6310 The libavdevice library provides the same interface as
yading@10 6311 libavformat. Namely, an input device is considered like a demuxer, and
yading@10 6312 an output device like a muxer, and the interface and generic device
yading@10 6313 options are the same provided by libavformat (see the ffmpeg-formats
yading@10 6314 manual).
yading@10 6315 .PP
yading@10 6316 In addition each input or output device may support so-called private
yading@10 6317 options, which are specific for that component.
yading@10 6318 .PP
yading@10 6319 Options may be set by specifying \-\fIoption\fR \fIvalue\fR in the
yading@10 6320 FFmpeg tools, or by setting the value explicitly in the device
yading@10 6321 \&\f(CW\*(C`AVFormatContext\*(C'\fR options or using the \fIlibavutil/opt.h\fR \s-1API\s0
yading@10 6322 for programmatic use.
yading@10 6323 .SH "INPUT DEVICES"
yading@10 6324 .IX Header "INPUT DEVICES"
yading@10 6325 Input devices are configured elements in FFmpeg which allow to access
yading@10 6326 the data coming from a multimedia device attached to your system.
yading@10 6327 .PP
yading@10 6328 When you configure your FFmpeg build, all the supported input devices
yading@10 6329 are enabled by default. You can list all available ones using the
yading@10 6330 configure option \*(L"\-\-list\-indevs\*(R".
yading@10 6331 .PP
yading@10 6332 You can disable all the input devices using the configure option
yading@10 6333 \&\*(L"\-\-disable\-indevs\*(R", and selectively enable an input device using the
yading@10 6334 option "\-\-enable\-indev=\fI\s-1INDEV\s0\fR\*(L", or you can disable a particular
yading@10 6335 input device using the option \*(R"\-\-disable\-indev=\fI\s-1INDEV\s0\fR".
yading@10 6336 .PP
yading@10 6337 The option \*(L"\-formats\*(R" of the ff* tools will display the list of
yading@10 6338 supported input devices (amongst the demuxers).
yading@10 6339 .PP
yading@10 6340 A description of the currently available input devices follows.
yading@10 6341 .SS "alsa"
yading@10 6342 .IX Subsection "alsa"
yading@10 6343 \&\s-1ALSA\s0 (Advanced Linux Sound Architecture) input device.
yading@10 6344 .PP
yading@10 6345 To enable this input device during configuration you need libasound
yading@10 6346 installed on your system.
yading@10 6347 .PP
yading@10 6348 This device allows capturing from an \s-1ALSA\s0 device. The name of the
yading@10 6349 device to capture has to be an \s-1ALSA\s0 card identifier.
yading@10 6350 .PP
yading@10 6351 An \s-1ALSA\s0 identifier has the syntax:
yading@10 6352 .PP
yading@10 6353 .Vb 1
yading@10 6354 \& hw:<CARD>[,<DEV>[,<SUBDEV>]]
yading@10 6355 .Ve
yading@10 6356 .PP
yading@10 6357 where the \fI\s-1DEV\s0\fR and \fI\s-1SUBDEV\s0\fR components are optional.
yading@10 6358 .PP
yading@10 6359 The three arguments (in order: \fI\s-1CARD\s0\fR,\fI\s-1DEV\s0\fR,\fI\s-1SUBDEV\s0\fR)
yading@10 6360 specify card number or identifier, device number and subdevice number
yading@10 6361 (\-1 means any).
yading@10 6362 .PP
yading@10 6363 To see the list of cards currently recognized by your system check the
yading@10 6364 files \fI/proc/asound/cards\fR and \fI/proc/asound/devices\fR.
yading@10 6365 .PP
yading@10 6366 For example to capture with \fBffmpeg\fR from an \s-1ALSA\s0 device with
yading@10 6367 card id 0, you may run the command:
yading@10 6368 .PP
yading@10 6369 .Vb 1
yading@10 6370 \& ffmpeg \-f alsa \-i hw:0 alsaout.wav
yading@10 6371 .Ve
yading@10 6372 .PP
yading@10 6373 For more information see:
yading@10 6374 <\fBhttp://www.alsa\-project.org/alsa\-doc/alsa\-lib/pcm.html\fR>
yading@10 6375 .SS "bktr"
yading@10 6376 .IX Subsection "bktr"
yading@10 6377 \&\s-1BSD\s0 video input device.
yading@10 6378 .SS "dshow"
yading@10 6379 .IX Subsection "dshow"
yading@10 6380 Windows DirectShow input device.
yading@10 6381 .PP
yading@10 6382 DirectShow support is enabled when FFmpeg is built with the mingw\-w64 project.
yading@10 6383 Currently only audio and video devices are supported.
yading@10 6384 .PP
yading@10 6385 Multiple devices may be opened as separate inputs, but they may also be
yading@10 6386 opened on the same input, which should improve synchronism between them.
yading@10 6387 .PP
yading@10 6388 The input name should be in the format:
yading@10 6389 .PP
yading@10 6390 .Vb 1
yading@10 6391 \& <TYPE>=<NAME>[:<TYPE>=<NAME>]
yading@10 6392 .Ve
yading@10 6393 .PP
yading@10 6394 where \fI\s-1TYPE\s0\fR can be either \fIaudio\fR or \fIvideo\fR,
yading@10 6395 and \fI\s-1NAME\s0\fR is the device's name.
yading@10 6396 .PP
yading@10 6397 \fIOptions\fR
yading@10 6398 .IX Subsection "Options"
yading@10 6399 .PP
yading@10 6400 If no options are specified, the device's defaults are used.
yading@10 6401 If the device does not support the requested options, it will
yading@10 6402 fail to open.
yading@10 6403 .IP "\fBvideo_size\fR" 4
yading@10 6404 .IX Item "video_size"
yading@10 6405 Set the video size in the captured video.
yading@10 6406 .IP "\fBframerate\fR" 4
yading@10 6407 .IX Item "framerate"
yading@10 6408 Set the frame rate in the captured video.
yading@10 6409 .IP "\fBsample_rate\fR" 4
yading@10 6410 .IX Item "sample_rate"
yading@10 6411 Set the sample rate (in Hz) of the captured audio.
yading@10 6412 .IP "\fBsample_size\fR" 4
yading@10 6413 .IX Item "sample_size"
yading@10 6414 Set the sample size (in bits) of the captured audio.
yading@10 6415 .IP "\fBchannels\fR" 4
yading@10 6416 .IX Item "channels"
yading@10 6417 Set the number of channels in the captured audio.
yading@10 6418 .IP "\fBlist_devices\fR" 4
yading@10 6419 .IX Item "list_devices"
yading@10 6420 If set to \fBtrue\fR, print a list of devices and exit.
yading@10 6421 .IP "\fBlist_options\fR" 4
yading@10 6422 .IX Item "list_options"
yading@10 6423 If set to \fBtrue\fR, print a list of selected device's options
yading@10 6424 and exit.
yading@10 6425 .IP "\fBvideo_device_number\fR" 4
yading@10 6426 .IX Item "video_device_number"
yading@10 6427 Set video device number for devices with same name (starts at 0,
yading@10 6428 defaults to 0).
yading@10 6429 .IP "\fBaudio_device_number\fR" 4
yading@10 6430 .IX Item "audio_device_number"
yading@10 6431 Set audio device number for devices with same name (starts at 0,
yading@10 6432 defaults to 0).
yading@10 6433 .IP "\fBpixel_format\fR" 4
yading@10 6434 .IX Item "pixel_format"
yading@10 6435 Select pixel format to be used by DirectShow. This may only be set when
yading@10 6436 the video codec is not set or set to rawvideo.
yading@10 6437 .IP "\fBaudio_buffer_size\fR" 4
yading@10 6438 .IX Item "audio_buffer_size"
yading@10 6439 Set audio device buffer size in milliseconds (which can directly
yading@10 6440 impact latency, depending on the device).
yading@10 6441 Defaults to using the audio device's
yading@10 6442 default buffer size (typically some multiple of 500ms).
yading@10 6443 Setting this value too low can degrade performance.
yading@10 6444 See also
yading@10 6445 <\fBhttp://msdn.microsoft.com/en\-us/library/windows/desktop/dd377582(v=vs.85).aspx\fR>
yading@10 6446 .PP
yading@10 6447 \fIExamples\fR
yading@10 6448 .IX Subsection "Examples"
yading@10 6449 .IP "\(bu" 4
yading@10 6450 Print the list of DirectShow supported devices and exit:
yading@10 6451 .Sp
yading@10 6452 .Vb 1
yading@10 6453 \& $ ffmpeg \-list_devices true \-f dshow \-i dummy
yading@10 6454 .Ve
yading@10 6455 .IP "\(bu" 4
yading@10 6456 Open video device \fICamera\fR:
yading@10 6457 .Sp
yading@10 6458 .Vb 1
yading@10 6459 \& $ ffmpeg \-f dshow \-i video="Camera"
yading@10 6460 .Ve
yading@10 6461 .IP "\(bu" 4
yading@10 6462 Open second video device with name \fICamera\fR:
yading@10 6463 .Sp
yading@10 6464 .Vb 1
yading@10 6465 \& $ ffmpeg \-f dshow \-video_device_number 1 \-i video="Camera"
yading@10 6466 .Ve
yading@10 6467 .IP "\(bu" 4
yading@10 6468 Open video device \fICamera\fR and audio device \fIMicrophone\fR:
yading@10 6469 .Sp
yading@10 6470 .Vb 1
yading@10 6471 \& $ ffmpeg \-f dshow \-i video="Camera":audio="Microphone"
yading@10 6472 .Ve
yading@10 6473 .IP "\(bu" 4
yading@10 6474 Print the list of supported options in selected device and exit:
yading@10 6475 .Sp
yading@10 6476 .Vb 1
yading@10 6477 \& $ ffmpeg \-list_options true \-f dshow \-i video="Camera"
yading@10 6478 .Ve
yading@10 6479 .SS "dv1394"
yading@10 6480 .IX Subsection "dv1394"
yading@10 6481 Linux \s-1DV\s0 1394 input device.
yading@10 6482 .SS "fbdev"
yading@10 6483 .IX Subsection "fbdev"
yading@10 6484 Linux framebuffer input device.
yading@10 6485 .PP
yading@10 6486 The Linux framebuffer is a graphic hardware-independent abstraction
yading@10 6487 layer to show graphics on a computer monitor, typically on the
yading@10 6488 console. It is accessed through a file device node, usually
yading@10 6489 \&\fI/dev/fb0\fR.
yading@10 6490 .PP
yading@10 6491 For more detailed information read the file
yading@10 6492 Documentation/fb/framebuffer.txt included in the Linux source tree.
yading@10 6493 .PP
yading@10 6494 To record from the framebuffer device \fI/dev/fb0\fR with
yading@10 6495 \&\fBffmpeg\fR:
yading@10 6496 .PP
yading@10 6497 .Vb 1
yading@10 6498 \& ffmpeg \-f fbdev \-r 10 \-i /dev/fb0 out.avi
yading@10 6499 .Ve
yading@10 6500 .PP
yading@10 6501 You can take a single screenshot image with the command:
yading@10 6502 .PP
yading@10 6503 .Vb 1
yading@10 6504 \& ffmpeg \-f fbdev \-frames:v 1 \-r 1 \-i /dev/fb0 screenshot.jpeg
yading@10 6505 .Ve
yading@10 6506 .PP
yading@10 6507 See also <\fBhttp://linux\-fbdev.sourceforge.net/\fR>, and \fIfbset\fR\|(1).
yading@10 6508 .SS "iec61883"
yading@10 6509 .IX Subsection "iec61883"
yading@10 6510 FireWire \s-1DV/HDV\s0 input device using libiec61883.
yading@10 6511 .PP
yading@10 6512 To enable this input device, you need libiec61883, libraw1394 and
yading@10 6513 libavc1394 installed on your system. Use the configure option
yading@10 6514 \&\f(CW\*(C`\-\-enable\-libiec61883\*(C'\fR to compile with the device enabled.
yading@10 6515 .PP
yading@10 6516 The iec61883 capture device supports capturing from a video device
yading@10 6517 connected via \s-1IEEE1394\s0 (FireWire), using libiec61883 and the new Linux
yading@10 6518 FireWire stack (juju). This is the default \s-1DV/HDV\s0 input method in Linux
yading@10 6519 Kernel 2.6.37 and later, since the old FireWire stack was removed.
yading@10 6520 .PP
yading@10 6521 Specify the FireWire port to be used as input file, or \*(L"auto\*(R"
yading@10 6522 to choose the first port connected.
yading@10 6523 .PP
yading@10 6524 \fIOptions\fR
yading@10 6525 .IX Subsection "Options"
yading@10 6526 .IP "\fBdvtype\fR" 4
yading@10 6527 .IX Item "dvtype"
yading@10 6528 Override autodetection of \s-1DV/HDV\s0. This should only be used if auto
yading@10 6529 detection does not work, or if usage of a different device type
yading@10 6530 should be prohibited. Treating a \s-1DV\s0 device as \s-1HDV\s0 (or vice versa) will
yading@10 6531 not work and result in undefined behavior.
yading@10 6532 The values \fBauto\fR, \fBdv\fR and \fBhdv\fR are supported.
yading@10 6533 .IP "\fBdvbuffer\fR" 4
yading@10 6534 .IX Item "dvbuffer"
yading@10 6535 Set maxiumum size of buffer for incoming data, in frames. For \s-1DV\s0, this
yading@10 6536 is an exact value. For \s-1HDV\s0, it is not frame exact, since \s-1HDV\s0 does
yading@10 6537 not have a fixed frame size.
yading@10 6538 .IP "\fBdvguid\fR" 4
yading@10 6539 .IX Item "dvguid"
yading@10 6540 Select the capture device by specifying it's \s-1GUID\s0. Capturing will only
yading@10 6541 be performed from the specified device and fails if no device with the
yading@10 6542 given \s-1GUID\s0 is found. This is useful to select the input if multiple
yading@10 6543 devices are connected at the same time.
yading@10 6544 Look at /sys/bus/firewire/devices to find out the GUIDs.
yading@10 6545 .PP
yading@10 6546 \fIExamples\fR
yading@10 6547 .IX Subsection "Examples"
yading@10 6548 .IP "\(bu" 4
yading@10 6549 Grab and show the input of a FireWire \s-1DV/HDV\s0 device.
yading@10 6550 .Sp
yading@10 6551 .Vb 1
yading@10 6552 \& ffplay \-f iec61883 \-i auto
yading@10 6553 .Ve
yading@10 6554 .IP "\(bu" 4
yading@10 6555 Grab and record the input of a FireWire \s-1DV/HDV\s0 device,
yading@10 6556 using a packet buffer of 100000 packets if the source is \s-1HDV\s0.
yading@10 6557 .Sp
yading@10 6558 .Vb 1
yading@10 6559 \& ffmpeg \-f iec61883 \-i auto \-hdvbuffer 100000 out.mpg
yading@10 6560 .Ve
yading@10 6561 .SS "jack"
yading@10 6562 .IX Subsection "jack"
yading@10 6563 \&\s-1JACK\s0 input device.
yading@10 6564 .PP
yading@10 6565 To enable this input device during configuration you need libjack
yading@10 6566 installed on your system.
yading@10 6567 .PP
yading@10 6568 A \s-1JACK\s0 input device creates one or more \s-1JACK\s0 writable clients, one for
yading@10 6569 each audio channel, with name \fIclient_name\fR:input_\fIN\fR, where
yading@10 6570 \&\fIclient_name\fR is the name provided by the application, and \fIN\fR
yading@10 6571 is a number which identifies the channel.
yading@10 6572 Each writable client will send the acquired data to the FFmpeg input
yading@10 6573 device.
yading@10 6574 .PP
yading@10 6575 Once you have created one or more \s-1JACK\s0 readable clients, you need to
yading@10 6576 connect them to one or more \s-1JACK\s0 writable clients.
yading@10 6577 .PP
yading@10 6578 To connect or disconnect \s-1JACK\s0 clients you can use the \fBjack_connect\fR
yading@10 6579 and \fBjack_disconnect\fR programs, or do it through a graphical interface,
yading@10 6580 for example with \fBqjackctl\fR.
yading@10 6581 .PP
yading@10 6582 To list the \s-1JACK\s0 clients and their properties you can invoke the command
yading@10 6583 \&\fBjack_lsp\fR.
yading@10 6584 .PP
yading@10 6585 Follows an example which shows how to capture a \s-1JACK\s0 readable client
yading@10 6586 with \fBffmpeg\fR.
yading@10 6587 .PP
yading@10 6588 .Vb 2
yading@10 6589 \& # Create a JACK writable client with name "ffmpeg".
yading@10 6590 \& $ ffmpeg \-f jack \-i ffmpeg \-y out.wav
yading@10 6591 \&
yading@10 6592 \& # Start the sample jack_metro readable client.
yading@10 6593 \& $ jack_metro \-b 120 \-d 0.2 \-f 4000
yading@10 6594 \&
yading@10 6595 \& # List the current JACK clients.
yading@10 6596 \& $ jack_lsp \-c
yading@10 6597 \& system:capture_1
yading@10 6598 \& system:capture_2
yading@10 6599 \& system:playback_1
yading@10 6600 \& system:playback_2
yading@10 6601 \& ffmpeg:input_1
yading@10 6602 \& metro:120_bpm
yading@10 6603 \&
yading@10 6604 \& # Connect metro to the ffmpeg writable client.
yading@10 6605 \& $ jack_connect metro:120_bpm ffmpeg:input_1
yading@10 6606 .Ve
yading@10 6607 .PP
yading@10 6608 For more information read:
yading@10 6609 <\fBhttp://jackaudio.org/\fR>
yading@10 6610 .SS "lavfi"
yading@10 6611 .IX Subsection "lavfi"
yading@10 6612 Libavfilter input virtual device.
yading@10 6613 .PP
yading@10 6614 This input device reads data from the open output pads of a libavfilter
yading@10 6615 filtergraph.
yading@10 6616 .PP
yading@10 6617 For each filtergraph open output, the input device will create a
yading@10 6618 corresponding stream which is mapped to the generated output. Currently
yading@10 6619 only video data is supported. The filtergraph is specified through the
yading@10 6620 option \fBgraph\fR.
yading@10 6621 .PP
yading@10 6622 \fIOptions\fR
yading@10 6623 .IX Subsection "Options"
yading@10 6624 .IP "\fBgraph\fR" 4
yading@10 6625 .IX Item "graph"
yading@10 6626 Specify the filtergraph to use as input. Each video open output must be
yading@10 6627 labelled by a unique string of the form "out\fIN\fR", where \fIN\fR is a
yading@10 6628 number starting from 0 corresponding to the mapped input stream
yading@10 6629 generated by the device.
yading@10 6630 The first unlabelled output is automatically assigned to the \*(L"out0\*(R"
yading@10 6631 label, but all the others need to be specified explicitly.
yading@10 6632 .Sp
yading@10 6633 If not specified defaults to the filename specified for the input
yading@10 6634 device.
yading@10 6635 .IP "\fBgraph_file\fR" 4
yading@10 6636 .IX Item "graph_file"
yading@10 6637 Set the filename of the filtergraph to be read and sent to the other
yading@10 6638 filters. Syntax of the filtergraph is the same as the one specified by
yading@10 6639 the option \fIgraph\fR.
yading@10 6640 .PP
yading@10 6641 \fIExamples\fR
yading@10 6642 .IX Subsection "Examples"
yading@10 6643 .IP "\(bu" 4
yading@10 6644 Create a color video stream and play it back with \fBffplay\fR:
yading@10 6645 .Sp
yading@10 6646 .Vb 1
yading@10 6647 \& ffplay \-f lavfi \-graph "color=c=pink [out0]" dummy
yading@10 6648 .Ve
yading@10 6649 .IP "\(bu" 4
yading@10 6650 As the previous example, but use filename for specifying the graph
yading@10 6651 description, and omit the \*(L"out0\*(R" label:
yading@10 6652 .Sp
yading@10 6653 .Vb 1
yading@10 6654 \& ffplay \-f lavfi color=c=pink
yading@10 6655 .Ve
yading@10 6656 .IP "\(bu" 4
yading@10 6657 Create three different video test filtered sources and play them:
yading@10 6658 .Sp
yading@10 6659 .Vb 1
yading@10 6660 \& ffplay \-f lavfi \-graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
yading@10 6661 .Ve
yading@10 6662 .IP "\(bu" 4
yading@10 6663 Read an audio stream from a file using the amovie source and play it
yading@10 6664 back with \fBffplay\fR:
yading@10 6665 .Sp
yading@10 6666 .Vb 1
yading@10 6667 \& ffplay \-f lavfi "amovie=test.wav"
yading@10 6668 .Ve
yading@10 6669 .IP "\(bu" 4
yading@10 6670 Read an audio stream and a video stream and play it back with
yading@10 6671 \&\fBffplay\fR:
yading@10 6672 .Sp
yading@10 6673 .Vb 1
yading@10 6674 \& ffplay \-f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
yading@10 6675 .Ve
yading@10 6676 .SS "libdc1394"
yading@10 6677 .IX Subsection "libdc1394"
yading@10 6678 \&\s-1IIDC1394\s0 input device, based on libdc1394 and libraw1394.
yading@10 6679 .SS "openal"
yading@10 6680 .IX Subsection "openal"
yading@10 6681 The OpenAL input device provides audio capture on all systems with a
yading@10 6682 working OpenAL 1.1 implementation.
yading@10 6683 .PP
yading@10 6684 To enable this input device during configuration, you need OpenAL
yading@10 6685 headers and libraries installed on your system, and need to configure
yading@10 6686 FFmpeg with \f(CW\*(C`\-\-enable\-openal\*(C'\fR.
yading@10 6687 .PP
yading@10 6688 OpenAL headers and libraries should be provided as part of your OpenAL
yading@10 6689 implementation, or as an additional download (an \s-1SDK\s0). Depending on your
yading@10 6690 installation you may need to specify additional flags via the
yading@10 6691 \&\f(CW\*(C`\-\-extra\-cflags\*(C'\fR and \f(CW\*(C`\-\-extra\-ldflags\*(C'\fR for allowing the build
yading@10 6692 system to locate the OpenAL headers and libraries.
yading@10 6693 .PP
yading@10 6694 An incomplete list of OpenAL implementations follows:
yading@10 6695 .IP "\fBCreative\fR" 4
yading@10 6696 .IX Item "Creative"
yading@10 6697 The official Windows implementation, providing hardware acceleration
yading@10 6698 with supported devices and software fallback.
yading@10 6699 See <\fBhttp://openal.org/\fR>.
yading@10 6700 .IP "\fBOpenAL Soft\fR" 4
yading@10 6701 .IX Item "OpenAL Soft"
yading@10 6702 Portable, open source (\s-1LGPL\s0) software implementation. Includes
yading@10 6703 backends for the most common sound APIs on the Windows, Linux,
yading@10 6704 Solaris, and \s-1BSD\s0 operating systems.
yading@10 6705 See <\fBhttp://kcat.strangesoft.net/openal.html\fR>.
yading@10 6706 .IP "\fBApple\fR" 4
yading@10 6707 .IX Item "Apple"
yading@10 6708 OpenAL is part of Core Audio, the official Mac \s-1OS\s0 X Audio interface.
yading@10 6709 See <\fBhttp://developer.apple.com/technologies/mac/audio\-and\-video.html\fR>
yading@10 6710 .PP
yading@10 6711 This device allows to capture from an audio input device handled
yading@10 6712 through OpenAL.
yading@10 6713 .PP
yading@10 6714 You need to specify the name of the device to capture in the provided
yading@10 6715 filename. If the empty string is provided, the device will
yading@10 6716 automatically select the default device. You can get the list of the
yading@10 6717 supported devices by using the option \fIlist_devices\fR.
yading@10 6718 .PP
yading@10 6719 \fIOptions\fR
yading@10 6720 .IX Subsection "Options"
yading@10 6721 .IP "\fBchannels\fR" 4
yading@10 6722 .IX Item "channels"
yading@10 6723 Set the number of channels in the captured audio. Only the values
yading@10 6724 \&\fB1\fR (monaural) and \fB2\fR (stereo) are currently supported.
yading@10 6725 Defaults to \fB2\fR.
yading@10 6726 .IP "\fBsample_size\fR" 4
yading@10 6727 .IX Item "sample_size"
yading@10 6728 Set the sample size (in bits) of the captured audio. Only the values
yading@10 6729 \&\fB8\fR and \fB16\fR are currently supported. Defaults to
yading@10 6730 \&\fB16\fR.
yading@10 6731 .IP "\fBsample_rate\fR" 4
yading@10 6732 .IX Item "sample_rate"
yading@10 6733 Set the sample rate (in Hz) of the captured audio.
yading@10 6734 Defaults to \fB44.1k\fR.
yading@10 6735 .IP "\fBlist_devices\fR" 4
yading@10 6736 .IX Item "list_devices"
yading@10 6737 If set to \fBtrue\fR, print a list of devices and exit.
yading@10 6738 Defaults to \fBfalse\fR.
yading@10 6739 .PP
yading@10 6740 \fIExamples\fR
yading@10 6741 .IX Subsection "Examples"
yading@10 6742 .PP
yading@10 6743 Print the list of OpenAL supported devices and exit:
yading@10 6744 .PP
yading@10 6745 .Vb 1
yading@10 6746 \& $ ffmpeg \-list_devices true \-f openal \-i dummy out.ogg
yading@10 6747 .Ve
yading@10 6748 .PP
yading@10 6749 Capture from the OpenAL device \fI\s-1DR\-BT101\s0 via PulseAudio\fR:
yading@10 6750 .PP
yading@10 6751 .Vb 1
yading@10 6752 \& $ ffmpeg \-f openal \-i \*(AqDR\-BT101 via PulseAudio\*(Aq out.ogg
yading@10 6753 .Ve
yading@10 6754 .PP
yading@10 6755 Capture from the default device (note the empty string '' as filename):
yading@10 6756 .PP
yading@10 6757 .Vb 1
yading@10 6758 \& $ ffmpeg \-f openal \-i \*(Aq\*(Aq out.ogg
yading@10 6759 .Ve
yading@10 6760 .PP
yading@10 6761 Capture from two devices simultaneously, writing to two different files,
yading@10 6762 within the same \fBffmpeg\fR command:
yading@10 6763 .PP
yading@10 6764 .Vb 1
yading@10 6765 \& $ ffmpeg \-f openal \-i \*(AqDR\-BT101 via PulseAudio\*(Aq out1.ogg \-f openal \-i \*(AqALSA Default\*(Aq out2.ogg
yading@10 6766 .Ve
yading@10 6767 .PP
yading@10 6768 Note: not all OpenAL implementations support multiple simultaneous capture \-
yading@10 6769 try the latest OpenAL Soft if the above does not work.
yading@10 6770 .SS "oss"
yading@10 6771 .IX Subsection "oss"
yading@10 6772 Open Sound System input device.
yading@10 6773 .PP
yading@10 6774 The filename to provide to the input device is the device node
yading@10 6775 representing the \s-1OSS\s0 input device, and is usually set to
yading@10 6776 \&\fI/dev/dsp\fR.
yading@10 6777 .PP
yading@10 6778 For example to grab from \fI/dev/dsp\fR using \fBffmpeg\fR use the
yading@10 6779 command:
yading@10 6780 .PP
yading@10 6781 .Vb 1
yading@10 6782 \& ffmpeg \-f oss \-i /dev/dsp /tmp/oss.wav
yading@10 6783 .Ve
yading@10 6784 .PP
yading@10 6785 For more information about \s-1OSS\s0 see:
yading@10 6786 <\fBhttp://manuals.opensound.com/usersguide/dsp.html\fR>
yading@10 6787 .SS "pulse"
yading@10 6788 .IX Subsection "pulse"
yading@10 6789 pulseaudio input device.
yading@10 6790 .PP
yading@10 6791 To enable this input device during configuration you need libpulse-simple
yading@10 6792 installed in your system.
yading@10 6793 .PP
yading@10 6794 The filename to provide to the input device is a source device or the
yading@10 6795 string \*(L"default\*(R"
yading@10 6796 .PP
yading@10 6797 To list the pulse source devices and their properties you can invoke
yading@10 6798 the command \fBpactl list sources\fR.
yading@10 6799 .PP
yading@10 6800 .Vb 1
yading@10 6801 \& ffmpeg \-f pulse \-i default /tmp/pulse.wav
yading@10 6802 .Ve
yading@10 6803 .PP
yading@10 6804 \fI\fIserver\fI AVOption\fR
yading@10 6805 .IX Subsection "server AVOption"
yading@10 6806 .PP
yading@10 6807 The syntax is:
yading@10 6808 .PP
yading@10 6809 .Vb 1
yading@10 6810 \& \-server <server name>
yading@10 6811 .Ve
yading@10 6812 .PP
yading@10 6813 Connects to a specific server.
yading@10 6814 .PP
yading@10 6815 \fI\fIname\fI AVOption\fR
yading@10 6816 .IX Subsection "name AVOption"
yading@10 6817 .PP
yading@10 6818 The syntax is:
yading@10 6819 .PP
yading@10 6820 .Vb 1
yading@10 6821 \& \-name <application name>
yading@10 6822 .Ve
yading@10 6823 .PP
yading@10 6824 Specify the application name pulse will use when showing active clients,
yading@10 6825 by default it is the \s-1LIBAVFORMAT_IDENT\s0 string
yading@10 6826 .PP
yading@10 6827 \fI\fIstream_name\fI AVOption\fR
yading@10 6828 .IX Subsection "stream_name AVOption"
yading@10 6829 .PP
yading@10 6830 The syntax is:
yading@10 6831 .PP
yading@10 6832 .Vb 1
yading@10 6833 \& \-stream_name <stream name>
yading@10 6834 .Ve
yading@10 6835 .PP
yading@10 6836 Specify the stream name pulse will use when showing active streams,
yading@10 6837 by default it is \*(L"record\*(R"
yading@10 6838 .PP
yading@10 6839 \fI\fIsample_rate\fI AVOption\fR
yading@10 6840 .IX Subsection "sample_rate AVOption"
yading@10 6841 .PP
yading@10 6842 The syntax is:
yading@10 6843 .PP
yading@10 6844 .Vb 1
yading@10 6845 \& \-sample_rate <samplerate>
yading@10 6846 .Ve
yading@10 6847 .PP
yading@10 6848 Specify the samplerate in Hz, by default 48kHz is used.
yading@10 6849 .PP
yading@10 6850 \fI\fIchannels\fI AVOption\fR
yading@10 6851 .IX Subsection "channels AVOption"
yading@10 6852 .PP
yading@10 6853 The syntax is:
yading@10 6854 .PP
yading@10 6855 .Vb 1
yading@10 6856 \& \-channels <N>
yading@10 6857 .Ve
yading@10 6858 .PP
yading@10 6859 Specify the channels in use, by default 2 (stereo) is set.
yading@10 6860 .PP
yading@10 6861 \fI\fIframe_size\fI AVOption\fR
yading@10 6862 .IX Subsection "frame_size AVOption"
yading@10 6863 .PP
yading@10 6864 The syntax is:
yading@10 6865 .PP
yading@10 6866 .Vb 1
yading@10 6867 \& \-frame_size <bytes>
yading@10 6868 .Ve
yading@10 6869 .PP
yading@10 6870 Specify the number of byte per frame, by default it is set to 1024.
yading@10 6871 .PP
yading@10 6872 \fI\fIfragment_size\fI AVOption\fR
yading@10 6873 .IX Subsection "fragment_size AVOption"
yading@10 6874 .PP
yading@10 6875 The syntax is:
yading@10 6876 .PP
yading@10 6877 .Vb 1
yading@10 6878 \& \-fragment_size <bytes>
yading@10 6879 .Ve
yading@10 6880 .PP
yading@10 6881 Specify the minimal buffering fragment in pulseaudio, it will affect the
yading@10 6882 audio latency. By default it is unset.
yading@10 6883 .SS "sndio"
yading@10 6884 .IX Subsection "sndio"
yading@10 6885 sndio input device.
yading@10 6886 .PP
yading@10 6887 To enable this input device during configuration you need libsndio
yading@10 6888 installed on your system.
yading@10 6889 .PP
yading@10 6890 The filename to provide to the input device is the device node
yading@10 6891 representing the sndio input device, and is usually set to
yading@10 6892 \&\fI/dev/audio0\fR.
yading@10 6893 .PP
yading@10 6894 For example to grab from \fI/dev/audio0\fR using \fBffmpeg\fR use the
yading@10 6895 command:
yading@10 6896 .PP
yading@10 6897 .Vb 1
yading@10 6898 \& ffmpeg \-f sndio \-i /dev/audio0 /tmp/oss.wav
yading@10 6899 .Ve
yading@10 6900 .SS "video4linux2, v4l2"
yading@10 6901 .IX Subsection "video4linux2, v4l2"
yading@10 6902 Video4Linux2 input video device.
yading@10 6903 .PP
yading@10 6904 \&\*(L"v4l2\*(R" can be used as alias for \*(L"video4linux2\*(R".
yading@10 6905 .PP
yading@10 6906 If FFmpeg is built with v4l\-utils support (by using the
yading@10 6907 \&\f(CW\*(C`\-\-enable\-libv4l2\*(C'\fR configure option), the device will always rely
yading@10 6908 on libv4l2.
yading@10 6909 .PP
yading@10 6910 The name of the device to grab is a file device node, usually Linux
yading@10 6911 systems tend to automatically create such nodes when the device
yading@10 6912 (e.g. an \s-1USB\s0 webcam) is plugged into the system, and has a name of the
yading@10 6913 kind \fI/dev/video\fIN\fI\fR, where \fIN\fR is a number associated to
yading@10 6914 the device.
yading@10 6915 .PP
yading@10 6916 Video4Linux2 devices usually support a limited set of
yading@10 6917 \&\fIwidth\fRx\fIheight\fR sizes and frame rates. You can check which are
yading@10 6918 supported using \fB\-list_formats all\fR for Video4Linux2 devices.
yading@10 6919 Some devices, like \s-1TV\s0 cards, support one or more standards. It is possible
yading@10 6920 to list all the supported standards using \fB\-list_standards all\fR.
yading@10 6921 .PP
yading@10 6922 The time base for the timestamps is 1 microsecond. Depending on the kernel
yading@10 6923 version and configuration, the timestamps may be derived from the real time
yading@10 6924 clock (origin at the Unix Epoch) or the monotonic clock (origin usually at
yading@10 6925 boot time, unaffected by \s-1NTP\s0 or manual changes to the clock). The
yading@10 6926 \&\fB\-timestamps abs\fR or \fB\-ts abs\fR option can be used to force
yading@10 6927 conversion into the real time clock.
yading@10 6928 .PP
yading@10 6929 Some usage examples of the video4linux2 device with \fBffmpeg\fR
yading@10 6930 and \fBffplay\fR:
yading@10 6931 .IP "\(bu" 4
yading@10 6932 Grab and show the input of a video4linux2 device:
yading@10 6933 .Sp
yading@10 6934 .Vb 1
yading@10 6935 \& ffplay \-f video4linux2 \-framerate 30 \-video_size hd720 /dev/video0
yading@10 6936 .Ve
yading@10 6937 .IP "\(bu" 4
yading@10 6938 Grab and record the input of a video4linux2 device, leave the
yading@10 6939 frame rate and size as previously set:
yading@10 6940 .Sp
yading@10 6941 .Vb 1
yading@10 6942 \& ffmpeg \-f video4linux2 \-input_format mjpeg \-i /dev/video0 out.mpeg
yading@10 6943 .Ve
yading@10 6944 .PP
yading@10 6945 For more information about Video4Linux, check <\fBhttp://linuxtv.org/\fR>.
yading@10 6946 .PP
yading@10 6947 \fIOptions\fR
yading@10 6948 .IX Subsection "Options"
yading@10 6949 .IP "\fBstandard\fR" 4
yading@10 6950 .IX Item "standard"
yading@10 6951 Set the standard. Must be the name of a supported standard. To get a
yading@10 6952 list of the supported standards, use the \fBlist_standards\fR
yading@10 6953 option.
yading@10 6954 .IP "\fBchannel\fR" 4
yading@10 6955 .IX Item "channel"
yading@10 6956 Set the input channel number. Default to \-1, which means using the
yading@10 6957 previously selected channel.
yading@10 6958 .IP "\fBvideo_size\fR" 4
yading@10 6959 .IX Item "video_size"
yading@10 6960 Set the video frame size. The argument must be a string in the form
yading@10 6961 \&\fI\s-1WIDTH\s0\fRx\fI\s-1HEIGHT\s0\fR or a valid size abbreviation.
yading@10 6962 .IP "\fBpixel_format\fR" 4
yading@10 6963 .IX Item "pixel_format"
yading@10 6964 Select the pixel format (only valid for raw video input).
yading@10 6965 .IP "\fBinput_format\fR" 4
yading@10 6966 .IX Item "input_format"
yading@10 6967 Set the preferred pixel format (for raw video) or a codec name.
yading@10 6968 This option allows to select the input format, when several are
yading@10 6969 available.
yading@10 6970 .IP "\fBframerate\fR" 4
yading@10 6971 .IX Item "framerate"
yading@10 6972 Set the preferred video frame rate.
yading@10 6973 .IP "\fBlist_formats\fR" 4
yading@10 6974 .IX Item "list_formats"
yading@10 6975 List available formats (supported pixel formats, codecs, and frame
yading@10 6976 sizes) and exit.
yading@10 6977 .Sp
yading@10 6978 Available values are:
yading@10 6979 .RS 4
yading@10 6980 .IP "\fBall\fR" 4
yading@10 6981 .IX Item "all"
yading@10 6982 Show all available (compressed and non-compressed) formats.
yading@10 6983 .IP "\fBraw\fR" 4
yading@10 6984 .IX Item "raw"
yading@10 6985 Show only raw video (non-compressed) formats.
yading@10 6986 .IP "\fBcompressed\fR" 4
yading@10 6987 .IX Item "compressed"
yading@10 6988 Show only compressed formats.
yading@10 6989 .RE
yading@10 6990 .RS 4
yading@10 6991 .RE
yading@10 6992 .IP "\fBlist_standards\fR" 4
yading@10 6993 .IX Item "list_standards"
yading@10 6994 List supported standards and exit.
yading@10 6995 .Sp
yading@10 6996 Available values are:
yading@10 6997 .RS 4
yading@10 6998 .IP "\fBall\fR" 4
yading@10 6999 .IX Item "all"
yading@10 7000 Show all supported standards.
yading@10 7001 .RE
yading@10 7002 .RS 4
yading@10 7003 .RE
yading@10 7004 .IP "\fBtimestamps, ts\fR" 4
yading@10 7005 .IX Item "timestamps, ts"
yading@10 7006 Set type of timestamps for grabbed frames.
yading@10 7007 .Sp
yading@10 7008 Available values are:
yading@10 7009 .RS 4
yading@10 7010 .IP "\fBdefault\fR" 4
yading@10 7011 .IX Item "default"
yading@10 7012 Use timestamps from the kernel.
yading@10 7013 .IP "\fBabs\fR" 4
yading@10 7014 .IX Item "abs"
yading@10 7015 Use absolute timestamps (wall clock).
yading@10 7016 .IP "\fBmono2abs\fR" 4
yading@10 7017 .IX Item "mono2abs"
yading@10 7018 Force conversion from monotonic to absolute timestamps.
yading@10 7019 .RE
yading@10 7020 .RS 4
yading@10 7021 .Sp
yading@10 7022 Default value is \f(CW\*(C`default\*(C'\fR.
yading@10 7023 .RE
yading@10 7024 .SS "vfwcap"
yading@10 7025 .IX Subsection "vfwcap"
yading@10 7026 VfW (Video for Windows) capture input device.
yading@10 7027 .PP
yading@10 7028 The filename passed as input is the capture driver number, ranging from
yading@10 7029 0 to 9. You may use \*(L"list\*(R" as filename to print a list of drivers. Any
yading@10 7030 other filename will be interpreted as device number 0.
yading@10 7031 .SS "x11grab"
yading@10 7032 .IX Subsection "x11grab"
yading@10 7033 X11 video input device.
yading@10 7034 .PP
yading@10 7035 This device allows to capture a region of an X11 display.
yading@10 7036 .PP
yading@10 7037 The filename passed as input has the syntax:
yading@10 7038 .PP
yading@10 7039 .Vb 1
yading@10 7040 \& [<hostname>]:<display_number>.<screen_number>[+<x_offset>,<y_offset>]
yading@10 7041 .Ve
yading@10 7042 .PP
yading@10 7043 \&\fIhostname\fR:\fIdisplay_number\fR.\fIscreen_number\fR specifies the
yading@10 7044 X11 display name of the screen to grab from. \fIhostname\fR can be
yading@10 7045 omitted, and defaults to \*(L"localhost\*(R". The environment variable
yading@10 7046 \&\fB\s-1DISPLAY\s0\fR contains the default display name.
yading@10 7047 .PP
yading@10 7048 \&\fIx_offset\fR and \fIy_offset\fR specify the offsets of the grabbed
yading@10 7049 area with respect to the top-left border of the X11 screen. They
yading@10 7050 default to 0.
yading@10 7051 .PP
yading@10 7052 Check the X11 documentation (e.g. man X) for more detailed information.
yading@10 7053 .PP
yading@10 7054 Use the \fBdpyinfo\fR program for getting basic information about the
yading@10 7055 properties of your X11 display (e.g. grep for \*(L"name\*(R" or \*(L"dimensions\*(R").
yading@10 7056 .PP
yading@10 7057 For example to grab from \fI:0.0\fR using \fBffmpeg\fR:
yading@10 7058 .PP
yading@10 7059 .Vb 1
yading@10 7060 \& ffmpeg \-f x11grab \-r 25 \-s cif \-i :0.0 out.mpg
yading@10 7061 .Ve
yading@10 7062 .PP
yading@10 7063 Grab at position \f(CW\*(C`10,20\*(C'\fR:
yading@10 7064 .PP
yading@10 7065 .Vb 1
yading@10 7066 \& ffmpeg \-f x11grab \-r 25 \-s cif \-i :0.0+10,20 out.mpg
yading@10 7067 .Ve
yading@10 7068 .PP
yading@10 7069 \fIOptions\fR
yading@10 7070 .IX Subsection "Options"
yading@10 7071 .IP "\fBdraw_mouse\fR" 4
yading@10 7072 .IX Item "draw_mouse"
yading@10 7073 Specify whether to draw the mouse pointer. A value of \f(CW0\fR specify
yading@10 7074 not to draw the pointer. Default value is \f(CW1\fR.
yading@10 7075 .IP "\fBfollow_mouse\fR" 4
yading@10 7076 .IX Item "follow_mouse"
yading@10 7077 Make the grabbed area follow the mouse. The argument can be
yading@10 7078 \&\f(CW\*(C`centered\*(C'\fR or a number of pixels \fI\s-1PIXELS\s0\fR.
yading@10 7079 .Sp
yading@10 7080 When it is specified with \*(L"centered\*(R", the grabbing region follows the mouse
yading@10 7081 pointer and keeps the pointer at the center of region; otherwise, the region
yading@10 7082 follows only when the mouse pointer reaches within \fI\s-1PIXELS\s0\fR (greater than
yading@10 7083 zero) to the edge of region.
yading@10 7084 .Sp
yading@10 7085 For example:
yading@10 7086 .Sp
yading@10 7087 .Vb 1
yading@10 7088 \& ffmpeg \-f x11grab \-follow_mouse centered \-r 25 \-s cif \-i :0.0 out.mpg
yading@10 7089 .Ve
yading@10 7090 .Sp
yading@10 7091 To follow only when the mouse pointer reaches within 100 pixels to edge:
yading@10 7092 .Sp
yading@10 7093 .Vb 1
yading@10 7094 \& ffmpeg \-f x11grab \-follow_mouse 100 \-r 25 \-s cif \-i :0.0 out.mpg
yading@10 7095 .Ve
yading@10 7096 .IP "\fBframerate\fR" 4
yading@10 7097 .IX Item "framerate"
yading@10 7098 Set the grabbing frame rate. Default value is \f(CW\*(C`ntsc\*(C'\fR,
yading@10 7099 corresponding to a frame rate of \f(CW\*(C`30000/1001\*(C'\fR.
yading@10 7100 .IP "\fBshow_region\fR" 4
yading@10 7101 .IX Item "show_region"
yading@10 7102 Show grabbed region on screen.
yading@10 7103 .Sp
yading@10 7104 If \fIshow_region\fR is specified with \f(CW1\fR, then the grabbing
yading@10 7105 region will be indicated on screen. With this option, it is easy to
yading@10 7106 know what is being grabbed if only a portion of the screen is grabbed.
yading@10 7107 .Sp
yading@10 7108 For example:
yading@10 7109 .Sp
yading@10 7110 .Vb 1
yading@10 7111 \& ffmpeg \-f x11grab \-show_region 1 \-r 25 \-s cif \-i :0.0+10,20 out.mpg
yading@10 7112 .Ve
yading@10 7113 .Sp
yading@10 7114 With \fIfollow_mouse\fR:
yading@10 7115 .Sp
yading@10 7116 .Vb 1
yading@10 7117 \& ffmpeg \-f x11grab \-follow_mouse centered \-show_region 1 \-r 25 \-s cif \-i :0.0 out.mpg
yading@10 7118 .Ve
yading@10 7119 .IP "\fBvideo_size\fR" 4
yading@10 7120 .IX Item "video_size"
yading@10 7121 Set the video frame size. Default value is \f(CW\*(C`vga\*(C'\fR.
yading@10 7122 .SH "OUTPUT DEVICES"
yading@10 7123 .IX Header "OUTPUT DEVICES"
yading@10 7124 Output devices are configured elements in FFmpeg which allow to write
yading@10 7125 multimedia data to an output device attached to your system.
yading@10 7126 .PP
yading@10 7127 When you configure your FFmpeg build, all the supported output devices
yading@10 7128 are enabled by default. You can list all available ones using the
yading@10 7129 configure option \*(L"\-\-list\-outdevs\*(R".
yading@10 7130 .PP
yading@10 7131 You can disable all the output devices using the configure option
yading@10 7132 \&\*(L"\-\-disable\-outdevs\*(R", and selectively enable an output device using the
yading@10 7133 option "\-\-enable\-outdev=\fI\s-1OUTDEV\s0\fR\*(L", or you can disable a particular
yading@10 7134 input device using the option \*(R"\-\-disable\-outdev=\fI\s-1OUTDEV\s0\fR".
yading@10 7135 .PP
yading@10 7136 The option \*(L"\-formats\*(R" of the ff* tools will display the list of
yading@10 7137 enabled output devices (amongst the muxers).
yading@10 7138 .PP
yading@10 7139 A description of the currently available output devices follows.
yading@10 7140 .SS "alsa"
yading@10 7141 .IX Subsection "alsa"
yading@10 7142 \&\s-1ALSA\s0 (Advanced Linux Sound Architecture) output device.
yading@10 7143 .SS "caca"
yading@10 7144 .IX Subsection "caca"
yading@10 7145 \&\s-1CACA\s0 output device.
yading@10 7146 .PP
yading@10 7147 This output devices allows to show a video stream in \s-1CACA\s0 window.
yading@10 7148 Only one \s-1CACA\s0 window is allowed per application, so you can
yading@10 7149 have only one instance of this output device in an application.
yading@10 7150 .PP
yading@10 7151 To enable this output device you need to configure FFmpeg with
yading@10 7152 \&\f(CW\*(C`\-\-enable\-libcaca\*(C'\fR.
yading@10 7153 libcaca is a graphics library that outputs text instead of pixels.
yading@10 7154 .PP
yading@10 7155 For more information about libcaca, check:
yading@10 7156 <\fBhttp://caca.zoy.org/wiki/libcaca\fR>
yading@10 7157 .PP
yading@10 7158 \fIOptions\fR
yading@10 7159 .IX Subsection "Options"
yading@10 7160 .IP "\fBwindow_title\fR" 4
yading@10 7161 .IX Item "window_title"
yading@10 7162 Set the \s-1CACA\s0 window title, if not specified default to the filename
yading@10 7163 specified for the output device.
yading@10 7164 .IP "\fBwindow_size\fR" 4
yading@10 7165 .IX Item "window_size"
yading@10 7166 Set the \s-1CACA\s0 window size, can be a string of the form
yading@10 7167 \&\fIwidth\fRx\fIheight\fR or a video size abbreviation.
yading@10 7168 If not specified it defaults to the size of the input video.
yading@10 7169 .IP "\fBdriver\fR" 4
yading@10 7170 .IX Item "driver"
yading@10 7171 Set display driver.
yading@10 7172 .IP "\fBalgorithm\fR" 4
yading@10 7173 .IX Item "algorithm"
yading@10 7174 Set dithering algorithm. Dithering is necessary
yading@10 7175 because the picture being rendered has usually far more colours than
yading@10 7176 the available palette.
yading@10 7177 The accepted values are listed with \f(CW\*(C`\-list_dither algorithms\*(C'\fR.
yading@10 7178 .IP "\fBantialias\fR" 4
yading@10 7179 .IX Item "antialias"
yading@10 7180 Set antialias method. Antialiasing smoothens the rendered
yading@10 7181 image and avoids the commonly seen staircase effect.
yading@10 7182 The accepted values are listed with \f(CW\*(C`\-list_dither antialiases\*(C'\fR.
yading@10 7183 .IP "\fBcharset\fR" 4
yading@10 7184 .IX Item "charset"
yading@10 7185 Set which characters are going to be used when rendering text.
yading@10 7186 The accepted values are listed with \f(CW\*(C`\-list_dither charsets\*(C'\fR.
yading@10 7187 .IP "\fBcolor\fR" 4
yading@10 7188 .IX Item "color"
yading@10 7189 Set color to be used when rendering text.
yading@10 7190 The accepted values are listed with \f(CW\*(C`\-list_dither colors\*(C'\fR.
yading@10 7191 .IP "\fBlist_drivers\fR" 4
yading@10 7192 .IX Item "list_drivers"
yading@10 7193 If set to \fBtrue\fR, print a list of available drivers and exit.
yading@10 7194 .IP "\fBlist_dither\fR" 4
yading@10 7195 .IX Item "list_dither"
yading@10 7196 List available dither options related to the argument.
yading@10 7197 The argument must be one of \f(CW\*(C`algorithms\*(C'\fR, \f(CW\*(C`antialiases\*(C'\fR,
yading@10 7198 \&\f(CW\*(C`charsets\*(C'\fR, \f(CW\*(C`colors\*(C'\fR.
yading@10 7199 .PP
yading@10 7200 \fIExamples\fR
yading@10 7201 .IX Subsection "Examples"
yading@10 7202 .IP "\(bu" 4
yading@10 7203 The following command shows the \fBffmpeg\fR output is an
yading@10 7204 \&\s-1CACA\s0 window, forcing its size to 80x25:
yading@10 7205 .Sp
yading@10 7206 .Vb 1
yading@10 7207 \& ffmpeg \-i INPUT \-vcodec rawvideo \-pix_fmt rgb24 \-window_size 80x25 \-f caca \-
yading@10 7208 .Ve
yading@10 7209 .IP "\(bu" 4
yading@10 7210 Show the list of available drivers and exit:
yading@10 7211 .Sp
yading@10 7212 .Vb 1
yading@10 7213 \& ffmpeg \-i INPUT \-pix_fmt rgb24 \-f caca \-list_drivers true \-
yading@10 7214 .Ve
yading@10 7215 .IP "\(bu" 4
yading@10 7216 Show the list of available dither colors and exit:
yading@10 7217 .Sp
yading@10 7218 .Vb 1
yading@10 7219 \& ffmpeg \-i INPUT \-pix_fmt rgb24 \-f caca \-list_dither colors \-
yading@10 7220 .Ve
yading@10 7221 .SS "oss"
yading@10 7222 .IX Subsection "oss"
yading@10 7223 \&\s-1OSS\s0 (Open Sound System) output device.
yading@10 7224 .SS "sdl"
yading@10 7225 .IX Subsection "sdl"
yading@10 7226 \&\s-1SDL\s0 (Simple DirectMedia Layer) output device.
yading@10 7227 .PP
yading@10 7228 This output devices allows to show a video stream in an \s-1SDL\s0
yading@10 7229 window. Only one \s-1SDL\s0 window is allowed per application, so you can
yading@10 7230 have only one instance of this output device in an application.
yading@10 7231 .PP
yading@10 7232 To enable this output device you need libsdl installed on your system
yading@10 7233 when configuring your build.
yading@10 7234 .PP
yading@10 7235 For more information about \s-1SDL\s0, check:
yading@10 7236 <\fBhttp://www.libsdl.org/\fR>
yading@10 7237 .PP
yading@10 7238 \fIOptions\fR
yading@10 7239 .IX Subsection "Options"
yading@10 7240 .IP "\fBwindow_title\fR" 4
yading@10 7241 .IX Item "window_title"
yading@10 7242 Set the \s-1SDL\s0 window title, if not specified default to the filename
yading@10 7243 specified for the output device.
yading@10 7244 .IP "\fBicon_title\fR" 4
yading@10 7245 .IX Item "icon_title"
yading@10 7246 Set the name of the iconified \s-1SDL\s0 window, if not specified it is set
yading@10 7247 to the same value of \fIwindow_title\fR.
yading@10 7248 .IP "\fBwindow_size\fR" 4
yading@10 7249 .IX Item "window_size"
yading@10 7250 Set the \s-1SDL\s0 window size, can be a string of the form
yading@10 7251 \&\fIwidth\fRx\fIheight\fR or a video size abbreviation.
yading@10 7252 If not specified it defaults to the size of the input video,
yading@10 7253 downscaled according to the aspect ratio.
yading@10 7254 .PP
yading@10 7255 \fIExamples\fR
yading@10 7256 .IX Subsection "Examples"
yading@10 7257 .PP
yading@10 7258 The following command shows the \fBffmpeg\fR output is an
yading@10 7259 \&\s-1SDL\s0 window, forcing its size to the qcif format:
yading@10 7260 .PP
yading@10 7261 .Vb 1
yading@10 7262 \& ffmpeg \-i INPUT \-vcodec rawvideo \-pix_fmt yuv420p \-window_size qcif \-f sdl "SDL output"
yading@10 7263 .Ve
yading@10 7264 .SS "sndio"
yading@10 7265 .IX Subsection "sndio"
yading@10 7266 sndio audio output device.
yading@10 7267 .SH "RESAMPLER OPTIONS"
yading@10 7268 .IX Header "RESAMPLER OPTIONS"
yading@10 7269 The audio resampler supports the following named options.
yading@10 7270 .PP
yading@10 7271 Options may be set by specifying \-\fIoption\fR \fIvalue\fR in the
yading@10 7272 FFmpeg tools, \fIoption\fR=\fIvalue\fR for the aresample filter,
yading@10 7273 by setting the value explicitly in the
yading@10 7274 \&\f(CW\*(C`SwrContext\*(C'\fR options or using the \fIlibavutil/opt.h\fR \s-1API\s0 for
yading@10 7275 programmatic use.
yading@10 7276 .IP "\fBich, in_channel_count\fR" 4
yading@10 7277 .IX Item "ich, in_channel_count"
yading@10 7278 Set the number of input channels. Default value is 0. Setting this
yading@10 7279 value is not mandatory if the corresponding channel layout
yading@10 7280 \&\fBin_channel_layout\fR is set.
yading@10 7281 .IP "\fBoch, out_channel_count\fR" 4
yading@10 7282 .IX Item "och, out_channel_count"
yading@10 7283 Set the number of output channels. Default value is 0. Setting this
yading@10 7284 value is not mandatory if the corresponding channel layout
yading@10 7285 \&\fBout_channel_layout\fR is set.
yading@10 7286 .IP "\fBuch, used_channel_count\fR" 4
yading@10 7287 .IX Item "uch, used_channel_count"
yading@10 7288 Set the number of used input channels. Default value is 0. This option is
yading@10 7289 only used for special remapping.
yading@10 7290 .IP "\fBisr, in_sample_rate\fR" 4
yading@10 7291 .IX Item "isr, in_sample_rate"
yading@10 7292 Set the input sample rate. Default value is 0.
yading@10 7293 .IP "\fBosr, out_sample_rate\fR" 4
yading@10 7294 .IX Item "osr, out_sample_rate"
yading@10 7295 Set the output sample rate. Default value is 0.
yading@10 7296 .IP "\fBisf, in_sample_fmt\fR" 4
yading@10 7297 .IX Item "isf, in_sample_fmt"
yading@10 7298 Specify the input sample format. It is set by default to \f(CW\*(C`none\*(C'\fR.
yading@10 7299 .IP "\fBosf, out_sample_fmt\fR" 4
yading@10 7300 .IX Item "osf, out_sample_fmt"
yading@10 7301 Specify the output sample format. It is set by default to \f(CW\*(C`none\*(C'\fR.
yading@10 7302 .IP "\fBtsf, internal_sample_fmt\fR" 4
yading@10 7303 .IX Item "tsf, internal_sample_fmt"
yading@10 7304 Set the internal sample format. Default value is \f(CW\*(C`none\*(C'\fR.
yading@10 7305 This will automatically be chosen when it is not explicitly set.
yading@10 7306 .IP "\fBicl, in_channel_layout\fR" 4
yading@10 7307 .IX Item "icl, in_channel_layout"
yading@10 7308 Set the input channel layout.
yading@10 7309 .IP "\fBocl, out_channel_layout\fR" 4
yading@10 7310 .IX Item "ocl, out_channel_layout"
yading@10 7311 Set the output channel layout.
yading@10 7312 .IP "\fBclev, center_mix_level\fR" 4
yading@10 7313 .IX Item "clev, center_mix_level"
yading@10 7314 Set the center mix level. It is a value expressed in deciBel, and must be
yading@10 7315 in the interval [\-32,32].
yading@10 7316 .IP "\fBslev, surround_mix_level\fR" 4
yading@10 7317 .IX Item "slev, surround_mix_level"
yading@10 7318 Set the surround mix level. It is a value expressed in deciBel, and must
yading@10 7319 be in the interval [\-32,32].
yading@10 7320 .IP "\fBlfe_mix_level\fR" 4
yading@10 7321 .IX Item "lfe_mix_level"
yading@10 7322 Set \s-1LFE\s0 mix into non \s-1LFE\s0 level. It is used when there is a \s-1LFE\s0 input but no
yading@10 7323 \&\s-1LFE\s0 output. It is a value expressed in deciBel, and must
yading@10 7324 be in the interval [\-32,32].
yading@10 7325 .IP "\fBrmvol, rematrix_volume\fR" 4
yading@10 7326 .IX Item "rmvol, rematrix_volume"
yading@10 7327 Set rematrix volume. Default value is 1.0.
yading@10 7328 .IP "\fBflags, swr_flags\fR" 4
yading@10 7329 .IX Item "flags, swr_flags"
yading@10 7330 Set flags used by the converter. Default value is 0.
yading@10 7331 .Sp
yading@10 7332 It supports the following individual flags:
yading@10 7333 .RS 4
yading@10 7334 .IP "\fBres\fR" 4
yading@10 7335 .IX Item "res"
yading@10 7336 force resampling, this flag forces resampling to be used even when the
yading@10 7337 input and output sample rates match.
yading@10 7338 .RE
yading@10 7339 .RS 4
yading@10 7340 .RE
yading@10 7341 .IP "\fBdither_scale\fR" 4
yading@10 7342 .IX Item "dither_scale"
yading@10 7343 Set the dither scale. Default value is 1.
yading@10 7344 .IP "\fBdither_method\fR" 4
yading@10 7345 .IX Item "dither_method"
yading@10 7346 Set dither method. Default value is 0.
yading@10 7347 .Sp
yading@10 7348 Supported values:
yading@10 7349 .RS 4
yading@10 7350 .IP "\fBrectangular\fR" 4
yading@10 7351 .IX Item "rectangular"
yading@10 7352 select rectangular dither
yading@10 7353 .IP "\fBtriangular\fR" 4
yading@10 7354 .IX Item "triangular"
yading@10 7355 select triangular dither
yading@10 7356 .IP "\fBtriangular_hp\fR" 4
yading@10 7357 .IX Item "triangular_hp"
yading@10 7358 select triangular dither with high pass
yading@10 7359 .IP "\fBlipshitz\fR" 4
yading@10 7360 .IX Item "lipshitz"
yading@10 7361 select lipshitz noise shaping dither
yading@10 7362 .IP "\fBshibata\fR" 4
yading@10 7363 .IX Item "shibata"
yading@10 7364 select shibata noise shaping dither
yading@10 7365 .IP "\fBlow_shibata\fR" 4
yading@10 7366 .IX Item "low_shibata"
yading@10 7367 select low shibata noise shaping dither
yading@10 7368 .IP "\fBhigh_shibata\fR" 4
yading@10 7369 .IX Item "high_shibata"
yading@10 7370 select high shibata noise shaping dither
yading@10 7371 .IP "\fBf_weighted\fR" 4
yading@10 7372 .IX Item "f_weighted"
yading@10 7373 select f\-weighted noise shaping dither
yading@10 7374 .IP "\fBmodified_e_weighted\fR" 4
yading@10 7375 .IX Item "modified_e_weighted"
yading@10 7376 select modified-e-weighted noise shaping dither
yading@10 7377 .IP "\fBimproved_e_weighted\fR" 4
yading@10 7378 .IX Item "improved_e_weighted"
yading@10 7379 select improved-e-weighted noise shaping dither
yading@10 7380 .RE
yading@10 7381 .RS 4
yading@10 7382 .RE
yading@10 7383 .IP "\fBresampler\fR" 4
yading@10 7384 .IX Item "resampler"
yading@10 7385 Set resampling engine. Default value is swr.
yading@10 7386 .Sp
yading@10 7387 Supported values:
yading@10 7388 .RS 4
yading@10 7389 .IP "\fBswr\fR" 4
yading@10 7390 .IX Item "swr"
yading@10 7391 select the native \s-1SW\s0 Resampler; filter options precision and cheby are not
yading@10 7392 applicable in this case.
yading@10 7393 .IP "\fBsoxr\fR" 4
yading@10 7394 .IX Item "soxr"
yading@10 7395 select the SoX Resampler (where available); compensation, and filter options
yading@10 7396 filter_size, phase_shift, filter_type & kaiser_beta, are not applicable in this
yading@10 7397 case.
yading@10 7398 .RE
yading@10 7399 .RS 4
yading@10 7400 .RE
yading@10 7401 .IP "\fBfilter_size\fR" 4
yading@10 7402 .IX Item "filter_size"
yading@10 7403 For swr only, set resampling filter size, default value is 32.
yading@10 7404 .IP "\fBphase_shift\fR" 4
yading@10 7405 .IX Item "phase_shift"
yading@10 7406 For swr only, set resampling phase shift, default value is 10, and must be in
yading@10 7407 the interval [0,30].
yading@10 7408 .IP "\fBlinear_interp\fR" 4
yading@10 7409 .IX Item "linear_interp"
yading@10 7410 Use Linear Interpolation if set to 1, default value is 0.
yading@10 7411 .IP "\fBcutoff\fR" 4
yading@10 7412 .IX Item "cutoff"
yading@10 7413 Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must be a float
yading@10 7414 value between 0 and 1. Default value is 0.97 with swr, and 0.91 with soxr
yading@10 7415 (which, with a sample-rate of 44100, preserves the entire audio band to 20kHz).
yading@10 7416 .IP "\fBprecision\fR" 4
yading@10 7417 .IX Item "precision"
yading@10 7418 For soxr only, the precision in bits to which the resampled signal will be
yading@10 7419 calculated. The default value of 20 (which, with suitable dithering, is
yading@10 7420 appropriate for a destination bit-depth of 16) gives SoX's 'High Quality'; a
yading@10 7421 value of 28 gives SoX's 'Very High Quality'.
yading@10 7422 .IP "\fBcheby\fR" 4
yading@10 7423 .IX Item "cheby"
yading@10 7424 For soxr only, selects passband rolloff none (Chebyshev) & higher-precision
yading@10 7425 approximation for 'irrational' ratios. Default value is 0.
yading@10 7426 .IP "\fBasync\fR" 4
yading@10 7427 .IX Item "async"
yading@10 7428 For swr only, simple 1 parameter audio sync to timestamps using stretching,
yading@10 7429 squeezing, filling and trimming. Setting this to 1 will enable filling and
yading@10 7430 trimming, larger values represent the maximum amount in samples that the data
yading@10 7431 may be stretched or squeezed for each second.
yading@10 7432 Default value is 0, thus no compensation is applied to make the samples match
yading@10 7433 the audio timestamps.
yading@10 7434 .IP "\fBfirst_pts\fR" 4
yading@10 7435 .IX Item "first_pts"
yading@10 7436 For swr only, assume the first pts should be this value. The time unit is 1 / sample rate.
yading@10 7437 This allows for padding/trimming at the start of stream. By default, no
yading@10 7438 assumption is made about the first frame's expected pts, so no padding or
yading@10 7439 trimming is done. For example, this could be set to 0 to pad the beginning with
yading@10 7440 silence if an audio stream starts after the video stream or to trim any samples
yading@10 7441 with a negative pts due to encoder delay.
yading@10 7442 .IP "\fBmin_comp\fR" 4
yading@10 7443 .IX Item "min_comp"
yading@10 7444 For swr only, set the minimum difference between timestamps and audio data (in
yading@10 7445 seconds) to trigger stretching/squeezing/filling or trimming of the
yading@10 7446 data to make it match the timestamps. The default is that
yading@10 7447 stretching/squeezing/filling and trimming is disabled
yading@10 7448 (\fBmin_comp\fR = \f(CW\*(C`FLT_MAX\*(C'\fR).
yading@10 7449 .IP "\fBmin_hard_comp\fR" 4
yading@10 7450 .IX Item "min_hard_comp"
yading@10 7451 For swr only, set the minimum difference between timestamps and audio data (in
yading@10 7452 seconds) to trigger adding/dropping samples to make it match the
yading@10 7453 timestamps. This option effectively is a threshold to select between
yading@10 7454 hard (trim/fill) and soft (squeeze/stretch) compensation. Note that
yading@10 7455 all compensation is by default disabled through \fBmin_comp\fR.
yading@10 7456 The default is 0.1.
yading@10 7457 .IP "\fBcomp_duration\fR" 4
yading@10 7458 .IX Item "comp_duration"
yading@10 7459 For swr only, set duration (in seconds) over which data is stretched/squeezed
yading@10 7460 to make it match the timestamps. Must be a non-negative double float value,
yading@10 7461 default value is 1.0.
yading@10 7462 .IP "\fBmax_soft_comp\fR" 4
yading@10 7463 .IX Item "max_soft_comp"
yading@10 7464 For swr only, set maximum factor by which data is stretched/squeezed to make it
yading@10 7465 match the timestamps. Must be a non-negative double float value, default value
yading@10 7466 is 0.
yading@10 7467 .IP "\fBmatrix_encoding\fR" 4
yading@10 7468 .IX Item "matrix_encoding"
yading@10 7469 Select matrixed stereo encoding.
yading@10 7470 .Sp
yading@10 7471 It accepts the following values:
yading@10 7472 .RS 4
yading@10 7473 .IP "\fBnone\fR" 4
yading@10 7474 .IX Item "none"
yading@10 7475 select none
yading@10 7476 .IP "\fBdolby\fR" 4
yading@10 7477 .IX Item "dolby"
yading@10 7478 select Dolby
yading@10 7479 .IP "\fBdplii\fR" 4
yading@10 7480 .IX Item "dplii"
yading@10 7481 select Dolby Pro Logic \s-1II\s0
yading@10 7482 .RE
yading@10 7483 .RS 4
yading@10 7484 .Sp
yading@10 7485 Default value is \f(CW\*(C`none\*(C'\fR.
yading@10 7486 .RE
yading@10 7487 .IP "\fBfilter_type\fR" 4
yading@10 7488 .IX Item "filter_type"
yading@10 7489 For swr only, select resampling filter type. This only affects resampling
yading@10 7490 operations.
yading@10 7491 .Sp
yading@10 7492 It accepts the following values:
yading@10 7493 .RS 4
yading@10 7494 .IP "\fBcubic\fR" 4
yading@10 7495 .IX Item "cubic"
yading@10 7496 select cubic
yading@10 7497 .IP "\fBblackman_nuttall\fR" 4
yading@10 7498 .IX Item "blackman_nuttall"
yading@10 7499 select Blackman Nuttall Windowed Sinc
yading@10 7500 .IP "\fBkaiser\fR" 4
yading@10 7501 .IX Item "kaiser"
yading@10 7502 select Kaiser Windowed Sinc
yading@10 7503 .RE
yading@10 7504 .RS 4
yading@10 7505 .RE
yading@10 7506 .IP "\fBkaiser_beta\fR" 4
yading@10 7507 .IX Item "kaiser_beta"
yading@10 7508 For swr only, set Kaiser Window Beta value. Must be an integer in the
yading@10 7509 interval [2,16], default value is 9.
yading@10 7510 .SH "SCALER OPTIONS"
yading@10 7511 .IX Header "SCALER OPTIONS"
yading@10 7512 The video scaler supports the following named options.
yading@10 7513 .PP
yading@10 7514 Options may be set by specifying \-\fIoption\fR \fIvalue\fR in the
yading@10 7515 FFmpeg tools. For programmatic use, they can be set explicitly in the
yading@10 7516 \&\f(CW\*(C`SwsContext\*(C'\fR options or through the \fIlibavutil/opt.h\fR \s-1API\s0.
yading@10 7517 .IP "\fBsws_flags\fR" 4
yading@10 7518 .IX Item "sws_flags"
yading@10 7519 Set the scaler flags. This is also used to set the scaling
yading@10 7520 algorithm. Only a single algorithm should be selected.
yading@10 7521 .Sp
yading@10 7522 It accepts the following values:
yading@10 7523 .RS 4
yading@10 7524 .IP "\fBfast_bilinear\fR" 4
yading@10 7525 .IX Item "fast_bilinear"
yading@10 7526 Select fast bilinear scaling algorithm.
yading@10 7527 .IP "\fBbilinear\fR" 4
yading@10 7528 .IX Item "bilinear"
yading@10 7529 Select bilinear scaling algorithm.
yading@10 7530 .IP "\fBbicubic\fR" 4
yading@10 7531 .IX Item "bicubic"
yading@10 7532 Select bicubic scaling algorithm.
yading@10 7533 .IP "\fBexperimental\fR" 4
yading@10 7534 .IX Item "experimental"
yading@10 7535 Select experimental scaling algorithm.
yading@10 7536 .IP "\fBneighbor\fR" 4
yading@10 7537 .IX Item "neighbor"
yading@10 7538 Select nearest neighbor rescaling algorithm.
yading@10 7539 .IP "\fBarea\fR" 4
yading@10 7540 .IX Item "area"
yading@10 7541 Select averaging area rescaling algorithm.
yading@10 7542 .IP "\fBbicubiclin\fR" 4
yading@10 7543 .IX Item "bicubiclin"
yading@10 7544 Select bicubic scaling algorithm for the luma component, bilinear for
yading@10 7545 chroma components.
yading@10 7546 .IP "\fBgauss\fR" 4
yading@10 7547 .IX Item "gauss"
yading@10 7548 Select Gaussian rescaling algorithm.
yading@10 7549 .IP "\fBsinc\fR" 4
yading@10 7550 .IX Item "sinc"
yading@10 7551 Select sinc rescaling algorithm.
yading@10 7552 .IP "\fBlanczos\fR" 4
yading@10 7553 .IX Item "lanczos"
yading@10 7554 Select lanczos rescaling algorithm.
yading@10 7555 .IP "\fBspline\fR" 4
yading@10 7556 .IX Item "spline"
yading@10 7557 Select natural bicubic spline rescaling algorithm.
yading@10 7558 .IP "\fBprint_info\fR" 4
yading@10 7559 .IX Item "print_info"
yading@10 7560 Enable printing/debug logging.
yading@10 7561 .IP "\fBaccurate_rnd\fR" 4
yading@10 7562 .IX Item "accurate_rnd"
yading@10 7563 Enable accurate rounding.
yading@10 7564 .IP "\fBfull_chroma_int\fR" 4
yading@10 7565 .IX Item "full_chroma_int"
yading@10 7566 Enable full chroma interpolation.
yading@10 7567 .IP "\fBfull_chroma_inp\fR" 4
yading@10 7568 .IX Item "full_chroma_inp"
yading@10 7569 Select full chroma input.
yading@10 7570 .IP "\fBbitexact\fR" 4
yading@10 7571 .IX Item "bitexact"
yading@10 7572 Enable bitexact output.
yading@10 7573 .RE
yading@10 7574 .RS 4
yading@10 7575 .RE
yading@10 7576 .IP "\fBsrcw\fR" 4
yading@10 7577 .IX Item "srcw"
yading@10 7578 Set source width.
yading@10 7579 .IP "\fBsrch\fR" 4
yading@10 7580 .IX Item "srch"
yading@10 7581 Set source height.
yading@10 7582 .IP "\fBdstw\fR" 4
yading@10 7583 .IX Item "dstw"
yading@10 7584 Set destination width.
yading@10 7585 .IP "\fBdsth\fR" 4
yading@10 7586 .IX Item "dsth"
yading@10 7587 Set destination height.
yading@10 7588 .IP "\fBsrc_format\fR" 4
yading@10 7589 .IX Item "src_format"
yading@10 7590 Set source pixel format (must be expressed as an integer).
yading@10 7591 .IP "\fBdst_format\fR" 4
yading@10 7592 .IX Item "dst_format"
yading@10 7593 Set destination pixel format (must be expressed as an integer).
yading@10 7594 .IP "\fBsrc_range\fR" 4
yading@10 7595 .IX Item "src_range"
yading@10 7596 Select source range.
yading@10 7597 .IP "\fBdst_range\fR" 4
yading@10 7598 .IX Item "dst_range"
yading@10 7599 Select destination range.
yading@10 7600 .IP "\fBparam0, param1\fR" 4
yading@10 7601 .IX Item "param0, param1"
yading@10 7602 Set scaling algorithm parameters. The specified values are specific of
yading@10 7603 some scaling algorithms and ignored by others. The specified values
yading@10 7604 are floating point number values.
yading@10 7605 .SH "FILTERING INTRODUCTION"
yading@10 7606 .IX Header "FILTERING INTRODUCTION"
yading@10 7607 Filtering in FFmpeg is enabled through the libavfilter library.
yading@10 7608 .PP
yading@10 7609 In libavfilter, a filter can have multiple inputs and multiple
yading@10 7610 outputs.
yading@10 7611 To illustrate the sorts of things that are possible, we consider the
yading@10 7612 following filtergraph.
yading@10 7613 .PP
yading@10 7614 .Vb 4
yading@10 7615 \& input \-\-> split \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-> overlay \-\-> output
yading@10 7616 \& | ^
yading@10 7617 \& | |
yading@10 7618 \& +\-\-\-\-\-> crop \-\-> vflip \-\-\-\-\-\-\-+
yading@10 7619 .Ve
yading@10 7620 .PP
yading@10 7621 This filtergraph splits the input stream in two streams, sends one
yading@10 7622 stream through the crop filter and the vflip filter before merging it
yading@10 7623 back with the other stream by overlaying it on top. You can use the
yading@10 7624 following command to achieve this:
yading@10 7625 .PP
yading@10 7626 .Vb 1
yading@10 7627 \& ffmpeg \-i INPUT \-vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
yading@10 7628 .Ve
yading@10 7629 .PP
yading@10 7630 The result will be that in output the top half of the video is mirrored
yading@10 7631 onto the bottom half.
yading@10 7632 .PP
yading@10 7633 Filters in the same linear chain are separated by commas, and distinct
yading@10 7634 linear chains of filters are separated by semicolons. In our example,
yading@10 7635 \&\fIcrop,vflip\fR are in one linear chain, \fIsplit\fR and
yading@10 7636 \&\fIoverlay\fR are separately in another. The points where the linear
yading@10 7637 chains join are labelled by names enclosed in square brackets. In the
yading@10 7638 example, the split filter generates two outputs that are associated to
yading@10 7639 the labels \fI[main]\fR and \fI[tmp]\fR.
yading@10 7640 .PP
yading@10 7641 The stream sent to the second output of \fIsplit\fR, labelled as
yading@10 7642 \&\fI[tmp]\fR, is processed through the \fIcrop\fR filter, which crops
yading@10 7643 away the lower half part of the video, and then vertically flipped. The
yading@10 7644 \&\fIoverlay\fR filter takes in input the first unchanged output of the
yading@10 7645 split filter (which was labelled as \fI[main]\fR), and overlay on its
yading@10 7646 lower half the output generated by the \fIcrop,vflip\fR filterchain.
yading@10 7647 .PP
yading@10 7648 Some filters take in input a list of parameters: they are specified
yading@10 7649 after the filter name and an equal sign, and are separated from each other
yading@10 7650 by a colon.
yading@10 7651 .PP
yading@10 7652 There exist so-called \fIsource filters\fR that do not have an
yading@10 7653 audio/video input, and \fIsink filters\fR that will not have audio/video
yading@10 7654 output.
yading@10 7655 .SH "GRAPH"
yading@10 7656 .IX Header "GRAPH"
yading@10 7657 The \fIgraph2dot\fR program included in the FFmpeg \fItools\fR
yading@10 7658 directory can be used to parse a filtergraph description and issue a
yading@10 7659 corresponding textual representation in the dot language.
yading@10 7660 .PP
yading@10 7661 Invoke the command:
yading@10 7662 .PP
yading@10 7663 .Vb 1
yading@10 7664 \& graph2dot \-h
yading@10 7665 .Ve
yading@10 7666 .PP
yading@10 7667 to see how to use \fIgraph2dot\fR.
yading@10 7668 .PP
yading@10 7669 You can then pass the dot description to the \fIdot\fR program (from
yading@10 7670 the graphviz suite of programs) and obtain a graphical representation
yading@10 7671 of the filtergraph.
yading@10 7672 .PP
yading@10 7673 For example the sequence of commands:
yading@10 7674 .PP
yading@10 7675 .Vb 4
yading@10 7676 \& echo <GRAPH_DESCRIPTION> | \e
yading@10 7677 \& tools/graph2dot \-o graph.tmp && \e
yading@10 7678 \& dot \-Tpng graph.tmp \-o graph.png && \e
yading@10 7679 \& display graph.png
yading@10 7680 .Ve
yading@10 7681 .PP
yading@10 7682 can be used to create and display an image representing the graph
yading@10 7683 described by the \fI\s-1GRAPH_DESCRIPTION\s0\fR string. Note that this string must be
yading@10 7684 a complete self-contained graph, with its inputs and outputs explicitly defined.
yading@10 7685 For example if your command line is of the form:
yading@10 7686 .PP
yading@10 7687 .Vb 1
yading@10 7688 \& ffmpeg \-i infile \-vf scale=640:360 outfile
yading@10 7689 .Ve
yading@10 7690 .PP
yading@10 7691 your \fI\s-1GRAPH_DESCRIPTION\s0\fR string will need to be of the form:
yading@10 7692 .PP
yading@10 7693 .Vb 1
yading@10 7694 \& nullsrc,scale=640:360,nullsink
yading@10 7695 .Ve
yading@10 7696 .PP
yading@10 7697 you may also need to set the \fInullsrc\fR parameters and add a \fIformat\fR
yading@10 7698 filter in order to simulate a specific input file.
yading@10 7699 .SH "FILTERGRAPH DESCRIPTION"
yading@10 7700 .IX Header "FILTERGRAPH DESCRIPTION"
yading@10 7701 A filtergraph is a directed graph of connected filters. It can contain
yading@10 7702 cycles, and there can be multiple links between a pair of
yading@10 7703 filters. Each link has one input pad on one side connecting it to one
yading@10 7704 filter from which it takes its input, and one output pad on the other
yading@10 7705 side connecting it to the one filter accepting its output.
yading@10 7706 .PP
yading@10 7707 Each filter in a filtergraph is an instance of a filter class
yading@10 7708 registered in the application, which defines the features and the
yading@10 7709 number of input and output pads of the filter.
yading@10 7710 .PP
yading@10 7711 A filter with no input pads is called a \*(L"source\*(R", a filter with no
yading@10 7712 output pads is called a \*(L"sink\*(R".
yading@10 7713 .SS "Filtergraph syntax"
yading@10 7714 .IX Subsection "Filtergraph syntax"
yading@10 7715 A filtergraph can be represented using a textual representation, which is
yading@10 7716 recognized by the \fB\-filter\fR/\fB\-vf\fR and \fB\-filter_complex\fR
yading@10 7717 options in \fBffmpeg\fR and \fB\-vf\fR in \fBffplay\fR, and by the
yading@10 7718 \&\f(CW\*(C`avfilter_graph_parse()\*(C'\fR/\f(CW\*(C`avfilter_graph_parse2()\*(C'\fR function defined in
yading@10 7719 \&\fIlibavfilter/avfilter.h\fR.
yading@10 7720 .PP
yading@10 7721 A filterchain consists of a sequence of connected filters, each one
yading@10 7722 connected to the previous one in the sequence. A filterchain is
yading@10 7723 represented by a list of \*(L",\*(R"\-separated filter descriptions.
yading@10 7724 .PP
yading@10 7725 A filtergraph consists of a sequence of filterchains. A sequence of
yading@10 7726 filterchains is represented by a list of \*(L";\*(R"\-separated filterchain
yading@10 7727 descriptions.
yading@10 7728 .PP
yading@10 7729 A filter is represented by a string of the form:
yading@10 7730 [\fIin_link_1\fR]...[\fIin_link_N\fR]\fIfilter_name\fR=\fIarguments\fR[\fIout_link_1\fR]...[\fIout_link_M\fR]
yading@10 7731 .PP
yading@10 7732 \&\fIfilter_name\fR is the name of the filter class of which the
yading@10 7733 described filter is an instance of, and has to be the name of one of
yading@10 7734 the filter classes registered in the program.
yading@10 7735 The name of the filter class is optionally followed by a string
yading@10 7736 "=\fIarguments\fR".
yading@10 7737 .PP
yading@10 7738 \&\fIarguments\fR is a string which contains the parameters used to
yading@10 7739 initialize the filter instance. It may have one of the following forms:
yading@10 7740 .IP "\(bu" 4
yading@10 7741 A ':'\-separated list of \fIkey=value\fR pairs.
yading@10 7742 .IP "\(bu" 4
yading@10 7743 A ':'\-separated list of \fIvalue\fR. In this case, the keys are assumed to be
yading@10 7744 the option names in the order they are declared. E.g. the \f(CW\*(C`fade\*(C'\fR filter
yading@10 7745 declares three options in this order \*(-- \fBtype\fR, \fBstart_frame\fR and
yading@10 7746 \&\fBnb_frames\fR. Then the parameter list \fIin:0:30\fR means that the value
yading@10 7747 \&\fIin\fR is assigned to the option \fBtype\fR, \fI0\fR to
yading@10 7748 \&\fBstart_frame\fR and \fI30\fR to \fBnb_frames\fR.
yading@10 7749 .IP "\(bu" 4
yading@10 7750 A ':'\-separated list of mixed direct \fIvalue\fR and long \fIkey=value\fR
yading@10 7751 pairs. The direct \fIvalue\fR must precede the \fIkey=value\fR pairs, and
yading@10 7752 follow the same constraints order of the previous point. The following
yading@10 7753 \&\fIkey=value\fR pairs can be set in any preferred order.
yading@10 7754 .PP
yading@10 7755 If the option value itself is a list of items (e.g. the \f(CW\*(C`format\*(C'\fR filter
yading@10 7756 takes a list of pixel formats), the items in the list are usually separated by
yading@10 7757 \&'|'.
yading@10 7758 .PP
yading@10 7759 The list of arguments can be quoted using the character \*(L"'\*(R" as initial
yading@10 7760 and ending mark, and the character '\e' for escaping the characters
yading@10 7761 within the quoted text; otherwise the argument string is considered
yading@10 7762 terminated when the next special character (belonging to the set
yading@10 7763 \&\*(L"[]=;,\*(R") is encountered.
yading@10 7764 .PP
yading@10 7765 The name and arguments of the filter are optionally preceded and
yading@10 7766 followed by a list of link labels.
yading@10 7767 A link label allows to name a link and associate it to a filter output
yading@10 7768 or input pad. The preceding labels \fIin_link_1\fR
yading@10 7769 \&... \fIin_link_N\fR, are associated to the filter input pads,
yading@10 7770 the following labels \fIout_link_1\fR ... \fIout_link_M\fR, are
yading@10 7771 associated to the output pads.
yading@10 7772 .PP
yading@10 7773 When two link labels with the same name are found in the
yading@10 7774 filtergraph, a link between the corresponding input and output pad is
yading@10 7775 created.
yading@10 7776 .PP
yading@10 7777 If an output pad is not labelled, it is linked by default to the first
yading@10 7778 unlabelled input pad of the next filter in the filterchain.
yading@10 7779 For example in the filterchain:
yading@10 7780 .PP
yading@10 7781 .Vb 1
yading@10 7782 \& nullsrc, split[L1], [L2]overlay, nullsink
yading@10 7783 .Ve
yading@10 7784 .PP
yading@10 7785 the split filter instance has two output pads, and the overlay filter
yading@10 7786 instance two input pads. The first output pad of split is labelled
yading@10 7787 \&\*(L"L1\*(R", the first input pad of overlay is labelled \*(L"L2\*(R", and the second
yading@10 7788 output pad of split is linked to the second input pad of overlay,
yading@10 7789 which are both unlabelled.
yading@10 7790 .PP
yading@10 7791 In a complete filterchain all the unlabelled filter input and output
yading@10 7792 pads must be connected. A filtergraph is considered valid if all the
yading@10 7793 filter input and output pads of all the filterchains are connected.
yading@10 7794 .PP
yading@10 7795 Libavfilter will automatically insert scale filters where format
yading@10 7796 conversion is required. It is possible to specify swscale flags
yading@10 7797 for those automatically inserted scalers by prepending
yading@10 7798 \&\f(CW\*(C`sws_flags=\f(CIflags\f(CW;\*(C'\fR
yading@10 7799 to the filtergraph description.
yading@10 7800 .PP
yading@10 7801 Follows a \s-1BNF\s0 description for the filtergraph syntax:
yading@10 7802 .PP
yading@10 7803 .Vb 7
yading@10 7804 \& <NAME> ::= sequence of alphanumeric characters and \*(Aq_\*(Aq
yading@10 7805 \& <LINKLABEL> ::= "[" <NAME> "]"
yading@10 7806 \& <LINKLABELS> ::= <LINKLABEL> [<LINKLABELS>]
yading@10 7807 \& <FILTER_ARGUMENTS> ::= sequence of chars (eventually quoted)
yading@10 7808 \& <FILTER> ::= [<LINKLABELS>] <NAME> ["=" <FILTER_ARGUMENTS>] [<LINKLABELS>]
yading@10 7809 \& <FILTERCHAIN> ::= <FILTER> [,<FILTERCHAIN>]
yading@10 7810 \& <FILTERGRAPH> ::= [sws_flags=<flags>;] <FILTERCHAIN> [;<FILTERGRAPH>]
yading@10 7811 .Ve
yading@10 7812 .SS "Notes on filtergraph escaping"
yading@10 7813 .IX Subsection "Notes on filtergraph escaping"
yading@10 7814 Some filter arguments require the use of special characters, typically
yading@10 7815 \&\f(CW\*(C`:\*(C'\fR to separate key=value pairs in a named options list. In this
yading@10 7816 case the user should perform a first level escaping when specifying
yading@10 7817 the filter arguments. For example, consider the following literal
yading@10 7818 string to be embedded in the drawtext filter arguments:
yading@10 7819 .PP
yading@10 7820 .Vb 1
yading@10 7821 \& this is a \*(Aqstring\*(Aq: may contain one, or more, special characters
yading@10 7822 .Ve
yading@10 7823 .PP
yading@10 7824 Since \f(CW\*(C`:\*(C'\fR is special for the filter arguments syntax, it needs to
yading@10 7825 be escaped, so you get:
yading@10 7826 .PP
yading@10 7827 .Vb 1
yading@10 7828 \& text=this is a \e\*(Aqstring\e\*(Aq\e: may contain one, or more, special characters
yading@10 7829 .Ve
yading@10 7830 .PP
yading@10 7831 A second level of escaping is required when embedding the filter
yading@10 7832 arguments in a filtergraph description, in order to escape all the
yading@10 7833 filtergraph special characters. Thus the example above becomes:
yading@10 7834 .PP
yading@10 7835 .Vb 1
yading@10 7836 \& drawtext=text=this is a \e\e\e\*(Aqstring\e\e\e\*(Aq\e\e: may contain one\e, or more\e, special characters
yading@10 7837 .Ve
yading@10 7838 .PP
yading@10 7839 Finally an additional level of escaping may be needed when writing the
yading@10 7840 filtergraph description in a shell command, which depends on the
yading@10 7841 escaping rules of the adopted shell. For example, assuming that
yading@10 7842 \&\f(CW\*(C`\e\*(C'\fR is special and needs to be escaped with another \f(CW\*(C`\e\*(C'\fR, the
yading@10 7843 previous string will finally result in:
yading@10 7844 .PP
yading@10 7845 .Vb 1
yading@10 7846 \& \-vf "drawtext=text=this is a \e\e\e\e\e\e\*(Aqstring\e\e\e\e\e\e\*(Aq\e\e\e\e: may contain one\e\e, or more\e\e, special characters"
yading@10 7847 .Ve
yading@10 7848 .PP
yading@10 7849 Sometimes, it might be more convenient to employ quoting in place of
yading@10 7850 escaping. For example the string:
yading@10 7851 .PP
yading@10 7852 .Vb 1
yading@10 7853 \& Caesar: tu quoque, Brute, fili mi
yading@10 7854 .Ve
yading@10 7855 .PP
yading@10 7856 Can be quoted in the filter arguments as:
yading@10 7857 .PP
yading@10 7858 .Vb 1
yading@10 7859 \& text=\*(AqCaesar: tu quoque, Brute, fili mi\*(Aq
yading@10 7860 .Ve
yading@10 7861 .PP
yading@10 7862 And finally inserted in a filtergraph like:
yading@10 7863 .PP
yading@10 7864 .Vb 1
yading@10 7865 \& drawtext=text=\e\*(AqCaesar: tu quoque\e, Brute\e, fili mi\e\*(Aq
yading@10 7866 .Ve
yading@10 7867 .PP
yading@10 7868 See the ``Quoting and escaping'' section in the ffmpeg-utils manual
yading@10 7869 for more information about the escaping and quoting rules adopted by
yading@10 7870 FFmpeg.
yading@10 7871 .SH "AUDIO FILTERS"
yading@10 7872 .IX Header "AUDIO FILTERS"
yading@10 7873 When you configure your FFmpeg build, you can disable any of the
yading@10 7874 existing filters using \f(CW\*(C`\-\-disable\-filters\*(C'\fR.
yading@10 7875 The configure output will show the audio filters included in your
yading@10 7876 build.
yading@10 7877 .PP
yading@10 7878 Below is a description of the currently available audio filters.
yading@10 7879 .SS "aconvert"
yading@10 7880 .IX Subsection "aconvert"
yading@10 7881 Convert the input audio format to the specified formats.
yading@10 7882 .PP
yading@10 7883 \&\fIThis filter is deprecated. Use aformat\fR instead.
yading@10 7884 .PP
yading@10 7885 The filter accepts a string of the form:
yading@10 7886 "\fIsample_format\fR:\fIchannel_layout\fR".
yading@10 7887 .PP
yading@10 7888 \&\fIsample_format\fR specifies the sample format, and can be a string or the
yading@10 7889 corresponding numeric value defined in \fIlibavutil/samplefmt.h\fR. Use 'p'
yading@10 7890 suffix for a planar sample format.
yading@10 7891 .PP
yading@10 7892 \&\fIchannel_layout\fR specifies the channel layout, and can be a string
yading@10 7893 or the corresponding number value defined in \fIlibavutil/channel_layout.h\fR.
yading@10 7894 .PP
yading@10 7895 The special parameter \*(L"auto\*(R", signifies that the filter will
yading@10 7896 automatically select the output format depending on the output filter.
yading@10 7897 .PP
yading@10 7898 \fIExamples\fR
yading@10 7899 .IX Subsection "Examples"
yading@10 7900 .IP "\(bu" 4
yading@10 7901 Convert input to float, planar, stereo:
yading@10 7902 .Sp
yading@10 7903 .Vb 1
yading@10 7904 \& aconvert=fltp:stereo
yading@10 7905 .Ve
yading@10 7906 .IP "\(bu" 4
yading@10 7907 Convert input to unsigned 8\-bit, automatically select out channel layout:
yading@10 7908 .Sp
yading@10 7909 .Vb 1
yading@10 7910 \& aconvert=u8:auto
yading@10 7911 .Ve
yading@10 7912 .SS "allpass"
yading@10 7913 .IX Subsection "allpass"
yading@10 7914 Apply a two-pole all-pass filter with central frequency (in Hz)
yading@10 7915 \&\fIfrequency\fR, and filter-width \fIwidth\fR.
yading@10 7916 An all-pass filter changes the audio's frequency to phase relationship
yading@10 7917 without changing its frequency to amplitude relationship.
yading@10 7918 .PP
yading@10 7919 The filter accepts the following options:
yading@10 7920 .IP "\fBfrequency, f\fR" 4
yading@10 7921 .IX Item "frequency, f"
yading@10 7922 Set frequency in Hz.
yading@10 7923 .IP "\fBwidth_type\fR" 4
yading@10 7924 .IX Item "width_type"
yading@10 7925 Set method to specify band-width of filter.
yading@10 7926 .RS 4
yading@10 7927 .IP "\fBh\fR" 4
yading@10 7928 .IX Item "h"
yading@10 7929 Hz
yading@10 7930 .IP "\fBq\fR" 4
yading@10 7931 .IX Item "q"
yading@10 7932 Q\-Factor
yading@10 7933 .IP "\fBo\fR" 4
yading@10 7934 .IX Item "o"
yading@10 7935 octave
yading@10 7936 .IP "\fBs\fR" 4
yading@10 7937 .IX Item "s"
yading@10 7938 slope
yading@10 7939 .RE
yading@10 7940 .RS 4
yading@10 7941 .RE
yading@10 7942 .IP "\fBwidth, w\fR" 4
yading@10 7943 .IX Item "width, w"
yading@10 7944 Specify the band-width of a filter in width_type units.
yading@10 7945 .SS "highpass"
yading@10 7946 .IX Subsection "highpass"
yading@10 7947 Apply a high-pass filter with 3dB point frequency.
yading@10 7948 The filter can be either single-pole, or double-pole (the default).
yading@10 7949 The filter roll off at 6dB per pole per octave (20dB per pole per decade).
yading@10 7950 .PP
yading@10 7951 The filter accepts the following options:
yading@10 7952 .IP "\fBfrequency, f\fR" 4
yading@10 7953 .IX Item "frequency, f"
yading@10 7954 Set frequency in Hz. Default is 3000.
yading@10 7955 .IP "\fBpoles, p\fR" 4
yading@10 7956 .IX Item "poles, p"
yading@10 7957 Set number of poles. Default is 2.
yading@10 7958 .IP "\fBwidth_type\fR" 4
yading@10 7959 .IX Item "width_type"
yading@10 7960 Set method to specify band-width of filter.
yading@10 7961 .RS 4
yading@10 7962 .IP "\fBh\fR" 4
yading@10 7963 .IX Item "h"
yading@10 7964 Hz
yading@10 7965 .IP "\fBq\fR" 4
yading@10 7966 .IX Item "q"
yading@10 7967 Q\-Factor
yading@10 7968 .IP "\fBo\fR" 4
yading@10 7969 .IX Item "o"
yading@10 7970 octave
yading@10 7971 .IP "\fBs\fR" 4
yading@10 7972 .IX Item "s"
yading@10 7973 slope
yading@10 7974 .RE
yading@10 7975 .RS 4
yading@10 7976 .RE
yading@10 7977 .IP "\fBwidth, w\fR" 4
yading@10 7978 .IX Item "width, w"
yading@10 7979 Specify the band-width of a filter in width_type units.
yading@10 7980 Applies only to double-pole filter.
yading@10 7981 The default is 0.707q and gives a Butterworth response.
yading@10 7982 .SS "lowpass"
yading@10 7983 .IX Subsection "lowpass"
yading@10 7984 Apply a low-pass filter with 3dB point frequency.
yading@10 7985 The filter can be either single-pole or double-pole (the default).
yading@10 7986 The filter roll off at 6dB per pole per octave (20dB per pole per decade).
yading@10 7987 .PP
yading@10 7988 The filter accepts the following options:
yading@10 7989 .IP "\fBfrequency, f\fR" 4
yading@10 7990 .IX Item "frequency, f"
yading@10 7991 Set frequency in Hz. Default is 500.
yading@10 7992 .IP "\fBpoles, p\fR" 4
yading@10 7993 .IX Item "poles, p"
yading@10 7994 Set number of poles. Default is 2.
yading@10 7995 .IP "\fBwidth_type\fR" 4
yading@10 7996 .IX Item "width_type"
yading@10 7997 Set method to specify band-width of filter.
yading@10 7998 .RS 4
yading@10 7999 .IP "\fBh\fR" 4
yading@10 8000 .IX Item "h"
yading@10 8001 Hz
yading@10 8002 .IP "\fBq\fR" 4
yading@10 8003 .IX Item "q"
yading@10 8004 Q\-Factor
yading@10 8005 .IP "\fBo\fR" 4
yading@10 8006 .IX Item "o"
yading@10 8007 octave
yading@10 8008 .IP "\fBs\fR" 4
yading@10 8009 .IX Item "s"
yading@10 8010 slope
yading@10 8011 .RE
yading@10 8012 .RS 4
yading@10 8013 .RE
yading@10 8014 .IP "\fBwidth, w\fR" 4
yading@10 8015 .IX Item "width, w"
yading@10 8016 Specify the band-width of a filter in width_type units.
yading@10 8017 Applies only to double-pole filter.
yading@10 8018 The default is 0.707q and gives a Butterworth response.
yading@10 8019 .SS "bass"
yading@10 8020 .IX Subsection "bass"
yading@10 8021 Boost or cut the bass (lower) frequencies of the audio using a two-pole
yading@10 8022 shelving filter with a response similar to that of a standard
yading@10 8023 hi-fi's tone-controls. This is also known as shelving equalisation (\s-1EQ\s0).
yading@10 8024 .PP
yading@10 8025 The filter accepts the following options:
yading@10 8026 .IP "\fBgain, g\fR" 4
yading@10 8027 .IX Item "gain, g"
yading@10 8028 Give the gain at 0 Hz. Its useful range is about \-20
yading@10 8029 (for a large cut) to +20 (for a large boost).
yading@10 8030 Beware of clipping when using a positive gain.
yading@10 8031 .IP "\fBfrequency, f\fR" 4
yading@10 8032 .IX Item "frequency, f"
yading@10 8033 Set the filter's central frequency and so can be used
yading@10 8034 to extend or reduce the frequency range to be boosted or cut.
yading@10 8035 The default value is \f(CW100\fR Hz.
yading@10 8036 .IP "\fBwidth_type\fR" 4
yading@10 8037 .IX Item "width_type"
yading@10 8038 Set method to specify band-width of filter.
yading@10 8039 .RS 4
yading@10 8040 .IP "\fBh\fR" 4
yading@10 8041 .IX Item "h"
yading@10 8042 Hz
yading@10 8043 .IP "\fBq\fR" 4
yading@10 8044 .IX Item "q"
yading@10 8045 Q\-Factor
yading@10 8046 .IP "\fBo\fR" 4
yading@10 8047 .IX Item "o"
yading@10 8048 octave
yading@10 8049 .IP "\fBs\fR" 4
yading@10 8050 .IX Item "s"
yading@10 8051 slope
yading@10 8052 .RE
yading@10 8053 .RS 4
yading@10 8054 .RE
yading@10 8055 .IP "\fBwidth, w\fR" 4
yading@10 8056 .IX Item "width, w"
yading@10 8057 Determine how steep is the filter's shelf transition.
yading@10 8058 .SS "treble"
yading@10 8059 .IX Subsection "treble"
yading@10 8060 Boost or cut treble (upper) frequencies of the audio using a two-pole
yading@10 8061 shelving filter with a response similar to that of a standard
yading@10 8062 hi-fi's tone-controls. This is also known as shelving equalisation (\s-1EQ\s0).
yading@10 8063 .PP
yading@10 8064 The filter accepts the following options:
yading@10 8065 .IP "\fBgain, g\fR" 4
yading@10 8066 .IX Item "gain, g"
yading@10 8067 Give the gain at whichever is the lower of ~22 kHz and the
yading@10 8068 Nyquist frequency. Its useful range is about \-20 (for a large cut)
yading@10 8069 to +20 (for a large boost). Beware of clipping when using a positive gain.
yading@10 8070 .IP "\fBfrequency, f\fR" 4
yading@10 8071 .IX Item "frequency, f"
yading@10 8072 Set the filter's central frequency and so can be used
yading@10 8073 to extend or reduce the frequency range to be boosted or cut.
yading@10 8074 The default value is \f(CW3000\fR Hz.
yading@10 8075 .IP "\fBwidth_type\fR" 4
yading@10 8076 .IX Item "width_type"
yading@10 8077 Set method to specify band-width of filter.
yading@10 8078 .RS 4
yading@10 8079 .IP "\fBh\fR" 4
yading@10 8080 .IX Item "h"
yading@10 8081 Hz
yading@10 8082 .IP "\fBq\fR" 4
yading@10 8083 .IX Item "q"
yading@10 8084 Q\-Factor
yading@10 8085 .IP "\fBo\fR" 4
yading@10 8086 .IX Item "o"
yading@10 8087 octave
yading@10 8088 .IP "\fBs\fR" 4
yading@10 8089 .IX Item "s"
yading@10 8090 slope
yading@10 8091 .RE
yading@10 8092 .RS 4
yading@10 8093 .RE
yading@10 8094 .IP "\fBwidth, w\fR" 4
yading@10 8095 .IX Item "width, w"
yading@10 8096 Determine how steep is the filter's shelf transition.
yading@10 8097 .SS "bandpass"
yading@10 8098 .IX Subsection "bandpass"
yading@10 8099 Apply a two-pole Butterworth band-pass filter with central
yading@10 8100 frequency \fIfrequency\fR, and (3dB\-point) band-width width.
yading@10 8101 The \fIcsg\fR option selects a constant skirt gain (peak gain = Q)
yading@10 8102 instead of the default: constant 0dB peak gain.
yading@10 8103 The filter roll off at 6dB per octave (20dB per decade).
yading@10 8104 .PP
yading@10 8105 The filter accepts the following options:
yading@10 8106 .IP "\fBfrequency, f\fR" 4
yading@10 8107 .IX Item "frequency, f"
yading@10 8108 Set the filter's central frequency. Default is \f(CW3000\fR.
yading@10 8109 .IP "\fBcsg\fR" 4
yading@10 8110 .IX Item "csg"
yading@10 8111 Constant skirt gain if set to 1. Defaults to 0.
yading@10 8112 .IP "\fBwidth_type\fR" 4
yading@10 8113 .IX Item "width_type"
yading@10 8114 Set method to specify band-width of filter.
yading@10 8115 .RS 4
yading@10 8116 .IP "\fBh\fR" 4
yading@10 8117 .IX Item "h"
yading@10 8118 Hz
yading@10 8119 .IP "\fBq\fR" 4
yading@10 8120 .IX Item "q"
yading@10 8121 Q\-Factor
yading@10 8122 .IP "\fBo\fR" 4
yading@10 8123 .IX Item "o"
yading@10 8124 octave
yading@10 8125 .IP "\fBs\fR" 4
yading@10 8126 .IX Item "s"
yading@10 8127 slope
yading@10 8128 .RE
yading@10 8129 .RS 4
yading@10 8130 .RE
yading@10 8131 .IP "\fBwidth, w\fR" 4
yading@10 8132 .IX Item "width, w"
yading@10 8133 Specify the band-width of a filter in width_type units.
yading@10 8134 .SS "bandreject"
yading@10 8135 .IX Subsection "bandreject"
yading@10 8136 Apply a two-pole Butterworth band-reject filter with central
yading@10 8137 frequency \fIfrequency\fR, and (3dB\-point) band-width \fIwidth\fR.
yading@10 8138 The filter roll off at 6dB per octave (20dB per decade).
yading@10 8139 .PP
yading@10 8140 The filter accepts the following options:
yading@10 8141 .IP "\fBfrequency, f\fR" 4
yading@10 8142 .IX Item "frequency, f"
yading@10 8143 Set the filter's central frequency. Default is \f(CW3000\fR.
yading@10 8144 .IP "\fBwidth_type\fR" 4
yading@10 8145 .IX Item "width_type"
yading@10 8146 Set method to specify band-width of filter.
yading@10 8147 .RS 4
yading@10 8148 .IP "\fBh\fR" 4
yading@10 8149 .IX Item "h"
yading@10 8150 Hz
yading@10 8151 .IP "\fBq\fR" 4
yading@10 8152 .IX Item "q"
yading@10 8153 Q\-Factor
yading@10 8154 .IP "\fBo\fR" 4
yading@10 8155 .IX Item "o"
yading@10 8156 octave
yading@10 8157 .IP "\fBs\fR" 4
yading@10 8158 .IX Item "s"
yading@10 8159 slope
yading@10 8160 .RE
yading@10 8161 .RS 4
yading@10 8162 .RE
yading@10 8163 .IP "\fBwidth, w\fR" 4
yading@10 8164 .IX Item "width, w"
yading@10 8165 Specify the band-width of a filter in width_type units.
yading@10 8166 .SS "biquad"
yading@10 8167 .IX Subsection "biquad"
yading@10 8168 Apply a biquad \s-1IIR\s0 filter with the given coefficients.
yading@10 8169 Where \fIb0\fR, \fIb1\fR, \fIb2\fR and \fIa0\fR, \fIa1\fR, \fIa2\fR
yading@10 8170 are the numerator and denominator coefficients respectively.
yading@10 8171 .SS "equalizer"
yading@10 8172 .IX Subsection "equalizer"
yading@10 8173 Apply a two-pole peaking equalisation (\s-1EQ\s0) filter. With this
yading@10 8174 filter, the signal-level at and around a selected frequency can
yading@10 8175 be increased or decreased, whilst (unlike bandpass and bandreject
yading@10 8176 filters) that at all other frequencies is unchanged.
yading@10 8177 .PP
yading@10 8178 In order to produce complex equalisation curves, this filter can
yading@10 8179 be given several times, each with a different central frequency.
yading@10 8180 .PP
yading@10 8181 The filter accepts the following options:
yading@10 8182 .IP "\fBfrequency, f\fR" 4
yading@10 8183 .IX Item "frequency, f"
yading@10 8184 Set the filter's central frequency in Hz.
yading@10 8185 .IP "\fBwidth_type\fR" 4
yading@10 8186 .IX Item "width_type"
yading@10 8187 Set method to specify band-width of filter.
yading@10 8188 .RS 4
yading@10 8189 .IP "\fBh\fR" 4
yading@10 8190 .IX Item "h"
yading@10 8191 Hz
yading@10 8192 .IP "\fBq\fR" 4
yading@10 8193 .IX Item "q"
yading@10 8194 Q\-Factor
yading@10 8195 .IP "\fBo\fR" 4
yading@10 8196 .IX Item "o"
yading@10 8197 octave
yading@10 8198 .IP "\fBs\fR" 4
yading@10 8199 .IX Item "s"
yading@10 8200 slope
yading@10 8201 .RE
yading@10 8202 .RS 4
yading@10 8203 .RE
yading@10 8204 .IP "\fBwidth, w\fR" 4
yading@10 8205 .IX Item "width, w"
yading@10 8206 Specify the band-width of a filter in width_type units.
yading@10 8207 .IP "\fBgain, g\fR" 4
yading@10 8208 .IX Item "gain, g"
yading@10 8209 Set the required gain or attenuation in dB.
yading@10 8210 Beware of clipping when using a positive gain.
yading@10 8211 .SS "afade"
yading@10 8212 .IX Subsection "afade"
yading@10 8213 Apply fade\-in/out effect to input audio.
yading@10 8214 .PP
yading@10 8215 A description of the accepted parameters follows.
yading@10 8216 .IP "\fBtype, t\fR" 4
yading@10 8217 .IX Item "type, t"
yading@10 8218 Specify the effect type, can be either \f(CW\*(C`in\*(C'\fR for fade-in, or
yading@10 8219 \&\f(CW\*(C`out\*(C'\fR for a fade-out effect. Default is \f(CW\*(C`in\*(C'\fR.
yading@10 8220 .IP "\fBstart_sample, ss\fR" 4
yading@10 8221 .IX Item "start_sample, ss"
yading@10 8222 Specify the number of the start sample for starting to apply the fade
yading@10 8223 effect. Default is 0.
yading@10 8224 .IP "\fBnb_samples, ns\fR" 4
yading@10 8225 .IX Item "nb_samples, ns"
yading@10 8226 Specify the number of samples for which the fade effect has to last. At
yading@10 8227 the end of the fade-in effect the output audio will have the same
yading@10 8228 volume as the input audio, at the end of the fade-out transition
yading@10 8229 the output audio will be silence. Default is 44100.
yading@10 8230 .IP "\fBstart_time, st\fR" 4
yading@10 8231 .IX Item "start_time, st"
yading@10 8232 Specify time for starting to apply the fade effect. Default is 0.
yading@10 8233 The accepted syntax is:
yading@10 8234 .Sp
yading@10 8235 .Vb 2
yading@10 8236 \& [\-]HH[:MM[:SS[.m...]]]
yading@10 8237 \& [\-]S+[.m...]
yading@10 8238 .Ve
yading@10 8239 .Sp
yading@10 8240 See also the function \f(CW\*(C`av_parse_time()\*(C'\fR.
yading@10 8241 If set this option is used instead of \fIstart_sample\fR one.
yading@10 8242 .IP "\fBduration, d\fR" 4
yading@10 8243 .IX Item "duration, d"
yading@10 8244 Specify the duration for which the fade effect has to last. Default is 0.
yading@10 8245 The accepted syntax is:
yading@10 8246 .Sp
yading@10 8247 .Vb 2
yading@10 8248 \& [\-]HH[:MM[:SS[.m...]]]
yading@10 8249 \& [\-]S+[.m...]
yading@10 8250 .Ve
yading@10 8251 .Sp
yading@10 8252 See also the function \f(CW\*(C`av_parse_time()\*(C'\fR.
yading@10 8253 At the end of the fade-in effect the output audio will have the same
yading@10 8254 volume as the input audio, at the end of the fade-out transition
yading@10 8255 the output audio will be silence.
yading@10 8256 If set this option is used instead of \fInb_samples\fR one.
yading@10 8257 .IP "\fBcurve\fR" 4
yading@10 8258 .IX Item "curve"
yading@10 8259 Set curve for fade transition.
yading@10 8260 .Sp
yading@10 8261 It accepts the following values:
yading@10 8262 .RS 4
yading@10 8263 .IP "\fBtri\fR" 4
yading@10 8264 .IX Item "tri"
yading@10 8265 select triangular, linear slope (default)
yading@10 8266 .IP "\fBqsin\fR" 4
yading@10 8267 .IX Item "qsin"
yading@10 8268 select quarter of sine wave
yading@10 8269 .IP "\fBhsin\fR" 4
yading@10 8270 .IX Item "hsin"
yading@10 8271 select half of sine wave
yading@10 8272 .IP "\fBesin\fR" 4
yading@10 8273 .IX Item "esin"
yading@10 8274 select exponential sine wave
yading@10 8275 .IP "\fBlog\fR" 4
yading@10 8276 .IX Item "log"
yading@10 8277 select logarithmic
yading@10 8278 .IP "\fBpar\fR" 4
yading@10 8279 .IX Item "par"
yading@10 8280 select inverted parabola
yading@10 8281 .IP "\fBqua\fR" 4
yading@10 8282 .IX Item "qua"
yading@10 8283 select quadratic
yading@10 8284 .IP "\fBcub\fR" 4
yading@10 8285 .IX Item "cub"
yading@10 8286 select cubic
yading@10 8287 .IP "\fBsqu\fR" 4
yading@10 8288 .IX Item "squ"
yading@10 8289 select square root
yading@10 8290 .IP "\fBcbr\fR" 4
yading@10 8291 .IX Item "cbr"
yading@10 8292 select cubic root
yading@10 8293 .RE
yading@10 8294 .RS 4
yading@10 8295 .RE
yading@10 8296 .PP
yading@10 8297 \fIExamples\fR
yading@10 8298 .IX Subsection "Examples"
yading@10 8299 .IP "\(bu" 4
yading@10 8300 Fade in first 15 seconds of audio:
yading@10 8301 .Sp
yading@10 8302 .Vb 1
yading@10 8303 \& afade=t=in:ss=0:d=15
yading@10 8304 .Ve
yading@10 8305 .IP "\(bu" 4
yading@10 8306 Fade out last 25 seconds of a 900 seconds audio:
yading@10 8307 .Sp
yading@10 8308 .Vb 1
yading@10 8309 \& afade=t=out:ss=875:d=25
yading@10 8310 .Ve
yading@10 8311 .SS "aformat"
yading@10 8312 .IX Subsection "aformat"
yading@10 8313 Set output format constraints for the input audio. The framework will
yading@10 8314 negotiate the most appropriate format to minimize conversions.
yading@10 8315 .PP
yading@10 8316 The filter accepts the following named parameters:
yading@10 8317 .IP "\fBsample_fmts\fR" 4
yading@10 8318 .IX Item "sample_fmts"
yading@10 8319 A '|'\-separated list of requested sample formats.
yading@10 8320 .IP "\fBsample_rates\fR" 4
yading@10 8321 .IX Item "sample_rates"
yading@10 8322 A '|'\-separated list of requested sample rates.
yading@10 8323 .IP "\fBchannel_layouts\fR" 4
yading@10 8324 .IX Item "channel_layouts"
yading@10 8325 A '|'\-separated list of requested channel layouts.
yading@10 8326 .PP
yading@10 8327 If a parameter is omitted, all values are allowed.
yading@10 8328 .PP
yading@10 8329 For example to force the output to either unsigned 8\-bit or signed 16\-bit stereo:
yading@10 8330 .PP
yading@10 8331 .Vb 1
yading@10 8332 \& aformat=sample_fmts=u8|s16:channel_layouts=stereo
yading@10 8333 .Ve
yading@10 8334 .SS "amerge"
yading@10 8335 .IX Subsection "amerge"
yading@10 8336 Merge two or more audio streams into a single multi-channel stream.
yading@10 8337 .PP
yading@10 8338 The filter accepts the following options:
yading@10 8339 .IP "\fBinputs\fR" 4
yading@10 8340 .IX Item "inputs"
yading@10 8341 Set the number of inputs. Default is 2.
yading@10 8342 .PP
yading@10 8343 If the channel layouts of the inputs are disjoint, and therefore compatible,
yading@10 8344 the channel layout of the output will be set accordingly and the channels
yading@10 8345 will be reordered as necessary. If the channel layouts of the inputs are not
yading@10 8346 disjoint, the output will have all the channels of the first input then all
yading@10 8347 the channels of the second input, in that order, and the channel layout of
yading@10 8348 the output will be the default value corresponding to the total number of
yading@10 8349 channels.
yading@10 8350 .PP
yading@10 8351 For example, if the first input is in 2.1 (\s-1FL+FR+LF\s0) and the second input
yading@10 8352 is \s-1FC+BL+BR\s0, then the output will be in 5.1, with the channels in the
yading@10 8353 following order: a1, a2, b1, a3, b2, b3 (a1 is the first channel of the
yading@10 8354 first input, b1 is the first channel of the second input).
yading@10 8355 .PP
yading@10 8356 On the other hand, if both input are in stereo, the output channels will be
yading@10 8357 in the default order: a1, a2, b1, b2, and the channel layout will be
yading@10 8358 arbitrarily set to 4.0, which may or may not be the expected value.
yading@10 8359 .PP
yading@10 8360 All inputs must have the same sample rate, and format.
yading@10 8361 .PP
yading@10 8362 If inputs do not have the same duration, the output will stop with the
yading@10 8363 shortest.
yading@10 8364 .PP
yading@10 8365 \fIExamples\fR
yading@10 8366 .IX Subsection "Examples"
yading@10 8367 .IP "\(bu" 4
yading@10 8368 Merge two mono files into a stereo stream:
yading@10 8369 .Sp
yading@10 8370 .Vb 1
yading@10 8371 \& amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
yading@10 8372 .Ve
yading@10 8373 .IP "\(bu" 4
yading@10 8374 Multiple merges assuming 1 video stream and 6 audio streams in \fIinput.mkv\fR:
yading@10 8375 .Sp
yading@10 8376 .Vb 1
yading@10 8377 \& ffmpeg \-i input.mkv \-filter_complex "[0:1][0:2][0:3][0:4][0:5][0:6] amerge=inputs=6" \-c:a pcm_s16le output.mkv
yading@10 8378 .Ve
yading@10 8379 .SS "amix"
yading@10 8380 .IX Subsection "amix"
yading@10 8381 Mixes multiple audio inputs into a single output.
yading@10 8382 .PP
yading@10 8383 For example
yading@10 8384 .PP
yading@10 8385 .Vb 1
yading@10 8386 \& ffmpeg \-i INPUT1 \-i INPUT2 \-i INPUT3 \-filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
yading@10 8387 .Ve
yading@10 8388 .PP
yading@10 8389 will mix 3 input audio streams to a single output with the same duration as the
yading@10 8390 first input and a dropout transition time of 3 seconds.
yading@10 8391 .PP
yading@10 8392 The filter accepts the following named parameters:
yading@10 8393 .IP "\fBinputs\fR" 4
yading@10 8394 .IX Item "inputs"
yading@10 8395 Number of inputs. If unspecified, it defaults to 2.
yading@10 8396 .IP "\fBduration\fR" 4
yading@10 8397 .IX Item "duration"
yading@10 8398 How to determine the end-of-stream.
yading@10 8399 .RS 4
yading@10 8400 .IP "\fBlongest\fR" 4
yading@10 8401 .IX Item "longest"
yading@10 8402 Duration of longest input. (default)
yading@10 8403 .IP "\fBshortest\fR" 4
yading@10 8404 .IX Item "shortest"
yading@10 8405 Duration of shortest input.
yading@10 8406 .IP "\fBfirst\fR" 4
yading@10 8407 .IX Item "first"
yading@10 8408 Duration of first input.
yading@10 8409 .RE
yading@10 8410 .RS 4
yading@10 8411 .RE
yading@10 8412 .IP "\fBdropout_transition\fR" 4
yading@10 8413 .IX Item "dropout_transition"
yading@10 8414 Transition time, in seconds, for volume renormalization when an input
yading@10 8415 stream ends. The default value is 2 seconds.
yading@10 8416 .SS "anull"
yading@10 8417 .IX Subsection "anull"
yading@10 8418 Pass the audio source unchanged to the output.
yading@10 8419 .SS "apad"
yading@10 8420 .IX Subsection "apad"
yading@10 8421 Pad the end of a audio stream with silence, this can be used together with
yading@10 8422 \&\-shortest to extend audio streams to the same length as the video stream.
yading@10 8423 .SS "aphaser"
yading@10 8424 .IX Subsection "aphaser"
yading@10 8425 Add a phasing effect to the input audio.
yading@10 8426 .PP
yading@10 8427 A phaser filter creates series of peaks and troughs in the frequency spectrum.
yading@10 8428 The position of the peaks and troughs are modulated so that they vary over time, creating a sweeping effect.
yading@10 8429 .PP
yading@10 8430 A description of the accepted parameters follows.
yading@10 8431 .IP "\fBin_gain\fR" 4
yading@10 8432 .IX Item "in_gain"
yading@10 8433 Set input gain. Default is 0.4.
yading@10 8434 .IP "\fBout_gain\fR" 4
yading@10 8435 .IX Item "out_gain"
yading@10 8436 Set output gain. Default is 0.74
yading@10 8437 .IP "\fBdelay\fR" 4
yading@10 8438 .IX Item "delay"
yading@10 8439 Set delay in milliseconds. Default is 3.0.
yading@10 8440 .IP "\fBdecay\fR" 4
yading@10 8441 .IX Item "decay"
yading@10 8442 Set decay. Default is 0.4.
yading@10 8443 .IP "\fBspeed\fR" 4
yading@10 8444 .IX Item "speed"
yading@10 8445 Set modulation speed in Hz. Default is 0.5.
yading@10 8446 .IP "\fBtype\fR" 4
yading@10 8447 .IX Item "type"
yading@10 8448 Set modulation type. Default is triangular.
yading@10 8449 .Sp
yading@10 8450 It accepts the following values:
yading@10 8451 .RS 4
yading@10 8452 .IP "\fBtriangular, t\fR" 4
yading@10 8453 .IX Item "triangular, t"
yading@10 8454 .PD 0
yading@10 8455 .IP "\fBsinusoidal, s\fR" 4
yading@10 8456 .IX Item "sinusoidal, s"
yading@10 8457 .RE
yading@10 8458 .RS 4
yading@10 8459 .RE
yading@10 8460 .PD
yading@10 8461 .SS "aresample"
yading@10 8462 .IX Subsection "aresample"
yading@10 8463 Resample the input audio to the specified parameters, using the
yading@10 8464 libswresample library. If none are specified then the filter will
yading@10 8465 automatically convert between its input and output.
yading@10 8466 .PP
yading@10 8467 This filter is also able to stretch/squeeze the audio data to make it match
yading@10 8468 the timestamps or to inject silence / cut out audio to make it match the
yading@10 8469 timestamps, do a combination of both or do neither.
yading@10 8470 .PP
yading@10 8471 The filter accepts the syntax
yading@10 8472 [\fIsample_rate\fR:]\fIresampler_options\fR, where \fIsample_rate\fR
yading@10 8473 expresses a sample rate and \fIresampler_options\fR is a list of
yading@10 8474 \&\fIkey\fR=\fIvalue\fR pairs, separated by \*(L":\*(R". See the
yading@10 8475 ffmpeg-resampler manual for the complete list of supported options.
yading@10 8476 .PP
yading@10 8477 \fIExamples\fR
yading@10 8478 .IX Subsection "Examples"
yading@10 8479 .IP "\(bu" 4
yading@10 8480 Resample the input audio to 44100Hz:
yading@10 8481 .Sp
yading@10 8482 .Vb 1
yading@10 8483 \& aresample=44100
yading@10 8484 .Ve
yading@10 8485 .IP "\(bu" 4
yading@10 8486 Stretch/squeeze samples to the given timestamps, with a maximum of 1000
yading@10 8487 samples per second compensation:
yading@10 8488 .Sp
yading@10 8489 .Vb 1
yading@10 8490 \& aresample=async=1000
yading@10 8491 .Ve
yading@10 8492 .SS "asetnsamples"
yading@10 8493 .IX Subsection "asetnsamples"
yading@10 8494 Set the number of samples per each output audio frame.
yading@10 8495 .PP
yading@10 8496 The last output packet may contain a different number of samples, as
yading@10 8497 the filter will flush all the remaining samples when the input audio
yading@10 8498 signal its end.
yading@10 8499 .PP
yading@10 8500 The filter accepts the following options:
yading@10 8501 .IP "\fBnb_out_samples, n\fR" 4
yading@10 8502 .IX Item "nb_out_samples, n"
yading@10 8503 Set the number of frames per each output audio frame. The number is
yading@10 8504 intended as the number of samples \fIper each channel\fR.
yading@10 8505 Default value is 1024.
yading@10 8506 .IP "\fBpad, p\fR" 4
yading@10 8507 .IX Item "pad, p"
yading@10 8508 If set to 1, the filter will pad the last audio frame with zeroes, so
yading@10 8509 that the last frame will contain the same number of samples as the
yading@10 8510 previous ones. Default value is 1.
yading@10 8511 .PP
yading@10 8512 For example, to set the number of per-frame samples to 1234 and
yading@10 8513 disable padding for the last frame, use:
yading@10 8514 .PP
yading@10 8515 .Vb 1
yading@10 8516 \& asetnsamples=n=1234:p=0
yading@10 8517 .Ve
yading@10 8518 .SS "ashowinfo"
yading@10 8519 .IX Subsection "ashowinfo"
yading@10 8520 Show a line containing various information for each input audio frame.
yading@10 8521 The input audio is not modified.
yading@10 8522 .PP
yading@10 8523 The shown line contains a sequence of key/value pairs of the form
yading@10 8524 \&\fIkey\fR:\fIvalue\fR.
yading@10 8525 .PP
yading@10 8526 A description of each shown parameter follows:
yading@10 8527 .IP "\fBn\fR" 4
yading@10 8528 .IX Item "n"
yading@10 8529 sequential number of the input frame, starting from 0
yading@10 8530 .IP "\fBpts\fR" 4
yading@10 8531 .IX Item "pts"
yading@10 8532 Presentation timestamp of the input frame, in time base units; the time base
yading@10 8533 depends on the filter input pad, and is usually 1/\fIsample_rate\fR.
yading@10 8534 .IP "\fBpts_time\fR" 4
yading@10 8535 .IX Item "pts_time"
yading@10 8536 presentation timestamp of the input frame in seconds
yading@10 8537 .IP "\fBpos\fR" 4
yading@10 8538 .IX Item "pos"
yading@10 8539 position of the frame in the input stream, \-1 if this information in
yading@10 8540 unavailable and/or meaningless (for example in case of synthetic audio)
yading@10 8541 .IP "\fBfmt\fR" 4
yading@10 8542 .IX Item "fmt"
yading@10 8543 sample format
yading@10 8544 .IP "\fBchlayout\fR" 4
yading@10 8545 .IX Item "chlayout"
yading@10 8546 channel layout
yading@10 8547 .IP "\fBrate\fR" 4
yading@10 8548 .IX Item "rate"
yading@10 8549 sample rate for the audio frame
yading@10 8550 .IP "\fBnb_samples\fR" 4
yading@10 8551 .IX Item "nb_samples"
yading@10 8552 number of samples (per channel) in the frame
yading@10 8553 .IP "\fBchecksum\fR" 4
yading@10 8554 .IX Item "checksum"
yading@10 8555 Adler\-32 checksum (printed in hexadecimal) of the audio data. For planar audio
yading@10 8556 the data is treated as if all the planes were concatenated.
yading@10 8557 .IP "\fBplane_checksums\fR" 4
yading@10 8558 .IX Item "plane_checksums"
yading@10 8559 A list of Adler\-32 checksums for each data plane.
yading@10 8560 .SS "astreamsync"
yading@10 8561 .IX Subsection "astreamsync"
yading@10 8562 Forward two audio streams and control the order the buffers are forwarded.
yading@10 8563 .PP
yading@10 8564 The filter accepts the following options:
yading@10 8565 .IP "\fBexpr, e\fR" 4
yading@10 8566 .IX Item "expr, e"
yading@10 8567 Set the expression deciding which stream should be
yading@10 8568 forwarded next: if the result is negative, the first stream is forwarded; if
yading@10 8569 the result is positive or zero, the second stream is forwarded. It can use
yading@10 8570 the following variables:
yading@10 8571 .RS 4
yading@10 8572 .IP "\fIb1 b2\fR" 4
yading@10 8573 .IX Item "b1 b2"
yading@10 8574 number of buffers forwarded so far on each stream
yading@10 8575 .IP "\fIs1 s2\fR" 4
yading@10 8576 .IX Item "s1 s2"
yading@10 8577 number of samples forwarded so far on each stream
yading@10 8578 .IP "\fIt1 t2\fR" 4
yading@10 8579 .IX Item "t1 t2"
yading@10 8580 current timestamp of each stream
yading@10 8581 .RE
yading@10 8582 .RS 4
yading@10 8583 .Sp
yading@10 8584 The default value is \f(CW\*(C`t1\-t2\*(C'\fR, which means to always forward the stream
yading@10 8585 that has a smaller timestamp.
yading@10 8586 .RE
yading@10 8587 .PP
yading@10 8588 \fIExamples\fR
yading@10 8589 .IX Subsection "Examples"
yading@10 8590 .PP
yading@10 8591 Stress-test \f(CW\*(C`amerge\*(C'\fR by randomly sending buffers on the wrong
yading@10 8592 input, while avoiding too much of a desynchronization:
yading@10 8593 .PP
yading@10 8594 .Vb 3
yading@10 8595 \& amovie=file.ogg [a] ; amovie=file.mp3 [b] ;
yading@10 8596 \& [a] [b] astreamsync=(2*random(1))\-1+tanh(5*(t1\-t2)) [a2] [b2] ;
yading@10 8597 \& [a2] [b2] amerge
yading@10 8598 .Ve
yading@10 8599 .SS "atempo"
yading@10 8600 .IX Subsection "atempo"
yading@10 8601 Adjust audio tempo.
yading@10 8602 .PP
yading@10 8603 The filter accepts exactly one parameter, the audio tempo. If not
yading@10 8604 specified then the filter will assume nominal 1.0 tempo. Tempo must
yading@10 8605 be in the [0.5, 2.0] range.
yading@10 8606 .PP
yading@10 8607 \fIExamples\fR
yading@10 8608 .IX Subsection "Examples"
yading@10 8609 .IP "\(bu" 4
yading@10 8610 Slow down audio to 80% tempo:
yading@10 8611 .Sp
yading@10 8612 .Vb 1
yading@10 8613 \& atempo=0.8
yading@10 8614 .Ve
yading@10 8615 .IP "\(bu" 4
yading@10 8616 To speed up audio to 125% tempo:
yading@10 8617 .Sp
yading@10 8618 .Vb 1
yading@10 8619 \& atempo=1.25
yading@10 8620 .Ve
yading@10 8621 .SS "earwax"
yading@10 8622 .IX Subsection "earwax"
yading@10 8623 Make audio easier to listen to on headphones.
yading@10 8624 .PP
yading@10 8625 This filter adds `cues' to 44.1kHz stereo (i.e. audio \s-1CD\s0 format) audio
yading@10 8626 so that when listened to on headphones the stereo image is moved from
yading@10 8627 inside your head (standard for headphones) to outside and in front of
yading@10 8628 the listener (standard for speakers).
yading@10 8629 .PP
yading@10 8630 Ported from SoX.
yading@10 8631 .SS "pan"
yading@10 8632 .IX Subsection "pan"
yading@10 8633 Mix channels with specific gain levels. The filter accepts the output
yading@10 8634 channel layout followed by a set of channels definitions.
yading@10 8635 .PP
yading@10 8636 This filter is also designed to remap efficiently the channels of an audio
yading@10 8637 stream.
yading@10 8638 .PP
yading@10 8639 The filter accepts parameters of the form:
yading@10 8640 "\fIl\fR:\fIoutdef\fR:\fIoutdef\fR:..."
yading@10 8641 .IP "\fBl\fR" 4
yading@10 8642 .IX Item "l"
yading@10 8643 output channel layout or number of channels
yading@10 8644 .IP "\fBoutdef\fR" 4
yading@10 8645 .IX Item "outdef"
yading@10 8646 output channel specification, of the form:
yading@10 8647 "\fIout_name\fR=[\fIgain\fR*]\fIin_name\fR[+[\fIgain\fR*]\fIin_name\fR...]"
yading@10 8648 .IP "\fBout_name\fR" 4
yading@10 8649 .IX Item "out_name"
yading@10 8650 output channel to define, either a channel name (\s-1FL\s0, \s-1FR\s0, etc.) or a channel
yading@10 8651 number (c0, c1, etc.)
yading@10 8652 .IP "\fBgain\fR" 4
yading@10 8653 .IX Item "gain"
yading@10 8654 multiplicative coefficient for the channel, 1 leaving the volume unchanged
yading@10 8655 .IP "\fBin_name\fR" 4
yading@10 8656 .IX Item "in_name"
yading@10 8657 input channel to use, see out_name for details; it is not possible to mix
yading@10 8658 named and numbered input channels
yading@10 8659 .PP
yading@10 8660 If the `=' in a channel specification is replaced by `<', then the gains for
yading@10 8661 that specification will be renormalized so that the total is 1, thus
yading@10 8662 avoiding clipping noise.
yading@10 8663 .PP
yading@10 8664 \fIMixing examples\fR
yading@10 8665 .IX Subsection "Mixing examples"
yading@10 8666 .PP
yading@10 8667 For example, if you want to down-mix from stereo to mono, but with a bigger
yading@10 8668 factor for the left channel:
yading@10 8669 .PP
yading@10 8670 .Vb 1
yading@10 8671 \& pan=1:c0=0.9*c0+0.1*c1
yading@10 8672 .Ve
yading@10 8673 .PP
yading@10 8674 A customized down-mix to stereo that works automatically for 3\-, 4\-, 5\- and
yading@10 8675 7\-channels surround:
yading@10 8676 .PP
yading@10 8677 .Vb 1
yading@10 8678 \& pan=stereo: FL < FL + 0.5*FC + 0.6*BL + 0.6*SL : FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
yading@10 8679 .Ve
yading@10 8680 .PP
yading@10 8681 Note that \fBffmpeg\fR integrates a default down-mix (and up-mix) system
yading@10 8682 that should be preferred (see \*(L"\-ac\*(R" option) unless you have very specific
yading@10 8683 needs.
yading@10 8684 .PP
yading@10 8685 \fIRemapping examples\fR
yading@10 8686 .IX Subsection "Remapping examples"
yading@10 8687 .PP
yading@10 8688 The channel remapping will be effective if, and only if:
yading@10 8689 .IP "*<gain coefficients are zeroes or ones,>" 4
yading@10 8690 .IX Item "*<gain coefficients are zeroes or ones,>"
yading@10 8691 .PD 0
yading@10 8692 .IP "*<only one input per channel output,>" 4
yading@10 8693 .IX Item "*<only one input per channel output,>"
yading@10 8694 .PD
yading@10 8695 .PP
yading@10 8696 If all these conditions are satisfied, the filter will notify the user (\*(L"Pure
yading@10 8697 channel mapping detected\*(R"), and use an optimized and lossless method to do the
yading@10 8698 remapping.
yading@10 8699 .PP
yading@10 8700 For example, if you have a 5.1 source and want a stereo audio stream by
yading@10 8701 dropping the extra channels:
yading@10 8702 .PP
yading@10 8703 .Vb 1
yading@10 8704 \& pan="stereo: c0=FL : c1=FR"
yading@10 8705 .Ve
yading@10 8706 .PP
yading@10 8707 Given the same source, you can also switch front left and front right channels
yading@10 8708 and keep the input channel layout:
yading@10 8709 .PP
yading@10 8710 .Vb 1
yading@10 8711 \& pan="5.1: c0=c1 : c1=c0 : c2=c2 : c3=c3 : c4=c4 : c5=c5"
yading@10 8712 .Ve
yading@10 8713 .PP
yading@10 8714 If the input is a stereo audio stream, you can mute the front left channel (and
yading@10 8715 still keep the stereo channel layout) with:
yading@10 8716 .PP
yading@10 8717 .Vb 1
yading@10 8718 \& pan="stereo:c1=c1"
yading@10 8719 .Ve
yading@10 8720 .PP
yading@10 8721 Still with a stereo audio stream input, you can copy the right channel in both
yading@10 8722 front left and right:
yading@10 8723 .PP
yading@10 8724 .Vb 1
yading@10 8725 \& pan="stereo: c0=FR : c1=FR"
yading@10 8726 .Ve
yading@10 8727 .SS "silencedetect"
yading@10 8728 .IX Subsection "silencedetect"
yading@10 8729 Detect silence in an audio stream.
yading@10 8730 .PP
yading@10 8731 This filter logs a message when it detects that the input audio volume is less
yading@10 8732 or equal to a noise tolerance value for a duration greater or equal to the
yading@10 8733 minimum detected noise duration.
yading@10 8734 .PP
yading@10 8735 The printed times and duration are expressed in seconds.
yading@10 8736 .PP
yading@10 8737 The filter accepts the following options:
yading@10 8738 .IP "\fBduration, d\fR" 4
yading@10 8739 .IX Item "duration, d"
yading@10 8740 Set silence duration until notification (default is 2 seconds).
yading@10 8741 .IP "\fBnoise, n\fR" 4
yading@10 8742 .IX Item "noise, n"
yading@10 8743 Set noise tolerance. Can be specified in dB (in case \*(L"dB\*(R" is appended to the
yading@10 8744 specified value) or amplitude ratio. Default is \-60dB, or 0.001.
yading@10 8745 .PP
yading@10 8746 \fIExamples\fR
yading@10 8747 .IX Subsection "Examples"
yading@10 8748 .IP "\(bu" 4
yading@10 8749 Detect 5 seconds of silence with \-50dB noise tolerance:
yading@10 8750 .Sp
yading@10 8751 .Vb 1
yading@10 8752 \& silencedetect=n=\-50dB:d=5
yading@10 8753 .Ve
yading@10 8754 .IP "\(bu" 4
yading@10 8755 Complete example with \fBffmpeg\fR to detect silence with 0.0001 noise
yading@10 8756 tolerance in \fIsilence.mp3\fR:
yading@10 8757 .Sp
yading@10 8758 .Vb 1
yading@10 8759 \& ffmpeg \-i silence.mp3 \-af silencedetect=noise=0.0001 \-f null \-
yading@10 8760 .Ve
yading@10 8761 .SS "asyncts"
yading@10 8762 .IX Subsection "asyncts"
yading@10 8763 Synchronize audio data with timestamps by squeezing/stretching it and/or
yading@10 8764 dropping samples/adding silence when needed.
yading@10 8765 .PP
yading@10 8766 This filter is not built by default, please use aresample to do squeezing/stretching.
yading@10 8767 .PP
yading@10 8768 The filter accepts the following named parameters:
yading@10 8769 .IP "\fBcompensate\fR" 4
yading@10 8770 .IX Item "compensate"
yading@10 8771 Enable stretching/squeezing the data to make it match the timestamps. Disabled
yading@10 8772 by default. When disabled, time gaps are covered with silence.
yading@10 8773 .IP "\fBmin_delta\fR" 4
yading@10 8774 .IX Item "min_delta"
yading@10 8775 Minimum difference between timestamps and audio data (in seconds) to trigger
yading@10 8776 adding/dropping samples. Default value is 0.1. If you get non-perfect sync with
yading@10 8777 this filter, try setting this parameter to 0.
yading@10 8778 .IP "\fBmax_comp\fR" 4
yading@10 8779 .IX Item "max_comp"
yading@10 8780 Maximum compensation in samples per second. Relevant only with compensate=1.
yading@10 8781 Default value 500.
yading@10 8782 .IP "\fBfirst_pts\fR" 4
yading@10 8783 .IX Item "first_pts"
yading@10 8784 Assume the first pts should be this value. The time base is 1 / sample rate.
yading@10 8785 This allows for padding/trimming at the start of stream. By default, no
yading@10 8786 assumption is made about the first frame's expected pts, so no padding or
yading@10 8787 trimming is done. For example, this could be set to 0 to pad the beginning with
yading@10 8788 silence if an audio stream starts after the video stream or to trim any samples
yading@10 8789 with a negative pts due to encoder delay.
yading@10 8790 .SS "channelsplit"
yading@10 8791 .IX Subsection "channelsplit"
yading@10 8792 Split each channel in input audio stream into a separate output stream.
yading@10 8793 .PP
yading@10 8794 This filter accepts the following named parameters:
yading@10 8795 .IP "\fBchannel_layout\fR" 4
yading@10 8796 .IX Item "channel_layout"
yading@10 8797 Channel layout of the input stream. Default is \*(L"stereo\*(R".
yading@10 8798 .PP
yading@10 8799 For example, assuming a stereo input \s-1MP3\s0 file
yading@10 8800 .PP
yading@10 8801 .Vb 1
yading@10 8802 \& ffmpeg \-i in.mp3 \-filter_complex channelsplit out.mkv
yading@10 8803 .Ve
yading@10 8804 .PP
yading@10 8805 will create an output Matroska file with two audio streams, one containing only
yading@10 8806 the left channel and the other the right channel.
yading@10 8807 .PP
yading@10 8808 To split a 5.1 \s-1WAV\s0 file into per-channel files
yading@10 8809 .PP
yading@10 8810 .Vb 5
yading@10 8811 \& ffmpeg \-i in.wav \-filter_complex
yading@10 8812 \& \*(Aqchannelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]\*(Aq
yading@10 8813 \& \-map \*(Aq[FL]\*(Aq front_left.wav \-map \*(Aq[FR]\*(Aq front_right.wav \-map \*(Aq[FC]\*(Aq
yading@10 8814 \& front_center.wav \-map \*(Aq[LFE]\*(Aq lfe.wav \-map \*(Aq[SL]\*(Aq side_left.wav \-map \*(Aq[SR]\*(Aq
yading@10 8815 \& side_right.wav
yading@10 8816 .Ve
yading@10 8817 .SS "channelmap"
yading@10 8818 .IX Subsection "channelmap"
yading@10 8819 Remap input channels to new locations.
yading@10 8820 .PP
yading@10 8821 This filter accepts the following named parameters:
yading@10 8822 .IP "\fBchannel_layout\fR" 4
yading@10 8823 .IX Item "channel_layout"
yading@10 8824 Channel layout of the output stream.
yading@10 8825 .IP "\fBmap\fR" 4
yading@10 8826 .IX Item "map"
yading@10 8827 Map channels from input to output. The argument is a '|'\-separated list of
yading@10 8828 mappings, each in the \f(CW\*(C`\f(CIin_channel\f(CW\-\f(CIout_channel\f(CW\*(C'\fR or
yading@10 8829 \&\fIin_channel\fR form. \fIin_channel\fR can be either the name of the input
yading@10 8830 channel (e.g. \s-1FL\s0 for front left) or its index in the input channel layout.
yading@10 8831 \&\fIout_channel\fR is the name of the output channel or its index in the output
yading@10 8832 channel layout. If \fIout_channel\fR is not given then it is implicitly an
yading@10 8833 index, starting with zero and increasing by one for each mapping.
yading@10 8834 .PP
yading@10 8835 If no mapping is present, the filter will implicitly map input channels to
yading@10 8836 output channels preserving index.
yading@10 8837 .PP
yading@10 8838 For example, assuming a 5.1+downmix input \s-1MOV\s0 file
yading@10 8839 .PP
yading@10 8840 .Vb 1
yading@10 8841 \& ffmpeg \-i in.mov \-filter \*(Aqchannelmap=map=DL\-FL|DR\-FR\*(Aq out.wav
yading@10 8842 .Ve
yading@10 8843 .PP
yading@10 8844 will create an output \s-1WAV\s0 file tagged as stereo from the downmix channels of
yading@10 8845 the input.
yading@10 8846 .PP
yading@10 8847 To fix a 5.1 \s-1WAV\s0 improperly encoded in \s-1AAC\s0's native channel order
yading@10 8848 .PP
yading@10 8849 .Vb 1
yading@10 8850 \& ffmpeg \-i in.wav \-filter \*(Aqchannelmap=1|2|0|5|3|4:channel_layout=5.1\*(Aq out.wav
yading@10 8851 .Ve
yading@10 8852 .SS "join"
yading@10 8853 .IX Subsection "join"
yading@10 8854 Join multiple input streams into one multi-channel stream.
yading@10 8855 .PP
yading@10 8856 The filter accepts the following named parameters:
yading@10 8857 .IP "\fBinputs\fR" 4
yading@10 8858 .IX Item "inputs"
yading@10 8859 Number of input streams. Defaults to 2.
yading@10 8860 .IP "\fBchannel_layout\fR" 4
yading@10 8861 .IX Item "channel_layout"
yading@10 8862 Desired output channel layout. Defaults to stereo.
yading@10 8863 .IP "\fBmap\fR" 4
yading@10 8864 .IX Item "map"
yading@10 8865 Map channels from inputs to output. The argument is a '|'\-separated list of
yading@10 8866 mappings, each in the \f(CW\*(C`\f(CIinput_idx\f(CW.\f(CIin_channel\f(CW\-\f(CIout_channel\f(CW\*(C'\fR
yading@10 8867 form. \fIinput_idx\fR is the 0\-based index of the input stream. \fIin_channel\fR
yading@10 8868 can be either the name of the input channel (e.g. \s-1FL\s0 for front left) or its
yading@10 8869 index in the specified input stream. \fIout_channel\fR is the name of the output
yading@10 8870 channel.
yading@10 8871 .PP
yading@10 8872 The filter will attempt to guess the mappings when those are not specified
yading@10 8873 explicitly. It does so by first trying to find an unused matching input channel
yading@10 8874 and if that fails it picks the first unused input channel.
yading@10 8875 .PP
yading@10 8876 E.g. to join 3 inputs (with properly set channel layouts)
yading@10 8877 .PP
yading@10 8878 .Vb 1
yading@10 8879 \& ffmpeg \-i INPUT1 \-i INPUT2 \-i INPUT3 \-filter_complex join=inputs=3 OUTPUT
yading@10 8880 .Ve
yading@10 8881 .PP
yading@10 8882 To build a 5.1 output from 6 single-channel streams:
yading@10 8883 .PP
yading@10 8884 .Vb 3
yading@10 8885 \& ffmpeg \-i fl \-i fr \-i fc \-i sl \-i sr \-i lfe \-filter_complex
yading@10 8886 \& \*(Aqjoin=inputs=6:channel_layout=5.1:map=0.0\-FL|1.0\-FR|2.0\-FC|3.0\-SL|4.0\-SR|5.0\-LFE\*(Aq
yading@10 8887 \& out
yading@10 8888 .Ve
yading@10 8889 .SS "resample"
yading@10 8890 .IX Subsection "resample"
yading@10 8891 Convert the audio sample format, sample rate and channel layout. This filter is
yading@10 8892 not meant to be used directly.
yading@10 8893 .SS "volume"
yading@10 8894 .IX Subsection "volume"
yading@10 8895 Adjust the input audio volume.
yading@10 8896 .PP
yading@10 8897 The filter accepts the following options:
yading@10 8898 .IP "\fBvolume\fR" 4
yading@10 8899 .IX Item "volume"
yading@10 8900 Expresses how the audio volume will be increased or decreased.
yading@10 8901 .Sp
yading@10 8902 Output values are clipped to the maximum value.
yading@10 8903 .Sp
yading@10 8904 The output audio volume is given by the relation:
yading@10 8905 .Sp
yading@10 8906 .Vb 1
yading@10 8907 \& <output_volume> = <volume> * <input_volume>
yading@10 8908 .Ve
yading@10 8909 .Sp
yading@10 8910 Default value for \fIvolume\fR is 1.0.
yading@10 8911 .IP "\fBprecision\fR" 4
yading@10 8912 .IX Item "precision"
yading@10 8913 Set the mathematical precision.
yading@10 8914 .Sp
yading@10 8915 This determines which input sample formats will be allowed, which affects the
yading@10 8916 precision of the volume scaling.
yading@10 8917 .RS 4
yading@10 8918 .IP "\fBfixed\fR" 4
yading@10 8919 .IX Item "fixed"
yading@10 8920 8\-bit fixed-point; limits input sample format to U8, S16, and S32.
yading@10 8921 .IP "\fBfloat\fR" 4
yading@10 8922 .IX Item "float"
yading@10 8923 32\-bit floating-point; limits input sample format to \s-1FLT\s0. (default)
yading@10 8924 .IP "\fBdouble\fR" 4
yading@10 8925 .IX Item "double"
yading@10 8926 64\-bit floating-point; limits input sample format to \s-1DBL\s0.
yading@10 8927 .RE
yading@10 8928 .RS 4
yading@10 8929 .RE
yading@10 8930 .PP
yading@10 8931 \fIExamples\fR
yading@10 8932 .IX Subsection "Examples"
yading@10 8933 .IP "\(bu" 4
yading@10 8934 Halve the input audio volume:
yading@10 8935 .Sp
yading@10 8936 .Vb 3
yading@10 8937 \& volume=volume=0.5
yading@10 8938 \& volume=volume=1/2
yading@10 8939 \& volume=volume=\-6.0206dB
yading@10 8940 .Ve
yading@10 8941 .Sp
yading@10 8942 In all the above example the named key for \fBvolume\fR can be
yading@10 8943 omitted, for example like in:
yading@10 8944 .Sp
yading@10 8945 .Vb 1
yading@10 8946 \& volume=0.5
yading@10 8947 .Ve
yading@10 8948 .IP "\(bu" 4
yading@10 8949 Increase input audio power by 6 decibels using fixed-point precision:
yading@10 8950 .Sp
yading@10 8951 .Vb 1
yading@10 8952 \& volume=volume=6dB:precision=fixed
yading@10 8953 .Ve
yading@10 8954 .SS "volumedetect"
yading@10 8955 .IX Subsection "volumedetect"
yading@10 8956 Detect the volume of the input video.
yading@10 8957 .PP
yading@10 8958 The filter has no parameters. The input is not modified. Statistics about
yading@10 8959 the volume will be printed in the log when the input stream end is reached.
yading@10 8960 .PP
yading@10 8961 In particular it will show the mean volume (root mean square), maximum
yading@10 8962 volume (on a per-sample basis), and the beginning of an histogram of the
yading@10 8963 registered volume values (from the maximum value to a cumulated 1/1000 of
yading@10 8964 the samples).
yading@10 8965 .PP
yading@10 8966 All volumes are in decibels relative to the maximum \s-1PCM\s0 value.
yading@10 8967 .PP
yading@10 8968 \fIExamples\fR
yading@10 8969 .IX Subsection "Examples"
yading@10 8970 .PP
yading@10 8971 Here is an excerpt of the output:
yading@10 8972 .PP
yading@10 8973 .Vb 9
yading@10 8974 \& [Parsed_volumedetect_0 0xa23120] mean_volume: \-27 dB
yading@10 8975 \& [Parsed_volumedetect_0 0xa23120] max_volume: \-4 dB
yading@10 8976 \& [Parsed_volumedetect_0 0xa23120] histogram_4db: 6
yading@10 8977 \& [Parsed_volumedetect_0 0xa23120] histogram_5db: 62
yading@10 8978 \& [Parsed_volumedetect_0 0xa23120] histogram_6db: 286
yading@10 8979 \& [Parsed_volumedetect_0 0xa23120] histogram_7db: 1042
yading@10 8980 \& [Parsed_volumedetect_0 0xa23120] histogram_8db: 2551
yading@10 8981 \& [Parsed_volumedetect_0 0xa23120] histogram_9db: 4609
yading@10 8982 \& [Parsed_volumedetect_0 0xa23120] histogram_10db: 8409
yading@10 8983 .Ve
yading@10 8984 .PP
yading@10 8985 It means that:
yading@10 8986 .IP "\(bu" 4
yading@10 8987 The mean square energy is approximately \-27 dB, or 10^\-2.7.
yading@10 8988 .IP "\(bu" 4
yading@10 8989 The largest sample is at \-4 dB, or more precisely between \-4 dB and \-5 dB.
yading@10 8990 .IP "\(bu" 4
yading@10 8991 There are 6 samples at \-4 dB, 62 at \-5 dB, 286 at \-6 dB, etc.
yading@10 8992 .PP
yading@10 8993 In other words, raising the volume by +4 dB does not cause any clipping,
yading@10 8994 raising it by +5 dB causes clipping for 6 samples, etc.
yading@10 8995 .SH "AUDIO SOURCES"
yading@10 8996 .IX Header "AUDIO SOURCES"
yading@10 8997 Below is a description of the currently available audio sources.
yading@10 8998 .SS "abuffer"
yading@10 8999 .IX Subsection "abuffer"
yading@10 9000 Buffer audio frames, and make them available to the filter chain.
yading@10 9001 .PP
yading@10 9002 This source is mainly intended for a programmatic use, in particular
yading@10 9003 through the interface defined in \fIlibavfilter/asrc_abuffer.h\fR.
yading@10 9004 .PP
yading@10 9005 It accepts the following named parameters:
yading@10 9006 .IP "\fBtime_base\fR" 4
yading@10 9007 .IX Item "time_base"
yading@10 9008 Timebase which will be used for timestamps of submitted frames. It must be
yading@10 9009 either a floating-point number or in \fInumerator\fR/\fIdenominator\fR form.
yading@10 9010 .IP "\fBsample_rate\fR" 4
yading@10 9011 .IX Item "sample_rate"
yading@10 9012 The sample rate of the incoming audio buffers.
yading@10 9013 .IP "\fBsample_fmt\fR" 4
yading@10 9014 .IX Item "sample_fmt"
yading@10 9015 The sample format of the incoming audio buffers.
yading@10 9016 Either a sample format name or its corresponging integer representation from
yading@10 9017 the enum AVSampleFormat in \fIlibavutil/samplefmt.h\fR
yading@10 9018 .IP "\fBchannel_layout\fR" 4
yading@10 9019 .IX Item "channel_layout"
yading@10 9020 The channel layout of the incoming audio buffers.
yading@10 9021 Either a channel layout name from channel_layout_map in
yading@10 9022 \&\fIlibavutil/channel_layout.c\fR or its corresponding integer representation
yading@10 9023 from the AV_CH_LAYOUT_* macros in \fIlibavutil/channel_layout.h\fR
yading@10 9024 .IP "\fBchannels\fR" 4
yading@10 9025 .IX Item "channels"
yading@10 9026 The number of channels of the incoming audio buffers.
yading@10 9027 If both \fIchannels\fR and \fIchannel_layout\fR are specified, then they
yading@10 9028 must be consistent.
yading@10 9029 .PP
yading@10 9030 \fIExamples\fR
yading@10 9031 .IX Subsection "Examples"
yading@10 9032 .PP
yading@10 9033 .Vb 1
yading@10 9034 \& abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
yading@10 9035 .Ve
yading@10 9036 .PP
yading@10 9037 will instruct the source to accept planar 16bit signed stereo at 44100Hz.
yading@10 9038 Since the sample format with name \*(L"s16p\*(R" corresponds to the number
yading@10 9039 6 and the \*(L"stereo\*(R" channel layout corresponds to the value 0x3, this is
yading@10 9040 equivalent to:
yading@10 9041 .PP
yading@10 9042 .Vb 1
yading@10 9043 \& abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
yading@10 9044 .Ve
yading@10 9045 .SS "aevalsrc"
yading@10 9046 .IX Subsection "aevalsrc"
yading@10 9047 Generate an audio signal specified by an expression.
yading@10 9048 .PP
yading@10 9049 This source accepts in input one or more expressions (one for each
yading@10 9050 channel), which are evaluated and used to generate a corresponding
yading@10 9051 audio signal.
yading@10 9052 .PP
yading@10 9053 This source accepts the following options:
yading@10 9054 .IP "\fBexprs\fR" 4
yading@10 9055 .IX Item "exprs"
yading@10 9056 Set the '|'\-separated expressions list for each separate channel. In case the
yading@10 9057 \&\fBchannel_layout\fR option is not specified, the selected channel layout
yading@10 9058 depends on the number of provided expressions.
yading@10 9059 .IP "\fBchannel_layout, c\fR" 4
yading@10 9060 .IX Item "channel_layout, c"
yading@10 9061 Set the channel layout. The number of channels in the specified layout
yading@10 9062 must be equal to the number of specified expressions.
yading@10 9063 .IP "\fBduration, d\fR" 4
yading@10 9064 .IX Item "duration, d"
yading@10 9065 Set the minimum duration of the sourced audio. See the function
yading@10 9066 \&\f(CW\*(C`av_parse_time()\*(C'\fR for the accepted format.
yading@10 9067 Note that the resulting duration may be greater than the specified
yading@10 9068 duration, as the generated audio is always cut at the end of a
yading@10 9069 complete frame.
yading@10 9070 .Sp
yading@10 9071 If not specified, or the expressed duration is negative, the audio is
yading@10 9072 supposed to be generated forever.
yading@10 9073 .IP "\fBnb_samples, n\fR" 4
yading@10 9074 .IX Item "nb_samples, n"
yading@10 9075 Set the number of samples per channel per each output frame,
yading@10 9076 default to 1024.
yading@10 9077 .IP "\fBsample_rate, s\fR" 4
yading@10 9078 .IX Item "sample_rate, s"
yading@10 9079 Specify the sample rate, default to 44100.
yading@10 9080 .PP
yading@10 9081 Each expression in \fIexprs\fR can contain the following constants:
yading@10 9082 .IP "\fBn\fR" 4
yading@10 9083 .IX Item "n"
yading@10 9084 number of the evaluated sample, starting from 0
yading@10 9085 .IP "\fBt\fR" 4
yading@10 9086 .IX Item "t"
yading@10 9087 time of the evaluated sample expressed in seconds, starting from 0
yading@10 9088 .IP "\fBs\fR" 4
yading@10 9089 .IX Item "s"
yading@10 9090 sample rate
yading@10 9091 .PP
yading@10 9092 \fIExamples\fR
yading@10 9093 .IX Subsection "Examples"
yading@10 9094 .IP "\(bu" 4
yading@10 9095 Generate silence:
yading@10 9096 .Sp
yading@10 9097 .Vb 1
yading@10 9098 \& aevalsrc=0
yading@10 9099 .Ve
yading@10 9100 .IP "\(bu" 4
yading@10 9101 Generate a sin signal with frequency of 440 Hz, set sample rate to
yading@10 9102 8000 Hz:
yading@10 9103 .Sp
yading@10 9104 .Vb 1
yading@10 9105 \& aevalsrc="sin(440*2*PI*t):s=8000"
yading@10 9106 .Ve
yading@10 9107 .IP "\(bu" 4
yading@10 9108 Generate a two channels signal, specify the channel layout (Front
yading@10 9109 Center + Back Center) explicitly:
yading@10 9110 .Sp
yading@10 9111 .Vb 1
yading@10 9112 \& aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
yading@10 9113 .Ve
yading@10 9114 .IP "\(bu" 4
yading@10 9115 Generate white noise:
yading@10 9116 .Sp
yading@10 9117 .Vb 1
yading@10 9118 \& aevalsrc="\-2+random(0)"
yading@10 9119 .Ve
yading@10 9120 .IP "\(bu" 4
yading@10 9121 Generate an amplitude modulated signal:
yading@10 9122 .Sp
yading@10 9123 .Vb 1
yading@10 9124 \& aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
yading@10 9125 .Ve
yading@10 9126 .IP "\(bu" 4
yading@10 9127 Generate 2.5 Hz binaural beats on a 360 Hz carrier:
yading@10 9128 .Sp
yading@10 9129 .Vb 1
yading@10 9130 \& aevalsrc="0.1*sin(2*PI*(360\-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
yading@10 9131 .Ve
yading@10 9132 .SS "anullsrc"
yading@10 9133 .IX Subsection "anullsrc"
yading@10 9134 Null audio source, return unprocessed audio frames. It is mainly useful
yading@10 9135 as a template and to be employed in analysis / debugging tools, or as
yading@10 9136 the source for filters which ignore the input data (for example the sox
yading@10 9137 synth filter).
yading@10 9138 .PP
yading@10 9139 This source accepts the following options:
yading@10 9140 .IP "\fBchannel_layout, cl\fR" 4
yading@10 9141 .IX Item "channel_layout, cl"
yading@10 9142 Specify the channel layout, and can be either an integer or a string
yading@10 9143 representing a channel layout. The default value of \fIchannel_layout\fR
yading@10 9144 is \*(L"stereo\*(R".
yading@10 9145 .Sp
yading@10 9146 Check the channel_layout_map definition in
yading@10 9147 \&\fIlibavutil/channel_layout.c\fR for the mapping between strings and
yading@10 9148 channel layout values.
yading@10 9149 .IP "\fBsample_rate, r\fR" 4
yading@10 9150 .IX Item "sample_rate, r"
yading@10 9151 Specify the sample rate, and defaults to 44100.
yading@10 9152 .IP "\fBnb_samples, n\fR" 4
yading@10 9153 .IX Item "nb_samples, n"
yading@10 9154 Set the number of samples per requested frames.
yading@10 9155 .PP
yading@10 9156 \fIExamples\fR
yading@10 9157 .IX Subsection "Examples"
yading@10 9158 .IP "\(bu" 4
yading@10 9159 Set the sample rate to 48000 Hz and the channel layout to \s-1AV_CH_LAYOUT_MONO\s0.
yading@10 9160 .Sp
yading@10 9161 .Vb 1
yading@10 9162 \& anullsrc=r=48000:cl=4
yading@10 9163 .Ve
yading@10 9164 .IP "\(bu" 4
yading@10 9165 Do the same operation with a more obvious syntax:
yading@10 9166 .Sp
yading@10 9167 .Vb 1
yading@10 9168 \& anullsrc=r=48000:cl=mono
yading@10 9169 .Ve
yading@10 9170 .SS "abuffer"
yading@10 9171 .IX Subsection "abuffer"
yading@10 9172 Buffer audio frames, and make them available to the filter chain.
yading@10 9173 .PP
yading@10 9174 This source is not intended to be part of user-supplied graph descriptions but
yading@10 9175 for insertion by calling programs through the interface defined in
yading@10 9176 \&\fIlibavfilter/buffersrc.h\fR.
yading@10 9177 .PP
yading@10 9178 It accepts the following named parameters:
yading@10 9179 .IP "\fBtime_base\fR" 4
yading@10 9180 .IX Item "time_base"
yading@10 9181 Timebase which will be used for timestamps of submitted frames. It must be
yading@10 9182 either a floating-point number or in \fInumerator\fR/\fIdenominator\fR form.
yading@10 9183 .IP "\fBsample_rate\fR" 4
yading@10 9184 .IX Item "sample_rate"
yading@10 9185 Audio sample rate.
yading@10 9186 .IP "\fBsample_fmt\fR" 4
yading@10 9187 .IX Item "sample_fmt"
yading@10 9188 Name of the sample format, as returned by \f(CW\*(C`av_get_sample_fmt_name()\*(C'\fR.
yading@10 9189 .IP "\fBchannel_layout\fR" 4
yading@10 9190 .IX Item "channel_layout"
yading@10 9191 Channel layout of the audio data, in the form that can be accepted by
yading@10 9192 \&\f(CW\*(C`av_get_channel_layout()\*(C'\fR.
yading@10 9193 .PP
yading@10 9194 All the parameters need to be explicitly defined.
yading@10 9195 .SS "flite"
yading@10 9196 .IX Subsection "flite"
yading@10 9197 Synthesize a voice utterance using the libflite library.
yading@10 9198 .PP
yading@10 9199 To enable compilation of this filter you need to configure FFmpeg with
yading@10 9200 \&\f(CW\*(C`\-\-enable\-libflite\*(C'\fR.
yading@10 9201 .PP
yading@10 9202 Note that the flite library is not thread-safe.
yading@10 9203 .PP
yading@10 9204 The filter accepts the following options:
yading@10 9205 .IP "\fBlist_voices\fR" 4
yading@10 9206 .IX Item "list_voices"
yading@10 9207 If set to 1, list the names of the available voices and exit
yading@10 9208 immediately. Default value is 0.
yading@10 9209 .IP "\fBnb_samples, n\fR" 4
yading@10 9210 .IX Item "nb_samples, n"
yading@10 9211 Set the maximum number of samples per frame. Default value is 512.
yading@10 9212 .IP "\fBtextfile\fR" 4
yading@10 9213 .IX Item "textfile"
yading@10 9214 Set the filename containing the text to speak.
yading@10 9215 .IP "\fBtext\fR" 4
yading@10 9216 .IX Item "text"
yading@10 9217 Set the text to speak.
yading@10 9218 .IP "\fBvoice, v\fR" 4
yading@10 9219 .IX Item "voice, v"
yading@10 9220 Set the voice to use for the speech synthesis. Default value is
yading@10 9221 \&\f(CW\*(C`kal\*(C'\fR. See also the \fIlist_voices\fR option.
yading@10 9222 .PP
yading@10 9223 \fIExamples\fR
yading@10 9224 .IX Subsection "Examples"
yading@10 9225 .IP "\(bu" 4
yading@10 9226 Read from file \fIspeech.txt\fR, and synthetize the text using the
yading@10 9227 standard flite voice:
yading@10 9228 .Sp
yading@10 9229 .Vb 1
yading@10 9230 \& flite=textfile=speech.txt
yading@10 9231 .Ve
yading@10 9232 .IP "\(bu" 4
yading@10 9233 Read the specified text selecting the \f(CW\*(C`slt\*(C'\fR voice:
yading@10 9234 .Sp
yading@10 9235 .Vb 1
yading@10 9236 \& flite=text=\*(AqSo fare thee well, poor devil of a Sub\-Sub, whose commentator I am\*(Aq:voice=slt
yading@10 9237 .Ve
yading@10 9238 .IP "\(bu" 4
yading@10 9239 Input text to ffmpeg:
yading@10 9240 .Sp
yading@10 9241 .Vb 1
yading@10 9242 \& ffmpeg \-f lavfi \-i flite=text=\*(AqSo fare thee well, poor devil of a Sub\-Sub, whose commentator I am\*(Aq:voice=slt
yading@10 9243 .Ve
yading@10 9244 .IP "\(bu" 4
yading@10 9245 Make \fIffplay\fR speak the specified text, using \f(CW\*(C`flite\*(C'\fR and
yading@10 9246 the \f(CW\*(C`lavfi\*(C'\fR device:
yading@10 9247 .Sp
yading@10 9248 .Vb 1
yading@10 9249 \& ffplay \-f lavfi flite=text=\*(AqNo more be grieved for which that thou hast done.\*(Aq
yading@10 9250 .Ve
yading@10 9251 .PP
yading@10 9252 For more information about libflite, check:
yading@10 9253 <\fBhttp://www.speech.cs.cmu.edu/flite/\fR>
yading@10 9254 .SS "sine"
yading@10 9255 .IX Subsection "sine"
yading@10 9256 Generate an audio signal made of a sine wave with amplitude 1/8.
yading@10 9257 .PP
yading@10 9258 The audio signal is bit-exact.
yading@10 9259 .PP
yading@10 9260 The filter accepts the following options:
yading@10 9261 .IP "\fBfrequency, f\fR" 4
yading@10 9262 .IX Item "frequency, f"
yading@10 9263 Set the carrier frequency. Default is 440 Hz.
yading@10 9264 .IP "\fBbeep_factor, b\fR" 4
yading@10 9265 .IX Item "beep_factor, b"
yading@10 9266 Enable a periodic beep every second with frequency \fIbeep_factor\fR times
yading@10 9267 the carrier frequency. Default is 0, meaning the beep is disabled.
yading@10 9268 .IP "\fBsample_rate, s\fR" 4
yading@10 9269 .IX Item "sample_rate, s"
yading@10 9270 Specify the sample rate, default is 44100.
yading@10 9271 .IP "\fBduration, d\fR" 4
yading@10 9272 .IX Item "duration, d"
yading@10 9273 Specify the duration of the generated audio stream.
yading@10 9274 .IP "\fBsamples_per_frame\fR" 4
yading@10 9275 .IX Item "samples_per_frame"
yading@10 9276 Set the number of samples per output frame, default is 1024.
yading@10 9277 .PP
yading@10 9278 \fIExamples\fR
yading@10 9279 .IX Subsection "Examples"
yading@10 9280 .IP "\(bu" 4
yading@10 9281 Generate a simple 440 Hz sine wave:
yading@10 9282 .Sp
yading@10 9283 .Vb 1
yading@10 9284 \& sine
yading@10 9285 .Ve
yading@10 9286 .IP "\(bu" 4
yading@10 9287 Generate a 220 Hz sine wave with a 880 Hz beep each second, for 5 seconds:
yading@10 9288 .Sp
yading@10 9289 .Vb 3
yading@10 9290 \& sine=220:4:d=5
yading@10 9291 \& sine=f=220:b=4:d=5
yading@10 9292 \& sine=frequency=220:beep_factor=4:duration=5
yading@10 9293 .Ve
yading@10 9294 .SH "AUDIO SINKS"
yading@10 9295 .IX Header "AUDIO SINKS"
yading@10 9296 Below is a description of the currently available audio sinks.
yading@10 9297 .SS "abuffersink"
yading@10 9298 .IX Subsection "abuffersink"
yading@10 9299 Buffer audio frames, and make them available to the end of filter chain.
yading@10 9300 .PP
yading@10 9301 This sink is mainly intended for programmatic use, in particular
yading@10 9302 through the interface defined in \fIlibavfilter/buffersink.h\fR
yading@10 9303 or the options system.
yading@10 9304 .PP
yading@10 9305 It accepts a pointer to an AVABufferSinkContext structure, which
yading@10 9306 defines the incoming buffers' formats, to be passed as the opaque
yading@10 9307 parameter to \f(CW\*(C`avfilter_init_filter\*(C'\fR for initialization.
yading@10 9308 .SS "anullsink"
yading@10 9309 .IX Subsection "anullsink"
yading@10 9310 Null audio sink, do absolutely nothing with the input audio. It is
yading@10 9311 mainly useful as a template and to be employed in analysis / debugging
yading@10 9312 tools.
yading@10 9313 .SH "VIDEO FILTERS"
yading@10 9314 .IX Header "VIDEO FILTERS"
yading@10 9315 When you configure your FFmpeg build, you can disable any of the
yading@10 9316 existing filters using \f(CW\*(C`\-\-disable\-filters\*(C'\fR.
yading@10 9317 The configure output will show the video filters included in your
yading@10 9318 build.
yading@10 9319 .PP
yading@10 9320 Below is a description of the currently available video filters.
yading@10 9321 .SS "alphaextract"
yading@10 9322 .IX Subsection "alphaextract"
yading@10 9323 Extract the alpha component from the input as a grayscale video. This
yading@10 9324 is especially useful with the \fIalphamerge\fR filter.
yading@10 9325 .SS "alphamerge"
yading@10 9326 .IX Subsection "alphamerge"
yading@10 9327 Add or replace the alpha component of the primary input with the
yading@10 9328 grayscale value of a second input. This is intended for use with
yading@10 9329 \&\fIalphaextract\fR to allow the transmission or storage of frame
yading@10 9330 sequences that have alpha in a format that doesn't support an alpha
yading@10 9331 channel.
yading@10 9332 .PP
yading@10 9333 For example, to reconstruct full frames from a normal YUV-encoded video
yading@10 9334 and a separate video created with \fIalphaextract\fR, you might use:
yading@10 9335 .PP
yading@10 9336 .Vb 1
yading@10 9337 \& movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
yading@10 9338 .Ve
yading@10 9339 .PP
yading@10 9340 Since this filter is designed for reconstruction, it operates on frame
yading@10 9341 sequences without considering timestamps, and terminates when either
yading@10 9342 input reaches end of stream. This will cause problems if your encoding
yading@10 9343 pipeline drops frames. If you're trying to apply an image as an
yading@10 9344 overlay to a video stream, consider the \fIoverlay\fR filter instead.
yading@10 9345 .SS "ass"
yading@10 9346 .IX Subsection "ass"
yading@10 9347 Same as the subtitles filter, except that it doesn't require libavcodec
yading@10 9348 and libavformat to work. On the other hand, it is limited to \s-1ASS\s0 (Advanced
yading@10 9349 Substation Alpha) subtitles files.
yading@10 9350 .SS "bbox"
yading@10 9351 .IX Subsection "bbox"
yading@10 9352 Compute the bounding box for the non-black pixels in the input frame
yading@10 9353 luminance plane.
yading@10 9354 .PP
yading@10 9355 This filter computes the bounding box containing all the pixels with a
yading@10 9356 luminance value greater than the minimum allowed value.
yading@10 9357 The parameters describing the bounding box are printed on the filter
yading@10 9358 log.
yading@10 9359 .SS "blackdetect"
yading@10 9360 .IX Subsection "blackdetect"
yading@10 9361 Detect video intervals that are (almost) completely black. Can be
yading@10 9362 useful to detect chapter transitions, commercials, or invalid
yading@10 9363 recordings. Output lines contains the time for the start, end and
yading@10 9364 duration of the detected black interval expressed in seconds.
yading@10 9365 .PP
yading@10 9366 In order to display the output lines, you need to set the loglevel at
yading@10 9367 least to the \s-1AV_LOG_INFO\s0 value.
yading@10 9368 .PP
yading@10 9369 The filter accepts the following options:
yading@10 9370 .IP "\fBblack_min_duration, d\fR" 4
yading@10 9371 .IX Item "black_min_duration, d"
yading@10 9372 Set the minimum detected black duration expressed in seconds. It must
yading@10 9373 be a non-negative floating point number.
yading@10 9374 .Sp
yading@10 9375 Default value is 2.0.
yading@10 9376 .IP "\fBpicture_black_ratio_th, pic_th\fR" 4
yading@10 9377 .IX Item "picture_black_ratio_th, pic_th"
yading@10 9378 Set the threshold for considering a picture \*(L"black\*(R".
yading@10 9379 Express the minimum value for the ratio:
yading@10 9380 .Sp
yading@10 9381 .Vb 1
yading@10 9382 \& <nb_black_pixels> / <nb_pixels>
yading@10 9383 .Ve
yading@10 9384 .Sp
yading@10 9385 for which a picture is considered black.
yading@10 9386 Default value is 0.98.
yading@10 9387 .IP "\fBpixel_black_th, pix_th\fR" 4
yading@10 9388 .IX Item "pixel_black_th, pix_th"
yading@10 9389 Set the threshold for considering a pixel \*(L"black\*(R".
yading@10 9390 .Sp
yading@10 9391 The threshold expresses the maximum pixel luminance value for which a
yading@10 9392 pixel is considered \*(L"black\*(R". The provided value is scaled according to
yading@10 9393 the following equation:
yading@10 9394 .Sp
yading@10 9395 .Vb 1
yading@10 9396 \& <absolute_threshold> = <luminance_minimum_value> + <pixel_black_th> * <luminance_range_size>
yading@10 9397 .Ve
yading@10 9398 .Sp
yading@10 9399 \&\fIluminance_range_size\fR and \fIluminance_minimum_value\fR depend on
yading@10 9400 the input video format, the range is [0\-255] for \s-1YUV\s0 full-range
yading@10 9401 formats and [16\-235] for \s-1YUV\s0 non full-range formats.
yading@10 9402 .Sp
yading@10 9403 Default value is 0.10.
yading@10 9404 .PP
yading@10 9405 The following example sets the maximum pixel threshold to the minimum
yading@10 9406 value, and detects only black intervals of 2 or more seconds:
yading@10 9407 .PP
yading@10 9408 .Vb 1
yading@10 9409 \& blackdetect=d=2:pix_th=0.00
yading@10 9410 .Ve
yading@10 9411 .SS "blackframe"
yading@10 9412 .IX Subsection "blackframe"
yading@10 9413 Detect frames that are (almost) completely black. Can be useful to
yading@10 9414 detect chapter transitions or commercials. Output lines consist of
yading@10 9415 the frame number of the detected frame, the percentage of blackness,
yading@10 9416 the position in the file if known or \-1 and the timestamp in seconds.
yading@10 9417 .PP
yading@10 9418 In order to display the output lines, you need to set the loglevel at
yading@10 9419 least to the \s-1AV_LOG_INFO\s0 value.
yading@10 9420 .PP
yading@10 9421 The filter accepts the following options:
yading@10 9422 .IP "\fBamount\fR" 4
yading@10 9423 .IX Item "amount"
yading@10 9424 Set the percentage of the pixels that have to be below the threshold, defaults
yading@10 9425 to \f(CW98\fR.
yading@10 9426 .IP "\fBthreshold, thresh\fR" 4
yading@10 9427 .IX Item "threshold, thresh"
yading@10 9428 Set the threshold below which a pixel value is considered black, defaults to
yading@10 9429 \&\f(CW32\fR.
yading@10 9430 .SS "blend"
yading@10 9431 .IX Subsection "blend"
yading@10 9432 Blend two video frames into each other.
yading@10 9433 .PP
yading@10 9434 It takes two input streams and outputs one stream, the first input is the
yading@10 9435 \&\*(L"top\*(R" layer and second input is \*(L"bottom\*(R" layer.
yading@10 9436 Output terminates when shortest input terminates.
yading@10 9437 .PP
yading@10 9438 A description of the accepted options follows.
yading@10 9439 .IP "\fBc0_mode\fR" 4
yading@10 9440 .IX Item "c0_mode"
yading@10 9441 .PD 0
yading@10 9442 .IP "\fBc1_mode\fR" 4
yading@10 9443 .IX Item "c1_mode"
yading@10 9444 .IP "\fBc2_mode\fR" 4
yading@10 9445 .IX Item "c2_mode"
yading@10 9446 .IP "\fBc3_mode\fR" 4
yading@10 9447 .IX Item "c3_mode"
yading@10 9448 .IP "\fBall_mode\fR" 4
yading@10 9449 .IX Item "all_mode"
yading@10 9450 .PD
yading@10 9451 Set blend mode for specific pixel component or all pixel components in case
yading@10 9452 of \fIall_mode\fR. Default value is \f(CW\*(C`normal\*(C'\fR.
yading@10 9453 .Sp
yading@10 9454 Available values for component modes are:
yading@10 9455 .RS 4
yading@10 9456 .IP "\fBaddition\fR" 4
yading@10 9457 .IX Item "addition"
yading@10 9458 .PD 0
yading@10 9459 .IP "\fBand\fR" 4
yading@10 9460 .IX Item "and"
yading@10 9461 .IP "\fBaverage\fR" 4
yading@10 9462 .IX Item "average"
yading@10 9463 .IP "\fBburn\fR" 4
yading@10 9464 .IX Item "burn"
yading@10 9465 .IP "\fBdarken\fR" 4
yading@10 9466 .IX Item "darken"
yading@10 9467 .IP "\fBdifference\fR" 4
yading@10 9468 .IX Item "difference"
yading@10 9469 .IP "\fBdivide\fR" 4
yading@10 9470 .IX Item "divide"
yading@10 9471 .IP "\fBdodge\fR" 4
yading@10 9472 .IX Item "dodge"
yading@10 9473 .IP "\fBexclusion\fR" 4
yading@10 9474 .IX Item "exclusion"
yading@10 9475 .IP "\fBhardlight\fR" 4
yading@10 9476 .IX Item "hardlight"
yading@10 9477 .IP "\fBlighten\fR" 4
yading@10 9478 .IX Item "lighten"
yading@10 9479 .IP "\fBmultiply\fR" 4
yading@10 9480 .IX Item "multiply"
yading@10 9481 .IP "\fBnegation\fR" 4
yading@10 9482 .IX Item "negation"
yading@10 9483 .IP "\fBnormal\fR" 4
yading@10 9484 .IX Item "normal"
yading@10 9485 .IP "\fBor\fR" 4
yading@10 9486 .IX Item "or"
yading@10 9487 .IP "\fBoverlay\fR" 4
yading@10 9488 .IX Item "overlay"
yading@10 9489 .IP "\fBphoenix\fR" 4
yading@10 9490 .IX Item "phoenix"
yading@10 9491 .IP "\fBpinlight\fR" 4
yading@10 9492 .IX Item "pinlight"
yading@10 9493 .IP "\fBreflect\fR" 4
yading@10 9494 .IX Item "reflect"
yading@10 9495 .IP "\fBscreen\fR" 4
yading@10 9496 .IX Item "screen"
yading@10 9497 .IP "\fBsoftlight\fR" 4
yading@10 9498 .IX Item "softlight"
yading@10 9499 .IP "\fBsubtract\fR" 4
yading@10 9500 .IX Item "subtract"
yading@10 9501 .IP "\fBvividlight\fR" 4
yading@10 9502 .IX Item "vividlight"
yading@10 9503 .IP "\fBxor\fR" 4
yading@10 9504 .IX Item "xor"
yading@10 9505 .RE
yading@10 9506 .RS 4
yading@10 9507 .RE
yading@10 9508 .IP "\fBc0_opacity\fR" 4
yading@10 9509 .IX Item "c0_opacity"
yading@10 9510 .IP "\fBc1_opacity\fR" 4
yading@10 9511 .IX Item "c1_opacity"
yading@10 9512 .IP "\fBc2_opacity\fR" 4
yading@10 9513 .IX Item "c2_opacity"
yading@10 9514 .IP "\fBc3_opacity\fR" 4
yading@10 9515 .IX Item "c3_opacity"
yading@10 9516 .IP "\fBall_opacity\fR" 4
yading@10 9517 .IX Item "all_opacity"
yading@10 9518 .PD
yading@10 9519 Set blend opacity for specific pixel component or all pixel components in case
yading@10 9520 of \fIall_opacity\fR. Only used in combination with pixel component blend modes.
yading@10 9521 .IP "\fBc0_expr\fR" 4
yading@10 9522 .IX Item "c0_expr"
yading@10 9523 .PD 0
yading@10 9524 .IP "\fBc1_expr\fR" 4
yading@10 9525 .IX Item "c1_expr"
yading@10 9526 .IP "\fBc2_expr\fR" 4
yading@10 9527 .IX Item "c2_expr"
yading@10 9528 .IP "\fBc3_expr\fR" 4
yading@10 9529 .IX Item "c3_expr"
yading@10 9530 .IP "\fBall_expr\fR" 4
yading@10 9531 .IX Item "all_expr"
yading@10 9532 .PD
yading@10 9533 Set blend expression for specific pixel component or all pixel components in case
yading@10 9534 of \fIall_expr\fR. Note that related mode options will be ignored if those are set.
yading@10 9535 .Sp
yading@10 9536 The expressions can use the following variables:
yading@10 9537 .RS 4
yading@10 9538 .IP "\fBN\fR" 4
yading@10 9539 .IX Item "N"
yading@10 9540 The sequential number of the filtered frame, starting from \f(CW0\fR.
yading@10 9541 .IP "\fBX\fR" 4
yading@10 9542 .IX Item "X"
yading@10 9543 .PD 0
yading@10 9544 .IP "\fBY\fR" 4
yading@10 9545 .IX Item "Y"
yading@10 9546 .PD
yading@10 9547 the coordinates of the current sample
yading@10 9548 .IP "\fBW\fR" 4
yading@10 9549 .IX Item "W"
yading@10 9550 .PD 0
yading@10 9551 .IP "\fBH\fR" 4
yading@10 9552 .IX Item "H"
yading@10 9553 .PD
yading@10 9554 the width and height of currently filtered plane
yading@10 9555 .IP "\fB\s-1SW\s0\fR" 4
yading@10 9556 .IX Item "SW"
yading@10 9557 .PD 0
yading@10 9558 .IP "\fB\s-1SH\s0\fR" 4
yading@10 9559 .IX Item "SH"
yading@10 9560 .PD
yading@10 9561 Width and height scale depending on the currently filtered plane. It is the
yading@10 9562 ratio between the corresponding luma plane number of pixels and the current
yading@10 9563 plane ones. E.g. for \s-1YUV4:2:0\s0 the values are \f(CW\*(C`1,1\*(C'\fR for the luma plane, and
yading@10 9564 \&\f(CW\*(C`0.5,0.5\*(C'\fR for chroma planes.
yading@10 9565 .IP "\fBT\fR" 4
yading@10 9566 .IX Item "T"
yading@10 9567 Time of the current frame, expressed in seconds.
yading@10 9568 .IP "\fB\s-1TOP\s0, A\fR" 4
yading@10 9569 .IX Item "TOP, A"
yading@10 9570 Value of pixel component at current location for first video frame (top layer).
yading@10 9571 .IP "\fB\s-1BOTTOM\s0, B\fR" 4
yading@10 9572 .IX Item "BOTTOM, B"
yading@10 9573 Value of pixel component at current location for second video frame (bottom layer).
yading@10 9574 .RE
yading@10 9575 .RS 4
yading@10 9576 .RE
yading@10 9577 .PP
yading@10 9578 \fIExamples\fR
yading@10 9579 .IX Subsection "Examples"
yading@10 9580 .IP "\(bu" 4
yading@10 9581 Apply transition from bottom layer to top layer in first 10 seconds:
yading@10 9582 .Sp
yading@10 9583 .Vb 1
yading@10 9584 \& blend=all_expr=\*(AqA*(if(gte(T,10),1,T/10))+B*(1\-(if(gte(T,10),1,T/10)))\*(Aq
yading@10 9585 .Ve
yading@10 9586 .IP "\(bu" 4
yading@10 9587 Apply 1x1 checkerboard effect:
yading@10 9588 .Sp
yading@10 9589 .Vb 1
yading@10 9590 \& blend=all_expr=\*(Aqif(eq(mod(X,2),mod(Y,2)),A,B)\*(Aq
yading@10 9591 .Ve
yading@10 9592 .SS "boxblur"
yading@10 9593 .IX Subsection "boxblur"
yading@10 9594 Apply boxblur algorithm to the input video.
yading@10 9595 .PP
yading@10 9596 The filter accepts the following options:
yading@10 9597 .IP "\fBluma_radius, lr\fR" 4
yading@10 9598 .IX Item "luma_radius, lr"
yading@10 9599 .PD 0
yading@10 9600 .IP "\fBluma_power, lp\fR" 4
yading@10 9601 .IX Item "luma_power, lp"
yading@10 9602 .IP "\fBchroma_radius, cr\fR" 4
yading@10 9603 .IX Item "chroma_radius, cr"
yading@10 9604 .IP "\fBchroma_power, cp\fR" 4
yading@10 9605 .IX Item "chroma_power, cp"
yading@10 9606 .IP "\fBalpha_radius, ar\fR" 4
yading@10 9607 .IX Item "alpha_radius, ar"
yading@10 9608 .IP "\fBalpha_power, ap\fR" 4
yading@10 9609 .IX Item "alpha_power, ap"
yading@10 9610 .PD
yading@10 9611 .PP
yading@10 9612 A description of the accepted options follows.
yading@10 9613 .IP "\fBluma_radius, lr\fR" 4
yading@10 9614 .IX Item "luma_radius, lr"
yading@10 9615 .PD 0
yading@10 9616 .IP "\fBchroma_radius, cr\fR" 4
yading@10 9617 .IX Item "chroma_radius, cr"
yading@10 9618 .IP "\fBalpha_radius, ar\fR" 4
yading@10 9619 .IX Item "alpha_radius, ar"
yading@10 9620 .PD
yading@10 9621 Set an expression for the box radius in pixels used for blurring the
yading@10 9622 corresponding input plane.
yading@10 9623 .Sp
yading@10 9624 The radius value must be a non-negative number, and must not be
yading@10 9625 greater than the value of the expression \f(CW\*(C`min(w,h)/2\*(C'\fR for the
yading@10 9626 luma and alpha planes, and of \f(CW\*(C`min(cw,ch)/2\*(C'\fR for the chroma
yading@10 9627 planes.
yading@10 9628 .Sp
yading@10 9629 Default value for \fBluma_radius\fR is \*(L"2\*(R". If not specified,
yading@10 9630 \&\fBchroma_radius\fR and \fBalpha_radius\fR default to the
yading@10 9631 corresponding value set for \fBluma_radius\fR.
yading@10 9632 .Sp
yading@10 9633 The expressions can contain the following constants:
yading@10 9634 .RS 4
yading@10 9635 .IP "\fBw, h\fR" 4
yading@10 9636 .IX Item "w, h"
yading@10 9637 the input width and height in pixels
yading@10 9638 .IP "\fBcw, ch\fR" 4
yading@10 9639 .IX Item "cw, ch"
yading@10 9640 the input chroma image width and height in pixels
yading@10 9641 .IP "\fBhsub, vsub\fR" 4
yading@10 9642 .IX Item "hsub, vsub"
yading@10 9643 horizontal and vertical chroma subsample values. For example for the
yading@10 9644 pixel format \*(L"yuv422p\*(R" \fIhsub\fR is 2 and \fIvsub\fR is 1.
yading@10 9645 .RE
yading@10 9646 .RS 4
yading@10 9647 .RE
yading@10 9648 .IP "\fBluma_power, lp\fR" 4
yading@10 9649 .IX Item "luma_power, lp"
yading@10 9650 .PD 0
yading@10 9651 .IP "\fBchroma_power, cp\fR" 4
yading@10 9652 .IX Item "chroma_power, cp"
yading@10 9653 .IP "\fBalpha_power, ap\fR" 4
yading@10 9654 .IX Item "alpha_power, ap"
yading@10 9655 .PD
yading@10 9656 Specify how many times the boxblur filter is applied to the
yading@10 9657 corresponding plane.
yading@10 9658 .Sp
yading@10 9659 Default value for \fBluma_power\fR is 2. If not specified,
yading@10 9660 \&\fBchroma_power\fR and \fBalpha_power\fR default to the
yading@10 9661 corresponding value set for \fBluma_power\fR.
yading@10 9662 .Sp
yading@10 9663 A value of 0 will disable the effect.
yading@10 9664 .PP
yading@10 9665 \fIExamples\fR
yading@10 9666 .IX Subsection "Examples"
yading@10 9667 .IP "\(bu" 4
yading@10 9668 Apply a boxblur filter with luma, chroma, and alpha radius
yading@10 9669 set to 2:
yading@10 9670 .Sp
yading@10 9671 .Vb 2
yading@10 9672 \& boxblur=luma_radius=2:luma_power=1
yading@10 9673 \& boxblur=2:1
yading@10 9674 .Ve
yading@10 9675 .IP "\(bu" 4
yading@10 9676 Set luma radius to 2, alpha and chroma radius to 0:
yading@10 9677 .Sp
yading@10 9678 .Vb 1
yading@10 9679 \& boxblur=2:1:cr=0:ar=0
yading@10 9680 .Ve
yading@10 9681 .IP "\(bu" 4
yading@10 9682 Set luma and chroma radius to a fraction of the video dimension:
yading@10 9683 .Sp
yading@10 9684 .Vb 1
yading@10 9685 \& boxblur=luma_radius=min(h\e,w)/10:luma_power=1:chroma_radius=min(cw\e,ch)/10:chroma_power=1
yading@10 9686 .Ve
yading@10 9687 .SS "colorbalance"
yading@10 9688 .IX Subsection "colorbalance"
yading@10 9689 Modify intensity of primary colors (red, green and blue) of input frames.
yading@10 9690 .PP
yading@10 9691 The filter allows an input frame to be adjusted in the shadows, midtones or highlights
yading@10 9692 regions for the red-cyan, green-magenta or blue-yellow balance.
yading@10 9693 .PP
yading@10 9694 A positive adjustment value shifts the balance towards the primary color, a negative
yading@10 9695 value towards the complementary color.
yading@10 9696 .PP
yading@10 9697 The filter accepts the following options:
yading@10 9698 .IP "\fBrs\fR" 4
yading@10 9699 .IX Item "rs"
yading@10 9700 .PD 0
yading@10 9701 .IP "\fBgs\fR" 4
yading@10 9702 .IX Item "gs"
yading@10 9703 .IP "\fBbs\fR" 4
yading@10 9704 .IX Item "bs"
yading@10 9705 .PD
yading@10 9706 Adjust red, green and blue shadows (darkest pixels).
yading@10 9707 .IP "\fBrm\fR" 4
yading@10 9708 .IX Item "rm"
yading@10 9709 .PD 0
yading@10 9710 .IP "\fBgm\fR" 4
yading@10 9711 .IX Item "gm"
yading@10 9712 .IP "\fBbm\fR" 4
yading@10 9713 .IX Item "bm"
yading@10 9714 .PD
yading@10 9715 Adjust red, green and blue midtones (medium pixels).
yading@10 9716 .IP "\fBrh\fR" 4
yading@10 9717 .IX Item "rh"
yading@10 9718 .PD 0
yading@10 9719 .IP "\fBgh\fR" 4
yading@10 9720 .IX Item "gh"
yading@10 9721 .IP "\fBbh\fR" 4
yading@10 9722 .IX Item "bh"
yading@10 9723 .PD
yading@10 9724 Adjust red, green and blue highlights (brightest pixels).
yading@10 9725 .Sp
yading@10 9726 Allowed ranges for options are \f(CW\*(C`[\-1.0, 1.0]\*(C'\fR. Defaults are \f(CW0\fR.
yading@10 9727 .PP
yading@10 9728 \fIExamples\fR
yading@10 9729 .IX Subsection "Examples"
yading@10 9730 .IP "\(bu" 4
yading@10 9731 Add red color cast to shadows:
yading@10 9732 .Sp
yading@10 9733 .Vb 1
yading@10 9734 \& colorbalance=rs=.3
yading@10 9735 .Ve
yading@10 9736 .SS "colorchannelmixer"
yading@10 9737 .IX Subsection "colorchannelmixer"
yading@10 9738 Adjust video input frames by re-mixing color channels.
yading@10 9739 .PP
yading@10 9740 This filter modifies a color channel by adding the values associated to
yading@10 9741 the other channels of the same pixels. For example if the value to
yading@10 9742 modify is red, the output value will be:
yading@10 9743 .PP
yading@10 9744 .Vb 1
yading@10 9745 \& <red>=<red>*<rr> + <blue>*<rb> + <green>*<rg> + <alpha>*<ra>
yading@10 9746 .Ve
yading@10 9747 .PP
yading@10 9748 The filter accepts the following options:
yading@10 9749 .IP "\fBrr\fR" 4
yading@10 9750 .IX Item "rr"
yading@10 9751 .PD 0
yading@10 9752 .IP "\fBrg\fR" 4
yading@10 9753 .IX Item "rg"
yading@10 9754 .IP "\fBrb\fR" 4
yading@10 9755 .IX Item "rb"
yading@10 9756 .IP "\fBra\fR" 4
yading@10 9757 .IX Item "ra"
yading@10 9758 .PD
yading@10 9759 Adjust contribution of input red, green, blue and alpha channels for output red channel.
yading@10 9760 Default is \f(CW1\fR for \fIrr\fR, and \f(CW0\fR for \fIrg\fR, \fIrb\fR and \fIra\fR.
yading@10 9761 .IP "\fBgr\fR" 4
yading@10 9762 .IX Item "gr"
yading@10 9763 .PD 0
yading@10 9764 .IP "\fBgg\fR" 4
yading@10 9765 .IX Item "gg"
yading@10 9766 .IP "\fBgb\fR" 4
yading@10 9767 .IX Item "gb"
yading@10 9768 .IP "\fBga\fR" 4
yading@10 9769 .IX Item "ga"
yading@10 9770 .PD
yading@10 9771 Adjust contribution of input red, green, blue and alpha channels for output green channel.
yading@10 9772 Default is \f(CW1\fR for \fIgg\fR, and \f(CW0\fR for \fIgr\fR, \fIgb\fR and \fIga\fR.
yading@10 9773 .IP "\fBbr\fR" 4
yading@10 9774 .IX Item "br"
yading@10 9775 .PD 0
yading@10 9776 .IP "\fBbg\fR" 4
yading@10 9777 .IX Item "bg"
yading@10 9778 .IP "\fBbb\fR" 4
yading@10 9779 .IX Item "bb"
yading@10 9780 .IP "\fBba\fR" 4
yading@10 9781 .IX Item "ba"
yading@10 9782 .PD
yading@10 9783 Adjust contribution of input red, green, blue and alpha channels for output blue channel.
yading@10 9784 Default is \f(CW1\fR for \fIbb\fR, and \f(CW0\fR for \fIbr\fR, \fIbg\fR and \fIba\fR.
yading@10 9785 .IP "\fBar\fR" 4
yading@10 9786 .IX Item "ar"
yading@10 9787 .PD 0
yading@10 9788 .IP "\fBag\fR" 4
yading@10 9789 .IX Item "ag"
yading@10 9790 .IP "\fBab\fR" 4
yading@10 9791 .IX Item "ab"
yading@10 9792 .IP "\fBaa\fR" 4
yading@10 9793 .IX Item "aa"
yading@10 9794 .PD
yading@10 9795 Adjust contribution of input red, green, blue and alpha channels for output alpha channel.
yading@10 9796 Default is \f(CW1\fR for \fIaa\fR, and \f(CW0\fR for \fIar\fR, \fIag\fR and \fIab\fR.
yading@10 9797 .Sp
yading@10 9798 Allowed ranges for options are \f(CW\*(C`[\-2.0, 2.0]\*(C'\fR.
yading@10 9799 .PP
yading@10 9800 \fIExamples\fR
yading@10 9801 .IX Subsection "Examples"
yading@10 9802 .IP "\(bu" 4
yading@10 9803 Convert source to grayscale:
yading@10 9804 .Sp
yading@10 9805 .Vb 1
yading@10 9806 \& colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
yading@10 9807 .Ve
yading@10 9808 .SS "colormatrix"
yading@10 9809 .IX Subsection "colormatrix"
yading@10 9810 Convert color matrix.
yading@10 9811 .PP
yading@10 9812 The filter accepts the following options:
yading@10 9813 .IP "\fBsrc\fR" 4
yading@10 9814 .IX Item "src"
yading@10 9815 .PD 0
yading@10 9816 .IP "\fBdst\fR" 4
yading@10 9817 .IX Item "dst"
yading@10 9818 .PD
yading@10 9819 Specify the source and destination color matrix. Both values must be
yading@10 9820 specified.
yading@10 9821 .Sp
yading@10 9822 The accepted values are:
yading@10 9823 .RS 4
yading@10 9824 .IP "\fBbt709\fR" 4
yading@10 9825 .IX Item "bt709"
yading@10 9826 \&\s-1BT\s0.709
yading@10 9827 .IP "\fBbt601\fR" 4
yading@10 9828 .IX Item "bt601"
yading@10 9829 \&\s-1BT\s0.601
yading@10 9830 .IP "\fBsmpte240m\fR" 4
yading@10 9831 .IX Item "smpte240m"
yading@10 9832 \&\s-1SMPTE\-240M\s0
yading@10 9833 .IP "\fBfcc\fR" 4
yading@10 9834 .IX Item "fcc"
yading@10 9835 \&\s-1FCC\s0
yading@10 9836 .RE
yading@10 9837 .RS 4
yading@10 9838 .RE
yading@10 9839 .PP
yading@10 9840 For example to convert from \s-1BT\s0.601 to \s-1SMPTE\-240M\s0, use the command:
yading@10 9841 .PP
yading@10 9842 .Vb 1
yading@10 9843 \& colormatrix=bt601:smpte240m
yading@10 9844 .Ve
yading@10 9845 .SS "copy"
yading@10 9846 .IX Subsection "copy"
yading@10 9847 Copy the input source unchanged to the output. Mainly useful for
yading@10 9848 testing purposes.
yading@10 9849 .SS "crop"
yading@10 9850 .IX Subsection "crop"
yading@10 9851 Crop the input video to given dimensions.
yading@10 9852 .PP
yading@10 9853 The filter accepts the following options:
yading@10 9854 .IP "\fBw, out_w\fR" 4
yading@10 9855 .IX Item "w, out_w"
yading@10 9856 Width of the output video. It defaults to \f(CW\*(C`iw\*(C'\fR.
yading@10 9857 This expression is evaluated only once during the filter
yading@10 9858 configuration.
yading@10 9859 .IP "\fBh, out_h\fR" 4
yading@10 9860 .IX Item "h, out_h"
yading@10 9861 Height of the output video. It defaults to \f(CW\*(C`ih\*(C'\fR.
yading@10 9862 This expression is evaluated only once during the filter
yading@10 9863 configuration.
yading@10 9864 .IP "\fBx\fR" 4
yading@10 9865 .IX Item "x"
yading@10 9866 Horizontal position, in the input video, of the left edge of the output video.
yading@10 9867 It defaults to \f(CW\*(C`(in_w\-out_w)/2\*(C'\fR.
yading@10 9868 This expression is evaluated per-frame.
yading@10 9869 .IP "\fBy\fR" 4
yading@10 9870 .IX Item "y"
yading@10 9871 Vertical position, in the input video, of the top edge of the output video.
yading@10 9872 It defaults to \f(CW\*(C`(in_h\-out_h)/2\*(C'\fR.
yading@10 9873 This expression is evaluated per-frame.
yading@10 9874 .IP "\fBkeep_aspect\fR" 4
yading@10 9875 .IX Item "keep_aspect"
yading@10 9876 If set to 1 will force the output display aspect ratio
yading@10 9877 to be the same of the input, by changing the output sample aspect
yading@10 9878 ratio. It defaults to 0.
yading@10 9879 .PP
yading@10 9880 The \fIout_w\fR, \fIout_h\fR, \fIx\fR, \fIy\fR parameters are
yading@10 9881 expressions containing the following constants:
yading@10 9882 .IP "\fBx, y\fR" 4
yading@10 9883 .IX Item "x, y"
yading@10 9884 the computed values for \fIx\fR and \fIy\fR. They are evaluated for
yading@10 9885 each new frame.
yading@10 9886 .IP "\fBin_w, in_h\fR" 4
yading@10 9887 .IX Item "in_w, in_h"
yading@10 9888 the input width and height
yading@10 9889 .IP "\fBiw, ih\fR" 4
yading@10 9890 .IX Item "iw, ih"
yading@10 9891 same as \fIin_w\fR and \fIin_h\fR
yading@10 9892 .IP "\fBout_w, out_h\fR" 4
yading@10 9893 .IX Item "out_w, out_h"
yading@10 9894 the output (cropped) width and height
yading@10 9895 .IP "\fBow, oh\fR" 4
yading@10 9896 .IX Item "ow, oh"
yading@10 9897 same as \fIout_w\fR and \fIout_h\fR
yading@10 9898 .IP "\fBa\fR" 4
yading@10 9899 .IX Item "a"
yading@10 9900 same as \fIiw\fR / \fIih\fR
yading@10 9901 .IP "\fBsar\fR" 4
yading@10 9902 .IX Item "sar"
yading@10 9903 input sample aspect ratio
yading@10 9904 .IP "\fBdar\fR" 4
yading@10 9905 .IX Item "dar"
yading@10 9906 input display aspect ratio, it is the same as (\fIiw\fR / \fIih\fR) * \fIsar\fR
yading@10 9907 .IP "\fBhsub, vsub\fR" 4
yading@10 9908 .IX Item "hsub, vsub"
yading@10 9909 horizontal and vertical chroma subsample values. For example for the
yading@10 9910 pixel format \*(L"yuv422p\*(R" \fIhsub\fR is 2 and \fIvsub\fR is 1.
yading@10 9911 .IP "\fBn\fR" 4
yading@10 9912 .IX Item "n"
yading@10 9913 the number of input frame, starting from 0
yading@10 9914 .IP "\fBpos\fR" 4
yading@10 9915 .IX Item "pos"
yading@10 9916 the position in the file of the input frame, \s-1NAN\s0 if unknown
yading@10 9917 .IP "\fBt\fR" 4
yading@10 9918 .IX Item "t"
yading@10 9919 timestamp expressed in seconds, \s-1NAN\s0 if the input timestamp is unknown
yading@10 9920 .PP
yading@10 9921 The expression for \fIout_w\fR may depend on the value of \fIout_h\fR,
yading@10 9922 and the expression for \fIout_h\fR may depend on \fIout_w\fR, but they
yading@10 9923 cannot depend on \fIx\fR and \fIy\fR, as \fIx\fR and \fIy\fR are
yading@10 9924 evaluated after \fIout_w\fR and \fIout_h\fR.
yading@10 9925 .PP
yading@10 9926 The \fIx\fR and \fIy\fR parameters specify the expressions for the
yading@10 9927 position of the top-left corner of the output (non-cropped) area. They
yading@10 9928 are evaluated for each frame. If the evaluated value is not valid, it
yading@10 9929 is approximated to the nearest valid value.
yading@10 9930 .PP
yading@10 9931 The expression for \fIx\fR may depend on \fIy\fR, and the expression
yading@10 9932 for \fIy\fR may depend on \fIx\fR.
yading@10 9933 .PP
yading@10 9934 \fIExamples\fR
yading@10 9935 .IX Subsection "Examples"
yading@10 9936 .IP "\(bu" 4
yading@10 9937 Crop area with size 100x100 at position (12,34).
yading@10 9938 .Sp
yading@10 9939 .Vb 1
yading@10 9940 \& crop=100:100:12:34
yading@10 9941 .Ve
yading@10 9942 .Sp
yading@10 9943 Using named options, the example above becomes:
yading@10 9944 .Sp
yading@10 9945 .Vb 1
yading@10 9946 \& crop=w=100:h=100:x=12:y=34
yading@10 9947 .Ve
yading@10 9948 .IP "\(bu" 4
yading@10 9949 Crop the central input area with size 100x100:
yading@10 9950 .Sp
yading@10 9951 .Vb 1
yading@10 9952 \& crop=100:100
yading@10 9953 .Ve
yading@10 9954 .IP "\(bu" 4
yading@10 9955 Crop the central input area with size 2/3 of the input video:
yading@10 9956 .Sp
yading@10 9957 .Vb 1
yading@10 9958 \& crop=2/3*in_w:2/3*in_h
yading@10 9959 .Ve
yading@10 9960 .IP "\(bu" 4
yading@10 9961 Crop the input video central square:
yading@10 9962 .Sp
yading@10 9963 .Vb 2
yading@10 9964 \& crop=out_w=in_h
yading@10 9965 \& crop=in_h
yading@10 9966 .Ve
yading@10 9967 .IP "\(bu" 4
yading@10 9968 Delimit the rectangle with the top-left corner placed at position
yading@10 9969 100:100 and the right-bottom corner corresponding to the right-bottom
yading@10 9970 corner of the input image:
yading@10 9971 .Sp
yading@10 9972 .Vb 1
yading@10 9973 \& crop=in_w\-100:in_h\-100:100:100
yading@10 9974 .Ve
yading@10 9975 .IP "\(bu" 4
yading@10 9976 Crop 10 pixels from the left and right borders, and 20 pixels from
yading@10 9977 the top and bottom borders
yading@10 9978 .Sp
yading@10 9979 .Vb 1
yading@10 9980 \& crop=in_w\-2*10:in_h\-2*20
yading@10 9981 .Ve
yading@10 9982 .IP "\(bu" 4
yading@10 9983 Keep only the bottom right quarter of the input image:
yading@10 9984 .Sp
yading@10 9985 .Vb 1
yading@10 9986 \& crop=in_w/2:in_h/2:in_w/2:in_h/2
yading@10 9987 .Ve
yading@10 9988 .IP "\(bu" 4
yading@10 9989 Crop height for getting Greek harmony:
yading@10 9990 .Sp
yading@10 9991 .Vb 1
yading@10 9992 \& crop=in_w:1/PHI*in_w
yading@10 9993 .Ve
yading@10 9994 .IP "\(bu" 4
yading@10 9995 Appply trembling effect:
yading@10 9996 .Sp
yading@10 9997 .Vb 1
yading@10 9998 \& crop=in_w/2:in_h/2:(in_w\-out_w)/2+((in_w\-out_w)/2)*sin(n/10):(in_h\-out_h)/2 +((in_h\-out_h)/2)*sin(n/7)
yading@10 9999 .Ve
yading@10 10000 .IP "\(bu" 4
yading@10 10001 Apply erratic camera effect depending on timestamp:
yading@10 10002 .Sp
yading@10 10003 .Vb 1
yading@10 10004 \& crop=in_w/2:in_h/2:(in_w\-out_w)/2+((in_w\-out_w)/2)*sin(t*10):(in_h\-out_h)/2 +((in_h\-out_h)/2)*sin(t*13)"
yading@10 10005 .Ve
yading@10 10006 .IP "\(bu" 4
yading@10 10007 Set x depending on the value of y:
yading@10 10008 .Sp
yading@10 10009 .Vb 1
yading@10 10010 \& crop=in_w/2:in_h/2:y:10+10*sin(n/10)
yading@10 10011 .Ve
yading@10 10012 .SS "cropdetect"
yading@10 10013 .IX Subsection "cropdetect"
yading@10 10014 Auto-detect crop size.
yading@10 10015 .PP
yading@10 10016 Calculate necessary cropping parameters and prints the recommended
yading@10 10017 parameters through the logging system. The detected dimensions
yading@10 10018 correspond to the non-black area of the input video.
yading@10 10019 .PP
yading@10 10020 The filter accepts the following options:
yading@10 10021 .IP "\fBlimit\fR" 4
yading@10 10022 .IX Item "limit"
yading@10 10023 Set higher black value threshold, which can be optionally specified
yading@10 10024 from nothing (0) to everything (255). An intensity value greater
yading@10 10025 to the set value is considered non-black. Default value is 24.
yading@10 10026 .IP "\fBround\fR" 4
yading@10 10027 .IX Item "round"
yading@10 10028 Set the value for which the width/height should be divisible by. The
yading@10 10029 offset is automatically adjusted to center the video. Use 2 to get
yading@10 10030 only even dimensions (needed for 4:2:2 video). 16 is best when
yading@10 10031 encoding to most video codecs. Default value is 16.
yading@10 10032 .IP "\fBreset_count, reset\fR" 4
yading@10 10033 .IX Item "reset_count, reset"
yading@10 10034 Set the counter that determines after how many frames cropdetect will
yading@10 10035 reset the previously detected largest video area and start over to
yading@10 10036 detect the current optimal crop area. Default value is 0.
yading@10 10037 .Sp
yading@10 10038 This can be useful when channel logos distort the video area. 0
yading@10 10039 indicates never reset and return the largest area encountered during
yading@10 10040 playback.
yading@10 10041 .SS "curves"
yading@10 10042 .IX Subsection "curves"
yading@10 10043 Apply color adjustments using curves.
yading@10 10044 .PP
yading@10 10045 This filter is similar to the Adobe Photoshop and \s-1GIMP\s0 curves tools. Each
yading@10 10046 component (red, green and blue) has its values defined by \fIN\fR key points
yading@10 10047 tied from each other using a smooth curve. The x\-axis represents the pixel
yading@10 10048 values from the input frame, and the y\-axis the new pixel values to be set for
yading@10 10049 the output frame.
yading@10 10050 .PP
yading@10 10051 By default, a component curve is defined by the two points \fI(0;0)\fR and
yading@10 10052 \&\fI(1;1)\fR. This creates a straight line where each original pixel value is
yading@10 10053 \&\*(L"adjusted\*(R" to its own value, which means no change to the image.
yading@10 10054 .PP
yading@10 10055 The filter allows you to redefine these two points and add some more. A new
yading@10 10056 curve (using a natural cubic spline interpolation) will be define to pass
yading@10 10057 smoothly through all these new coordinates. The new defined points needs to be
yading@10 10058 strictly increasing over the x\-axis, and their \fIx\fR and \fIy\fR values must
yading@10 10059 be in the \fI[0;1]\fR interval. If the computed curves happened to go outside
yading@10 10060 the vector spaces, the values will be clipped accordingly.
yading@10 10061 .PP
yading@10 10062 If there is no key point defined in \f(CW\*(C`x=0\*(C'\fR, the filter will automatically
yading@10 10063 insert a \fI(0;0)\fR point. In the same way, if there is no key point defined
yading@10 10064 in \f(CW\*(C`x=1\*(C'\fR, the filter will automatically insert a \fI(1;1)\fR point.
yading@10 10065 .PP
yading@10 10066 The filter accepts the following options:
yading@10 10067 .IP "\fBpreset\fR" 4
yading@10 10068 .IX Item "preset"
yading@10 10069 Select one of the available color presets. This option can be used in addition
yading@10 10070 to the \fBr\fR, \fBg\fR, \fBb\fR parameters; in this case, the later
yading@10 10071 options takes priority on the preset values.
yading@10 10072 Available presets are:
yading@10 10073 .RS 4
yading@10 10074 .IP "\fBnone\fR" 4
yading@10 10075 .IX Item "none"
yading@10 10076 .PD 0
yading@10 10077 .IP "\fBcolor_negative\fR" 4
yading@10 10078 .IX Item "color_negative"
yading@10 10079 .IP "\fBcross_process\fR" 4
yading@10 10080 .IX Item "cross_process"
yading@10 10081 .IP "\fBdarker\fR" 4
yading@10 10082 .IX Item "darker"
yading@10 10083 .IP "\fBincrease_contrast\fR" 4
yading@10 10084 .IX Item "increase_contrast"
yading@10 10085 .IP "\fBlighter\fR" 4
yading@10 10086 .IX Item "lighter"
yading@10 10087 .IP "\fBlinear_contrast\fR" 4
yading@10 10088 .IX Item "linear_contrast"
yading@10 10089 .IP "\fBmedium_contrast\fR" 4
yading@10 10090 .IX Item "medium_contrast"
yading@10 10091 .IP "\fBnegative\fR" 4
yading@10 10092 .IX Item "negative"
yading@10 10093 .IP "\fBstrong_contrast\fR" 4
yading@10 10094 .IX Item "strong_contrast"
yading@10 10095 .IP "\fBvintage\fR" 4
yading@10 10096 .IX Item "vintage"
yading@10 10097 .RE
yading@10 10098 .RS 4
yading@10 10099 .PD
yading@10 10100 .Sp
yading@10 10101 Default is \f(CW\*(C`none\*(C'\fR.
yading@10 10102 .RE
yading@10 10103 .IP "\fBmaster, m\fR" 4
yading@10 10104 .IX Item "master, m"
yading@10 10105 Set the master key points. These points will define a second pass mapping. It
yading@10 10106 is sometimes called a \*(L"luminance\*(R" or \*(L"value\*(R" mapping. It can be used with
yading@10 10107 \&\fBr\fR, \fBg\fR, \fBb\fR or \fBall\fR since it acts like a
yading@10 10108 post-processing \s-1LUT\s0.
yading@10 10109 .IP "\fBred, r\fR" 4
yading@10 10110 .IX Item "red, r"
yading@10 10111 Set the key points for the red component.
yading@10 10112 .IP "\fBgreen, g\fR" 4
yading@10 10113 .IX Item "green, g"
yading@10 10114 Set the key points for the green component.
yading@10 10115 .IP "\fBblue, b\fR" 4
yading@10 10116 .IX Item "blue, b"
yading@10 10117 Set the key points for the blue component.
yading@10 10118 .IP "\fBall\fR" 4
yading@10 10119 .IX Item "all"
yading@10 10120 Set the key points for all components (not including master).
yading@10 10121 Can be used in addition to the other key points component
yading@10 10122 options. In this case, the unset component(s) will fallback on this
yading@10 10123 \&\fBall\fR setting.
yading@10 10124 .IP "\fBpsfile\fR" 4
yading@10 10125 .IX Item "psfile"
yading@10 10126 Specify a Photoshop curves file (\f(CW\*(C`.asv\*(C'\fR) to import the settings from.
yading@10 10127 .PP
yading@10 10128 To avoid some filtergraph syntax conflicts, each key points list need to be
yading@10 10129 defined using the following syntax: \f(CW\*(C`x0/y0 x1/y1 x2/y2 ...\*(C'\fR.
yading@10 10130 .PP
yading@10 10131 \fIExamples\fR
yading@10 10132 .IX Subsection "Examples"
yading@10 10133 .IP "\(bu" 4
yading@10 10134 Increase slightly the middle level of blue:
yading@10 10135 .Sp
yading@10 10136 .Vb 1
yading@10 10137 \& curves=blue=\*(Aq0.5/0.58\*(Aq
yading@10 10138 .Ve
yading@10 10139 .IP "\(bu" 4
yading@10 10140 Vintage effect:
yading@10 10141 .Sp
yading@10 10142 .Vb 1
yading@10 10143 \& curves=r=\*(Aq0/0.11 .42/.51 1/0.95\*(Aq:g=\*(Aq0.50/0.48\*(Aq:b=\*(Aq0/0.22 .49/.44 1/0.8\*(Aq
yading@10 10144 .Ve
yading@10 10145 .Sp
yading@10 10146 Here we obtain the following coordinates for each components:
yading@10 10147 .RS 4
yading@10 10148 .IP "\fIred\fR" 4
yading@10 10149 .IX Item "red"
yading@10 10150 \&\f(CW\*(C`(0;0.11) (0.42;0.51) (1;0.95)\*(C'\fR
yading@10 10151 .IP "\fIgreen\fR" 4
yading@10 10152 .IX Item "green"
yading@10 10153 \&\f(CW\*(C`(0;0) (0.50;0.48) (1;1)\*(C'\fR
yading@10 10154 .IP "\fIblue\fR" 4
yading@10 10155 .IX Item "blue"
yading@10 10156 \&\f(CW\*(C`(0;0.22) (0.49;0.44) (1;0.80)\*(C'\fR
yading@10 10157 .RE
yading@10 10158 .RS 4
yading@10 10159 .RE
yading@10 10160 .IP "\(bu" 4
yading@10 10161 The previous example can also be achieved with the associated built-in preset:
yading@10 10162 .Sp
yading@10 10163 .Vb 1
yading@10 10164 \& curves=preset=vintage
yading@10 10165 .Ve
yading@10 10166 .IP "\(bu" 4
yading@10 10167 Or simply:
yading@10 10168 .Sp
yading@10 10169 .Vb 1
yading@10 10170 \& curves=vintage
yading@10 10171 .Ve
yading@10 10172 .IP "\(bu" 4
yading@10 10173 Use a Photoshop preset and redefine the points of the green component:
yading@10 10174 .Sp
yading@10 10175 .Vb 1
yading@10 10176 \& curves=psfile=\*(AqMyCurvesPresets/purple.asv\*(Aq:green=\*(Aq0.45/0.53\*(Aq
yading@10 10177 .Ve
yading@10 10178 .SS "decimate"
yading@10 10179 .IX Subsection "decimate"
yading@10 10180 Drop duplicated frames at regular intervals.
yading@10 10181 .PP
yading@10 10182 The filter accepts the following options:
yading@10 10183 .IP "\fBcycle\fR" 4
yading@10 10184 .IX Item "cycle"
yading@10 10185 Set the number of frames from which one will be dropped. Setting this to
yading@10 10186 \&\fIN\fR means one frame in every batch of \fIN\fR frames will be dropped.
yading@10 10187 Default is \f(CW5\fR.
yading@10 10188 .IP "\fBdupthresh\fR" 4
yading@10 10189 .IX Item "dupthresh"
yading@10 10190 Set the threshold for duplicate detection. If the difference metric for a frame
yading@10 10191 is less than or equal to this value, then it is declared as duplicate. Default
yading@10 10192 is \f(CW1.1\fR
yading@10 10193 .IP "\fBscthresh\fR" 4
yading@10 10194 .IX Item "scthresh"
yading@10 10195 Set scene change threshold. Default is \f(CW15\fR.
yading@10 10196 .IP "\fBblockx\fR" 4
yading@10 10197 .IX Item "blockx"
yading@10 10198 .PD 0
yading@10 10199 .IP "\fBblocky\fR" 4
yading@10 10200 .IX Item "blocky"
yading@10 10201 .PD
yading@10 10202 Set the size of the x and y\-axis blocks used during metric calculations.
yading@10 10203 Larger blocks give better noise suppression, but also give worse detection of
yading@10 10204 small movements. Must be a power of two. Default is \f(CW32\fR.
yading@10 10205 .IP "\fBppsrc\fR" 4
yading@10 10206 .IX Item "ppsrc"
yading@10 10207 Mark main input as a pre-processed input and activate clean source input
yading@10 10208 stream. This allows the input to be pre-processed with various filters to help
yading@10 10209 the metrics calculation while keeping the frame selection lossless. When set to
yading@10 10210 \&\f(CW1\fR, the first stream is for the pre-processed input, and the second
yading@10 10211 stream is the clean source from where the kept frames are chosen. Default is
yading@10 10212 \&\f(CW0\fR.
yading@10 10213 .IP "\fBchroma\fR" 4
yading@10 10214 .IX Item "chroma"
yading@10 10215 Set whether or not chroma is considered in the metric calculations. Default is
yading@10 10216 \&\f(CW1\fR.
yading@10 10217 .SS "delogo"
yading@10 10218 .IX Subsection "delogo"
yading@10 10219 Suppress a \s-1TV\s0 station logo by a simple interpolation of the surrounding
yading@10 10220 pixels. Just set a rectangle covering the logo and watch it disappear
yading@10 10221 (and sometimes something even uglier appear \- your mileage may vary).
yading@10 10222 .PP
yading@10 10223 This filter accepts the following options:
yading@10 10224 .IP "\fBx, y\fR" 4
yading@10 10225 .IX Item "x, y"
yading@10 10226 Specify the top left corner coordinates of the logo. They must be
yading@10 10227 specified.
yading@10 10228 .IP "\fBw, h\fR" 4
yading@10 10229 .IX Item "w, h"
yading@10 10230 Specify the width and height of the logo to clear. They must be
yading@10 10231 specified.
yading@10 10232 .IP "\fBband, t\fR" 4
yading@10 10233 .IX Item "band, t"
yading@10 10234 Specify the thickness of the fuzzy edge of the rectangle (added to
yading@10 10235 \&\fIw\fR and \fIh\fR). The default value is 4.
yading@10 10236 .IP "\fBshow\fR" 4
yading@10 10237 .IX Item "show"
yading@10 10238 When set to 1, a green rectangle is drawn on the screen to simplify
yading@10 10239 finding the right \fIx\fR, \fIy\fR, \fIw\fR, \fIh\fR parameters, and
yading@10 10240 \&\fIband\fR is set to 4. The default value is 0.
yading@10 10241 .PP
yading@10 10242 \fIExamples\fR
yading@10 10243 .IX Subsection "Examples"
yading@10 10244 .IP "\(bu" 4
yading@10 10245 Set a rectangle covering the area with top left corner coordinates 0,0
yading@10 10246 and size 100x77, setting a band of size 10:
yading@10 10247 .Sp
yading@10 10248 .Vb 1
yading@10 10249 \& delogo=x=0:y=0:w=100:h=77:band=10
yading@10 10250 .Ve
yading@10 10251 .SS "deshake"
yading@10 10252 .IX Subsection "deshake"
yading@10 10253 Attempt to fix small changes in horizontal and/or vertical shift. This
yading@10 10254 filter helps remove camera shake from hand-holding a camera, bumping a
yading@10 10255 tripod, moving on a vehicle, etc.
yading@10 10256 .PP
yading@10 10257 The filter accepts the following options:
yading@10 10258 .IP "\fBx\fR" 4
yading@10 10259 .IX Item "x"
yading@10 10260 .PD 0
yading@10 10261 .IP "\fBy\fR" 4
yading@10 10262 .IX Item "y"
yading@10 10263 .IP "\fBw\fR" 4
yading@10 10264 .IX Item "w"
yading@10 10265 .IP "\fBh\fR" 4
yading@10 10266 .IX Item "h"
yading@10 10267 .PD
yading@10 10268 Specify a rectangular area where to limit the search for motion
yading@10 10269 vectors.
yading@10 10270 If desired the search for motion vectors can be limited to a
yading@10 10271 rectangular area of the frame defined by its top left corner, width
yading@10 10272 and height. These parameters have the same meaning as the drawbox
yading@10 10273 filter which can be used to visualise the position of the bounding
yading@10 10274 box.
yading@10 10275 .Sp
yading@10 10276 This is useful when simultaneous movement of subjects within the frame
yading@10 10277 might be confused for camera motion by the motion vector search.
yading@10 10278 .Sp
yading@10 10279 If any or all of \fIx\fR, \fIy\fR, \fIw\fR and \fIh\fR are set to \-1
yading@10 10280 then the full frame is used. This allows later options to be set
yading@10 10281 without specifying the bounding box for the motion vector search.
yading@10 10282 .Sp
yading@10 10283 Default \- search the whole frame.
yading@10 10284 .IP "\fBrx\fR" 4
yading@10 10285 .IX Item "rx"
yading@10 10286 .PD 0
yading@10 10287 .IP "\fBry\fR" 4
yading@10 10288 .IX Item "ry"
yading@10 10289 .PD
yading@10 10290 Specify the maximum extent of movement in x and y directions in the
yading@10 10291 range 0\-64 pixels. Default 16.
yading@10 10292 .IP "\fBedge\fR" 4
yading@10 10293 .IX Item "edge"
yading@10 10294 Specify how to generate pixels to fill blanks at the edge of the
yading@10 10295 frame. Available values are:
yading@10 10296 .RS 4
yading@10 10297 .IP "\fBblank, 0\fR" 4
yading@10 10298 .IX Item "blank, 0"
yading@10 10299 Fill zeroes at blank locations
yading@10 10300 .IP "\fBoriginal, 1\fR" 4
yading@10 10301 .IX Item "original, 1"
yading@10 10302 Original image at blank locations
yading@10 10303 .IP "\fBclamp, 2\fR" 4
yading@10 10304 .IX Item "clamp, 2"
yading@10 10305 Extruded edge value at blank locations
yading@10 10306 .IP "\fBmirror, 3\fR" 4
yading@10 10307 .IX Item "mirror, 3"
yading@10 10308 Mirrored edge at blank locations
yading@10 10309 .RE
yading@10 10310 .RS 4
yading@10 10311 .Sp
yading@10 10312 Default value is \fBmirror\fR.
yading@10 10313 .RE
yading@10 10314 .IP "\fBblocksize\fR" 4
yading@10 10315 .IX Item "blocksize"
yading@10 10316 Specify the blocksize to use for motion search. Range 4\-128 pixels,
yading@10 10317 default 8.
yading@10 10318 .IP "\fBcontrast\fR" 4
yading@10 10319 .IX Item "contrast"
yading@10 10320 Specify the contrast threshold for blocks. Only blocks with more than
yading@10 10321 the specified contrast (difference between darkest and lightest
yading@10 10322 pixels) will be considered. Range 1\-255, default 125.
yading@10 10323 .IP "\fBsearch\fR" 4
yading@10 10324 .IX Item "search"
yading@10 10325 Specify the search strategy. Available values are:
yading@10 10326 .RS 4
yading@10 10327 .IP "\fBexhaustive, 0\fR" 4
yading@10 10328 .IX Item "exhaustive, 0"
yading@10 10329 Set exhaustive search
yading@10 10330 .IP "\fBless, 1\fR" 4
yading@10 10331 .IX Item "less, 1"
yading@10 10332 Set less exhaustive search.
yading@10 10333 .RE
yading@10 10334 .RS 4
yading@10 10335 .Sp
yading@10 10336 Default value is \fBexhaustive\fR.
yading@10 10337 .RE
yading@10 10338 .IP "\fBfilename\fR" 4
yading@10 10339 .IX Item "filename"
yading@10 10340 If set then a detailed log of the motion search is written to the
yading@10 10341 specified file.
yading@10 10342 .IP "\fBopencl\fR" 4
yading@10 10343 .IX Item "opencl"
yading@10 10344 If set to 1, specify using OpenCL capabilities, only available if
yading@10 10345 FFmpeg was configured with \f(CW\*(C`\-\-enable\-opencl\*(C'\fR. Default value is 0.
yading@10 10346 .SS "drawbox"
yading@10 10347 .IX Subsection "drawbox"
yading@10 10348 Draw a colored box on the input image.
yading@10 10349 .PP
yading@10 10350 This filter accepts the following options:
yading@10 10351 .IP "\fBx, y\fR" 4
yading@10 10352 .IX Item "x, y"
yading@10 10353 Specify the top left corner coordinates of the box. Default to 0.
yading@10 10354 .IP "\fBwidth, w\fR" 4
yading@10 10355 .IX Item "width, w"
yading@10 10356 .PD 0
yading@10 10357 .IP "\fBheight, h\fR" 4
yading@10 10358 .IX Item "height, h"
yading@10 10359 .PD
yading@10 10360 Specify the width and height of the box, if 0 they are interpreted as
yading@10 10361 the input width and height. Default to 0.
yading@10 10362 .IP "\fBcolor, c\fR" 4
yading@10 10363 .IX Item "color, c"
yading@10 10364 Specify the color of the box to write, it can be the name of a color
yading@10 10365 (case insensitive match) or a 0xRRGGBB[\s-1AA\s0] sequence. If the special
yading@10 10366 value \f(CW\*(C`invert\*(C'\fR is used, the box edge color is the same as the
yading@10 10367 video with inverted luma.
yading@10 10368 .IP "\fBthickness, t\fR" 4
yading@10 10369 .IX Item "thickness, t"
yading@10 10370 Set the thickness of the box edge. Default value is \f(CW4\fR.
yading@10 10371 .PP
yading@10 10372 \fIExamples\fR
yading@10 10373 .IX Subsection "Examples"
yading@10 10374 .IP "\(bu" 4
yading@10 10375 Draw a black box around the edge of the input image:
yading@10 10376 .Sp
yading@10 10377 .Vb 1
yading@10 10378 \& drawbox
yading@10 10379 .Ve
yading@10 10380 .IP "\(bu" 4
yading@10 10381 Draw a box with color red and an opacity of 50%:
yading@10 10382 .Sp
yading@10 10383 .Vb 1
yading@10 10384 \& drawbox=10:20:200:60:red@0.5
yading@10 10385 .Ve
yading@10 10386 .Sp
yading@10 10387 The previous example can be specified as:
yading@10 10388 .Sp
yading@10 10389 .Vb 1
yading@10 10390 \& drawbox=x=10:y=20:w=200:h=60:color=red@0.5
yading@10 10391 .Ve
yading@10 10392 .IP "\(bu" 4
yading@10 10393 Fill the box with pink color:
yading@10 10394 .Sp
yading@10 10395 .Vb 1
yading@10 10396 \& drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=max
yading@10 10397 .Ve
yading@10 10398 .SS "drawtext"
yading@10 10399 .IX Subsection "drawtext"
yading@10 10400 Draw text string or text from specified file on top of video using the
yading@10 10401 libfreetype library.
yading@10 10402 .PP
yading@10 10403 To enable compilation of this filter you need to configure FFmpeg with
yading@10 10404 \&\f(CW\*(C`\-\-enable\-libfreetype\*(C'\fR.
yading@10 10405 .PP
yading@10 10406 \fISyntax\fR
yading@10 10407 .IX Subsection "Syntax"
yading@10 10408 .PP
yading@10 10409 The description of the accepted parameters follows.
yading@10 10410 .IP "\fBbox\fR" 4
yading@10 10411 .IX Item "box"
yading@10 10412 Used to draw a box around text using background color.
yading@10 10413 Value should be either 1 (enable) or 0 (disable).
yading@10 10414 The default value of \fIbox\fR is 0.
yading@10 10415 .IP "\fBboxcolor\fR" 4
yading@10 10416 .IX Item "boxcolor"
yading@10 10417 The color to be used for drawing box around text.
yading@10 10418 Either a string (e.g. \*(L"yellow\*(R") or in 0xRRGGBB[\s-1AA\s0] format
yading@10 10419 (e.g. \*(L"0xff00ff\*(R"), possibly followed by an alpha specifier.
yading@10 10420 The default value of \fIboxcolor\fR is \*(L"white\*(R".
yading@10 10421 .IP "\fBdraw\fR" 4
yading@10 10422 .IX Item "draw"
yading@10 10423 Set an expression which specifies if the text should be drawn. If the
yading@10 10424 expression evaluates to 0, the text is not drawn. This is useful for
yading@10 10425 specifying that the text should be drawn only when specific conditions
yading@10 10426 are met.
yading@10 10427 .Sp
yading@10 10428 Default value is \*(L"1\*(R".
yading@10 10429 .Sp
yading@10 10430 See below for the list of accepted constants and functions.
yading@10 10431 .IP "\fBexpansion\fR" 4
yading@10 10432 .IX Item "expansion"
yading@10 10433 Select how the \fItext\fR is expanded. Can be either \f(CW\*(C`none\*(C'\fR,
yading@10 10434 \&\f(CW\*(C`strftime\*(C'\fR (deprecated) or
yading@10 10435 \&\f(CW\*(C`normal\*(C'\fR (default). See the drawtext_expansion, Text expansion section
yading@10 10436 below for details.
yading@10 10437 .IP "\fBfix_bounds\fR" 4
yading@10 10438 .IX Item "fix_bounds"
yading@10 10439 If true, check and fix text coords to avoid clipping.
yading@10 10440 .IP "\fBfontcolor\fR" 4
yading@10 10441 .IX Item "fontcolor"
yading@10 10442 The color to be used for drawing fonts.
yading@10 10443 Either a string (e.g. \*(L"red\*(R") or in 0xRRGGBB[\s-1AA\s0] format
yading@10 10444 (e.g. \*(L"0xff000033\*(R"), possibly followed by an alpha specifier.
yading@10 10445 The default value of \fIfontcolor\fR is \*(L"black\*(R".
yading@10 10446 .IP "\fBfontfile\fR" 4
yading@10 10447 .IX Item "fontfile"
yading@10 10448 The font file to be used for drawing text. Path must be included.
yading@10 10449 This parameter is mandatory.
yading@10 10450 .IP "\fBfontsize\fR" 4
yading@10 10451 .IX Item "fontsize"
yading@10 10452 The font size to be used for drawing text.
yading@10 10453 The default value of \fIfontsize\fR is 16.
yading@10 10454 .IP "\fBft_load_flags\fR" 4
yading@10 10455 .IX Item "ft_load_flags"
yading@10 10456 Flags to be used for loading the fonts.
yading@10 10457 .Sp
yading@10 10458 The flags map the corresponding flags supported by libfreetype, and are
yading@10 10459 a combination of the following values:
yading@10 10460 .RS 4
yading@10 10461 .IP "\fIdefault\fR" 4
yading@10 10462 .IX Item "default"
yading@10 10463 .PD 0
yading@10 10464 .IP "\fIno_scale\fR" 4
yading@10 10465 .IX Item "no_scale"
yading@10 10466 .IP "\fIno_hinting\fR" 4
yading@10 10467 .IX Item "no_hinting"
yading@10 10468 .IP "\fIrender\fR" 4
yading@10 10469 .IX Item "render"
yading@10 10470 .IP "\fIno_bitmap\fR" 4
yading@10 10471 .IX Item "no_bitmap"
yading@10 10472 .IP "\fIvertical_layout\fR" 4
yading@10 10473 .IX Item "vertical_layout"
yading@10 10474 .IP "\fIforce_autohint\fR" 4
yading@10 10475 .IX Item "force_autohint"
yading@10 10476 .IP "\fIcrop_bitmap\fR" 4
yading@10 10477 .IX Item "crop_bitmap"
yading@10 10478 .IP "\fIpedantic\fR" 4
yading@10 10479 .IX Item "pedantic"
yading@10 10480 .IP "\fIignore_global_advance_width\fR" 4
yading@10 10481 .IX Item "ignore_global_advance_width"
yading@10 10482 .IP "\fIno_recurse\fR" 4
yading@10 10483 .IX Item "no_recurse"
yading@10 10484 .IP "\fIignore_transform\fR" 4
yading@10 10485 .IX Item "ignore_transform"
yading@10 10486 .IP "\fImonochrome\fR" 4
yading@10 10487 .IX Item "monochrome"
yading@10 10488 .IP "\fIlinear_design\fR" 4
yading@10 10489 .IX Item "linear_design"
yading@10 10490 .IP "\fIno_autohint\fR" 4
yading@10 10491 .IX Item "no_autohint"
yading@10 10492 .IP "\fIend table\fR" 4
yading@10 10493 .IX Item "end table"
yading@10 10494 .RE
yading@10 10495 .RS 4
yading@10 10496 .PD
yading@10 10497 .Sp
yading@10 10498 Default value is \*(L"render\*(R".
yading@10 10499 .Sp
yading@10 10500 For more information consult the documentation for the FT_LOAD_*
yading@10 10501 libfreetype flags.
yading@10 10502 .RE
yading@10 10503 .IP "\fBshadowcolor\fR" 4
yading@10 10504 .IX Item "shadowcolor"
yading@10 10505 The color to be used for drawing a shadow behind the drawn text. It
yading@10 10506 can be a color name (e.g. \*(L"yellow\*(R") or a string in the 0xRRGGBB[\s-1AA\s0]
yading@10 10507 form (e.g. \*(L"0xff00ff\*(R"), possibly followed by an alpha specifier.
yading@10 10508 The default value of \fIshadowcolor\fR is \*(L"black\*(R".
yading@10 10509 .IP "\fBshadowx, shadowy\fR" 4
yading@10 10510 .IX Item "shadowx, shadowy"
yading@10 10511 The x and y offsets for the text shadow position with respect to the
yading@10 10512 position of the text. They can be either positive or negative
yading@10 10513 values. Default value for both is \*(L"0\*(R".
yading@10 10514 .IP "\fBtabsize\fR" 4
yading@10 10515 .IX Item "tabsize"
yading@10 10516 The size in number of spaces to use for rendering the tab.
yading@10 10517 Default value is 4.
yading@10 10518 .IP "\fBtimecode\fR" 4
yading@10 10519 .IX Item "timecode"
yading@10 10520 Set the initial timecode representation in \*(L"hh:mm:ss[:;.]ff\*(R"
yading@10 10521 format. It can be used with or without text parameter. \fItimecode_rate\fR
yading@10 10522 option must be specified.
yading@10 10523 .IP "\fBtimecode_rate, rate, r\fR" 4
yading@10 10524 .IX Item "timecode_rate, rate, r"
yading@10 10525 Set the timecode frame rate (timecode only).
yading@10 10526 .IP "\fBtext\fR" 4
yading@10 10527 .IX Item "text"
yading@10 10528 The text string to be drawn. The text must be a sequence of \s-1UTF\-8\s0
yading@10 10529 encoded characters.
yading@10 10530 This parameter is mandatory if no file is specified with the parameter
yading@10 10531 \&\fItextfile\fR.
yading@10 10532 .IP "\fBtextfile\fR" 4
yading@10 10533 .IX Item "textfile"
yading@10 10534 A text file containing text to be drawn. The text must be a sequence
yading@10 10535 of \s-1UTF\-8\s0 encoded characters.
yading@10 10536 .Sp
yading@10 10537 This parameter is mandatory if no text string is specified with the
yading@10 10538 parameter \fItext\fR.
yading@10 10539 .Sp
yading@10 10540 If both \fItext\fR and \fItextfile\fR are specified, an error is thrown.
yading@10 10541 .IP "\fBreload\fR" 4
yading@10 10542 .IX Item "reload"
yading@10 10543 If set to 1, the \fItextfile\fR will be reloaded before each frame.
yading@10 10544 Be sure to update it atomically, or it may be read partially, or even fail.
yading@10 10545 .IP "\fBx, y\fR" 4
yading@10 10546 .IX Item "x, y"
yading@10 10547 The expressions which specify the offsets where text will be drawn
yading@10 10548 within the video frame. They are relative to the top/left border of the
yading@10 10549 output image.
yading@10 10550 .Sp
yading@10 10551 The default value of \fIx\fR and \fIy\fR is \*(L"0\*(R".
yading@10 10552 .Sp
yading@10 10553 See below for the list of accepted constants and functions.
yading@10 10554 .PP
yading@10 10555 The parameters for \fIx\fR and \fIy\fR are expressions containing the
yading@10 10556 following constants and functions:
yading@10 10557 .IP "\fBdar\fR" 4
yading@10 10558 .IX Item "dar"
yading@10 10559 input display aspect ratio, it is the same as (\fIw\fR / \fIh\fR) * \fIsar\fR
yading@10 10560 .IP "\fBhsub, vsub\fR" 4
yading@10 10561 .IX Item "hsub, vsub"
yading@10 10562 horizontal and vertical chroma subsample values. For example for the
yading@10 10563 pixel format \*(L"yuv422p\*(R" \fIhsub\fR is 2 and \fIvsub\fR is 1.
yading@10 10564 .IP "\fBline_h, lh\fR" 4
yading@10 10565 .IX Item "line_h, lh"
yading@10 10566 the height of each text line
yading@10 10567 .IP "\fBmain_h, h, H\fR" 4
yading@10 10568 .IX Item "main_h, h, H"
yading@10 10569 the input height
yading@10 10570 .IP "\fBmain_w, w, W\fR" 4
yading@10 10571 .IX Item "main_w, w, W"
yading@10 10572 the input width
yading@10 10573 .IP "\fBmax_glyph_a, ascent\fR" 4
yading@10 10574 .IX Item "max_glyph_a, ascent"
yading@10 10575 the maximum distance from the baseline to the highest/upper grid
yading@10 10576 coordinate used to place a glyph outline point, for all the rendered
yading@10 10577 glyphs.
yading@10 10578 It is a positive value, due to the grid's orientation with the Y axis
yading@10 10579 upwards.
yading@10 10580 .IP "\fBmax_glyph_d, descent\fR" 4
yading@10 10581 .IX Item "max_glyph_d, descent"
yading@10 10582 the maximum distance from the baseline to the lowest grid coordinate
yading@10 10583 used to place a glyph outline point, for all the rendered glyphs.
yading@10 10584 This is a negative value, due to the grid's orientation, with the Y axis
yading@10 10585 upwards.
yading@10 10586 .IP "\fBmax_glyph_h\fR" 4
yading@10 10587 .IX Item "max_glyph_h"
yading@10 10588 maximum glyph height, that is the maximum height for all the glyphs
yading@10 10589 contained in the rendered text, it is equivalent to \fIascent\fR \-
yading@10 10590 \&\fIdescent\fR.
yading@10 10591 .IP "\fBmax_glyph_w\fR" 4
yading@10 10592 .IX Item "max_glyph_w"
yading@10 10593 maximum glyph width, that is the maximum width for all the glyphs
yading@10 10594 contained in the rendered text
yading@10 10595 .IP "\fBn\fR" 4
yading@10 10596 .IX Item "n"
yading@10 10597 the number of input frame, starting from 0
yading@10 10598 .IP "\fBrand(min, max)\fR" 4
yading@10 10599 .IX Item "rand(min, max)"
yading@10 10600 return a random number included between \fImin\fR and \fImax\fR
yading@10 10601 .IP "\fBsar\fR" 4
yading@10 10602 .IX Item "sar"
yading@10 10603 input sample aspect ratio
yading@10 10604 .IP "\fBt\fR" 4
yading@10 10605 .IX Item "t"
yading@10 10606 timestamp expressed in seconds, \s-1NAN\s0 if the input timestamp is unknown
yading@10 10607 .IP "\fBtext_h, th\fR" 4
yading@10 10608 .IX Item "text_h, th"
yading@10 10609 the height of the rendered text
yading@10 10610 .IP "\fBtext_w, tw\fR" 4
yading@10 10611 .IX Item "text_w, tw"
yading@10 10612 the width of the rendered text
yading@10 10613 .IP "\fBx, y\fR" 4
yading@10 10614 .IX Item "x, y"
yading@10 10615 the x and y offset coordinates where the text is drawn.
yading@10 10616 .Sp
yading@10 10617 These parameters allow the \fIx\fR and \fIy\fR expressions to refer
yading@10 10618 each other, so you can for example specify \f(CW\*(C`y=x/dar\*(C'\fR.
yading@10 10619 .PP
yading@10 10620 If libavfilter was built with \f(CW\*(C`\-\-enable\-fontconfig\*(C'\fR, then
yading@10 10621 \&\fBfontfile\fR can be a fontconfig pattern or omitted.
yading@10 10622 .PP
yading@10 10623 \fIText expansion\fR
yading@10 10624 .IX Subsection "Text expansion"
yading@10 10625 .PP
yading@10 10626 If \fBexpansion\fR is set to \f(CW\*(C`strftime\*(C'\fR,
yading@10 10627 the filter recognizes \fIstrftime()\fR sequences in the provided text and
yading@10 10628 expands them accordingly. Check the documentation of \fIstrftime()\fR. This
yading@10 10629 feature is deprecated.
yading@10 10630 .PP
yading@10 10631 If \fBexpansion\fR is set to \f(CW\*(C`none\*(C'\fR, the text is printed verbatim.
yading@10 10632 .PP
yading@10 10633 If \fBexpansion\fR is set to \f(CW\*(C`normal\*(C'\fR (which is the default),
yading@10 10634 the following expansion mechanism is used.
yading@10 10635 .PP
yading@10 10636 The backslash character '\e', followed by any character, always expands to
yading@10 10637 the second character.
yading@10 10638 .PP
yading@10 10639 Sequence of the form \f(CW\*(C`%{...}\*(C'\fR are expanded. The text between the
yading@10 10640 braces is a function name, possibly followed by arguments separated by ':'.
yading@10 10641 If the arguments contain special characters or delimiters (':' or '}'),
yading@10 10642 they should be escaped.
yading@10 10643 .PP
yading@10 10644 Note that they probably must also be escaped as the value for the
yading@10 10645 \&\fBtext\fR option in the filter argument string and as the filter
yading@10 10646 argument in the filtergraph description, and possibly also for the shell,
yading@10 10647 that makes up to four levels of escaping; using a text file avoids these
yading@10 10648 problems.
yading@10 10649 .PP
yading@10 10650 The following functions are available:
yading@10 10651 .IP "\fBexpr, e\fR" 4
yading@10 10652 .IX Item "expr, e"
yading@10 10653 The expression evaluation result.
yading@10 10654 .Sp
yading@10 10655 It must take one argument specifying the expression to be evaluated,
yading@10 10656 which accepts the same constants and functions as the \fIx\fR and
yading@10 10657 \&\fIy\fR values. Note that not all constants should be used, for
yading@10 10658 example the text size is not known when evaluating the expression, so
yading@10 10659 the constants \fItext_w\fR and \fItext_h\fR will have an undefined
yading@10 10660 value.
yading@10 10661 .IP "\fBgmtime\fR" 4
yading@10 10662 .IX Item "gmtime"
yading@10 10663 The time at which the filter is running, expressed in \s-1UTC\s0.
yading@10 10664 It can accept an argument: a \fIstrftime()\fR format string.
yading@10 10665 .IP "\fBlocaltime\fR" 4
yading@10 10666 .IX Item "localtime"
yading@10 10667 The time at which the filter is running, expressed in the local time zone.
yading@10 10668 It can accept an argument: a \fIstrftime()\fR format string.
yading@10 10669 .IP "\fBn, frame_num\fR" 4
yading@10 10670 .IX Item "n, frame_num"
yading@10 10671 The frame number, starting from 0.
yading@10 10672 .IP "\fBpts\fR" 4
yading@10 10673 .IX Item "pts"
yading@10 10674 The timestamp of the current frame, in seconds, with microsecond accuracy.
yading@10 10675 .PP
yading@10 10676 \fIExamples\fR
yading@10 10677 .IX Subsection "Examples"
yading@10 10678 .IP "\(bu" 4
yading@10 10679 Draw \*(L"Test Text\*(R" with font FreeSerif, using the default values for the
yading@10 10680 optional parameters.
yading@10 10681 .Sp
yading@10 10682 .Vb 1
yading@10 10683 \& drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text=\*(AqTest Text\*(Aq"
yading@10 10684 .Ve
yading@10 10685 .IP "\(bu" 4
yading@10 10686 Draw 'Test Text' with font FreeSerif of size 24 at position x=100
yading@10 10687 and y=50 (counting from the top-left corner of the screen), text is
yading@10 10688 yellow with a red box around it. Both the text and the box have an
yading@10 10689 opacity of 20%.
yading@10 10690 .Sp
yading@10 10691 .Vb 2
yading@10 10692 \& drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text=\*(AqTest Text\*(Aq:\e
yading@10 10693 \& x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
yading@10 10694 .Ve
yading@10 10695 .Sp
yading@10 10696 Note that the double quotes are not necessary if spaces are not used
yading@10 10697 within the parameter list.
yading@10 10698 .IP "\(bu" 4
yading@10 10699 Show the text at the center of the video frame:
yading@10 10700 .Sp
yading@10 10701 .Vb 1
yading@10 10702 \& drawtext="fontsize=30:fontfile=FreeSerif.ttf:text=\*(Aqhello world\*(Aq:x=(w\-text_w)/2:y=(h\-text_h\-line_h)/2"
yading@10 10703 .Ve
yading@10 10704 .IP "\(bu" 4
yading@10 10705 Show a text line sliding from right to left in the last row of the video
yading@10 10706 frame. The file \fI\s-1LONG_LINE\s0\fR is assumed to contain a single line
yading@10 10707 with no newlines.
yading@10 10708 .Sp
yading@10 10709 .Vb 1
yading@10 10710 \& drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h\-line_h:x=\-50*t"
yading@10 10711 .Ve
yading@10 10712 .IP "\(bu" 4
yading@10 10713 Show the content of file \fI\s-1CREDITS\s0\fR off the bottom of the frame and scroll up.
yading@10 10714 .Sp
yading@10 10715 .Vb 1
yading@10 10716 \& drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h\-20*t"
yading@10 10717 .Ve
yading@10 10718 .IP "\(bu" 4
yading@10 10719 Draw a single green letter \*(L"g\*(R", at the center of the input video.
yading@10 10720 The glyph baseline is placed at half screen height.
yading@10 10721 .Sp
yading@10 10722 .Vb 1
yading@10 10723 \& drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w\-max_glyph_w)/2:y=h/2\-ascent"
yading@10 10724 .Ve
yading@10 10725 .IP "\(bu" 4
yading@10 10726 Show text for 1 second every 3 seconds:
yading@10 10727 .Sp
yading@10 10728 .Vb 1
yading@10 10729 \& drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:draw=lt(mod(t\e,3)\e,1):text=\*(Aqblink\*(Aq"
yading@10 10730 .Ve
yading@10 10731 .IP "\(bu" 4
yading@10 10732 Use fontconfig to set the font. Note that the colons need to be escaped.
yading@10 10733 .Sp
yading@10 10734 .Vb 1
yading@10 10735 \& drawtext=\*(Aqfontfile=Linux Libertine O\-40\e:style=Semibold:text=FFmpeg\*(Aq
yading@10 10736 .Ve
yading@10 10737 .IP "\(bu" 4
yading@10 10738 Print the date of a real-time encoding (see \fIstrftime\fR\|(3)):
yading@10 10739 .Sp
yading@10 10740 .Vb 1
yading@10 10741 \& drawtext=\*(Aqfontfile=FreeSans.ttf:text=%{localtime:%a %b %d %Y}\*(Aq
yading@10 10742 .Ve
yading@10 10743 .PP
yading@10 10744 For more information about libfreetype, check:
yading@10 10745 <\fBhttp://www.freetype.org/\fR>.
yading@10 10746 .PP
yading@10 10747 For more information about fontconfig, check:
yading@10 10748 <\fBhttp://freedesktop.org/software/fontconfig/fontconfig\-user.html\fR>.
yading@10 10749 .SS "edgedetect"
yading@10 10750 .IX Subsection "edgedetect"
yading@10 10751 Detect and draw edges. The filter uses the Canny Edge Detection algorithm.
yading@10 10752 .PP
yading@10 10753 The filter accepts the following options:
yading@10 10754 .IP "\fBlow, high\fR" 4
yading@10 10755 .IX Item "low, high"
yading@10 10756 Set low and high threshold values used by the Canny thresholding
yading@10 10757 algorithm.
yading@10 10758 .Sp
yading@10 10759 The high threshold selects the \*(L"strong\*(R" edge pixels, which are then
yading@10 10760 connected through 8\-connectivity with the \*(L"weak\*(R" edge pixels selected
yading@10 10761 by the low threshold.
yading@10 10762 .Sp
yading@10 10763 \&\fIlow\fR and \fIhigh\fR threshold values must be choosen in the range
yading@10 10764 [0,1], and \fIlow\fR should be lesser or equal to \fIhigh\fR.
yading@10 10765 .Sp
yading@10 10766 Default value for \fIlow\fR is \f(CW\*(C`20/255\*(C'\fR, and default value for \fIhigh\fR
yading@10 10767 is \f(CW\*(C`50/255\*(C'\fR.
yading@10 10768 .PP
yading@10 10769 Example:
yading@10 10770 .PP
yading@10 10771 .Vb 1
yading@10 10772 \& edgedetect=low=0.1:high=0.4
yading@10 10773 .Ve
yading@10 10774 .SS "fade"
yading@10 10775 .IX Subsection "fade"
yading@10 10776 Apply fade\-in/out effect to input video.
yading@10 10777 .PP
yading@10 10778 This filter accepts the following options:
yading@10 10779 .IP "\fBtype, t\fR" 4
yading@10 10780 .IX Item "type, t"
yading@10 10781 The effect type \*(-- can be either \*(L"in\*(R" for fade-in, or \*(L"out\*(R" for a fade-out
yading@10 10782 effect.
yading@10 10783 Default is \f(CW\*(C`in\*(C'\fR.
yading@10 10784 .IP "\fBstart_frame, s\fR" 4
yading@10 10785 .IX Item "start_frame, s"
yading@10 10786 Specify the number of the start frame for starting to apply the fade
yading@10 10787 effect. Default is 0.
yading@10 10788 .IP "\fBnb_frames, n\fR" 4
yading@10 10789 .IX Item "nb_frames, n"
yading@10 10790 The number of frames for which the fade effect has to last. At the end of the
yading@10 10791 fade-in effect the output video will have the same intensity as the input video,
yading@10 10792 at the end of the fade-out transition the output video will be completely black.
yading@10 10793 Default is 25.
yading@10 10794 .IP "\fBalpha\fR" 4
yading@10 10795 .IX Item "alpha"
yading@10 10796 If set to 1, fade only alpha channel, if one exists on the input.
yading@10 10797 Default value is 0.
yading@10 10798 .PP
yading@10 10799 \fIExamples\fR
yading@10 10800 .IX Subsection "Examples"
yading@10 10801 .IP "\(bu" 4
yading@10 10802 Fade in first 30 frames of video:
yading@10 10803 .Sp
yading@10 10804 .Vb 1
yading@10 10805 \& fade=in:0:30
yading@10 10806 .Ve
yading@10 10807 .Sp
yading@10 10808 The command above is equivalent to:
yading@10 10809 .Sp
yading@10 10810 .Vb 1
yading@10 10811 \& fade=t=in:s=0:n=30
yading@10 10812 .Ve
yading@10 10813 .IP "\(bu" 4
yading@10 10814 Fade out last 45 frames of a 200\-frame video:
yading@10 10815 .Sp
yading@10 10816 .Vb 2
yading@10 10817 \& fade=out:155:45
yading@10 10818 \& fade=type=out:start_frame=155:nb_frames=45
yading@10 10819 .Ve
yading@10 10820 .IP "\(bu" 4
yading@10 10821 Fade in first 25 frames and fade out last 25 frames of a 1000\-frame video:
yading@10 10822 .Sp
yading@10 10823 .Vb 1
yading@10 10824 \& fade=in:0:25, fade=out:975:25
yading@10 10825 .Ve
yading@10 10826 .IP "\(bu" 4
yading@10 10827 Make first 5 frames black, then fade in from frame 5\-24:
yading@10 10828 .Sp
yading@10 10829 .Vb 1
yading@10 10830 \& fade=in:5:20
yading@10 10831 .Ve
yading@10 10832 .IP "\(bu" 4
yading@10 10833 Fade in alpha over first 25 frames of video:
yading@10 10834 .Sp
yading@10 10835 .Vb 1
yading@10 10836 \& fade=in:0:25:alpha=1
yading@10 10837 .Ve
yading@10 10838 .SS "field"
yading@10 10839 .IX Subsection "field"
yading@10 10840 Extract a single field from an interlaced image using stride
yading@10 10841 arithmetic to avoid wasting \s-1CPU\s0 time. The output frames are marked as
yading@10 10842 non-interlaced.
yading@10 10843 .PP
yading@10 10844 The filter accepts the following options:
yading@10 10845 .IP "\fBtype\fR" 4
yading@10 10846 .IX Item "type"
yading@10 10847 Specify whether to extract the top (if the value is \f(CW0\fR or
yading@10 10848 \&\f(CW\*(C`top\*(C'\fR) or the bottom field (if the value is \f(CW1\fR or
yading@10 10849 \&\f(CW\*(C`bottom\*(C'\fR).
yading@10 10850 .SS "fieldmatch"
yading@10 10851 .IX Subsection "fieldmatch"
yading@10 10852 Field matching filter for inverse telecine. It is meant to reconstruct the
yading@10 10853 progressive frames from a telecined stream. The filter does not drop duplicated
yading@10 10854 frames, so to achieve a complete inverse telecine \f(CW\*(C`fieldmatch\*(C'\fR needs to be
yading@10 10855 followed by a decimation filter such as decimate in the filtergraph.
yading@10 10856 .PP
yading@10 10857 The separation of the field matching and the decimation is notably motivated by
yading@10 10858 the possibility of inserting a de-interlacing filter fallback between the two.
yading@10 10859 If the source has mixed telecined and real interlaced content,
yading@10 10860 \&\f(CW\*(C`fieldmatch\*(C'\fR will not be able to match fields for the interlaced parts.
yading@10 10861 But these remaining combed frames will be marked as interlaced, and thus can be
yading@10 10862 de-interlaced by a later filter such as yadif before decimation.
yading@10 10863 .PP
yading@10 10864 In addition to the various configuration options, \f(CW\*(C`fieldmatch\*(C'\fR can take an
yading@10 10865 optional second stream, activated through the \fBppsrc\fR option. If
yading@10 10866 enabled, the frames reconstruction will be based on the fields and frames from
yading@10 10867 this second stream. This allows the first input to be pre-processed in order to
yading@10 10868 help the various algorithms of the filter, while keeping the output lossless
yading@10 10869 (assuming the fields are matched properly). Typically, a field-aware denoiser,
yading@10 10870 or brightness/contrast adjustments can help.
yading@10 10871 .PP
yading@10 10872 Note that this filter uses the same algorithms as \s-1TIVTC/TFM\s0 (AviSynth project)
yading@10 10873 and \s-1VIVTC/VFM\s0 (VapourSynth project). The later is a light clone of \s-1TFM\s0 from
yading@10 10874 which \f(CW\*(C`fieldmatch\*(C'\fR is based on. While the semantic and usage are very
yading@10 10875 close, some behaviour and options names can differ.
yading@10 10876 .PP
yading@10 10877 The filter accepts the following options:
yading@10 10878 .IP "\fBorder\fR" 4
yading@10 10879 .IX Item "order"
yading@10 10880 Specify the assumed field order of the input stream. Available values are:
yading@10 10881 .RS 4
yading@10 10882 .IP "\fBauto\fR" 4
yading@10 10883 .IX Item "auto"
yading@10 10884 Auto detect parity (use FFmpeg's internal parity value).
yading@10 10885 .IP "\fBbff\fR" 4
yading@10 10886 .IX Item "bff"
yading@10 10887 Assume bottom field first.
yading@10 10888 .IP "\fBtff\fR" 4
yading@10 10889 .IX Item "tff"
yading@10 10890 Assume top field first.
yading@10 10891 .RE
yading@10 10892 .RS 4
yading@10 10893 .Sp
yading@10 10894 Note that it is sometimes recommended not to trust the parity announced by the
yading@10 10895 stream.
yading@10 10896 .Sp
yading@10 10897 Default value is \fIauto\fR.
yading@10 10898 .RE
yading@10 10899 .IP "\fBmode\fR" 4
yading@10 10900 .IX Item "mode"
yading@10 10901 Set the matching mode or strategy to use. \fBpc\fR mode is the safest in the
yading@10 10902 sense that it wont risk creating jerkiness due to duplicate frames when
yading@10 10903 possible, but if there are bad edits or blended fields it will end up
yading@10 10904 outputting combed frames when a good match might actually exist. On the other
yading@10 10905 hand, \fBpcn_ub\fR mode is the most risky in terms of creating jerkiness,
yading@10 10906 but will almost always find a good frame if there is one. The other values are
yading@10 10907 all somewhere in between \fBpc\fR and \fBpcn_ub\fR in terms of risking
yading@10 10908 jerkiness and creating duplicate frames versus finding good matches in sections
yading@10 10909 with bad edits, orphaned fields, blended fields, etc.
yading@10 10910 .Sp
yading@10 10911 More details about p/c/n/u/b are available in p/c/n/u/b meaning section.
yading@10 10912 .Sp
yading@10 10913 Available values are:
yading@10 10914 .RS 4
yading@10 10915 .IP "\fBpc\fR" 4
yading@10 10916 .IX Item "pc"
yading@10 10917 2\-way matching (p/c)
yading@10 10918 .IP "\fBpc_n\fR" 4
yading@10 10919 .IX Item "pc_n"
yading@10 10920 2\-way matching, and trying 3rd match if still combed (p/c + n)
yading@10 10921 .IP "\fBpc_u\fR" 4
yading@10 10922 .IX Item "pc_u"
yading@10 10923 2\-way matching, and trying 3rd match (same order) if still combed (p/c + u)
yading@10 10924 .IP "\fBpc_n_ub\fR" 4
yading@10 10925 .IX Item "pc_n_ub"
yading@10 10926 2\-way matching, trying 3rd match if still combed, and trying 4th/5th matches if
yading@10 10927 still combed (p/c + n + u/b)
yading@10 10928 .IP "\fBpcn\fR" 4
yading@10 10929 .IX Item "pcn"
yading@10 10930 3\-way matching (p/c/n)
yading@10 10931 .IP "\fBpcn_ub\fR" 4
yading@10 10932 .IX Item "pcn_ub"
yading@10 10933 3\-way matching, and trying 4th/5th matches if all 3 of the original matches are
yading@10 10934 detected as combed (p/c/n + u/b)
yading@10 10935 .RE
yading@10 10936 .RS 4
yading@10 10937 .Sp
yading@10 10938 The parenthesis at the end indicate the matches that would be used for that
yading@10 10939 mode assuming \fBorder\fR=\fItff\fR (and \fBfield\fR on \fIauto\fR or
yading@10 10940 \&\fItop\fR).
yading@10 10941 .Sp
yading@10 10942 In terms of speed \fBpc\fR mode is by far the fastest and \fBpcn_ub\fR is
yading@10 10943 the slowest.
yading@10 10944 .Sp
yading@10 10945 Default value is \fIpc_n\fR.
yading@10 10946 .RE
yading@10 10947 .IP "\fBppsrc\fR" 4
yading@10 10948 .IX Item "ppsrc"
yading@10 10949 Mark the main input stream as a pre-processed input, and enable the secondary
yading@10 10950 input stream as the clean source to pick the fields from. See the filter
yading@10 10951 introduction for more details. It is similar to the \fBclip2\fR feature from
yading@10 10952 \&\s-1VFM/TFM\s0.
yading@10 10953 .Sp
yading@10 10954 Default value is \f(CW0\fR (disabled).
yading@10 10955 .IP "\fBfield\fR" 4
yading@10 10956 .IX Item "field"
yading@10 10957 Set the field to match from. It is recommended to set this to the same value as
yading@10 10958 \&\fBorder\fR unless you experience matching failures with that setting. In
yading@10 10959 certain circumstances changing the field that is used to match from can have a
yading@10 10960 large impact on matching performance. Available values are:
yading@10 10961 .RS 4
yading@10 10962 .IP "\fBauto\fR" 4
yading@10 10963 .IX Item "auto"
yading@10 10964 Automatic (same value as \fBorder\fR).
yading@10 10965 .IP "\fBbottom\fR" 4
yading@10 10966 .IX Item "bottom"
yading@10 10967 Match from the bottom field.
yading@10 10968 .IP "\fBtop\fR" 4
yading@10 10969 .IX Item "top"
yading@10 10970 Match from the top field.
yading@10 10971 .RE
yading@10 10972 .RS 4
yading@10 10973 .Sp
yading@10 10974 Default value is \fIauto\fR.
yading@10 10975 .RE
yading@10 10976 .IP "\fBmchroma\fR" 4
yading@10 10977 .IX Item "mchroma"
yading@10 10978 Set whether or not chroma is included during the match comparisons. In most
yading@10 10979 cases it is recommended to leave this enabled. You should set this to \f(CW0\fR
yading@10 10980 only if your clip has bad chroma problems such as heavy rainbowing or other
yading@10 10981 artifacts. Setting this to \f(CW0\fR could also be used to speed things up at
yading@10 10982 the cost of some accuracy.
yading@10 10983 .Sp
yading@10 10984 Default value is \f(CW1\fR.
yading@10 10985 .IP "\fBy0\fR" 4
yading@10 10986 .IX Item "y0"
yading@10 10987 .PD 0
yading@10 10988 .IP "\fBy1\fR" 4
yading@10 10989 .IX Item "y1"
yading@10 10990 .PD
yading@10 10991 These define an exclusion band which excludes the lines between \fBy0\fR and
yading@10 10992 \&\fBy1\fR from being included in the field matching decision. An exclusion
yading@10 10993 band can be used to ignore subtitles, a logo, or other things that may
yading@10 10994 interfere with the matching. \fBy0\fR sets the starting scan line and
yading@10 10995 \&\fBy1\fR sets the ending line; all lines in between \fBy0\fR and
yading@10 10996 \&\fBy1\fR (including \fBy0\fR and \fBy1\fR) will be ignored. Setting
yading@10 10997 \&\fBy0\fR and \fBy1\fR to the same value will disable the feature.
yading@10 10998 \&\fBy0\fR and \fBy1\fR defaults to \f(CW0\fR.
yading@10 10999 .IP "\fBscthresh\fR" 4
yading@10 11000 .IX Item "scthresh"
yading@10 11001 Set the scene change detection threshold as a percentage of maximum change on
yading@10 11002 the luma plane. Good values are in the \f(CW\*(C`[8.0, 14.0]\*(C'\fR range. Scene change
yading@10 11003 detection is only relevant in case \fBcombmatch\fR=\fIsc\fR. The range for
yading@10 11004 \&\fBscthresh\fR is \f(CW\*(C`[0.0, 100.0]\*(C'\fR.
yading@10 11005 .Sp
yading@10 11006 Default value is \f(CW12.0\fR.
yading@10 11007 .IP "\fBcombmatch\fR" 4
yading@10 11008 .IX Item "combmatch"
yading@10 11009 When \fBcombatch\fR is not \fInone\fR, \f(CW\*(C`fieldmatch\*(C'\fR will take into
yading@10 11010 account the combed scores of matches when deciding what match to use as the
yading@10 11011 final match. Available values are:
yading@10 11012 .RS 4
yading@10 11013 .IP "\fBnone\fR" 4
yading@10 11014 .IX Item "none"
yading@10 11015 No final matching based on combed scores.
yading@10 11016 .IP "\fBsc\fR" 4
yading@10 11017 .IX Item "sc"
yading@10 11018 Combed scores are only used when a scene change is detected.
yading@10 11019 .IP "\fBfull\fR" 4
yading@10 11020 .IX Item "full"
yading@10 11021 Use combed scores all the time.
yading@10 11022 .RE
yading@10 11023 .RS 4
yading@10 11024 .Sp
yading@10 11025 Default is \fIsc\fR.
yading@10 11026 .RE
yading@10 11027 .IP "\fBcombdbg\fR" 4
yading@10 11028 .IX Item "combdbg"
yading@10 11029 Force \f(CW\*(C`fieldmatch\*(C'\fR to calculate the combed metrics for certain matches and
yading@10 11030 print them. This setting is known as \fBmicout\fR in \s-1TFM/VFM\s0 vocabulary.
yading@10 11031 Available values are:
yading@10 11032 .RS 4
yading@10 11033 .IP "\fBnone\fR" 4
yading@10 11034 .IX Item "none"
yading@10 11035 No forced calculation.
yading@10 11036 .IP "\fBpcn\fR" 4
yading@10 11037 .IX Item "pcn"
yading@10 11038 Force p/c/n calculations.
yading@10 11039 .IP "\fBpcnub\fR" 4
yading@10 11040 .IX Item "pcnub"
yading@10 11041 Force p/c/n/u/b calculations.
yading@10 11042 .RE
yading@10 11043 .RS 4
yading@10 11044 .Sp
yading@10 11045 Default value is \fInone\fR.
yading@10 11046 .RE
yading@10 11047 .IP "\fBcthresh\fR" 4
yading@10 11048 .IX Item "cthresh"
yading@10 11049 This is the area combing threshold used for combed frame detection. This
yading@10 11050 essentially controls how \*(L"strong\*(R" or \*(L"visible\*(R" combing must be to be detected.
yading@10 11051 Larger values mean combing must be more visible and smaller values mean combing
yading@10 11052 can be less visible or strong and still be detected. Valid settings are from
yading@10 11053 \&\f(CW\*(C`\-1\*(C'\fR (every pixel will be detected as combed) to \f(CW255\fR (no pixel will
yading@10 11054 be detected as combed). This is basically a pixel difference value. A good
yading@10 11055 range is \f(CW\*(C`[8, 12]\*(C'\fR.
yading@10 11056 .Sp
yading@10 11057 Default value is \f(CW9\fR.
yading@10 11058 .IP "\fBchroma\fR" 4
yading@10 11059 .IX Item "chroma"
yading@10 11060 Sets whether or not chroma is considered in the combed frame decision. Only
yading@10 11061 disable this if your source has chroma problems (rainbowing, etc.) that are
yading@10 11062 causing problems for the combed frame detection with chroma enabled. Actually,
yading@10 11063 using \fBchroma\fR=\fI0\fR is usually more reliable, except for the case
yading@10 11064 where there is chroma only combing in the source.
yading@10 11065 .Sp
yading@10 11066 Default value is \f(CW0\fR.
yading@10 11067 .IP "\fBblockx\fR" 4
yading@10 11068 .IX Item "blockx"
yading@10 11069 .PD 0
yading@10 11070 .IP "\fBblocky\fR" 4
yading@10 11071 .IX Item "blocky"
yading@10 11072 .PD
yading@10 11073 Respectively set the x\-axis and y\-axis size of the window used during combed
yading@10 11074 frame detection. This has to do with the size of the area in which
yading@10 11075 \&\fBcombpel\fR pixels are required to be detected as combed for a frame to be
yading@10 11076 declared combed. See the \fBcombpel\fR parameter description for more info.
yading@10 11077 Possible values are any number that is a power of 2 starting at 4 and going up
yading@10 11078 to 512.
yading@10 11079 .Sp
yading@10 11080 Default value is \f(CW16\fR.
yading@10 11081 .IP "\fBcombpel\fR" 4
yading@10 11082 .IX Item "combpel"
yading@10 11083 The number of combed pixels inside any of the \fBblocky\fR by
yading@10 11084 \&\fBblockx\fR size blocks on the frame for the frame to be detected as
yading@10 11085 combed. While \fBcthresh\fR controls how \*(L"visible\*(R" the combing must be, this
yading@10 11086 setting controls \*(L"how much\*(R" combing there must be in any localized area (a
yading@10 11087 window defined by the \fBblockx\fR and \fBblocky\fR settings) on the
yading@10 11088 frame. Minimum value is \f(CW0\fR and maximum is \f(CW\*(C`blocky x blockx\*(C'\fR (at
yading@10 11089 which point no frames will ever be detected as combed). This setting is known
yading@10 11090 as \fB\s-1MI\s0\fR in \s-1TFM/VFM\s0 vocabulary.
yading@10 11091 .Sp
yading@10 11092 Default value is \f(CW80\fR.
yading@10 11093 .PP
yading@10 11094 \fIp/c/n/u/b meaning\fR
yading@10 11095 .IX Subsection "p/c/n/u/b meaning"
yading@10 11096 .PP
yading@10 11097 p/c/n
yading@10 11098 .IX Subsection "p/c/n"
yading@10 11099 .PP
yading@10 11100 We assume the following telecined stream:
yading@10 11101 .PP
yading@10 11102 .Vb 2
yading@10 11103 \& Top fields: 1 2 2 3 4
yading@10 11104 \& Bottom fields: 1 2 3 4 4
yading@10 11105 .Ve
yading@10 11106 .PP
yading@10 11107 The numbers correspond to the progressive frame the fields relate to. Here, the
yading@10 11108 first two frames are progressive, the 3rd and 4th are combed, and so on.
yading@10 11109 .PP
yading@10 11110 When \f(CW\*(C`fieldmatch\*(C'\fR is configured to run a matching from bottom
yading@10 11111 (\fBfield\fR=\fIbottom\fR) this is how this input stream get transformed:
yading@10 11112 .PP
yading@10 11113 .Vb 3
yading@10 11114 \& Input stream:
yading@10 11115 \& T 1 2 2 3 4
yading@10 11116 \& B 1 2 3 4 4 <\-\- matching reference
yading@10 11117 \&
yading@10 11118 \& Matches: c c n n c
yading@10 11119 \&
yading@10 11120 \& Output stream:
yading@10 11121 \& T 1 2 3 4 4
yading@10 11122 \& B 1 2 3 4 4
yading@10 11123 .Ve
yading@10 11124 .PP
yading@10 11125 As a result of the field matching, we can see that some frames get duplicated.
yading@10 11126 To perform a complete inverse telecine, you need to rely on a decimation filter
yading@10 11127 after this operation. See for instance the decimate filter.
yading@10 11128 .PP
yading@10 11129 The same operation now matching from top fields (\fBfield\fR=\fItop\fR)
yading@10 11130 looks like this:
yading@10 11131 .PP
yading@10 11132 .Vb 3
yading@10 11133 \& Input stream:
yading@10 11134 \& T 1 2 2 3 4 <\-\- matching reference
yading@10 11135 \& B 1 2 3 4 4
yading@10 11136 \&
yading@10 11137 \& Matches: c c p p c
yading@10 11138 \&
yading@10 11139 \& Output stream:
yading@10 11140 \& T 1 2 2 3 4
yading@10 11141 \& B 1 2 2 3 4
yading@10 11142 .Ve
yading@10 11143 .PP
yading@10 11144 In these examples, we can see what \fIp\fR, \fIc\fR and \fIn\fR mean;
yading@10 11145 basically, they refer to the frame and field of the opposite parity:
yading@10 11146 .IP "*<\fIp\fR matches the field of the opposite parity in the previous frame>" 4
yading@10 11147 .IX Item "*<p matches the field of the opposite parity in the previous frame>"
yading@10 11148 .PD 0
yading@10 11149 .IP "*<\fIc\fR matches the field of the opposite parity in the current frame>" 4
yading@10 11150 .IX Item "*<c matches the field of the opposite parity in the current frame>"
yading@10 11151 .IP "*<\fIn\fR matches the field of the opposite parity in the next frame>" 4
yading@10 11152 .IX Item "*<n matches the field of the opposite parity in the next frame>"
yading@10 11153 .PD
yading@10 11154 .PP
yading@10 11155 u/b
yading@10 11156 .IX Subsection "u/b"
yading@10 11157 .PP
yading@10 11158 The \fIu\fR and \fIb\fR matching are a bit special in the sense that they match
yading@10 11159 from the opposite parity flag. In the following examples, we assume that we are
yading@10 11160 currently matching the 2nd frame (Top:2, bottom:2). According to the match, a
yading@10 11161 \&'x' is placed above and below each matched fields.
yading@10 11162 .PP
yading@10 11163 With bottom matching (\fBfield\fR=\fIbottom\fR):
yading@10 11164 .PP
yading@10 11165 .Vb 1
yading@10 11166 \& Match: c p n b u
yading@10 11167 \&
yading@10 11168 \& x x x x x
yading@10 11169 \& Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
yading@10 11170 \& Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
yading@10 11171 \& x x x x x
yading@10 11172 \&
yading@10 11173 \& Output frames:
yading@10 11174 \& 2 1 2 2 2
yading@10 11175 \& 2 2 2 1 3
yading@10 11176 .Ve
yading@10 11177 .PP
yading@10 11178 With top matching (\fBfield\fR=\fItop\fR):
yading@10 11179 .PP
yading@10 11180 .Vb 1
yading@10 11181 \& Match: c p n b u
yading@10 11182 \&
yading@10 11183 \& x x x x x
yading@10 11184 \& Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
yading@10 11185 \& Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
yading@10 11186 \& x x x x x
yading@10 11187 \&
yading@10 11188 \& Output frames:
yading@10 11189 \& 2 2 2 1 2
yading@10 11190 \& 2 1 3 2 2
yading@10 11191 .Ve
yading@10 11192 .PP
yading@10 11193 \fIExamples\fR
yading@10 11194 .IX Subsection "Examples"
yading@10 11195 .PP
yading@10 11196 Simple \s-1IVTC\s0 of a top field first telecined stream:
yading@10 11197 .PP
yading@10 11198 .Vb 1
yading@10 11199 \& fieldmatch=order=tff:combmatch=none, decimate
yading@10 11200 .Ve
yading@10 11201 .PP
yading@10 11202 Advanced \s-1IVTC\s0, with fallback on yadif for still combed frames:
yading@10 11203 .PP
yading@10 11204 .Vb 1
yading@10 11205 \& fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
yading@10 11206 .Ve
yading@10 11207 .SS "fieldorder"
yading@10 11208 .IX Subsection "fieldorder"
yading@10 11209 Transform the field order of the input video.
yading@10 11210 .PP
yading@10 11211 This filter accepts the following options:
yading@10 11212 .IP "\fBorder\fR" 4
yading@10 11213 .IX Item "order"
yading@10 11214 Output field order. Valid values are \fItff\fR for top field first or \fIbff\fR
yading@10 11215 for bottom field first.
yading@10 11216 .PP
yading@10 11217 Default value is \fBtff\fR.
yading@10 11218 .PP
yading@10 11219 Transformation is achieved by shifting the picture content up or down
yading@10 11220 by one line, and filling the remaining line with appropriate picture content.
yading@10 11221 This method is consistent with most broadcast field order converters.
yading@10 11222 .PP
yading@10 11223 If the input video is not flagged as being interlaced, or it is already
yading@10 11224 flagged as being of the required output field order then this filter does
yading@10 11225 not alter the incoming video.
yading@10 11226 .PP
yading@10 11227 This filter is very useful when converting to or from \s-1PAL\s0 \s-1DV\s0 material,
yading@10 11228 which is bottom field first.
yading@10 11229 .PP
yading@10 11230 For example:
yading@10 11231 .PP
yading@10 11232 .Vb 1
yading@10 11233 \& ffmpeg \-i in.vob \-vf "fieldorder=bff" out.dv
yading@10 11234 .Ve
yading@10 11235 .SS "fifo"
yading@10 11236 .IX Subsection "fifo"
yading@10 11237 Buffer input images and send them when they are requested.
yading@10 11238 .PP
yading@10 11239 This filter is mainly useful when auto-inserted by the libavfilter
yading@10 11240 framework.
yading@10 11241 .PP
yading@10 11242 The filter does not take parameters.
yading@10 11243 .SS "format"
yading@10 11244 .IX Subsection "format"
yading@10 11245 Convert the input video to one of the specified pixel formats.
yading@10 11246 Libavfilter will try to pick one that is supported for the input to
yading@10 11247 the next filter.
yading@10 11248 .PP
yading@10 11249 This filter accepts the following parameters:
yading@10 11250 .IP "\fBpix_fmts\fR" 4
yading@10 11251 .IX Item "pix_fmts"
yading@10 11252 A '|'\-separated list of pixel format names, for example
yading@10 11253 \&\*(L"pix_fmts=yuv420p|monow|rgb24\*(R".
yading@10 11254 .PP
yading@10 11255 \fIExamples\fR
yading@10 11256 .IX Subsection "Examples"
yading@10 11257 .IP "\(bu" 4
yading@10 11258 Convert the input video to the format \fIyuv420p\fR
yading@10 11259 .Sp
yading@10 11260 .Vb 1
yading@10 11261 \& format=pix_fmts=yuv420p
yading@10 11262 .Ve
yading@10 11263 .Sp
yading@10 11264 Convert the input video to any of the formats in the list
yading@10 11265 .Sp
yading@10 11266 .Vb 1
yading@10 11267 \& format=pix_fmts=yuv420p|yuv444p|yuv410p
yading@10 11268 .Ve
yading@10 11269 .SS "fps"
yading@10 11270 .IX Subsection "fps"
yading@10 11271 Convert the video to specified constant frame rate by duplicating or dropping
yading@10 11272 frames as necessary.
yading@10 11273 .PP
yading@10 11274 This filter accepts the following named parameters:
yading@10 11275 .IP "\fBfps\fR" 4
yading@10 11276 .IX Item "fps"
yading@10 11277 Desired output frame rate. The default is \f(CW25\fR.
yading@10 11278 .IP "\fBround\fR" 4
yading@10 11279 .IX Item "round"
yading@10 11280 Rounding method.
yading@10 11281 .Sp
yading@10 11282 Possible values are:
yading@10 11283 .RS 4
yading@10 11284 .IP "\fBzero\fR" 4
yading@10 11285 .IX Item "zero"
yading@10 11286 zero round towards 0
yading@10 11287 .IP "\fBinf\fR" 4
yading@10 11288 .IX Item "inf"
yading@10 11289 round away from 0
yading@10 11290 .IP "\fBdown\fR" 4
yading@10 11291 .IX Item "down"
yading@10 11292 round towards \-infinity
yading@10 11293 .IP "\fBup\fR" 4
yading@10 11294 .IX Item "up"
yading@10 11295 round towards +infinity
yading@10 11296 .IP "\fBnear\fR" 4
yading@10 11297 .IX Item "near"
yading@10 11298 round to nearest
yading@10 11299 .RE
yading@10 11300 .RS 4
yading@10 11301 .Sp
yading@10 11302 The default is \f(CW\*(C`near\*(C'\fR.
yading@10 11303 .RE
yading@10 11304 .PP
yading@10 11305 Alternatively, the options can be specified as a flat string:
yading@10 11306 \&\fIfps\fR[:\fIround\fR].
yading@10 11307 .PP
yading@10 11308 See also the setpts filter.
yading@10 11309 .SS "framestep"
yading@10 11310 .IX Subsection "framestep"
yading@10 11311 Select one frame every N\-th frame.
yading@10 11312 .PP
yading@10 11313 This filter accepts the following option:
yading@10 11314 .IP "\fBstep\fR" 4
yading@10 11315 .IX Item "step"
yading@10 11316 Select frame after every \f(CW\*(C`step\*(C'\fR frames.
yading@10 11317 Allowed values are positive integers higher than 0. Default value is \f(CW1\fR.
yading@10 11318 .SS "frei0r"
yading@10 11319 .IX Subsection "frei0r"
yading@10 11320 Apply a frei0r effect to the input video.
yading@10 11321 .PP
yading@10 11322 To enable compilation of this filter you need to install the frei0r
yading@10 11323 header and configure FFmpeg with \f(CW\*(C`\-\-enable\-frei0r\*(C'\fR.
yading@10 11324 .PP
yading@10 11325 This filter accepts the following options:
yading@10 11326 .IP "\fBfilter_name\fR" 4
yading@10 11327 .IX Item "filter_name"
yading@10 11328 The name to the frei0r effect to load. If the environment variable
yading@10 11329 \&\fB\s-1FREI0R_PATH\s0\fR is defined, the frei0r effect is searched in each one of the
yading@10 11330 directories specified by the colon separated list in \fB\s-1FREIOR_PATH\s0\fR,
yading@10 11331 otherwise in the standard frei0r paths, which are in this order:
yading@10 11332 \&\fI\s-1HOME/\s0.frei0r\-1/lib/\fR, \fI/usr/local/lib/frei0r\-1/\fR,
yading@10 11333 \&\fI/usr/lib/frei0r\-1/\fR.
yading@10 11334 .IP "\fBfilter_params\fR" 4
yading@10 11335 .IX Item "filter_params"
yading@10 11336 A '|'\-separated list of parameters to pass to the frei0r effect.
yading@10 11337 .PP
yading@10 11338 A frei0r effect parameter can be a boolean (whose values are specified
yading@10 11339 with \*(L"y\*(R" and \*(L"n\*(R"), a double, a color (specified by the syntax
yading@10 11340 \&\fIR\fR/\fIG\fR/\fIB\fR, \fIR\fR, \fIG\fR, and \fIB\fR being float
yading@10 11341 numbers from 0.0 to 1.0) or by an \f(CW\*(C`av_parse_color()\*(C'\fR color
yading@10 11342 description), a position (specified by the syntax \fIX\fR/\fIY\fR,
yading@10 11343 \&\fIX\fR and \fIY\fR being float numbers) and a string.
yading@10 11344 .PP
yading@10 11345 The number and kind of parameters depend on the loaded effect. If an
yading@10 11346 effect parameter is not specified the default value is set.
yading@10 11347 .PP
yading@10 11348 \fIExamples\fR
yading@10 11349 .IX Subsection "Examples"
yading@10 11350 .IP "\(bu" 4
yading@10 11351 Apply the distort0r effect, set the first two double parameters:
yading@10 11352 .Sp
yading@10 11353 .Vb 1
yading@10 11354 \& frei0r=filter_name=distort0r:filter_params=0.5|0.01
yading@10 11355 .Ve
yading@10 11356 .IP "\(bu" 4
yading@10 11357 Apply the colordistance effect, take a color as first parameter:
yading@10 11358 .Sp
yading@10 11359 .Vb 3
yading@10 11360 \& frei0r=colordistance:0.2/0.3/0.4
yading@10 11361 \& frei0r=colordistance:violet
yading@10 11362 \& frei0r=colordistance:0x112233
yading@10 11363 .Ve
yading@10 11364 .IP "\(bu" 4
yading@10 11365 Apply the perspective effect, specify the top left and top right image
yading@10 11366 positions:
yading@10 11367 .Sp
yading@10 11368 .Vb 1
yading@10 11369 \& frei0r=perspective:0.2/0.2|0.8/0.2
yading@10 11370 .Ve
yading@10 11371 .PP
yading@10 11372 For more information see:
yading@10 11373 <\fBhttp://frei0r.dyne.org\fR>
yading@10 11374 .SS "geq"
yading@10 11375 .IX Subsection "geq"
yading@10 11376 The filter accepts the following options:
yading@10 11377 .IP "\fBlum_expr\fR" 4
yading@10 11378 .IX Item "lum_expr"
yading@10 11379 the luminance expression
yading@10 11380 .IP "\fBcb_expr\fR" 4
yading@10 11381 .IX Item "cb_expr"
yading@10 11382 the chrominance blue expression
yading@10 11383 .IP "\fBcr_expr\fR" 4
yading@10 11384 .IX Item "cr_expr"
yading@10 11385 the chrominance red expression
yading@10 11386 .IP "\fBalpha_expr\fR" 4
yading@10 11387 .IX Item "alpha_expr"
yading@10 11388 the alpha expression
yading@10 11389 .PP
yading@10 11390 If one of the chrominance expression is not defined, it falls back on the other
yading@10 11391 one. If no alpha expression is specified it will evaluate to opaque value.
yading@10 11392 If none of chrominance expressions are
yading@10 11393 specified, they will evaluate the luminance expression.
yading@10 11394 .PP
yading@10 11395 The expressions can use the following variables and functions:
yading@10 11396 .IP "\fBN\fR" 4
yading@10 11397 .IX Item "N"
yading@10 11398 The sequential number of the filtered frame, starting from \f(CW0\fR.
yading@10 11399 .IP "\fBX\fR" 4
yading@10 11400 .IX Item "X"
yading@10 11401 .PD 0
yading@10 11402 .IP "\fBY\fR" 4
yading@10 11403 .IX Item "Y"
yading@10 11404 .PD
yading@10 11405 The coordinates of the current sample.
yading@10 11406 .IP "\fBW\fR" 4
yading@10 11407 .IX Item "W"
yading@10 11408 .PD 0
yading@10 11409 .IP "\fBH\fR" 4
yading@10 11410 .IX Item "H"
yading@10 11411 .PD
yading@10 11412 The width and height of the image.
yading@10 11413 .IP "\fB\s-1SW\s0\fR" 4
yading@10 11414 .IX Item "SW"
yading@10 11415 .PD 0
yading@10 11416 .IP "\fB\s-1SH\s0\fR" 4
yading@10 11417 .IX Item "SH"
yading@10 11418 .PD
yading@10 11419 Width and height scale depending on the currently filtered plane. It is the
yading@10 11420 ratio between the corresponding luma plane number of pixels and the current
yading@10 11421 plane ones. E.g. for \s-1YUV4:2:0\s0 the values are \f(CW\*(C`1,1\*(C'\fR for the luma plane, and
yading@10 11422 \&\f(CW\*(C`0.5,0.5\*(C'\fR for chroma planes.
yading@10 11423 .IP "\fBT\fR" 4
yading@10 11424 .IX Item "T"
yading@10 11425 Time of the current frame, expressed in seconds.
yading@10 11426 .IP "\fBp(x, y)\fR" 4
yading@10 11427 .IX Item "p(x, y)"
yading@10 11428 Return the value of the pixel at location (\fIx\fR,\fIy\fR) of the current
yading@10 11429 plane.
yading@10 11430 .IP "\fBlum(x, y)\fR" 4
yading@10 11431 .IX Item "lum(x, y)"
yading@10 11432 Return the value of the pixel at location (\fIx\fR,\fIy\fR) of the luminance
yading@10 11433 plane.
yading@10 11434 .IP "\fBcb(x, y)\fR" 4
yading@10 11435 .IX Item "cb(x, y)"
yading@10 11436 Return the value of the pixel at location (\fIx\fR,\fIy\fR) of the
yading@10 11437 blue-difference chroma plane. Returns 0 if there is no such plane.
yading@10 11438 .IP "\fBcr(x, y)\fR" 4
yading@10 11439 .IX Item "cr(x, y)"
yading@10 11440 Return the value of the pixel at location (\fIx\fR,\fIy\fR) of the
yading@10 11441 red-difference chroma plane. Returns 0 if there is no such plane.
yading@10 11442 .IP "\fBalpha(x, y)\fR" 4
yading@10 11443 .IX Item "alpha(x, y)"
yading@10 11444 Return the value of the pixel at location (\fIx\fR,\fIy\fR) of the alpha
yading@10 11445 plane. Returns 0 if there is no such plane.
yading@10 11446 .PP
yading@10 11447 For functions, if \fIx\fR and \fIy\fR are outside the area, the value will be
yading@10 11448 automatically clipped to the closer edge.
yading@10 11449 .PP
yading@10 11450 \fIExamples\fR
yading@10 11451 .IX Subsection "Examples"
yading@10 11452 .IP "\(bu" 4
yading@10 11453 Flip the image horizontally:
yading@10 11454 .Sp
yading@10 11455 .Vb 1
yading@10 11456 \& geq=p(W\-X\e,Y)
yading@10 11457 .Ve
yading@10 11458 .IP "\(bu" 4
yading@10 11459 Generate a bidimensional sine wave, with angle \f(CW\*(C`PI/3\*(C'\fR and a
yading@10 11460 wavelength of 100 pixels:
yading@10 11461 .Sp
yading@10 11462 .Vb 1
yading@10 11463 \& geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X\-50*T) + sin(PI/3)*Y)):128:128
yading@10 11464 .Ve
yading@10 11465 .IP "\(bu" 4
yading@10 11466 Generate a fancy enigmatic moving light:
yading@10 11467 .Sp
yading@10 11468 .Vb 1
yading@10 11469 \& nullsrc=s=256x256,geq=random(1)/hypot(X\-cos(N*0.07)*W/2\-W/2\e,Y\-sin(N*0.09)*H/2\-H/2)^2*1000000*sin(N*0.02):128:128
yading@10 11470 .Ve
yading@10 11471 .IP "\(bu" 4
yading@10 11472 Generate a quick emboss effect:
yading@10 11473 .Sp
yading@10 11474 .Vb 1
yading@10 11475 \& format=gray,geq=lum_expr=\*(Aq(p(X,Y)+(256\-p(X\-4,Y\-4)))/2\*(Aq
yading@10 11476 .Ve
yading@10 11477 .SS "gradfun"
yading@10 11478 .IX Subsection "gradfun"
yading@10 11479 Fix the banding artifacts that are sometimes introduced into nearly flat
yading@10 11480 regions by truncation to 8bit color depth.
yading@10 11481 Interpolate the gradients that should go where the bands are, and
yading@10 11482 dither them.
yading@10 11483 .PP
yading@10 11484 This filter is designed for playback only. Do not use it prior to
yading@10 11485 lossy compression, because compression tends to lose the dither and
yading@10 11486 bring back the bands.
yading@10 11487 .PP
yading@10 11488 This filter accepts the following options:
yading@10 11489 .IP "\fBstrength\fR" 4
yading@10 11490 .IX Item "strength"
yading@10 11491 The maximum amount by which the filter will change any one pixel. Also the
yading@10 11492 threshold for detecting nearly flat regions. Acceptable values range from .51 to
yading@10 11493 64, default value is 1.2, out-of-range values will be clipped to the valid
yading@10 11494 range.
yading@10 11495 .IP "\fBradius\fR" 4
yading@10 11496 .IX Item "radius"
yading@10 11497 The neighborhood to fit the gradient to. A larger radius makes for smoother
yading@10 11498 gradients, but also prevents the filter from modifying the pixels near detailed
yading@10 11499 regions. Acceptable values are 8\-32, default value is 16, out-of-range values
yading@10 11500 will be clipped to the valid range.
yading@10 11501 .PP
yading@10 11502 Alternatively, the options can be specified as a flat string:
yading@10 11503 \&\fIstrength\fR[:\fIradius\fR]
yading@10 11504 .PP
yading@10 11505 \fIExamples\fR
yading@10 11506 .IX Subsection "Examples"
yading@10 11507 .IP "\(bu" 4
yading@10 11508 Apply the filter with a \f(CW3.5\fR strength and radius of \f(CW8\fR:
yading@10 11509 .Sp
yading@10 11510 .Vb 1
yading@10 11511 \& gradfun=3.5:8
yading@10 11512 .Ve
yading@10 11513 .IP "\(bu" 4
yading@10 11514 Specify radius, omitting the strength (which will fall-back to the default
yading@10 11515 value):
yading@10 11516 .Sp
yading@10 11517 .Vb 1
yading@10 11518 \& gradfun=radius=8
yading@10 11519 .Ve
yading@10 11520 .SS "hflip"
yading@10 11521 .IX Subsection "hflip"
yading@10 11522 Flip the input video horizontally.
yading@10 11523 .PP
yading@10 11524 For example to horizontally flip the input video with \fBffmpeg\fR:
yading@10 11525 .PP
yading@10 11526 .Vb 1
yading@10 11527 \& ffmpeg \-i in.avi \-vf "hflip" out.avi
yading@10 11528 .Ve
yading@10 11529 .SS "histeq"
yading@10 11530 .IX Subsection "histeq"
yading@10 11531 This filter applies a global color histogram equalization on a
yading@10 11532 per-frame basis.
yading@10 11533 .PP
yading@10 11534 It can be used to correct video that has a compressed range of pixel
yading@10 11535 intensities. The filter redistributes the pixel intensities to
yading@10 11536 equalize their distribution across the intensity range. It may be
yading@10 11537 viewed as an \*(L"automatically adjusting contrast filter\*(R". This filter is
yading@10 11538 useful only for correcting degraded or poorly captured source
yading@10 11539 video.
yading@10 11540 .PP
yading@10 11541 The filter accepts the following options:
yading@10 11542 .IP "\fBstrength\fR" 4
yading@10 11543 .IX Item "strength"
yading@10 11544 Determine the amount of equalization to be applied. As the strength
yading@10 11545 is reduced, the distribution of pixel intensities more-and-more
yading@10 11546 approaches that of the input frame. The value must be a float number
yading@10 11547 in the range [0,1] and defaults to 0.200.
yading@10 11548 .IP "\fBintensity\fR" 4
yading@10 11549 .IX Item "intensity"
yading@10 11550 Set the maximum intensity that can generated and scale the output
yading@10 11551 values appropriately. The strength should be set as desired and then
yading@10 11552 the intensity can be limited if needed to avoid washing-out. The value
yading@10 11553 must be a float number in the range [0,1] and defaults to 0.210.
yading@10 11554 .IP "\fBantibanding\fR" 4
yading@10 11555 .IX Item "antibanding"
yading@10 11556 Set the antibanding level. If enabled the filter will randomly vary
yading@10 11557 the luminance of output pixels by a small amount to avoid banding of
yading@10 11558 the histogram. Possible values are \f(CW\*(C`none\*(C'\fR, \f(CW\*(C`weak\*(C'\fR or
yading@10 11559 \&\f(CW\*(C`strong\*(C'\fR. It defaults to \f(CW\*(C`none\*(C'\fR.
yading@10 11560 .SS "histogram"
yading@10 11561 .IX Subsection "histogram"
yading@10 11562 Compute and draw a color distribution histogram for the input video.
yading@10 11563 .PP
yading@10 11564 The computed histogram is a representation of distribution of color components
yading@10 11565 in an image.
yading@10 11566 .PP
yading@10 11567 The filter accepts the following options:
yading@10 11568 .IP "\fBmode\fR" 4
yading@10 11569 .IX Item "mode"
yading@10 11570 Set histogram mode.
yading@10 11571 .Sp
yading@10 11572 It accepts the following values:
yading@10 11573 .RS 4
yading@10 11574 .IP "\fBlevels\fR" 4
yading@10 11575 .IX Item "levels"
yading@10 11576 standard histogram that display color components distribution in an image.
yading@10 11577 Displays color graph for each color component. Shows distribution
yading@10 11578 of the Y, U, V, A or G, B, R components, depending on input format,
yading@10 11579 in current frame. Bellow each graph is color component scale meter.
yading@10 11580 .IP "\fBcolor\fR" 4
yading@10 11581 .IX Item "color"
yading@10 11582 chroma values in vectorscope, if brighter more such chroma values are
yading@10 11583 distributed in an image.
yading@10 11584 Displays chroma values (U/V color placement) in two dimensional graph
yading@10 11585 (which is called a vectorscope). It can be used to read of the hue and
yading@10 11586 saturation of the current frame. At a same time it is a histogram.
yading@10 11587 The whiter a pixel in the vectorscope, the more pixels of the input frame
yading@10 11588 correspond to that pixel (that is the more pixels have this chroma value).
yading@10 11589 The V component is displayed on the horizontal (X) axis, with the leftmost
yading@10 11590 side being V = 0 and the rightmost side being V = 255.
yading@10 11591 The U component is displayed on the vertical (Y) axis, with the top
yading@10 11592 representing U = 0 and the bottom representing U = 255.
yading@10 11593 .Sp
yading@10 11594 The position of a white pixel in the graph corresponds to the chroma value
yading@10 11595 of a pixel of the input clip. So the graph can be used to read of the
yading@10 11596 hue (color flavor) and the saturation (the dominance of the hue in the color).
yading@10 11597 As the hue of a color changes, it moves around the square. At the center of
yading@10 11598 the square, the saturation is zero, which means that the corresponding pixel
yading@10 11599 has no color. If you increase the amount of a specific color, while leaving
yading@10 11600 the other colors unchanged, the saturation increases, and you move towards
yading@10 11601 the edge of the square.
yading@10 11602 .IP "\fBcolor2\fR" 4
yading@10 11603 .IX Item "color2"
yading@10 11604 chroma values in vectorscope, similar as \f(CW\*(C`color\*(C'\fR but actual chroma values
yading@10 11605 are displayed.
yading@10 11606 .IP "\fBwaveform\fR" 4
yading@10 11607 .IX Item "waveform"
yading@10 11608 per row/column color component graph. In row mode graph in the left side represents
yading@10 11609 color component value 0 and right side represents value = 255. In column mode top
yading@10 11610 side represents color component value = 0 and bottom side represents value = 255.
yading@10 11611 .RE
yading@10 11612 .RS 4
yading@10 11613 .Sp
yading@10 11614 Default value is \f(CW\*(C`levels\*(C'\fR.
yading@10 11615 .RE
yading@10 11616 .IP "\fBlevel_height\fR" 4
yading@10 11617 .IX Item "level_height"
yading@10 11618 Set height of level in \f(CW\*(C`levels\*(C'\fR. Default value is \f(CW200\fR.
yading@10 11619 Allowed range is [50, 2048].
yading@10 11620 .IP "\fBscale_height\fR" 4
yading@10 11621 .IX Item "scale_height"
yading@10 11622 Set height of color scale in \f(CW\*(C`levels\*(C'\fR. Default value is \f(CW12\fR.
yading@10 11623 Allowed range is [0, 40].
yading@10 11624 .IP "\fBstep\fR" 4
yading@10 11625 .IX Item "step"
yading@10 11626 Set step for \f(CW\*(C`waveform\*(C'\fR mode. Smaller values are useful to find out how much
yading@10 11627 of same luminance values across input rows/columns are distributed.
yading@10 11628 Default value is \f(CW10\fR. Allowed range is [1, 255].
yading@10 11629 .IP "\fBwaveform_mode\fR" 4
yading@10 11630 .IX Item "waveform_mode"
yading@10 11631 Set mode for \f(CW\*(C`waveform\*(C'\fR. Can be either \f(CW\*(C`row\*(C'\fR, or \f(CW\*(C`column\*(C'\fR.
yading@10 11632 Default is \f(CW\*(C`row\*(C'\fR.
yading@10 11633 .IP "\fBdisplay_mode\fR" 4
yading@10 11634 .IX Item "display_mode"
yading@10 11635 Set display mode for \f(CW\*(C`waveform\*(C'\fR and \f(CW\*(C`levels\*(C'\fR.
yading@10 11636 It accepts the following values:
yading@10 11637 .RS 4
yading@10 11638 .IP "\fBparade\fR" 4
yading@10 11639 .IX Item "parade"
yading@10 11640 Display separate graph for the color components side by side in
yading@10 11641 \&\f(CW\*(C`row\*(C'\fR waveform mode or one below other in \f(CW\*(C`column\*(C'\fR waveform mode
yading@10 11642 for \f(CW\*(C`waveform\*(C'\fR histogram mode. For \f(CW\*(C`levels\*(C'\fR histogram mode
yading@10 11643 per color component graphs are placed one bellow other.
yading@10 11644 .Sp
yading@10 11645 This display mode in \f(CW\*(C`waveform\*(C'\fR histogram mode makes it easy to spot
yading@10 11646 color casts in the highlights and shadows of an image, by comparing the
yading@10 11647 contours of the top and the bottom of each waveform.
yading@10 11648 Since whites, grays, and blacks are characterized by
yading@10 11649 exactly equal amounts of red, green, and blue, neutral areas of the
yading@10 11650 picture should display three waveforms of roughly equal width/height.
yading@10 11651 If not, the correction is easy to make by making adjustments to level the
yading@10 11652 three waveforms.
yading@10 11653 .IP "\fBoverlay\fR" 4
yading@10 11654 .IX Item "overlay"
yading@10 11655 Presents information that's identical to that in the \f(CW\*(C`parade\*(C'\fR, except
yading@10 11656 that the graphs representing color components are superimposed directly
yading@10 11657 over one another.
yading@10 11658 .Sp
yading@10 11659 This display mode in \f(CW\*(C`waveform\*(C'\fR histogram mode can make it easier to spot
yading@10 11660 the relative differences or similarities in overlapping areas of the color
yading@10 11661 components that are supposed to be identical, such as neutral whites, grays,
yading@10 11662 or blacks.
yading@10 11663 .RE
yading@10 11664 .RS 4
yading@10 11665 .Sp
yading@10 11666 Default is \f(CW\*(C`parade\*(C'\fR.
yading@10 11667 .RE
yading@10 11668 .PP
yading@10 11669 \fIExamples\fR
yading@10 11670 .IX Subsection "Examples"
yading@10 11671 .IP "\(bu" 4
yading@10 11672 Calculate and draw histogram:
yading@10 11673 .Sp
yading@10 11674 .Vb 1
yading@10 11675 \& ffplay \-i input \-vf histogram
yading@10 11676 .Ve
yading@10 11677 .SS "hqdn3d"
yading@10 11678 .IX Subsection "hqdn3d"
yading@10 11679 High precision/quality 3d denoise filter. This filter aims to reduce
yading@10 11680 image noise producing smooth images and making still images really
yading@10 11681 still. It should enhance compressibility.
yading@10 11682 .PP
yading@10 11683 It accepts the following optional parameters:
yading@10 11684 .IP "\fBluma_spatial\fR" 4
yading@10 11685 .IX Item "luma_spatial"
yading@10 11686 a non-negative float number which specifies spatial luma strength,
yading@10 11687 defaults to 4.0
yading@10 11688 .IP "\fBchroma_spatial\fR" 4
yading@10 11689 .IX Item "chroma_spatial"
yading@10 11690 a non-negative float number which specifies spatial chroma strength,
yading@10 11691 defaults to 3.0*\fIluma_spatial\fR/4.0
yading@10 11692 .IP "\fBluma_tmp\fR" 4
yading@10 11693 .IX Item "luma_tmp"
yading@10 11694 a float number which specifies luma temporal strength, defaults to
yading@10 11695 6.0*\fIluma_spatial\fR/4.0
yading@10 11696 .IP "\fBchroma_tmp\fR" 4
yading@10 11697 .IX Item "chroma_tmp"
yading@10 11698 a float number which specifies chroma temporal strength, defaults to
yading@10 11699 \&\fIluma_tmp\fR*\fIchroma_spatial\fR/\fIluma_spatial\fR
yading@10 11700 .SS "hue"
yading@10 11701 .IX Subsection "hue"
yading@10 11702 Modify the hue and/or the saturation of the input.
yading@10 11703 .PP
yading@10 11704 This filter accepts the following options:
yading@10 11705 .IP "\fBh\fR" 4
yading@10 11706 .IX Item "h"
yading@10 11707 Specify the hue angle as a number of degrees. It accepts an expression,
yading@10 11708 and defaults to \*(L"0\*(R".
yading@10 11709 .IP "\fBs\fR" 4
yading@10 11710 .IX Item "s"
yading@10 11711 Specify the saturation in the [\-10,10] range. It accepts a float number and
yading@10 11712 defaults to \*(L"1\*(R".
yading@10 11713 .IP "\fBH\fR" 4
yading@10 11714 .IX Item "H"
yading@10 11715 Specify the hue angle as a number of radians. It accepts a float
yading@10 11716 number or an expression, and defaults to \*(L"0\*(R".
yading@10 11717 .PP
yading@10 11718 \&\fBh\fR and \fBH\fR are mutually exclusive, and can't be
yading@10 11719 specified at the same time.
yading@10 11720 .PP
yading@10 11721 The \fBh\fR, \fBH\fR and \fBs\fR option values are
yading@10 11722 expressions containing the following constants:
yading@10 11723 .IP "\fBn\fR" 4
yading@10 11724 .IX Item "n"
yading@10 11725 frame count of the input frame starting from 0
yading@10 11726 .IP "\fBpts\fR" 4
yading@10 11727 .IX Item "pts"
yading@10 11728 presentation timestamp of the input frame expressed in time base units
yading@10 11729 .IP "\fBr\fR" 4
yading@10 11730 .IX Item "r"
yading@10 11731 frame rate of the input video, \s-1NAN\s0 if the input frame rate is unknown
yading@10 11732 .IP "\fBt\fR" 4
yading@10 11733 .IX Item "t"
yading@10 11734 timestamp expressed in seconds, \s-1NAN\s0 if the input timestamp is unknown
yading@10 11735 .IP "\fBtb\fR" 4
yading@10 11736 .IX Item "tb"
yading@10 11737 time base of the input video
yading@10 11738 .PP
yading@10 11739 \fIExamples\fR
yading@10 11740 .IX Subsection "Examples"
yading@10 11741 .IP "\(bu" 4
yading@10 11742 Set the hue to 90 degrees and the saturation to 1.0:
yading@10 11743 .Sp
yading@10 11744 .Vb 1
yading@10 11745 \& hue=h=90:s=1
yading@10 11746 .Ve
yading@10 11747 .IP "\(bu" 4
yading@10 11748 Same command but expressing the hue in radians:
yading@10 11749 .Sp
yading@10 11750 .Vb 1
yading@10 11751 \& hue=H=PI/2:s=1
yading@10 11752 .Ve
yading@10 11753 .IP "\(bu" 4
yading@10 11754 Rotate hue and make the saturation swing between 0
yading@10 11755 and 2 over a period of 1 second:
yading@10 11756 .Sp
yading@10 11757 .Vb 1
yading@10 11758 \& hue="H=2*PI*t: s=sin(2*PI*t)+1"
yading@10 11759 .Ve
yading@10 11760 .IP "\(bu" 4
yading@10 11761 Apply a 3 seconds saturation fade-in effect starting at 0:
yading@10 11762 .Sp
yading@10 11763 .Vb 1
yading@10 11764 \& hue="s=min(t/3\e,1)"
yading@10 11765 .Ve
yading@10 11766 .Sp
yading@10 11767 The general fade-in expression can be written as:
yading@10 11768 .Sp
yading@10 11769 .Vb 1
yading@10 11770 \& hue="s=min(0\e, max((t\-START)/DURATION\e, 1))"
yading@10 11771 .Ve
yading@10 11772 .IP "\(bu" 4
yading@10 11773 Apply a 3 seconds saturation fade-out effect starting at 5 seconds:
yading@10 11774 .Sp
yading@10 11775 .Vb 1
yading@10 11776 \& hue="s=max(0\e, min(1\e, (8\-t)/3))"
yading@10 11777 .Ve
yading@10 11778 .Sp
yading@10 11779 The general fade-out expression can be written as:
yading@10 11780 .Sp
yading@10 11781 .Vb 1
yading@10 11782 \& hue="s=max(0\e, min(1\e, (START+DURATION\-t)/DURATION))"
yading@10 11783 .Ve
yading@10 11784 .PP
yading@10 11785 \fICommands\fR
yading@10 11786 .IX Subsection "Commands"
yading@10 11787 .PP
yading@10 11788 This filter supports the following commands:
yading@10 11789 .IP "\fBs\fR" 4
yading@10 11790 .IX Item "s"
yading@10 11791 .PD 0
yading@10 11792 .IP "\fBh\fR" 4
yading@10 11793 .IX Item "h"
yading@10 11794 .IP "\fBH\fR" 4
yading@10 11795 .IX Item "H"
yading@10 11796 .PD
yading@10 11797 Modify the hue and/or the saturation of the input video.
yading@10 11798 The command accepts the same syntax of the corresponding option.
yading@10 11799 .Sp
yading@10 11800 If the specified expression is not valid, it is kept at its current
yading@10 11801 value.
yading@10 11802 .SS "idet"
yading@10 11803 .IX Subsection "idet"
yading@10 11804 Detect video interlacing type.
yading@10 11805 .PP
yading@10 11806 This filter tries to detect if the input is interlaced or progressive,
yading@10 11807 top or bottom field first.
yading@10 11808 .PP
yading@10 11809 The filter accepts the following options:
yading@10 11810 .IP "\fBintl_thres\fR" 4
yading@10 11811 .IX Item "intl_thres"
yading@10 11812 Set interlacing threshold.
yading@10 11813 .IP "\fBprog_thres\fR" 4
yading@10 11814 .IX Item "prog_thres"
yading@10 11815 Set progressive threshold.
yading@10 11816 .SS "il"
yading@10 11817 .IX Subsection "il"
yading@10 11818 Deinterleave or interleave fields.
yading@10 11819 .PP
yading@10 11820 This filter allows to process interlaced images fields without
yading@10 11821 deinterlacing them. Deinterleaving splits the input frame into 2
yading@10 11822 fields (so called half pictures). Odd lines are moved to the top
yading@10 11823 half of the output image, even lines to the bottom half.
yading@10 11824 You can process (filter) them independently and then re-interleave them.
yading@10 11825 .PP
yading@10 11826 The filter accepts the following options:
yading@10 11827 .IP "\fBluma_mode, l\fR" 4
yading@10 11828 .IX Item "luma_mode, l"
yading@10 11829 .PD 0
yading@10 11830 .IP "\fBchroma_mode, s\fR" 4
yading@10 11831 .IX Item "chroma_mode, s"
yading@10 11832 .IP "\fBalpha_mode, a\fR" 4
yading@10 11833 .IX Item "alpha_mode, a"
yading@10 11834 .PD
yading@10 11835 Available values for \fIluma_mode\fR, \fIchroma_mode\fR and
yading@10 11836 \&\fIalpha_mode\fR are:
yading@10 11837 .RS 4
yading@10 11838 .IP "\fBnone\fR" 4
yading@10 11839 .IX Item "none"
yading@10 11840 Do nothing.
yading@10 11841 .IP "\fBdeinterleave, d\fR" 4
yading@10 11842 .IX Item "deinterleave, d"
yading@10 11843 Deinterleave fields, placing one above the other.
yading@10 11844 .IP "\fBinterleave, i\fR" 4
yading@10 11845 .IX Item "interleave, i"
yading@10 11846 Interleave fields. Reverse the effect of deinterleaving.
yading@10 11847 .RE
yading@10 11848 .RS 4
yading@10 11849 .Sp
yading@10 11850 Default value is \f(CW\*(C`none\*(C'\fR.
yading@10 11851 .RE
yading@10 11852 .IP "\fBluma_swap, ls\fR" 4
yading@10 11853 .IX Item "luma_swap, ls"
yading@10 11854 .PD 0
yading@10 11855 .IP "\fBchroma_swap, cs\fR" 4
yading@10 11856 .IX Item "chroma_swap, cs"
yading@10 11857 .IP "\fBalpha_swap, as\fR" 4
yading@10 11858 .IX Item "alpha_swap, as"
yading@10 11859 .PD
yading@10 11860 Swap luma/chroma/alpha fields. Exchange even & odd lines. Default value is \f(CW0\fR.
yading@10 11861 .SS "interlace"
yading@10 11862 .IX Subsection "interlace"
yading@10 11863 Simple interlacing filter from progressive contents. This interleaves upper (or
yading@10 11864 lower) lines from odd frames with lower (or upper) lines from even frames,
yading@10 11865 halving the frame rate and preserving image height.
yading@10 11866 .PP
yading@10 11867 .Vb 9
yading@10 11868 \& Original Original New Frame
yading@10 11869 \& Frame \*(Aqj\*(Aq Frame \*(Aqj+1\*(Aq (tff)
yading@10 11870 \& ========== =========== ==================
yading@10 11871 \& Line 0 \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-> Frame \*(Aqj\*(Aq Line 0
yading@10 11872 \& Line 1 Line 1 \-\-\-\-> Frame \*(Aqj+1\*(Aq Line 1
yading@10 11873 \& Line 2 \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-> Frame \*(Aqj\*(Aq Line 2
yading@10 11874 \& Line 3 Line 3 \-\-\-\-> Frame \*(Aqj+1\*(Aq Line 3
yading@10 11875 \& ... ... ...
yading@10 11876 \& New Frame + 1 will be generated by Frame \*(Aqj+2\*(Aq and Frame \*(Aqj+3\*(Aq and so on
yading@10 11877 .Ve
yading@10 11878 .PP
yading@10 11879 It accepts the following optional parameters:
yading@10 11880 .IP "\fBscan\fR" 4
yading@10 11881 .IX Item "scan"
yading@10 11882 determines whether the interlaced frame is taken from the even (tff \- default)
yading@10 11883 or odd (bff) lines of the progressive frame.
yading@10 11884 .IP "\fBlowpass\fR" 4
yading@10 11885 .IX Item "lowpass"
yading@10 11886 Enable (default) or disable the vertical lowpass filter to avoid twitter
yading@10 11887 interlacing and reduce moire patterns.
yading@10 11888 .SS "kerndeint"
yading@10 11889 .IX Subsection "kerndeint"
yading@10 11890 Deinterlace input video by applying Donald Graft's adaptive kernel
yading@10 11891 deinterling. Work on interlaced parts of a video to produce
yading@10 11892 progressive frames.
yading@10 11893 .PP
yading@10 11894 The description of the accepted parameters follows.
yading@10 11895 .IP "\fBthresh\fR" 4
yading@10 11896 .IX Item "thresh"
yading@10 11897 Set the threshold which affects the filter's tolerance when
yading@10 11898 determining if a pixel line must be processed. It must be an integer
yading@10 11899 in the range [0,255] and defaults to 10. A value of 0 will result in
yading@10 11900 applying the process on every pixels.
yading@10 11901 .IP "\fBmap\fR" 4
yading@10 11902 .IX Item "map"
yading@10 11903 Paint pixels exceeding the threshold value to white if set to 1.
yading@10 11904 Default is 0.
yading@10 11905 .IP "\fBorder\fR" 4
yading@10 11906 .IX Item "order"
yading@10 11907 Set the fields order. Swap fields if set to 1, leave fields alone if
yading@10 11908 0. Default is 0.
yading@10 11909 .IP "\fBsharp\fR" 4
yading@10 11910 .IX Item "sharp"
yading@10 11911 Enable additional sharpening if set to 1. Default is 0.
yading@10 11912 .IP "\fBtwoway\fR" 4
yading@10 11913 .IX Item "twoway"
yading@10 11914 Enable twoway sharpening if set to 1. Default is 0.
yading@10 11915 .PP
yading@10 11916 \fIExamples\fR
yading@10 11917 .IX Subsection "Examples"
yading@10 11918 .IP "\(bu" 4
yading@10 11919 Apply default values:
yading@10 11920 .Sp
yading@10 11921 .Vb 1
yading@10 11922 \& kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
yading@10 11923 .Ve
yading@10 11924 .IP "\(bu" 4
yading@10 11925 Enable additional sharpening:
yading@10 11926 .Sp
yading@10 11927 .Vb 1
yading@10 11928 \& kerndeint=sharp=1
yading@10 11929 .Ve
yading@10 11930 .IP "\(bu" 4
yading@10 11931 Paint processed pixels in white:
yading@10 11932 .Sp
yading@10 11933 .Vb 1
yading@10 11934 \& kerndeint=map=1
yading@10 11935 .Ve
yading@10 11936 .SS "lut, lutrgb, lutyuv"
yading@10 11937 .IX Subsection "lut, lutrgb, lutyuv"
yading@10 11938 Compute a look-up table for binding each pixel component input value
yading@10 11939 to an output value, and apply it to input video.
yading@10 11940 .PP
yading@10 11941 \&\fIlutyuv\fR applies a lookup table to a \s-1YUV\s0 input video, \fIlutrgb\fR
yading@10 11942 to an \s-1RGB\s0 input video.
yading@10 11943 .PP
yading@10 11944 These filters accept the following options:
yading@10 11945 .IP "\fBc0\fR" 4
yading@10 11946 .IX Item "c0"
yading@10 11947 set first pixel component expression
yading@10 11948 .IP "\fBc1\fR" 4
yading@10 11949 .IX Item "c1"
yading@10 11950 set second pixel component expression
yading@10 11951 .IP "\fBc2\fR" 4
yading@10 11952 .IX Item "c2"
yading@10 11953 set third pixel component expression
yading@10 11954 .IP "\fBc3\fR" 4
yading@10 11955 .IX Item "c3"
yading@10 11956 set fourth pixel component expression, corresponds to the alpha component
yading@10 11957 .IP "\fBr\fR" 4
yading@10 11958 .IX Item "r"
yading@10 11959 set red component expression
yading@10 11960 .IP "\fBg\fR" 4
yading@10 11961 .IX Item "g"
yading@10 11962 set green component expression
yading@10 11963 .IP "\fBb\fR" 4
yading@10 11964 .IX Item "b"
yading@10 11965 set blue component expression
yading@10 11966 .IP "\fBa\fR" 4
yading@10 11967 .IX Item "a"
yading@10 11968 alpha component expression
yading@10 11969 .IP "\fBy\fR" 4
yading@10 11970 .IX Item "y"
yading@10 11971 set Y/luminance component expression
yading@10 11972 .IP "\fBu\fR" 4
yading@10 11973 .IX Item "u"
yading@10 11974 set U/Cb component expression
yading@10 11975 .IP "\fBv\fR" 4
yading@10 11976 .IX Item "v"
yading@10 11977 set V/Cr component expression
yading@10 11978 .PP
yading@10 11979 Each of them specifies the expression to use for computing the lookup table for
yading@10 11980 the corresponding pixel component values.
yading@10 11981 .PP
yading@10 11982 The exact component associated to each of the \fIc*\fR options depends on the
yading@10 11983 format in input.
yading@10 11984 .PP
yading@10 11985 The \fIlut\fR filter requires either \s-1YUV\s0 or \s-1RGB\s0 pixel formats in input,
yading@10 11986 \&\fIlutrgb\fR requires \s-1RGB\s0 pixel formats in input, and \fIlutyuv\fR requires \s-1YUV\s0.
yading@10 11987 .PP
yading@10 11988 The expressions can contain the following constants and functions:
yading@10 11989 .IP "\fBw, h\fR" 4
yading@10 11990 .IX Item "w, h"
yading@10 11991 the input width and height
yading@10 11992 .IP "\fBval\fR" 4
yading@10 11993 .IX Item "val"
yading@10 11994 input value for the pixel component
yading@10 11995 .IP "\fBclipval\fR" 4
yading@10 11996 .IX Item "clipval"
yading@10 11997 the input value clipped in the \fIminval\fR\-\fImaxval\fR range
yading@10 11998 .IP "\fBmaxval\fR" 4
yading@10 11999 .IX Item "maxval"
yading@10 12000 maximum value for the pixel component
yading@10 12001 .IP "\fBminval\fR" 4
yading@10 12002 .IX Item "minval"
yading@10 12003 minimum value for the pixel component
yading@10 12004 .IP "\fBnegval\fR" 4
yading@10 12005 .IX Item "negval"
yading@10 12006 the negated value for the pixel component value clipped in the
yading@10 12007 \&\fIminval\fR\-\fImaxval\fR range , it corresponds to the expression
yading@10 12008 \&\*(L"maxval\-clipval+minval\*(R"
yading@10 12009 .IP "\fBclip(val)\fR" 4
yading@10 12010 .IX Item "clip(val)"
yading@10 12011 the computed value in \fIval\fR clipped in the
yading@10 12012 \&\fIminval\fR\-\fImaxval\fR range
yading@10 12013 .IP "\fBgammaval(gamma)\fR" 4
yading@10 12014 .IX Item "gammaval(gamma)"
yading@10 12015 the computed gamma correction value of the pixel component value
yading@10 12016 clipped in the \fIminval\fR\-\fImaxval\fR range, corresponds to the
yading@10 12017 expression
yading@10 12018 "pow((clipval\-minval)/(maxval\-minval)\e,\fIgamma\fR)*(maxval\-minval)+minval"
yading@10 12019 .PP
yading@10 12020 All expressions default to \*(L"val\*(R".
yading@10 12021 .PP
yading@10 12022 \fIExamples\fR
yading@10 12023 .IX Subsection "Examples"
yading@10 12024 .IP "\(bu" 4
yading@10 12025 Negate input video:
yading@10 12026 .Sp
yading@10 12027 .Vb 2
yading@10 12028 \& lutrgb="r=maxval+minval\-val:g=maxval+minval\-val:b=maxval+minval\-val"
yading@10 12029 \& lutyuv="y=maxval+minval\-val:u=maxval+minval\-val:v=maxval+minval\-val"
yading@10 12030 .Ve
yading@10 12031 .Sp
yading@10 12032 The above is the same as:
yading@10 12033 .Sp
yading@10 12034 .Vb 2
yading@10 12035 \& lutrgb="r=negval:g=negval:b=negval"
yading@10 12036 \& lutyuv="y=negval:u=negval:v=negval"
yading@10 12037 .Ve
yading@10 12038 .IP "\(bu" 4
yading@10 12039 Negate luminance:
yading@10 12040 .Sp
yading@10 12041 .Vb 1
yading@10 12042 \& lutyuv=y=negval
yading@10 12043 .Ve
yading@10 12044 .IP "\(bu" 4
yading@10 12045 Remove chroma components, turns the video into a graytone image:
yading@10 12046 .Sp
yading@10 12047 .Vb 1
yading@10 12048 \& lutyuv="u=128:v=128"
yading@10 12049 .Ve
yading@10 12050 .IP "\(bu" 4
yading@10 12051 Apply a luma burning effect:
yading@10 12052 .Sp
yading@10 12053 .Vb 1
yading@10 12054 \& lutyuv="y=2*val"
yading@10 12055 .Ve
yading@10 12056 .IP "\(bu" 4
yading@10 12057 Remove green and blue components:
yading@10 12058 .Sp
yading@10 12059 .Vb 1
yading@10 12060 \& lutrgb="g=0:b=0"
yading@10 12061 .Ve
yading@10 12062 .IP "\(bu" 4
yading@10 12063 Set a constant alpha channel value on input:
yading@10 12064 .Sp
yading@10 12065 .Vb 1
yading@10 12066 \& format=rgba,lutrgb=a="maxval\-minval/2"
yading@10 12067 .Ve
yading@10 12068 .IP "\(bu" 4
yading@10 12069 Correct luminance gamma by a 0.5 factor:
yading@10 12070 .Sp
yading@10 12071 .Vb 1
yading@10 12072 \& lutyuv=y=gammaval(0.5)
yading@10 12073 .Ve
yading@10 12074 .IP "\(bu" 4
yading@10 12075 Discard least significant bits of luma:
yading@10 12076 .Sp
yading@10 12077 .Vb 1
yading@10 12078 \& lutyuv=y=\*(Aqbitand(val, 128+64+32)\*(Aq
yading@10 12079 .Ve
yading@10 12080 .SS "mp"
yading@10 12081 .IX Subsection "mp"
yading@10 12082 Apply an MPlayer filter to the input video.
yading@10 12083 .PP
yading@10 12084 This filter provides a wrapper around most of the filters of
yading@10 12085 MPlayer/MEncoder.
yading@10 12086 .PP
yading@10 12087 This wrapper is considered experimental. Some of the wrapped filters
yading@10 12088 may not work properly and we may drop support for them, as they will
yading@10 12089 be implemented natively into FFmpeg. Thus you should avoid
yading@10 12090 depending on them when writing portable scripts.
yading@10 12091 .PP
yading@10 12092 The filters accepts the parameters:
yading@10 12093 \&\fIfilter_name\fR[:=]\fIfilter_params\fR
yading@10 12094 .PP
yading@10 12095 \&\fIfilter_name\fR is the name of a supported MPlayer filter,
yading@10 12096 \&\fIfilter_params\fR is a string containing the parameters accepted by
yading@10 12097 the named filter.
yading@10 12098 .PP
yading@10 12099 The list of the currently supported filters follows:
yading@10 12100 .IP "\fIdint\fR" 4
yading@10 12101 .IX Item "dint"
yading@10 12102 .PD 0
yading@10 12103 .IP "\fIdown3dright\fR" 4
yading@10 12104 .IX Item "down3dright"
yading@10 12105 .IP "\fIeq2\fR" 4
yading@10 12106 .IX Item "eq2"
yading@10 12107 .IP "\fIeq\fR" 4
yading@10 12108 .IX Item "eq"
yading@10 12109 .IP "\fIfil\fR" 4
yading@10 12110 .IX Item "fil"
yading@10 12111 .IP "\fIfspp\fR" 4
yading@10 12112 .IX Item "fspp"
yading@10 12113 .IP "\fIilpack\fR" 4
yading@10 12114 .IX Item "ilpack"
yading@10 12115 .IP "\fImcdeint\fR" 4
yading@10 12116 .IX Item "mcdeint"
yading@10 12117 .IP "\fIow\fR" 4
yading@10 12118 .IX Item "ow"
yading@10 12119 .IP "\fIperspective\fR" 4
yading@10 12120 .IX Item "perspective"
yading@10 12121 .IP "\fIphase\fR" 4
yading@10 12122 .IX Item "phase"
yading@10 12123 .IP "\fIpp7\fR" 4
yading@10 12124 .IX Item "pp7"
yading@10 12125 .IP "\fIpullup\fR" 4
yading@10 12126 .IX Item "pullup"
yading@10 12127 .IP "\fIqp\fR" 4
yading@10 12128 .IX Item "qp"
yading@10 12129 .IP "\fIsab\fR" 4
yading@10 12130 .IX Item "sab"
yading@10 12131 .IP "\fIsoftpulldown\fR" 4
yading@10 12132 .IX Item "softpulldown"
yading@10 12133 .IP "\fIspp\fR" 4
yading@10 12134 .IX Item "spp"
yading@10 12135 .IP "\fItinterlace\fR" 4
yading@10 12136 .IX Item "tinterlace"
yading@10 12137 .IP "\fIuspp\fR" 4
yading@10 12138 .IX Item "uspp"
yading@10 12139 .PD
yading@10 12140 .PP
yading@10 12141 The parameter syntax and behavior for the listed filters are the same
yading@10 12142 of the corresponding MPlayer filters. For detailed instructions check
yading@10 12143 the \*(L"\s-1VIDEO\s0 \s-1FILTERS\s0\*(R" section in the MPlayer manual.
yading@10 12144 .PP
yading@10 12145 \fIExamples\fR
yading@10 12146 .IX Subsection "Examples"
yading@10 12147 .IP "\(bu" 4
yading@10 12148 Adjust gamma, brightness, contrast:
yading@10 12149 .Sp
yading@10 12150 .Vb 1
yading@10 12151 \& mp=eq2=1.0:2:0.5
yading@10 12152 .Ve
yading@10 12153 .PP
yading@10 12154 See also \fImplayer\fR\|(1), <\fBhttp://www.mplayerhq.hu/\fR>.
yading@10 12155 .SS "mpdecimate"
yading@10 12156 .IX Subsection "mpdecimate"
yading@10 12157 Drop frames that do not differ greatly from the previous frame in
yading@10 12158 order to reduce frame rate.
yading@10 12159 .PP
yading@10 12160 The main use of this filter is for very-low-bitrate encoding
yading@10 12161 (e.g. streaming over dialup modem), but it could in theory be used for
yading@10 12162 fixing movies that were inverse-telecined incorrectly.
yading@10 12163 .PP
yading@10 12164 A description of the accepted options follows.
yading@10 12165 .IP "\fBmax\fR" 4
yading@10 12166 .IX Item "max"
yading@10 12167 Set the maximum number of consecutive frames which can be dropped (if
yading@10 12168 positive), or the minimum interval between dropped frames (if
yading@10 12169 negative). If the value is 0, the frame is dropped unregarding the
yading@10 12170 number of previous sequentially dropped frames.
yading@10 12171 .Sp
yading@10 12172 Default value is 0.
yading@10 12173 .IP "\fBhi\fR" 4
yading@10 12174 .IX Item "hi"
yading@10 12175 .PD 0
yading@10 12176 .IP "\fBlo\fR" 4
yading@10 12177 .IX Item "lo"
yading@10 12178 .IP "\fBfrac\fR" 4
yading@10 12179 .IX Item "frac"
yading@10 12180 .PD
yading@10 12181 Set the dropping threshold values.
yading@10 12182 .Sp
yading@10 12183 Values for \fBhi\fR and \fBlo\fR are for 8x8 pixel blocks and
yading@10 12184 represent actual pixel value differences, so a threshold of 64
yading@10 12185 corresponds to 1 unit of difference for each pixel, or the same spread
yading@10 12186 out differently over the block.
yading@10 12187 .Sp
yading@10 12188 A frame is a candidate for dropping if no 8x8 blocks differ by more
yading@10 12189 than a threshold of \fBhi\fR, and if no more than \fBfrac\fR blocks (1
yading@10 12190 meaning the whole image) differ by more than a threshold of \fBlo\fR.
yading@10 12191 .Sp
yading@10 12192 Default value for \fBhi\fR is 64*12, default value for \fBlo\fR is
yading@10 12193 64*5, and default value for \fBfrac\fR is 0.33.
yading@10 12194 .SS "negate"
yading@10 12195 .IX Subsection "negate"
yading@10 12196 Negate input video.
yading@10 12197 .PP
yading@10 12198 This filter accepts an integer in input, if non-zero it negates the
yading@10 12199 alpha component (if available). The default value in input is 0.
yading@10 12200 .SS "noformat"
yading@10 12201 .IX Subsection "noformat"
yading@10 12202 Force libavfilter not to use any of the specified pixel formats for the
yading@10 12203 input to the next filter.
yading@10 12204 .PP
yading@10 12205 This filter accepts the following parameters:
yading@10 12206 .IP "\fBpix_fmts\fR" 4
yading@10 12207 .IX Item "pix_fmts"
yading@10 12208 A '|'\-separated list of pixel format names, for example
yading@10 12209 \&\*(L"pix_fmts=yuv420p|monow|rgb24\*(R".
yading@10 12210 .PP
yading@10 12211 \fIExamples\fR
yading@10 12212 .IX Subsection "Examples"
yading@10 12213 .IP "\(bu" 4
yading@10 12214 Force libavfilter to use a format different from \fIyuv420p\fR for the
yading@10 12215 input to the vflip filter:
yading@10 12216 .Sp
yading@10 12217 .Vb 1
yading@10 12218 \& noformat=pix_fmts=yuv420p,vflip
yading@10 12219 .Ve
yading@10 12220 .IP "\(bu" 4
yading@10 12221 Convert the input video to any of the formats not contained in the list:
yading@10 12222 .Sp
yading@10 12223 .Vb 1
yading@10 12224 \& noformat=yuv420p|yuv444p|yuv410p
yading@10 12225 .Ve
yading@10 12226 .SS "noise"
yading@10 12227 .IX Subsection "noise"
yading@10 12228 Add noise on video input frame.
yading@10 12229 .PP
yading@10 12230 The filter accepts the following options:
yading@10 12231 .IP "\fBall_seed\fR" 4
yading@10 12232 .IX Item "all_seed"
yading@10 12233 .PD 0
yading@10 12234 .IP "\fBc0_seed\fR" 4
yading@10 12235 .IX Item "c0_seed"
yading@10 12236 .IP "\fBc1_seed\fR" 4
yading@10 12237 .IX Item "c1_seed"
yading@10 12238 .IP "\fBc2_seed\fR" 4
yading@10 12239 .IX Item "c2_seed"
yading@10 12240 .IP "\fBc3_seed\fR" 4
yading@10 12241 .IX Item "c3_seed"
yading@10 12242 .PD
yading@10 12243 Set noise seed for specific pixel component or all pixel components in case
yading@10 12244 of \fIall_seed\fR. Default value is \f(CW123457\fR.
yading@10 12245 .IP "\fBall_strength, alls\fR" 4
yading@10 12246 .IX Item "all_strength, alls"
yading@10 12247 .PD 0
yading@10 12248 .IP "\fBc0_strength, c0s\fR" 4
yading@10 12249 .IX Item "c0_strength, c0s"
yading@10 12250 .IP "\fBc1_strength, c1s\fR" 4
yading@10 12251 .IX Item "c1_strength, c1s"
yading@10 12252 .IP "\fBc2_strength, c2s\fR" 4
yading@10 12253 .IX Item "c2_strength, c2s"
yading@10 12254 .IP "\fBc3_strength, c3s\fR" 4
yading@10 12255 .IX Item "c3_strength, c3s"
yading@10 12256 .PD
yading@10 12257 Set noise strength for specific pixel component or all pixel components in case
yading@10 12258 \&\fIall_strength\fR. Default value is \f(CW0\fR. Allowed range is [0, 100].
yading@10 12259 .IP "\fBall_flags, allf\fR" 4
yading@10 12260 .IX Item "all_flags, allf"
yading@10 12261 .PD 0
yading@10 12262 .IP "\fBc0_flags, c0f\fR" 4
yading@10 12263 .IX Item "c0_flags, c0f"
yading@10 12264 .IP "\fBc1_flags, c1f\fR" 4
yading@10 12265 .IX Item "c1_flags, c1f"
yading@10 12266 .IP "\fBc2_flags, c2f\fR" 4
yading@10 12267 .IX Item "c2_flags, c2f"
yading@10 12268 .IP "\fBc3_flags, c3f\fR" 4
yading@10 12269 .IX Item "c3_flags, c3f"
yading@10 12270 .PD
yading@10 12271 Set pixel component flags or set flags for all components if \fIall_flags\fR.
yading@10 12272 Available values for component flags are:
yading@10 12273 .RS 4
yading@10 12274 .IP "\fBa\fR" 4
yading@10 12275 .IX Item "a"
yading@10 12276 averaged temporal noise (smoother)
yading@10 12277 .IP "\fBp\fR" 4
yading@10 12278 .IX Item "p"
yading@10 12279 mix random noise with a (semi)regular pattern
yading@10 12280 .IP "\fBq\fR" 4
yading@10 12281 .IX Item "q"
yading@10 12282 higher quality (slightly better looking, slightly slower)
yading@10 12283 .IP "\fBt\fR" 4
yading@10 12284 .IX Item "t"
yading@10 12285 temporal noise (noise pattern changes between frames)
yading@10 12286 .IP "\fBu\fR" 4
yading@10 12287 .IX Item "u"
yading@10 12288 uniform noise (gaussian otherwise)
yading@10 12289 .RE
yading@10 12290 .RS 4
yading@10 12291 .RE
yading@10 12292 .PP
yading@10 12293 \fIExamples\fR
yading@10 12294 .IX Subsection "Examples"
yading@10 12295 .PP
yading@10 12296 Add temporal and uniform noise to input video:
yading@10 12297 .PP
yading@10 12298 .Vb 1
yading@10 12299 \& noise=alls=20:allf=t+u
yading@10 12300 .Ve
yading@10 12301 .SS "null"
yading@10 12302 .IX Subsection "null"
yading@10 12303 Pass the video source unchanged to the output.
yading@10 12304 .SS "ocv"
yading@10 12305 .IX Subsection "ocv"
yading@10 12306 Apply video transform using libopencv.
yading@10 12307 .PP
yading@10 12308 To enable this filter install libopencv library and headers and
yading@10 12309 configure FFmpeg with \f(CW\*(C`\-\-enable\-libopencv\*(C'\fR.
yading@10 12310 .PP
yading@10 12311 This filter accepts the following parameters:
yading@10 12312 .IP "\fBfilter_name\fR" 4
yading@10 12313 .IX Item "filter_name"
yading@10 12314 The name of the libopencv filter to apply.
yading@10 12315 .IP "\fBfilter_params\fR" 4
yading@10 12316 .IX Item "filter_params"
yading@10 12317 The parameters to pass to the libopencv filter. If not specified the default
yading@10 12318 values are assumed.
yading@10 12319 .PP
yading@10 12320 Refer to the official libopencv documentation for more precise
yading@10 12321 information:
yading@10 12322 <\fBhttp://opencv.willowgarage.com/documentation/c/image_filtering.html\fR>
yading@10 12323 .PP
yading@10 12324 Follows the list of supported libopencv filters.
yading@10 12325 .PP
yading@10 12326 \fIdilate\fR
yading@10 12327 .IX Subsection "dilate"
yading@10 12328 .PP
yading@10 12329 Dilate an image by using a specific structuring element.
yading@10 12330 This filter corresponds to the libopencv function \f(CW\*(C`cvDilate\*(C'\fR.
yading@10 12331 .PP
yading@10 12332 It accepts the parameters: \fIstruct_el\fR|\fInb_iterations\fR.
yading@10 12333 .PP
yading@10 12334 \&\fIstruct_el\fR represents a structuring element, and has the syntax:
yading@10 12335 \&\fIcols\fRx\fIrows\fR+\fIanchor_x\fRx\fIanchor_y\fR/\fIshape\fR
yading@10 12336 .PP
yading@10 12337 \&\fIcols\fR and \fIrows\fR represent the number of columns and rows of
yading@10 12338 the structuring element, \fIanchor_x\fR and \fIanchor_y\fR the anchor
yading@10 12339 point, and \fIshape\fR the shape for the structuring element, and
yading@10 12340 can be one of the values \*(L"rect\*(R", \*(L"cross\*(R", \*(L"ellipse\*(R", \*(L"custom\*(R".
yading@10 12341 .PP
yading@10 12342 If the value for \fIshape\fR is \*(L"custom\*(R", it must be followed by a
yading@10 12343 string of the form "=\fIfilename\fR". The file with name
yading@10 12344 \&\fIfilename\fR is assumed to represent a binary image, with each
yading@10 12345 printable character corresponding to a bright pixel. When a custom
yading@10 12346 \&\fIshape\fR is used, \fIcols\fR and \fIrows\fR are ignored, the number
yading@10 12347 or columns and rows of the read file are assumed instead.
yading@10 12348 .PP
yading@10 12349 The default value for \fIstruct_el\fR is \*(L"3x3+0x0/rect\*(R".
yading@10 12350 .PP
yading@10 12351 \&\fInb_iterations\fR specifies the number of times the transform is
yading@10 12352 applied to the image, and defaults to 1.
yading@10 12353 .PP
yading@10 12354 Follow some example:
yading@10 12355 .PP
yading@10 12356 .Vb 2
yading@10 12357 \& # use the default values
yading@10 12358 \& ocv=dilate
yading@10 12359 \&
yading@10 12360 \& # dilate using a structuring element with a 5x5 cross, iterate two times
yading@10 12361 \& ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2
yading@10 12362 \&
yading@10 12363 \& # read the shape from the file diamond.shape, iterate two times
yading@10 12364 \& # the file diamond.shape may contain a pattern of characters like this:
yading@10 12365 \& # *
yading@10 12366 \& # ***
yading@10 12367 \& # *****
yading@10 12368 \& # ***
yading@10 12369 \& # *
yading@10 12370 \& # the specified cols and rows are ignored (but not the anchor point coordinates)
yading@10 12371 \& ocv=dilate:0x0+2x2/custom=diamond.shape|2
yading@10 12372 .Ve
yading@10 12373 .PP
yading@10 12374 \fIerode\fR
yading@10 12375 .IX Subsection "erode"
yading@10 12376 .PP
yading@10 12377 Erode an image by using a specific structuring element.
yading@10 12378 This filter corresponds to the libopencv function \f(CW\*(C`cvErode\*(C'\fR.
yading@10 12379 .PP
yading@10 12380 The filter accepts the parameters: \fIstruct_el\fR:\fInb_iterations\fR,
yading@10 12381 with the same syntax and semantics as the dilate filter.
yading@10 12382 .PP
yading@10 12383 \fIsmooth\fR
yading@10 12384 .IX Subsection "smooth"
yading@10 12385 .PP
yading@10 12386 Smooth the input video.
yading@10 12387 .PP
yading@10 12388 The filter takes the following parameters:
yading@10 12389 \&\fItype\fR|\fIparam1\fR|\fIparam2\fR|\fIparam3\fR|\fIparam4\fR.
yading@10 12390 .PP
yading@10 12391 \&\fItype\fR is the type of smooth filter to apply, and can be one of
yading@10 12392 the following values: \*(L"blur\*(R", \*(L"blur_no_scale\*(R", \*(L"median\*(R", \*(L"gaussian\*(R",
yading@10 12393 \&\*(L"bilateral\*(R". The default value is \*(L"gaussian\*(R".
yading@10 12394 .PP
yading@10 12395 \&\fIparam1\fR, \fIparam2\fR, \fIparam3\fR, and \fIparam4\fR are
yading@10 12396 parameters whose meanings depend on smooth type. \fIparam1\fR and
yading@10 12397 \&\fIparam2\fR accept integer positive values or 0, \fIparam3\fR and
yading@10 12398 \&\fIparam4\fR accept float values.
yading@10 12399 .PP
yading@10 12400 The default value for \fIparam1\fR is 3, the default value for the
yading@10 12401 other parameters is 0.
yading@10 12402 .PP
yading@10 12403 These parameters correspond to the parameters assigned to the
yading@10 12404 libopencv function \f(CW\*(C`cvSmooth\*(C'\fR.
yading@10 12405 .SS "overlay"
yading@10 12406 .IX Subsection "overlay"
yading@10 12407 Overlay one video on top of another.
yading@10 12408 .PP
yading@10 12409 It takes two inputs and one output, the first input is the \*(L"main\*(R"
yading@10 12410 video on which the second input is overlayed.
yading@10 12411 .PP
yading@10 12412 This filter accepts the following parameters:
yading@10 12413 .PP
yading@10 12414 A description of the accepted options follows.
yading@10 12415 .IP "\fBx\fR" 4
yading@10 12416 .IX Item "x"
yading@10 12417 .PD 0
yading@10 12418 .IP "\fBy\fR" 4
yading@10 12419 .IX Item "y"
yading@10 12420 .PD
yading@10 12421 Set the expression for the x and y coordinates of the overlayed video
yading@10 12422 on the main video. Default value is \*(L"0\*(R" for both expressions. In case
yading@10 12423 the expression is invalid, it is set to a huge value (meaning that the
yading@10 12424 overlay will not be displayed within the output visible area).
yading@10 12425 .IP "\fBenable\fR" 4
yading@10 12426 .IX Item "enable"
yading@10 12427 Set the expression which enables the overlay. If the evaluation is
yading@10 12428 different from 0, the overlay is displayed on top of the input
yading@10 12429 frame. By default it is \*(L"1\*(R".
yading@10 12430 .IP "\fBeval\fR" 4
yading@10 12431 .IX Item "eval"
yading@10 12432 Set when the expressions for \fBx\fR, \fBy\fR, and
yading@10 12433 \&\fBenable\fR are evaluated.
yading@10 12434 .Sp
yading@10 12435 It accepts the following values:
yading@10 12436 .RS 4
yading@10 12437 .IP "\fBinit\fR" 4
yading@10 12438 .IX Item "init"
yading@10 12439 only evaluate expressions once during the filter initialization or
yading@10 12440 when a command is processed
yading@10 12441 .IP "\fBframe\fR" 4
yading@10 12442 .IX Item "frame"
yading@10 12443 evaluate expressions for each incoming frame
yading@10 12444 .RE
yading@10 12445 .RS 4
yading@10 12446 .Sp
yading@10 12447 Default value is \fBframe\fR.
yading@10 12448 .RE
yading@10 12449 .IP "\fBshortest\fR" 4
yading@10 12450 .IX Item "shortest"
yading@10 12451 If set to 1, force the output to terminate when the shortest input
yading@10 12452 terminates. Default value is 0.
yading@10 12453 .IP "\fBformat\fR" 4
yading@10 12454 .IX Item "format"
yading@10 12455 Set the format for the output video.
yading@10 12456 .Sp
yading@10 12457 It accepts the following values:
yading@10 12458 .RS 4
yading@10 12459 .IP "\fByuv420\fR" 4
yading@10 12460 .IX Item "yuv420"
yading@10 12461 force \s-1YUV420\s0 output
yading@10 12462 .IP "\fByuv444\fR" 4
yading@10 12463 .IX Item "yuv444"
yading@10 12464 force \s-1YUV444\s0 output
yading@10 12465 .IP "\fBrgb\fR" 4
yading@10 12466 .IX Item "rgb"
yading@10 12467 force \s-1RGB\s0 output
yading@10 12468 .RE
yading@10 12469 .RS 4
yading@10 12470 .Sp
yading@10 12471 Default value is \fByuv420\fR.
yading@10 12472 .RE
yading@10 12473 .IP "\fBrgb\fR \fI(deprecated)\fR" 4
yading@10 12474 .IX Item "rgb (deprecated)"
yading@10 12475 If set to 1, force the filter to accept inputs in the \s-1RGB\s0
yading@10 12476 color space. Default value is 0. This option is deprecated, use
yading@10 12477 \&\fBformat\fR instead.
yading@10 12478 .IP "\fBrepeatlast\fR" 4
yading@10 12479 .IX Item "repeatlast"
yading@10 12480 If set to 1, force the filter to draw the last overlay frame over the
yading@10 12481 main input until the end of the stream. A value of 0 disables this
yading@10 12482 behavior, which is enabled by default.
yading@10 12483 .PP
yading@10 12484 The \fBx\fR, \fBy\fR, and \fBenable\fR expressions can
yading@10 12485 contain the following parameters.
yading@10 12486 .IP "\fBmain_w, W\fR" 4
yading@10 12487 .IX Item "main_w, W"
yading@10 12488 .PD 0
yading@10 12489 .IP "\fBmain_h, H\fR" 4
yading@10 12490 .IX Item "main_h, H"
yading@10 12491 .PD
yading@10 12492 main input width and height
yading@10 12493 .IP "\fBoverlay_w, w\fR" 4
yading@10 12494 .IX Item "overlay_w, w"
yading@10 12495 .PD 0
yading@10 12496 .IP "\fBoverlay_h, h\fR" 4
yading@10 12497 .IX Item "overlay_h, h"
yading@10 12498 .PD
yading@10 12499 overlay input width and height
yading@10 12500 .IP "\fBx\fR" 4
yading@10 12501 .IX Item "x"
yading@10 12502 .PD 0
yading@10 12503 .IP "\fBy\fR" 4
yading@10 12504 .IX Item "y"
yading@10 12505 .PD
yading@10 12506 the computed values for \fIx\fR and \fIy\fR. They are evaluated for
yading@10 12507 each new frame.
yading@10 12508 .IP "\fBhsub\fR" 4
yading@10 12509 .IX Item "hsub"
yading@10 12510 .PD 0
yading@10 12511 .IP "\fBvsub\fR" 4
yading@10 12512 .IX Item "vsub"
yading@10 12513 .PD
yading@10 12514 horizontal and vertical chroma subsample values of the output
yading@10 12515 format. For example for the pixel format \*(L"yuv422p\*(R" \fIhsub\fR is 2 and
yading@10 12516 \&\fIvsub\fR is 1.
yading@10 12517 .IP "\fBn\fR" 4
yading@10 12518 .IX Item "n"
yading@10 12519 the number of input frame, starting from 0
yading@10 12520 .IP "\fBpos\fR" 4
yading@10 12521 .IX Item "pos"
yading@10 12522 the position in the file of the input frame, \s-1NAN\s0 if unknown
yading@10 12523 .IP "\fBt\fR" 4
yading@10 12524 .IX Item "t"
yading@10 12525 timestamp expressed in seconds, \s-1NAN\s0 if the input timestamp is unknown
yading@10 12526 .PP
yading@10 12527 Note that the \fIn\fR, \fIpos\fR, \fIt\fR variables are available only
yading@10 12528 when evaluation is done \fIper frame\fR, and will evaluate to \s-1NAN\s0
yading@10 12529 when \fBeval\fR is set to \fBinit\fR.
yading@10 12530 .PP
yading@10 12531 Be aware that frames are taken from each input video in timestamp
yading@10 12532 order, hence, if their initial timestamps differ, it is a a good idea
yading@10 12533 to pass the two inputs through a \fIsetpts=PTS\-STARTPTS\fR filter to
yading@10 12534 have them begin in the same zero timestamp, as it does the example for
yading@10 12535 the \fImovie\fR filter.
yading@10 12536 .PP
yading@10 12537 You can chain together more overlays but you should test the
yading@10 12538 efficiency of such approach.
yading@10 12539 .PP
yading@10 12540 \fICommands\fR
yading@10 12541 .IX Subsection "Commands"
yading@10 12542 .PP
yading@10 12543 This filter supports the following commands:
yading@10 12544 .IP "\fBx\fR" 4
yading@10 12545 .IX Item "x"
yading@10 12546 .PD 0
yading@10 12547 .IP "\fBy\fR" 4
yading@10 12548 .IX Item "y"
yading@10 12549 .IP "\fBenable\fR" 4
yading@10 12550 .IX Item "enable"
yading@10 12551 .PD
yading@10 12552 Modify the x/y and enable overlay of the overlay input.
yading@10 12553 The command accepts the same syntax of the corresponding option.
yading@10 12554 .Sp
yading@10 12555 If the specified expression is not valid, it is kept at its current
yading@10 12556 value.
yading@10 12557 .PP
yading@10 12558 \fIExamples\fR
yading@10 12559 .IX Subsection "Examples"
yading@10 12560 .IP "\(bu" 4
yading@10 12561 Draw the overlay at 10 pixels from the bottom right corner of the main
yading@10 12562 video:
yading@10 12563 .Sp
yading@10 12564 .Vb 1
yading@10 12565 \& overlay=main_w\-overlay_w\-10:main_h\-overlay_h\-10
yading@10 12566 .Ve
yading@10 12567 .Sp
yading@10 12568 Using named options the example above becomes:
yading@10 12569 .Sp
yading@10 12570 .Vb 1
yading@10 12571 \& overlay=x=main_w\-overlay_w\-10:y=main_h\-overlay_h\-10
yading@10 12572 .Ve
yading@10 12573 .IP "\(bu" 4
yading@10 12574 Insert a transparent \s-1PNG\s0 logo in the bottom left corner of the input,
yading@10 12575 using the \fBffmpeg\fR tool with the \f(CW\*(C`\-filter_complex\*(C'\fR option:
yading@10 12576 .Sp
yading@10 12577 .Vb 1
yading@10 12578 \& ffmpeg \-i input \-i logo \-filter_complex \*(Aqoverlay=10:main_h\-overlay_h\-10\*(Aq output
yading@10 12579 .Ve
yading@10 12580 .IP "\(bu" 4
yading@10 12581 Insert 2 different transparent \s-1PNG\s0 logos (second logo on bottom
yading@10 12582 right corner) using the \fBffmpeg\fR tool:
yading@10 12583 .Sp
yading@10 12584 .Vb 1
yading@10 12585 \& ffmpeg \-i input \-i logo1 \-i logo2 \-filter_complex \*(Aqoverlay=x=10:y=H\-h\-10,overlay=x=W\-w\-10:y=H\-h\-10\*(Aq output
yading@10 12586 .Ve
yading@10 12587 .IP "\(bu" 4
yading@10 12588 Add a transparent color layer on top of the main video, \f(CW\*(C`WxH\*(C'\fR
yading@10 12589 must specify the size of the main input to the overlay filter:
yading@10 12590 .Sp
yading@10 12591 .Vb 1
yading@10 12592 \& color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
yading@10 12593 .Ve
yading@10 12594 .IP "\(bu" 4
yading@10 12595 Play an original video and a filtered version (here with the deshake
yading@10 12596 filter) side by side using the \fBffplay\fR tool:
yading@10 12597 .Sp
yading@10 12598 .Vb 1
yading@10 12599 \& ffplay input.avi \-vf \*(Aqsplit[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w\*(Aq
yading@10 12600 .Ve
yading@10 12601 .Sp
yading@10 12602 The above command is the same as:
yading@10 12603 .Sp
yading@10 12604 .Vb 1
yading@10 12605 \& ffplay input.avi \-vf \*(Aqsplit[b], pad=iw*2[src], [b]deshake, [src]overlay=w\*(Aq
yading@10 12606 .Ve
yading@10 12607 .IP "\(bu" 4
yading@10 12608 Make a sliding overlay appearing from the left to the right top part of the
yading@10 12609 screen starting since time 2:
yading@10 12610 .Sp
yading@10 12611 .Vb 1
yading@10 12612 \& overlay=x=\*(Aqif(gte(t,2), \-w+(t\-2)*20, NAN)\*(Aq:y=0
yading@10 12613 .Ve
yading@10 12614 .IP "\(bu" 4
yading@10 12615 Compose output by putting two input videos side to side:
yading@10 12616 .Sp
yading@10 12617 .Vb 7
yading@10 12618 \& ffmpeg \-i left.avi \-i right.avi \-filter_complex "
yading@10 12619 \& nullsrc=size=200x100 [background];
yading@10 12620 \& [0:v] setpts=PTS\-STARTPTS, scale=100x100 [left];
yading@10 12621 \& [1:v] setpts=PTS\-STARTPTS, scale=100x100 [right];
yading@10 12622 \& [background][left] overlay=shortest=1 [background+left];
yading@10 12623 \& [background+left][right] overlay=shortest=1:x=100 [left+right]
yading@10 12624 \& "
yading@10 12625 .Ve
yading@10 12626 .IP "\(bu" 4
yading@10 12627 Chain several overlays in cascade:
yading@10 12628 .Sp
yading@10 12629 .Vb 6
yading@10 12630 \& nullsrc=s=200x200 [bg];
yading@10 12631 \& testsrc=s=100x100, split=4 [in0][in1][in2][in3];
yading@10 12632 \& [in0] lutrgb=r=0, [bg] overlay=0:0 [mid0];
yading@10 12633 \& [in1] lutrgb=g=0, [mid0] overlay=100:0 [mid1];
yading@10 12634 \& [in2] lutrgb=b=0, [mid1] overlay=0:100 [mid2];
yading@10 12635 \& [in3] null, [mid2] overlay=100:100 [out0]
yading@10 12636 .Ve
yading@10 12637 .SS "pad"
yading@10 12638 .IX Subsection "pad"
yading@10 12639 Add paddings to the input image, and place the original input at the
yading@10 12640 given coordinates \fIx\fR, \fIy\fR.
yading@10 12641 .PP
yading@10 12642 This filter accepts the following parameters:
yading@10 12643 .IP "\fBwidth, w\fR" 4
yading@10 12644 .IX Item "width, w"
yading@10 12645 .PD 0
yading@10 12646 .IP "\fBheight, h\fR" 4
yading@10 12647 .IX Item "height, h"
yading@10 12648 .PD
yading@10 12649 Specify an expression for the size of the output image with the
yading@10 12650 paddings added. If the value for \fIwidth\fR or \fIheight\fR is 0, the
yading@10 12651 corresponding input size is used for the output.
yading@10 12652 .Sp
yading@10 12653 The \fIwidth\fR expression can reference the value set by the
yading@10 12654 \&\fIheight\fR expression, and vice versa.
yading@10 12655 .Sp
yading@10 12656 The default value of \fIwidth\fR and \fIheight\fR is 0.
yading@10 12657 .IP "\fBx\fR" 4
yading@10 12658 .IX Item "x"
yading@10 12659 .PD 0
yading@10 12660 .IP "\fBy\fR" 4
yading@10 12661 .IX Item "y"
yading@10 12662 .PD
yading@10 12663 Specify an expression for the offsets where to place the input image
yading@10 12664 in the padded area with respect to the top/left border of the output
yading@10 12665 image.
yading@10 12666 .Sp
yading@10 12667 The \fIx\fR expression can reference the value set by the \fIy\fR
yading@10 12668 expression, and vice versa.
yading@10 12669 .Sp
yading@10 12670 The default value of \fIx\fR and \fIy\fR is 0.
yading@10 12671 .IP "\fBcolor\fR" 4
yading@10 12672 .IX Item "color"
yading@10 12673 Specify the color of the padded area, it can be the name of a color
yading@10 12674 (case insensitive match) or a 0xRRGGBB[\s-1AA\s0] sequence.
yading@10 12675 .Sp
yading@10 12676 The default value of \fIcolor\fR is \*(L"black\*(R".
yading@10 12677 .PP
yading@10 12678 The value for the \fIwidth\fR, \fIheight\fR, \fIx\fR, and \fIy\fR
yading@10 12679 options are expressions containing the following constants:
yading@10 12680 .IP "\fBin_w, in_h\fR" 4
yading@10 12681 .IX Item "in_w, in_h"
yading@10 12682 the input video width and height
yading@10 12683 .IP "\fBiw, ih\fR" 4
yading@10 12684 .IX Item "iw, ih"
yading@10 12685 same as \fIin_w\fR and \fIin_h\fR
yading@10 12686 .IP "\fBout_w, out_h\fR" 4
yading@10 12687 .IX Item "out_w, out_h"
yading@10 12688 the output width and height, that is the size of the padded area as
yading@10 12689 specified by the \fIwidth\fR and \fIheight\fR expressions
yading@10 12690 .IP "\fBow, oh\fR" 4
yading@10 12691 .IX Item "ow, oh"
yading@10 12692 same as \fIout_w\fR and \fIout_h\fR
yading@10 12693 .IP "\fBx, y\fR" 4
yading@10 12694 .IX Item "x, y"
yading@10 12695 x and y offsets as specified by the \fIx\fR and \fIy\fR
yading@10 12696 expressions, or \s-1NAN\s0 if not yet specified
yading@10 12697 .IP "\fBa\fR" 4
yading@10 12698 .IX Item "a"
yading@10 12699 same as \fIiw\fR / \fIih\fR
yading@10 12700 .IP "\fBsar\fR" 4
yading@10 12701 .IX Item "sar"
yading@10 12702 input sample aspect ratio
yading@10 12703 .IP "\fBdar\fR" 4
yading@10 12704 .IX Item "dar"
yading@10 12705 input display aspect ratio, it is the same as (\fIiw\fR / \fIih\fR) * \fIsar\fR
yading@10 12706 .IP "\fBhsub, vsub\fR" 4
yading@10 12707 .IX Item "hsub, vsub"
yading@10 12708 horizontal and vertical chroma subsample values. For example for the
yading@10 12709 pixel format \*(L"yuv422p\*(R" \fIhsub\fR is 2 and \fIvsub\fR is 1.
yading@10 12710 .PP
yading@10 12711 \fIExamples\fR
yading@10 12712 .IX Subsection "Examples"
yading@10 12713 .IP "\(bu" 4
yading@10 12714 Add paddings with color \*(L"violet\*(R" to the input video. Output video
yading@10 12715 size is 640x480, the top-left corner of the input video is placed at
yading@10 12716 column 0, row 40:
yading@10 12717 .Sp
yading@10 12718 .Vb 1
yading@10 12719 \& pad=640:480:0:40:violet
yading@10 12720 .Ve
yading@10 12721 .Sp
yading@10 12722 The example above is equivalent to the following command:
yading@10 12723 .Sp
yading@10 12724 .Vb 1
yading@10 12725 \& pad=width=640:height=480:x=0:y=40:color=violet
yading@10 12726 .Ve
yading@10 12727 .IP "\(bu" 4
yading@10 12728 Pad the input to get an output with dimensions increased by 3/2,
yading@10 12729 and put the input video at the center of the padded area:
yading@10 12730 .Sp
yading@10 12731 .Vb 1
yading@10 12732 \& pad="3/2*iw:3/2*ih:(ow\-iw)/2:(oh\-ih)/2"
yading@10 12733 .Ve
yading@10 12734 .IP "\(bu" 4
yading@10 12735 Pad the input to get a squared output with size equal to the maximum
yading@10 12736 value between the input width and height, and put the input video at
yading@10 12737 the center of the padded area:
yading@10 12738 .Sp
yading@10 12739 .Vb 1
yading@10 12740 \& pad="max(iw\e,ih):ow:(ow\-iw)/2:(oh\-ih)/2"
yading@10 12741 .Ve
yading@10 12742 .IP "\(bu" 4
yading@10 12743 Pad the input to get a final w/h ratio of 16:9:
yading@10 12744 .Sp
yading@10 12745 .Vb 1
yading@10 12746 \& pad="ih*16/9:ih:(ow\-iw)/2:(oh\-ih)/2"
yading@10 12747 .Ve
yading@10 12748 .IP "\(bu" 4
yading@10 12749 In case of anamorphic video, in order to set the output display aspect
yading@10 12750 correctly, it is necessary to use \fIsar\fR in the expression,
yading@10 12751 according to the relation:
yading@10 12752 .Sp
yading@10 12753 .Vb 2
yading@10 12754 \& (ih * X / ih) * sar = output_dar
yading@10 12755 \& X = output_dar / sar
yading@10 12756 .Ve
yading@10 12757 .Sp
yading@10 12758 Thus the previous example needs to be modified to:
yading@10 12759 .Sp
yading@10 12760 .Vb 1
yading@10 12761 \& pad="ih*16/9/sar:ih:(ow\-iw)/2:(oh\-ih)/2"
yading@10 12762 .Ve
yading@10 12763 .IP "\(bu" 4
yading@10 12764 Double output size and put the input video in the bottom-right
yading@10 12765 corner of the output padded area:
yading@10 12766 .Sp
yading@10 12767 .Vb 1
yading@10 12768 \& pad="2*iw:2*ih:ow\-iw:oh\-ih"
yading@10 12769 .Ve
yading@10 12770 .SS "pixdesctest"
yading@10 12771 .IX Subsection "pixdesctest"
yading@10 12772 Pixel format descriptor test filter, mainly useful for internal
yading@10 12773 testing. The output video should be equal to the input video.
yading@10 12774 .PP
yading@10 12775 For example:
yading@10 12776 .PP
yading@10 12777 .Vb 1
yading@10 12778 \& format=monow, pixdesctest
yading@10 12779 .Ve
yading@10 12780 .PP
yading@10 12781 can be used to test the monowhite pixel format descriptor definition.
yading@10 12782 .SS "pp"
yading@10 12783 .IX Subsection "pp"
yading@10 12784 Enable the specified chain of postprocessing subfilters using libpostproc. This
yading@10 12785 library should be automatically selected with a \s-1GPL\s0 build (\f(CW\*(C`\-\-enable\-gpl\*(C'\fR).
yading@10 12786 Subfilters must be separated by '/' and can be disabled by prepending a '\-'.
yading@10 12787 Each subfilter and some options have a short and a long name that can be used
yading@10 12788 interchangeably, i.e. dr/dering are the same.
yading@10 12789 .PP
yading@10 12790 The filters accept the following options:
yading@10 12791 .IP "\fBsubfilters\fR" 4
yading@10 12792 .IX Item "subfilters"
yading@10 12793 Set postprocessing subfilters string.
yading@10 12794 .PP
yading@10 12795 All subfilters share common options to determine their scope:
yading@10 12796 .IP "\fBa/autoq\fR" 4
yading@10 12797 .IX Item "a/autoq"
yading@10 12798 Honor the quality commands for this subfilter.
yading@10 12799 .IP "\fBc/chrom\fR" 4
yading@10 12800 .IX Item "c/chrom"
yading@10 12801 Do chrominance filtering, too (default).
yading@10 12802 .IP "\fBy/nochrom\fR" 4
yading@10 12803 .IX Item "y/nochrom"
yading@10 12804 Do luminance filtering only (no chrominance).
yading@10 12805 .IP "\fBn/noluma\fR" 4
yading@10 12806 .IX Item "n/noluma"
yading@10 12807 Do chrominance filtering only (no luminance).
yading@10 12808 .PP
yading@10 12809 These options can be appended after the subfilter name, separated by a '|'.
yading@10 12810 .PP
yading@10 12811 Available subfilters are:
yading@10 12812 .IP "\fBhb/hdeblock[|difference[|flatness]]\fR" 4
yading@10 12813 .IX Item "hb/hdeblock[|difference[|flatness]]"
yading@10 12814 Horizontal deblocking filter
yading@10 12815 .RS 4
yading@10 12816 .IP "\fBdifference\fR" 4
yading@10 12817 .IX Item "difference"
yading@10 12818 Difference factor where higher values mean more deblocking (default: \f(CW32\fR).
yading@10 12819 .IP "\fBflatness\fR" 4
yading@10 12820 .IX Item "flatness"
yading@10 12821 Flatness threshold where lower values mean more deblocking (default: \f(CW39\fR).
yading@10 12822 .RE
yading@10 12823 .RS 4
yading@10 12824 .RE
yading@10 12825 .IP "\fBvb/vdeblock[|difference[|flatness]]\fR" 4
yading@10 12826 .IX Item "vb/vdeblock[|difference[|flatness]]"
yading@10 12827 Vertical deblocking filter
yading@10 12828 .RS 4
yading@10 12829 .IP "\fBdifference\fR" 4
yading@10 12830 .IX Item "difference"
yading@10 12831 Difference factor where higher values mean more deblocking (default: \f(CW32\fR).
yading@10 12832 .IP "\fBflatness\fR" 4
yading@10 12833 .IX Item "flatness"
yading@10 12834 Flatness threshold where lower values mean more deblocking (default: \f(CW39\fR).
yading@10 12835 .RE
yading@10 12836 .RS 4
yading@10 12837 .RE
yading@10 12838 .IP "\fBha/hadeblock[|difference[|flatness]]\fR" 4
yading@10 12839 .IX Item "ha/hadeblock[|difference[|flatness]]"
yading@10 12840 Accurate horizontal deblocking filter
yading@10 12841 .RS 4
yading@10 12842 .IP "\fBdifference\fR" 4
yading@10 12843 .IX Item "difference"
yading@10 12844 Difference factor where higher values mean more deblocking (default: \f(CW32\fR).
yading@10 12845 .IP "\fBflatness\fR" 4
yading@10 12846 .IX Item "flatness"
yading@10 12847 Flatness threshold where lower values mean more deblocking (default: \f(CW39\fR).
yading@10 12848 .RE
yading@10 12849 .RS 4
yading@10 12850 .RE
yading@10 12851 .IP "\fBva/vadeblock[|difference[|flatness]]\fR" 4
yading@10 12852 .IX Item "va/vadeblock[|difference[|flatness]]"
yading@10 12853 Accurate vertical deblocking filter
yading@10 12854 .RS 4
yading@10 12855 .IP "\fBdifference\fR" 4
yading@10 12856 .IX Item "difference"
yading@10 12857 Difference factor where higher values mean more deblocking (default: \f(CW32\fR).
yading@10 12858 .IP "\fBflatness\fR" 4
yading@10 12859 .IX Item "flatness"
yading@10 12860 Flatness threshold where lower values mean more deblocking (default: \f(CW39\fR).
yading@10 12861 .RE
yading@10 12862 .RS 4
yading@10 12863 .RE
yading@10 12864 .PP
yading@10 12865 The horizontal and vertical deblocking filters share the difference and
yading@10 12866 flatness values so you cannot set different horizontal and vertical
yading@10 12867 thresholds.
yading@10 12868 .IP "\fBh1/x1hdeblock\fR" 4
yading@10 12869 .IX Item "h1/x1hdeblock"
yading@10 12870 Experimental horizontal deblocking filter
yading@10 12871 .IP "\fBv1/x1vdeblock\fR" 4
yading@10 12872 .IX Item "v1/x1vdeblock"
yading@10 12873 Experimental vertical deblocking filter
yading@10 12874 .IP "\fBdr/dering\fR" 4
yading@10 12875 .IX Item "dr/dering"
yading@10 12876 Deringing filter
yading@10 12877 .IP "\fBtn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise reducer\fR" 4
yading@10 12878 .IX Item "tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise reducer"
yading@10 12879 .RS 4
yading@10 12880 .PD 0
yading@10 12881 .IP "\fBthreshold1\fR" 4
yading@10 12882 .IX Item "threshold1"
yading@10 12883 .PD
yading@10 12884 larger \-> stronger filtering
yading@10 12885 .IP "\fBthreshold2\fR" 4
yading@10 12886 .IX Item "threshold2"
yading@10 12887 larger \-> stronger filtering
yading@10 12888 .IP "\fBthreshold3\fR" 4
yading@10 12889 .IX Item "threshold3"
yading@10 12890 larger \-> stronger filtering
yading@10 12891 .RE
yading@10 12892 .RS 4
yading@10 12893 .RE
yading@10 12894 .IP "\fBal/autolevels[:f/fullyrange], automatic brightness / contrast correction\fR" 4
yading@10 12895 .IX Item "al/autolevels[:f/fullyrange], automatic brightness / contrast correction"
yading@10 12896 .RS 4
yading@10 12897 .PD 0
yading@10 12898 .IP "\fBf/fullyrange\fR" 4
yading@10 12899 .IX Item "f/fullyrange"
yading@10 12900 .PD
yading@10 12901 Stretch luminance to \f(CW\*(C`0\-255\*(C'\fR.
yading@10 12902 .RE
yading@10 12903 .RS 4
yading@10 12904 .RE
yading@10 12905 .IP "\fBlb/linblenddeint\fR" 4
yading@10 12906 .IX Item "lb/linblenddeint"
yading@10 12907 Linear blend deinterlacing filter that deinterlaces the given block by
yading@10 12908 filtering all lines with a \f(CW\*(C`(1 2 1)\*(C'\fR filter.
yading@10 12909 .IP "\fBli/linipoldeint\fR" 4
yading@10 12910 .IX Item "li/linipoldeint"
yading@10 12911 Linear interpolating deinterlacing filter that deinterlaces the given block by
yading@10 12912 linearly interpolating every second line.
yading@10 12913 .IP "\fBci/cubicipoldeint\fR" 4
yading@10 12914 .IX Item "ci/cubicipoldeint"
yading@10 12915 Cubic interpolating deinterlacing filter deinterlaces the given block by
yading@10 12916 cubically interpolating every second line.
yading@10 12917 .IP "\fBmd/mediandeint\fR" 4
yading@10 12918 .IX Item "md/mediandeint"
yading@10 12919 Median deinterlacing filter that deinterlaces the given block by applying a
yading@10 12920 median filter to every second line.
yading@10 12921 .IP "\fBfd/ffmpegdeint\fR" 4
yading@10 12922 .IX Item "fd/ffmpegdeint"
yading@10 12923 FFmpeg deinterlacing filter that deinterlaces the given block by filtering every
yading@10 12924 second line with a \f(CW\*(C`(\-1 4 2 4 \-1)\*(C'\fR filter.
yading@10 12925 .IP "\fBl5/lowpass5\fR" 4
yading@10 12926 .IX Item "l5/lowpass5"
yading@10 12927 Vertically applied \s-1FIR\s0 lowpass deinterlacing filter that deinterlaces the given
yading@10 12928 block by filtering all lines with a \f(CW\*(C`(\-1 2 6 2 \-1)\*(C'\fR filter.
yading@10 12929 .IP "\fBfq/forceQuant[|quantizer]\fR" 4
yading@10 12930 .IX Item "fq/forceQuant[|quantizer]"
yading@10 12931 Overrides the quantizer table from the input with the constant quantizer you
yading@10 12932 specify.
yading@10 12933 .RS 4
yading@10 12934 .IP "\fBquantizer\fR" 4
yading@10 12935 .IX Item "quantizer"
yading@10 12936 Quantizer to use
yading@10 12937 .RE
yading@10 12938 .RS 4
yading@10 12939 .RE
yading@10 12940 .IP "\fBde/default\fR" 4
yading@10 12941 .IX Item "de/default"
yading@10 12942 Default pp filter combination (\f(CW\*(C`hb|a,vb|a,dr|a\*(C'\fR)
yading@10 12943 .IP "\fBfa/fast\fR" 4
yading@10 12944 .IX Item "fa/fast"
yading@10 12945 Fast pp filter combination (\f(CW\*(C`h1|a,v1|a,dr|a\*(C'\fR)
yading@10 12946 .IP "\fBac\fR" 4
yading@10 12947 .IX Item "ac"
yading@10 12948 High quality pp filter combination (\f(CW\*(C`ha|a|128|7,va|a,dr|a\*(C'\fR)
yading@10 12949 .PP
yading@10 12950 \fIExamples\fR
yading@10 12951 .IX Subsection "Examples"
yading@10 12952 .IP "\(bu" 4
yading@10 12953 Apply horizontal and vertical deblocking, deringing and automatic
yading@10 12954 brightness/contrast:
yading@10 12955 .Sp
yading@10 12956 .Vb 1
yading@10 12957 \& pp=hb/vb/dr/al
yading@10 12958 .Ve
yading@10 12959 .IP "\(bu" 4
yading@10 12960 Apply default filters without brightness/contrast correction:
yading@10 12961 .Sp
yading@10 12962 .Vb 1
yading@10 12963 \& pp=de/\-al
yading@10 12964 .Ve
yading@10 12965 .IP "\(bu" 4
yading@10 12966 Apply default filters and temporal denoiser:
yading@10 12967 .Sp
yading@10 12968 .Vb 1
yading@10 12969 \& pp=default/tmpnoise|1|2|3
yading@10 12970 .Ve
yading@10 12971 .IP "\(bu" 4
yading@10 12972 Apply deblocking on luminance only, and switch vertical deblocking on or off
yading@10 12973 automatically depending on available \s-1CPU\s0 time:
yading@10 12974 .Sp
yading@10 12975 .Vb 1
yading@10 12976 \& pp=hb|y/vb|a
yading@10 12977 .Ve
yading@10 12978 .SS "removelogo"
yading@10 12979 .IX Subsection "removelogo"
yading@10 12980 Suppress a \s-1TV\s0 station logo, using an image file to determine which
yading@10 12981 pixels comprise the logo. It works by filling in the pixels that
yading@10 12982 comprise the logo with neighboring pixels.
yading@10 12983 .PP
yading@10 12984 The filters accept the following options:
yading@10 12985 .IP "\fBfilename, f\fR" 4
yading@10 12986 .IX Item "filename, f"
yading@10 12987 Set the filter bitmap file, which can be any image format supported by
yading@10 12988 libavformat. The width and height of the image file must match those of the
yading@10 12989 video stream being processed.
yading@10 12990 .PP
yading@10 12991 Pixels in the provided bitmap image with a value of zero are not
yading@10 12992 considered part of the logo, non-zero pixels are considered part of
yading@10 12993 the logo. If you use white (255) for the logo and black (0) for the
yading@10 12994 rest, you will be safe. For making the filter bitmap, it is
yading@10 12995 recommended to take a screen capture of a black frame with the logo
yading@10 12996 visible, and then using a threshold filter followed by the erode
yading@10 12997 filter once or twice.
yading@10 12998 .PP
yading@10 12999 If needed, little splotches can be fixed manually. Remember that if
yading@10 13000 logo pixels are not covered, the filter quality will be much
yading@10 13001 reduced. Marking too many pixels as part of the logo does not hurt as
yading@10 13002 much, but it will increase the amount of blurring needed to cover over
yading@10 13003 the image and will destroy more information than necessary, and extra
yading@10 13004 pixels will slow things down on a large logo.
yading@10 13005 .SS "scale"
yading@10 13006 .IX Subsection "scale"
yading@10 13007 Scale (resize) the input video, using the libswscale library.
yading@10 13008 .PP
yading@10 13009 The scale filter forces the output display aspect ratio to be the same
yading@10 13010 of the input, by changing the output sample aspect ratio.
yading@10 13011 .PP
yading@10 13012 The filter accepts the following options:
yading@10 13013 .IP "\fBwidth, w\fR" 4
yading@10 13014 .IX Item "width, w"
yading@10 13015 Output video width.
yading@10 13016 default value is \f(CW\*(C`iw\*(C'\fR. See below
yading@10 13017 for the list of accepted constants.
yading@10 13018 .IP "\fBheight, h\fR" 4
yading@10 13019 .IX Item "height, h"
yading@10 13020 Output video height.
yading@10 13021 default value is \f(CW\*(C`ih\*(C'\fR.
yading@10 13022 See below for the list of accepted constants.
yading@10 13023 .IP "\fBinterl\fR" 4
yading@10 13024 .IX Item "interl"
yading@10 13025 Set the interlacing. It accepts the following values:
yading@10 13026 .RS 4
yading@10 13027 .IP "\fB1\fR" 4
yading@10 13028 .IX Item "1"
yading@10 13029 force interlaced aware scaling
yading@10 13030 .IP "\fB0\fR" 4
yading@10 13031 .IX Item "0"
yading@10 13032 do not apply interlaced scaling
yading@10 13033 .IP "\fB\-1\fR" 4
yading@10 13034 .IX Item "-1"
yading@10 13035 select interlaced aware scaling depending on whether the source frames
yading@10 13036 are flagged as interlaced or not
yading@10 13037 .RE
yading@10 13038 .RS 4
yading@10 13039 .Sp
yading@10 13040 Default value is \f(CW0\fR.
yading@10 13041 .RE
yading@10 13042 .IP "\fBflags\fR" 4
yading@10 13043 .IX Item "flags"
yading@10 13044 Set libswscale scaling flags. If not explictly specified the filter
yading@10 13045 applies a bilinear scaling algorithm.
yading@10 13046 .IP "\fBsize, s\fR" 4
yading@10 13047 .IX Item "size, s"
yading@10 13048 Set the video size, the value must be a valid abbreviation or in the
yading@10 13049 form \fIwidth\fRx\fIheight\fR.
yading@10 13050 .PP
yading@10 13051 The values of the \fIw\fR and \fIh\fR options are expressions
yading@10 13052 containing the following constants:
yading@10 13053 .IP "\fBin_w, in_h\fR" 4
yading@10 13054 .IX Item "in_w, in_h"
yading@10 13055 the input width and height
yading@10 13056 .IP "\fBiw, ih\fR" 4
yading@10 13057 .IX Item "iw, ih"
yading@10 13058 same as \fIin_w\fR and \fIin_h\fR
yading@10 13059 .IP "\fBout_w, out_h\fR" 4
yading@10 13060 .IX Item "out_w, out_h"
yading@10 13061 the output (cropped) width and height
yading@10 13062 .IP "\fBow, oh\fR" 4
yading@10 13063 .IX Item "ow, oh"
yading@10 13064 same as \fIout_w\fR and \fIout_h\fR
yading@10 13065 .IP "\fBa\fR" 4
yading@10 13066 .IX Item "a"
yading@10 13067 same as \fIiw\fR / \fIih\fR
yading@10 13068 .IP "\fBsar\fR" 4
yading@10 13069 .IX Item "sar"
yading@10 13070 input sample aspect ratio
yading@10 13071 .IP "\fBdar\fR" 4
yading@10 13072 .IX Item "dar"
yading@10 13073 input display aspect ratio, it is the same as (\fIiw\fR / \fIih\fR) * \fIsar\fR
yading@10 13074 .IP "\fBhsub, vsub\fR" 4
yading@10 13075 .IX Item "hsub, vsub"
yading@10 13076 horizontal and vertical chroma subsample values. For example for the
yading@10 13077 pixel format \*(L"yuv422p\*(R" \fIhsub\fR is 2 and \fIvsub\fR is 1.
yading@10 13078 .PP
yading@10 13079 If the input image format is different from the format requested by
yading@10 13080 the next filter, the scale filter will convert the input to the
yading@10 13081 requested format.
yading@10 13082 .PP
yading@10 13083 If the value for \fIw\fR or \fIh\fR is 0, the respective input
yading@10 13084 size is used for the output.
yading@10 13085 .PP
yading@10 13086 If the value for \fIw\fR or \fIh\fR is \-1, the scale filter will use, for the
yading@10 13087 respective output size, a value that maintains the aspect ratio of the input
yading@10 13088 image.
yading@10 13089 .PP
yading@10 13090 \fIExamples\fR
yading@10 13091 .IX Subsection "Examples"
yading@10 13092 .IP "\(bu" 4
yading@10 13093 Scale the input video to a size of 200x100:
yading@10 13094 .Sp
yading@10 13095 .Vb 1
yading@10 13096 \& scale=w=200:h=100
yading@10 13097 .Ve
yading@10 13098 .Sp
yading@10 13099 This is equivalent to:
yading@10 13100 .Sp
yading@10 13101 .Vb 1
yading@10 13102 \& scale=w=200:h=100
yading@10 13103 .Ve
yading@10 13104 .Sp
yading@10 13105 or:
yading@10 13106 .Sp
yading@10 13107 .Vb 1
yading@10 13108 \& scale=200x100
yading@10 13109 .Ve
yading@10 13110 .IP "\(bu" 4
yading@10 13111 Specify a size abbreviation for the output size:
yading@10 13112 .Sp
yading@10 13113 .Vb 1
yading@10 13114 \& scale=qcif
yading@10 13115 .Ve
yading@10 13116 .Sp
yading@10 13117 which can also be written as:
yading@10 13118 .Sp
yading@10 13119 .Vb 1
yading@10 13120 \& scale=size=qcif
yading@10 13121 .Ve
yading@10 13122 .IP "\(bu" 4
yading@10 13123 Scale the input to 2x:
yading@10 13124 .Sp
yading@10 13125 .Vb 1
yading@10 13126 \& scale=w=2*iw:h=2*ih
yading@10 13127 .Ve
yading@10 13128 .IP "\(bu" 4
yading@10 13129 The above is the same as:
yading@10 13130 .Sp
yading@10 13131 .Vb 1
yading@10 13132 \& scale=2*in_w:2*in_h
yading@10 13133 .Ve
yading@10 13134 .IP "\(bu" 4
yading@10 13135 Scale the input to 2x with forced interlaced scaling:
yading@10 13136 .Sp
yading@10 13137 .Vb 1
yading@10 13138 \& scale=2*iw:2*ih:interl=1
yading@10 13139 .Ve
yading@10 13140 .IP "\(bu" 4
yading@10 13141 Scale the input to half size:
yading@10 13142 .Sp
yading@10 13143 .Vb 1
yading@10 13144 \& scale=w=iw/2:h=ih/2
yading@10 13145 .Ve
yading@10 13146 .IP "\(bu" 4
yading@10 13147 Increase the width, and set the height to the same size:
yading@10 13148 .Sp
yading@10 13149 .Vb 1
yading@10 13150 \& scale=3/2*iw:ow
yading@10 13151 .Ve
yading@10 13152 .IP "\(bu" 4
yading@10 13153 Seek for Greek harmony:
yading@10 13154 .Sp
yading@10 13155 .Vb 2
yading@10 13156 \& scale=iw:1/PHI*iw
yading@10 13157 \& scale=ih*PHI:ih
yading@10 13158 .Ve
yading@10 13159 .IP "\(bu" 4
yading@10 13160 Increase the height, and set the width to 3/2 of the height:
yading@10 13161 .Sp
yading@10 13162 .Vb 1
yading@10 13163 \& scale=w=3/2*oh:h=3/5*ih
yading@10 13164 .Ve
yading@10 13165 .IP "\(bu" 4
yading@10 13166 Increase the size, but make the size a multiple of the chroma
yading@10 13167 subsample values:
yading@10 13168 .Sp
yading@10 13169 .Vb 1
yading@10 13170 \& scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
yading@10 13171 .Ve
yading@10 13172 .IP "\(bu" 4
yading@10 13173 Increase the width to a maximum of 500 pixels, keep the same input
yading@10 13174 aspect ratio:
yading@10 13175 .Sp
yading@10 13176 .Vb 1
yading@10 13177 \& scale=w=\*(Aqmin(500\e, iw*3/2):h=\-1\*(Aq
yading@10 13178 .Ve
yading@10 13179 .SS "separatefields"
yading@10 13180 .IX Subsection "separatefields"
yading@10 13181 The \f(CW\*(C`separatefields\*(C'\fR takes a frame-based video input and splits
yading@10 13182 each frame into its components fields, producing a new half height clip
yading@10 13183 with twice the frame rate and twice the frame count.
yading@10 13184 .PP
yading@10 13185 This filter use field-dominance information in frame to decide which
yading@10 13186 of each pair of fields to place first in the output.
yading@10 13187 If it gets it wrong use setfield filter before \f(CW\*(C`separatefields\*(C'\fR filter.
yading@10 13188 .SS "setdar, setsar"
yading@10 13189 .IX Subsection "setdar, setsar"
yading@10 13190 The \f(CW\*(C`setdar\*(C'\fR filter sets the Display Aspect Ratio for the filter
yading@10 13191 output video.
yading@10 13192 .PP
yading@10 13193 This is done by changing the specified Sample (aka Pixel) Aspect
yading@10 13194 Ratio, according to the following equation:
yading@10 13195 .PP
yading@10 13196 .Vb 1
yading@10 13197 \& <DAR> = <HORIZONTAL_RESOLUTION> / <VERTICAL_RESOLUTION> * <SAR>
yading@10 13198 .Ve
yading@10 13199 .PP
yading@10 13200 Keep in mind that the \f(CW\*(C`setdar\*(C'\fR filter does not modify the pixel
yading@10 13201 dimensions of the video frame. Also the display aspect ratio set by
yading@10 13202 this filter may be changed by later filters in the filterchain,
yading@10 13203 e.g. in case of scaling or if another \*(L"setdar\*(R" or a \*(L"setsar\*(R" filter is
yading@10 13204 applied.
yading@10 13205 .PP
yading@10 13206 The \f(CW\*(C`setsar\*(C'\fR filter sets the Sample (aka Pixel) Aspect Ratio for
yading@10 13207 the filter output video.
yading@10 13208 .PP
yading@10 13209 Note that as a consequence of the application of this filter, the
yading@10 13210 output display aspect ratio will change according to the equation
yading@10 13211 above.
yading@10 13212 .PP
yading@10 13213 Keep in mind that the sample aspect ratio set by the \f(CW\*(C`setsar\*(C'\fR
yading@10 13214 filter may be changed by later filters in the filterchain, e.g. if
yading@10 13215 another \*(L"setsar\*(R" or a \*(L"setdar\*(R" filter is applied.
yading@10 13216 .PP
yading@10 13217 The filters accept the following options:
yading@10 13218 .ie n .IP "\fBr, ratio, dar (\fB""setdar""\fB only), sar (\f(BI""setsar""\fB only)\fR" 4
yading@10 13219 .el .IP "\fBr, ratio, dar (\f(CBsetdar\fB only), sar (\f(CBsetsar\fB only)\fR" 4
yading@10 13220 .IX Item "r, ratio, dar (setdar only), sar (setsar only)"
yading@10 13221 Set the aspect ratio used by the filter.
yading@10 13222 .Sp
yading@10 13223 The parameter can be a floating point number string, an expression, or
yading@10 13224 a string of the form \fInum\fR:\fIden\fR, where \fInum\fR and
yading@10 13225 \&\fIden\fR are the numerator and denominator of the aspect ratio. If
yading@10 13226 the parameter is not specified, it is assumed the value \*(L"0\*(R".
yading@10 13227 In case the form "\fInum\fR:\fIden\fR" is used, the \f(CW\*(C`:\*(C'\fR character
yading@10 13228 should be escaped.
yading@10 13229 .IP "\fBmax\fR" 4
yading@10 13230 .IX Item "max"
yading@10 13231 Set the maximum integer value to use for expressing numerator and
yading@10 13232 denominator when reducing the expressed aspect ratio to a rational.
yading@10 13233 Default value is \f(CW100\fR.
yading@10 13234 .PP
yading@10 13235 \fIExamples\fR
yading@10 13236 .IX Subsection "Examples"
yading@10 13237 .IP "\(bu" 4
yading@10 13238 To change the display aspect ratio to 16:9, specify one of the following:
yading@10 13239 .Sp
yading@10 13240 .Vb 3
yading@10 13241 \& setdar=dar=1.77777
yading@10 13242 \& setdar=dar=16/9
yading@10 13243 \& setdar=dar=1.77777
yading@10 13244 .Ve
yading@10 13245 .IP "\(bu" 4
yading@10 13246 To change the sample aspect ratio to 10:11, specify:
yading@10 13247 .Sp
yading@10 13248 .Vb 1
yading@10 13249 \& setsar=sar=10/11
yading@10 13250 .Ve
yading@10 13251 .IP "\(bu" 4
yading@10 13252 To set a display aspect ratio of 16:9, and specify a maximum integer value of
yading@10 13253 1000 in the aspect ratio reduction, use the command:
yading@10 13254 .Sp
yading@10 13255 .Vb 1
yading@10 13256 \& setdar=ratio=16/9:max=1000
yading@10 13257 .Ve
yading@10 13258 .SS "setfield"
yading@10 13259 .IX Subsection "setfield"
yading@10 13260 Force field for the output video frame.
yading@10 13261 .PP
yading@10 13262 The \f(CW\*(C`setfield\*(C'\fR filter marks the interlace type field for the
yading@10 13263 output frames. It does not change the input frame, but only sets the
yading@10 13264 corresponding property, which affects how the frame is treated by
yading@10 13265 following filters (e.g. \f(CW\*(C`fieldorder\*(C'\fR or \f(CW\*(C`yadif\*(C'\fR).
yading@10 13266 .PP
yading@10 13267 The filter accepts the following options:
yading@10 13268 .IP "\fBmode\fR" 4
yading@10 13269 .IX Item "mode"
yading@10 13270 Available values are:
yading@10 13271 .RS 4
yading@10 13272 .IP "\fBauto\fR" 4
yading@10 13273 .IX Item "auto"
yading@10 13274 Keep the same field property.
yading@10 13275 .IP "\fBbff\fR" 4
yading@10 13276 .IX Item "bff"
yading@10 13277 Mark the frame as bottom-field-first.
yading@10 13278 .IP "\fBtff\fR" 4
yading@10 13279 .IX Item "tff"
yading@10 13280 Mark the frame as top-field-first.
yading@10 13281 .IP "\fBprog\fR" 4
yading@10 13282 .IX Item "prog"
yading@10 13283 Mark the frame as progressive.
yading@10 13284 .RE
yading@10 13285 .RS 4
yading@10 13286 .RE
yading@10 13287 .SS "showinfo"
yading@10 13288 .IX Subsection "showinfo"
yading@10 13289 Show a line containing various information for each input video frame.
yading@10 13290 The input video is not modified.
yading@10 13291 .PP
yading@10 13292 The shown line contains a sequence of key/value pairs of the form
yading@10 13293 \&\fIkey\fR:\fIvalue\fR.
yading@10 13294 .PP
yading@10 13295 A description of each shown parameter follows:
yading@10 13296 .IP "\fBn\fR" 4
yading@10 13297 .IX Item "n"
yading@10 13298 sequential number of the input frame, starting from 0
yading@10 13299 .IP "\fBpts\fR" 4
yading@10 13300 .IX Item "pts"
yading@10 13301 Presentation TimeStamp of the input frame, expressed as a number of
yading@10 13302 time base units. The time base unit depends on the filter input pad.
yading@10 13303 .IP "\fBpts_time\fR" 4
yading@10 13304 .IX Item "pts_time"
yading@10 13305 Presentation TimeStamp of the input frame, expressed as a number of
yading@10 13306 seconds
yading@10 13307 .IP "\fBpos\fR" 4
yading@10 13308 .IX Item "pos"
yading@10 13309 position of the frame in the input stream, \-1 if this information in
yading@10 13310 unavailable and/or meaningless (for example in case of synthetic video)
yading@10 13311 .IP "\fBfmt\fR" 4
yading@10 13312 .IX Item "fmt"
yading@10 13313 pixel format name
yading@10 13314 .IP "\fBsar\fR" 4
yading@10 13315 .IX Item "sar"
yading@10 13316 sample aspect ratio of the input frame, expressed in the form
yading@10 13317 \&\fInum\fR/\fIden\fR
yading@10 13318 .IP "\fBs\fR" 4
yading@10 13319 .IX Item "s"
yading@10 13320 size of the input frame, expressed in the form
yading@10 13321 \&\fIwidth\fRx\fIheight\fR
yading@10 13322 .IP "\fBi\fR" 4
yading@10 13323 .IX Item "i"
yading@10 13324 interlaced mode (\*(L"P\*(R" for \*(L"progressive\*(R", \*(L"T\*(R" for top field first, \*(L"B\*(R"
yading@10 13325 for bottom field first)
yading@10 13326 .IP "\fBiskey\fR" 4
yading@10 13327 .IX Item "iskey"
yading@10 13328 1 if the frame is a key frame, 0 otherwise
yading@10 13329 .IP "\fBtype\fR" 4
yading@10 13330 .IX Item "type"
yading@10 13331 picture type of the input frame (\*(L"I\*(R" for an I\-frame, \*(L"P\*(R" for a
yading@10 13332 P\-frame, \*(L"B\*(R" for a B\-frame, \*(L"?\*(R" for unknown type).
yading@10 13333 Check also the documentation of the \f(CW\*(C`AVPictureType\*(C'\fR enum and of
yading@10 13334 the \f(CW\*(C`av_get_picture_type_char\*(C'\fR function defined in
yading@10 13335 \&\fIlibavutil/avutil.h\fR.
yading@10 13336 .IP "\fBchecksum\fR" 4
yading@10 13337 .IX Item "checksum"
yading@10 13338 Adler\-32 checksum (printed in hexadecimal) of all the planes of the input frame
yading@10 13339 .IP "\fBplane_checksum\fR" 4
yading@10 13340 .IX Item "plane_checksum"
yading@10 13341 Adler\-32 checksum (printed in hexadecimal) of each plane of the input frame,
yading@10 13342 expressed in the form "[\fIc0\fR \fIc1\fR \fIc2\fR \fIc3\fR]"
yading@10 13343 .SS "smartblur"
yading@10 13344 .IX Subsection "smartblur"
yading@10 13345 Blur the input video without impacting the outlines.
yading@10 13346 .PP
yading@10 13347 The filter accepts the following options:
yading@10 13348 .IP "\fBluma_radius, lr\fR" 4
yading@10 13349 .IX Item "luma_radius, lr"
yading@10 13350 Set the luma radius. The option value must be a float number in
yading@10 13351 the range [0.1,5.0] that specifies the variance of the gaussian filter
yading@10 13352 used to blur the image (slower if larger). Default value is 1.0.
yading@10 13353 .IP "\fBluma_strength, ls\fR" 4
yading@10 13354 .IX Item "luma_strength, ls"
yading@10 13355 Set the luma strength. The option value must be a float number
yading@10 13356 in the range [\-1.0,1.0] that configures the blurring. A value included
yading@10 13357 in [0.0,1.0] will blur the image whereas a value included in
yading@10 13358 [\-1.0,0.0] will sharpen the image. Default value is 1.0.
yading@10 13359 .IP "\fBluma_threshold, lt\fR" 4
yading@10 13360 .IX Item "luma_threshold, lt"
yading@10 13361 Set the luma threshold used as a coefficient to determine
yading@10 13362 whether a pixel should be blurred or not. The option value must be an
yading@10 13363 integer in the range [\-30,30]. A value of 0 will filter all the image,
yading@10 13364 a value included in [0,30] will filter flat areas and a value included
yading@10 13365 in [\-30,0] will filter edges. Default value is 0.
yading@10 13366 .IP "\fBchroma_radius, cr\fR" 4
yading@10 13367 .IX Item "chroma_radius, cr"
yading@10 13368 Set the chroma radius. The option value must be a float number in
yading@10 13369 the range [0.1,5.0] that specifies the variance of the gaussian filter
yading@10 13370 used to blur the image (slower if larger). Default value is 1.0.
yading@10 13371 .IP "\fBchroma_strength, cs\fR" 4
yading@10 13372 .IX Item "chroma_strength, cs"
yading@10 13373 Set the chroma strength. The option value must be a float number
yading@10 13374 in the range [\-1.0,1.0] that configures the blurring. A value included
yading@10 13375 in [0.0,1.0] will blur the image whereas a value included in
yading@10 13376 [\-1.0,0.0] will sharpen the image. Default value is 1.0.
yading@10 13377 .IP "\fBchroma_threshold, ct\fR" 4
yading@10 13378 .IX Item "chroma_threshold, ct"
yading@10 13379 Set the chroma threshold used as a coefficient to determine
yading@10 13380 whether a pixel should be blurred or not. The option value must be an
yading@10 13381 integer in the range [\-30,30]. A value of 0 will filter all the image,
yading@10 13382 a value included in [0,30] will filter flat areas and a value included
yading@10 13383 in [\-30,0] will filter edges. Default value is 0.
yading@10 13384 .PP
yading@10 13385 If a chroma option is not explicitly set, the corresponding luma value
yading@10 13386 is set.
yading@10 13387 .SS "stereo3d"
yading@10 13388 .IX Subsection "stereo3d"
yading@10 13389 Convert between different stereoscopic image formats.
yading@10 13390 .PP
yading@10 13391 The filters accept the following options:
yading@10 13392 .IP "\fBin\fR" 4
yading@10 13393 .IX Item "in"
yading@10 13394 Set stereoscopic image format of input.
yading@10 13395 .Sp
yading@10 13396 Available values for input image formats are:
yading@10 13397 .RS 4
yading@10 13398 .IP "\fBsbsl\fR" 4
yading@10 13399 .IX Item "sbsl"
yading@10 13400 side by side parallel (left eye left, right eye right)
yading@10 13401 .IP "\fBsbsr\fR" 4
yading@10 13402 .IX Item "sbsr"
yading@10 13403 side by side crosseye (right eye left, left eye right)
yading@10 13404 .IP "\fBsbs2l\fR" 4
yading@10 13405 .IX Item "sbs2l"
yading@10 13406 side by side parallel with half width resolution
yading@10 13407 (left eye left, right eye right)
yading@10 13408 .IP "\fBsbs2r\fR" 4
yading@10 13409 .IX Item "sbs2r"
yading@10 13410 side by side crosseye with half width resolution
yading@10 13411 (right eye left, left eye right)
yading@10 13412 .IP "\fBabl\fR" 4
yading@10 13413 .IX Item "abl"
yading@10 13414 above-below (left eye above, right eye below)
yading@10 13415 .IP "\fBabr\fR" 4
yading@10 13416 .IX Item "abr"
yading@10 13417 above-below (right eye above, left eye below)
yading@10 13418 .IP "\fBab2l\fR" 4
yading@10 13419 .IX Item "ab2l"
yading@10 13420 above-below with half height resolution
yading@10 13421 (left eye above, right eye below)
yading@10 13422 .IP "\fBab2r\fR" 4
yading@10 13423 .IX Item "ab2r"
yading@10 13424 above-below with half height resolution
yading@10 13425 (right eye above, left eye below)
yading@10 13426 .Sp
yading@10 13427 Default value is \fBsbsl\fR.
yading@10 13428 .RE
yading@10 13429 .RS 4
yading@10 13430 .RE
yading@10 13431 .IP "\fBout\fR" 4
yading@10 13432 .IX Item "out"
yading@10 13433 Set stereoscopic image format of output.
yading@10 13434 .Sp
yading@10 13435 Available values for output image formats are all the input formats as well as:
yading@10 13436 .RS 4
yading@10 13437 .IP "\fBarbg\fR" 4
yading@10 13438 .IX Item "arbg"
yading@10 13439 anaglyph red/blue gray
yading@10 13440 (red filter on left eye, blue filter on right eye)
yading@10 13441 .IP "\fBargg\fR" 4
yading@10 13442 .IX Item "argg"
yading@10 13443 anaglyph red/green gray
yading@10 13444 (red filter on left eye, green filter on right eye)
yading@10 13445 .IP "\fBarcg\fR" 4
yading@10 13446 .IX Item "arcg"
yading@10 13447 anaglyph red/cyan gray
yading@10 13448 (red filter on left eye, cyan filter on right eye)
yading@10 13449 .IP "\fBarch\fR" 4
yading@10 13450 .IX Item "arch"
yading@10 13451 anaglyph red/cyan half colored
yading@10 13452 (red filter on left eye, cyan filter on right eye)
yading@10 13453 .IP "\fBarcc\fR" 4
yading@10 13454 .IX Item "arcc"
yading@10 13455 anaglyph red/cyan color
yading@10 13456 (red filter on left eye, cyan filter on right eye)
yading@10 13457 .IP "\fBarcd\fR" 4
yading@10 13458 .IX Item "arcd"
yading@10 13459 anaglyph red/cyan color optimized with the least squares projection of dubois
yading@10 13460 (red filter on left eye, cyan filter on right eye)
yading@10 13461 .IP "\fBagmg\fR" 4
yading@10 13462 .IX Item "agmg"
yading@10 13463 anaglyph green/magenta gray
yading@10 13464 (green filter on left eye, magenta filter on right eye)
yading@10 13465 .IP "\fBagmh\fR" 4
yading@10 13466 .IX Item "agmh"
yading@10 13467 anaglyph green/magenta half colored
yading@10 13468 (green filter on left eye, magenta filter on right eye)
yading@10 13469 .IP "\fBagmc\fR" 4
yading@10 13470 .IX Item "agmc"
yading@10 13471 anaglyph green/magenta colored
yading@10 13472 (green filter on left eye, magenta filter on right eye)
yading@10 13473 .IP "\fBagmd\fR" 4
yading@10 13474 .IX Item "agmd"
yading@10 13475 anaglyph green/magenta color optimized with the least squares projection of dubois
yading@10 13476 (green filter on left eye, magenta filter on right eye)
yading@10 13477 .IP "\fBaybg\fR" 4
yading@10 13478 .IX Item "aybg"
yading@10 13479 anaglyph yellow/blue gray
yading@10 13480 (yellow filter on left eye, blue filter on right eye)
yading@10 13481 .IP "\fBaybh\fR" 4
yading@10 13482 .IX Item "aybh"
yading@10 13483 anaglyph yellow/blue half colored
yading@10 13484 (yellow filter on left eye, blue filter on right eye)
yading@10 13485 .IP "\fBaybc\fR" 4
yading@10 13486 .IX Item "aybc"
yading@10 13487 anaglyph yellow/blue colored
yading@10 13488 (yellow filter on left eye, blue filter on right eye)
yading@10 13489 .IP "\fBaybd\fR" 4
yading@10 13490 .IX Item "aybd"
yading@10 13491 anaglyph yellow/blue color optimized with the least squares projection of dubois
yading@10 13492 (yellow filter on left eye, blue filter on right eye)
yading@10 13493 .IP "\fBirl\fR" 4
yading@10 13494 .IX Item "irl"
yading@10 13495 interleaved rows (left eye has top row, right eye starts on next row)
yading@10 13496 .IP "\fBirr\fR" 4
yading@10 13497 .IX Item "irr"
yading@10 13498 interleaved rows (right eye has top row, left eye starts on next row)
yading@10 13499 .IP "\fBml\fR" 4
yading@10 13500 .IX Item "ml"
yading@10 13501 mono output (left eye only)
yading@10 13502 .IP "\fBmr\fR" 4
yading@10 13503 .IX Item "mr"
yading@10 13504 mono output (right eye only)
yading@10 13505 .RE
yading@10 13506 .RS 4
yading@10 13507 .Sp
yading@10 13508 Default value is \fBarcd\fR.
yading@10 13509 .RE
yading@10 13510 .SS "subtitles"
yading@10 13511 .IX Subsection "subtitles"
yading@10 13512 Draw subtitles on top of input video using the libass library.
yading@10 13513 .PP
yading@10 13514 To enable compilation of this filter you need to configure FFmpeg with
yading@10 13515 \&\f(CW\*(C`\-\-enable\-libass\*(C'\fR. This filter also requires a build with libavcodec and
yading@10 13516 libavformat to convert the passed subtitles file to \s-1ASS\s0 (Advanced Substation
yading@10 13517 Alpha) subtitles format.
yading@10 13518 .PP
yading@10 13519 The filter accepts the following options:
yading@10 13520 .IP "\fBfilename, f\fR" 4
yading@10 13521 .IX Item "filename, f"
yading@10 13522 Set the filename of the subtitle file to read. It must be specified.
yading@10 13523 .IP "\fBoriginal_size\fR" 4
yading@10 13524 .IX Item "original_size"
yading@10 13525 Specify the size of the original video, the video for which the \s-1ASS\s0 file
yading@10 13526 was composed. Due to a misdesign in \s-1ASS\s0 aspect ratio arithmetic, this is
yading@10 13527 necessary to correctly scale the fonts if the aspect ratio has been changed.
yading@10 13528 .IP "\fBcharenc\fR" 4
yading@10 13529 .IX Item "charenc"
yading@10 13530 Set subtitles input character encoding. \f(CW\*(C`subtitles\*(C'\fR filter only. Only
yading@10 13531 useful if not \s-1UTF\-8\s0.
yading@10 13532 .PP
yading@10 13533 If the first key is not specified, it is assumed that the first value
yading@10 13534 specifies the \fBfilename\fR.
yading@10 13535 .PP
yading@10 13536 For example, to render the file \fIsub.srt\fR on top of the input
yading@10 13537 video, use the command:
yading@10 13538 .PP
yading@10 13539 .Vb 1
yading@10 13540 \& subtitles=sub.srt
yading@10 13541 .Ve
yading@10 13542 .PP
yading@10 13543 which is equivalent to:
yading@10 13544 .PP
yading@10 13545 .Vb 1
yading@10 13546 \& subtitles=filename=sub.srt
yading@10 13547 .Ve
yading@10 13548 .SS "super2xsai"
yading@10 13549 .IX Subsection "super2xsai"
yading@10 13550 Scale the input by 2x and smooth using the Super2xSaI (Scale and
yading@10 13551 Interpolate) pixel art scaling algorithm.
yading@10 13552 .PP
yading@10 13553 Useful for enlarging pixel art images without reducing sharpness.
yading@10 13554 .SS "swapuv"
yading@10 13555 .IX Subsection "swapuv"
yading@10 13556 Swap U & V plane.
yading@10 13557 .SS "telecine"
yading@10 13558 .IX Subsection "telecine"
yading@10 13559 Apply telecine process to the video.
yading@10 13560 .PP
yading@10 13561 This filter accepts the following options:
yading@10 13562 .IP "\fBfirst_field\fR" 4
yading@10 13563 .IX Item "first_field"
yading@10 13564 .RS 4
yading@10 13565 .PD 0
yading@10 13566 .IP "\fBtop, t\fR" 4
yading@10 13567 .IX Item "top, t"
yading@10 13568 .PD
yading@10 13569 top field first
yading@10 13570 .IP "\fBbottom, b\fR" 4
yading@10 13571 .IX Item "bottom, b"
yading@10 13572 bottom field first
yading@10 13573 The default value is \f(CW\*(C`top\*(C'\fR.
yading@10 13574 .RE
yading@10 13575 .RS 4
yading@10 13576 .RE
yading@10 13577 .IP "\fBpattern\fR" 4
yading@10 13578 .IX Item "pattern"
yading@10 13579 A string of numbers representing the pulldown pattern you wish to apply.
yading@10 13580 The default value is \f(CW23\fR.
yading@10 13581 .PP
yading@10 13582 .Vb 1
yading@10 13583 \& Some typical patterns:
yading@10 13584 \&
yading@10 13585 \& NTSC output (30i):
yading@10 13586 \& 27.5p: 32222
yading@10 13587 \& 24p: 23 (classic)
yading@10 13588 \& 24p: 2332 (preferred)
yading@10 13589 \& 20p: 33
yading@10 13590 \& 18p: 334
yading@10 13591 \& 16p: 3444
yading@10 13592 \&
yading@10 13593 \& PAL output (25i):
yading@10 13594 \& 27.5p: 12222
yading@10 13595 \& 24p: 222222222223 ("Euro pulldown")
yading@10 13596 \& 16.67p: 33
yading@10 13597 \& 16p: 33333334
yading@10 13598 .Ve
yading@10 13599 .SS "thumbnail"
yading@10 13600 .IX Subsection "thumbnail"
yading@10 13601 Select the most representative frame in a given sequence of consecutive frames.
yading@10 13602 .PP
yading@10 13603 The filter accepts the following options:
yading@10 13604 .IP "\fBn\fR" 4
yading@10 13605 .IX Item "n"
yading@10 13606 Set the frames batch size to analyze; in a set of \fIn\fR frames, the filter
yading@10 13607 will pick one of them, and then handle the next batch of \fIn\fR frames until
yading@10 13608 the end. Default is \f(CW100\fR.
yading@10 13609 .PP
yading@10 13610 Since the filter keeps track of the whole frames sequence, a bigger \fIn\fR
yading@10 13611 value will result in a higher memory usage, so a high value is not recommended.
yading@10 13612 .PP
yading@10 13613 \fIExamples\fR
yading@10 13614 .IX Subsection "Examples"
yading@10 13615 .IP "\(bu" 4
yading@10 13616 Extract one picture each 50 frames:
yading@10 13617 .Sp
yading@10 13618 .Vb 1
yading@10 13619 \& thumbnail=50
yading@10 13620 .Ve
yading@10 13621 .IP "\(bu" 4
yading@10 13622 Complete example of a thumbnail creation with \fBffmpeg\fR:
yading@10 13623 .Sp
yading@10 13624 .Vb 1
yading@10 13625 \& ffmpeg \-i in.avi \-vf thumbnail,scale=300:200 \-frames:v 1 out.png
yading@10 13626 .Ve
yading@10 13627 .SS "tile"
yading@10 13628 .IX Subsection "tile"
yading@10 13629 Tile several successive frames together.
yading@10 13630 .PP
yading@10 13631 The filter accepts the following options:
yading@10 13632 .IP "\fBlayout\fR" 4
yading@10 13633 .IX Item "layout"
yading@10 13634 Set the grid size (i.e. the number of lines and columns) in the form
yading@10 13635 "\fIw\fRx\fIh\fR".
yading@10 13636 .IP "\fBnb_frames\fR" 4
yading@10 13637 .IX Item "nb_frames"
yading@10 13638 Set the maximum number of frames to render in the given area. It must be less
yading@10 13639 than or equal to \fIw\fRx\fIh\fR. The default value is \f(CW0\fR, meaning all
yading@10 13640 the area will be used.
yading@10 13641 .IP "\fBmargin\fR" 4
yading@10 13642 .IX Item "margin"
yading@10 13643 Set the outer border margin in pixels.
yading@10 13644 .IP "\fBpadding\fR" 4
yading@10 13645 .IX Item "padding"
yading@10 13646 Set the inner border thickness (i.e. the number of pixels between frames). For
yading@10 13647 more advanced padding options (such as having different values for the edges),
yading@10 13648 refer to the pad video filter.
yading@10 13649 .PP
yading@10 13650 \fIExamples\fR
yading@10 13651 .IX Subsection "Examples"
yading@10 13652 .IP "\(bu" 4
yading@10 13653 Produce 8x8 \s-1PNG\s0 tiles of all keyframes (\fB\-skip_frame nokey\fR) in a movie:
yading@10 13654 .Sp
yading@10 13655 .Vb 1
yading@10 13656 \& ffmpeg \-skip_frame nokey \-i file.avi \-vf \*(Aqscale=128:72,tile=8x8\*(Aq \-an \-vsync 0 keyframes%03d.png
yading@10 13657 .Ve
yading@10 13658 .Sp
yading@10 13659 The \fB\-vsync 0\fR is necessary to prevent \fBffmpeg\fR from
yading@10 13660 duplicating each output frame to accomodate the originally detected frame
yading@10 13661 rate.
yading@10 13662 .IP "\(bu" 4
yading@10 13663 Display \f(CW5\fR pictures in an area of \f(CW\*(C`3x2\*(C'\fR frames,
yading@10 13664 with \f(CW7\fR pixels between them, and \f(CW2\fR pixels of initial margin, using
yading@10 13665 mixed flat and named options:
yading@10 13666 .Sp
yading@10 13667 .Vb 1
yading@10 13668 \& tile=3x2:nb_frames=5:padding=7:margin=2
yading@10 13669 .Ve
yading@10 13670 .SS "tinterlace"
yading@10 13671 .IX Subsection "tinterlace"
yading@10 13672 Perform various types of temporal field interlacing.
yading@10 13673 .PP
yading@10 13674 Frames are counted starting from 1, so the first input frame is
yading@10 13675 considered odd.
yading@10 13676 .PP
yading@10 13677 The filter accepts the following options:
yading@10 13678 .IP "\fBmode\fR" 4
yading@10 13679 .IX Item "mode"
yading@10 13680 Specify the mode of the interlacing. This option can also be specified
yading@10 13681 as a value alone. See below for a list of values for this option.
yading@10 13682 .Sp
yading@10 13683 Available values are:
yading@10 13684 .RS 4
yading@10 13685 .IP "\fBmerge, 0\fR" 4
yading@10 13686 .IX Item "merge, 0"
yading@10 13687 Move odd frames into the upper field, even into the lower field,
yading@10 13688 generating a double height frame at half frame rate.
yading@10 13689 .IP "\fBdrop_odd, 1\fR" 4
yading@10 13690 .IX Item "drop_odd, 1"
yading@10 13691 Only output even frames, odd frames are dropped, generating a frame with
yading@10 13692 unchanged height at half frame rate.
yading@10 13693 .IP "\fBdrop_even, 2\fR" 4
yading@10 13694 .IX Item "drop_even, 2"
yading@10 13695 Only output odd frames, even frames are dropped, generating a frame with
yading@10 13696 unchanged height at half frame rate.
yading@10 13697 .IP "\fBpad, 3\fR" 4
yading@10 13698 .IX Item "pad, 3"
yading@10 13699 Expand each frame to full height, but pad alternate lines with black,
yading@10 13700 generating a frame with double height at the same input frame rate.
yading@10 13701 .IP "\fBinterleave_top, 4\fR" 4
yading@10 13702 .IX Item "interleave_top, 4"
yading@10 13703 Interleave the upper field from odd frames with the lower field from
yading@10 13704 even frames, generating a frame with unchanged height at half frame rate.
yading@10 13705 .IP "\fBinterleave_bottom, 5\fR" 4
yading@10 13706 .IX Item "interleave_bottom, 5"
yading@10 13707 Interleave the lower field from odd frames with the upper field from
yading@10 13708 even frames, generating a frame with unchanged height at half frame rate.
yading@10 13709 .IP "\fBinterlacex2, 6\fR" 4
yading@10 13710 .IX Item "interlacex2, 6"
yading@10 13711 Double frame rate with unchanged height. Frames are inserted each
yading@10 13712 containing the second temporal field from the previous input frame and
yading@10 13713 the first temporal field from the next input frame. This mode relies on
yading@10 13714 the top_field_first flag. Useful for interlaced video displays with no
yading@10 13715 field synchronisation.
yading@10 13716 .RE
yading@10 13717 .RS 4
yading@10 13718 .Sp
yading@10 13719 Numeric values are deprecated but are accepted for backward
yading@10 13720 compatibility reasons.
yading@10 13721 .Sp
yading@10 13722 Default mode is \f(CW\*(C`merge\*(C'\fR.
yading@10 13723 .RE
yading@10 13724 .IP "\fBflags\fR" 4
yading@10 13725 .IX Item "flags"
yading@10 13726 Specify flags influencing the filter process.
yading@10 13727 .Sp
yading@10 13728 Available value for \fIflags\fR is:
yading@10 13729 .RS 4
yading@10 13730 .IP "\fBlow_pass_filter, vlfp\fR" 4
yading@10 13731 .IX Item "low_pass_filter, vlfp"
yading@10 13732 Enable vertical low-pass filtering in the filter.
yading@10 13733 Vertical low-pass filtering is required when creating an interlaced
yading@10 13734 destination from a progressive source which contains high-frequency
yading@10 13735 vertical detail. Filtering will reduce interlace 'twitter' and Moire
yading@10 13736 patterning.
yading@10 13737 .Sp
yading@10 13738 Vertical low-pass filtering can only be enabled for \fBmode\fR
yading@10 13739 \&\fIinterleave_top\fR and \fIinterleave_bottom\fR.
yading@10 13740 .RE
yading@10 13741 .RS 4
yading@10 13742 .RE
yading@10 13743 .SS "transpose"
yading@10 13744 .IX Subsection "transpose"
yading@10 13745 Transpose rows with columns in the input video and optionally flip it.
yading@10 13746 .PP
yading@10 13747 This filter accepts the following options:
yading@10 13748 .IP "\fBdir\fR" 4
yading@10 13749 .IX Item "dir"
yading@10 13750 The direction of the transpose.
yading@10 13751 .RS 4
yading@10 13752 .IP "\fB0, 4, cclock_flip\fR" 4
yading@10 13753 .IX Item "0, 4, cclock_flip"
yading@10 13754 Rotate by 90 degrees counterclockwise and vertically flip (default), that is:
yading@10 13755 .Sp
yading@10 13756 .Vb 3
yading@10 13757 \& L.R L.l
yading@10 13758 \& . . \-> . .
yading@10 13759 \& l.r R.r
yading@10 13760 .Ve
yading@10 13761 .IP "\fB1, 5, clock\fR" 4
yading@10 13762 .IX Item "1, 5, clock"
yading@10 13763 Rotate by 90 degrees clockwise, that is:
yading@10 13764 .Sp
yading@10 13765 .Vb 3
yading@10 13766 \& L.R l.L
yading@10 13767 \& . . \-> . .
yading@10 13768 \& l.r r.R
yading@10 13769 .Ve
yading@10 13770 .IP "\fB2, 6, cclock\fR" 4
yading@10 13771 .IX Item "2, 6, cclock"
yading@10 13772 Rotate by 90 degrees counterclockwise, that is:
yading@10 13773 .Sp
yading@10 13774 .Vb 3
yading@10 13775 \& L.R R.r
yading@10 13776 \& . . \-> . .
yading@10 13777 \& l.r L.l
yading@10 13778 .Ve
yading@10 13779 .IP "\fB3, 7, clock_flip\fR" 4
yading@10 13780 .IX Item "3, 7, clock_flip"
yading@10 13781 Rotate by 90 degrees clockwise and vertically flip, that is:
yading@10 13782 .Sp
yading@10 13783 .Vb 3
yading@10 13784 \& L.R r.R
yading@10 13785 \& . . \-> . .
yading@10 13786 \& l.r l.L
yading@10 13787 .Ve
yading@10 13788 .RE
yading@10 13789 .RS 4
yading@10 13790 .Sp
yading@10 13791 For values between 4\-7, the transposition is only done if the input
yading@10 13792 video geometry is portrait and not landscape. These values are
yading@10 13793 deprecated, the \f(CW\*(C`passthrough\*(C'\fR option should be used instead.
yading@10 13794 .RE
yading@10 13795 .IP "\fBpassthrough\fR" 4
yading@10 13796 .IX Item "passthrough"
yading@10 13797 Do not apply the transposition if the input geometry matches the one
yading@10 13798 specified by the specified value. It accepts the following values:
yading@10 13799 .RS 4
yading@10 13800 .IP "\fBnone\fR" 4
yading@10 13801 .IX Item "none"
yading@10 13802 Always apply transposition.
yading@10 13803 .IP "\fBportrait\fR" 4
yading@10 13804 .IX Item "portrait"
yading@10 13805 Preserve portrait geometry (when \fIheight\fR >= \fIwidth\fR).
yading@10 13806 .IP "\fBlandscape\fR" 4
yading@10 13807 .IX Item "landscape"
yading@10 13808 Preserve landscape geometry (when \fIwidth\fR >= \fIheight\fR).
yading@10 13809 .RE
yading@10 13810 .RS 4
yading@10 13811 .Sp
yading@10 13812 Default value is \f(CW\*(C`none\*(C'\fR.
yading@10 13813 .RE
yading@10 13814 .PP
yading@10 13815 For example to rotate by 90 degrees clockwise and preserve portrait
yading@10 13816 layout:
yading@10 13817 .PP
yading@10 13818 .Vb 1
yading@10 13819 \& transpose=dir=1:passthrough=portrait
yading@10 13820 .Ve
yading@10 13821 .PP
yading@10 13822 The command above can also be specified as:
yading@10 13823 .PP
yading@10 13824 .Vb 1
yading@10 13825 \& transpose=1:portrait
yading@10 13826 .Ve
yading@10 13827 .SS "unsharp"
yading@10 13828 .IX Subsection "unsharp"
yading@10 13829 Sharpen or blur the input video.
yading@10 13830 .PP
yading@10 13831 It accepts the following parameters:
yading@10 13832 .IP "\fBluma_msize_x, lx\fR" 4
yading@10 13833 .IX Item "luma_msize_x, lx"
yading@10 13834 .PD 0
yading@10 13835 .IP "\fBchroma_msize_x, cx\fR" 4
yading@10 13836 .IX Item "chroma_msize_x, cx"
yading@10 13837 .PD
yading@10 13838 Set the luma/chroma matrix horizontal size. It must be an odd integer
yading@10 13839 between 3 and 63, default value is 5.
yading@10 13840 .IP "\fBluma_msize_y, ly\fR" 4
yading@10 13841 .IX Item "luma_msize_y, ly"
yading@10 13842 .PD 0
yading@10 13843 .IP "\fBchroma_msize_y, cy\fR" 4
yading@10 13844 .IX Item "chroma_msize_y, cy"
yading@10 13845 .PD
yading@10 13846 Set the luma/chroma matrix vertical size. It must be an odd integer
yading@10 13847 between 3 and 63, default value is 5.
yading@10 13848 .IP "\fBluma_amount, la\fR" 4
yading@10 13849 .IX Item "luma_amount, la"
yading@10 13850 .PD 0
yading@10 13851 .IP "\fBchroma_amount, ca\fR" 4
yading@10 13852 .IX Item "chroma_amount, ca"
yading@10 13853 .PD
yading@10 13854 Set the luma/chroma effect strength. It can be a float number,
yading@10 13855 reasonable values lay between \-1.5 and 1.5.
yading@10 13856 .Sp
yading@10 13857 Negative values will blur the input video, while positive values will
yading@10 13858 sharpen it, a value of zero will disable the effect.
yading@10 13859 .Sp
yading@10 13860 Default value is 1.0 for \fBluma_amount\fR, 0.0 for
yading@10 13861 \&\fBchroma_amount\fR.
yading@10 13862 .PP
yading@10 13863 All parameters are optional and default to the
yading@10 13864 equivalent of the string '5:5:1.0:5:5:0.0'.
yading@10 13865 .PP
yading@10 13866 \fIExamples\fR
yading@10 13867 .IX Subsection "Examples"
yading@10 13868 .IP "\(bu" 4
yading@10 13869 Apply strong luma sharpen effect:
yading@10 13870 .Sp
yading@10 13871 .Vb 1
yading@10 13872 \& unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
yading@10 13873 .Ve
yading@10 13874 .IP "\(bu" 4
yading@10 13875 Apply strong blur of both luma and chroma parameters:
yading@10 13876 .Sp
yading@10 13877 .Vb 1
yading@10 13878 \& unsharp=7:7:\-2:7:7:\-2
yading@10 13879 .Ve
yading@10 13880 .SS "vflip"
yading@10 13881 .IX Subsection "vflip"
yading@10 13882 Flip the input video vertically.
yading@10 13883 .PP
yading@10 13884 .Vb 1
yading@10 13885 \& ffmpeg \-i in.avi \-vf "vflip" out.avi
yading@10 13886 .Ve
yading@10 13887 .SS "yadif"
yading@10 13888 .IX Subsection "yadif"
yading@10 13889 Deinterlace the input video (\*(L"yadif\*(R" means \*(L"yet another deinterlacing
yading@10 13890 filter\*(R").
yading@10 13891 .PP
yading@10 13892 This filter accepts the following options:
yading@10 13893 .IP "\fBmode\fR" 4
yading@10 13894 .IX Item "mode"
yading@10 13895 The interlacing mode to adopt, accepts one of the following values:
yading@10 13896 .RS 4
yading@10 13897 .IP "\fB0, send_frame\fR" 4
yading@10 13898 .IX Item "0, send_frame"
yading@10 13899 output 1 frame for each frame
yading@10 13900 .IP "\fB1, send_field\fR" 4
yading@10 13901 .IX Item "1, send_field"
yading@10 13902 output 1 frame for each field
yading@10 13903 .IP "\fB2, send_frame_nospatial\fR" 4
yading@10 13904 .IX Item "2, send_frame_nospatial"
yading@10 13905 like \f(CW\*(C`send_frame\*(C'\fR but skip spatial interlacing check
yading@10 13906 .IP "\fB3, send_field_nospatial\fR" 4
yading@10 13907 .IX Item "3, send_field_nospatial"
yading@10 13908 like \f(CW\*(C`send_field\*(C'\fR but skip spatial interlacing check
yading@10 13909 .RE
yading@10 13910 .RS 4
yading@10 13911 .Sp
yading@10 13912 Default value is \f(CW\*(C`send_frame\*(C'\fR.
yading@10 13913 .RE
yading@10 13914 .IP "\fBparity\fR" 4
yading@10 13915 .IX Item "parity"
yading@10 13916 The picture field parity assumed for the input interlaced video, accepts one of
yading@10 13917 the following values:
yading@10 13918 .RS 4
yading@10 13919 .IP "\fB0, tff\fR" 4
yading@10 13920 .IX Item "0, tff"
yading@10 13921 assume top field first
yading@10 13922 .IP "\fB1, bff\fR" 4
yading@10 13923 .IX Item "1, bff"
yading@10 13924 assume bottom field first
yading@10 13925 .IP "\fB\-1, auto\fR" 4
yading@10 13926 .IX Item "-1, auto"
yading@10 13927 enable automatic detection
yading@10 13928 .RE
yading@10 13929 .RS 4
yading@10 13930 .Sp
yading@10 13931 Default value is \f(CW\*(C`auto\*(C'\fR.
yading@10 13932 If interlacing is unknown or decoder does not export this information,
yading@10 13933 top field first will be assumed.
yading@10 13934 .RE
yading@10 13935 .IP "\fBdeint\fR" 4
yading@10 13936 .IX Item "deint"
yading@10 13937 Specify which frames to deinterlace. Accept one of the following
yading@10 13938 values:
yading@10 13939 .RS 4
yading@10 13940 .IP "\fB0, all\fR" 4
yading@10 13941 .IX Item "0, all"
yading@10 13942 deinterlace all frames
yading@10 13943 .IP "\fB1, interlaced\fR" 4
yading@10 13944 .IX Item "1, interlaced"
yading@10 13945 only deinterlace frames marked as interlaced
yading@10 13946 .RE
yading@10 13947 .RS 4
yading@10 13948 .Sp
yading@10 13949 Default value is \f(CW\*(C`all\*(C'\fR.
yading@10 13950 .RE
yading@10 13951 .SH "VIDEO SOURCES"
yading@10 13952 .IX Header "VIDEO SOURCES"
yading@10 13953 Below is a description of the currently available video sources.
yading@10 13954 .SS "buffer"
yading@10 13955 .IX Subsection "buffer"
yading@10 13956 Buffer video frames, and make them available to the filter chain.
yading@10 13957 .PP
yading@10 13958 This source is mainly intended for a programmatic use, in particular
yading@10 13959 through the interface defined in \fIlibavfilter/vsrc_buffer.h\fR.
yading@10 13960 .PP
yading@10 13961 This source accepts the following options:
yading@10 13962 .IP "\fBvideo_size\fR" 4
yading@10 13963 .IX Item "video_size"
yading@10 13964 Specify the size (width and height) of the buffered video frames.
yading@10 13965 .IP "\fBwidth\fR" 4
yading@10 13966 .IX Item "width"
yading@10 13967 Input video width.
yading@10 13968 .IP "\fBheight\fR" 4
yading@10 13969 .IX Item "height"
yading@10 13970 Input video height.
yading@10 13971 .IP "\fBpix_fmt\fR" 4
yading@10 13972 .IX Item "pix_fmt"
yading@10 13973 A string representing the pixel format of the buffered video frames.
yading@10 13974 It may be a number corresponding to a pixel format, or a pixel format
yading@10 13975 name.
yading@10 13976 .IP "\fBtime_base\fR" 4
yading@10 13977 .IX Item "time_base"
yading@10 13978 Specify the timebase assumed by the timestamps of the buffered frames.
yading@10 13979 .IP "\fBframe_rate\fR" 4
yading@10 13980 .IX Item "frame_rate"
yading@10 13981 Specify the frame rate expected for the video stream.
yading@10 13982 .IP "\fBpixel_aspect, sar\fR" 4
yading@10 13983 .IX Item "pixel_aspect, sar"
yading@10 13984 Specify the sample aspect ratio assumed by the video frames.
yading@10 13985 .IP "\fBsws_param\fR" 4
yading@10 13986 .IX Item "sws_param"
yading@10 13987 Specify the optional parameters to be used for the scale filter which
yading@10 13988 is automatically inserted when an input change is detected in the
yading@10 13989 input size or format.
yading@10 13990 .PP
yading@10 13991 For example:
yading@10 13992 .PP
yading@10 13993 .Vb 1
yading@10 13994 \& buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
yading@10 13995 .Ve
yading@10 13996 .PP
yading@10 13997 will instruct the source to accept video frames with size 320x240 and
yading@10 13998 with format \*(L"yuv410p\*(R", assuming 1/24 as the timestamps timebase and
yading@10 13999 square pixels (1:1 sample aspect ratio).
yading@10 14000 Since the pixel format with name \*(L"yuv410p\*(R" corresponds to the number 6
yading@10 14001 (check the enum AVPixelFormat definition in \fIlibavutil/pixfmt.h\fR),
yading@10 14002 this example corresponds to:
yading@10 14003 .PP
yading@10 14004 .Vb 1
yading@10 14005 \& buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
yading@10 14006 .Ve
yading@10 14007 .PP
yading@10 14008 Alternatively, the options can be specified as a flat string, but this
yading@10 14009 syntax is deprecated:
yading@10 14010 .PP
yading@10 14011 \&\fIwidth\fR:\fIheight\fR:\fIpix_fmt\fR:\fItime_base.num\fR:\fItime_base.den\fR:\fIpixel_aspect.num\fR:\fIpixel_aspect.den\fR[:\fIsws_param\fR]
yading@10 14012 .SS "cellauto"
yading@10 14013 .IX Subsection "cellauto"
yading@10 14014 Create a pattern generated by an elementary cellular automaton.
yading@10 14015 .PP
yading@10 14016 The initial state of the cellular automaton can be defined through the
yading@10 14017 \&\fBfilename\fR, and \fBpattern\fR options. If such options are
yading@10 14018 not specified an initial state is created randomly.
yading@10 14019 .PP
yading@10 14020 At each new frame a new row in the video is filled with the result of
yading@10 14021 the cellular automaton next generation. The behavior when the whole
yading@10 14022 frame is filled is defined by the \fBscroll\fR option.
yading@10 14023 .PP
yading@10 14024 This source accepts the following options:
yading@10 14025 .IP "\fBfilename, f\fR" 4
yading@10 14026 .IX Item "filename, f"
yading@10 14027 Read the initial cellular automaton state, i.e. the starting row, from
yading@10 14028 the specified file.
yading@10 14029 In the file, each non-whitespace character is considered an alive
yading@10 14030 cell, a newline will terminate the row, and further characters in the
yading@10 14031 file will be ignored.
yading@10 14032 .IP "\fBpattern, p\fR" 4
yading@10 14033 .IX Item "pattern, p"
yading@10 14034 Read the initial cellular automaton state, i.e. the starting row, from
yading@10 14035 the specified string.
yading@10 14036 .Sp
yading@10 14037 Each non-whitespace character in the string is considered an alive
yading@10 14038 cell, a newline will terminate the row, and further characters in the
yading@10 14039 string will be ignored.
yading@10 14040 .IP "\fBrate, r\fR" 4
yading@10 14041 .IX Item "rate, r"
yading@10 14042 Set the video rate, that is the number of frames generated per second.
yading@10 14043 Default is 25.
yading@10 14044 .IP "\fBrandom_fill_ratio, ratio\fR" 4
yading@10 14045 .IX Item "random_fill_ratio, ratio"
yading@10 14046 Set the random fill ratio for the initial cellular automaton row. It
yading@10 14047 is a floating point number value ranging from 0 to 1, defaults to
yading@10 14048 1/PHI.
yading@10 14049 .Sp
yading@10 14050 This option is ignored when a file or a pattern is specified.
yading@10 14051 .IP "\fBrandom_seed, seed\fR" 4
yading@10 14052 .IX Item "random_seed, seed"
yading@10 14053 Set the seed for filling randomly the initial row, must be an integer
yading@10 14054 included between 0 and \s-1UINT32_MAX\s0. If not specified, or if explicitly
yading@10 14055 set to \-1, the filter will try to use a good random seed on a best
yading@10 14056 effort basis.
yading@10 14057 .IP "\fBrule\fR" 4
yading@10 14058 .IX Item "rule"
yading@10 14059 Set the cellular automaton rule, it is a number ranging from 0 to 255.
yading@10 14060 Default value is 110.
yading@10 14061 .IP "\fBsize, s\fR" 4
yading@10 14062 .IX Item "size, s"
yading@10 14063 Set the size of the output video.
yading@10 14064 .Sp
yading@10 14065 If \fBfilename\fR or \fBpattern\fR is specified, the size is set
yading@10 14066 by default to the width of the specified initial state row, and the
yading@10 14067 height is set to \fIwidth\fR * \s-1PHI\s0.
yading@10 14068 .Sp
yading@10 14069 If \fBsize\fR is set, it must contain the width of the specified
yading@10 14070 pattern string, and the specified pattern will be centered in the
yading@10 14071 larger row.
yading@10 14072 .Sp
yading@10 14073 If a filename or a pattern string is not specified, the size value
yading@10 14074 defaults to \*(L"320x518\*(R" (used for a randomly generated initial state).
yading@10 14075 .IP "\fBscroll\fR" 4
yading@10 14076 .IX Item "scroll"
yading@10 14077 If set to 1, scroll the output upward when all the rows in the output
yading@10 14078 have been already filled. If set to 0, the new generated row will be
yading@10 14079 written over the top row just after the bottom row is filled.
yading@10 14080 Defaults to 1.
yading@10 14081 .IP "\fBstart_full, full\fR" 4
yading@10 14082 .IX Item "start_full, full"
yading@10 14083 If set to 1, completely fill the output with generated rows before
yading@10 14084 outputting the first frame.
yading@10 14085 This is the default behavior, for disabling set the value to 0.
yading@10 14086 .IP "\fBstitch\fR" 4
yading@10 14087 .IX Item "stitch"
yading@10 14088 If set to 1, stitch the left and right row edges together.
yading@10 14089 This is the default behavior, for disabling set the value to 0.
yading@10 14090 .PP
yading@10 14091 \fIExamples\fR
yading@10 14092 .IX Subsection "Examples"
yading@10 14093 .IP "\(bu" 4
yading@10 14094 Read the initial state from \fIpattern\fR, and specify an output of
yading@10 14095 size 200x400.
yading@10 14096 .Sp
yading@10 14097 .Vb 1
yading@10 14098 \& cellauto=f=pattern:s=200x400
yading@10 14099 .Ve
yading@10 14100 .IP "\(bu" 4
yading@10 14101 Generate a random initial row with a width of 200 cells, with a fill
yading@10 14102 ratio of 2/3:
yading@10 14103 .Sp
yading@10 14104 .Vb 1
yading@10 14105 \& cellauto=ratio=2/3:s=200x200
yading@10 14106 .Ve
yading@10 14107 .IP "\(bu" 4
yading@10 14108 Create a pattern generated by rule 18 starting by a single alive cell
yading@10 14109 centered on an initial row with width 100:
yading@10 14110 .Sp
yading@10 14111 .Vb 1
yading@10 14112 \& cellauto=p=@s=100x400:full=0:rule=18
yading@10 14113 .Ve
yading@10 14114 .IP "\(bu" 4
yading@10 14115 Specify a more elaborated initial pattern:
yading@10 14116 .Sp
yading@10 14117 .Vb 1
yading@10 14118 \& cellauto=p=\*(Aq@@ @ @@\*(Aq:s=100x400:full=0:rule=18
yading@10 14119 .Ve
yading@10 14120 .SS "mandelbrot"
yading@10 14121 .IX Subsection "mandelbrot"
yading@10 14122 Generate a Mandelbrot set fractal, and progressively zoom towards the
yading@10 14123 point specified with \fIstart_x\fR and \fIstart_y\fR.
yading@10 14124 .PP
yading@10 14125 This source accepts the following options:
yading@10 14126 .IP "\fBend_pts\fR" 4
yading@10 14127 .IX Item "end_pts"
yading@10 14128 Set the terminal pts value. Default value is 400.
yading@10 14129 .IP "\fBend_scale\fR" 4
yading@10 14130 .IX Item "end_scale"
yading@10 14131 Set the terminal scale value.
yading@10 14132 Must be a floating point value. Default value is 0.3.
yading@10 14133 .IP "\fBinner\fR" 4
yading@10 14134 .IX Item "inner"
yading@10 14135 Set the inner coloring mode, that is the algorithm used to draw the
yading@10 14136 Mandelbrot fractal internal region.
yading@10 14137 .Sp
yading@10 14138 It shall assume one of the following values:
yading@10 14139 .RS 4
yading@10 14140 .IP "\fBblack\fR" 4
yading@10 14141 .IX Item "black"
yading@10 14142 Set black mode.
yading@10 14143 .IP "\fBconvergence\fR" 4
yading@10 14144 .IX Item "convergence"
yading@10 14145 Show time until convergence.
yading@10 14146 .IP "\fBmincol\fR" 4
yading@10 14147 .IX Item "mincol"
yading@10 14148 Set color based on point closest to the origin of the iterations.
yading@10 14149 .IP "\fBperiod\fR" 4
yading@10 14150 .IX Item "period"
yading@10 14151 Set period mode.
yading@10 14152 .RE
yading@10 14153 .RS 4
yading@10 14154 .Sp
yading@10 14155 Default value is \fImincol\fR.
yading@10 14156 .RE
yading@10 14157 .IP "\fBbailout\fR" 4
yading@10 14158 .IX Item "bailout"
yading@10 14159 Set the bailout value. Default value is 10.0.
yading@10 14160 .IP "\fBmaxiter\fR" 4
yading@10 14161 .IX Item "maxiter"
yading@10 14162 Set the maximum of iterations performed by the rendering
yading@10 14163 algorithm. Default value is 7189.
yading@10 14164 .IP "\fBouter\fR" 4
yading@10 14165 .IX Item "outer"
yading@10 14166 Set outer coloring mode.
yading@10 14167 It shall assume one of following values:
yading@10 14168 .RS 4
yading@10 14169 .IP "\fBiteration_count\fR" 4
yading@10 14170 .IX Item "iteration_count"
yading@10 14171 Set iteration cound mode.
yading@10 14172 .IP "\fBnormalized_iteration_count\fR" 4
yading@10 14173 .IX Item "normalized_iteration_count"
yading@10 14174 set normalized iteration count mode.
yading@10 14175 .RE
yading@10 14176 .RS 4
yading@10 14177 .Sp
yading@10 14178 Default value is \fInormalized_iteration_count\fR.
yading@10 14179 .RE
yading@10 14180 .IP "\fBrate, r\fR" 4
yading@10 14181 .IX Item "rate, r"
yading@10 14182 Set frame rate, expressed as number of frames per second. Default
yading@10 14183 value is \*(L"25\*(R".
yading@10 14184 .IP "\fBsize, s\fR" 4
yading@10 14185 .IX Item "size, s"
yading@10 14186 Set frame size. Default value is \*(L"640x480\*(R".
yading@10 14187 .IP "\fBstart_scale\fR" 4
yading@10 14188 .IX Item "start_scale"
yading@10 14189 Set the initial scale value. Default value is 3.0.
yading@10 14190 .IP "\fBstart_x\fR" 4
yading@10 14191 .IX Item "start_x"
yading@10 14192 Set the initial x position. Must be a floating point value between
yading@10 14193 \&\-100 and 100. Default value is \-0.743643887037158704752191506114774.
yading@10 14194 .IP "\fBstart_y\fR" 4
yading@10 14195 .IX Item "start_y"
yading@10 14196 Set the initial y position. Must be a floating point value between
yading@10 14197 \&\-100 and 100. Default value is \-0.131825904205311970493132056385139.
yading@10 14198 .SS "mptestsrc"
yading@10 14199 .IX Subsection "mptestsrc"
yading@10 14200 Generate various test patterns, as generated by the MPlayer test filter.
yading@10 14201 .PP
yading@10 14202 The size of the generated video is fixed, and is 256x256.
yading@10 14203 This source is useful in particular for testing encoding features.
yading@10 14204 .PP
yading@10 14205 This source accepts the following options:
yading@10 14206 .IP "\fBrate, r\fR" 4
yading@10 14207 .IX Item "rate, r"
yading@10 14208 Specify the frame rate of the sourced video, as the number of frames
yading@10 14209 generated per second. It has to be a string in the format
yading@10 14210 \&\fIframe_rate_num\fR/\fIframe_rate_den\fR, an integer number, a float
yading@10 14211 number or a valid video frame rate abbreviation. The default value is
yading@10 14212 \&\*(L"25\*(R".
yading@10 14213 .IP "\fBduration, d\fR" 4
yading@10 14214 .IX Item "duration, d"
yading@10 14215 Set the video duration of the sourced video. The accepted syntax is:
yading@10 14216 .Sp
yading@10 14217 .Vb 2
yading@10 14218 \& [\-]HH:MM:SS[.m...]
yading@10 14219 \& [\-]S+[.m...]
yading@10 14220 .Ve
yading@10 14221 .Sp
yading@10 14222 See also the function \f(CW\*(C`av_parse_time()\*(C'\fR.
yading@10 14223 .Sp
yading@10 14224 If not specified, or the expressed duration is negative, the video is
yading@10 14225 supposed to be generated forever.
yading@10 14226 .IP "\fBtest, t\fR" 4
yading@10 14227 .IX Item "test, t"
yading@10 14228 Set the number or the name of the test to perform. Supported tests are:
yading@10 14229 .RS 4
yading@10 14230 .IP "\fBdc_luma\fR" 4
yading@10 14231 .IX Item "dc_luma"
yading@10 14232 .PD 0
yading@10 14233 .IP "\fBdc_chroma\fR" 4
yading@10 14234 .IX Item "dc_chroma"
yading@10 14235 .IP "\fBfreq_luma\fR" 4
yading@10 14236 .IX Item "freq_luma"
yading@10 14237 .IP "\fBfreq_chroma\fR" 4
yading@10 14238 .IX Item "freq_chroma"
yading@10 14239 .IP "\fBamp_luma\fR" 4
yading@10 14240 .IX Item "amp_luma"
yading@10 14241 .IP "\fBamp_chroma\fR" 4
yading@10 14242 .IX Item "amp_chroma"
yading@10 14243 .IP "\fBcbp\fR" 4
yading@10 14244 .IX Item "cbp"
yading@10 14245 .IP "\fBmv\fR" 4
yading@10 14246 .IX Item "mv"
yading@10 14247 .IP "\fBring1\fR" 4
yading@10 14248 .IX Item "ring1"
yading@10 14249 .IP "\fBring2\fR" 4
yading@10 14250 .IX Item "ring2"
yading@10 14251 .IP "\fBall\fR" 4
yading@10 14252 .IX Item "all"
yading@10 14253 .RE
yading@10 14254 .RS 4
yading@10 14255 .PD
yading@10 14256 .Sp
yading@10 14257 Default value is \*(L"all\*(R", which will cycle through the list of all tests.
yading@10 14258 .RE
yading@10 14259 .PP
yading@10 14260 For example the following:
yading@10 14261 .PP
yading@10 14262 .Vb 1
yading@10 14263 \& testsrc=t=dc_luma
yading@10 14264 .Ve
yading@10 14265 .PP
yading@10 14266 will generate a \*(L"dc_luma\*(R" test pattern.
yading@10 14267 .SS "frei0r_src"
yading@10 14268 .IX Subsection "frei0r_src"
yading@10 14269 Provide a frei0r source.
yading@10 14270 .PP
yading@10 14271 To enable compilation of this filter you need to install the frei0r
yading@10 14272 header and configure FFmpeg with \f(CW\*(C`\-\-enable\-frei0r\*(C'\fR.
yading@10 14273 .PP
yading@10 14274 This source accepts the following options:
yading@10 14275 .IP "\fBsize\fR" 4
yading@10 14276 .IX Item "size"
yading@10 14277 The size of the video to generate, may be a string of the form
yading@10 14278 \&\fIwidth\fRx\fIheight\fR or a frame size abbreviation.
yading@10 14279 .IP "\fBframerate\fR" 4
yading@10 14280 .IX Item "framerate"
yading@10 14281 Framerate of the generated video, may be a string of the form
yading@10 14282 \&\fInum\fR/\fIden\fR or a frame rate abbreviation.
yading@10 14283 .IP "\fBfilter_name\fR" 4
yading@10 14284 .IX Item "filter_name"
yading@10 14285 The name to the frei0r source to load. For more information regarding frei0r and
yading@10 14286 how to set the parameters read the section frei0r in the description of
yading@10 14287 the video filters.
yading@10 14288 .IP "\fBfilter_params\fR" 4
yading@10 14289 .IX Item "filter_params"
yading@10 14290 A '|'\-separated list of parameters to pass to the frei0r source.
yading@10 14291 .PP
yading@10 14292 For example, to generate a frei0r partik0l source with size 200x200
yading@10 14293 and frame rate 10 which is overlayed on the overlay filter main input:
yading@10 14294 .PP
yading@10 14295 .Vb 1
yading@10 14296 \& frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
yading@10 14297 .Ve
yading@10 14298 .SS "life"
yading@10 14299 .IX Subsection "life"
yading@10 14300 Generate a life pattern.
yading@10 14301 .PP
yading@10 14302 This source is based on a generalization of John Conway's life game.
yading@10 14303 .PP
yading@10 14304 The sourced input represents a life grid, each pixel represents a cell
yading@10 14305 which can be in one of two possible states, alive or dead. Every cell
yading@10 14306 interacts with its eight neighbours, which are the cells that are
yading@10 14307 horizontally, vertically, or diagonally adjacent.
yading@10 14308 .PP
yading@10 14309 At each interaction the grid evolves according to the adopted rule,
yading@10 14310 which specifies the number of neighbor alive cells which will make a
yading@10 14311 cell stay alive or born. The \fBrule\fR option allows to specify
yading@10 14312 the rule to adopt.
yading@10 14313 .PP
yading@10 14314 This source accepts the following options:
yading@10 14315 .IP "\fBfilename, f\fR" 4
yading@10 14316 .IX Item "filename, f"
yading@10 14317 Set the file from which to read the initial grid state. In the file,
yading@10 14318 each non-whitespace character is considered an alive cell, and newline
yading@10 14319 is used to delimit the end of each row.
yading@10 14320 .Sp
yading@10 14321 If this option is not specified, the initial grid is generated
yading@10 14322 randomly.
yading@10 14323 .IP "\fBrate, r\fR" 4
yading@10 14324 .IX Item "rate, r"
yading@10 14325 Set the video rate, that is the number of frames generated per second.
yading@10 14326 Default is 25.
yading@10 14327 .IP "\fBrandom_fill_ratio, ratio\fR" 4
yading@10 14328 .IX Item "random_fill_ratio, ratio"
yading@10 14329 Set the random fill ratio for the initial random grid. It is a
yading@10 14330 floating point number value ranging from 0 to 1, defaults to 1/PHI.
yading@10 14331 It is ignored when a file is specified.
yading@10 14332 .IP "\fBrandom_seed, seed\fR" 4
yading@10 14333 .IX Item "random_seed, seed"
yading@10 14334 Set the seed for filling the initial random grid, must be an integer
yading@10 14335 included between 0 and \s-1UINT32_MAX\s0. If not specified, or if explicitly
yading@10 14336 set to \-1, the filter will try to use a good random seed on a best
yading@10 14337 effort basis.
yading@10 14338 .IP "\fBrule\fR" 4
yading@10 14339 .IX Item "rule"
yading@10 14340 Set the life rule.
yading@10 14341 .Sp
yading@10 14342 A rule can be specified with a code of the kind "S\fI\s-1NS\s0\fR/B\fI\s-1NB\s0\fR",
yading@10 14343 where \fI\s-1NS\s0\fR and \fI\s-1NB\s0\fR are sequences of numbers in the range 0\-8,
yading@10 14344 \&\fI\s-1NS\s0\fR specifies the number of alive neighbor cells which make a
yading@10 14345 live cell stay alive, and \fI\s-1NB\s0\fR the number of alive neighbor cells
yading@10 14346 which make a dead cell to become alive (i.e. to \*(L"born\*(R").
yading@10 14347 \&\*(L"s\*(R" and \*(L"b\*(R" can be used in place of \*(L"S\*(R" and \*(L"B\*(R", respectively.
yading@10 14348 .Sp
yading@10 14349 Alternatively a rule can be specified by an 18\-bits integer. The 9
yading@10 14350 high order bits are used to encode the next cell state if it is alive
yading@10 14351 for each number of neighbor alive cells, the low order bits specify
yading@10 14352 the rule for \*(L"borning\*(R" new cells. Higher order bits encode for an
yading@10 14353 higher number of neighbor cells.
yading@10 14354 For example the number 6153 = \f(CW\*(C`(12<<9)+9\*(C'\fR specifies a stay alive
yading@10 14355 rule of 12 and a born rule of 9, which corresponds to \*(L"S23/B03\*(R".
yading@10 14356 .Sp
yading@10 14357 Default value is \*(L"S23/B3\*(R", which is the original Conway's game of life
yading@10 14358 rule, and will keep a cell alive if it has 2 or 3 neighbor alive
yading@10 14359 cells, and will born a new cell if there are three alive cells around
yading@10 14360 a dead cell.
yading@10 14361 .IP "\fBsize, s\fR" 4
yading@10 14362 .IX Item "size, s"
yading@10 14363 Set the size of the output video.
yading@10 14364 .Sp
yading@10 14365 If \fBfilename\fR is specified, the size is set by default to the
yading@10 14366 same size of the input file. If \fBsize\fR is set, it must contain
yading@10 14367 the size specified in the input file, and the initial grid defined in
yading@10 14368 that file is centered in the larger resulting area.
yading@10 14369 .Sp
yading@10 14370 If a filename is not specified, the size value defaults to \*(L"320x240\*(R"
yading@10 14371 (used for a randomly generated initial grid).
yading@10 14372 .IP "\fBstitch\fR" 4
yading@10 14373 .IX Item "stitch"
yading@10 14374 If set to 1, stitch the left and right grid edges together, and the
yading@10 14375 top and bottom edges also. Defaults to 1.
yading@10 14376 .IP "\fBmold\fR" 4
yading@10 14377 .IX Item "mold"
yading@10 14378 Set cell mold speed. If set, a dead cell will go from \fBdeath_color\fR to
yading@10 14379 \&\fBmold_color\fR with a step of \fBmold\fR. \fBmold\fR can have a
yading@10 14380 value from 0 to 255.
yading@10 14381 .IP "\fBlife_color\fR" 4
yading@10 14382 .IX Item "life_color"
yading@10 14383 Set the color of living (or new born) cells.
yading@10 14384 .IP "\fBdeath_color\fR" 4
yading@10 14385 .IX Item "death_color"
yading@10 14386 Set the color of dead cells. If \fBmold\fR is set, this is the first color
yading@10 14387 used to represent a dead cell.
yading@10 14388 .IP "\fBmold_color\fR" 4
yading@10 14389 .IX Item "mold_color"
yading@10 14390 Set mold color, for definitely dead and moldy cells.
yading@10 14391 .PP
yading@10 14392 \fIExamples\fR
yading@10 14393 .IX Subsection "Examples"
yading@10 14394 .IP "\(bu" 4
yading@10 14395 Read a grid from \fIpattern\fR, and center it on a grid of size
yading@10 14396 300x300 pixels:
yading@10 14397 .Sp
yading@10 14398 .Vb 1
yading@10 14399 \& life=f=pattern:s=300x300
yading@10 14400 .Ve
yading@10 14401 .IP "\(bu" 4
yading@10 14402 Generate a random grid of size 200x200, with a fill ratio of 2/3:
yading@10 14403 .Sp
yading@10 14404 .Vb 1
yading@10 14405 \& life=ratio=2/3:s=200x200
yading@10 14406 .Ve
yading@10 14407 .IP "\(bu" 4
yading@10 14408 Specify a custom rule for evolving a randomly generated grid:
yading@10 14409 .Sp
yading@10 14410 .Vb 1
yading@10 14411 \& life=rule=S14/B34
yading@10 14412 .Ve
yading@10 14413 .IP "\(bu" 4
yading@10 14414 Full example with slow death effect (mold) using \fBffplay\fR:
yading@10 14415 .Sp
yading@10 14416 .Vb 1
yading@10 14417 \& ffplay \-f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
yading@10 14418 .Ve
yading@10 14419 .SS "color, nullsrc, rgbtestsrc, smptebars, smptehdbars, testsrc"
yading@10 14420 .IX Subsection "color, nullsrc, rgbtestsrc, smptebars, smptehdbars, testsrc"
yading@10 14421 The \f(CW\*(C`color\*(C'\fR source provides an uniformly colored input.
yading@10 14422 .PP
yading@10 14423 The \f(CW\*(C`nullsrc\*(C'\fR source returns unprocessed video frames. It is
yading@10 14424 mainly useful to be employed in analysis / debugging tools, or as the
yading@10 14425 source for filters which ignore the input data.
yading@10 14426 .PP
yading@10 14427 The \f(CW\*(C`rgbtestsrc\*(C'\fR source generates an \s-1RGB\s0 test pattern useful for
yading@10 14428 detecting \s-1RGB\s0 vs \s-1BGR\s0 issues. You should see a red, green and blue
yading@10 14429 stripe from top to bottom.
yading@10 14430 .PP
yading@10 14431 The \f(CW\*(C`smptebars\*(C'\fR source generates a color bars pattern, based on
yading@10 14432 the \s-1SMPTE\s0 Engineering Guideline \s-1EG\s0 1\-1990.
yading@10 14433 .PP
yading@10 14434 The \f(CW\*(C`smptehdbars\*(C'\fR source generates a color bars pattern, based on
yading@10 14435 the \s-1SMPTE\s0 \s-1RP\s0 219\-2002.
yading@10 14436 .PP
yading@10 14437 The \f(CW\*(C`testsrc\*(C'\fR source generates a test video pattern, showing a
yading@10 14438 color pattern, a scrolling gradient and a timestamp. This is mainly
yading@10 14439 intended for testing purposes.
yading@10 14440 .PP
yading@10 14441 The sources accept the following options:
yading@10 14442 .IP "\fBcolor, c\fR" 4
yading@10 14443 .IX Item "color, c"
yading@10 14444 Specify the color of the source, only used in the \f(CW\*(C`color\*(C'\fR
yading@10 14445 source. It can be the name of a color (case insensitive match) or a
yading@10 14446 0xRRGGBB[\s-1AA\s0] sequence, possibly followed by an alpha specifier. The
yading@10 14447 default value is \*(L"black\*(R".
yading@10 14448 .IP "\fBsize, s\fR" 4
yading@10 14449 .IX Item "size, s"
yading@10 14450 Specify the size of the sourced video, it may be a string of the form
yading@10 14451 \&\fIwidth\fRx\fIheight\fR, or the name of a size abbreviation. The
yading@10 14452 default value is \*(L"320x240\*(R".
yading@10 14453 .IP "\fBrate, r\fR" 4
yading@10 14454 .IX Item "rate, r"
yading@10 14455 Specify the frame rate of the sourced video, as the number of frames
yading@10 14456 generated per second. It has to be a string in the format
yading@10 14457 \&\fIframe_rate_num\fR/\fIframe_rate_den\fR, an integer number, a float
yading@10 14458 number or a valid video frame rate abbreviation. The default value is
yading@10 14459 \&\*(L"25\*(R".
yading@10 14460 .IP "\fBsar\fR" 4
yading@10 14461 .IX Item "sar"
yading@10 14462 Set the sample aspect ratio of the sourced video.
yading@10 14463 .IP "\fBduration, d\fR" 4
yading@10 14464 .IX Item "duration, d"
yading@10 14465 Set the video duration of the sourced video. The accepted syntax is:
yading@10 14466 .Sp
yading@10 14467 .Vb 2
yading@10 14468 \& [\-]HH[:MM[:SS[.m...]]]
yading@10 14469 \& [\-]S+[.m...]
yading@10 14470 .Ve
yading@10 14471 .Sp
yading@10 14472 See also the function \f(CW\*(C`av_parse_time()\*(C'\fR.
yading@10 14473 .Sp
yading@10 14474 If not specified, or the expressed duration is negative, the video is
yading@10 14475 supposed to be generated forever.
yading@10 14476 .IP "\fBdecimals, n\fR" 4
yading@10 14477 .IX Item "decimals, n"
yading@10 14478 Set the number of decimals to show in the timestamp, only used in the
yading@10 14479 \&\f(CW\*(C`testsrc\*(C'\fR source.
yading@10 14480 .Sp
yading@10 14481 The displayed timestamp value will correspond to the original
yading@10 14482 timestamp value multiplied by the power of 10 of the specified
yading@10 14483 value. Default value is 0.
yading@10 14484 .PP
yading@10 14485 For example the following:
yading@10 14486 .PP
yading@10 14487 .Vb 1
yading@10 14488 \& testsrc=duration=5.3:size=qcif:rate=10
yading@10 14489 .Ve
yading@10 14490 .PP
yading@10 14491 will generate a video with a duration of 5.3 seconds, with size
yading@10 14492 176x144 and a frame rate of 10 frames per second.
yading@10 14493 .PP
yading@10 14494 The following graph description will generate a red source
yading@10 14495 with an opacity of 0.2, with size \*(L"qcif\*(R" and a frame rate of 10
yading@10 14496 frames per second.
yading@10 14497 .PP
yading@10 14498 .Vb 1
yading@10 14499 \& color=c=red@0.2:s=qcif:r=10
yading@10 14500 .Ve
yading@10 14501 .PP
yading@10 14502 If the input content is to be ignored, \f(CW\*(C`nullsrc\*(C'\fR can be used. The
yading@10 14503 following command generates noise in the luminance plane by employing
yading@10 14504 the \f(CW\*(C`geq\*(C'\fR filter:
yading@10 14505 .PP
yading@10 14506 .Vb 1
yading@10 14507 \& nullsrc=s=256x256, geq=random(1)*255:128:128
yading@10 14508 .Ve
yading@10 14509 .SH "VIDEO SINKS"
yading@10 14510 .IX Header "VIDEO SINKS"
yading@10 14511 Below is a description of the currently available video sinks.
yading@10 14512 .SS "buffersink"
yading@10 14513 .IX Subsection "buffersink"
yading@10 14514 Buffer video frames, and make them available to the end of the filter
yading@10 14515 graph.
yading@10 14516 .PP
yading@10 14517 This sink is mainly intended for a programmatic use, in particular
yading@10 14518 through the interface defined in \fIlibavfilter/buffersink.h\fR
yading@10 14519 or the options system.
yading@10 14520 .PP
yading@10 14521 It accepts a pointer to an AVBufferSinkContext structure, which
yading@10 14522 defines the incoming buffers' formats, to be passed as the opaque
yading@10 14523 parameter to \f(CW\*(C`avfilter_init_filter\*(C'\fR for initialization.
yading@10 14524 .SS "nullsink"
yading@10 14525 .IX Subsection "nullsink"
yading@10 14526 Null video sink, do absolutely nothing with the input video. It is
yading@10 14527 mainly useful as a template and to be employed in analysis / debugging
yading@10 14528 tools.
yading@10 14529 .SH "MULTIMEDIA FILTERS"
yading@10 14530 .IX Header "MULTIMEDIA FILTERS"
yading@10 14531 Below is a description of the currently available multimedia filters.
yading@10 14532 .SS "aperms, perms"
yading@10 14533 .IX Subsection "aperms, perms"
yading@10 14534 Set read/write permissions for the output frames.
yading@10 14535 .PP
yading@10 14536 These filters are mainly aimed at developers to test direct path in the
yading@10 14537 following filter in the filtergraph.
yading@10 14538 .PP
yading@10 14539 The filters accept the following options:
yading@10 14540 .IP "\fBmode\fR" 4
yading@10 14541 .IX Item "mode"
yading@10 14542 Select the permissions mode.
yading@10 14543 .Sp
yading@10 14544 It accepts the following values:
yading@10 14545 .RS 4
yading@10 14546 .IP "\fBnone\fR" 4
yading@10 14547 .IX Item "none"
yading@10 14548 Do nothing. This is the default.
yading@10 14549 .IP "\fBro\fR" 4
yading@10 14550 .IX Item "ro"
yading@10 14551 Set all the output frames read-only.
yading@10 14552 .IP "\fBrw\fR" 4
yading@10 14553 .IX Item "rw"
yading@10 14554 Set all the output frames directly writable.
yading@10 14555 .IP "\fBtoggle\fR" 4
yading@10 14556 .IX Item "toggle"
yading@10 14557 Make the frame read-only if writable, and writable if read-only.
yading@10 14558 .IP "\fBrandom\fR" 4
yading@10 14559 .IX Item "random"
yading@10 14560 Set each output frame read-only or writable randomly.
yading@10 14561 .RE
yading@10 14562 .RS 4
yading@10 14563 .RE
yading@10 14564 .IP "\fBseed\fR" 4
yading@10 14565 .IX Item "seed"
yading@10 14566 Set the seed for the \fIrandom\fR mode, must be an integer included between
yading@10 14567 \&\f(CW0\fR and \f(CW\*(C`UINT32_MAX\*(C'\fR. If not specified, or if explicitly set to
yading@10 14568 \&\f(CW\*(C`\-1\*(C'\fR, the filter will try to use a good random seed on a best effort
yading@10 14569 basis.
yading@10 14570 .PP
yading@10 14571 Note: in case of auto-inserted filter between the permission filter and the
yading@10 14572 following one, the permission might not be received as expected in that
yading@10 14573 following filter. Inserting a format or aformat filter before the
yading@10 14574 perms/aperms filter can avoid this problem.
yading@10 14575 .SS "aselect, select"
yading@10 14576 .IX Subsection "aselect, select"
yading@10 14577 Select frames to pass in output.
yading@10 14578 .PP
yading@10 14579 This filter accepts the following options:
yading@10 14580 .IP "\fBexpr, e\fR" 4
yading@10 14581 .IX Item "expr, e"
yading@10 14582 Set expression, which is evaluated for each input frame.
yading@10 14583 .Sp
yading@10 14584 If the expression is evaluated to zero, the frame is discarded.
yading@10 14585 .Sp
yading@10 14586 If the evaluation result is negative or NaN, the frame is sent to the
yading@10 14587 first output; otherwise it is sent to the output with index
yading@10 14588 \&\f(CW\*(C`ceil(val)\-1\*(C'\fR, assuming that the input index starts from 0.
yading@10 14589 .Sp
yading@10 14590 For example a value of \f(CW1.2\fR corresponds to the output with index
yading@10 14591 \&\f(CW\*(C`ceil(1.2)\-1 = 2\-1 = 1\*(C'\fR, that is the second output.
yading@10 14592 .IP "\fBoutputs, n\fR" 4
yading@10 14593 .IX Item "outputs, n"
yading@10 14594 Set the number of outputs. The output to which to send the selected
yading@10 14595 frame is based on the result of the evaluation. Default value is 1.
yading@10 14596 .PP
yading@10 14597 The expression can contain the following constants:
yading@10 14598 .IP "\fBn\fR" 4
yading@10 14599 .IX Item "n"
yading@10 14600 the sequential number of the filtered frame, starting from 0
yading@10 14601 .IP "\fBselected_n\fR" 4
yading@10 14602 .IX Item "selected_n"
yading@10 14603 the sequential number of the selected frame, starting from 0
yading@10 14604 .IP "\fBprev_selected_n\fR" 4
yading@10 14605 .IX Item "prev_selected_n"
yading@10 14606 the sequential number of the last selected frame, \s-1NAN\s0 if undefined
yading@10 14607 .IP "\fB\s-1TB\s0\fR" 4
yading@10 14608 .IX Item "TB"
yading@10 14609 timebase of the input timestamps
yading@10 14610 .IP "\fBpts\fR" 4
yading@10 14611 .IX Item "pts"
yading@10 14612 the \s-1PTS\s0 (Presentation TimeStamp) of the filtered video frame,
yading@10 14613 expressed in \fI\s-1TB\s0\fR units, \s-1NAN\s0 if undefined
yading@10 14614 .IP "\fBt\fR" 4
yading@10 14615 .IX Item "t"
yading@10 14616 the \s-1PTS\s0 (Presentation TimeStamp) of the filtered video frame,
yading@10 14617 expressed in seconds, \s-1NAN\s0 if undefined
yading@10 14618 .IP "\fBprev_pts\fR" 4
yading@10 14619 .IX Item "prev_pts"
yading@10 14620 the \s-1PTS\s0 of the previously filtered video frame, \s-1NAN\s0 if undefined
yading@10 14621 .IP "\fBprev_selected_pts\fR" 4
yading@10 14622 .IX Item "prev_selected_pts"
yading@10 14623 the \s-1PTS\s0 of the last previously filtered video frame, \s-1NAN\s0 if undefined
yading@10 14624 .IP "\fBprev_selected_t\fR" 4
yading@10 14625 .IX Item "prev_selected_t"
yading@10 14626 the \s-1PTS\s0 of the last previously selected video frame, \s-1NAN\s0 if undefined
yading@10 14627 .IP "\fBstart_pts\fR" 4
yading@10 14628 .IX Item "start_pts"
yading@10 14629 the \s-1PTS\s0 of the first video frame in the video, \s-1NAN\s0 if undefined
yading@10 14630 .IP "\fBstart_t\fR" 4
yading@10 14631 .IX Item "start_t"
yading@10 14632 the time of the first video frame in the video, \s-1NAN\s0 if undefined
yading@10 14633 .IP "\fBpict_type\fR \fI(video only)\fR" 4
yading@10 14634 .IX Item "pict_type (video only)"
yading@10 14635 the type of the filtered frame, can assume one of the following
yading@10 14636 values:
yading@10 14637 .RS 4
yading@10 14638 .IP "\fBI\fR" 4
yading@10 14639 .IX Item "I"
yading@10 14640 .PD 0
yading@10 14641 .IP "\fBP\fR" 4
yading@10 14642 .IX Item "P"
yading@10 14643 .IP "\fBB\fR" 4
yading@10 14644 .IX Item "B"
yading@10 14645 .IP "\fBS\fR" 4
yading@10 14646 .IX Item "S"
yading@10 14647 .IP "\fB\s-1SI\s0\fR" 4
yading@10 14648 .IX Item "SI"
yading@10 14649 .IP "\fB\s-1SP\s0\fR" 4
yading@10 14650 .IX Item "SP"
yading@10 14651 .IP "\fB\s-1BI\s0\fR" 4
yading@10 14652 .IX Item "BI"
yading@10 14653 .RE
yading@10 14654 .RS 4
yading@10 14655 .RE
yading@10 14656 .IP "\fBinterlace_type\fR \fI(video only)\fR" 4
yading@10 14657 .IX Item "interlace_type (video only)"
yading@10 14658 .PD
yading@10 14659 the frame interlace type, can assume one of the following values:
yading@10 14660 .RS 4
yading@10 14661 .IP "\fB\s-1PROGRESSIVE\s0\fR" 4
yading@10 14662 .IX Item "PROGRESSIVE"
yading@10 14663 the frame is progressive (not interlaced)
yading@10 14664 .IP "\fB\s-1TOPFIRST\s0\fR" 4
yading@10 14665 .IX Item "TOPFIRST"
yading@10 14666 the frame is top-field-first
yading@10 14667 .IP "\fB\s-1BOTTOMFIRST\s0\fR" 4
yading@10 14668 .IX Item "BOTTOMFIRST"
yading@10 14669 the frame is bottom-field-first
yading@10 14670 .RE
yading@10 14671 .RS 4
yading@10 14672 .RE
yading@10 14673 .IP "\fBconsumed_sample_n\fR \fI(audio only)\fR" 4
yading@10 14674 .IX Item "consumed_sample_n (audio only)"
yading@10 14675 the number of selected samples before the current frame
yading@10 14676 .IP "\fBsamples_n\fR \fI(audio only)\fR" 4
yading@10 14677 .IX Item "samples_n (audio only)"
yading@10 14678 the number of samples in the current frame
yading@10 14679 .IP "\fBsample_rate\fR \fI(audio only)\fR" 4
yading@10 14680 .IX Item "sample_rate (audio only)"
yading@10 14681 the input sample rate
yading@10 14682 .IP "\fBkey\fR" 4
yading@10 14683 .IX Item "key"
yading@10 14684 1 if the filtered frame is a key-frame, 0 otherwise
yading@10 14685 .IP "\fBpos\fR" 4
yading@10 14686 .IX Item "pos"
yading@10 14687 the position in the file of the filtered frame, \-1 if the information
yading@10 14688 is not available (e.g. for synthetic video)
yading@10 14689 .IP "\fBscene\fR \fI(video only)\fR" 4
yading@10 14690 .IX Item "scene (video only)"
yading@10 14691 value between 0 and 1 to indicate a new scene; a low value reflects a low
yading@10 14692 probability for the current frame to introduce a new scene, while a higher
yading@10 14693 value means the current frame is more likely to be one (see the example below)
yading@10 14694 .PP
yading@10 14695 The default value of the select expression is \*(L"1\*(R".
yading@10 14696 .PP
yading@10 14697 \fIExamples\fR
yading@10 14698 .IX Subsection "Examples"
yading@10 14699 .IP "\(bu" 4
yading@10 14700 Select all frames in input:
yading@10 14701 .Sp
yading@10 14702 .Vb 1
yading@10 14703 \& select
yading@10 14704 .Ve
yading@10 14705 .Sp
yading@10 14706 The example above is the same as:
yading@10 14707 .Sp
yading@10 14708 .Vb 1
yading@10 14709 \& select=1
yading@10 14710 .Ve
yading@10 14711 .IP "\(bu" 4
yading@10 14712 Skip all frames:
yading@10 14713 .Sp
yading@10 14714 .Vb 1
yading@10 14715 \& select=0
yading@10 14716 .Ve
yading@10 14717 .IP "\(bu" 4
yading@10 14718 Select only I\-frames:
yading@10 14719 .Sp
yading@10 14720 .Vb 1
yading@10 14721 \& select=\*(Aqeq(pict_type\e,I)\*(Aq
yading@10 14722 .Ve
yading@10 14723 .IP "\(bu" 4
yading@10 14724 Select one frame every 100:
yading@10 14725 .Sp
yading@10 14726 .Vb 1
yading@10 14727 \& select=\*(Aqnot(mod(n\e,100))\*(Aq
yading@10 14728 .Ve
yading@10 14729 .IP "\(bu" 4
yading@10 14730 Select only frames contained in the 10\-20 time interval:
yading@10 14731 .Sp
yading@10 14732 .Vb 1
yading@10 14733 \& select=\*(Aqgte(t\e,10)*lte(t\e,20)\*(Aq
yading@10 14734 .Ve
yading@10 14735 .IP "\(bu" 4
yading@10 14736 Select only I frames contained in the 10\-20 time interval:
yading@10 14737 .Sp
yading@10 14738 .Vb 1
yading@10 14739 \& select=\*(Aqgte(t\e,10)*lte(t\e,20)*eq(pict_type\e,I)\*(Aq
yading@10 14740 .Ve
yading@10 14741 .IP "\(bu" 4
yading@10 14742 Select frames with a minimum distance of 10 seconds:
yading@10 14743 .Sp
yading@10 14744 .Vb 1
yading@10 14745 \& select=\*(Aqisnan(prev_selected_t)+gte(t\-prev_selected_t\e,10)\*(Aq
yading@10 14746 .Ve
yading@10 14747 .IP "\(bu" 4
yading@10 14748 Use aselect to select only audio frames with samples number > 100:
yading@10 14749 .Sp
yading@10 14750 .Vb 1
yading@10 14751 \& aselect=\*(Aqgt(samples_n\e,100)\*(Aq
yading@10 14752 .Ve
yading@10 14753 .IP "\(bu" 4
yading@10 14754 Create a mosaic of the first scenes:
yading@10 14755 .Sp
yading@10 14756 .Vb 1
yading@10 14757 \& ffmpeg \-i video.avi \-vf select=\*(Aqgt(scene\e,0.4)\*(Aq,scale=160:120,tile \-frames:v 1 preview.png
yading@10 14758 .Ve
yading@10 14759 .Sp
yading@10 14760 Comparing \fIscene\fR against a value between 0.3 and 0.5 is generally a sane
yading@10 14761 choice.
yading@10 14762 .IP "\(bu" 4
yading@10 14763 Send even and odd frames to separate outputs, and compose them:
yading@10 14764 .Sp
yading@10 14765 .Vb 1
yading@10 14766 \& select=n=2:e=\*(Aqmod(n, 2)+1\*(Aq [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
yading@10 14767 .Ve
yading@10 14768 .SS "asendcmd, sendcmd"
yading@10 14769 .IX Subsection "asendcmd, sendcmd"
yading@10 14770 Send commands to filters in the filtergraph.
yading@10 14771 .PP
yading@10 14772 These filters read commands to be sent to other filters in the
yading@10 14773 filtergraph.
yading@10 14774 .PP
yading@10 14775 \&\f(CW\*(C`asendcmd\*(C'\fR must be inserted between two audio filters,
yading@10 14776 \&\f(CW\*(C`sendcmd\*(C'\fR must be inserted between two video filters, but apart
yading@10 14777 from that they act the same way.
yading@10 14778 .PP
yading@10 14779 The specification of commands can be provided in the filter arguments
yading@10 14780 with the \fIcommands\fR option, or in a file specified by the
yading@10 14781 \&\fIfilename\fR option.
yading@10 14782 .PP
yading@10 14783 These filters accept the following options:
yading@10 14784 .IP "\fBcommands, c\fR" 4
yading@10 14785 .IX Item "commands, c"
yading@10 14786 Set the commands to be read and sent to the other filters.
yading@10 14787 .IP "\fBfilename, f\fR" 4
yading@10 14788 .IX Item "filename, f"
yading@10 14789 Set the filename of the commands to be read and sent to the other
yading@10 14790 filters.
yading@10 14791 .PP
yading@10 14792 \fICommands syntax\fR
yading@10 14793 .IX Subsection "Commands syntax"
yading@10 14794 .PP
yading@10 14795 A commands description consists of a sequence of interval
yading@10 14796 specifications, comprising a list of commands to be executed when a
yading@10 14797 particular event related to that interval occurs. The occurring event
yading@10 14798 is typically the current frame time entering or leaving a given time
yading@10 14799 interval.
yading@10 14800 .PP
yading@10 14801 An interval is specified by the following syntax:
yading@10 14802 .PP
yading@10 14803 .Vb 1
yading@10 14804 \& <START>[\-<END>] <COMMANDS>;
yading@10 14805 .Ve
yading@10 14806 .PP
yading@10 14807 The time interval is specified by the \fI\s-1START\s0\fR and \fI\s-1END\s0\fR times.
yading@10 14808 \&\fI\s-1END\s0\fR is optional and defaults to the maximum time.
yading@10 14809 .PP
yading@10 14810 The current frame time is considered within the specified interval if
yading@10 14811 it is included in the interval [\fI\s-1START\s0\fR, \fI\s-1END\s0\fR), that is when
yading@10 14812 the time is greater or equal to \fI\s-1START\s0\fR and is lesser than
yading@10 14813 \&\fI\s-1END\s0\fR.
yading@10 14814 .PP
yading@10 14815 \&\fI\s-1COMMANDS\s0\fR consists of a sequence of one or more command
yading@10 14816 specifications, separated by \*(L",\*(R", relating to that interval. The
yading@10 14817 syntax of a command specification is given by:
yading@10 14818 .PP
yading@10 14819 .Vb 1
yading@10 14820 \& [<FLAGS>] <TARGET> <COMMAND> <ARG>
yading@10 14821 .Ve
yading@10 14822 .PP
yading@10 14823 \&\fI\s-1FLAGS\s0\fR is optional and specifies the type of events relating to
yading@10 14824 the time interval which enable sending the specified command, and must
yading@10 14825 be a non-null sequence of identifier flags separated by \*(L"+\*(R" or \*(L"|\*(R" and
yading@10 14826 enclosed between \*(L"[\*(R" and \*(L"]\*(R".
yading@10 14827 .PP
yading@10 14828 The following flags are recognized:
yading@10 14829 .IP "\fBenter\fR" 4
yading@10 14830 .IX Item "enter"
yading@10 14831 The command is sent when the current frame timestamp enters the
yading@10 14832 specified interval. In other words, the command is sent when the
yading@10 14833 previous frame timestamp was not in the given interval, and the
yading@10 14834 current is.
yading@10 14835 .IP "\fBleave\fR" 4
yading@10 14836 .IX Item "leave"
yading@10 14837 The command is sent when the current frame timestamp leaves the
yading@10 14838 specified interval. In other words, the command is sent when the
yading@10 14839 previous frame timestamp was in the given interval, and the
yading@10 14840 current is not.
yading@10 14841 .PP
yading@10 14842 If \fI\s-1FLAGS\s0\fR is not specified, a default value of \f(CW\*(C`[enter]\*(C'\fR is
yading@10 14843 assumed.
yading@10 14844 .PP
yading@10 14845 \&\fI\s-1TARGET\s0\fR specifies the target of the command, usually the name of
yading@10 14846 the filter class or a specific filter instance name.
yading@10 14847 .PP
yading@10 14848 \&\fI\s-1COMMAND\s0\fR specifies the name of the command for the target filter.
yading@10 14849 .PP
yading@10 14850 \&\fI\s-1ARG\s0\fR is optional and specifies the optional list of argument for
yading@10 14851 the given \fI\s-1COMMAND\s0\fR.
yading@10 14852 .PP
yading@10 14853 Between one interval specification and another, whitespaces, or
yading@10 14854 sequences of characters starting with \f(CW\*(C`#\*(C'\fR until the end of line,
yading@10 14855 are ignored and can be used to annotate comments.
yading@10 14856 .PP
yading@10 14857 A simplified \s-1BNF\s0 description of the commands specification syntax
yading@10 14858 follows:
yading@10 14859 .PP
yading@10 14860 .Vb 6
yading@10 14861 \& <COMMAND_FLAG> ::= "enter" | "leave"
yading@10 14862 \& <COMMAND_FLAGS> ::= <COMMAND_FLAG> [(+|"|")<COMMAND_FLAG>]
yading@10 14863 \& <COMMAND> ::= ["[" <COMMAND_FLAGS> "]"] <TARGET> <COMMAND> [<ARG>]
yading@10 14864 \& <COMMANDS> ::= <COMMAND> [,<COMMANDS>]
yading@10 14865 \& <INTERVAL> ::= <START>[\-<END>] <COMMANDS>
yading@10 14866 \& <INTERVALS> ::= <INTERVAL>[;<INTERVALS>]
yading@10 14867 .Ve
yading@10 14868 .PP
yading@10 14869 \fIExamples\fR
yading@10 14870 .IX Subsection "Examples"
yading@10 14871 .IP "\(bu" 4
yading@10 14872 Specify audio tempo change at second 4:
yading@10 14873 .Sp
yading@10 14874 .Vb 1
yading@10 14875 \& asendcmd=c=\*(Aq4.0 atempo tempo 1.5\*(Aq,atempo
yading@10 14876 .Ve
yading@10 14877 .IP "\(bu" 4
yading@10 14878 Specify a list of drawtext and hue commands in a file.
yading@10 14879 .Sp
yading@10 14880 .Vb 3
yading@10 14881 \& # show text in the interval 5\-10
yading@10 14882 \& 5.0\-10.0 [enter] drawtext reinit \*(Aqfontfile=FreeSerif.ttf:text=hello world\*(Aq,
yading@10 14883 \& [leave] drawtext reinit \*(Aqfontfile=FreeSerif.ttf:text=\*(Aq;
yading@10 14884 \&
yading@10 14885 \& # desaturate the image in the interval 15\-20
yading@10 14886 \& 15.0\-20.0 [enter] hue s 0,
yading@10 14887 \& [enter] drawtext reinit \*(Aqfontfile=FreeSerif.ttf:text=nocolor\*(Aq,
yading@10 14888 \& [leave] hue s 1,
yading@10 14889 \& [leave] drawtext reinit \*(Aqfontfile=FreeSerif.ttf:text=color\*(Aq;
yading@10 14890 \&
yading@10 14891 \& # apply an exponential saturation fade\-out effect, starting from time 25
yading@10 14892 \& 25 [enter] hue s exp(25\-t)
yading@10 14893 .Ve
yading@10 14894 .Sp
yading@10 14895 A filtergraph allowing to read and process the above command list
yading@10 14896 stored in a file \fItest.cmd\fR, can be specified with:
yading@10 14897 .Sp
yading@10 14898 .Vb 1
yading@10 14899 \& sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text=\*(Aq\*(Aq,hue
yading@10 14900 .Ve
yading@10 14901 .SS "asetpts, setpts"
yading@10 14902 .IX Subsection "asetpts, setpts"
yading@10 14903 Change the \s-1PTS\s0 (presentation timestamp) of the input frames.
yading@10 14904 .PP
yading@10 14905 \&\f(CW\*(C`asetpts\*(C'\fR works on audio frames, \f(CW\*(C`setpts\*(C'\fR on video frames.
yading@10 14906 .PP
yading@10 14907 This filter accepts the following options:
yading@10 14908 .IP "\fBexpr\fR" 4
yading@10 14909 .IX Item "expr"
yading@10 14910 The expression which is evaluated for each frame to construct its timestamp.
yading@10 14911 .PP
yading@10 14912 The expression is evaluated through the eval \s-1API\s0 and can contain the following
yading@10 14913 constants:
yading@10 14914 .IP "\fB\s-1FRAME_RATE\s0\fR" 4
yading@10 14915 .IX Item "FRAME_RATE"
yading@10 14916 frame rate, only defined for constant frame-rate video
yading@10 14917 .IP "\fB\s-1PTS\s0\fR" 4
yading@10 14918 .IX Item "PTS"
yading@10 14919 the presentation timestamp in input
yading@10 14920 .IP "\fBN\fR" 4
yading@10 14921 .IX Item "N"
yading@10 14922 the count of the input frame, starting from 0.
yading@10 14923 .IP "\fB\s-1NB_CONSUMED_SAMPLES\s0\fR" 4
yading@10 14924 .IX Item "NB_CONSUMED_SAMPLES"
yading@10 14925 the number of consumed samples, not including the current frame (only
yading@10 14926 audio)
yading@10 14927 .IP "\fB\s-1NB_SAMPLES\s0\fR" 4
yading@10 14928 .IX Item "NB_SAMPLES"
yading@10 14929 the number of samples in the current frame (only audio)
yading@10 14930 .IP "\fB\s-1SAMPLE_RATE\s0\fR" 4
yading@10 14931 .IX Item "SAMPLE_RATE"
yading@10 14932 audio sample rate
yading@10 14933 .IP "\fB\s-1STARTPTS\s0\fR" 4
yading@10 14934 .IX Item "STARTPTS"
yading@10 14935 the \s-1PTS\s0 of the first frame
yading@10 14936 .IP "\fB\s-1STARTT\s0\fR" 4
yading@10 14937 .IX Item "STARTT"
yading@10 14938 the time in seconds of the first frame
yading@10 14939 .IP "\fB\s-1INTERLACED\s0\fR" 4
yading@10 14940 .IX Item "INTERLACED"
yading@10 14941 tell if the current frame is interlaced
yading@10 14942 .IP "\fBT\fR" 4
yading@10 14943 .IX Item "T"
yading@10 14944 the time in seconds of the current frame
yading@10 14945 .IP "\fB\s-1TB\s0\fR" 4
yading@10 14946 .IX Item "TB"
yading@10 14947 the time base
yading@10 14948 .IP "\fB\s-1POS\s0\fR" 4
yading@10 14949 .IX Item "POS"
yading@10 14950 original position in the file of the frame, or undefined if undefined
yading@10 14951 for the current frame
yading@10 14952 .IP "\fB\s-1PREV_INPTS\s0\fR" 4
yading@10 14953 .IX Item "PREV_INPTS"
yading@10 14954 previous input \s-1PTS\s0
yading@10 14955 .IP "\fB\s-1PREV_INT\s0\fR" 4
yading@10 14956 .IX Item "PREV_INT"
yading@10 14957 previous input time in seconds
yading@10 14958 .IP "\fB\s-1PREV_OUTPTS\s0\fR" 4
yading@10 14959 .IX Item "PREV_OUTPTS"
yading@10 14960 previous output \s-1PTS\s0
yading@10 14961 .IP "\fB\s-1PREV_OUTT\s0\fR" 4
yading@10 14962 .IX Item "PREV_OUTT"
yading@10 14963 previous output time in seconds
yading@10 14964 .IP "\fB\s-1RTCTIME\s0\fR" 4
yading@10 14965 .IX Item "RTCTIME"
yading@10 14966 wallclock (\s-1RTC\s0) time in microseconds. This is deprecated, use \fItime\fR\|(0)
yading@10 14967 instead.
yading@10 14968 .IP "\fB\s-1RTCSTART\s0\fR" 4
yading@10 14969 .IX Item "RTCSTART"
yading@10 14970 wallclock (\s-1RTC\s0) time at the start of the movie in microseconds
yading@10 14971 .PP
yading@10 14972 \fIExamples\fR
yading@10 14973 .IX Subsection "Examples"
yading@10 14974 .IP "\(bu" 4
yading@10 14975 Start counting \s-1PTS\s0 from zero
yading@10 14976 .Sp
yading@10 14977 .Vb 1
yading@10 14978 \& setpts=PTS\-STARTPTS
yading@10 14979 .Ve
yading@10 14980 .IP "\(bu" 4
yading@10 14981 Apply fast motion effect:
yading@10 14982 .Sp
yading@10 14983 .Vb 1
yading@10 14984 \& setpts=0.5*PTS
yading@10 14985 .Ve
yading@10 14986 .IP "\(bu" 4
yading@10 14987 Apply slow motion effect:
yading@10 14988 .Sp
yading@10 14989 .Vb 1
yading@10 14990 \& setpts=2.0*PTS
yading@10 14991 .Ve
yading@10 14992 .IP "\(bu" 4
yading@10 14993 Set fixed rate of 25 frames per second:
yading@10 14994 .Sp
yading@10 14995 .Vb 1
yading@10 14996 \& setpts=N/(25*TB)
yading@10 14997 .Ve
yading@10 14998 .IP "\(bu" 4
yading@10 14999 Set fixed rate 25 fps with some jitter:
yading@10 15000 .Sp
yading@10 15001 .Vb 1
yading@10 15002 \& setpts=\*(Aq1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))\*(Aq
yading@10 15003 .Ve
yading@10 15004 .IP "\(bu" 4
yading@10 15005 Apply an offset of 10 seconds to the input \s-1PTS:\s0
yading@10 15006 .Sp
yading@10 15007 .Vb 1
yading@10 15008 \& setpts=PTS+10/TB
yading@10 15009 .Ve
yading@10 15010 .IP "\(bu" 4
yading@10 15011 Generate timestamps from a \*(L"live source\*(R" and rebase onto the current timebase:
yading@10 15012 .Sp
yading@10 15013 .Vb 1
yading@10 15014 \& setpts=\*(Aq(RTCTIME \- RTCSTART) / (TB * 1000000)\*(Aq
yading@10 15015 .Ve
yading@10 15016 .SS "ebur128"
yading@10 15017 .IX Subsection "ebur128"
yading@10 15018 \&\s-1EBU\s0 R128 scanner filter. This filter takes an audio stream as input and outputs
yading@10 15019 it unchanged. By default, it logs a message at a frequency of 10Hz with the
yading@10 15020 Momentary loudness (identified by \f(CW\*(C`M\*(C'\fR), Short-term loudness (\f(CW\*(C`S\*(C'\fR),
yading@10 15021 Integrated loudness (\f(CW\*(C`I\*(C'\fR) and Loudness Range (\f(CW\*(C`LRA\*(C'\fR).
yading@10 15022 .PP
yading@10 15023 The filter also has a video output (see the \fIvideo\fR option) with a real
yading@10 15024 time graph to observe the loudness evolution. The graphic contains the logged
yading@10 15025 message mentioned above, so it is not printed anymore when this option is set,
yading@10 15026 unless the verbose logging is set. The main graphing area contains the
yading@10 15027 short-term loudness (3 seconds of analysis), and the gauge on the right is for
yading@10 15028 the momentary loudness (400 milliseconds).
yading@10 15029 .PP
yading@10 15030 More information about the Loudness Recommendation \s-1EBU\s0 R128 on
yading@10 15031 <\fBhttp://tech.ebu.ch/loudness\fR>.
yading@10 15032 .PP
yading@10 15033 The filter accepts the following options:
yading@10 15034 .IP "\fBvideo\fR" 4
yading@10 15035 .IX Item "video"
yading@10 15036 Activate the video output. The audio stream is passed unchanged whether this
yading@10 15037 option is set or no. The video stream will be the first output stream if
yading@10 15038 activated. Default is \f(CW0\fR.
yading@10 15039 .IP "\fBsize\fR" 4
yading@10 15040 .IX Item "size"
yading@10 15041 Set the video size. This option is for video only. Default and minimum
yading@10 15042 resolution is \f(CW\*(C`640x480\*(C'\fR.
yading@10 15043 .IP "\fBmeter\fR" 4
yading@10 15044 .IX Item "meter"
yading@10 15045 Set the \s-1EBU\s0 scale meter. Default is \f(CW9\fR. Common values are \f(CW9\fR and
yading@10 15046 \&\f(CW18\fR, respectively for \s-1EBU\s0 scale meter +9 and \s-1EBU\s0 scale meter +18. Any
yading@10 15047 other integer value between this range is allowed.
yading@10 15048 .IP "\fBmetadata\fR" 4
yading@10 15049 .IX Item "metadata"
yading@10 15050 Set metadata injection. If set to \f(CW1\fR, the audio input will be segmented
yading@10 15051 into 100ms output frames, each of them containing various loudness information
yading@10 15052 in metadata. All the metadata keys are prefixed with \f(CW\*(C`lavfi.r128.\*(C'\fR.
yading@10 15053 .Sp
yading@10 15054 Default is \f(CW0\fR.
yading@10 15055 .IP "\fBframelog\fR" 4
yading@10 15056 .IX Item "framelog"
yading@10 15057 Force the frame logging level.
yading@10 15058 .Sp
yading@10 15059 Available values are:
yading@10 15060 .RS 4
yading@10 15061 .IP "\fBinfo\fR" 4
yading@10 15062 .IX Item "info"
yading@10 15063 information logging level
yading@10 15064 .IP "\fBverbose\fR" 4
yading@10 15065 .IX Item "verbose"
yading@10 15066 verbose logging level
yading@10 15067 .RE
yading@10 15068 .RS 4
yading@10 15069 .Sp
yading@10 15070 By default, the logging level is set to \fIinfo\fR. If the \fBvideo\fR or
yading@10 15071 the \fBmetadata\fR options are set, it switches to \fIverbose\fR.
yading@10 15072 .RE
yading@10 15073 .PP
yading@10 15074 \fIExamples\fR
yading@10 15075 .IX Subsection "Examples"
yading@10 15076 .IP "\(bu" 4
yading@10 15077 Real-time graph using \fBffplay\fR, with a \s-1EBU\s0 scale meter +18:
yading@10 15078 .Sp
yading@10 15079 .Vb 1
yading@10 15080 \& ffplay \-f lavfi \-i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
yading@10 15081 .Ve
yading@10 15082 .IP "\(bu" 4
yading@10 15083 Run an analysis with \fBffmpeg\fR:
yading@10 15084 .Sp
yading@10 15085 .Vb 1
yading@10 15086 \& ffmpeg \-nostats \-i input.mp3 \-filter_complex ebur128 \-f null \-
yading@10 15087 .Ve
yading@10 15088 .SS "settb, asettb"
yading@10 15089 .IX Subsection "settb, asettb"
yading@10 15090 Set the timebase to use for the output frames timestamps.
yading@10 15091 It is mainly useful for testing timebase configuration.
yading@10 15092 .PP
yading@10 15093 This filter accepts the following options:
yading@10 15094 .IP "\fBexpr, tb\fR" 4
yading@10 15095 .IX Item "expr, tb"
yading@10 15096 The expression which is evaluated into the output timebase.
yading@10 15097 .PP
yading@10 15098 The value for \fBtb\fR is an arithmetic expression representing a
yading@10 15099 rational. The expression can contain the constants \*(L"\s-1AVTB\s0\*(R" (the default
yading@10 15100 timebase), \*(L"intb\*(R" (the input timebase) and \*(L"sr\*(R" (the sample rate,
yading@10 15101 audio only). Default value is \*(L"intb\*(R".
yading@10 15102 .PP
yading@10 15103 \fIExamples\fR
yading@10 15104 .IX Subsection "Examples"
yading@10 15105 .IP "\(bu" 4
yading@10 15106 Set the timebase to 1/25:
yading@10 15107 .Sp
yading@10 15108 .Vb 1
yading@10 15109 \& settb=expr=1/25
yading@10 15110 .Ve
yading@10 15111 .IP "\(bu" 4
yading@10 15112 Set the timebase to 1/10:
yading@10 15113 .Sp
yading@10 15114 .Vb 1
yading@10 15115 \& settb=expr=0.1
yading@10 15116 .Ve
yading@10 15117 .IP "\(bu" 4
yading@10 15118 Set the timebase to 1001/1000:
yading@10 15119 .Sp
yading@10 15120 .Vb 1
yading@10 15121 \& settb=1+0.001
yading@10 15122 .Ve
yading@10 15123 .IP "\(bu" 4
yading@10 15124 Set the timebase to 2*intb:
yading@10 15125 .Sp
yading@10 15126 .Vb 1
yading@10 15127 \& settb=2*intb
yading@10 15128 .Ve
yading@10 15129 .IP "\(bu" 4
yading@10 15130 Set the default timebase value:
yading@10 15131 .Sp
yading@10 15132 .Vb 1
yading@10 15133 \& settb=AVTB
yading@10 15134 .Ve
yading@10 15135 .SS "concat"
yading@10 15136 .IX Subsection "concat"
yading@10 15137 Concatenate audio and video streams, joining them together one after the
yading@10 15138 other.
yading@10 15139 .PP
yading@10 15140 The filter works on segments of synchronized video and audio streams. All
yading@10 15141 segments must have the same number of streams of each type, and that will
yading@10 15142 also be the number of streams at output.
yading@10 15143 .PP
yading@10 15144 The filter accepts the following options:
yading@10 15145 .IP "\fBn\fR" 4
yading@10 15146 .IX Item "n"
yading@10 15147 Set the number of segments. Default is 2.
yading@10 15148 .IP "\fBv\fR" 4
yading@10 15149 .IX Item "v"
yading@10 15150 Set the number of output video streams, that is also the number of video
yading@10 15151 streams in each segment. Default is 1.
yading@10 15152 .IP "\fBa\fR" 4
yading@10 15153 .IX Item "a"
yading@10 15154 Set the number of output audio streams, that is also the number of video
yading@10 15155 streams in each segment. Default is 0.
yading@10 15156 .IP "\fBunsafe\fR" 4
yading@10 15157 .IX Item "unsafe"
yading@10 15158 Activate unsafe mode: do not fail if segments have a different format.
yading@10 15159 .PP
yading@10 15160 The filter has \fIv\fR+\fIa\fR outputs: first \fIv\fR video outputs, then
yading@10 15161 \&\fIa\fR audio outputs.
yading@10 15162 .PP
yading@10 15163 There are \fIn\fRx(\fIv\fR+\fIa\fR) inputs: first the inputs for the first
yading@10 15164 segment, in the same order as the outputs, then the inputs for the second
yading@10 15165 segment, etc.
yading@10 15166 .PP
yading@10 15167 Related streams do not always have exactly the same duration, for various
yading@10 15168 reasons including codec frame size or sloppy authoring. For that reason,
yading@10 15169 related synchronized streams (e.g. a video and its audio track) should be
yading@10 15170 concatenated at once. The concat filter will use the duration of the longest
yading@10 15171 stream in each segment (except the last one), and if necessary pad shorter
yading@10 15172 audio streams with silence.
yading@10 15173 .PP
yading@10 15174 For this filter to work correctly, all segments must start at timestamp 0.
yading@10 15175 .PP
yading@10 15176 All corresponding streams must have the same parameters in all segments; the
yading@10 15177 filtering system will automatically select a common pixel format for video
yading@10 15178 streams, and a common sample format, sample rate and channel layout for
yading@10 15179 audio streams, but other settings, such as resolution, must be converted
yading@10 15180 explicitly by the user.
yading@10 15181 .PP
yading@10 15182 Different frame rates are acceptable but will result in variable frame rate
yading@10 15183 at output; be sure to configure the output file to handle it.
yading@10 15184 .PP
yading@10 15185 \fIExamples\fR
yading@10 15186 .IX Subsection "Examples"
yading@10 15187 .IP "\(bu" 4
yading@10 15188 Concatenate an opening, an episode and an ending, all in bilingual version
yading@10 15189 (video in stream 0, audio in streams 1 and 2):
yading@10 15190 .Sp
yading@10 15191 .Vb 4
yading@10 15192 \& ffmpeg \-i opening.mkv \-i episode.mkv \-i ending.mkv \-filter_complex \e
yading@10 15193 \& \*(Aq[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]
yading@10 15194 \& concat=n=3:v=1:a=2 [v] [a1] [a2]\*(Aq \e
yading@10 15195 \& \-map \*(Aq[v]\*(Aq \-map \*(Aq[a1]\*(Aq \-map \*(Aq[a2]\*(Aq output.mkv
yading@10 15196 .Ve
yading@10 15197 .IP "\(bu" 4
yading@10 15198 Concatenate two parts, handling audio and video separately, using the
yading@10 15199 (a)movie sources, and adjusting the resolution:
yading@10 15200 .Sp
yading@10 15201 .Vb 3
yading@10 15202 \& movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
yading@10 15203 \& movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
yading@10 15204 \& [v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
yading@10 15205 .Ve
yading@10 15206 .Sp
yading@10 15207 Note that a desync will happen at the stitch if the audio and video streams
yading@10 15208 do not have exactly the same duration in the first file.
yading@10 15209 .SS "showspectrum"
yading@10 15210 .IX Subsection "showspectrum"
yading@10 15211 Convert input audio to a video output, representing the audio frequency
yading@10 15212 spectrum.
yading@10 15213 .PP
yading@10 15214 The filter accepts the following options:
yading@10 15215 .IP "\fBsize, s\fR" 4
yading@10 15216 .IX Item "size, s"
yading@10 15217 Specify the video size for the output. Default value is \f(CW\*(C`640x512\*(C'\fR.
yading@10 15218 .IP "\fBslide\fR" 4
yading@10 15219 .IX Item "slide"
yading@10 15220 Specify if the spectrum should slide along the window. Default value is
yading@10 15221 \&\f(CW0\fR.
yading@10 15222 .IP "\fBmode\fR" 4
yading@10 15223 .IX Item "mode"
yading@10 15224 Specify display mode.
yading@10 15225 .Sp
yading@10 15226 It accepts the following values:
yading@10 15227 .RS 4
yading@10 15228 .IP "\fBcombined\fR" 4
yading@10 15229 .IX Item "combined"
yading@10 15230 all channels are displayed in the same row
yading@10 15231 .IP "\fBseparate\fR" 4
yading@10 15232 .IX Item "separate"
yading@10 15233 all channels are displayed in separate rows
yading@10 15234 .RE
yading@10 15235 .RS 4
yading@10 15236 .Sp
yading@10 15237 Default value is \fBcombined\fR.
yading@10 15238 .RE
yading@10 15239 .IP "\fBcolor\fR" 4
yading@10 15240 .IX Item "color"
yading@10 15241 Specify display color mode.
yading@10 15242 .Sp
yading@10 15243 It accepts the following values:
yading@10 15244 .RS 4
yading@10 15245 .IP "\fBchannel\fR" 4
yading@10 15246 .IX Item "channel"
yading@10 15247 each channel is displayed in a separate color
yading@10 15248 .IP "\fBintensity\fR" 4
yading@10 15249 .IX Item "intensity"
yading@10 15250 each channel is is displayed using the same color scheme
yading@10 15251 .RE
yading@10 15252 .RS 4
yading@10 15253 .Sp
yading@10 15254 Default value is \fBchannel\fR.
yading@10 15255 .RE
yading@10 15256 .IP "\fBscale\fR" 4
yading@10 15257 .IX Item "scale"
yading@10 15258 Specify scale used for calculating intensity color values.
yading@10 15259 .Sp
yading@10 15260 It accepts the following values:
yading@10 15261 .RS 4
yading@10 15262 .IP "\fBlin\fR" 4
yading@10 15263 .IX Item "lin"
yading@10 15264 linear
yading@10 15265 .IP "\fBsqrt\fR" 4
yading@10 15266 .IX Item "sqrt"
yading@10 15267 square root, default
yading@10 15268 .IP "\fBcbrt\fR" 4
yading@10 15269 .IX Item "cbrt"
yading@10 15270 cubic root
yading@10 15271 .IP "\fBlog\fR" 4
yading@10 15272 .IX Item "log"
yading@10 15273 logarithmic
yading@10 15274 .RE
yading@10 15275 .RS 4
yading@10 15276 .Sp
yading@10 15277 Default value is \fBsqrt\fR.
yading@10 15278 .RE
yading@10 15279 .IP "\fBsaturation\fR" 4
yading@10 15280 .IX Item "saturation"
yading@10 15281 Set saturation modifier for displayed colors. Negative values provide
yading@10 15282 alternative color scheme. \f(CW0\fR is no saturation at all.
yading@10 15283 Saturation must be in [\-10.0, 10.0] range.
yading@10 15284 Default value is \f(CW1\fR.
yading@10 15285 .PP
yading@10 15286 The usage is very similar to the showwaves filter; see the examples in that
yading@10 15287 section.
yading@10 15288 .PP
yading@10 15289 \fIExamples\fR
yading@10 15290 .IX Subsection "Examples"
yading@10 15291 .IP "\(bu" 4
yading@10 15292 Large window with logarithmic color scaling:
yading@10 15293 .Sp
yading@10 15294 .Vb 1
yading@10 15295 \& showspectrum=s=1280x480:scale=log
yading@10 15296 .Ve
yading@10 15297 .IP "\(bu" 4
yading@10 15298 Complete example for a colored and sliding spectrum per channel using \fBffplay\fR:
yading@10 15299 .Sp
yading@10 15300 .Vb 2
yading@10 15301 \& ffplay \-f lavfi \*(Aqamovie=input.mp3, asplit [a][out1];
yading@10 15302 \& [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]\*(Aq
yading@10 15303 .Ve
yading@10 15304 .SS "showwaves"
yading@10 15305 .IX Subsection "showwaves"
yading@10 15306 Convert input audio to a video output, representing the samples waves.
yading@10 15307 .PP
yading@10 15308 The filter accepts the following options:
yading@10 15309 .IP "\fBsize, s\fR" 4
yading@10 15310 .IX Item "size, s"
yading@10 15311 Specify the video size for the output. Default value is \*(L"600x240\*(R".
yading@10 15312 .IP "\fBmode\fR" 4
yading@10 15313 .IX Item "mode"
yading@10 15314 Set display mode.
yading@10 15315 .Sp
yading@10 15316 Available values are:
yading@10 15317 .RS 4
yading@10 15318 .IP "\fBpoint\fR" 4
yading@10 15319 .IX Item "point"
yading@10 15320 Draw a point for each sample.
yading@10 15321 .IP "\fBline\fR" 4
yading@10 15322 .IX Item "line"
yading@10 15323 Draw a vertical line for each sample.
yading@10 15324 .RE
yading@10 15325 .RS 4
yading@10 15326 .Sp
yading@10 15327 Default value is \f(CW\*(C`point\*(C'\fR.
yading@10 15328 .RE
yading@10 15329 .IP "\fBn\fR" 4
yading@10 15330 .IX Item "n"
yading@10 15331 Set the number of samples which are printed on the same column. A
yading@10 15332 larger value will decrease the frame rate. Must be a positive
yading@10 15333 integer. This option can be set only if the value for \fIrate\fR
yading@10 15334 is not explicitly specified.
yading@10 15335 .IP "\fBrate, r\fR" 4
yading@10 15336 .IX Item "rate, r"
yading@10 15337 Set the (approximate) output frame rate. This is done by setting the
yading@10 15338 option \fIn\fR. Default value is \*(L"25\*(R".
yading@10 15339 .PP
yading@10 15340 \fIExamples\fR
yading@10 15341 .IX Subsection "Examples"
yading@10 15342 .IP "\(bu" 4
yading@10 15343 Output the input file audio and the corresponding video representation
yading@10 15344 at the same time:
yading@10 15345 .Sp
yading@10 15346 .Vb 1
yading@10 15347 \& amovie=a.mp3,asplit[out0],showwaves[out1]
yading@10 15348 .Ve
yading@10 15349 .IP "\(bu" 4
yading@10 15350 Create a synthetic signal and show it with showwaves, forcing a
yading@10 15351 frame rate of 30 frames per second:
yading@10 15352 .Sp
yading@10 15353 .Vb 1
yading@10 15354 \& aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
yading@10 15355 .Ve
yading@10 15356 .SS "split, asplit"
yading@10 15357 .IX Subsection "split, asplit"
yading@10 15358 Split input into several identical outputs.
yading@10 15359 .PP
yading@10 15360 \&\f(CW\*(C`asplit\*(C'\fR works with audio input, \f(CW\*(C`split\*(C'\fR with video.
yading@10 15361 .PP
yading@10 15362 The filter accepts a single parameter which specifies the number of outputs. If
yading@10 15363 unspecified, it defaults to 2.
yading@10 15364 .PP
yading@10 15365 \fIExamples\fR
yading@10 15366 .IX Subsection "Examples"
yading@10 15367 .IP "\(bu" 4
yading@10 15368 Create two separate outputs from the same input:
yading@10 15369 .Sp
yading@10 15370 .Vb 1
yading@10 15371 \& [in] split [out0][out1]
yading@10 15372 .Ve
yading@10 15373 .IP "\(bu" 4
yading@10 15374 To create 3 or more outputs, you need to specify the number of
yading@10 15375 outputs, like in:
yading@10 15376 .Sp
yading@10 15377 .Vb 1
yading@10 15378 \& [in] asplit=3 [out0][out1][out2]
yading@10 15379 .Ve
yading@10 15380 .IP "\(bu" 4
yading@10 15381 Create two separate outputs from the same input, one cropped and
yading@10 15382 one padded:
yading@10 15383 .Sp
yading@10 15384 .Vb 3
yading@10 15385 \& [in] split [splitout1][splitout2];
yading@10 15386 \& [splitout1] crop=100:100:0:0 [cropout];
yading@10 15387 \& [splitout2] pad=200:200:100:100 [padout];
yading@10 15388 .Ve
yading@10 15389 .IP "\(bu" 4
yading@10 15390 Create 5 copies of the input audio with \fBffmpeg\fR:
yading@10 15391 .Sp
yading@10 15392 .Vb 1
yading@10 15393 \& ffmpeg \-i INPUT \-filter_complex asplit=5 OUTPUT
yading@10 15394 .Ve
yading@10 15395 .SH "MULTIMEDIA SOURCES"
yading@10 15396 .IX Header "MULTIMEDIA SOURCES"
yading@10 15397 Below is a description of the currently available multimedia sources.
yading@10 15398 .SS "amovie"
yading@10 15399 .IX Subsection "amovie"
yading@10 15400 This is the same as movie source, except it selects an audio
yading@10 15401 stream by default.
yading@10 15402 .SS "movie"
yading@10 15403 .IX Subsection "movie"
yading@10 15404 Read audio and/or video stream(s) from a movie container.
yading@10 15405 .PP
yading@10 15406 This filter accepts the following options:
yading@10 15407 .IP "\fBfilename\fR" 4
yading@10 15408 .IX Item "filename"
yading@10 15409 The name of the resource to read (not necessarily a file but also a device or a
yading@10 15410 stream accessed through some protocol).
yading@10 15411 .IP "\fBformat_name, f\fR" 4
yading@10 15412 .IX Item "format_name, f"
yading@10 15413 Specifies the format assumed for the movie to read, and can be either
yading@10 15414 the name of a container or an input device. If not specified the
yading@10 15415 format is guessed from \fImovie_name\fR or by probing.
yading@10 15416 .IP "\fBseek_point, sp\fR" 4
yading@10 15417 .IX Item "seek_point, sp"
yading@10 15418 Specifies the seek point in seconds, the frames will be output
yading@10 15419 starting from this seek point, the parameter is evaluated with
yading@10 15420 \&\f(CW\*(C`av_strtod\*(C'\fR so the numerical value may be suffixed by an \s-1IS\s0
yading@10 15421 postfix. Default value is \*(L"0\*(R".
yading@10 15422 .IP "\fBstreams, s\fR" 4
yading@10 15423 .IX Item "streams, s"
yading@10 15424 Specifies the streams to read. Several streams can be specified,
yading@10 15425 separated by \*(L"+\*(R". The source will then have as many outputs, in the
yading@10 15426 same order. The syntax is explained in the ``Stream specifiers''
yading@10 15427 section in the ffmpeg manual. Two special names, \*(L"dv\*(R" and \*(L"da\*(R" specify
yading@10 15428 respectively the default (best suited) video and audio stream. Default
yading@10 15429 is \*(L"dv\*(R", or \*(L"da\*(R" if the filter is called as \*(L"amovie\*(R".
yading@10 15430 .IP "\fBstream_index, si\fR" 4
yading@10 15431 .IX Item "stream_index, si"
yading@10 15432 Specifies the index of the video stream to read. If the value is \-1,
yading@10 15433 the best suited video stream will be automatically selected. Default
yading@10 15434 value is \*(L"\-1\*(R". Deprecated. If the filter is called \*(L"amovie\*(R", it will select
yading@10 15435 audio instead of video.
yading@10 15436 .IP "\fBloop\fR" 4
yading@10 15437 .IX Item "loop"
yading@10 15438 Specifies how many times to read the stream in sequence.
yading@10 15439 If the value is less than 1, the stream will be read again and again.
yading@10 15440 Default value is \*(L"1\*(R".
yading@10 15441 .Sp
yading@10 15442 Note that when the movie is looped the source timestamps are not
yading@10 15443 changed, so it will generate non monotonically increasing timestamps.
yading@10 15444 .PP
yading@10 15445 This filter allows to overlay a second video on top of main input of
yading@10 15446 a filtergraph as shown in this graph:
yading@10 15447 .PP
yading@10 15448 .Vb 4
yading@10 15449 \& input \-\-\-\-\-\-\-\-\-\-\-> deltapts0 \-\-> overlay \-\-> output
yading@10 15450 \& ^
yading@10 15451 \& |
yading@10 15452 \& movie \-\-> scale\-\-> deltapts1 \-\-\-\-\-\-\-+
yading@10 15453 .Ve
yading@10 15454 .PP
yading@10 15455 \fIExamples\fR
yading@10 15456 .IX Subsection "Examples"
yading@10 15457 .IP "\(bu" 4
yading@10 15458 Skip 3.2 seconds from the start of the avi file in.avi, and overlay it
yading@10 15459 on top of the input labelled as \*(L"in\*(R":
yading@10 15460 .Sp
yading@10 15461 .Vb 3
yading@10 15462 \& movie=in.avi:seek_point=3.2, scale=180:\-1, setpts=PTS\-STARTPTS [over];
yading@10 15463 \& [in] setpts=PTS\-STARTPTS [main];
yading@10 15464 \& [main][over] overlay=16:16 [out]
yading@10 15465 .Ve
yading@10 15466 .IP "\(bu" 4
yading@10 15467 Read from a video4linux2 device, and overlay it on top of the input
yading@10 15468 labelled as \*(L"in\*(R":
yading@10 15469 .Sp
yading@10 15470 .Vb 3
yading@10 15471 \& movie=/dev/video0:f=video4linux2, scale=180:\-1, setpts=PTS\-STARTPTS [over];
yading@10 15472 \& [in] setpts=PTS\-STARTPTS [main];
yading@10 15473 \& [main][over] overlay=16:16 [out]
yading@10 15474 .Ve
yading@10 15475 .IP "\(bu" 4
yading@10 15476 Read the first video stream and the audio stream with id 0x81 from
yading@10 15477 dvd.vob; the video is connected to the pad named \*(L"video\*(R" and the audio is
yading@10 15478 connected to the pad named \*(L"audio\*(R":
yading@10 15479 .Sp
yading@10 15480 .Vb 1
yading@10 15481 \& movie=dvd.vob:s=v:0+#0x81 [video] [audio]
yading@10 15482 .Ve
yading@10 15483 .SH "SEE ALSO"
yading@10 15484 .IX Header "SEE ALSO"
yading@10 15485 \&\fIffprobe\fR\|(1),
yading@10 15486 \&\fIffmpeg\fR\|(1), \fIffplay\fR\|(1), \fIffserver\fR\|(1),
yading@10 15487 \&\fIffmpeg\-utils\fR\|(1), \fIffmpeg\-scaler\fR\|(1), \fIffmpeg\-resampler\fR\|(1),
yading@10 15488 \&\fIffmpeg\-codecs\fR\|(1), \fIffmpeg\-bitstream\-filters\fR\|(1), \fIffmpeg\-formats\fR\|(1),
yading@10 15489 \&\fIffmpeg\-devices\fR\|(1), \fIffmpeg\-protocols\fR\|(1), \fIffmpeg\-filters\fR\|(1)
yading@10 15490 .SH "AUTHORS"
yading@10 15491 .IX Header "AUTHORS"
yading@10 15492 The FFmpeg developers.
yading@10 15493 .PP
yading@10 15494 For details about the authorship, see the Git history of the project
yading@10 15495 (git://source.ffmpeg.org/ffmpeg), e.g. by typing the command
yading@10 15496 \&\fBgit log\fR in the FFmpeg source directory, or browsing the
yading@10 15497 online repository at <\fBhttp://source.ffmpeg.org\fR>.
yading@10 15498 .PP
yading@10 15499 Maintainers for the specific components are listed in the file
yading@10 15500 \&\fI\s-1MAINTAINERS\s0\fR in the source code tree.