1FFPROBE-ALL(1)                                                  FFPROBE-ALL(1)
2
3
4

NAME

6       ffprobe - ffprobe media prober
7

SYNOPSIS

9       ffprobe [options] input_url
10

DESCRIPTION

12       ffprobe gathers information from multimedia streams and prints it in
13       human- and machine-readable fashion.
14
15       For example it can be used to check the format of the container used by
16       a multimedia stream and the format and type of each media stream
17       contained in it.
18
19       If a url is specified in input, ffprobe will try to open and probe the
20       url content. If the url cannot be opened or recognized as a multimedia
21       file, a positive exit code is returned.
22
23       If no output is specified as output with o ffprobe will write to
24       stdout.
25
26       ffprobe may be employed both as a standalone application or in
27       combination with a textual filter, which may perform more sophisticated
28       processing, e.g. statistical processing or plotting.
29
30       Options are used to list some of the formats supported by ffprobe or
31       for specifying which information to display, and for setting how
32       ffprobe will show it.
33
34       ffprobe output is designed to be easily parsable by a textual filter,
35       and consists of one or more sections of a form defined by the selected
36       writer, which is specified by the print_format option.
37
38       Sections may contain other nested sections, and are identified by a
39       name (which may be shared by other sections), and an unique name. See
40       the output of sections.
41
42       Metadata tags stored in the container or in the streams are recognized
43       and printed in the corresponding "FORMAT", "STREAM" or "PROGRAM_STREAM"
44       section.
45

OPTIONS

47       All the numerical options, if not specified otherwise, accept a string
48       representing a number as input, which may be followed by one of the SI
49       unit prefixes, for example: 'K', 'M', or 'G'.
50
51       If 'i' is appended to the SI unit prefix, the complete prefix will be
52       interpreted as a unit prefix for binary multiples, which are based on
53       powers of 1024 instead of powers of 1000. Appending 'B' to the SI unit
54       prefix multiplies the value by 8. This allows using, for example: 'KB',
55       'MiB', 'G' and 'B' as number suffixes.
56
57       Options which do not take arguments are boolean options, and set the
58       corresponding value to true. They can be set to false by prefixing the
59       option name with "no". For example using "-nofoo" will set the boolean
60       option with name "foo" to false.
61
62   Stream specifiers
63       Some options are applied per-stream, e.g. bitrate or codec. Stream
64       specifiers are used to precisely specify which stream(s) a given option
65       belongs to.
66
67       A stream specifier is a string generally appended to the option name
68       and separated from it by a colon. E.g. "-codec:a:1 ac3" contains the
69       "a:1" stream specifier, which matches the second audio stream.
70       Therefore, it would select the ac3 codec for the second audio stream.
71
72       A stream specifier can match several streams, so that the option is
73       applied to all of them. E.g. the stream specifier in "-b:a 128k"
74       matches all audio streams.
75
76       An empty stream specifier matches all streams. For example, "-codec
77       copy" or "-codec: copy" would copy all the streams without reencoding.
78
79       Possible forms of stream specifiers are:
80
81       stream_index
82           Matches the stream with this index. E.g. "-threads:1 4" would set
83           the thread count for the second stream to 4. If stream_index is
84           used as an additional stream specifier (see below), then it selects
85           stream number stream_index from the matching streams. Stream
86           numbering is based on the order of the streams as detected by
87           libavformat except when a program ID is also specified. In this
88           case it is based on the ordering of the streams in the program.
89
90       stream_type[:additional_stream_specifier]
91           stream_type is one of following: 'v' or 'V' for video, 'a' for
92           audio, 's' for subtitle, 'd' for data, and 't' for attachments. 'v'
93           matches all video streams, 'V' only matches video streams which are
94           not attached pictures, video thumbnails or cover arts. If
95           additional_stream_specifier is used, then it matches streams which
96           both have this type and match the additional_stream_specifier.
97           Otherwise, it matches all streams of the specified type.
98
99       p:program_id[:additional_stream_specifier]
100           Matches streams which are in the program with the id program_id. If
101           additional_stream_specifier is used, then it matches streams which
102           both are part of the program and match the
103           additional_stream_specifier.
104
105       #stream_id or i:stream_id
106           Match the stream by stream id (e.g. PID in MPEG-TS container).
107
108       m:key[:value]
109           Matches streams with the metadata tag key having the specified
110           value. If value is not given, matches streams that contain the
111           given tag with any value.
112
113       u   Matches streams with usable configuration, the codec must be
114           defined and the essential information such as video dimension or
115           audio sample rate must be present.
116
117           Note that in ffmpeg, matching by metadata will only work properly
118           for input files.
119
120   Generic options
121       These options are shared amongst the ff* tools.
122
123       -L  Show license.
124
125       -h, -?, -help, --help [arg]
126           Show help. An optional parameter may be specified to print help
127           about a specific item. If no argument is specified, only basic (non
128           advanced) tool options are shown.
129
130           Possible values of arg are:
131
132           long
133               Print advanced tool options in addition to the basic tool
134               options.
135
136           full
137               Print complete list of options, including shared and private
138               options for encoders, decoders, demuxers, muxers, filters, etc.
139
140           decoder=decoder_name
141               Print detailed information about the decoder named
142               decoder_name. Use the -decoders option to get a list of all
143               decoders.
144
145           encoder=encoder_name
146               Print detailed information about the encoder named
147               encoder_name. Use the -encoders option to get a list of all
148               encoders.
149
150           demuxer=demuxer_name
151               Print detailed information about the demuxer named
152               demuxer_name. Use the -formats option to get a list of all
153               demuxers and muxers.
154
155           muxer=muxer_name
156               Print detailed information about the muxer named muxer_name.
157               Use the -formats option to get a list of all muxers and
158               demuxers.
159
160           filter=filter_name
161               Print detailed information about the filter named filter_name.
162               Use the -filters option to get a list of all filters.
163
164           bsf=bitstream_filter_name
165               Print detailed information about the bitstream filter named
166               bitstream_filter_name.  Use the -bsfs option to get a list of
167               all bitstream filters.
168
169           protocol=protocol_name
170               Print detailed information about the protocol named
171               protocol_name.  Use the -protocols option to get a list of all
172               protocols.
173
174       -version
175           Show version.
176
177       -buildconf
178           Show the build configuration, one option per line.
179
180       -formats
181           Show available formats (including devices).
182
183       -demuxers
184           Show available demuxers.
185
186       -muxers
187           Show available muxers.
188
189       -devices
190           Show available devices.
191
192       -codecs
193           Show all codecs known to libavcodec.
194
195           Note that the term 'codec' is used throughout this documentation as
196           a shortcut for what is more correctly called a media bitstream
197           format.
198
199       -decoders
200           Show available decoders.
201
202       -encoders
203           Show all available encoders.
204
205       -bsfs
206           Show available bitstream filters.
207
208       -protocols
209           Show available protocols.
210
211       -filters
212           Show available libavfilter filters.
213
214       -pix_fmts
215           Show available pixel formats.
216
217       -sample_fmts
218           Show available sample formats.
219
220       -layouts
221           Show channel names and standard channel layouts.
222
223       -dispositions
224           Show stream dispositions.
225
226       -colors
227           Show recognized color names.
228
229       -sources device[,opt1=val1[,opt2=val2]...]
230           Show autodetected sources of the input device.  Some devices may
231           provide system-dependent source names that cannot be autodetected.
232           The returned list cannot be assumed to be always complete.
233
234                   ffmpeg -sources pulse,server=192.168.0.4
235
236       -sinks device[,opt1=val1[,opt2=val2]...]
237           Show autodetected sinks of the output device.  Some devices may
238           provide system-dependent sink names that cannot be autodetected.
239           The returned list cannot be assumed to be always complete.
240
241                   ffmpeg -sinks pulse,server=192.168.0.4
242
243       -loglevel [flags+]loglevel | -v [flags+]loglevel
244           Set logging level and flags used by the library.
245
246           The optional flags prefix can consist of the following values:
247
248           repeat
249               Indicates that repeated log output should not be compressed to
250               the first line and the "Last message repeated n times" line
251               will be omitted.
252
253           level
254               Indicates that log output should add a "[level]" prefix to each
255               message line. This can be used as an alternative to log
256               coloring, e.g. when dumping the log to file.
257
258           Flags can also be used alone by adding a '+'/'-' prefix to
259           set/reset a single flag without affecting other flags or changing
260           loglevel. When setting both flags and loglevel, a '+' separator is
261           expected between the last flags value and before loglevel.
262
263           loglevel is a string or a number containing one of the following
264           values:
265
266           quiet, -8
267               Show nothing at all; be silent.
268
269           panic, 0
270               Only show fatal errors which could lead the process to crash,
271               such as an assertion failure. This is not currently used for
272               anything.
273
274           fatal, 8
275               Only show fatal errors. These are errors after which the
276               process absolutely cannot continue.
277
278           error, 16
279               Show all errors, including ones which can be recovered from.
280
281           warning, 24
282               Show all warnings and errors. Any message related to possibly
283               incorrect or unexpected events will be shown.
284
285           info, 32
286               Show informative messages during processing. This is in
287               addition to warnings and errors. This is the default value.
288
289           verbose, 40
290               Same as "info", except more verbose.
291
292           debug, 48
293               Show everything, including debugging information.
294
295           trace, 56
296
297           For example to enable repeated log output, add the "level" prefix,
298           and set loglevel to "verbose":
299
300                   ffmpeg -loglevel repeat+level+verbose -i input output
301
302           Another example that enables repeated log output without affecting
303           current state of "level" prefix flag or loglevel:
304
305                   ffmpeg [...] -loglevel +repeat
306
307           By default the program logs to stderr. If coloring is supported by
308           the terminal, colors are used to mark errors and warnings. Log
309           coloring can be disabled setting the environment variable
310           AV_LOG_FORCE_NOCOLOR, or can be forced setting the environment
311           variable AV_LOG_FORCE_COLOR.
312
313       -report
314           Dump full command line and log output to a file named
315           "program-YYYYMMDD-HHMMSS.log" in the current directory.  This file
316           can be useful for bug reports.  It also implies "-loglevel debug".
317
318           Setting the environment variable FFREPORT to any value has the same
319           effect. If the value is a ':'-separated key=value sequence, these
320           options will affect the report; option values must be escaped if
321           they contain special characters or the options delimiter ':' (see
322           the ``Quoting and escaping'' section in the ffmpeg-utils manual).
323
324           The following options are recognized:
325
326           file
327               set the file name to use for the report; %p is expanded to the
328               name of the program, %t is expanded to a timestamp, "%%" is
329               expanded to a plain "%"
330
331           level
332               set the log verbosity level using a numerical value (see
333               "-loglevel").
334
335           For example, to output a report to a file named ffreport.log using
336           a log level of 32 (alias for log level "info"):
337
338                   FFREPORT=file=ffreport.log:level=32 ffmpeg -i input output
339
340           Errors in parsing the environment variable are not fatal, and will
341           not appear in the report.
342
343       -hide_banner
344           Suppress printing banner.
345
346           All FFmpeg tools will normally show a copyright notice, build
347           options and library versions. This option can be used to suppress
348           printing this information.
349
350       -cpuflags flags (global)
351           Allows setting and clearing cpu flags. This option is intended for
352           testing. Do not use it unless you know what you're doing.
353
354                   ffmpeg -cpuflags -sse+mmx ...
355                   ffmpeg -cpuflags mmx ...
356                   ffmpeg -cpuflags 0 ...
357
358           Possible flags for this option are:
359
360           x86
361               mmx
362               mmxext
363               sse
364               sse2
365               sse2slow
366               sse3
367               sse3slow
368               ssse3
369               atom
370               sse4.1
371               sse4.2
372               avx
373               avx2
374               xop
375               fma3
376               fma4
377               3dnow
378               3dnowext
379               bmi1
380               bmi2
381               cmov
382           ARM
383               armv5te
384               armv6
385               armv6t2
386               vfp
387               vfpv3
388               neon
389               setend
390           AArch64
391               armv8
392               vfp
393               neon
394           PowerPC
395               altivec
396           Specific Processors
397               pentium2
398               pentium3
399               pentium4
400               k6
401               k62
402               athlon
403               athlonxp
404               k8
405       -cpucount count (global)
406           Override detection of CPU count. This option is intended for
407           testing. Do not use it unless you know what you're doing.
408
409                   ffmpeg -cpucount 2
410
411       -max_alloc bytes
412           Set the maximum size limit for allocating a block on the heap by
413           ffmpeg's family of malloc functions. Exercise extreme caution when
414           using this option. Don't use if you do not understand the full
415           consequence of doing so.  Default is INT_MAX.
416
417   AVOptions
418       These options are provided directly by the libavformat, libavdevice and
419       libavcodec libraries. To see the list of available AVOptions, use the
420       -help option. They are separated into two categories:
421
422       generic
423           These options can be set for any container, codec or device.
424           Generic options are listed under AVFormatContext options for
425           containers/devices and under AVCodecContext options for codecs.
426
427       private
428           These options are specific to the given container, device or codec.
429           Private options are listed under their corresponding
430           containers/devices/codecs.
431
432       For example to write an ID3v2.3 header instead of a default ID3v2.4 to
433       an MP3 file, use the id3v2_version private option of the MP3 muxer:
434
435               ffmpeg -i input.flac -id3v2_version 3 out.mp3
436
437       All codec AVOptions are per-stream, and thus a stream specifier should
438       be attached to them:
439
440               ffmpeg -i multichannel.mxf -map 0:v:0 -map 0:a:0 -map 0:a:0 -c:a:0 ac3 -b:a:0 640k -ac:a:1 2 -c:a:1 aac -b:2 128k out.mp4
441
442       In the above example, a multichannel audio stream is mapped twice for
443       output.  The first instance is encoded with codec ac3 and bitrate 640k.
444       The second instance is downmixed to 2 channels and encoded with codec
445       aac. A bitrate of 128k is specified for it using absolute index of the
446       output stream.
447
448       Note: the -nooption syntax cannot be used for boolean AVOptions, use
449       -option 0/-option 1.
450
451       Note: the old undocumented way of specifying per-stream AVOptions by
452       prepending v/a/s to the options name is now obsolete and will be
453       removed soon.
454
455   Main options
456       -f format
457           Force format to use.
458
459       -unit
460           Show the unit of the displayed values.
461
462       -prefix
463           Use SI prefixes for the displayed values.  Unless the
464           "-byte_binary_prefix" option is used all the prefixes are decimal.
465
466       -byte_binary_prefix
467           Force the use of binary prefixes for byte values.
468
469       -sexagesimal
470           Use sexagesimal format HH:MM:SS.MICROSECONDS for time values.
471
472       -pretty
473           Prettify the format of the displayed values, it corresponds to the
474           options "-unit -prefix -byte_binary_prefix -sexagesimal".
475
476       -of, -print_format writer_name[=writer_options]
477           Set the output printing format.
478
479           writer_name specifies the name of the writer, and writer_options
480           specifies the options to be passed to the writer.
481
482           For example for printing the output in JSON format, specify:
483
484                   -print_format json
485
486           For more details on the available output printing formats, see the
487           Writers section below.
488
489       -sections
490           Print sections structure and section information, and exit. The
491           output is not meant to be parsed by a machine.
492
493       -select_streams stream_specifier
494           Select only the streams specified by stream_specifier. This option
495           affects only the options related to streams (e.g. "show_streams",
496           "show_packets", etc.).
497
498           For example to show only audio streams, you can use the command:
499
500                   ffprobe -show_streams -select_streams a INPUT
501
502           To show only video packets belonging to the video stream with index
503           1:
504
505                   ffprobe -show_packets -select_streams v:1 INPUT
506
507       -show_data
508           Show payload data, as a hexadecimal and ASCII dump. Coupled with
509           -show_packets, it will dump the packets' data. Coupled with
510           -show_streams, it will dump the codec extradata.
511
512           The dump is printed as the "data" field. It may contain newlines.
513
514       -show_data_hash algorithm
515           Show a hash of payload data, for packets with -show_packets and for
516           codec extradata with -show_streams.
517
518       -show_error
519           Show information about the error found when trying to probe the
520           input.
521
522           The error information is printed within a section with name
523           "ERROR".
524
525       -show_format
526           Show information about the container format of the input multimedia
527           stream.
528
529           All the container format information is printed within a section
530           with name "FORMAT".
531
532       -show_format_entry name
533           Like -show_format, but only prints the specified entry of the
534           container format information, rather than all. This option may be
535           given more than once, then all specified entries will be shown.
536
537           This option is deprecated, use "show_entries" instead.
538
539       -show_entries section_entries
540           Set list of entries to show.
541
542           Entries are specified according to the following syntax.
543           section_entries contains a list of section entries separated by
544           ":". Each section entry is composed by a section name (or unique
545           name), optionally followed by a list of entries local to that
546           section, separated by ",".
547
548           If section name is specified but is followed by no "=", all entries
549           are printed to output, together with all the contained sections.
550           Otherwise only the entries specified in the local section entries
551           list are printed. In particular, if "=" is specified but the list
552           of local entries is empty, then no entries will be shown for that
553           section.
554
555           Note that the order of specification of the local section entries
556           is not honored in the output, and the usual display order will be
557           retained.
558
559           The formal syntax is given by:
560
561                   <LOCAL_SECTION_ENTRIES> ::= <SECTION_ENTRY_NAME>[,<LOCAL_SECTION_ENTRIES>]
562                   <SECTION_ENTRY>         ::= <SECTION_NAME>[=[<LOCAL_SECTION_ENTRIES>]]
563                   <SECTION_ENTRIES>       ::= <SECTION_ENTRY>[:<SECTION_ENTRIES>]
564
565           For example, to show only the index and type of each stream, and
566           the PTS time, duration time, and stream index of the packets, you
567           can specify the argument:
568
569                   packet=pts_time,duration_time,stream_index : stream=index,codec_type
570
571           To show all the entries in the section "format", but only the codec
572           type in the section "stream", specify the argument:
573
574                   format : stream=codec_type
575
576           To show all the tags in the stream and format sections:
577
578                   stream_tags : format_tags
579
580           To show only the "title" tag (if available) in the stream sections:
581
582                   stream_tags=title
583
584       -show_packets
585           Show information about each packet contained in the input
586           multimedia stream.
587
588           The information for each single packet is printed within a
589           dedicated section with name "PACKET".
590
591       -show_frames
592           Show information about each frame and subtitle contained in the
593           input multimedia stream.
594
595           The information for each single frame is printed within a dedicated
596           section with name "FRAME" or "SUBTITLE".
597
598       -show_log loglevel
599           Show logging information from the decoder about each frame
600           according to the value set in loglevel, (see "-loglevel"). This
601           option requires "-show_frames".
602
603           The information for each log message is printed within a dedicated
604           section with name "LOG".
605
606       -show_streams
607           Show information about each media stream contained in the input
608           multimedia stream.
609
610           Each media stream information is printed within a dedicated section
611           with name "STREAM".
612
613       -show_programs
614           Show information about programs and their streams contained in the
615           input multimedia stream.
616
617           Each media stream information is printed within a dedicated section
618           with name "PROGRAM_STREAM".
619
620       -show_chapters
621           Show information about chapters stored in the format.
622
623           Each chapter is printed within a dedicated section with name
624           "CHAPTER".
625
626       -count_frames
627           Count the number of frames per stream and report it in the
628           corresponding stream section.
629
630       -count_packets
631           Count the number of packets per stream and report it in the
632           corresponding stream section.
633
634       -read_intervals read_intervals
635           Read only the specified intervals. read_intervals must be a
636           sequence of interval specifications separated by ",".  ffprobe will
637           seek to the interval starting point, and will continue reading from
638           that.
639
640           Each interval is specified by two optional parts, separated by "%".
641
642           The first part specifies the interval start position. It is
643           interpreted as an absolute position, or as a relative offset from
644           the current position if it is preceded by the "+" character. If
645           this first part is not specified, no seeking will be performed when
646           reading this interval.
647
648           The second part specifies the interval end position. It is
649           interpreted as an absolute position, or as a relative offset from
650           the current position if it is preceded by the "+" character. If the
651           offset specification starts with "#", it is interpreted as the
652           number of packets to read (not including the flushing packets) from
653           the interval start. If no second part is specified, the program
654           will read until the end of the input.
655
656           Note that seeking is not accurate, thus the actual interval start
657           point may be different from the specified position. Also, when an
658           interval duration is specified, the absolute end time will be
659           computed by adding the duration to the interval start point found
660           by seeking the file, rather than to the specified start value.
661
662           The formal syntax is given by:
663
664                   <INTERVAL>  ::= [<START>|+<START_OFFSET>][%[<END>|+<END_OFFSET>]]
665                   <INTERVALS> ::= <INTERVAL>[,<INTERVALS>]
666
667           A few examples follow.
668
669           •   Seek to time 10, read packets until 20 seconds after the found
670               seek point, then seek to position "01:30" (1 minute and thirty
671               seconds) and read packets until position "01:45".
672
673                       10%+20,01:30%01:45
674
675           •   Read only 42 packets after seeking to position "01:23":
676
677                       01:23%+#42
678
679           •   Read only the first 20 seconds from the start:
680
681                       %+20
682
683           •   Read from the start until position "02:30":
684
685                       %02:30
686
687       -show_private_data, -private
688           Show private data, that is data depending on the format of the
689           particular shown element.  This option is enabled by default, but
690           you may need to disable it for specific uses, for example when
691           creating XSD-compliant XML output.
692
693       -show_program_version
694           Show information related to program version.
695
696           Version information is printed within a section with name
697           "PROGRAM_VERSION".
698
699       -show_library_versions
700           Show information related to library versions.
701
702           Version information for each library is printed within a section
703           with name "LIBRARY_VERSION".
704
705       -show_versions
706           Show information related to program and library versions. This is
707           the equivalent of setting both -show_program_version and
708           -show_library_versions options.
709
710       -show_pixel_formats
711           Show information about all pixel formats supported by FFmpeg.
712
713           Pixel format information for each format is printed within a
714           section with name "PIXEL_FORMAT".
715
716       -show_optional_fields value
717           Some writers viz. JSON and XML, omit the printing of fields with
718           invalid or non-applicable values, while other writers always print
719           them. This option enables one to control this behaviour.  Valid
720           values are "always"/1, "never"/0 and "auto"/"-1".  Default is auto.
721
722       -bitexact
723           Force bitexact output, useful to produce output which is not
724           dependent on the specific build.
725
726       -i input_url
727           Read input_url.
728
729       -o output_url
730           Write output to output_url. If not specified, the output is sent to
731           stdout.
732

WRITERS

734       A writer defines the output format adopted by ffprobe, and will be used
735       for printing all the parts of the output.
736
737       A writer may accept one or more arguments, which specify the options to
738       adopt. The options are specified as a list of key=value pairs,
739       separated by ":".
740
741       All writers support the following options:
742
743       string_validation, sv
744           Set string validation mode.
745
746           The following values are accepted.
747
748           fail
749               The writer will fail immediately in case an invalid string
750               (UTF-8) sequence or code point is found in the input. This is
751               especially useful to validate input metadata.
752
753           ignore
754               Any validation error will be ignored. This will result in
755               possibly broken output, especially with the json or xml writer.
756
757           replace
758               The writer will substitute invalid UTF-8 sequences or code
759               points with the string specified with the
760               string_validation_replacement.
761
762           Default value is replace.
763
764       string_validation_replacement, svr
765           Set replacement string to use in case string_validation is set to
766           replace.
767
768           In case the option is not specified, the writer will assume the
769           empty string, that is it will remove the invalid sequences from the
770           input strings.
771
772       A description of the currently available writers follows.
773
774   default
775       Default format.
776
777       Print each section in the form:
778
779               [SECTION]
780               key1=val1
781               ...
782               keyN=valN
783               [/SECTION]
784
785       Metadata tags are printed as a line in the corresponding FORMAT, STREAM
786       or PROGRAM_STREAM section, and are prefixed by the string "TAG:".
787
788       A description of the accepted options follows.
789
790       nokey, nk
791           If set to 1 specify not to print the key of each field. Default
792           value is 0.
793
794       noprint_wrappers, nw
795           If set to 1 specify not to print the section header and footer.
796           Default value is 0.
797
798   compact, csv
799       Compact and CSV format.
800
801       The "csv" writer is equivalent to "compact", but supports different
802       defaults.
803
804       Each section is printed on a single line.  If no option is specified,
805       the output has the form:
806
807               section|key1=val1| ... |keyN=valN
808
809       Metadata tags are printed in the corresponding "format" or "stream"
810       section. A metadata tag key, if printed, is prefixed by the string
811       "tag:".
812
813       The description of the accepted options follows.
814
815       item_sep, s
816           Specify the character to use for separating fields in the output
817           line.  It must be a single printable character, it is "|" by
818           default ("," for the "csv" writer).
819
820       nokey, nk
821           If set to 1 specify not to print the key of each field. Its default
822           value is 0 (1 for the "csv" writer).
823
824       escape, e
825           Set the escape mode to use, default to "c" ("csv" for the "csv"
826           writer).
827
828           It can assume one of the following values:
829
830           c   Perform C-like escaping. Strings containing a newline (\n),
831               carriage return (\r), a tab (\t), a form feed (\f), the
832               escaping character (\) or the item separator character SEP are
833               escaped using C-like fashioned escaping, so that a newline is
834               converted to the sequence \n, a carriage return to \r, \ to \\
835               and the separator SEP is converted to \SEP.
836
837           csv Perform CSV-like escaping, as described in RFC4180.  Strings
838               containing a newline (\n), a carriage return (\r), a double
839               quote ("), or SEP are enclosed in double-quotes.
840
841           none
842               Perform no escaping.
843
844       print_section, p
845           Print the section name at the beginning of each line if the value
846           is 1, disable it with value set to 0. Default value is 1.
847
848   flat
849       Flat format.
850
851       A free-form output where each line contains an explicit key=value, such
852       as "streams.stream.3.tags.foo=bar". The output is shell escaped, so it
853       can be directly embedded in sh scripts as long as the separator
854       character is an alphanumeric character or an underscore (see sep_char
855       option).
856
857       The description of the accepted options follows.
858
859       sep_char, s
860           Separator character used to separate the chapter, the section name,
861           IDs and potential tags in the printed field key.
862
863           Default value is ..
864
865       hierarchical, h
866           Specify if the section name specification should be hierarchical.
867           If set to 1, and if there is more than one section in the current
868           chapter, the section name will be prefixed by the name of the
869           chapter. A value of 0 will disable this behavior.
870
871           Default value is 1.
872
873   ini
874       INI format output.
875
876       Print output in an INI based format.
877
878       The following conventions are adopted:
879
880       •   all key and values are UTF-8
881
882       •   . is the subgroup separator
883
884       •   newline, \t, \f, \b and the following characters are escaped
885
886       •   \ is the escape character
887
888       •   # is the comment indicator
889
890       •   = is the key/value separator
891
892       •   : is not used but usually parsed as key/value separator
893
894       This writer accepts options as a list of key=value pairs, separated by
895       :.
896
897       The description of the accepted options follows.
898
899       hierarchical, h
900           Specify if the section name specification should be hierarchical.
901           If set to 1, and if there is more than one section in the current
902           chapter, the section name will be prefixed by the name of the
903           chapter. A value of 0 will disable this behavior.
904
905           Default value is 1.
906
907   json
908       JSON based format.
909
910       Each section is printed using JSON notation.
911
912       The description of the accepted options follows.
913
914       compact, c
915           If set to 1 enable compact output, that is each section will be
916           printed on a single line. Default value is 0.
917
918       For more information about JSON, see <http://www.json.org/>.
919
920   xml
921       XML based format.
922
923       The XML output is described in the XML schema description file
924       ffprobe.xsd installed in the FFmpeg datadir.
925
926       An updated version of the schema can be retrieved at the url
927       <http://www.ffmpeg.org/schema/ffprobe.xsd>, which redirects to the
928       latest schema committed into the FFmpeg development source code tree.
929
930       Note that the output issued will be compliant to the ffprobe.xsd schema
931       only when no special global output options (unit, prefix,
932       byte_binary_prefix, sexagesimal etc.) are specified.
933
934       The description of the accepted options follows.
935
936       fully_qualified, q
937           If set to 1 specify if the output should be fully qualified.
938           Default value is 0.  This is required for generating an XML file
939           which can be validated through an XSD file.
940
941       xsd_strict, x
942           If set to 1 perform more checks for ensuring that the output is XSD
943           compliant. Default value is 0.  This option automatically sets
944           fully_qualified to 1.
945
946       For more information about the XML format, see
947       <https://www.w3.org/XML/>.
948

TIMECODE

950       ffprobe supports Timecode extraction:
951
952       •   MPEG1/2 timecode is extracted from the GOP, and is available in the
953           video stream details (-show_streams, see timecode).
954
955       •   MOV timecode is extracted from tmcd track, so is available in the
956           tmcd stream metadata (-show_streams, see TAG:timecode).
957
958       •   DV, GXF and AVI timecodes are available in format metadata
959           (-show_format, see TAG:timecode).
960

SYNTAX

962       This section documents the syntax and formats employed by the FFmpeg
963       libraries and tools.
964
965   Quoting and escaping
966       FFmpeg adopts the following quoting and escaping mechanism, unless
967       explicitly specified. The following rules are applied:
968
969       •   ' and \ are special characters (respectively used for quoting and
970           escaping). In addition to them, there might be other special
971           characters depending on the specific syntax where the escaping and
972           quoting are employed.
973
974       •   A special character is escaped by prefixing it with a \.
975
976       •   All characters enclosed between '' are included literally in the
977           parsed string. The quote character ' itself cannot be quoted, so
978           you may need to close the quote and escape it.
979
980       •   Leading and trailing whitespaces, unless escaped or quoted, are
981           removed from the parsed string.
982
983       Note that you may need to add a second level of escaping when using the
984       command line or a script, which depends on the syntax of the adopted
985       shell language.
986
987       The function "av_get_token" defined in libavutil/avstring.h can be used
988       to parse a token quoted or escaped according to the rules defined
989       above.
990
991       The tool tools/ffescape in the FFmpeg source tree can be used to
992       automatically quote or escape a string in a script.
993
994       Examples
995
996       •   Escape the string "Crime d'Amour" containing the "'" special
997           character:
998
999                   Crime d\'Amour
1000
1001       •   The string above contains a quote, so the "'" needs to be escaped
1002           when quoting it:
1003
1004                   'Crime d'\''Amour'
1005
1006       •   Include leading or trailing whitespaces using quoting:
1007
1008                   '  this string starts and ends with whitespaces  '
1009
1010       •   Escaping and quoting can be mixed together:
1011
1012                   ' The string '\'string\'' is a string '
1013
1014       •   To include a literal \ you can use either escaping or quoting:
1015
1016                   'c:\foo' can be written as c:\\foo
1017
1018   Date
1019       The accepted syntax is:
1020
1021               [(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
1022               now
1023
1024       If the value is "now" it takes the current time.
1025
1026       Time is local time unless Z is appended, in which case it is
1027       interpreted as UTC.  If the year-month-day part is not specified it
1028       takes the current year-month-day.
1029
1030   Time duration
1031       There are two accepted syntaxes for expressing time duration.
1032
1033               [-][<HH>:]<MM>:<SS>[.<m>...]
1034
1035       HH expresses the number of hours, MM the number of minutes for a
1036       maximum of 2 digits, and SS the number of seconds for a maximum of 2
1037       digits. The m at the end expresses decimal value for SS.
1038
1039       or
1040
1041               [-]<S>+[.<m>...][s|ms|us]
1042
1043       S expresses the number of seconds, with the optional decimal part m.
1044       The optional literal suffixes s, ms or us indicate to interpret the
1045       value as seconds, milliseconds or microseconds, respectively.
1046
1047       In both expressions, the optional - indicates negative duration.
1048
1049       Examples
1050
1051       The following examples are all valid time duration:
1052
1053       55  55 seconds
1054
1055       0.2 0.2 seconds
1056
1057       200ms
1058           200 milliseconds, that's 0.2s
1059
1060       200000us
1061           200000 microseconds, that's 0.2s
1062
1063       12:03:45
1064           12 hours, 03 minutes and 45 seconds
1065
1066       23.189
1067           23.189 seconds
1068
1069   Video size
1070       Specify the size of the sourced video, it may be a string of the form
1071       widthxheight, or the name of a size abbreviation.
1072
1073       The following abbreviations are recognized:
1074
1075       ntsc
1076           720x480
1077
1078       pal 720x576
1079
1080       qntsc
1081           352x240
1082
1083       qpal
1084           352x288
1085
1086       sntsc
1087           640x480
1088
1089       spal
1090           768x576
1091
1092       film
1093           352x240
1094
1095       ntsc-film
1096           352x240
1097
1098       sqcif
1099           128x96
1100
1101       qcif
1102           176x144
1103
1104       cif 352x288
1105
1106       4cif
1107           704x576
1108
1109       16cif
1110           1408x1152
1111
1112       qqvga
1113           160x120
1114
1115       qvga
1116           320x240
1117
1118       vga 640x480
1119
1120       svga
1121           800x600
1122
1123       xga 1024x768
1124
1125       uxga
1126           1600x1200
1127
1128       qxga
1129           2048x1536
1130
1131       sxga
1132           1280x1024
1133
1134       qsxga
1135           2560x2048
1136
1137       hsxga
1138           5120x4096
1139
1140       wvga
1141           852x480
1142
1143       wxga
1144           1366x768
1145
1146       wsxga
1147           1600x1024
1148
1149       wuxga
1150           1920x1200
1151
1152       woxga
1153           2560x1600
1154
1155       wqsxga
1156           3200x2048
1157
1158       wquxga
1159           3840x2400
1160
1161       whsxga
1162           6400x4096
1163
1164       whuxga
1165           7680x4800
1166
1167       cga 320x200
1168
1169       ega 640x350
1170
1171       hd480
1172           852x480
1173
1174       hd720
1175           1280x720
1176
1177       hd1080
1178           1920x1080
1179
1180       2k  2048x1080
1181
1182       2kflat
1183           1998x1080
1184
1185       2kscope
1186           2048x858
1187
1188       4k  4096x2160
1189
1190       4kflat
1191           3996x2160
1192
1193       4kscope
1194           4096x1716
1195
1196       nhd 640x360
1197
1198       hqvga
1199           240x160
1200
1201       wqvga
1202           400x240
1203
1204       fwqvga
1205           432x240
1206
1207       hvga
1208           480x320
1209
1210       qhd 960x540
1211
1212       2kdci
1213           2048x1080
1214
1215       4kdci
1216           4096x2160
1217
1218       uhd2160
1219           3840x2160
1220
1221       uhd4320
1222           7680x4320
1223
1224   Video rate
1225       Specify the frame rate of a video, expressed as the number of frames
1226       generated per second. It has to be a string in the format
1227       frame_rate_num/frame_rate_den, an integer number, a float number or a
1228       valid video frame rate abbreviation.
1229
1230       The following abbreviations are recognized:
1231
1232       ntsc
1233           30000/1001
1234
1235       pal 25/1
1236
1237       qntsc
1238           30000/1001
1239
1240       qpal
1241           25/1
1242
1243       sntsc
1244           30000/1001
1245
1246       spal
1247           25/1
1248
1249       film
1250           24/1
1251
1252       ntsc-film
1253           24000/1001
1254
1255   Ratio
1256       A ratio can be expressed as an expression, or in the form
1257       numerator:denominator.
1258
1259       Note that a ratio with infinite (1/0) or negative value is considered
1260       valid, so you should check on the returned value if you want to exclude
1261       those values.
1262
1263       The undefined value can be expressed using the "0:0" string.
1264
1265   Color
1266       It can be the name of a color as defined below (case insensitive match)
1267       or a "[0x|#]RRGGBB[AA]" sequence, possibly followed by @ and a string
1268       representing the alpha component.
1269
1270       The alpha component may be a string composed by "0x" followed by an
1271       hexadecimal number or a decimal number between 0.0 and 1.0, which
1272       represents the opacity value (0x00 or 0.0 means completely transparent,
1273       0xff or 1.0 completely opaque). If the alpha component is not specified
1274       then 0xff is assumed.
1275
1276       The string random will result in a random color.
1277
1278       The following names of colors are recognized:
1279
1280       AliceBlue
1281           0xF0F8FF
1282
1283       AntiqueWhite
1284           0xFAEBD7
1285
1286       Aqua
1287           0x00FFFF
1288
1289       Aquamarine
1290           0x7FFFD4
1291
1292       Azure
1293           0xF0FFFF
1294
1295       Beige
1296           0xF5F5DC
1297
1298       Bisque
1299           0xFFE4C4
1300
1301       Black
1302           0x000000
1303
1304       BlanchedAlmond
1305           0xFFEBCD
1306
1307       Blue
1308           0x0000FF
1309
1310       BlueViolet
1311           0x8A2BE2
1312
1313       Brown
1314           0xA52A2A
1315
1316       BurlyWood
1317           0xDEB887
1318
1319       CadetBlue
1320           0x5F9EA0
1321
1322       Chartreuse
1323           0x7FFF00
1324
1325       Chocolate
1326           0xD2691E
1327
1328       Coral
1329           0xFF7F50
1330
1331       CornflowerBlue
1332           0x6495ED
1333
1334       Cornsilk
1335           0xFFF8DC
1336
1337       Crimson
1338           0xDC143C
1339
1340       Cyan
1341           0x00FFFF
1342
1343       DarkBlue
1344           0x00008B
1345
1346       DarkCyan
1347           0x008B8B
1348
1349       DarkGoldenRod
1350           0xB8860B
1351
1352       DarkGray
1353           0xA9A9A9
1354
1355       DarkGreen
1356           0x006400
1357
1358       DarkKhaki
1359           0xBDB76B
1360
1361       DarkMagenta
1362           0x8B008B
1363
1364       DarkOliveGreen
1365           0x556B2F
1366
1367       Darkorange
1368           0xFF8C00
1369
1370       DarkOrchid
1371           0x9932CC
1372
1373       DarkRed
1374           0x8B0000
1375
1376       DarkSalmon
1377           0xE9967A
1378
1379       DarkSeaGreen
1380           0x8FBC8F
1381
1382       DarkSlateBlue
1383           0x483D8B
1384
1385       DarkSlateGray
1386           0x2F4F4F
1387
1388       DarkTurquoise
1389           0x00CED1
1390
1391       DarkViolet
1392           0x9400D3
1393
1394       DeepPink
1395           0xFF1493
1396
1397       DeepSkyBlue
1398           0x00BFFF
1399
1400       DimGray
1401           0x696969
1402
1403       DodgerBlue
1404           0x1E90FF
1405
1406       FireBrick
1407           0xB22222
1408
1409       FloralWhite
1410           0xFFFAF0
1411
1412       ForestGreen
1413           0x228B22
1414
1415       Fuchsia
1416           0xFF00FF
1417
1418       Gainsboro
1419           0xDCDCDC
1420
1421       GhostWhite
1422           0xF8F8FF
1423
1424       Gold
1425           0xFFD700
1426
1427       GoldenRod
1428           0xDAA520
1429
1430       Gray
1431           0x808080
1432
1433       Green
1434           0x008000
1435
1436       GreenYellow
1437           0xADFF2F
1438
1439       HoneyDew
1440           0xF0FFF0
1441
1442       HotPink
1443           0xFF69B4
1444
1445       IndianRed
1446           0xCD5C5C
1447
1448       Indigo
1449           0x4B0082
1450
1451       Ivory
1452           0xFFFFF0
1453
1454       Khaki
1455           0xF0E68C
1456
1457       Lavender
1458           0xE6E6FA
1459
1460       LavenderBlush
1461           0xFFF0F5
1462
1463       LawnGreen
1464           0x7CFC00
1465
1466       LemonChiffon
1467           0xFFFACD
1468
1469       LightBlue
1470           0xADD8E6
1471
1472       LightCoral
1473           0xF08080
1474
1475       LightCyan
1476           0xE0FFFF
1477
1478       LightGoldenRodYellow
1479           0xFAFAD2
1480
1481       LightGreen
1482           0x90EE90
1483
1484       LightGrey
1485           0xD3D3D3
1486
1487       LightPink
1488           0xFFB6C1
1489
1490       LightSalmon
1491           0xFFA07A
1492
1493       LightSeaGreen
1494           0x20B2AA
1495
1496       LightSkyBlue
1497           0x87CEFA
1498
1499       LightSlateGray
1500           0x778899
1501
1502       LightSteelBlue
1503           0xB0C4DE
1504
1505       LightYellow
1506           0xFFFFE0
1507
1508       Lime
1509           0x00FF00
1510
1511       LimeGreen
1512           0x32CD32
1513
1514       Linen
1515           0xFAF0E6
1516
1517       Magenta
1518           0xFF00FF
1519
1520       Maroon
1521           0x800000
1522
1523       MediumAquaMarine
1524           0x66CDAA
1525
1526       MediumBlue
1527           0x0000CD
1528
1529       MediumOrchid
1530           0xBA55D3
1531
1532       MediumPurple
1533           0x9370D8
1534
1535       MediumSeaGreen
1536           0x3CB371
1537
1538       MediumSlateBlue
1539           0x7B68EE
1540
1541       MediumSpringGreen
1542           0x00FA9A
1543
1544       MediumTurquoise
1545           0x48D1CC
1546
1547       MediumVioletRed
1548           0xC71585
1549
1550       MidnightBlue
1551           0x191970
1552
1553       MintCream
1554           0xF5FFFA
1555
1556       MistyRose
1557           0xFFE4E1
1558
1559       Moccasin
1560           0xFFE4B5
1561
1562       NavajoWhite
1563           0xFFDEAD
1564
1565       Navy
1566           0x000080
1567
1568       OldLace
1569           0xFDF5E6
1570
1571       Olive
1572           0x808000
1573
1574       OliveDrab
1575           0x6B8E23
1576
1577       Orange
1578           0xFFA500
1579
1580       OrangeRed
1581           0xFF4500
1582
1583       Orchid
1584           0xDA70D6
1585
1586       PaleGoldenRod
1587           0xEEE8AA
1588
1589       PaleGreen
1590           0x98FB98
1591
1592       PaleTurquoise
1593           0xAFEEEE
1594
1595       PaleVioletRed
1596           0xD87093
1597
1598       PapayaWhip
1599           0xFFEFD5
1600
1601       PeachPuff
1602           0xFFDAB9
1603
1604       Peru
1605           0xCD853F
1606
1607       Pink
1608           0xFFC0CB
1609
1610       Plum
1611           0xDDA0DD
1612
1613       PowderBlue
1614           0xB0E0E6
1615
1616       Purple
1617           0x800080
1618
1619       Red 0xFF0000
1620
1621       RosyBrown
1622           0xBC8F8F
1623
1624       RoyalBlue
1625           0x4169E1
1626
1627       SaddleBrown
1628           0x8B4513
1629
1630       Salmon
1631           0xFA8072
1632
1633       SandyBrown
1634           0xF4A460
1635
1636       SeaGreen
1637           0x2E8B57
1638
1639       SeaShell
1640           0xFFF5EE
1641
1642       Sienna
1643           0xA0522D
1644
1645       Silver
1646           0xC0C0C0
1647
1648       SkyBlue
1649           0x87CEEB
1650
1651       SlateBlue
1652           0x6A5ACD
1653
1654       SlateGray
1655           0x708090
1656
1657       Snow
1658           0xFFFAFA
1659
1660       SpringGreen
1661           0x00FF7F
1662
1663       SteelBlue
1664           0x4682B4
1665
1666       Tan 0xD2B48C
1667
1668       Teal
1669           0x008080
1670
1671       Thistle
1672           0xD8BFD8
1673
1674       Tomato
1675           0xFF6347
1676
1677       Turquoise
1678           0x40E0D0
1679
1680       Violet
1681           0xEE82EE
1682
1683       Wheat
1684           0xF5DEB3
1685
1686       White
1687           0xFFFFFF
1688
1689       WhiteSmoke
1690           0xF5F5F5
1691
1692       Yellow
1693           0xFFFF00
1694
1695       YellowGreen
1696           0x9ACD32
1697
1698   Channel Layout
1699       A channel layout specifies the spatial disposition of the channels in a
1700       multi-channel audio stream. To specify a channel layout, FFmpeg makes
1701       use of a special syntax.
1702
1703       Individual channels are identified by an id, as given by the table
1704       below:
1705
1706       FL  front left
1707
1708       FR  front right
1709
1710       FC  front center
1711
1712       LFE low frequency
1713
1714       BL  back left
1715
1716       BR  back right
1717
1718       FLC front left-of-center
1719
1720       FRC front right-of-center
1721
1722       BC  back center
1723
1724       SL  side left
1725
1726       SR  side right
1727
1728       TC  top center
1729
1730       TFL top front left
1731
1732       TFC top front center
1733
1734       TFR top front right
1735
1736       TBL top back left
1737
1738       TBC top back center
1739
1740       TBR top back right
1741
1742       DL  downmix left
1743
1744       DR  downmix right
1745
1746       WL  wide left
1747
1748       WR  wide right
1749
1750       SDL surround direct left
1751
1752       SDR surround direct right
1753
1754       LFE2
1755           low frequency 2
1756
1757       Standard channel layout compositions can be specified by using the
1758       following identifiers:
1759
1760       mono
1761           FC
1762
1763       stereo
1764           FL+FR
1765
1766       2.1 FL+FR+LFE
1767
1768       3.0 FL+FR+FC
1769
1770       3.0(back)
1771           FL+FR+BC
1772
1773       4.0 FL+FR+FC+BC
1774
1775       quad
1776           FL+FR+BL+BR
1777
1778       quad(side)
1779           FL+FR+SL+SR
1780
1781       3.1 FL+FR+FC+LFE
1782
1783       5.0 FL+FR+FC+BL+BR
1784
1785       5.0(side)
1786           FL+FR+FC+SL+SR
1787
1788       4.1 FL+FR+FC+LFE+BC
1789
1790       5.1 FL+FR+FC+LFE+BL+BR
1791
1792       5.1(side)
1793           FL+FR+FC+LFE+SL+SR
1794
1795       6.0 FL+FR+FC+BC+SL+SR
1796
1797       6.0(front)
1798           FL+FR+FLC+FRC+SL+SR
1799
1800       hexagonal
1801           FL+FR+FC+BL+BR+BC
1802
1803       6.1 FL+FR+FC+LFE+BC+SL+SR
1804
1805       6.1 FL+FR+FC+LFE+BL+BR+BC
1806
1807       6.1(front)
1808           FL+FR+LFE+FLC+FRC+SL+SR
1809
1810       7.0 FL+FR+FC+BL+BR+SL+SR
1811
1812       7.0(front)
1813           FL+FR+FC+FLC+FRC+SL+SR
1814
1815       7.1 FL+FR+FC+LFE+BL+BR+SL+SR
1816
1817       7.1(wide)
1818           FL+FR+FC+LFE+BL+BR+FLC+FRC
1819
1820       7.1(wide-side)
1821           FL+FR+FC+LFE+FLC+FRC+SL+SR
1822
1823       octagonal
1824           FL+FR+FC+BL+BR+BC+SL+SR
1825
1826       hexadecagonal
1827           FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR
1828
1829       downmix
1830           DL+DR
1831
1832       22.2
1833           FL+FR+FC+LFE+BL+BR+FLC+FRC+BC+SL+SR+TC+TFL+TFC+TFR+TBL+TBC+TBR+LFE2+TSL+TSR+BFC+BFL+BFR
1834
1835       A custom channel layout can be specified as a sequence of terms,
1836       separated by '+'.  Each term can be:
1837
1838       •   the name of a single channel (e.g. FL, FR, FC, LFE, etc.), each
1839           optionally containing a custom name after a '@', (e.g. FL@Left,
1840           FR@Right, FC@Center, LFE@Low_Frequency, etc.)
1841
1842       A standard channel layout can be specified by the following:
1843
1844       •   the name of a single channel (e.g. FL, FR, FC, LFE, etc.)
1845
1846       •   the name of a standard channel layout (e.g. mono, stereo, 4.0,
1847           quad, 5.0, etc.)
1848
1849       •   a number of channels, in decimal, followed by 'c', yielding the
1850           default channel layout for that number of channels (see the
1851           function "av_channel_layout_default"). Note that not all channel
1852           counts have a default layout.
1853
1854       •   a number of channels, in decimal, followed by 'C', yielding an
1855           unknown channel layout with the specified number of channels. Note
1856           that not all channel layout specification strings support unknown
1857           channel layouts.
1858
1859       •   a channel layout mask, in hexadecimal starting with "0x" (see the
1860           "AV_CH_*" macros in libavutil/channel_layout.h.
1861
1862       Before libavutil version 53 the trailing character "c" to specify a
1863       number of channels was optional, but now it is required, while a
1864       channel layout mask can also be specified as a decimal number (if and
1865       only if not followed by "c" or "C").
1866
1867       See also the function "av_channel_layout_from_string" defined in
1868       libavutil/channel_layout.h.
1869

EXPRESSION EVALUATION

1871       When evaluating an arithmetic expression, FFmpeg uses an internal
1872       formula evaluator, implemented through the libavutil/eval.h interface.
1873
1874       An expression may contain unary, binary operators, constants, and
1875       functions.
1876
1877       Two expressions expr1 and expr2 can be combined to form another
1878       expression "expr1;expr2".  expr1 and expr2 are evaluated in turn, and
1879       the new expression evaluates to the value of expr2.
1880
1881       The following binary operators are available: "+", "-", "*", "/", "^".
1882
1883       The following unary operators are available: "+", "-".
1884
1885       The following functions are available:
1886
1887       abs(x)
1888           Compute absolute value of x.
1889
1890       acos(x)
1891           Compute arccosine of x.
1892
1893       asin(x)
1894           Compute arcsine of x.
1895
1896       atan(x)
1897           Compute arctangent of x.
1898
1899       atan2(x, y)
1900           Compute principal value of the arc tangent of y/x.
1901
1902       between(x, min, max)
1903           Return 1 if x is greater than or equal to min and lesser than or
1904           equal to max, 0 otherwise.
1905
1906       bitand(x, y)
1907       bitor(x, y)
1908           Compute bitwise and/or operation on x and y.
1909
1910           The results of the evaluation of x and y are converted to integers
1911           before executing the bitwise operation.
1912
1913           Note that both the conversion to integer and the conversion back to
1914           floating point can lose precision. Beware of unexpected results for
1915           large numbers (usually 2^53 and larger).
1916
1917       ceil(expr)
1918           Round the value of expression expr upwards to the nearest integer.
1919           For example, "ceil(1.5)" is "2.0".
1920
1921       clip(x, min, max)
1922           Return the value of x clipped between min and max.
1923
1924       cos(x)
1925           Compute cosine of x.
1926
1927       cosh(x)
1928           Compute hyperbolic cosine of x.
1929
1930       eq(x, y)
1931           Return 1 if x and y are equivalent, 0 otherwise.
1932
1933       exp(x)
1934           Compute exponential of x (with base "e", the Euler's number).
1935
1936       floor(expr)
1937           Round the value of expression expr downwards to the nearest
1938           integer. For example, "floor(-1.5)" is "-2.0".
1939
1940       gauss(x)
1941           Compute Gauss function of x, corresponding to "exp(-x*x/2) /
1942           sqrt(2*PI)".
1943
1944       gcd(x, y)
1945           Return the greatest common divisor of x and y. If both x and y are
1946           0 or either or both are less than zero then behavior is undefined.
1947
1948       gt(x, y)
1949           Return 1 if x is greater than y, 0 otherwise.
1950
1951       gte(x, y)
1952           Return 1 if x is greater than or equal to y, 0 otherwise.
1953
1954       hypot(x, y)
1955           This function is similar to the C function with the same name; it
1956           returns "sqrt(x*x + y*y)", the length of the hypotenuse of a right
1957           triangle with sides of length x and y, or the distance of the point
1958           (x, y) from the origin.
1959
1960       if(x, y)
1961           Evaluate x, and if the result is non-zero return the result of the
1962           evaluation of y, return 0 otherwise.
1963
1964       if(x, y, z)
1965           Evaluate x, and if the result is non-zero return the evaluation
1966           result of y, otherwise the evaluation result of z.
1967
1968       ifnot(x, y)
1969           Evaluate x, and if the result is zero return the result of the
1970           evaluation of y, return 0 otherwise.
1971
1972       ifnot(x, y, z)
1973           Evaluate x, and if the result is zero return the evaluation result
1974           of y, otherwise the evaluation result of z.
1975
1976       isinf(x)
1977           Return 1.0 if x is +/-INFINITY, 0.0 otherwise.
1978
1979       isnan(x)
1980           Return 1.0 if x is NAN, 0.0 otherwise.
1981
1982       ld(var)
1983           Load the value of the internal variable with number var, which was
1984           previously stored with st(var, expr).  The function returns the
1985           loaded value.
1986
1987       lerp(x, y, z)
1988           Return linear interpolation between x and y by amount of z.
1989
1990       log(x)
1991           Compute natural logarithm of x.
1992
1993       lt(x, y)
1994           Return 1 if x is lesser than y, 0 otherwise.
1995
1996       lte(x, y)
1997           Return 1 if x is lesser than or equal to y, 0 otherwise.
1998
1999       max(x, y)
2000           Return the maximum between x and y.
2001
2002       min(x, y)
2003           Return the minimum between x and y.
2004
2005       mod(x, y)
2006           Compute the remainder of division of x by y.
2007
2008       not(expr)
2009           Return 1.0 if expr is zero, 0.0 otherwise.
2010
2011       pow(x, y)
2012           Compute the power of x elevated y, it is equivalent to "(x)^(y)".
2013
2014       print(t)
2015       print(t, l)
2016           Print the value of expression t with loglevel l. If l is not
2017           specified then a default log level is used.  Returns the value of
2018           the expression printed.
2019
2020           Prints t with loglevel l
2021
2022       random(x)
2023           Return a pseudo random value between 0.0 and 1.0. x is the index of
2024           the internal variable which will be used to save the seed/state.
2025
2026       root(expr, max)
2027           Find an input value for which the function represented by expr with
2028           argument ld(0) is 0 in the interval 0..max.
2029
2030           The expression in expr must denote a continuous function or the
2031           result is undefined.
2032
2033           ld(0) is used to represent the function input value, which means
2034           that the given expression will be evaluated multiple times with
2035           various input values that the expression can access through ld(0).
2036           When the expression evaluates to 0 then the corresponding input
2037           value will be returned.
2038
2039       round(expr)
2040           Round the value of expression expr to the nearest integer. For
2041           example, "round(1.5)" is "2.0".
2042
2043       sgn(x)
2044           Compute sign of x.
2045
2046       sin(x)
2047           Compute sine of x.
2048
2049       sinh(x)
2050           Compute hyperbolic sine of x.
2051
2052       sqrt(expr)
2053           Compute the square root of expr. This is equivalent to "(expr)^.5".
2054
2055       squish(x)
2056           Compute expression "1/(1 + exp(4*x))".
2057
2058       st(var, expr)
2059           Store the value of the expression expr in an internal variable. var
2060           specifies the number of the variable where to store the value, and
2061           it is a value ranging from 0 to 9. The function returns the value
2062           stored in the internal variable.  Note, Variables are currently not
2063           shared between expressions.
2064
2065       tan(x)
2066           Compute tangent of x.
2067
2068       tanh(x)
2069           Compute hyperbolic tangent of x.
2070
2071       taylor(expr, x)
2072       taylor(expr, x, id)
2073           Evaluate a Taylor series at x, given an expression representing the
2074           "ld(id)"-th derivative of a function at 0.
2075
2076           When the series does not converge the result is undefined.
2077
2078           ld(id) is used to represent the derivative order in expr, which
2079           means that the given expression will be evaluated multiple times
2080           with various input values that the expression can access through
2081           "ld(id)". If id is not specified then 0 is assumed.
2082
2083           Note, when you have the derivatives at y instead of 0,
2084           "taylor(expr, x-y)" can be used.
2085
2086       time(0)
2087           Return the current (wallclock) time in seconds.
2088
2089       trunc(expr)
2090           Round the value of expression expr towards zero to the nearest
2091           integer. For example, "trunc(-1.5)" is "-1.0".
2092
2093       while(cond, expr)
2094           Evaluate expression expr while the expression cond is non-zero, and
2095           returns the value of the last expr evaluation, or NAN if cond was
2096           always false.
2097
2098       The following constants are available:
2099
2100       PI  area of the unit disc, approximately 3.14
2101
2102       E   exp(1) (Euler's number), approximately 2.718
2103
2104       PHI golden ratio (1+sqrt(5))/2, approximately 1.618
2105
2106       Assuming that an expression is considered "true" if it has a non-zero
2107       value, note that:
2108
2109       "*" works like AND
2110
2111       "+" works like OR
2112
2113       For example the construct:
2114
2115               if (A AND B) then C
2116
2117       is equivalent to:
2118
2119               if(A*B, C)
2120
2121       In your C code, you can extend the list of unary and binary functions,
2122       and define recognized constants, so that they are available for your
2123       expressions.
2124
2125       The evaluator also recognizes the International System unit prefixes.
2126       If 'i' is appended after the prefix, binary prefixes are used, which
2127       are based on powers of 1024 instead of powers of 1000.  The 'B' postfix
2128       multiplies the value by 8, and can be appended after a unit prefix or
2129       used alone. This allows using for example 'KB', 'MiB', 'G' and 'B' as
2130       number postfix.
2131
2132       The list of available International System prefixes follows, with
2133       indication of the corresponding powers of 10 and of 2.
2134
2135       y   10^-24 / 2^-80
2136
2137       z   10^-21 / 2^-70
2138
2139       a   10^-18 / 2^-60
2140
2141       f   10^-15 / 2^-50
2142
2143       p   10^-12 / 2^-40
2144
2145       n   10^-9 / 2^-30
2146
2147       u   10^-6 / 2^-20
2148
2149       m   10^-3 / 2^-10
2150
2151       c   10^-2
2152
2153       d   10^-1
2154
2155       h   10^2
2156
2157       k   10^3 / 2^10
2158
2159       K   10^3 / 2^10
2160
2161       M   10^6 / 2^20
2162
2163       G   10^9 / 2^30
2164
2165       T   10^12 / 2^40
2166
2167       P   10^15 / 2^40
2168
2169       E   10^18 / 2^50
2170
2171       Z   10^21 / 2^60
2172
2173       Y   10^24 / 2^70
2174

CODEC OPTIONS

2176       libavcodec provides some generic global options, which can be set on
2177       all the encoders and decoders. In addition each codec may support so-
2178       called private options, which are specific for a given codec.
2179
2180       Sometimes, a global option may only affect a specific kind of codec,
2181       and may be nonsensical or ignored by another, so you need to be aware
2182       of the meaning of the specified options. Also some options are meant
2183       only for decoding or encoding.
2184
2185       Options may be set by specifying -option value in the FFmpeg tools, or
2186       by setting the value explicitly in the "AVCodecContext" options or
2187       using the libavutil/opt.h API for programmatic use.
2188
2189       The list of supported options follow:
2190
2191       b integer (encoding,audio,video)
2192           Set bitrate in bits/s. Default value is 200K.
2193
2194       ab integer (encoding,audio)
2195           Set audio bitrate (in bits/s). Default value is 128K.
2196
2197       bt integer (encoding,video)
2198           Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
2199           tolerance specifies how far ratecontrol is willing to deviate from
2200           the target average bitrate value. This is not related to min/max
2201           bitrate. Lowering tolerance too much has an adverse effect on
2202           quality.
2203
2204       flags flags (decoding/encoding,audio,video,subtitles)
2205           Set generic flags.
2206
2207           Possible values:
2208
2209           mv4 Use four motion vector by macroblock (mpeg4).
2210
2211           qpel
2212               Use 1/4 pel motion compensation.
2213
2214           loop
2215               Use loop filter.
2216
2217           qscale
2218               Use fixed qscale.
2219
2220           pass1
2221               Use internal 2pass ratecontrol in first pass mode.
2222
2223           pass2
2224               Use internal 2pass ratecontrol in second pass mode.
2225
2226           gray
2227               Only decode/encode grayscale.
2228
2229           psnr
2230               Set error[?] variables during encoding.
2231
2232           truncated
2233               Input bitstream might be randomly truncated.
2234
2235           drop_changed
2236               Don't output frames whose parameters differ from first decoded
2237               frame in stream.  Error AVERROR_INPUT_CHANGED is returned when
2238               a frame is dropped.
2239
2240           ildct
2241               Use interlaced DCT.
2242
2243           low_delay
2244               Force low delay.
2245
2246           global_header
2247               Place global headers in extradata instead of every keyframe.
2248
2249           bitexact
2250               Only write platform-, build- and time-independent data. (except
2251               (I)DCT).  This ensures that file and data checksums are
2252               reproducible and match between platforms. Its primary use is
2253               for regression testing.
2254
2255           aic Apply H263 advanced intra coding / mpeg4 ac prediction.
2256
2257           ilme
2258               Apply interlaced motion estimation.
2259
2260           cgop
2261               Use closed gop.
2262
2263           output_corrupt
2264               Output even potentially corrupted frames.
2265
2266       time_base rational number
2267           Set codec time base.
2268
2269           It is the fundamental unit of time (in seconds) in terms of which
2270           frame timestamps are represented. For fixed-fps content, timebase
2271           should be "1 / frame_rate" and timestamp increments should be
2272           identically 1.
2273
2274       g integer (encoding,video)
2275           Set the group of picture (GOP) size. Default value is 12.
2276
2277       ar integer (decoding/encoding,audio)
2278           Set audio sampling rate (in Hz).
2279
2280       ac integer (decoding/encoding,audio)
2281           Set number of audio channels.
2282
2283       cutoff integer (encoding,audio)
2284           Set cutoff bandwidth. (Supported only by selected encoders, see
2285           their respective documentation sections.)
2286
2287       frame_size integer (encoding,audio)
2288           Set audio frame size.
2289
2290           Each submitted frame except the last must contain exactly
2291           frame_size samples per channel. May be 0 when the codec has
2292           CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is
2293           not restricted. It is set by some decoders to indicate constant
2294           frame size.
2295
2296       frame_number integer
2297           Set the frame number.
2298
2299       delay integer
2300       qcomp float (encoding,video)
2301           Set video quantizer scale compression (VBR). It is used as a
2302           constant in the ratecontrol equation. Recommended range for default
2303           rc_eq: 0.0-1.0.
2304
2305       qblur float (encoding,video)
2306           Set video quantizer scale blur (VBR).
2307
2308       qmin integer (encoding,video)
2309           Set min video quantizer scale (VBR). Must be included between -1
2310           and 69, default value is 2.
2311
2312       qmax integer (encoding,video)
2313           Set max video quantizer scale (VBR). Must be included between -1
2314           and 1024, default value is 31.
2315
2316       qdiff integer (encoding,video)
2317           Set max difference between the quantizer scale (VBR).
2318
2319       bf integer (encoding,video)
2320           Set max number of B frames between non-B-frames.
2321
2322           Must be an integer between -1 and 16. 0 means that B-frames are
2323           disabled. If a value of -1 is used, it will choose an automatic
2324           value depending on the encoder.
2325
2326           Default value is 0.
2327
2328       b_qfactor float (encoding,video)
2329           Set qp factor between P and B frames.
2330
2331       codec_tag integer
2332       bug flags (decoding,video)
2333           Workaround not auto detected encoder bugs.
2334
2335           Possible values:
2336
2337           autodetect
2338           xvid_ilace
2339               Xvid interlacing bug (autodetected if fourcc==XVIX)
2340
2341           ump4
2342               (autodetected if fourcc==UMP4)
2343
2344           no_padding
2345               padding bug (autodetected)
2346
2347           amv
2348           qpel_chroma
2349           std_qpel
2350               old standard qpel (autodetected per fourcc/version)
2351
2352           qpel_chroma2
2353           direct_blocksize
2354               direct-qpel-blocksize bug (autodetected per fourcc/version)
2355
2356           edge
2357               edge padding bug (autodetected per fourcc/version)
2358
2359           hpel_chroma
2360           dc_clip
2361           ms  Workaround various bugs in microsoft broken decoders.
2362
2363           trunc
2364               trancated frames
2365
2366       strict integer (decoding/encoding,audio,video)
2367           Specify how strictly to follow the standards.
2368
2369           Possible values:
2370
2371           very
2372               strictly conform to an older more strict version of the spec or
2373               reference software
2374
2375           strict
2376               strictly conform to all the things in the spec no matter what
2377               consequences
2378
2379           normal
2380           unofficial
2381               allow unofficial extensions
2382
2383           experimental
2384               allow non standardized experimental things, experimental
2385               (unfinished/work in progress/not well tested) decoders and
2386               encoders.  Note: experimental decoders can pose a security
2387               risk, do not use this for decoding untrusted input.
2388
2389       b_qoffset float (encoding,video)
2390           Set QP offset between P and B frames.
2391
2392       err_detect flags (decoding,audio,video)
2393           Set error detection flags.
2394
2395           Possible values:
2396
2397           crccheck
2398               verify embedded CRCs
2399
2400           bitstream
2401               detect bitstream specification deviations
2402
2403           buffer
2404               detect improper bitstream length
2405
2406           explode
2407               abort decoding on minor error detection
2408
2409           ignore_err
2410               ignore decoding errors, and continue decoding.  This is useful
2411               if you want to analyze the content of a video and thus want
2412               everything to be decoded no matter what. This option will not
2413               result in a video that is pleasing to watch in case of errors.
2414
2415           careful
2416               consider things that violate the spec and have not been seen in
2417               the wild as errors
2418
2419           compliant
2420               consider all spec non compliancies as errors
2421
2422           aggressive
2423               consider things that a sane encoder should not do as an error
2424
2425       has_b_frames integer
2426       block_align integer
2427       rc_override_count integer
2428       maxrate integer (encoding,audio,video)
2429           Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
2430
2431       minrate integer (encoding,audio,video)
2432           Set min bitrate tolerance (in bits/s). Most useful in setting up a
2433           CBR encode. It is of little use elsewise.
2434
2435       bufsize integer (encoding,audio,video)
2436           Set ratecontrol buffer size (in bits).
2437
2438       i_qfactor float (encoding,video)
2439           Set QP factor between P and I frames.
2440
2441       i_qoffset float (encoding,video)
2442           Set QP offset between P and I frames.
2443
2444       dct integer (encoding,video)
2445           Set DCT algorithm.
2446
2447           Possible values:
2448
2449           auto
2450               autoselect a good one (default)
2451
2452           fastint
2453               fast integer
2454
2455           int accurate integer
2456
2457           mmx
2458           altivec
2459           faan
2460               floating point AAN DCT
2461
2462       lumi_mask float (encoding,video)
2463           Compress bright areas stronger than medium ones.
2464
2465       tcplx_mask float (encoding,video)
2466           Set temporal complexity masking.
2467
2468       scplx_mask float (encoding,video)
2469           Set spatial complexity masking.
2470
2471       p_mask float (encoding,video)
2472           Set inter masking.
2473
2474       dark_mask float (encoding,video)
2475           Compress dark areas stronger than medium ones.
2476
2477       idct integer (decoding/encoding,video)
2478           Select IDCT implementation.
2479
2480           Possible values:
2481
2482           auto
2483           int
2484           simple
2485           simplemmx
2486           simpleauto
2487               Automatically pick a IDCT compatible with the simple one
2488
2489           arm
2490           altivec
2491           sh4
2492           simplearm
2493           simplearmv5te
2494           simplearmv6
2495           simpleneon
2496           xvid
2497           faani
2498               floating point AAN IDCT
2499
2500       slice_count integer
2501       ec flags (decoding,video)
2502           Set error concealment strategy.
2503
2504           Possible values:
2505
2506           guess_mvs
2507               iterative motion vector (MV) search (slow)
2508
2509           deblock
2510               use strong deblock filter for damaged MBs
2511
2512           favor_inter
2513               favor predicting from the previous frame instead of the current
2514
2515       bits_per_coded_sample integer
2516       aspect rational number (encoding,video)
2517           Set sample aspect ratio.
2518
2519       sar rational number (encoding,video)
2520           Set sample aspect ratio. Alias to aspect.
2521
2522       debug flags (decoding/encoding,audio,video,subtitles)
2523           Print specific debug info.
2524
2525           Possible values:
2526
2527           pict
2528               picture info
2529
2530           rc  rate control
2531
2532           bitstream
2533           mb_type
2534               macroblock (MB) type
2535
2536           qp  per-block quantization parameter (QP)
2537
2538           dct_coeff
2539           green_metadata
2540               display complexity metadata for the upcoming frame, GoP or for
2541               a given duration.
2542
2543           skip
2544           startcode
2545           er  error recognition
2546
2547           mmco
2548               memory management control operations (H.264)
2549
2550           bugs
2551           buffers
2552               picture buffer allocations
2553
2554           thread_ops
2555               threading operations
2556
2557           nomc
2558               skip motion compensation
2559
2560       cmp integer (encoding,video)
2561           Set full pel me compare function.
2562
2563           Possible values:
2564
2565           sad sum of absolute differences, fast (default)
2566
2567           sse sum of squared errors
2568
2569           satd
2570               sum of absolute Hadamard transformed differences
2571
2572           dct sum of absolute DCT transformed differences
2573
2574           psnr
2575               sum of squared quantization errors (avoid, low quality)
2576
2577           bit number of bits needed for the block
2578
2579           rd  rate distortion optimal, slow
2580
2581           zero
2582               0
2583
2584           vsad
2585               sum of absolute vertical differences
2586
2587           vsse
2588               sum of squared vertical differences
2589
2590           nsse
2591               noise preserving sum of squared differences
2592
2593           w53 5/3 wavelet, only used in snow
2594
2595           w97 9/7 wavelet, only used in snow
2596
2597           dctmax
2598           chroma
2599       subcmp integer (encoding,video)
2600           Set sub pel me compare function.
2601
2602           Possible values:
2603
2604           sad sum of absolute differences, fast (default)
2605
2606           sse sum of squared errors
2607
2608           satd
2609               sum of absolute Hadamard transformed differences
2610
2611           dct sum of absolute DCT transformed differences
2612
2613           psnr
2614               sum of squared quantization errors (avoid, low quality)
2615
2616           bit number of bits needed for the block
2617
2618           rd  rate distortion optimal, slow
2619
2620           zero
2621               0
2622
2623           vsad
2624               sum of absolute vertical differences
2625
2626           vsse
2627               sum of squared vertical differences
2628
2629           nsse
2630               noise preserving sum of squared differences
2631
2632           w53 5/3 wavelet, only used in snow
2633
2634           w97 9/7 wavelet, only used in snow
2635
2636           dctmax
2637           chroma
2638       mbcmp integer (encoding,video)
2639           Set macroblock compare function.
2640
2641           Possible values:
2642
2643           sad sum of absolute differences, fast (default)
2644
2645           sse sum of squared errors
2646
2647           satd
2648               sum of absolute Hadamard transformed differences
2649
2650           dct sum of absolute DCT transformed differences
2651
2652           psnr
2653               sum of squared quantization errors (avoid, low quality)
2654
2655           bit number of bits needed for the block
2656
2657           rd  rate distortion optimal, slow
2658
2659           zero
2660               0
2661
2662           vsad
2663               sum of absolute vertical differences
2664
2665           vsse
2666               sum of squared vertical differences
2667
2668           nsse
2669               noise preserving sum of squared differences
2670
2671           w53 5/3 wavelet, only used in snow
2672
2673           w97 9/7 wavelet, only used in snow
2674
2675           dctmax
2676           chroma
2677       ildctcmp integer (encoding,video)
2678           Set interlaced dct compare function.
2679
2680           Possible values:
2681
2682           sad sum of absolute differences, fast (default)
2683
2684           sse sum of squared errors
2685
2686           satd
2687               sum of absolute Hadamard transformed differences
2688
2689           dct sum of absolute DCT transformed differences
2690
2691           psnr
2692               sum of squared quantization errors (avoid, low quality)
2693
2694           bit number of bits needed for the block
2695
2696           rd  rate distortion optimal, slow
2697
2698           zero
2699               0
2700
2701           vsad
2702               sum of absolute vertical differences
2703
2704           vsse
2705               sum of squared vertical differences
2706
2707           nsse
2708               noise preserving sum of squared differences
2709
2710           w53 5/3 wavelet, only used in snow
2711
2712           w97 9/7 wavelet, only used in snow
2713
2714           dctmax
2715           chroma
2716       dia_size integer (encoding,video)
2717           Set diamond type & size for motion estimation.
2718
2719           (1024, INT_MAX)
2720               full motion estimation(slowest)
2721
2722           (768, 1024]
2723               umh motion estimation
2724
2725           (512, 768]
2726               hex motion estimation
2727
2728           (256, 512]
2729               l2s diamond motion estimation
2730
2731           [2,256]
2732               var diamond motion estimation
2733
2734           (-1,  2)
2735               small diamond motion estimation
2736
2737           -1  funny diamond motion estimation
2738
2739           (INT_MIN, -1)
2740               sab diamond motion estimation
2741
2742       last_pred integer (encoding,video)
2743           Set amount of motion predictors from the previous frame.
2744
2745       precmp integer (encoding,video)
2746           Set pre motion estimation compare function.
2747
2748           Possible values:
2749
2750           sad sum of absolute differences, fast (default)
2751
2752           sse sum of squared errors
2753
2754           satd
2755               sum of absolute Hadamard transformed differences
2756
2757           dct sum of absolute DCT transformed differences
2758
2759           psnr
2760               sum of squared quantization errors (avoid, low quality)
2761
2762           bit number of bits needed for the block
2763
2764           rd  rate distortion optimal, slow
2765
2766           zero
2767               0
2768
2769           vsad
2770               sum of absolute vertical differences
2771
2772           vsse
2773               sum of squared vertical differences
2774
2775           nsse
2776               noise preserving sum of squared differences
2777
2778           w53 5/3 wavelet, only used in snow
2779
2780           w97 9/7 wavelet, only used in snow
2781
2782           dctmax
2783           chroma
2784       pre_dia_size integer (encoding,video)
2785           Set diamond type & size for motion estimation pre-pass.
2786
2787       subq integer (encoding,video)
2788           Set sub pel motion estimation quality.
2789
2790       me_range integer (encoding,video)
2791           Set limit motion vectors range (1023 for DivX player).
2792
2793       global_quality integer (encoding,audio,video)
2794       slice_flags integer
2795       mbd integer (encoding,video)
2796           Set macroblock decision algorithm (high quality mode).
2797
2798           Possible values:
2799
2800           simple
2801               use mbcmp (default)
2802
2803           bits
2804               use fewest bits
2805
2806           rd  use best rate distortion
2807
2808       rc_init_occupancy integer (encoding,video)
2809           Set number of bits which should be loaded into the rc buffer before
2810           decoding starts.
2811
2812       flags2 flags (decoding/encoding,audio,video,subtitles)
2813           Possible values:
2814
2815           fast
2816               Allow non spec compliant speedup tricks.
2817
2818           noout
2819               Skip bitstream encoding.
2820
2821           ignorecrop
2822               Ignore cropping information from sps.
2823
2824           local_header
2825               Place global headers at every keyframe instead of in extradata.
2826
2827           chunks
2828               Frame data might be split into multiple chunks.
2829
2830           showall
2831               Show all frames before the first keyframe.
2832
2833           export_mvs
2834               Export motion vectors into frame side-data (see
2835               "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
2836               also doc/examples/export_mvs.c.
2837
2838           skip_manual
2839               Do not skip samples and export skip information as frame side
2840               data.
2841
2842           ass_ro_flush_noop
2843               Do not reset ASS ReadOrder field on flush.
2844
2845       export_side_data flags (decoding/encoding,audio,video,subtitles)
2846           Possible values:
2847
2848           mvs Export motion vectors into frame side-data (see
2849               "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
2850               also doc/examples/export_mvs.c.
2851
2852           prft
2853               Export encoder Producer Reference Time into packet side-data
2854               (see "AV_PKT_DATA_PRFT") for codecs that support it.
2855
2856           venc_params
2857               Export video encoding parameters through frame side data (see
2858               "AV_FRAME_DATA_VIDEO_ENC_PARAMS") for codecs that support it.
2859               At present, those are H.264 and VP9.
2860
2861           film_grain
2862               Export film grain parameters through frame side data (see
2863               "AV_FRAME_DATA_FILM_GRAIN_PARAMS").  Supported at present by
2864               AV1 decoders.
2865
2866       threads integer (decoding/encoding,video)
2867           Set the number of threads to be used, in case the selected codec
2868           implementation supports multi-threading.
2869
2870           Possible values:
2871
2872           auto, 0
2873               automatically select the number of threads to set
2874
2875           Default value is auto.
2876
2877       dc integer (encoding,video)
2878           Set intra_dc_precision.
2879
2880       nssew integer (encoding,video)
2881           Set nsse weight.
2882
2883       skip_top integer (decoding,video)
2884           Set number of macroblock rows at the top which are skipped.
2885
2886       skip_bottom integer (decoding,video)
2887           Set number of macroblock rows at the bottom which are skipped.
2888
2889       profile integer (encoding,audio,video)
2890           Set encoder codec profile. Default value is unknown. Encoder
2891           specific profiles are documented in the relevant encoder
2892           documentation.
2893
2894       level integer (encoding,audio,video)
2895           Possible values:
2896
2897           unknown
2898       lowres integer (decoding,audio,video)
2899           Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
2900
2901       mblmin integer (encoding,video)
2902           Set min macroblock lagrange factor (VBR).
2903
2904       mblmax integer (encoding,video)
2905           Set max macroblock lagrange factor (VBR).
2906
2907       skip_loop_filter integer (decoding,video)
2908       skip_idct        integer (decoding,video)
2909       skip_frame       integer (decoding,video)
2910           Make decoder discard processing depending on the frame type
2911           selected by the option value.
2912
2913           skip_loop_filter skips frame loop filtering, skip_idct skips frame
2914           IDCT/dequantization, skip_frame skips decoding.
2915
2916           Possible values:
2917
2918           none
2919               Discard no frame.
2920
2921           default
2922               Discard useless frames like 0-sized frames.
2923
2924           noref
2925               Discard all non-reference frames.
2926
2927           bidir
2928               Discard all bidirectional frames.
2929
2930           nokey
2931               Discard all frames excepts keyframes.
2932
2933           nointra
2934               Discard all frames except I frames.
2935
2936           all Discard all frames.
2937
2938           Default value is default.
2939
2940       bidir_refine integer (encoding,video)
2941           Refine the two motion vectors used in bidirectional macroblocks.
2942
2943       keyint_min integer (encoding,video)
2944           Set minimum interval between IDR-frames.
2945
2946       refs integer (encoding,video)
2947           Set reference frames to consider for motion compensation.
2948
2949       trellis integer (encoding,audio,video)
2950           Set rate-distortion optimal quantization.
2951
2952       mv0_threshold integer (encoding,video)
2953       compression_level integer (encoding,audio,video)
2954       bits_per_raw_sample integer
2955       channel_layout integer (decoding/encoding,audio)
2956           Possible values:
2957
2958       request_channel_layout integer (decoding,audio)
2959           Possible values:
2960
2961       rc_max_vbv_use float (encoding,video)
2962       rc_min_vbv_use float (encoding,video)
2963       ticks_per_frame integer (decoding/encoding,audio,video)
2964       color_primaries integer (decoding/encoding,video)
2965           Possible values:
2966
2967           bt709
2968               BT.709
2969
2970           bt470m
2971               BT.470 M
2972
2973           bt470bg
2974               BT.470 BG
2975
2976           smpte170m
2977               SMPTE 170 M
2978
2979           smpte240m
2980               SMPTE 240 M
2981
2982           film
2983               Film
2984
2985           bt2020
2986               BT.2020
2987
2988           smpte428
2989           smpte428_1
2990               SMPTE ST 428-1
2991
2992           smpte431
2993               SMPTE 431-2
2994
2995           smpte432
2996               SMPTE 432-1
2997
2998           jedec-p22
2999               JEDEC P22
3000
3001       color_trc integer (decoding/encoding,video)
3002           Possible values:
3003
3004           bt709
3005               BT.709
3006
3007           gamma22
3008               BT.470 M
3009
3010           gamma28
3011               BT.470 BG
3012
3013           smpte170m
3014               SMPTE 170 M
3015
3016           smpte240m
3017               SMPTE 240 M
3018
3019           linear
3020               Linear
3021
3022           log
3023           log100
3024               Log
3025
3026           log_sqrt
3027           log316
3028               Log square root
3029
3030           iec61966_2_4
3031           iec61966-2-4
3032               IEC 61966-2-4
3033
3034           bt1361
3035           bt1361e
3036               BT.1361
3037
3038           iec61966_2_1
3039           iec61966-2-1
3040               IEC 61966-2-1
3041
3042           bt2020_10
3043           bt2020_10bit
3044               BT.2020 - 10 bit
3045
3046           bt2020_12
3047           bt2020_12bit
3048               BT.2020 - 12 bit
3049
3050           smpte2084
3051               SMPTE ST 2084
3052
3053           smpte428
3054           smpte428_1
3055               SMPTE ST 428-1
3056
3057           arib-std-b67
3058               ARIB STD-B67
3059
3060       colorspace integer (decoding/encoding,video)
3061           Possible values:
3062
3063           rgb RGB
3064
3065           bt709
3066               BT.709
3067
3068           fcc FCC
3069
3070           bt470bg
3071               BT.470 BG
3072
3073           smpte170m
3074               SMPTE 170 M
3075
3076           smpte240m
3077               SMPTE 240 M
3078
3079           ycocg
3080               YCOCG
3081
3082           bt2020nc
3083           bt2020_ncl
3084               BT.2020 NCL
3085
3086           bt2020c
3087           bt2020_cl
3088               BT.2020 CL
3089
3090           smpte2085
3091               SMPTE 2085
3092
3093           chroma-derived-nc
3094               Chroma-derived NCL
3095
3096           chroma-derived-c
3097               Chroma-derived CL
3098
3099           ictcp
3100               ICtCp
3101
3102       color_range integer (decoding/encoding,video)
3103           If used as input parameter, it serves as a hint to the decoder,
3104           which color_range the input has.  Possible values:
3105
3106           tv
3107           mpeg
3108               MPEG (219*2^(n-8))
3109
3110           pc
3111           jpeg
3112               JPEG (2^n-1)
3113
3114       chroma_sample_location integer (decoding/encoding,video)
3115           Possible values:
3116
3117           left
3118           center
3119           topleft
3120           top
3121           bottomleft
3122           bottom
3123       log_level_offset integer
3124           Set the log level offset.
3125
3126       slices integer (encoding,video)
3127           Number of slices, used in parallelized encoding.
3128
3129       thread_type flags (decoding/encoding,video)
3130           Select which multithreading methods to use.
3131
3132           Use of frame will increase decoding delay by one frame per thread,
3133           so clients which cannot provide future frames should not use it.
3134
3135           Possible values:
3136
3137           slice
3138               Decode more than one part of a single frame at once.
3139
3140               Multithreading using slices works only when the video was
3141               encoded with slices.
3142
3143           frame
3144               Decode more than one frame at once.
3145
3146           Default value is slice+frame.
3147
3148       audio_service_type integer (encoding,audio)
3149           Set audio service type.
3150
3151           Possible values:
3152
3153           ma  Main Audio Service
3154
3155           ef  Effects
3156
3157           vi  Visually Impaired
3158
3159           hi  Hearing Impaired
3160
3161           di  Dialogue
3162
3163           co  Commentary
3164
3165           em  Emergency
3166
3167           vo  Voice Over
3168
3169           ka  Karaoke
3170
3171       request_sample_fmt sample_fmt (decoding,audio)
3172           Set sample format audio decoders should prefer. Default value is
3173           "none".
3174
3175       pkt_timebase rational number
3176       sub_charenc encoding (decoding,subtitles)
3177           Set the input subtitles character encoding.
3178
3179       field_order  field_order (video)
3180           Set/override the field order of the video.  Possible values:
3181
3182           progressive
3183               Progressive video
3184
3185           tt  Interlaced video, top field coded and displayed first
3186
3187           bb  Interlaced video, bottom field coded and displayed first
3188
3189           tb  Interlaced video, top coded first, bottom displayed first
3190
3191           bt  Interlaced video, bottom coded first, top displayed first
3192
3193       skip_alpha bool (decoding,video)
3194           Set to 1 to disable processing alpha (transparency). This works
3195           like the gray flag in the flags option which skips chroma
3196           information instead of alpha. Default is 0.
3197
3198       codec_whitelist list (input)
3199           "," separated list of allowed decoders. By default all are allowed.
3200
3201       dump_separator string (input)
3202           Separator used to separate the fields printed on the command line
3203           about the Stream parameters.  For example, to separate the fields
3204           with newlines and indentation:
3205
3206                   ffprobe -dump_separator "
3207                                             "  -i ~/videos/matrixbench_mpeg2.mpg
3208
3209       max_pixels integer (decoding/encoding,video)
3210           Maximum number of pixels per image. This value can be used to avoid
3211           out of memory failures due to large images.
3212
3213       apply_cropping bool (decoding,video)
3214           Enable cropping if cropping parameters are multiples of the
3215           required alignment for the left and top parameters. If the
3216           alignment is not met the cropping will be partially applied to
3217           maintain alignment.  Default is 1 (enabled).  Note: The required
3218           alignment depends on if "AV_CODEC_FLAG_UNALIGNED" is set and the
3219           CPU. "AV_CODEC_FLAG_UNALIGNED" cannot be changed from the command
3220           line. Also hardware decoders will not apply left/top Cropping.
3221

DECODERS

3223       Decoders are configured elements in FFmpeg which allow the decoding of
3224       multimedia streams.
3225
3226       When you configure your FFmpeg build, all the supported native decoders
3227       are enabled by default. Decoders requiring an external library must be
3228       enabled manually via the corresponding "--enable-lib" option. You can
3229       list all available decoders using the configure option
3230       "--list-decoders".
3231
3232       You can disable all the decoders with the configure option
3233       "--disable-decoders" and selectively enable / disable single decoders
3234       with the options "--enable-decoder=DECODER" /
3235       "--disable-decoder=DECODER".
3236
3237       The option "-decoders" of the ff* tools will display the list of
3238       enabled decoders.
3239

VIDEO DECODERS

3241       A description of some of the currently available video decoders
3242       follows.
3243
3244   av1
3245       AOMedia Video 1 (AV1) decoder.
3246
3247       Options
3248
3249       operating_point
3250           Select an operating point of a scalable AV1 bitstream (0 - 31).
3251           Default is 0.
3252
3253   rawvideo
3254       Raw video decoder.
3255
3256       This decoder decodes rawvideo streams.
3257
3258       Options
3259
3260       top top_field_first
3261           Specify the assumed field type of the input video.
3262
3263           -1  the video is assumed to be progressive (default)
3264
3265           0   bottom-field-first is assumed
3266
3267           1   top-field-first is assumed
3268
3269   libdav1d
3270       dav1d AV1 decoder.
3271
3272       libdav1d allows libavcodec to decode the AOMedia Video 1 (AV1) codec.
3273       Requires the presence of the libdav1d headers and library during
3274       configuration.  You need to explicitly configure the build with
3275       "--enable-libdav1d".
3276
3277       Options
3278
3279       The following options are supported by the libdav1d wrapper.
3280
3281       framethreads
3282           Set amount of frame threads to use during decoding. The default
3283           value is 0 (autodetect).  This option is deprecated for libdav1d >=
3284           1.0 and will be removed in the future. Use the global option
3285           "threads" instead.
3286
3287       tilethreads
3288           Set amount of tile threads to use during decoding. The default
3289           value is 0 (autodetect).  This option is deprecated for libdav1d >=
3290           1.0 and will be removed in the future. Use the global option
3291           "threads" instead.
3292
3293       filmgrain
3294           Apply film grain to the decoded video if present in the bitstream.
3295           Defaults to the internal default of the library.  This option is
3296           deprecated and will be removed in the future. See the global option
3297           "export_side_data" to export Film Grain parameters instead of
3298           applying it.
3299
3300       oppoint
3301           Select an operating point of a scalable AV1 bitstream (0 - 31).
3302           Defaults to the internal default of the library.
3303
3304       alllayers
3305           Output all spatial layers of a scalable AV1 bitstream. The default
3306           value is false.
3307
3308   libdavs2
3309       AVS2-P2/IEEE1857.4 video decoder wrapper.
3310
3311       This decoder allows libavcodec to decode AVS2 streams with davs2
3312       library.
3313
3314   libuavs3d
3315       AVS3-P2/IEEE1857.10 video decoder.
3316
3317       libuavs3d allows libavcodec to decode AVS3 streams.  Requires the
3318       presence of the libuavs3d headers and library during configuration.
3319       You need to explicitly configure the build with "--enable-libuavs3d".
3320
3321       Options
3322
3323       The following option is supported by the libuavs3d wrapper.
3324
3325       frame_threads
3326           Set amount of frame threads to use during decoding. The default
3327           value is 0 (autodetect).
3328
3329   QSV Decoders
3330       The family of Intel QuickSync Video decoders (VC1, MPEG-2, H.264, HEVC,
3331       JPEG/MJPEG, VP8, VP9, AV1).
3332
3333       Common Options
3334
3335       The following options are supported by all qsv decoders.
3336
3337       async_depth
3338           Internal parallelization depth, the higher the value the higher the
3339           latency.
3340
3341       gpu_copy
3342           A GPU-accelerated copy between video and system memory
3343
3344           default
3345           on
3346           off
3347
3348       HEVC Options
3349
3350       Extra options for hevc_qsv.
3351
3352       load_plugin
3353           A user plugin to load in an internal session
3354
3355           none
3356           hevc_sw
3357           hevc_hw
3358       load_plugins
3359           A :-separate list of hexadecimal plugin UIDs to load in an internal
3360           session
3361
3362   v210
3363       Uncompressed 4:2:2 10-bit decoder.
3364
3365       Options
3366
3367       custom_stride
3368           Set the line size of the v210 data in bytes. The default value is 0
3369           (autodetect). You can use the special -1 value for a strideless
3370           v210 as seen in BOXX files.
3371

AUDIO DECODERS

3373       A description of some of the currently available audio decoders
3374       follows.
3375
3376   ac3
3377       AC-3 audio decoder.
3378
3379       This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as
3380       well as the undocumented RealAudio 3 (a.k.a. dnet).
3381
3382       AC-3 Decoder Options
3383
3384       -drc_scale value
3385           Dynamic Range Scale Factor. The factor to apply to dynamic range
3386           values from the AC-3 stream. This factor is applied exponentially.
3387           The default value is 1.  There are 3 notable scale factor ranges:
3388
3389           drc_scale == 0
3390               DRC disabled. Produces full range audio.
3391
3392           0 < drc_scale <= 1
3393               DRC enabled.  Applies a fraction of the stream DRC value.
3394               Audio reproduction is between full range and full compression.
3395
3396           drc_scale > 1
3397               DRC enabled. Applies drc_scale asymmetrically.  Loud sounds are
3398               fully compressed.  Soft sounds are enhanced.
3399
3400   flac
3401       FLAC audio decoder.
3402
3403       This decoder aims to implement the complete FLAC specification from
3404       Xiph.
3405
3406       FLAC Decoder options
3407
3408       -use_buggy_lpc
3409           The lavc FLAC encoder used to produce buggy streams with high lpc
3410           values (like the default value). This option makes it possible to
3411           decode such streams correctly by using lavc's old buggy lpc logic
3412           for decoding.
3413
3414   ffwavesynth
3415       Internal wave synthesizer.
3416
3417       This decoder generates wave patterns according to predefined sequences.
3418       Its use is purely internal and the format of the data it accepts is not
3419       publicly documented.
3420
3421   libcelt
3422       libcelt decoder wrapper.
3423
3424       libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio
3425       codec.  Requires the presence of the libcelt headers and library during
3426       configuration.  You need to explicitly configure the build with
3427       "--enable-libcelt".
3428
3429   libgsm
3430       libgsm decoder wrapper.
3431
3432       libgsm allows libavcodec to decode the GSM full rate audio codec.
3433       Requires the presence of the libgsm headers and library during
3434       configuration. You need to explicitly configure the build with
3435       "--enable-libgsm".
3436
3437       This decoder supports both the ordinary GSM and the Microsoft variant.
3438
3439   libilbc
3440       libilbc decoder wrapper.
3441
3442       libilbc allows libavcodec to decode the Internet Low Bitrate Codec
3443       (iLBC) audio codec. Requires the presence of the libilbc headers and
3444       library during configuration. You need to explicitly configure the
3445       build with "--enable-libilbc".
3446
3447       Options
3448
3449       The following option is supported by the libilbc wrapper.
3450
3451       enhance
3452           Enable the enhancement of the decoded audio when set to 1. The
3453           default value is 0 (disabled).
3454
3455   libopencore-amrnb
3456       libopencore-amrnb decoder wrapper.
3457
3458       libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate
3459       Narrowband audio codec. Using it requires the presence of the
3460       libopencore-amrnb headers and library during configuration. You need to
3461       explicitly configure the build with "--enable-libopencore-amrnb".
3462
3463       An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB
3464       without this library.
3465
3466   libopencore-amrwb
3467       libopencore-amrwb decoder wrapper.
3468
3469       libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate
3470       Wideband audio codec. Using it requires the presence of the
3471       libopencore-amrwb headers and library during configuration. You need to
3472       explicitly configure the build with "--enable-libopencore-amrwb".
3473
3474       An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB
3475       without this library.
3476
3477   libopus
3478       libopus decoder wrapper.
3479
3480       libopus allows libavcodec to decode the Opus Interactive Audio Codec.
3481       Requires the presence of the libopus headers and library during
3482       configuration. You need to explicitly configure the build with
3483       "--enable-libopus".
3484
3485       An FFmpeg native decoder for Opus exists, so users can decode Opus
3486       without this library.
3487

SUBTITLES DECODERS

3489   libaribb24
3490       ARIB STD-B24 caption decoder.
3491
3492       Implements profiles A and C of the ARIB STD-B24 standard.
3493
3494       libaribb24 Decoder Options
3495
3496       -aribb24-base-path path
3497           Sets the base path for the libaribb24 library. This is utilized for
3498           reading of configuration files (for custom unicode conversions),
3499           and for dumping of non-text symbols as images under that location.
3500
3501           Unset by default.
3502
3503       -aribb24-skip-ruby-text boolean
3504           Tells the decoder wrapper to skip text blocks that contain half-
3505           height ruby text.
3506
3507           Enabled by default.
3508
3509   dvbsub
3510       Options
3511
3512       compute_clut
3513           -2  Compute clut once if no matching CLUT is in the stream.
3514
3515           -1  Compute clut if no matching CLUT is in the stream.
3516
3517           0   Never compute CLUT
3518
3519           1   Always compute CLUT and override the one provided in the
3520               stream.
3521
3522       dvb_substream
3523           Selects the dvb substream, or all substreams if -1 which is
3524           default.
3525
3526   dvdsub
3527       This codec decodes the bitmap subtitles used in DVDs; the same
3528       subtitles can also be found in VobSub file pairs and in some Matroska
3529       files.
3530
3531       Options
3532
3533       palette
3534           Specify the global palette used by the bitmaps. When stored in
3535           VobSub, the palette is normally specified in the index file; in
3536           Matroska, the palette is stored in the codec extra-data in the same
3537           format as in VobSub. In DVDs, the palette is stored in the IFO
3538           file, and therefore not available when reading from dumped VOB
3539           files.
3540
3541           The format for this option is a string containing 16 24-bits
3542           hexadecimal numbers (without 0x prefix) separated by commas, for
3543           example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b,
3544           0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c,
3545           7c127b".
3546
3547       ifo_palette
3548           Specify the IFO file from which the global palette is obtained.
3549           (experimental)
3550
3551       forced_subs_only
3552           Only decode subtitle entries marked as forced. Some titles have
3553           forced and non-forced subtitles in the same track. Setting this
3554           flag to 1 will only keep the forced subtitles. Default value is 0.
3555
3556   libzvbi-teletext
3557       Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext
3558       subtitles. Requires the presence of the libzvbi headers and library
3559       during configuration. You need to explicitly configure the build with
3560       "--enable-libzvbi".
3561
3562       Options
3563
3564       txt_page
3565           List of teletext page numbers to decode. Pages that do not match
3566           the specified list are dropped. You may use the special "*" string
3567           to match all pages, or "subtitle" to match all subtitle pages.
3568           Default value is *.
3569
3570       txt_default_region
3571           Set default character set used for decoding, a value between 0 and
3572           87 (see ETS 300 706, Section 15, Table 32). Default value is -1,
3573           which does not override the libzvbi default. This option is needed
3574           for some legacy level 1.0 transmissions which cannot signal the
3575           proper charset.
3576
3577       txt_chop_top
3578           Discards the top teletext line. Default value is 1.
3579
3580       txt_format
3581           Specifies the format of the decoded subtitles.
3582
3583           bitmap
3584               The default format, you should use this for teletext pages,
3585               because certain graphics and colors cannot be expressed in
3586               simple text or even ASS.
3587
3588           text
3589               Simple text based output without formatting.
3590
3591           ass Formatted ASS output, subtitle pages and teletext pages are
3592               returned in different styles, subtitle pages are stripped down
3593               to text, but an effort is made to keep the text alignment and
3594               the formatting.
3595
3596       txt_left
3597           X offset of generated bitmaps, default is 0.
3598
3599       txt_top
3600           Y offset of generated bitmaps, default is 0.
3601
3602       txt_chop_spaces
3603           Chops leading and trailing spaces and removes empty lines from the
3604           generated text. This option is useful for teletext based subtitles
3605           where empty spaces may be present at the start or at the end of the
3606           lines or empty lines may be present between the subtitle lines
3607           because of double-sized teletext characters.  Default value is 1.
3608
3609       txt_duration
3610           Sets the display duration of the decoded teletext pages or
3611           subtitles in milliseconds. Default value is -1 which means infinity
3612           or until the next subtitle event comes.
3613
3614       txt_transparent
3615           Force transparent background of the generated teletext bitmaps.
3616           Default value is 0 which means an opaque background.
3617
3618       txt_opacity
3619           Sets the opacity (0-255) of the teletext background. If
3620           txt_transparent is not set, it only affects characters between a
3621           start box and an end box, typically subtitles. Default value is 0
3622           if txt_transparent is set, 255 otherwise.
3623

BITSTREAM FILTERS

3625       When you configure your FFmpeg build, all the supported bitstream
3626       filters are enabled by default. You can list all available ones using
3627       the configure option "--list-bsfs".
3628
3629       You can disable all the bitstream filters using the configure option
3630       "--disable-bsfs", and selectively enable any bitstream filter using the
3631       option "--enable-bsf=BSF", or you can disable a particular bitstream
3632       filter using the option "--disable-bsf=BSF".
3633
3634       The option "-bsfs" of the ff* tools will display the list of all the
3635       supported bitstream filters included in your build.
3636
3637       The ff* tools have a -bsf option applied per stream, taking a comma-
3638       separated list of filters, whose parameters follow the filter name
3639       after a '='.
3640
3641               ffmpeg -i INPUT -c:v copy -bsf:v filter1[=opt1=str1:opt2=str2][,filter2] OUTPUT
3642
3643       Below is a description of the currently available bitstream filters,
3644       with their parameters, if any.
3645
3646   aac_adtstoasc
3647       Convert MPEG-2/4 AAC ADTS to an MPEG-4 Audio Specific Configuration
3648       bitstream.
3649
3650       This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4 ADTS
3651       header and removes the ADTS header.
3652
3653       This filter is required for example when copying an AAC stream from a
3654       raw ADTS AAC or an MPEG-TS container to MP4A-LATM, to an FLV file, or
3655       to MOV/MP4 files and related formats such as 3GP or M4A. Please note
3656       that it is auto-inserted for MP4A-LATM and MOV/MP4 and related formats.
3657
3658   av1_metadata
3659       Modify metadata embedded in an AV1 stream.
3660
3661       td  Insert or remove temporal delimiter OBUs in all temporal units of
3662           the stream.
3663
3664           insert
3665               Insert a TD at the beginning of every TU which does not already
3666               have one.
3667
3668           remove
3669               Remove the TD from the beginning of every TU which has one.
3670
3671       color_primaries
3672       transfer_characteristics
3673       matrix_coefficients
3674           Set the color description fields in the stream (see AV1 section
3675           6.4.2).
3676
3677       color_range
3678           Set the color range in the stream (see AV1 section 6.4.2; note that
3679           this cannot be set for streams using BT.709 primaries, sRGB
3680           transfer characteristic and identity (RGB) matrix coefficients).
3681
3682           tv  Limited range.
3683
3684           pc  Full range.
3685
3686       chroma_sample_position
3687           Set the chroma sample location in the stream (see AV1 section
3688           6.4.2).  This can only be set for 4:2:0 streams.
3689
3690           vertical
3691               Left position (matching the default in MPEG-2 and H.264).
3692
3693           colocated
3694               Top-left position.
3695
3696       tick_rate
3697           Set the tick rate (time_scale / num_units_in_display_tick) in the
3698           timing info in the sequence header.
3699
3700       num_ticks_per_picture
3701           Set the number of ticks in each picture, to indicate that the
3702           stream has a fixed framerate.  Ignored if tick_rate is not also
3703           set.
3704
3705       delete_padding
3706           Deletes Padding OBUs.
3707
3708   chomp
3709       Remove zero padding at the end of a packet.
3710
3711   dca_core
3712       Extract the core from a DCA/DTS stream, dropping extensions such as
3713       DTS-HD.
3714
3715   dump_extra
3716       Add extradata to the beginning of the filtered packets except when said
3717       packets already exactly begin with the extradata that is intended to be
3718       added.
3719
3720       freq
3721           The additional argument specifies which packets should be filtered.
3722           It accepts the values:
3723
3724           k
3725           keyframe
3726               add extradata to all key packets
3727
3728           e
3729           all add extradata to all packets
3730
3731       If not specified it is assumed k.
3732
3733       For example the following ffmpeg command forces a global header (thus
3734       disabling individual packet headers) in the H.264 packets generated by
3735       the "libx264" encoder, but corrects them by adding the header stored in
3736       extradata to the key packets:
3737
3738               ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
3739
3740   dv_error_marker
3741       Blocks in DV which are marked as damaged are replaced by blocks of the
3742       specified color.
3743
3744       color
3745           The color to replace damaged blocks by
3746
3747       sta A 16 bit mask which specifies which of the 16 possible error status
3748           values are to be replaced by colored blocks. 0xFFFE is the default
3749           which replaces all non 0 error status values.
3750
3751           ok  No error, no concealment
3752
3753           err Error, No concealment
3754
3755           res Reserved
3756
3757           notok
3758               Error or concealment
3759
3760           notres
3761               Not reserved
3762
3763           Aa, Ba, Ca, Ab, Bb, Cb, A, B, C, a, b, erri, erru
3764               The specific error status code
3765
3766           see page 44-46 or section 5.5 of
3767           <http://web.archive.org/web/20060927044735/http://www.smpte.org/smpte_store/standards/pdf/s314m.pdf>
3768
3769   eac3_core
3770       Extract the core from a E-AC-3 stream, dropping extra channels.
3771
3772   extract_extradata
3773       Extract the in-band extradata.
3774
3775       Certain codecs allow the long-term headers (e.g. MPEG-2 sequence
3776       headers, or H.264/HEVC (VPS/)SPS/PPS) to be transmitted either "in-
3777       band" (i.e. as a part of the bitstream containing the coded frames) or
3778       "out of band" (e.g. on the container level). This latter form is called
3779       "extradata" in FFmpeg terminology.
3780
3781       This bitstream filter detects the in-band headers and makes them
3782       available as extradata.
3783
3784       remove
3785           When this option is enabled, the long-term headers are removed from
3786           the bitstream after extraction.
3787
3788   filter_units
3789       Remove units with types in or not in a given set from the stream.
3790
3791       pass_types
3792           List of unit types or ranges of unit types to pass through while
3793           removing all others.  This is specified as a '|'-separated list of
3794           unit type values or ranges of values with '-'.
3795
3796       remove_types
3797           Identical to pass_types, except the units in the given set removed
3798           and all others passed through.
3799
3800       Extradata is unchanged by this transformation, but note that if the
3801       stream contains inline parameter sets then the output may be unusable
3802       if they are removed.
3803
3804       For example, to remove all non-VCL NAL units from an H.264 stream:
3805
3806               ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=pass_types=1-5' OUTPUT
3807
3808       To remove all AUDs, SEI and filler from an H.265 stream:
3809
3810               ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=35|38-40' OUTPUT
3811
3812   hapqa_extract
3813       Extract Rgb or Alpha part of an HAPQA file, without recompression, in
3814       order to create an HAPQ or an HAPAlphaOnly file.
3815
3816       texture
3817           Specifies the texture to keep.
3818
3819           color
3820           alpha
3821
3822       Convert HAPQA to HAPQ
3823
3824               ffmpeg -i hapqa_inputfile.mov -c copy -bsf:v hapqa_extract=texture=color -tag:v HapY -metadata:s:v:0 encoder="HAPQ" hapq_file.mov
3825
3826       Convert HAPQA to HAPAlphaOnly
3827
3828               ffmpeg -i hapqa_inputfile.mov -c copy -bsf:v hapqa_extract=texture=alpha -tag:v HapA -metadata:s:v:0 encoder="HAPAlpha Only" hapalphaonly_file.mov
3829
3830   h264_metadata
3831       Modify metadata embedded in an H.264 stream.
3832
3833       aud Insert or remove AUD NAL units in all access units of the stream.
3834
3835           pass
3836           insert
3837           remove
3838
3839           Default is pass.
3840
3841       sample_aspect_ratio
3842           Set the sample aspect ratio of the stream in the VUI parameters.
3843           See H.264 table E-1.
3844
3845       overscan_appropriate_flag
3846           Set whether the stream is suitable for display using overscan or
3847           not (see H.264 section E.2.1).
3848
3849       video_format
3850       video_full_range_flag
3851           Set the video format in the stream (see H.264 section E.2.1 and
3852           table E-2).
3853
3854       colour_primaries
3855       transfer_characteristics
3856       matrix_coefficients
3857           Set the colour description in the stream (see H.264 section E.2.1
3858           and tables E-3, E-4 and E-5).
3859
3860       chroma_sample_loc_type
3861           Set the chroma sample location in the stream (see H.264 section
3862           E.2.1 and figure E-1).
3863
3864       tick_rate
3865           Set the tick rate (time_scale / num_units_in_tick) in the VUI
3866           parameters.  This is the smallest time unit representable in the
3867           stream, and in many cases represents the field rate of the stream
3868           (double the frame rate).
3869
3870       fixed_frame_rate_flag
3871           Set whether the stream has fixed framerate - typically this
3872           indicates that the framerate is exactly half the tick rate, but the
3873           exact meaning is dependent on interlacing and the picture structure
3874           (see H.264 section E.2.1 and table E-6).
3875
3876       zero_new_constraint_set_flags
3877           Zero constraint_set4_flag and constraint_set5_flag in the SPS.
3878           These bits were reserved in a previous version of the H.264 spec,
3879           and thus some hardware decoders require these to be zero. The
3880           result of zeroing this is still a valid bitstream.
3881
3882       crop_left
3883       crop_right
3884       crop_top
3885       crop_bottom
3886           Set the frame cropping offsets in the SPS.  These values will
3887           replace the current ones if the stream is already cropped.
3888
3889           These fields are set in pixels.  Note that some sizes may not be
3890           representable if the chroma is subsampled or the stream is
3891           interlaced (see H.264 section 7.4.2.1.1).
3892
3893       sei_user_data
3894           Insert a string as SEI unregistered user data.  The argument must
3895           be of the form UUID+string, where the UUID is as hex digits
3896           possibly separated by hyphens, and the string can be anything.
3897
3898           For example, 086f3693-b7b3-4f2c-9653-21492feee5b8+hello will insert
3899           the string ``hello'' associated with the given UUID.
3900
3901       delete_filler
3902           Deletes both filler NAL units and filler SEI messages.
3903
3904       display_orientation
3905           Insert, extract or remove Display orientation SEI messages.  See
3906           H.264 section D.1.27 and D.2.27 for syntax and semantics.
3907
3908           pass
3909           insert
3910           remove
3911           extract
3912
3913           Default is pass.
3914
3915           Insert mode works in conjunction with "rotate" and "flip" options.
3916           Any pre-existing Display orientation messages will be removed in
3917           insert or remove mode.  Extract mode attaches the display matrix to
3918           the packet as side data.
3919
3920       rotate
3921           Set rotation in display orientation SEI (anticlockwise angle in
3922           degrees).  Range is -360 to +360. Default is NaN.
3923
3924       flip
3925           Set flip in display orientation SEI.
3926
3927           horizontal
3928           vertical
3929
3930           Default is unset.
3931
3932       level
3933           Set the level in the SPS.  Refer to H.264 section A.3 and tables
3934           A-1 to A-5.
3935
3936           The argument must be the name of a level (for example, 4.2), a
3937           level_idc value (for example, 42), or the special name auto
3938           indicating that the filter should attempt to guess the level from
3939           the input stream properties.
3940
3941   h264_mp4toannexb
3942       Convert an H.264 bitstream from length prefixed mode to start code
3943       prefixed mode (as defined in the Annex B of the ITU-T H.264
3944       specification).
3945
3946       This is required by some streaming formats, typically the MPEG-2
3947       transport stream format (muxer "mpegts").
3948
3949       For example to remux an MP4 file containing an H.264 stream to mpegts
3950       format with ffmpeg, you can use the command:
3951
3952               ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
3953
3954       Please note that this filter is auto-inserted for MPEG-TS (muxer
3955       "mpegts") and raw H.264 (muxer "h264") output formats.
3956
3957   h264_redundant_pps
3958       This applies a specific fixup to some Blu-ray streams which contain
3959       redundant PPSs modifying irrelevant parameters of the stream which
3960       confuse other transformations which require correct extradata.
3961
3962       A new single global PPS is created, and all of the redundant PPSs
3963       within the stream are removed.
3964
3965   hevc_metadata
3966       Modify metadata embedded in an HEVC stream.
3967
3968       aud Insert or remove AUD NAL units in all access units of the stream.
3969
3970           insert
3971           remove
3972       sample_aspect_ratio
3973           Set the sample aspect ratio in the stream in the VUI parameters.
3974
3975       video_format
3976       video_full_range_flag
3977           Set the video format in the stream (see H.265 section E.3.1 and
3978           table E.2).
3979
3980       colour_primaries
3981       transfer_characteristics
3982       matrix_coefficients
3983           Set the colour description in the stream (see H.265 section E.3.1
3984           and tables E.3, E.4 and E.5).
3985
3986       chroma_sample_loc_type
3987           Set the chroma sample location in the stream (see H.265 section
3988           E.3.1 and figure E.1).
3989
3990       tick_rate
3991           Set the tick rate in the VPS and VUI parameters (time_scale /
3992           num_units_in_tick). Combined with num_ticks_poc_diff_one, this can
3993           set a constant framerate in the stream.  Note that it is likely to
3994           be overridden by container parameters when the stream is in a
3995           container.
3996
3997       num_ticks_poc_diff_one
3998           Set poc_proportional_to_timing_flag in VPS and VUI and use this
3999           value to set num_ticks_poc_diff_one_minus1 (see H.265 sections
4000           7.4.3.1 and E.3.1).  Ignored if tick_rate is not also set.
4001
4002       crop_left
4003       crop_right
4004       crop_top
4005       crop_bottom
4006           Set the conformance window cropping offsets in the SPS.  These
4007           values will replace the current ones if the stream is already
4008           cropped.
4009
4010           These fields are set in pixels.  Note that some sizes may not be
4011           representable if the chroma is subsampled (H.265 section
4012           7.4.3.2.1).
4013
4014       level
4015           Set the level in the VPS and SPS.  See H.265 section A.4 and tables
4016           A.6 and A.7.
4017
4018           The argument must be the name of a level (for example, 5.1), a
4019           general_level_idc value (for example, 153 for level 5.1), or the
4020           special name auto indicating that the filter should attempt to
4021           guess the level from the input stream properties.
4022
4023   hevc_mp4toannexb
4024       Convert an HEVC/H.265 bitstream from length prefixed mode to start code
4025       prefixed mode (as defined in the Annex B of the ITU-T H.265
4026       specification).
4027
4028       This is required by some streaming formats, typically the MPEG-2
4029       transport stream format (muxer "mpegts").
4030
4031       For example to remux an MP4 file containing an HEVC stream to mpegts
4032       format with ffmpeg, you can use the command:
4033
4034               ffmpeg -i INPUT.mp4 -codec copy -bsf:v hevc_mp4toannexb OUTPUT.ts
4035
4036       Please note that this filter is auto-inserted for MPEG-TS (muxer
4037       "mpegts") and raw HEVC/H.265 (muxer "h265" or "hevc") output formats.
4038
4039   imxdump
4040       Modifies the bitstream to fit in MOV and to be usable by the Final Cut
4041       Pro decoder. This filter only applies to the mpeg2video codec, and is
4042       likely not needed for Final Cut Pro 7 and newer with the appropriate
4043       -tag:v.
4044
4045       For example, to remux 30 MB/sec NTSC IMX to MOV:
4046
4047               ffmpeg -i input.mxf -c copy -bsf:v imxdump -tag:v mx3n output.mov
4048
4049   mjpeg2jpeg
4050       Convert MJPEG/AVI1 packets to full JPEG/JFIF packets.
4051
4052       MJPEG is a video codec wherein each video frame is essentially a JPEG
4053       image. The individual frames can be extracted without loss, e.g. by
4054
4055               ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg
4056
4057       Unfortunately, these chunks are incomplete JPEG images, because they
4058       lack the DHT segment required for decoding. Quoting from
4059       <http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml>:
4060
4061       Avery Lee, writing in the rec.video.desktop newsgroup in 2001,
4062       commented that "MJPEG, or at least the MJPEG in AVIs having the MJPG
4063       fourcc, is restricted JPEG with a fixed -- and *omitted* -- Huffman
4064       table. The JPEG must be YCbCr colorspace, it must be 4:2:2, and it must
4065       use basic Huffman encoding, not arithmetic or progressive. . . . You
4066       can indeed extract the MJPEG frames and decode them with a regular JPEG
4067       decoder, but you have to prepend the DHT segment to them, or else the
4068       decoder won't have any idea how to decompress the data. The exact table
4069       necessary is given in the OpenDML spec."
4070
4071       This bitstream filter patches the header of frames extracted from an
4072       MJPEG stream (carrying the AVI1 header ID and lacking a DHT segment) to
4073       produce fully qualified JPEG images.
4074
4075               ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
4076               exiftran -i -9 frame*.jpg
4077               ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
4078
4079   mjpegadump
4080       Add an MJPEG A header to the bitstream, to enable decoding by
4081       Quicktime.
4082
4083   mov2textsub
4084       Extract a representable text file from MOV subtitles, stripping the
4085       metadata header from each subtitle packet.
4086
4087       See also the text2movsub filter.
4088
4089   mp3decomp
4090       Decompress non-standard compressed MP3 audio headers.
4091
4092   mpeg2_metadata
4093       Modify metadata embedded in an MPEG-2 stream.
4094
4095       display_aspect_ratio
4096           Set the display aspect ratio in the stream.
4097
4098           The following fixed values are supported:
4099
4100           4/3
4101           16/9
4102           221/100
4103
4104           Any other value will result in square pixels being signalled
4105           instead (see H.262 section 6.3.3 and table 6-3).
4106
4107       frame_rate
4108           Set the frame rate in the stream.  This is constructed from a table
4109           of known values combined with a small multiplier and divisor - if
4110           the supplied value is not exactly representable, the nearest
4111           representable value will be used instead (see H.262 section 6.3.3
4112           and table 6-4).
4113
4114       video_format
4115           Set the video format in the stream (see H.262 section 6.3.6 and
4116           table 6-6).
4117
4118       colour_primaries
4119       transfer_characteristics
4120       matrix_coefficients
4121           Set the colour description in the stream (see H.262 section 6.3.6
4122           and tables 6-7, 6-8 and 6-9).
4123
4124   mpeg4_unpack_bframes
4125       Unpack DivX-style packed B-frames.
4126
4127       DivX-style packed B-frames are not valid MPEG-4 and were only a
4128       workaround for the broken Video for Windows subsystem.  They use more
4129       space, can cause minor AV sync issues, require more CPU power to decode
4130       (unless the player has some decoded picture queue to compensate the
4131       2,0,2,0 frame per packet style) and cause trouble if copied into a
4132       standard container like mp4 or mpeg-ps/ts, because MPEG-4 decoders may
4133       not be able to decode them, since they are not valid MPEG-4.
4134
4135       For example to fix an AVI file containing an MPEG-4 stream with DivX-
4136       style packed B-frames using ffmpeg, you can use the command:
4137
4138               ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi
4139
4140   noise
4141       Damages the contents of packets or simply drops them without damaging
4142       the container. Can be used for fuzzing or testing error
4143       resilience/concealment.
4144
4145       Parameters:
4146
4147       amount
4148           Accepts an expression whose evaluation per-packet determines how
4149           often bytes in that packet will be modified. A value below 0 will
4150           result in a variable frequency.  Default is 0 which results in no
4151           modification. However, if neither amount nor drop is specified,
4152           amount will be set to -1. See below for accepted variables.
4153
4154       drop
4155           Accepts an expression evaluated per-packet whose value determines
4156           whether that packet is dropped.  Evaluation to a positive value
4157           results in the packet being dropped. Evaluation to a negative value
4158           results in a variable chance of it being dropped, roughly inverse
4159           in proportion to the magnitude of the value. Default is 0 which
4160           results in no drops. See below for accepted variables.
4161
4162       dropamount
4163           Accepts a non-negative integer, which assigns a variable chance of
4164           it being dropped, roughly inverse in proportion to the value.
4165           Default is 0 which results in no drops. This option is kept for
4166           backwards compatibility and is equivalent to setting drop to a
4167           negative value with the same magnitude i.e. "dropamount=4" is the
4168           same as "drop=-4". Ignored if drop is also specified.
4169
4170       Both "amount" and "drop" accept expressions containing the following
4171       variables:
4172
4173       n   The index of the packet, starting from zero.
4174
4175       tb  The timebase for packet timestamps.
4176
4177       pts Packet presentation timestamp.
4178
4179       dts Packet decoding timestamp.
4180
4181       nopts
4182           Constant representing AV_NOPTS_VALUE.
4183
4184       startpts
4185           First non-AV_NOPTS_VALUE PTS seen in the stream.
4186
4187       startdts
4188           First non-AV_NOPTS_VALUE DTS seen in the stream.
4189
4190       duration
4191       d   Packet duration, in timebase units.
4192
4193       pos Packet position in input; may be -1 when unknown or not set.
4194
4195       size
4196           Packet size, in bytes.
4197
4198       key Whether packet is marked as a keyframe.
4199
4200       state
4201           A pseudo random integer, primarily derived from the content of
4202           packet payload.
4203
4204       Examples
4205
4206       Apply modification to every byte but don't drop any packets.
4207
4208               ffmpeg -i INPUT -c copy -bsf noise=1 output.mkv
4209
4210       Drop every video packet not marked as a keyframe after timestamp 30s
4211       but do not modify any of the remaining packets.
4212
4213               ffmpeg -i INPUT -c copy -bsf:v noise=drop='gt(t\,30)*not(key)' output.mkv
4214
4215       Drop one second of audio every 10 seconds and add some random noise to
4216       the rest.
4217
4218               ffmpeg -i INPUT -c copy -bsf:a noise=amount=-1:drop='between(mod(t\,10)\,9\,10)' output.mkv
4219
4220   null
4221       This bitstream filter passes the packets through unchanged.
4222
4223   pcm_rechunk
4224       Repacketize PCM audio to a fixed number of samples per packet or a
4225       fixed packet rate per second. This is similar to the asetnsamples audio
4226       filter but works on audio packets instead of audio frames.
4227
4228       nb_out_samples, n
4229           Set the number of samples per each output audio packet. The number
4230           is intended as the number of samples per each channel. Default
4231           value is 1024.
4232
4233       pad, p
4234           If set to 1, the filter will pad the last audio packet with
4235           silence, so that it will contain the same number of samples (or
4236           roughly the same number of samples, see frame_rate) as the previous
4237           ones. Default value is 1.
4238
4239       frame_rate, r
4240           This option makes the filter output a fixed number of packets per
4241           second instead of a fixed number of samples per packet. If the
4242           audio sample rate is not divisible by the frame rate then the
4243           number of samples will not be constant but will vary slightly so
4244           that each packet will start as close to the frame boundary as
4245           possible. Using this option has precedence over nb_out_samples.
4246
4247       You can generate the well known 1602-1601-1602-1601-1602 pattern of
4248       48kHz audio for NTSC frame rate using the frame_rate option.
4249
4250               ffmpeg -f lavfi -i sine=r=48000:d=1 -c pcm_s16le -bsf pcm_rechunk=r=30000/1001 -f framecrc -
4251
4252   pgs_frame_merge
4253       Merge a sequence of PGS Subtitle segments ending with an "end of
4254       display set" segment into a single packet.
4255
4256       This is required by some containers that support PGS subtitles (muxer
4257       "matroska").
4258
4259   prores_metadata
4260       Modify color property metadata embedded in prores stream.
4261
4262       color_primaries
4263           Set the color primaries.  Available values are:
4264
4265           auto
4266               Keep the same color primaries property (default).
4267
4268           unknown
4269           bt709
4270           bt470bg
4271               BT601 625
4272
4273           smpte170m
4274               BT601 525
4275
4276           bt2020
4277           smpte431
4278               DCI P3
4279
4280           smpte432
4281               P3 D65
4282
4283       transfer_characteristics
4284           Set the color transfer.  Available values are:
4285
4286           auto
4287               Keep the same transfer characteristics property (default).
4288
4289           unknown
4290           bt709
4291               BT 601, BT 709, BT 2020
4292
4293           smpte2084
4294               SMPTE ST 2084
4295
4296           arib-std-b67
4297               ARIB STD-B67
4298
4299       matrix_coefficients
4300           Set the matrix coefficient.  Available values are:
4301
4302           auto
4303               Keep the same colorspace property (default).
4304
4305           unknown
4306           bt709
4307           smpte170m
4308               BT 601
4309
4310           bt2020nc
4311
4312       Set Rec709 colorspace for each frame of the file
4313
4314               ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt709:color_trc=bt709:colorspace=bt709 output.mov
4315
4316       Set Hybrid Log-Gamma parameters for each frame of the file
4317
4318               ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt2020:color_trc=arib-std-b67:colorspace=bt2020nc output.mov
4319
4320   remove_extra
4321       Remove extradata from packets.
4322
4323       It accepts the following parameter:
4324
4325       freq
4326           Set which frame types to remove extradata from.
4327
4328           k   Remove extradata from non-keyframes only.
4329
4330           keyframe
4331               Remove extradata from keyframes only.
4332
4333           e, all
4334               Remove extradata from all frames.
4335
4336   setts
4337       Set PTS and DTS in packets.
4338
4339       It accepts the following parameters:
4340
4341       ts
4342       pts
4343       dts Set expressions for PTS, DTS or both.
4344
4345       duration
4346           Set expression for duration.
4347
4348       time_base
4349           Set output time base.
4350
4351       The expressions are evaluated through the eval API and can contain the
4352       following constants:
4353
4354       N   The count of the input packet. Starting from 0.
4355
4356       TS  The demux timestamp in input in case of "ts" or "dts" option or
4357           presentation timestamp in case of "pts" option.
4358
4359       POS The original position in the file of the packet, or undefined if
4360           undefined for the current packet
4361
4362       DTS The demux timestamp in input.
4363
4364       PTS The presentation timestamp in input.
4365
4366       DURATION
4367           The duration in input.
4368
4369       STARTDTS
4370           The DTS of the first packet.
4371
4372       STARTPTS
4373           The PTS of the first packet.
4374
4375       PREV_INDTS
4376           The previous input DTS.
4377
4378       PREV_INPTS
4379           The previous input PTS.
4380
4381       PREV_INDURATION
4382           The previous input duration.
4383
4384       PREV_OUTDTS
4385           The previous output DTS.
4386
4387       PREV_OUTPTS
4388           The previous output PTS.
4389
4390       PREV_OUTDURATION
4391           The previous output duration.
4392
4393       NEXT_DTS
4394           The next input DTS.
4395
4396       NEXT_PTS
4397           The next input PTS.
4398
4399       NEXT_DURATION
4400           The next input duration.
4401
4402       TB  The timebase of stream packet belongs.
4403
4404       TB_OUT
4405           The output timebase.
4406
4407       SR  The sample rate of stream packet belongs.
4408
4409       NOPTS
4410           The AV_NOPTS_VALUE constant.
4411
4412   text2movsub
4413       Convert text subtitles to MOV subtitles (as used by the "mov_text"
4414       codec) with metadata headers.
4415
4416       See also the mov2textsub filter.
4417
4418   trace_headers
4419       Log trace output containing all syntax elements in the coded stream
4420       headers (everything above the level of individual coded blocks).  This
4421       can be useful for debugging low-level stream issues.
4422
4423       Supports AV1, H.264, H.265, (M)JPEG, MPEG-2 and VP9, but depending on
4424       the build only a subset of these may be available.
4425
4426   truehd_core
4427       Extract the core from a TrueHD stream, dropping ATMOS data.
4428
4429   vp9_metadata
4430       Modify metadata embedded in a VP9 stream.
4431
4432       color_space
4433           Set the color space value in the frame header.  Note that any frame
4434           set to RGB will be implicitly set to PC range and that RGB is
4435           incompatible with profiles 0 and 2.
4436
4437           unknown
4438           bt601
4439           bt709
4440           smpte170
4441           smpte240
4442           bt2020
4443           rgb
4444       color_range
4445           Set the color range value in the frame header.  Note that any value
4446           imposed by the color space will take precedence over this value.
4447
4448           tv
4449           pc
4450
4451   vp9_superframe
4452       Merge VP9 invisible (alt-ref) frames back into VP9 superframes. This
4453       fixes merging of split/segmented VP9 streams where the alt-ref frame
4454       was split from its visible counterpart.
4455
4456   vp9_superframe_split
4457       Split VP9 superframes into single frames.
4458
4459   vp9_raw_reorder
4460       Given a VP9 stream with correct timestamps but possibly out of order,
4461       insert additional show-existing-frame packets to correct the ordering.
4462

FORMAT OPTIONS

4464       The libavformat library provides some generic global options, which can
4465       be set on all the muxers and demuxers. In addition each muxer or
4466       demuxer may support so-called private options, which are specific for
4467       that component.
4468
4469       Options may be set by specifying -option value in the FFmpeg tools, or
4470       by setting the value explicitly in the "AVFormatContext" options or
4471       using the libavutil/opt.h API for programmatic use.
4472
4473       The list of supported options follows:
4474
4475       avioflags flags (input/output)
4476           Possible values:
4477
4478           direct
4479               Reduce buffering.
4480
4481       probesize integer (input)
4482           Set probing size in bytes, i.e. the size of the data to analyze to
4483           get stream information. A higher value will enable detecting more
4484           information in case it is dispersed into the stream, but will
4485           increase latency. Must be an integer not lesser than 32. It is
4486           5000000 by default.
4487
4488       max_probe_packets integer (input)
4489           Set the maximum number of buffered packets when probing a codec.
4490           Default is 2500 packets.
4491
4492       packetsize integer (output)
4493           Set packet size.
4494
4495       fflags flags
4496           Set format flags. Some are implemented for a limited number of
4497           formats.
4498
4499           Possible values for input files:
4500
4501           discardcorrupt
4502               Discard corrupted packets.
4503
4504           fastseek
4505               Enable fast, but inaccurate seeks for some formats.
4506
4507           genpts
4508               Generate missing PTS if DTS is present.
4509
4510           igndts
4511               Ignore DTS if PTS is set. Inert when nofillin is set.
4512
4513           ignidx
4514               Ignore index.
4515
4516           nobuffer
4517               Reduce the latency introduced by buffering during initial input
4518               streams analysis.
4519
4520           nofillin
4521               Do not fill in missing values in packet fields that can be
4522               exactly calculated.
4523
4524           noparse
4525               Disable AVParsers, this needs "+nofillin" too.
4526
4527           sortdts
4528               Try to interleave output packets by DTS. At present, available
4529               only for AVIs with an index.
4530
4531           Possible values for output files:
4532
4533           autobsf
4534               Automatically apply bitstream filters as required by the output
4535               format. Enabled by default.
4536
4537           bitexact
4538               Only write platform-, build- and time-independent data.  This
4539               ensures that file and data checksums are reproducible and match
4540               between platforms. Its primary use is for regression testing.
4541
4542           flush_packets
4543               Write out packets immediately.
4544
4545           shortest
4546               Stop muxing at the end of the shortest stream.  It may be
4547               needed to increase max_interleave_delta to avoid flushing the
4548               longer streams before EOF.
4549
4550       seek2any integer (input)
4551           Allow seeking to non-keyframes on demuxer level when supported if
4552           set to 1.  Default is 0.
4553
4554       analyzeduration integer (input)
4555           Specify how many microseconds are analyzed to probe the input. A
4556           higher value will enable detecting more accurate information, but
4557           will increase latency. It defaults to 5,000,000 microseconds = 5
4558           seconds.
4559
4560       cryptokey hexadecimal string (input)
4561           Set decryption key.
4562
4563       indexmem integer (input)
4564           Set max memory used for timestamp index (per stream).
4565
4566       rtbufsize integer (input)
4567           Set max memory used for buffering real-time frames.
4568
4569       fdebug flags (input/output)
4570           Print specific debug info.
4571
4572           Possible values:
4573
4574           ts
4575       max_delay integer (input/output)
4576           Set maximum muxing or demuxing delay in microseconds.
4577
4578       fpsprobesize integer (input)
4579           Set number of frames used to probe fps.
4580
4581       audio_preload integer (output)
4582           Set microseconds by which audio packets should be interleaved
4583           earlier.
4584
4585       chunk_duration integer (output)
4586           Set microseconds for each chunk.
4587
4588       chunk_size integer (output)
4589           Set size in bytes for each chunk.
4590
4591       err_detect, f_err_detect flags (input)
4592           Set error detection flags. "f_err_detect" is deprecated and should
4593           be used only via the ffmpeg tool.
4594
4595           Possible values:
4596
4597           crccheck
4598               Verify embedded CRCs.
4599
4600           bitstream
4601               Detect bitstream specification deviations.
4602
4603           buffer
4604               Detect improper bitstream length.
4605
4606           explode
4607               Abort decoding on minor error detection.
4608
4609           careful
4610               Consider things that violate the spec and have not been seen in
4611               the wild as errors.
4612
4613           compliant
4614               Consider all spec non compliancies as errors.
4615
4616           aggressive
4617               Consider things that a sane encoder should not do as an error.
4618
4619       max_interleave_delta integer (output)
4620           Set maximum buffering duration for interleaving. The duration is
4621           expressed in microseconds, and defaults to 10000000 (10 seconds).
4622
4623           To ensure all the streams are interleaved correctly, libavformat
4624           will wait until it has at least one packet for each stream before
4625           actually writing any packets to the output file. When some streams
4626           are "sparse" (i.e. there are large gaps between successive
4627           packets), this can result in excessive buffering.
4628
4629           This field specifies the maximum difference between the timestamps
4630           of the first and the last packet in the muxing queue, above which
4631           libavformat will output a packet regardless of whether it has
4632           queued a packet for all the streams.
4633
4634           If set to 0, libavformat will continue buffering packets until it
4635           has a packet for each stream, regardless of the maximum timestamp
4636           difference between the buffered packets.
4637
4638       use_wallclock_as_timestamps integer (input)
4639           Use wallclock as timestamps if set to 1. Default is 0.
4640
4641       avoid_negative_ts integer (output)
4642           Possible values:
4643
4644           make_non_negative
4645               Shift timestamps to make them non-negative.  Also note that
4646               this affects only leading negative timestamps, and not non-
4647               monotonic negative timestamps.
4648
4649           make_zero
4650               Shift timestamps so that the first timestamp is 0.
4651
4652           auto (default)
4653               Enables shifting when required by the target format.
4654
4655           disabled
4656               Disables shifting of timestamp.
4657
4658           When shifting is enabled, all output timestamps are shifted by the
4659           same amount. Audio, video, and subtitles desynching and relative
4660           timestamp differences are preserved compared to how they would have
4661           been without shifting.
4662
4663       skip_initial_bytes integer (input)
4664           Set number of bytes to skip before reading header and frames if set
4665           to 1.  Default is 0.
4666
4667       correct_ts_overflow integer (input)
4668           Correct single timestamp overflows if set to 1. Default is 1.
4669
4670       flush_packets integer (output)
4671           Flush the underlying I/O stream after each packet. Default is -1
4672           (auto), which means that the underlying protocol will decide, 1
4673           enables it, and has the effect of reducing the latency, 0 disables
4674           it and may increase IO throughput in some cases.
4675
4676       output_ts_offset offset (output)
4677           Set the output time offset.
4678
4679           offset must be a time duration specification, see the Time duration
4680           section in the ffmpeg-utils(1) manual.
4681
4682           The offset is added by the muxer to the output timestamps.
4683
4684           Specifying a positive offset means that the corresponding streams
4685           are delayed bt the time duration specified in offset. Default value
4686           is 0 (meaning that no offset is applied).
4687
4688       format_whitelist list (input)
4689           "," separated list of allowed demuxers. By default all are allowed.
4690
4691       dump_separator string (input)
4692           Separator used to separate the fields printed on the command line
4693           about the Stream parameters.  For example, to separate the fields
4694           with newlines and indentation:
4695
4696                   ffprobe -dump_separator "
4697                                             "  -i ~/videos/matrixbench_mpeg2.mpg
4698
4699       max_streams integer (input)
4700           Specifies the maximum number of streams. This can be used to reject
4701           files that would require too many resources due to a large number
4702           of streams.
4703
4704       skip_estimate_duration_from_pts bool (input)
4705           Skip estimation of input duration when calculated using PTS.  At
4706           present, applicable for MPEG-PS and MPEG-TS.
4707
4708       strict, f_strict integer (input/output)
4709           Specify how strictly to follow the standards. "f_strict" is
4710           deprecated and should be used only via the ffmpeg tool.
4711
4712           Possible values:
4713
4714           very
4715               strictly conform to an older more strict version of the spec or
4716               reference software
4717
4718           strict
4719               strictly conform to all the things in the spec no matter what
4720               consequences
4721
4722           normal
4723           unofficial
4724               allow unofficial extensions
4725
4726           experimental
4727               allow non standardized experimental things, experimental
4728               (unfinished/work in progress/not well tested) decoders and
4729               encoders.  Note: experimental decoders can pose a security
4730               risk, do not use this for decoding untrusted input.
4731
4732   Format stream specifiers
4733       Format stream specifiers allow selection of one or more streams that
4734       match specific properties.
4735
4736       The exact semantics of stream specifiers is defined by the
4737       "avformat_match_stream_specifier()" function declared in the
4738       libavformat/avformat.h header and documented in the Stream specifiers
4739       section in the ffmpeg(1) manual.
4740

DEMUXERS

4742       Demuxers are configured elements in FFmpeg that can read the multimedia
4743       streams from a particular type of file.
4744
4745       When you configure your FFmpeg build, all the supported demuxers are
4746       enabled by default. You can list all available ones using the configure
4747       option "--list-demuxers".
4748
4749       You can disable all the demuxers using the configure option
4750       "--disable-demuxers", and selectively enable a single demuxer with the
4751       option "--enable-demuxer=DEMUXER", or disable it with the option
4752       "--disable-demuxer=DEMUXER".
4753
4754       The option "-demuxers" of the ff* tools will display the list of
4755       enabled demuxers. Use "-formats" to view a combined list of enabled
4756       demuxers and muxers.
4757
4758       The description of some of the currently available demuxers follows.
4759
4760   aa
4761       Audible Format 2, 3, and 4 demuxer.
4762
4763       This demuxer is used to demux Audible Format 2, 3, and 4 (.aa) files.
4764
4765   aac
4766       Raw Audio Data Transport Stream AAC demuxer.
4767
4768       This demuxer is used to demux an ADTS input containing a single AAC
4769       stream alongwith any ID3v1/2 or APE tags in it.
4770
4771   apng
4772       Animated Portable Network Graphics demuxer.
4773
4774       This demuxer is used to demux APNG files.  All headers, but the PNG
4775       signature, up to (but not including) the first fcTL chunk are
4776       transmitted as extradata.  Frames are then split as being all the
4777       chunks between two fcTL ones, or between the last fcTL and IEND chunks.
4778
4779       -ignore_loop bool
4780           Ignore the loop variable in the file if set. Default is enabled.
4781
4782       -max_fps int
4783           Maximum framerate in frames per second. Default of 0 imposes no
4784           limit.
4785
4786       -default_fps int
4787           Default framerate in frames per second when none is specified in
4788           the file (0 meaning as fast as possible). Default is 15.
4789
4790   asf
4791       Advanced Systems Format demuxer.
4792
4793       This demuxer is used to demux ASF files and MMS network streams.
4794
4795       -no_resync_search bool
4796           Do not try to resynchronize by looking for a certain optional start
4797           code.
4798
4799   concat
4800       Virtual concatenation script demuxer.
4801
4802       This demuxer reads a list of files and other directives from a text
4803       file and demuxes them one after the other, as if all their packets had
4804       been muxed together.
4805
4806       The timestamps in the files are adjusted so that the first file starts
4807       at 0 and each next file starts where the previous one finishes. Note
4808       that it is done globally and may cause gaps if all streams do not have
4809       exactly the same length.
4810
4811       All files must have the same streams (same codecs, same time base,
4812       etc.).
4813
4814       The duration of each file is used to adjust the timestamps of the next
4815       file: if the duration is incorrect (because it was computed using the
4816       bit-rate or because the file is truncated, for example), it can cause
4817       artifacts. The "duration" directive can be used to override the
4818       duration stored in each file.
4819
4820       Syntax
4821
4822       The script is a text file in extended-ASCII, with one directive per
4823       line.  Empty lines, leading spaces and lines starting with '#' are
4824       ignored. The following directive is recognized:
4825
4826       "file path"
4827           Path to a file to read; special characters and spaces must be
4828           escaped with backslash or single quotes.
4829
4830           All subsequent file-related directives apply to that file.
4831
4832       "ffconcat version 1.0"
4833           Identify the script type and version.
4834
4835           To make FFmpeg recognize the format automatically, this directive
4836           must appear exactly as is (no extra space or byte-order-mark) on
4837           the very first line of the script.
4838
4839       "duration dur"
4840           Duration of the file. This information can be specified from the
4841           file; specifying it here may be more efficient or help if the
4842           information from the file is not available or accurate.
4843
4844           If the duration is set for all files, then it is possible to seek
4845           in the whole concatenated video.
4846
4847       "inpoint timestamp"
4848           In point of the file. When the demuxer opens the file it instantly
4849           seeks to the specified timestamp. Seeking is done so that all
4850           streams can be presented successfully at In point.
4851
4852           This directive works best with intra frame codecs, because for non-
4853           intra frame ones you will usually get extra packets before the
4854           actual In point and the decoded content will most likely contain
4855           frames before In point too.
4856
4857           For each file, packets before the file In point will have
4858           timestamps less than the calculated start timestamp of the file
4859           (negative in case of the first file), and the duration of the files
4860           (if not specified by the "duration" directive) will be reduced
4861           based on their specified In point.
4862
4863           Because of potential packets before the specified In point, packet
4864           timestamps may overlap between two concatenated files.
4865
4866       "outpoint timestamp"
4867           Out point of the file. When the demuxer reaches the specified
4868           decoding timestamp in any of the streams, it handles it as an end
4869           of file condition and skips the current and all the remaining
4870           packets from all streams.
4871
4872           Out point is exclusive, which means that the demuxer will not
4873           output packets with a decoding timestamp greater or equal to Out
4874           point.
4875
4876           This directive works best with intra frame codecs and formats where
4877           all streams are tightly interleaved. For non-intra frame codecs you
4878           will usually get additional packets with presentation timestamp
4879           after Out point therefore the decoded content will most likely
4880           contain frames after Out point too. If your streams are not tightly
4881           interleaved you may not get all the packets from all streams before
4882           Out point and you may only will be able to decode the earliest
4883           stream until Out point.
4884
4885           The duration of the files (if not specified by the "duration"
4886           directive) will be reduced based on their specified Out point.
4887
4888       "file_packet_metadata key=value"
4889           Metadata of the packets of the file. The specified metadata will be
4890           set for each file packet. You can specify this directive multiple
4891           times to add multiple metadata entries.  This directive is
4892           deprecated, use "file_packet_meta" instead.
4893
4894       "file_packet_meta key value"
4895           Metadata of the packets of the file. The specified metadata will be
4896           set for each file packet. You can specify this directive multiple
4897           times to add multiple metadata entries.
4898
4899       "option key value"
4900           Option to access, open and probe the file.  Can be present multiple
4901           times.
4902
4903       "stream"
4904           Introduce a stream in the virtual file.  All subsequent stream-
4905           related directives apply to the last introduced stream.  Some
4906           streams properties must be set in order to allow identifying the
4907           matching streams in the subfiles.  If no streams are defined in the
4908           script, the streams from the first file are copied.
4909
4910       "exact_stream_id id"
4911           Set the id of the stream.  If this directive is given, the string
4912           with the corresponding id in the subfiles will be used.  This is
4913           especially useful for MPEG-PS (VOB) files, where the order of the
4914           streams is not reliable.
4915
4916       "stream_meta key value"
4917           Metadata for the stream.  Can be present multiple times.
4918
4919       "stream_codec value"
4920           Codec for the stream.
4921
4922       "stream_extradata hex_string"
4923           Extradata for the string, encoded in hexadecimal.
4924
4925       "chapter id start end"
4926           Add a chapter. id is an unique identifier, possibly small and
4927           consecutive.
4928
4929       Options
4930
4931       This demuxer accepts the following option:
4932
4933       safe
4934           If set to 1, reject unsafe file paths and directives.  A file path
4935           is considered safe if it does not contain a protocol specification
4936           and is relative and all components only contain characters from the
4937           portable character set (letters, digits, period, underscore and
4938           hyphen) and have no period at the beginning of a component.
4939
4940           If set to 0, any file name is accepted.
4941
4942           The default is 1.
4943
4944       auto_convert
4945           If set to 1, try to perform automatic conversions on packet data to
4946           make the streams concatenable.  The default is 1.
4947
4948           Currently, the only conversion is adding the h264_mp4toannexb
4949           bitstream filter to H.264 streams in MP4 format. This is necessary
4950           in particular if there are resolution changes.
4951
4952       segment_time_metadata
4953           If set to 1, every packet will contain the lavf.concat.start_time
4954           and the lavf.concat.duration packet metadata values which are the
4955           start_time and the duration of the respective file segments in the
4956           concatenated output expressed in microseconds. The duration
4957           metadata is only set if it is known based on the concat file.  The
4958           default is 0.
4959
4960       Examples
4961
4962       •   Use absolute filenames and include some comments:
4963
4964                   # my first filename
4965                   file /mnt/share/file-1.wav
4966                   # my second filename including whitespace
4967                   file '/mnt/share/file 2.wav'
4968                   # my third filename including whitespace plus single quote
4969                   file '/mnt/share/file 3'\''.wav'
4970
4971       •   Allow for input format auto-probing, use safe filenames and set the
4972           duration of the first file:
4973
4974                   ffconcat version 1.0
4975
4976                   file file-1.wav
4977                   duration 20.0
4978
4979                   file subdir/file-2.wav
4980
4981   dash
4982       Dynamic Adaptive Streaming over HTTP demuxer.
4983
4984       This demuxer presents all AVStreams found in the manifest.  By setting
4985       the discard flags on AVStreams the caller can decide which streams to
4986       actually receive.  Each stream mirrors the "id" and "bandwidth"
4987       properties from the "<Representation>" as metadata keys named "id" and
4988       "variant_bitrate" respectively.
4989
4990       Options
4991
4992       This demuxer accepts the following option:
4993
4994       cenc_decryption_key
4995           16-byte key, in hex, to decrypt files encrypted using ISO Common
4996           Encryption (CENC/AES-128 CTR; ISO/IEC 23001-7).
4997
4998   imf
4999       Interoperable Master Format demuxer.
5000
5001       This demuxer presents audio and video streams found in an IMF
5002       Composition.
5003
5004   flv, live_flv, kux
5005       Adobe Flash Video Format demuxer.
5006
5007       This demuxer is used to demux FLV files and RTMP network streams. In
5008       case of live network streams, if you force format, you may use live_flv
5009       option instead of flv to survive timestamp discontinuities.  KUX is a
5010       flv variant used on the Youku platform.
5011
5012               ffmpeg -f flv -i myfile.flv ...
5013               ffmpeg -f live_flv -i rtmp://<any.server>/anything/key ....
5014
5015       -flv_metadata bool
5016           Allocate the streams according to the onMetaData array content.
5017
5018       -flv_ignore_prevtag bool
5019           Ignore the size of previous tag value.
5020
5021       -flv_full_metadata bool
5022           Output all context of the onMetadata.
5023
5024   gif
5025       Animated GIF demuxer.
5026
5027       It accepts the following options:
5028
5029       min_delay
5030           Set the minimum valid delay between frames in hundredths of
5031           seconds.  Range is 0 to 6000. Default value is 2.
5032
5033       max_gif_delay
5034           Set the maximum valid delay between frames in hundredth of seconds.
5035           Range is 0 to 65535. Default value is 65535 (nearly eleven
5036           minutes), the maximum value allowed by the specification.
5037
5038       default_delay
5039           Set the default delay between frames in hundredths of seconds.
5040           Range is 0 to 6000. Default value is 10.
5041
5042       ignore_loop
5043           GIF files can contain information to loop a certain number of times
5044           (or infinitely). If ignore_loop is set to 1, then the loop setting
5045           from the input will be ignored and looping will not occur. If set
5046           to 0, then looping will occur and will cycle the number of times
5047           according to the GIF. Default value is 1.
5048
5049       For example, with the overlay filter, place an infinitely looping GIF
5050       over another video:
5051
5052               ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex overlay=shortest=1 out.mkv
5053
5054       Note that in the above example the shortest option for overlay filter
5055       is used to end the output video at the length of the shortest input
5056       file, which in this case is input.mp4 as the GIF in this example loops
5057       infinitely.
5058
5059   hls
5060       HLS demuxer
5061
5062       Apple HTTP Live Streaming demuxer.
5063
5064       This demuxer presents all AVStreams from all variant streams.  The id
5065       field is set to the bitrate variant index number. By setting the
5066       discard flags on AVStreams (by pressing 'a' or 'v' in ffplay), the
5067       caller can decide which variant streams to actually receive.  The total
5068       bitrate of the variant that the stream belongs to is available in a
5069       metadata key named "variant_bitrate".
5070
5071       It accepts the following options:
5072
5073       live_start_index
5074           segment index to start live streams at (negative values are from
5075           the end).
5076
5077       prefer_x_start
5078           prefer to use #EXT-X-START if it's in playlist instead of
5079           live_start_index.
5080
5081       allowed_extensions
5082           ',' separated list of file extensions that hls is allowed to
5083           access.
5084
5085       max_reload
5086           Maximum number of times a insufficient list is attempted to be
5087           reloaded.  Default value is 1000.
5088
5089       m3u8_hold_counters
5090           The maximum number of times to load m3u8 when it refreshes without
5091           new segments.  Default value is 1000.
5092
5093       http_persistent
5094           Use persistent HTTP connections. Applicable only for HTTP streams.
5095           Enabled by default.
5096
5097       http_multiple
5098           Use multiple HTTP connections for downloading HTTP segments.
5099           Enabled by default for HTTP/1.1 servers.
5100
5101       http_seekable
5102           Use HTTP partial requests for downloading HTTP segments.  0 =
5103           disable, 1 = enable, -1 = auto, Default is auto.
5104
5105       seg_format_options
5106           Set options for the demuxer of media segments using a list of
5107           key=value pairs separated by ":".
5108
5109   image2
5110       Image file demuxer.
5111
5112       This demuxer reads from a list of image files specified by a pattern.
5113       The syntax and meaning of the pattern is specified by the option
5114       pattern_type.
5115
5116       The pattern may contain a suffix which is used to automatically
5117       determine the format of the images contained in the files.
5118
5119       The size, the pixel format, and the format of each image must be the
5120       same for all the files in the sequence.
5121
5122       This demuxer accepts the following options:
5123
5124       framerate
5125           Set the frame rate for the video stream. It defaults to 25.
5126
5127       loop
5128           If set to 1, loop over the input. Default value is 0.
5129
5130       pattern_type
5131           Select the pattern type used to interpret the provided filename.
5132
5133           pattern_type accepts one of the following values.
5134
5135           none
5136               Disable pattern matching, therefore the video will only contain
5137               the specified image. You should use this option if you do not
5138               want to create sequences from multiple images and your
5139               filenames may contain special pattern characters.
5140
5141           sequence
5142               Select a sequence pattern type, used to specify a sequence of
5143               files indexed by sequential numbers.
5144
5145               A sequence pattern may contain the string "%d" or "%0Nd", which
5146               specifies the position of the characters representing a
5147               sequential number in each filename matched by the pattern. If
5148               the form "%d0Nd" is used, the string representing the number in
5149               each filename is 0-padded and N is the total number of 0-padded
5150               digits representing the number. The literal character '%' can
5151               be specified in the pattern with the string "%%".
5152
5153               If the sequence pattern contains "%d" or "%0Nd", the first
5154               filename of the file list specified by the pattern must contain
5155               a number inclusively contained between start_number and
5156               start_number+start_number_range-1, and all the following
5157               numbers must be sequential.
5158
5159               For example the pattern "img-%03d.bmp" will match a sequence of
5160               filenames of the form img-001.bmp, img-002.bmp, ...,
5161               img-010.bmp, etc.; the pattern "i%%m%%g-%d.jpg" will match a
5162               sequence of filenames of the form i%m%g-1.jpg, i%m%g-2.jpg,
5163               ..., i%m%g-10.jpg, etc.
5164
5165               Note that the pattern must not necessarily contain "%d" or
5166               "%0Nd", for example to convert a single image file img.jpeg you
5167               can employ the command:
5168
5169                       ffmpeg -i img.jpeg img.png
5170
5171           glob
5172               Select a glob wildcard pattern type.
5173
5174               The pattern is interpreted like a "glob()" pattern. This is
5175               only selectable if libavformat was compiled with globbing
5176               support.
5177
5178           glob_sequence (deprecated, will be removed)
5179               Select a mixed glob wildcard/sequence pattern.
5180
5181               If your version of libavformat was compiled with globbing
5182               support, and the provided pattern contains at least one glob
5183               meta character among "%*?[]{}" that is preceded by an unescaped
5184               "%", the pattern is interpreted like a "glob()" pattern,
5185               otherwise it is interpreted like a sequence pattern.
5186
5187               All glob special characters "%*?[]{}" must be prefixed with
5188               "%". To escape a literal "%" you shall use "%%".
5189
5190               For example the pattern "foo-%*.jpeg" will match all the
5191               filenames prefixed by "foo-" and terminating with ".jpeg", and
5192               "foo-%?%?%?.jpeg" will match all the filenames prefixed with
5193               "foo-", followed by a sequence of three characters, and
5194               terminating with ".jpeg".
5195
5196               This pattern type is deprecated in favor of glob and sequence.
5197
5198           Default value is glob_sequence.
5199
5200       pixel_format
5201           Set the pixel format of the images to read. If not specified the
5202           pixel format is guessed from the first image file in the sequence.
5203
5204       start_number
5205           Set the index of the file matched by the image file pattern to
5206           start to read from. Default value is 0.
5207
5208       start_number_range
5209           Set the index interval range to check when looking for the first
5210           image file in the sequence, starting from start_number. Default
5211           value is 5.
5212
5213       ts_from_file
5214           If set to 1, will set frame timestamp to modification time of image
5215           file. Note that monotonity of timestamps is not provided: images go
5216           in the same order as without this option. Default value is 0.  If
5217           set to 2, will set frame timestamp to the modification time of the
5218           image file in nanosecond precision.
5219
5220       video_size
5221           Set the video size of the images to read. If not specified the
5222           video size is guessed from the first image file in the sequence.
5223
5224       export_path_metadata
5225           If set to 1, will add two extra fields to the metadata found in
5226           input, making them also available for other filters (see drawtext
5227           filter for examples). Default value is 0. The extra fields are
5228           described below:
5229
5230           lavf.image2dec.source_path
5231               Corresponds to the full path to the input file being read.
5232
5233           lavf.image2dec.source_basename
5234               Corresponds to the name of the file being read.
5235
5236       Examples
5237
5238       •   Use ffmpeg for creating a video from the images in the file
5239           sequence img-001.jpeg, img-002.jpeg, ..., assuming an input frame
5240           rate of 10 frames per second:
5241
5242                   ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
5243
5244       •   As above, but start by reading from a file with index 100 in the
5245           sequence:
5246
5247                   ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
5248
5249       •   Read images matching the "*.png" glob pattern , that is all the
5250           files terminating with the ".png" suffix:
5251
5252                   ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
5253
5254   libgme
5255       The Game Music Emu library is a collection of video game music file
5256       emulators.
5257
5258       See <https://bitbucket.org/mpyne/game-music-emu/overview> for more
5259       information.
5260
5261       It accepts the following options:
5262
5263       track_index
5264           Set the index of which track to demux. The demuxer can only export
5265           one track.  Track indexes start at 0. Default is to pick the first
5266           track. Number of tracks is exported as tracks metadata entry.
5267
5268       sample_rate
5269           Set the sampling rate of the exported track. Range is 1000 to
5270           999999. Default is 44100.
5271
5272       max_size (bytes)
5273           The demuxer buffers the entire file into memory. Adjust this value
5274           to set the maximum buffer size, which in turn, acts as a ceiling
5275           for the size of files that can be read.  Default is 50 MiB.
5276
5277   libmodplug
5278       ModPlug based module demuxer
5279
5280       See <https://github.com/Konstanty/libmodplug>
5281
5282       It will export one 2-channel 16-bit 44.1 kHz audio stream.  Optionally,
5283       a "pal8" 16-color video stream can be exported with or without printed
5284       metadata.
5285
5286       It accepts the following options:
5287
5288       noise_reduction
5289           Apply a simple low-pass filter. Can be 1 (on) or 0 (off). Default
5290           is 0.
5291
5292       reverb_depth
5293           Set amount of reverb. Range 0-100. Default is 0.
5294
5295       reverb_delay
5296           Set delay in ms, clamped to 40-250 ms. Default is 0.
5297
5298       bass_amount
5299           Apply bass expansion a.k.a. XBass or megabass. Range is 0 (quiet)
5300           to 100 (loud). Default is 0.
5301
5302       bass_range
5303           Set cutoff i.e. upper-bound for bass frequencies. Range is 10-100
5304           Hz. Default is 0.
5305
5306       surround_depth
5307           Apply a Dolby Pro-Logic surround effect. Range is 0 (quiet) to 100
5308           (heavy). Default is 0.
5309
5310       surround_delay
5311           Set surround delay in ms, clamped to 5-40 ms. Default is 0.
5312
5313       max_size
5314           The demuxer buffers the entire file into memory. Adjust this value
5315           to set the maximum buffer size, which in turn, acts as a ceiling
5316           for the size of files that can be read. Range is 0 to 100 MiB.  0
5317           removes buffer size limit (not recommended). Default is 5 MiB.
5318
5319       video_stream_expr
5320           String which is evaluated using the eval API to assign colors to
5321           the generated video stream.  Variables which can be used are "x",
5322           "y", "w", "h", "t", "speed", "tempo", "order", "pattern" and "row".
5323
5324       video_stream
5325           Generate video stream. Can be 1 (on) or 0 (off). Default is 0.
5326
5327       video_stream_w
5328           Set video frame width in 'chars' where one char indicates 8 pixels.
5329           Range is 20-512. Default is 30.
5330
5331       video_stream_h
5332           Set video frame height in 'chars' where one char indicates 8
5333           pixels. Range is 20-512. Default is 30.
5334
5335       video_stream_ptxt
5336           Print metadata on video stream. Includes "speed", "tempo", "order",
5337           "pattern", "row" and "ts" (time in ms). Can be 1 (on) or 0 (off).
5338           Default is 1.
5339
5340   libopenmpt
5341       libopenmpt based module demuxer
5342
5343       See <https://lib.openmpt.org/libopenmpt/> for more information.
5344
5345       Some files have multiple subsongs (tracks) this can be set with the
5346       subsong option.
5347
5348       It accepts the following options:
5349
5350       subsong
5351           Set the subsong index. This can be either  'all', 'auto', or the
5352           index of the subsong. Subsong indexes start at 0. The default is
5353           'auto'.
5354
5355           The default value is to let libopenmpt choose.
5356
5357       layout
5358           Set the channel layout. Valid values are 1, 2, and 4 channel
5359           layouts.  The default value is STEREO.
5360
5361       sample_rate
5362           Set the sample rate for libopenmpt to output.  Range is from 1000
5363           to INT_MAX. The value default is 48000.
5364
5365   mov/mp4/3gp
5366       Demuxer for Quicktime File Format & ISO/IEC Base Media File Format
5367       (ISO/IEC 14496-12 or MPEG-4 Part 12, ISO/IEC 15444-12 or JPEG 2000 Part
5368       12).
5369
5370       Registered extensions: mov, mp4, m4a, 3gp, 3g2, mj2, psp, m4b, ism,
5371       ismv, isma, f4v
5372
5373       Options
5374
5375       This demuxer accepts the following options:
5376
5377       enable_drefs
5378           Enable loading of external tracks, disabled by default.  Enabling
5379           this can theoretically leak information in some use cases.
5380
5381       use_absolute_path
5382           Allows loading of external tracks via absolute paths, disabled by
5383           default.  Enabling this poses a security risk. It should only be
5384           enabled if the source is known to be non-malicious.
5385
5386       seek_streams_individually
5387           When seeking, identify the closest point in each stream
5388           individually and demux packets in that stream from identified
5389           point. This can lead to a different sequence of packets compared to
5390           demuxing linearly from the beginning. Default is true.
5391
5392       ignore_editlist
5393           Ignore any edit list atoms. The demuxer, by default, modifies the
5394           stream index to reflect the timeline described by the edit list.
5395           Default is false.
5396
5397       advanced_editlist
5398           Modify the stream index to reflect the timeline described by the
5399           edit list. "ignore_editlist" must be set to false for this option
5400           to be effective.  If both "ignore_editlist" and this option are set
5401           to false, then only the start of the stream index is modified to
5402           reflect initial dwell time or starting timestamp described by the
5403           edit list. Default is true.
5404
5405       ignore_chapters
5406           Don't parse chapters. This includes GoPro 'HiLight' tags/moments.
5407           Note that chapters are only parsed when input is seekable. Default
5408           is false.
5409
5410       use_mfra_for
5411           For seekable fragmented input, set fragment's starting timestamp
5412           from media fragment random access box, if present.
5413
5414           Following options are available:
5415
5416           auto
5417               Auto-detect whether to set mfra timestamps as PTS or DTS
5418               (default)
5419
5420           dts Set mfra timestamps as DTS
5421
5422           pts Set mfra timestamps as PTS
5423
5424           0   Don't use mfra box to set timestamps
5425
5426       use_tfdt
5427           For fragmented input, set fragment's starting timestamp to
5428           "baseMediaDecodeTime" from the "tfdt" box.  Default is enabled,
5429           which will prefer to use the "tfdt" box to set DTS. Disable to use
5430           the "earliest_presentation_time" from the "sidx" box.  In either
5431           case, the timestamp from the "mfra" box will be used if it's
5432           available and "use_mfra_for" is set to pts or dts.
5433
5434       export_all
5435           Export unrecognized boxes within the udta box as metadata entries.
5436           The first four characters of the box type are set as the key.
5437           Default is false.
5438
5439       export_xmp
5440           Export entire contents of XMP_ box and uuid box as a string with
5441           key "xmp". Note that if "export_all" is set and this option isn't,
5442           the contents of XMP_ box are still exported but with key "XMP_".
5443           Default is false.
5444
5445       activation_bytes
5446           4-byte key required to decrypt Audible AAX and AAX+ files. See
5447           Audible AAX subsection below.
5448
5449       audible_fixed_key
5450           Fixed key used for handling Audible AAX/AAX+ files. It has been
5451           pre-set so should not be necessary to specify.
5452
5453       decryption_key
5454           16-byte key, in hex, to decrypt files encrypted using ISO Common
5455           Encryption (CENC/AES-128 CTR; ISO/IEC 23001-7).
5456
5457       max_stts_delta
5458           Very high sample deltas written in a trak's stts box may
5459           occasionally be intended but usually they are written in error or
5460           used to store a negative value for dts correction when treated as
5461           signed 32-bit integers. This option lets the user set an upper
5462           limit, beyond which the delta is clamped to 1. Values greater than
5463           the limit if negative when cast to int32 are used to adjust onward
5464           dts.
5465
5466           Unit is the track time scale. Range is 0 to UINT_MAX. Default is
5467           "UINT_MAX - 48000*10" which allows upto a 10 second dts correction
5468           for 48 kHz audio streams while accommodating 99.9% of "uint32"
5469           range.
5470
5471       Audible AAX
5472
5473       Audible AAX files are encrypted M4B files, and they can be decrypted by
5474       specifying a 4 byte activation secret.
5475
5476               ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:a copy output.mp4
5477
5478   mpegts
5479       MPEG-2 transport stream demuxer.
5480
5481       This demuxer accepts the following options:
5482
5483       resync_size
5484           Set size limit for looking up a new synchronization. Default value
5485           is 65536.
5486
5487       skip_unknown_pmt
5488           Skip PMTs for programs not defined in the PAT. Default value is 0.
5489
5490       fix_teletext_pts
5491           Override teletext packet PTS and DTS values with the timestamps
5492           calculated from the PCR of the first program which the teletext
5493           stream is part of and is not discarded. Default value is 1, set
5494           this option to 0 if you want your teletext packet PTS and DTS
5495           values untouched.
5496
5497       ts_packetsize
5498           Output option carrying the raw packet size in bytes.  Show the
5499           detected raw packet size, cannot be set by the user.
5500
5501       scan_all_pmts
5502           Scan and combine all PMTs. The value is an integer with value from
5503           -1 to 1 (-1 means automatic setting, 1 means enabled, 0 means
5504           disabled). Default value is -1.
5505
5506       merge_pmt_versions
5507           Re-use existing streams when a PMT's version is updated and
5508           elementary streams move to different PIDs. Default value is 0.
5509
5510       max_packet_size
5511           Set maximum size, in bytes, of packet emitted by the demuxer.
5512           Payloads above this size are split across multiple packets. Range
5513           is 1 to INT_MAX/2. Default is 204800 bytes.
5514
5515   mpjpeg
5516       MJPEG encapsulated in multi-part MIME demuxer.
5517
5518       This demuxer allows reading of MJPEG, where each frame is represented
5519       as a part of multipart/x-mixed-replace stream.
5520
5521       strict_mime_boundary
5522           Default implementation applies a relaxed standard to multi-part
5523           MIME boundary detection, to prevent regression with numerous
5524           existing endpoints not generating a proper MIME MJPEG stream.
5525           Turning this option on by setting it to 1 will result in a stricter
5526           check of the boundary value.
5527
5528   rawvideo
5529       Raw video demuxer.
5530
5531       This demuxer allows one to read raw video data. Since there is no
5532       header specifying the assumed video parameters, the user must specify
5533       them in order to be able to decode the data correctly.
5534
5535       This demuxer accepts the following options:
5536
5537       framerate
5538           Set input video frame rate. Default value is 25.
5539
5540       pixel_format
5541           Set the input video pixel format. Default value is "yuv420p".
5542
5543       video_size
5544           Set the input video size. This value must be specified explicitly.
5545
5546       For example to read a rawvideo file input.raw with ffplay, assuming a
5547       pixel format of "rgb24", a video size of "320x240", and a frame rate of
5548       10 images per second, use the command:
5549
5550               ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
5551
5552   sbg
5553       SBaGen script demuxer.
5554
5555       This demuxer reads the script language used by SBaGen
5556       <http://uazu.net/sbagen/> to generate binaural beats sessions. A SBG
5557       script looks like that:
5558
5559               -SE
5560               a: 300-2.5/3 440+4.5/0
5561               b: 300-2.5/0 440+4.5/3
5562               off: -
5563               NOW      == a
5564               +0:07:00 == b
5565               +0:14:00 == a
5566               +0:21:00 == b
5567               +0:30:00    off
5568
5569       A SBG script can mix absolute and relative timestamps. If the script
5570       uses either only absolute timestamps (including the script start time)
5571       or only relative ones, then its layout is fixed, and the conversion is
5572       straightforward. On the other hand, if the script mixes both kind of
5573       timestamps, then the NOW reference for relative timestamps will be
5574       taken from the current time of day at the time the script is read, and
5575       the script layout will be frozen according to that reference. That
5576       means that if the script is directly played, the actual times will
5577       match the absolute timestamps up to the sound controller's clock
5578       accuracy, but if the user somehow pauses the playback or seeks, all
5579       times will be shifted accordingly.
5580
5581   tedcaptions
5582       JSON captions used for <http://www.ted.com/>.
5583
5584       TED does not provide links to the captions, but they can be guessed
5585       from the page. The file tools/bookmarklets.html from the FFmpeg source
5586       tree contains a bookmarklet to expose them.
5587
5588       This demuxer accepts the following option:
5589
5590       start_time
5591           Set the start time of the TED talk, in milliseconds. The default is
5592           15000 (15s). It is used to sync the captions with the downloadable
5593           videos, because they include a 15s intro.
5594
5595       Example: convert the captions to a format most players understand:
5596
5597               ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
5598
5599   vapoursynth
5600       Vapoursynth wrapper.
5601
5602       Due to security concerns, Vapoursynth scripts will not be autodetected
5603       so the input format has to be forced. For ff* CLI tools, add "-f
5604       vapoursynth" before the input "-i yourscript.vpy".
5605
5606       This demuxer accepts the following option:
5607
5608       max_script_size
5609           The demuxer buffers the entire script into memory. Adjust this
5610           value to set the maximum buffer size, which in turn, acts as a
5611           ceiling for the size of scripts that can be read.  Default is 1
5612           MiB.
5613

METADATA

5615       FFmpeg is able to dump metadata from media files into a simple
5616       UTF-8-encoded INI-like text file and then load it back using the
5617       metadata muxer/demuxer.
5618
5619       The file format is as follows:
5620
5621       1.  A file consists of a header and a number of metadata tags divided
5622           into sections, each on its own line.
5623
5624       2.  The header is a ;FFMETADATA string, followed by a version number
5625           (now 1).
5626
5627       3.  Metadata tags are of the form key=value
5628
5629       4.  Immediately after header follows global metadata
5630
5631       5.  After global metadata there may be sections with
5632           per-stream/per-chapter metadata.
5633
5634       6.  A section starts with the section name in uppercase (i.e. STREAM or
5635           CHAPTER) in brackets ([, ]) and ends with next section or end of
5636           file.
5637
5638       7.  At the beginning of a chapter section there may be an optional
5639           timebase to be used for start/end values. It must be in form
5640           TIMEBASE=num/den, where num and den are integers. If the timebase
5641           is missing then start/end times are assumed to be in nanoseconds.
5642
5643           Next a chapter section must contain chapter start and end times in
5644           form START=num, END=num, where num is a positive integer.
5645
5646       8.  Empty lines and lines starting with ; or # are ignored.
5647
5648       9.  Metadata keys or values containing special characters (=, ;, #, \
5649           and a newline) must be escaped with a backslash \.
5650
5651       10. Note that whitespace in metadata (e.g. foo = bar) is considered to
5652           be a part of the tag (in the example above key is foo , value is
5653            bar).
5654
5655       A ffmetadata file might look like this:
5656
5657               ;FFMETADATA1
5658               title=bike\\shed
5659               ;this is a comment
5660               artist=FFmpeg troll team
5661
5662               [CHAPTER]
5663               TIMEBASE=1/1000
5664               START=0
5665               #chapter ends at 0:01:00
5666               END=60000
5667               title=chapter \#1
5668               [STREAM]
5669               title=multi\
5670               line
5671
5672       By using the ffmetadata muxer and demuxer it is possible to extract
5673       metadata from an input file to an ffmetadata file, and then transcode
5674       the file into an output file with the edited ffmetadata file.
5675
5676       Extracting an ffmetadata file with ffmpeg goes as follows:
5677
5678               ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
5679
5680       Reinserting edited metadata information from the FFMETADATAFILE file
5681       can be done as:
5682
5683               ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
5684

PROTOCOL OPTIONS

5686       The libavformat library provides some generic global options, which can
5687       be set on all the protocols. In addition each protocol may support so-
5688       called private options, which are specific for that component.
5689
5690       Options may be set by specifying -option value in the FFmpeg tools, or
5691       by setting the value explicitly in the "AVFormatContext" options or
5692       using the libavutil/opt.h API for programmatic use.
5693
5694       The list of supported options follows:
5695
5696       protocol_whitelist list (input)
5697           Set a ","-separated list of allowed protocols. "ALL" matches all
5698           protocols. Protocols prefixed by "-" are disabled.  All protocols
5699           are allowed by default but protocols used by an another protocol
5700           (nested protocols) are restricted to a per protocol subset.
5701

PROTOCOLS

5703       Protocols are configured elements in FFmpeg that enable access to
5704       resources that require specific protocols.
5705
5706       When you configure your FFmpeg build, all the supported protocols are
5707       enabled by default. You can list all available ones using the configure
5708       option "--list-protocols".
5709
5710       You can disable all the protocols using the configure option
5711       "--disable-protocols", and selectively enable a protocol using the
5712       option "--enable-protocol=PROTOCOL", or you can disable a particular
5713       protocol using the option "--disable-protocol=PROTOCOL".
5714
5715       The option "-protocols" of the ff* tools will display the list of
5716       supported protocols.
5717
5718       All protocols accept the following options:
5719
5720       rw_timeout
5721           Maximum time to wait for (network) read/write operations to
5722           complete, in microseconds.
5723
5724       A description of the currently available protocols follows.
5725
5726   amqp
5727       Advanced Message Queueing Protocol (AMQP) version 0-9-1 is a broker
5728       based publish-subscribe communication protocol.
5729
5730       FFmpeg must be compiled with --enable-librabbitmq to support AMQP. A
5731       separate AMQP broker must also be run. An example open-source AMQP
5732       broker is RabbitMQ.
5733
5734       After starting the broker, an FFmpeg client may stream data to the
5735       broker using the command:
5736
5737               ffmpeg -re -i input -f mpegts amqp://[[user]:[password]@]hostname[:port][/vhost]
5738
5739       Where hostname and port (default is 5672) is the address of the broker.
5740       The client may also set a user/password for authentication. The default
5741       for both fields is "guest". Name of virtual host on broker can be set
5742       with vhost. The default value is "/".
5743
5744       Muliple subscribers may stream from the broker using the command:
5745
5746               ffplay amqp://[[user]:[password]@]hostname[:port][/vhost]
5747
5748       In RabbitMQ all data published to the broker flows through a specific
5749       exchange, and each subscribing client has an assigned queue/buffer.
5750       When a packet arrives at an exchange, it may be copied to a client's
5751       queue depending on the exchange and routing_key fields.
5752
5753       The following options are supported:
5754
5755       exchange
5756           Sets the exchange to use on the broker. RabbitMQ has several
5757           predefined exchanges: "amq.direct" is the default exchange, where
5758           the publisher and subscriber must have a matching routing_key;
5759           "amq.fanout" is the same as a broadcast operation (i.e. the data is
5760           forwarded to all queues on the fanout exchange independent of the
5761           routing_key); and "amq.topic" is similar to "amq.direct", but
5762           allows for more complex pattern matching (refer to the RabbitMQ
5763           documentation).
5764
5765       routing_key
5766           Sets the routing key. The default value is "amqp". The routing key
5767           is used on the "amq.direct" and "amq.topic" exchanges to decide
5768           whether packets are written to the queue of a subscriber.
5769
5770       pkt_size
5771           Maximum size of each packet sent/received to the broker. Default is
5772           131072.  Minimum is 4096 and max is any large value (representable
5773           by an int). When receiving packets, this sets an internal buffer
5774           size in FFmpeg. It should be equal to or greater than the size of
5775           the published packets to the broker. Otherwise the received message
5776           may be truncated causing decoding errors.
5777
5778       connection_timeout
5779           The timeout in seconds during the initial connection to the broker.
5780           The default value is rw_timeout, or 5 seconds if rw_timeout is not
5781           set.
5782
5783       delivery_mode mode
5784           Sets the delivery mode of each message sent to broker.  The
5785           following values are accepted:
5786
5787           persistent
5788               Delivery mode set to "persistent" (2). This is the default
5789               value.  Messages may be written to the broker's disk depending
5790               on its setup.
5791
5792           non-persistent
5793               Delivery mode set to "non-persistent" (1).  Messages will stay
5794               in broker's memory unless the broker is under memory pressure.
5795
5796   async
5797       Asynchronous data filling wrapper for input stream.
5798
5799       Fill data in a background thread, to decouple I/O operation from demux
5800       thread.
5801
5802               async:<URL>
5803               async:http://host/resource
5804               async:cache:http://host/resource
5805
5806   bluray
5807       Read BluRay playlist.
5808
5809       The accepted options are:
5810
5811       angle
5812           BluRay angle
5813
5814       chapter
5815           Start chapter (1...N)
5816
5817       playlist
5818           Playlist to read (BDMV/PLAYLIST/?????.mpls)
5819
5820       Examples:
5821
5822       Read longest playlist from BluRay mounted to /mnt/bluray:
5823
5824               bluray:/mnt/bluray
5825
5826       Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start
5827       from chapter 2:
5828
5829               -playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray
5830
5831   cache
5832       Caching wrapper for input stream.
5833
5834       Cache the input stream to temporary file. It brings seeking capability
5835       to live streams.
5836
5837       The accepted options are:
5838
5839       read_ahead_limit
5840           Amount in bytes that may be read ahead when seeking isn't
5841           supported. Range is -1 to INT_MAX.  -1 for unlimited. Default is
5842           65536.
5843
5844       URL Syntax is
5845
5846               cache:<URL>
5847
5848   concat
5849       Physical concatenation protocol.
5850
5851       Read and seek from many resources in sequence as if they were a unique
5852       resource.
5853
5854       A URL accepted by this protocol has the syntax:
5855
5856               concat:<URL1>|<URL2>|...|<URLN>
5857
5858       where URL1, URL2, ..., URLN are the urls of the resource to be
5859       concatenated, each one possibly specifying a distinct protocol.
5860
5861       For example to read a sequence of files split1.mpeg, split2.mpeg,
5862       split3.mpeg with ffplay use the command:
5863
5864               ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
5865
5866       Note that you may need to escape the character "|" which is special for
5867       many shells.
5868
5869   concatf
5870       Physical concatenation protocol using a line break delimited list of
5871       resources.
5872
5873       Read and seek from many resources in sequence as if they were a unique
5874       resource.
5875
5876       A URL accepted by this protocol has the syntax:
5877
5878               concatf:<URL>
5879
5880       where URL is the url containing a line break delimited list of
5881       resources to be concatenated, each one possibly specifying a distinct
5882       protocol. Special characters must be escaped with backslash or single
5883       quotes. See the "Quoting and escaping" section in the ffmpeg-utils(1)
5884       manual.
5885
5886       For example to read a sequence of files split1.mpeg, split2.mpeg,
5887       split3.mpeg listed in separate lines within a file split.txt with
5888       ffplay use the command:
5889
5890               ffplay concatf:split.txt
5891
5892       Where split.txt contains the lines:
5893
5894               split1.mpeg
5895               split2.mpeg
5896               split3.mpeg
5897
5898   crypto
5899       AES-encrypted stream reading protocol.
5900
5901       The accepted options are:
5902
5903       key Set the AES decryption key binary block from given hexadecimal
5904           representation.
5905
5906       iv  Set the AES decryption initialization vector binary block from
5907           given hexadecimal representation.
5908
5909       Accepted URL formats:
5910
5911               crypto:<URL>
5912               crypto+<URL>
5913
5914   data
5915       Data in-line in the URI. See
5916       <http://en.wikipedia.org/wiki/Data_URI_scheme>.
5917
5918       For example, to convert a GIF file given inline with ffmpeg:
5919
5920               ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
5921
5922   file
5923       File access protocol.
5924
5925       Read from or write to a file.
5926
5927       A file URL can have the form:
5928
5929               file:<filename>
5930
5931       where filename is the path of the file to read.
5932
5933       An URL that does not have a protocol prefix will be assumed to be a
5934       file URL. Depending on the build, an URL that looks like a Windows path
5935       with the drive letter at the beginning will also be assumed to be a
5936       file URL (usually not the case in builds for unix-like systems).
5937
5938       For example to read from a file input.mpeg with ffmpeg use the command:
5939
5940               ffmpeg -i file:input.mpeg output.mpeg
5941
5942       This protocol accepts the following options:
5943
5944       truncate
5945           Truncate existing files on write, if set to 1. A value of 0
5946           prevents truncating. Default value is 1.
5947
5948       blocksize
5949           Set I/O operation maximum block size, in bytes. Default value is
5950           "INT_MAX", which results in not limiting the requested block size.
5951           Setting this value reasonably low improves user termination request
5952           reaction time, which is valuable for files on slow medium.
5953
5954       follow
5955           If set to 1, the protocol will retry reading at the end of the
5956           file, allowing reading files that still are being written. In order
5957           for this to terminate, you either need to use the rw_timeout
5958           option, or use the interrupt callback (for API users).
5959
5960       seekable
5961           Controls if seekability is advertised on the file. 0 means non-
5962           seekable, -1 means auto (seekable for normal files, non-seekable
5963           for named pipes).
5964
5965           Many demuxers handle seekable and non-seekable resources
5966           differently, overriding this might speed up opening certain files
5967           at the cost of losing some features (e.g. accurate seeking).
5968
5969   ftp
5970       FTP (File Transfer Protocol).
5971
5972       Read from or write to remote resources using FTP protocol.
5973
5974       Following syntax is required.
5975
5976               ftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
5977
5978       This protocol accepts the following options.
5979
5980       timeout
5981           Set timeout in microseconds of socket I/O operations used by the
5982           underlying low level operation. By default it is set to -1, which
5983           means that the timeout is not specified.
5984
5985       ftp-user
5986           Set a user to be used for authenticating to the FTP server. This is
5987           overridden by the user in the FTP URL.
5988
5989       ftp-password
5990           Set a password to be used for authenticating to the FTP server.
5991           This is overridden by the password in the FTP URL, or by ftp-
5992           anonymous-password if no user is set.
5993
5994       ftp-anonymous-password
5995           Password used when login as anonymous user. Typically an e-mail
5996           address should be used.
5997
5998       ftp-write-seekable
5999           Control seekability of connection during encoding. If set to 1 the
6000           resource is supposed to be seekable, if set to 0 it is assumed not
6001           to be seekable. Default value is 0.
6002
6003       NOTE: Protocol can be used as output, but it is recommended to not do
6004       it, unless special care is taken (tests, customized server
6005       configuration etc.). Different FTP servers behave in different way
6006       during seek operation. ff* tools may produce incomplete content due to
6007       server limitations.
6008
6009   gopher
6010       Gopher protocol.
6011
6012   gophers
6013       Gophers protocol.
6014
6015       The Gopher protocol with TLS encapsulation.
6016
6017   hls
6018       Read Apple HTTP Live Streaming compliant segmented stream as a uniform
6019       one. The M3U8 playlists describing the segments can be remote HTTP
6020       resources or local files, accessed using the standard file protocol.
6021       The nested protocol is declared by specifying "+proto" after the hls
6022       URI scheme name, where proto is either "file" or "http".
6023
6024               hls+http://host/path/to/remote/resource.m3u8
6025               hls+file://path/to/local/resource.m3u8
6026
6027       Using this protocol is discouraged - the hls demuxer should work just
6028       as well (if not, please report the issues) and is more complete.  To
6029       use the hls demuxer instead, simply use the direct URLs to the m3u8
6030       files.
6031
6032   http
6033       HTTP (Hyper Text Transfer Protocol).
6034
6035       This protocol accepts the following options:
6036
6037       seekable
6038           Control seekability of connection. If set to 1 the resource is
6039           supposed to be seekable, if set to 0 it is assumed not to be
6040           seekable, if set to -1 it will try to autodetect if it is seekable.
6041           Default value is -1.
6042
6043       chunked_post
6044           If set to 1 use chunked Transfer-Encoding for posts, default is 1.
6045
6046       content_type
6047           Set a specific content type for the POST messages or for listen
6048           mode.
6049
6050       http_proxy
6051           set HTTP proxy to tunnel through e.g. http://example.com:1234
6052
6053       headers
6054           Set custom HTTP headers, can override built in default headers. The
6055           value must be a string encoding the headers.
6056
6057       multiple_requests
6058           Use persistent connections if set to 1, default is 0.
6059
6060       post_data
6061           Set custom HTTP post data.
6062
6063       referer
6064           Set the Referer header. Include 'Referer: URL' header in HTTP
6065           request.
6066
6067       user_agent
6068           Override the User-Agent header. If not specified the protocol will
6069           use a string describing the libavformat build. ("Lavf/<version>")
6070
6071       reconnect_at_eof
6072           If set then eof is treated like an error and causes reconnection,
6073           this is useful for live / endless streams.
6074
6075       reconnect_streamed
6076           If set then even streamed/non seekable streams will be reconnected
6077           on errors.
6078
6079       reconnect_on_network_error
6080           Reconnect automatically in case of TCP/TLS errors during connect.
6081
6082       reconnect_on_http_error
6083           A comma separated list of HTTP status codes to reconnect on. The
6084           list can include specific status codes (e.g. '503') or the strings
6085           '4xx' / '5xx'.
6086
6087       reconnect_delay_max
6088           Sets the maximum delay in seconds after which to give up
6089           reconnecting
6090
6091       mime_type
6092           Export the MIME type.
6093
6094       http_version
6095           Exports the HTTP response version number. Usually "1.0" or "1.1".
6096
6097       icy If set to 1 request ICY (SHOUTcast) metadata from the server. If
6098           the server supports this, the metadata has to be retrieved by the
6099           application by reading the icy_metadata_headers and
6100           icy_metadata_packet options.  The default is 1.
6101
6102       icy_metadata_headers
6103           If the server supports ICY metadata, this contains the ICY-specific
6104           HTTP reply headers, separated by newline characters.
6105
6106       icy_metadata_packet
6107           If the server supports ICY metadata, and icy was set to 1, this
6108           contains the last non-empty metadata packet sent by the server. It
6109           should be polled in regular intervals by applications interested in
6110           mid-stream metadata updates.
6111
6112       cookies
6113           Set the cookies to be sent in future requests. The format of each
6114           cookie is the same as the value of a Set-Cookie HTTP response
6115           field. Multiple cookies can be delimited by a newline character.
6116
6117       offset
6118           Set initial byte offset.
6119
6120       end_offset
6121           Try to limit the request to bytes preceding this offset.
6122
6123       method
6124           When used as a client option it sets the HTTP method for the
6125           request.
6126
6127           When used as a server option it sets the HTTP method that is going
6128           to be expected from the client(s).  If the expected and the
6129           received HTTP method do not match the client will be given a Bad
6130           Request response.  When unset the HTTP method is not checked for
6131           now. This will be replaced by autodetection in the future.
6132
6133       listen
6134           If set to 1 enables experimental HTTP server. This can be used to
6135           send data when used as an output option, or read data from a client
6136           with HTTP POST when used as an input option.  If set to 2 enables
6137           experimental multi-client HTTP server. This is not yet implemented
6138           in ffmpeg.c and thus must not be used as a command line option.
6139
6140                   # Server side (sending):
6141                   ffmpeg -i somefile.ogg -c copy -listen 1 -f ogg http://<server>:<port>
6142
6143                   # Client side (receiving):
6144                   ffmpeg -i http://<server>:<port> -c copy somefile.ogg
6145
6146                   # Client can also be done with wget:
6147                   wget http://<server>:<port> -O somefile.ogg
6148
6149                   # Server side (receiving):
6150                   ffmpeg -listen 1 -i http://<server>:<port> -c copy somefile.ogg
6151
6152                   # Client side (sending):
6153                   ffmpeg -i somefile.ogg -chunked_post 0 -c copy -f ogg http://<server>:<port>
6154
6155                   # Client can also be done with wget:
6156                   wget --post-file=somefile.ogg http://<server>:<port>
6157
6158       send_expect_100
6159           Send an Expect: 100-continue header for POST. If set to 1 it will
6160           send, if set to 0 it won't, if set to -1 it will try to send if it
6161           is applicable. Default value is -1.
6162
6163       auth_type
6164           Set HTTP authentication type. No option for Digest, since this
6165           method requires getting nonce parameters from the server first and
6166           can't be used straight away like Basic.
6167
6168           none
6169               Choose the HTTP authentication type automatically. This is the
6170               default.
6171
6172           basic
6173               Choose the HTTP basic authentication.
6174
6175               Basic authentication sends a Base64-encoded string that
6176               contains a user name and password for the client. Base64 is not
6177               a form of encryption and should be considered the same as
6178               sending the user name and password in clear text (Base64 is a
6179               reversible encoding).  If a resource needs to be protected,
6180               strongly consider using an authentication scheme other than
6181               basic authentication. HTTPS/TLS should be used with basic
6182               authentication.  Without these additional security
6183               enhancements, basic authentication should not be used to
6184               protect sensitive or valuable information.
6185
6186       HTTP Cookies
6187
6188       Some HTTP requests will be denied unless cookie values are passed in
6189       with the request. The cookies option allows these cookies to be
6190       specified. At the very least, each cookie must specify a value along
6191       with a path and domain.  HTTP requests that match both the domain and
6192       path will automatically include the cookie value in the HTTP Cookie
6193       header field. Multiple cookies can be delimited by a newline.
6194
6195       The required syntax to play a stream specifying a cookie is:
6196
6197               ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
6198
6199   Icecast
6200       Icecast protocol (stream to Icecast servers)
6201
6202       This protocol accepts the following options:
6203
6204       ice_genre
6205           Set the stream genre.
6206
6207       ice_name
6208           Set the stream name.
6209
6210       ice_description
6211           Set the stream description.
6212
6213       ice_url
6214           Set the stream website URL.
6215
6216       ice_public
6217           Set if the stream should be public.  The default is 0 (not public).
6218
6219       user_agent
6220           Override the User-Agent header. If not specified a string of the
6221           form "Lavf/<version>" will be used.
6222
6223       password
6224           Set the Icecast mountpoint password.
6225
6226       content_type
6227           Set the stream content type. This must be set if it is different
6228           from audio/mpeg.
6229
6230       legacy_icecast
6231           This enables support for Icecast versions < 2.4.0, that do not
6232           support the HTTP PUT method but the SOURCE method.
6233
6234       tls Establish a TLS (HTTPS) connection to Icecast.
6235
6236               icecast://[<username>[:<password>]@]<server>:<port>/<mountpoint>
6237
6238   ipfs
6239       InterPlanetary File System (IPFS) protocol support. One can access
6240       files stored on the IPFS network through so-called gateways. These are
6241       http(s) endpoints.  This protocol wraps the IPFS native protocols
6242       (ipfs:// and ipns://) to be sent to such a gateway. Users can (and
6243       should) host their own node which means this protocol will use one's
6244       local gateway to access files on the IPFS network.
6245
6246       If a user doesn't have a node of their own then the public gateway
6247       "https://dweb.link" is used by default.
6248
6249       This protocol accepts the following options:
6250
6251       gateway
6252           Defines the gateway to use. When not set, the protocol will first
6253           try locating the local gateway by looking at $IPFS_GATEWAY,
6254           $IPFS_PATH and "$HOME/.ipfs/", in that order. If that fails
6255           "https://dweb.link" will be used.
6256
6257       One can use this protocol in 2 ways. Using IPFS:
6258
6259               ffplay ipfs://QmbGtJg23skhvFmu9mJiePVByhfzu5rwo74MEkVDYAmF5T
6260
6261       Or the IPNS protocol (IPNS is mutable IPFS):
6262
6263               ffplay ipns://QmbGtJg23skhvFmu9mJiePVByhfzu5rwo74MEkVDYAmF5T
6264
6265   mmst
6266       MMS (Microsoft Media Server) protocol over TCP.
6267
6268   mmsh
6269       MMS (Microsoft Media Server) protocol over HTTP.
6270
6271       The required syntax is:
6272
6273               mmsh://<server>[:<port>][/<app>][/<playpath>]
6274
6275   md5
6276       MD5 output protocol.
6277
6278       Computes the MD5 hash of the data to be written, and on close writes
6279       this to the designated output or stdout if none is specified. It can be
6280       used to test muxers without writing an actual file.
6281
6282       Some examples follow.
6283
6284               # Write the MD5 hash of the encoded AVI file to the file output.avi.md5.
6285               ffmpeg -i input.flv -f avi -y md5:output.avi.md5
6286
6287               # Write the MD5 hash of the encoded AVI file to stdout.
6288               ffmpeg -i input.flv -f avi -y md5:
6289
6290       Note that some formats (typically MOV) require the output protocol to
6291       be seekable, so they will fail with the MD5 output protocol.
6292
6293   pipe
6294       UNIX pipe access protocol.
6295
6296       Read and write from UNIX pipes.
6297
6298       The accepted syntax is:
6299
6300               pipe:[<number>]
6301
6302       number is the number corresponding to the file descriptor of the pipe
6303       (e.g. 0 for stdin, 1 for stdout, 2 for stderr).  If number is not
6304       specified, by default the stdout file descriptor will be used for
6305       writing, stdin for reading.
6306
6307       For example to read from stdin with ffmpeg:
6308
6309               cat test.wav | ffmpeg -i pipe:0
6310               # ...this is the same as...
6311               cat test.wav | ffmpeg -i pipe:
6312
6313       For writing to stdout with ffmpeg:
6314
6315               ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi
6316               # ...this is the same as...
6317               ffmpeg -i test.wav -f avi pipe: | cat > test.avi
6318
6319       This protocol accepts the following options:
6320
6321       blocksize
6322           Set I/O operation maximum block size, in bytes. Default value is
6323           "INT_MAX", which results in not limiting the requested block size.
6324           Setting this value reasonably low improves user termination request
6325           reaction time, which is valuable if data transmission is slow.
6326
6327       Note that some formats (typically MOV), require the output protocol to
6328       be seekable, so they will fail with the pipe output protocol.
6329
6330   prompeg
6331       Pro-MPEG Code of Practice #3 Release 2 FEC protocol.
6332
6333       The Pro-MPEG CoP#3 FEC is a 2D parity-check forward error correction
6334       mechanism for MPEG-2 Transport Streams sent over RTP.
6335
6336       This protocol must be used in conjunction with the "rtp_mpegts" muxer
6337       and the "rtp" protocol.
6338
6339       The required syntax is:
6340
6341               -f rtp_mpegts -fec prompeg=<option>=<val>... rtp://<hostname>:<port>
6342
6343       The destination UDP ports are "port + 2" for the column FEC stream and
6344       "port + 4" for the row FEC stream.
6345
6346       This protocol accepts the following options:
6347
6348       l=n The number of columns (4-20, LxD <= 100)
6349
6350       d=n The number of rows (4-20, LxD <= 100)
6351
6352       Example usage:
6353
6354               -f rtp_mpegts -fec prompeg=l=8:d=4 rtp://<hostname>:<port>
6355
6356   rist
6357       Reliable Internet Streaming Transport protocol
6358
6359       The accepted options are:
6360
6361       rist_profile
6362           Supported values:
6363
6364           simple
6365           main
6366               This one is default.
6367
6368           advanced
6369       buffer_size
6370           Set internal RIST buffer size in milliseconds for retransmission of
6371           data.  Default value is 0 which means the librist default (1 sec).
6372           Maximum value is 30 seconds.
6373
6374       fifo_size
6375           Size of the librist receiver output fifo in number of packets. This
6376           must be a power of 2.  Defaults to 8192 (vs the librist default of
6377           1024).
6378
6379       overrun_nonfatal=1|0
6380           Survive in case of librist fifo buffer overrun. Default value is 0.
6381
6382       pkt_size
6383           Set maximum packet size for sending data. 1316 by default.
6384
6385       log_level
6386           Set loglevel for RIST logging messages. You only need to set this
6387           if you explicitly want to enable debug level messages or packet
6388           loss simulation, otherwise the regular loglevel is respected.
6389
6390       secret
6391           Set override of encryption secret, by default is unset.
6392
6393       encryption
6394           Set encryption type, by default is disabled.  Acceptable values are
6395           128 and 256.
6396
6397   rtmp
6398       Real-Time Messaging Protocol.
6399
6400       The Real-Time Messaging Protocol (RTMP) is used for streaming
6401       multimedia content across a TCP/IP network.
6402
6403       The required syntax is:
6404
6405               rtmp://[<username>:<password>@]<server>[:<port>][/<app>][/<instance>][/<playpath>]
6406
6407       The accepted parameters are:
6408
6409       username
6410           An optional username (mostly for publishing).
6411
6412       password
6413           An optional password (mostly for publishing).
6414
6415       server
6416           The address of the RTMP server.
6417
6418       port
6419           The number of the TCP port to use (by default is 1935).
6420
6421       app It is the name of the application to access. It usually corresponds
6422           to the path where the application is installed on the RTMP server
6423           (e.g. /ondemand/, /flash/live/, etc.). You can override the value
6424           parsed from the URI through the "rtmp_app" option, too.
6425
6426       playpath
6427           It is the path or name of the resource to play with reference to
6428           the application specified in app, may be prefixed by "mp4:". You
6429           can override the value parsed from the URI through the
6430           "rtmp_playpath" option, too.
6431
6432       listen
6433           Act as a server, listening for an incoming connection.
6434
6435       timeout
6436           Maximum time to wait for the incoming connection. Implies listen.
6437
6438       Additionally, the following parameters can be set via command line
6439       options (or in code via "AVOption"s):
6440
6441       rtmp_app
6442           Name of application to connect on the RTMP server. This option
6443           overrides the parameter specified in the URI.
6444
6445       rtmp_buffer
6446           Set the client buffer time in milliseconds. The default is 3000.
6447
6448       rtmp_conn
6449           Extra arbitrary AMF connection parameters, parsed from a string,
6450           e.g. like "B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0".  Each
6451           value is prefixed by a single character denoting the type, B for
6452           Boolean, N for number, S for string, O for object, or Z for null,
6453           followed by a colon. For Booleans the data must be either 0 or 1
6454           for FALSE or TRUE, respectively.  Likewise for Objects the data
6455           must be 0 or 1 to end or begin an object, respectively. Data items
6456           in subobjects may be named, by prefixing the type with 'N' and
6457           specifying the name before the value (i.e. "NB:myFlag:1"). This
6458           option may be used multiple times to construct arbitrary AMF
6459           sequences.
6460
6461       rtmp_flashver
6462           Version of the Flash plugin used to run the SWF player. The default
6463           is LNX 9,0,124,2. (When publishing, the default is FMLE/3.0
6464           (compatible; <libavformat version>).)
6465
6466       rtmp_flush_interval
6467           Number of packets flushed in the same request (RTMPT only). The
6468           default is 10.
6469
6470       rtmp_live
6471           Specify that the media is a live stream. No resuming or seeking in
6472           live streams is possible. The default value is "any", which means
6473           the subscriber first tries to play the live stream specified in the
6474           playpath. If a live stream of that name is not found, it plays the
6475           recorded stream. The other possible values are "live" and
6476           "recorded".
6477
6478       rtmp_pageurl
6479           URL of the web page in which the media was embedded. By default no
6480           value will be sent.
6481
6482       rtmp_playpath
6483           Stream identifier to play or to publish. This option overrides the
6484           parameter specified in the URI.
6485
6486       rtmp_subscribe
6487           Name of live stream to subscribe to. By default no value will be
6488           sent.  It is only sent if the option is specified or if rtmp_live
6489           is set to live.
6490
6491       rtmp_swfhash
6492           SHA256 hash of the decompressed SWF file (32 bytes).
6493
6494       rtmp_swfsize
6495           Size of the decompressed SWF file, required for SWFVerification.
6496
6497       rtmp_swfurl
6498           URL of the SWF player for the media. By default no value will be
6499           sent.
6500
6501       rtmp_swfverify
6502           URL to player swf file, compute hash/size automatically.
6503
6504       rtmp_tcurl
6505           URL of the target stream. Defaults to proto://host[:port]/app.
6506
6507       tcp_nodelay=1|0
6508           Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
6509
6510           Remark: Writing to the socket is currently not optimized to
6511           minimize system calls and reduces the efficiency / effect of
6512           TCP_NODELAY.
6513
6514       For example to read with ffplay a multimedia resource named "sample"
6515       from the application "vod" from an RTMP server "myserver":
6516
6517               ffplay rtmp://myserver/vod/sample
6518
6519       To publish to a password protected server, passing the playpath and app
6520       names separately:
6521
6522               ffmpeg -re -i <input> -f flv -rtmp_playpath some/long/path -rtmp_app long/app/name rtmp://username:password@myserver/
6523
6524   rtmpe
6525       Encrypted Real-Time Messaging Protocol.
6526
6527       The Encrypted Real-Time Messaging Protocol (RTMPE) is used for
6528       streaming multimedia content within standard cryptographic primitives,
6529       consisting of Diffie-Hellman key exchange and HMACSHA256, generating a
6530       pair of RC4 keys.
6531
6532   rtmps
6533       Real-Time Messaging Protocol over a secure SSL connection.
6534
6535       The Real-Time Messaging Protocol (RTMPS) is used for streaming
6536       multimedia content across an encrypted connection.
6537
6538   rtmpt
6539       Real-Time Messaging Protocol tunneled through HTTP.
6540
6541       The Real-Time Messaging Protocol tunneled through HTTP (RTMPT) is used
6542       for streaming multimedia content within HTTP requests to traverse
6543       firewalls.
6544
6545   rtmpte
6546       Encrypted Real-Time Messaging Protocol tunneled through HTTP.
6547
6548       The Encrypted Real-Time Messaging Protocol tunneled through HTTP
6549       (RTMPTE) is used for streaming multimedia content within HTTP requests
6550       to traverse firewalls.
6551
6552   rtmpts
6553       Real-Time Messaging Protocol tunneled through HTTPS.
6554
6555       The Real-Time Messaging Protocol tunneled through HTTPS (RTMPTS) is
6556       used for streaming multimedia content within HTTPS requests to traverse
6557       firewalls.
6558
6559   libsmbclient
6560       libsmbclient permits one to manipulate CIFS/SMB network resources.
6561
6562       Following syntax is required.
6563
6564               smb://[[domain:]user[:password@]]server[/share[/path[/file]]]
6565
6566       This protocol accepts the following options.
6567
6568       timeout
6569           Set timeout in milliseconds of socket I/O operations used by the
6570           underlying low level operation. By default it is set to -1, which
6571           means that the timeout is not specified.
6572
6573       truncate
6574           Truncate existing files on write, if set to 1. A value of 0
6575           prevents truncating. Default value is 1.
6576
6577       workgroup
6578           Set the workgroup used for making connections. By default workgroup
6579           is not specified.
6580
6581       For more information see: <http://www.samba.org/>.
6582
6583   libssh
6584       Secure File Transfer Protocol via libssh
6585
6586       Read from or write to remote resources using SFTP protocol.
6587
6588       Following syntax is required.
6589
6590               sftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
6591
6592       This protocol accepts the following options.
6593
6594       timeout
6595           Set timeout of socket I/O operations used by the underlying low
6596           level operation. By default it is set to -1, which means that the
6597           timeout is not specified.
6598
6599       truncate
6600           Truncate existing files on write, if set to 1. A value of 0
6601           prevents truncating. Default value is 1.
6602
6603       private_key
6604           Specify the path of the file containing private key to use during
6605           authorization.  By default libssh searches for keys in the ~/.ssh/
6606           directory.
6607
6608       Example: Play a file stored on remote server.
6609
6610               ffplay sftp://user:password@server_address:22/home/user/resource.mpeg
6611
6612   librtmp rtmp, rtmpe, rtmps, rtmpt, rtmpte
6613       Real-Time Messaging Protocol and its variants supported through
6614       librtmp.
6615
6616       Requires the presence of the librtmp headers and library during
6617       configuration. You need to explicitly configure the build with
6618       "--enable-librtmp". If enabled this will replace the native RTMP
6619       protocol.
6620
6621       This protocol provides most client functions and a few server functions
6622       needed to support RTMP, RTMP tunneled in HTTP (RTMPT), encrypted RTMP
6623       (RTMPE), RTMP over SSL/TLS (RTMPS) and tunneled variants of these
6624       encrypted types (RTMPTE, RTMPTS).
6625
6626       The required syntax is:
6627
6628               <rtmp_proto>://<server>[:<port>][/<app>][/<playpath>] <options>
6629
6630       where rtmp_proto is one of the strings "rtmp", "rtmpt", "rtmpe",
6631       "rtmps", "rtmpte", "rtmpts" corresponding to each RTMP variant, and
6632       server, port, app and playpath have the same meaning as specified for
6633       the RTMP native protocol.  options contains a list of space-separated
6634       options of the form key=val.
6635
6636       See the librtmp manual page (man 3 librtmp) for more information.
6637
6638       For example, to stream a file in real-time to an RTMP server using
6639       ffmpeg:
6640
6641               ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
6642
6643       To play the same stream using ffplay:
6644
6645               ffplay "rtmp://myserver/live/mystream live=1"
6646
6647   rtp
6648       Real-time Transport Protocol.
6649
6650       The required syntax for an RTP URL is:
6651       rtp://hostname[:port][?option=val...]
6652
6653       port specifies the RTP port to use.
6654
6655       The following URL options are supported:
6656
6657       ttl=n
6658           Set the TTL (Time-To-Live) value (for multicast only).
6659
6660       rtcpport=n
6661           Set the remote RTCP port to n.
6662
6663       localrtpport=n
6664           Set the local RTP port to n.
6665
6666       localrtcpport=n'
6667           Set the local RTCP port to n.
6668
6669       pkt_size=n
6670           Set max packet size (in bytes) to n.
6671
6672       buffer_size=size
6673           Set the maximum UDP socket buffer size in bytes.
6674
6675       connect=0|1
6676           Do a "connect()" on the UDP socket (if set to 1) or not (if set to
6677           0).
6678
6679       sources=ip[,ip]
6680           List allowed source IP addresses.
6681
6682       block=ip[,ip]
6683           List disallowed (blocked) source IP addresses.
6684
6685       write_to_source=0|1
6686           Send packets to the source address of the latest received packet
6687           (if set to 1) or to a default remote address (if set to 0).
6688
6689       localport=n
6690           Set the local RTP port to n.
6691
6692       localaddr=addr
6693           Local IP address of a network interface used for sending packets or
6694           joining multicast groups.
6695
6696       timeout=n
6697           Set timeout (in microseconds) of socket I/O operations to n.
6698
6699           This is a deprecated option. Instead, localrtpport should be used.
6700
6701       Important notes:
6702
6703       1.  If rtcpport is not set the RTCP port will be set to the RTP port
6704           value plus 1.
6705
6706       2.  If localrtpport (the local RTP port) is not set any available port
6707           will be used for the local RTP and RTCP ports.
6708
6709       3.  If localrtcpport (the local RTCP port) is not set it will be set to
6710           the local RTP port value plus 1.
6711
6712   rtsp
6713       Real-Time Streaming Protocol.
6714
6715       RTSP is not technically a protocol handler in libavformat, it is a
6716       demuxer and muxer. The demuxer supports both normal RTSP (with data
6717       transferred over RTP; this is used by e.g. Apple and Microsoft) and
6718       Real-RTSP (with data transferred over RDT).
6719
6720       The muxer can be used to send a stream using RTSP ANNOUNCE to a server
6721       supporting it (currently Darwin Streaming Server and Mischa
6722       Spiegelmock's <https://github.com/revmischa/rtsp-server>).
6723
6724       The required syntax for a RTSP url is:
6725
6726               rtsp://<hostname>[:<port>]/<path>
6727
6728       Options can be set on the ffmpeg/ffplay command line, or set in code
6729       via "AVOption"s or in "avformat_open_input".
6730
6731       The following options are supported.
6732
6733       initial_pause
6734           Do not start playing the stream immediately if set to 1. Default
6735           value is 0.
6736
6737       rtsp_transport
6738           Set RTSP transport protocols.
6739
6740           It accepts the following values:
6741
6742           udp Use UDP as lower transport protocol.
6743
6744           tcp Use TCP (interleaving within the RTSP control channel) as lower
6745               transport protocol.
6746
6747           udp_multicast
6748               Use UDP multicast as lower transport protocol.
6749
6750           http
6751               Use HTTP tunneling as lower transport protocol, which is useful
6752               for passing proxies.
6753
6754           Multiple lower transport protocols may be specified, in that case
6755           they are tried one at a time (if the setup of one fails, the next
6756           one is tried).  For the muxer, only the tcp and udp options are
6757           supported.
6758
6759       rtsp_flags
6760           Set RTSP flags.
6761
6762           The following values are accepted:
6763
6764           filter_src
6765               Accept packets only from negotiated peer address and port.
6766
6767           listen
6768               Act as a server, listening for an incoming connection.
6769
6770           prefer_tcp
6771               Try TCP for RTP transport first, if TCP is available as RTSP
6772               RTP transport.
6773
6774           Default value is none.
6775
6776       allowed_media_types
6777           Set media types to accept from the server.
6778
6779           The following flags are accepted:
6780
6781           video
6782           audio
6783           data
6784
6785           By default it accepts all media types.
6786
6787       min_port
6788           Set minimum local UDP port. Default value is 5000.
6789
6790       max_port
6791           Set maximum local UDP port. Default value is 65000.
6792
6793       listen_timeout
6794           Set maximum timeout (in seconds) to establish an initial
6795           connection. Setting listen_timeout > 0 sets rtsp_flags to listen.
6796           Default is -1 which means an infinite timeout when listen mode is
6797           set.
6798
6799       reorder_queue_size
6800           Set number of packets to buffer for handling of reordered packets.
6801
6802       timeout
6803           Set socket TCP I/O timeout in microseconds.
6804
6805       user_agent
6806           Override User-Agent header. If not specified, it defaults to the
6807           libavformat identifier string.
6808
6809       When receiving data over UDP, the demuxer tries to reorder received
6810       packets (since they may arrive out of order, or packets may get lost
6811       totally). This can be disabled by setting the maximum demuxing delay to
6812       zero (via the "max_delay" field of AVFormatContext).
6813
6814       When watching multi-bitrate Real-RTSP streams with ffplay, the streams
6815       to display can be chosen with "-vst" n and "-ast" n for video and audio
6816       respectively, and can be switched on the fly by pressing "v" and "a".
6817
6818       Examples
6819
6820       The following examples all make use of the ffplay and ffmpeg tools.
6821
6822       •   Watch a stream over UDP, with a max reordering delay of 0.5
6823           seconds:
6824
6825                   ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
6826
6827       •   Watch a stream tunneled over HTTP:
6828
6829                   ffplay -rtsp_transport http rtsp://server/video.mp4
6830
6831       •   Send a stream in realtime to a RTSP server, for others to watch:
6832
6833                   ffmpeg -re -i <input> -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
6834
6835       •   Receive a stream in realtime:
6836
6837                   ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp <output>
6838
6839   sap
6840       Session Announcement Protocol (RFC 2974). This is not technically a
6841       protocol handler in libavformat, it is a muxer and demuxer.  It is used
6842       for signalling of RTP streams, by announcing the SDP for the streams
6843       regularly on a separate port.
6844
6845       Muxer
6846
6847       The syntax for a SAP url given to the muxer is:
6848
6849               sap://<destination>[:<port>][?<options>]
6850
6851       The RTP packets are sent to destination on port port, or to port 5004
6852       if no port is specified.  options is a "&"-separated list. The
6853       following options are supported:
6854
6855       announce_addr=address
6856           Specify the destination IP address for sending the announcements
6857           to.  If omitted, the announcements are sent to the commonly used
6858           SAP announcement multicast address 224.2.127.254 (sap.mcast.net),
6859           or ff0e::2:7ffe if destination is an IPv6 address.
6860
6861       announce_port=port
6862           Specify the port to send the announcements on, defaults to 9875 if
6863           not specified.
6864
6865       ttl=ttl
6866           Specify the time to live value for the announcements and RTP
6867           packets, defaults to 255.
6868
6869       same_port=0|1
6870           If set to 1, send all RTP streams on the same port pair. If zero
6871           (the default), all streams are sent on unique ports, with each
6872           stream on a port 2 numbers higher than the previous.  VLC/Live555
6873           requires this to be set to 1, to be able to receive the stream.
6874           The RTP stack in libavformat for receiving requires all streams to
6875           be sent on unique ports.
6876
6877       Example command lines follow.
6878
6879       To broadcast a stream on the local subnet, for watching in VLC:
6880
6881               ffmpeg -re -i <input> -f sap sap://224.0.0.255?same_port=1
6882
6883       Similarly, for watching in ffplay:
6884
6885               ffmpeg -re -i <input> -f sap sap://224.0.0.255
6886
6887       And for watching in ffplay, over IPv6:
6888
6889               ffmpeg -re -i <input> -f sap sap://[ff0e::1:2:3:4]
6890
6891       Demuxer
6892
6893       The syntax for a SAP url given to the demuxer is:
6894
6895               sap://[<address>][:<port>]
6896
6897       address is the multicast address to listen for announcements on, if
6898       omitted, the default 224.2.127.254 (sap.mcast.net) is used. port is the
6899       port that is listened on, 9875 if omitted.
6900
6901       The demuxers listens for announcements on the given address and port.
6902       Once an announcement is received, it tries to receive that particular
6903       stream.
6904
6905       Example command lines follow.
6906
6907       To play back the first stream announced on the normal SAP multicast
6908       address:
6909
6910               ffplay sap://
6911
6912       To play back the first stream announced on one the default IPv6 SAP
6913       multicast address:
6914
6915               ffplay sap://[ff0e::2:7ffe]
6916
6917   sctp
6918       Stream Control Transmission Protocol.
6919
6920       The accepted URL syntax is:
6921
6922               sctp://<host>:<port>[?<options>]
6923
6924       The protocol accepts the following options:
6925
6926       listen
6927           If set to any value, listen for an incoming connection. Outgoing
6928           connection is done by default.
6929
6930       max_streams
6931           Set the maximum number of streams. By default no limit is set.
6932
6933   srt
6934       Haivision Secure Reliable Transport Protocol via libsrt.
6935
6936       The supported syntax for a SRT URL is:
6937
6938               srt://<hostname>:<port>[?<options>]
6939
6940       options contains a list of &-separated options of the form key=val.
6941
6942       or
6943
6944               <options> srt://<hostname>:<port>
6945
6946       options contains a list of '-key val' options.
6947
6948       This protocol accepts the following options.
6949
6950       connect_timeout=milliseconds
6951           Connection timeout; SRT cannot connect for RTT > 1500 msec (2
6952           handshake exchanges) with the default connect timeout of 3 seconds.
6953           This option applies to the caller and rendezvous connection modes.
6954           The connect timeout is 10 times the value set for the rendezvous
6955           mode (which can be used as a workaround for this connection problem
6956           with earlier versions).
6957
6958       ffs=bytes
6959           Flight Flag Size (Window Size), in bytes. FFS is actually an
6960           internal parameter and you should set it to not less than
6961           recv_buffer_size and mss. The default value is relatively large,
6962           therefore unless you set a very large receiver buffer, you do not
6963           need to change this option. Default value is 25600.
6964
6965       inputbw=bytes/seconds
6966           Sender nominal input rate, in bytes per seconds. Used along with
6967           oheadbw, when maxbw is set to relative (0), to calculate maximum
6968           sending rate when recovery packets are sent along with the main
6969           media stream: inputbw * (100 + oheadbw) / 100 if inputbw is not set
6970           while maxbw is set to relative (0), the actual input rate is
6971           evaluated inside the library. Default value is 0.
6972
6973       iptos=tos
6974           IP Type of Service. Applies to sender only. Default value is 0xB8.
6975
6976       ipttl=ttl
6977           IP Time To Live. Applies to sender only. Default value is 64.
6978
6979       latency=microseconds
6980           Timestamp-based Packet Delivery Delay.  Used to absorb bursts of
6981           missed packet retransmissions.  This flag sets both rcvlatency and
6982           peerlatency to the same value. Note that prior to version 1.3.0
6983           this is the only flag to set the latency, however this is
6984           effectively equivalent to setting peerlatency, when side is sender
6985           and rcvlatency when side is receiver, and the bidirectional stream
6986           sending is not supported.
6987
6988       listen_timeout=microseconds
6989           Set socket listen timeout.
6990
6991       maxbw=bytes/seconds
6992           Maximum sending bandwidth, in bytes per seconds.  -1 infinite
6993           (CSRTCC limit is 30mbps) 0 relative to input rate (see inputbw) >0
6994           absolute limit value Default value is 0 (relative)
6995
6996       mode=caller|listener|rendezvous
6997           Connection mode.  caller opens client connection.  listener starts
6998           server to listen for incoming connections.  rendezvous use Rendez-
6999           Vous connection mode.  Default value is caller.
7000
7001       mss=bytes
7002           Maximum Segment Size, in bytes. Used for buffer allocation and rate
7003           calculation using a packet counter assuming fully filled packets.
7004           The smallest MSS between the peers is used. This is 1500 by default
7005           in the overall internet.  This is the maximum size of the UDP
7006           packet and can be only decreased, unless you have some unusual
7007           dedicated network settings. Default value is 1500.
7008
7009       nakreport=1|0
7010           If set to 1, Receiver will send `UMSG_LOSSREPORT` messages
7011           periodically until a lost packet is retransmitted or intentionally
7012           dropped. Default value is 1.
7013
7014       oheadbw=percents
7015           Recovery bandwidth overhead above input rate, in percents.  See
7016           inputbw. Default value is 25%.
7017
7018       passphrase=string
7019           HaiCrypt Encryption/Decryption Passphrase string, length from 10 to
7020           79 characters. The passphrase is the shared secret between the
7021           sender and the receiver. It is used to generate the Key Encrypting
7022           Key using PBKDF2 (Password-Based Key Derivation Function). It is
7023           used only if pbkeylen is non-zero. It is used on the receiver only
7024           if the received data is encrypted.  The configured passphrase
7025           cannot be recovered (write-only).
7026
7027       enforced_encryption=1|0
7028           If true, both connection parties must have the same password set
7029           (including empty, that is, with no encryption). If the password
7030           doesn't match or only one side is unencrypted, the connection is
7031           rejected. Default is true.
7032
7033       kmrefreshrate=packets
7034           The number of packets to be transmitted after which the encryption
7035           key is switched to a new key. Default is -1.  -1 means auto
7036           (0x1000000 in srt library). The range for this option is integers
7037           in the 0 - "INT_MAX".
7038
7039       kmpreannounce=packets
7040           The interval between when a new encryption key is sent and when
7041           switchover occurs. This value also applies to the subsequent
7042           interval between when switchover occurs and when the old encryption
7043           key is decommissioned. Default is -1.  -1 means auto (0x1000 in srt
7044           library). The range for this option is integers in the 0 -
7045           "INT_MAX".
7046
7047       snddropdelay=microseconds
7048           The sender's extra delay before dropping packets. This delay is
7049           added to the default drop delay time interval value.
7050
7051           Special value -1: Do not drop packets on the sender at all.
7052
7053       payload_size=bytes
7054           Sets the maximum declared size of a packet transferred during the
7055           single call to the sending function in Live mode. Use 0 if this
7056           value isn't used (which is default in file mode).  Default is -1
7057           (automatic), which typically means MPEG-TS; if you are going to use
7058           SRT to send any different kind of payload, such as, for example,
7059           wrapping a live stream in very small frames, then you can use a
7060           bigger maximum frame size, though not greater than 1456 bytes.
7061
7062       pkt_size=bytes
7063           Alias for payload_size.
7064
7065       peerlatency=microseconds
7066           The latency value (as described in rcvlatency) that is set by the
7067           sender side as a minimum value for the receiver.
7068
7069       pbkeylen=bytes
7070           Sender encryption key length, in bytes.  Only can be set to 0, 16,
7071           24 and 32.  Enable sender encryption if not 0.  Not required on
7072           receiver (set to 0), key size obtained from sender in HaiCrypt
7073           handshake.  Default value is 0.
7074
7075       rcvlatency=microseconds
7076           The time that should elapse since the moment when the packet was
7077           sent and the moment when it's delivered to the receiver application
7078           in the receiving function.  This time should be a buffer time large
7079           enough to cover the time spent for sending, unexpectedly extended
7080           RTT time, and the time needed to retransmit the lost UDP packet.
7081           The effective latency value will be the maximum of this options'
7082           value and the value of peerlatency set by the peer side. Before
7083           version 1.3.0 this option is only available as latency.
7084
7085       recv_buffer_size=bytes
7086           Set UDP receive buffer size, expressed in bytes.
7087
7088       send_buffer_size=bytes
7089           Set UDP send buffer size, expressed in bytes.
7090
7091       timeout=microseconds
7092           Set raise error timeouts for read, write and connect operations.
7093           Note that the SRT library has internal timeouts which can be
7094           controlled separately, the value set here is only a cap on those.
7095
7096       tlpktdrop=1|0
7097           Too-late Packet Drop. When enabled on receiver, it skips missing
7098           packets that have not been delivered in time and delivers the
7099           following packets to the application when their time-to-play has
7100           come. It also sends a fake ACK to the sender. When enabled on
7101           sender and enabled on the receiving peer, the sender drops the
7102           older packets that have no chance of being delivered in time. It
7103           was automatically enabled in the sender if the receiver supports
7104           it.
7105
7106       sndbuf=bytes
7107           Set send buffer size, expressed in bytes.
7108
7109       rcvbuf=bytes
7110           Set receive buffer size, expressed in bytes.
7111
7112           Receive buffer must not be greater than ffs.
7113
7114       lossmaxttl=packets
7115           The value up to which the Reorder Tolerance may grow. When Reorder
7116           Tolerance is > 0, then packet loss report is delayed until that
7117           number of packets come in. Reorder Tolerance increases every time a
7118           "belated" packet has come, but it wasn't due to retransmission
7119           (that is, when UDP packets tend to come out of order), with the
7120           difference between the latest sequence and this packet's sequence,
7121           and not more than the value of this option. By default it's 0,
7122           which means that this mechanism is turned off, and the loss report
7123           is always sent immediately upon experiencing a "gap" in sequences.
7124
7125       minversion
7126           The minimum SRT version that is required from the peer. A
7127           connection to a peer that does not satisfy the minimum version
7128           requirement will be rejected.
7129
7130           The version format in hex is 0xXXYYZZ for x.y.z in human readable
7131           form.
7132
7133       streamid=string
7134           A string limited to 512 characters that can be set on the socket
7135           prior to connecting. This stream ID will be able to be retrieved by
7136           the listener side from the socket that is returned from srt_accept
7137           and was connected by a socket with that set stream ID. SRT does not
7138           enforce any special interpretation of the contents of this string.
7139           This option doesnXt make sense in Rendezvous connection; the result
7140           might be that simply one side will override the value from the
7141           other side and itXs the matter of luck which one would win
7142
7143       srt_streamid=string
7144           Alias for streamid to avoid conflict with ffmpeg command line
7145           option.
7146
7147       smoother=live|file
7148           The type of Smoother used for the transmission for that socket,
7149           which is responsible for the transmission and congestion control.
7150           The Smoother type must be exactly the same on both connecting
7151           parties, otherwise the connection is rejected.
7152
7153       messageapi=1|0
7154           When set, this socket uses the Message API, otherwise it uses
7155           Buffer API. Note that in live mode (see transtype) thereXs only
7156           message API available. In File mode you can chose to use one of two
7157           modes:
7158
7159           Stream API (default, when this option is false). In this mode you
7160           may send as many data as you wish with one sending instruction, or
7161           even use dedicated functions that read directly from a file. The
7162           internal facility will take care of any speed and congestion
7163           control. When receiving, you can also receive as many data as
7164           desired, the data not extracted will be waiting for the next call.
7165           There is no boundary between data portions in the Stream mode.
7166
7167           Message API. In this mode your single sending instruction passes
7168           exactly one piece of data that has boundaries (a message). Contrary
7169           to Live mode, this message may span across multiple UDP packets and
7170           the only size limitation is that it shall fit as a whole in the
7171           sending buffer. The receiver shall use as large buffer as necessary
7172           to receive the message, otherwise the message will not be given up.
7173           When the message is not complete (not all packets received or there
7174           was a packet loss) it will not be given up.
7175
7176       transtype=live|file
7177           Sets the transmission type for the socket, in particular, setting
7178           this option sets multiple other parameters to their default values
7179           as required for a particular transmission type.
7180
7181           live: Set options as for live transmission. In this mode, you
7182           should send by one sending instruction only so many data that fit
7183           in one UDP packet, and limited to the value defined first in
7184           payload_size (1316 is default in this mode). There is no speed
7185           control in this mode, only the bandwidth control, if configured, in
7186           order to not exceed the bandwidth with the overhead transmission
7187           (retransmitted and control packets).
7188
7189           file: Set options as for non-live transmission. See messageapi for
7190           further explanations
7191
7192       linger=seconds
7193           The number of seconds that the socket waits for unsent data when
7194           closing.  Default is -1. -1 means auto (off with 0 seconds in live
7195           mode, on with 180 seconds in file mode). The range for this option
7196           is integers in the 0 - "INT_MAX".
7197
7198       tsbpd=1|0
7199           When true, use Timestamp-based Packet Delivery mode. The default
7200           behavior depends on the transmission type: enabled in live mode,
7201           disabled in file mode.
7202
7203       For more information see: <https://github.com/Haivision/srt>.
7204
7205   srtp
7206       Secure Real-time Transport Protocol.
7207
7208       The accepted options are:
7209
7210       srtp_in_suite
7211       srtp_out_suite
7212           Select input and output encoding suites.
7213
7214           Supported values:
7215
7216           AES_CM_128_HMAC_SHA1_80
7217           SRTP_AES128_CM_HMAC_SHA1_80
7218           AES_CM_128_HMAC_SHA1_32
7219           SRTP_AES128_CM_HMAC_SHA1_32
7220       srtp_in_params
7221       srtp_out_params
7222           Set input and output encoding parameters, which are expressed by a
7223           base64-encoded representation of a binary block. The first 16 bytes
7224           of this binary block are used as master key, the following 14 bytes
7225           are used as master salt.
7226
7227   subfile
7228       Virtually extract a segment of a file or another stream.  The
7229       underlying stream must be seekable.
7230
7231       Accepted options:
7232
7233       start
7234           Start offset of the extracted segment, in bytes.
7235
7236       end End offset of the extracted segment, in bytes.  If set to 0,
7237           extract till end of file.
7238
7239       Examples:
7240
7241       Extract a chapter from a DVD VOB file (start and end sectors obtained
7242       externally and multiplied by 2048):
7243
7244               subfile,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
7245
7246       Play an AVI file directly from a TAR archive:
7247
7248               subfile,,start,183241728,end,366490624,,:archive.tar
7249
7250       Play a MPEG-TS file from start offset till end:
7251
7252               subfile,,start,32815239,end,0,,:video.ts
7253
7254   tee
7255       Writes the output to multiple protocols. The individual outputs are
7256       separated by |
7257
7258               tee:file://path/to/local/this.avi|file://path/to/local/that.avi
7259
7260   tcp
7261       Transmission Control Protocol.
7262
7263       The required syntax for a TCP url is:
7264
7265               tcp://<hostname>:<port>[?<options>]
7266
7267       options contains a list of &-separated options of the form key=val.
7268
7269       The list of supported options follows.
7270
7271       listen=2|1|0
7272           Listen for an incoming connection. 0 disables listen, 1 enables
7273           listen in single client mode, 2 enables listen in multi-client
7274           mode. Default value is 0.
7275
7276       timeout=microseconds
7277           Set raise error timeout, expressed in microseconds.
7278
7279           This option is only relevant in read mode: if no data arrived in
7280           more than this time interval, raise error.
7281
7282       listen_timeout=milliseconds
7283           Set listen timeout, expressed in milliseconds.
7284
7285       recv_buffer_size=bytes
7286           Set receive buffer size, expressed bytes.
7287
7288       send_buffer_size=bytes
7289           Set send buffer size, expressed bytes.
7290
7291       tcp_nodelay=1|0
7292           Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
7293
7294           Remark: Writing to the socket is currently not optimized to
7295           minimize system calls and reduces the efficiency / effect of
7296           TCP_NODELAY.
7297
7298       tcp_mss=bytes
7299           Set maximum segment size for outgoing TCP packets, expressed in
7300           bytes.
7301
7302       The following example shows how to setup a listening TCP connection
7303       with ffmpeg, which is then accessed with ffplay:
7304
7305               ffmpeg -i <input> -f <format> tcp://<hostname>:<port>?listen
7306               ffplay tcp://<hostname>:<port>
7307
7308   tls
7309       Transport Layer Security (TLS) / Secure Sockets Layer (SSL)
7310
7311       The required syntax for a TLS/SSL url is:
7312
7313               tls://<hostname>:<port>[?<options>]
7314
7315       The following parameters can be set via command line options (or in
7316       code via "AVOption"s):
7317
7318       ca_file, cafile=filename
7319           A file containing certificate authority (CA) root certificates to
7320           treat as trusted. If the linked TLS library contains a default this
7321           might not need to be specified for verification to work, but not
7322           all libraries and setups have defaults built in.  The file must be
7323           in OpenSSL PEM format.
7324
7325       tls_verify=1|0
7326           If enabled, try to verify the peer that we are communicating with.
7327           Note, if using OpenSSL, this currently only makes sure that the
7328           peer certificate is signed by one of the root certificates in the
7329           CA database, but it does not validate that the certificate actually
7330           matches the host name we are trying to connect to. (With other
7331           backends, the host name is validated as well.)
7332
7333           This is disabled by default since it requires a CA database to be
7334           provided by the caller in many cases.
7335
7336       cert_file, cert=filename
7337           A file containing a certificate to use in the handshake with the
7338           peer.  (When operating as server, in listen mode, this is more
7339           often required by the peer, while client certificates only are
7340           mandated in certain setups.)
7341
7342       key_file, key=filename
7343           A file containing the private key for the certificate.
7344
7345       listen=1|0
7346           If enabled, listen for connections on the provided port, and assume
7347           the server role in the handshake instead of the client role.
7348
7349       http_proxy
7350           The HTTP proxy to tunnel through, e.g. "http://example.com:1234".
7351           The proxy must support the CONNECT method.
7352
7353       Example command lines:
7354
7355       To create a TLS/SSL server that serves an input stream.
7356
7357               ffmpeg -i <input> -f <format> tls://<hostname>:<port>?listen&cert=<server.crt>&key=<server.key>
7358
7359       To play back a stream from the TLS/SSL server using ffplay:
7360
7361               ffplay tls://<hostname>:<port>
7362
7363   udp
7364       User Datagram Protocol.
7365
7366       The required syntax for an UDP URL is:
7367
7368               udp://<hostname>:<port>[?<options>]
7369
7370       options contains a list of &-separated options of the form key=val.
7371
7372       In case threading is enabled on the system, a circular buffer is used
7373       to store the incoming data, which allows one to reduce loss of data due
7374       to UDP socket buffer overruns. The fifo_size and overrun_nonfatal
7375       options are related to this buffer.
7376
7377       The list of supported options follows.
7378
7379       buffer_size=size
7380           Set the UDP maximum socket buffer size in bytes. This is used to
7381           set either the receive or send buffer size, depending on what the
7382           socket is used for.  Default is 32 KB for output, 384 KB for input.
7383           See also fifo_size.
7384
7385       bitrate=bitrate
7386           If set to nonzero, the output will have the specified constant
7387           bitrate if the input has enough packets to sustain it.
7388
7389       burst_bits=bits
7390           When using bitrate this specifies the maximum number of bits in
7391           packet bursts.
7392
7393       localport=port
7394           Override the local UDP port to bind with.
7395
7396       localaddr=addr
7397           Local IP address of a network interface used for sending packets or
7398           joining multicast groups.
7399
7400       pkt_size=size
7401           Set the size in bytes of UDP packets.
7402
7403       reuse=1|0
7404           Explicitly allow or disallow reusing UDP sockets.
7405
7406       ttl=ttl
7407           Set the time to live value (for multicast only).
7408
7409       connect=1|0
7410           Initialize the UDP socket with "connect()". In this case, the
7411           destination address can't be changed with ff_udp_set_remote_url
7412           later.  If the destination address isn't known at the start, this
7413           option can be specified in ff_udp_set_remote_url, too.  This allows
7414           finding out the source address for the packets with getsockname,
7415           and makes writes return with AVERROR(ECONNREFUSED) if "destination
7416           unreachable" is received.  For receiving, this gives the benefit of
7417           only receiving packets from the specified peer address/port.
7418
7419       sources=address[,address]
7420           Only receive packets sent from the specified addresses. In case of
7421           multicast, also subscribe to multicast traffic coming from these
7422           addresses only.
7423
7424       block=address[,address]
7425           Ignore packets sent from the specified addresses. In case of
7426           multicast, also exclude the source addresses in the multicast
7427           subscription.
7428
7429       fifo_size=units
7430           Set the UDP receiving circular buffer size, expressed as a number
7431           of packets with size of 188 bytes. If not specified defaults to
7432           7*4096.
7433
7434       overrun_nonfatal=1|0
7435           Survive in case of UDP receiving circular buffer overrun. Default
7436           value is 0.
7437
7438       timeout=microseconds
7439           Set raise error timeout, expressed in microseconds.
7440
7441           This option is only relevant in read mode: if no data arrived in
7442           more than this time interval, raise error.
7443
7444       broadcast=1|0
7445           Explicitly allow or disallow UDP broadcasting.
7446
7447           Note that broadcasting may not work properly on networks having a
7448           broadcast storm protection.
7449
7450       Examples
7451
7452       •   Use ffmpeg to stream over UDP to a remote endpoint:
7453
7454                   ffmpeg -i <input> -f <format> udp://<hostname>:<port>
7455
7456       •   Use ffmpeg to stream in mpegts format over UDP using 188 sized UDP
7457           packets, using a large input buffer:
7458
7459                   ffmpeg -i <input> -f mpegts udp://<hostname>:<port>?pkt_size=188&buffer_size=65535
7460
7461       •   Use ffmpeg to receive over UDP from a remote endpoint:
7462
7463                   ffmpeg -i udp://[<multicast-address>]:<port> ...
7464
7465   unix
7466       Unix local socket
7467
7468       The required syntax for a Unix socket URL is:
7469
7470               unix://<filepath>
7471
7472       The following parameters can be set via command line options (or in
7473       code via "AVOption"s):
7474
7475       timeout
7476           Timeout in ms.
7477
7478       listen
7479           Create the Unix socket in listening mode.
7480
7481   zmq
7482       ZeroMQ asynchronous messaging using the libzmq library.
7483
7484       This library supports unicast streaming to multiple clients without
7485       relying on an external server.
7486
7487       The required syntax for streaming or connecting to a stream is:
7488
7489               zmq:tcp://ip-address:port
7490
7491       Example: Create a localhost stream on port 5555:
7492
7493               ffmpeg -re -i input -f mpegts zmq:tcp://127.0.0.1:5555
7494
7495       Multiple clients may connect to the stream using:
7496
7497               ffplay zmq:tcp://127.0.0.1:5555
7498
7499       Streaming to multiple clients is implemented using a ZeroMQ Pub-Sub
7500       pattern.  The server side binds to a port and publishes data. Clients
7501       connect to the server (via IP address/port) and subscribe to the
7502       stream. The order in which the server and client start generally does
7503       not matter.
7504
7505       ffmpeg must be compiled with the --enable-libzmq option to support this
7506       protocol.
7507
7508       Options can be set on the ffmpeg/ffplay command line. The following
7509       options are supported:
7510
7511       pkt_size
7512           Forces the maximum packet size for sending/receiving data. The
7513           default value is 131,072 bytes. On the server side, this sets the
7514           maximum size of sent packets via ZeroMQ. On the clients, it sets an
7515           internal buffer size for receiving packets. Note that pkt_size on
7516           the clients should be equal to or greater than pkt_size on the
7517           server. Otherwise the received message may be truncated causing
7518           decoding errors.
7519

DEVICE OPTIONS

7521       The libavdevice library provides the same interface as libavformat.
7522       Namely, an input device is considered like a demuxer, and an output
7523       device like a muxer, and the interface and generic device options are
7524       the same provided by libavformat (see the ffmpeg-formats manual).
7525
7526       In addition each input or output device may support so-called private
7527       options, which are specific for that component.
7528
7529       Options may be set by specifying -option value in the FFmpeg tools, or
7530       by setting the value explicitly in the device "AVFormatContext" options
7531       or using the libavutil/opt.h API for programmatic use.
7532

INPUT DEVICES

7534       Input devices are configured elements in FFmpeg which enable accessing
7535       the data coming from a multimedia device attached to your system.
7536
7537       When you configure your FFmpeg build, all the supported input devices
7538       are enabled by default. You can list all available ones using the
7539       configure option "--list-indevs".
7540
7541       You can disable all the input devices using the configure option
7542       "--disable-indevs", and selectively enable an input device using the
7543       option "--enable-indev=INDEV", or you can disable a particular input
7544       device using the option "--disable-indev=INDEV".
7545
7546       The option "-devices" of the ff* tools will display the list of
7547       supported input devices.
7548
7549       A description of the currently available input devices follows.
7550
7551   alsa
7552       ALSA (Advanced Linux Sound Architecture) input device.
7553
7554       To enable this input device during configuration you need libasound
7555       installed on your system.
7556
7557       This device allows capturing from an ALSA device. The name of the
7558       device to capture has to be an ALSA card identifier.
7559
7560       An ALSA identifier has the syntax:
7561
7562               hw:<CARD>[,<DEV>[,<SUBDEV>]]
7563
7564       where the DEV and SUBDEV components are optional.
7565
7566       The three arguments (in order: CARD,DEV,SUBDEV) specify card number or
7567       identifier, device number and subdevice number (-1 means any).
7568
7569       To see the list of cards currently recognized by your system check the
7570       files /proc/asound/cards and /proc/asound/devices.
7571
7572       For example to capture with ffmpeg from an ALSA device with card id 0,
7573       you may run the command:
7574
7575               ffmpeg -f alsa -i hw:0 alsaout.wav
7576
7577       For more information see:
7578       <http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html>
7579
7580       Options
7581
7582       sample_rate
7583           Set the sample rate in Hz. Default is 48000.
7584
7585       channels
7586           Set the number of channels. Default is 2.
7587
7588   android_camera
7589       Android camera input device.
7590
7591       This input devices uses the Android Camera2 NDK API which is available
7592       on devices with API level 24+. The availability of android_camera is
7593       autodetected during configuration.
7594
7595       This device allows capturing from all cameras on an Android device,
7596       which are integrated into the Camera2 NDK API.
7597
7598       The available cameras are enumerated internally and can be selected
7599       with the camera_index parameter. The input file string is discarded.
7600
7601       Generally the back facing camera has index 0 while the front facing
7602       camera has index 1.
7603
7604       Options
7605
7606       video_size
7607           Set the video size given as a string such as 640x480 or hd720.
7608           Falls back to the first available configuration reported by Android
7609           if requested video size is not available or by default.
7610
7611       framerate
7612           Set the video framerate.  Falls back to the first available
7613           configuration reported by Android if requested framerate is not
7614           available or by default (-1).
7615
7616       camera_index
7617           Set the index of the camera to use. Default is 0.
7618
7619       input_queue_size
7620           Set the maximum number of frames to buffer. Default is 5.
7621
7622   avfoundation
7623       AVFoundation input device.
7624
7625       AVFoundation is the currently recommended framework by Apple for
7626       streamgrabbing on OSX >= 10.7 as well as on iOS.
7627
7628       The input filename has to be given in the following syntax:
7629
7630               -i "[[VIDEO]:[AUDIO]]"
7631
7632       The first entry selects the video input while the latter selects the
7633       audio input.  The stream has to be specified by the device name or the
7634       device index as shown by the device list.  Alternatively, the video
7635       and/or audio input device can be chosen by index using the
7636
7637           B<-video_device_index E<lt>INDEXE<gt>>
7638
7639       and/or
7640
7641           B<-audio_device_index E<lt>INDEXE<gt>>
7642
7643       , overriding any device name or index given in the input filename.
7644
7645       All available devices can be enumerated by using -list_devices true,
7646       listing all device names and corresponding indices.
7647
7648       There are two device name aliases:
7649
7650       "default"
7651           Select the AVFoundation default device of the corresponding type.
7652
7653       "none"
7654           Do not record the corresponding media type.  This is equivalent to
7655           specifying an empty device name or index.
7656
7657       Options
7658
7659       AVFoundation supports the following options:
7660
7661       -list_devices <TRUE|FALSE>
7662           If set to true, a list of all available input devices is given
7663           showing all device names and indices.
7664
7665       -video_device_index <INDEX>
7666           Specify the video device by its index. Overrides anything given in
7667           the input filename.
7668
7669       -audio_device_index <INDEX>
7670           Specify the audio device by its index. Overrides anything given in
7671           the input filename.
7672
7673       -pixel_format <FORMAT>
7674           Request the video device to use a specific pixel format.  If the
7675           specified format is not supported, a list of available formats is
7676           given and the first one in this list is used instead. Available
7677           pixel formats are: "monob, rgb555be, rgb555le, rgb565be, rgb565le,
7678           rgb24, bgr24, 0rgb, bgr0, 0bgr, rgb0,
7679            bgr48be, uyvy422, yuva444p, yuva444p16le, yuv444p, yuv422p16,
7680           yuv422p10, yuv444p10,
7681            yuv420p, nv12, yuyv422, gray"
7682
7683       -framerate
7684           Set the grabbing frame rate. Default is "ntsc", corresponding to a
7685           frame rate of "30000/1001".
7686
7687       -video_size
7688           Set the video frame size.
7689
7690       -capture_cursor
7691           Capture the mouse pointer. Default is 0.
7692
7693       -capture_mouse_clicks
7694           Capture the screen mouse clicks. Default is 0.
7695
7696       -capture_raw_data
7697           Capture the raw device data. Default is 0.  Using this option may
7698           result in receiving the underlying data delivered to the
7699           AVFoundation framework. E.g. for muxed devices that sends raw DV
7700           data to the framework (like tape-based camcorders), setting this
7701           option to false results in extracted video frames captured in the
7702           designated pixel format only. Setting this option to true results
7703           in receiving the raw DV stream untouched.
7704
7705       Examples
7706
7707       •   Print the list of AVFoundation supported devices and exit:
7708
7709                   $ ffmpeg -f avfoundation -list_devices true -i ""
7710
7711       •   Record video from video device 0 and audio from audio device 0 into
7712           out.avi:
7713
7714                   $ ffmpeg -f avfoundation -i "0:0" out.avi
7715
7716       •   Record video from video device 2 and audio from audio device 1 into
7717           out.avi:
7718
7719                   $ ffmpeg -f avfoundation -video_device_index 2 -i ":1" out.avi
7720
7721       •   Record video from the system default video device using the pixel
7722           format bgr0 and do not record any audio into out.avi:
7723
7724                   $ ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi
7725
7726       •   Record raw DV data from a suitable input device and write the
7727           output into out.dv:
7728
7729                   $ ffmpeg -f avfoundation -capture_raw_data true -i "zr100:none" out.dv
7730
7731   bktr
7732       BSD video input device.
7733
7734       Options
7735
7736       framerate
7737           Set the frame rate.
7738
7739       video_size
7740           Set the video frame size. Default is "vga".
7741
7742       standard
7743           Available values are:
7744
7745           pal
7746           ntsc
7747           secam
7748           paln
7749           palm
7750           ntscj
7751
7752   decklink
7753       The decklink input device provides capture capabilities for Blackmagic
7754       DeckLink devices.
7755
7756       To enable this input device, you need the Blackmagic DeckLink SDK and
7757       you need to configure with the appropriate "--extra-cflags" and
7758       "--extra-ldflags".  On Windows, you need to run the IDL files through
7759       widl.
7760
7761       DeckLink is very picky about the formats it supports. Pixel format of
7762       the input can be set with raw_format.  Framerate and video size must be
7763       determined for your device with -list_formats 1. Audio sample rate is
7764       always 48 kHz and the number of channels can be 2, 8 or 16. Note that
7765       all audio channels are bundled in one single audio track.
7766
7767       Options
7768
7769       list_devices
7770           If set to true, print a list of devices and exit.  Defaults to
7771           false. This option is deprecated, please use the "-sources" option
7772           of ffmpeg to list the available input devices.
7773
7774       list_formats
7775           If set to true, print a list of supported formats and exit.
7776           Defaults to false.
7777
7778       format_code <FourCC>
7779           This sets the input video format to the format given by the FourCC.
7780           To see the supported values of your device(s) use list_formats.
7781           Note that there is a FourCC 'pal ' that can also be used as pal (3
7782           letters).  Default behavior is autodetection of the input video
7783           format, if the hardware supports it.
7784
7785       raw_format
7786           Set the pixel format of the captured video.  Available values are:
7787
7788           auto
7789               This is the default which means 8-bit YUV 422 or 8-bit ARGB if
7790               format autodetection is used, 8-bit YUV 422 otherwise.
7791
7792           uyvy422
7793               8-bit YUV 422.
7794
7795           yuv422p10
7796               10-bit YUV 422.
7797
7798           argb
7799               8-bit RGB.
7800
7801           bgra
7802               8-bit RGB.
7803
7804           rgb10
7805               10-bit RGB.
7806
7807       teletext_lines
7808           If set to nonzero, an additional teletext stream will be captured
7809           from the vertical ancillary data. Both SD PAL (576i) and HD (1080i
7810           or 1080p) sources are supported. In case of HD sources, OP47
7811           packets are decoded.
7812
7813           This option is a bitmask of the SD PAL VBI lines captured,
7814           specifically lines 6 to 22, and lines 318 to 335. Line 6 is the LSB
7815           in the mask. Selected lines which do not contain teletext
7816           information will be ignored. You can use the special all constant
7817           to select all possible lines, or standard to skip lines 6, 318 and
7818           319, which are not compatible with all receivers.
7819
7820           For SD sources, ffmpeg needs to be compiled with
7821           "--enable-libzvbi". For HD sources, on older (pre-4K) DeckLink card
7822           models you have to capture in 10 bit mode.
7823
7824       channels
7825           Defines number of audio channels to capture. Must be 2, 8 or 16.
7826           Defaults to 2.
7827
7828       duplex_mode
7829           Sets the decklink device duplex/profile mode. Must be unset, half,
7830           full, one_sub_device_full, one_sub_device_half,
7831           two_sub_device_full, four_sub_device_half Defaults to unset.
7832
7833           Note: DeckLink SDK 11.0 have replaced the duplex property by a
7834           profile property.  For the DeckLink Duo 2 and DeckLink Quad 2, a
7835           profile is shared between any 2 sub-devices that utilize the same
7836           connectors. For the DeckLink 8K Pro, a profile is shared between
7837           all 4 sub-devices. So DeckLink 8K Pro support four profiles.
7838
7839           Valid profile modes for DeckLink 8K Pro(with DeckLink SDK >= 11.0):
7840           one_sub_device_full, one_sub_device_half, two_sub_device_full,
7841           four_sub_device_half
7842
7843           Valid profile modes for DeckLink Quad 2 and DeckLink Duo 2: half,
7844           full
7845
7846       timecode_format
7847           Timecode type to include in the frame and video stream metadata.
7848           Must be none, rp188vitc, rp188vitc2, rp188ltc, rp188hfr, rp188any,
7849           vitc, vitc2, or serial.  Defaults to none (not included).
7850
7851           In order to properly support 50/60 fps timecodes, the ordering of
7852           the queried timecode types for rp188any is HFR, VITC1, VITC2 and
7853           LTC for >30 fps content. Note that this is slightly different to
7854           the ordering used by the DeckLink API, which is HFR, VITC1, LTC,
7855           VITC2.
7856
7857       video_input
7858           Sets the video input source. Must be unset, sdi, hdmi, optical_sdi,
7859           component, composite or s_video.  Defaults to unset.
7860
7861       audio_input
7862           Sets the audio input source. Must be unset, embedded, aes_ebu,
7863           analog, analog_xlr, analog_rca or microphone. Defaults to unset.
7864
7865       video_pts
7866           Sets the video packet timestamp source. Must be video, audio,
7867           reference, wallclock or abs_wallclock.  Defaults to video.
7868
7869       audio_pts
7870           Sets the audio packet timestamp source. Must be video, audio,
7871           reference, wallclock or abs_wallclock.  Defaults to audio.
7872
7873       draw_bars
7874           If set to true, color bars are drawn in the event of a signal loss.
7875           Defaults to true.
7876
7877       queue_size
7878           Sets maximum input buffer size in bytes. If the buffering reaches
7879           this value, incoming frames will be dropped.  Defaults to
7880           1073741824.
7881
7882       audio_depth
7883           Sets the audio sample bit depth. Must be 16 or 32.  Defaults to 16.
7884
7885       decklink_copyts
7886           If set to true, timestamps are forwarded as they are without
7887           removing the initial offset.  Defaults to false.
7888
7889       timestamp_align
7890           Capture start time alignment in seconds. If set to nonzero, input
7891           frames are dropped till the system timestamp aligns with configured
7892           value.  Alignment difference of up to one frame duration is
7893           tolerated.  This is useful for maintaining input synchronization
7894           across N different hardware devices deployed for 'N-way'
7895           redundancy. The system time of different hardware devices should be
7896           synchronized with protocols such as NTP or PTP, before using this
7897           option.  Note that this method is not foolproof. In some border
7898           cases input synchronization may not happen due to thread scheduling
7899           jitters in the OS.  Either sync could go wrong by 1 frame or in a
7900           rarer case timestamp_align seconds.  Defaults to 0.
7901
7902       wait_for_tc (bool)
7903           Drop frames till a frame with timecode is received. Sometimes
7904           serial timecode isn't received with the first input frame. If that
7905           happens, the stored stream timecode will be inaccurate. If this
7906           option is set to true, input frames are dropped till a frame with
7907           timecode is received.  Option timecode_format must be specified.
7908           Defaults to false.
7909
7910       enable_klv(bool)
7911           If set to true, extracts KLV data from VANC and outputs KLV
7912           packets.  KLV VANC packets are joined based on MID and PSC fields
7913           and aggregated into one KLV packet.  Defaults to false.
7914
7915       Examples
7916
7917       •   List input devices:
7918
7919                   ffmpeg -sources decklink
7920
7921       •   List supported formats:
7922
7923                   ffmpeg -f decklink -list_formats 1 -i 'Intensity Pro'
7924
7925       •   Capture video clip at 1080i50:
7926
7927                   ffmpeg -format_code Hi50 -f decklink -i 'Intensity Pro' -c:a copy -c:v copy output.avi
7928
7929       •   Capture video clip at 1080i50 10 bit:
7930
7931                   ffmpeg -raw_format yuv422p10 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
7932
7933       •   Capture video clip at 1080i50 with 16 audio channels:
7934
7935                   ffmpeg -channels 16 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
7936
7937   dshow
7938       Windows DirectShow input device.
7939
7940       DirectShow support is enabled when FFmpeg is built with the mingw-w64
7941       project.  Currently only audio and video devices are supported.
7942
7943       Multiple devices may be opened as separate inputs, but they may also be
7944       opened on the same input, which should improve synchronism between
7945       them.
7946
7947       The input name should be in the format:
7948
7949               <TYPE>=<NAME>[:<TYPE>=<NAME>]
7950
7951       where TYPE can be either audio or video, and NAME is the device's name
7952       or alternative name..
7953
7954       Options
7955
7956       If no options are specified, the device's defaults are used.  If the
7957       device does not support the requested options, it will fail to open.
7958
7959       video_size
7960           Set the video size in the captured video.
7961
7962       framerate
7963           Set the frame rate in the captured video.
7964
7965       sample_rate
7966           Set the sample rate (in Hz) of the captured audio.
7967
7968       sample_size
7969           Set the sample size (in bits) of the captured audio.
7970
7971       channels
7972           Set the number of channels in the captured audio.
7973
7974       list_devices
7975           If set to true, print a list of devices and exit.
7976
7977       list_options
7978           If set to true, print a list of selected device's options and exit.
7979
7980       video_device_number
7981           Set video device number for devices with the same name (starts at
7982           0, defaults to 0).
7983
7984       audio_device_number
7985           Set audio device number for devices with the same name (starts at
7986           0, defaults to 0).
7987
7988       pixel_format
7989           Select pixel format to be used by DirectShow. This may only be set
7990           when the video codec is not set or set to rawvideo.
7991
7992       audio_buffer_size
7993           Set audio device buffer size in milliseconds (which can directly
7994           impact latency, depending on the device).  Defaults to using the
7995           audio device's default buffer size (typically some multiple of
7996           500ms).  Setting this value too low can degrade performance.  See
7997           also
7998           <http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx>
7999
8000       video_pin_name
8001           Select video capture pin to use by name or alternative name.
8002
8003       audio_pin_name
8004           Select audio capture pin to use by name or alternative name.
8005
8006       crossbar_video_input_pin_number
8007           Select video input pin number for crossbar device. This will be
8008           routed to the crossbar device's Video Decoder output pin.  Note
8009           that changing this value can affect future invocations (sets a new
8010           default) until system reboot occurs.
8011
8012       crossbar_audio_input_pin_number
8013           Select audio input pin number for crossbar device. This will be
8014           routed to the crossbar device's Audio Decoder output pin.  Note
8015           that changing this value can affect future invocations (sets a new
8016           default) until system reboot occurs.
8017
8018       show_video_device_dialog
8019           If set to true, before capture starts, popup a display dialog to
8020           the end user, allowing them to change video filter properties and
8021           configurations manually.  Note that for crossbar devices, adjusting
8022           values in this dialog may be needed at times to toggle between PAL
8023           (25 fps) and NTSC (29.97) input frame rates, sizes, interlacing,
8024           etc.  Changing these values can enable different scan rates/frame
8025           rates and avoiding green bars at the bottom, flickering scan lines,
8026           etc.  Note that with some devices, changing these properties can
8027           also affect future invocations (sets new defaults) until system
8028           reboot occurs.
8029
8030       show_audio_device_dialog
8031           If set to true, before capture starts, popup a display dialog to
8032           the end user, allowing them to change audio filter properties and
8033           configurations manually.
8034
8035       show_video_crossbar_connection_dialog
8036           If set to true, before capture starts, popup a display dialog to
8037           the end user, allowing them to manually modify crossbar pin
8038           routings, when it opens a video device.
8039
8040       show_audio_crossbar_connection_dialog
8041           If set to true, before capture starts, popup a display dialog to
8042           the end user, allowing them to manually modify crossbar pin
8043           routings, when it opens an audio device.
8044
8045       show_analog_tv_tuner_dialog
8046           If set to true, before capture starts, popup a display dialog to
8047           the end user, allowing them to manually modify TV channels and
8048           frequencies.
8049
8050       show_analog_tv_tuner_audio_dialog
8051           If set to true, before capture starts, popup a display dialog to
8052           the end user, allowing them to manually modify TV audio (like mono
8053           vs. stereo, Language A,B or C).
8054
8055       audio_device_load
8056           Load an audio capture filter device from file instead of searching
8057           it by name. It may load additional parameters too, if the filter
8058           supports the serialization of its properties to.  To use this an
8059           audio capture source has to be specified, but it can be anything
8060           even fake one.
8061
8062       audio_device_save
8063           Save the currently used audio capture filter device and its
8064           parameters (if the filter supports it) to a file.  If a file with
8065           the same name exists it will be overwritten.
8066
8067       video_device_load
8068           Load a video capture filter device from file instead of searching
8069           it by name. It may load additional parameters too, if the filter
8070           supports the serialization of its properties to.  To use this a
8071           video capture source has to be specified, but it can be anything
8072           even fake one.
8073
8074       video_device_save
8075           Save the currently used video capture filter device and its
8076           parameters (if the filter supports it) to a file.  If a file with
8077           the same name exists it will be overwritten.
8078
8079       use_video_device_timestamps
8080           If set to false, the timestamp for video frames will be derived
8081           from the wallclock instead of the timestamp provided by the capture
8082           device. This allows working around devices that provide unreliable
8083           timestamps.
8084
8085       Examples
8086
8087       •   Print the list of DirectShow supported devices and exit:
8088
8089                   $ ffmpeg -list_devices true -f dshow -i dummy
8090
8091       •   Open video device Camera:
8092
8093                   $ ffmpeg -f dshow -i video="Camera"
8094
8095       •   Open second video device with name Camera:
8096
8097                   $ ffmpeg -f dshow -video_device_number 1 -i video="Camera"
8098
8099       •   Open video device Camera and audio device Microphone:
8100
8101                   $ ffmpeg -f dshow -i video="Camera":audio="Microphone"
8102
8103       •   Print the list of supported options in selected device and exit:
8104
8105                   $ ffmpeg -list_options true -f dshow -i video="Camera"
8106
8107       •   Specify pin names to capture by name or alternative name, specify
8108           alternative device name:
8109
8110                   $ ffmpeg -f dshow -audio_pin_name "Audio Out" -video_pin_name 2 -i video=video="@device_pnp_\\?\pci#ven_1a0a&dev_6200&subsys_62021461&rev_01#4&e2c7dd6&0&00e1#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{ca465100-deb0-4d59-818f-8c477184adf6}":audio="Microphone"
8111
8112       •   Configure a crossbar device, specifying crossbar pins, allow user
8113           to adjust video capture properties at startup:
8114
8115                   $ ffmpeg -f dshow -show_video_device_dialog true -crossbar_video_input_pin_number 0
8116                        -crossbar_audio_input_pin_number 3 -i video="AVerMedia BDA Analog Capture":audio="AVerMedia BDA Analog Capture"
8117
8118   fbdev
8119       Linux framebuffer input device.
8120
8121       The Linux framebuffer is a graphic hardware-independent abstraction
8122       layer to show graphics on a computer monitor, typically on the console.
8123       It is accessed through a file device node, usually /dev/fb0.
8124
8125       For more detailed information read the file
8126       Documentation/fb/framebuffer.txt included in the Linux source tree.
8127
8128       See also <http://linux-fbdev.sourceforge.net/>, and fbset(1).
8129
8130       To record from the framebuffer device /dev/fb0 with ffmpeg:
8131
8132               ffmpeg -f fbdev -framerate 10 -i /dev/fb0 out.avi
8133
8134       You can take a single screenshot image with the command:
8135
8136               ffmpeg -f fbdev -framerate 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg
8137
8138       Options
8139
8140       framerate
8141           Set the frame rate. Default is 25.
8142
8143   gdigrab
8144       Win32 GDI-based screen capture device.
8145
8146       This device allows you to capture a region of the display on Windows.
8147
8148       There are two options for the input filename:
8149
8150               desktop
8151
8152       or
8153
8154               title=<window_title>
8155
8156       The first option will capture the entire desktop, or a fixed region of
8157       the desktop. The second option will instead capture the contents of a
8158       single window, regardless of its position on the screen.
8159
8160       For example, to grab the entire desktop using ffmpeg:
8161
8162               ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg
8163
8164       Grab a 640x480 region at position "10,20":
8165
8166               ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg
8167
8168       Grab the contents of the window named "Calculator"
8169
8170               ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg
8171
8172       Options
8173
8174       draw_mouse
8175           Specify whether to draw the mouse pointer. Use the value 0 to not
8176           draw the pointer. Default value is 1.
8177
8178       framerate
8179           Set the grabbing frame rate. Default value is "ntsc", corresponding
8180           to a frame rate of "30000/1001".
8181
8182       show_region
8183           Show grabbed region on screen.
8184
8185           If show_region is specified with 1, then the grabbing region will
8186           be indicated on screen. With this option, it is easy to know what
8187           is being grabbed if only a portion of the screen is grabbed.
8188
8189           Note that show_region is incompatible with grabbing the contents of
8190           a single window.
8191
8192           For example:
8193
8194                   ffmpeg -f gdigrab -show_region 1 -framerate 6 -video_size cif -offset_x 10 -offset_y 20 -i desktop out.mpg
8195
8196       video_size
8197           Set the video frame size. The default is to capture the full screen
8198           if desktop is selected, or the full window size if
8199           title=window_title is selected.
8200
8201       offset_x
8202           When capturing a region with video_size, set the distance from the
8203           left edge of the screen or desktop.
8204
8205           Note that the offset calculation is from the top left corner of the
8206           primary monitor on Windows. If you have a monitor positioned to the
8207           left of your primary monitor, you will need to use a negative
8208           offset_x value to move the region to that monitor.
8209
8210       offset_y
8211           When capturing a region with video_size, set the distance from the
8212           top edge of the screen or desktop.
8213
8214           Note that the offset calculation is from the top left corner of the
8215           primary monitor on Windows. If you have a monitor positioned above
8216           your primary monitor, you will need to use a negative offset_y
8217           value to move the region to that monitor.
8218
8219   iec61883
8220       FireWire DV/HDV input device using libiec61883.
8221
8222       To enable this input device, you need libiec61883, libraw1394 and
8223       libavc1394 installed on your system. Use the configure option
8224       "--enable-libiec61883" to compile with the device enabled.
8225
8226       The iec61883 capture device supports capturing from a video device
8227       connected via IEEE1394 (FireWire), using libiec61883 and the new Linux
8228       FireWire stack (juju). This is the default DV/HDV input method in Linux
8229       Kernel 2.6.37 and later, since the old FireWire stack was removed.
8230
8231       Specify the FireWire port to be used as input file, or "auto" to choose
8232       the first port connected.
8233
8234       Options
8235
8236       dvtype
8237           Override autodetection of DV/HDV. This should only be used if auto
8238           detection does not work, or if usage of a different device type
8239           should be prohibited. Treating a DV device as HDV (or vice versa)
8240           will not work and result in undefined behavior.  The values auto,
8241           dv and hdv are supported.
8242
8243       dvbuffer
8244           Set maximum size of buffer for incoming data, in frames. For DV,
8245           this is an exact value. For HDV, it is not frame exact, since HDV
8246           does not have a fixed frame size.
8247
8248       dvguid
8249           Select the capture device by specifying its GUID. Capturing will
8250           only be performed from the specified device and fails if no device
8251           with the given GUID is found. This is useful to select the input if
8252           multiple devices are connected at the same time.  Look at
8253           /sys/bus/firewire/devices to find out the GUIDs.
8254
8255       Examples
8256
8257       •   Grab and show the input of a FireWire DV/HDV device.
8258
8259                   ffplay -f iec61883 -i auto
8260
8261       •   Grab and record the input of a FireWire DV/HDV device, using a
8262           packet buffer of 100000 packets if the source is HDV.
8263
8264                   ffmpeg -f iec61883 -i auto -dvbuffer 100000 out.mpg
8265
8266   jack
8267       JACK input device.
8268
8269       To enable this input device during configuration you need libjack
8270       installed on your system.
8271
8272       A JACK input device creates one or more JACK writable clients, one for
8273       each audio channel, with name client_name:input_N, where client_name is
8274       the name provided by the application, and N is a number which
8275       identifies the channel.  Each writable client will send the acquired
8276       data to the FFmpeg input device.
8277
8278       Once you have created one or more JACK readable clients, you need to
8279       connect them to one or more JACK writable clients.
8280
8281       To connect or disconnect JACK clients you can use the jack_connect and
8282       jack_disconnect programs, or do it through a graphical interface, for
8283       example with qjackctl.
8284
8285       To list the JACK clients and their properties you can invoke the
8286       command jack_lsp.
8287
8288       Follows an example which shows how to capture a JACK readable client
8289       with ffmpeg.
8290
8291               # Create a JACK writable client with name "ffmpeg".
8292               $ ffmpeg -f jack -i ffmpeg -y out.wav
8293
8294               # Start the sample jack_metro readable client.
8295               $ jack_metro -b 120 -d 0.2 -f 4000
8296
8297               # List the current JACK clients.
8298               $ jack_lsp -c
8299               system:capture_1
8300               system:capture_2
8301               system:playback_1
8302               system:playback_2
8303               ffmpeg:input_1
8304               metro:120_bpm
8305
8306               # Connect metro to the ffmpeg writable client.
8307               $ jack_connect metro:120_bpm ffmpeg:input_1
8308
8309       For more information read: <http://jackaudio.org/>
8310
8311       Options
8312
8313       channels
8314           Set the number of channels. Default is 2.
8315
8316   kmsgrab
8317       KMS video input device.
8318
8319       Captures the KMS scanout framebuffer associated with a specified CRTC
8320       or plane as a DRM object that can be passed to other hardware
8321       functions.
8322
8323       Requires either DRM master or CAP_SYS_ADMIN to run.
8324
8325       If you don't understand what all of that means, you probably don't want
8326       this.  Look at x11grab instead.
8327
8328       Options
8329
8330       device
8331           DRM device to capture on.  Defaults to /dev/dri/card0.
8332
8333       format
8334           Pixel format of the framebuffer.  This can be autodetected if you
8335           are running Linux 5.7 or later, but needs to be provided for
8336           earlier versions.  Defaults to bgr0, which is the most common
8337           format used by the Linux console and Xorg X server.
8338
8339       format_modifier
8340           Format modifier to signal on output frames.  This is necessary to
8341           import correctly into some APIs.  It can be autodetected if you are
8342           running Linux 5.7 or later, but will need to be provided explicitly
8343           when needed in earlier versions.  See the libdrm documentation for
8344           possible values.
8345
8346       crtc_id
8347           KMS CRTC ID to define the capture source.  The first active plane
8348           on the given CRTC will be used.
8349
8350       plane_id
8351           KMS plane ID to define the capture source.  Defaults to the first
8352           active plane found if neither crtc_id nor plane_id are specified.
8353
8354       framerate
8355           Framerate to capture at.  This is not synchronised to any page
8356           flipping or framebuffer changes - it just defines the interval at
8357           which the framebuffer is sampled.  Sampling faster than the
8358           framebuffer update rate will generate independent frames with the
8359           same content.  Defaults to 30.
8360
8361       Examples
8362
8363       •   Capture from the first active plane, download the result to normal
8364           frames and encode.  This will only work if the framebuffer is both
8365           linear and mappable - if not, the result may be scrambled or fail
8366           to download.
8367
8368                   ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4
8369
8370       •   Capture from CRTC ID 42 at 60fps, map the result to VAAPI, convert
8371           to NV12 and encode as H.264.
8372
8373                   ffmpeg -crtc_id 42 -framerate 60 -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12' -c:v h264_vaapi output.mp4
8374
8375       •   To capture only part of a plane the output can be cropped - this
8376           can be used to capture a single window, as long as it has a known
8377           absolute position and size.  For example, to capture and encode the
8378           middle quarter of a 1920x1080 plane:
8379
8380                   ffmpeg -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,crop=960:540:480:270,scale_vaapi=960:540:nv12' -c:v h264_vaapi output.mp4
8381
8382   lavfi
8383       Libavfilter input virtual device.
8384
8385       This input device reads data from the open output pads of a libavfilter
8386       filtergraph.
8387
8388       For each filtergraph open output, the input device will create a
8389       corresponding stream which is mapped to the generated output. Currently
8390       only video data is supported. The filtergraph is specified through the
8391       option graph.
8392
8393       Options
8394
8395       graph
8396           Specify the filtergraph to use as input. Each video open output
8397           must be labelled by a unique string of the form "outN", where N is
8398           a number starting from 0 corresponding to the mapped input stream
8399           generated by the device.  The first unlabelled output is
8400           automatically assigned to the "out0" label, but all the others need
8401           to be specified explicitly.
8402
8403           The suffix "+subcc" can be appended to the output label to create
8404           an extra stream with the closed captions packets attached to that
8405           output (experimental; only for EIA-608 / CEA-708 for now).  The
8406           subcc streams are created after all the normal streams, in the
8407           order of the corresponding stream.  For example, if there is
8408           "out19+subcc", "out7+subcc" and up to "out42", the stream #43 is
8409           subcc for stream #7 and stream #44 is subcc for stream #19.
8410
8411           If not specified defaults to the filename specified for the input
8412           device.
8413
8414       graph_file
8415           Set the filename of the filtergraph to be read and sent to the
8416           other filters. Syntax of the filtergraph is the same as the one
8417           specified by the option graph.
8418
8419       dumpgraph
8420           Dump graph to stderr.
8421
8422       Examples
8423
8424       •   Create a color video stream and play it back with ffplay:
8425
8426                   ffplay -f lavfi -graph "color=c=pink [out0]" dummy
8427
8428       •   As the previous example, but use filename for specifying the graph
8429           description, and omit the "out0" label:
8430
8431                   ffplay -f lavfi color=c=pink
8432
8433       •   Create three different video test filtered sources and play them:
8434
8435                   ffplay -f lavfi -graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
8436
8437       •   Read an audio stream from a file using the amovie source and play
8438           it back with ffplay:
8439
8440                   ffplay -f lavfi "amovie=test.wav"
8441
8442       •   Read an audio stream and a video stream and play it back with
8443           ffplay:
8444
8445                   ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
8446
8447       •   Dump decoded frames to images and closed captions to a file
8448           (experimental):
8449
8450                   ffmpeg -f lavfi -i "movie=test.ts[out0+subcc]" -map v frame%08d.png -map s -c copy -f rawvideo subcc.bin
8451
8452   libcdio
8453       Audio-CD input device based on libcdio.
8454
8455       To enable this input device during configuration you need libcdio
8456       installed on your system. It requires the configure option
8457       "--enable-libcdio".
8458
8459       This device allows playing and grabbing from an Audio-CD.
8460
8461       For example to copy with ffmpeg the entire Audio-CD in /dev/sr0, you
8462       may run the command:
8463
8464               ffmpeg -f libcdio -i /dev/sr0 cd.wav
8465
8466       Options
8467
8468       speed
8469           Set drive reading speed. Default value is 0.
8470
8471           The speed is specified CD-ROM speed units. The speed is set through
8472           the libcdio "cdio_cddap_speed_set" function. On many CD-ROM drives,
8473           specifying a value too large will result in using the fastest
8474           speed.
8475
8476       paranoia_mode
8477           Set paranoia recovery mode flags. It accepts one of the following
8478           values:
8479
8480           disable
8481           verify
8482           overlap
8483           neverskip
8484           full
8485
8486           Default value is disable.
8487
8488           For more information about the available recovery modes, consult
8489           the paranoia project documentation.
8490
8491   libdc1394
8492       IIDC1394 input device, based on libdc1394 and libraw1394.
8493
8494       Requires the configure option "--enable-libdc1394".
8495
8496       Options
8497
8498       framerate
8499           Set the frame rate. Default is "ntsc", corresponding to a frame
8500           rate of "30000/1001".
8501
8502       pixel_format
8503           Select the pixel format. Default is "uyvy422".
8504
8505       video_size
8506           Set the video size given as a string such as "640x480" or "hd720".
8507           Default is "qvga".
8508
8509   openal
8510       The OpenAL input device provides audio capture on all systems with a
8511       working OpenAL 1.1 implementation.
8512
8513       To enable this input device during configuration, you need OpenAL
8514       headers and libraries installed on your system, and need to configure
8515       FFmpeg with "--enable-openal".
8516
8517       OpenAL headers and libraries should be provided as part of your OpenAL
8518       implementation, or as an additional download (an SDK). Depending on
8519       your installation you may need to specify additional flags via the
8520       "--extra-cflags" and "--extra-ldflags" for allowing the build system to
8521       locate the OpenAL headers and libraries.
8522
8523       An incomplete list of OpenAL implementations follows:
8524
8525       Creative
8526           The official Windows implementation, providing hardware
8527           acceleration with supported devices and software fallback.  See
8528           <http://openal.org/>.
8529
8530       OpenAL Soft
8531           Portable, open source (LGPL) software implementation. Includes
8532           backends for the most common sound APIs on the Windows, Linux,
8533           Solaris, and BSD operating systems.  See
8534           <http://kcat.strangesoft.net/openal.html>.
8535
8536       Apple
8537           OpenAL is part of Core Audio, the official Mac OS X Audio
8538           interface.  See
8539           <http://developer.apple.com/technologies/mac/audio-and-video.html>
8540
8541       This device allows one to capture from an audio input device handled
8542       through OpenAL.
8543
8544       You need to specify the name of the device to capture in the provided
8545       filename. If the empty string is provided, the device will
8546       automatically select the default device. You can get the list of the
8547       supported devices by using the option list_devices.
8548
8549       Options
8550
8551       channels
8552           Set the number of channels in the captured audio. Only the values 1
8553           (monaural) and 2 (stereo) are currently supported.  Defaults to 2.
8554
8555       sample_size
8556           Set the sample size (in bits) of the captured audio. Only the
8557           values 8 and 16 are currently supported. Defaults to 16.
8558
8559       sample_rate
8560           Set the sample rate (in Hz) of the captured audio.  Defaults to
8561           44.1k.
8562
8563       list_devices
8564           If set to true, print a list of devices and exit.  Defaults to
8565           false.
8566
8567       Examples
8568
8569       Print the list of OpenAL supported devices and exit:
8570
8571               $ ffmpeg -list_devices true -f openal -i dummy out.ogg
8572
8573       Capture from the OpenAL device DR-BT101 via PulseAudio:
8574
8575               $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out.ogg
8576
8577       Capture from the default device (note the empty string '' as filename):
8578
8579               $ ffmpeg -f openal -i '' out.ogg
8580
8581       Capture from two devices simultaneously, writing to two different
8582       files, within the same ffmpeg command:
8583
8584               $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out1.ogg -f openal -i 'ALSA Default' out2.ogg
8585
8586       Note: not all OpenAL implementations support multiple simultaneous
8587       capture - try the latest OpenAL Soft if the above does not work.
8588
8589   oss
8590       Open Sound System input device.
8591
8592       The filename to provide to the input device is the device node
8593       representing the OSS input device, and is usually set to /dev/dsp.
8594
8595       For example to grab from /dev/dsp using ffmpeg use the command:
8596
8597               ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
8598
8599       For more information about OSS see:
8600       <http://manuals.opensound.com/usersguide/dsp.html>
8601
8602       Options
8603
8604       sample_rate
8605           Set the sample rate in Hz. Default is 48000.
8606
8607       channels
8608           Set the number of channels. Default is 2.
8609
8610   pulse
8611       PulseAudio input device.
8612
8613       To enable this output device you need to configure FFmpeg with
8614       "--enable-libpulse".
8615
8616       The filename to provide to the input device is a source device or the
8617       string "default"
8618
8619       To list the PulseAudio source devices and their properties you can
8620       invoke the command pactl list sources.
8621
8622       More information about PulseAudio can be found on
8623       <http://www.pulseaudio.org>.
8624
8625       Options
8626
8627       server
8628           Connect to a specific PulseAudio server, specified by an IP
8629           address.  Default server is used when not provided.
8630
8631       name
8632           Specify the application name PulseAudio will use when showing
8633           active clients, by default it is the "LIBAVFORMAT_IDENT" string.
8634
8635       stream_name
8636           Specify the stream name PulseAudio will use when showing active
8637           streams, by default it is "record".
8638
8639       sample_rate
8640           Specify the samplerate in Hz, by default 48kHz is used.
8641
8642       channels
8643           Specify the channels in use, by default 2 (stereo) is set.
8644
8645       frame_size
8646           This option does nothing and is deprecated.
8647
8648       fragment_size
8649           Specify the size in bytes of the minimal buffering fragment in
8650           PulseAudio, it will affect the audio latency. By default it is set
8651           to 50 ms amount of data.
8652
8653       wallclock
8654           Set the initial PTS using the current time. Default is 1.
8655
8656       Examples
8657
8658       Record a stream from default device:
8659
8660               ffmpeg -f pulse -i default /tmp/pulse.wav
8661
8662   sndio
8663       sndio input device.
8664
8665       To enable this input device during configuration you need libsndio
8666       installed on your system.
8667
8668       The filename to provide to the input device is the device node
8669       representing the sndio input device, and is usually set to /dev/audio0.
8670
8671       For example to grab from /dev/audio0 using ffmpeg use the command:
8672
8673               ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
8674
8675       Options
8676
8677       sample_rate
8678           Set the sample rate in Hz. Default is 48000.
8679
8680       channels
8681           Set the number of channels. Default is 2.
8682
8683   video4linux2, v4l2
8684       Video4Linux2 input video device.
8685
8686       "v4l2" can be used as alias for "video4linux2".
8687
8688       If FFmpeg is built with v4l-utils support (by using the
8689       "--enable-libv4l2" configure option), it is possible to use it with the
8690       "-use_libv4l2" input device option.
8691
8692       The name of the device to grab is a file device node, usually Linux
8693       systems tend to automatically create such nodes when the device (e.g.
8694       an USB webcam) is plugged into the system, and has a name of the kind
8695       /dev/videoN, where N is a number associated to the device.
8696
8697       Video4Linux2 devices usually support a limited set of widthxheight
8698       sizes and frame rates. You can check which are supported using
8699       -list_formats all for Video4Linux2 devices.  Some devices, like TV
8700       cards, support one or more standards. It is possible to list all the
8701       supported standards using -list_standards all.
8702
8703       The time base for the timestamps is 1 microsecond. Depending on the
8704       kernel version and configuration, the timestamps may be derived from
8705       the real time clock (origin at the Unix Epoch) or the monotonic clock
8706       (origin usually at boot time, unaffected by NTP or manual changes to
8707       the clock). The -timestamps abs or -ts abs option can be used to force
8708       conversion into the real time clock.
8709
8710       Some usage examples of the video4linux2 device with ffmpeg and ffplay:
8711
8712       •   List supported formats for a video4linux2 device:
8713
8714                   ffplay -f video4linux2 -list_formats all /dev/video0
8715
8716       •   Grab and show the input of a video4linux2 device:
8717
8718                   ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
8719
8720       •   Grab and record the input of a video4linux2 device, leave the frame
8721           rate and size as previously set:
8722
8723                   ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
8724
8725       For more information about Video4Linux, check <http://linuxtv.org/>.
8726
8727       Options
8728
8729       standard
8730           Set the standard. Must be the name of a supported standard. To get
8731           a list of the supported standards, use the list_standards option.
8732
8733       channel
8734           Set the input channel number. Default to -1, which means using the
8735           previously selected channel.
8736
8737       video_size
8738           Set the video frame size. The argument must be a string in the form
8739           WIDTHxHEIGHT or a valid size abbreviation.
8740
8741       pixel_format
8742           Select the pixel format (only valid for raw video input).
8743
8744       input_format
8745           Set the preferred pixel format (for raw video) or a codec name.
8746           This option allows one to select the input format, when several are
8747           available.
8748
8749       framerate
8750           Set the preferred video frame rate.
8751
8752       list_formats
8753           List available formats (supported pixel formats, codecs, and frame
8754           sizes) and exit.
8755
8756           Available values are:
8757
8758           all Show all available (compressed and non-compressed) formats.
8759
8760           raw Show only raw video (non-compressed) formats.
8761
8762           compressed
8763               Show only compressed formats.
8764
8765       list_standards
8766           List supported standards and exit.
8767
8768           Available values are:
8769
8770           all Show all supported standards.
8771
8772       timestamps, ts
8773           Set type of timestamps for grabbed frames.
8774
8775           Available values are:
8776
8777           default
8778               Use timestamps from the kernel.
8779
8780           abs Use absolute timestamps (wall clock).
8781
8782           mono2abs
8783               Force conversion from monotonic to absolute timestamps.
8784
8785           Default value is "default".
8786
8787       use_libv4l2
8788           Use libv4l2 (v4l-utils) conversion functions. Default is 0.
8789
8790   vfwcap
8791       VfW (Video for Windows) capture input device.
8792
8793       The filename passed as input is the capture driver number, ranging from
8794       0 to 9. You may use "list" as filename to print a list of drivers. Any
8795       other filename will be interpreted as device number 0.
8796
8797       Options
8798
8799       video_size
8800           Set the video frame size.
8801
8802       framerate
8803           Set the grabbing frame rate. Default value is "ntsc", corresponding
8804           to a frame rate of "30000/1001".
8805
8806   x11grab
8807       X11 video input device.
8808
8809       To enable this input device during configuration you need libxcb
8810       installed on your system. It will be automatically detected during
8811       configuration.
8812
8813       This device allows one to capture a region of an X11 display.
8814
8815       The filename passed as input has the syntax:
8816
8817               [<hostname>]:<display_number>.<screen_number>[+<x_offset>,<y_offset>]
8818
8819       hostname:display_number.screen_number specifies the X11 display name of
8820       the screen to grab from. hostname can be omitted, and defaults to
8821       "localhost". The environment variable DISPLAY contains the default
8822       display name.
8823
8824       x_offset and y_offset specify the offsets of the grabbed area with
8825       respect to the top-left border of the X11 screen. They default to 0.
8826
8827       Check the X11 documentation (e.g. man X) for more detailed information.
8828
8829       Use the xdpyinfo program for getting basic information about the
8830       properties of your X11 display (e.g. grep for "name" or "dimensions").
8831
8832       For example to grab from :0.0 using ffmpeg:
8833
8834               ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0 out.mpg
8835
8836       Grab at position "10,20":
8837
8838               ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
8839
8840       Options
8841
8842       select_region
8843           Specify whether to select the grabbing area graphically using the
8844           pointer.  A value of 1 prompts the user to select the grabbing area
8845           graphically by clicking and dragging. A single click with no
8846           dragging will select the whole screen. A region with zero width or
8847           height will also select the whole screen. This option overwrites
8848           the video_size, grab_x, and grab_y options. Default value is 0.
8849
8850       draw_mouse
8851           Specify whether to draw the mouse pointer. A value of 0 specifies
8852           not to draw the pointer. Default value is 1.
8853
8854       follow_mouse
8855           Make the grabbed area follow the mouse. The argument can be
8856           "centered" or a number of pixels PIXELS.
8857
8858           When it is specified with "centered", the grabbing region follows
8859           the mouse pointer and keeps the pointer at the center of region;
8860           otherwise, the region follows only when the mouse pointer reaches
8861           within PIXELS (greater than zero) to the edge of region.
8862
8863           For example:
8864
8865                   ffmpeg -f x11grab -follow_mouse centered -framerate 25 -video_size cif -i :0.0 out.mpg
8866
8867           To follow only when the mouse pointer reaches within 100 pixels to
8868           edge:
8869
8870                   ffmpeg -f x11grab -follow_mouse 100 -framerate 25 -video_size cif -i :0.0 out.mpg
8871
8872       framerate
8873           Set the grabbing frame rate. Default value is "ntsc", corresponding
8874           to a frame rate of "30000/1001".
8875
8876       show_region
8877           Show grabbed region on screen.
8878
8879           If show_region is specified with 1, then the grabbing region will
8880           be indicated on screen. With this option, it is easy to know what
8881           is being grabbed if only a portion of the screen is grabbed.
8882
8883       region_border
8884           Set the region border thickness if -show_region 1 is used.  Range
8885           is 1 to 128 and default is 3 (XCB-based x11grab only).
8886
8887           For example:
8888
8889                   ffmpeg -f x11grab -show_region 1 -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
8890
8891           With follow_mouse:
8892
8893                   ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_size cif -i :0.0 out.mpg
8894
8895       window_id
8896           Grab this window, instead of the whole screen. Default value is 0,
8897           which maps to the whole screen (root window).
8898
8899           The id of a window can be found using the xwininfo program,
8900           possibly with options -tree and -root.
8901
8902           If the window is later enlarged, the new area is not recorded.
8903           Video ends when the window is closed, unmapped (i.e., iconified) or
8904           shrunk beyond the video size (which defaults to the initial window
8905           size).
8906
8907           This option disables options follow_mouse and select_region.
8908
8909       video_size
8910           Set the video frame size. Default is the full desktop or window.
8911
8912       grab_x
8913       grab_y
8914           Set the grabbing region coordinates. They are expressed as offset
8915           from the top left corner of the X11 window and correspond to the
8916           x_offset and y_offset parameters in the device name. The default
8917           value for both options is 0.
8918

RESAMPLER OPTIONS

8920       The audio resampler supports the following named options.
8921
8922       Options may be set by specifying -option value in the FFmpeg tools,
8923       option=value for the aresample filter, by setting the value explicitly
8924       in the "SwrContext" options or using the libavutil/opt.h API for
8925       programmatic use.
8926
8927       ich, in_channel_count
8928           Set the number of input channels. Default value is 0. Setting this
8929           value is not mandatory if the corresponding channel layout
8930           in_channel_layout is set.
8931
8932       och, out_channel_count
8933           Set the number of output channels. Default value is 0. Setting this
8934           value is not mandatory if the corresponding channel layout
8935           out_channel_layout is set.
8936
8937       uch, used_channel_count
8938           Set the number of used input channels. Default value is 0. This
8939           option is only used for special remapping.
8940
8941       isr, in_sample_rate
8942           Set the input sample rate. Default value is 0.
8943
8944       osr, out_sample_rate
8945           Set the output sample rate. Default value is 0.
8946
8947       isf, in_sample_fmt
8948           Specify the input sample format. It is set by default to "none".
8949
8950       osf, out_sample_fmt
8951           Specify the output sample format. It is set by default to "none".
8952
8953       tsf, internal_sample_fmt
8954           Set the internal sample format. Default value is "none".  This will
8955           automatically be chosen when it is not explicitly set.
8956
8957       icl, in_channel_layout
8958       ocl, out_channel_layout
8959           Set the input/output channel layout.
8960
8961           See the Channel Layout section in the ffmpeg-utils(1) manual for
8962           the required syntax.
8963
8964       clev, center_mix_level
8965           Set the center mix level. It is a value expressed in deciBel, and
8966           must be in the interval [-32,32].
8967
8968       slev, surround_mix_level
8969           Set the surround mix level. It is a value expressed in deciBel, and
8970           must be in the interval [-32,32].
8971
8972       lfe_mix_level
8973           Set LFE mix into non LFE level. It is used when there is a LFE
8974           input but no LFE output. It is a value expressed in deciBel, and
8975           must be in the interval [-32,32].
8976
8977       rmvol, rematrix_volume
8978           Set rematrix volume. Default value is 1.0.
8979
8980       rematrix_maxval
8981           Set maximum output value for rematrixing.  This can be used to
8982           prevent clipping vs. preventing volume reduction.  A value of 1.0
8983           prevents clipping.
8984
8985       flags, swr_flags
8986           Set flags used by the converter. Default value is 0.
8987
8988           It supports the following individual flags:
8989
8990           res force resampling, this flag forces resampling to be used even
8991               when the input and output sample rates match.
8992
8993       dither_scale
8994           Set the dither scale. Default value is 1.
8995
8996       dither_method
8997           Set dither method. Default value is 0.
8998
8999           Supported values:
9000
9001           rectangular
9002               select rectangular dither
9003
9004           triangular
9005               select triangular dither
9006
9007           triangular_hp
9008               select triangular dither with high pass
9009
9010           lipshitz
9011               select Lipshitz noise shaping dither.
9012
9013           shibata
9014               select Shibata noise shaping dither.
9015
9016           low_shibata
9017               select low Shibata noise shaping dither.
9018
9019           high_shibata
9020               select high Shibata noise shaping dither.
9021
9022           f_weighted
9023               select f-weighted noise shaping dither
9024
9025           modified_e_weighted
9026               select modified-e-weighted noise shaping dither
9027
9028           improved_e_weighted
9029               select improved-e-weighted noise shaping dither
9030
9031       resampler
9032           Set resampling engine. Default value is swr.
9033
9034           Supported values:
9035
9036           swr select the native SW Resampler; filter options precision and
9037               cheby are not applicable in this case.
9038
9039           soxr
9040               select the SoX Resampler (where available); compensation, and
9041               filter options filter_size, phase_shift, exact_rational,
9042               filter_type & kaiser_beta, are not applicable in this case.
9043
9044       filter_size
9045           For swr only, set resampling filter size, default value is 32.
9046
9047       phase_shift
9048           For swr only, set resampling phase shift, default value is 10, and
9049           must be in the interval [0,30].
9050
9051       linear_interp
9052           Use linear interpolation when enabled (the default). Disable it if
9053           you want to preserve speed instead of quality when exact_rational
9054           fails.
9055
9056       exact_rational
9057           For swr only, when enabled, try to use exact phase_count based on
9058           input and output sample rate. However, if it is larger than "1 <<
9059           phase_shift", the phase_count will be "1 << phase_shift" as
9060           fallback. Default is enabled.
9061
9062       cutoff
9063           Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must
9064           be a float value between 0 and 1.  Default value is 0.97 with swr,
9065           and 0.91 with soxr (which, with a sample-rate of 44100, preserves
9066           the entire audio band to 20kHz).
9067
9068       precision
9069           For soxr only, the precision in bits to which the resampled signal
9070           will be calculated.  The default value of 20 (which, with suitable
9071           dithering, is appropriate for a destination bit-depth of 16) gives
9072           SoX's 'High Quality'; a value of 28 gives SoX's 'Very High
9073           Quality'.
9074
9075       cheby
9076           For soxr only, selects passband rolloff none (Chebyshev) & higher-
9077           precision approximation for 'irrational' ratios. Default value is
9078           0.
9079
9080       async
9081           For swr only, simple 1 parameter audio sync to timestamps using
9082           stretching, squeezing, filling and trimming. Setting this to 1 will
9083           enable filling and trimming, larger values represent the maximum
9084           amount in samples that the data may be stretched or squeezed for
9085           each second.  Default value is 0, thus no compensation is applied
9086           to make the samples match the audio timestamps.
9087
9088       first_pts
9089           For swr only, assume the first pts should be this value. The time
9090           unit is 1 / sample rate.  This allows for padding/trimming at the
9091           start of stream. By default, no assumption is made about the first
9092           frame's expected pts, so no padding or trimming is done. For
9093           example, this could be set to 0 to pad the beginning with silence
9094           if an audio stream starts after the video stream or to trim any
9095           samples with a negative pts due to encoder delay.
9096
9097       min_comp
9098           For swr only, set the minimum difference between timestamps and
9099           audio data (in seconds) to trigger stretching/squeezing/filling or
9100           trimming of the data to make it match the timestamps. The default
9101           is that stretching/squeezing/filling and trimming is disabled
9102           (min_comp = "FLT_MAX").
9103
9104       min_hard_comp
9105           For swr only, set the minimum difference between timestamps and
9106           audio data (in seconds) to trigger adding/dropping samples to make
9107           it match the timestamps.  This option effectively is a threshold to
9108           select between hard (trim/fill) and soft (squeeze/stretch)
9109           compensation. Note that all compensation is by default disabled
9110           through min_comp.  The default is 0.1.
9111
9112       comp_duration
9113           For swr only, set duration (in seconds) over which data is
9114           stretched/squeezed to make it match the timestamps. Must be a non-
9115           negative double float value, default value is 1.0.
9116
9117       max_soft_comp
9118           For swr only, set maximum factor by which data is
9119           stretched/squeezed to make it match the timestamps. Must be a non-
9120           negative double float value, default value is 0.
9121
9122       matrix_encoding
9123           Select matrixed stereo encoding.
9124
9125           It accepts the following values:
9126
9127           none
9128               select none
9129
9130           dolby
9131               select Dolby
9132
9133           dplii
9134               select Dolby Pro Logic II
9135
9136           Default value is "none".
9137
9138       filter_type
9139           For swr only, select resampling filter type. This only affects
9140           resampling operations.
9141
9142           It accepts the following values:
9143
9144           cubic
9145               select cubic
9146
9147           blackman_nuttall
9148               select Blackman Nuttall windowed sinc
9149
9150           kaiser
9151               select Kaiser windowed sinc
9152
9153       kaiser_beta
9154           For swr only, set Kaiser window beta value. Must be a double float
9155           value in the interval [2,16], default value is 9.
9156
9157       output_sample_bits
9158           For swr only, set number of used output sample bits for dithering.
9159           Must be an integer in the interval [0,64], default value is 0,
9160           which means it's not used.
9161

SCALER OPTIONS

9163       The video scaler supports the following named options.
9164
9165       Options may be set by specifying -option value in the FFmpeg tools,
9166       with a few API-only exceptions noted below.  For programmatic use, they
9167       can be set explicitly in the "SwsContext" options or through the
9168       libavutil/opt.h API.
9169
9170       sws_flags
9171           Set the scaler flags. This is also used to set the scaling
9172           algorithm. Only a single algorithm should be selected. Default
9173           value is bicubic.
9174
9175           It accepts the following values:
9176
9177           fast_bilinear
9178               Select fast bilinear scaling algorithm.
9179
9180           bilinear
9181               Select bilinear scaling algorithm.
9182
9183           bicubic
9184               Select bicubic scaling algorithm.
9185
9186           experimental
9187               Select experimental scaling algorithm.
9188
9189           neighbor
9190               Select nearest neighbor rescaling algorithm.
9191
9192           area
9193               Select averaging area rescaling algorithm.
9194
9195           bicublin
9196               Select bicubic scaling algorithm for the luma component,
9197               bilinear for chroma components.
9198
9199           gauss
9200               Select Gaussian rescaling algorithm.
9201
9202           sinc
9203               Select sinc rescaling algorithm.
9204
9205           lanczos
9206               Select Lanczos rescaling algorithm. The default width (alpha)
9207               is 3 and can be changed by setting "param0".
9208
9209           spline
9210               Select natural bicubic spline rescaling algorithm.
9211
9212           print_info
9213               Enable printing/debug logging.
9214
9215           accurate_rnd
9216               Enable accurate rounding.
9217
9218           full_chroma_int
9219               Enable full chroma interpolation.
9220
9221           full_chroma_inp
9222               Select full chroma input.
9223
9224           bitexact
9225               Enable bitexact output.
9226
9227       srcw (API only)
9228           Set source width.
9229
9230       srch (API only)
9231           Set source height.
9232
9233       dstw (API only)
9234           Set destination width.
9235
9236       dsth (API only)
9237           Set destination height.
9238
9239       src_format (API only)
9240           Set source pixel format (must be expressed as an integer).
9241
9242       dst_format (API only)
9243           Set destination pixel format (must be expressed as an integer).
9244
9245       src_range (boolean)
9246           If value is set to 1, indicates source is full range. Default value
9247           is 0, which indicates source is limited range.
9248
9249       dst_range (boolean)
9250           If value is set to 1, enable full range for destination. Default
9251           value is 0, which enables limited range.
9252
9253       param0, param1
9254           Set scaling algorithm parameters. The specified values are specific
9255           of some scaling algorithms and ignored by others. The specified
9256           values are floating point number values.
9257
9258       sws_dither
9259           Set the dithering algorithm. Accepts one of the following values.
9260           Default value is auto.
9261
9262           auto
9263               automatic choice
9264
9265           none
9266               no dithering
9267
9268           bayer
9269               bayer dither
9270
9271           ed  error diffusion dither
9272
9273           a_dither
9274               arithmetic dither, based using addition
9275
9276           x_dither
9277               arithmetic dither, based using xor (more random/less apparent
9278               patterning that a_dither).
9279
9280       alphablend
9281           Set the alpha blending to use when the input has alpha but the
9282           output does not.  Default value is none.
9283
9284           uniform_color
9285               Blend onto a uniform background color
9286
9287           checkerboard
9288               Blend onto a checkerboard
9289
9290           none
9291               No blending
9292

FILTERING INTRODUCTION

9294       Filtering in FFmpeg is enabled through the libavfilter library.
9295
9296       In libavfilter, a filter can have multiple inputs and multiple outputs.
9297       To illustrate the sorts of things that are possible, we consider the
9298       following filtergraph.
9299
9300                               [main]
9301               input --> split ---------------------> overlay --> output
9302                           |                             ^
9303                           |[tmp]                  [flip]|
9304                           +-----> crop --> vflip -------+
9305
9306       This filtergraph splits the input stream in two streams, then sends one
9307       stream through the crop filter and the vflip filter, before merging it
9308       back with the other stream by overlaying it on top. You can use the
9309       following command to achieve this:
9310
9311               ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
9312
9313       The result will be that the top half of the video is mirrored onto the
9314       bottom half of the output video.
9315
9316       Filters in the same linear chain are separated by commas, and distinct
9317       linear chains of filters are separated by semicolons. In our example,
9318       crop,vflip are in one linear chain, split and overlay are separately in
9319       another. The points where the linear chains join are labelled by names
9320       enclosed in square brackets. In the example, the split filter generates
9321       two outputs that are associated to the labels [main] and [tmp].
9322
9323       The stream sent to the second output of split, labelled as [tmp], is
9324       processed through the crop filter, which crops away the lower half part
9325       of the video, and then vertically flipped. The overlay filter takes in
9326       input the first unchanged output of the split filter (which was
9327       labelled as [main]), and overlay on its lower half the output generated
9328       by the crop,vflip filterchain.
9329
9330       Some filters take in input a list of parameters: they are specified
9331       after the filter name and an equal sign, and are separated from each
9332       other by a colon.
9333
9334       There exist so-called source filters that do not have an audio/video
9335       input, and sink filters that will not have audio/video output.
9336

GRAPH

9338       The graph2dot program included in the FFmpeg tools directory can be
9339       used to parse a filtergraph description and issue a corresponding
9340       textual representation in the dot language.
9341
9342       Invoke the command:
9343
9344               graph2dot -h
9345
9346       to see how to use graph2dot.
9347
9348       You can then pass the dot description to the dot program (from the
9349       graphviz suite of programs) and obtain a graphical representation of
9350       the filtergraph.
9351
9352       For example the sequence of commands:
9353
9354               echo <GRAPH_DESCRIPTION> | \
9355               tools/graph2dot -o graph.tmp && \
9356               dot -Tpng graph.tmp -o graph.png && \
9357               display graph.png
9358
9359       can be used to create and display an image representing the graph
9360       described by the GRAPH_DESCRIPTION string. Note that this string must
9361       be a complete self-contained graph, with its inputs and outputs
9362       explicitly defined.  For example if your command line is of the form:
9363
9364               ffmpeg -i infile -vf scale=640:360 outfile
9365
9366       your GRAPH_DESCRIPTION string will need to be of the form:
9367
9368               nullsrc,scale=640:360,nullsink
9369
9370       you may also need to set the nullsrc parameters and add a format filter
9371       in order to simulate a specific input file.
9372

FILTERGRAPH DESCRIPTION

9374       A filtergraph is a directed graph of connected filters. It can contain
9375       cycles, and there can be multiple links between a pair of filters. Each
9376       link has one input pad on one side connecting it to one filter from
9377       which it takes its input, and one output pad on the other side
9378       connecting it to one filter accepting its output.
9379
9380       Each filter in a filtergraph is an instance of a filter class
9381       registered in the application, which defines the features and the
9382       number of input and output pads of the filter.
9383
9384       A filter with no input pads is called a "source", and a filter with no
9385       output pads is called a "sink".
9386
9387   Filtergraph syntax
9388       A filtergraph has a textual representation, which is recognized by the
9389       -filter/-vf/-af and -filter_complex options in ffmpeg and -vf/-af in
9390       ffplay, and by the "avfilter_graph_parse_ptr()" function defined in
9391       libavfilter/avfilter.h.
9392
9393       A filterchain consists of a sequence of connected filters, each one
9394       connected to the previous one in the sequence. A filterchain is
9395       represented by a list of ","-separated filter descriptions.
9396
9397       A filtergraph consists of a sequence of filterchains. A sequence of
9398       filterchains is represented by a list of ";"-separated filterchain
9399       descriptions.
9400
9401       A filter is represented by a string of the form:
9402       [in_link_1]...[in_link_N]filter_name@id=arguments[out_link_1]...[out_link_M]
9403
9404       filter_name is the name of the filter class of which the described
9405       filter is an instance of, and has to be the name of one of the filter
9406       classes registered in the program optionally followed by "@id".  The
9407       name of the filter class is optionally followed by a string
9408       "=arguments".
9409
9410       arguments is a string which contains the parameters used to initialize
9411       the filter instance. It may have one of two forms:
9412
9413       •   A ':'-separated list of key=value pairs.
9414
9415       •   A ':'-separated list of value. In this case, the keys are assumed
9416           to be the option names in the order they are declared. E.g. the
9417           "fade" filter declares three options in this order -- type,
9418           start_frame and nb_frames. Then the parameter list in:0:30 means
9419           that the value in is assigned to the option type, 0 to start_frame
9420           and 30 to nb_frames.
9421
9422       •   A ':'-separated list of mixed direct value and long key=value
9423           pairs. The direct value must precede the key=value pairs, and
9424           follow the same constraints order of the previous point. The
9425           following key=value pairs can be set in any preferred order.
9426
9427       If the option value itself is a list of items (e.g. the "format" filter
9428       takes a list of pixel formats), the items in the list are usually
9429       separated by |.
9430
9431       The list of arguments can be quoted using the character ' as initial
9432       and ending mark, and the character \ for escaping the characters within
9433       the quoted text; otherwise the argument string is considered terminated
9434       when the next special character (belonging to the set []=;,) is
9435       encountered.
9436
9437       The name and arguments of the filter are optionally preceded and
9438       followed by a list of link labels.  A link label allows one to name a
9439       link and associate it to a filter output or input pad. The preceding
9440       labels in_link_1 ... in_link_N, are associated to the filter input
9441       pads, the following labels out_link_1 ... out_link_M, are associated to
9442       the output pads.
9443
9444       When two link labels with the same name are found in the filtergraph, a
9445       link between the corresponding input and output pad is created.
9446
9447       If an output pad is not labelled, it is linked by default to the first
9448       unlabelled input pad of the next filter in the filterchain.  For
9449       example in the filterchain
9450
9451               nullsrc, split[L1], [L2]overlay, nullsink
9452
9453       the split filter instance has two output pads, and the overlay filter
9454       instance two input pads. The first output pad of split is labelled
9455       "L1", the first input pad of overlay is labelled "L2", and the second
9456       output pad of split is linked to the second input pad of overlay, which
9457       are both unlabelled.
9458
9459       In a filter description, if the input label of the first filter is not
9460       specified, "in" is assumed; if the output label of the last filter is
9461       not specified, "out" is assumed.
9462
9463       In a complete filterchain all the unlabelled filter input and output
9464       pads must be connected. A filtergraph is considered valid if all the
9465       filter input and output pads of all the filterchains are connected.
9466
9467       Libavfilter will automatically insert scale filters where format
9468       conversion is required. It is possible to specify swscale flags for
9469       those automatically inserted scalers by prepending "sws_flags=flags;"
9470       to the filtergraph description.
9471
9472       Here is a BNF description of the filtergraph syntax:
9473
9474               <NAME>             ::= sequence of alphanumeric characters and '_'
9475               <FILTER_NAME>      ::= <NAME>["@"<NAME>]
9476               <LINKLABEL>        ::= "[" <NAME> "]"
9477               <LINKLABELS>       ::= <LINKLABEL> [<LINKLABELS>]
9478               <FILTER_ARGUMENTS> ::= sequence of chars (possibly quoted)
9479               <FILTER>           ::= [<LINKLABELS>] <FILTER_NAME> ["=" <FILTER_ARGUMENTS>] [<LINKLABELS>]
9480               <FILTERCHAIN>      ::= <FILTER> [,<FILTERCHAIN>]
9481               <FILTERGRAPH>      ::= [sws_flags=<flags>;] <FILTERCHAIN> [;<FILTERGRAPH>]
9482
9483   Notes on filtergraph escaping
9484       Filtergraph description composition entails several levels of escaping.
9485       See the "Quoting and escaping" section in the ffmpeg-utils(1) manual
9486       for more information about the employed escaping procedure.
9487
9488       A first level escaping affects the content of each filter option value,
9489       which may contain the special character ":" used to separate values, or
9490       one of the escaping characters "\'".
9491
9492       A second level escaping affects the whole filter description, which may
9493       contain the escaping characters "\'" or the special characters "[],;"
9494       used by the filtergraph description.
9495
9496       Finally, when you specify a filtergraph on a shell commandline, you
9497       need to perform a third level escaping for the shell special characters
9498       contained within it.
9499
9500       For example, consider the following string to be embedded in the
9501       drawtext filter description text value:
9502
9503               this is a 'string': may contain one, or more, special characters
9504
9505       This string contains the "'" special escaping character, and the ":"
9506       special character, so it needs to be escaped in this way:
9507
9508               text=this is a \'string\'\: may contain one, or more, special characters
9509
9510       A second level of escaping is required when embedding the filter
9511       description in a filtergraph description, in order to escape all the
9512       filtergraph special characters. Thus the example above becomes:
9513
9514               drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
9515
9516       (note that in addition to the "\'" escaping special characters, also
9517       "," needs to be escaped).
9518
9519       Finally an additional level of escaping is needed when writing the
9520       filtergraph description in a shell command, which depends on the
9521       escaping rules of the adopted shell. For example, assuming that "\" is
9522       special and needs to be escaped with another "\", the previous string
9523       will finally result in:
9524
9525               -vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
9526

TIMELINE EDITING

9528       Some filters support a generic enable option. For the filters
9529       supporting timeline editing, this option can be set to an expression
9530       which is evaluated before sending a frame to the filter. If the
9531       evaluation is non-zero, the filter will be enabled, otherwise the frame
9532       will be sent unchanged to the next filter in the filtergraph.
9533
9534       The expression accepts the following values:
9535
9536       t   timestamp expressed in seconds, NAN if the input timestamp is
9537           unknown
9538
9539       n   sequential number of the input frame, starting from 0
9540
9541       pos the position in the file of the input frame, NAN if unknown
9542
9543       w
9544       h   width and height of the input frame if video
9545
9546       Additionally, these filters support an enable command that can be used
9547       to re-define the expression.
9548
9549       Like any other filtering option, the enable option follows the same
9550       rules.
9551
9552       For example, to enable a blur filter (smartblur) from 10 seconds to 3
9553       minutes, and a curves filter starting at 3 seconds:
9554
9555               smartblur = enable='between(t,10,3*60)',
9556               curves    = enable='gte(t,3)' : preset=cross_process
9557
9558       See "ffmpeg -filters" to view which filters have timeline support.
9559

CHANGING OPTIONS AT RUNTIME WITH A COMMAND

9561       Some options can be changed during the operation of the filter using a
9562       command. These options are marked 'T' on the output of ffmpeg -h
9563       filter=<name of filter>.  The name of the command is the name of the
9564       option and the argument is the new value.
9565

OPTIONS FOR FILTERS WITH SEVERAL INPUTS

9567       Some filters with several inputs support a common set of options.
9568       These options can only be set by name, not with the short notation.
9569
9570       eof_action
9571           The action to take when EOF is encountered on the secondary input;
9572           it accepts one of the following values:
9573
9574           repeat
9575               Repeat the last frame (the default).
9576
9577           endall
9578               End both streams.
9579
9580           pass
9581               Pass the main input through.
9582
9583       shortest
9584           If set to 1, force the output to terminate when the shortest input
9585           terminates. Default value is 0.
9586
9587       repeatlast
9588           If set to 1, force the filter to extend the last frame of secondary
9589           streams until the end of the primary stream. A value of 0 disables
9590           this behavior.  Default value is 1.
9591

AUDIO FILTERS

9593       When you configure your FFmpeg build, you can disable any of the
9594       existing filters using "--disable-filters".  The configure output will
9595       show the audio filters included in your build.
9596
9597       Below is a description of the currently available audio filters.
9598
9599   acompressor
9600       A compressor is mainly used to reduce the dynamic range of a signal.
9601       Especially modern music is mostly compressed at a high ratio to improve
9602       the overall loudness. It's done to get the highest attention of a
9603       listener, "fatten" the sound and bring more "power" to the track.  If a
9604       signal is compressed too much it may sound dull or "dead" afterwards or
9605       it may start to "pump" (which could be a powerful effect but can also
9606       destroy a track completely).  The right compression is the key to reach
9607       a professional sound and is the high art of mixing and mastering.
9608       Because of its complex settings it may take a long time to get the
9609       right feeling for this kind of effect.
9610
9611       Compression is done by detecting the volume above a chosen level
9612       "threshold" and dividing it by the factor set with "ratio".  So if you
9613       set the threshold to -12dB and your signal reaches -6dB a ratio of 2:1
9614       will result in a signal at -9dB. Because an exact manipulation of the
9615       signal would cause distortion of the waveform the reduction can be
9616       levelled over the time. This is done by setting "Attack" and "Release".
9617       "attack" determines how long the signal has to rise above the threshold
9618       before any reduction will occur and "release" sets the time the signal
9619       has to fall below the threshold to reduce the reduction again. Shorter
9620       signals than the chosen attack time will be left untouched.  The
9621       overall reduction of the signal can be made up afterwards with the
9622       "makeup" setting. So compressing the peaks of a signal about 6dB and
9623       raising the makeup to this level results in a signal twice as loud than
9624       the source. To gain a softer entry in the compression the "knee"
9625       flattens the hard edge at the threshold in the range of the chosen
9626       decibels.
9627
9628       The filter accepts the following options:
9629
9630       level_in
9631           Set input gain. Default is 1. Range is between 0.015625 and 64.
9632
9633       mode
9634           Set mode of compressor operation. Can be "upward" or "downward".
9635           Default is "downward".
9636
9637       threshold
9638           If a signal of stream rises above this level it will affect the
9639           gain reduction.  By default it is 0.125. Range is between
9640           0.00097563 and 1.
9641
9642       ratio
9643           Set a ratio by which the signal is reduced. 1:2 means that if the
9644           level rose 4dB above the threshold, it will be only 2dB above after
9645           the reduction.  Default is 2. Range is between 1 and 20.
9646
9647       attack
9648           Amount of milliseconds the signal has to rise above the threshold
9649           before gain reduction starts. Default is 20. Range is between 0.01
9650           and 2000.
9651
9652       release
9653           Amount of milliseconds the signal has to fall below the threshold
9654           before reduction is decreased again. Default is 250. Range is
9655           between 0.01 and 9000.
9656
9657       makeup
9658           Set the amount by how much signal will be amplified after
9659           processing.  Default is 1. Range is from 1 to 64.
9660
9661       knee
9662           Curve the sharp knee around the threshold to enter gain reduction
9663           more softly.  Default is 2.82843. Range is between 1 and 8.
9664
9665       link
9666           Choose if the "average" level between all channels of input stream
9667           or the louder("maximum") channel of input stream affects the
9668           reduction. Default is "average".
9669
9670       detection
9671           Should the exact signal be taken in case of "peak" or an RMS one in
9672           case of "rms". Default is "rms" which is mostly smoother.
9673
9674       mix How much to use compressed signal in output. Default is 1.  Range
9675           is between 0 and 1.
9676
9677       Commands
9678
9679       This filter supports the all above options as commands.
9680
9681   acontrast
9682       Simple audio dynamic range compression/expansion filter.
9683
9684       The filter accepts the following options:
9685
9686       contrast
9687           Set contrast. Default is 33. Allowed range is between 0 and 100.
9688
9689   acopy
9690       Copy the input audio source unchanged to the output. This is mainly
9691       useful for testing purposes.
9692
9693   acrossfade
9694       Apply cross fade from one input audio stream to another input audio
9695       stream.  The cross fade is applied for specified duration near the end
9696       of first stream.
9697
9698       The filter accepts the following options:
9699
9700       nb_samples, ns
9701           Specify the number of samples for which the cross fade effect has
9702           to last.  At the end of the cross fade effect the first input audio
9703           will be completely silent. Default is 44100.
9704
9705       duration, d
9706           Specify the duration of the cross fade effect. See the Time
9707           duration section in the ffmpeg-utils(1) manual for the accepted
9708           syntax.  By default the duration is determined by nb_samples.  If
9709           set this option is used instead of nb_samples.
9710
9711       overlap, o
9712           Should first stream end overlap with second stream start. Default
9713           is enabled.
9714
9715       curve1
9716           Set curve for cross fade transition for first stream.
9717
9718       curve2
9719           Set curve for cross fade transition for second stream.
9720
9721           For description of available curve types see afade filter
9722           description.
9723
9724       Examples
9725
9726       •   Cross fade from one input to another:
9727
9728                   ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:c1=exp:c2=exp output.flac
9729
9730       •   Cross fade from one input to another but without overlapping:
9731
9732                   ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:o=0:c1=exp:c2=exp output.flac
9733
9734   acrossover
9735       Split audio stream into several bands.
9736
9737       This filter splits audio stream into two or more frequency ranges.
9738       Summing all streams back will give flat output.
9739
9740       The filter accepts the following options:
9741
9742       split
9743           Set split frequencies. Those must be positive and increasing.
9744
9745       order
9746           Set filter order for each band split. This controls filter roll-off
9747           or steepness of filter transfer function.  Available values are:
9748
9749           2nd 12 dB per octave.
9750
9751           4th 24 dB per octave.
9752
9753           6th 36 dB per octave.
9754
9755           8th 48 dB per octave.
9756
9757           10th
9758               60 dB per octave.
9759
9760           12th
9761               72 dB per octave.
9762
9763           14th
9764               84 dB per octave.
9765
9766           16th
9767               96 dB per octave.
9768
9769           18th
9770               108 dB per octave.
9771
9772           20th
9773               120 dB per octave.
9774
9775           Default is 4th.
9776
9777       level
9778           Set input gain level. Allowed range is from 0 to 1. Default value
9779           is 1.
9780
9781       gains
9782           Set output gain for each band. Default value is 1 for all bands.
9783
9784       precision
9785           Set which precision to use when processing samples.
9786
9787           auto
9788               Auto pick internal sample format depending on other filters.
9789
9790           float
9791               Always use single-floating point precision sample format.
9792
9793           double
9794               Always use double-floating point precision sample format.
9795
9796           Default value is "auto".
9797
9798       Examples
9799
9800       •   Split input audio stream into two bands (low and high) with split
9801           frequency of 1500 Hz, each band will be in separate stream:
9802
9803                   ffmpeg -i in.flac -filter_complex 'acrossover=split=1500[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
9804
9805       •   Same as above, but with higher filter order:
9806
9807                   ffmpeg -i in.flac -filter_complex 'acrossover=split=1500:order=8th[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
9808
9809       •   Same as above, but also with additional middle band (frequencies
9810           between 1500 and 8000):
9811
9812                   ffmpeg -i in.flac -filter_complex 'acrossover=split=1500 8000:order=8th[LOW][MID][HIGH]' -map '[LOW]' low.wav -map '[MID]' mid.wav -map '[HIGH]' high.wav
9813
9814   acrusher
9815       Reduce audio bit resolution.
9816
9817       This filter is bit crusher with enhanced functionality. A bit crusher
9818       is used to audibly reduce number of bits an audio signal is sampled
9819       with. This doesn't change the bit depth at all, it just produces the
9820       effect. Material reduced in bit depth sounds more harsh and "digital".
9821       This filter is able to even round to continuous values instead of
9822       discrete bit depths.  Additionally it has a D/C offset which results in
9823       different crushing of the lower and the upper half of the signal.  An
9824       Anti-Aliasing setting is able to produce "softer" crushing sounds.
9825
9826       Another feature of this filter is the logarithmic mode.  This setting
9827       switches from linear distances between bits to logarithmic ones.  The
9828       result is a much more "natural" sounding crusher which doesn't gate low
9829       signals for example. The human ear has a logarithmic perception, so
9830       this kind of crushing is much more pleasant.  Logarithmic crushing is
9831       also able to get anti-aliased.
9832
9833       The filter accepts the following options:
9834
9835       level_in
9836           Set level in.
9837
9838       level_out
9839           Set level out.
9840
9841       bits
9842           Set bit reduction.
9843
9844       mix Set mixing amount.
9845
9846       mode
9847           Can be linear: "lin" or logarithmic: "log".
9848
9849       dc  Set DC.
9850
9851       aa  Set anti-aliasing.
9852
9853       samples
9854           Set sample reduction.
9855
9856       lfo Enable LFO. By default disabled.
9857
9858       lforange
9859           Set LFO range.
9860
9861       lforate
9862           Set LFO rate.
9863
9864       Commands
9865
9866       This filter supports the all above options as commands.
9867
9868   acue
9869       Delay audio filtering until a given wallclock timestamp. See the cue
9870       filter.
9871
9872   adeclick
9873       Remove impulsive noise from input audio.
9874
9875       Samples detected as impulsive noise are replaced by interpolated
9876       samples using autoregressive modelling.
9877
9878       window, w
9879           Set window size, in milliseconds. Allowed range is from 10 to 100.
9880           Default value is 55 milliseconds.  This sets size of window which
9881           will be processed at once.
9882
9883       overlap, o
9884           Set window overlap, in percentage of window size. Allowed range is
9885           from 50 to 95. Default value is 75 percent.  Setting this to a very
9886           high value increases impulsive noise removal but makes whole
9887           process much slower.
9888
9889       arorder, a
9890           Set autoregression order, in percentage of window size. Allowed
9891           range is from 0 to 25. Default value is 2 percent. This option also
9892           controls quality of interpolated samples using neighbour good
9893           samples.
9894
9895       threshold, t
9896           Set threshold value. Allowed range is from 1 to 100.  Default value
9897           is 2.  This controls the strength of impulsive noise which is going
9898           to be removed.  The lower value, the more samples will be detected
9899           as impulsive noise.
9900
9901       burst, b
9902           Set burst fusion, in percentage of window size. Allowed range is 0
9903           to 10. Default value is 2.  If any two samples detected as noise
9904           are spaced less than this value then any sample between those two
9905           samples will be also detected as noise.
9906
9907       method, m
9908           Set overlap method.
9909
9910           It accepts the following values:
9911
9912           add, a
9913               Select overlap-add method. Even not interpolated samples are
9914               slightly changed with this method.
9915
9916           save, s
9917               Select overlap-save method. Not interpolated samples remain
9918               unchanged.
9919
9920           Default value is "a".
9921
9922   adeclip
9923       Remove clipped samples from input audio.
9924
9925       Samples detected as clipped are replaced by interpolated samples using
9926       autoregressive modelling.
9927
9928       window, w
9929           Set window size, in milliseconds. Allowed range is from 10 to 100.
9930           Default value is 55 milliseconds.  This sets size of window which
9931           will be processed at once.
9932
9933       overlap, o
9934           Set window overlap, in percentage of window size. Allowed range is
9935           from 50 to 95. Default value is 75 percent.
9936
9937       arorder, a
9938           Set autoregression order, in percentage of window size. Allowed
9939           range is from 0 to 25. Default value is 8 percent. This option also
9940           controls quality of interpolated samples using neighbour good
9941           samples.
9942
9943       threshold, t
9944           Set threshold value. Allowed range is from 1 to 100.  Default value
9945           is 10. Higher values make clip detection less aggressive.
9946
9947       hsize, n
9948           Set size of histogram used to detect clips. Allowed range is from
9949           100 to 9999.  Default value is 1000. Higher values make clip
9950           detection less aggressive.
9951
9952       method, m
9953           Set overlap method.
9954
9955           It accepts the following values:
9956
9957           add, a
9958               Select overlap-add method. Even not interpolated samples are
9959               slightly changed with this method.
9960
9961           save, s
9962               Select overlap-save method. Not interpolated samples remain
9963               unchanged.
9964
9965           Default value is "a".
9966
9967   adecorrelate
9968       Apply decorrelation to input audio stream.
9969
9970       The filter accepts the following options:
9971
9972       stages
9973           Set decorrelation stages of filtering. Allowed range is from 1 to
9974           16. Default value is 6.
9975
9976       seed
9977           Set random seed used for setting delay in samples across channels.
9978
9979   adelay
9980       Delay one or more audio channels.
9981
9982       Samples in delayed channel are filled with silence.
9983
9984       The filter accepts the following option:
9985
9986       delays
9987           Set list of delays in milliseconds for each channel separated by
9988           '|'.  Unused delays will be silently ignored. If number of given
9989           delays is smaller than number of channels all remaining channels
9990           will not be delayed.  If you want to delay exact number of samples,
9991           append 'S' to number.  If you want instead to delay in seconds,
9992           append 's' to number.
9993
9994       all Use last set delay for all remaining channels. By default is
9995           disabled.  This option if enabled changes how option "delays" is
9996           interpreted.
9997
9998       Examples
9999
10000       •   Delay first channel by 1.5 seconds, the third channel by 0.5
10001           seconds and leave the second channel (and any other channels that
10002           may be present) unchanged.
10003
10004                   adelay=1500|0|500
10005
10006       •   Delay second channel by 500 samples, the third channel by 700
10007           samples and leave the first channel (and any other channels that
10008           may be present) unchanged.
10009
10010                   adelay=0|500S|700S
10011
10012       •   Delay all channels by same number of samples:
10013
10014                   adelay=delays=64S:all=1
10015
10016   adenorm
10017       Remedy denormals in audio by adding extremely low-level noise.
10018
10019       This filter shall be placed before any filter that can produce
10020       denormals.
10021
10022       A description of the accepted parameters follows.
10023
10024       level
10025           Set level of added noise in dB. Default is "-351".  Allowed range
10026           is from -451 to -90.
10027
10028       type
10029           Set type of added noise.
10030
10031           dc  Add DC signal.
10032
10033           ac  Add AC signal.
10034
10035           square
10036               Add square signal.
10037
10038           pulse
10039               Add pulse signal.
10040
10041           Default is "dc".
10042
10043       Commands
10044
10045       This filter supports the all above options as commands.
10046
10047   aderivative, aintegral
10048       Compute derivative/integral of audio stream.
10049
10050       Applying both filters one after another produces original audio.
10051
10052   adynamicequalizer
10053       Apply dynamic equalization to input audio stream.
10054
10055       A description of the accepted options follows.
10056
10057       threshold
10058           Set the detection threshold used to trigger equalization.
10059           Threshold detection is using bandpass filter.  Default value is 0.
10060           Allowed range is from 0 to 100.
10061
10062       dfrequency
10063           Set the detection frequency in Hz used for bandpass filter used to
10064           trigger equalization.  Default value is 1000 Hz. Allowed range is
10065           between 2 and 1000000 Hz.
10066
10067       dqfactor
10068           Set the detection resonance factor for bandpass filter used to
10069           trigger equalization.  Default value is 1. Allowed range is from
10070           0.001 to 1000.
10071
10072       tfrequency
10073           Set the target frequency of equalization filter.  Default value is
10074           1000 Hz. Allowed range is between 2 and 1000000 Hz.
10075
10076       tqfactor
10077           Set the target resonance factor for target equalization filter.
10078           Default value is 1. Allowed range is from 0.001 to 1000.
10079
10080       attack
10081           Set the amount of milliseconds the signal from detection has to
10082           rise above the detection threshold before equalization starts.
10083           Default is 20. Allowed range is between 1 and 2000.
10084
10085       release
10086           Set the amount of milliseconds the signal from detection has to
10087           fall below the detection threshold before equalization ends.
10088           Default is 200. Allowed range is between 1 and 2000.
10089
10090       knee
10091           Curve the sharp knee around the detection threshold to calculate
10092           equalization gain more softly.  Default is 1. Allowed range is
10093           between 0 and 8.
10094
10095       ratio
10096           Set the ratio by which the equalization gain is raised.  Default is
10097           1. Allowed range is between 1 and 20.
10098
10099       makeup
10100           Set the makeup offset in dB by which the equalization gain is
10101           raised.  Default is 0. Allowed range is between 0 and 30.
10102
10103       range
10104           Set the max allowed cut/boost amount in dB. Default is 0.  Allowed
10105           range is from 0 to 200.
10106
10107       slew
10108           Set the slew factor. Default is 1. Allowed range is from 1 to 200.
10109
10110       mode
10111           Set the mode of filter operation, can be one of the following:
10112
10113           listen
10114               Output only isolated bandpass signal.
10115
10116           cut Cut frequencies above detection threshold.
10117
10118           boost
10119               Boost frequencies bellow detection threshold.
10120
10121           Default mode is cut.
10122
10123       tftype
10124           Set the type of target filter, can be one of the following:
10125
10126           bell
10127           lowshelf
10128           highshelf
10129
10130           Default type is bell.
10131
10132       Commands
10133
10134       This filter supports the all above options as commands.
10135
10136   adynamicsmooth
10137       Apply dynamic smoothing to input audio stream.
10138
10139       A description of the accepted options follows.
10140
10141       sensitivity
10142           Set an amount of sensitivity to frequency fluctations. Default is
10143           2.  Allowed range is from 0 to 1e+06.
10144
10145       basefreq
10146           Set a base frequency for smoothing. Default value is 22050.
10147           Allowed range is from 2 to 1e+06.
10148
10149       Commands
10150
10151       This filter supports the all above options as commands.
10152
10153   aecho
10154       Apply echoing to the input audio.
10155
10156       Echoes are reflected sound and can occur naturally amongst mountains
10157       (and sometimes large buildings) when talking or shouting; digital echo
10158       effects emulate this behaviour and are often used to help fill out the
10159       sound of a single instrument or vocal. The time difference between the
10160       original signal and the reflection is the "delay", and the loudness of
10161       the reflected signal is the "decay".  Multiple echoes can have
10162       different delays and decays.
10163
10164       A description of the accepted parameters follows.
10165
10166       in_gain
10167           Set input gain of reflected signal. Default is 0.6.
10168
10169       out_gain
10170           Set output gain of reflected signal. Default is 0.3.
10171
10172       delays
10173           Set list of time intervals in milliseconds between original signal
10174           and reflections separated by '|'. Allowed range for each "delay" is
10175           "(0 - 90000.0]".  Default is 1000.
10176
10177       decays
10178           Set list of loudness of reflected signals separated by '|'.
10179           Allowed range for each "decay" is "(0 - 1.0]".  Default is 0.5.
10180
10181       Examples
10182
10183       •   Make it sound as if there are twice as many instruments as are
10184           actually playing:
10185
10186                   aecho=0.8:0.88:60:0.4
10187
10188       •   If delay is very short, then it sounds like a (metallic) robot
10189           playing music:
10190
10191                   aecho=0.8:0.88:6:0.4
10192
10193       •   A longer delay will sound like an open air concert in the
10194           mountains:
10195
10196                   aecho=0.8:0.9:1000:0.3
10197
10198       •   Same as above but with one more mountain:
10199
10200                   aecho=0.8:0.9:1000|1800:0.3|0.25
10201
10202   aemphasis
10203       Audio emphasis filter creates or restores material directly taken from
10204       LPs or emphased CDs with different filter curves. E.g. to store music
10205       on vinyl the signal has to be altered by a filter first to even out the
10206       disadvantages of this recording medium.  Once the material is played
10207       back the inverse filter has to be applied to restore the distortion of
10208       the frequency response.
10209
10210       The filter accepts the following options:
10211
10212       level_in
10213           Set input gain.
10214
10215       level_out
10216           Set output gain.
10217
10218       mode
10219           Set filter mode. For restoring material use "reproduction" mode,
10220           otherwise use "production" mode. Default is "reproduction" mode.
10221
10222       type
10223           Set filter type. Selects medium. Can be one of the following:
10224
10225           col select Columbia.
10226
10227           emi select EMI.
10228
10229           bsi select BSI (78RPM).
10230
10231           riaa
10232               select RIAA.
10233
10234           cd  select Compact Disc (CD).
10235
10236           50fm
10237               select 50Xs (FM).
10238
10239           75fm
10240               select 75Xs (FM).
10241
10242           50kf
10243               select 50Xs (FM-KF).
10244
10245           75kf
10246               select 75Xs (FM-KF).
10247
10248       Commands
10249
10250       This filter supports the all above options as commands.
10251
10252   aeval
10253       Modify an audio signal according to the specified expressions.
10254
10255       This filter accepts one or more expressions (one for each channel),
10256       which are evaluated and used to modify a corresponding audio signal.
10257
10258       It accepts the following parameters:
10259
10260       exprs
10261           Set the '|'-separated expressions list for each separate channel.
10262           If the number of input channels is greater than the number of
10263           expressions, the last specified expression is used for the
10264           remaining output channels.
10265
10266       channel_layout, c
10267           Set output channel layout. If not specified, the channel layout is
10268           specified by the number of expressions. If set to same, it will use
10269           by default the same input channel layout.
10270
10271       Each expression in exprs can contain the following constants and
10272       functions:
10273
10274       ch  channel number of the current expression
10275
10276       n   number of the evaluated sample, starting from 0
10277
10278       s   sample rate
10279
10280       t   time of the evaluated sample expressed in seconds
10281
10282       nb_in_channels
10283       nb_out_channels
10284           input and output number of channels
10285
10286       val(CH)
10287           the value of input channel with number CH
10288
10289       Note: this filter is slow. For faster processing you should use a
10290       dedicated filter.
10291
10292       Examples
10293
10294       •   Half volume:
10295
10296                   aeval=val(ch)/2:c=same
10297
10298       •   Invert phase of the second channel:
10299
10300                   aeval=val(0)|-val(1)
10301
10302   aexciter
10303       An exciter is used to produce high sound that is not present in the
10304       original signal. This is done by creating harmonic distortions of the
10305       signal which are restricted in range and added to the original signal.
10306       An Exciter raises the upper end of an audio signal without simply
10307       raising the higher frequencies like an equalizer would do to create a
10308       more "crisp" or "brilliant" sound.
10309
10310       The filter accepts the following options:
10311
10312       level_in
10313           Set input level prior processing of signal.  Allowed range is from
10314           0 to 64.  Default value is 1.
10315
10316       level_out
10317           Set output level after processing of signal.  Allowed range is from
10318           0 to 64.  Default value is 1.
10319
10320       amount
10321           Set the amount of harmonics added to original signal.  Allowed
10322           range is from 0 to 64.  Default value is 1.
10323
10324       drive
10325           Set the amount of newly created harmonics.  Allowed range is from
10326           0.1 to 10.  Default value is 8.5.
10327
10328       blend
10329           Set the octave of newly created harmonics.  Allowed range is from
10330           -10 to 10.  Default value is 0.
10331
10332       freq
10333           Set the lower frequency limit of producing harmonics in Hz.
10334           Allowed range is from 2000 to 12000 Hz.  Default is 7500 Hz.
10335
10336       ceil
10337           Set the upper frequency limit of producing harmonics.  Allowed
10338           range is from 9999 to 20000 Hz.  If value is lower than 10000 Hz no
10339           limit is applied.
10340
10341       listen
10342           Mute the original signal and output only added harmonics.  By
10343           default is disabled.
10344
10345       Commands
10346
10347       This filter supports the all above options as commands.
10348
10349   afade
10350       Apply fade-in/out effect to input audio.
10351
10352       A description of the accepted parameters follows.
10353
10354       type, t
10355           Specify the effect type, can be either "in" for fade-in, or "out"
10356           for a fade-out effect. Default is "in".
10357
10358       start_sample, ss
10359           Specify the number of the start sample for starting to apply the
10360           fade effect. Default is 0.
10361
10362       nb_samples, ns
10363           Specify the number of samples for which the fade effect has to
10364           last. At the end of the fade-in effect the output audio will have
10365           the same volume as the input audio, at the end of the fade-out
10366           transition the output audio will be silence. Default is 44100.
10367
10368       start_time, st
10369           Specify the start time of the fade effect. Default is 0.  The value
10370           must be specified as a time duration; see the Time duration section
10371           in the ffmpeg-utils(1) manual for the accepted syntax.  If set this
10372           option is used instead of start_sample.
10373
10374       duration, d
10375           Specify the duration of the fade effect. See the Time duration
10376           section in the ffmpeg-utils(1) manual for the accepted syntax.  At
10377           the end of the fade-in effect the output audio will have the same
10378           volume as the input audio, at the end of the fade-out transition
10379           the output audio will be silence.  By default the duration is
10380           determined by nb_samples.  If set this option is used instead of
10381           nb_samples.
10382
10383       curve
10384           Set curve for fade transition.
10385
10386           It accepts the following values:
10387
10388           tri select triangular, linear slope (default)
10389
10390           qsin
10391               select quarter of sine wave
10392
10393           hsin
10394               select half of sine wave
10395
10396           esin
10397               select exponential sine wave
10398
10399           log select logarithmic
10400
10401           ipar
10402               select inverted parabola
10403
10404           qua select quadratic
10405
10406           cub select cubic
10407
10408           squ select square root
10409
10410           cbr select cubic root
10411
10412           par select parabola
10413
10414           exp select exponential
10415
10416           iqsin
10417               select inverted quarter of sine wave
10418
10419           ihsin
10420               select inverted half of sine wave
10421
10422           dese
10423               select double-exponential seat
10424
10425           desi
10426               select double-exponential sigmoid
10427
10428           losi
10429               select logistic sigmoid
10430
10431           sinc
10432               select sine cardinal function
10433
10434           isinc
10435               select inverted sine cardinal function
10436
10437           nofade
10438               no fade applied
10439
10440       Commands
10441
10442       This filter supports the all above options as commands.
10443
10444       Examples
10445
10446       •   Fade in first 15 seconds of audio:
10447
10448                   afade=t=in:ss=0:d=15
10449
10450       •   Fade out last 25 seconds of a 900 seconds audio:
10451
10452                   afade=t=out:st=875:d=25
10453
10454   afftdn
10455       Denoise audio samples with FFT.
10456
10457       A description of the accepted parameters follows.
10458
10459       noise_reduction, nr
10460           Set the noise reduction in dB, allowed range is 0.01 to 97.
10461           Default value is 12 dB.
10462
10463       noise_floor, nf
10464           Set the noise floor in dB, allowed range is -80 to -20.  Default
10465           value is -50 dB.
10466
10467       noise_type, nt
10468           Set the noise type.
10469
10470           It accepts the following values:
10471
10472           white, w
10473               Select white noise.
10474
10475           vinyl, v
10476               Select vinyl noise.
10477
10478           shellac, s
10479               Select shellac noise.
10480
10481           custom, c
10482               Select custom noise, defined in "bn" option.
10483
10484               Default value is white noise.
10485
10486       band_noise, bn
10487           Set custom band noise profile for every one of 15 bands.  Bands are
10488           separated by ' ' or '|'.
10489
10490       residual_floor, rf
10491           Set the residual floor in dB, allowed range is -80 to -20.  Default
10492           value is -38 dB.
10493
10494       track_noise, tn
10495           Enable noise floor tracking. By default is disabled.  With this
10496           enabled, noise floor is automatically adjusted.
10497
10498       track_residual, tr
10499           Enable residual tracking. By default is disabled.
10500
10501       output_mode, om
10502           Set the output mode.
10503
10504           It accepts the following values:
10505
10506           input, i
10507               Pass input unchanged.
10508
10509           output, o
10510               Pass noise filtered out.
10511
10512           noise, n
10513               Pass only noise.
10514
10515               Default value is output.
10516
10517       adaptivity, ad
10518           Set the adaptivity factor, used how fast to adapt gains adjustments
10519           per each frequency bin. Value 0 enables instant adaptation, while
10520           higher values react much slower.  Allowed range is from 0 to 1.
10521           Default value is 0.5.
10522
10523       floor_offset, fo
10524           Set the noise floor offset factor. This option is used to adjust
10525           offset applied to measured noise floor. It is only effective when
10526           noise floor tracking is enabled.  Allowed range is from -2.0 to
10527           2.0. Default value is 1.0.
10528
10529       noise_link, nl
10530           Set the noise link used for multichannel audio.
10531
10532           It accepts the following values:
10533
10534           none
10535               Use unchanged channel's noise floor.
10536
10537           min Use measured min noise floor of all channels.
10538
10539           max Use measured max noise floor of all channels.
10540
10541           average
10542               Use measured average noise floor of all channels.
10543
10544               Default value is min.
10545
10546       band_multiplier, bm
10547           Set the band multiplier factor, used how much to spread bands
10548           across frequency bins.  Allowed range is from 0.2 to 5. Default
10549           value is 1.25.
10550
10551       sample_noise, sn
10552           Toggle capturing and measurement of noise profile from input audio.
10553
10554           It accepts the following values:
10555
10556           start, begin
10557               Start sample noise capture.
10558
10559           stop, end
10560               Stop sample noise capture and measure new noise band profile.
10561
10562               Default value is "none".
10563
10564       gain_smooth, gs
10565           Set gain smooth spatial radius, used to smooth gains applied to
10566           each frequency bin.  Useful to reduce random music noise artefacts.
10567           Higher values increases smoothing of gains.  Allowed range is from
10568           0 to 50.  Default value is 0.
10569
10570       Commands
10571
10572       This filter supports the some above mentioned options as commands.
10573
10574       Examples
10575
10576       •   Reduce white noise by 10dB, and use previously measured noise floor
10577           of -40dB:
10578
10579                   afftdn=nr=10:nf=-40
10580
10581       •   Reduce white noise by 10dB, also set initial noise floor to -80dB
10582           and enable automatic tracking of noise floor so noise floor will
10583           gradually change during processing:
10584
10585                   afftdn=nr=10:nf=-80:tn=1
10586
10587       •   Reduce noise by 20dB, using noise floor of -40dB and using commands
10588           to take noise profile of first 0.4 seconds of input audio:
10589
10590                   asendcmd=0.0 afftdn sn start,asendcmd=0.4 afftdn sn stop,afftdn=nr=20:nf=-40
10591
10592   afftfilt
10593       Apply arbitrary expressions to samples in frequency domain.
10594
10595       real
10596           Set frequency domain real expression for each separate channel
10597           separated by '|'. Default is "re".  If the number of input channels
10598           is greater than the number of expressions, the last specified
10599           expression is used for the remaining output channels.
10600
10601       imag
10602           Set frequency domain imaginary expression for each separate channel
10603           separated by '|'. Default is "im".
10604
10605           Each expression in real and imag can contain the following
10606           constants and functions:
10607
10608           sr  sample rate
10609
10610           b   current frequency bin number
10611
10612           nb  number of available bins
10613
10614           ch  channel number of the current expression
10615
10616           chs number of channels
10617
10618           pts current frame pts
10619
10620           re  current real part of frequency bin of current channel
10621
10622           im  current imaginary part of frequency bin of current channel
10623
10624           real(b, ch)
10625               Return the value of real part of frequency bin at location
10626               (bin,channel)
10627
10628           imag(b, ch)
10629               Return the value of imaginary part of frequency bin at location
10630               (bin,channel)
10631
10632       win_size
10633           Set window size. Allowed range is from 16 to 131072.  Default is
10634           4096
10635
10636       win_func
10637           Set window function.
10638
10639           It accepts the following values:
10640
10641           rect
10642           bartlett
10643           hann, hanning
10644           hamming
10645           blackman
10646           welch
10647           flattop
10648           bharris
10649           bnuttall
10650           bhann
10651           sine
10652           nuttall
10653           lanczos
10654           gauss
10655           tukey
10656           dolph
10657           cauchy
10658           parzen
10659           poisson
10660           bohman
10661
10662           Default is "hann".
10663
10664       overlap
10665           Set window overlap. If set to 1, the recommended overlap for
10666           selected window function will be picked. Default is 0.75.
10667
10668       Examples
10669
10670       •   Leave almost only low frequencies in audio:
10671
10672                   afftfilt="'real=re * (1-clip((b/nb)*b,0,1))':imag='im * (1-clip((b/nb)*b,0,1))'"
10673
10674       •   Apply robotize effect:
10675
10676                   afftfilt="real='hypot(re,im)*sin(0)':imag='hypot(re,im)*cos(0)':win_size=512:overlap=0.75"
10677
10678       •   Apply whisper effect:
10679
10680                   afftfilt="real='hypot(re,im)*cos((random(0)*2-1)*2*3.14)':imag='hypot(re,im)*sin((random(1)*2-1)*2*3.14)':win_size=128:overlap=0.8"
10681
10682   afir
10683       Apply an arbitrary Finite Impulse Response filter.
10684
10685       This filter is designed for applying long FIR filters, up to 60 seconds
10686       long.
10687
10688       It can be used as component for digital crossover filters, room
10689       equalization, cross talk cancellation, wavefield synthesis,
10690       auralization, ambiophonics, ambisonics and spatialization.
10691
10692       This filter uses the streams higher than first one as FIR coefficients.
10693       If the non-first stream holds a single channel, it will be used for all
10694       input channels in the first stream, otherwise the number of channels in
10695       the non-first stream must be same as the number of channels in the
10696       first stream.
10697
10698       It accepts the following parameters:
10699
10700       dry Set dry gain. This sets input gain.
10701
10702       wet Set wet gain. This sets final output gain.
10703
10704       length
10705           Set Impulse Response filter length. Default is 1, which means whole
10706           IR is processed.
10707
10708       gtype
10709           Enable applying gain measured from power of IR.
10710
10711           Set which approach to use for auto gain measurement.
10712
10713           none
10714               Do not apply any gain.
10715
10716           peak
10717               select peak gain, very conservative approach. This is default
10718               value.
10719
10720           dc  select DC gain, limited application.
10721
10722           gn  select gain to noise approach, this is most popular one.
10723
10724       irgain
10725           Set gain to be applied to IR coefficients before filtering.
10726           Allowed range is 0 to 1. This gain is applied after any gain
10727           applied with gtype option.
10728
10729       irfmt
10730           Set format of IR stream. Can be "mono" or "input".  Default is
10731           "input".
10732
10733       maxir
10734           Set max allowed Impulse Response filter duration in seconds.
10735           Default is 30 seconds.  Allowed range is 0.1 to 60 seconds.
10736
10737       response
10738           Show IR frequency response, magnitude(magenta), phase(green) and
10739           group delay(yellow) in additional video stream.  By default it is
10740           disabled.
10741
10742       channel
10743           Set for which IR channel to display frequency response. By default
10744           is first channel displayed. This option is used only when response
10745           is enabled.
10746
10747       size
10748           Set video stream size. This option is used only when response is
10749           enabled.
10750
10751       rate
10752           Set video stream frame rate. This option is used only when response
10753           is enabled.
10754
10755       minp
10756           Set minimal partition size used for convolution. Default is 8192.
10757           Allowed range is from 1 to 32768.  Lower values decreases latency
10758           at cost of higher CPU usage.
10759
10760       maxp
10761           Set maximal partition size used for convolution. Default is 8192.
10762           Allowed range is from 8 to 32768.  Lower values may increase CPU
10763           usage.
10764
10765       nbirs
10766           Set number of input impulse responses streams which will be
10767           switchable at runtime.  Allowed range is from 1 to 32. Default is
10768           1.
10769
10770       ir  Set IR stream which will be used for convolution, starting from 0,
10771           should always be lower than supplied value by "nbirs" option.
10772           Default is 0.  This option can be changed at runtime via commands.
10773
10774       precision
10775           Set which precision to use when processing samples.
10776
10777           auto
10778               Auto pick internal sample format depending on other filters.
10779
10780           float
10781               Always use single-floating point precision sample format.
10782
10783           double
10784               Always use double-floating point precision sample format.
10785
10786           Default value is auto.
10787
10788       Examples
10789
10790       •   Apply reverb to stream using mono IR file as second input, complete
10791           command using ffmpeg:
10792
10793                   ffmpeg -i input.wav -i middle_tunnel_1way_mono.wav -lavfi afir output.wav
10794
10795   aformat
10796       Set output format constraints for the input audio. The framework will
10797       negotiate the most appropriate format to minimize conversions.
10798
10799       It accepts the following parameters:
10800
10801       sample_fmts, f
10802           A '|'-separated list of requested sample formats.
10803
10804       sample_rates, r
10805           A '|'-separated list of requested sample rates.
10806
10807       channel_layouts, cl
10808           A '|'-separated list of requested channel layouts.
10809
10810           See the Channel Layout section in the ffmpeg-utils(1) manual for
10811           the required syntax.
10812
10813       If a parameter is omitted, all values are allowed.
10814
10815       Force the output to either unsigned 8-bit or signed 16-bit stereo
10816
10817               aformat=sample_fmts=u8|s16:channel_layouts=stereo
10818
10819   afreqshift
10820       Apply frequency shift to input audio samples.
10821
10822       The filter accepts the following options:
10823
10824       shift
10825           Specify frequency shift. Allowed range is -INT_MAX to INT_MAX.
10826           Default value is 0.0.
10827
10828       level
10829           Set output gain applied to final output. Allowed range is from 0.0
10830           to 1.0.  Default value is 1.0.
10831
10832       order
10833           Set filter order used for filtering. Allowed range is from 1 to 16.
10834           Default value is 8.
10835
10836       Commands
10837
10838       This filter supports the all above options as commands.
10839
10840   afwtdn
10841       Reduce broadband noise from input samples using Wavelets.
10842
10843       A description of the accepted options follows.
10844
10845       sigma
10846           Set the noise sigma, allowed range is from 0 to 1.  Default value
10847           is 0.  This option controls strength of denoising applied to input
10848           samples.  Most useful way to set this option is via decibels, eg.
10849           -45dB.
10850
10851       levels
10852           Set the number of wavelet levels of decomposition.  Allowed range
10853           is from 1 to 12.  Default value is 10.  Setting this too low make
10854           denoising performance very poor.
10855
10856       wavet
10857           Set wavelet type for decomposition of input frame.  They are sorted
10858           by number of coefficients, from lowest to highest.  More
10859           coefficients means worse filtering speed, but overall better
10860           quality.  Available wavelets are:
10861
10862           sym2
10863           sym4
10864           rbior68
10865           deb10
10866           sym10
10867           coif5
10868           bl3
10869       percent
10870           Set percent of full denoising. Allowed range is from 0 to 100
10871           percent.  Default value is 85 percent or partial denoising.
10872
10873       profile
10874           If enabled, first input frame will be used as noise profile.  If
10875           first frame samples contain non-noise performance will be very
10876           poor.
10877
10878       adaptive
10879           If enabled, input frames are analyzed for presence of noise.  If
10880           noise is detected with high possibility then input frame profile
10881           will be used for processing following frames, until new noise frame
10882           is detected.
10883
10884       samples
10885           Set size of single frame in number of samples. Allowed range is
10886           from 512 to 65536. Default frame size is 8192 samples.
10887
10888       softness
10889           Set softness applied inside thresholding function. Allowed range is
10890           from 0 to 10. Default softness is 1.
10891
10892       Commands
10893
10894       This filter supports the all above options as commands.
10895
10896   agate
10897       A gate is mainly used to reduce lower parts of a signal. This kind of
10898       signal processing reduces disturbing noise between useful signals.
10899
10900       Gating is done by detecting the volume below a chosen level threshold
10901       and dividing it by the factor set with ratio. The bottom of the noise
10902       floor is set via range. Because an exact manipulation of the signal
10903       would cause distortion of the waveform the reduction can be levelled
10904       over time. This is done by setting attack and release.
10905
10906       attack determines how long the signal has to fall below the threshold
10907       before any reduction will occur and release sets the time the signal
10908       has to rise above the threshold to reduce the reduction again.  Shorter
10909       signals than the chosen attack time will be left untouched.
10910
10911       level_in
10912           Set input level before filtering.  Default is 1. Allowed range is
10913           from 0.015625 to 64.
10914
10915       mode
10916           Set the mode of operation. Can be "upward" or "downward".  Default
10917           is "downward". If set to "upward" mode, higher parts of signal will
10918           be amplified, expanding dynamic range in upward direction.
10919           Otherwise, in case of "downward" lower parts of signal will be
10920           reduced.
10921
10922       range
10923           Set the level of gain reduction when the signal is below the
10924           threshold.  Default is 0.06125. Allowed range is from 0 to 1.
10925           Setting this to 0 disables reduction and then filter behaves like
10926           expander.
10927
10928       threshold
10929           If a signal rises above this level the gain reduction is released.
10930           Default is 0.125. Allowed range is from 0 to 1.
10931
10932       ratio
10933           Set a ratio by which the signal is reduced.  Default is 2. Allowed
10934           range is from 1 to 9000.
10935
10936       attack
10937           Amount of milliseconds the signal has to rise above the threshold
10938           before gain reduction stops.  Default is 20 milliseconds. Allowed
10939           range is from 0.01 to 9000.
10940
10941       release
10942           Amount of milliseconds the signal has to fall below the threshold
10943           before the reduction is increased again. Default is 250
10944           milliseconds.  Allowed range is from 0.01 to 9000.
10945
10946       makeup
10947           Set amount of amplification of signal after processing.  Default is
10948           1. Allowed range is from 1 to 64.
10949
10950       knee
10951           Curve the sharp knee around the threshold to enter gain reduction
10952           more softly.  Default is 2.828427125. Allowed range is from 1 to 8.
10953
10954       detection
10955           Choose if exact signal should be taken for detection or an RMS like
10956           one.  Default is "rms". Can be "peak" or "rms".
10957
10958       link
10959           Choose if the average level between all channels or the louder
10960           channel affects the reduction.  Default is "average". Can be
10961           "average" or "maximum".
10962
10963       Commands
10964
10965       This filter supports the all above options as commands.
10966
10967   aiir
10968       Apply an arbitrary Infinite Impulse Response filter.
10969
10970       It accepts the following parameters:
10971
10972       zeros, z
10973           Set B/numerator/zeros/reflection coefficients.
10974
10975       poles, p
10976           Set A/denominator/poles/ladder coefficients.
10977
10978       gains, k
10979           Set channels gains.
10980
10981       dry_gain
10982           Set input gain.
10983
10984       wet_gain
10985           Set output gain.
10986
10987       format, f
10988           Set coefficients format.
10989
10990           ll  lattice-ladder function
10991
10992           sf  analog transfer function
10993
10994           tf  digital transfer function
10995
10996           zp  Z-plane zeros/poles, cartesian (default)
10997
10998           pr  Z-plane zeros/poles, polar radians
10999
11000           pd  Z-plane zeros/poles, polar degrees
11001
11002           sp  S-plane zeros/poles
11003
11004       process, r
11005           Set type of processing.
11006
11007           d   direct processing
11008
11009           s   serial processing
11010
11011           p   parallel processing
11012
11013       precision, e
11014           Set filtering precision.
11015
11016           dbl double-precision floating-point (default)
11017
11018           flt single-precision floating-point
11019
11020           i32 32-bit integers
11021
11022           i16 16-bit integers
11023
11024       normalize, n
11025           Normalize filter coefficients, by default is enabled.  Enabling it
11026           will normalize magnitude response at DC to 0dB.
11027
11028       mix How much to use filtered signal in output. Default is 1.  Range is
11029           between 0 and 1.
11030
11031       response
11032           Show IR frequency response, magnitude(magenta), phase(green) and
11033           group delay(yellow) in additional video stream.  By default it is
11034           disabled.
11035
11036       channel
11037           Set for which IR channel to display frequency response. By default
11038           is first channel displayed. This option is used only when response
11039           is enabled.
11040
11041       size
11042           Set video stream size. This option is used only when response is
11043           enabled.
11044
11045       Coefficients in "tf" and "sf" format are separated by spaces and are in
11046       ascending order.
11047
11048       Coefficients in "zp" format are separated by spaces and order of
11049       coefficients doesn't matter. Coefficients in "zp" format are complex
11050       numbers with i imaginary unit.
11051
11052       Different coefficients and gains can be provided for every channel, in
11053       such case use '|' to separate coefficients or gains. Last provided
11054       coefficients will be used for all remaining channels.
11055
11056       Examples
11057
11058       •   Apply 2 pole elliptic notch at around 5000Hz for 48000 Hz sample
11059           rate:
11060
11061                   aiir=k=1:z=7.957584807809675810E-1 -2.575128568908332300 3.674839853930788710 -2.57512875289799137 7.957586296317130880E-1:p=1 -2.86950072432325953 3.63022088054647218 -2.28075678147272232 6.361362326477423500E-1:f=tf:r=d
11062
11063       •   Same as above but in "zp" format:
11064
11065                   aiir=k=0.79575848078096756:z=0.80918701+0.58773007i 0.80918701-0.58773007i 0.80884700+0.58784055i 0.80884700-0.58784055i:p=0.63892345+0.59951235i 0.63892345-0.59951235i 0.79582691+0.44198673i 0.79582691-0.44198673i:f=zp:r=s
11066
11067       •   Apply 3-rd order analog normalized Butterworth low-pass filter,
11068           using analog transfer function format:
11069
11070                   aiir=z=1.3057 0 0 0:p=1.3057 2.3892 2.1860 1:f=sf:r=d
11071
11072   alimiter
11073       The limiter prevents an input signal from rising over a desired
11074       threshold.  This limiter uses lookahead technology to prevent your
11075       signal from distorting.  It means that there is a small delay after the
11076       signal is processed. Keep in mind that the delay it produces is the
11077       attack time you set.
11078
11079       The filter accepts the following options:
11080
11081       level_in
11082           Set input gain. Default is 1.
11083
11084       level_out
11085           Set output gain. Default is 1.
11086
11087       limit
11088           Don't let signals above this level pass the limiter. Default is 1.
11089
11090       attack
11091           The limiter will reach its attenuation level in this amount of time
11092           in milliseconds. Default is 5 milliseconds.
11093
11094       release
11095           Come back from limiting to attenuation 1.0 in this amount of
11096           milliseconds.  Default is 50 milliseconds.
11097
11098       asc When gain reduction is always needed ASC takes care of releasing to
11099           an average reduction level rather than reaching a reduction of 0 in
11100           the release time.
11101
11102       asc_level
11103           Select how much the release time is affected by ASC, 0 means nearly
11104           no changes in release time while 1 produces higher release times.
11105
11106       level
11107           Auto level output signal. Default is enabled.  This normalizes
11108           audio back to 0dB if enabled.
11109
11110       latency
11111           Compensate the delay introduced by using the lookahead buffer set
11112           with attack parameter. Also flush the valid audio data in the
11113           lookahead buffer when the stream hits EOF.
11114
11115       Depending on picked setting it is recommended to upsample input 2x or
11116       4x times with aresample before applying this filter.
11117
11118   allpass
11119       Apply a two-pole all-pass filter with central frequency (in Hz)
11120       frequency, and filter-width width.  An all-pass filter changes the
11121       audio's frequency to phase relationship without changing its frequency
11122       to amplitude relationship.
11123
11124       The filter accepts the following options:
11125
11126       frequency, f
11127           Set frequency in Hz.
11128
11129       width_type, t
11130           Set method to specify band-width of filter.
11131
11132           h   Hz
11133
11134           q   Q-Factor
11135
11136           o   octave
11137
11138           s   slope
11139
11140           k   kHz
11141
11142       width, w
11143           Specify the band-width of a filter in width_type units.
11144
11145       mix, m
11146           How much to use filtered signal in output. Default is 1.  Range is
11147           between 0 and 1.
11148
11149       channels, c
11150           Specify which channels to filter, by default all available are
11151           filtered.
11152
11153       normalize, n
11154           Normalize biquad coefficients, by default is disabled.  Enabling it
11155           will normalize magnitude response at DC to 0dB.
11156
11157       order, o
11158           Set the filter order, can be 1 or 2. Default is 2.
11159
11160       transform, a
11161           Set transform type of IIR filter.
11162
11163           di
11164           dii
11165           tdi
11166           tdii
11167           latt
11168           svf
11169           zdf
11170       precision, r
11171           Set precison of filtering.
11172
11173           auto
11174               Pick automatic sample format depending on surround filters.
11175
11176           s16 Always use signed 16-bit.
11177
11178           s32 Always use signed 32-bit.
11179
11180           f32 Always use float 32-bit.
11181
11182           f64 Always use float 64-bit.
11183
11184       Commands
11185
11186       This filter supports the following commands:
11187
11188       frequency, f
11189           Change allpass frequency.  Syntax for the command is : "frequency"
11190
11191       width_type, t
11192           Change allpass width_type.  Syntax for the command is :
11193           "width_type"
11194
11195       width, w
11196           Change allpass width.  Syntax for the command is : "width"
11197
11198       mix, m
11199           Change allpass mix.  Syntax for the command is : "mix"
11200
11201   aloop
11202       Loop audio samples.
11203
11204       The filter accepts the following options:
11205
11206       loop
11207           Set the number of loops. Setting this value to -1 will result in
11208           infinite loops.  Default is 0.
11209
11210       size
11211           Set maximal number of samples. Default is 0.
11212
11213       start
11214           Set first sample of loop. Default is 0.
11215
11216   amerge
11217       Merge two or more audio streams into a single multi-channel stream.
11218
11219       The filter accepts the following options:
11220
11221       inputs
11222           Set the number of inputs. Default is 2.
11223
11224       If the channel layouts of the inputs are disjoint, and therefore
11225       compatible, the channel layout of the output will be set accordingly
11226       and the channels will be reordered as necessary. If the channel layouts
11227       of the inputs are not disjoint, the output will have all the channels
11228       of the first input then all the channels of the second input, in that
11229       order, and the channel layout of the output will be the default value
11230       corresponding to the total number of channels.
11231
11232       For example, if the first input is in 2.1 (FL+FR+LF) and the second
11233       input is FC+BL+BR, then the output will be in 5.1, with the channels in
11234       the following order: a1, a2, b1, a3, b2, b3 (a1 is the first channel of
11235       the first input, b1 is the first channel of the second input).
11236
11237       On the other hand, if both input are in stereo, the output channels
11238       will be in the default order: a1, a2, b1, b2, and the channel layout
11239       will be arbitrarily set to 4.0, which may or may not be the expected
11240       value.
11241
11242       All inputs must have the same sample rate, and format.
11243
11244       If inputs do not have the same duration, the output will stop with the
11245       shortest.
11246
11247       Examples
11248
11249       •   Merge two mono files into a stereo stream:
11250
11251                   amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
11252
11253       •   Multiple merges assuming 1 video stream and 6 audio streams in
11254           input.mkv:
11255
11256                   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
11257
11258   amix
11259       Mixes multiple audio inputs into a single output.
11260
11261       Note that this filter only supports float samples (the amerge and pan
11262       audio filters support many formats). If the amix input has integer
11263       samples then aresample will be automatically inserted to perform the
11264       conversion to float samples.
11265
11266       For example
11267
11268               ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
11269
11270       will mix 3 input audio streams to a single output with the same
11271       duration as the first input and a dropout transition time of 3 seconds.
11272
11273       It accepts the following parameters:
11274
11275       inputs
11276           The number of inputs. If unspecified, it defaults to 2.
11277
11278       duration
11279           How to determine the end-of-stream.
11280
11281           longest
11282               The duration of the longest input. (default)
11283
11284           shortest
11285               The duration of the shortest input.
11286
11287           first
11288               The duration of the first input.
11289
11290       dropout_transition
11291           The transition time, in seconds, for volume renormalization when an
11292           input stream ends. The default value is 2 seconds.
11293
11294       weights
11295           Specify weight of each input audio stream as sequence.  Each weight
11296           is separated by space. By default all inputs have same weight.
11297
11298       normalize
11299           Always scale inputs instead of only doing summation of samples.
11300           Beware of heavy clipping if inputs are not normalized prior or
11301           after filtering by this filter if this option is disabled. By
11302           default is enabled.
11303
11304       Commands
11305
11306       This filter supports the following commands:
11307
11308       weights
11309       normalize
11310           Syntax is same as option with same name.
11311
11312   amultiply
11313       Multiply first audio stream with second audio stream and store result
11314       in output audio stream. Multiplication is done by multiplying each
11315       sample from first stream with sample at same position from second
11316       stream.
11317
11318       With this element-wise multiplication one can create amplitude fades
11319       and amplitude modulations.
11320
11321   anequalizer
11322       High-order parametric multiband equalizer for each channel.
11323
11324       It accepts the following parameters:
11325
11326       params
11327           This option string is in format: "cchn f=cf w=w g=g t=f | ..."
11328           Each equalizer band is separated by '|'.
11329
11330           chn Set channel number to which equalization will be applied.  If
11331               input doesn't have that channel the entry is ignored.
11332
11333           f   Set central frequency for band.  If input doesn't have that
11334               frequency the entry is ignored.
11335
11336           w   Set band width in Hertz.
11337
11338           g   Set band gain in dB.
11339
11340           t   Set filter type for band, optional, can be:
11341
11342               0   Butterworth, this is default.
11343
11344               1   Chebyshev type 1.
11345
11346               2   Chebyshev type 2.
11347
11348       curves
11349           With this option activated frequency response of anequalizer is
11350           displayed in video stream.
11351
11352       size
11353           Set video stream size. Only useful if curves option is activated.
11354
11355       mgain
11356           Set max gain that will be displayed. Only useful if curves option
11357           is activated.  Setting this to a reasonable value makes it possible
11358           to display gain which is derived from neighbour bands which are too
11359           close to each other and thus produce higher gain when both are
11360           activated.
11361
11362       fscale
11363           Set frequency scale used to draw frequency response in video
11364           output.  Can be linear or logarithmic. Default is logarithmic.
11365
11366       colors
11367           Set color for each channel curve which is going to be displayed in
11368           video stream.  This is list of color names separated by space or by
11369           '|'.  Unrecognised or missing colors will be replaced by white
11370           color.
11371
11372       Examples
11373
11374       •   Lower gain by 10 of central frequency 200Hz and width 100 Hz for
11375           first 2 channels using Chebyshev type 1 filter:
11376
11377                   anequalizer=c0 f=200 w=100 g=-10 t=1|c1 f=200 w=100 g=-10 t=1
11378
11379       Commands
11380
11381       This filter supports the following commands:
11382
11383       change
11384           Alter existing filter parameters.  Syntax for the commands is :
11385           "fN|f=freq|w=width|g=gain"
11386
11387           fN is existing filter number, starting from 0, if no such filter is
11388           available error is returned.  freq set new frequency parameter.
11389           width set new width parameter in Hertz.  gain set new gain
11390           parameter in dB.
11391
11392           Full filter invocation with asendcmd may look like this:
11393           asendcmd=c='4.0 anequalizer change
11394           0|f=200|w=50|g=1',anequalizer=...
11395
11396   anlmdn
11397       Reduce broadband noise in audio samples using Non-Local Means
11398       algorithm.
11399
11400       Each sample is adjusted by looking for other samples with similar
11401       contexts. This context similarity is defined by comparing their
11402       surrounding patches of size p. Patches are searched in an area of r
11403       around the sample.
11404
11405       The filter accepts the following options:
11406
11407       strength, s
11408           Set denoising strength. Allowed range is from 0.00001 to 10000.
11409           Default value is 0.00001.
11410
11411       patch, p
11412           Set patch radius duration. Allowed range is from 1 to 100
11413           milliseconds.  Default value is 2 milliseconds.
11414
11415       research, r
11416           Set research radius duration. Allowed range is from 2 to 300
11417           milliseconds.  Default value is 6 milliseconds.
11418
11419       output, o
11420           Set the output mode.
11421
11422           It accepts the following values:
11423
11424           i   Pass input unchanged.
11425
11426           o   Pass noise filtered out.
11427
11428           n   Pass only noise.
11429
11430               Default value is o.
11431
11432       smooth, m
11433           Set smooth factor. Default value is 11. Allowed range is from 1 to
11434           1000.
11435
11436       Commands
11437
11438       This filter supports the all above options as commands.
11439
11440   anlmf, anlms
11441       Apply Normalized Least-Mean-(Squares|Fourth) algorithm to the first
11442       audio stream using the second audio stream.
11443
11444       This adaptive filter is used to mimic a desired filter by finding the
11445       filter coefficients that relate to producing the least mean square of
11446       the error signal (difference between the desired, 2nd input audio
11447       stream and the actual signal, the 1st input audio stream).
11448
11449       A description of the accepted options follows.
11450
11451       order
11452           Set filter order.
11453
11454       mu  Set filter mu.
11455
11456       eps Set the filter eps.
11457
11458       leakage
11459           Set the filter leakage.
11460
11461       out_mode
11462           It accepts the following values:
11463
11464           i   Pass the 1st input.
11465
11466           d   Pass the 2nd input.
11467
11468           o   Pass filtered samples.
11469
11470           n   Pass difference between desired and filtered samples.
11471
11472               Default value is o.
11473
11474       Examples
11475
11476       •   One of many usages of this filter is noise reduction, input audio
11477           is filtered with same samples that are delayed by fixed amount, one
11478           such example for stereo audio is:
11479
11480                   asplit[a][b],[a]adelay=32S|32S[a],[b][a]anlms=order=128:leakage=0.0005:mu=.5:out_mode=o
11481
11482       Commands
11483
11484       This filter supports the same commands as options, excluding option
11485       "order".
11486
11487   anull
11488       Pass the audio source unchanged to the output.
11489
11490   apad
11491       Pad the end of an audio stream with silence.
11492
11493       This can be used together with ffmpeg -shortest to extend audio streams
11494       to the same length as the video stream.
11495
11496       A description of the accepted options follows.
11497
11498       packet_size
11499           Set silence packet size. Default value is 4096.
11500
11501       pad_len
11502           Set the number of samples of silence to add to the end. After the
11503           value is reached, the stream is terminated. This option is mutually
11504           exclusive with whole_len.
11505
11506       whole_len
11507           Set the minimum total number of samples in the output audio stream.
11508           If the value is longer than the input audio length, silence is
11509           added to the end, until the value is reached. This option is
11510           mutually exclusive with pad_len.
11511
11512       pad_dur
11513           Specify the duration of samples of silence to add. See the Time
11514           duration section in the ffmpeg-utils(1) manual for the accepted
11515           syntax. Used only if set to non-negative value.
11516
11517       whole_dur
11518           Specify the minimum total duration in the output audio stream. See
11519           the Time duration section in the ffmpeg-utils(1) manual for the
11520           accepted syntax. Used only if set to non-negative value. If the
11521           value is longer than the input audio length, silence is added to
11522           the end, until the value is reached.  This option is mutually
11523           exclusive with pad_dur
11524
11525       If neither the pad_len nor the whole_len nor pad_dur nor whole_dur
11526       option is set, the filter will add silence to the end of the input
11527       stream indefinitely.
11528
11529       Note that for ffmpeg 4.4 and earlier a zero pad_dur or whole_dur also
11530       caused the filter to add silence indefinitely.
11531
11532       Examples
11533
11534       •   Add 1024 samples of silence to the end of the input:
11535
11536                   apad=pad_len=1024
11537
11538       •   Make sure the audio output will contain at least 10000 samples, pad
11539           the input with silence if required:
11540
11541                   apad=whole_len=10000
11542
11543       •   Use ffmpeg to pad the audio input with silence, so that the video
11544           stream will always result the shortest and will be converted until
11545           the end in the output file when using the shortest option:
11546
11547                   ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT
11548
11549   aphaser
11550       Add a phasing effect to the input audio.
11551
11552       A phaser filter creates series of peaks and troughs in the frequency
11553       spectrum.  The position of the peaks and troughs are modulated so that
11554       they vary over time, creating a sweeping effect.
11555
11556       A description of the accepted parameters follows.
11557
11558       in_gain
11559           Set input gain. Default is 0.4.
11560
11561       out_gain
11562           Set output gain. Default is 0.74
11563
11564       delay
11565           Set delay in milliseconds. Default is 3.0.
11566
11567       decay
11568           Set decay. Default is 0.4.
11569
11570       speed
11571           Set modulation speed in Hz. Default is 0.5.
11572
11573       type
11574           Set modulation type. Default is triangular.
11575
11576           It accepts the following values:
11577
11578           triangular, t
11579           sinusoidal, s
11580
11581   aphaseshift
11582       Apply phase shift to input audio samples.
11583
11584       The filter accepts the following options:
11585
11586       shift
11587           Specify phase shift. Allowed range is from -1.0 to 1.0.  Default
11588           value is 0.0.
11589
11590       level
11591           Set output gain applied to final output. Allowed range is from 0.0
11592           to 1.0.  Default value is 1.0.
11593
11594       order
11595           Set filter order used for filtering. Allowed range is from 1 to 16.
11596           Default value is 8.
11597
11598       Commands
11599
11600       This filter supports the all above options as commands.
11601
11602   apsyclip
11603       Apply Psychoacoustic clipper to input audio stream.
11604
11605       The filter accepts the following options:
11606
11607       level_in
11608           Set input gain. By default it is 1. Range is [0.015625 - 64].
11609
11610       level_out
11611           Set output gain. By default it is 1. Range is [0.015625 - 64].
11612
11613       clip
11614           Set the clipping start value. Default value is 0dBFS or 1.
11615
11616       diff
11617           Output only difference samples, useful to hear introduced
11618           distortions.  By default is disabled.
11619
11620       adaptive
11621           Set strength of adaptive distortion applied. Default value is 0.5.
11622           Allowed range is from 0 to 1.
11623
11624       iterations
11625           Set number of iterations of psychoacoustic clipper.  Allowed range
11626           is from 1 to 20. Default value is 10.
11627
11628       level
11629           Auto level output signal. Default is disabled.  This normalizes
11630           audio back to 0dBFS if enabled.
11631
11632       Commands
11633
11634       This filter supports the all above options as commands.
11635
11636   apulsator
11637       Audio pulsator is something between an autopanner and a tremolo.  But
11638       it can produce funny stereo effects as well. Pulsator changes the
11639       volume of the left and right channel based on a LFO (low frequency
11640       oscillator) with different waveforms and shifted phases.  This filter
11641       have the ability to define an offset between left and right channel. An
11642       offset of 0 means that both LFO shapes match each other.  The left and
11643       right channel are altered equally - a conventional tremolo.  An offset
11644       of 50% means that the shape of the right channel is exactly shifted in
11645       phase (or moved backwards about half of the frequency) - pulsator acts
11646       as an autopanner. At 1 both curves match again. Every setting in
11647       between moves the phase shift gapless between all stages and produces
11648       some "bypassing" sounds with sine and triangle waveforms. The more you
11649       set the offset near 1 (starting from the 0.5) the faster the signal
11650       passes from the left to the right speaker.
11651
11652       The filter accepts the following options:
11653
11654       level_in
11655           Set input gain. By default it is 1. Range is [0.015625 - 64].
11656
11657       level_out
11658           Set output gain. By default it is 1. Range is [0.015625 - 64].
11659
11660       mode
11661           Set waveform shape the LFO will use. Can be one of: sine, triangle,
11662           square, sawup or sawdown. Default is sine.
11663
11664       amount
11665           Set modulation. Define how much of original signal is affected by
11666           the LFO.
11667
11668       offset_l
11669           Set left channel offset. Default is 0. Allowed range is [0 - 1].
11670
11671       offset_r
11672           Set right channel offset. Default is 0.5. Allowed range is [0 - 1].
11673
11674       width
11675           Set pulse width. Default is 1. Allowed range is [0 - 2].
11676
11677       timing
11678           Set possible timing mode. Can be one of: bpm, ms or hz. Default is
11679           hz.
11680
11681       bpm Set bpm. Default is 120. Allowed range is [30 - 300]. Only used if
11682           timing is set to bpm.
11683
11684       ms  Set ms. Default is 500. Allowed range is [10 - 2000]. Only used if
11685           timing is set to ms.
11686
11687       hz  Set frequency in Hz. Default is 2. Allowed range is [0.01 - 100].
11688           Only used if timing is set to hz.
11689
11690   aresample
11691       Resample the input audio to the specified parameters, using the
11692       libswresample library. If none are specified then the filter will
11693       automatically convert between its input and output.
11694
11695       This filter is also able to stretch/squeeze the audio data to make it
11696       match the timestamps or to inject silence / cut out audio to make it
11697       match the timestamps, do a combination of both or do neither.
11698
11699       The filter accepts the syntax [sample_rate:]resampler_options, where
11700       sample_rate expresses a sample rate and resampler_options is a list of
11701       key=value pairs, separated by ":". See the "Resampler Options" section
11702       in the ffmpeg-resampler(1) manual for the complete list of supported
11703       options.
11704
11705       Examples
11706
11707       •   Resample the input audio to 44100Hz:
11708
11709                   aresample=44100
11710
11711       •   Stretch/squeeze samples to the given timestamps, with a maximum of
11712           1000 samples per second compensation:
11713
11714                   aresample=async=1000
11715
11716   areverse
11717       Reverse an audio clip.
11718
11719       Warning: This filter requires memory to buffer the entire clip, so
11720       trimming is suggested.
11721
11722       Examples
11723
11724       •   Take the first 5 seconds of a clip, and reverse it.
11725
11726                   atrim=end=5,areverse
11727
11728   arnndn
11729       Reduce noise from speech using Recurrent Neural Networks.
11730
11731       This filter accepts the following options:
11732
11733       model, m
11734           Set train model file to load. This option is always required.
11735
11736       mix Set how much to mix filtered samples into final output.  Allowed
11737           range is from -1 to 1. Default value is 1.  Negative values are
11738           special, they set how much to keep filtered noise in the final
11739           filter output. Set this option to -1 to hear actual noise removed
11740           from input signal.
11741
11742       Commands
11743
11744       This filter supports the all above options as commands.
11745
11746   asdr
11747       Measure Audio Signal-to-Distortion Ratio.
11748
11749       This filter takes two audio streams for input, and outputs first audio
11750       stream.  Results are in dB per channel at end of either input.
11751
11752   asetnsamples
11753       Set the number of samples per each output audio frame.
11754
11755       The last output packet may contain a different number of samples, as
11756       the filter will flush all the remaining samples when the input audio
11757       signals its end.
11758
11759       The filter accepts the following options:
11760
11761       nb_out_samples, n
11762           Set the number of frames per each output audio frame. The number is
11763           intended as the number of samples per each channel.  Default value
11764           is 1024.
11765
11766       pad, p
11767           If set to 1, the filter will pad the last audio frame with zeroes,
11768           so that the last frame will contain the same number of samples as
11769           the previous ones. Default value is 1.
11770
11771       For example, to set the number of per-frame samples to 1234 and disable
11772       padding for the last frame, use:
11773
11774               asetnsamples=n=1234:p=0
11775
11776   asetrate
11777       Set the sample rate without altering the PCM data.  This will result in
11778       a change of speed and pitch.
11779
11780       The filter accepts the following options:
11781
11782       sample_rate, r
11783           Set the output sample rate. Default is 44100 Hz.
11784
11785   ashowinfo
11786       Show a line containing various information for each input audio frame.
11787       The input audio is not modified.
11788
11789       The shown line contains a sequence of key/value pairs of the form
11790       key:value.
11791
11792       The following values are shown in the output:
11793
11794       n   The (sequential) number of the input frame, starting from 0.
11795
11796       pts The presentation timestamp of the input frame, in time base units;
11797           the time base depends on the filter input pad, and is usually
11798           1/sample_rate.
11799
11800       pts_time
11801           The presentation timestamp of the input frame in seconds.
11802
11803       pos position of the frame in the input stream, -1 if this information
11804           in unavailable and/or meaningless (for example in case of synthetic
11805           audio)
11806
11807       fmt The sample format.
11808
11809       chlayout
11810           The channel layout.
11811
11812       rate
11813           The sample rate for the audio frame.
11814
11815       nb_samples
11816           The number of samples (per channel) in the frame.
11817
11818       checksum
11819           The Adler-32 checksum (printed in hexadecimal) of the audio data.
11820           For planar audio, the data is treated as if all the planes were
11821           concatenated.
11822
11823       plane_checksums
11824           A list of Adler-32 checksums for each data plane.
11825
11826   asoftclip
11827       Apply audio soft clipping.
11828
11829       Soft clipping is a type of distortion effect where the amplitude of a
11830       signal is saturated along a smooth curve, rather than the abrupt shape
11831       of hard-clipping.
11832
11833       This filter accepts the following options:
11834
11835       type
11836           Set type of soft-clipping.
11837
11838           It accepts the following values:
11839
11840           hard
11841           tanh
11842           atan
11843           cubic
11844           exp
11845           alg
11846           quintic
11847           sin
11848           erf
11849       threshold
11850           Set threshold from where to start clipping. Default value is 0dB or
11851           1.
11852
11853       output
11854           Set gain applied to output. Default value is 0dB or 1.
11855
11856       param
11857           Set additional parameter which controls sigmoid function.
11858
11859       oversample
11860           Set oversampling factor.
11861
11862       Commands
11863
11864       This filter supports the all above options as commands.
11865
11866   aspectralstats
11867       Display frequency domain statistical information about the audio
11868       channels.  Statistics are calculated and stored as metadata for each
11869       audio channel and for each audio frame.
11870
11871       It accepts the following option:
11872
11873       win_size
11874           Set the window length in samples. Default value is 2048.  Allowed
11875           range is from 32 to 65536.
11876
11877       win_func
11878           Set window function.
11879
11880           It accepts the following values:
11881
11882           rect
11883           bartlett
11884           hann, hanning
11885           hamming
11886           blackman
11887           welch
11888           flattop
11889           bharris
11890           bnuttall
11891           bhann
11892           sine
11893           nuttall
11894           lanczos
11895           gauss
11896           tukey
11897           dolph
11898           cauchy
11899           parzen
11900           poisson
11901           bohman
11902
11903           Default is "hann".
11904
11905       overlap
11906           Set window overlap. Allowed range is from 0 to 1. Default value is
11907           0.5.
11908
11909       A list of each metadata key follows:
11910
11911       mean
11912       variance
11913       centroid
11914       spread
11915       skewness
11916       kurtosis
11917       entropy
11918       flatness
11919       crest
11920       flux
11921       slope
11922       decrease
11923       rolloff
11924
11925   asr
11926       Automatic Speech Recognition
11927
11928       This filter uses PocketSphinx for speech recognition. To enable
11929       compilation of this filter, you need to configure FFmpeg with
11930       "--enable-pocketsphinx".
11931
11932       It accepts the following options:
11933
11934       rate
11935           Set sampling rate of input audio. Defaults is 16000.  This need to
11936           match speech models, otherwise one will get poor results.
11937
11938       hmm Set dictionary containing acoustic model files.
11939
11940       dict
11941           Set pronunciation dictionary.
11942
11943       lm  Set language model file.
11944
11945       lmctl
11946           Set language model set.
11947
11948       lmname
11949           Set which language model to use.
11950
11951       logfn
11952           Set output for log messages.
11953
11954       The filter exports recognized speech as the frame metadata
11955       "lavfi.asr.text".
11956
11957   astats
11958       Display time domain statistical information about the audio channels.
11959       Statistics are calculated and displayed for each audio channel and,
11960       where applicable, an overall figure is also given.
11961
11962       It accepts the following option:
11963
11964       length
11965           Short window length in seconds, used for peak and trough RMS
11966           measurement.  Default is 0.05 (50 milliseconds). Allowed range is
11967           "[0 - 10]".
11968
11969       metadata
11970           Set metadata injection. All the metadata keys are prefixed with
11971           "lavfi.astats.X", where "X" is channel number starting from 1 or
11972           string "Overall". Default is disabled.
11973
11974           Available keys for each channel are: DC_offset Min_level Max_level
11975           Min_difference Max_difference Mean_difference RMS_difference
11976           Peak_level RMS_peak RMS_trough Crest_factor Flat_factor Peak_count
11977           Noise_floor Noise_floor_count Entropy Bit_depth Dynamic_range
11978           Zero_crossings Zero_crossings_rate Number_of_NaNs Number_of_Infs
11979           Number_of_denormals
11980
11981           and for Overall: DC_offset Min_level Max_level Min_difference
11982           Max_difference Mean_difference RMS_difference Peak_level RMS_level
11983           RMS_peak RMS_trough Flat_factor Peak_count Noise_floor
11984           Noise_floor_count Entropy Bit_depth Number_of_samples
11985           Number_of_NaNs Number_of_Infs Number_of_denormals
11986
11987           For example full key look like this "lavfi.astats.1.DC_offset" or
11988           this "lavfi.astats.Overall.Peak_count".
11989
11990           For description what each key means read below.
11991
11992       reset
11993           Set the number of frames over which cumulative stats are calculated
11994           before being reset Default is disabled.
11995
11996       measure_perchannel
11997           Select the parameters which are measured per channel. The metadata
11998           keys can be used as flags, default is all which measures
11999           everything.  none disables all per channel measurement.
12000
12001       measure_overall
12002           Select the parameters which are measured overall. The metadata keys
12003           can be used as flags, default is all which measures everything.
12004           none disables all overall measurement.
12005
12006       A description of each shown parameter follows:
12007
12008       DC offset
12009           Mean amplitude displacement from zero.
12010
12011       Min level
12012           Minimal sample level.
12013
12014       Max level
12015           Maximal sample level.
12016
12017       Min difference
12018           Minimal difference between two consecutive samples.
12019
12020       Max difference
12021           Maximal difference between two consecutive samples.
12022
12023       Mean difference
12024           Mean difference between two consecutive samples.  The average of
12025           each difference between two consecutive samples.
12026
12027       RMS difference
12028           Root Mean Square difference between two consecutive samples.
12029
12030       Peak level dB
12031       RMS level dB
12032           Standard peak and RMS level measured in dBFS.
12033
12034       RMS peak dB
12035       RMS trough dB
12036           Peak and trough values for RMS level measured over a short window.
12037
12038       Crest factor
12039           Standard ratio of peak to RMS level (note: not in dB).
12040
12041       Flat factor
12042           Flatness (i.e. consecutive samples with the same value) of the
12043           signal at its peak levels (i.e. either Min level or Max level).
12044
12045       Peak count
12046           Number of occasions (not the number of samples) that the signal
12047           attained either Min level or Max level.
12048
12049       Noise floor dB
12050           Minimum local peak measured in dBFS over a short window.
12051
12052       Noise floor count
12053           Number of occasions (not the number of samples) that the signal
12054           attained Noise floor.
12055
12056       Entropy
12057           Entropy measured across whole audio. Entropy of value near 1.0 is
12058           typically measured for white noise.
12059
12060       Bit depth
12061           Overall bit depth of audio. Number of bits used for each sample.
12062
12063       Dynamic range
12064           Measured dynamic range of audio in dB.
12065
12066       Zero crossings
12067           Number of points where the waveform crosses the zero level axis.
12068
12069       Zero crossings rate
12070           Rate of Zero crossings and number of audio samples.
12071
12072   asubboost
12073       Boost subwoofer frequencies.
12074
12075       The filter accepts the following options:
12076
12077       dry Set dry gain, how much of original signal is kept. Allowed range is
12078           from 0 to 1.  Default value is 1.0.
12079
12080       wet Set wet gain, how much of filtered signal is kept. Allowed range is
12081           from 0 to 1.  Default value is 1.0.
12082
12083       boost
12084           Set max boost factor. Allowed range is from 1 to 12. Default value
12085           is 2.
12086
12087       decay
12088           Set delay line decay gain value. Allowed range is from 0 to 1.
12089           Default value is 0.0.
12090
12091       feedback
12092           Set delay line feedback gain value. Allowed range is from 0 to 1.
12093           Default value is 0.9.
12094
12095       cutoff
12096           Set cutoff frequency in Hertz. Allowed range is 50 to 900.  Default
12097           value is 100.
12098
12099       slope
12100           Set slope amount for cutoff frequency. Allowed range is 0.0001 to
12101           1.  Default value is 0.5.
12102
12103       delay
12104           Set delay. Allowed range is from 1 to 100.  Default value is 20.
12105
12106       channels
12107           Set the channels to process. Default value is all available.
12108
12109       Commands
12110
12111       This filter supports the all above options as commands.
12112
12113   asubcut
12114       Cut subwoofer frequencies.
12115
12116       This filter allows to set custom, steeper roll off than highpass
12117       filter, and thus is able to more attenuate frequency content in stop-
12118       band.
12119
12120       The filter accepts the following options:
12121
12122       cutoff
12123           Set cutoff frequency in Hertz. Allowed range is 2 to 200.  Default
12124           value is 20.
12125
12126       order
12127           Set filter order. Available values are from 3 to 20.  Default value
12128           is 10.
12129
12130       level
12131           Set input gain level. Allowed range is from 0 to 1. Default value
12132           is 1.
12133
12134       Commands
12135
12136       This filter supports the all above options as commands.
12137
12138   asupercut
12139       Cut super frequencies.
12140
12141       The filter accepts the following options:
12142
12143       cutoff
12144           Set cutoff frequency in Hertz. Allowed range is 20000 to 192000.
12145           Default value is 20000.
12146
12147       order
12148           Set filter order. Available values are from 3 to 20.  Default value
12149           is 10.
12150
12151       level
12152           Set input gain level. Allowed range is from 0 to 1. Default value
12153           is 1.
12154
12155       Commands
12156
12157       This filter supports the all above options as commands.
12158
12159   asuperpass
12160       Apply high order Butterworth band-pass filter.
12161
12162       The filter accepts the following options:
12163
12164       centerf
12165           Set center frequency in Hertz. Allowed range is 2 to 999999.
12166           Default value is 1000.
12167
12168       order
12169           Set filter order. Available values are from 4 to 20.  Default value
12170           is 4.
12171
12172       qfactor
12173           Set Q-factor. Allowed range is from 0.01 to 100. Default value is
12174           1.
12175
12176       level
12177           Set input gain level. Allowed range is from 0 to 2. Default value
12178           is 1.
12179
12180       Commands
12181
12182       This filter supports the all above options as commands.
12183
12184   asuperstop
12185       Apply high order Butterworth band-stop filter.
12186
12187       The filter accepts the following options:
12188
12189       centerf
12190           Set center frequency in Hertz. Allowed range is 2 to 999999.
12191           Default value is 1000.
12192
12193       order
12194           Set filter order. Available values are from 4 to 20.  Default value
12195           is 4.
12196
12197       qfactor
12198           Set Q-factor. Allowed range is from 0.01 to 100. Default value is
12199           1.
12200
12201       level
12202           Set input gain level. Allowed range is from 0 to 2. Default value
12203           is 1.
12204
12205       Commands
12206
12207       This filter supports the all above options as commands.
12208
12209   atempo
12210       Adjust audio tempo.
12211
12212       The filter accepts exactly one parameter, the audio tempo. If not
12213       specified then the filter will assume nominal 1.0 tempo. Tempo must be
12214       in the [0.5, 100.0] range.
12215
12216       Note that tempo greater than 2 will skip some samples rather than blend
12217       them in.  If for any reason this is a concern it is always possible to
12218       daisy-chain several instances of atempo to achieve the desired product
12219       tempo.
12220
12221       Examples
12222
12223       •   Slow down audio to 80% tempo:
12224
12225                   atempo=0.8
12226
12227       •   To speed up audio to 300% tempo:
12228
12229                   atempo=3
12230
12231       •   To speed up audio to 300% tempo by daisy-chaining two atempo
12232           instances:
12233
12234                   atempo=sqrt(3),atempo=sqrt(3)
12235
12236       Commands
12237
12238       This filter supports the following commands:
12239
12240       tempo
12241           Change filter tempo scale factor.  Syntax for the command is :
12242           "tempo"
12243
12244   atilt
12245       Apply spectral tilt filter to audio stream.
12246
12247       This filter apply any spectral roll-off slope over any specified
12248       frequency band.
12249
12250       The filter accepts the following options:
12251
12252       freq
12253           Set central frequency of tilt in Hz. Default is 10000 Hz.
12254
12255       slope
12256           Set slope direction of tilt. Default is 0. Allowed range is from -1
12257           to 1.
12258
12259       width
12260           Set width of tilt. Default is 1000. Allowed range is from 100 to
12261           10000.
12262
12263       order
12264           Set order of tilt filter.
12265
12266       level
12267           Set input volume level. Allowed range is from 0 to 4.  Defalt is 1.
12268
12269       Commands
12270
12271       This filter supports the all above options as commands.
12272
12273   atrim
12274       Trim the input so that the output contains one continuous subpart of
12275       the input.
12276
12277       It accepts the following parameters:
12278
12279       start
12280           Timestamp (in seconds) of the start of the section to keep. I.e.
12281           the audio sample with the timestamp start will be the first sample
12282           in the output.
12283
12284       end Specify time of the first audio sample that will be dropped, i.e.
12285           the audio sample immediately preceding the one with the timestamp
12286           end will be the last sample in the output.
12287
12288       start_pts
12289           Same as start, except this option sets the start timestamp in
12290           samples instead of seconds.
12291
12292       end_pts
12293           Same as end, except this option sets the end timestamp in samples
12294           instead of seconds.
12295
12296       duration
12297           The maximum duration of the output in seconds.
12298
12299       start_sample
12300           The number of the first sample that should be output.
12301
12302       end_sample
12303           The number of the first sample that should be dropped.
12304
12305       start, end, and duration are expressed as time duration specifications;
12306       see the Time duration section in the ffmpeg-utils(1) manual.
12307
12308       Note that the first two sets of the start/end options and the duration
12309       option look at the frame timestamp, while the _sample options simply
12310       count the samples that pass through the filter. So start/end_pts and
12311       start/end_sample will give different results when the timestamps are
12312       wrong, inexact or do not start at zero. Also note that this filter does
12313       not modify the timestamps. If you wish to have the output timestamps
12314       start at zero, insert the asetpts filter after the atrim filter.
12315
12316       If multiple start or end options are set, this filter tries to be
12317       greedy and keep all samples that match at least one of the specified
12318       constraints. To keep only the part that matches all the constraints at
12319       once, chain multiple atrim filters.
12320
12321       The defaults are such that all the input is kept. So it is possible to
12322       set e.g.  just the end values to keep everything before the specified
12323       time.
12324
12325       Examples:
12326
12327       •   Drop everything except the second minute of input:
12328
12329                   ffmpeg -i INPUT -af atrim=60:120
12330
12331       •   Keep only the first 1000 samples:
12332
12333                   ffmpeg -i INPUT -af atrim=end_sample=1000
12334
12335   axcorrelate
12336       Calculate normalized windowed cross-correlation between two input audio
12337       streams.
12338
12339       Resulted samples are always between -1 and 1 inclusive.  If result is 1
12340       it means two input samples are highly correlated in that selected
12341       segment.  Result 0 means they are not correlated at all.  If result is
12342       -1 it means two input samples are out of phase, which means they cancel
12343       each other.
12344
12345       The filter accepts the following options:
12346
12347       size
12348           Set size of segment over which cross-correlation is calculated.
12349           Default is 256. Allowed range is from 2 to 131072.
12350
12351       algo
12352           Set algorithm for cross-correlation. Can be "slow" or "fast".
12353           Default is "slow". Fast algorithm assumes mean values over any
12354           given segment are always zero and thus need much less calculations
12355           to make.  This is generally not true, but is valid for typical
12356           audio streams.
12357
12358       Examples
12359
12360       •   Calculate correlation between channels in stereo audio stream:
12361
12362                   ffmpeg -i stereo.wav -af channelsplit,axcorrelate=size=1024:algo=fast correlation.wav
12363
12364   bandpass
12365       Apply a two-pole Butterworth band-pass filter with central frequency
12366       frequency, and (3dB-point) band-width width.  The csg option selects a
12367       constant skirt gain (peak gain = Q) instead of the default: constant
12368       0dB peak gain.  The filter roll off at 6dB per octave (20dB per
12369       decade).
12370
12371       The filter accepts the following options:
12372
12373       frequency, f
12374           Set the filter's central frequency. Default is 3000.
12375
12376       csg Constant skirt gain if set to 1. Defaults to 0.
12377
12378       width_type, t
12379           Set method to specify band-width of filter.
12380
12381           h   Hz
12382
12383           q   Q-Factor
12384
12385           o   octave
12386
12387           s   slope
12388
12389           k   kHz
12390
12391       width, w
12392           Specify the band-width of a filter in width_type units.
12393
12394       mix, m
12395           How much to use filtered signal in output. Default is 1.  Range is
12396           between 0 and 1.
12397
12398       channels, c
12399           Specify which channels to filter, by default all available are
12400           filtered.
12401
12402       normalize, n
12403           Normalize biquad coefficients, by default is disabled.  Enabling it
12404           will normalize magnitude response at DC to 0dB.
12405
12406       transform, a
12407           Set transform type of IIR filter.
12408
12409           di
12410           dii
12411           tdi
12412           tdii
12413           latt
12414           svf
12415           zdf
12416       precision, r
12417           Set precison of filtering.
12418
12419           auto
12420               Pick automatic sample format depending on surround filters.
12421
12422           s16 Always use signed 16-bit.
12423
12424           s32 Always use signed 32-bit.
12425
12426           f32 Always use float 32-bit.
12427
12428           f64 Always use float 64-bit.
12429
12430       block_size, b
12431           Set block size used for reverse IIR processing. If this value is
12432           set to high enough value (higher than impulse response length
12433           truncated when reaches near zero values) filtering will become
12434           linear phase otherwise if not big enough it will just produce nasty
12435           artifacts.
12436
12437           Note that filter delay will be exactly this many samples when set
12438           to non-zero value.
12439
12440       Commands
12441
12442       This filter supports the following commands:
12443
12444       frequency, f
12445           Change bandpass frequency.  Syntax for the command is : "frequency"
12446
12447       width_type, t
12448           Change bandpass width_type.  Syntax for the command is :
12449           "width_type"
12450
12451       width, w
12452           Change bandpass width.  Syntax for the command is : "width"
12453
12454       mix, m
12455           Change bandpass mix.  Syntax for the command is : "mix"
12456
12457   bandreject
12458       Apply a two-pole Butterworth band-reject filter with central frequency
12459       frequency, and (3dB-point) band-width width.  The filter roll off at
12460       6dB per octave (20dB per decade).
12461
12462       The filter accepts the following options:
12463
12464       frequency, f
12465           Set the filter's central frequency. Default is 3000.
12466
12467       width_type, t
12468           Set method to specify band-width of filter.
12469
12470           h   Hz
12471
12472           q   Q-Factor
12473
12474           o   octave
12475
12476           s   slope
12477
12478           k   kHz
12479
12480       width, w
12481           Specify the band-width of a filter in width_type units.
12482
12483       mix, m
12484           How much to use filtered signal in output. Default is 1.  Range is
12485           between 0 and 1.
12486
12487       channels, c
12488           Specify which channels to filter, by default all available are
12489           filtered.
12490
12491       normalize, n
12492           Normalize biquad coefficients, by default is disabled.  Enabling it
12493           will normalize magnitude response at DC to 0dB.
12494
12495       transform, a
12496           Set transform type of IIR filter.
12497
12498           di
12499           dii
12500           tdi
12501           tdii
12502           latt
12503           svf
12504           zdf
12505       precision, r
12506           Set precison of filtering.
12507
12508           auto
12509               Pick automatic sample format depending on surround filters.
12510
12511           s16 Always use signed 16-bit.
12512
12513           s32 Always use signed 32-bit.
12514
12515           f32 Always use float 32-bit.
12516
12517           f64 Always use float 64-bit.
12518
12519       block_size, b
12520           Set block size used for reverse IIR processing. If this value is
12521           set to high enough value (higher than impulse response length
12522           truncated when reaches near zero values) filtering will become
12523           linear phase otherwise if not big enough it will just produce nasty
12524           artifacts.
12525
12526           Note that filter delay will be exactly this many samples when set
12527           to non-zero value.
12528
12529       Commands
12530
12531       This filter supports the following commands:
12532
12533       frequency, f
12534           Change bandreject frequency.  Syntax for the command is :
12535           "frequency"
12536
12537       width_type, t
12538           Change bandreject width_type.  Syntax for the command is :
12539           "width_type"
12540
12541       width, w
12542           Change bandreject width.  Syntax for the command is : "width"
12543
12544       mix, m
12545           Change bandreject mix.  Syntax for the command is : "mix"
12546
12547   bass, lowshelf
12548       Boost or cut the bass (lower) frequencies of the audio using a two-pole
12549       shelving filter with a response similar to that of a standard hi-fi's
12550       tone-controls. This is also known as shelving equalisation (EQ).
12551
12552       The filter accepts the following options:
12553
12554       gain, g
12555           Give the gain at 0 Hz. Its useful range is about -20 (for a large
12556           cut) to +20 (for a large boost).  Beware of clipping when using a
12557           positive gain.
12558
12559       frequency, f
12560           Set the filter's central frequency and so can be used to extend or
12561           reduce the frequency range to be boosted or cut.  The default value
12562           is 100 Hz.
12563
12564       width_type, t
12565           Set method to specify band-width of filter.
12566
12567           h   Hz
12568
12569           q   Q-Factor
12570
12571           o   octave
12572
12573           s   slope
12574
12575           k   kHz
12576
12577       width, w
12578           Determine how steep is the filter's shelf transition.
12579
12580       poles, p
12581           Set number of poles. Default is 2.
12582
12583       mix, m
12584           How much to use filtered signal in output. Default is 1.  Range is
12585           between 0 and 1.
12586
12587       channels, c
12588           Specify which channels to filter, by default all available are
12589           filtered.
12590
12591       normalize, n
12592           Normalize biquad coefficients, by default is disabled.  Enabling it
12593           will normalize magnitude response at DC to 0dB.
12594
12595       transform, a
12596           Set transform type of IIR filter.
12597
12598           di
12599           dii
12600           tdi
12601           tdii
12602           latt
12603           svf
12604           zdf
12605       precision, r
12606           Set precison of filtering.
12607
12608           auto
12609               Pick automatic sample format depending on surround filters.
12610
12611           s16 Always use signed 16-bit.
12612
12613           s32 Always use signed 32-bit.
12614
12615           f32 Always use float 32-bit.
12616
12617           f64 Always use float 64-bit.
12618
12619       block_size, b
12620           Set block size used for reverse IIR processing. If this value is
12621           set to high enough value (higher than impulse response length
12622           truncated when reaches near zero values) filtering will become
12623           linear phase otherwise if not big enough it will just produce nasty
12624           artifacts.
12625
12626           Note that filter delay will be exactly this many samples when set
12627           to non-zero value.
12628
12629       Commands
12630
12631       This filter supports the following commands:
12632
12633       frequency, f
12634           Change bass frequency.  Syntax for the command is : "frequency"
12635
12636       width_type, t
12637           Change bass width_type.  Syntax for the command is : "width_type"
12638
12639       width, w
12640           Change bass width.  Syntax for the command is : "width"
12641
12642       gain, g
12643           Change bass gain.  Syntax for the command is : "gain"
12644
12645       mix, m
12646           Change bass mix.  Syntax for the command is : "mix"
12647
12648   biquad
12649       Apply a biquad IIR filter with the given coefficients.  Where b0, b1,
12650       b2 and a0, a1, a2 are the numerator and denominator coefficients
12651       respectively.  and channels, c specify which channels to filter, by
12652       default all available are filtered.
12653
12654       Commands
12655
12656       This filter supports the following commands:
12657
12658       a0
12659       a1
12660       a2
12661       b0
12662       b1
12663       b2  Change biquad parameter.  Syntax for the command is : "value"
12664
12665       mix, m
12666           How much to use filtered signal in output. Default is 1.  Range is
12667           between 0 and 1.
12668
12669       channels, c
12670           Specify which channels to filter, by default all available are
12671           filtered.
12672
12673       normalize, n
12674           Normalize biquad coefficients, by default is disabled.  Enabling it
12675           will normalize magnitude response at DC to 0dB.
12676
12677       transform, a
12678           Set transform type of IIR filter.
12679
12680           di
12681           dii
12682           tdi
12683           tdii
12684           latt
12685           svf
12686           zdf
12687       precision, r
12688           Set precison of filtering.
12689
12690           auto
12691               Pick automatic sample format depending on surround filters.
12692
12693           s16 Always use signed 16-bit.
12694
12695           s32 Always use signed 32-bit.
12696
12697           f32 Always use float 32-bit.
12698
12699           f64 Always use float 64-bit.
12700
12701       block_size, b
12702           Set block size used for reverse IIR processing. If this value is
12703           set to high enough value (higher than impulse response length
12704           truncated when reaches near zero values) filtering will become
12705           linear phase otherwise if not big enough it will just produce nasty
12706           artifacts.
12707
12708           Note that filter delay will be exactly this many samples when set
12709           to non-zero value.
12710
12711   bs2b
12712       Bauer stereo to binaural transformation, which improves headphone
12713       listening of stereo audio records.
12714
12715       To enable compilation of this filter you need to configure FFmpeg with
12716       "--enable-libbs2b".
12717
12718       It accepts the following parameters:
12719
12720       profile
12721           Pre-defined crossfeed level.
12722
12723           default
12724               Default level (fcut=700, feed=50).
12725
12726           cmoy
12727               Chu Moy circuit (fcut=700, feed=60).
12728
12729           jmeier
12730               Jan Meier circuit (fcut=650, feed=95).
12731
12732       fcut
12733           Cut frequency (in Hz).
12734
12735       feed
12736           Feed level (in Hz).
12737
12738   channelmap
12739       Remap input channels to new locations.
12740
12741       It accepts the following parameters:
12742
12743       map Map channels from input to output. The argument is a '|'-separated
12744           list of mappings, each in the "in_channel-out_channel" or
12745           in_channel form. in_channel can be either the name of the input
12746           channel (e.g. FL for front left) or its index in the input channel
12747           layout.  out_channel is the name of the output channel or its index
12748           in the output channel layout. If out_channel is not given then it
12749           is implicitly an index, starting with zero and increasing by one
12750           for each mapping.
12751
12752       channel_layout
12753           The channel layout of the output stream.
12754
12755       If no mapping is present, the filter will implicitly map input channels
12756       to output channels, preserving indices.
12757
12758       Examples
12759
12760       •   For example, assuming a 5.1+downmix input MOV file,
12761
12762                   ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
12763
12764           will create an output WAV file tagged as stereo from the downmix
12765           channels of the input.
12766
12767       •   To fix a 5.1 WAV improperly encoded in AAC's native channel order
12768
12769                   ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:5.1' out.wav
12770
12771   channelsplit
12772       Split each channel from an input audio stream into a separate output
12773       stream.
12774
12775       It accepts the following parameters:
12776
12777       channel_layout
12778           The channel layout of the input stream. The default is "stereo".
12779
12780       channels
12781           A channel layout describing the channels to be extracted as
12782           separate output streams or "all" to extract each input channel as a
12783           separate stream. The default is "all".
12784
12785           Choosing channels not present in channel layout in the input will
12786           result in an error.
12787
12788       Examples
12789
12790       •   For example, assuming a stereo input MP3 file,
12791
12792                   ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
12793
12794           will create an output Matroska file with two audio streams, one
12795           containing only the left channel and the other the right channel.
12796
12797       •   Split a 5.1 WAV file into per-channel files:
12798
12799                   ffmpeg -i in.wav -filter_complex
12800                   'channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]'
12801                   -map '[FL]' front_left.wav -map '[FR]' front_right.wav -map '[FC]'
12802                   front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]'
12803                   side_right.wav
12804
12805       •   Extract only LFE from a 5.1 WAV file:
12806
12807                   ffmpeg -i in.wav -filter_complex 'channelsplit=channel_layout=5.1:channels=LFE[LFE]'
12808                   -map '[LFE]' lfe.wav
12809
12810   chorus
12811       Add a chorus effect to the audio.
12812
12813       Can make a single vocal sound like a chorus, but can also be applied to
12814       instrumentation.
12815
12816       Chorus resembles an echo effect with a short delay, but whereas with
12817       echo the delay is constant, with chorus, it is varied using using
12818       sinusoidal or triangular modulation.  The modulation depth defines the
12819       range the modulated delay is played before or after the delay. Hence
12820       the delayed sound will sound slower or faster, that is the delayed
12821       sound tuned around the original one, like in a chorus where some vocals
12822       are slightly off key.
12823
12824       It accepts the following parameters:
12825
12826       in_gain
12827           Set input gain. Default is 0.4.
12828
12829       out_gain
12830           Set output gain. Default is 0.4.
12831
12832       delays
12833           Set delays. A typical delay is around 40ms to 60ms.
12834
12835       decays
12836           Set decays.
12837
12838       speeds
12839           Set speeds.
12840
12841       depths
12842           Set depths.
12843
12844       Examples
12845
12846       •   A single delay:
12847
12848                   chorus=0.7:0.9:55:0.4:0.25:2
12849
12850       •   Two delays:
12851
12852                   chorus=0.6:0.9:50|60:0.4|0.32:0.25|0.4:2|1.3
12853
12854       •   Fuller sounding chorus with three delays:
12855
12856                   chorus=0.5:0.9:50|60|40:0.4|0.32|0.3:0.25|0.4|0.3:2|2.3|1.3
12857
12858   compand
12859       Compress or expand the audio's dynamic range.
12860
12861       It accepts the following parameters:
12862
12863       attacks
12864       decays
12865           A list of times in seconds for each channel over which the
12866           instantaneous level of the input signal is averaged to determine
12867           its volume. attacks refers to increase of volume and decays refers
12868           to decrease of volume. For most situations, the attack time
12869           (response to the audio getting louder) should be shorter than the
12870           decay time, because the human ear is more sensitive to sudden loud
12871           audio than sudden soft audio. A typical value for attack is 0.3
12872           seconds and a typical value for decay is 0.8 seconds.  If specified
12873           number of attacks & decays is lower than number of channels, the
12874           last set attack/decay will be used for all remaining channels.
12875
12876       points
12877           A list of points for the transfer function, specified in dB
12878           relative to the maximum possible signal amplitude. Each key points
12879           list must be defined using the following syntax:
12880           "x0/y0|x1/y1|x2/y2|...." or "x0/y0 x1/y1 x2/y2 ...."
12881
12882           The input values must be in strictly increasing order but the
12883           transfer function does not have to be monotonically rising. The
12884           point "0/0" is assumed but may be overridden (by "0/out-dBn").
12885           Typical values for the transfer function are "-70/-70|-60/-20|1/0".
12886
12887       soft-knee
12888           Set the curve radius in dB for all joints. It defaults to 0.01.
12889
12890       gain
12891           Set the additional gain in dB to be applied at all points on the
12892           transfer function. This allows for easy adjustment of the overall
12893           gain.  It defaults to 0.
12894
12895       volume
12896           Set an initial volume, in dB, to be assumed for each channel when
12897           filtering starts. This permits the user to supply a nominal level
12898           initially, so that, for example, a very large gain is not applied
12899           to initial signal levels before the companding has begun to
12900           operate. A typical value for audio which is initially quiet is -90
12901           dB. It defaults to 0.
12902
12903       delay
12904           Set a delay, in seconds. The input audio is analyzed immediately,
12905           but audio is delayed before being fed to the volume adjuster.
12906           Specifying a delay approximately equal to the attack/decay times
12907           allows the filter to effectively operate in predictive rather than
12908           reactive mode. It defaults to 0.
12909
12910       Examples
12911
12912       •   Make music with both quiet and loud passages suitable for listening
12913           to in a noisy environment:
12914
12915                   compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
12916
12917           Another example for audio with whisper and explosion parts:
12918
12919                   compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0
12920
12921       •   A noise gate for when the noise is at a lower level than the
12922           signal:
12923
12924                   compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
12925
12926       •   Here is another noise gate, this time for when the noise is at a
12927           higher level than the signal (making it, in some ways, similar to
12928           squelch):
12929
12930                   compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
12931
12932       •   2:1 compression starting at -6dB:
12933
12934                   compand=points=-80/-80|-6/-6|0/-3.8|20/3.5
12935
12936       •   2:1 compression starting at -9dB:
12937
12938                   compand=points=-80/-80|-9/-9|0/-5.3|20/2.9
12939
12940       •   2:1 compression starting at -12dB:
12941
12942                   compand=points=-80/-80|-12/-12|0/-6.8|20/1.9
12943
12944       •   2:1 compression starting at -18dB:
12945
12946                   compand=points=-80/-80|-18/-18|0/-9.8|20/0.7
12947
12948       •   3:1 compression starting at -15dB:
12949
12950                   compand=points=-80/-80|-15/-15|0/-10.8|20/-5.2
12951
12952       •   Compressor/Gate:
12953
12954                   compand=points=-80/-105|-62/-80|-15.4/-15.4|0/-12|20/-7.6
12955
12956       •   Expander:
12957
12958                   compand=attacks=0:points=-80/-169|-54/-80|-49.5/-64.6|-41.1/-41.1|-25.8/-15|-10.8/-4.5|0/0|20/8.3
12959
12960       •   Hard limiter at -6dB:
12961
12962                   compand=attacks=0:points=-80/-80|-6/-6|20/-6
12963
12964       •   Hard limiter at -12dB:
12965
12966                   compand=attacks=0:points=-80/-80|-12/-12|20/-12
12967
12968       •   Hard noise gate at -35 dB:
12969
12970                   compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20
12971
12972       •   Soft limiter:
12973
12974                   compand=attacks=0:points=-80/-80|-12.4/-12.4|-6/-8|0/-6.8|20/-2.8
12975
12976   compensationdelay
12977       Compensation Delay Line is a metric based delay to compensate differing
12978       positions of microphones or speakers.
12979
12980       For example, you have recorded guitar with two microphones placed in
12981       different locations. Because the front of sound wave has fixed speed in
12982       normal conditions, the phasing of microphones can vary and depends on
12983       their location and interposition. The best sound mix can be achieved
12984       when these microphones are in phase (synchronized). Note that a
12985       distance of ~30 cm between microphones makes one microphone capture the
12986       signal in antiphase to the other microphone. That makes the final mix
12987       sound moody.  This filter helps to solve phasing problems by adding
12988       different delays to each microphone track and make them synchronized.
12989
12990       The best result can be reached when you take one track as base and
12991       synchronize other tracks one by one with it.  Remember that
12992       synchronization/delay tolerance depends on sample rate, too.  Higher
12993       sample rates will give more tolerance.
12994
12995       The filter accepts the following parameters:
12996
12997       mm  Set millimeters distance. This is compensation distance for fine
12998           tuning.  Default is 0.
12999
13000       cm  Set cm distance. This is compensation distance for tightening
13001           distance setup.  Default is 0.
13002
13003       m   Set meters distance. This is compensation distance for hard
13004           distance setup.  Default is 0.
13005
13006       dry Set dry amount. Amount of unprocessed (dry) signal.  Default is 0.
13007
13008       wet Set wet amount. Amount of processed (wet) signal.  Default is 1.
13009
13010       temp
13011           Set temperature in degrees Celsius. This is the temperature of the
13012           environment.  Default is 20.
13013
13014       Commands
13015
13016       This filter supports the all above options as commands.
13017
13018   crossfeed
13019       Apply headphone crossfeed filter.
13020
13021       Crossfeed is the process of blending the left and right channels of
13022       stereo audio recording.  It is mainly used to reduce extreme stereo
13023       separation of low frequencies.
13024
13025       The intent is to produce more speaker like sound to the listener.
13026
13027       The filter accepts the following options:
13028
13029       strength
13030           Set strength of crossfeed. Default is 0.2. Allowed range is from 0
13031           to 1.  This sets gain of low shelf filter for side part of stereo
13032           image.  Default is -6dB. Max allowed is -30db when strength is set
13033           to 1.
13034
13035       range
13036           Set soundstage wideness. Default is 0.5. Allowed range is from 0 to
13037           1.  This sets cut off frequency of low shelf filter. Default is cut
13038           off near 1550 Hz. With range set to 1 cut off frequency is set to
13039           2100 Hz.
13040
13041       slope
13042           Set curve slope of low shelf filter. Default is 0.5.  Allowed range
13043           is from 0.01 to 1.
13044
13045       level_in
13046           Set input gain. Default is 0.9.
13047
13048       level_out
13049           Set output gain. Default is 1.
13050
13051       block_size
13052           Set block size used for reverse IIR processing. If this value is
13053           set to high enough value (higher than impulse response length
13054           truncated when reaches near zero values) filtering will become
13055           linear phase otherwise if not big enough it will just produce nasty
13056           artifacts.
13057
13058           Note that filter delay will be exactly this many samples when set
13059           to non-zero value.
13060
13061       Commands
13062
13063       This filter supports the all above options as commands.
13064
13065   crystalizer
13066       Simple algorithm for audio noise sharpening.
13067
13068       This filter linearly increases differences betweeen each audio sample.
13069
13070       The filter accepts the following options:
13071
13072       i   Sets the intensity of effect (default: 2.0). Must be in range
13073           between -10.0 to 0 (unchanged sound) to 10.0 (maximum effect).  To
13074           inverse filtering use negative value.
13075
13076       c   Enable clipping. By default is enabled.
13077
13078       Commands
13079
13080       This filter supports the all above options as commands.
13081
13082   dcshift
13083       Apply a DC shift to the audio.
13084
13085       This can be useful to remove a DC offset (caused perhaps by a hardware
13086       problem in the recording chain) from the audio. The effect of a DC
13087       offset is reduced headroom and hence volume. The astats filter can be
13088       used to determine if a signal has a DC offset.
13089
13090       shift
13091           Set the DC shift, allowed range is [-1, 1]. It indicates the amount
13092           to shift the audio.
13093
13094       limitergain
13095           Optional. It should have a value much less than 1 (e.g. 0.05 or
13096           0.02) and is used to prevent clipping.
13097
13098   deesser
13099       Apply de-essing to the audio samples.
13100
13101       i   Set intensity for triggering de-essing. Allowed range is from 0 to
13102           1.  Default is 0.
13103
13104       m   Set amount of ducking on treble part of sound. Allowed range is
13105           from 0 to 1.  Default is 0.5.
13106
13107       f   How much of original frequency content to keep when de-essing.
13108           Allowed range is from 0 to 1.  Default is 0.5.
13109
13110       s   Set the output mode.
13111
13112           It accepts the following values:
13113
13114           i   Pass input unchanged.
13115
13116           o   Pass ess filtered out.
13117
13118           e   Pass only ess.
13119
13120               Default value is o.
13121
13122   dialoguenhance
13123       Enhance dialogue in stereo audio.
13124
13125       This filter accepts stereo input and produce surround (3.0) channels
13126       output.  The newly produced front center channel have enhanced speech
13127       dialogue originally available in both stereo channels.  This filter
13128       outputs front left and front right channels same as available in stereo
13129       input.
13130
13131       The filter accepts the following options:
13132
13133       original
13134           Set the original center factor to keep in front center channel
13135           output.  Allowed range is from 0 to 1. Default value is 1.
13136
13137       enhance
13138           Set the dialogue enhance factor to put in front center channel
13139           output.  Allowed range is from 0 to 3. Default value is 1.
13140
13141       voice
13142           Set the voice detection factor.  Allowed range is from 2 to 32.
13143           Default value is 2.
13144
13145       Commands
13146
13147       This filter supports the all above options as commands.
13148
13149   drmeter
13150       Measure audio dynamic range.
13151
13152       DR values of 14 and higher is found in very dynamic material. DR of 8
13153       to 13 is found in transition material. And anything less that 8 have
13154       very poor dynamics and is very compressed.
13155
13156       The filter accepts the following options:
13157
13158       length
13159           Set window length in seconds used to split audio into segments of
13160           equal length.  Default is 3 seconds.
13161
13162   dynaudnorm
13163       Dynamic Audio Normalizer.
13164
13165       This filter applies a certain amount of gain to the input audio in
13166       order to bring its peak magnitude to a target level (e.g. 0 dBFS).
13167       However, in contrast to more "simple" normalization algorithms, the
13168       Dynamic Audio Normalizer *dynamically* re-adjusts the gain factor to
13169       the input audio.  This allows for applying extra gain to the "quiet"
13170       sections of the audio while avoiding distortions or clipping the "loud"
13171       sections. In other words: The Dynamic Audio Normalizer will "even out"
13172       the volume of quiet and loud sections, in the sense that the volume of
13173       each section is brought to the same target level. Note, however, that
13174       the Dynamic Audio Normalizer achieves this goal *without* applying
13175       "dynamic range compressing". It will retain 100% of the dynamic range
13176       *within* each section of the audio file.
13177
13178       framelen, f
13179           Set the frame length in milliseconds. In range from 10 to 8000
13180           milliseconds.  Default is 500 milliseconds.  The Dynamic Audio
13181           Normalizer processes the input audio in small chunks, referred to
13182           as frames. This is required, because a peak magnitude has no
13183           meaning for just a single sample value. Instead, we need to
13184           determine the peak magnitude for a contiguous sequence of sample
13185           values. While a "standard" normalizer would simply use the peak
13186           magnitude of the complete file, the Dynamic Audio Normalizer
13187           determines the peak magnitude individually for each frame. The
13188           length of a frame is specified in milliseconds. By default, the
13189           Dynamic Audio Normalizer uses a frame length of 500 milliseconds,
13190           which has been found to give good results with most files.  Note
13191           that the exact frame length, in number of samples, will be
13192           determined automatically, based on the sampling rate of the
13193           individual input audio file.
13194
13195       gausssize, g
13196           Set the Gaussian filter window size. In range from 3 to 301, must
13197           be odd number. Default is 31.  Probably the most important
13198           parameter of the Dynamic Audio Normalizer is the "window size" of
13199           the Gaussian smoothing filter. The filter's window size is
13200           specified in frames, centered around the current frame. For the
13201           sake of simplicity, this must be an odd number. Consequently, the
13202           default value of 31 takes into account the current frame, as well
13203           as the 15 preceding frames and the 15 subsequent frames. Using a
13204           larger window results in a stronger smoothing effect and thus in
13205           less gain variation, i.e. slower gain adaptation. Conversely, using
13206           a smaller window results in a weaker smoothing effect and thus in
13207           more gain variation, i.e. faster gain adaptation.  In other words,
13208           the more you increase this value, the more the Dynamic Audio
13209           Normalizer will behave like a "traditional" normalization filter.
13210           On the contrary, the more you decrease this value, the more the
13211           Dynamic Audio Normalizer will behave like a dynamic range
13212           compressor.
13213
13214       peak, p
13215           Set the target peak value. This specifies the highest permissible
13216           magnitude level for the normalized audio input. This filter will
13217           try to approach the target peak magnitude as closely as possible,
13218           but at the same time it also makes sure that the normalized signal
13219           will never exceed the peak magnitude.  A frame's maximum local gain
13220           factor is imposed directly by the target peak magnitude. The
13221           default value is 0.95 and thus leaves a headroom of 5%*.  It is not
13222           recommended to go above this value.
13223
13224       maxgain, m
13225           Set the maximum gain factor. In range from 1.0 to 100.0. Default is
13226           10.0.  The Dynamic Audio Normalizer determines the maximum possible
13227           (local) gain factor for each input frame, i.e. the maximum gain
13228           factor that does not result in clipping or distortion. The maximum
13229           gain factor is determined by the frame's highest magnitude sample.
13230           However, the Dynamic Audio Normalizer additionally bounds the
13231           frame's maximum gain factor by a predetermined (global) maximum
13232           gain factor. This is done in order to avoid excessive gain factors
13233           in "silent" or almost silent frames. By default, the maximum gain
13234           factor is 10.0, For most inputs the default value should be
13235           sufficient and it usually is not recommended to increase this
13236           value. Though, for input with an extremely low overall volume
13237           level, it may be necessary to allow even higher gain factors. Note,
13238           however, that the Dynamic Audio Normalizer does not simply apply a
13239           "hard" threshold (i.e. cut off values above the threshold).
13240           Instead, a "sigmoid" threshold function will be applied. This way,
13241           the gain factors will smoothly approach the threshold value, but
13242           never exceed that value.
13243
13244       targetrms, r
13245           Set the target RMS. In range from 0.0 to 1.0. Default is 0.0 -
13246           disabled.  By default, the Dynamic Audio Normalizer performs "peak"
13247           normalization.  This means that the maximum local gain factor for
13248           each frame is defined (only) by the frame's highest magnitude
13249           sample. This way, the samples can be amplified as much as possible
13250           without exceeding the maximum signal level, i.e. without clipping.
13251           Optionally, however, the Dynamic Audio Normalizer can also take
13252           into account the frame's root mean square, abbreviated RMS. In
13253           electrical engineering, the RMS is commonly used to determine the
13254           power of a time-varying signal. It is therefore considered that the
13255           RMS is a better approximation of the "perceived loudness" than just
13256           looking at the signal's peak magnitude. Consequently, by adjusting
13257           all frames to a constant RMS value, a uniform "perceived loudness"
13258           can be established. If a target RMS value has been specified, a
13259           frame's local gain factor is defined as the factor that would
13260           result in exactly that RMS value.  Note, however, that the maximum
13261           local gain factor is still restricted by the frame's highest
13262           magnitude sample, in order to prevent clipping.
13263
13264       coupling, n
13265           Enable channels coupling. By default is enabled.  By default, the
13266           Dynamic Audio Normalizer will amplify all channels by the same
13267           amount. This means the same gain factor will be applied to all
13268           channels, i.e.  the maximum possible gain factor is determined by
13269           the "loudest" channel.  However, in some recordings, it may happen
13270           that the volume of the different channels is uneven, e.g. one
13271           channel may be "quieter" than the other one(s).  In this case, this
13272           option can be used to disable the channel coupling. This way, the
13273           gain factor will be determined independently for each channel,
13274           depending only on the individual channel's highest magnitude
13275           sample. This allows for harmonizing the volume of the different
13276           channels.
13277
13278       correctdc, c
13279           Enable DC bias correction. By default is disabled.  An audio signal
13280           (in the time domain) is a sequence of sample values.  In the
13281           Dynamic Audio Normalizer these sample values are represented in the
13282           -1.0 to 1.0 range, regardless of the original input format.
13283           Normally, the audio signal, or "waveform", should be centered
13284           around the zero point.  That means if we calculate the mean value
13285           of all samples in a file, or in a single frame, then the result
13286           should be 0.0 or at least very close to that value. If, however,
13287           there is a significant deviation of the mean value from 0.0, in
13288           either positive or negative direction, this is referred to as a DC
13289           bias or DC offset. Since a DC bias is clearly undesirable, the
13290           Dynamic Audio Normalizer provides optional DC bias correction.
13291           With DC bias correction enabled, the Dynamic Audio Normalizer will
13292           determine the mean value, or "DC correction" offset, of each input
13293           frame and subtract that value from all of the frame's sample values
13294           which ensures those samples are centered around 0.0 again. Also, in
13295           order to avoid "gaps" at the frame boundaries, the DC correction
13296           offset values will be interpolated smoothly between neighbouring
13297           frames.
13298
13299       altboundary, b
13300           Enable alternative boundary mode. By default is disabled.  The
13301           Dynamic Audio Normalizer takes into account a certain neighbourhood
13302           around each frame. This includes the preceding frames as well as
13303           the subsequent frames. However, for the "boundary" frames, located
13304           at the very beginning and at the very end of the audio file, not
13305           all neighbouring frames are available. In particular, for the first
13306           few frames in the audio file, the preceding frames are not known.
13307           And, similarly, for the last few frames in the audio file, the
13308           subsequent frames are not known. Thus, the question arises which
13309           gain factors should be assumed for the missing frames in the
13310           "boundary" region. The Dynamic Audio Normalizer implements two
13311           modes to deal with this situation. The default boundary mode
13312           assumes a gain factor of exactly 1.0 for the missing frames,
13313           resulting in a smooth "fade in" and "fade out" at the beginning and
13314           at the end of the input, respectively.
13315
13316       compress, s
13317           Set the compress factor. In range from 0.0 to 30.0. Default is 0.0.
13318           By default, the Dynamic Audio Normalizer does not apply
13319           "traditional" compression. This means that signal peaks will not be
13320           pruned and thus the full dynamic range will be retained within each
13321           local neighbourhood. However, in some cases it may be desirable to
13322           combine the Dynamic Audio Normalizer's normalization algorithm with
13323           a more "traditional" compression.  For this purpose, the Dynamic
13324           Audio Normalizer provides an optional compression (thresholding)
13325           function. If (and only if) the compression feature is enabled, all
13326           input frames will be processed by a soft knee thresholding function
13327           prior to the actual normalization process. Put simply, the
13328           thresholding function is going to prune all samples whose magnitude
13329           exceeds a certain threshold value.  However, the Dynamic Audio
13330           Normalizer does not simply apply a fixed threshold value. Instead,
13331           the threshold value will be adjusted for each individual frame.  In
13332           general, smaller parameters result in stronger compression, and
13333           vice versa.  Values below 3.0 are not recommended, because audible
13334           distortion may appear.
13335
13336       threshold, t
13337           Set the target threshold value. This specifies the lowest
13338           permissible magnitude level for the audio input which will be
13339           normalized.  If input frame volume is above this value frame will
13340           be normalized.  Otherwise frame may not be normalized at all. The
13341           default value is set to 0, which means all input frames will be
13342           normalized.  This option is mostly useful if digital noise is not
13343           wanted to be amplified.
13344
13345       channels, h
13346           Specify which channels to filter, by default all available channels
13347           are filtered.
13348
13349       overlap, o
13350           Specify overlap for frames. If set to 0 (default) no frame
13351           overlapping is done.  Using >0 and <1 values will make less
13352           conservative gain adjustments, like when framelen option is set to
13353           smaller value, if framelen option value is compensated for non-zero
13354           overlap then gain adjustments will be smoother across time compared
13355           to zero overlap case.
13356
13357       Commands
13358
13359       This filter supports the all above options as commands.
13360
13361   earwax
13362       Make audio easier to listen to on headphones.
13363
13364       This filter adds `cues' to 44.1kHz stereo (i.e. audio CD format) audio
13365       so that when listened to on headphones the stereo image is moved from
13366       inside your head (standard for headphones) to outside and in front of
13367       the listener (standard for speakers).
13368
13369       Ported from SoX.
13370
13371   equalizer
13372       Apply a two-pole peaking equalisation (EQ) filter. With this filter,
13373       the signal-level at and around a selected frequency can be increased or
13374       decreased, whilst (unlike bandpass and bandreject filters) that at all
13375       other frequencies is unchanged.
13376
13377       In order to produce complex equalisation curves, this filter can be
13378       given several times, each with a different central frequency.
13379
13380       The filter accepts the following options:
13381
13382       frequency, f
13383           Set the filter's central frequency in Hz.
13384
13385       width_type, t
13386           Set method to specify band-width of filter.
13387
13388           h   Hz
13389
13390           q   Q-Factor
13391
13392           o   octave
13393
13394           s   slope
13395
13396           k   kHz
13397
13398       width, w
13399           Specify the band-width of a filter in width_type units.
13400
13401       gain, g
13402           Set the required gain or attenuation in dB.  Beware of clipping
13403           when using a positive gain.
13404
13405       mix, m
13406           How much to use filtered signal in output. Default is 1.  Range is
13407           between 0 and 1.
13408
13409       channels, c
13410           Specify which channels to filter, by default all available are
13411           filtered.
13412
13413       normalize, n
13414           Normalize biquad coefficients, by default is disabled.  Enabling it
13415           will normalize magnitude response at DC to 0dB.
13416
13417       transform, a
13418           Set transform type of IIR filter.
13419
13420           di
13421           dii
13422           tdi
13423           tdii
13424           latt
13425           svf
13426           zdf
13427       precision, r
13428           Set precison of filtering.
13429
13430           auto
13431               Pick automatic sample format depending on surround filters.
13432
13433           s16 Always use signed 16-bit.
13434
13435           s32 Always use signed 32-bit.
13436
13437           f32 Always use float 32-bit.
13438
13439           f64 Always use float 64-bit.
13440
13441       block_size, b
13442           Set block size used for reverse IIR processing. If this value is
13443           set to high enough value (higher than impulse response length
13444           truncated when reaches near zero values) filtering will become
13445           linear phase otherwise if not big enough it will just produce nasty
13446           artifacts.
13447
13448           Note that filter delay will be exactly this many samples when set
13449           to non-zero value.
13450
13451       Examples
13452
13453       •   Attenuate 10 dB at 1000 Hz, with a bandwidth of 200 Hz:
13454
13455                   equalizer=f=1000:t=h:width=200:g=-10
13456
13457       •   Apply 2 dB gain at 1000 Hz with Q 1 and attenuate 5 dB at 100 Hz
13458           with Q 2:
13459
13460                   equalizer=f=1000:t=q:w=1:g=2,equalizer=f=100:t=q:w=2:g=-5
13461
13462       Commands
13463
13464       This filter supports the following commands:
13465
13466       frequency, f
13467           Change equalizer frequency.  Syntax for the command is :
13468           "frequency"
13469
13470       width_type, t
13471           Change equalizer width_type.  Syntax for the command is :
13472           "width_type"
13473
13474       width, w
13475           Change equalizer width.  Syntax for the command is : "width"
13476
13477       gain, g
13478           Change equalizer gain.  Syntax for the command is : "gain"
13479
13480       mix, m
13481           Change equalizer mix.  Syntax for the command is : "mix"
13482
13483   extrastereo
13484       Linearly increases the difference between left and right channels which
13485       adds some sort of "live" effect to playback.
13486
13487       The filter accepts the following options:
13488
13489       m   Sets the difference coefficient (default: 2.5). 0.0 means mono
13490           sound (average of both channels), with 1.0 sound will be unchanged,
13491           with -1.0 left and right channels will be swapped.
13492
13493       c   Enable clipping. By default is enabled.
13494
13495       Commands
13496
13497       This filter supports the all above options as commands.
13498
13499   firequalizer
13500       Apply FIR Equalization using arbitrary frequency response.
13501
13502       The filter accepts the following option:
13503
13504       gain
13505           Set gain curve equation (in dB). The expression can contain
13506           variables:
13507
13508           f   the evaluated frequency
13509
13510           sr  sample rate
13511
13512           ch  channel number, set to 0 when multichannels evaluation is
13513               disabled
13514
13515           chid
13516               channel id, see libavutil/channel_layout.h, set to the first
13517               channel id when multichannels evaluation is disabled
13518
13519           chs number of channels
13520
13521           chlayout
13522               channel_layout, see libavutil/channel_layout.h
13523
13524           and functions:
13525
13526           gain_interpolate(f)
13527               interpolate gain on frequency f based on gain_entry
13528
13529           cubic_interpolate(f)
13530               same as gain_interpolate, but smoother
13531
13532           This option is also available as command. Default is
13533           gain_interpolate(f).
13534
13535       gain_entry
13536           Set gain entry for gain_interpolate function. The expression can
13537           contain functions:
13538
13539           entry(f, g)
13540               store gain entry at frequency f with value g
13541
13542           This option is also available as command.
13543
13544       delay
13545           Set filter delay in seconds. Higher value means more accurate.
13546           Default is 0.01.
13547
13548       accuracy
13549           Set filter accuracy in Hz. Lower value means more accurate.
13550           Default is 5.
13551
13552       wfunc
13553           Set window function. Acceptable values are:
13554
13555           rectangular
13556               rectangular window, useful when gain curve is already smooth
13557
13558           hann
13559               hann window (default)
13560
13561           hamming
13562               hamming window
13563
13564           blackman
13565               blackman window
13566
13567           nuttall3
13568               3-terms continuous 1st derivative nuttall window
13569
13570           mnuttall3
13571               minimum 3-terms discontinuous nuttall window
13572
13573           nuttall
13574               4-terms continuous 1st derivative nuttall window
13575
13576           bnuttall
13577               minimum 4-terms discontinuous nuttall (blackman-nuttall) window
13578
13579           bharris
13580               blackman-harris window
13581
13582           tukey
13583               tukey window
13584
13585       fixed
13586           If enabled, use fixed number of audio samples. This improves speed
13587           when filtering with large delay. Default is disabled.
13588
13589       multi
13590           Enable multichannels evaluation on gain. Default is disabled.
13591
13592       zero_phase
13593           Enable zero phase mode by subtracting timestamp to compensate
13594           delay.  Default is disabled.
13595
13596       scale
13597           Set scale used by gain. Acceptable values are:
13598
13599           linlin
13600               linear frequency, linear gain
13601
13602           linlog
13603               linear frequency, logarithmic (in dB) gain (default)
13604
13605           loglin
13606               logarithmic (in octave scale where 20 Hz is 0) frequency,
13607               linear gain
13608
13609           loglog
13610               logarithmic frequency, logarithmic gain
13611
13612       dumpfile
13613           Set file for dumping, suitable for gnuplot.
13614
13615       dumpscale
13616           Set scale for dumpfile. Acceptable values are same with scale
13617           option.  Default is linlog.
13618
13619       fft2
13620           Enable 2-channel convolution using complex FFT. This improves speed
13621           significantly.  Default is disabled.
13622
13623       min_phase
13624           Enable minimum phase impulse response. Default is disabled.
13625
13626       Examples
13627
13628       •   lowpass at 1000 Hz:
13629
13630                   firequalizer=gain='if(lt(f,1000), 0, -INF)'
13631
13632       •   lowpass at 1000 Hz with gain_entry:
13633
13634                   firequalizer=gain_entry='entry(1000,0); entry(1001, -INF)'
13635
13636       •   custom equalization:
13637
13638                   firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6); entry(2000, 0)'
13639
13640       •   higher delay with zero phase to compensate delay:
13641
13642                   firequalizer=delay=0.1:fixed=on:zero_phase=on
13643
13644       •   lowpass on left channel, highpass on right channel:
13645
13646                   firequalizer=gain='if(eq(chid,1), gain_interpolate(f), if(eq(chid,2), gain_interpolate(1e6+f), 0))'
13647                   :gain_entry='entry(1000, 0); entry(1001,-INF); entry(1e6+1000,0)':multi=on
13648
13649   flanger
13650       Apply a flanging effect to the audio.
13651
13652       The filter accepts the following options:
13653
13654       delay
13655           Set base delay in milliseconds. Range from 0 to 30. Default value
13656           is 0.
13657
13658       depth
13659           Set added sweep delay in milliseconds. Range from 0 to 10. Default
13660           value is 2.
13661
13662       regen
13663           Set percentage regeneration (delayed signal feedback). Range from
13664           -95 to 95.  Default value is 0.
13665
13666       width
13667           Set percentage of delayed signal mixed with original. Range from 0
13668           to 100.  Default value is 71.
13669
13670       speed
13671           Set sweeps per second (Hz). Range from 0.1 to 10. Default value is
13672           0.5.
13673
13674       shape
13675           Set swept wave shape, can be triangular or sinusoidal.  Default
13676           value is sinusoidal.
13677
13678       phase
13679           Set swept wave percentage-shift for multi channel. Range from 0 to
13680           100.  Default value is 25.
13681
13682       interp
13683           Set delay-line interpolation, linear or quadratic.  Default is
13684           linear.
13685
13686   haas
13687       Apply Haas effect to audio.
13688
13689       Note that this makes most sense to apply on mono signals.  With this
13690       filter applied to mono signals it give some directionality and
13691       stretches its stereo image.
13692
13693       The filter accepts the following options:
13694
13695       level_in
13696           Set input level. By default is 1, or 0dB
13697
13698       level_out
13699           Set output level. By default is 1, or 0dB.
13700
13701       side_gain
13702           Set gain applied to side part of signal. By default is 1.
13703
13704       middle_source
13705           Set kind of middle source. Can be one of the following:
13706
13707           left
13708               Pick left channel.
13709
13710           right
13711               Pick right channel.
13712
13713           mid Pick middle part signal of stereo image.
13714
13715           side
13716               Pick side part signal of stereo image.
13717
13718       middle_phase
13719           Change middle phase. By default is disabled.
13720
13721       left_delay
13722           Set left channel delay. By default is 2.05 milliseconds.
13723
13724       left_balance
13725           Set left channel balance. By default is -1.
13726
13727       left_gain
13728           Set left channel gain. By default is 1.
13729
13730       left_phase
13731           Change left phase. By default is disabled.
13732
13733       right_delay
13734           Set right channel delay. By defaults is 2.12 milliseconds.
13735
13736       right_balance
13737           Set right channel balance. By default is 1.
13738
13739       right_gain
13740           Set right channel gain. By default is 1.
13741
13742       right_phase
13743           Change right phase. By default is enabled.
13744
13745   hdcd
13746       Decodes High Definition Compatible Digital (HDCD) data. A 16-bit PCM
13747       stream with embedded HDCD codes is expanded into a 20-bit PCM stream.
13748
13749       The filter supports the Peak Extend and Low-level Gain Adjustment
13750       features of HDCD, and detects the Transient Filter flag.
13751
13752               ffmpeg -i HDCD16.flac -af hdcd OUT24.flac
13753
13754       When using the filter with wav, note the default encoding for wav is
13755       16-bit, so the resulting 20-bit stream will be truncated back to
13756       16-bit. Use something like -acodec pcm_s24le after the filter to get
13757       24-bit PCM output.
13758
13759               ffmpeg -i HDCD16.wav -af hdcd OUT16.wav
13760               ffmpeg -i HDCD16.wav -af hdcd -c:a pcm_s24le OUT24.wav
13761
13762       The filter accepts the following options:
13763
13764       disable_autoconvert
13765           Disable any automatic format conversion or resampling in the filter
13766           graph.
13767
13768       process_stereo
13769           Process the stereo channels together. If target_gain does not match
13770           between channels, consider it invalid and use the last valid
13771           target_gain.
13772
13773       cdt_ms
13774           Set the code detect timer period in ms.
13775
13776       force_pe
13777           Always extend peaks above -3dBFS even if PE isn't signaled.
13778
13779       analyze_mode
13780           Replace audio with a solid tone and adjust the amplitude to signal
13781           some specific aspect of the decoding process. The output file can
13782           be loaded in an audio editor alongside the original to aid
13783           analysis.
13784
13785           "analyze_mode=pe:force_pe=true" can be used to see all samples
13786           above the PE level.
13787
13788           Modes are:
13789
13790           0, off
13791               Disabled
13792
13793           1, lle
13794               Gain adjustment level at each sample
13795
13796           2, pe
13797               Samples where peak extend occurs
13798
13799           3, cdt
13800               Samples where the code detect timer is active
13801
13802           4, tgm
13803               Samples where the target gain does not match between channels
13804
13805   headphone
13806       Apply head-related transfer functions (HRTFs) to create virtual
13807       loudspeakers around the user for binaural listening via headphones.
13808       The HRIRs are provided via additional streams, for each channel one
13809       stereo input stream is needed.
13810
13811       The filter accepts the following options:
13812
13813       map Set mapping of input streams for convolution.  The argument is a
13814           '|'-separated list of channel names in order as they are given as
13815           additional stream inputs for filter.  This also specify number of
13816           input streams. Number of input streams must be not less than number
13817           of channels in first stream plus one.
13818
13819       gain
13820           Set gain applied to audio. Value is in dB. Default is 0.
13821
13822       type
13823           Set processing type. Can be time or freq. time is processing audio
13824           in time domain which is slow.  freq is processing audio in
13825           frequency domain which is fast.  Default is freq.
13826
13827       lfe Set custom gain for LFE channels. Value is in dB. Default is 0.
13828
13829       size
13830           Set size of frame in number of samples which will be processed at
13831           once.  Default value is 1024. Allowed range is from 1024 to 96000.
13832
13833       hrir
13834           Set format of hrir stream.  Default value is stereo. Alternative
13835           value is multich.  If value is set to stereo, number of additional
13836           streams should be greater or equal to number of input channels in
13837           first input stream.  Also each additional stream should have stereo
13838           number of channels.  If value is set to multich, number of
13839           additional streams should be exactly one. Also number of input
13840           channels of additional stream should be equal or greater than twice
13841           number of channels of first input stream.
13842
13843       Examples
13844
13845       •   Full example using wav files as coefficients with amovie filters
13846           for 7.1 downmix, each amovie filter use stereo file with IR
13847           coefficients as input.  The files give coefficients for each
13848           position of virtual loudspeaker:
13849
13850                   ffmpeg -i input.wav
13851                   -filter_complex "amovie=azi_270_ele_0_DFC.wav[sr];amovie=azi_90_ele_0_DFC.wav[sl];amovie=azi_225_ele_0_DFC.wav[br];amovie=azi_135_ele_0_DFC.wav[bl];amovie=azi_0_ele_0_DFC.wav,asplit[fc][lfe];amovie=azi_35_ele_0_DFC.wav[fl];amovie=azi_325_ele_0_DFC.wav[fr];[0:a][fl][fr][fc][lfe][bl][br][sl][sr]headphone=FL|FR|FC|LFE|BL|BR|SL|SR"
13852                   output.wav
13853
13854       •   Full example using wav files as coefficients with amovie filters
13855           for 7.1 downmix, but now in multich hrir format.
13856
13857                   ffmpeg -i input.wav -filter_complex "amovie=minp.wav[hrirs];[0:a][hrirs]headphone=map=FL|FR|FC|LFE|BL|BR|SL|SR:hrir=multich"
13858                   output.wav
13859
13860   highpass
13861       Apply a high-pass filter with 3dB point frequency.  The filter can be
13862       either single-pole, or double-pole (the default).  The filter roll off
13863       at 6dB per pole per octave (20dB per pole per decade).
13864
13865       The filter accepts the following options:
13866
13867       frequency, f
13868           Set frequency in Hz. Default is 3000.
13869
13870       poles, p
13871           Set number of poles. Default is 2.
13872
13873       width_type, t
13874           Set method to specify band-width of filter.
13875
13876           h   Hz
13877
13878           q   Q-Factor
13879
13880           o   octave
13881
13882           s   slope
13883
13884           k   kHz
13885
13886       width, w
13887           Specify the band-width of a filter in width_type units.  Applies
13888           only to double-pole filter.  The default is 0.707q and gives a
13889           Butterworth response.
13890
13891       mix, m
13892           How much to use filtered signal in output. Default is 1.  Range is
13893           between 0 and 1.
13894
13895       channels, c
13896           Specify which channels to filter, by default all available are
13897           filtered.
13898
13899       normalize, n
13900           Normalize biquad coefficients, by default is disabled.  Enabling it
13901           will normalize magnitude response at DC to 0dB.
13902
13903       transform, a
13904           Set transform type of IIR filter.
13905
13906           di
13907           dii
13908           tdi
13909           tdii
13910           latt
13911           svf
13912           zdf
13913       precision, r
13914           Set precison of filtering.
13915
13916           auto
13917               Pick automatic sample format depending on surround filters.
13918
13919           s16 Always use signed 16-bit.
13920
13921           s32 Always use signed 32-bit.
13922
13923           f32 Always use float 32-bit.
13924
13925           f64 Always use float 64-bit.
13926
13927       block_size, b
13928           Set block size used for reverse IIR processing. If this value is
13929           set to high enough value (higher than impulse response length
13930           truncated when reaches near zero values) filtering will become
13931           linear phase otherwise if not big enough it will just produce nasty
13932           artifacts.
13933
13934           Note that filter delay will be exactly this many samples when set
13935           to non-zero value.
13936
13937       Commands
13938
13939       This filter supports the following commands:
13940
13941       frequency, f
13942           Change highpass frequency.  Syntax for the command is : "frequency"
13943
13944       width_type, t
13945           Change highpass width_type.  Syntax for the command is :
13946           "width_type"
13947
13948       width, w
13949           Change highpass width.  Syntax for the command is : "width"
13950
13951       mix, m
13952           Change highpass mix.  Syntax for the command is : "mix"
13953
13954   join
13955       Join multiple input streams into one multi-channel stream.
13956
13957       It accepts the following parameters:
13958
13959       inputs
13960           The number of input streams. It defaults to 2.
13961
13962       channel_layout
13963           The desired output channel layout. It defaults to stereo.
13964
13965       map Map channels from inputs to output. The argument is a '|'-separated
13966           list of mappings, each in the "input_idx.in_channel-out_channel"
13967           form. input_idx is the 0-based index of the input stream.
13968           in_channel can be either the name of the input channel (e.g. FL for
13969           front left) or its index in the specified input stream. out_channel
13970           is the name of the output channel.
13971
13972       The filter will attempt to guess the mappings when they are not
13973       specified explicitly. It does so by first trying to find an unused
13974       matching input channel and if that fails it picks the first unused
13975       input channel.
13976
13977       Join 3 inputs (with properly set channel layouts):
13978
13979               ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
13980
13981       Build a 5.1 output from 6 single-channel streams:
13982
13983               ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex
13984               'join=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'
13985               out
13986
13987   ladspa
13988       Load a LADSPA (Linux Audio Developer's Simple Plugin API) plugin.
13989
13990       To enable compilation of this filter you need to configure FFmpeg with
13991       "--enable-ladspa".
13992
13993       file, f
13994           Specifies the name of LADSPA plugin library to load. If the
13995           environment variable LADSPA_PATH is defined, the LADSPA plugin is
13996           searched in each one of the directories specified by the colon
13997           separated list in LADSPA_PATH, otherwise in the standard LADSPA
13998           paths, which are in this order: HOME/.ladspa/lib/,
13999           /usr/local/lib/ladspa/, /usr/lib/ladspa/.
14000
14001       plugin, p
14002           Specifies the plugin within the library. Some libraries contain
14003           only one plugin, but others contain many of them. If this is not
14004           set filter will list all available plugins within the specified
14005           library.
14006
14007       controls, c
14008           Set the '|' separated list of controls which are zero or more
14009           floating point values that determine the behavior of the loaded
14010           plugin (for example delay, threshold or gain).  Controls need to be
14011           defined using the following syntax:
14012           c0=value0|c1=value1|c2=value2|..., where valuei is the value set on
14013           the i-th control.  Alternatively they can be also defined using the
14014           following syntax: value0|value1|value2|..., where valuei is the
14015           value set on the i-th control.  If controls is set to "help", all
14016           available controls and their valid ranges are printed.
14017
14018       sample_rate, s
14019           Specify the sample rate, default to 44100. Only used if plugin have
14020           zero inputs.
14021
14022       nb_samples, n
14023           Set the number of samples per channel per each output frame,
14024           default is 1024. Only used if plugin have zero inputs.
14025
14026       duration, d
14027           Set the minimum duration of the sourced audio. See the Time
14028           duration section in the ffmpeg-utils(1) manual for the accepted
14029           syntax.  Note that the resulting duration may be greater than the
14030           specified duration, as the generated audio is always cut at the end
14031           of a complete frame.  If not specified, or the expressed duration
14032           is negative, the audio is supposed to be generated forever.  Only
14033           used if plugin have zero inputs.
14034
14035       latency, l
14036           Enable latency compensation, by default is disabled.  Only used if
14037           plugin have inputs.
14038
14039       Examples
14040
14041       •   List all available plugins within amp (LADSPA example plugin)
14042           library:
14043
14044                   ladspa=file=amp
14045
14046       •   List all available controls and their valid ranges for "vcf_notch"
14047           plugin from "VCF" library:
14048
14049                   ladspa=f=vcf:p=vcf_notch:c=help
14050
14051       •   Simulate low quality audio equipment using "Computer Music Toolkit"
14052           (CMT) plugin library:
14053
14054                   ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
14055
14056       •   Add reverberation to the audio using TAP-plugins (Tom's Audio
14057           Processing plugins):
14058
14059                   ladspa=file=tap_reverb:tap_reverb
14060
14061       •   Generate white noise, with 0.2 amplitude:
14062
14063                   ladspa=file=cmt:noise_source_white:c=c0=.2
14064
14065       •   Generate 20 bpm clicks using plugin "C* Click - Metronome" from the
14066           "C* Audio Plugin Suite" (CAPS) library:
14067
14068                   ladspa=file=caps:Click:c=c1=20'
14069
14070       •   Apply "C* Eq10X2 - Stereo 10-band equaliser" effect:
14071
14072                   ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
14073
14074       •   Increase volume by 20dB using fast lookahead limiter from Steve
14075           Harris "SWH Plugins" collection:
14076
14077                   ladspa=fast_lookahead_limiter_1913:fastLookaheadLimiter:20|0|2
14078
14079       •   Attenuate low frequencies using Multiband EQ from Steve Harris "SWH
14080           Plugins" collection:
14081
14082                   ladspa=mbeq_1197:mbeq:-24|-24|-24|0|0|0|0|0|0|0|0|0|0|0|0
14083
14084       •   Reduce stereo image using "Narrower" from the "C* Audio Plugin
14085           Suite" (CAPS) library:
14086
14087                   ladspa=caps:Narrower
14088
14089       •   Another white noise, now using "C* Audio Plugin Suite" (CAPS)
14090           library:
14091
14092                   ladspa=caps:White:.2
14093
14094       •   Some fractal noise, using "C* Audio Plugin Suite" (CAPS) library:
14095
14096                   ladspa=caps:Fractal:c=c1=1
14097
14098       •   Dynamic volume normalization using "VLevel" plugin:
14099
14100                   ladspa=vlevel-ladspa:vlevel_mono
14101
14102       Commands
14103
14104       This filter supports the following commands:
14105
14106       cN  Modify the N-th control value.
14107
14108           If the specified value is not valid, it is ignored and prior one is
14109           kept.
14110
14111   loudnorm
14112       EBU R128 loudness normalization. Includes both dynamic and linear
14113       normalization modes.  Support for both single pass (livestreams, files)
14114       and double pass (files) modes.  This algorithm can target IL, LRA, and
14115       maximum true peak. In dynamic mode, to accurately detect true peaks,
14116       the audio stream will be upsampled to 192 kHz.  Use the "-ar" option or
14117       "aresample" filter to explicitly set an output sample rate.
14118
14119       The filter accepts the following options:
14120
14121       I, i
14122           Set integrated loudness target.  Range is -70.0 - -5.0. Default
14123           value is -24.0.
14124
14125       LRA, lra
14126           Set loudness range target.  Range is 1.0 - 50.0. Default value is
14127           7.0.
14128
14129       TP, tp
14130           Set maximum true peak.  Range is -9.0 - +0.0. Default value is
14131           -2.0.
14132
14133       measured_I, measured_i
14134           Measured IL of input file.  Range is -99.0 - +0.0.
14135
14136       measured_LRA, measured_lra
14137           Measured LRA of input file.  Range is  0.0 - 99.0.
14138
14139       measured_TP, measured_tp
14140           Measured true peak of input file.  Range is  -99.0 - +99.0.
14141
14142       measured_thresh
14143           Measured threshold of input file.  Range is -99.0 - +0.0.
14144
14145       offset
14146           Set offset gain. Gain is applied before the true-peak limiter.
14147           Range is  -99.0 - +99.0. Default is +0.0.
14148
14149       linear
14150           Normalize by linearly scaling the source audio.  "measured_I",
14151           "measured_LRA", "measured_TP", and "measured_thresh" must all be
14152           specified. Target LRA shouldn't be lower than source LRA and the
14153           change in integrated loudness shouldn't result in a true peak which
14154           exceeds the target TP. If any of these conditions aren't met,
14155           normalization mode will revert to dynamic.  Options are "true" or
14156           "false". Default is "true".
14157
14158       dual_mono
14159           Treat mono input files as "dual-mono". If a mono file is intended
14160           for playback on a stereo system, its EBU R128 measurement will be
14161           perceptually incorrect.  If set to "true", this option will
14162           compensate for this effect.  Multi-channel input files are not
14163           affected by this option.  Options are true or false. Default is
14164           false.
14165
14166       print_format
14167           Set print format for stats. Options are summary, json, or none.
14168           Default value is none.
14169
14170   lowpass
14171       Apply a low-pass filter with 3dB point frequency.  The filter can be
14172       either single-pole or double-pole (the default).  The filter roll off
14173       at 6dB per pole per octave (20dB per pole per decade).
14174
14175       The filter accepts the following options:
14176
14177       frequency, f
14178           Set frequency in Hz. Default is 500.
14179
14180       poles, p
14181           Set number of poles. Default is 2.
14182
14183       width_type, t
14184           Set method to specify band-width of filter.
14185
14186           h   Hz
14187
14188           q   Q-Factor
14189
14190           o   octave
14191
14192           s   slope
14193
14194           k   kHz
14195
14196       width, w
14197           Specify the band-width of a filter in width_type units.  Applies
14198           only to double-pole filter.  The default is 0.707q and gives a
14199           Butterworth response.
14200
14201       mix, m
14202           How much to use filtered signal in output. Default is 1.  Range is
14203           between 0 and 1.
14204
14205       channels, c
14206           Specify which channels to filter, by default all available are
14207           filtered.
14208
14209       normalize, n
14210           Normalize biquad coefficients, by default is disabled.  Enabling it
14211           will normalize magnitude response at DC to 0dB.
14212
14213       transform, a
14214           Set transform type of IIR filter.
14215
14216           di
14217           dii
14218           tdi
14219           tdii
14220           latt
14221           svf
14222           zdf
14223       precision, r
14224           Set precison of filtering.
14225
14226           auto
14227               Pick automatic sample format depending on surround filters.
14228
14229           s16 Always use signed 16-bit.
14230
14231           s32 Always use signed 32-bit.
14232
14233           f32 Always use float 32-bit.
14234
14235           f64 Always use float 64-bit.
14236
14237       block_size, b
14238           Set block size used for reverse IIR processing. If this value is
14239           set to high enough value (higher than impulse response length
14240           truncated when reaches near zero values) filtering will become
14241           linear phase otherwise if not big enough it will just produce nasty
14242           artifacts.
14243
14244           Note that filter delay will be exactly this many samples when set
14245           to non-zero value.
14246
14247       Examples
14248
14249       •   Lowpass only LFE channel, it LFE is not present it does nothing:
14250
14251                   lowpass=c=LFE
14252
14253       Commands
14254
14255       This filter supports the following commands:
14256
14257       frequency, f
14258           Change lowpass frequency.  Syntax for the command is : "frequency"
14259
14260       width_type, t
14261           Change lowpass width_type.  Syntax for the command is :
14262           "width_type"
14263
14264       width, w
14265           Change lowpass width.  Syntax for the command is : "width"
14266
14267       mix, m
14268           Change lowpass mix.  Syntax for the command is : "mix"
14269
14270   lv2
14271       Load a LV2 (LADSPA Version 2) plugin.
14272
14273       To enable compilation of this filter you need to configure FFmpeg with
14274       "--enable-lv2".
14275
14276       plugin, p
14277           Specifies the plugin URI. You may need to escape ':'.
14278
14279       controls, c
14280           Set the '|' separated list of controls which are zero or more
14281           floating point values that determine the behavior of the loaded
14282           plugin (for example delay, threshold or gain).  If controls is set
14283           to "help", all available controls and their valid ranges are
14284           printed.
14285
14286       sample_rate, s
14287           Specify the sample rate, default to 44100. Only used if plugin have
14288           zero inputs.
14289
14290       nb_samples, n
14291           Set the number of samples per channel per each output frame,
14292           default is 1024. Only used if plugin have zero inputs.
14293
14294       duration, d
14295           Set the minimum duration of the sourced audio. See the Time
14296           duration section in the ffmpeg-utils(1) manual for the accepted
14297           syntax.  Note that the resulting duration may be greater than the
14298           specified duration, as the generated audio is always cut at the end
14299           of a complete frame.  If not specified, or the expressed duration
14300           is negative, the audio is supposed to be generated forever.  Only
14301           used if plugin have zero inputs.
14302
14303       Examples
14304
14305       •   Apply bass enhancer plugin from Calf:
14306
14307                   lv2=p=http\\\\://calf.sourceforge.net/plugins/BassEnhancer:c=amount=2
14308
14309       •   Apply vinyl plugin from Calf:
14310
14311                   lv2=p=http\\\\://calf.sourceforge.net/plugins/Vinyl:c=drone=0.2|aging=0.5
14312
14313       •   Apply bit crusher plugin from ArtyFX:
14314
14315                   lv2=p=http\\\\://www.openavproductions.com/artyfx#bitta:c=crush=0.3
14316
14317       Commands
14318
14319       This filter supports all options that are exported by plugin as
14320       commands.
14321
14322   mcompand
14323       Multiband Compress or expand the audio's dynamic range.
14324
14325       The input audio is divided into bands using 4th order Linkwitz-Riley
14326       IIRs.  This is akin to the crossover of a loudspeaker, and results in
14327       flat frequency response when absent compander action.
14328
14329       It accepts the following parameters:
14330
14331       args
14332           This option syntax is: attack,decay,[attack,decay..] soft-knee
14333           points crossover_frequency [delay [initial_volume [gain]]] |
14334           attack,decay ...  For explanation of each item refer to compand
14335           filter documentation.
14336
14337   pan
14338       Mix channels with specific gain levels. The filter accepts the output
14339       channel layout followed by a set of channels definitions.
14340
14341       This filter is also designed to efficiently remap the channels of an
14342       audio stream.
14343
14344       The filter accepts parameters of the form: "l|outdef|outdef|..."
14345
14346       l   output channel layout or number of channels
14347
14348       outdef
14349           output channel specification, of the form:
14350           "out_name=[gain*]in_name[(+-)[gain*]in_name...]"
14351
14352       out_name
14353           output channel to define, either a channel name (FL, FR, etc.) or a
14354           channel number (c0, c1, etc.)
14355
14356       gain
14357           multiplicative coefficient for the channel, 1 leaving the volume
14358           unchanged
14359
14360       in_name
14361           input channel to use, see out_name for details; it is not possible
14362           to mix named and numbered input channels
14363
14364       If the `=' in a channel specification is replaced by `<', then the
14365       gains for that specification will be renormalized so that the total is
14366       1, thus avoiding clipping noise.
14367
14368       Mixing examples
14369
14370       For example, if you want to down-mix from stereo to mono, but with a
14371       bigger factor for the left channel:
14372
14373               pan=1c|c0=0.9*c0+0.1*c1
14374
14375       A customized down-mix to stereo that works automatically for 3-, 4-, 5-
14376       and 7-channels surround:
14377
14378               pan=stereo| FL < FL + 0.5*FC + 0.6*BL + 0.6*SL | FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
14379
14380       Note that ffmpeg integrates a default down-mix (and up-mix) system that
14381       should be preferred (see "-ac" option) unless you have very specific
14382       needs.
14383
14384       Remapping examples
14385
14386       The channel remapping will be effective if, and only if:
14387
14388       *<gain coefficients are zeroes or ones,>
14389       *<only one input per channel output,>
14390
14391       If all these conditions are satisfied, the filter will notify the user
14392       ("Pure channel mapping detected"), and use an optimized and lossless
14393       method to do the remapping.
14394
14395       For example, if you have a 5.1 source and want a stereo audio stream by
14396       dropping the extra channels:
14397
14398               pan="stereo| c0=FL | c1=FR"
14399
14400       Given the same source, you can also switch front left and front right
14401       channels and keep the input channel layout:
14402
14403               pan="5.1| c0=c1 | c1=c0 | c2=c2 | c3=c3 | c4=c4 | c5=c5"
14404
14405       If the input is a stereo audio stream, you can mute the front left
14406       channel (and still keep the stereo channel layout) with:
14407
14408               pan="stereo|c1=c1"
14409
14410       Still with a stereo audio stream input, you can copy the right channel
14411       in both front left and right:
14412
14413               pan="stereo| c0=FR | c1=FR"
14414
14415   replaygain
14416       ReplayGain scanner filter. This filter takes an audio stream as an
14417       input and outputs it unchanged.  At end of filtering it displays
14418       "track_gain" and "track_peak".
14419
14420   resample
14421       Convert the audio sample format, sample rate and channel layout. It is
14422       not meant to be used directly.
14423
14424   rubberband
14425       Apply time-stretching and pitch-shifting with librubberband.
14426
14427       To enable compilation of this filter, you need to configure FFmpeg with
14428       "--enable-librubberband".
14429
14430       The filter accepts the following options:
14431
14432       tempo
14433           Set tempo scale factor.
14434
14435       pitch
14436           Set pitch scale factor.
14437
14438       transients
14439           Set transients detector.  Possible values are:
14440
14441           crisp
14442           mixed
14443           smooth
14444       detector
14445           Set detector.  Possible values are:
14446
14447           compound
14448           percussive
14449           soft
14450       phase
14451           Set phase.  Possible values are:
14452
14453           laminar
14454           independent
14455       window
14456           Set processing window size.  Possible values are:
14457
14458           standard
14459           short
14460           long
14461       smoothing
14462           Set smoothing.  Possible values are:
14463
14464           off
14465           on
14466       formant
14467           Enable formant preservation when shift pitching.  Possible values
14468           are:
14469
14470           shifted
14471           preserved
14472       pitchq
14473           Set pitch quality.  Possible values are:
14474
14475           quality
14476           speed
14477           consistency
14478       channels
14479           Set channels.  Possible values are:
14480
14481           apart
14482           together
14483
14484       Commands
14485
14486       This filter supports the following commands:
14487
14488       tempo
14489           Change filter tempo scale factor.  Syntax for the command is :
14490           "tempo"
14491
14492       pitch
14493           Change filter pitch scale factor.  Syntax for the command is :
14494           "pitch"
14495
14496   sidechaincompress
14497       This filter acts like normal compressor but has the ability to compress
14498       detected signal using second input signal.  It needs two input streams
14499       and returns one output stream.  First input stream will be processed
14500       depending on second stream signal.  The filtered signal then can be
14501       filtered with other filters in later stages of processing. See pan and
14502       amerge filter.
14503
14504       The filter accepts the following options:
14505
14506       level_in
14507           Set input gain. Default is 1. Range is between 0.015625 and 64.
14508
14509       mode
14510           Set mode of compressor operation. Can be "upward" or "downward".
14511           Default is "downward".
14512
14513       threshold
14514           If a signal of second stream raises above this level it will affect
14515           the gain reduction of first stream.  By default is 0.125. Range is
14516           between 0.00097563 and 1.
14517
14518       ratio
14519           Set a ratio about which the signal is reduced. 1:2 means that if
14520           the level raised 4dB above the threshold, it will be only 2dB above
14521           after the reduction.  Default is 2. Range is between 1 and 20.
14522
14523       attack
14524           Amount of milliseconds the signal has to rise above the threshold
14525           before gain reduction starts. Default is 20. Range is between 0.01
14526           and 2000.
14527
14528       release
14529           Amount of milliseconds the signal has to fall below the threshold
14530           before reduction is decreased again. Default is 250. Range is
14531           between 0.01 and 9000.
14532
14533       makeup
14534           Set the amount by how much signal will be amplified after
14535           processing.  Default is 1. Range is from 1 to 64.
14536
14537       knee
14538           Curve the sharp knee around the threshold to enter gain reduction
14539           more softly.  Default is 2.82843. Range is between 1 and 8.
14540
14541       link
14542           Choose if the "average" level between all channels of side-chain
14543           stream or the louder("maximum") channel of side-chain stream
14544           affects the reduction. Default is "average".
14545
14546       detection
14547           Should the exact signal be taken in case of "peak" or an RMS one in
14548           case of "rms". Default is "rms" which is mainly smoother.
14549
14550       level_sc
14551           Set sidechain gain. Default is 1. Range is between 0.015625 and 64.
14552
14553       mix How much to use compressed signal in output. Default is 1.  Range
14554           is between 0 and 1.
14555
14556       Commands
14557
14558       This filter supports the all above options as commands.
14559
14560       Examples
14561
14562       •   Full ffmpeg example taking 2 audio inputs, 1st input to be
14563           compressed depending on the signal of 2nd input and later
14564           compressed signal to be merged with 2nd input:
14565
14566                   ffmpeg -i main.flac -i sidechain.flac -filter_complex "[1:a]asplit=2[sc][mix];[0:a][sc]sidechaincompress[compr];[compr][mix]amerge"
14567
14568   sidechaingate
14569       A sidechain gate acts like a normal (wideband) gate but has the ability
14570       to filter the detected signal before sending it to the gain reduction
14571       stage.  Normally a gate uses the full range signal to detect a level
14572       above the threshold.  For example: If you cut all lower frequencies
14573       from your sidechain signal the gate will decrease the volume of your
14574       track only if not enough highs appear. With this technique you are able
14575       to reduce the resonation of a natural drum or remove "rumbling" of
14576       muted strokes from a heavily distorted guitar.  It needs two input
14577       streams and returns one output stream.  First input stream will be
14578       processed depending on second stream signal.
14579
14580       The filter accepts the following options:
14581
14582       level_in
14583           Set input level before filtering.  Default is 1. Allowed range is
14584           from 0.015625 to 64.
14585
14586       mode
14587           Set the mode of operation. Can be "upward" or "downward".  Default
14588           is "downward". If set to "upward" mode, higher parts of signal will
14589           be amplified, expanding dynamic range in upward direction.
14590           Otherwise, in case of "downward" lower parts of signal will be
14591           reduced.
14592
14593       range
14594           Set the level of gain reduction when the signal is below the
14595           threshold.  Default is 0.06125. Allowed range is from 0 to 1.
14596           Setting this to 0 disables reduction and then filter behaves like
14597           expander.
14598
14599       threshold
14600           If a signal rises above this level the gain reduction is released.
14601           Default is 0.125. Allowed range is from 0 to 1.
14602
14603       ratio
14604           Set a ratio about which the signal is reduced.  Default is 2.
14605           Allowed range is from 1 to 9000.
14606
14607       attack
14608           Amount of milliseconds the signal has to rise above the threshold
14609           before gain reduction stops.  Default is 20 milliseconds. Allowed
14610           range is from 0.01 to 9000.
14611
14612       release
14613           Amount of milliseconds the signal has to fall below the threshold
14614           before the reduction is increased again. Default is 250
14615           milliseconds.  Allowed range is from 0.01 to 9000.
14616
14617       makeup
14618           Set amount of amplification of signal after processing.  Default is
14619           1. Allowed range is from 1 to 64.
14620
14621       knee
14622           Curve the sharp knee around the threshold to enter gain reduction
14623           more softly.  Default is 2.828427125. Allowed range is from 1 to 8.
14624
14625       detection
14626           Choose if exact signal should be taken for detection or an RMS like
14627           one.  Default is rms. Can be peak or rms.
14628
14629       link
14630           Choose if the average level between all channels or the louder
14631           channel affects the reduction.  Default is average. Can be average
14632           or maximum.
14633
14634       level_sc
14635           Set sidechain gain. Default is 1. Range is from 0.015625 to 64.
14636
14637       Commands
14638
14639       This filter supports the all above options as commands.
14640
14641   silencedetect
14642       Detect silence in an audio stream.
14643
14644       This filter logs a message when it detects that the input audio volume
14645       is less or equal to a noise tolerance value for a duration greater or
14646       equal to the minimum detected noise duration.
14647
14648       The printed times and duration are expressed in seconds. The
14649       "lavfi.silence_start" or "lavfi.silence_start.X" metadata key is set on
14650       the first frame whose timestamp equals or exceeds the detection
14651       duration and it contains the timestamp of the first frame of the
14652       silence.
14653
14654       The "lavfi.silence_duration" or "lavfi.silence_duration.X" and
14655       "lavfi.silence_end" or "lavfi.silence_end.X" metadata keys are set on
14656       the first frame after the silence. If mono is enabled, and each channel
14657       is evaluated separately, the ".X" suffixed keys are used, and "X"
14658       corresponds to the channel number.
14659
14660       The filter accepts the following options:
14661
14662       noise, n
14663           Set noise tolerance. Can be specified in dB (in case "dB" is
14664           appended to the specified value) or amplitude ratio. Default is
14665           -60dB, or 0.001.
14666
14667       duration, d
14668           Set silence duration until notification (default is 2 seconds). See
14669           the Time duration section in the ffmpeg-utils(1) manual for the
14670           accepted syntax.
14671
14672       mono, m
14673           Process each channel separately, instead of combined. By default is
14674           disabled.
14675
14676       Examples
14677
14678       •   Detect 5 seconds of silence with -50dB noise tolerance:
14679
14680                   silencedetect=n=-50dB:d=5
14681
14682       •   Complete example with ffmpeg to detect silence with 0.0001 noise
14683           tolerance in silence.mp3:
14684
14685                   ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
14686
14687   silenceremove
14688       Remove silence from the beginning, middle or end of the audio.
14689
14690       The filter accepts the following options:
14691
14692       start_periods
14693           This value is used to indicate if audio should be trimmed at
14694           beginning of the audio. A value of zero indicates no silence should
14695           be trimmed from the beginning. When specifying a non-zero value, it
14696           trims audio up until it finds non-silence. Normally, when trimming
14697           silence from beginning of audio the start_periods will be 1 but it
14698           can be increased to higher values to trim all audio up to specific
14699           count of non-silence periods.  Default value is 0.
14700
14701       start_duration
14702           Specify the amount of time that non-silence must be detected before
14703           it stops trimming audio. By increasing the duration, bursts of
14704           noises can be treated as silence and trimmed off. Default value is
14705           0.
14706
14707       start_threshold
14708           This indicates what sample value should be treated as silence. For
14709           digital audio, a value of 0 may be fine but for audio recorded from
14710           analog, you may wish to increase the value to account for
14711           background noise.  Can be specified in dB (in case "dB" is appended
14712           to the specified value) or amplitude ratio. Default value is 0.
14713
14714       start_silence
14715           Specify max duration of silence at beginning that will be kept
14716           after trimming. Default is 0, which is equal to trimming all
14717           samples detected as silence.
14718
14719       start_mode
14720           Specify mode of detection of silence end in start of multi-channel
14721           audio.  Can be any or all. Default is any.  With any, any sample
14722           that is detected as non-silence will cause stopped trimming of
14723           silence.  With all, only if all channels are detected as non-
14724           silence will cause stopped trimming of silence.
14725
14726       stop_periods
14727           Set the count for trimming silence from the end of audio.  To
14728           remove silence from the middle of a file, specify a stop_periods
14729           that is negative. This value is then treated as a positive value
14730           and is used to indicate the effect should restart processing as
14731           specified by start_periods, making it suitable for removing periods
14732           of silence in the middle of the audio.  Default value is 0.
14733
14734       stop_duration
14735           Specify a duration of silence that must exist before audio is not
14736           copied any more. By specifying a higher duration, silence that is
14737           wanted can be left in the audio.  Default value is 0.
14738
14739       stop_threshold
14740           This is the same as start_threshold but for trimming silence from
14741           the end of audio.  Can be specified in dB (in case "dB" is appended
14742           to the specified value) or amplitude ratio. Default value is 0.
14743
14744       stop_silence
14745           Specify max duration of silence at end that will be kept after
14746           trimming. Default is 0, which is equal to trimming all samples
14747           detected as silence.
14748
14749       stop_mode
14750           Specify mode of detection of silence start in end of multi-channel
14751           audio.  Can be any or all. Default is any.  With any, any sample
14752           that is detected as non-silence will cause stopped trimming of
14753           silence.  With all, only if all channels are detected as non-
14754           silence will cause stopped trimming of silence.
14755
14756       detection
14757           Set how is silence detected. Can be "rms" or "peak". Second is
14758           faster and works better with digital silence which is exactly 0.
14759           Default value is "rms".
14760
14761       window
14762           Set duration in number of seconds used to calculate size of window
14763           in number of samples for detecting silence.  Default value is 0.02.
14764           Allowed range is from 0 to 10.
14765
14766       Examples
14767
14768       •   The following example shows how this filter can be used to start a
14769           recording that does not contain the delay at the start which
14770           usually occurs between pressing the record button and the start of
14771           the performance:
14772
14773                   silenceremove=start_periods=1:start_duration=5:start_threshold=0.02
14774
14775       •   Trim all silence encountered from beginning to end where there is
14776           more than 1 second of silence in audio:
14777
14778                   silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-90dB
14779
14780       •   Trim all digital silence samples, using peak detection, from
14781           beginning to end where there is more than 0 samples of digital
14782           silence in audio and digital silence is detected in all channels at
14783           same positions in stream:
14784
14785                   silenceremove=window=0:detection=peak:stop_mode=all:start_mode=all:stop_periods=-1:stop_threshold=0
14786
14787   sofalizer
14788       SOFAlizer uses head-related transfer functions (HRTFs) to create
14789       virtual loudspeakers around the user for binaural listening via
14790       headphones (audio formats up to 9 channels supported).  The HRTFs are
14791       stored in SOFA files (see <http://www.sofacoustics.org/> for a
14792       database).  SOFAlizer is developed at the Acoustics Research Institute
14793       (ARI) of the Austrian Academy of Sciences.
14794
14795       To enable compilation of this filter you need to configure FFmpeg with
14796       "--enable-libmysofa".
14797
14798       The filter accepts the following options:
14799
14800       sofa
14801           Set the SOFA file used for rendering.
14802
14803       gain
14804           Set gain applied to audio. Value is in dB. Default is 0.
14805
14806       rotation
14807           Set rotation of virtual loudspeakers in deg. Default is 0.
14808
14809       elevation
14810           Set elevation of virtual speakers in deg. Default is 0.
14811
14812       radius
14813           Set distance in meters between loudspeakers and the listener with
14814           near-field HRTFs. Default is 1.
14815
14816       type
14817           Set processing type. Can be time or freq. time is processing audio
14818           in time domain which is slow.  freq is processing audio in
14819           frequency domain which is fast.  Default is freq.
14820
14821       speakers
14822           Set custom positions of virtual loudspeakers. Syntax for this
14823           option is: <CH> <AZIM> <ELEV>[|<CH> <AZIM> <ELEV>|...].  Each
14824           virtual loudspeaker is described with short channel name following
14825           with azimuth and elevation in degrees.  Each virtual loudspeaker
14826           description is separated by '|'.  For example to override front
14827           left and front right channel positions use: 'speakers=FL 45 15|FR
14828           345 15'.  Descriptions with unrecognised channel names are ignored.
14829
14830       lfegain
14831           Set custom gain for LFE channels. Value is in dB. Default is 0.
14832
14833       framesize
14834           Set custom frame size in number of samples. Default is 1024.
14835           Allowed range is from 1024 to 96000. Only used if option type is
14836           set to freq.
14837
14838       normalize
14839           Should all IRs be normalized upon importing SOFA file.  By default
14840           is enabled.
14841
14842       interpolate
14843           Should nearest IRs be interpolated with neighbor IRs if exact
14844           position does not match. By default is disabled.
14845
14846       minphase
14847           Minphase all IRs upon loading of SOFA file. By default is disabled.
14848
14849       anglestep
14850           Set neighbor search angle step. Only used if option interpolate is
14851           enabled.
14852
14853       radstep
14854           Set neighbor search radius step. Only used if option interpolate is
14855           enabled.
14856
14857       Examples
14858
14859       •   Using ClubFritz6 sofa file:
14860
14861                   sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=1
14862
14863       •   Using ClubFritz12 sofa file and bigger radius with small rotation:
14864
14865                   sofalizer=sofa=/path/to/ClubFritz12.sofa:type=freq:radius=2:rotation=5
14866
14867       •   Similar as above but with custom speaker positions for front left,
14868           front right, back left and back right and also with custom gain:
14869
14870                   "sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=2:speakers=FL 45|FR 315|BL 135|BR 225:gain=28"
14871
14872   speechnorm
14873       Speech Normalizer.
14874
14875       This filter expands or compresses each half-cycle of audio samples
14876       (local set of samples all above or all below zero and between two
14877       nearest zero crossings) depending on threshold value, so audio reaches
14878       target peak value under conditions controlled by below options.
14879
14880       The filter accepts the following options:
14881
14882       peak, p
14883           Set the expansion target peak value. This specifies the highest
14884           allowed absolute amplitude level for the normalized audio input.
14885           Default value is 0.95. Allowed range is from 0.0 to 1.0.
14886
14887       expansion, e
14888           Set the maximum expansion factor. Allowed range is from 1.0 to
14889           50.0. Default value is 2.0.  This option controls maximum local
14890           half-cycle of samples expansion. The maximum expansion would be
14891           such that local peak value reaches target peak value but never to
14892           surpass it and that ratio between new and previous peak value does
14893           not surpass this option value.
14894
14895       compression, c
14896           Set the maximum compression factor. Allowed range is from 1.0 to
14897           50.0. Default value is 2.0.  This option controls maximum local
14898           half-cycle of samples compression. This option is used only if
14899           threshold option is set to value greater than 0.0, then in such
14900           cases when local peak is lower or same as value set by threshold
14901           all samples belonging to that peak's half-cycle will be compressed
14902           by current compression factor.
14903
14904       threshold, t
14905           Set the threshold value. Default value is 0.0. Allowed range is
14906           from 0.0 to 1.0.  This option specifies which half-cycles of
14907           samples will be compressed and which will be expanded.  Any half-
14908           cycle samples with their local peak value below or same as this
14909           option value will be compressed by current compression factor,
14910           otherwise, if greater than threshold value they will be expanded
14911           with expansion factor so that it could reach peak target value but
14912           never surpass it.
14913
14914       raise, r
14915           Set the expansion raising amount per each half-cycle of samples.
14916           Default value is 0.001.  Allowed range is from 0.0 to 1.0. This
14917           controls how fast expansion factor is raised per each new half-
14918           cycle until it reaches expansion value.  Setting this options too
14919           high may lead to distortions.
14920
14921       fall, f
14922           Set the compression raising amount per each half-cycle of samples.
14923           Default value is 0.001.  Allowed range is from 0.0 to 1.0. This
14924           controls how fast compression factor is raised per each new half-
14925           cycle until it reaches compression value.
14926
14927       channels, h
14928           Specify which channels to filter, by default all available channels
14929           are filtered.
14930
14931       invert, i
14932           Enable inverted filtering, by default is disabled. This inverts
14933           interpretation of threshold option. When enabled any half-cycle of
14934           samples with their local peak value below or same as threshold
14935           option will be expanded otherwise it will be compressed.
14936
14937       link, l
14938           Link channels when calculating gain applied to each filtered
14939           channel sample, by default is disabled.  When disabled each
14940           filtered channel gain calculation is independent, otherwise when
14941           this option is enabled the minimum of all possible gains for each
14942           filtered channel is used.
14943
14944       Commands
14945
14946       This filter supports the all above options as commands.
14947
14948   stereotools
14949       This filter has some handy utilities to manage stereo signals, for
14950       converting M/S stereo recordings to L/R signal while having control
14951       over the parameters or spreading the stereo image of master track.
14952
14953       The filter accepts the following options:
14954
14955       level_in
14956           Set input level before filtering for both channels. Defaults is 1.
14957           Allowed range is from 0.015625 to 64.
14958
14959       level_out
14960           Set output level after filtering for both channels. Defaults is 1.
14961           Allowed range is from 0.015625 to 64.
14962
14963       balance_in
14964           Set input balance between both channels. Default is 0.  Allowed
14965           range is from -1 to 1.
14966
14967       balance_out
14968           Set output balance between both channels. Default is 0.  Allowed
14969           range is from -1 to 1.
14970
14971       softclip
14972           Enable softclipping. Results in analog distortion instead of harsh
14973           digital 0dB clipping. Disabled by default.
14974
14975       mutel
14976           Mute the left channel. Disabled by default.
14977
14978       muter
14979           Mute the right channel. Disabled by default.
14980
14981       phasel
14982           Change the phase of the left channel. Disabled by default.
14983
14984       phaser
14985           Change the phase of the right channel. Disabled by default.
14986
14987       mode
14988           Set stereo mode. Available values are:
14989
14990           lr>lr
14991               Left/Right to Left/Right, this is default.
14992
14993           lr>ms
14994               Left/Right to Mid/Side.
14995
14996           ms>lr
14997               Mid/Side to Left/Right.
14998
14999           lr>ll
15000               Left/Right to Left/Left.
15001
15002           lr>rr
15003               Left/Right to Right/Right.
15004
15005           lr>l+r
15006               Left/Right to Left + Right.
15007
15008           lr>rl
15009               Left/Right to Right/Left.
15010
15011           ms>ll
15012               Mid/Side to Left/Left.
15013
15014           ms>rr
15015               Mid/Side to Right/Right.
15016
15017           ms>rl
15018               Mid/Side to Right/Left.
15019
15020           lr>l-r
15021               Left/Right to Left - Right.
15022
15023       slev
15024           Set level of side signal. Default is 1.  Allowed range is from
15025           0.015625 to 64.
15026
15027       sbal
15028           Set balance of side signal. Default is 0.  Allowed range is from -1
15029           to 1.
15030
15031       mlev
15032           Set level of the middle signal. Default is 1.  Allowed range is
15033           from 0.015625 to 64.
15034
15035       mpan
15036           Set middle signal pan. Default is 0. Allowed range is from -1 to 1.
15037
15038       base
15039           Set stereo base between mono and inversed channels. Default is 0.
15040           Allowed range is from -1 to 1.
15041
15042       delay
15043           Set delay in milliseconds how much to delay left from right channel
15044           and vice versa. Default is 0. Allowed range is from -20 to 20.
15045
15046       sclevel
15047           Set S/C level. Default is 1. Allowed range is from 1 to 100.
15048
15049       phase
15050           Set the stereo phase in degrees. Default is 0. Allowed range is
15051           from 0 to 360.
15052
15053       bmode_in, bmode_out
15054           Set balance mode for balance_in/balance_out option.
15055
15056           Can be one of the following:
15057
15058           balance
15059               Classic balance mode. Attenuate one channel at time.  Gain is
15060               raised up to 1.
15061
15062           amplitude
15063               Similar as classic mode above but gain is raised up to 2.
15064
15065           power
15066               Equal power distribution, from -6dB to +6dB range.
15067
15068       Commands
15069
15070       This filter supports the all above options as commands.
15071
15072       Examples
15073
15074       •   Apply karaoke like effect:
15075
15076                   stereotools=mlev=0.015625
15077
15078       •   Convert M/S signal to L/R:
15079
15080                   "stereotools=mode=ms>lr"
15081
15082   stereowiden
15083       This filter enhance the stereo effect by suppressing signal common to
15084       both channels and by delaying the signal of left into right and vice
15085       versa, thereby widening the stereo effect.
15086
15087       The filter accepts the following options:
15088
15089       delay
15090           Time in milliseconds of the delay of left signal into right and
15091           vice versa.  Default is 20 milliseconds.
15092
15093       feedback
15094           Amount of gain in delayed signal into right and vice versa. Gives a
15095           delay effect of left signal in right output and vice versa which
15096           gives widening effect. Default is 0.3.
15097
15098       crossfeed
15099           Cross feed of left into right with inverted phase. This helps in
15100           suppressing the mono. If the value is 1 it will cancel all the
15101           signal common to both channels. Default is 0.3.
15102
15103       drymix
15104           Set level of input signal of original channel. Default is 0.8.
15105
15106       Commands
15107
15108       This filter supports the all above options except "delay" as commands.
15109
15110   superequalizer
15111       Apply 18 band equalizer.
15112
15113       The filter accepts the following options:
15114
15115       1b  Set 65Hz band gain.
15116
15117       2b  Set 92Hz band gain.
15118
15119       3b  Set 131Hz band gain.
15120
15121       4b  Set 185Hz band gain.
15122
15123       5b  Set 262Hz band gain.
15124
15125       6b  Set 370Hz band gain.
15126
15127       7b  Set 523Hz band gain.
15128
15129       8b  Set 740Hz band gain.
15130
15131       9b  Set 1047Hz band gain.
15132
15133       10b Set 1480Hz band gain.
15134
15135       11b Set 2093Hz band gain.
15136
15137       12b Set 2960Hz band gain.
15138
15139       13b Set 4186Hz band gain.
15140
15141       14b Set 5920Hz band gain.
15142
15143       15b Set 8372Hz band gain.
15144
15145       16b Set 11840Hz band gain.
15146
15147       17b Set 16744Hz band gain.
15148
15149       18b Set 20000Hz band gain.
15150
15151   surround
15152       Apply audio surround upmix filter.
15153
15154       This filter allows to produce multichannel output from audio stream.
15155
15156       The filter accepts the following options:
15157
15158       chl_out
15159           Set output channel layout. By default, this is 5.1.
15160
15161           See the Channel Layout section in the ffmpeg-utils(1) manual for
15162           the required syntax.
15163
15164       chl_in
15165           Set input channel layout. By default, this is stereo.
15166
15167           See the Channel Layout section in the ffmpeg-utils(1) manual for
15168           the required syntax.
15169
15170       level_in
15171           Set input volume level. By default, this is 1.
15172
15173       level_out
15174           Set output volume level. By default, this is 1.
15175
15176       lfe Enable LFE channel output if output channel layout has it. By
15177           default, this is enabled.
15178
15179       lfe_low
15180           Set LFE low cut off frequency. By default, this is 128 Hz.
15181
15182       lfe_high
15183           Set LFE high cut off frequency. By default, this is 256 Hz.
15184
15185       lfe_mode
15186           Set LFE mode, can be add or sub. Default is add.  In add mode, LFE
15187           channel is created from input audio and added to output.  In sub
15188           mode, LFE channel is created from input audio and added to output
15189           but also all non-LFE output channels are subtracted with output LFE
15190           channel.
15191
15192       angle
15193           Set angle of stereo surround transform, Allowed range is from 0 to
15194           360.  Default is 90.
15195
15196       fc_in
15197           Set front center input volume. By default, this is 1.
15198
15199       fc_out
15200           Set front center output volume. By default, this is 1.
15201
15202       fl_in
15203           Set front left input volume. By default, this is 1.
15204
15205       fl_out
15206           Set front left output volume. By default, this is 1.
15207
15208       fr_in
15209           Set front right input volume. By default, this is 1.
15210
15211       fr_out
15212           Set front right output volume. By default, this is 1.
15213
15214       sl_in
15215           Set side left input volume. By default, this is 1.
15216
15217       sl_out
15218           Set side left output volume. By default, this is 1.
15219
15220       sr_in
15221           Set side right input volume. By default, this is 1.
15222
15223       sr_out
15224           Set side right output volume. By default, this is 1.
15225
15226       bl_in
15227           Set back left input volume. By default, this is 1.
15228
15229       bl_out
15230           Set back left output volume. By default, this is 1.
15231
15232       br_in
15233           Set back right input volume. By default, this is 1.
15234
15235       br_out
15236           Set back right output volume. By default, this is 1.
15237
15238       bc_in
15239           Set back center input volume. By default, this is 1.
15240
15241       bc_out
15242           Set back center output volume. By default, this is 1.
15243
15244       lfe_in
15245           Set LFE input volume. By default, this is 1.
15246
15247       lfe_out
15248           Set LFE output volume. By default, this is 1.
15249
15250       allx
15251           Set spread usage of stereo image across X axis for all channels.
15252           Allowed range is from -1 to 15.  By default this value is negative
15253           -1, and thus unused.
15254
15255       ally
15256           Set spread usage of stereo image across Y axis for all channels.
15257           Allowed range is from -1 to 15.  By default this value is negative
15258           -1, and thus unused.
15259
15260       fcx, flx, frx, blx, brx, slx, srx, bcx
15261           Set spread usage of stereo image across X axis for each channel.
15262           Allowed range is from 0.06 to 15.  By default this value is 0.5.
15263
15264       fcy, fly, fry, bly, bry, sly, sry, bcy
15265           Set spread usage of stereo image across Y axis for each channel.
15266           Allowed range is from 0.06 to 15.  By default this value is 0.5.
15267
15268       win_size
15269           Set window size. Allowed range is from 1024 to 65536. Default size
15270           is 4096.
15271
15272       win_func
15273           Set window function.
15274
15275           It accepts the following values:
15276
15277           rect
15278           bartlett
15279           hann, hanning
15280           hamming
15281           blackman
15282           welch
15283           flattop
15284           bharris
15285           bnuttall
15286           bhann
15287           sine
15288           nuttall
15289           lanczos
15290           gauss
15291           tukey
15292           dolph
15293           cauchy
15294           parzen
15295           poisson
15296           bohman
15297
15298           Default is "hann".
15299
15300       overlap
15301           Set window overlap. If set to 1, the recommended overlap for
15302           selected window function will be picked. Default is 0.5.
15303
15304   tiltshelf
15305       Boost or cut the lower frequencies and cut or boost higher frequencies
15306       of the audio using a two-pole shelving filter with a response similar
15307       to that of a standard hi-fi's tone-controls.  This is also known as
15308       shelving equalisation (EQ).
15309
15310       The filter accepts the following options:
15311
15312       gain, g
15313           Give the gain at 0 Hz. Its useful range is about -20 (for a large
15314           cut) to +20 (for a large boost).  Beware of clipping when using a
15315           positive gain.
15316
15317       frequency, f
15318           Set the filter's central frequency and so can be used to extend or
15319           reduce the frequency range to be boosted or cut.  The default value
15320           is 3000 Hz.
15321
15322       width_type, t
15323           Set method to specify band-width of filter.
15324
15325           h   Hz
15326
15327           q   Q-Factor
15328
15329           o   octave
15330
15331           s   slope
15332
15333           k   kHz
15334
15335       width, w
15336           Determine how steep is the filter's shelf transition.
15337
15338       poles, p
15339           Set number of poles. Default is 2.
15340
15341       mix, m
15342           How much to use filtered signal in output. Default is 1.  Range is
15343           between 0 and 1.
15344
15345       channels, c
15346           Specify which channels to filter, by default all available are
15347           filtered.
15348
15349       normalize, n
15350           Normalize biquad coefficients, by default is disabled.  Enabling it
15351           will normalize magnitude response at DC to 0dB.
15352
15353       transform, a
15354           Set transform type of IIR filter.
15355
15356           di
15357           dii
15358           tdi
15359           tdii
15360           latt
15361           svf
15362           zdf
15363       precision, r
15364           Set precison of filtering.
15365
15366           auto
15367               Pick automatic sample format depending on surround filters.
15368
15369           s16 Always use signed 16-bit.
15370
15371           s32 Always use signed 32-bit.
15372
15373           f32 Always use float 32-bit.
15374
15375           f64 Always use float 64-bit.
15376
15377       block_size, b
15378           Set block size used for reverse IIR processing. If this value is
15379           set to high enough value (higher than impulse response length
15380           truncated when reaches near zero values) filtering will become
15381           linear phase otherwise if not big enough it will just produce nasty
15382           artifacts.
15383
15384           Note that filter delay will be exactly this many samples when set
15385           to non-zero value.
15386
15387       Commands
15388
15389       This filter supports some options as commands.
15390
15391   treble, highshelf
15392       Boost or cut treble (upper) frequencies of the audio using a two-pole
15393       shelving filter with a response similar to that of a standard hi-fi's
15394       tone-controls. This is also known as shelving equalisation (EQ).
15395
15396       The filter accepts the following options:
15397
15398       gain, g
15399           Give the gain at whichever is the lower of ~22 kHz and the Nyquist
15400           frequency. Its useful range is about -20 (for a large cut) to +20
15401           (for a large boost). Beware of clipping when using a positive gain.
15402
15403       frequency, f
15404           Set the filter's central frequency and so can be used to extend or
15405           reduce the frequency range to be boosted or cut.  The default value
15406           is 3000 Hz.
15407
15408       width_type, t
15409           Set method to specify band-width of filter.
15410
15411           h   Hz
15412
15413           q   Q-Factor
15414
15415           o   octave
15416
15417           s   slope
15418
15419           k   kHz
15420
15421       width, w
15422           Determine how steep is the filter's shelf transition.
15423
15424       poles, p
15425           Set number of poles. Default is 2.
15426
15427       mix, m
15428           How much to use filtered signal in output. Default is 1.  Range is
15429           between 0 and 1.
15430
15431       channels, c
15432           Specify which channels to filter, by default all available are
15433           filtered.
15434
15435       normalize, n
15436           Normalize biquad coefficients, by default is disabled.  Enabling it
15437           will normalize magnitude response at DC to 0dB.
15438
15439       transform, a
15440           Set transform type of IIR filter.
15441
15442           di
15443           dii
15444           tdi
15445           tdii
15446           latt
15447           svf
15448           zdf
15449       precision, r
15450           Set precison of filtering.
15451
15452           auto
15453               Pick automatic sample format depending on surround filters.
15454
15455           s16 Always use signed 16-bit.
15456
15457           s32 Always use signed 32-bit.
15458
15459           f32 Always use float 32-bit.
15460
15461           f64 Always use float 64-bit.
15462
15463       block_size, b
15464           Set block size used for reverse IIR processing. If this value is
15465           set to high enough value (higher than impulse response length
15466           truncated when reaches near zero values) filtering will become
15467           linear phase otherwise if not big enough it will just produce nasty
15468           artifacts.
15469
15470           Note that filter delay will be exactly this many samples when set
15471           to non-zero value.
15472
15473       Commands
15474
15475       This filter supports the following commands:
15476
15477       frequency, f
15478           Change treble frequency.  Syntax for the command is : "frequency"
15479
15480       width_type, t
15481           Change treble width_type.  Syntax for the command is : "width_type"
15482
15483       width, w
15484           Change treble width.  Syntax for the command is : "width"
15485
15486       gain, g
15487           Change treble gain.  Syntax for the command is : "gain"
15488
15489       mix, m
15490           Change treble mix.  Syntax for the command is : "mix"
15491
15492   tremolo
15493       Sinusoidal amplitude modulation.
15494
15495       The filter accepts the following options:
15496
15497       f   Modulation frequency in Hertz. Modulation frequencies in the
15498           subharmonic range (20 Hz or lower) will result in a tremolo effect.
15499           This filter may also be used as a ring modulator by specifying a
15500           modulation frequency higher than 20 Hz.  Range is 0.1 - 20000.0.
15501           Default value is 5.0 Hz.
15502
15503       d   Depth of modulation as a percentage. Range is 0.0 - 1.0.  Default
15504           value is 0.5.
15505
15506   vibrato
15507       Sinusoidal phase modulation.
15508
15509       The filter accepts the following options:
15510
15511       f   Modulation frequency in Hertz.  Range is 0.1 - 20000.0. Default
15512           value is 5.0 Hz.
15513
15514       d   Depth of modulation as a percentage. Range is 0.0 - 1.0.  Default
15515           value is 0.5.
15516
15517   virtualbass
15518       Apply audio Virtual Bass filter.
15519
15520       This filter accepts stereo input and produce stereo with LFE (2.1)
15521       channels output.  The newly produced LFE channel have enhanced virtual
15522       bass originally obtained from both stereo channels.  This filter
15523       outputs front left and front right channels unchanged as available in
15524       stereo input.
15525
15526       The filter accepts the following options:
15527
15528       cutoff
15529           Set the virtual bass cutoff frequency. Default value is 250 Hz.
15530           Allowed range is from 100 to 500 Hz.
15531
15532       strength
15533           Set the virtual bass strength. Allowed range is from 0.5 to 3.
15534           Default value is 3.
15535
15536   volume
15537       Adjust the input audio volume.
15538
15539       It accepts the following parameters:
15540
15541       volume
15542           Set audio volume expression.
15543
15544           Output values are clipped to the maximum value.
15545
15546           The output audio volume is given by the relation:
15547
15548                   <output_volume> = <volume> * <input_volume>
15549
15550           The default value for volume is "1.0".
15551
15552       precision
15553           This parameter represents the mathematical precision.
15554
15555           It determines which input sample formats will be allowed, which
15556           affects the precision of the volume scaling.
15557
15558           fixed
15559               8-bit fixed-point; this limits input sample format to U8, S16,
15560               and S32.
15561
15562           float
15563               32-bit floating-point; this limits input sample format to FLT.
15564               (default)
15565
15566           double
15567               64-bit floating-point; this limits input sample format to DBL.
15568
15569       replaygain
15570           Choose the behaviour on encountering ReplayGain side data in input
15571           frames.
15572
15573           drop
15574               Remove ReplayGain side data, ignoring its contents (the
15575               default).
15576
15577           ignore
15578               Ignore ReplayGain side data, but leave it in the frame.
15579
15580           track
15581               Prefer the track gain, if present.
15582
15583           album
15584               Prefer the album gain, if present.
15585
15586       replaygain_preamp
15587           Pre-amplification gain in dB to apply to the selected replaygain
15588           gain.
15589
15590           Default value for replaygain_preamp is 0.0.
15591
15592       replaygain_noclip
15593           Prevent clipping by limiting the gain applied.
15594
15595           Default value for replaygain_noclip is 1.
15596
15597       eval
15598           Set when the volume expression is evaluated.
15599
15600           It accepts the following values:
15601
15602           once
15603               only evaluate expression once during the filter initialization,
15604               or when the volume command is sent
15605
15606           frame
15607               evaluate expression for each incoming frame
15608
15609           Default value is once.
15610
15611       The volume expression can contain the following parameters.
15612
15613       n   frame number (starting at zero)
15614
15615       nb_channels
15616           number of channels
15617
15618       nb_consumed_samples
15619           number of samples consumed by the filter
15620
15621       nb_samples
15622           number of samples in the current frame
15623
15624       pos original frame position in the file
15625
15626       pts frame PTS
15627
15628       sample_rate
15629           sample rate
15630
15631       startpts
15632           PTS at start of stream
15633
15634       startt
15635           time at start of stream
15636
15637       t   frame time
15638
15639       tb  timestamp timebase
15640
15641       volume
15642           last set volume value
15643
15644       Note that when eval is set to once only the sample_rate and tb
15645       variables are available, all other variables will evaluate to NAN.
15646
15647       Commands
15648
15649       This filter supports the following commands:
15650
15651       volume
15652           Modify the volume expression.  The command accepts the same syntax
15653           of the corresponding option.
15654
15655           If the specified expression is not valid, it is kept at its current
15656           value.
15657
15658       Examples
15659
15660       •   Halve the input audio volume:
15661
15662                   volume=volume=0.5
15663                   volume=volume=1/2
15664                   volume=volume=-6.0206dB
15665
15666           In all the above example the named key for volume can be omitted,
15667           for example like in:
15668
15669                   volume=0.5
15670
15671       •   Increase input audio power by 6 decibels using fixed-point
15672           precision:
15673
15674                   volume=volume=6dB:precision=fixed
15675
15676       •   Fade volume after time 10 with an annihilation period of 5 seconds:
15677
15678                   volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
15679
15680   volumedetect
15681       Detect the volume of the input video.
15682
15683       The filter has no parameters. It supports only 16-bit signed integer
15684       samples, so the input will be converted when needed. Statistics about
15685       the volume will be printed in the log when the input stream end is
15686       reached.
15687
15688       In particular it will show the mean volume (root mean square), maximum
15689       volume (on a per-sample basis), and the beginning of a histogram of the
15690       registered volume values (from the maximum value to a cumulated 1/1000
15691       of the samples).
15692
15693       All volumes are in decibels relative to the maximum PCM value.
15694
15695       Examples
15696
15697       Here is an excerpt of the output:
15698
15699               [Parsed_volumedetect_0  0xa23120] mean_volume: -27 dB
15700               [Parsed_volumedetect_0  0xa23120] max_volume: -4 dB
15701               [Parsed_volumedetect_0  0xa23120] histogram_4db: 6
15702               [Parsed_volumedetect_0  0xa23120] histogram_5db: 62
15703               [Parsed_volumedetect_0  0xa23120] histogram_6db: 286
15704               [Parsed_volumedetect_0  0xa23120] histogram_7db: 1042
15705               [Parsed_volumedetect_0  0xa23120] histogram_8db: 2551
15706               [Parsed_volumedetect_0  0xa23120] histogram_9db: 4609
15707               [Parsed_volumedetect_0  0xa23120] histogram_10db: 8409
15708
15709       It means that:
15710
15711       •   The mean square energy is approximately -27 dB, or 10^-2.7.
15712
15713       •   The largest sample is at -4 dB, or more precisely between -4 dB and
15714           -5 dB.
15715
15716       •   There are 6 samples at -4 dB, 62 at -5 dB, 286 at -6 dB, etc.
15717
15718       In other words, raising the volume by +4 dB does not cause any
15719       clipping, raising it by +5 dB causes clipping for 6 samples, etc.
15720

AUDIO SOURCES

15722       Below is a description of the currently available audio sources.
15723
15724   abuffer
15725       Buffer audio frames, and make them available to the filter chain.
15726
15727       This source is mainly intended for a programmatic use, in particular
15728       through the interface defined in libavfilter/buffersrc.h.
15729
15730       It accepts the following parameters:
15731
15732       time_base
15733           The timebase which will be used for timestamps of submitted frames.
15734           It must be either a floating-point number or in
15735           numerator/denominator form.
15736
15737       sample_rate
15738           The sample rate of the incoming audio buffers.
15739
15740       sample_fmt
15741           The sample format of the incoming audio buffers.  Either a sample
15742           format name or its corresponding integer representation from the
15743           enum AVSampleFormat in libavutil/samplefmt.h
15744
15745       channel_layout
15746           The channel layout of the incoming audio buffers.  Either a channel
15747           layout name from channel_layout_map in libavutil/channel_layout.c
15748           or its corresponding integer representation from the AV_CH_LAYOUT_*
15749           macros in libavutil/channel_layout.h
15750
15751       channels
15752           The number of channels of the incoming audio buffers.  If both
15753           channels and channel_layout are specified, then they must be
15754           consistent.
15755
15756       Examples
15757
15758               abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
15759
15760       will instruct the source to accept planar 16bit signed stereo at
15761       44100Hz.  Since the sample format with name "s16p" corresponds to the
15762       number 6 and the "stereo" channel layout corresponds to the value 0x3,
15763       this is equivalent to:
15764
15765               abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
15766
15767   aevalsrc
15768       Generate an audio signal specified by an expression.
15769
15770       This source accepts in input one or more expressions (one for each
15771       channel), which are evaluated and used to generate a corresponding
15772       audio signal.
15773
15774       This source accepts the following options:
15775
15776       exprs
15777           Set the '|'-separated expressions list for each separate channel.
15778           In case the channel_layout option is not specified, the selected
15779           channel layout depends on the number of provided expressions.
15780           Otherwise the last specified expression is applied to the remaining
15781           output channels.
15782
15783       channel_layout, c
15784           Set the channel layout. The number of channels in the specified
15785           layout must be equal to the number of specified expressions.
15786
15787       duration, d
15788           Set the minimum duration of the sourced audio. See the Time
15789           duration section in the ffmpeg-utils(1) manual for the accepted
15790           syntax.  Note that the resulting duration may be greater than the
15791           specified duration, as the generated audio is always cut at the end
15792           of a complete frame.
15793
15794           If not specified, or the expressed duration is negative, the audio
15795           is supposed to be generated forever.
15796
15797       nb_samples, n
15798           Set the number of samples per channel per each output frame,
15799           default to 1024.
15800
15801       sample_rate, s
15802           Specify the sample rate, default to 44100.
15803
15804       Each expression in exprs can contain the following constants:
15805
15806       n   number of the evaluated sample, starting from 0
15807
15808       t   time of the evaluated sample expressed in seconds, starting from 0
15809
15810       s   sample rate
15811
15812       Examples
15813
15814       •   Generate silence:
15815
15816                   aevalsrc=0
15817
15818       •   Generate a sin signal with frequency of 440 Hz, set sample rate to
15819           8000 Hz:
15820
15821                   aevalsrc="sin(440*2*PI*t):s=8000"
15822
15823       •   Generate a two channels signal, specify the channel layout (Front
15824           Center + Back Center) explicitly:
15825
15826                   aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
15827
15828       •   Generate white noise:
15829
15830                   aevalsrc="-2+random(0)"
15831
15832       •   Generate an amplitude modulated signal:
15833
15834                   aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
15835
15836       •   Generate 2.5 Hz binaural beats on a 360 Hz carrier:
15837
15838                   aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
15839
15840   afirsrc
15841       Generate a FIR coefficients using frequency sampling method.
15842
15843       The resulting stream can be used with afir filter for filtering the
15844       audio signal.
15845
15846       The filter accepts the following options:
15847
15848       taps, t
15849           Set number of filter coefficents in output audio stream.  Default
15850           value is 1025.
15851
15852       frequency, f
15853           Set frequency points from where magnitude and phase are set.  This
15854           must be in non decreasing order, and first element must be 0, while
15855           last element must be 1. Elements are separated by white spaces.
15856
15857       magnitude, m
15858           Set magnitude value for every frequency point set by frequency.
15859           Number of values must be same as number of frequency points.
15860           Values are separated by white spaces.
15861
15862       phase, p
15863           Set phase value for every frequency point set by frequency.  Number
15864           of values must be same as number of frequency points.  Values are
15865           separated by white spaces.
15866
15867       sample_rate, r
15868           Set sample rate, default is 44100.
15869
15870       nb_samples, n
15871           Set number of samples per each frame. Default is 1024.
15872
15873       win_func, w
15874           Set window function. Default is blackman.
15875
15876   anullsrc
15877       The null audio source, return unprocessed audio frames. It is mainly
15878       useful as a template and to be employed in analysis / debugging tools,
15879       or as the source for filters which ignore the input data (for example
15880       the sox synth filter).
15881
15882       This source accepts the following options:
15883
15884       channel_layout, cl
15885           Specifies the channel layout, and can be either an integer or a
15886           string representing a channel layout. The default value of
15887           channel_layout is "stereo".
15888
15889           Check the channel_layout_map definition in
15890           libavutil/channel_layout.c for the mapping between strings and
15891           channel layout values.
15892
15893       sample_rate, r
15894           Specifies the sample rate, and defaults to 44100.
15895
15896       nb_samples, n
15897           Set the number of samples per requested frames.
15898
15899       duration, d
15900           Set the duration of the sourced audio. See the Time duration
15901           section in the ffmpeg-utils(1) manual for the accepted syntax.
15902
15903           If not specified, or the expressed duration is negative, the audio
15904           is supposed to be generated forever.
15905
15906       Examples
15907
15908       •   Set the sample rate to 48000 Hz and the channel layout to
15909           AV_CH_LAYOUT_MONO.
15910
15911                   anullsrc=r=48000:cl=4
15912
15913       •   Do the same operation with a more obvious syntax:
15914
15915                   anullsrc=r=48000:cl=mono
15916
15917       All the parameters need to be explicitly defined.
15918
15919   flite
15920       Synthesize a voice utterance using the libflite library.
15921
15922       To enable compilation of this filter you need to configure FFmpeg with
15923       "--enable-libflite".
15924
15925       Note that versions of the flite library prior to 2.0 are not thread-
15926       safe.
15927
15928       The filter accepts the following options:
15929
15930       list_voices
15931           If set to 1, list the names of the available voices and exit
15932           immediately. Default value is 0.
15933
15934       nb_samples, n
15935           Set the maximum number of samples per frame. Default value is 512.
15936
15937       textfile
15938           Set the filename containing the text to speak.
15939
15940       text
15941           Set the text to speak.
15942
15943       voice, v
15944           Set the voice to use for the speech synthesis. Default value is
15945           "kal". See also the list_voices option.
15946
15947       Examples
15948
15949       •   Read from file speech.txt, and synthesize the text using the
15950           standard flite voice:
15951
15952                   flite=textfile=speech.txt
15953
15954       •   Read the specified text selecting the "slt" voice:
15955
15956                   flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
15957
15958       •   Input text to ffmpeg:
15959
15960                   ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
15961
15962       •   Make ffplay speak the specified text, using "flite" and the "lavfi"
15963           device:
15964
15965                   ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
15966
15967       For more information about libflite, check:
15968       <http://www.festvox.org/flite/>
15969
15970   anoisesrc
15971       Generate a noise audio signal.
15972
15973       The filter accepts the following options:
15974
15975       sample_rate, r
15976           Specify the sample rate. Default value is 48000 Hz.
15977
15978       amplitude, a
15979           Specify the amplitude (0.0 - 1.0) of the generated audio stream.
15980           Default value is 1.0.
15981
15982       duration, d
15983           Specify the duration of the generated audio stream. Not specifying
15984           this option results in noise with an infinite length.
15985
15986       color, colour, c
15987           Specify the color of noise. Available noise colors are white, pink,
15988           brown, blue, violet and velvet. Default color is white.
15989
15990       seed, s
15991           Specify a value used to seed the PRNG.
15992
15993       nb_samples, n
15994           Set the number of samples per each output frame, default is 1024.
15995
15996       Examples
15997
15998       •   Generate 60 seconds of pink noise, with a 44.1 kHz sampling rate
15999           and an amplitude of 0.5:
16000
16001                   anoisesrc=d=60:c=pink:r=44100:a=0.5
16002
16003   hilbert
16004       Generate odd-tap Hilbert transform FIR coefficients.
16005
16006       The resulting stream can be used with afir filter for phase-shifting
16007       the signal by 90 degrees.
16008
16009       This is used in many matrix coding schemes and for analytic signal
16010       generation.  The process is often written as a multiplication by i (or
16011       j), the imaginary unit.
16012
16013       The filter accepts the following options:
16014
16015       sample_rate, s
16016           Set sample rate, default is 44100.
16017
16018       taps, t
16019           Set length of FIR filter, default is 22051.
16020
16021       nb_samples, n
16022           Set number of samples per each frame.
16023
16024       win_func, w
16025           Set window function to be used when generating FIR coefficients.
16026
16027   sinc
16028       Generate a sinc kaiser-windowed low-pass, high-pass, band-pass, or
16029       band-reject FIR coefficients.
16030
16031       The resulting stream can be used with afir filter for filtering the
16032       audio signal.
16033
16034       The filter accepts the following options:
16035
16036       sample_rate, r
16037           Set sample rate, default is 44100.
16038
16039       nb_samples, n
16040           Set number of samples per each frame. Default is 1024.
16041
16042       hp  Set high-pass frequency. Default is 0.
16043
16044       lp  Set low-pass frequency. Default is 0.  If high-pass frequency is
16045           lower than low-pass frequency and low-pass frequency is higher than
16046           0 then filter will create band-pass filter coefficients, otherwise
16047           band-reject filter coefficients.
16048
16049       phase
16050           Set filter phase response. Default is 50. Allowed range is from 0
16051           to 100.
16052
16053       beta
16054           Set Kaiser window beta.
16055
16056       att Set stop-band attenuation. Default is 120dB, allowed range is from
16057           40 to 180 dB.
16058
16059       round
16060           Enable rounding, by default is disabled.
16061
16062       hptaps
16063           Set number of taps for high-pass filter.
16064
16065       lptaps
16066           Set number of taps for low-pass filter.
16067
16068   sine
16069       Generate an audio signal made of a sine wave with amplitude 1/8.
16070
16071       The audio signal is bit-exact.
16072
16073       The filter accepts the following options:
16074
16075       frequency, f
16076           Set the carrier frequency. Default is 440 Hz.
16077
16078       beep_factor, b
16079           Enable a periodic beep every second with frequency beep_factor
16080           times the carrier frequency. Default is 0, meaning the beep is
16081           disabled.
16082
16083       sample_rate, r
16084           Specify the sample rate, default is 44100.
16085
16086       duration, d
16087           Specify the duration of the generated audio stream.
16088
16089       samples_per_frame
16090           Set the number of samples per output frame.
16091
16092           The expression can contain the following constants:
16093
16094           n   The (sequential) number of the output audio frame, starting
16095               from 0.
16096
16097           pts The PTS (Presentation TimeStamp) of the output audio frame,
16098               expressed in TB units.
16099
16100           t   The PTS of the output audio frame, expressed in seconds.
16101
16102           TB  The timebase of the output audio frames.
16103
16104           Default is 1024.
16105
16106       Examples
16107
16108       •   Generate a simple 440 Hz sine wave:
16109
16110                   sine
16111
16112       •   Generate a 220 Hz sine wave with a 880 Hz beep each second, for 5
16113           seconds:
16114
16115                   sine=220:4:d=5
16116                   sine=f=220:b=4:d=5
16117                   sine=frequency=220:beep_factor=4:duration=5
16118
16119       •   Generate a 1 kHz sine wave following "1602,1601,1602,1601,1602"
16120           NTSC pattern:
16121
16122                   sine=1000:samples_per_frame='st(0,mod(n,5)); 1602-not(not(eq(ld(0),1)+eq(ld(0),3)))'
16123

AUDIO SINKS

16125       Below is a description of the currently available audio sinks.
16126
16127   abuffersink
16128       Buffer audio frames, and make them available to the end of filter
16129       chain.
16130
16131       This sink is mainly intended for programmatic use, in particular
16132       through the interface defined in libavfilter/buffersink.h or the
16133       options system.
16134
16135       It accepts a pointer to an AVABufferSinkContext structure, which
16136       defines the incoming buffers' formats, to be passed as the opaque
16137       parameter to "avfilter_init_filter" for initialization.
16138
16139   anullsink
16140       Null audio sink; do absolutely nothing with the input audio. It is
16141       mainly useful as a template and for use in analysis / debugging tools.
16142

VIDEO FILTERS

16144       When you configure your FFmpeg build, you can disable any of the
16145       existing filters using "--disable-filters".  The configure output will
16146       show the video filters included in your build.
16147
16148       Below is a description of the currently available video filters.
16149
16150   addroi
16151       Mark a region of interest in a video frame.
16152
16153       The frame data is passed through unchanged, but metadata is attached to
16154       the frame indicating regions of interest which can affect the behaviour
16155       of later encoding.  Multiple regions can be marked by applying the
16156       filter multiple times.
16157
16158       x   Region distance in pixels from the left edge of the frame.
16159
16160       y   Region distance in pixels from the top edge of the frame.
16161
16162       w   Region width in pixels.
16163
16164       h   Region height in pixels.
16165
16166           The parameters x, y, w and h are expressions, and may contain the
16167           following variables:
16168
16169           iw  Width of the input frame.
16170
16171           ih  Height of the input frame.
16172
16173       qoffset
16174           Quantisation offset to apply within the region.
16175
16176           This must be a real value in the range -1 to +1.  A value of zero
16177           indicates no quality change.  A negative value asks for better
16178           quality (less quantisation), while a positive value asks for worse
16179           quality (greater quantisation).
16180
16181           The range is calibrated so that the extreme values indicate the
16182           largest possible offset - if the rest of the frame is encoded with
16183           the worst possible quality, an offset of -1 indicates that this
16184           region should be encoded with the best possible quality anyway.
16185           Intermediate values are then interpolated in some codec-dependent
16186           way.
16187
16188           For example, in 10-bit H.264 the quantisation parameter varies
16189           between -12 and 51.  A typical qoffset value of -1/10 therefore
16190           indicates that this region should be encoded with a QP around one-
16191           tenth of the full range better than the rest of the frame.  So, if
16192           most of the frame were to be encoded with a QP of around 30, this
16193           region would get a QP of around 24 (an offset of approximately
16194           -1/10 * (51 - -12) = -6.3).  An extreme value of -1 would indicate
16195           that this region should be encoded with the best possible quality
16196           regardless of the treatment of the rest of the frame - that is,
16197           should be encoded at a QP of -12.
16198
16199       clear
16200           If set to true, remove any existing regions of interest marked on
16201           the frame before adding the new one.
16202
16203       Examples
16204
16205       •   Mark the centre quarter of the frame as interesting.
16206
16207                   addroi=iw/4:ih/4:iw/2:ih/2:-1/10
16208
16209       •   Mark the 100-pixel-wide region on the left edge of the frame as
16210           very uninteresting (to be encoded at much lower quality than the
16211           rest of the frame).
16212
16213                   addroi=0:0:100:ih:+1/5
16214
16215   alphaextract
16216       Extract the alpha component from the input as a grayscale video. This
16217       is especially useful with the alphamerge filter.
16218
16219   alphamerge
16220       Add or replace the alpha component of the primary input with the
16221       grayscale value of a second input. This is intended for use with
16222       alphaextract to allow the transmission or storage of frame sequences
16223       that have alpha in a format that doesn't support an alpha channel.
16224
16225       For example, to reconstruct full frames from a normal YUV-encoded video
16226       and a separate video created with alphaextract, you might use:
16227
16228               movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
16229
16230   amplify
16231       Amplify differences between current pixel and pixels of adjacent frames
16232       in same pixel location.
16233
16234       This filter accepts the following options:
16235
16236       radius
16237           Set frame radius. Default is 2. Allowed range is from 1 to 63.  For
16238           example radius of 3 will instruct filter to calculate average of 7
16239           frames.
16240
16241       factor
16242           Set factor to amplify difference. Default is 2. Allowed range is
16243           from 0 to 65535.
16244
16245       threshold
16246           Set threshold for difference amplification. Any difference greater
16247           or equal to this value will not alter source pixel. Default is 10.
16248           Allowed range is from 0 to 65535.
16249
16250       tolerance
16251           Set tolerance for difference amplification. Any difference lower to
16252           this value will not alter source pixel. Default is 0.  Allowed
16253           range is from 0 to 65535.
16254
16255       low Set lower limit for changing source pixel. Default is 65535.
16256           Allowed range is from 0 to 65535.  This option controls maximum
16257           possible value that will decrease source pixel value.
16258
16259       high
16260           Set high limit for changing source pixel. Default is 65535. Allowed
16261           range is from 0 to 65535.  This option controls maximum possible
16262           value that will increase source pixel value.
16263
16264       planes
16265           Set which planes to filter. Default is all. Allowed range is from 0
16266           to 15.
16267
16268       Commands
16269
16270       This filter supports the following commands that corresponds to option
16271       of same name:
16272
16273       factor
16274       threshold
16275       tolerance
16276       low
16277       high
16278       planes
16279
16280   ass
16281       Same as the subtitles filter, except that it doesn't require libavcodec
16282       and libavformat to work. On the other hand, it is limited to ASS
16283       (Advanced Substation Alpha) subtitles files.
16284
16285       This filter accepts the following option in addition to the common
16286       options from the subtitles filter:
16287
16288       shaping
16289           Set the shaping engine
16290
16291           Available values are:
16292
16293           auto
16294               The default libass shaping engine, which is the best available.
16295
16296           simple
16297               Fast, font-agnostic shaper that can do only substitutions
16298
16299           complex
16300               Slower shaper using OpenType for substitutions and positioning
16301
16302           The default is "auto".
16303
16304   atadenoise
16305       Apply an Adaptive Temporal Averaging Denoiser to the video input.
16306
16307       The filter accepts the following options:
16308
16309       0a  Set threshold A for 1st plane. Default is 0.02.  Valid range is 0
16310           to 0.3.
16311
16312       0b  Set threshold B for 1st plane. Default is 0.04.  Valid range is 0
16313           to 5.
16314
16315       1a  Set threshold A for 2nd plane. Default is 0.02.  Valid range is 0
16316           to 0.3.
16317
16318       1b  Set threshold B for 2nd plane. Default is 0.04.  Valid range is 0
16319           to 5.
16320
16321       2a  Set threshold A for 3rd plane. Default is 0.02.  Valid range is 0
16322           to 0.3.
16323
16324       2b  Set threshold B for 3rd plane. Default is 0.04.  Valid range is 0
16325           to 5.
16326
16327           Threshold A is designed to react on abrupt changes in the input
16328           signal and threshold B is designed to react on continuous changes
16329           in the input signal.
16330
16331       s   Set number of frames filter will use for averaging. Default is 9.
16332           Must be odd number in range [5, 129].
16333
16334       p   Set what planes of frame filter will use for averaging. Default is
16335           all.
16336
16337       a   Set what variant of algorithm filter will use for averaging.
16338           Default is "p" parallel.  Alternatively can be set to "s" serial.
16339
16340           Parallel can be faster then serial, while other way around is never
16341           true.  Parallel will abort early on first change being greater then
16342           thresholds, while serial will continue processing other side of
16343           frames if they are equal or below thresholds.
16344
16345       0s
16346       1s
16347       2s  Set sigma for 1st plane, 2nd plane or 3rd plane. Default is 32767.
16348           Valid range is from 0 to 32767.  This options controls weight for
16349           each pixel in radius defined by size.  Default value means every
16350           pixel have same weight.  Setting this option to 0 effectively
16351           disables filtering.
16352
16353       Commands
16354
16355       This filter supports same commands as options except option "s".  The
16356       command accepts the same syntax of the corresponding option.
16357
16358   avgblur
16359       Apply average blur filter.
16360
16361       The filter accepts the following options:
16362
16363       sizeX
16364           Set horizontal radius size.
16365
16366       planes
16367           Set which planes to filter. By default all planes are filtered.
16368
16369       sizeY
16370           Set vertical radius size, if zero it will be same as "sizeX".
16371           Default is 0.
16372
16373       Commands
16374
16375       This filter supports same commands as options.  The command accepts the
16376       same syntax of the corresponding option.
16377
16378       If the specified expression is not valid, it is kept at its current
16379       value.
16380
16381   bbox
16382       Compute the bounding box for the non-black pixels in the input frame
16383       luminance plane.
16384
16385       This filter computes the bounding box containing all the pixels with a
16386       luminance value greater than the minimum allowed value.  The parameters
16387       describing the bounding box are printed on the filter log.
16388
16389       The filter accepts the following option:
16390
16391       min_val
16392           Set the minimal luminance value. Default is 16.
16393
16394       Commands
16395
16396       This filter supports the all above options as commands.
16397
16398   bilateral
16399       Apply bilateral filter, spatial smoothing while preserving edges.
16400
16401       The filter accepts the following options:
16402
16403       sigmaS
16404           Set sigma of gaussian function to calculate spatial weight.
16405           Allowed range is 0 to 512. Default is 0.1.
16406
16407       sigmaR
16408           Set sigma of gaussian function to calculate range weight.  Allowed
16409           range is 0 to 1. Default is 0.1.
16410
16411       planes
16412           Set planes to filter. Default is first only.
16413
16414       Commands
16415
16416       This filter supports the all above options as commands.
16417
16418   bitplanenoise
16419       Show and measure bit plane noise.
16420
16421       The filter accepts the following options:
16422
16423       bitplane
16424           Set which plane to analyze. Default is 1.
16425
16426       filter
16427           Filter out noisy pixels from "bitplane" set above.  Default is
16428           disabled.
16429
16430   blackdetect
16431       Detect video intervals that are (almost) completely black. Can be
16432       useful to detect chapter transitions, commercials, or invalid
16433       recordings.
16434
16435       The filter outputs its detection analysis to both the log as well as
16436       frame metadata. If a black segment of at least the specified minimum
16437       duration is found, a line with the start and end timestamps as well as
16438       duration is printed to the log with level "info". In addition, a log
16439       line with level "debug" is printed per frame showing the black amount
16440       detected for that frame.
16441
16442       The filter also attaches metadata to the first frame of a black segment
16443       with key "lavfi.black_start" and to the first frame after the black
16444       segment ends with key "lavfi.black_end". The value is the frame's
16445       timestamp. This metadata is added regardless of the minimum duration
16446       specified.
16447
16448       The filter accepts the following options:
16449
16450       black_min_duration, d
16451           Set the minimum detected black duration expressed in seconds. It
16452           must be a non-negative floating point number.
16453
16454           Default value is 2.0.
16455
16456       picture_black_ratio_th, pic_th
16457           Set the threshold for considering a picture "black".  Express the
16458           minimum value for the ratio:
16459
16460                   <nb_black_pixels> / <nb_pixels>
16461
16462           for which a picture is considered black.  Default value is 0.98.
16463
16464       pixel_black_th, pix_th
16465           Set the threshold for considering a pixel "black".
16466
16467           The threshold expresses the maximum pixel luminance value for which
16468           a pixel is considered "black". The provided value is scaled
16469           according to the following equation:
16470
16471                   <absolute_threshold> = <luminance_minimum_value> + <pixel_black_th> * <luminance_range_size>
16472
16473           luminance_range_size and luminance_minimum_value depend on the
16474           input video format, the range is [0-255] for YUV full-range formats
16475           and [16-235] for YUV non full-range formats.
16476
16477           Default value is 0.10.
16478
16479       The following example sets the maximum pixel threshold to the minimum
16480       value, and detects only black intervals of 2 or more seconds:
16481
16482               blackdetect=d=2:pix_th=0.00
16483
16484   blackframe
16485       Detect frames that are (almost) completely black. Can be useful to
16486       detect chapter transitions or commercials. Output lines consist of the
16487       frame number of the detected frame, the percentage of blackness, the
16488       position in the file if known or -1 and the timestamp in seconds.
16489
16490       In order to display the output lines, you need to set the loglevel at
16491       least to the AV_LOG_INFO value.
16492
16493       This filter exports frame metadata "lavfi.blackframe.pblack".  The
16494       value represents the percentage of pixels in the picture that are below
16495       the threshold value.
16496
16497       It accepts the following parameters:
16498
16499       amount
16500           The percentage of the pixels that have to be below the threshold;
16501           it defaults to 98.
16502
16503       threshold, thresh
16504           The threshold below which a pixel value is considered black; it
16505           defaults to 32.
16506
16507   blend
16508       Blend two video frames into each other.
16509
16510       The "blend" filter takes two input streams and outputs one stream, the
16511       first input is the "top" layer and second input is "bottom" layer.  By
16512       default, the output terminates when the longest input terminates.
16513
16514       The "tblend" (time blend) filter takes two consecutive frames from one
16515       single stream, and outputs the result obtained by blending the new
16516       frame on top of the old frame.
16517
16518       A description of the accepted options follows.
16519
16520       c0_mode
16521       c1_mode
16522       c2_mode
16523       c3_mode
16524       all_mode
16525           Set blend mode for specific pixel component or all pixel components
16526           in case of all_mode. Default value is "normal".
16527
16528           Available values for component modes are:
16529
16530           addition
16531           and
16532           average
16533           bleach
16534           burn
16535           darken
16536           difference
16537           divide
16538           dodge
16539           exclusion
16540           extremity
16541           freeze
16542           geometric
16543           glow
16544           grainextract
16545           grainmerge
16546           hardlight
16547           hardmix
16548           hardoverlay
16549           harmonic
16550           heat
16551           interpolate
16552           lighten
16553           linearlight
16554           multiply
16555           multiply128
16556           negation
16557           normal
16558           or
16559           overlay
16560           phoenix
16561           pinlight
16562           reflect
16563           screen
16564           softdifference
16565           softlight
16566           stain
16567           subtract
16568           vividlight
16569           xor
16570       c0_opacity
16571       c1_opacity
16572       c2_opacity
16573       c3_opacity
16574       all_opacity
16575           Set blend opacity for specific pixel component or all pixel
16576           components in case of all_opacity. Only used in combination with
16577           pixel component blend modes.
16578
16579       c0_expr
16580       c1_expr
16581       c2_expr
16582       c3_expr
16583       all_expr
16584           Set blend expression for specific pixel component or all pixel
16585           components in case of all_expr. Note that related mode options will
16586           be ignored if those are set.
16587
16588           The expressions can use the following variables:
16589
16590           N   The sequential number of the filtered frame, starting from 0.
16591
16592           X
16593           Y   the coordinates of the current sample
16594
16595           W
16596           H   the width and height of currently filtered plane
16597
16598           SW
16599           SH  Width and height scale for the plane being filtered. It is the
16600               ratio between the dimensions of the current plane to the luma
16601               plane, e.g. for a "yuv420p" frame, the values are "1,1" for the
16602               luma plane and "0.5,0.5" for the chroma planes.
16603
16604           T   Time of the current frame, expressed in seconds.
16605
16606           TOP, A
16607               Value of pixel component at current location for first video
16608               frame (top layer).
16609
16610           BOTTOM, B
16611               Value of pixel component at current location for second video
16612               frame (bottom layer).
16613
16614       The "blend" filter also supports the framesync options.
16615
16616       Examples
16617
16618       •   Apply transition from bottom layer to top layer in first 10
16619           seconds:
16620
16621                   blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
16622
16623       •   Apply linear horizontal transition from top layer to bottom layer:
16624
16625                   blend=all_expr='A*(X/W)+B*(1-X/W)'
16626
16627       •   Apply 1x1 checkerboard effect:
16628
16629                   blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
16630
16631       •   Apply uncover left effect:
16632
16633                   blend=all_expr='if(gte(N*SW+X,W),A,B)'
16634
16635       •   Apply uncover down effect:
16636
16637                   blend=all_expr='if(gte(Y-N*SH,0),A,B)'
16638
16639       •   Apply uncover up-left effect:
16640
16641                   blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
16642
16643       •   Split diagonally video and shows top and bottom layer on each side:
16644
16645                   blend=all_expr='if(gt(X,Y*(W/H)),A,B)'
16646
16647       •   Display differences between the current and the previous frame:
16648
16649                   tblend=all_mode=grainextract
16650
16651       Commands
16652
16653       This filter supports same commands as options.
16654
16655   blockdetect
16656       Determines blockiness of frames without altering the input frames.
16657
16658       Based on Remco Muijs and Ihor Kirenko: "A no-reference blocking
16659       artifact measure for adaptive video processing." 2005 13th European
16660       signal processing conference.
16661
16662       The filter accepts the following options:
16663
16664       period_min
16665       period_max
16666           Set minimum and maximum values for determining pixel grids
16667           (periods).  Default values are [3,24].
16668
16669       planes
16670           Set planes to filter. Default is first only.
16671
16672       Examples
16673
16674       •   Determine blockiness for the first plane and search for periods
16675           within [8,32]:
16676
16677                   blockdetect=period_min=8:period_max=32:planes=1
16678
16679   blurdetect
16680       Determines blurriness of frames without altering the input frames.
16681
16682       Based on Marziliano, Pina, et al. "A no-reference perceptual blur
16683       metric."  Allows for a block-based abbreviation.
16684
16685       The filter accepts the following options:
16686
16687       low
16688       high
16689           Set low and high threshold values used by the Canny thresholding
16690           algorithm.
16691
16692           The high threshold selects the "strong" edge pixels, which are then
16693           connected through 8-connectivity with the "weak" edge pixels
16694           selected by the low threshold.
16695
16696           low and high threshold values must be chosen in the range [0,1],
16697           and low should be lesser or equal to high.
16698
16699           Default value for low is "20/255", and default value for high is
16700           "50/255".
16701
16702       radius
16703           Define the radius to search around an edge pixel for local maxima.
16704
16705       block_pct
16706           Determine blurriness only for the most significant blocks, given in
16707           percentage.
16708
16709       block_width
16710           Determine blurriness for blocks of width block_width. If set to any
16711           value smaller 1, no blocks are used and the whole image is
16712           processed as one no matter of block_height.
16713
16714       block_height
16715           Determine blurriness for blocks of height block_height. If set to
16716           any value smaller 1, no blocks are used and the whole image is
16717           processed as one no matter of block_width.
16718
16719       planes
16720           Set planes to filter. Default is first only.
16721
16722       Examples
16723
16724       •   Determine blur for 80% of most significant 32x32 blocks:
16725
16726                   blurdetect=block_width=32:block_height=32:block_pct=80
16727
16728   bm3d
16729       Denoise frames using Block-Matching 3D algorithm.
16730
16731       The filter accepts the following options.
16732
16733       sigma
16734           Set denoising strength. Default value is 1.  Allowed range is from
16735           0 to 999.9.  The denoising algorithm is very sensitive to sigma, so
16736           adjust it according to the source.
16737
16738       block
16739           Set local patch size. This sets dimensions in 2D.
16740
16741       bstep
16742           Set sliding step for processing blocks. Default value is 4.
16743           Allowed range is from 1 to 64.  Smaller values allows processing
16744           more reference blocks and is slower.
16745
16746       group
16747           Set maximal number of similar blocks for 3rd dimension. Default
16748           value is 1.  When set to 1, no block matching is done. Larger
16749           values allows more blocks in single group.  Allowed range is from 1
16750           to 256.
16751
16752       range
16753           Set radius for search block matching. Default is 9.  Allowed range
16754           is from 1 to INT32_MAX.
16755
16756       mstep
16757           Set step between two search locations for block matching. Default
16758           is 1.  Allowed range is from 1 to 64. Smaller is slower.
16759
16760       thmse
16761           Set threshold of mean square error for block matching. Valid range
16762           is 0 to INT32_MAX.
16763
16764       hdthr
16765           Set thresholding parameter for hard thresholding in 3D transformed
16766           domain.  Larger values results in stronger hard-thresholding
16767           filtering in frequency domain.
16768
16769       estim
16770           Set filtering estimation mode. Can be "basic" or "final".  Default
16771           is "basic".
16772
16773       ref If enabled, filter will use 2nd stream for block matching.  Default
16774           is disabled for "basic" value of estim option, and always enabled
16775           if value of estim is "final".
16776
16777       planes
16778           Set planes to filter. Default is all available except alpha.
16779
16780       Examples
16781
16782       •   Basic filtering with bm3d:
16783
16784                   bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic
16785
16786       •   Same as above, but filtering only luma:
16787
16788                   bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic:planes=1
16789
16790       •   Same as above, but with both estimation modes:
16791
16792                   split[a][b],[a]bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic[a],[b][a]bm3d=sigma=3:block=4:bstep=2:group=16:estim=final:ref=1
16793
16794       •   Same as above, but prefilter with nlmeans filter instead:
16795
16796                   split[a][b],[a]nlmeans=s=3:r=7:p=3[a],[b][a]bm3d=sigma=3:block=4:bstep=2:group=16:estim=final:ref=1
16797
16798   boxblur
16799       Apply a boxblur algorithm to the input video.
16800
16801       It accepts the following parameters:
16802
16803       luma_radius, lr
16804       luma_power, lp
16805       chroma_radius, cr
16806       chroma_power, cp
16807       alpha_radius, ar
16808       alpha_power, ap
16809
16810       A description of the accepted options follows.
16811
16812       luma_radius, lr
16813       chroma_radius, cr
16814       alpha_radius, ar
16815           Set an expression for the box radius in pixels used for blurring
16816           the corresponding input plane.
16817
16818           The radius value must be a non-negative number, and must not be
16819           greater than the value of the expression "min(w,h)/2" for the luma
16820           and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
16821
16822           Default value for luma_radius is "2". If not specified,
16823           chroma_radius and alpha_radius default to the corresponding value
16824           set for luma_radius.
16825
16826           The expressions can contain the following constants:
16827
16828           w
16829           h   The input width and height in pixels.
16830
16831           cw
16832           ch  The input chroma image width and height in pixels.
16833
16834           hsub
16835           vsub
16836               The horizontal and vertical chroma subsample values. For
16837               example, for the pixel format "yuv422p", hsub is 2 and vsub is
16838               1.
16839
16840       luma_power, lp
16841       chroma_power, cp
16842       alpha_power, ap
16843           Specify how many times the boxblur filter is applied to the
16844           corresponding plane.
16845
16846           Default value for luma_power is 2. If not specified, chroma_power
16847           and alpha_power default to the corresponding value set for
16848           luma_power.
16849
16850           A value of 0 will disable the effect.
16851
16852       Examples
16853
16854       •   Apply a boxblur filter with the luma, chroma, and alpha radii set
16855           to 2:
16856
16857                   boxblur=luma_radius=2:luma_power=1
16858                   boxblur=2:1
16859
16860       •   Set the luma radius to 2, and alpha and chroma radius to 0:
16861
16862                   boxblur=2:1:cr=0:ar=0
16863
16864       •   Set the luma and chroma radii to a fraction of the video dimension:
16865
16866                   boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
16867
16868   bwdif
16869       Deinterlace the input video ("bwdif" stands for "Bob Weaver
16870       Deinterlacing Filter").
16871
16872       Motion adaptive deinterlacing based on yadif with the use of w3fdif and
16873       cubic interpolation algorithms.  It accepts the following parameters:
16874
16875       mode
16876           The interlacing mode to adopt. It accepts one of the following
16877           values:
16878
16879           0, send_frame
16880               Output one frame for each frame.
16881
16882           1, send_field
16883               Output one frame for each field.
16884
16885           The default value is "send_field".
16886
16887       parity
16888           The picture field parity assumed for the input interlaced video. It
16889           accepts one of the following values:
16890
16891           0, tff
16892               Assume the top field is first.
16893
16894           1, bff
16895               Assume the bottom field is first.
16896
16897           -1, auto
16898               Enable automatic detection of field parity.
16899
16900           The default value is "auto".  If the interlacing is unknown or the
16901           decoder does not export this information, top field first will be
16902           assumed.
16903
16904       deint
16905           Specify which frames to deinterlace. Accepts one of the following
16906           values:
16907
16908           0, all
16909               Deinterlace all frames.
16910
16911           1, interlaced
16912               Only deinterlace frames marked as interlaced.
16913
16914           The default value is "all".
16915
16916   cas
16917       Apply Contrast Adaptive Sharpen filter to video stream.
16918
16919       The filter accepts the following options:
16920
16921       strength
16922           Set the sharpening strength. Default value is 0.
16923
16924       planes
16925           Set planes to filter. Default value is to filter all planes except
16926           alpha plane.
16927
16928       Commands
16929
16930       This filter supports same commands as options.
16931
16932   chromahold
16933       Remove all color information for all colors except for certain one.
16934
16935       The filter accepts the following options:
16936
16937       color
16938           The color which will not be replaced with neutral chroma.
16939
16940       similarity
16941           Similarity percentage with the above color.  0.01 matches only the
16942           exact key color, while 1.0 matches everything.
16943
16944       blend
16945           Blend percentage.  0.0 makes pixels either fully gray, or not gray
16946           at all.  Higher values result in more preserved color.
16947
16948       yuv Signals that the color passed is already in YUV instead of RGB.
16949
16950           Literal colors like "green" or "red" don't make sense with this
16951           enabled anymore.  This can be used to pass exact YUV values as
16952           hexadecimal numbers.
16953
16954       Commands
16955
16956       This filter supports same commands as options.  The command accepts the
16957       same syntax of the corresponding option.
16958
16959       If the specified expression is not valid, it is kept at its current
16960       value.
16961
16962   chromakey
16963       YUV colorspace color/chroma keying.
16964
16965       The filter accepts the following options:
16966
16967       color
16968           The color which will be replaced with transparency.
16969
16970       similarity
16971           Similarity percentage with the key color.
16972
16973           0.01 matches only the exact key color, while 1.0 matches
16974           everything.
16975
16976       blend
16977           Blend percentage.
16978
16979           0.0 makes pixels either fully transparent, or not transparent at
16980           all.
16981
16982           Higher values result in semi-transparent pixels, with a higher
16983           transparency the more similar the pixels color is to the key color.
16984
16985       yuv Signals that the color passed is already in YUV instead of RGB.
16986
16987           Literal colors like "green" or "red" don't make sense with this
16988           enabled anymore.  This can be used to pass exact YUV values as
16989           hexadecimal numbers.
16990
16991       Commands
16992
16993       This filter supports same commands as options.  The command accepts the
16994       same syntax of the corresponding option.
16995
16996       If the specified expression is not valid, it is kept at its current
16997       value.
16998
16999       Examples
17000
17001       •   Make every green pixel in the input image transparent:
17002
17003                   ffmpeg -i input.png -vf chromakey=green out.png
17004
17005       •   Overlay a greenscreen-video on top of a static black background.
17006
17007                   ffmpeg -f lavfi -i color=c=black:s=1280x720 -i video.mp4 -shortest -filter_complex "[1:v]chromakey=0x70de77:0.1:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.mkv
17008
17009   chromakey_cuda
17010       CUDA accelerated YUV colorspace color/chroma keying.
17011
17012       This filter works like normal chromakey filter but operates on CUDA
17013       frames.  for more details and parameters see chromakey.
17014
17015       Examples
17016
17017       •   Make all the green pixels in the input video transparent and use it
17018           as an overlay for another video:
17019
17020                   ./ffmpeg \
17021                       -hwaccel cuda -hwaccel_output_format cuda -i input_green.mp4  \
17022                       -hwaccel cuda -hwaccel_output_format cuda -i base_video.mp4 \
17023                       -init_hw_device cuda \
17024                       -filter_complex \
17025                       " \
17026                           [0:v]chromakey_cuda=0x25302D:0.1:0.12:1[overlay_video]; \
17027                           [1:v]scale_cuda=format=yuv420p[base]; \
17028                           [base][overlay_video]overlay_cuda" \
17029                       -an -sn -c:v h264_nvenc -cq 20 output.mp4
17030
17031       •   Process two software sources, explicitly uploading the frames:
17032
17033                   ./ffmpeg -init_hw_device cuda=cuda -filter_hw_device cuda \
17034                       -f lavfi -i color=size=800x600:color=white,format=yuv420p \
17035                       -f lavfi -i yuvtestsrc=size=200x200,format=yuv420p \
17036                       -filter_complex \
17037                       " \
17038                           [0]hwupload[under]; \
17039                           [1]hwupload,chromakey_cuda=green:0.1:0.12[over]; \
17040                           [under][over]overlay_cuda" \
17041                       -c:v hevc_nvenc -cq 18 -preset slow output.mp4
17042
17043   chromanr
17044       Reduce chrominance noise.
17045
17046       The filter accepts the following options:
17047
17048       thres
17049           Set threshold for averaging chrominance values.  Sum of absolute
17050           difference of Y, U and V pixel components of current pixel and
17051           neighbour pixels lower than this threshold will be used in
17052           averaging. Luma component is left unchanged and is copied to
17053           output.  Default value is 30. Allowed range is from 1 to 200.
17054
17055       sizew
17056           Set horizontal radius of rectangle used for averaging.  Allowed
17057           range is from 1 to 100. Default value is 5.
17058
17059       sizeh
17060           Set vertical radius of rectangle used for averaging.  Allowed range
17061           is from 1 to 100. Default value is 5.
17062
17063       stepw
17064           Set horizontal step when averaging. Default value is 1.  Allowed
17065           range is from 1 to 50.  Mostly useful to speed-up filtering.
17066
17067       steph
17068           Set vertical step when averaging. Default value is 1.  Allowed
17069           range is from 1 to 50.  Mostly useful to speed-up filtering.
17070
17071       threy
17072           Set Y threshold for averaging chrominance values.  Set finer
17073           control for max allowed difference between Y components of current
17074           pixel and neigbour pixels.  Default value is 200. Allowed range is
17075           from 1 to 200.
17076
17077       threu
17078           Set U threshold for averaging chrominance values.  Set finer
17079           control for max allowed difference between U components of current
17080           pixel and neigbour pixels.  Default value is 200. Allowed range is
17081           from 1 to 200.
17082
17083       threv
17084           Set V threshold for averaging chrominance values.  Set finer
17085           control for max allowed difference between V components of current
17086           pixel and neigbour pixels.  Default value is 200. Allowed range is
17087           from 1 to 200.
17088
17089       distance
17090           Set distance type used in calculations.
17091
17092           manhattan
17093               Absolute difference.
17094
17095           euclidean
17096               Difference squared.
17097
17098           Default distance type is manhattan.
17099
17100       Commands
17101
17102       This filter supports same commands as options.  The command accepts the
17103       same syntax of the corresponding option.
17104
17105   chromashift
17106       Shift chroma pixels horizontally and/or vertically.
17107
17108       The filter accepts the following options:
17109
17110       cbh Set amount to shift chroma-blue horizontally.
17111
17112       cbv Set amount to shift chroma-blue vertically.
17113
17114       crh Set amount to shift chroma-red horizontally.
17115
17116       crv Set amount to shift chroma-red vertically.
17117
17118       edge
17119           Set edge mode, can be smear, default, or warp.
17120
17121       Commands
17122
17123       This filter supports the all above options as commands.
17124
17125   ciescope
17126       Display CIE color diagram with pixels overlaid onto it.
17127
17128       The filter accepts the following options:
17129
17130       system
17131           Set color system.
17132
17133           ntsc, 470m
17134           ebu, 470bg
17135           smpte
17136           240m
17137           apple
17138           widergb
17139           cie1931
17140           rec709, hdtv
17141           uhdtv, rec2020
17142           dcip3
17143       cie Set CIE system.
17144
17145           xyy
17146           ucs
17147           luv
17148       gamuts
17149           Set what gamuts to draw.
17150
17151           See "system" option for available values.
17152
17153       size, s
17154           Set ciescope size, by default set to 512.
17155
17156       intensity, i
17157           Set intensity used to map input pixel values to CIE diagram.
17158
17159       contrast
17160           Set contrast used to draw tongue colors that are out of active
17161           color system gamut.
17162
17163       corrgamma
17164           Correct gamma displayed on scope, by default enabled.
17165
17166       showwhite
17167           Show white point on CIE diagram, by default disabled.
17168
17169       gamma
17170           Set input gamma. Used only with XYZ input color space.
17171
17172       fill
17173           Fill with CIE colors. By default is enabled.
17174
17175   codecview
17176       Visualize information exported by some codecs.
17177
17178       Some codecs can export information through frames using side-data or
17179       other means. For example, some MPEG based codecs export motion vectors
17180       through the export_mvs flag in the codec flags2 option.
17181
17182       The filter accepts the following option:
17183
17184       block
17185           Display block partition structure using the luma plane.
17186
17187       mv  Set motion vectors to visualize.
17188
17189           Available flags for mv are:
17190
17191           pf  forward predicted MVs of P-frames
17192
17193           bf  forward predicted MVs of B-frames
17194
17195           bb  backward predicted MVs of B-frames
17196
17197       qp  Display quantization parameters using the chroma planes.
17198
17199       mv_type, mvt
17200           Set motion vectors type to visualize. Includes MVs from all frames
17201           unless specified by frame_type option.
17202
17203           Available flags for mv_type are:
17204
17205           fp  forward predicted MVs
17206
17207           bp  backward predicted MVs
17208
17209       frame_type, ft
17210           Set frame type to visualize motion vectors of.
17211
17212           Available flags for frame_type are:
17213
17214           if  intra-coded frames (I-frames)
17215
17216           pf  predicted frames (P-frames)
17217
17218           bf  bi-directionally predicted frames (B-frames)
17219
17220       Examples
17221
17222       •   Visualize forward predicted MVs of all frames using ffplay:
17223
17224                   ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp
17225
17226       •   Visualize multi-directionals MVs of P and B-Frames using ffplay:
17227
17228                   ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
17229
17230   colorbalance
17231       Modify intensity of primary colors (red, green and blue) of input
17232       frames.
17233
17234       The filter allows an input frame to be adjusted in the shadows,
17235       midtones or highlights regions for the red-cyan, green-magenta or blue-
17236       yellow balance.
17237
17238       A positive adjustment value shifts the balance towards the primary
17239       color, a negative value towards the complementary color.
17240
17241       The filter accepts the following options:
17242
17243       rs
17244       gs
17245       bs  Adjust red, green and blue shadows (darkest pixels).
17246
17247       rm
17248       gm
17249       bm  Adjust red, green and blue midtones (medium pixels).
17250
17251       rh
17252       gh
17253       bh  Adjust red, green and blue highlights (brightest pixels).
17254
17255           Allowed ranges for options are "[-1.0, 1.0]". Defaults are 0.
17256
17257       pl  Preserve lightness when changing color balance. Default is
17258           disabled.
17259
17260       Examples
17261
17262       •   Add red color cast to shadows:
17263
17264                   colorbalance=rs=.3
17265
17266       Commands
17267
17268       This filter supports the all above options as commands.
17269
17270   colorcontrast
17271       Adjust color contrast between RGB components.
17272
17273       The filter accepts the following options:
17274
17275       rc  Set the red-cyan contrast. Defaults is 0.0. Allowed range is from
17276           -1.0 to 1.0.
17277
17278       gm  Set the green-magenta contrast. Defaults is 0.0. Allowed range is
17279           from -1.0 to 1.0.
17280
17281       by  Set the blue-yellow contrast. Defaults is 0.0. Allowed range is
17282           from -1.0 to 1.0.
17283
17284       rcw
17285       gmw
17286       byw Set the weight of each "rc", "gm", "by" option value. Default value
17287           is 0.0.  Allowed range is from 0.0 to 1.0. If all weights are 0.0
17288           filtering is disabled.
17289
17290       pl  Set the amount of preserving lightness. Default value is 0.0.
17291           Allowed range is from 0.0 to 1.0.
17292
17293       Commands
17294
17295       This filter supports the all above options as commands.
17296
17297   colorcorrect
17298       Adjust color white balance selectively for blacks and whites.  This
17299       filter operates in YUV colorspace.
17300
17301       The filter accepts the following options:
17302
17303       rl  Set the red shadow spot. Allowed range is from -1.0 to 1.0.
17304           Default value is 0.
17305
17306       bl  Set the blue shadow spot. Allowed range is from -1.0 to 1.0.
17307           Default value is 0.
17308
17309       rh  Set the red highlight spot. Allowed range is from -1.0 to 1.0.
17310           Default value is 0.
17311
17312       bh  Set the red highlight spot. Allowed range is from -1.0 to 1.0.
17313           Default value is 0.
17314
17315       saturation
17316           Set the amount of saturation. Allowed range is from -3.0 to 3.0.
17317           Default value is 1.
17318
17319       analyze
17320           If set to anything other than "manual" it will analyze every frame
17321           and use derived parameters for filtering output frame.
17322
17323           Possible values are:
17324
17325           manual
17326           average
17327           minmax
17328           median
17329
17330           Default value is "manual".
17331
17332       Commands
17333
17334       This filter supports the all above options as commands.
17335
17336   colorchannelmixer
17337       Adjust video input frames by re-mixing color channels.
17338
17339       This filter modifies a color channel by adding the values associated to
17340       the other channels of the same pixels. For example if the value to
17341       modify is red, the output value will be:
17342
17343               <red>=<red>*<rr> + <blue>*<rb> + <green>*<rg> + <alpha>*<ra>
17344
17345       The filter accepts the following options:
17346
17347       rr
17348       rg
17349       rb
17350       ra  Adjust contribution of input red, green, blue and alpha channels
17351           for output red channel.  Default is 1 for rr, and 0 for rg, rb and
17352           ra.
17353
17354       gr
17355       gg
17356       gb
17357       ga  Adjust contribution of input red, green, blue and alpha channels
17358           for output green channel.  Default is 1 for gg, and 0 for gr, gb
17359           and ga.
17360
17361       br
17362       bg
17363       bb
17364       ba  Adjust contribution of input red, green, blue and alpha channels
17365           for output blue channel.  Default is 1 for bb, and 0 for br, bg and
17366           ba.
17367
17368       ar
17369       ag
17370       ab
17371       aa  Adjust contribution of input red, green, blue and alpha channels
17372           for output alpha channel.  Default is 1 for aa, and 0 for ar, ag
17373           and ab.
17374
17375           Allowed ranges for options are "[-2.0, 2.0]".
17376
17377       pc  Set preserve color mode. The accepted values are:
17378
17379           none
17380               Disable color preserving, this is default.
17381
17382           lum Preserve luminance.
17383
17384           max Preserve max value of RGB triplet.
17385
17386           avg Preserve average value of RGB triplet.
17387
17388           sum Preserve sum value of RGB triplet.
17389
17390           nrm Preserve normalized value of RGB triplet.
17391
17392           pwr Preserve power value of RGB triplet.
17393
17394       pa  Set the preserve color amount when changing colors. Allowed range
17395           is from "[0.0, 1.0]".  Default is 0.0, thus disabled.
17396
17397       Examples
17398
17399       •   Convert source to grayscale:
17400
17401                   colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
17402
17403       •   Simulate sepia tones:
17404
17405                   colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
17406
17407       Commands
17408
17409       This filter supports the all above options as commands.
17410
17411   colorize
17412       Overlay a solid color on the video stream.
17413
17414       The filter accepts the following options:
17415
17416       hue Set the color hue. Allowed range is from 0 to 360.  Default value
17417           is 0.
17418
17419       saturation
17420           Set the color saturation. Allowed range is from 0 to 1.  Default
17421           value is 0.5.
17422
17423       lightness
17424           Set the color lightness. Allowed range is from 0 to 1.  Default
17425           value is 0.5.
17426
17427       mix Set the mix of source lightness. By default is set to 1.0.  Allowed
17428           range is from 0.0 to 1.0.
17429
17430       Commands
17431
17432       This filter supports the all above options as commands.
17433
17434   colorkey
17435       RGB colorspace color keying.  This filter operates on 8-bit RGB format
17436       frames by setting the alpha component of each pixel which falls within
17437       the similarity radius of the key color to 0. The alpha value for pixels
17438       outside the similarity radius depends on the value of the blend option.
17439
17440       The filter accepts the following options:
17441
17442       color
17443           Set the color for which alpha will be set to 0 (full transparency).
17444           See "Color" section in the ffmpeg-utils manual.  Default is
17445           "black".
17446
17447       similarity
17448           Set the radius from the key color within which other colors also
17449           have full transparency.  The computed distance is related to the
17450           unit fractional distance in 3D space between the RGB values of the
17451           key color and the pixel's color. Range is 0.01 to 1.0. 0.01 matches
17452           within a very small radius around the exact key color, while 1.0
17453           matches everything.  Default is 0.01.
17454
17455       blend
17456           Set how the alpha value for pixels that fall outside the similarity
17457           radius is computed.  0.0 makes pixels either fully transparent or
17458           fully opaque.  Higher values result in semi-transparent pixels,
17459           with greater transparency the more similar the pixel color is to
17460           the key color.  Range is 0.0 to 1.0. Default is 0.0.
17461
17462       Examples
17463
17464       •   Make every green pixel in the input image transparent:
17465
17466                   ffmpeg -i input.png -vf colorkey=green out.png
17467
17468       •   Overlay a greenscreen-video on top of a static background image.
17469
17470                   ffmpeg -i background.png -i video.mp4 -filter_complex "[1:v]colorkey=0x3BBD1E:0.3:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.flv
17471
17472       Commands
17473
17474       This filter supports same commands as options.  The command accepts the
17475       same syntax of the corresponding option.
17476
17477       If the specified expression is not valid, it is kept at its current
17478       value.
17479
17480   colorhold
17481       Remove all color information for all RGB colors except for certain one.
17482
17483       The filter accepts the following options:
17484
17485       color
17486           The color which will not be replaced with neutral gray.
17487
17488       similarity
17489           Similarity percentage with the above color.  0.01 matches only the
17490           exact key color, while 1.0 matches everything.
17491
17492       blend
17493           Blend percentage. 0.0 makes pixels fully gray.  Higher values
17494           result in more preserved color.
17495
17496       Commands
17497
17498       This filter supports same commands as options.  The command accepts the
17499       same syntax of the corresponding option.
17500
17501       If the specified expression is not valid, it is kept at its current
17502       value.
17503
17504   colorlevels
17505       Adjust video input frames using levels.
17506
17507       The filter accepts the following options:
17508
17509       rimin
17510       gimin
17511       bimin
17512       aimin
17513           Adjust red, green, blue and alpha input black point.  Allowed
17514           ranges for options are "[-1.0, 1.0]". Defaults are 0.
17515
17516       rimax
17517       gimax
17518       bimax
17519       aimax
17520           Adjust red, green, blue and alpha input white point.  Allowed
17521           ranges for options are "[-1.0, 1.0]". Defaults are 1.
17522
17523           Input levels are used to lighten highlights (bright tones), darken
17524           shadows (dark tones), change the balance of bright and dark tones.
17525
17526       romin
17527       gomin
17528       bomin
17529       aomin
17530           Adjust red, green, blue and alpha output black point.  Allowed
17531           ranges for options are "[0, 1.0]". Defaults are 0.
17532
17533       romax
17534       gomax
17535       bomax
17536       aomax
17537           Adjust red, green, blue and alpha output white point.  Allowed
17538           ranges for options are "[0, 1.0]". Defaults are 1.
17539
17540           Output levels allows manual selection of a constrained output level
17541           range.
17542
17543       preserve
17544           Set preserve color mode. The accepted values are:
17545
17546           none
17547               Disable color preserving, this is default.
17548
17549           lum Preserve luminance.
17550
17551           max Preserve max value of RGB triplet.
17552
17553           avg Preserve average value of RGB triplet.
17554
17555           sum Preserve sum value of RGB triplet.
17556
17557           nrm Preserve normalized value of RGB triplet.
17558
17559           pwr Preserve power value of RGB triplet.
17560
17561       Examples
17562
17563       •   Make video output darker:
17564
17565                   colorlevels=rimin=0.058:gimin=0.058:bimin=0.058
17566
17567       •   Increase contrast:
17568
17569                   colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.96:gimax=0.96:bimax=0.96
17570
17571       •   Make video output lighter:
17572
17573                   colorlevels=rimax=0.902:gimax=0.902:bimax=0.902
17574
17575       •   Increase brightness:
17576
17577                   colorlevels=romin=0.5:gomin=0.5:bomin=0.5
17578
17579       Commands
17580
17581       This filter supports the all above options as commands.
17582
17583   colormap
17584       Apply custom color maps to video stream.
17585
17586       This filter needs three input video streams.  First stream is video
17587       stream that is going to be filtered out.  Second and third video stream
17588       specify color patches for source color to target color mapping.
17589
17590       The filter accepts the following options:
17591
17592       patch_size
17593           Set the source and target video stream patch size in pixels.
17594
17595       nb_patches
17596           Set the max number of used patches from source and target video
17597           stream.  Default value is number of patches available in additional
17598           video streams.  Max allowed number of patches is 64.
17599
17600       type
17601           Set the adjustments used for target colors. Can be "relative" or
17602           "absolute".  Defaults is "absolute".
17603
17604       kernel
17605           Set the kernel used to measure color differences between mapped
17606           colors.
17607
17608           The accepted values are:
17609
17610           euclidean
17611           weuclidean
17612
17613           Default is "euclidean".
17614
17615   colormatrix
17616       Convert color matrix.
17617
17618       The filter accepts the following options:
17619
17620       src
17621       dst Specify the source and destination color matrix. Both values must
17622           be specified.
17623
17624           The accepted values are:
17625
17626           bt709
17627               BT.709
17628
17629           fcc FCC
17630
17631           bt601
17632               BT.601
17633
17634           bt470
17635               BT.470
17636
17637           bt470bg
17638               BT.470BG
17639
17640           smpte170m
17641               SMPTE-170M
17642
17643           smpte240m
17644               SMPTE-240M
17645
17646           bt2020
17647               BT.2020
17648
17649       For example to convert from BT.601 to SMPTE-240M, use the command:
17650
17651               colormatrix=bt601:smpte240m
17652
17653   colorspace
17654       Convert colorspace, transfer characteristics or color primaries.  Input
17655       video needs to have an even size.
17656
17657       The filter accepts the following options:
17658
17659       all Specify all color properties at once.
17660
17661           The accepted values are:
17662
17663           bt470m
17664               BT.470M
17665
17666           bt470bg
17667               BT.470BG
17668
17669           bt601-6-525
17670               BT.601-6 525
17671
17672           bt601-6-625
17673               BT.601-6 625
17674
17675           bt709
17676               BT.709
17677
17678           smpte170m
17679               SMPTE-170M
17680
17681           smpte240m
17682               SMPTE-240M
17683
17684           bt2020
17685               BT.2020
17686
17687       space
17688           Specify output colorspace.
17689
17690           The accepted values are:
17691
17692           bt709
17693               BT.709
17694
17695           fcc FCC
17696
17697           bt470bg
17698               BT.470BG or BT.601-6 625
17699
17700           smpte170m
17701               SMPTE-170M or BT.601-6 525
17702
17703           smpte240m
17704               SMPTE-240M
17705
17706           ycgco
17707               YCgCo
17708
17709           bt2020ncl
17710               BT.2020 with non-constant luminance
17711
17712       trc Specify output transfer characteristics.
17713
17714           The accepted values are:
17715
17716           bt709
17717               BT.709
17718
17719           bt470m
17720               BT.470M
17721
17722           bt470bg
17723               BT.470BG
17724
17725           gamma22
17726               Constant gamma of 2.2
17727
17728           gamma28
17729               Constant gamma of 2.8
17730
17731           smpte170m
17732               SMPTE-170M, BT.601-6 625 or BT.601-6 525
17733
17734           smpte240m
17735               SMPTE-240M
17736
17737           srgb
17738               SRGB
17739
17740           iec61966-2-1
17741               iec61966-2-1
17742
17743           iec61966-2-4
17744               iec61966-2-4
17745
17746           xvycc
17747               xvycc
17748
17749           bt2020-10
17750               BT.2020 for 10-bits content
17751
17752           bt2020-12
17753               BT.2020 for 12-bits content
17754
17755       primaries
17756           Specify output color primaries.
17757
17758           The accepted values are:
17759
17760           bt709
17761               BT.709
17762
17763           bt470m
17764               BT.470M
17765
17766           bt470bg
17767               BT.470BG or BT.601-6 625
17768
17769           smpte170m
17770               SMPTE-170M or BT.601-6 525
17771
17772           smpte240m
17773               SMPTE-240M
17774
17775           film
17776               film
17777
17778           smpte431
17779               SMPTE-431
17780
17781           smpte432
17782               SMPTE-432
17783
17784           bt2020
17785               BT.2020
17786
17787           jedec-p22
17788               JEDEC P22 phosphors
17789
17790       range
17791           Specify output color range.
17792
17793           The accepted values are:
17794
17795           tv  TV (restricted) range
17796
17797           mpeg
17798               MPEG (restricted) range
17799
17800           pc  PC (full) range
17801
17802           jpeg
17803               JPEG (full) range
17804
17805       format
17806           Specify output color format.
17807
17808           The accepted values are:
17809
17810           yuv420p
17811               YUV 4:2:0 planar 8-bits
17812
17813           yuv420p10
17814               YUV 4:2:0 planar 10-bits
17815
17816           yuv420p12
17817               YUV 4:2:0 planar 12-bits
17818
17819           yuv422p
17820               YUV 4:2:2 planar 8-bits
17821
17822           yuv422p10
17823               YUV 4:2:2 planar 10-bits
17824
17825           yuv422p12
17826               YUV 4:2:2 planar 12-bits
17827
17828           yuv444p
17829               YUV 4:4:4 planar 8-bits
17830
17831           yuv444p10
17832               YUV 4:4:4 planar 10-bits
17833
17834           yuv444p12
17835               YUV 4:4:4 planar 12-bits
17836
17837       fast
17838           Do a fast conversion, which skips gamma/primary correction. This
17839           will take significantly less CPU, but will be mathematically
17840           incorrect. To get output compatible with that produced by the
17841           colormatrix filter, use fast=1.
17842
17843       dither
17844           Specify dithering mode.
17845
17846           The accepted values are:
17847
17848           none
17849               No dithering
17850
17851           fsb Floyd-Steinberg dithering
17852
17853       wpadapt
17854           Whitepoint adaptation mode.
17855
17856           The accepted values are:
17857
17858           bradford
17859               Bradford whitepoint adaptation
17860
17861           vonkries
17862               von Kries whitepoint adaptation
17863
17864           identity
17865               identity whitepoint adaptation (i.e. no whitepoint adaptation)
17866
17867       iall
17868           Override all input properties at once. Same accepted values as all.
17869
17870       ispace
17871           Override input colorspace. Same accepted values as space.
17872
17873       iprimaries
17874           Override input color primaries. Same accepted values as primaries.
17875
17876       itrc
17877           Override input transfer characteristics. Same accepted values as
17878           trc.
17879
17880       irange
17881           Override input color range. Same accepted values as range.
17882
17883       The filter converts the transfer characteristics, color space and color
17884       primaries to the specified user values. The output value, if not
17885       specified, is set to a default value based on the "all" property. If
17886       that property is also not specified, the filter will log an error. The
17887       output color range and format default to the same value as the input
17888       color range and format. The input transfer characteristics, color
17889       space, color primaries and color range should be set on the input data.
17890       If any of these are missing, the filter will log an error and no
17891       conversion will take place.
17892
17893       For example to convert the input to SMPTE-240M, use the command:
17894
17895               colorspace=smpte240m
17896
17897   colortemperature
17898       Adjust color temperature in video to simulate variations in ambient
17899       color temperature.
17900
17901       The filter accepts the following options:
17902
17903       temperature
17904           Set the temperature in Kelvin. Allowed range is from 1000 to 40000.
17905           Default value is 6500 K.
17906
17907       mix Set mixing with filtered output. Allowed range is from 0 to 1.
17908           Default value is 1.
17909
17910       pl  Set the amount of preserving lightness. Allowed range is from 0 to
17911           1.  Default value is 0.
17912
17913       Commands
17914
17915       This filter supports same commands as options.
17916
17917   convolution
17918       Apply convolution of 3x3, 5x5, 7x7 or horizontal/vertical up to 49
17919       elements.
17920
17921       The filter accepts the following options:
17922
17923       0m
17924       1m
17925       2m
17926       3m  Set matrix for each plane.  Matrix is sequence of 9, 25 or 49
17927           signed integers in square mode, and from 1 to 49 odd number of
17928           signed integers in row mode.
17929
17930       0rdiv
17931       1rdiv
17932       2rdiv
17933       3rdiv
17934           Set multiplier for calculated value for each plane.  If unset or 0,
17935           it will be sum of all matrix elements.
17936
17937       0bias
17938       1bias
17939       2bias
17940       3bias
17941           Set bias for each plane. This value is added to the result of the
17942           multiplication.  Useful for making the overall image brighter or
17943           darker. Default is 0.0.
17944
17945       0mode
17946       1mode
17947       2mode
17948       3mode
17949           Set matrix mode for each plane. Can be square, row or column.
17950           Default is square.
17951
17952       Commands
17953
17954       This filter supports the all above options as commands.
17955
17956       Examples
17957
17958       •   Apply sharpen:
17959
17960                   convolution="0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0"
17961
17962       •   Apply blur:
17963
17964                   convolution="1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1/9:1/9:1/9:1/9"
17965
17966       •   Apply edge enhance:
17967
17968                   convolution="0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:5:1:1:1:0:128:128:128"
17969
17970       •   Apply edge detect:
17971
17972                   convolution="0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:5:5:5:1:0:128:128:128"
17973
17974       •   Apply laplacian edge detector which includes diagonals:
17975
17976                   convolution="1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:5:5:5:1:0:128:128:0"
17977
17978       •   Apply emboss:
17979
17980                   convolution="-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2"
17981
17982   convolve
17983       Apply 2D convolution of video stream in frequency domain using second
17984       stream as impulse.
17985
17986       The filter accepts the following options:
17987
17988       planes
17989           Set which planes to process.
17990
17991       impulse
17992           Set which impulse video frames will be processed, can be first or
17993           all. Default is all.
17994
17995       The "convolve" filter also supports the framesync options.
17996
17997   copy
17998       Copy the input video source unchanged to the output. This is mainly
17999       useful for testing purposes.
18000
18001   coreimage
18002       Video filtering on GPU using Apple's CoreImage API on OSX.
18003
18004       Hardware acceleration is based on an OpenGL context. Usually, this
18005       means it is processed by video hardware. However, software-based OpenGL
18006       implementations exist which means there is no guarantee for hardware
18007       processing. It depends on the respective OSX.
18008
18009       There are many filters and image generators provided by Apple that come
18010       with a large variety of options. The filter has to be referenced by its
18011       name along with its options.
18012
18013       The coreimage filter accepts the following options:
18014
18015       list_filters
18016           List all available filters and generators along with all their
18017           respective options as well as possible minimum and maximum values
18018           along with the default values.
18019
18020                   list_filters=true
18021
18022       filter
18023           Specify all filters by their respective name and options.  Use
18024           list_filters to determine all valid filter names and options.
18025           Numerical options are specified by a float value and are
18026           automatically clamped to their respective value range.  Vector and
18027           color options have to be specified by a list of space separated
18028           float values. Character escaping has to be done.  A special option
18029           name "default" is available to use default options for a filter.
18030
18031           It is required to specify either "default" or at least one of the
18032           filter options.  All omitted options are used with their default
18033           values.  The syntax of the filter string is as follows:
18034
18035                   filter=<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...][#<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...]][#...]
18036
18037       output_rect
18038           Specify a rectangle where the output of the filter chain is copied
18039           into the input image. It is given by a list of space separated
18040           float values:
18041
18042                   output_rect=x\ y\ width\ height
18043
18044           If not given, the output rectangle equals the dimensions of the
18045           input image.  The output rectangle is automatically cropped at the
18046           borders of the input image. Negative values are valid for each
18047           component.
18048
18049                   output_rect=25\ 25\ 100\ 100
18050
18051       Several filters can be chained for successive processing without GPU-
18052       HOST transfers allowing for fast processing of complex filter chains.
18053       Currently, only filters with zero (generators) or exactly one (filters)
18054       input image and one output image are supported. Also, transition
18055       filters are not yet usable as intended.
18056
18057       Some filters generate output images with additional padding depending
18058       on the respective filter kernel. The padding is automatically removed
18059       to ensure the filter output has the same size as the input image.
18060
18061       For image generators, the size of the output image is determined by the
18062       previous output image of the filter chain or the input image of the
18063       whole filterchain, respectively. The generators do not use the pixel
18064       information of this image to generate their output. However, the
18065       generated output is blended onto this image, resulting in partial or
18066       complete coverage of the output image.
18067
18068       The coreimagesrc video source can be used for generating input images
18069       which are directly fed into the filter chain. By using it, providing
18070       input images by another video source or an input video is not required.
18071
18072       Examples
18073
18074       •   List all filters available:
18075
18076                   coreimage=list_filters=true
18077
18078       •   Use the CIBoxBlur filter with default options to blur an image:
18079
18080                   coreimage=filter=CIBoxBlur@default
18081
18082       •   Use a filter chain with CISepiaTone at default values and
18083           CIVignetteEffect with its center at 100x100 and a radius of 50
18084           pixels:
18085
18086                   coreimage=filter=CIBoxBlur@default#CIVignetteEffect@inputCenter=100\ 100@inputRadius=50
18087
18088       •   Use nullsrc and CIQRCodeGenerator to create a QR code for the
18089           FFmpeg homepage, given as complete and escaped command-line for
18090           Apple's standard bash shell:
18091
18092                   ffmpeg -f lavfi -i nullsrc=s=100x100,coreimage=filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
18093
18094   cover_rect
18095       Cover a rectangular object
18096
18097       It accepts the following options:
18098
18099       cover
18100           Filepath of the optional cover image, needs to be in yuv420.
18101
18102       mode
18103           Set covering mode.
18104
18105           It accepts the following values:
18106
18107           cover
18108               cover it by the supplied image
18109
18110           blur
18111               cover it by interpolating the surrounding pixels
18112
18113           Default value is blur.
18114
18115       Examples
18116
18117       •   Cover a rectangular object by the supplied image of a given video
18118           using ffmpeg:
18119
18120                   ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
18121
18122   crop
18123       Crop the input video to given dimensions.
18124
18125       It accepts the following parameters:
18126
18127       w, out_w
18128           The width of the output video. It defaults to "iw".  This
18129           expression is evaluated only once during the filter configuration,
18130           or when the w or out_w command is sent.
18131
18132       h, out_h
18133           The height of the output video. It defaults to "ih".  This
18134           expression is evaluated only once during the filter configuration,
18135           or when the h or out_h command is sent.
18136
18137       x   The horizontal position, in the input video, of the left edge of
18138           the output video. It defaults to "(in_w-out_w)/2".  This expression
18139           is evaluated per-frame.
18140
18141       y   The vertical position, in the input video, of the top edge of the
18142           output video.  It defaults to "(in_h-out_h)/2".  This expression is
18143           evaluated per-frame.
18144
18145       keep_aspect
18146           If set to 1 will force the output display aspect ratio to be the
18147           same of the input, by changing the output sample aspect ratio. It
18148           defaults to 0.
18149
18150       exact
18151           Enable exact cropping. If enabled, subsampled videos will be
18152           cropped at exact width/height/x/y as specified and will not be
18153           rounded to nearest smaller value.  It defaults to 0.
18154
18155       The out_w, out_h, x, y parameters are expressions containing the
18156       following constants:
18157
18158       x
18159       y   The computed values for x and y. They are evaluated for each new
18160           frame.
18161
18162       in_w
18163       in_h
18164           The input width and height.
18165
18166       iw
18167       ih  These are the same as in_w and in_h.
18168
18169       out_w
18170       out_h
18171           The output (cropped) width and height.
18172
18173       ow
18174       oh  These are the same as out_w and out_h.
18175
18176       a   same as iw / ih
18177
18178       sar input sample aspect ratio
18179
18180       dar input display aspect ratio, it is the same as (iw / ih) * sar
18181
18182       hsub
18183       vsub
18184           horizontal and vertical chroma subsample values. For example for
18185           the pixel format "yuv422p" hsub is 2 and vsub is 1.
18186
18187       n   The number of the input frame, starting from 0.
18188
18189       pos the position in the file of the input frame, NAN if unknown
18190
18191       t   The timestamp expressed in seconds. It's NAN if the input timestamp
18192           is unknown.
18193
18194       The expression for out_w may depend on the value of out_h, and the
18195       expression for out_h may depend on out_w, but they cannot depend on x
18196       and y, as x and y are evaluated after out_w and out_h.
18197
18198       The x and y parameters specify the expressions for the position of the
18199       top-left corner of the output (non-cropped) area. They are evaluated
18200       for each frame. If the evaluated value is not valid, it is approximated
18201       to the nearest valid value.
18202
18203       The expression for x may depend on y, and the expression for y may
18204       depend on x.
18205
18206       Examples
18207
18208       •   Crop area with size 100x100 at position (12,34).
18209
18210                   crop=100:100:12:34
18211
18212           Using named options, the example above becomes:
18213
18214                   crop=w=100:h=100:x=12:y=34
18215
18216       •   Crop the central input area with size 100x100:
18217
18218                   crop=100:100
18219
18220       •   Crop the central input area with size 2/3 of the input video:
18221
18222                   crop=2/3*in_w:2/3*in_h
18223
18224       •   Crop the input video central square:
18225
18226                   crop=out_w=in_h
18227                   crop=in_h
18228
18229       •   Delimit the rectangle with the top-left corner placed at position
18230           100:100 and the right-bottom corner corresponding to the right-
18231           bottom corner of the input image.
18232
18233                   crop=in_w-100:in_h-100:100:100
18234
18235       •   Crop 10 pixels from the left and right borders, and 20 pixels from
18236           the top and bottom borders
18237
18238                   crop=in_w-2*10:in_h-2*20
18239
18240       •   Keep only the bottom right quarter of the input image:
18241
18242                   crop=in_w/2:in_h/2:in_w/2:in_h/2
18243
18244       •   Crop height for getting Greek harmony:
18245
18246                   crop=in_w:1/PHI*in_w
18247
18248       •   Apply trembling effect:
18249
18250                   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)
18251
18252       •   Apply erratic camera effect depending on timestamp:
18253
18254                   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)"
18255
18256       •   Set x depending on the value of y:
18257
18258                   crop=in_w/2:in_h/2:y:10+10*sin(n/10)
18259
18260       Commands
18261
18262       This filter supports the following commands:
18263
18264       w, out_w
18265       h, out_h
18266       x
18267       y   Set width/height of the output video and the horizontal/vertical
18268           position in the input video.  The command accepts the same syntax
18269           of the corresponding option.
18270
18271           If the specified expression is not valid, it is kept at its current
18272           value.
18273
18274   cropdetect
18275       Auto-detect the crop size.
18276
18277       It calculates the necessary cropping parameters and prints the
18278       recommended parameters via the logging system. The detected dimensions
18279       correspond to the non-black area of the input video.
18280
18281       It accepts the following parameters:
18282
18283       limit
18284           Set higher black value threshold, which can be optionally specified
18285           from nothing (0) to everything (255 for 8-bit based formats). An
18286           intensity value greater to the set value is considered non-black.
18287           It defaults to 24.  You can also specify a value between 0.0 and
18288           1.0 which will be scaled depending on the bitdepth of the pixel
18289           format.
18290
18291       round
18292           The value which the width/height should be divisible by. It
18293           defaults to 16. The offset is automatically adjusted to center the
18294           video. Use 2 to get only even dimensions (needed for 4:2:2 video).
18295           16 is best when encoding to most video codecs.
18296
18297       skip
18298           Set the number of initial frames for which evaluation is skipped.
18299           Default is 2. Range is 0 to INT_MAX.
18300
18301       reset_count, reset
18302           Set the counter that determines after how many frames cropdetect
18303           will reset the previously detected largest video area and start
18304           over to detect the current optimal crop area. Default value is 0.
18305
18306           This can be useful when channel logos distort the video area. 0
18307           indicates 'never reset', and returns the largest area encountered
18308           during playback.
18309
18310   cue
18311       Delay video filtering until a given wallclock timestamp. The filter
18312       first passes on preroll amount of frames, then it buffers at most
18313       buffer amount of frames and waits for the cue. After reaching the cue
18314       it forwards the buffered frames and also any subsequent frames coming
18315       in its input.
18316
18317       The filter can be used synchronize the output of multiple ffmpeg
18318       processes for realtime output devices like decklink. By putting the
18319       delay in the filtering chain and pre-buffering frames the process can
18320       pass on data to output almost immediately after the target wallclock
18321       timestamp is reached.
18322
18323       Perfect frame accuracy cannot be guaranteed, but the result is good
18324       enough for some use cases.
18325
18326       cue The cue timestamp expressed in a UNIX timestamp in microseconds.
18327           Default is 0.
18328
18329       preroll
18330           The duration of content to pass on as preroll expressed in seconds.
18331           Default is 0.
18332
18333       buffer
18334           The maximum duration of content to buffer before waiting for the
18335           cue expressed in seconds. Default is 0.
18336
18337   curves
18338       Apply color adjustments using curves.
18339
18340       This filter is similar to the Adobe Photoshop and GIMP curves tools.
18341       Each component (red, green and blue) has its values defined by N key
18342       points tied from each other using a smooth curve. The x-axis represents
18343       the pixel values from the input frame, and the y-axis the new pixel
18344       values to be set for the output frame.
18345
18346       By default, a component curve is defined by the two points (0;0) and
18347       (1;1). This creates a straight line where each original pixel value is
18348       "adjusted" to its own value, which means no change to the image.
18349
18350       The filter allows you to redefine these two points and add some more. A
18351       new curve (using a natural cubic spline interpolation) will be define
18352       to pass smoothly through all these new coordinates. The new defined
18353       points needs to be strictly increasing over the x-axis, and their x and
18354       y values must be in the [0;1] interval.  If the computed curves
18355       happened to go outside the vector spaces, the values will be clipped
18356       accordingly.
18357
18358       The filter accepts the following options:
18359
18360       preset
18361           Select one of the available color presets. This option can be used
18362           in addition to the r, g, b parameters; in this case, the later
18363           options takes priority on the preset values.  Available presets
18364           are:
18365
18366           none
18367           color_negative
18368           cross_process
18369           darker
18370           increase_contrast
18371           lighter
18372           linear_contrast
18373           medium_contrast
18374           negative
18375           strong_contrast
18376           vintage
18377
18378           Default is "none".
18379
18380       master, m
18381           Set the master key points. These points will define a second pass
18382           mapping. It is sometimes called a "luminance" or "value" mapping.
18383           It can be used with r, g, b or all since it acts like a post-
18384           processing LUT.
18385
18386       red, r
18387           Set the key points for the red component.
18388
18389       green, g
18390           Set the key points for the green component.
18391
18392       blue, b
18393           Set the key points for the blue component.
18394
18395       all Set the key points for all components (not including master).  Can
18396           be used in addition to the other key points component options. In
18397           this case, the unset component(s) will fallback on this all
18398           setting.
18399
18400       psfile
18401           Specify a Photoshop curves file (".acv") to import the settings
18402           from.
18403
18404       plot
18405           Save Gnuplot script of the curves in specified file.
18406
18407       To avoid some filtergraph syntax conflicts, each key points list need
18408       to be defined using the following syntax: "x0/y0 x1/y1 x2/y2 ...".
18409
18410       Commands
18411
18412       This filter supports same commands as options.
18413
18414       Examples
18415
18416       •   Increase slightly the middle level of blue:
18417
18418                   curves=blue='0/0 0.5/0.58 1/1'
18419
18420       •   Vintage effect:
18421
18422                   curves=r='0/0.11 .42/.51 1/0.95':g='0/0 0.50/0.48 1/1':b='0/0.22 .49/.44 1/0.8'
18423
18424           Here we obtain the following coordinates for each components:
18425
18426           red "(0;0.11) (0.42;0.51) (1;0.95)"
18427
18428           green
18429               "(0;0) (0.50;0.48) (1;1)"
18430
18431           blue
18432               "(0;0.22) (0.49;0.44) (1;0.80)"
18433
18434       •   The previous example can also be achieved with the associated
18435           built-in preset:
18436
18437                   curves=preset=vintage
18438
18439       •   Or simply:
18440
18441                   curves=vintage
18442
18443       •   Use a Photoshop preset and redefine the points of the green
18444           component:
18445
18446                   curves=psfile='MyCurvesPresets/purple.acv':green='0/0 0.45/0.53 1/1'
18447
18448       •   Check out the curves of the "cross_process" profile using ffmpeg
18449           and gnuplot:
18450
18451                   ffmpeg -f lavfi -i color -vf curves=cross_process:plot=/tmp/curves.plt -frames:v 1 -f null -
18452                   gnuplot -p /tmp/curves.plt
18453
18454   datascope
18455       Video data analysis filter.
18456
18457       This filter shows hexadecimal pixel values of part of video.
18458
18459       The filter accepts the following options:
18460
18461       size, s
18462           Set output video size.
18463
18464       x   Set x offset from where to pick pixels.
18465
18466       y   Set y offset from where to pick pixels.
18467
18468       mode
18469           Set scope mode, can be one of the following:
18470
18471           mono
18472               Draw hexadecimal pixel values with white color on black
18473               background.
18474
18475           color
18476               Draw hexadecimal pixel values with input video pixel color on
18477               black background.
18478
18479           color2
18480               Draw hexadecimal pixel values on color background picked from
18481               input video, the text color is picked in such way so its always
18482               visible.
18483
18484       axis
18485           Draw rows and columns numbers on left and top of video.
18486
18487       opacity
18488           Set background opacity.
18489
18490       format
18491           Set display number format. Can be "hex", or "dec". Default is
18492           "hex".
18493
18494       components
18495           Set pixel components to display. By default all pixel components
18496           are displayed.
18497
18498       Commands
18499
18500       This filter supports same commands as options excluding "size" option.
18501
18502   dblur
18503       Apply Directional blur filter.
18504
18505       The filter accepts the following options:
18506
18507       angle
18508           Set angle of directional blur. Default is 45.
18509
18510       radius
18511           Set radius of directional blur. Default is 5.
18512
18513       planes
18514           Set which planes to filter. By default all planes are filtered.
18515
18516       Commands
18517
18518       This filter supports same commands as options.  The command accepts the
18519       same syntax of the corresponding option.
18520
18521       If the specified expression is not valid, it is kept at its current
18522       value.
18523
18524   dctdnoiz
18525       Denoise frames using 2D DCT (frequency domain filtering).
18526
18527       This filter is not designed for real time.
18528
18529       The filter accepts the following options:
18530
18531       sigma, s
18532           Set the noise sigma constant.
18533
18534           This sigma defines a hard threshold of "3 * sigma"; every DCT
18535           coefficient (absolute value) below this threshold with be dropped.
18536
18537           If you need a more advanced filtering, see expr.
18538
18539           Default is 0.
18540
18541       overlap
18542           Set number overlapping pixels for each block. Since the filter can
18543           be slow, you may want to reduce this value, at the cost of a less
18544           effective filter and the risk of various artefacts.
18545
18546           If the overlapping value doesn't permit processing the whole input
18547           width or height, a warning will be displayed and according borders
18548           won't be denoised.
18549
18550           Default value is blocksize-1, which is the best possible setting.
18551
18552       expr, e
18553           Set the coefficient factor expression.
18554
18555           For each coefficient of a DCT block, this expression will be
18556           evaluated as a multiplier value for the coefficient.
18557
18558           If this is option is set, the sigma option will be ignored.
18559
18560           The absolute value of the coefficient can be accessed through the c
18561           variable.
18562
18563       n   Set the blocksize using the number of bits. "1<<n" defines the
18564           blocksize, which is the width and height of the processed blocks.
18565
18566           The default value is 3 (8x8) and can be raised to 4 for a blocksize
18567           of 16x16. Note that changing this setting has huge consequences on
18568           the speed processing. Also, a larger block size does not
18569           necessarily means a better de-noising.
18570
18571       Examples
18572
18573       Apply a denoise with a sigma of 4.5:
18574
18575               dctdnoiz=4.5
18576
18577       The same operation can be achieved using the expression system:
18578
18579               dctdnoiz=e='gte(c, 4.5*3)'
18580
18581       Violent denoise using a block size of "16x16":
18582
18583               dctdnoiz=15:n=4
18584
18585   deband
18586       Remove banding artifacts from input video.  It works by replacing
18587       banded pixels with average value of referenced pixels.
18588
18589       The filter accepts the following options:
18590
18591       1thr
18592       2thr
18593       3thr
18594       4thr
18595           Set banding detection threshold for each plane. Default is 0.02.
18596           Valid range is 0.00003 to 0.5.  If difference between current pixel
18597           and reference pixel is less than threshold, it will be considered
18598           as banded.
18599
18600       range, r
18601           Banding detection range in pixels. Default is 16. If positive,
18602           random number in range 0 to set value will be used. If negative,
18603           exact absolute value will be used.  The range defines square of
18604           four pixels around current pixel.
18605
18606       direction, d
18607           Set direction in radians from which four pixel will be compared. If
18608           positive, random direction from 0 to set direction will be picked.
18609           If negative, exact of absolute value will be picked. For example
18610           direction 0, -PI or -2*PI radians will pick only pixels on same row
18611           and -PI/2 will pick only pixels on same column.
18612
18613       blur, b
18614           If enabled, current pixel is compared with average value of all
18615           four surrounding pixels. The default is enabled. If disabled
18616           current pixel is compared with all four surrounding pixels. The
18617           pixel is considered banded if only all four differences with
18618           surrounding pixels are less than threshold.
18619
18620       coupling, c
18621           If enabled, current pixel is changed if and only if all pixel
18622           components are banded, e.g. banding detection threshold is
18623           triggered for all color components.  The default is disabled.
18624
18625       Commands
18626
18627       This filter supports the all above options as commands.
18628
18629   deblock
18630       Remove blocking artifacts from input video.
18631
18632       The filter accepts the following options:
18633
18634       filter
18635           Set filter type, can be weak or strong. Default is strong.  This
18636           controls what kind of deblocking is applied.
18637
18638       block
18639           Set size of block, allowed range is from 4 to 512. Default is 8.
18640
18641       alpha
18642       beta
18643       gamma
18644       delta
18645           Set blocking detection thresholds. Allowed range is 0 to 1.
18646           Defaults are: 0.098 for alpha and 0.05 for the rest.  Using higher
18647           threshold gives more deblocking strength.  Setting alpha controls
18648           threshold detection at exact edge of block.  Remaining options
18649           controls threshold detection near the edge. Each one for
18650           below/above or left/right. Setting any of those to 0 disables
18651           deblocking.
18652
18653       planes
18654           Set planes to filter. Default is to filter all available planes.
18655
18656       Examples
18657
18658       •   Deblock using weak filter and block size of 4 pixels.
18659
18660                   deblock=filter=weak:block=4
18661
18662       •   Deblock using strong filter, block size of 4 pixels and custom
18663           thresholds for deblocking more edges.
18664
18665                   deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05
18666
18667       •   Similar as above, but filter only first plane.
18668
18669                   deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=1
18670
18671       •   Similar as above, but filter only second and third plane.
18672
18673                   deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=6
18674
18675       Commands
18676
18677       This filter supports the all above options as commands.
18678
18679   decimate
18680       Drop duplicated frames at regular intervals.
18681
18682       The filter accepts the following options:
18683
18684       cycle
18685           Set the number of frames from which one will be dropped. Setting
18686           this to N means one frame in every batch of N frames will be
18687           dropped.  Default is 5.
18688
18689       dupthresh
18690           Set the threshold for duplicate detection. If the difference metric
18691           for a frame is less than or equal to this value, then it is
18692           declared as duplicate. Default is 1.1
18693
18694       scthresh
18695           Set scene change threshold. Default is 15.
18696
18697       blockx
18698       blocky
18699           Set the size of the x and y-axis blocks used during metric
18700           calculations.  Larger blocks give better noise suppression, but
18701           also give worse detection of small movements. Must be a power of
18702           two. Default is 32.
18703
18704       ppsrc
18705           Mark main input as a pre-processed input and activate clean source
18706           input stream. This allows the input to be pre-processed with
18707           various filters to help the metrics calculation while keeping the
18708           frame selection lossless. When set to 1, the first stream is for
18709           the pre-processed input, and the second stream is the clean source
18710           from where the kept frames are chosen. Default is 0.
18711
18712       chroma
18713           Set whether or not chroma is considered in the metric calculations.
18714           Default is 1.
18715
18716   deconvolve
18717       Apply 2D deconvolution of video stream in frequency domain using second
18718       stream as impulse.
18719
18720       The filter accepts the following options:
18721
18722       planes
18723           Set which planes to process.
18724
18725       impulse
18726           Set which impulse video frames will be processed, can be first or
18727           all. Default is all.
18728
18729       noise
18730           Set noise when doing divisions. Default is 0.0000001. Useful when
18731           width and height are not same and not power of 2 or if stream prior
18732           to convolving had noise.
18733
18734       The "deconvolve" filter also supports the framesync options.
18735
18736   dedot
18737       Reduce cross-luminance (dot-crawl) and cross-color (rainbows) from
18738       video.
18739
18740       It accepts the following options:
18741
18742       m   Set mode of operation. Can be combination of dotcrawl for cross-
18743           luminance reduction and/or rainbows for cross-color reduction.
18744
18745       lt  Set spatial luma threshold. Lower values increases reduction of
18746           cross-luminance.
18747
18748       tl  Set tolerance for temporal luma. Higher values increases reduction
18749           of cross-luminance.
18750
18751       tc  Set tolerance for chroma temporal variation. Higher values
18752           increases reduction of cross-color.
18753
18754       ct  Set temporal chroma threshold. Lower values increases reduction of
18755           cross-color.
18756
18757   deflate
18758       Apply deflate effect to the video.
18759
18760       This filter replaces the pixel by the local(3x3) average by taking into
18761       account only values lower than the pixel.
18762
18763       It accepts the following options:
18764
18765       threshold0
18766       threshold1
18767       threshold2
18768       threshold3
18769           Limit the maximum change for each plane, default is 65535.  If 0,
18770           plane will remain unchanged.
18771
18772       Commands
18773
18774       This filter supports the all above options as commands.
18775
18776   deflicker
18777       Remove temporal frame luminance variations.
18778
18779       It accepts the following options:
18780
18781       size, s
18782           Set moving-average filter size in frames. Default is 5. Allowed
18783           range is 2 - 129.
18784
18785       mode, m
18786           Set averaging mode to smooth temporal luminance variations.
18787
18788           Available values are:
18789
18790           am  Arithmetic mean
18791
18792           gm  Geometric mean
18793
18794           hm  Harmonic mean
18795
18796           qm  Quadratic mean
18797
18798           cm  Cubic mean
18799
18800           pm  Power mean
18801
18802           median
18803               Median
18804
18805       bypass
18806           Do not actually modify frame. Useful when one only wants metadata.
18807
18808   dejudder
18809       Remove judder produced by partially interlaced telecined content.
18810
18811       Judder can be introduced, for instance, by pullup filter. If the
18812       original source was partially telecined content then the output of
18813       "pullup,dejudder" will have a variable frame rate. May change the
18814       recorded frame rate of the container. Aside from that change, this
18815       filter will not affect constant frame rate video.
18816
18817       The option available in this filter is:
18818
18819       cycle
18820           Specify the length of the window over which the judder repeats.
18821
18822           Accepts any integer greater than 1. Useful values are:
18823
18824           4   If the original was telecined from 24 to 30 fps (Film to NTSC).
18825
18826           5   If the original was telecined from 25 to 30 fps (PAL to NTSC).
18827
18828           20  If a mixture of the two.
18829
18830           The default is 4.
18831
18832   delogo
18833       Suppress a TV station logo by a simple interpolation of the surrounding
18834       pixels. Just set a rectangle covering the logo and watch it disappear
18835       (and sometimes something even uglier appear - your mileage may vary).
18836
18837       It accepts the following parameters:
18838
18839       x
18840       y   Specify the top left corner coordinates of the logo. They must be
18841           specified.
18842
18843       w
18844       h   Specify the width and height of the logo to clear. They must be
18845           specified.
18846
18847       show
18848           When set to 1, a green rectangle is drawn on the screen to simplify
18849           finding the right x, y, w, and h parameters.  The default value is
18850           0.
18851
18852           The rectangle is drawn on the outermost pixels which will be
18853           (partly) replaced with interpolated values. The values of the next
18854           pixels immediately outside this rectangle in each direction will be
18855           used to compute the interpolated pixel values inside the rectangle.
18856
18857       Examples
18858
18859       •   Set a rectangle covering the area with top left corner coordinates
18860           0,0 and size 100x77:
18861
18862                   delogo=x=0:y=0:w=100:h=77
18863
18864   derain
18865       Remove the rain in the input image/video by applying the derain methods
18866       based on convolutional neural networks. Supported models:
18867
18868       •   Recurrent Squeeze-and-Excitation Context Aggregation Net (RESCAN).
18869           See
18870           <http://openaccess.thecvf.com/content_ECCV_2018/papers/Xia_Li_Recurrent_Squeeze-and-Excitation_Context_ECCV_2018_paper.pdf>.
18871
18872       Training as well as model generation scripts are provided in the
18873       repository at <https://github.com/XueweiMeng/derain_filter.git>.
18874
18875       Native model files (.model) can be generated from TensorFlow model
18876       files (.pb) by using tools/python/convert.py
18877
18878       The filter accepts the following options:
18879
18880       filter_type
18881           Specify which filter to use. This option accepts the following
18882           values:
18883
18884           derain
18885               Derain filter. To conduct derain filter, you need to use a
18886               derain model.
18887
18888           dehaze
18889               Dehaze filter. To conduct dehaze filter, you need to use a
18890               dehaze model.
18891
18892           Default value is derain.
18893
18894       dnn_backend
18895           Specify which DNN backend to use for model loading and execution.
18896           This option accepts the following values:
18897
18898           native
18899               Native implementation of DNN loading and execution.
18900
18901           tensorflow
18902               TensorFlow backend. To enable this backend you need to install
18903               the TensorFlow for C library (see
18904               <https://www.tensorflow.org/install/lang_c>) and configure
18905               FFmpeg with "--enable-libtensorflow"
18906
18907           Default value is native.
18908
18909       model
18910           Set path to model file specifying network architecture and its
18911           parameters.  Note that different backends use different file
18912           formats. TensorFlow and native backend can load files for only its
18913           format.
18914
18915       To get full functionality (such as async execution), please use the
18916       dnn_processing filter.
18917
18918   deshake
18919       Attempt to fix small changes in horizontal and/or vertical shift. This
18920       filter helps remove camera shake from hand-holding a camera, bumping a
18921       tripod, moving on a vehicle, etc.
18922
18923       The filter accepts the following options:
18924
18925       x
18926       y
18927       w
18928       h   Specify a rectangular area where to limit the search for motion
18929           vectors.  If desired the search for motion vectors can be limited
18930           to a rectangular area of the frame defined by its top left corner,
18931           width and height. These parameters have the same meaning as the
18932           drawbox filter which can be used to visualise the position of the
18933           bounding box.
18934
18935           This is useful when simultaneous movement of subjects within the
18936           frame might be confused for camera motion by the motion vector
18937           search.
18938
18939           If any or all of x, y, w and h are set to -1 then the full frame is
18940           used. This allows later options to be set without specifying the
18941           bounding box for the motion vector search.
18942
18943           Default - search the whole frame.
18944
18945       rx
18946       ry  Specify the maximum extent of movement in x and y directions in the
18947           range 0-64 pixels. Default 16.
18948
18949       edge
18950           Specify how to generate pixels to fill blanks at the edge of the
18951           frame. Available values are:
18952
18953           blank, 0
18954               Fill zeroes at blank locations
18955
18956           original, 1
18957               Original image at blank locations
18958
18959           clamp, 2
18960               Extruded edge value at blank locations
18961
18962           mirror, 3
18963               Mirrored edge at blank locations
18964
18965           Default value is mirror.
18966
18967       blocksize
18968           Specify the blocksize to use for motion search. Range 4-128 pixels,
18969           default 8.
18970
18971       contrast
18972           Specify the contrast threshold for blocks. Only blocks with more
18973           than the specified contrast (difference between darkest and
18974           lightest pixels) will be considered. Range 1-255, default 125.
18975
18976       search
18977           Specify the search strategy. Available values are:
18978
18979           exhaustive, 0
18980               Set exhaustive search
18981
18982           less, 1
18983               Set less exhaustive search.
18984
18985           Default value is exhaustive.
18986
18987       filename
18988           If set then a detailed log of the motion search is written to the
18989           specified file.
18990
18991   despill
18992       Remove unwanted contamination of foreground colors, caused by reflected
18993       color of greenscreen or bluescreen.
18994
18995       This filter accepts the following options:
18996
18997       type
18998           Set what type of despill to use.
18999
19000       mix Set how spillmap will be generated.
19001
19002       expand
19003           Set how much to get rid of still remaining spill.
19004
19005       red Controls amount of red in spill area.
19006
19007       green
19008           Controls amount of green in spill area.  Should be -1 for
19009           greenscreen.
19010
19011       blue
19012           Controls amount of blue in spill area.  Should be -1 for
19013           bluescreen.
19014
19015       brightness
19016           Controls brightness of spill area, preserving colors.
19017
19018       alpha
19019           Modify alpha from generated spillmap.
19020
19021       Commands
19022
19023       This filter supports the all above options as commands.
19024
19025   detelecine
19026       Apply an exact inverse of the telecine operation. It requires a
19027       predefined pattern specified using the pattern option which must be the
19028       same as that passed to the telecine filter.
19029
19030       This filter accepts the following options:
19031
19032       first_field
19033           top, t
19034               top field first
19035
19036           bottom, b
19037               bottom field first The default value is "top".
19038
19039       pattern
19040           A string of numbers representing the pulldown pattern you wish to
19041           apply.  The default value is 23.
19042
19043       start_frame
19044           A number representing position of the first frame with respect to
19045           the telecine pattern. This is to be used if the stream is cut. The
19046           default value is 0.
19047
19048   dilation
19049       Apply dilation effect to the video.
19050
19051       This filter replaces the pixel by the local(3x3) maximum.
19052
19053       It accepts the following options:
19054
19055       threshold0
19056       threshold1
19057       threshold2
19058       threshold3
19059           Limit the maximum change for each plane, default is 65535.  If 0,
19060           plane will remain unchanged.
19061
19062       coordinates
19063           Flag which specifies the pixel to refer to. Default is 255 i.e. all
19064           eight pixels are used.
19065
19066           Flags to local 3x3 coordinates maps like this:
19067
19068               1 2 3
19069               4   5
19070               6 7 8
19071
19072       Commands
19073
19074       This filter supports the all above options as commands.
19075
19076   displace
19077       Displace pixels as indicated by second and third input stream.
19078
19079       It takes three input streams and outputs one stream, the first input is
19080       the source, and second and third input are displacement maps.
19081
19082       The second input specifies how much to displace pixels along the
19083       x-axis, while the third input specifies how much to displace pixels
19084       along the y-axis.  If one of displacement map streams terminates, last
19085       frame from that displacement map will be used.
19086
19087       Note that once generated, displacements maps can be reused over and
19088       over again.
19089
19090       A description of the accepted options follows.
19091
19092       edge
19093           Set displace behavior for pixels that are out of range.
19094
19095           Available values are:
19096
19097           blank
19098               Missing pixels are replaced by black pixels.
19099
19100           smear
19101               Adjacent pixels will spread out to replace missing pixels.
19102
19103           wrap
19104               Out of range pixels are wrapped so they point to pixels of
19105               other side.
19106
19107           mirror
19108               Out of range pixels will be replaced with mirrored pixels.
19109
19110           Default is smear.
19111
19112       Examples
19113
19114       •   Add ripple effect to rgb input of video size hd720:
19115
19116                   ffmpeg -i INPUT -f lavfi -i nullsrc=s=hd720,lutrgb=128:128:128 -f lavfi -i nullsrc=s=hd720,geq='r=128+30*sin(2*PI*X/400+T):g=128+30*sin(2*PI*X/400+T):b=128+30*sin(2*PI*X/400+T)' -lavfi '[0][1][2]displace' OUTPUT
19117
19118       •   Add wave effect to rgb input of video size hd720:
19119
19120                   ffmpeg -i INPUT -f lavfi -i nullsrc=hd720,geq='r=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T)):g=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T)):b=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T))' -lavfi '[1]split[x][y],[0][x][y]displace' OUTPUT
19121
19122   dnn_classify
19123       Do classification with deep neural networks based on bounding boxes.
19124
19125       The filter accepts the following options:
19126
19127       dnn_backend
19128           Specify which DNN backend to use for model loading and execution.
19129           This option accepts only openvino now, tensorflow backends will be
19130           added.
19131
19132       model
19133           Set path to model file specifying network architecture and its
19134           parameters.  Note that different backends use different file
19135           formats.
19136
19137       input
19138           Set the input name of the dnn network.
19139
19140       output
19141           Set the output name of the dnn network.
19142
19143       confidence
19144           Set the confidence threshold (default: 0.5).
19145
19146       labels
19147           Set path to label file specifying the mapping between label id and
19148           name.  Each label name is written in one line, tailing spaces and
19149           empty lines are skipped.  The first line is the name of label id 0,
19150           and the second line is the name of label id 1, etc.  The label id
19151           is considered as name if the label file is not provided.
19152
19153       backend_configs
19154           Set the configs to be passed into backend
19155
19156           For tensorflow backend, you can set its configs with sess_config
19157           options, please use tools/python/tf_sess_config.py to get the
19158           configs for your system.
19159
19160   dnn_detect
19161       Do object detection with deep neural networks.
19162
19163       The filter accepts the following options:
19164
19165       dnn_backend
19166           Specify which DNN backend to use for model loading and execution.
19167           This option accepts only openvino now, tensorflow backends will be
19168           added.
19169
19170       model
19171           Set path to model file specifying network architecture and its
19172           parameters.  Note that different backends use different file
19173           formats.
19174
19175       input
19176           Set the input name of the dnn network.
19177
19178       output
19179           Set the output name of the dnn network.
19180
19181       confidence
19182           Set the confidence threshold (default: 0.5).
19183
19184       labels
19185           Set path to label file specifying the mapping between label id and
19186           name.  Each label name is written in one line, tailing spaces and
19187           empty lines are skipped.  The first line is the name of label id 0
19188           (usually it is 'background'), and the second line is the name of
19189           label id 1, etc.  The label id is considered as name if the label
19190           file is not provided.
19191
19192       backend_configs
19193           Set the configs to be passed into backend. To use async execution,
19194           set async (default: set).  Roll back to sync execution if the
19195           backend does not support async.
19196
19197   dnn_processing
19198       Do image processing with deep neural networks. It works together with
19199       another filter which converts the pixel format of the Frame to what the
19200       dnn network requires.
19201
19202       The filter accepts the following options:
19203
19204       dnn_backend
19205           Specify which DNN backend to use for model loading and execution.
19206           This option accepts the following values:
19207
19208           native
19209               Native implementation of DNN loading and execution.
19210
19211           tensorflow
19212               TensorFlow backend. To enable this backend you need to install
19213               the TensorFlow for C library (see
19214               <https://www.tensorflow.org/install/lang_c>) and configure
19215               FFmpeg with "--enable-libtensorflow"
19216
19217           openvino
19218               OpenVINO backend. To enable this backend you need to build and
19219               install the OpenVINO for C library (see
19220               <https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md>)
19221               and configure FFmpeg with "--enable-libopenvino"
19222               (--extra-cflags=-I... --extra-ldflags=-L... might be needed if
19223               the header files and libraries are not installed into system
19224               path)
19225
19226           Default value is native.
19227
19228       model
19229           Set path to model file specifying network architecture and its
19230           parameters.  Note that different backends use different file
19231           formats. TensorFlow, OpenVINO and native backend can load files for
19232           only its format.
19233
19234           Native model file (.model) can be generated from TensorFlow model
19235           file (.pb) by using tools/python/convert.py
19236
19237       input
19238           Set the input name of the dnn network.
19239
19240       output
19241           Set the output name of the dnn network.
19242
19243       backend_configs
19244           Set the configs to be passed into backend. To use async execution,
19245           set async (default: set).  Roll back to sync execution if the
19246           backend does not support async.
19247
19248           For tensorflow backend, you can set its configs with sess_config
19249           options, please use tools/python/tf_sess_config.py to get the
19250           configs of TensorFlow backend for your system.
19251
19252       Examples
19253
19254       •   Remove rain in rgb24 frame with can.pb (see derain filter):
19255
19256                   ./ffmpeg -i rain.jpg -vf format=rgb24,dnn_processing=dnn_backend=tensorflow:model=can.pb:input=x:output=y derain.jpg
19257
19258       •   Halve the pixel value of the frame with format gray32f:
19259
19260                   ffmpeg -i input.jpg -vf format=grayf32,dnn_processing=model=halve_gray_float.model:input=dnn_in:output=dnn_out:dnn_backend=native -y out.native.png
19261
19262       •   Handle the Y channel with srcnn.pb (see sr filter) for frame with
19263           yuv420p (planar YUV formats supported):
19264
19265                   ./ffmpeg -i 480p.jpg -vf format=yuv420p,scale=w=iw*2:h=ih*2,dnn_processing=dnn_backend=tensorflow:model=srcnn.pb:input=x:output=y -y srcnn.jpg
19266
19267       •   Handle the Y channel with espcn.pb (see sr filter), which changes
19268           frame size, for format yuv420p (planar YUV formats supported),
19269           please use tools/python/tf_sess_config.py to get the configs of
19270           TensorFlow backend for your system.
19271
19272                   ./ffmpeg -i 480p.jpg -vf format=yuv420p,dnn_processing=dnn_backend=tensorflow:model=espcn.pb:input=x:output=y:backend_configs=sess_config=0x10022805320e09cdccccccccccec3f20012a01303801 -y tmp.espcn.jpg
19273
19274   drawbox
19275       Draw a colored box on the input image.
19276
19277       It accepts the following parameters:
19278
19279       x
19280       y   The expressions which specify the top left corner coordinates of
19281           the box. It defaults to 0.
19282
19283       width, w
19284       height, h
19285           The expressions which specify the width and height of the box; if 0
19286           they are interpreted as the input width and height. It defaults to
19287           0.
19288
19289       color, c
19290           Specify the color of the box to write. For the general syntax of
19291           this option, check the "Color" section in the ffmpeg-utils manual.
19292           If the special value "invert" is used, the box edge color is the
19293           same as the video with inverted luma.
19294
19295       thickness, t
19296           The expression which sets the thickness of the box edge.  A value
19297           of "fill" will create a filled box. Default value is 3.
19298
19299           See below for the list of accepted constants.
19300
19301       replace
19302           Applicable if the input has alpha. With value 1, the pixels of the
19303           painted box will overwrite the video's color and alpha pixels.
19304           Default is 0, which composites the box onto the input, leaving the
19305           video's alpha intact.
19306
19307       The parameters for x, y, w and h and t are expressions containing the
19308       following constants:
19309
19310       dar The input display aspect ratio, it is the same as (w / h) * sar.
19311
19312       hsub
19313       vsub
19314           horizontal and vertical chroma subsample values. For example for
19315           the pixel format "yuv422p" hsub is 2 and vsub is 1.
19316
19317       in_h, ih
19318       in_w, iw
19319           The input width and height.
19320
19321       sar The input sample aspect ratio.
19322
19323       x
19324       y   The x and y offset coordinates where the box is drawn.
19325
19326       w
19327       h   The width and height of the drawn box.
19328
19329       box_source
19330           Box source can be set as side_data_detection_bboxes if you want to
19331           use box data in detection bboxes of side data.
19332
19333           If box_source is set, the x, y, width and height will be ignored
19334           and still use box data in detection bboxes of side data. So please
19335           do not use this parameter if you were not sure about the box
19336           source.
19337
19338       t   The thickness of the drawn box.
19339
19340           These constants allow the x, y, w, h and t expressions to refer to
19341           each other, so you may for example specify "y=x/dar" or "h=w/dar".
19342
19343       Examples
19344
19345       •   Draw a black box around the edge of the input image:
19346
19347                   drawbox
19348
19349       •   Draw a box with color red and an opacity of 50%:
19350
19351                   drawbox=10:20:200:60:red@0.5
19352
19353           The previous example can be specified as:
19354
19355                   drawbox=x=10:y=20:w=200:h=60:color=red@0.5
19356
19357       •   Fill the box with pink color:
19358
19359                   drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill
19360
19361       •   Draw a 2-pixel red 2.40:1 mask:
19362
19363                   drawbox=x=-t:y=0.5*(ih-iw/2.4)-t:w=iw+t*2:h=iw/2.4+t*2:t=2:c=red
19364
19365       Commands
19366
19367       This filter supports same commands as options.  The command accepts the
19368       same syntax of the corresponding option.
19369
19370       If the specified expression is not valid, it is kept at its current
19371       value.
19372
19373   drawgraph
19374       Draw a graph using input video metadata.
19375
19376       It accepts the following parameters:
19377
19378       m1  Set 1st frame metadata key from which metadata values will be used
19379           to draw a graph.
19380
19381       fg1 Set 1st foreground color expression.
19382
19383       m2  Set 2nd frame metadata key from which metadata values will be used
19384           to draw a graph.
19385
19386       fg2 Set 2nd foreground color expression.
19387
19388       m3  Set 3rd frame metadata key from which metadata values will be used
19389           to draw a graph.
19390
19391       fg3 Set 3rd foreground color expression.
19392
19393       m4  Set 4th frame metadata key from which metadata values will be used
19394           to draw a graph.
19395
19396       fg4 Set 4th foreground color expression.
19397
19398       min Set minimal value of metadata value.
19399
19400       max Set maximal value of metadata value.
19401
19402       bg  Set graph background color. Default is white.
19403
19404       mode
19405           Set graph mode.
19406
19407           Available values for mode is:
19408
19409           bar
19410           dot
19411           line
19412
19413           Default is "line".
19414
19415       slide
19416           Set slide mode.
19417
19418           Available values for slide is:
19419
19420           frame
19421               Draw new frame when right border is reached.
19422
19423           replace
19424               Replace old columns with new ones.
19425
19426           scroll
19427               Scroll from right to left.
19428
19429           rscroll
19430               Scroll from left to right.
19431
19432           picture
19433               Draw single picture.
19434
19435           Default is "frame".
19436
19437       size
19438           Set size of graph video. For the syntax of this option, check the
19439           "Video size" section in the ffmpeg-utils manual.  The default value
19440           is "900x256".
19441
19442       rate, r
19443           Set the output frame rate. Default value is 25.
19444
19445           The foreground color expressions can use the following variables:
19446
19447           MIN Minimal value of metadata value.
19448
19449           MAX Maximal value of metadata value.
19450
19451           VAL Current metadata key value.
19452
19453           The color is defined as 0xAABBGGRR.
19454
19455       Example using metadata from signalstats filter:
19456
19457               signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255
19458
19459       Example using metadata from ebur128 filter:
19460
19461               ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5
19462
19463   drawgrid
19464       Draw a grid on the input image.
19465
19466       It accepts the following parameters:
19467
19468       x
19469       y   The expressions which specify the coordinates of some point of grid
19470           intersection (meant to configure offset). Both default to 0.
19471
19472       width, w
19473       height, h
19474           The expressions which specify the width and height of the grid
19475           cell, if 0 they are interpreted as the input width and height,
19476           respectively, minus "thickness", so image gets framed. Default to
19477           0.
19478
19479       color, c
19480           Specify the color of the grid. For the general syntax of this
19481           option, check the "Color" section in the ffmpeg-utils manual. If
19482           the special value "invert" is used, the grid color is the same as
19483           the video with inverted luma.
19484
19485       thickness, t
19486           The expression which sets the thickness of the grid line. Default
19487           value is 1.
19488
19489           See below for the list of accepted constants.
19490
19491       replace
19492           Applicable if the input has alpha. With 1 the pixels of the painted
19493           grid will overwrite the video's color and alpha pixels.  Default is
19494           0, which composites the grid onto the input, leaving the video's
19495           alpha intact.
19496
19497       The parameters for x, y, w and h and t are expressions containing the
19498       following constants:
19499
19500       dar The input display aspect ratio, it is the same as (w / h) * sar.
19501
19502       hsub
19503       vsub
19504           horizontal and vertical chroma subsample values. For example for
19505           the pixel format "yuv422p" hsub is 2 and vsub is 1.
19506
19507       in_h, ih
19508       in_w, iw
19509           The input grid cell width and height.
19510
19511       sar The input sample aspect ratio.
19512
19513       x
19514       y   The x and y coordinates of some point of grid intersection (meant
19515           to configure offset).
19516
19517       w
19518       h   The width and height of the drawn cell.
19519
19520       t   The thickness of the drawn cell.
19521
19522           These constants allow the x, y, w, h and t expressions to refer to
19523           each other, so you may for example specify "y=x/dar" or "h=w/dar".
19524
19525       Examples
19526
19527       •   Draw a grid with cell 100x100 pixels, thickness 2 pixels, with
19528           color red and an opacity of 50%:
19529
19530                   drawgrid=width=100:height=100:thickness=2:color=red@0.5
19531
19532       •   Draw a white 3x3 grid with an opacity of 50%:
19533
19534                   drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
19535
19536       Commands
19537
19538       This filter supports same commands as options.  The command accepts the
19539       same syntax of the corresponding option.
19540
19541       If the specified expression is not valid, it is kept at its current
19542       value.
19543
19544   drawtext
19545       Draw a text string or text from a specified file on top of a video,
19546       using the libfreetype library.
19547
19548       To enable compilation of this filter, you need to configure FFmpeg with
19549       "--enable-libfreetype".  To enable default font fallback and the font
19550       option you need to configure FFmpeg with "--enable-libfontconfig".  To
19551       enable the text_shaping option, you need to configure FFmpeg with
19552       "--enable-libfribidi".
19553
19554       Syntax
19555
19556       It accepts the following parameters:
19557
19558       box Used to draw a box around text using the background color.  The
19559           value must be either 1 (enable) or 0 (disable).  The default value
19560           of box is 0.
19561
19562       boxborderw
19563           Set the width of the border to be drawn around the box using
19564           boxcolor.  The default value of boxborderw is 0.
19565
19566       boxcolor
19567           The color to be used for drawing box around text. For the syntax of
19568           this option, check the "Color" section in the ffmpeg-utils manual.
19569
19570           The default value of boxcolor is "white".
19571
19572       line_spacing
19573           Set the line spacing in pixels of the border to be drawn around the
19574           box using box.  The default value of line_spacing is 0.
19575
19576       borderw
19577           Set the width of the border to be drawn around the text using
19578           bordercolor.  The default value of borderw is 0.
19579
19580       bordercolor
19581           Set the color to be used for drawing border around text. For the
19582           syntax of this option, check the "Color" section in the ffmpeg-
19583           utils manual.
19584
19585           The default value of bordercolor is "black".
19586
19587       expansion
19588           Select how the text is expanded. Can be either "none", "strftime"
19589           (deprecated) or "normal" (default). See the drawtext_expansion,
19590           Text expansion section below for details.
19591
19592       basetime
19593           Set a start time for the count. Value is in microseconds. Only
19594           applied in the deprecated strftime expansion mode. To emulate in
19595           normal expansion mode use the "pts" function, supplying the start
19596           time (in seconds) as the second argument.
19597
19598       fix_bounds
19599           If true, check and fix text coords to avoid clipping.
19600
19601       fontcolor
19602           The color to be used for drawing fonts. For the syntax of this
19603           option, check the "Color" section in the ffmpeg-utils manual.
19604
19605           The default value of fontcolor is "black".
19606
19607       fontcolor_expr
19608           String which is expanded the same way as text to obtain dynamic
19609           fontcolor value. By default this option has empty value and is not
19610           processed. When this option is set, it overrides fontcolor option.
19611
19612       font
19613           The font family to be used for drawing text. By default Sans.
19614
19615       fontfile
19616           The font file to be used for drawing text. The path must be
19617           included.  This parameter is mandatory if the fontconfig support is
19618           disabled.
19619
19620       alpha
19621           Draw the text applying alpha blending. The value can be a number
19622           between 0.0 and 1.0.  The expression accepts the same variables x,
19623           y as well.  The default value is 1.  Please see fontcolor_expr.
19624
19625       fontsize
19626           The font size to be used for drawing text.  The default value of
19627           fontsize is 16.
19628
19629       text_shaping
19630           If set to 1, attempt to shape the text (for example, reverse the
19631           order of right-to-left text and join Arabic characters) before
19632           drawing it.  Otherwise, just draw the text exactly as given.  By
19633           default 1 (if supported).
19634
19635       ft_load_flags
19636           The flags to be used for loading the fonts.
19637
19638           The flags map the corresponding flags supported by libfreetype, and
19639           are a combination of the following values:
19640
19641           default
19642           no_scale
19643           no_hinting
19644           render
19645           no_bitmap
19646           vertical_layout
19647           force_autohint
19648           crop_bitmap
19649           pedantic
19650           ignore_global_advance_width
19651           no_recurse
19652           ignore_transform
19653           monochrome
19654           linear_design
19655           no_autohint
19656
19657           Default value is "default".
19658
19659           For more information consult the documentation for the FT_LOAD_*
19660           libfreetype flags.
19661
19662       shadowcolor
19663           The color to be used for drawing a shadow behind the drawn text.
19664           For the syntax of this option, check the "Color" section in the
19665           ffmpeg-utils manual.
19666
19667           The default value of shadowcolor is "black".
19668
19669       shadowx
19670       shadowy
19671           The x and y offsets for the text shadow position with respect to
19672           the position of the text. They can be either positive or negative
19673           values. The default value for both is "0".
19674
19675       start_number
19676           The starting frame number for the n/frame_num variable. The default
19677           value is "0".
19678
19679       tabsize
19680           The size in number of spaces to use for rendering the tab.  Default
19681           value is 4.
19682
19683       timecode
19684           Set the initial timecode representation in "hh:mm:ss[:;.]ff"
19685           format. It can be used with or without text parameter.
19686           timecode_rate option must be specified.
19687
19688       timecode_rate, rate, r
19689           Set the timecode frame rate (timecode only). Value will be rounded
19690           to nearest integer. Minimum value is "1".  Drop-frame timecode is
19691           supported for frame rates 30 & 60.
19692
19693       tc24hmax
19694           If set to 1, the output of the timecode option will wrap around at
19695           24 hours.  Default is 0 (disabled).
19696
19697       text
19698           The text string to be drawn. The text must be a sequence of UTF-8
19699           encoded characters.  This parameter is mandatory if no file is
19700           specified with the parameter textfile.
19701
19702       textfile
19703           A text file containing text to be drawn. The text must be a
19704           sequence of UTF-8 encoded characters.
19705
19706           This parameter is mandatory if no text string is specified with the
19707           parameter text.
19708
19709           If both text and textfile are specified, an error is thrown.
19710
19711       text_source
19712           Text source should be set as side_data_detection_bboxes if you want
19713           to use text data in detection bboxes of side data.
19714
19715           If text source is set, text and textfile will be ignored and still
19716           use text data in detection bboxes of side data. So please do not
19717           use this parameter if you are not sure about the text source.
19718
19719       reload
19720           The textfile will be reloaded at specified frame interval.  Be sure
19721           to update textfile atomically, or it may be read partially, or even
19722           fail.  Range is 0 to INT_MAX. Default is 0.
19723
19724       x
19725       y   The expressions which specify the offsets where text will be drawn
19726           within the video frame. They are relative to the top/left border of
19727           the output image.
19728
19729           The default value of x and y is "0".
19730
19731           See below for the list of accepted constants and functions.
19732
19733       The parameters for x and y are expressions containing the following
19734       constants and functions:
19735
19736       dar input display aspect ratio, it is the same as (w / h) * sar
19737
19738       hsub
19739       vsub
19740           horizontal and vertical chroma subsample values. For example for
19741           the pixel format "yuv422p" hsub is 2 and vsub is 1.
19742
19743       line_h, lh
19744           the height of each text line
19745
19746       main_h, h, H
19747           the input height
19748
19749       main_w, w, W
19750           the input width
19751
19752       max_glyph_a, ascent
19753           the maximum distance from the baseline to the highest/upper grid
19754           coordinate used to place a glyph outline point, for all the
19755           rendered glyphs.  It is a positive value, due to the grid's
19756           orientation with the Y axis upwards.
19757
19758       max_glyph_d, descent
19759           the maximum distance from the baseline to the lowest grid
19760           coordinate used to place a glyph outline point, for all the
19761           rendered glyphs.  This is a negative value, due to the grid's
19762           orientation, with the Y axis upwards.
19763
19764       max_glyph_h
19765           maximum glyph height, that is the maximum height for all the glyphs
19766           contained in the rendered text, it is equivalent to ascent -
19767           descent.
19768
19769       max_glyph_w
19770           maximum glyph width, that is the maximum width for all the glyphs
19771           contained in the rendered text
19772
19773       n   the number of input frame, starting from 0
19774
19775       rand(min, max)
19776           return a random number included between min and max
19777
19778       sar The input sample aspect ratio.
19779
19780       t   timestamp expressed in seconds, NAN if the input timestamp is
19781           unknown
19782
19783       text_h, th
19784           the height of the rendered text
19785
19786       text_w, tw
19787           the width of the rendered text
19788
19789       x
19790       y   the x and y offset coordinates where the text is drawn.
19791
19792           These parameters allow the x and y expressions to refer to each
19793           other, so you can for example specify "y=x/dar".
19794
19795       pict_type
19796           A one character description of the current frame's picture type.
19797
19798       pkt_pos
19799           The current packet's position in the input file or stream (in
19800           bytes, from the start of the input). A value of -1 indicates this
19801           info is not available.
19802
19803       pkt_duration
19804           The current packet's duration, in seconds.
19805
19806       pkt_size
19807           The current packet's size (in bytes).
19808
19809       Text expansion
19810
19811       If expansion is set to "strftime", the filter recognizes strftime()
19812       sequences in the provided text and expands them accordingly. Check the
19813       documentation of strftime(). This feature is deprecated.
19814
19815       If expansion is set to "none", the text is printed verbatim.
19816
19817       If expansion is set to "normal" (which is the default), the following
19818       expansion mechanism is used.
19819
19820       The backslash character \, followed by any character, always expands to
19821       the second character.
19822
19823       Sequences of the form "%{...}" are expanded. The text between the
19824       braces is a function name, possibly followed by arguments separated by
19825       ':'.  If the arguments contain special characters or delimiters (':' or
19826       '}'), they should be escaped.
19827
19828       Note that they probably must also be escaped as the value for the text
19829       option in the filter argument string and as the filter argument in the
19830       filtergraph description, and possibly also for the shell, that makes up
19831       to four levels of escaping; using a text file avoids these problems.
19832
19833       The following functions are available:
19834
19835       expr, e
19836           The expression evaluation result.
19837
19838           It must take one argument specifying the expression to be
19839           evaluated, which accepts the same constants and functions as the x
19840           and y values. Note that not all constants should be used, for
19841           example the text size is not known when evaluating the expression,
19842           so the constants text_w and text_h will have an undefined value.
19843
19844       expr_int_format, eif
19845           Evaluate the expression's value and output as formatted integer.
19846
19847           The first argument is the expression to be evaluated, just as for
19848           the expr function.  The second argument specifies the output
19849           format. Allowed values are x, X, d and u. They are treated exactly
19850           as in the "printf" function.  The third parameter is optional and
19851           sets the number of positions taken by the output.  It can be used
19852           to add padding with zeros from the left.
19853
19854       gmtime
19855           The time at which the filter is running, expressed in UTC.  It can
19856           accept an argument: a strftime() format string.  The format string
19857           is extended to support the variable %[1-6]N which prints fractions
19858           of the second with optionally specified number of digits.
19859
19860       localtime
19861           The time at which the filter is running, expressed in the local
19862           time zone.  It can accept an argument: a strftime() format string.
19863           The format string is extended to support the variable %[1-6]N which
19864           prints fractions of the second with optionally specified number of
19865           digits.
19866
19867       metadata
19868           Frame metadata. Takes one or two arguments.
19869
19870           The first argument is mandatory and specifies the metadata key.
19871
19872           The second argument is optional and specifies a default value, used
19873           when the metadata key is not found or empty.
19874
19875           Available metadata can be identified by inspecting entries starting
19876           with TAG included within each frame section printed by running
19877           "ffprobe -show_frames".
19878
19879           String metadata generated in filters leading to the drawtext filter
19880           are also available.
19881
19882       n, frame_num
19883           The frame number, starting from 0.
19884
19885       pict_type
19886           A one character description of the current picture type.
19887
19888       pts The timestamp of the current frame.  It can take up to three
19889           arguments.
19890
19891           The first argument is the format of the timestamp; it defaults to
19892           "flt" for seconds as a decimal number with microsecond accuracy;
19893           "hms" stands for a formatted [-]HH:MM:SS.mmm timestamp with
19894           millisecond accuracy.  "gmtime" stands for the timestamp of the
19895           frame formatted as UTC time; "localtime" stands for the timestamp
19896           of the frame formatted as local time zone time.
19897
19898           The second argument is an offset added to the timestamp.
19899
19900           If the format is set to "hms", a third argument "24HH" may be
19901           supplied to present the hour part of the formatted timestamp in 24h
19902           format (00-23).
19903
19904           If the format is set to "localtime" or "gmtime", a third argument
19905           may be supplied: a strftime() format string.  By default, YYYY-MM-
19906           DD HH:MM:SS format will be used.
19907
19908       Commands
19909
19910       This filter supports altering parameters via commands:
19911
19912       reinit
19913           Alter existing filter parameters.
19914
19915           Syntax for the argument is the same as for filter invocation, e.g.
19916
19917                   fontsize=56:fontcolor=green:text='Hello World'
19918
19919           Full filter invocation with sendcmd would look like this:
19920
19921                   sendcmd=c='56.0 drawtext reinit fontsize=56\:fontcolor=green\:text=Hello\\ World'
19922
19923       If the entire argument can't be parsed or applied as valid values then
19924       the filter will continue with its existing parameters.
19925
19926       Examples
19927
19928       •   Draw "Test Text" with font FreeSerif, using the default values for
19929           the optional parameters.
19930
19931                   drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
19932
19933       •   Draw 'Test Text' with font FreeSerif of size 24 at position x=100
19934           and y=50 (counting from the top-left corner of the screen), text is
19935           yellow with a red box around it. Both the text and the box have an
19936           opacity of 20%.
19937
19938                   drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\
19939                             x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
19940
19941           Note that the double quotes are not necessary if spaces are not
19942           used within the parameter list.
19943
19944       •   Show the text at the center of the video frame:
19945
19946                   drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2"
19947
19948       •   Show the text at a random position, switching to a new position
19949           every 30 seconds:
19950
19951                   drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=if(eq(mod(t\,30)\,0)\,rand(0\,(w-text_w))\,x):y=if(eq(mod(t\,30)\,0)\,rand(0\,(h-text_h))\,y)"
19952
19953       •   Show a text line sliding from right to left in the last row of the
19954           video frame. The file LONG_LINE is assumed to contain a single line
19955           with no newlines.
19956
19957                   drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
19958
19959       •   Show the content of file CREDITS off the bottom of the frame and
19960           scroll up.
19961
19962                   drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
19963
19964       •   Draw a single green letter "g", at the center of the input video.
19965           The glyph baseline is placed at half screen height.
19966
19967                   drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
19968
19969       •   Show text for 1 second every 3 seconds:
19970
19971                   drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
19972
19973       •   Use fontconfig to set the font. Note that the colons need to be
19974           escaped.
19975
19976                   drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
19977
19978       •   Draw "Test Text" with font size dependent on height of the video.
19979
19980                   drawtext="text='Test Text': fontsize=h/30: x=(w-text_w)/2: y=(h-text_h*2)"
19981
19982       •   Print the date of a real-time encoding (see strftime(3)):
19983
19984                   drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}'
19985
19986       •   Show text fading in and out (appearing/disappearing):
19987
19988                   #!/bin/sh
19989                   DS=1.0 # display start
19990                   DE=10.0 # display end
19991                   FID=1.5 # fade in duration
19992                   FOD=5 # fade out duration
19993                   ffplay -f lavfi "color,drawtext=text=TEST:fontsize=50:fontfile=FreeSerif.ttf:fontcolor_expr=ff0000%{eif\\\\: clip(255*(1*between(t\\, $DS + $FID\\, $DE - $FOD) + ((t - $DS)/$FID)*between(t\\, $DS\\, $DS + $FID) + (-(t - $DE)/$FOD)*between(t\\, $DE - $FOD\\, $DE) )\\, 0\\, 255) \\\\: x\\\\: 2 }"
19994
19995       •   Horizontally align multiple separate texts. Note that max_glyph_a
19996           and the fontsize value are included in the y offset.
19997
19998                   drawtext=fontfile=FreeSans.ttf:text=DOG:fontsize=24:x=10:y=20+24-max_glyph_a,
19999                   drawtext=fontfile=FreeSans.ttf:text=cow:fontsize=24:x=80:y=20+24-max_glyph_a
20000
20001       •   Plot special lavf.image2dec.source_basename metadata onto each
20002           frame if such metadata exists. Otherwise, plot the string "NA".
20003           Note that image2 demuxer must have option -export_path_metadata 1
20004           for the special metadata fields to be available for filters.
20005
20006                   drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=10:y=10"
20007
20008       For more information about libfreetype, check:
20009       <http://www.freetype.org/>.
20010
20011       For more information about fontconfig, check:
20012       <http://freedesktop.org/software/fontconfig/fontconfig-user.html>.
20013
20014       For more information about libfribidi, check: <http://fribidi.org/>.
20015
20016   edgedetect
20017       Detect and draw edges. The filter uses the Canny Edge Detection
20018       algorithm.
20019
20020       The filter accepts the following options:
20021
20022       low
20023       high
20024           Set low and high threshold values used by the Canny thresholding
20025           algorithm.
20026
20027           The high threshold selects the "strong" edge pixels, which are then
20028           connected through 8-connectivity with the "weak" edge pixels
20029           selected by the low threshold.
20030
20031           low and high threshold values must be chosen in the range [0,1],
20032           and low should be lesser or equal to high.
20033
20034           Default value for low is "20/255", and default value for high is
20035           "50/255".
20036
20037       mode
20038           Define the drawing mode.
20039
20040           wires
20041               Draw white/gray wires on black background.
20042
20043           colormix
20044               Mix the colors to create a paint/cartoon effect.
20045
20046           canny
20047               Apply Canny edge detector on all selected planes.
20048
20049           Default value is wires.
20050
20051       planes
20052           Select planes for filtering. By default all available planes are
20053           filtered.
20054
20055       Examples
20056
20057       •   Standard edge detection with custom values for the hysteresis
20058           thresholding:
20059
20060                   edgedetect=low=0.1:high=0.4
20061
20062       •   Painting effect without thresholding:
20063
20064                   edgedetect=mode=colormix:high=0
20065
20066   elbg
20067       Apply a posterize effect using the ELBG (Enhanced LBG) algorithm.
20068
20069       For each input image, the filter will compute the optimal mapping from
20070       the input to the output given the codebook length, that is the number
20071       of distinct output colors.
20072
20073       This filter accepts the following options.
20074
20075       codebook_length, l
20076           Set codebook length. The value must be a positive integer, and
20077           represents the number of distinct output colors. Default value is
20078           256.
20079
20080       nb_steps, n
20081           Set the maximum number of iterations to apply for computing the
20082           optimal mapping. The higher the value the better the result and the
20083           higher the computation time. Default value is 1.
20084
20085       seed, s
20086           Set a random seed, must be an integer included between 0 and
20087           UINT32_MAX. If not specified, or if explicitly set to -1, the
20088           filter will try to use a good random seed on a best effort basis.
20089
20090       pal8
20091           Set pal8 output pixel format. This option does not work with
20092           codebook length greater than 256. Default is disabled.
20093
20094       use_alpha
20095           Include alpha values in the quantization calculation. Allows
20096           creating palettized output images (e.g. PNG8) with multiple alpha
20097           smooth blending.
20098
20099   entropy
20100       Measure graylevel entropy in histogram of color channels of video
20101       frames.
20102
20103       It accepts the following parameters:
20104
20105       mode
20106           Can be either normal or diff. Default is normal.
20107
20108           diff mode measures entropy of histogram delta values, absolute
20109           differences between neighbour histogram values.
20110
20111   epx
20112       Apply the EPX magnification filter which is designed for pixel art.
20113
20114       It accepts the following option:
20115
20116       n   Set the scaling dimension: 2 for "2xEPX", 3 for "3xEPX".  Default
20117           is 3.
20118
20119   eq
20120       Set brightness, contrast, saturation and approximate gamma adjustment.
20121
20122       The filter accepts the following options:
20123
20124       contrast
20125           Set the contrast expression. The value must be a float value in
20126           range "-1000.0" to 1000.0. The default value is "1".
20127
20128       brightness
20129           Set the brightness expression. The value must be a float value in
20130           range "-1.0" to 1.0. The default value is "0".
20131
20132       saturation
20133           Set the saturation expression. The value must be a float in range
20134           0.0 to 3.0. The default value is "1".
20135
20136       gamma
20137           Set the gamma expression. The value must be a float in range 0.1 to
20138           10.0.  The default value is "1".
20139
20140       gamma_r
20141           Set the gamma expression for red. The value must be a float in
20142           range 0.1 to 10.0. The default value is "1".
20143
20144       gamma_g
20145           Set the gamma expression for green. The value must be a float in
20146           range 0.1 to 10.0. The default value is "1".
20147
20148       gamma_b
20149           Set the gamma expression for blue. The value must be a float in
20150           range 0.1 to 10.0. The default value is "1".
20151
20152       gamma_weight
20153           Set the gamma weight expression. It can be used to reduce the
20154           effect of a high gamma value on bright image areas, e.g. keep them
20155           from getting overamplified and just plain white. The value must be
20156           a float in range 0.0 to 1.0. A value of 0.0 turns the gamma
20157           correction all the way down while 1.0 leaves it at its full
20158           strength. Default is "1".
20159
20160       eval
20161           Set when the expressions for brightness, contrast, saturation and
20162           gamma expressions are evaluated.
20163
20164           It accepts the following values:
20165
20166           init
20167               only evaluate expressions once during the filter initialization
20168               or when a command is processed
20169
20170           frame
20171               evaluate expressions for each incoming frame
20172
20173           Default value is init.
20174
20175       The expressions accept the following parameters:
20176
20177       n   frame count of the input frame starting from 0
20178
20179       pos byte position of the corresponding packet in the input file, NAN if
20180           unspecified
20181
20182       r   frame rate of the input video, NAN if the input frame rate is
20183           unknown
20184
20185       t   timestamp expressed in seconds, NAN if the input timestamp is
20186           unknown
20187
20188       Commands
20189
20190       The filter supports the following commands:
20191
20192       contrast
20193           Set the contrast expression.
20194
20195       brightness
20196           Set the brightness expression.
20197
20198       saturation
20199           Set the saturation expression.
20200
20201       gamma
20202           Set the gamma expression.
20203
20204       gamma_r
20205           Set the gamma_r expression.
20206
20207       gamma_g
20208           Set gamma_g expression.
20209
20210       gamma_b
20211           Set gamma_b expression.
20212
20213       gamma_weight
20214           Set gamma_weight expression.
20215
20216           The command accepts the same syntax of the corresponding option.
20217
20218           If the specified expression is not valid, it is kept at its current
20219           value.
20220
20221   erosion
20222       Apply erosion effect to the video.
20223
20224       This filter replaces the pixel by the local(3x3) minimum.
20225
20226       It accepts the following options:
20227
20228       threshold0
20229       threshold1
20230       threshold2
20231       threshold3
20232           Limit the maximum change for each plane, default is 65535.  If 0,
20233           plane will remain unchanged.
20234
20235       coordinates
20236           Flag which specifies the pixel to refer to. Default is 255 i.e. all
20237           eight pixels are used.
20238
20239           Flags to local 3x3 coordinates maps like this:
20240
20241               1 2 3
20242               4   5
20243               6 7 8
20244
20245       Commands
20246
20247       This filter supports the all above options as commands.
20248
20249   estdif
20250       Deinterlace the input video ("estdif" stands for "Edge Slope Tracing
20251       Deinterlacing Filter").
20252
20253       Spatial only filter that uses edge slope tracing algorithm to
20254       interpolate missing lines.  It accepts the following parameters:
20255
20256       mode
20257           The interlacing mode to adopt. It accepts one of the following
20258           values:
20259
20260           frame
20261               Output one frame for each frame.
20262
20263           field
20264               Output one frame for each field.
20265
20266           The default value is "field".
20267
20268       parity
20269           The picture field parity assumed for the input interlaced video. It
20270           accepts one of the following values:
20271
20272           tff Assume the top field is first.
20273
20274           bff Assume the bottom field is first.
20275
20276           auto
20277               Enable automatic detection of field parity.
20278
20279           The default value is "auto".  If the interlacing is unknown or the
20280           decoder does not export this information, top field first will be
20281           assumed.
20282
20283       deint
20284           Specify which frames to deinterlace. Accepts one of the following
20285           values:
20286
20287           all Deinterlace all frames.
20288
20289           interlaced
20290               Only deinterlace frames marked as interlaced.
20291
20292           The default value is "all".
20293
20294       rslope
20295           Specify the search radius for edge slope tracing. Default value is
20296           1.  Allowed range is from 1 to 15.
20297
20298       redge
20299           Specify the search radius for best edge matching. Default value is
20300           2.  Allowed range is from 0 to 15.
20301
20302       ecost
20303           Specify the edge cost for edge matching. Default value is 1.0.
20304           Allowed range is from 0 to 9.
20305
20306       mcost
20307           Specify the middle cost for edge matching. Default value is 0.5.
20308           Allowed range is from 0 to 1.
20309
20310       dcost
20311           Specify the distance cost for edge matching. Default value is 0.5.
20312           Allowed range is from 0 to 1.
20313
20314       interp
20315           Specify the interpolation used. Default is 4-point interpolation.
20316           It accepts one of the following values:
20317
20318           2p  Two-point interpolation.
20319
20320           4p  Four-point interpolation.
20321
20322           6p  Six-point interpolation.
20323
20324       Commands
20325
20326       This filter supports same commands as options.
20327
20328   exposure
20329       Adjust exposure of the video stream.
20330
20331       The filter accepts the following options:
20332
20333       exposure
20334           Set the exposure correction in EV. Allowed range is from -3.0 to
20335           3.0 EV Default value is 0 EV.
20336
20337       black
20338           Set the black level correction. Allowed range is from -1.0 to 1.0.
20339           Default value is 0.
20340
20341       Commands
20342
20343       This filter supports same commands as options.
20344
20345   extractplanes
20346       Extract color channel components from input video stream into separate
20347       grayscale video streams.
20348
20349       The filter accepts the following option:
20350
20351       planes
20352           Set plane(s) to extract.
20353
20354           Available values for planes are:
20355
20356           y
20357           u
20358           v
20359           a
20360           r
20361           g
20362           b
20363
20364           Choosing planes not available in the input will result in an error.
20365           That means you cannot select "r", "g", "b" planes with "y", "u",
20366           "v" planes at same time.
20367
20368       Examples
20369
20370       •   Extract luma, u and v color channel component from input video
20371           frame into 3 grayscale outputs:
20372
20373                   ffmpeg -i video.avi -filter_complex 'extractplanes=y+u+v[y][u][v]' -map '[y]' y.avi -map '[u]' u.avi -map '[v]' v.avi
20374
20375   fade
20376       Apply a fade-in/out effect to the input video.
20377
20378       It accepts the following parameters:
20379
20380       type, t
20381           The effect type can be either "in" for a fade-in, or "out" for a
20382           fade-out effect.  Default is "in".
20383
20384       start_frame, s
20385           Specify the number of the frame to start applying the fade effect
20386           at. Default is 0.
20387
20388       nb_frames, n
20389           The number of frames that the fade effect lasts. At the end of the
20390           fade-in effect, the output video will have the same intensity as
20391           the input video.  At the end of the fade-out transition, the output
20392           video will be filled with the selected color.  Default is 25.
20393
20394       alpha
20395           If set to 1, fade only alpha channel, if one exists on the input.
20396           Default value is 0.
20397
20398       start_time, st
20399           Specify the timestamp (in seconds) of the frame to start to apply
20400           the fade effect. If both start_frame and start_time are specified,
20401           the fade will start at whichever comes last.  Default is 0.
20402
20403       duration, d
20404           The number of seconds for which the fade effect has to last. At the
20405           end of the fade-in effect the output video will have the same
20406           intensity as the input video, at the end of the fade-out transition
20407           the output video will be filled with the selected color.  If both
20408           duration and nb_frames are specified, duration is used. Default is
20409           0 (nb_frames is used by default).
20410
20411       color, c
20412           Specify the color of the fade. Default is "black".
20413
20414       Examples
20415
20416       •   Fade in the first 30 frames of video:
20417
20418                   fade=in:0:30
20419
20420           The command above is equivalent to:
20421
20422                   fade=t=in:s=0:n=30
20423
20424       •   Fade out the last 45 frames of a 200-frame video:
20425
20426                   fade=out:155:45
20427                   fade=type=out:start_frame=155:nb_frames=45
20428
20429       •   Fade in the first 25 frames and fade out the last 25 frames of a
20430           1000-frame video:
20431
20432                   fade=in:0:25, fade=out:975:25
20433
20434       •   Make the first 5 frames yellow, then fade in from frame 5-24:
20435
20436                   fade=in:5:20:color=yellow
20437
20438       •   Fade in alpha over first 25 frames of video:
20439
20440                   fade=in:0:25:alpha=1
20441
20442       •   Make the first 5.5 seconds black, then fade in for 0.5 seconds:
20443
20444                   fade=t=in:st=5.5:d=0.5
20445
20446   feedback
20447       Apply feedback video filter.
20448
20449       This filter pass cropped input frames to 2nd output.  From there it can
20450       be filtered with other video filters.  After filter receives frame from
20451       2nd input, that frame is combined on top of original frame from 1st
20452       input and passed to 1st output.
20453
20454       The typical usage is filter only part of frame.
20455
20456       The filter accepts the following options:
20457
20458       x
20459       y   Set the top left crop position.
20460
20461       w
20462       h   Set the crop size.
20463
20464       Examples
20465
20466       •   Blur only top left rectangular part of video frame size 100x100
20467           with gblur filter.
20468
20469                   [in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]gblur=8[blurin]
20470
20471       •   Draw black box on top left part of video frame of size 100x100 with
20472           drawbox filter.
20473
20474                   [in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]drawbox=x=0:y=0:w=100:h=100:t=100[blurin]
20475
20476   fftdnoiz
20477       Denoise frames using 3D FFT (frequency domain filtering).
20478
20479       The filter accepts the following options:
20480
20481       sigma
20482           Set the noise sigma constant. This sets denoising strength.
20483           Default value is 1. Allowed range is from 0 to 30.  Using very high
20484           sigma with low overlap may give blocking artifacts.
20485
20486       amount
20487           Set amount of denoising. By default all detected noise is reduced.
20488           Default value is 1. Allowed range is from 0 to 1.
20489
20490       block
20491           Set size of block in pixels, Default is 32, can be 8 to 256.
20492
20493       overlap
20494           Set block overlap. Default is 0.5. Allowed range is from 0.2 to
20495           0.8.
20496
20497       method
20498           Set denoising method. Default is "wiener", can also be "hard".
20499
20500       prev
20501           Set number of previous frames to use for denoising. By default is
20502           set to 0.
20503
20504       next
20505           Set number of next frames to to use for denoising. By default is
20506           set to 0.
20507
20508       planes
20509           Set planes which will be filtered, by default are all available
20510           filtered except alpha.
20511
20512   fftfilt
20513       Apply arbitrary expressions to samples in frequency domain
20514
20515       dc_Y
20516           Adjust the dc value (gain) of the luma plane of the image. The
20517           filter accepts an integer value in range 0 to 1000. The default
20518           value is set to 0.
20519
20520       dc_U
20521           Adjust the dc value (gain) of the 1st chroma plane of the image.
20522           The filter accepts an integer value in range 0 to 1000. The default
20523           value is set to 0.
20524
20525       dc_V
20526           Adjust the dc value (gain) of the 2nd chroma plane of the image.
20527           The filter accepts an integer value in range 0 to 1000. The default
20528           value is set to 0.
20529
20530       weight_Y
20531           Set the frequency domain weight expression for the luma plane.
20532
20533       weight_U
20534           Set the frequency domain weight expression for the 1st chroma
20535           plane.
20536
20537       weight_V
20538           Set the frequency domain weight expression for the 2nd chroma
20539           plane.
20540
20541       eval
20542           Set when the expressions are evaluated.
20543
20544           It accepts the following values:
20545
20546           init
20547               Only evaluate expressions once during the filter
20548               initialization.
20549
20550           frame
20551               Evaluate expressions for each incoming frame.
20552
20553           Default value is init.
20554
20555           The filter accepts the following variables:
20556
20557       X
20558       Y   The coordinates of the current sample.
20559
20560       W
20561       H   The width and height of the image.
20562
20563       N   The number of input frame, starting from 0.
20564
20565       WS
20566       HS  The size of FFT array for horizontal and vertical processing.
20567
20568       Examples
20569
20570       •   High-pass:
20571
20572                   fftfilt=dc_Y=128:weight_Y='squish(1-(Y+X)/100)'
20573
20574       •   Low-pass:
20575
20576                   fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)'
20577
20578       •   Sharpen:
20579
20580                   fftfilt=dc_Y=0:weight_Y='1+squish(1-(Y+X)/100)'
20581
20582       •   Blur:
20583
20584                   fftfilt=dc_Y=0:weight_Y='exp(-4 * ((Y+X)/(W+H)))'
20585
20586   field
20587       Extract a single field from an interlaced image using stride arithmetic
20588       to avoid wasting CPU time. The output frames are marked as non-
20589       interlaced.
20590
20591       The filter accepts the following options:
20592
20593       type
20594           Specify whether to extract the top (if the value is 0 or "top") or
20595           the bottom field (if the value is 1 or "bottom").
20596
20597   fieldhint
20598       Create new frames by copying the top and bottom fields from surrounding
20599       frames supplied as numbers by the hint file.
20600
20601       hint
20602           Set file containing hints: absolute/relative frame numbers.
20603
20604           There must be one line for each frame in a clip. Each line must
20605           contain two numbers separated by the comma, optionally followed by
20606           "-" or "+".  Numbers supplied on each line of file can not be out
20607           of [N-1,N+1] where N is current frame number for "absolute" mode or
20608           out of [-1, 1] range for "relative" mode. First number tells from
20609           which frame to pick up top field and second number tells from which
20610           frame to pick up bottom field.
20611
20612           If optionally followed by "+" output frame will be marked as
20613           interlaced, else if followed by "-" output frame will be marked as
20614           progressive, else it will be marked same as input frame.  If
20615           optionally followed by "t" output frame will use only top field, or
20616           in case of "b" it will use only bottom field.  If line starts with
20617           "#" or ";" that line is skipped.
20618
20619       mode
20620           Can be item "absolute" or "relative" or "pattern". Default is
20621           "absolute".  The "pattern" mode is same as "relative" mode, except
20622           at last entry of file if there are more frames to process than
20623           "hint" file is seek back to start.
20624
20625       Example of first several lines of "hint" file for "relative" mode:
20626
20627               0,0 - # first frame
20628               1,0 - # second frame, use third's frame top field and second's frame bottom field
20629               1,0 - # third frame, use fourth's frame top field and third's frame bottom field
20630               1,0 -
20631               0,0 -
20632               0,0 -
20633               1,0 -
20634               1,0 -
20635               1,0 -
20636               0,0 -
20637               0,0 -
20638               1,0 -
20639               1,0 -
20640               1,0 -
20641               0,0 -
20642
20643   fieldmatch
20644       Field matching filter for inverse telecine. It is meant to reconstruct
20645       the progressive frames from a telecined stream. The filter does not
20646       drop duplicated frames, so to achieve a complete inverse telecine
20647       "fieldmatch" needs to be followed by a decimation filter such as
20648       decimate in the filtergraph.
20649
20650       The separation of the field matching and the decimation is notably
20651       motivated by the possibility of inserting a de-interlacing filter
20652       fallback between the two.  If the source has mixed telecined and real
20653       interlaced content, "fieldmatch" will not be able to match fields for
20654       the interlaced parts.  But these remaining combed frames will be marked
20655       as interlaced, and thus can be de-interlaced by a later filter such as
20656       yadif before decimation.
20657
20658       In addition to the various configuration options, "fieldmatch" can take
20659       an optional second stream, activated through the ppsrc option. If
20660       enabled, the frames reconstruction will be based on the fields and
20661       frames from this second stream. This allows the first input to be pre-
20662       processed in order to help the various algorithms of the filter, while
20663       keeping the output lossless (assuming the fields are matched properly).
20664       Typically, a field-aware denoiser, or brightness/contrast adjustments
20665       can help.
20666
20667       Note that this filter uses the same algorithms as TIVTC/TFM (AviSynth
20668       project) and VIVTC/VFM (VapourSynth project). The later is a light
20669       clone of TFM from which "fieldmatch" is based on. While the semantic
20670       and usage are very close, some behaviour and options names can differ.
20671
20672       The decimate filter currently only works for constant frame rate input.
20673       If your input has mixed telecined (30fps) and progressive content with
20674       a lower framerate like 24fps use the following filterchain to produce
20675       the necessary cfr stream:
20676       "dejudder,fps=30000/1001,fieldmatch,decimate".
20677
20678       The filter accepts the following options:
20679
20680       order
20681           Specify the assumed field order of the input stream. Available
20682           values are:
20683
20684           auto
20685               Auto detect parity (use FFmpeg's internal parity value).
20686
20687           bff Assume bottom field first.
20688
20689           tff Assume top field first.
20690
20691           Note that it is sometimes recommended not to trust the parity
20692           announced by the stream.
20693
20694           Default value is auto.
20695
20696       mode
20697           Set the matching mode or strategy to use. pc mode is the safest in
20698           the sense that it won't risk creating jerkiness due to duplicate
20699           frames when possible, but if there are bad edits or blended fields
20700           it will end up outputting combed frames when a good match might
20701           actually exist. On the other hand, pcn_ub mode is the most risky in
20702           terms of creating jerkiness, but will almost always find a good
20703           frame if there is one. The other values are all somewhere in
20704           between pc and pcn_ub in terms of risking jerkiness and creating
20705           duplicate frames versus finding good matches in sections with bad
20706           edits, orphaned fields, blended fields, etc.
20707
20708           More details about p/c/n/u/b are available in p/c/n/u/b meaning
20709           section.
20710
20711           Available values are:
20712
20713           pc  2-way matching (p/c)
20714
20715           pc_n
20716               2-way matching, and trying 3rd match if still combed (p/c + n)
20717
20718           pc_u
20719               2-way matching, and trying 3rd match (same order) if still
20720               combed (p/c + u)
20721
20722           pc_n_ub
20723               2-way matching, trying 3rd match if still combed, and trying
20724               4th/5th matches if still combed (p/c + n + u/b)
20725
20726           pcn 3-way matching (p/c/n)
20727
20728           pcn_ub
20729               3-way matching, and trying 4th/5th matches if all 3 of the
20730               original matches are detected as combed (p/c/n + u/b)
20731
20732           The parenthesis at the end indicate the matches that would be used
20733           for that mode assuming order=tff (and field on auto or top).
20734
20735           In terms of speed pc mode is by far the fastest and pcn_ub is the
20736           slowest.
20737
20738           Default value is pc_n.
20739
20740       ppsrc
20741           Mark the main input stream as a pre-processed input, and enable the
20742           secondary input stream as the clean source to pick the fields from.
20743           See the filter introduction for more details. It is similar to the
20744           clip2 feature from VFM/TFM.
20745
20746           Default value is 0 (disabled).
20747
20748       field
20749           Set the field to match from. It is recommended to set this to the
20750           same value as order unless you experience matching failures with
20751           that setting. In certain circumstances changing the field that is
20752           used to match from can have a large impact on matching performance.
20753           Available values are:
20754
20755           auto
20756               Automatic (same value as order).
20757
20758           bottom
20759               Match from the bottom field.
20760
20761           top Match from the top field.
20762
20763           Default value is auto.
20764
20765       mchroma
20766           Set whether or not chroma is included during the match comparisons.
20767           In most cases it is recommended to leave this enabled. You should
20768           set this to 0 only if your clip has bad chroma problems such as
20769           heavy rainbowing or other artifacts. Setting this to 0 could also
20770           be used to speed things up at the cost of some accuracy.
20771
20772           Default value is 1.
20773
20774       y0
20775       y1  These define an exclusion band which excludes the lines between y0
20776           and y1 from being included in the field matching decision. An
20777           exclusion band can be used to ignore subtitles, a logo, or other
20778           things that may interfere with the matching. y0 sets the starting
20779           scan line and y1 sets the ending line; all lines in between y0 and
20780           y1 (including y0 and y1) will be ignored. Setting y0 and y1 to the
20781           same value will disable the feature.  y0 and y1 defaults to 0.
20782
20783       scthresh
20784           Set the scene change detection threshold as a percentage of maximum
20785           change on the luma plane. Good values are in the "[8.0, 14.0]"
20786           range. Scene change detection is only relevant in case
20787           combmatch=sc.  The range for scthresh is "[0.0, 100.0]".
20788
20789           Default value is 12.0.
20790
20791       combmatch
20792           When combatch is not none, "fieldmatch" will take into account the
20793           combed scores of matches when deciding what match to use as the
20794           final match. Available values are:
20795
20796           none
20797               No final matching based on combed scores.
20798
20799           sc  Combed scores are only used when a scene change is detected.
20800
20801           full
20802               Use combed scores all the time.
20803
20804           Default is sc.
20805
20806       combdbg
20807           Force "fieldmatch" to calculate the combed metrics for certain
20808           matches and print them. This setting is known as micout in TFM/VFM
20809           vocabulary.  Available values are:
20810
20811           none
20812               No forced calculation.
20813
20814           pcn Force p/c/n calculations.
20815
20816           pcnub
20817               Force p/c/n/u/b calculations.
20818
20819           Default value is none.
20820
20821       cthresh
20822           This is the area combing threshold used for combed frame detection.
20823           This essentially controls how "strong" or "visible" combing must be
20824           to be detected.  Larger values mean combing must be more visible
20825           and smaller values mean combing can be less visible or strong and
20826           still be detected. Valid settings are from "-1" (every pixel will
20827           be detected as combed) to 255 (no pixel will be detected as
20828           combed). This is basically a pixel difference value. A good range
20829           is "[8, 12]".
20830
20831           Default value is 9.
20832
20833       chroma
20834           Sets whether or not chroma is considered in the combed frame
20835           decision.  Only disable this if your source has chroma problems
20836           (rainbowing, etc.) that are causing problems for the combed frame
20837           detection with chroma enabled. Actually, using chroma=0 is usually
20838           more reliable, except for the case where there is chroma only
20839           combing in the source.
20840
20841           Default value is 0.
20842
20843       blockx
20844       blocky
20845           Respectively set the x-axis and y-axis size of the window used
20846           during combed frame detection. This has to do with the size of the
20847           area in which combpel pixels are required to be detected as combed
20848           for a frame to be declared combed. See the combpel parameter
20849           description for more info.  Possible values are any number that is
20850           a power of 2 starting at 4 and going up to 512.
20851
20852           Default value is 16.
20853
20854       combpel
20855           The number of combed pixels inside any of the blocky by blockx size
20856           blocks on the frame for the frame to be detected as combed. While
20857           cthresh controls how "visible" the combing must be, this setting
20858           controls "how much" combing there must be in any localized area (a
20859           window defined by the blockx and blocky settings) on the frame.
20860           Minimum value is 0 and maximum is "blocky x blockx" (at which point
20861           no frames will ever be detected as combed). This setting is known
20862           as MI in TFM/VFM vocabulary.
20863
20864           Default value is 80.
20865
20866       p/c/n/u/b meaning
20867
20868       p/c/n
20869
20870       We assume the following telecined stream:
20871
20872               Top fields:     1 2 2 3 4
20873               Bottom fields:  1 2 3 4 4
20874
20875       The numbers correspond to the progressive frame the fields relate to.
20876       Here, the first two frames are progressive, the 3rd and 4th are combed,
20877       and so on.
20878
20879       When "fieldmatch" is configured to run a matching from bottom
20880       (field=bottom) this is how this input stream get transformed:
20881
20882               Input stream:
20883                               T     1 2 2 3 4
20884                               B     1 2 3 4 4   <-- matching reference
20885
20886               Matches:              c c n n c
20887
20888               Output stream:
20889                               T     1 2 3 4 4
20890                               B     1 2 3 4 4
20891
20892       As a result of the field matching, we can see that some frames get
20893       duplicated.  To perform a complete inverse telecine, you need to rely
20894       on a decimation filter after this operation. See for instance the
20895       decimate filter.
20896
20897       The same operation now matching from top fields (field=top) looks like
20898       this:
20899
20900               Input stream:
20901                               T     1 2 2 3 4   <-- matching reference
20902                               B     1 2 3 4 4
20903
20904               Matches:              c c p p c
20905
20906               Output stream:
20907                               T     1 2 2 3 4
20908                               B     1 2 2 3 4
20909
20910       In these examples, we can see what p, c and n mean; basically, they
20911       refer to the frame and field of the opposite parity:
20912
20913       *<p matches the field of the opposite parity in the previous frame>
20914       *<c matches the field of the opposite parity in the current frame>
20915       *<n matches the field of the opposite parity in the next frame>
20916
20917       u/b
20918
20919       The u and b matching are a bit special in the sense that they match
20920       from the opposite parity flag. In the following examples, we assume
20921       that we are currently matching the 2nd frame (Top:2, bottom:2).
20922       According to the match, a 'x' is placed above and below each matched
20923       fields.
20924
20925       With bottom matching (field=bottom):
20926
20927               Match:           c         p           n          b          u
20928
20929                                x       x               x        x          x
20930                 Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
20931                 Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
20932                                x         x           x        x              x
20933
20934               Output frames:
20935                                2          1          2          2          2
20936                                2          2          2          1          3
20937
20938       With top matching (field=top):
20939
20940               Match:           c         p           n          b          u
20941
20942                                x         x           x        x              x
20943                 Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
20944                 Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
20945                                x       x               x        x          x
20946
20947               Output frames:
20948                                2          2          2          1          2
20949                                2          1          3          2          2
20950
20951       Examples
20952
20953       Simple IVTC of a top field first telecined stream:
20954
20955               fieldmatch=order=tff:combmatch=none, decimate
20956
20957       Advanced IVTC, with fallback on yadif for still combed frames:
20958
20959               fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
20960
20961   fieldorder
20962       Transform the field order of the input video.
20963
20964       It accepts the following parameters:
20965
20966       order
20967           The output field order. Valid values are tff for top field first or
20968           bff for bottom field first.
20969
20970       The default value is tff.
20971
20972       The transformation is done by shifting the picture content up or down
20973       by one line, and filling the remaining line with appropriate picture
20974       content.  This method is consistent with most broadcast field order
20975       converters.
20976
20977       If the input video is not flagged as being interlaced, or it is already
20978       flagged as being of the required output field order, then this filter
20979       does not alter the incoming video.
20980
20981       It is very useful when converting to or from PAL DV material, which is
20982       bottom field first.
20983
20984       For example:
20985
20986               ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
20987
20988   fifo, afifo
20989       Buffer input images and send them when they are requested.
20990
20991       It is mainly useful when auto-inserted by the libavfilter framework.
20992
20993       It does not take parameters.
20994
20995   fillborders
20996       Fill borders of the input video, without changing video stream
20997       dimensions.  Sometimes video can have garbage at the four edges and you
20998       may not want to crop video input to keep size multiple of some number.
20999
21000       This filter accepts the following options:
21001
21002       left
21003           Number of pixels to fill from left border.
21004
21005       right
21006           Number of pixels to fill from right border.
21007
21008       top Number of pixels to fill from top border.
21009
21010       bottom
21011           Number of pixels to fill from bottom border.
21012
21013       mode
21014           Set fill mode.
21015
21016           It accepts the following values:
21017
21018           smear
21019               fill pixels using outermost pixels
21020
21021           mirror
21022               fill pixels using mirroring (half sample symmetric)
21023
21024           fixed
21025               fill pixels with constant value
21026
21027           reflect
21028               fill pixels using reflecting (whole sample symmetric)
21029
21030           wrap
21031               fill pixels using wrapping
21032
21033           fade
21034               fade pixels to constant value
21035
21036           margins
21037               fill pixels at top and bottom with weighted averages pixels
21038               near borders
21039
21040           Default is smear.
21041
21042       color
21043           Set color for pixels in fixed or fade mode. Default is black.
21044
21045       Commands
21046
21047       This filter supports same commands as options.  The command accepts the
21048       same syntax of the corresponding option.
21049
21050       If the specified expression is not valid, it is kept at its current
21051       value.
21052
21053   find_rect
21054       Find a rectangular object
21055
21056       It accepts the following options:
21057
21058       object
21059           Filepath of the object image, needs to be in gray8.
21060
21061       threshold
21062           Detection threshold, default is 0.5.
21063
21064       mipmaps
21065           Number of mipmaps, default is 3.
21066
21067       xmin, ymin, xmax, ymax
21068           Specifies the rectangle in which to search.
21069
21070       discard
21071           Discard frames where object is not detected. Default is disabled.
21072
21073       Examples
21074
21075       •   Cover a rectangular object by the supplied image of a given video
21076           using ffmpeg:
21077
21078                   ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
21079
21080   floodfill
21081       Flood area with values of same pixel components with another values.
21082
21083       It accepts the following options:
21084
21085       x   Set pixel x coordinate.
21086
21087       y   Set pixel y coordinate.
21088
21089       s0  Set source #0 component value.
21090
21091       s1  Set source #1 component value.
21092
21093       s2  Set source #2 component value.
21094
21095       s3  Set source #3 component value.
21096
21097       d0  Set destination #0 component value.
21098
21099       d1  Set destination #1 component value.
21100
21101       d2  Set destination #2 component value.
21102
21103       d3  Set destination #3 component value.
21104
21105   format
21106       Convert the input video to one of the specified pixel formats.
21107       Libavfilter will try to pick one that is suitable as input to the next
21108       filter.
21109
21110       It accepts the following parameters:
21111
21112       pix_fmts
21113           A '|'-separated list of pixel format names, such as
21114           "pix_fmts=yuv420p|monow|rgb24".
21115
21116       Examples
21117
21118       •   Convert the input video to the yuv420p format
21119
21120                   format=pix_fmts=yuv420p
21121
21122           Convert the input video to any of the formats in the list
21123
21124                   format=pix_fmts=yuv420p|yuv444p|yuv410p
21125
21126   fps
21127       Convert the video to specified constant frame rate by duplicating or
21128       dropping frames as necessary.
21129
21130       It accepts the following parameters:
21131
21132       fps The desired output frame rate. It accepts expressions containing
21133           the following constants:
21134
21135           source_fps
21136               The input's frame rate
21137
21138           ntsc
21139               NTSC frame rate of "30000/1001"
21140
21141           pal PAL frame rate of 25.0
21142
21143           film
21144               Film frame rate of 24.0
21145
21146           ntsc_film
21147               NTSC-film frame rate of "24000/1001"
21148
21149           The default is 25.
21150
21151       start_time
21152           Assume the first PTS should be the given value, in seconds. This
21153           allows for padding/trimming at the start of stream. By default, no
21154           assumption is made about the first frame's expected PTS, so no
21155           padding or trimming is done.  For example, this could be set to 0
21156           to pad the beginning with duplicates of the first frame if a video
21157           stream starts after the audio stream or to trim any frames with a
21158           negative PTS.
21159
21160       round
21161           Timestamp (PTS) rounding method.
21162
21163           Possible values are:
21164
21165           zero
21166               round towards 0
21167
21168           inf round away from 0
21169
21170           down
21171               round towards -infinity
21172
21173           up  round towards +infinity
21174
21175           near
21176               round to nearest
21177
21178           The default is "near".
21179
21180       eof_action
21181           Action performed when reading the last frame.
21182
21183           Possible values are:
21184
21185           round
21186               Use same timestamp rounding method as used for other frames.
21187
21188           pass
21189               Pass through last frame if input duration has not been reached
21190               yet.
21191
21192           The default is "round".
21193
21194       Alternatively, the options can be specified as a flat string:
21195       fps[:start_time[:round]].
21196
21197       See also the setpts filter.
21198
21199       Examples
21200
21201       •   A typical usage in order to set the fps to 25:
21202
21203                   fps=fps=25
21204
21205       •   Sets the fps to 24, using abbreviation and rounding method to round
21206           to nearest:
21207
21208                   fps=fps=film:round=near
21209
21210   framepack
21211       Pack two different video streams into a stereoscopic video, setting
21212       proper metadata on supported codecs. The two views should have the same
21213       size and framerate and processing will stop when the shorter video
21214       ends. Please note that you may conveniently adjust view properties with
21215       the scale and fps filters.
21216
21217       It accepts the following parameters:
21218
21219       format
21220           The desired packing format. Supported values are:
21221
21222           sbs The views are next to each other (default).
21223
21224           tab The views are on top of each other.
21225
21226           lines
21227               The views are packed by line.
21228
21229           columns
21230               The views are packed by column.
21231
21232           frameseq
21233               The views are temporally interleaved.
21234
21235       Some examples:
21236
21237               # Convert left and right views into a frame-sequential video
21238               ffmpeg -i LEFT -i RIGHT -filter_complex framepack=frameseq OUTPUT
21239
21240               # Convert views into a side-by-side video with the same output resolution as the input
21241               ffmpeg -i LEFT -i RIGHT -filter_complex [0:v]scale=w=iw/2[left],[1:v]scale=w=iw/2[right],[left][right]framepack=sbs OUTPUT
21242
21243   framerate
21244       Change the frame rate by interpolating new video output frames from the
21245       source frames.
21246
21247       This filter is not designed to function correctly with interlaced
21248       media. If you wish to change the frame rate of interlaced media then
21249       you are required to deinterlace before this filter and re-interlace
21250       after this filter.
21251
21252       A description of the accepted options follows.
21253
21254       fps Specify the output frames per second. This option can also be
21255           specified as a value alone. The default is 50.
21256
21257       interp_start
21258           Specify the start of a range where the output frame will be created
21259           as a linear interpolation of two frames. The range is [0-255], the
21260           default is 15.
21261
21262       interp_end
21263           Specify the end of a range where the output frame will be created
21264           as a linear interpolation of two frames. The range is [0-255], the
21265           default is 240.
21266
21267       scene
21268           Specify the level at which a scene change is detected as a value
21269           between 0 and 100 to indicate a new scene; a low value reflects a
21270           low probability for the current frame to introduce a new scene,
21271           while a higher value means the current frame is more likely to be
21272           one.  The default is 8.2.
21273
21274       flags
21275           Specify flags influencing the filter process.
21276
21277           Available value for flags is:
21278
21279           scene_change_detect, scd
21280               Enable scene change detection using the value of the option
21281               scene.  This flag is enabled by default.
21282
21283   framestep
21284       Select one frame every N-th frame.
21285
21286       This filter accepts the following option:
21287
21288       step
21289           Select frame after every "step" frames.  Allowed values are
21290           positive integers higher than 0. Default value is 1.
21291
21292   freezedetect
21293       Detect frozen video.
21294
21295       This filter logs a message and sets frame metadata when it detects that
21296       the input video has no significant change in content during a specified
21297       duration.  Video freeze detection calculates the mean average absolute
21298       difference of all the components of video frames and compares it to a
21299       noise floor.
21300
21301       The printed times and duration are expressed in seconds. The
21302       "lavfi.freezedetect.freeze_start" metadata key is set on the first
21303       frame whose timestamp equals or exceeds the detection duration and it
21304       contains the timestamp of the first frame of the freeze. The
21305       "lavfi.freezedetect.freeze_duration" and
21306       "lavfi.freezedetect.freeze_end" metadata keys are set on the first
21307       frame after the freeze.
21308
21309       The filter accepts the following options:
21310
21311       noise, n
21312           Set noise tolerance. Can be specified in dB (in case "dB" is
21313           appended to the specified value) or as a difference ratio between 0
21314           and 1. Default is -60dB, or 0.001.
21315
21316       duration, d
21317           Set freeze duration until notification (default is 2 seconds).
21318
21319   freezeframes
21320       Freeze video frames.
21321
21322       This filter freezes video frames using frame from 2nd input.
21323
21324       The filter accepts the following options:
21325
21326       first
21327           Set number of first frame from which to start freeze.
21328
21329       last
21330           Set number of last frame from which to end freeze.
21331
21332       replace
21333           Set number of frame from 2nd input which will be used instead of
21334           replaced frames.
21335
21336   frei0r
21337       Apply a frei0r effect to the input video.
21338
21339       To enable the compilation of this filter, you need to install the
21340       frei0r header and configure FFmpeg with "--enable-frei0r".
21341
21342       It accepts the following parameters:
21343
21344       filter_name
21345           The name of the frei0r effect to load. If the environment variable
21346           FREI0R_PATH is defined, the frei0r effect is searched for in each
21347           of the directories specified by the colon-separated list in
21348           FREI0R_PATH.  Otherwise, the standard frei0r paths are searched, in
21349           this order: HOME/.frei0r-1/lib/, /usr/local/lib/frei0r-1/,
21350           /usr/lib/frei0r-1/.
21351
21352       filter_params
21353           A '|'-separated list of parameters to pass to the frei0r effect.
21354
21355       A frei0r effect parameter can be a boolean (its value is either "y" or
21356       "n"), a double, a color (specified as R/G/B, where R, G, and B are
21357       floating point numbers between 0.0 and 1.0, inclusive) or a color
21358       description as specified in the "Color" section in the ffmpeg-utils
21359       manual, a position (specified as X/Y, where X and Y are floating point
21360       numbers) and/or a string.
21361
21362       The number and types of parameters depend on the loaded effect. If an
21363       effect parameter is not specified, the default value is set.
21364
21365       Examples
21366
21367       •   Apply the distort0r effect, setting the first two double
21368           parameters:
21369
21370                   frei0r=filter_name=distort0r:filter_params=0.5|0.01
21371
21372       •   Apply the colordistance effect, taking a color as the first
21373           parameter:
21374
21375                   frei0r=colordistance:0.2/0.3/0.4
21376                   frei0r=colordistance:violet
21377                   frei0r=colordistance:0x112233
21378
21379       •   Apply the perspective effect, specifying the top left and top right
21380           image positions:
21381
21382                   frei0r=perspective:0.2/0.2|0.8/0.2
21383
21384       For more information, see <http://frei0r.dyne.org>
21385
21386       Commands
21387
21388       This filter supports the filter_params option as commands.
21389
21390   fspp
21391       Apply fast and simple postprocessing. It is a faster version of spp.
21392
21393       It splits (I)DCT into horizontal/vertical passes. Unlike the simple
21394       post- processing filter, one of them is performed once per block, not
21395       per pixel.  This allows for much higher speed.
21396
21397       The filter accepts the following options:
21398
21399       quality
21400           Set quality. This option defines the number of levels for
21401           averaging. It accepts an integer in the range 4-5. Default value is
21402           4.
21403
21404       qp  Force a constant quantization parameter. It accepts an integer in
21405           range 0-63.  If not set, the filter will use the QP from the video
21406           stream (if available).
21407
21408       strength
21409           Set filter strength. It accepts an integer in range -15 to 32.
21410           Lower values mean more details but also more artifacts, while
21411           higher values make the image smoother but also blurrier. Default
21412           value is 0 X PSNR optimal.
21413
21414       use_bframe_qp
21415           Enable the use of the QP from the B-Frames if set to 1. Using this
21416           option may cause flicker since the B-Frames have often larger QP.
21417           Default is 0 (not enabled).
21418
21419   gblur
21420       Apply Gaussian blur filter.
21421
21422       The filter accepts the following options:
21423
21424       sigma
21425           Set horizontal sigma, standard deviation of Gaussian blur. Default
21426           is 0.5.
21427
21428       steps
21429           Set number of steps for Gaussian approximation. Default is 1.
21430
21431       planes
21432           Set which planes to filter. By default all planes are filtered.
21433
21434       sigmaV
21435           Set vertical sigma, if negative it will be same as "sigma".
21436           Default is "-1".
21437
21438       Commands
21439
21440       This filter supports same commands as options.  The command accepts the
21441       same syntax of the corresponding option.
21442
21443       If the specified expression is not valid, it is kept at its current
21444       value.
21445
21446   geq
21447       Apply generic equation to each pixel.
21448
21449       The filter accepts the following options:
21450
21451       lum_expr, lum
21452           Set the luminance expression.
21453
21454       cb_expr, cb
21455           Set the chrominance blue expression.
21456
21457       cr_expr, cr
21458           Set the chrominance red expression.
21459
21460       alpha_expr, a
21461           Set the alpha expression.
21462
21463       red_expr, r
21464           Set the red expression.
21465
21466       green_expr, g
21467           Set the green expression.
21468
21469       blue_expr, b
21470           Set the blue expression.
21471
21472       The colorspace is selected according to the specified options. If one
21473       of the lum_expr, cb_expr, or cr_expr options is specified, the filter
21474       will automatically select a YCbCr colorspace. If one of the red_expr,
21475       green_expr, or blue_expr options is specified, it will select an RGB
21476       colorspace.
21477
21478       If one of the chrominance expression is not defined, it falls back on
21479       the other one. If no alpha expression is specified it will evaluate to
21480       opaque value.  If none of chrominance expressions are specified, they
21481       will evaluate to the luminance expression.
21482
21483       The expressions can use the following variables and functions:
21484
21485       N   The sequential number of the filtered frame, starting from 0.
21486
21487       X
21488       Y   The coordinates of the current sample.
21489
21490       W
21491       H   The width and height of the image.
21492
21493       SW
21494       SH  Width and height scale depending on the currently filtered plane.
21495           It is the ratio between the corresponding luma plane number of
21496           pixels and the current plane ones. E.g. for YUV4:2:0 the values are
21497           "1,1" for the luma plane, and "0.5,0.5" for chroma planes.
21498
21499       T   Time of the current frame, expressed in seconds.
21500
21501       p(x, y)
21502           Return the value of the pixel at location (x,y) of the current
21503           plane.
21504
21505       lum(x, y)
21506           Return the value of the pixel at location (x,y) of the luminance
21507           plane.
21508
21509       cb(x, y)
21510           Return the value of the pixel at location (x,y) of the blue-
21511           difference chroma plane. Return 0 if there is no such plane.
21512
21513       cr(x, y)
21514           Return the value of the pixel at location (x,y) of the red-
21515           difference chroma plane. Return 0 if there is no such plane.
21516
21517       r(x, y)
21518       g(x, y)
21519       b(x, y)
21520           Return the value of the pixel at location (x,y) of the
21521           red/green/blue component. Return 0 if there is no such component.
21522
21523       alpha(x, y)
21524           Return the value of the pixel at location (x,y) of the alpha plane.
21525           Return 0 if there is no such plane.
21526
21527       psum(x,y), lumsum(x, y), cbsum(x,y), crsum(x,y), rsum(x,y), gsum(x,y),
21528       bsum(x,y), alphasum(x,y)
21529           Sum of sample values in the rectangle from (0,0) to (x,y), this
21530           allows obtaining sums of samples within a rectangle. See the
21531           functions without the sum postfix.
21532
21533       interpolation
21534           Set one of interpolation methods:
21535
21536           nearest, n
21537           bilinear, b
21538
21539           Default is bilinear.
21540
21541       For functions, if x and y are outside the area, the value will be
21542       automatically clipped to the closer edge.
21543
21544       Please note that this filter can use multiple threads in which case
21545       each slice will have its own expression state. If you want to use only
21546       a single expression state because your expressions depend on previous
21547       state then you should limit the number of filter threads to 1.
21548
21549       Examples
21550
21551       •   Flip the image horizontally:
21552
21553                   geq=p(W-X\,Y)
21554
21555       •   Generate a bidimensional sine wave, with angle "PI/3" and a
21556           wavelength of 100 pixels:
21557
21558                   geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
21559
21560       •   Generate a fancy enigmatic moving light:
21561
21562                   nullsrc=s=256x256,geq=random(1)/hypot(X-cos(N*0.07)*W/2-W/2\,Y-sin(N*0.09)*H/2-H/2)^2*1000000*sin(N*0.02):128:128
21563
21564       •   Generate a quick emboss effect:
21565
21566                   format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
21567
21568       •   Modify RGB components depending on pixel position:
21569
21570                   geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
21571
21572       •   Create a radial gradient that is the same size as the input (also
21573           see the vignette filter):
21574
21575                   geq=lum=255*gauss((X/W-0.5)*3)*gauss((Y/H-0.5)*3)/gauss(0)/gauss(0),format=gray
21576
21577   gradfun
21578       Fix the banding artifacts that are sometimes introduced into nearly
21579       flat regions by truncation to 8-bit color depth.  Interpolate the
21580       gradients that should go where the bands are, and dither them.
21581
21582       It is designed for playback only.  Do not use it prior to lossy
21583       compression, because compression tends to lose the dither and bring
21584       back the bands.
21585
21586       It accepts the following parameters:
21587
21588       strength
21589           The maximum amount by which the filter will change any one pixel.
21590           This is also the threshold for detecting nearly flat regions.
21591           Acceptable values range from .51 to 64; the default value is 1.2.
21592           Out-of-range values will be clipped to the valid range.
21593
21594       radius
21595           The neighborhood to fit the gradient to. A larger radius makes for
21596           smoother gradients, but also prevents the filter from modifying the
21597           pixels near detailed regions. Acceptable values are 8-32; the
21598           default value is 16. Out-of-range values will be clipped to the
21599           valid range.
21600
21601       Alternatively, the options can be specified as a flat string:
21602       strength[:radius]
21603
21604       Examples
21605
21606       •   Apply the filter with a 3.5 strength and radius of 8:
21607
21608                   gradfun=3.5:8
21609
21610       •   Specify radius, omitting the strength (which will fall-back to the
21611           default value):
21612
21613                   gradfun=radius=8
21614
21615   graphmonitor
21616       Show various filtergraph stats.
21617
21618       With this filter one can debug complete filtergraph.  Especially issues
21619       with links filling with queued frames.
21620
21621       The filter accepts the following options:
21622
21623       size, s
21624           Set video output size. Default is hd720.
21625
21626       opacity, o
21627           Set video opacity. Default is 0.9. Allowed range is from 0 to 1.
21628
21629       mode, m
21630           Set output mode, can be fulll or compact.  In compact mode only
21631           filters with some queued frames have displayed stats.
21632
21633       flags, f
21634           Set flags which enable which stats are shown in video.
21635
21636           Available values for flags are:
21637
21638           queue
21639               Display number of queued frames in each link.
21640
21641           frame_count_in
21642               Display number of frames taken from filter.
21643
21644           frame_count_out
21645               Display number of frames given out from filter.
21646
21647           frame_count_delta
21648               Display delta number of frames between above two values.
21649
21650           pts Display current filtered frame pts.
21651
21652           pts_delta
21653               Display pts delta between current and previous frame.
21654
21655           time
21656               Display current filtered frame time.
21657
21658           time_delta
21659               Display time delta between current and previous frame.
21660
21661           timebase
21662               Display time base for filter link.
21663
21664           format
21665               Display used format for filter link.
21666
21667           size
21668               Display video size or number of audio channels in case of audio
21669               used by filter link.
21670
21671           rate
21672               Display video frame rate or sample rate in case of audio used
21673               by filter link.
21674
21675           eof Display link output status.
21676
21677           sample_count_in
21678               Display number of samples taken from filter.
21679
21680           sample_count_out
21681               Display number of samples given out from filter.
21682
21683           sample_count_delta
21684               Display delta number of samples between above two values.
21685
21686       rate, r
21687           Set upper limit for video rate of output stream, Default value is
21688           25.  This guarantee that output video frame rate will not be higher
21689           than this value.
21690
21691   grayworld
21692       A color constancy filter that applies color correction based on the
21693       grayworld assumption
21694
21695       See:
21696       <https://www.researchgate.net/publication/275213614_A_New_Color_Correction_Method_for_Underwater_Imaging>
21697
21698       The algorithm  uses linear light, so input data should be linearized
21699       beforehand (and possibly correctly tagged).
21700
21701               ffmpeg -i INPUT -vf zscale=transfer=linear,grayworld,zscale=transfer=bt709,format=yuv420p OUTPUT
21702
21703   greyedge
21704       A color constancy variation filter which estimates scene illumination
21705       via grey edge algorithm and corrects the scene colors accordingly.
21706
21707       See: <https://staff.science.uva.nl/th.gevers/pub/GeversTIP07.pdf>
21708
21709       The filter accepts the following options:
21710
21711       difford
21712           The order of differentiation to be applied on the scene. Must be
21713           chosen in the range [0,2] and default value is 1.
21714
21715       minknorm
21716           The Minkowski parameter to be used for calculating the Minkowski
21717           distance. Must be chosen in the range [0,20] and default value is
21718           1. Set to 0 for getting max value instead of calculating Minkowski
21719           distance.
21720
21721       sigma
21722           The standard deviation of Gaussian blur to be applied on the scene.
21723           Must be chosen in the range [0,1024.0] and default value = 1.
21724           floor( sigma * break_off_sigma(3) ) can't be equal to 0 if difford
21725           is greater than 0.
21726
21727       Examples
21728
21729       •   Grey Edge:
21730
21731                   greyedge=difford=1:minknorm=5:sigma=2
21732
21733       •   Max Edge:
21734
21735                   greyedge=difford=1:minknorm=0:sigma=2
21736
21737   guided
21738       Apply guided filter for edge-preserving smoothing, dehazing and so on.
21739
21740       The filter accepts the following options:
21741
21742       radius
21743           Set the box radius in pixels.  Allowed range is 1 to 20. Default is
21744           3.
21745
21746       eps Set regularization parameter (with square).  Allowed range is 0 to
21747           1. Default is 0.01.
21748
21749       mode
21750           Set filter mode. Can be "basic" or "fast".  Default is "basic".
21751
21752       sub Set subsampling ratio for "fast" mode.  Range is 2 to 64. Default
21753           is 4.  No subsampling occurs in "basic" mode.
21754
21755       guidance
21756           Set guidance mode. Can be "off" or "on". Default is "off".  If
21757           "off", single input is required.  If "on", two inputs of the same
21758           resolution and pixel format are required.  The second input serves
21759           as the guidance.
21760
21761       planes
21762           Set planes to filter. Default is first only.
21763
21764       Commands
21765
21766       This filter supports the all above options as commands.
21767
21768       Examples
21769
21770       •   Edge-preserving smoothing with guided filter:
21771
21772                   ffmpeg -i in.png -vf guided out.png
21773
21774       •   Dehazing, structure-transferring filtering, detail enhancement with
21775           guided filter.  For the generation of guidance image, refer to
21776           paper "Guided Image Filtering".  See:
21777           <http://kaiminghe.com/publications/pami12guidedfilter.pdf>.
21778
21779                   ffmpeg -i in.png -i guidance.png -filter_complex guided=guidance=on out.png
21780
21781   haldclut
21782       Apply a Hald CLUT to a video stream.
21783
21784       First input is the video stream to process, and second one is the Hald
21785       CLUT.  The Hald CLUT input can be a simple picture or a complete video
21786       stream.
21787
21788       The filter accepts the following options:
21789
21790       clut
21791           Set which CLUT video frames will be processed from second input
21792           stream, can be first or all. Default is all.
21793
21794       shortest
21795           Force termination when the shortest input terminates. Default is 0.
21796
21797       repeatlast
21798           Continue applying the last CLUT after the end of the stream. A
21799           value of 0 disable the filter after the last frame of the CLUT is
21800           reached.  Default is 1.
21801
21802       "haldclut" also has the same interpolation options as lut3d (both
21803       filters share the same internals).
21804
21805       This filter also supports the framesync options.
21806
21807       More information about the Hald CLUT can be found on Eskil Steenberg's
21808       website (Hald CLUT author) at
21809       <http://www.quelsolaar.com/technology/clut.html>.
21810
21811       Commands
21812
21813       This filter supports the "interp" option as commands.
21814
21815       Workflow examples
21816
21817       Hald CLUT video stream
21818
21819       Generate an identity Hald CLUT stream altered with various effects:
21820
21821               ffmpeg -f lavfi -i B<haldclutsrc>=8 -vf "hue=H=2*PI*t:s=sin(2*PI*t)+1, curves=cross_process" -t 10 -c:v ffv1 clut.nut
21822
21823       Note: make sure you use a lossless codec.
21824
21825       Then use it with "haldclut" to apply it on some random stream:
21826
21827               ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
21828
21829       The Hald CLUT will be applied to the 10 first seconds (duration of
21830       clut.nut), then the latest picture of that CLUT stream will be applied
21831       to the remaining frames of the "mandelbrot" stream.
21832
21833       Hald CLUT with preview
21834
21835       A Hald CLUT is supposed to be a squared image of "Level*Level*Level" by
21836       "Level*Level*Level" pixels. For a given Hald CLUT, FFmpeg will select
21837       the biggest possible square starting at the top left of the picture.
21838       The remaining padding pixels (bottom or right) will be ignored. This
21839       area can be used to add a preview of the Hald CLUT.
21840
21841       Typically, the following generated Hald CLUT will be supported by the
21842       "haldclut" filter:
21843
21844               ffmpeg -f lavfi -i B<haldclutsrc>=8 -vf "
21845                  pad=iw+320 [padded_clut];
21846                  smptebars=s=320x256, split [a][b];
21847                  [padded_clut][a] overlay=W-320:h, curves=color_negative [main];
21848                  [main][b] overlay=W-320" -frames:v 1 clut.png
21849
21850       It contains the original and a preview of the effect of the CLUT: SMPTE
21851       color bars are displayed on the right-top, and below the same color
21852       bars processed by the color changes.
21853
21854       Then, the effect of this Hald CLUT can be visualized with:
21855
21856               ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
21857
21858   hflip
21859       Flip the input video horizontally.
21860
21861       For example, to horizontally flip the input video with ffmpeg:
21862
21863               ffmpeg -i in.avi -vf "hflip" out.avi
21864
21865   histeq
21866       This filter applies a global color histogram equalization on a per-
21867       frame basis.
21868
21869       It can be used to correct video that has a compressed range of pixel
21870       intensities.  The filter redistributes the pixel intensities to
21871       equalize their distribution across the intensity range. It may be
21872       viewed as an "automatically adjusting contrast filter". This filter is
21873       useful only for correcting degraded or poorly captured source video.
21874
21875       The filter accepts the following options:
21876
21877       strength
21878           Determine the amount of equalization to be applied.  As the
21879           strength is reduced, the distribution of pixel intensities more-
21880           and-more approaches that of the input frame. The value must be a
21881           float number in the range [0,1] and defaults to 0.200.
21882
21883       intensity
21884           Set the maximum intensity that can generated and scale the output
21885           values appropriately.  The strength should be set as desired and
21886           then the intensity can be limited if needed to avoid washing-out.
21887           The value must be a float number in the range [0,1] and defaults to
21888           0.210.
21889
21890       antibanding
21891           Set the antibanding level. If enabled the filter will randomly vary
21892           the luminance of output pixels by a small amount to avoid banding
21893           of the histogram. Possible values are "none", "weak" or "strong".
21894           It defaults to "none".
21895
21896   histogram
21897       Compute and draw a color distribution histogram for the input video.
21898
21899       The computed histogram is a representation of the color component
21900       distribution in an image.
21901
21902       Standard histogram displays the color components distribution in an
21903       image.  Displays color graph for each color component. Shows
21904       distribution of the Y, U, V, A or R, G, B components, depending on
21905       input format, in the current frame. Below each graph a color component
21906       scale meter is shown.
21907
21908       The filter accepts the following options:
21909
21910       level_height
21911           Set height of level. Default value is 200.  Allowed range is [50,
21912           2048].
21913
21914       scale_height
21915           Set height of color scale. Default value is 12.  Allowed range is
21916           [0, 40].
21917
21918       display_mode
21919           Set display mode.  It accepts the following values:
21920
21921           stack
21922               Per color component graphs are placed below each other.
21923
21924           parade
21925               Per color component graphs are placed side by side.
21926
21927           overlay
21928               Presents information identical to that in the "parade", except
21929               that the graphs representing color components are superimposed
21930               directly over one another.
21931
21932           Default is "stack".
21933
21934       levels_mode
21935           Set mode. Can be either "linear", or "logarithmic".  Default is
21936           "linear".
21937
21938       components
21939           Set what color components to display.  Default is 7.
21940
21941       fgopacity
21942           Set foreground opacity. Default is 0.7.
21943
21944       bgopacity
21945           Set background opacity. Default is 0.5.
21946
21947       colors_mode
21948           Set colors mode.  It accepts the following values:
21949
21950           whiteonblack
21951           blackonwhite
21952           whiteongray
21953           blackongray
21954           coloronblack
21955           coloronwhite
21956           colorongray
21957           blackoncolor
21958           whiteoncolor
21959           grayoncolor
21960
21961           Default is "whiteonblack".
21962
21963       Examples
21964
21965       •   Calculate and draw histogram:
21966
21967                   ffplay -i input -vf histogram
21968
21969   hqdn3d
21970       This is a high precision/quality 3d denoise filter. It aims to reduce
21971       image noise, producing smooth images and making still images really
21972       still. It should enhance compressibility.
21973
21974       It accepts the following optional parameters:
21975
21976       luma_spatial
21977           A non-negative floating point number which specifies spatial luma
21978           strength.  It defaults to 4.0.
21979
21980       chroma_spatial
21981           A non-negative floating point number which specifies spatial chroma
21982           strength.  It defaults to 3.0*luma_spatial/4.0.
21983
21984       luma_tmp
21985           A floating point number which specifies luma temporal strength. It
21986           defaults to 6.0*luma_spatial/4.0.
21987
21988       chroma_tmp
21989           A floating point number which specifies chroma temporal strength.
21990           It defaults to luma_tmp*chroma_spatial/luma_spatial.
21991
21992       Commands
21993
21994       This filter supports same commands as options.  The command accepts the
21995       same syntax of the corresponding option.
21996
21997       If the specified expression is not valid, it is kept at its current
21998       value.
21999
22000   hwdownload
22001       Download hardware frames to system memory.
22002
22003       The input must be in hardware frames, and the output a non-hardware
22004       format.  Not all formats will be supported on the output - it may be
22005       necessary to insert an additional format filter immediately following
22006       in the graph to get the output in a supported format.
22007
22008   hwmap
22009       Map hardware frames to system memory or to another device.
22010
22011       This filter has several different modes of operation; which one is used
22012       depends on the input and output formats:
22013
22014       •   Hardware frame input, normal frame output
22015
22016           Map the input frames to system memory and pass them to the output.
22017           If the original hardware frame is later required (for example,
22018           after overlaying something else on part of it), the hwmap filter
22019           can be used again in the next mode to retrieve it.
22020
22021       •   Normal frame input, hardware frame output
22022
22023           If the input is actually a software-mapped hardware frame, then
22024           unmap it - that is, return the original hardware frame.
22025
22026           Otherwise, a device must be provided.  Create new hardware surfaces
22027           on that device for the output, then map them back to the software
22028           format at the input and give those frames to the preceding filter.
22029           This will then act like the hwupload filter, but may be able to
22030           avoid an additional copy when the input is already in a compatible
22031           format.
22032
22033       •   Hardware frame input and output
22034
22035           A device must be supplied for the output, either directly or with
22036           the derive_device option.  The input and output devices must be of
22037           different types and compatible - the exact meaning of this is
22038           system-dependent, but typically it means that they must refer to
22039           the same underlying hardware context (for example, refer to the
22040           same graphics card).
22041
22042           If the input frames were originally created on the output device,
22043           then unmap to retrieve the original frames.
22044
22045           Otherwise, map the frames to the output device - create new
22046           hardware frames on the output corresponding to the frames on the
22047           input.
22048
22049       The following additional parameters are accepted:
22050
22051       mode
22052           Set the frame mapping mode.  Some combination of:
22053
22054           read
22055               The mapped frame should be readable.
22056
22057           write
22058               The mapped frame should be writeable.
22059
22060           overwrite
22061               The mapping will always overwrite the entire frame.
22062
22063               This may improve performance in some cases, as the original
22064               contents of the frame need not be loaded.
22065
22066           direct
22067               The mapping must not involve any copying.
22068
22069               Indirect mappings to copies of frames are created in some cases
22070               where either direct mapping is not possible or it would have
22071               unexpected properties.  Setting this flag ensures that the
22072               mapping is direct and will fail if that is not possible.
22073
22074           Defaults to read+write if not specified.
22075
22076       derive_device type
22077           Rather than using the device supplied at initialisation, instead
22078           derive a new device of type type from the device the input frames
22079           exist on.
22080
22081       reverse
22082           In a hardware to hardware mapping, map in reverse - create frames
22083           in the sink and map them back to the source.  This may be necessary
22084           in some cases where a mapping in one direction is required but only
22085           the opposite direction is supported by the devices being used.
22086
22087           This option is dangerous - it may break the preceding filter in
22088           undefined ways if there are any additional constraints on that
22089           filter's output.  Do not use it without fully understanding the
22090           implications of its use.
22091
22092   hwupload
22093       Upload system memory frames to hardware surfaces.
22094
22095       The device to upload to must be supplied when the filter is
22096       initialised.  If using ffmpeg, select the appropriate device with the
22097       -filter_hw_device option or with the derive_device option.  The input
22098       and output devices must be of different types and compatible - the
22099       exact meaning of this is system-dependent, but typically it means that
22100       they must refer to the same underlying hardware context (for example,
22101       refer to the same graphics card).
22102
22103       The following additional parameters are accepted:
22104
22105       derive_device type
22106           Rather than using the device supplied at initialisation, instead
22107           derive a new device of type type from the device the input frames
22108           exist on.
22109
22110   hwupload_cuda
22111       Upload system memory frames to a CUDA device.
22112
22113       It accepts the following optional parameters:
22114
22115       device
22116           The number of the CUDA device to use
22117
22118   hqx
22119       Apply a high-quality magnification filter designed for pixel art. This
22120       filter was originally created by Maxim Stepin.
22121
22122       It accepts the following option:
22123
22124       n   Set the scaling dimension: 2 for "hq2x", 3 for "hq3x" and 4 for
22125           "hq4x".  Default is 3.
22126
22127   hstack
22128       Stack input videos horizontally.
22129
22130       All streams must be of same pixel format and of same height.
22131
22132       Note that this filter is faster than using overlay and pad filter to
22133       create same output.
22134
22135       The filter accepts the following option:
22136
22137       inputs
22138           Set number of input streams. Default is 2.
22139
22140       shortest
22141           If set to 1, force the output to terminate when the shortest input
22142           terminates. Default value is 0.
22143
22144   hsvhold
22145       Turns a certain HSV range into gray values.
22146
22147       This filter measures color difference between set HSV color in options
22148       and ones measured in video stream. Depending on options, output colors
22149       can be changed to be gray or not.
22150
22151       The filter accepts the following options:
22152
22153       hue Set the hue value which will be used in color difference
22154           calculation.  Allowed range is from -360 to 360. Default value is
22155           0.
22156
22157       sat Set the saturation value which will be used in color difference
22158           calculation.  Allowed range is from -1 to 1. Default value is 0.
22159
22160       val Set the value which will be used in color difference calculation.
22161           Allowed range is from -1 to 1. Default value is 0.
22162
22163       similarity
22164           Set similarity percentage with the key color.  Allowed range is
22165           from 0 to 1. Default value is 0.01.
22166
22167           0.00001 matches only the exact key color, while 1.0 matches
22168           everything.
22169
22170       blend
22171           Blend percentage.  Allowed range is from 0 to 1. Default value is
22172           0.
22173
22174           0.0 makes pixels either fully gray, or not gray at all.
22175
22176           Higher values result in more gray pixels, with a higher gray pixel
22177           the more similar the pixels color is to the key color.
22178
22179   hsvkey
22180       Turns a certain HSV range into transparency.
22181
22182       This filter measures color difference between set HSV color in options
22183       and ones measured in video stream. Depending on options, output colors
22184       can be changed to transparent by adding alpha channel.
22185
22186       The filter accepts the following options:
22187
22188       hue Set the hue value which will be used in color difference
22189           calculation.  Allowed range is from -360 to 360. Default value is
22190           0.
22191
22192       sat Set the saturation value which will be used in color difference
22193           calculation.  Allowed range is from -1 to 1. Default value is 0.
22194
22195       val Set the value which will be used in color difference calculation.
22196           Allowed range is from -1 to 1. Default value is 0.
22197
22198       similarity
22199           Set similarity percentage with the key color.  Allowed range is
22200           from 0 to 1. Default value is 0.01.
22201
22202           0.00001 matches only the exact key color, while 1.0 matches
22203           everything.
22204
22205       blend
22206           Blend percentage.  Allowed range is from 0 to 1. Default value is
22207           0.
22208
22209           0.0 makes pixels either fully transparent, or not transparent at
22210           all.
22211
22212           Higher values result in semi-transparent pixels, with a higher
22213           transparency the more similar the pixels color is to the key color.
22214
22215   hue
22216       Modify the hue and/or the saturation of the input.
22217
22218       It accepts the following parameters:
22219
22220       h   Specify the hue angle as a number of degrees. It accepts an
22221           expression, and defaults to "0".
22222
22223       s   Specify the saturation in the [-10,10] range. It accepts an
22224           expression and defaults to "1".
22225
22226       H   Specify the hue angle as a number of radians. It accepts an
22227           expression, and defaults to "0".
22228
22229       b   Specify the brightness in the [-10,10] range. It accepts an
22230           expression and defaults to "0".
22231
22232       h and H are mutually exclusive, and can't be specified at the same
22233       time.
22234
22235       The b, h, H and s option values are expressions containing the
22236       following constants:
22237
22238       n   frame count of the input frame starting from 0
22239
22240       pts presentation timestamp of the input frame expressed in time base
22241           units
22242
22243       r   frame rate of the input video, NAN if the input frame rate is
22244           unknown
22245
22246       t   timestamp expressed in seconds, NAN if the input timestamp is
22247           unknown
22248
22249       tb  time base of the input video
22250
22251       Examples
22252
22253       •   Set the hue to 90 degrees and the saturation to 1.0:
22254
22255                   hue=h=90:s=1
22256
22257       •   Same command but expressing the hue in radians:
22258
22259                   hue=H=PI/2:s=1
22260
22261       •   Rotate hue and make the saturation swing between 0 and 2 over a
22262           period of 1 second:
22263
22264                   hue="H=2*PI*t: s=sin(2*PI*t)+1"
22265
22266       •   Apply a 3 seconds saturation fade-in effect starting at 0:
22267
22268                   hue="s=min(t/3\,1)"
22269
22270           The general fade-in expression can be written as:
22271
22272                   hue="s=min(0\, max((t-START)/DURATION\, 1))"
22273
22274       •   Apply a 3 seconds saturation fade-out effect starting at 5 seconds:
22275
22276                   hue="s=max(0\, min(1\, (8-t)/3))"
22277
22278           The general fade-out expression can be written as:
22279
22280                   hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
22281
22282       Commands
22283
22284       This filter supports the following commands:
22285
22286       b
22287       s
22288       h
22289       H   Modify the hue and/or the saturation and/or brightness of the input
22290           video.  The command accepts the same syntax of the corresponding
22291           option.
22292
22293           If the specified expression is not valid, it is kept at its current
22294           value.
22295
22296   huesaturation
22297       Apply hue-saturation-intensity adjustments to input video stream.
22298
22299       This filter operates in RGB colorspace.
22300
22301       This filter accepts the following options:
22302
22303       hue Set the hue shift in degrees to apply. Default is 0.  Allowed range
22304           is from -180 to 180.
22305
22306       saturation
22307           Set the saturation shift. Default is 0.  Allowed range is from -1
22308           to 1.
22309
22310       intensity
22311           Set the intensity shift. Default is 0.  Allowed range is from -1 to
22312           1.
22313
22314       colors
22315           Set which primary and complementary colors are going to be
22316           adjusted.  This options is set by providing one or multiple values.
22317           This can select multiple colors at once. By default all colors are
22318           selected.
22319
22320           r   Adjust reds.
22321
22322           y   Adjust yellows.
22323
22324           g   Adjust greens.
22325
22326           c   Adjust cyans.
22327
22328           b   Adjust blues.
22329
22330           m   Adjust magentas.
22331
22332           a   Adjust all colors.
22333
22334       strength
22335           Set strength of filtering. Allowed range is from 0 to 100.  Default
22336           value is 1.
22337
22338       rw, gw, bw
22339           Set weight for each RGB component. Allowed range is from 0 to 1.
22340           By default is set to 0.333, 0.334, 0.333.  Those options are used
22341           in saturation and lightess processing.
22342
22343       lightness
22344           Set preserving lightness, by default is disabled.  Adjusting hues
22345           can change lightness from original RGB triplet, with this option
22346           enabled lightness is kept at same value.
22347
22348   hysteresis
22349       Grow first stream into second stream by connecting components.  This
22350       makes it possible to build more robust edge masks.
22351
22352       This filter accepts the following options:
22353
22354       planes
22355           Set which planes will be processed as bitmap, unprocessed planes
22356           will be copied from first stream.  By default value 0xf, all planes
22357           will be processed.
22358
22359       threshold
22360           Set threshold which is used in filtering. If pixel component value
22361           is higher than this value filter algorithm for connecting
22362           components is activated.  By default value is 0.
22363
22364       The "hysteresis" filter also supports the framesync options.
22365
22366   iccdetect
22367       Detect the colorspace  from an embedded ICC profile (if present), and
22368       update the frame's tags accordingly.
22369
22370       This filter accepts the following options:
22371
22372       force
22373           If true, the frame's existing colorspace tags will always be
22374           overridden by values detected from an ICC profile. Otherwise, they
22375           will only be assigned if they contain "unknown". Enabled by
22376           default.
22377
22378   iccgen
22379       Generate ICC profiles and attach them to frames.
22380
22381       This filter accepts the following options:
22382
22383       color_primaries
22384       color_trc
22385           Configure the colorspace that the ICC profile will be generated
22386           for. The default value of "auto" infers the value from the input
22387           frame's metadata, defaulting to BT.709/sRGB as appropriate.
22388
22389           See the setparams filter for a list of possible values, but note
22390           that "unknown" are not valid values for this filter.
22391
22392       force
22393           If true, an ICC profile will be generated even if it would
22394           overwrite an already existing ICC profile. Disabled by default.
22395
22396   identity
22397       Obtain the identity score between two input videos.
22398
22399       This filter takes two input videos.
22400
22401       Both input videos must have the same resolution and pixel format for
22402       this filter to work correctly. Also it assumes that both inputs have
22403       the same number of frames, which are compared one by one.
22404
22405       The obtained per component, average, min and max identity score is
22406       printed through the logging system.
22407
22408       The filter stores the calculated identity scores of each frame in frame
22409       metadata.
22410
22411       In the below example the input file main.mpg being processed is
22412       compared with the reference file ref.mpg.
22413
22414               ffmpeg -i main.mpg -i ref.mpg -lavfi identity -f null -
22415
22416   idet
22417       Detect video interlacing type.
22418
22419       This filter tries to detect if the input frames are interlaced,
22420       progressive, top or bottom field first. It will also try to detect
22421       fields that are repeated between adjacent frames (a sign of telecine).
22422
22423       Single frame detection considers only immediately adjacent frames when
22424       classifying each frame.  Multiple frame detection incorporates the
22425       classification history of previous frames.
22426
22427       The filter will log these metadata values:
22428
22429       single.current_frame
22430           Detected type of current frame using single-frame detection. One
22431           of: ``tff'' (top field first), ``bff'' (bottom field first),
22432           ``progressive'', or ``undetermined''
22433
22434       single.tff
22435           Cumulative number of frames detected as top field first using
22436           single-frame detection.
22437
22438       multiple.tff
22439           Cumulative number of frames detected as top field first using
22440           multiple-frame detection.
22441
22442       single.bff
22443           Cumulative number of frames detected as bottom field first using
22444           single-frame detection.
22445
22446       multiple.current_frame
22447           Detected type of current frame using multiple-frame detection. One
22448           of: ``tff'' (top field first), ``bff'' (bottom field first),
22449           ``progressive'', or ``undetermined''
22450
22451       multiple.bff
22452           Cumulative number of frames detected as bottom field first using
22453           multiple-frame detection.
22454
22455       single.progressive
22456           Cumulative number of frames detected as progressive using single-
22457           frame detection.
22458
22459       multiple.progressive
22460           Cumulative number of frames detected as progressive using multiple-
22461           frame detection.
22462
22463       single.undetermined
22464           Cumulative number of frames that could not be classified using
22465           single-frame detection.
22466
22467       multiple.undetermined
22468           Cumulative number of frames that could not be classified using
22469           multiple-frame detection.
22470
22471       repeated.current_frame
22472           Which field in the current frame is repeated from the last. One of
22473           ``neither'', ``top'', or ``bottom''.
22474
22475       repeated.neither
22476           Cumulative number of frames with no repeated field.
22477
22478       repeated.top
22479           Cumulative number of frames with the top field repeated from the
22480           previous frame's top field.
22481
22482       repeated.bottom
22483           Cumulative number of frames with the bottom field repeated from the
22484           previous frame's bottom field.
22485
22486       The filter accepts the following options:
22487
22488       intl_thres
22489           Set interlacing threshold.
22490
22491       prog_thres
22492           Set progressive threshold.
22493
22494       rep_thres
22495           Threshold for repeated field detection.
22496
22497       half_life
22498           Number of frames after which a given frame's contribution to the
22499           statistics is halved (i.e., it contributes only 0.5 to its
22500           classification). The default of 0 means that all frames seen are
22501           given full weight of 1.0 forever.
22502
22503       analyze_interlaced_flag
22504           When this is not 0 then idet will use the specified number of
22505           frames to determine if the interlaced flag is accurate, it will not
22506           count undetermined frames.  If the flag is found to be accurate it
22507           will be used without any further computations, if it is found to be
22508           inaccurate it will be cleared without any further computations.
22509           This allows inserting the idet filter as a low computational method
22510           to clean up the interlaced flag
22511
22512   il
22513       Deinterleave or interleave fields.
22514
22515       This filter allows one to process interlaced images fields without
22516       deinterlacing them. Deinterleaving splits the input frame into 2 fields
22517       (so called half pictures). Odd lines are moved to the top half of the
22518       output image, even lines to the bottom half.  You can process (filter)
22519       them independently and then re-interleave them.
22520
22521       The filter accepts the following options:
22522
22523       luma_mode, l
22524       chroma_mode, c
22525       alpha_mode, a
22526           Available values for luma_mode, chroma_mode and alpha_mode are:
22527
22528           none
22529               Do nothing.
22530
22531           deinterleave, d
22532               Deinterleave fields, placing one above the other.
22533
22534           interleave, i
22535               Interleave fields. Reverse the effect of deinterleaving.
22536
22537           Default value is "none".
22538
22539       luma_swap, ls
22540       chroma_swap, cs
22541       alpha_swap, as
22542           Swap luma/chroma/alpha fields. Exchange even & odd lines. Default
22543           value is 0.
22544
22545       Commands
22546
22547       This filter supports the all above options as commands.
22548
22549   inflate
22550       Apply inflate effect to the video.
22551
22552       This filter replaces the pixel by the local(3x3) average by taking into
22553       account only values higher than the pixel.
22554
22555       It accepts the following options:
22556
22557       threshold0
22558       threshold1
22559       threshold2
22560       threshold3
22561           Limit the maximum change for each plane, default is 65535.  If 0,
22562           plane will remain unchanged.
22563
22564       Commands
22565
22566       This filter supports the all above options as commands.
22567
22568   interlace
22569       Simple interlacing filter from progressive contents. This interleaves
22570       upper (or lower) lines from odd frames with lower (or upper) lines from
22571       even frames, halving the frame rate and preserving image height.
22572
22573                  Original        Original             New Frame
22574                  Frame 'j'      Frame 'j+1'             (tff)
22575                 ==========      ===========       ==================
22576                   Line 0  -------------------->    Frame 'j' Line 0
22577                   Line 1          Line 1  ---->   Frame 'j+1' Line 1
22578                   Line 2 --------------------->    Frame 'j' Line 2
22579                   Line 3          Line 3  ---->   Frame 'j+1' Line 3
22580                    ...             ...                   ...
22581               New Frame + 1 will be generated by Frame 'j+2' and Frame 'j+3' and so on
22582
22583       It accepts the following optional parameters:
22584
22585       scan
22586           This determines whether the interlaced frame is taken from the even
22587           (tff - default) or odd (bff) lines of the progressive frame.
22588
22589       lowpass
22590           Vertical lowpass filter to avoid twitter interlacing and reduce
22591           moire patterns.
22592
22593           0, off
22594               Disable vertical lowpass filter
22595
22596           1, linear
22597               Enable linear filter (default)
22598
22599           2, complex
22600               Enable complex filter. This will slightly less reduce twitter
22601               and moire but better retain detail and subjective sharpness
22602               impression.
22603
22604   kerndeint
22605       Deinterlace input video by applying Donald Graft's adaptive kernel
22606       deinterling. Work on interlaced parts of a video to produce progressive
22607       frames.
22608
22609       The description of the accepted parameters follows.
22610
22611       thresh
22612           Set the threshold which affects the filter's tolerance when
22613           determining if a pixel line must be processed. It must be an
22614           integer in the range [0,255] and defaults to 10. A value of 0 will
22615           result in applying the process on every pixels.
22616
22617       map Paint pixels exceeding the threshold value to white if set to 1.
22618           Default is 0.
22619
22620       order
22621           Set the fields order. Swap fields if set to 1, leave fields alone
22622           if 0. Default is 0.
22623
22624       sharp
22625           Enable additional sharpening if set to 1. Default is 0.
22626
22627       twoway
22628           Enable twoway sharpening if set to 1. Default is 0.
22629
22630       Examples
22631
22632       •   Apply default values:
22633
22634                   kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
22635
22636       •   Enable additional sharpening:
22637
22638                   kerndeint=sharp=1
22639
22640       •   Paint processed pixels in white:
22641
22642                   kerndeint=map=1
22643
22644   kirsch
22645       Apply kirsch operator to input video stream.
22646
22647       The filter accepts the following option:
22648
22649       planes
22650           Set which planes will be processed, unprocessed planes will be
22651           copied.  By default value 0xf, all planes will be processed.
22652
22653       scale
22654           Set value which will be multiplied with filtered result.
22655
22656       delta
22657           Set value which will be added to filtered result.
22658
22659       Commands
22660
22661       This filter supports the all above options as commands.
22662
22663   lagfun
22664       Slowly update darker pixels.
22665
22666       This filter makes short flashes of light appear longer.  This filter
22667       accepts the following options:
22668
22669       decay
22670           Set factor for decaying. Default is .95. Allowed range is from 0 to
22671           1.
22672
22673       planes
22674           Set which planes to filter. Default is all. Allowed range is from 0
22675           to 15.
22676
22677       Commands
22678
22679       This filter supports the all above options as commands.
22680
22681   lenscorrection
22682       Correct radial lens distortion
22683
22684       This filter can be used to correct for radial distortion as can result
22685       from the use of wide angle lenses, and thereby re-rectify the image. To
22686       find the right parameters one can use tools available for example as
22687       part of opencv or simply trial-and-error.  To use opencv use the
22688       calibration sample (under samples/cpp) from the opencv sources and
22689       extract the k1 and k2 coefficients from the resulting matrix.
22690
22691       Note that effectively the same filter is available in the open-source
22692       tools Krita and Digikam from the KDE project.
22693
22694       In contrast to the vignette filter, which can also be used to
22695       compensate lens errors, this filter corrects the distortion of the
22696       image, whereas vignette corrects the brightness distribution, so you
22697       may want to use both filters together in certain cases, though you will
22698       have to take care of ordering, i.e. whether vignetting should be
22699       applied before or after lens correction.
22700
22701       Options
22702
22703       The filter accepts the following options:
22704
22705       cx  Relative x-coordinate of the focal point of the image, and thereby
22706           the center of the distortion. This value has a range [0,1] and is
22707           expressed as fractions of the image width. Default is 0.5.
22708
22709       cy  Relative y-coordinate of the focal point of the image, and thereby
22710           the center of the distortion. This value has a range [0,1] and is
22711           expressed as fractions of the image height. Default is 0.5.
22712
22713       k1  Coefficient of the quadratic correction term. This value has a
22714           range [-1,1]. 0 means no correction. Default is 0.
22715
22716       k2  Coefficient of the double quadratic correction term. This value has
22717           a range [-1,1].  0 means no correction. Default is 0.
22718
22719       i   Set interpolation type. Can be "nearest" or "bilinear".  Default is
22720           "nearest".
22721
22722       fc  Specify the color of the unmapped pixels. For the syntax of this
22723           option, check the "Color" section in the ffmpeg-utils manual.
22724           Default color is "black@0".
22725
22726       The formula that generates the correction is:
22727
22728       r_src = r_tgt * (1 + k1 * (r_tgt / r_0)^2 + k2 * (r_tgt / r_0)^4)
22729
22730       where r_0 is halve of the image diagonal and r_src and r_tgt are the
22731       distances from the focal point in the source and target images,
22732       respectively.
22733
22734       Commands
22735
22736       This filter supports the all above options as commands.
22737
22738   lensfun
22739       Apply lens correction via the lensfun library
22740       (<http://lensfun.sourceforge.net/>).
22741
22742       The "lensfun" filter requires the camera make, camera model, and lens
22743       model to apply the lens correction. The filter will load the lensfun
22744       database and query it to find the corresponding camera and lens entries
22745       in the database. As long as these entries can be found with the given
22746       options, the filter can perform corrections on frames. Note that
22747       incomplete strings will result in the filter choosing the best match
22748       with the given options, and the filter will output the chosen camera
22749       and lens models (logged with level "info"). You must provide the make,
22750       camera model, and lens model as they are required.
22751
22752       To obtain a list of available makes and models, leave out one or both
22753       of "make" and "model" options. The filter will send the full list to
22754       the log with level "INFO".  The first column is the make and the second
22755       column is the model.  To obtain a list of available lenses, set any
22756       values for make and model and leave out the "lens_model" option. The
22757       filter will send the full list of lenses in the log with level "INFO".
22758       The ffmpeg tool will exit after the list is printed.
22759
22760       The filter accepts the following options:
22761
22762       make
22763           The make of the camera (for example, "Canon"). This option is
22764           required.
22765
22766       model
22767           The model of the camera (for example, "Canon EOS 100D"). This
22768           option is required.
22769
22770       lens_model
22771           The model of the lens (for example, "Canon EF-S 18-55mm f/3.5-5.6
22772           IS STM"). This option is required.
22773
22774       db_path
22775           The full path to the lens database folder. If not set, the filter
22776           will attempt to load the database from the install path when the
22777           library was built. Default is unset.
22778
22779       mode
22780           The type of correction to apply. The following values are valid
22781           options:
22782
22783           vignetting
22784               Enables fixing lens vignetting.
22785
22786           geometry
22787               Enables fixing lens geometry. This is the default.
22788
22789           subpixel
22790               Enables fixing chromatic aberrations.
22791
22792           vig_geo
22793               Enables fixing lens vignetting and lens geometry.
22794
22795           vig_subpixel
22796               Enables fixing lens vignetting and chromatic aberrations.
22797
22798           distortion
22799               Enables fixing both lens geometry and chromatic aberrations.
22800
22801           all Enables all possible corrections.
22802
22803       focal_length
22804           The focal length of the image/video (zoom; expected constant for
22805           video). For example, a 18--55mm lens has focal length range of
22806           [18--55], so a value in that range should be chosen when using that
22807           lens. Default 18.
22808
22809       aperture
22810           The aperture of the image/video (expected constant for video). Note
22811           that aperture is only used for vignetting correction. Default 3.5.
22812
22813       focus_distance
22814           The focus distance of the image/video (expected constant for
22815           video). Note that focus distance is only used for vignetting and
22816           only slightly affects the vignetting correction process. If
22817           unknown, leave it at the default value (which is 1000).
22818
22819       scale
22820           The scale factor which is applied after transformation. After
22821           correction the video is no longer necessarily rectangular. This
22822           parameter controls how much of the resulting image is visible. The
22823           value 0 means that a value will be chosen automatically such that
22824           there is little or no unmapped area in the output image. 1.0 means
22825           that no additional scaling is done. Lower values may result in more
22826           of the corrected image being visible, while higher values may avoid
22827           unmapped areas in the output.
22828
22829       target_geometry
22830           The target geometry of the output image/video. The following values
22831           are valid options:
22832
22833           rectilinear (default)
22834           fisheye
22835           panoramic
22836           equirectangular
22837           fisheye_orthographic
22838           fisheye_stereographic
22839           fisheye_equisolid
22840           fisheye_thoby
22841       reverse
22842           Apply the reverse of image correction (instead of correcting
22843           distortion, apply it).
22844
22845       interpolation
22846           The type of interpolation used when correcting distortion. The
22847           following values are valid options:
22848
22849           nearest
22850           linear (default)
22851           lanczos
22852
22853       Examples
22854
22855       •   Apply lens correction with make "Canon", camera model "Canon EOS
22856           100D", and lens model "Canon EF-S 18-55mm f/3.5-5.6 IS STM" with
22857           focal length of "18" and aperture of "8.0".
22858
22859                   ffmpeg -i input.mov -vf lensfun=make=Canon:model="Canon EOS 100D":lens_model="Canon EF-S 18-55mm f/3.5-5.6 IS STM":focal_length=18:aperture=8 -c:v h264 -b:v 8000k output.mov
22860
22861       •   Apply the same as before, but only for the first 5 seconds of
22862           video.
22863
22864                   ffmpeg -i input.mov -vf lensfun=make=Canon:model="Canon EOS 100D":lens_model="Canon EF-S 18-55mm f/3.5-5.6 IS STM":focal_length=18:aperture=8:enable='lte(t\,5)' -c:v h264 -b:v 8000k output.mov
22865
22866   libplacebo
22867       Flexible GPU-accelerated processing filter based on libplacebo
22868       (<https://code.videolan.org/videolan/libplacebo>). Note that this
22869       filter currently only accepts Vulkan input frames.
22870
22871       Options
22872
22873       The options for this filter are divided into the following sections:
22874
22875       Output mode
22876
22877       These options control the overall output mode. By default, libplacebo
22878       will try to preserve the source colorimetry and size as best as it can,
22879       but it will apply any embedded film grain, dolby vision metadata or
22880       anamorphic SAR present in source frames.
22881
22882       w
22883       h   Set the output video dimension expression. Default value is the
22884           input dimension.
22885
22886           Allows for the same expressions as the scale filter.
22887
22888       format
22889           Set the output format override. If unset (the default), frames will
22890           be output in the same format as the respective input frames.
22891           Otherwise, format conversion will be performed.
22892
22893       force_original_aspect_ratio
22894       force_divisible_by
22895           Work the same as the identical scale filter options.
22896
22897       normalize_sar
22898           If enabled (the default), output frames will always have a pixel
22899           aspect ratio of 1:1. If disabled, any aspect ratio mismatches,
22900           including those from e.g.  anamorphic video sources, are forwarded
22901           to the output pixel aspect ratio.
22902
22903       pad_crop_ratio
22904           Specifies a ratio (between 0.0 and 1.0) between padding and
22905           cropping when the input aspect ratio does not match the output
22906           aspect ratio and normalize_sar is in effect. The default of 0.0
22907           always pads the content with black borders, while a value of 1.0
22908           always crops off parts of the content. Intermediate values are
22909           possible, leading to a mix of the two approaches.
22910
22911       colorspace
22912       color_primaries
22913       color_trc
22914       range
22915           Configure the colorspace that output frames will be delivered in.
22916           The default value of "auto" outputs frames in the same format as
22917           the input frames, leading to no change. For any other value,
22918           conversion will be performed.
22919
22920           See the setparams filter for a list of possible values.
22921
22922       apply_filmgrain
22923           Apply film grain (e.g. AV1 or H.274) if present in source frames,
22924           and strip it from the output. Enabled by default.
22925
22926       apply_dolbyvision
22927           Apply Dolby Vision RPU metadata if present in source frames, and
22928           strip it from the output. Enabled by default. Note that Dolby
22929           Vision will always output BT.2020+PQ, overriding the usual input
22930           frame metadata. These will also be picked as the values of "auto"
22931           for the respective frame output options.
22932
22933       Scaling
22934
22935       The options in this section control how libplacebo performs upscaling
22936       and (if necessary) downscaling. Note that libplacebo will always
22937       internally operate on 4:4:4 content, so any sub-sampled chroma formats
22938       such as "yuv420p" will necessarily be upsampled and downsampled as part
22939       of the rendering process. That means scaling might be in effect even if
22940       the source and destination resolution are the same.
22941
22942       upscaler
22943       downscaler
22944           Configure the filter kernel used for upscaling and downscaling. The
22945           respective defaults are "spline36" and "mitchell". For a full list
22946           of possible values, pass "help" to these options. The most
22947           important values are:
22948
22949           none
22950               Forces the use of built-in GPU texture sampling (typically
22951               bilinear). Extremely fast but poor quality, especially when
22952               downscaling.
22953
22954           bilinear
22955               Bilinear interpolation. Can generally be done for free on GPUs,
22956               except when doing so would lead to aliasing. Fast and low
22957               quality.
22958
22959           nearest
22960               Nearest-neighbour interpolation. Sharp but highly aliasing.
22961
22962           oversample
22963               Algorithm that looks visually similar to nearest-neighbour
22964               interpolation but tries to preserve pixel aspect ratio. Good
22965               for pixel art, since it results in minimal distortion of the
22966               artistic appearance.
22967
22968           lanczos
22969               Standard sinc-sinc interpolation kernel.
22970
22971           spline36
22972               Cubic spline approximation of lanczos. No difference in
22973               performance, but has very slightly less ringing.
22974
22975           ewa_lanczos
22976               Elliptically weighted average version of lanczos, based on a
22977               jinc-sinc kernel.  This is also popularly referred to as just
22978               "Jinc scaling". Slow but very high quality.
22979
22980           gaussian
22981               Gaussian kernel. Has certain ideal mathematical properties, but
22982               subjectively very blurry.
22983
22984           mitchell
22985               Cubic BC spline with parameters recommended by Mitchell and
22986               Netravali. Very little ringing.
22987
22988       lut_entries
22989           Configures the size of scaler LUTs, ranging from 1 to 256. The
22990           default of 0 will pick libplacebo's internal default, typically 64.
22991
22992       antiringing
22993           Enables anti-ringing (for non-EWA filters). The value (between 0.0
22994           and 1.0) configures the strength of the anti-ringing algorithm. May
22995           increase aliasing if set too high. Disabled by default.
22996
22997       sigmoid
22998           Enable sigmoidal compression during upscaling. Reduces ringing
22999           slightly.  Enabled by default.
23000
23001       Debanding
23002
23003       Libplacebo comes with a built-in debanding filter that is good at
23004       counteracting many common sources of banding and blocking. Turning this
23005       on is highly recommended whenever quality is desired.
23006
23007       deband
23008           Enable (fast) debanding algorithm. Disabled by default.
23009
23010       deband_iterations
23011           Number of deband iterations of the debanding algorithm. Each
23012           iteration is performed with progressively increased radius (and
23013           diminished threshold).  Recommended values are in the range 1 to 4.
23014           Defaults to 1.
23015
23016       deband_threshold
23017           Debanding filter strength. Higher numbers lead to more aggressive
23018           debanding.  Defaults to 4.0.
23019
23020       deband_radius
23021           Debanding filter radius. A higher radius is better for slow
23022           gradients, while a lower radius is better for steep gradients.
23023           Defaults to 16.0.
23024
23025       deband_grain
23026           Amount of extra output grain to add. Helps hide imperfections.
23027           Defaults to 6.0.
23028
23029       Color adjustment
23030
23031       A collection of subjective color controls. Not very rigorous, so the
23032       exact effect will vary somewhat depending on the input primaries and
23033       colorspace.
23034
23035       brightness
23036           Brightness boost, between "-1.0" and 1.0. Defaults to 0.0.
23037
23038       contrast
23039           Contrast gain, between 0.0 and 16.0. Defaults to 1.0.
23040
23041       saturation
23042           Saturation gain, between 0.0 and 16.0. Defaults to 1.0.
23043
23044       hue Hue shift in radians, between "-3.14" and 3.14. Defaults to 0.0.
23045           This will rotate the UV subvector, defaulting to BT.709
23046           coefficients for RGB inputs.
23047
23048       gamma
23049           Gamma adjustment, between 0.0 and 16.0. Defaults to 1.0.
23050
23051       cones
23052           Cone model to use for color blindness simulation. Accepts any
23053           combination of "l", "m" and "s". Here are some examples:
23054
23055           m   Deuteranomaly / deuteranopia (affecting 3%-4% of the
23056               population)
23057
23058           l   Protanomaly / protanopia (affecting 1%-2% of the population)
23059
23060           l+m Monochromacy (very rare)
23061
23062           l+m+s
23063               Achromatopsy (complete loss of daytime vision, extremely rare)
23064
23065       cone-strength
23066           Gain factor for the cones specified by "cones", between 0.0 and
23067           10.0. A value of 1.0 results in no change to color vision. A value
23068           of 0.0 (the default) simulates complete loss of those cones. Values
23069           above 1.0 result in exaggerating the differences between cones,
23070           which may help compensate for reduced color vision.
23071
23072       Peak detection
23073
23074       To help deal with sources that only have static HDR10 metadata (or no
23075       tagging whatsoever), libplacebo uses its own internal frame analysis
23076       compute shader to analyze source frames and adapt the tone mapping
23077       function in realtime. If this is too slow, or if exactly reproducible
23078       frame-perfect results are needed, it's recommended to turn this feature
23079       off.
23080
23081       peak_detect
23082           Enable HDR peak detection. Ignores static MaxCLL/MaxFALL values in
23083           favor of dynamic detection from the input. Note that the detected
23084           values do not get written back to the output frames, they merely
23085           guide the internal tone mapping process. Enabled by default.
23086
23087       smoothing_period
23088           Peak detection smoothing period, between 0.0 and 1000.0. Higher
23089           values result in peak detection becoming less responsive to changes
23090           in the input. Defaults to 100.0.
23091
23092       minimum_peak
23093           Lower bound on the detected peak (relative to SDR white), between
23094           0.0 and 100.0. Defaults to 1.0.
23095
23096       scene_threshold_low
23097       scene_threshold_high
23098           Lower and upper thresholds for scene change detection. Expressed in
23099           a logarithmic scale between 0.0 and 100.0. Default to 5.5 and 10.0,
23100           respectively. Setting either to a negative value disables this
23101           functionality.
23102
23103       overshoot
23104           Peak smoothing overshoot margin, between 0.0 and 1.0. Provides a
23105           safety margin to prevent clipping as a result of peak smoothing.
23106           Defaults to 0.05, corresponding to a margin of 5%.
23107
23108       Tone mapping
23109
23110       The options in this section control how libplacebo performs tone-
23111       mapping and gamut-mapping when dealing with mismatches between wide-
23112       gamut or HDR content.  In general, libplacebo relies on accurate source
23113       tagging and mastering display gamut information to produce the best
23114       results.
23115
23116       intent
23117           Rendering intent to use when adapting between different primary
23118           color gamuts (after tone-mapping).
23119
23120           perceptual
23121               Perceptual gamut mapping. Currently equivalent to relative
23122               colorimetric.
23123
23124           relative
23125               Relative colorimetric. This is the default.
23126
23127           absolute
23128               Absolute colorimetric.
23129
23130           saturation
23131               Saturation mapping. Forcibly stretches the source gamut to the
23132               target gamut.
23133
23134       gamut_mode
23135           How to handle out-of-gamut colors that can occur as a result of
23136           colorimetric gamut mapping.
23137
23138           clip
23139               Do nothing, simply clip out-of-range colors to the RGB volume.
23140               This is the default.
23141
23142           warn
23143               Highlight out-of-gamut pixels (by coloring them pink).
23144
23145           darken
23146               Linearly reduces content brightness to preserves saturated
23147               details, followed by clipping the remaining out-of-gamut
23148               colors. As the name implies, this makes everything darker, but
23149               provides a good balance between preserving details and colors.
23150
23151           desaturate
23152               Hard-desaturates out-of-gamut colors towards white, while
23153               preserving the luminance. Has a tendency to shift colors.
23154
23155       tonemapping
23156           Tone-mapping algorithm to use. Available values are:
23157
23158           auto
23159               Automatic selection based on internal heuristics. This is the
23160               default.
23161
23162           clip
23163               Performs no tone-mapping, just clips out-of-range colors.
23164               Retains perfect color accuracy for in-range colors but
23165               completely destroys out-of-range information.  Does not perform
23166               any black point adaptation. Not configurable.
23167
23168           bt.2390
23169               EETF from the ITU-R Report BT.2390, a hermite spline roll-off
23170               with linear segment. The knee point offset is configurable.
23171               Note that this parameter defaults to 1.0, rather than the value
23172               of 0.5 from the ITU-R spec.
23173
23174           bt.2446a
23175               EETF from ITU-R Report BT.2446, method A. Designed for well-
23176               mastered HDR sources. Can be used for both forward and inverse
23177               tone mapping. Not configurable.
23178
23179           spline
23180               Simple spline consisting of two polynomials, joined by a single
23181               pivot point.  The parameter gives the pivot point (in PQ
23182               space), defaulting to 0.30.  Can be used for both forward and
23183               inverse tone mapping.
23184
23185           reinhard
23186               Simple non-linear, global tone mapping algorithm. The parameter
23187               specifies the local contrast coefficient at the display peak.
23188               Essentially, a parameter of 0.5 implies that the reference
23189               white will be about half as bright as when clipping. Defaults
23190               to 0.5, which results in the simplest formulation of this
23191               function.
23192
23193           mobius
23194               Generalization of the reinhard tone mapping algorithm to
23195               support an additional linear slope near black. The tone mapping
23196               parameter indicates the trade-off between the linear section
23197               and the non-linear section. Essentially, for a given parameter
23198               x, every color value below x will be mapped linearly, while
23199               higher values get non-linearly tone-mapped. Values near 1.0
23200               make this curve behave like "clip", while values near 0.0 make
23201               this curve behave like "reinhard". The default value is 0.3,
23202               which provides a good balance between colorimetric accuracy and
23203               preserving out-of-gamut details.
23204
23205           hable
23206               Piece-wise, filmic tone-mapping algorithm developed by John
23207               Hable for use in Uncharted 2, inspired by a similar tone-
23208               mapping algorithm used by Kodak.  Popularized by its use in
23209               video games with HDR rendering. Preserves both dark and bright
23210               details very well, but comes with the drawback of changing the
23211               average brightness quite significantly. This is sort of similar
23212               to "reinhard" with parameter 0.24.
23213
23214           gamma
23215               Fits a gamma (power) function to transfer between the source
23216               and target color spaces, effectively resulting in a perceptual
23217               hard-knee joining two roughly linear sections. This preserves
23218               details at all scales fairly accurately, but can result in an
23219               image with a muted or dull appearance. The parameter is used as
23220               the cutoff point, defaulting to 0.5.
23221
23222           linear
23223               Linearly stretches the input range to the output range, in PQ
23224               space. This will preserve all details accurately, but results
23225               in a significantly different average brightness. Can be used
23226               for inverse tone-mapping in addition to regular tone-mapping.
23227               The parameter can be used as an additional linear gain
23228               coefficient (defaulting to 1.0).
23229
23230       tonemapping_param
23231           For tunable tone mapping functions, this parameter can be used to
23232           fine-tune the curve behavior. Refer to the documentation of
23233           "tonemapping". The default value of 0.0 is replaced by the curve's
23234           preferred default setting.
23235
23236       tonemapping_mode
23237           This option determines how the tone mapping function specified by
23238           "tonemapping" is applied to the colors in a scene. Possible values
23239           are:
23240
23241           auto
23242               Automatic selection based on internal heuristics. This is the
23243               default.
23244
23245           rgb Apply the function per-channel in the RGB colorspace.  Per-
23246               channel tone-mapping in RGB. Guarantees no clipping and heavily
23247               desaturates the output, but distorts the colors quite
23248               significantly. Very similar to the "Hollywood" look and feel.
23249
23250           max Tone-mapping is performed on the brightest component found in
23251               the signal. Good at preserving details in highlights, but has a
23252               tendency to crush blacks.
23253
23254           hybrid
23255               Tone-map per-channel for highlights and linearly (luma-based)
23256               for midtones/shadows, based on a fixed gamma 2.4 coefficient
23257               curve.
23258
23259           luma
23260               Tone-map linearly on the luma component (CIE Y), and adjust
23261               (desaturate) the chromaticities to compensate using a simple
23262               constant factor. This is essentially the mode used in ITU-R
23263               BT.2446 method A.
23264
23265       inverse_tonemapping
23266           If enabled, this filter will also attempt stretching SDR signals to
23267           fill HDR output color volumes. Disabled by default.
23268
23269       tonemapping_crosstalk
23270           Extra tone-mapping crosstalk factor, between 0.0 and 0.3. This can
23271           help reduce issues tone-mapping certain bright spectral colors.
23272           Defaults to 0.04.
23273
23274       tonemapping_lut_size
23275           Size of the tone-mapping LUT, between 2 and 1024. Defaults to 256.
23276           Note that this figure is squared when combined with "peak_detect".
23277
23278       Dithering
23279
23280       By default, libplacebo will dither whenever necessary, which includes
23281       rendering to any integer format below 16-bit precision. It's
23282       recommended to always leave this on, since not doing so may result in
23283       visible banding in the output, even if the "debanding" filter is
23284       enabled. If maximum performance is needed, use "ordered_fixed" instead
23285       of disabling dithering.
23286
23287       dithering
23288           Dithering method to use. Accepts the following values:
23289
23290           none
23291               Disables dithering completely. May result in visible banding.
23292
23293           blue
23294               Dither with pseudo-blue noise. This is the default.
23295
23296           ordered
23297               Tunable ordered dither pattern.
23298
23299           ordered_fixed
23300               Faster ordered dither with a fixed size of 6. Texture-less.
23301
23302           white
23303               Dither with white noise. Texture-less.
23304
23305       dither_lut_size
23306           Dither LUT size, as log base2 between 1 and 8. Defaults to 6,
23307           corresponding to a LUT size of "64x64".
23308
23309       dither_temporal
23310           Enables temporal dithering. Disabled by default.
23311
23312       Custom shaders
23313
23314       libplacebo supports a number of custom shaders based on the mpv .hook
23315       GLSL syntax. A collection of such shaders can be found here:
23316       <https://github.com/mpv-player/mpv/wiki/User-Scripts#user-shaders>
23317
23318       A full description of the mpv shader format is beyond the scope of this
23319       section, but a summary can be found here:
23320       <https://mpv.io/manual/master/#options-glsl-shader>
23321
23322       custom_shader_path
23323           Specifies a path to a custom shader file to load at runtime.
23324
23325       custom_shader_bin
23326           Specifies a complete custom shader as a raw string.
23327
23328       Debugging / performance
23329
23330       All of the options in this section default off. They may be of
23331       assistance when attempting to squeeze the maximum performance at the
23332       cost of quality.
23333
23334       skip_aa
23335           Disable anti-aliasing when downscaling.
23336
23337       polar_cutoff
23338           Truncate polar (EWA) scaler kernels below this absolute magnitude,
23339           between 0.0 and 1.0.
23340
23341       disable_linear
23342           Disable linear light scaling.
23343
23344       disable_builtin
23345           Disable built-in GPU sampling (forces LUT).
23346
23347       force_icc_lut
23348           Force the use of a full ICC 3DLUT for gamut mapping.
23349
23350       disable_fbos
23351           Forcibly disable FBOs, resulting in loss of almost all
23352           functionality, but offering the maximum possible speed.
23353
23354       Commands
23355
23356       This filter supports almost all of the above options as commands.
23357
23358       Examples
23359
23360       •   Complete example for how to initialize the Vulkan device, upload
23361           frames to the GPU, perform filter conversion to yuv420p, and
23362           download frames back to the CPU for output. Note that in specific
23363           cases you can get around the need to perform format conversion by
23364           specifying the correct "format" filter option corresponding to the
23365           input frames.
23366
23367                   ffmpeg -i $INPUT -init_hw_device vulkan -vf hwupload,libplacebo=format=yuv420p,hwdownload,format=yuv420p $OUTPUT
23368
23369       •   Tone-map input to standard gamut BT.709 output:
23370
23371                   libplacebo=colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv
23372
23373       •   Rescale input to fit into standard 1080p, with high quality
23374           scaling:
23375
23376                   libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos
23377
23378       •   Convert input to standard sRGB JPEG:
23379
23380                   libplacebo=format=yuv420p:colorspace=bt470bg:color_primaries=bt709:color_trc=iec61966-2-1:range=pc
23381
23382       •   Use higher quality debanding settings:
23383
23384                   libplacebo=deband=true:deband_iterations=3:deband_radius=8:deband_threshold=6
23385
23386       •   Run this filter on the CPU, on systems with Mesa installed (and
23387           with the most expensive options disabled):
23388
23389                   ffmpeg ... -init_hw_device vulkan:llvmpipe ... -vf libplacebo=upscaler=none:downscaler=none:peak_detect=false
23390
23391       •   Suppress CPU-based AV1/H.274 film grain application in the decoder,
23392           in favor of doing it with this filter. Note that this is only a
23393           gain if the frames are either already on the GPU, or if you're
23394           using libplacebo for other purposes, since otherwise the VRAM
23395           roundtrip will more than offset any expected speedup.
23396
23397                   ffmpeg -export_side_data +film_grain ... -vf libplacebo=apply_filmgrain=true
23398
23399   libvmaf
23400       Calulate the VMAF (Video Multi-Method Assessment Fusion) score for a
23401       reference/distorted pair of input videos.
23402
23403       The first input is the distorted video, and the second input is the
23404       reference video.
23405
23406       The obtained VMAF score is printed through the logging system.
23407
23408       It requires Netflix's vmaf library (libvmaf) as a pre-requisite.  After
23409       installing the library it can be enabled using: "./configure
23410       --enable-libvmaf".
23411
23412       The filter has following options:
23413
23414       model
23415           A `|` delimited list of vmaf models. Each model can be configured
23416           with a number of parameters.  Default value: "version=vmaf_v0.6.1"
23417
23418       model_path
23419           Deprecated, use model='path=...'.
23420
23421       enable_transform
23422           Deprecated, use model='enable_transform=true'.
23423
23424       phone_model
23425           Deprecated, use model='enable_transform=true'.
23426
23427       enable_conf_interval
23428           Deprecated, use model='enable_conf_interval=true'.
23429
23430       feature
23431           A `|` delimited list of features. Each feature can be configured
23432           with a number of parameters.
23433
23434       psnr
23435           Deprecated, use feature='name=psnr'.
23436
23437       ssim
23438           Deprecated, use feature='name=ssim'.
23439
23440       ms_ssim
23441           Deprecated, use feature='name=ms_ssim'.
23442
23443       log_path
23444           Set the file path to be used to store log files.
23445
23446       log_fmt
23447           Set the format of the log file (xml, json, csv, or sub).
23448
23449       n_threads
23450           Set number of threads to be used when initializing libvmaf.
23451           Default value: 0, no threads.
23452
23453       n_subsample
23454           Set frame subsampling interval to be used.
23455
23456       This filter also supports the framesync options.
23457
23458       Examples
23459
23460       •   In the examples below, a distorted video distorted.mpg is compared
23461           with a reference file reference.mpg.
23462
23463       •   Basic usage:
23464
23465                   ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf=log_path=output.xml -f null -
23466
23467       •   Example with multiple models:
23468
23469                   ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='model=version=vmaf_v0.6.1\\:name=vmaf|version=vmaf_v0.6.1neg\\:name=vmaf_neg' -f null -
23470
23471       •   Example with multiple addtional features:
23472
23473                   ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='feature=name=psnr|name=ciede' -f null -
23474
23475       •   Example with options and different containers:
23476
23477                   ffmpeg -i distorted.mpg -i reference.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]libvmaf=log_fmt=json:log_path=output.json" -f null -
23478
23479   limitdiff
23480       Apply limited difference filter using second and optionally third video
23481       stream.
23482
23483       The filter accepts the following options:
23484
23485       threshold
23486           Set the threshold to use when allowing certain differences between
23487           video streams.  Any absolute difference value lower or exact than
23488           this threshold will pick pixel components from first video stream.
23489
23490       elasticity
23491           Set the elasticity of soft thresholding when processing video
23492           streams.  This value multiplied with first one sets second
23493           threshold.  Any absolute difference value greater or exact than
23494           second threshold will pick pixel components from second video
23495           stream. For values between those two threshold linear interpolation
23496           between first and second video stream will be used.
23497
23498       reference
23499           Enable the reference (third) video stream processing. By default is
23500           disabled.  If set, this video stream will be used for calculating
23501           absolute difference with first video stream.
23502
23503       planes
23504           Specify which planes will be processed. Defaults to all available.
23505
23506       Commands
23507
23508       This filter supports the all above options as commands except option
23509       reference.
23510
23511   limiter
23512       Limits the pixel components values to the specified range [min, max].
23513
23514       The filter accepts the following options:
23515
23516       min Lower bound. Defaults to the lowest allowed value for the input.
23517
23518       max Upper bound. Defaults to the highest allowed value for the input.
23519
23520       planes
23521           Specify which planes will be processed. Defaults to all available.
23522
23523       Commands
23524
23525       This filter supports the all above options as commands.
23526
23527   loop
23528       Loop video frames.
23529
23530       The filter accepts the following options:
23531
23532       loop
23533           Set the number of loops. Setting this value to -1 will result in
23534           infinite loops.  Default is 0.
23535
23536       size
23537           Set maximal size in number of frames. Default is 0.
23538
23539       start
23540           Set first frame of loop. Default is 0.
23541
23542       Examples
23543
23544       •   Loop single first frame infinitely:
23545
23546                   loop=loop=-1:size=1:start=0
23547
23548       •   Loop single first frame 10 times:
23549
23550                   loop=loop=10:size=1:start=0
23551
23552       •   Loop 10 first frames 5 times:
23553
23554                   loop=loop=5:size=10:start=0
23555
23556   lut1d
23557       Apply a 1D LUT to an input video.
23558
23559       The filter accepts the following options:
23560
23561       file
23562           Set the 1D LUT file name.
23563
23564           Currently supported formats:
23565
23566           cube
23567               Iridas
23568
23569           csp cineSpace
23570
23571       interp
23572           Select interpolation mode.
23573
23574           Available values are:
23575
23576           nearest
23577               Use values from the nearest defined point.
23578
23579           linear
23580               Interpolate values using the linear interpolation.
23581
23582           cosine
23583               Interpolate values using the cosine interpolation.
23584
23585           cubic
23586               Interpolate values using the cubic interpolation.
23587
23588           spline
23589               Interpolate values using the spline interpolation.
23590
23591       Commands
23592
23593       This filter supports the all above options as commands.
23594
23595   lut3d
23596       Apply a 3D LUT to an input video.
23597
23598       The filter accepts the following options:
23599
23600       file
23601           Set the 3D LUT file name.
23602
23603           Currently supported formats:
23604
23605           3dl AfterEffects
23606
23607           cube
23608               Iridas
23609
23610           dat DaVinci
23611
23612           m3d Pandora
23613
23614           csp cineSpace
23615
23616       interp
23617           Select interpolation mode.
23618
23619           Available values are:
23620
23621           nearest
23622               Use values from the nearest defined point.
23623
23624           trilinear
23625               Interpolate values using the 8 points defining a cube.
23626
23627           tetrahedral
23628               Interpolate values using a tetrahedron.
23629
23630           pyramid
23631               Interpolate values using a pyramid.
23632
23633           prism
23634               Interpolate values using a prism.
23635
23636       Commands
23637
23638       This filter supports the "interp" option as commands.
23639
23640   lumakey
23641       Turn certain luma values into transparency.
23642
23643       The filter accepts the following options:
23644
23645       threshold
23646           Set the luma which will be used as base for transparency.  Default
23647           value is 0.
23648
23649       tolerance
23650           Set the range of luma values to be keyed out.  Default value is
23651           0.01.
23652
23653       softness
23654           Set the range of softness. Default value is 0.  Use this to control
23655           gradual transition from zero to full transparency.
23656
23657       Commands
23658
23659       This filter supports same commands as options.  The command accepts the
23660       same syntax of the corresponding option.
23661
23662       If the specified expression is not valid, it is kept at its current
23663       value.
23664
23665   lut, lutrgb, lutyuv
23666       Compute a look-up table for binding each pixel component input value to
23667       an output value, and apply it to the input video.
23668
23669       lutyuv applies a lookup table to a YUV input video, lutrgb to an RGB
23670       input video.
23671
23672       These filters accept the following parameters:
23673
23674       c0  set first pixel component expression
23675
23676       c1  set second pixel component expression
23677
23678       c2  set third pixel component expression
23679
23680       c3  set fourth pixel component expression, corresponds to the alpha
23681           component
23682
23683       r   set red component expression
23684
23685       g   set green component expression
23686
23687       b   set blue component expression
23688
23689       a   alpha component expression
23690
23691       y   set Y/luminance component expression
23692
23693       u   set U/Cb component expression
23694
23695       v   set V/Cr component expression
23696
23697       Each of them specifies the expression to use for computing the lookup
23698       table for the corresponding pixel component values.
23699
23700       The exact component associated to each of the c* options depends on the
23701       format in input.
23702
23703       The lut filter requires either YUV or RGB pixel formats in input,
23704       lutrgb requires RGB pixel formats in input, and lutyuv requires YUV.
23705
23706       The expressions can contain the following constants and functions:
23707
23708       w
23709       h   The input width and height.
23710
23711       val The input value for the pixel component.
23712
23713       clipval
23714           The input value, clipped to the minval-maxval range.
23715
23716       maxval
23717           The maximum value for the pixel component.
23718
23719       minval
23720           The minimum value for the pixel component.
23721
23722       negval
23723           The negated value for the pixel component value, clipped to the
23724           minval-maxval range; it corresponds to the expression
23725           "maxval-clipval+minval".
23726
23727       clip(val)
23728           The computed value in val, clipped to the minval-maxval range.
23729
23730       gammaval(gamma)
23731           The computed gamma correction value of the pixel component value,
23732           clipped to the minval-maxval range. It corresponds to the
23733           expression
23734           "pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+minval"
23735
23736       All expressions default to "clipval".
23737
23738       Commands
23739
23740       This filter supports same commands as options.
23741
23742       Examples
23743
23744       •   Negate input video:
23745
23746                   lutrgb="r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val"
23747                   lutyuv="y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val"
23748
23749           The above is the same as:
23750
23751                   lutrgb="r=negval:g=negval:b=negval"
23752                   lutyuv="y=negval:u=negval:v=negval"
23753
23754       •   Negate luminance:
23755
23756                   lutyuv=y=negval
23757
23758       •   Remove chroma components, turning the video into a graytone image:
23759
23760                   lutyuv="u=128:v=128"
23761
23762       •   Apply a luma burning effect:
23763
23764                   lutyuv="y=2*val"
23765
23766       •   Remove green and blue components:
23767
23768                   lutrgb="g=0:b=0"
23769
23770       •   Set a constant alpha channel value on input:
23771
23772                   format=rgba,lutrgb=a="maxval-minval/2"
23773
23774       •   Correct luminance gamma by a factor of 0.5:
23775
23776                   lutyuv=y=gammaval(0.5)
23777
23778       •   Discard least significant bits of luma:
23779
23780                   lutyuv=y='bitand(val, 128+64+32)'
23781
23782       •   Technicolor like effect:
23783
23784                   lutyuv=u='(val-maxval/2)*2+maxval/2':v='(val-maxval/2)*2+maxval/2'
23785
23786   lut2, tlut2
23787       The "lut2" filter takes two input streams and outputs one stream.
23788
23789       The "tlut2" (time lut2) filter takes two consecutive frames from one
23790       single stream.
23791
23792       This filter accepts the following parameters:
23793
23794       c0  set first pixel component expression
23795
23796       c1  set second pixel component expression
23797
23798       c2  set third pixel component expression
23799
23800       c3  set fourth pixel component expression, corresponds to the alpha
23801           component
23802
23803       d   set output bit depth, only available for "lut2" filter. By default
23804           is 0, which means bit depth is automatically picked from first
23805           input format.
23806
23807       The "lut2" filter also supports the framesync options.
23808
23809       Each of them specifies the expression to use for computing the lookup
23810       table for the corresponding pixel component values.
23811
23812       The exact component associated to each of the c* options depends on the
23813       format in inputs.
23814
23815       The expressions can contain the following constants:
23816
23817       w
23818       h   The input width and height.
23819
23820       x   The first input value for the pixel component.
23821
23822       y   The second input value for the pixel component.
23823
23824       bdx The first input video bit depth.
23825
23826       bdy The second input video bit depth.
23827
23828       All expressions default to "x".
23829
23830       Commands
23831
23832       This filter supports the all above options as commands except option
23833       "d".
23834
23835       Examples
23836
23837       •   Highlight differences between two RGB video streams:
23838
23839                   lut2='ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,0,pow(2,bdx)-1)'
23840
23841       •   Highlight differences between two YUV video streams:
23842
23843                   lut2='ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,pow(2,bdx-1),pow(2,bdx)-1):ifnot(x-y,pow(2,bdx-1),pow(2,bdx)-1)'
23844
23845       •   Show max difference between two video streams:
23846
23847                   lut2='if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1))):if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1))):if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1)))'
23848
23849   maskedclamp
23850       Clamp the first input stream with the second input and third input
23851       stream.
23852
23853       Returns the value of first stream to be between second input stream -
23854       "undershoot" and third input stream + "overshoot".
23855
23856       This filter accepts the following options:
23857
23858       undershoot
23859           Default value is 0.
23860
23861       overshoot
23862           Default value is 0.
23863
23864       planes
23865           Set which planes will be processed as bitmap, unprocessed planes
23866           will be copied from first stream.  By default value 0xf, all planes
23867           will be processed.
23868
23869       Commands
23870
23871       This filter supports the all above options as commands.
23872
23873   maskedmax
23874       Merge the second and third input stream into output stream using
23875       absolute differences between second input stream and first input stream
23876       and absolute difference between third input stream and first input
23877       stream. The picked value will be from second input stream if second
23878       absolute difference is greater than first one or from third input
23879       stream otherwise.
23880
23881       This filter accepts the following options:
23882
23883       planes
23884           Set which planes will be processed as bitmap, unprocessed planes
23885           will be copied from first stream.  By default value 0xf, all planes
23886           will be processed.
23887
23888       Commands
23889
23890       This filter supports the all above options as commands.
23891
23892   maskedmerge
23893       Merge the first input stream with the second input stream using per
23894       pixel weights in the third input stream.
23895
23896       A value of 0 in the third stream pixel component means that pixel
23897       component from first stream is returned unchanged, while maximum value
23898       (eg. 255 for 8-bit videos) means that pixel component from second
23899       stream is returned unchanged. Intermediate values define the amount of
23900       merging between both input stream's pixel components.
23901
23902       This filter accepts the following options:
23903
23904       planes
23905           Set which planes will be processed as bitmap, unprocessed planes
23906           will be copied from first stream.  By default value 0xf, all planes
23907           will be processed.
23908
23909       Commands
23910
23911       This filter supports the all above options as commands.
23912
23913   maskedmin
23914       Merge the second and third input stream into output stream using
23915       absolute differences between second input stream and first input stream
23916       and absolute difference between third input stream and first input
23917       stream. The picked value will be from second input stream if second
23918       absolute difference is less than first one or from third input stream
23919       otherwise.
23920
23921       This filter accepts the following options:
23922
23923       planes
23924           Set which planes will be processed as bitmap, unprocessed planes
23925           will be copied from first stream.  By default value 0xf, all planes
23926           will be processed.
23927
23928       Commands
23929
23930       This filter supports the all above options as commands.
23931
23932   maskedthreshold
23933       Pick pixels comparing absolute difference of two video streams with
23934       fixed threshold.
23935
23936       If absolute difference between pixel component of first and second
23937       video stream is equal or lower than user supplied threshold than pixel
23938       component from first video stream is picked, otherwise pixel component
23939       from second video stream is picked.
23940
23941       This filter accepts the following options:
23942
23943       threshold
23944           Set threshold used when picking pixels from absolute difference
23945           from two input video streams.
23946
23947       planes
23948           Set which planes will be processed as bitmap, unprocessed planes
23949           will be copied from second stream.  By default value 0xf, all
23950           planes will be processed.
23951
23952       Commands
23953
23954       This filter supports the all above options as commands.
23955
23956   maskfun
23957       Create mask from input video.
23958
23959       For example it is useful to create motion masks after "tblend" filter.
23960
23961       This filter accepts the following options:
23962
23963       low Set low threshold. Any pixel component lower or exact than this
23964           value will be set to 0.
23965
23966       high
23967           Set high threshold. Any pixel component higher than this value will
23968           be set to max value allowed for current pixel format.
23969
23970       planes
23971           Set planes to filter, by default all available planes are filtered.
23972
23973       fill
23974           Fill all frame pixels with this value.
23975
23976       sum Set max average pixel value for frame. If sum of all pixel
23977           components is higher that this average, output frame will be
23978           completely filled with value set by fill option.  Typically useful
23979           for scene changes when used in combination with "tblend" filter.
23980
23981       Commands
23982
23983       This filter supports the all above options as commands.
23984
23985   mcdeint
23986       Apply motion-compensation deinterlacing.
23987
23988       It needs one field per frame as input and must thus be used together
23989       with yadif=1/3 or equivalent.
23990
23991       This filter is only available in ffmpeg version 4.4 or earlier.
23992
23993       This filter accepts the following options:
23994
23995       mode
23996           Set the deinterlacing mode.
23997
23998           It accepts one of the following values:
23999
24000           fast
24001           medium
24002           slow
24003               use iterative motion estimation
24004
24005           extra_slow
24006               like slow, but use multiple reference frames.
24007
24008           Default value is fast.
24009
24010       parity
24011           Set the picture field parity assumed for the input video. It must
24012           be one of the following values:
24013
24014           0, tff
24015               assume top field first
24016
24017           1, bff
24018               assume bottom field first
24019
24020           Default value is bff.
24021
24022       qp  Set per-block quantization parameter (QP) used by the internal
24023           encoder.
24024
24025           Higher values should result in a smoother motion vector field but
24026           less optimal individual vectors. Default value is 1.
24027
24028   median
24029       Pick median pixel from certain rectangle defined by radius.
24030
24031       This filter accepts the following options:
24032
24033       radius
24034           Set horizontal radius size. Default value is 1.  Allowed range is
24035           integer from 1 to 127.
24036
24037       planes
24038           Set which planes to process. Default is 15, which is all available
24039           planes.
24040
24041       radiusV
24042           Set vertical radius size. Default value is 0.  Allowed range is
24043           integer from 0 to 127.  If it is 0, value will be picked from
24044           horizontal "radius" option.
24045
24046       percentile
24047           Set median percentile. Default value is 0.5.  Default value of 0.5
24048           will pick always median values, while 0 will pick minimum values,
24049           and 1 maximum values.
24050
24051       Commands
24052
24053       This filter supports same commands as options.  The command accepts the
24054       same syntax of the corresponding option.
24055
24056       If the specified expression is not valid, it is kept at its current
24057       value.
24058
24059   mergeplanes
24060       Merge color channel components from several video streams.
24061
24062       The filter accepts up to 4 input streams, and merge selected input
24063       planes to the output video.
24064
24065       This filter accepts the following options:
24066
24067       mapping
24068           Set input to output plane mapping. Default is 0.
24069
24070           The mappings is specified as a bitmap. It should be specified as a
24071           hexadecimal number in the form 0xAa[Bb[Cc[Dd]]]. 'Aa' describes the
24072           mapping for the first plane of the output stream. 'A' sets the
24073           number of the input stream to use (from 0 to 3), and 'a' the plane
24074           number of the corresponding input to use (from 0 to 3). The rest of
24075           the mappings is similar, 'Bb' describes the mapping for the output
24076           stream second plane, 'Cc' describes the mapping for the output
24077           stream third plane and 'Dd' describes the mapping for the output
24078           stream fourth plane.
24079
24080       format
24081           Set output pixel format. Default is "yuva444p".
24082
24083       map0s
24084       map1s
24085       map2s
24086       map3s
24087           Set input to output stream mapping for output Nth plane. Default is
24088           0.
24089
24090       map0p
24091       map1p
24092       map2p
24093       map3p
24094           Set input to output plane mapping for output Nth plane. Default is
24095           0.
24096
24097       Examples
24098
24099       •   Merge three gray video streams of same width and height into single
24100           video stream:
24101
24102                   [a0][a1][a2]mergeplanes=0x001020:yuv444p
24103
24104       •   Merge 1st yuv444p stream and 2nd gray video stream into yuva444p
24105           video stream:
24106
24107                   [a0][a1]mergeplanes=0x00010210:yuva444p
24108
24109       •   Swap Y and A plane in yuva444p stream:
24110
24111                   format=yuva444p,mergeplanes=0x03010200:yuva444p
24112
24113       •   Swap U and V plane in yuv420p stream:
24114
24115                   format=yuv420p,mergeplanes=0x000201:yuv420p
24116
24117       •   Cast a rgb24 clip to yuv444p:
24118
24119                   format=rgb24,mergeplanes=0x000102:yuv444p
24120
24121   mestimate
24122       Estimate and export motion vectors using block matching algorithms.
24123       Motion vectors are stored in frame side data to be used by other
24124       filters.
24125
24126       This filter accepts the following options:
24127
24128       method
24129           Specify the motion estimation method. Accepts one of the following
24130           values:
24131
24132           esa Exhaustive search algorithm.
24133
24134           tss Three step search algorithm.
24135
24136           tdls
24137               Two dimensional logarithmic search algorithm.
24138
24139           ntss
24140               New three step search algorithm.
24141
24142           fss Four step search algorithm.
24143
24144           ds  Diamond search algorithm.
24145
24146           hexbs
24147               Hexagon-based search algorithm.
24148
24149           epzs
24150               Enhanced predictive zonal search algorithm.
24151
24152           umh Uneven multi-hexagon search algorithm.
24153
24154           Default value is esa.
24155
24156       mb_size
24157           Macroblock size. Default 16.
24158
24159       search_param
24160           Search parameter. Default 7.
24161
24162   midequalizer
24163       Apply Midway Image Equalization effect using two video streams.
24164
24165       Midway Image Equalization adjusts a pair of images to have the same
24166       histogram, while maintaining their dynamics as much as possible. It's
24167       useful for e.g. matching exposures from a pair of stereo cameras.
24168
24169       This filter has two inputs and one output, which must be of same pixel
24170       format, but may be of different sizes. The output of filter is first
24171       input adjusted with midway histogram of both inputs.
24172
24173       This filter accepts the following option:
24174
24175       planes
24176           Set which planes to process. Default is 15, which is all available
24177           planes.
24178
24179   minterpolate
24180       Convert the video to specified frame rate using motion interpolation.
24181
24182       This filter accepts the following options:
24183
24184       fps Specify the output frame rate. This can be rational e.g.
24185           "60000/1001". Frames are dropped if fps is lower than source fps.
24186           Default 60.
24187
24188       mi_mode
24189           Motion interpolation mode. Following values are accepted:
24190
24191           dup Duplicate previous or next frame for interpolating new ones.
24192
24193           blend
24194               Blend source frames. Interpolated frame is mean of previous and
24195               next frames.
24196
24197           mci Motion compensated interpolation. Following options are
24198               effective when this mode is selected:
24199
24200               mc_mode
24201                   Motion compensation mode. Following values are accepted:
24202
24203                   obmc
24204                       Overlapped block motion compensation.
24205
24206                   aobmc
24207                       Adaptive overlapped block motion compensation. Window
24208                       weighting coefficients are controlled adaptively
24209                       according to the reliabilities of the neighboring
24210                       motion vectors to reduce oversmoothing.
24211
24212                   Default mode is obmc.
24213
24214               me_mode
24215                   Motion estimation mode. Following values are accepted:
24216
24217                   bidir
24218                       Bidirectional motion estimation. Motion vectors are
24219                       estimated for each source frame in both forward and
24220                       backward directions.
24221
24222                   bilat
24223                       Bilateral motion estimation. Motion vectors are
24224                       estimated directly for interpolated frame.
24225
24226                   Default mode is bilat.
24227
24228               me  The algorithm to be used for motion estimation. Following
24229                   values are accepted:
24230
24231                   esa Exhaustive search algorithm.
24232
24233                   tss Three step search algorithm.
24234
24235                   tdls
24236                       Two dimensional logarithmic search algorithm.
24237
24238                   ntss
24239                       New three step search algorithm.
24240
24241                   fss Four step search algorithm.
24242
24243                   ds  Diamond search algorithm.
24244
24245                   hexbs
24246                       Hexagon-based search algorithm.
24247
24248                   epzs
24249                       Enhanced predictive zonal search algorithm.
24250
24251                   umh Uneven multi-hexagon search algorithm.
24252
24253                   Default algorithm is epzs.
24254
24255               mb_size
24256                   Macroblock size. Default 16.
24257
24258               search_param
24259                   Motion estimation search parameter. Default 32.
24260
24261               vsbmc
24262                   Enable variable-size block motion compensation. Motion
24263                   estimation is applied with smaller block sizes at object
24264                   boundaries in order to make the them less blur. Default is
24265                   0 (disabled).
24266
24267       scd Scene change detection method. Scene change leads motion vectors to
24268           be in random direction. Scene change detection replace interpolated
24269           frames by duplicate ones. May not be needed for other modes.
24270           Following values are accepted:
24271
24272           none
24273               Disable scene change detection.
24274
24275           fdiff
24276               Frame difference. Corresponding pixel values are compared and
24277               if it satisfies scd_threshold scene change is detected.
24278
24279           Default method is fdiff.
24280
24281       scd_threshold
24282           Scene change detection threshold. Default is 10..
24283
24284   mix
24285       Mix several video input streams into one video stream.
24286
24287       A description of the accepted options follows.
24288
24289       inputs
24290           The number of inputs. If unspecified, it defaults to 2.
24291
24292       weights
24293           Specify weight of each input video stream as sequence.  Each weight
24294           is separated by space. If number of weights is smaller than number
24295           of frames last specified weight will be used for all remaining
24296           unset weights.
24297
24298       scale
24299           Specify scale, if it is set it will be multiplied with sum of each
24300           weight multiplied with pixel values to give final destination pixel
24301           value. By default scale is auto scaled to sum of weights.
24302
24303       planes
24304           Set which planes to filter. Default is all. Allowed range is from 0
24305           to 15.
24306
24307       duration
24308           Specify how end of stream is determined.
24309
24310           longest
24311               The duration of the longest input. (default)
24312
24313           shortest
24314               The duration of the shortest input.
24315
24316           first
24317               The duration of the first input.
24318
24319       Commands
24320
24321       This filter supports the following commands:
24322
24323       weights
24324       scale
24325       planes
24326           Syntax is same as option with same name.
24327
24328   monochrome
24329       Convert video to gray using custom color filter.
24330
24331       A description of the accepted options follows.
24332
24333       cb  Set the chroma blue spot. Allowed range is from -1 to 1.  Default
24334           value is 0.
24335
24336       cr  Set the chroma red spot. Allowed range is from -1 to 1.  Default
24337           value is 0.
24338
24339       size
24340           Set the color filter size. Allowed range is from .1 to 10.  Default
24341           value is 1.
24342
24343       high
24344           Set the highlights strength. Allowed range is from 0 to 1.  Default
24345           value is 0.
24346
24347       Commands
24348
24349       This filter supports the all above options as commands.
24350
24351   morpho
24352       This filter allows to apply main morphological grayscale transforms,
24353       erode and dilate with arbitrary structures set in second input stream.
24354
24355       Unlike naive implementation and much slower performance in erosion and
24356       dilation filters, when speed is critical "morpho" filter should be used
24357       instead.
24358
24359       A description of accepted options follows,
24360
24361       mode
24362           Set morphological transform to apply, can be:
24363
24364           erode
24365           dilate
24366           open
24367           close
24368           gradient
24369           tophat
24370           blackhat
24371
24372           Default is "erode".
24373
24374       planes
24375           Set planes to filter, by default all planes except alpha are
24376           filtered.
24377
24378       structure
24379           Set which structure video frames will be processed from second
24380           input stream, can be first or all. Default is all.
24381
24382       The "morpho" filter also supports the framesync options.
24383
24384       Commands
24385
24386       This filter supports same commands as options.
24387
24388   mpdecimate
24389       Drop frames that do not differ greatly from the previous frame in order
24390       to reduce frame rate.
24391
24392       The main use of this filter is for very-low-bitrate encoding (e.g.
24393       streaming over dialup modem), but it could in theory be used for fixing
24394       movies that were inverse-telecined incorrectly.
24395
24396       A description of the accepted options follows.
24397
24398       max Set the maximum number of consecutive frames which can be dropped
24399           (if positive), or the minimum interval between dropped frames (if
24400           negative). If the value is 0, the frame is dropped disregarding the
24401           number of previous sequentially dropped frames.
24402
24403           Default value is 0.
24404
24405       hi
24406       lo
24407       frac
24408           Set the dropping threshold values.
24409
24410           Values for hi and lo are for 8x8 pixel blocks and represent actual
24411           pixel value differences, so a threshold of 64 corresponds to 1 unit
24412           of difference for each pixel, or the same spread out differently
24413           over the block.
24414
24415           A frame is a candidate for dropping if no 8x8 blocks differ by more
24416           than a threshold of hi, and if no more than frac blocks (1 meaning
24417           the whole image) differ by more than a threshold of lo.
24418
24419           Default value for hi is 64*12, default value for lo is 64*5, and
24420           default value for frac is 0.33.
24421
24422   msad
24423       Obtain the MSAD (Mean Sum of Absolute Differences) between two input
24424       videos.
24425
24426       This filter takes two input videos.
24427
24428       Both input videos must have the same resolution and pixel format for
24429       this filter to work correctly. Also it assumes that both inputs have
24430       the same number of frames, which are compared one by one.
24431
24432       The obtained per component, average, min and max MSAD is printed
24433       through the logging system.
24434
24435       The filter stores the calculated MSAD of each frame in frame metadata.
24436
24437       In the below example the input file main.mpg being processed is
24438       compared with the reference file ref.mpg.
24439
24440               ffmpeg -i main.mpg -i ref.mpg -lavfi msad -f null -
24441
24442   multiply
24443       Multiply first video stream pixels values with second video stream
24444       pixels values.
24445
24446       The filter accepts the following options:
24447
24448       scale
24449           Set the scale applied to second video stream. By default is 1.
24450           Allowed range is from 0 to 9.
24451
24452       offset
24453           Set the offset applied to second video stream. By default is 0.5.
24454           Allowed range is from "-1" to 1.
24455
24456       planes
24457           Specify planes from input video stream that will be processed.  By
24458           default all planes are processed.
24459
24460       Commands
24461
24462       This filter supports same commands as options.
24463
24464   negate
24465       Negate (invert) the input video.
24466
24467       It accepts the following option:
24468
24469       components
24470           Set components to negate.
24471
24472           Available values for components are:
24473
24474           y
24475           u
24476           v
24477           a
24478           r
24479           g
24480           b
24481       negate_alpha
24482           With value 1, it negates the alpha component, if present. Default
24483           value is 0.
24484
24485       Commands
24486
24487       This filter supports same commands as options.
24488
24489   nlmeans
24490       Denoise frames using Non-Local Means algorithm.
24491
24492       Each pixel is adjusted by looking for other pixels with similar
24493       contexts. This context similarity is defined by comparing their
24494       surrounding patches of size pxp. Patches are searched in an area of rxr
24495       around the pixel.
24496
24497       Note that the research area defines centers for patches, which means
24498       some patches will be made of pixels outside that research area.
24499
24500       The filter accepts the following options.
24501
24502       s   Set denoising strength. Default is 1.0. Must be in range [1.0,
24503           30.0].
24504
24505       p   Set patch size. Default is 7. Must be odd number in range [0, 99].
24506
24507       pc  Same as p but for chroma planes.
24508
24509           The default value is 0 and means automatic.
24510
24511       r   Set research size. Default is 15. Must be odd number in range [0,
24512           99].
24513
24514       rc  Same as r but for chroma planes.
24515
24516           The default value is 0 and means automatic.
24517
24518   nnedi
24519       Deinterlace video using neural network edge directed interpolation.
24520
24521       This filter accepts the following options:
24522
24523       weights
24524           Mandatory option, without binary file filter can not work.
24525           Currently file can be found here:
24526           https://github.com/dubhater/vapoursynth-nnedi3/blob/master/src/nnedi3_weights.bin
24527
24528       deint
24529           Set which frames to deinterlace, by default it is "all".  Can be
24530           "all" or "interlaced".
24531
24532       field
24533           Set mode of operation.
24534
24535           Can be one of the following:
24536
24537           af  Use frame flags, both fields.
24538
24539           a   Use frame flags, single field.
24540
24541           t   Use top field only.
24542
24543           b   Use bottom field only.
24544
24545           tf  Use both fields, top first.
24546
24547           bf  Use both fields, bottom first.
24548
24549       planes
24550           Set which planes to process, by default filter process all frames.
24551
24552       nsize
24553           Set size of local neighborhood around each pixel, used by the
24554           predictor neural network.
24555
24556           Can be one of the following:
24557
24558           s8x6
24559           s16x6
24560           s32x6
24561           s48x6
24562           s8x4
24563           s16x4
24564           s32x4
24565       nns Set the number of neurons in predictor neural network.  Can be one
24566           of the following:
24567
24568           n16
24569           n32
24570           n64
24571           n128
24572           n256
24573       qual
24574           Controls the number of different neural network predictions that
24575           are blended together to compute the final output value. Can be
24576           "fast", default or "slow".
24577
24578       etype
24579           Set which set of weights to use in the predictor.  Can be one of
24580           the following:
24581
24582           a, abs
24583               weights trained to minimize absolute error
24584
24585           s, mse
24586               weights trained to minimize squared error
24587
24588       pscrn
24589           Controls whether or not the prescreener neural network is used to
24590           decide which pixels should be processed by the predictor neural
24591           network and which can be handled by simple cubic interpolation.
24592           The prescreener is trained to know whether cubic interpolation will
24593           be sufficient for a pixel or whether it should be predicted by the
24594           predictor nn.  The computational complexity of the prescreener nn
24595           is much less than that of the predictor nn. Since most pixels can
24596           be handled by cubic interpolation, using the prescreener generally
24597           results in much faster processing.  The prescreener is pretty
24598           accurate, so the difference between using it and not using it is
24599           almost always unnoticeable.
24600
24601           Can be one of the following:
24602
24603           none
24604           original
24605           new
24606           new2
24607           new3
24608
24609           Default is "new".
24610
24611       Commands
24612
24613       This filter supports same commands as options, excluding weights
24614       option.
24615
24616   noformat
24617       Force libavfilter not to use any of the specified pixel formats for the
24618       input to the next filter.
24619
24620       It accepts the following parameters:
24621
24622       pix_fmts
24623           A '|'-separated list of pixel format names, such as
24624           pix_fmts=yuv420p|monow|rgb24".
24625
24626       Examples
24627
24628       •   Force libavfilter to use a format different from yuv420p for the
24629           input to the vflip filter:
24630
24631                   noformat=pix_fmts=yuv420p,vflip
24632
24633       •   Convert the input video to any of the formats not contained in the
24634           list:
24635
24636                   noformat=yuv420p|yuv444p|yuv410p
24637
24638   noise
24639       Add noise on video input frame.
24640
24641       The filter accepts the following options:
24642
24643       all_seed
24644       c0_seed
24645       c1_seed
24646       c2_seed
24647       c3_seed
24648           Set noise seed for specific pixel component or all pixel components
24649           in case of all_seed. Default value is 123457.
24650
24651       all_strength, alls
24652       c0_strength, c0s
24653       c1_strength, c1s
24654       c2_strength, c2s
24655       c3_strength, c3s
24656           Set noise strength for specific pixel component or all pixel
24657           components in case all_strength. Default value is 0. Allowed range
24658           is [0, 100].
24659
24660       all_flags, allf
24661       c0_flags, c0f
24662       c1_flags, c1f
24663       c2_flags, c2f
24664       c3_flags, c3f
24665           Set pixel component flags or set flags for all components if
24666           all_flags.  Available values for component flags are:
24667
24668           a   averaged temporal noise (smoother)
24669
24670           p   mix random noise with a (semi)regular pattern
24671
24672           t   temporal noise (noise pattern changes between frames)
24673
24674           u   uniform noise (gaussian otherwise)
24675
24676       Examples
24677
24678       Add temporal and uniform noise to input video:
24679
24680               noise=alls=20:allf=t+u
24681
24682   normalize
24683       Normalize RGB video (aka histogram stretching, contrast stretching).
24684       See: https://en.wikipedia.org/wiki/Normalization_(image_processing)
24685
24686       For each channel of each frame, the filter computes the input range and
24687       maps it linearly to the user-specified output range. The output range
24688       defaults to the full dynamic range from pure black to pure white.
24689
24690       Temporal smoothing can be used on the input range to reduce flickering
24691       (rapid changes in brightness) caused when small dark or bright objects
24692       enter or leave the scene. This is similar to the auto-exposure
24693       (automatic gain control) on a video camera, and, like a video camera,
24694       it may cause a period of over- or under-exposure of the video.
24695
24696       The R,G,B channels can be normalized independently, which may cause
24697       some color shifting, or linked together as a single channel, which
24698       prevents color shifting. Linked normalization preserves hue.
24699       Independent normalization does not, so it can be used to remove some
24700       color casts. Independent and linked normalization can be combined in
24701       any ratio.
24702
24703       The normalize filter accepts the following options:
24704
24705       blackpt
24706       whitept
24707           Colors which define the output range. The minimum input value is
24708           mapped to the blackpt. The maximum input value is mapped to the
24709           whitept.  The defaults are black and white respectively. Specifying
24710           white for blackpt and black for whitept will give color-inverted,
24711           normalized video. Shades of grey can be used to reduce the dynamic
24712           range (contrast). Specifying saturated colors here can create some
24713           interesting effects.
24714
24715       smoothing
24716           The number of previous frames to use for temporal smoothing. The
24717           input range of each channel is smoothed using a rolling average
24718           over the current frame and the smoothing previous frames. The
24719           default is 0 (no temporal smoothing).
24720
24721       independence
24722           Controls the ratio of independent (color shifting) channel
24723           normalization to linked (color preserving) normalization. 0.0 is
24724           fully linked, 1.0 is fully independent. Defaults to 1.0 (fully
24725           independent).
24726
24727       strength
24728           Overall strength of the filter. 1.0 is full strength. 0.0 is a
24729           rather expensive no-op. Defaults to 1.0 (full strength).
24730
24731       Commands
24732
24733       This filter supports same commands as options, excluding smoothing
24734       option.  The command accepts the same syntax of the corresponding
24735       option.
24736
24737       If the specified expression is not valid, it is kept at its current
24738       value.
24739
24740       Examples
24741
24742       Stretch video contrast to use the full dynamic range, with no temporal
24743       smoothing; may flicker depending on the source content:
24744
24745               normalize=blackpt=black:whitept=white:smoothing=0
24746
24747       As above, but with 50 frames of temporal smoothing; flicker should be
24748       reduced, depending on the source content:
24749
24750               normalize=blackpt=black:whitept=white:smoothing=50
24751
24752       As above, but with hue-preserving linked channel normalization:
24753
24754               normalize=blackpt=black:whitept=white:smoothing=50:independence=0
24755
24756       As above, but with half strength:
24757
24758               normalize=blackpt=black:whitept=white:smoothing=50:independence=0:strength=0.5
24759
24760       Map the darkest input color to red, the brightest input color to cyan:
24761
24762               normalize=blackpt=red:whitept=cyan
24763
24764   null
24765       Pass the video source unchanged to the output.
24766
24767   ocr
24768       Optical Character Recognition
24769
24770       This filter uses Tesseract for optical character recognition. To enable
24771       compilation of this filter, you need to configure FFmpeg with
24772       "--enable-libtesseract".
24773
24774       It accepts the following options:
24775
24776       datapath
24777           Set datapath to tesseract data. Default is to use whatever was set
24778           at installation.
24779
24780       language
24781           Set language, default is "eng".
24782
24783       whitelist
24784           Set character whitelist.
24785
24786       blacklist
24787           Set character blacklist.
24788
24789       The filter exports recognized text as the frame metadata
24790       "lavfi.ocr.text".  The filter exports confidence of recognized words as
24791       the frame metadata "lavfi.ocr.confidence".
24792
24793   ocv
24794       Apply a video transform using libopencv.
24795
24796       To enable this filter, install the libopencv library and headers and
24797       configure FFmpeg with "--enable-libopencv".
24798
24799       It accepts the following parameters:
24800
24801       filter_name
24802           The name of the libopencv filter to apply.
24803
24804       filter_params
24805           The parameters to pass to the libopencv filter. If not specified,
24806           the default values are assumed.
24807
24808       Refer to the official libopencv documentation for more precise
24809       information:
24810       <http://docs.opencv.org/master/modules/imgproc/doc/filtering.html>
24811
24812       Several libopencv filters are supported; see the following subsections.
24813
24814       dilate
24815
24816       Dilate an image by using a specific structuring element.  It
24817       corresponds to the libopencv function "cvDilate".
24818
24819       It accepts the parameters: struct_el|nb_iterations.
24820
24821       struct_el represents a structuring element, and has the syntax:
24822       colsxrows+anchor_xxanchor_y/shape
24823
24824       cols and rows represent the number of columns and rows of the
24825       structuring element, anchor_x and anchor_y the anchor point, and shape
24826       the shape for the structuring element. shape must be "rect", "cross",
24827       "ellipse", or "custom".
24828
24829       If the value for shape is "custom", it must be followed by a string of
24830       the form "=filename". The file with name filename is assumed to
24831       represent a binary image, with each printable character corresponding
24832       to a bright pixel. When a custom shape is used, cols and rows are
24833       ignored, the number or columns and rows of the read file are assumed
24834       instead.
24835
24836       The default value for struct_el is "3x3+0x0/rect".
24837
24838       nb_iterations specifies the number of times the transform is applied to
24839       the image, and defaults to 1.
24840
24841       Some examples:
24842
24843               # Use the default values
24844               ocv=dilate
24845
24846               # Dilate using a structuring element with a 5x5 cross, iterating two times
24847               ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2
24848
24849               # Read the shape from the file diamond.shape, iterating two times.
24850               # The file diamond.shape may contain a pattern of characters like this
24851               #   *
24852               #  ***
24853               # *****
24854               #  ***
24855               #   *
24856               # The specified columns and rows are ignored
24857               # but the anchor point coordinates are not
24858               ocv=dilate:0x0+2x2/custom=diamond.shape|2
24859
24860       erode
24861
24862       Erode an image by using a specific structuring element.  It corresponds
24863       to the libopencv function "cvErode".
24864
24865       It accepts the parameters: struct_el:nb_iterations, with the same
24866       syntax and semantics as the dilate filter.
24867
24868       smooth
24869
24870       Smooth the input video.
24871
24872       The filter takes the following parameters:
24873       type|param1|param2|param3|param4.
24874
24875       type is the type of smooth filter to apply, and must be one of the
24876       following values: "blur", "blur_no_scale", "median", "gaussian", or
24877       "bilateral". The default value is "gaussian".
24878
24879       The meaning of param1, param2, param3, and param4 depends on the smooth
24880       type. param1 and param2 accept integer positive values or 0. param3 and
24881       param4 accept floating point values.
24882
24883       The default value for param1 is 3. The default value for the other
24884       parameters is 0.
24885
24886       These parameters correspond to the parameters assigned to the libopencv
24887       function "cvSmooth".
24888
24889   oscilloscope
24890       2D Video Oscilloscope.
24891
24892       Useful to measure spatial impulse, step responses, chroma delays, etc.
24893
24894       It accepts the following parameters:
24895
24896       x   Set scope center x position.
24897
24898       y   Set scope center y position.
24899
24900       s   Set scope size, relative to frame diagonal.
24901
24902       t   Set scope tilt/rotation.
24903
24904       o   Set trace opacity.
24905
24906       tx  Set trace center x position.
24907
24908       ty  Set trace center y position.
24909
24910       tw  Set trace width, relative to width of frame.
24911
24912       th  Set trace height, relative to height of frame.
24913
24914       c   Set which components to trace. By default it traces first three
24915           components.
24916
24917       g   Draw trace grid. By default is enabled.
24918
24919       st  Draw some statistics. By default is enabled.
24920
24921       sc  Draw scope. By default is enabled.
24922
24923       Commands
24924
24925       This filter supports same commands as options.  The command accepts the
24926       same syntax of the corresponding option.
24927
24928       If the specified expression is not valid, it is kept at its current
24929       value.
24930
24931       Examples
24932
24933       •   Inspect full first row of video frame.
24934
24935                   oscilloscope=x=0.5:y=0:s=1
24936
24937       •   Inspect full last row of video frame.
24938
24939                   oscilloscope=x=0.5:y=1:s=1
24940
24941       •   Inspect full 5th line of video frame of height 1080.
24942
24943                   oscilloscope=x=0.5:y=5/1080:s=1
24944
24945       •   Inspect full last column of video frame.
24946
24947                   oscilloscope=x=1:y=0.5:s=1:t=1
24948
24949   overlay
24950       Overlay one video on top of another.
24951
24952       It takes two inputs and has one output. The first input is the "main"
24953       video on which the second input is overlaid.
24954
24955       It accepts the following parameters:
24956
24957       A description of the accepted options follows.
24958
24959       x
24960       y   Set the expression for the x and y coordinates of the overlaid
24961           video on the main video. Default value is "0" for both expressions.
24962           In case the expression is invalid, it is set to a huge value
24963           (meaning that the overlay will not be displayed within the output
24964           visible area).
24965
24966       eof_action
24967           See framesync.
24968
24969       eval
24970           Set when the expressions for x, and y are evaluated.
24971
24972           It accepts the following values:
24973
24974           init
24975               only evaluate expressions once during the filter initialization
24976               or when a command is processed
24977
24978           frame
24979               evaluate expressions for each incoming frame
24980
24981           Default value is frame.
24982
24983       shortest
24984           See framesync.
24985
24986       format
24987           Set the format for the output video.
24988
24989           It accepts the following values:
24990
24991           yuv420
24992               force YUV420 output
24993
24994           yuv420p10
24995               force YUV420p10 output
24996
24997           yuv422
24998               force YUV422 output
24999
25000           yuv422p10
25001               force YUV422p10 output
25002
25003           yuv444
25004               force YUV444 output
25005
25006           rgb force packed RGB output
25007
25008           gbrp
25009               force planar RGB output
25010
25011           auto
25012               automatically pick format
25013
25014           Default value is yuv420.
25015
25016       repeatlast
25017           See framesync.
25018
25019       alpha
25020           Set format of alpha of the overlaid video, it can be straight or
25021           premultiplied. Default is straight.
25022
25023       The x, and y expressions can contain the following parameters.
25024
25025       main_w, W
25026       main_h, H
25027           The main input width and height.
25028
25029       overlay_w, w
25030       overlay_h, h
25031           The overlay input width and height.
25032
25033       x
25034       y   The computed values for x and y. They are evaluated for each new
25035           frame.
25036
25037       hsub
25038       vsub
25039           horizontal and vertical chroma subsample values of the output
25040           format. For example for the pixel format "yuv422p" hsub is 2 and
25041           vsub is 1.
25042
25043       n   the number of input frame, starting from 0
25044
25045       pos the position in the file of the input frame, NAN if unknown
25046
25047       t   The timestamp, expressed in seconds. It's NAN if the input
25048           timestamp is unknown.
25049
25050       This filter also supports the framesync options.
25051
25052       Note that the n, pos, t variables are available only when evaluation is
25053       done per frame, and will evaluate to NAN when eval is set to init.
25054
25055       Be aware that frames are taken from each input video in timestamp
25056       order, hence, if their initial timestamps differ, it is a good idea to
25057       pass the two inputs through a setpts=PTS-STARTPTS filter to have them
25058       begin in the same zero timestamp, as the example for the movie filter
25059       does.
25060
25061       You can chain together more overlays but you should test the efficiency
25062       of such approach.
25063
25064       Commands
25065
25066       This filter supports the following commands:
25067
25068       x
25069       y   Modify the x and y of the overlay input.  The command accepts the
25070           same syntax of the corresponding option.
25071
25072           If the specified expression is not valid, it is kept at its current
25073           value.
25074
25075       Examples
25076
25077       •   Draw the overlay at 10 pixels from the bottom right corner of the
25078           main video:
25079
25080                   overlay=main_w-overlay_w-10:main_h-overlay_h-10
25081
25082           Using named options the example above becomes:
25083
25084                   overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
25085
25086       •   Insert a transparent PNG logo in the bottom left corner of the
25087           input, using the ffmpeg tool with the "-filter_complex" option:
25088
25089                   ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
25090
25091       •   Insert 2 different transparent PNG logos (second logo on bottom
25092           right corner) using the ffmpeg tool:
25093
25094                   ffmpeg -i input -i logo1 -i logo2 -filter_complex 'overlay=x=10:y=H-h-10,overlay=x=W-w-10:y=H-h-10' output
25095
25096       •   Add a transparent color layer on top of the main video; "WxH" must
25097           specify the size of the main input to the overlay filter:
25098
25099                   color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
25100
25101       •   Play an original video and a filtered version (here with the
25102           deshake filter) side by side using the ffplay tool:
25103
25104                   ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
25105
25106           The above command is the same as:
25107
25108                   ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
25109
25110       •   Make a sliding overlay appearing from the left to the right top
25111           part of the screen starting since time 2:
25112
25113                   overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
25114
25115       •   Compose output by putting two input videos side to side:
25116
25117                   ffmpeg -i left.avi -i right.avi -filter_complex "
25118                   nullsrc=size=200x100 [background];
25119                   [0:v] setpts=PTS-STARTPTS, scale=100x100 [left];
25120                   [1:v] setpts=PTS-STARTPTS, scale=100x100 [right];
25121                   [background][left]       overlay=shortest=1       [background+left];
25122                   [background+left][right] overlay=shortest=1:x=100 [left+right]
25123                   "
25124
25125       •   Mask 10-20 seconds of a video by applying the delogo filter to a
25126           section
25127
25128                   ffmpeg -i test.avi -codec:v:0 wmv2 -ar 11025 -b:v 9000k
25129                   -vf '[in]split[split_main][split_delogo];[split_delogo]trim=start=360:end=371,delogo=0:0:640:480[delogoed];[split_main][delogoed]overlay=eof_action=pass[out]'
25130                   masked.avi
25131
25132       •   Chain several overlays in cascade:
25133
25134                   nullsrc=s=200x200 [bg];
25135                   testsrc=s=100x100, split=4 [in0][in1][in2][in3];
25136                   [in0] lutrgb=r=0, [bg]   overlay=0:0     [mid0];
25137                   [in1] lutrgb=g=0, [mid0] overlay=100:0   [mid1];
25138                   [in2] lutrgb=b=0, [mid1] overlay=0:100   [mid2];
25139                   [in3] null,       [mid2] overlay=100:100 [out0]
25140
25141   overlay_cuda
25142       Overlay one video on top of another.
25143
25144       This is the CUDA variant of the overlay filter.  It only accepts CUDA
25145       frames. The underlying input pixel formats have to match.
25146
25147       It takes two inputs and has one output. The first input is the "main"
25148       video on which the second input is overlaid.
25149
25150       It accepts the following parameters:
25151
25152       x
25153       y   Set expressions for the x and y coordinates of the overlaid video
25154           on the main video.
25155
25156           They can contain the following parameters:
25157
25158           main_w, W
25159           main_h, H
25160               The main input width and height.
25161
25162           overlay_w, w
25163           overlay_h, h
25164               The overlay input width and height.
25165
25166           x
25167           y   The computed values for x and y. They are evaluated for each
25168               new frame.
25169
25170           n   The ordinal index of the main input frame, starting from 0.
25171
25172           pos The byte offset position in the file of the main input frame,
25173               NAN if unknown.
25174
25175           t   The timestamp of the main input frame, expressed in seconds,
25176               NAN if unknown.
25177
25178           Default value is "0" for both expressions.
25179
25180       eval
25181           Set when the expressions for x and y are evaluated.
25182
25183           It accepts the following values:
25184
25185           init
25186               Evaluate expressions once during filter initialization or when
25187               a command is processed.
25188
25189           frame
25190               Evaluate expressions for each incoming frame
25191
25192           Default value is frame.
25193
25194       eof_action
25195           See framesync.
25196
25197       shortest
25198           See framesync.
25199
25200       repeatlast
25201           See framesync.
25202
25203       This filter also supports the framesync options.
25204
25205   owdenoise
25206       Apply Overcomplete Wavelet denoiser.
25207
25208       The filter accepts the following options:
25209
25210       depth
25211           Set depth.
25212
25213           Larger depth values will denoise lower frequency components more,
25214           but slow down filtering.
25215
25216           Must be an int in the range 8-16, default is 8.
25217
25218       luma_strength, ls
25219           Set luma strength.
25220
25221           Must be a double value in the range 0-1000, default is 1.0.
25222
25223       chroma_strength, cs
25224           Set chroma strength.
25225
25226           Must be a double value in the range 0-1000, default is 1.0.
25227
25228   pad
25229       Add paddings to the input image, and place the original input at the
25230       provided x, y coordinates.
25231
25232       It accepts the following parameters:
25233
25234       width, w
25235       height, h
25236           Specify an expression for the size of the output image with the
25237           paddings added. If the value for width or height is 0, the
25238           corresponding input size is used for the output.
25239
25240           The width expression can reference the value set by the height
25241           expression, and vice versa.
25242
25243           The default value of width and height is 0.
25244
25245       x
25246       y   Specify the offsets to place the input image at within the padded
25247           area, with respect to the top/left border of the output image.
25248
25249           The x expression can reference the value set by the y expression,
25250           and vice versa.
25251
25252           The default value of x and y is 0.
25253
25254           If x or y evaluate to a negative number, they'll be changed so the
25255           input image is centered on the padded area.
25256
25257       color
25258           Specify the color of the padded area. For the syntax of this
25259           option, check the "Color" section in the ffmpeg-utils manual.
25260
25261           The default value of color is "black".
25262
25263       eval
25264           Specify when to evaluate  width, height, x and y expression.
25265
25266           It accepts the following values:
25267
25268           init
25269               Only evaluate expressions once during the filter initialization
25270               or when a command is processed.
25271
25272           frame
25273               Evaluate expressions for each incoming frame.
25274
25275           Default value is init.
25276
25277       aspect
25278           Pad to aspect instead to a resolution.
25279
25280       The value for the width, height, x, and y options are expressions
25281       containing the following constants:
25282
25283       in_w
25284       in_h
25285           The input video width and height.
25286
25287       iw
25288       ih  These are the same as in_w and in_h.
25289
25290       out_w
25291       out_h
25292           The output width and height (the size of the padded area), as
25293           specified by the width and height expressions.
25294
25295       ow
25296       oh  These are the same as out_w and out_h.
25297
25298       x
25299       y   The x and y offsets as specified by the x and y expressions, or NAN
25300           if not yet specified.
25301
25302       a   same as iw / ih
25303
25304       sar input sample aspect ratio
25305
25306       dar input display aspect ratio, it is the same as (iw / ih) * sar
25307
25308       hsub
25309       vsub
25310           The horizontal and vertical chroma subsample values. For example
25311           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
25312
25313       Examples
25314
25315       •   Add paddings with the color "violet" to the input video. The output
25316           video size is 640x480, and the top-left corner of the input video
25317           is placed at column 0, row 40
25318
25319                   pad=640:480:0:40:violet
25320
25321           The example above is equivalent to the following command:
25322
25323                   pad=width=640:height=480:x=0:y=40:color=violet
25324
25325       •   Pad the input to get an output with dimensions increased by 3/2,
25326           and put the input video at the center of the padded area:
25327
25328                   pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
25329
25330       •   Pad the input to get a squared output with size equal to the
25331           maximum value between the input width and height, and put the input
25332           video at the center of the padded area:
25333
25334                   pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
25335
25336       •   Pad the input to get a final w/h ratio of 16:9:
25337
25338                   pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
25339
25340       •   In case of anamorphic video, in order to set the output display
25341           aspect correctly, it is necessary to use sar in the expression,
25342           according to the relation:
25343
25344                   (ih * X / ih) * sar = output_dar
25345                   X = output_dar / sar
25346
25347           Thus the previous example needs to be modified to:
25348
25349                   pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
25350
25351       •   Double the output size and put the input video in the bottom-right
25352           corner of the output padded area:
25353
25354                   pad="2*iw:2*ih:ow-iw:oh-ih"
25355
25356   palettegen
25357       Generate one palette for a whole video stream.
25358
25359       It accepts the following options:
25360
25361       max_colors
25362           Set the maximum number of colors to quantize in the palette.  Note:
25363           the palette will still contain 256 colors; the unused palette
25364           entries will be black.
25365
25366       reserve_transparent
25367           Create a palette of 255 colors maximum and reserve the last one for
25368           transparency. Reserving the transparency color is useful for GIF
25369           optimization.  If not set, the maximum of colors in the palette
25370           will be 256. You probably want to disable this option for a
25371           standalone image.  Set by default.
25372
25373       transparency_color
25374           Set the color that will be used as background for transparency.
25375
25376       stats_mode
25377           Set statistics mode.
25378
25379           It accepts the following values:
25380
25381           full
25382               Compute full frame histograms.
25383
25384           diff
25385               Compute histograms only for the part that differs from previous
25386               frame. This might be relevant to give more importance to the
25387               moving part of your input if the background is static.
25388
25389           single
25390               Compute new histogram for each frame.
25391
25392           Default value is full.
25393
25394       use_alpha
25395           Create a palette of colors with alpha components.  Setting this,
25396           will automatically disable 'reserve_transparent'.
25397
25398       The filter also exports the frame metadata "lavfi.color_quant_ratio"
25399       ("nb_color_in / nb_color_out") which you can use to evaluate the degree
25400       of color quantization of the palette. This information is also visible
25401       at info logging level.
25402
25403       Examples
25404
25405       •   Generate a representative palette of a given video using ffmpeg:
25406
25407                   ffmpeg -i input.mkv -vf palettegen palette.png
25408
25409   paletteuse
25410       Use a palette to downsample an input video stream.
25411
25412       The filter takes two inputs: one video stream and a palette. The
25413       palette must be a 256 pixels image.
25414
25415       It accepts the following options:
25416
25417       dither
25418           Select dithering mode. Available algorithms are:
25419
25420           bayer
25421               Ordered 8x8 bayer dithering (deterministic)
25422
25423           heckbert
25424               Dithering as defined by Paul Heckbert in 1982 (simple error
25425               diffusion).  Note: this dithering is sometimes considered
25426               "wrong" and is included as a reference.
25427
25428           floyd_steinberg
25429               Floyd and Steingberg dithering (error diffusion)
25430
25431           sierra2
25432               Frankie Sierra dithering v2 (error diffusion)
25433
25434           sierra2_4a
25435               Frankie Sierra dithering v2 "Lite" (error diffusion)
25436
25437           Default is sierra2_4a.
25438
25439       bayer_scale
25440           When bayer dithering is selected, this option defines the scale of
25441           the pattern (how much the crosshatch pattern is visible). A low
25442           value means more visible pattern for less banding, and higher value
25443           means less visible pattern at the cost of more banding.
25444
25445           The option must be an integer value in the range [0,5]. Default is
25446           2.
25447
25448       diff_mode
25449           If set, define the zone to process
25450
25451           rectangle
25452               Only the changing rectangle will be reprocessed. This is
25453               similar to GIF cropping/offsetting compression mechanism. This
25454               option can be useful for speed if only a part of the image is
25455               changing, and has use cases such as limiting the scope of the
25456               error diffusal dither to the rectangle that bounds the moving
25457               scene (it leads to more deterministic output if the scene
25458               doesn't change much, and as a result less moving noise and
25459               better GIF compression).
25460
25461           Default is none.
25462
25463       new Take new palette for each output frame.
25464
25465       alpha_threshold
25466           Sets the alpha threshold for transparency. Alpha values above this
25467           threshold will be treated as completely opaque, and values below
25468           this threshold will be treated as completely transparent.
25469
25470           The option must be an integer value in the range [0,255]. Default
25471           is 128.
25472
25473       use_alpha
25474           Apply the palette by taking alpha values into account. Only useful
25475           with palettes that are containing multiple colors with alpha
25476           components.  Setting this will automatically disable
25477           'alpha_treshold'.
25478
25479       Examples
25480
25481       •   Use a palette (generated for example with palettegen) to encode a
25482           GIF using ffmpeg:
25483
25484                   ffmpeg -i input.mkv -i palette.png -lavfi paletteuse output.gif
25485
25486   perspective
25487       Correct perspective of video not recorded perpendicular to the screen.
25488
25489       A description of the accepted parameters follows.
25490
25491       x0
25492       y0
25493       x1
25494       y1
25495       x2
25496       y2
25497       x3
25498       y3  Set coordinates expression for top left, top right, bottom left and
25499           bottom right corners.  Default values are "0:0:W:0:0:H:W:H" with
25500           which perspective will remain unchanged.  If the "sense" option is
25501           set to "source", then the specified points will be sent to the
25502           corners of the destination. If the "sense" option is set to
25503           "destination", then the corners of the source will be sent to the
25504           specified coordinates.
25505
25506           The expressions can use the following variables:
25507
25508           W
25509           H   the width and height of video frame.
25510
25511           in  Input frame count.
25512
25513           on  Output frame count.
25514
25515       interpolation
25516           Set interpolation for perspective correction.
25517
25518           It accepts the following values:
25519
25520           linear
25521           cubic
25522
25523           Default value is linear.
25524
25525       sense
25526           Set interpretation of coordinate options.
25527
25528           It accepts the following values:
25529
25530           0, source
25531               Send point in the source specified by the given coordinates to
25532               the corners of the destination.
25533
25534           1, destination
25535               Send the corners of the source to the point in the destination
25536               specified by the given coordinates.
25537
25538               Default value is source.
25539
25540       eval
25541           Set when the expressions for coordinates x0,y0,...x3,y3 are
25542           evaluated.
25543
25544           It accepts the following values:
25545
25546           init
25547               only evaluate expressions once during the filter initialization
25548               or when a command is processed
25549
25550           frame
25551               evaluate expressions for each incoming frame
25552
25553           Default value is init.
25554
25555   phase
25556       Delay interlaced video by one field time so that the field order
25557       changes.
25558
25559       The intended use is to fix PAL movies that have been captured with the
25560       opposite field order to the film-to-video transfer.
25561
25562       A description of the accepted parameters follows.
25563
25564       mode
25565           Set phase mode.
25566
25567           It accepts the following values:
25568
25569           t   Capture field order top-first, transfer bottom-first.  Filter
25570               will delay the bottom field.
25571
25572           b   Capture field order bottom-first, transfer top-first.  Filter
25573               will delay the top field.
25574
25575           p   Capture and transfer with the same field order. This mode only
25576               exists for the documentation of the other options to refer to,
25577               but if you actually select it, the filter will faithfully do
25578               nothing.
25579
25580           a   Capture field order determined automatically by field flags,
25581               transfer opposite.  Filter selects among t and b modes on a
25582               frame by frame basis using field flags. If no field information
25583               is available, then this works just like u.
25584
25585           u   Capture unknown or varying, transfer opposite.  Filter selects
25586               among t and b on a frame by frame basis by analyzing the images
25587               and selecting the alternative that produces best match between
25588               the fields.
25589
25590           T   Capture top-first, transfer unknown or varying.  Filter selects
25591               among t and p using image analysis.
25592
25593           B   Capture bottom-first, transfer unknown or varying.  Filter
25594               selects among b and p using image analysis.
25595
25596           A   Capture determined by field flags, transfer unknown or varying.
25597               Filter selects among t, b and p using field flags and image
25598               analysis. If no field information is available, then this works
25599               just like U. This is the default mode.
25600
25601           U   Both capture and transfer unknown or varying.  Filter selects
25602               among t, b and p using image analysis only.
25603
25604       Commands
25605
25606       This filter supports the all above options as commands.
25607
25608   photosensitivity
25609       Reduce various flashes in video, so to help users with epilepsy.
25610
25611       It accepts the following options:
25612
25613       frames, f
25614           Set how many frames to use when filtering. Default is 30.
25615
25616       threshold, t
25617           Set detection threshold factor. Default is 1.  Lower is stricter.
25618
25619       skip
25620           Set how many pixels to skip when sampling frames. Default is 1.
25621           Allowed range is from 1 to 1024.
25622
25623       bypass
25624           Leave frames unchanged. Default is disabled.
25625
25626   pixdesctest
25627       Pixel format descriptor test filter, mainly useful for internal
25628       testing. The output video should be equal to the input video.
25629
25630       For example:
25631
25632               format=monow, pixdesctest
25633
25634       can be used to test the monowhite pixel format descriptor definition.
25635
25636   pixelize
25637       Apply pixelization to video stream.
25638
25639       The filter accepts the following options:
25640
25641       width, w
25642       height, h
25643           Set block dimensions that will be used for pixelization.  Default
25644           value is 16.
25645
25646       mode, m
25647           Set the mode of pixelization used.
25648
25649           Possible values are:
25650
25651           avg
25652           min
25653           max
25654
25655           Default value is "avg".
25656
25657       planes, p
25658           Set what planes to filter. Default is to filter all planes.
25659
25660       Commands
25661
25662       This filter supports all options as commands.
25663
25664   pixscope
25665       Display sample values of color channels. Mainly useful for checking
25666       color and levels. Minimum supported resolution is 640x480.
25667
25668       The filters accept the following options:
25669
25670       x   Set scope X position, relative offset on X axis.
25671
25672       y   Set scope Y position, relative offset on Y axis.
25673
25674       w   Set scope width.
25675
25676       h   Set scope height.
25677
25678       o   Set window opacity. This window also holds statistics about pixel
25679           area.
25680
25681       wx  Set window X position, relative offset on X axis.
25682
25683       wy  Set window Y position, relative offset on Y axis.
25684
25685       Commands
25686
25687       This filter supports same commands as options.
25688
25689   pp
25690       Enable the specified chain of postprocessing subfilters using
25691       libpostproc. This library should be automatically selected with a GPL
25692       build ("--enable-gpl").  Subfilters must be separated by '/' and can be
25693       disabled by prepending a '-'.  Each subfilter and some options have a
25694       short and a long name that can be used interchangeably, i.e. dr/dering
25695       are the same.
25696
25697       The filters accept the following options:
25698
25699       subfilters
25700           Set postprocessing subfilters string.
25701
25702       All subfilters share common options to determine their scope:
25703
25704       a/autoq
25705           Honor the quality commands for this subfilter.
25706
25707       c/chrom
25708           Do chrominance filtering, too (default).
25709
25710       y/nochrom
25711           Do luminance filtering only (no chrominance).
25712
25713       n/noluma
25714           Do chrominance filtering only (no luminance).
25715
25716       These options can be appended after the subfilter name, separated by a
25717       '|'.
25718
25719       Available subfilters are:
25720
25721       hb/hdeblock[|difference[|flatness]]
25722           Horizontal deblocking filter
25723
25724           difference
25725               Difference factor where higher values mean more deblocking
25726               (default: 32).
25727
25728           flatness
25729               Flatness threshold where lower values mean more deblocking
25730               (default: 39).
25731
25732       vb/vdeblock[|difference[|flatness]]
25733           Vertical deblocking filter
25734
25735           difference
25736               Difference factor where higher values mean more deblocking
25737               (default: 32).
25738
25739           flatness
25740               Flatness threshold where lower values mean more deblocking
25741               (default: 39).
25742
25743       ha/hadeblock[|difference[|flatness]]
25744           Accurate horizontal deblocking filter
25745
25746           difference
25747               Difference factor where higher values mean more deblocking
25748               (default: 32).
25749
25750           flatness
25751               Flatness threshold where lower values mean more deblocking
25752               (default: 39).
25753
25754       va/vadeblock[|difference[|flatness]]
25755           Accurate vertical deblocking filter
25756
25757           difference
25758               Difference factor where higher values mean more deblocking
25759               (default: 32).
25760
25761           flatness
25762               Flatness threshold where lower values mean more deblocking
25763               (default: 39).
25764
25765       The horizontal and vertical deblocking filters share the difference and
25766       flatness values so you cannot set different horizontal and vertical
25767       thresholds.
25768
25769       h1/x1hdeblock
25770           Experimental horizontal deblocking filter
25771
25772       v1/x1vdeblock
25773           Experimental vertical deblocking filter
25774
25775       dr/dering
25776           Deringing filter
25777
25778       tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise
25779       reducer
25780           threshold1
25781               larger -> stronger filtering
25782
25783           threshold2
25784               larger -> stronger filtering
25785
25786           threshold3
25787               larger -> stronger filtering
25788
25789       al/autolevels[:f/fullyrange], automatic brightness / contrast
25790       correction
25791           f/fullyrange
25792               Stretch luminance to "0-255".
25793
25794       lb/linblenddeint
25795           Linear blend deinterlacing filter that deinterlaces the given block
25796           by filtering all lines with a "(1 2 1)" filter.
25797
25798       li/linipoldeint
25799           Linear interpolating deinterlacing filter that deinterlaces the
25800           given block by linearly interpolating every second line.
25801
25802       ci/cubicipoldeint
25803           Cubic interpolating deinterlacing filter deinterlaces the given
25804           block by cubically interpolating every second line.
25805
25806       md/mediandeint
25807           Median deinterlacing filter that deinterlaces the given block by
25808           applying a median filter to every second line.
25809
25810       fd/ffmpegdeint
25811           FFmpeg deinterlacing filter that deinterlaces the given block by
25812           filtering every second line with a "(-1 4 2 4 -1)" filter.
25813
25814       l5/lowpass5
25815           Vertically applied FIR lowpass deinterlacing filter that
25816           deinterlaces the given block by filtering all lines with a "(-1 2 6
25817           2 -1)" filter.
25818
25819       fq/forceQuant[|quantizer]
25820           Overrides the quantizer table from the input with the constant
25821           quantizer you specify.
25822
25823           quantizer
25824               Quantizer to use
25825
25826       de/default
25827           Default pp filter combination ("hb|a,vb|a,dr|a")
25828
25829       fa/fast
25830           Fast pp filter combination ("h1|a,v1|a,dr|a")
25831
25832       ac  High quality pp filter combination ("ha|a|128|7,va|a,dr|a")
25833
25834       Examples
25835
25836       •   Apply horizontal and vertical deblocking, deringing and automatic
25837           brightness/contrast:
25838
25839                   pp=hb/vb/dr/al
25840
25841       •   Apply default filters without brightness/contrast correction:
25842
25843                   pp=de/-al
25844
25845       •   Apply default filters and temporal denoiser:
25846
25847                   pp=default/tmpnoise|1|2|3
25848
25849       •   Apply deblocking on luminance only, and switch vertical deblocking
25850           on or off automatically depending on available CPU time:
25851
25852                   pp=hb|y/vb|a
25853
25854   pp7
25855       Apply Postprocessing filter 7. It is variant of the spp filter, similar
25856       to spp = 6 with 7 point DCT, where only the center sample is used after
25857       IDCT.
25858
25859       The filter accepts the following options:
25860
25861       qp  Force a constant quantization parameter. It accepts an integer in
25862           range 0 to 63. If not set, the filter will use the QP from the
25863           video stream (if available).
25864
25865       mode
25866           Set thresholding mode. Available modes are:
25867
25868           hard
25869               Set hard thresholding.
25870
25871           soft
25872               Set soft thresholding (better de-ringing effect, but likely
25873               blurrier).
25874
25875           medium
25876               Set medium thresholding (good results, default).
25877
25878   premultiply
25879       Apply alpha premultiply effect to input video stream using first plane
25880       of second stream as alpha.
25881
25882       Both streams must have same dimensions and same pixel format.
25883
25884       The filter accepts the following option:
25885
25886       planes
25887           Set which planes will be processed, unprocessed planes will be
25888           copied.  By default value 0xf, all planes will be processed.
25889
25890       inplace
25891           Do not require 2nd input for processing, instead use alpha plane
25892           from input stream.
25893
25894   prewitt
25895       Apply prewitt operator to input video stream.
25896
25897       The filter accepts the following option:
25898
25899       planes
25900           Set which planes will be processed, unprocessed planes will be
25901           copied.  By default value 0xf, all planes will be processed.
25902
25903       scale
25904           Set value which will be multiplied with filtered result.
25905
25906       delta
25907           Set value which will be added to filtered result.
25908
25909       Commands
25910
25911       This filter supports the all above options as commands.
25912
25913   pseudocolor
25914       Alter frame colors in video with pseudocolors.
25915
25916       This filter accepts the following options:
25917
25918       c0  set pixel first component expression
25919
25920       c1  set pixel second component expression
25921
25922       c2  set pixel third component expression
25923
25924       c3  set pixel fourth component expression, corresponds to the alpha
25925           component
25926
25927       index, i
25928           set component to use as base for altering colors
25929
25930       preset, p
25931           Pick one of built-in LUTs. By default is set to none.
25932
25933           Available LUTs:
25934
25935           magma
25936           inferno
25937           plasma
25938           viridis
25939           turbo
25940           cividis
25941           range1
25942           range2
25943           shadows
25944           highlights
25945           solar
25946           nominal
25947           preferred
25948           total
25949       opacity
25950           Set opacity of output colors. Allowed range is from 0 to 1.
25951           Default value is set to 1.
25952
25953       Each of the expression options specifies the expression to use for
25954       computing the lookup table for the corresponding pixel component
25955       values.
25956
25957       The expressions can contain the following constants and functions:
25958
25959       w
25960       h   The input width and height.
25961
25962       val The input value for the pixel component.
25963
25964       ymin, umin, vmin, amin
25965           The minimum allowed component value.
25966
25967       ymax, umax, vmax, amax
25968           The maximum allowed component value.
25969
25970       All expressions default to "val".
25971
25972       Commands
25973
25974       This filter supports the all above options as commands.
25975
25976       Examples
25977
25978       •   Change too high luma values to gradient:
25979
25980                   pseudocolor="'if(between(val,ymax,amax),lerp(ymin,ymax,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(umax,umin,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(vmin,vmax,(val-ymax)/(amax-ymax)),-1):-1'"
25981
25982   psnr
25983       Obtain the average, maximum and minimum PSNR (Peak Signal to Noise
25984       Ratio) between two input videos.
25985
25986       This filter takes in input two input videos, the first input is
25987       considered the "main" source and is passed unchanged to the output. The
25988       second input is used as a "reference" video for computing the PSNR.
25989
25990       Both video inputs must have the same resolution and pixel format for
25991       this filter to work correctly. Also it assumes that both inputs have
25992       the same number of frames, which are compared one by one.
25993
25994       The obtained average PSNR is printed through the logging system.
25995
25996       The filter stores the accumulated MSE (mean squared error) of each
25997       frame, and at the end of the processing it is averaged across all
25998       frames equally, and the following formula is applied to obtain the
25999       PSNR:
26000
26001               PSNR = 10*log10(MAX^2/MSE)
26002
26003       Where MAX is the average of the maximum values of each component of the
26004       image.
26005
26006       The description of the accepted parameters follows.
26007
26008       stats_file, f
26009           If specified the filter will use the named file to save the PSNR of
26010           each individual frame. When filename equals "-" the data is sent to
26011           standard output.
26012
26013       stats_version
26014           Specifies which version of the stats file format to use. Details of
26015           each format are written below.  Default value is 1.
26016
26017       stats_add_max
26018           Determines whether the max value is output to the stats log.
26019           Default value is 0.  Requires stats_version >= 2. If this is set
26020           and stats_version < 2, the filter will return an error.
26021
26022       This filter also supports the framesync options.
26023
26024       The file printed if stats_file is selected, contains a sequence of
26025       key/value pairs of the form key:value for each compared couple of
26026       frames.
26027
26028       If a stats_version greater than 1 is specified, a header line precedes
26029       the list of per-frame-pair stats, with key value pairs following the
26030       frame format with the following parameters:
26031
26032       psnr_log_version
26033           The version of the log file format. Will match stats_version.
26034
26035       fields
26036           A comma separated list of the per-frame-pair parameters included in
26037           the log.
26038
26039       A description of each shown per-frame-pair parameter follows:
26040
26041       n   sequential number of the input frame, starting from 1
26042
26043       mse_avg
26044           Mean Square Error pixel-by-pixel average difference of the compared
26045           frames, averaged over all the image components.
26046
26047       mse_y, mse_u, mse_v, mse_r, mse_g, mse_b, mse_a
26048           Mean Square Error pixel-by-pixel average difference of the compared
26049           frames for the component specified by the suffix.
26050
26051       psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
26052           Peak Signal to Noise ratio of the compared frames for the component
26053           specified by the suffix.
26054
26055       max_avg, max_y, max_u, max_v
26056           Maximum allowed value for each channel, and average over all
26057           channels.
26058
26059       Examples
26060
26061       •   For example:
26062
26063                   movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
26064                   [main][ref] psnr="stats_file=stats.log" [out]
26065
26066           On this example the input file being processed is compared with the
26067           reference file ref_movie.mpg. The PSNR of each individual frame is
26068           stored in stats.log.
26069
26070       •   Another example with different containers:
26071
26072                   ffmpeg -i main.mpg -i ref.mkv -lavfi  "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]psnr" -f null -
26073
26074   pullup
26075       Pulldown reversal (inverse telecine) filter, capable of handling mixed
26076       hard-telecine, 24000/1001 fps progressive, and 30000/1001 fps
26077       progressive content.
26078
26079       The pullup filter is designed to take advantage of future context in
26080       making its decisions. This filter is stateless in the sense that it
26081       does not lock onto a pattern to follow, but it instead looks forward to
26082       the following fields in order to identify matches and rebuild
26083       progressive frames.
26084
26085       To produce content with an even framerate, insert the fps filter after
26086       pullup, use "fps=24000/1001" if the input frame rate is 29.97fps,
26087       "fps=24" for 30fps and the (rare) telecined 25fps input.
26088
26089       The filter accepts the following options:
26090
26091       jl
26092       jr
26093       jt
26094       jb  These options set the amount of "junk" to ignore at the left,
26095           right, top, and bottom of the image, respectively. Left and right
26096           are in units of 8 pixels, while top and bottom are in units of 2
26097           lines.  The default is 8 pixels on each side.
26098
26099       sb  Set the strict breaks. Setting this option to 1 will reduce the
26100           chances of filter generating an occasional mismatched frame, but it
26101           may also cause an excessive number of frames to be dropped during
26102           high motion sequences.  Conversely, setting it to -1 will make
26103           filter match fields more easily.  This may help processing of video
26104           where there is slight blurring between the fields, but may also
26105           cause there to be interlaced frames in the output.  Default value
26106           is 0.
26107
26108       mp  Set the metric plane to use. It accepts the following values:
26109
26110           l   Use luma plane.
26111
26112           u   Use chroma blue plane.
26113
26114           v   Use chroma red plane.
26115
26116           This option may be set to use chroma plane instead of the default
26117           luma plane for doing filter's computations. This may improve
26118           accuracy on very clean source material, but more likely will
26119           decrease accuracy, especially if there is chroma noise (rainbow
26120           effect) or any grayscale video.  The main purpose of setting mp to
26121           a chroma plane is to reduce CPU load and make pullup usable in
26122           realtime on slow machines.
26123
26124       For best results (without duplicated frames in the output file) it is
26125       necessary to change the output frame rate. For example, to inverse
26126       telecine NTSC input:
26127
26128               ffmpeg -i input -vf pullup -r 24000/1001 ...
26129
26130   qp
26131       Change video quantization parameters (QP).
26132
26133       The filter accepts the following option:
26134
26135       qp  Set expression for quantization parameter.
26136
26137       The expression is evaluated through the eval API and can contain, among
26138       others, the following constants:
26139
26140       known
26141           1 if index is not 129, 0 otherwise.
26142
26143       qp  Sequential index starting from -129 to 128.
26144
26145       Examples
26146
26147       •   Some equation like:
26148
26149                   qp=2+2*sin(PI*qp)
26150
26151   random
26152       Flush video frames from internal cache of frames into a random order.
26153       No frame is discarded.  Inspired by frei0r nervous filter.
26154
26155       frames
26156           Set size in number of frames of internal cache, in range from 2 to
26157           512. Default is 30.
26158
26159       seed
26160           Set seed for random number generator, must be an integer included
26161           between 0 and "UINT32_MAX". If not specified, or if explicitly set
26162           to less than 0, the filter will try to use a good random seed on a
26163           best effort basis.
26164
26165   readeia608
26166       Read closed captioning (EIA-608) information from the top lines of a
26167       video frame.
26168
26169       This filter adds frame metadata for "lavfi.readeia608.X.cc" and
26170       "lavfi.readeia608.X.line", where "X" is the number of the identified
26171       line with EIA-608 data (starting from 0). A description of each
26172       metadata value follows:
26173
26174       lavfi.readeia608.X.cc
26175           The two bytes stored as EIA-608 data (printed in hexadecimal).
26176
26177       lavfi.readeia608.X.line
26178           The number of the line on which the EIA-608 data was identified and
26179           read.
26180
26181       This filter accepts the following options:
26182
26183       scan_min
26184           Set the line to start scanning for EIA-608 data. Default is 0.
26185
26186       scan_max
26187           Set the line to end scanning for EIA-608 data. Default is 29.
26188
26189       spw Set the ratio of width reserved for sync code detection.  Default
26190           is 0.27. Allowed range is "[0.1 - 0.7]".
26191
26192       chp Enable checking the parity bit. In the event of a parity error, the
26193           filter will output 0x00 for that character. Default is false.
26194
26195       lp  Lowpass lines prior to further processing. Default is enabled.
26196
26197       Commands
26198
26199       This filter supports the all above options as commands.
26200
26201       Examples
26202
26203       •   Output a csv with presentation time and the first two lines of
26204           identified EIA-608 captioning data.
26205
26206                   ffprobe -f lavfi -i movie=captioned_video.mov,readeia608 -show_entries frame=pts_time:frame_tags=lavfi.readeia608.0.cc,lavfi.readeia608.1.cc -of csv
26207
26208   readvitc
26209       Read vertical interval timecode (VITC) information from the top lines
26210       of a video frame.
26211
26212       The filter adds frame metadata key "lavfi.readvitc.tc_str" with the
26213       timecode value, if a valid timecode has been detected. Further metadata
26214       key "lavfi.readvitc.found" is set to 0/1 depending on whether timecode
26215       data has been found or not.
26216
26217       This filter accepts the following options:
26218
26219       scan_max
26220           Set the maximum number of lines to scan for VITC data. If the value
26221           is set to "-1" the full video frame is scanned. Default is 45.
26222
26223       thr_b
26224           Set the luma threshold for black. Accepts float numbers in the
26225           range [0.0,1.0], default value is 0.2. The value must be equal or
26226           less than "thr_w".
26227
26228       thr_w
26229           Set the luma threshold for white. Accepts float numbers in the
26230           range [0.0,1.0], default value is 0.6. The value must be equal or
26231           greater than "thr_b".
26232
26233       Examples
26234
26235       •   Detect and draw VITC data onto the video frame; if no valid VITC is
26236           detected, draw "--:--:--:--" as a placeholder:
26237
26238                   ffmpeg -i input.avi -filter:v 'readvitc,drawtext=fontfile=FreeMono.ttf:text=%{metadata\\:lavfi.readvitc.tc_str\\:--\\\\\\:--\\\\\\:--\\\\\\:--}:x=(w-tw)/2:y=400-ascent'
26239
26240   remap
26241       Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
26242
26243       Destination pixel at position (X, Y) will be picked from source (x, y)
26244       position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
26245       out of range, zero value for pixel will be used for destination pixel.
26246
26247       Xmap and Ymap input video streams must be of same dimensions. Output
26248       video stream will have Xmap/Ymap video stream dimensions.  Xmap and
26249       Ymap input video streams are 16bit depth, single channel.
26250
26251       format
26252           Specify pixel format of output from this filter. Can be "color" or
26253           "gray".  Default is "color".
26254
26255       fill
26256           Specify the color of the unmapped pixels. For the syntax of this
26257           option, check the "Color" section in the ffmpeg-utils manual.
26258           Default color is "black".
26259
26260   removegrain
26261       The removegrain filter is a spatial denoiser for progressive video.
26262
26263       m0  Set mode for the first plane.
26264
26265       m1  Set mode for the second plane.
26266
26267       m2  Set mode for the third plane.
26268
26269       m3  Set mode for the fourth plane.
26270
26271       Range of mode is from 0 to 24. Description of each mode follows:
26272
26273       0   Leave input plane unchanged. Default.
26274
26275       1   Clips the pixel with the minimum and maximum of the 8 neighbour
26276           pixels.
26277
26278       2   Clips the pixel with the second minimum and maximum of the 8
26279           neighbour pixels.
26280
26281       3   Clips the pixel with the third minimum and maximum of the 8
26282           neighbour pixels.
26283
26284       4   Clips the pixel with the fourth minimum and maximum of the 8
26285           neighbour pixels.  This is equivalent to a median filter.
26286
26287       5   Line-sensitive clipping giving the minimal change.
26288
26289       6   Line-sensitive clipping, intermediate.
26290
26291       7   Line-sensitive clipping, intermediate.
26292
26293       8   Line-sensitive clipping, intermediate.
26294
26295       9   Line-sensitive clipping on a line where the neighbours pixels are
26296           the closest.
26297
26298       10  Replaces the target pixel with the closest neighbour.
26299
26300       11  [1 2 1] horizontal and vertical kernel blur.
26301
26302       12  Same as mode 11.
26303
26304       13  Bob mode, interpolates top field from the line where the neighbours
26305           pixels are the closest.
26306
26307       14  Bob mode, interpolates bottom field from the line where the
26308           neighbours pixels are the closest.
26309
26310       15  Bob mode, interpolates top field. Same as 13 but with a more
26311           complicated interpolation formula.
26312
26313       16  Bob mode, interpolates bottom field. Same as 14 but with a more
26314           complicated interpolation formula.
26315
26316       17  Clips the pixel with the minimum and maximum of respectively the
26317           maximum and minimum of each pair of opposite neighbour pixels.
26318
26319       18  Line-sensitive clipping using opposite neighbours whose greatest
26320           distance from the current pixel is minimal.
26321
26322       19  Replaces the pixel with the average of its 8 neighbours.
26323
26324       20  Averages the 9 pixels ([1 1 1] horizontal and vertical blur).
26325
26326       21  Clips pixels using the averages of opposite neighbour.
26327
26328       22  Same as mode 21 but simpler and faster.
26329
26330       23  Small edge and halo removal, but reputed useless.
26331
26332       24  Similar as 23.
26333
26334   removelogo
26335       Suppress a TV station logo, using an image file to determine which
26336       pixels comprise the logo. It works by filling in the pixels that
26337       comprise the logo with neighboring pixels.
26338
26339       The filter accepts the following options:
26340
26341       filename, f
26342           Set the filter bitmap file, which can be any image format supported
26343           by libavformat. The width and height of the image file must match
26344           those of the video stream being processed.
26345
26346       Pixels in the provided bitmap image with a value of zero are not
26347       considered part of the logo, non-zero pixels are considered part of the
26348       logo. If you use white (255) for the logo and black (0) for the rest,
26349       you will be safe. For making the filter bitmap, it is recommended to
26350       take a screen capture of a black frame with the logo visible, and then
26351       using a threshold filter followed by the erode filter once or twice.
26352
26353       If needed, little splotches can be fixed manually. Remember that if
26354       logo pixels are not covered, the filter quality will be much reduced.
26355       Marking too many pixels as part of the logo does not hurt as much, but
26356       it will increase the amount of blurring needed to cover over the image
26357       and will destroy more information than necessary, and extra pixels will
26358       slow things down on a large logo.
26359
26360   repeatfields
26361       This filter uses the repeat_field flag from the Video ES headers and
26362       hard repeats fields based on its value.
26363
26364   reverse
26365       Reverse a video clip.
26366
26367       Warning: This filter requires memory to buffer the entire clip, so
26368       trimming is suggested.
26369
26370       Examples
26371
26372       •   Take the first 5 seconds of a clip, and reverse it.
26373
26374                   trim=end=5,reverse
26375
26376   rgbashift
26377       Shift R/G/B/A pixels horizontally and/or vertically.
26378
26379       The filter accepts the following options:
26380
26381       rh  Set amount to shift red horizontally.
26382
26383       rv  Set amount to shift red vertically.
26384
26385       gh  Set amount to shift green horizontally.
26386
26387       gv  Set amount to shift green vertically.
26388
26389       bh  Set amount to shift blue horizontally.
26390
26391       bv  Set amount to shift blue vertically.
26392
26393       ah  Set amount to shift alpha horizontally.
26394
26395       av  Set amount to shift alpha vertically.
26396
26397       edge
26398           Set edge mode, can be smear, default, or warp.
26399
26400       Commands
26401
26402       This filter supports the all above options as commands.
26403
26404   roberts
26405       Apply roberts cross operator to input video stream.
26406
26407       The filter accepts the following option:
26408
26409       planes
26410           Set which planes will be processed, unprocessed planes will be
26411           copied.  By default value 0xf, all planes will be processed.
26412
26413       scale
26414           Set value which will be multiplied with filtered result.
26415
26416       delta
26417           Set value which will be added to filtered result.
26418
26419       Commands
26420
26421       This filter supports the all above options as commands.
26422
26423   rotate
26424       Rotate video by an arbitrary angle expressed in radians.
26425
26426       The filter accepts the following options:
26427
26428       A description of the optional parameters follows.
26429
26430       angle, a
26431           Set an expression for the angle by which to rotate the input video
26432           clockwise, expressed as a number of radians. A negative value will
26433           result in a counter-clockwise rotation. By default it is set to
26434           "0".
26435
26436           This expression is evaluated for each frame.
26437
26438       out_w, ow
26439           Set the output width expression, default value is "iw".  This
26440           expression is evaluated just once during configuration.
26441
26442       out_h, oh
26443           Set the output height expression, default value is "ih".  This
26444           expression is evaluated just once during configuration.
26445
26446       bilinear
26447           Enable bilinear interpolation if set to 1, a value of 0 disables
26448           it. Default value is 1.
26449
26450       fillcolor, c
26451           Set the color used to fill the output area not covered by the
26452           rotated image. For the general syntax of this option, check the
26453           "Color" section in the ffmpeg-utils manual.  If the special value
26454           "none" is selected then no background is printed (useful for
26455           example if the background is never shown).
26456
26457           Default value is "black".
26458
26459       The expressions for the angle and the output size can contain the
26460       following constants and functions:
26461
26462       n   sequential number of the input frame, starting from 0. It is always
26463           NAN before the first frame is filtered.
26464
26465       t   time in seconds of the input frame, it is set to 0 when the filter
26466           is configured. It is always NAN before the first frame is filtered.
26467
26468       hsub
26469       vsub
26470           horizontal and vertical chroma subsample values. For example for
26471           the pixel format "yuv422p" hsub is 2 and vsub is 1.
26472
26473       in_w, iw
26474       in_h, ih
26475           the input video width and height
26476
26477       out_w, ow
26478       out_h, oh
26479           the output width and height, that is the size of the padded area as
26480           specified by the width and height expressions
26481
26482       rotw(a)
26483       roth(a)
26484           the minimal width/height required for completely containing the
26485           input video rotated by a radians.
26486
26487           These are only available when computing the out_w and out_h
26488           expressions.
26489
26490       Examples
26491
26492       •   Rotate the input by PI/6 radians clockwise:
26493
26494                   rotate=PI/6
26495
26496       •   Rotate the input by PI/6 radians counter-clockwise:
26497
26498                   rotate=-PI/6
26499
26500       •   Rotate the input by 45 degrees clockwise:
26501
26502                   rotate=45*PI/180
26503
26504       •   Apply a constant rotation with period T, starting from an angle of
26505           PI/3:
26506
26507                   rotate=PI/3+2*PI*t/T
26508
26509       •   Make the input video rotation oscillating with a period of T
26510           seconds and an amplitude of A radians:
26511
26512                   rotate=A*sin(2*PI/T*t)
26513
26514       •   Rotate the video, output size is chosen so that the whole rotating
26515           input video is always completely contained in the output:
26516
26517                   rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
26518
26519       •   Rotate the video, reduce the output size so that no background is
26520           ever shown:
26521
26522                   rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
26523
26524       Commands
26525
26526       The filter supports the following commands:
26527
26528       a, angle
26529           Set the angle expression.  The command accepts the same syntax of
26530           the corresponding option.
26531
26532           If the specified expression is not valid, it is kept at its current
26533           value.
26534
26535   sab
26536       Apply Shape Adaptive Blur.
26537
26538       The filter accepts the following options:
26539
26540       luma_radius, lr
26541           Set luma blur filter strength, must be a value in range 0.1-4.0,
26542           default value is 1.0. A greater value will result in a more blurred
26543           image, and in slower processing.
26544
26545       luma_pre_filter_radius, lpfr
26546           Set luma pre-filter radius, must be a value in the 0.1-2.0 range,
26547           default value is 1.0.
26548
26549       luma_strength, ls
26550           Set luma maximum difference between pixels to still be considered,
26551           must be a value in the 0.1-100.0 range, default value is 1.0.
26552
26553       chroma_radius, cr
26554           Set chroma blur filter strength, must be a value in range -0.9-4.0.
26555           A greater value will result in a more blurred image, and in slower
26556           processing.
26557
26558       chroma_pre_filter_radius, cpfr
26559           Set chroma pre-filter radius, must be a value in the -0.9-2.0
26560           range.
26561
26562       chroma_strength, cs
26563           Set chroma maximum difference between pixels to still be
26564           considered, must be a value in the -0.9-100.0 range.
26565
26566       Each chroma option value, if not explicitly specified, is set to the
26567       corresponding luma option value.
26568
26569   scale
26570       Scale (resize) the input video, using the libswscale library.
26571
26572       The scale filter forces the output display aspect ratio to be the same
26573       of the input, by changing the output sample aspect ratio.
26574
26575       If the input image format is different from the format requested by the
26576       next filter, the scale filter will convert the input to the requested
26577       format.
26578
26579       Options
26580
26581       The filter accepts the following options, or any of the options
26582       supported by the libswscale scaler.
26583
26584       See the ffmpeg-scaler manual for the complete list of scaler options.
26585
26586       width, w
26587       height, h
26588           Set the output video dimension expression. Default value is the
26589           input dimension.
26590
26591           If the width or w value is 0, the input width is used for the
26592           output. If the height or h value is 0, the input height is used for
26593           the output.
26594
26595           If one and only one of the values is -n with n >= 1, the scale
26596           filter will use a value that maintains the aspect ratio of the
26597           input image, calculated from the other specified dimension. After
26598           that it will, however, make sure that the calculated dimension is
26599           divisible by n and adjust the value if necessary.
26600
26601           If both values are -n with n >= 1, the behavior will be identical
26602           to both values being set to 0 as previously detailed.
26603
26604           See below for the list of accepted constants for use in the
26605           dimension expression.
26606
26607       eval
26608           Specify when to evaluate width and height expression. It accepts
26609           the following values:
26610
26611           init
26612               Only evaluate expressions once during the filter initialization
26613               or when a command is processed.
26614
26615           frame
26616               Evaluate expressions for each incoming frame.
26617
26618           Default value is init.
26619
26620       interl
26621           Set the interlacing mode. It accepts the following values:
26622
26623           1   Force interlaced aware scaling.
26624
26625           0   Do not apply interlaced scaling.
26626
26627           -1  Select interlaced aware scaling depending on whether the source
26628               frames are flagged as interlaced or not.
26629
26630           Default value is 0.
26631
26632       flags
26633           Set libswscale scaling flags. See the ffmpeg-scaler manual for the
26634           complete list of values. If not explicitly specified the filter
26635           applies the default flags.
26636
26637       param0, param1
26638           Set libswscale input parameters for scaling algorithms that need
26639           them. See the ffmpeg-scaler manual for the complete documentation.
26640           If not explicitly specified the filter applies empty parameters.
26641
26642       size, s
26643           Set the video size. For the syntax of this option, check the "Video
26644           size" section in the ffmpeg-utils manual.
26645
26646       in_color_matrix
26647       out_color_matrix
26648           Set in/output YCbCr color space type.
26649
26650           This allows the autodetected value to be overridden as well as
26651           allows forcing a specific value used for the output and encoder.
26652
26653           If not specified, the color space type depends on the pixel format.
26654
26655           Possible values:
26656
26657           auto
26658               Choose automatically.
26659
26660           bt709
26661               Format conforming to International Telecommunication Union
26662               (ITU) Recommendation BT.709.
26663
26664           fcc Set color space conforming to the United States Federal
26665               Communications Commission (FCC) Code of Federal Regulations
26666               (CFR) Title 47 (2003) 73.682 (a).
26667
26668           bt601
26669           bt470
26670           smpte170m
26671               Set color space conforming to:
26672
26673               •   ITU Radiocommunication Sector (ITU-R) Recommendation BT.601
26674
26675               •   ITU-R Rec. BT.470-6 (1998) Systems B, B1, and G
26676
26677               •   Society of Motion Picture and Television Engineers (SMPTE)
26678                   ST 170:2004
26679
26680           smpte240m
26681               Set color space conforming to SMPTE ST 240:1999.
26682
26683           bt2020
26684               Set color space conforming to ITU-R BT.2020 non-constant
26685               luminance system.
26686
26687       in_range
26688       out_range
26689           Set in/output YCbCr sample range.
26690
26691           This allows the autodetected value to be overridden as well as
26692           allows forcing a specific value used for the output and encoder. If
26693           not specified, the range depends on the pixel format. Possible
26694           values:
26695
26696           auto/unknown
26697               Choose automatically.
26698
26699           jpeg/full/pc
26700               Set full range (0-255 in case of 8-bit luma).
26701
26702           mpeg/limited/tv
26703               Set "MPEG" range (16-235 in case of 8-bit luma).
26704
26705       force_original_aspect_ratio
26706           Enable decreasing or increasing output video width or height if
26707           necessary to keep the original aspect ratio. Possible values:
26708
26709           disable
26710               Scale the video as specified and disable this feature.
26711
26712           decrease
26713               The output video dimensions will automatically be decreased if
26714               needed.
26715
26716           increase
26717               The output video dimensions will automatically be increased if
26718               needed.
26719
26720           One useful instance of this option is that when you know a specific
26721           device's maximum allowed resolution, you can use this to limit the
26722           output video to that, while retaining the aspect ratio. For
26723           example, device A allows 1280x720 playback, and your video is
26724           1920x800. Using this option (set it to decrease) and specifying
26725           1280x720 to the command line makes the output 1280x533.
26726
26727           Please note that this is a different thing than specifying -1 for w
26728           or h, you still need to specify the output resolution for this
26729           option to work.
26730
26731       force_divisible_by
26732           Ensures that both the output dimensions, width and height, are
26733           divisible by the given integer when used together with
26734           force_original_aspect_ratio. This works similar to using "-n" in
26735           the w and h options.
26736
26737           This option respects the value set for force_original_aspect_ratio,
26738           increasing or decreasing the resolution accordingly. The video's
26739           aspect ratio may be slightly modified.
26740
26741           This option can be handy if you need to have a video fit within or
26742           exceed a defined resolution using force_original_aspect_ratio but
26743           also have encoder restrictions on width or height divisibility.
26744
26745       The values of the w and h options are expressions containing the
26746       following constants:
26747
26748       in_w
26749       in_h
26750           The input width and height
26751
26752       iw
26753       ih  These are the same as in_w and in_h.
26754
26755       out_w
26756       out_h
26757           The output (scaled) width and height
26758
26759       ow
26760       oh  These are the same as out_w and out_h
26761
26762       a   The same as iw / ih
26763
26764       sar input sample aspect ratio
26765
26766       dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
26767
26768       hsub
26769       vsub
26770           horizontal and vertical input chroma subsample values. For example
26771           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
26772
26773       ohsub
26774       ovsub
26775           horizontal and vertical output chroma subsample values. For example
26776           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
26777
26778       n   The (sequential) number of the input frame, starting from 0.  Only
26779           available with "eval=frame".
26780
26781       t   The presentation timestamp of the input frame, expressed as a
26782           number of seconds. Only available with "eval=frame".
26783
26784       pos The position (byte offset) of the frame in the input stream, or NaN
26785           if this information is unavailable and/or meaningless (for example
26786           in case of synthetic video).  Only available with "eval=frame".
26787
26788       Examples
26789
26790       •   Scale the input video to a size of 200x100
26791
26792                   scale=w=200:h=100
26793
26794           This is equivalent to:
26795
26796                   scale=200:100
26797
26798           or:
26799
26800                   scale=200x100
26801
26802       •   Specify a size abbreviation for the output size:
26803
26804                   scale=qcif
26805
26806           which can also be written as:
26807
26808                   scale=size=qcif
26809
26810       •   Scale the input to 2x:
26811
26812                   scale=w=2*iw:h=2*ih
26813
26814       •   The above is the same as:
26815
26816                   scale=2*in_w:2*in_h
26817
26818       •   Scale the input to 2x with forced interlaced scaling:
26819
26820                   scale=2*iw:2*ih:interl=1
26821
26822       •   Scale the input to half size:
26823
26824                   scale=w=iw/2:h=ih/2
26825
26826       •   Increase the width, and set the height to the same size:
26827
26828                   scale=3/2*iw:ow
26829
26830       •   Seek Greek harmony:
26831
26832                   scale=iw:1/PHI*iw
26833                   scale=ih*PHI:ih
26834
26835       •   Increase the height, and set the width to 3/2 of the height:
26836
26837                   scale=w=3/2*oh:h=3/5*ih
26838
26839       •   Increase the size, making the size a multiple of the chroma
26840           subsample values:
26841
26842                   scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
26843
26844       •   Increase the width to a maximum of 500 pixels, keeping the same
26845           aspect ratio as the input:
26846
26847                   scale=w='min(500\, iw*3/2):h=-1'
26848
26849       •   Make pixels square by combining scale and setsar:
26850
26851                   scale='trunc(ih*dar):ih',setsar=1/1
26852
26853       •   Make pixels square by combining scale and setsar, making sure the
26854           resulting resolution is even (required by some codecs):
26855
26856                   scale='trunc(ih*dar/2)*2:trunc(ih/2)*2',setsar=1/1
26857
26858       Commands
26859
26860       This filter supports the following commands:
26861
26862       width, w
26863       height, h
26864           Set the output video dimension expression.  The command accepts the
26865           same syntax of the corresponding option.
26866
26867           If the specified expression is not valid, it is kept at its current
26868           value.
26869
26870   scale_cuda
26871       Scale (resize) and convert (pixel format) the input video, using
26872       accelerated CUDA kernels.  Setting the output width and height works in
26873       the same way as for the scale filter.
26874
26875       The filter accepts the following options:
26876
26877       w
26878       h   Set the output video dimension expression. Default value is the
26879           input dimension.
26880
26881           Allows for the same expressions as the scale filter.
26882
26883       interp_algo
26884           Sets the algorithm used for scaling:
26885
26886           nearest
26887               Nearest neighbour
26888
26889               Used by default if input parameters match the desired output.
26890
26891           bilinear
26892               Bilinear
26893
26894           bicubic
26895               Bicubic
26896
26897               This is the default.
26898
26899           lanczos
26900               Lanczos
26901
26902       format
26903           Controls the output pixel format. By default, or if none is
26904           specified, the input pixel format is used.
26905
26906           The filter does not support converting between YUV and RGB pixel
26907           formats.
26908
26909       passthrough
26910           If set to 0, every frame is processed, even if no conversion is
26911           neccesary.  This mode can be useful to use the filter as a buffer
26912           for a downstream frame-consumer that exhausts the limited decoder
26913           frame pool.
26914
26915           If set to 1, frames are passed through as-is if they match the
26916           desired output parameters. This is the default behaviour.
26917
26918       param
26919           Algorithm-Specific parameter.
26920
26921           Affects the curves of the bicubic algorithm.
26922
26923       force_original_aspect_ratio
26924       force_divisible_by
26925           Work the same as the identical scale filter options.
26926
26927       Examples
26928
26929       •   Scale input to 720p, keeping aspect ratio and ensuring the output
26930           is yuv420p.
26931
26932                   scale_cuda=-2:720:format=yuv420p
26933
26934       •   Upscale to 4K using nearest neighbour algorithm.
26935
26936                   scale_cuda=4096:2160:interp_algo=nearest
26937
26938       •   Don't do any conversion or scaling, but copy all input frames into
26939           newly allocated ones.  This can be useful to deal with a filter and
26940           encode chain that otherwise exhausts the decoders frame pool.
26941
26942                   scale_cuda=passthrough=0
26943
26944   scale_npp
26945       Use the NVIDIA Performance Primitives (libnpp) to perform scaling
26946       and/or pixel format conversion on CUDA video frames. Setting the output
26947       width and height works in the same way as for the scale filter.
26948
26949       The following additional options are accepted:
26950
26951       format
26952           The pixel format of the output CUDA frames. If set to the string
26953           "same" (the default), the input format will be kept. Note that
26954           automatic format negotiation and conversion is not yet supported
26955           for hardware frames
26956
26957       interp_algo
26958           The interpolation algorithm used for resizing. One of the
26959           following:
26960
26961           nn  Nearest neighbour.
26962
26963           linear
26964           cubic
26965           cubic2p_bspline
26966               2-parameter cubic (B=1, C=0)
26967
26968           cubic2p_catmullrom
26969               2-parameter cubic (B=0, C=1/2)
26970
26971           cubic2p_b05c03
26972               2-parameter cubic (B=1/2, C=3/10)
26973
26974           super
26975               Supersampling
26976
26977           lanczos
26978       force_original_aspect_ratio
26979           Enable decreasing or increasing output video width or height if
26980           necessary to keep the original aspect ratio. Possible values:
26981
26982           disable
26983               Scale the video as specified and disable this feature.
26984
26985           decrease
26986               The output video dimensions will automatically be decreased if
26987               needed.
26988
26989           increase
26990               The output video dimensions will automatically be increased if
26991               needed.
26992
26993           One useful instance of this option is that when you know a specific
26994           device's maximum allowed resolution, you can use this to limit the
26995           output video to that, while retaining the aspect ratio. For
26996           example, device A allows 1280x720 playback, and your video is
26997           1920x800. Using this option (set it to decrease) and specifying
26998           1280x720 to the command line makes the output 1280x533.
26999
27000           Please note that this is a different thing than specifying -1 for w
27001           or h, you still need to specify the output resolution for this
27002           option to work.
27003
27004       force_divisible_by
27005           Ensures that both the output dimensions, width and height, are
27006           divisible by the given integer when used together with
27007           force_original_aspect_ratio. This works similar to using "-n" in
27008           the w and h options.
27009
27010           This option respects the value set for force_original_aspect_ratio,
27011           increasing or decreasing the resolution accordingly. The video's
27012           aspect ratio may be slightly modified.
27013
27014           This option can be handy if you need to have a video fit within or
27015           exceed a defined resolution using force_original_aspect_ratio but
27016           also have encoder restrictions on width or height divisibility.
27017
27018       eval
27019           Specify when to evaluate width and height expression. It accepts
27020           the following values:
27021
27022           init
27023               Only evaluate expressions once during the filter initialization
27024               or when a command is processed.
27025
27026           frame
27027               Evaluate expressions for each incoming frame.
27028
27029       The values of the w and h options are expressions containing the
27030       following constants:
27031
27032       in_w
27033       in_h
27034           The input width and height
27035
27036       iw
27037       ih  These are the same as in_w and in_h.
27038
27039       out_w
27040       out_h
27041           The output (scaled) width and height
27042
27043       ow
27044       oh  These are the same as out_w and out_h
27045
27046       a   The same as iw / ih
27047
27048       sar input sample aspect ratio
27049
27050       dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
27051
27052       n   The (sequential) number of the input frame, starting from 0.  Only
27053           available with "eval=frame".
27054
27055       t   The presentation timestamp of the input frame, expressed as a
27056           number of seconds. Only available with "eval=frame".
27057
27058       pos The position (byte offset) of the frame in the input stream, or NaN
27059           if this information is unavailable and/or meaningless (for example
27060           in case of synthetic video).  Only available with "eval=frame".
27061
27062   scale2ref
27063       Scale (resize) the input video, based on a reference video.
27064
27065       See the scale filter for available options, scale2ref supports the same
27066       but uses the reference video instead of the main input as basis.
27067       scale2ref also supports the following additional constants for the w
27068       and h options:
27069
27070       main_w
27071       main_h
27072           The main input video's width and height
27073
27074       main_a
27075           The same as main_w / main_h
27076
27077       main_sar
27078           The main input video's sample aspect ratio
27079
27080       main_dar, mdar
27081           The main input video's display aspect ratio. Calculated from
27082           "(main_w / main_h) * main_sar".
27083
27084       main_hsub
27085       main_vsub
27086           The main input video's horizontal and vertical chroma subsample
27087           values.  For example for the pixel format "yuv422p" hsub is 2 and
27088           vsub is 1.
27089
27090       main_n
27091           The (sequential) number of the main input frame, starting from 0.
27092           Only available with "eval=frame".
27093
27094       main_t
27095           The presentation timestamp of the main input frame, expressed as a
27096           number of seconds. Only available with "eval=frame".
27097
27098       main_pos
27099           The position (byte offset) of the frame in the main input stream,
27100           or NaN if this information is unavailable and/or meaningless (for
27101           example in case of synthetic video).  Only available with
27102           "eval=frame".
27103
27104       Examples
27105
27106       •   Scale a subtitle stream (b) to match the main video (a) in size
27107           before overlaying
27108
27109                   'scale2ref[b][a];[a][b]overlay'
27110
27111       •   Scale a logo to 1/10th the height of a video, while preserving its
27112           display aspect ratio.
27113
27114                   [logo-in][video-in]scale2ref=w=oh*mdar:h=ih/10[logo-out][video-out]
27115
27116       Commands
27117
27118       This filter supports the following commands:
27119
27120       width, w
27121       height, h
27122           Set the output video dimension expression.  The command accepts the
27123           same syntax of the corresponding option.
27124
27125           If the specified expression is not valid, it is kept at its current
27126           value.
27127
27128   scale2ref_npp
27129       Use the NVIDIA Performance Primitives (libnpp) to scale (resize) the
27130       input video, based on a reference video.
27131
27132       See the scale_npp filter for available options, scale2ref_npp supports
27133       the same but uses the reference video instead of the main input as
27134       basis. scale2ref_npp also supports the following additional constants
27135       for the w and h options:
27136
27137       main_w
27138       main_h
27139           The main input video's width and height
27140
27141       main_a
27142           The same as main_w / main_h
27143
27144       main_sar
27145           The main input video's sample aspect ratio
27146
27147       main_dar, mdar
27148           The main input video's display aspect ratio. Calculated from
27149           "(main_w / main_h) * main_sar".
27150
27151       main_n
27152           The (sequential) number of the main input frame, starting from 0.
27153           Only available with "eval=frame".
27154
27155       main_t
27156           The presentation timestamp of the main input frame, expressed as a
27157           number of seconds. Only available with "eval=frame".
27158
27159       main_pos
27160           The position (byte offset) of the frame in the main input stream,
27161           or NaN if this information is unavailable and/or meaningless (for
27162           example in case of synthetic video).  Only available with
27163           "eval=frame".
27164
27165       Examples
27166
27167       •   Scale a subtitle stream (b) to match the main video (a) in size
27168           before overlaying
27169
27170                   'scale2ref_npp[b][a];[a][b]overlay_cuda'
27171
27172       •   Scale a logo to 1/10th the height of a video, while preserving its
27173           display aspect ratio.
27174
27175                   [logo-in][video-in]scale2ref_npp=w=oh*mdar:h=ih/10[logo-out][video-out]
27176
27177   scharr
27178       Apply scharr operator to input video stream.
27179
27180       The filter accepts the following option:
27181
27182       planes
27183           Set which planes will be processed, unprocessed planes will be
27184           copied.  By default value 0xf, all planes will be processed.
27185
27186       scale
27187           Set value which will be multiplied with filtered result.
27188
27189       delta
27190           Set value which will be added to filtered result.
27191
27192       Commands
27193
27194       This filter supports the all above options as commands.
27195
27196   scroll
27197       Scroll input video horizontally and/or vertically by constant speed.
27198
27199       The filter accepts the following options:
27200
27201       horizontal, h
27202           Set the horizontal scrolling speed. Default is 0. Allowed range is
27203           from -1 to 1.  Negative values changes scrolling direction.
27204
27205       vertical, v
27206           Set the vertical scrolling speed. Default is 0. Allowed range is
27207           from -1 to 1.  Negative values changes scrolling direction.
27208
27209       hpos
27210           Set the initial horizontal scrolling position. Default is 0.
27211           Allowed range is from 0 to 1.
27212
27213       vpos
27214           Set the initial vertical scrolling position. Default is 0. Allowed
27215           range is from 0 to 1.
27216
27217       Commands
27218
27219       This filter supports the following commands:
27220
27221       horizontal, h
27222           Set the horizontal scrolling speed.
27223
27224       vertical, v
27225           Set the vertical scrolling speed.
27226
27227   scdet
27228       Detect video scene change.
27229
27230       This filter sets frame metadata with mafd between frame, the scene
27231       score, and forward the frame to the next filter, so they can use these
27232       metadata to detect scene change or others.
27233
27234       In addition, this filter logs a message and sets frame metadata when it
27235       detects a scene change by threshold.
27236
27237       "lavfi.scd.mafd" metadata keys are set with mafd for every frame.
27238
27239       "lavfi.scd.score" metadata keys are set with scene change score for
27240       every frame to detect scene change.
27241
27242       "lavfi.scd.time" metadata keys are set with current filtered frame time
27243       which detect scene change with threshold.
27244
27245       The filter accepts the following options:
27246
27247       threshold, t
27248           Set the scene change detection threshold as a percentage of maximum
27249           change. Good values are in the "[8.0, 14.0]" range. The range for
27250           threshold is "[0., 100.]".
27251
27252           Default value is 10..
27253
27254       sc_pass, s
27255           Set the flag to pass scene change frames to the next filter.
27256           Default value is 0 You can enable it if you want to get snapshot of
27257           scene change frames only.
27258
27259   selectivecolor
27260       Adjust cyan, magenta, yellow and black (CMYK) to certain ranges of
27261       colors (such as "reds", "yellows", "greens", "cyans", ...). The
27262       adjustment range is defined by the "purity" of the color (that is, how
27263       saturated it already is).
27264
27265       This filter is similar to the Adobe Photoshop Selective Color tool.
27266
27267       The filter accepts the following options:
27268
27269       correction_method
27270           Select color correction method.
27271
27272           Available values are:
27273
27274           absolute
27275               Specified adjustments are applied "as-is" (added/subtracted to
27276               original pixel component value).
27277
27278           relative
27279               Specified adjustments are relative to the original component
27280               value.
27281
27282           Default is "absolute".
27283
27284       reds
27285           Adjustments for red pixels (pixels where the red component is the
27286           maximum)
27287
27288       yellows
27289           Adjustments for yellow pixels (pixels where the blue component is
27290           the minimum)
27291
27292       greens
27293           Adjustments for green pixels (pixels where the green component is
27294           the maximum)
27295
27296       cyans
27297           Adjustments for cyan pixels (pixels where the red component is the
27298           minimum)
27299
27300       blues
27301           Adjustments for blue pixels (pixels where the blue component is the
27302           maximum)
27303
27304       magentas
27305           Adjustments for magenta pixels (pixels where the green component is
27306           the minimum)
27307
27308       whites
27309           Adjustments for white pixels (pixels where all components are
27310           greater than 128)
27311
27312       neutrals
27313           Adjustments for all pixels except pure black and pure white
27314
27315       blacks
27316           Adjustments for black pixels (pixels where all components are
27317           lesser than 128)
27318
27319       psfile
27320           Specify a Photoshop selective color file (".asv") to import the
27321           settings from.
27322
27323       All the adjustment settings (reds, yellows, ...) accept up to 4 space
27324       separated floating point adjustment values in the [-1,1] range,
27325       respectively to adjust the amount of cyan, magenta, yellow and black
27326       for the pixels of its range.
27327
27328       Examples
27329
27330       •   Increase cyan by 50% and reduce yellow by 33% in every green areas,
27331           and increase magenta by 27% in blue areas:
27332
27333                   selectivecolor=greens=.5 0 -.33 0:blues=0 .27
27334
27335       •   Use a Photoshop selective color preset:
27336
27337                   selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
27338
27339   separatefields
27340       The "separatefields" takes a frame-based video input and splits each
27341       frame into its components fields, producing a new half height clip with
27342       twice the frame rate and twice the frame count.
27343
27344       This filter use field-dominance information in frame to decide which of
27345       each pair of fields to place first in the output.  If it gets it wrong
27346       use setfield filter before "separatefields" filter.
27347
27348   setdar, setsar
27349       The "setdar" filter sets the Display Aspect Ratio for the filter output
27350       video.
27351
27352       This is done by changing the specified Sample (aka Pixel) Aspect Ratio,
27353       according to the following equation:
27354
27355               <DAR> = <HORIZONTAL_RESOLUTION> / <VERTICAL_RESOLUTION> * <SAR>
27356
27357       Keep in mind that the "setdar" filter does not modify the pixel
27358       dimensions of the video frame. Also, the display aspect ratio set by
27359       this filter may be changed by later filters in the filterchain, e.g. in
27360       case of scaling or if another "setdar" or a "setsar" filter is applied.
27361
27362       The "setsar" filter sets the Sample (aka Pixel) Aspect Ratio for the
27363       filter output video.
27364
27365       Note that as a consequence of the application of this filter, the
27366       output display aspect ratio will change according to the equation
27367       above.
27368
27369       Keep in mind that the sample aspect ratio set by the "setsar" filter
27370       may be changed by later filters in the filterchain, e.g. if another
27371       "setsar" or a "setdar" filter is applied.
27372
27373       It accepts the following parameters:
27374
27375       r, ratio, dar ("setdar" only), sar ("setsar" only)
27376           Set the aspect ratio used by the filter.
27377
27378           The parameter can be a floating point number string, an expression,
27379           or a string of the form num:den, where num and den are the
27380           numerator and denominator of the aspect ratio. If the parameter is
27381           not specified, it is assumed the value "0".  In case the form
27382           "num:den" is used, the ":" character should be escaped.
27383
27384       max Set the maximum integer value to use for expressing numerator and
27385           denominator when reducing the expressed aspect ratio to a rational.
27386           Default value is 100.
27387
27388       The parameter sar is an expression containing the following constants:
27389
27390       E, PI, PHI
27391           These are approximated values for the mathematical constants e
27392           (Euler's number), pi (Greek pi), and phi (the golden ratio).
27393
27394       w, h
27395           The input width and height.
27396
27397       a   These are the same as w / h.
27398
27399       sar The input sample aspect ratio.
27400
27401       dar The input display aspect ratio. It is the same as (w / h) * sar.
27402
27403       hsub, vsub
27404           Horizontal and vertical chroma subsample values. For example, for
27405           the pixel format "yuv422p" hsub is 2 and vsub is 1.
27406
27407       Examples
27408
27409       •   To change the display aspect ratio to 16:9, specify one of the
27410           following:
27411
27412                   setdar=dar=1.77777
27413                   setdar=dar=16/9
27414
27415       •   To change the sample aspect ratio to 10:11, specify:
27416
27417                   setsar=sar=10/11
27418
27419       •   To set a display aspect ratio of 16:9, and specify a maximum
27420           integer value of 1000 in the aspect ratio reduction, use the
27421           command:
27422
27423                   setdar=ratio=16/9:max=1000
27424
27425   setfield
27426       Force field for the output video frame.
27427
27428       The "setfield" filter marks the interlace type field for the output
27429       frames. It does not change the input frame, but only sets the
27430       corresponding property, which affects how the frame is treated by
27431       following filters (e.g. "fieldorder" or "yadif").
27432
27433       The filter accepts the following options:
27434
27435       mode
27436           Available values are:
27437
27438           auto
27439               Keep the same field property.
27440
27441           bff Mark the frame as bottom-field-first.
27442
27443           tff Mark the frame as top-field-first.
27444
27445           prog
27446               Mark the frame as progressive.
27447
27448   setparams
27449       Force frame parameter for the output video frame.
27450
27451       The "setparams" filter marks interlace and color range for the output
27452       frames. It does not change the input frame, but only sets the
27453       corresponding property, which affects how the frame is treated by
27454       filters/encoders.
27455
27456       field_mode
27457           Available values are:
27458
27459           auto
27460               Keep the same field property (default).
27461
27462           bff Mark the frame as bottom-field-first.
27463
27464           tff Mark the frame as top-field-first.
27465
27466           prog
27467               Mark the frame as progressive.
27468
27469       range
27470           Available values are:
27471
27472           auto
27473               Keep the same color range property (default).
27474
27475           unspecified, unknown
27476               Mark the frame as unspecified color range.
27477
27478           limited, tv, mpeg
27479               Mark the frame as limited range.
27480
27481           full, pc, jpeg
27482               Mark the frame as full range.
27483
27484       color_primaries
27485           Set the color primaries.  Available values are:
27486
27487           auto
27488               Keep the same color primaries property (default).
27489
27490           bt709
27491           unknown
27492           bt470m
27493           bt470bg
27494           smpte170m
27495           smpte240m
27496           film
27497           bt2020
27498           smpte428
27499           smpte431
27500           smpte432
27501           jedec-p22
27502       color_trc
27503           Set the color transfer.  Available values are:
27504
27505           auto
27506               Keep the same color trc property (default).
27507
27508           bt709
27509           unknown
27510           bt470m
27511           bt470bg
27512           smpte170m
27513           smpte240m
27514           linear
27515           log100
27516           log316
27517           iec61966-2-4
27518           bt1361e
27519           iec61966-2-1
27520           bt2020-10
27521           bt2020-12
27522           smpte2084
27523           smpte428
27524           arib-std-b67
27525       colorspace
27526           Set the colorspace.  Available values are:
27527
27528           auto
27529               Keep the same colorspace property (default).
27530
27531           gbr
27532           bt709
27533           unknown
27534           fcc
27535           bt470bg
27536           smpte170m
27537           smpte240m
27538           ycgco
27539           bt2020nc
27540           bt2020c
27541           smpte2085
27542           chroma-derived-nc
27543           chroma-derived-c
27544           ictcp
27545
27546   sharpen_npp
27547       Use the NVIDIA Performance Primitives (libnpp) to perform image
27548       sharpening with border control.
27549
27550       The following additional options are accepted:
27551
27552       border_type
27553           Type of sampling to be used ad frame borders. One of the following:
27554
27555           replicate
27556               Replicate pixel values.
27557
27558   shear
27559       Apply shear transform to input video.
27560
27561       This filter supports the following options:
27562
27563       shx Shear factor in X-direction. Default value is 0.  Allowed range is
27564           from -2 to 2.
27565
27566       shy Shear factor in Y-direction. Default value is 0.  Allowed range is
27567           from -2 to 2.
27568
27569       fillcolor, c
27570           Set the color used to fill the output area not covered by the
27571           transformed video. For the general syntax of this option, check the
27572           "Color" section in the ffmpeg-utils manual.  If the special value
27573           "none" is selected then no background is printed (useful for
27574           example if the background is never shown).
27575
27576           Default value is "black".
27577
27578       interp
27579           Set interpolation type. Can be "bilinear" or "nearest". Default is
27580           "bilinear".
27581
27582       Commands
27583
27584       This filter supports the all above options as commands.
27585
27586   showinfo
27587       Show a line containing various information for each input video frame.
27588       The input video is not modified.
27589
27590       This filter supports the following options:
27591
27592       checksum
27593           Calculate checksums of each plane. By default enabled.
27594
27595       The shown line contains a sequence of key/value pairs of the form
27596       key:value.
27597
27598       The following values are shown in the output:
27599
27600       n   The (sequential) number of the input frame, starting from 0.
27601
27602       pts The Presentation TimeStamp of the input frame, expressed as a
27603           number of time base units. The time base unit depends on the filter
27604           input pad.
27605
27606       pts_time
27607           The Presentation TimeStamp of the input frame, expressed as a
27608           number of seconds.
27609
27610       pos The position of the frame in the input stream, or -1 if this
27611           information is unavailable and/or meaningless (for example in case
27612           of synthetic video).
27613
27614       fmt The pixel format name.
27615
27616       sar The sample aspect ratio of the input frame, expressed in the form
27617           num/den.
27618
27619       s   The size of the input frame. For the syntax of this option, check
27620           the "Video size" section in the ffmpeg-utils manual.
27621
27622       i   The type of interlaced mode ("P" for "progressive", "T" for top
27623           field first, "B" for bottom field first).
27624
27625       iskey
27626           This is 1 if the frame is a key frame, 0 otherwise.
27627
27628       type
27629           The picture type of the input frame ("I" for an I-frame, "P" for a
27630           P-frame, "B" for a B-frame, or "?" for an unknown type).  Also
27631           refer to the documentation of the "AVPictureType" enum and of the
27632           "av_get_picture_type_char" function defined in libavutil/avutil.h.
27633
27634       checksum
27635           The Adler-32 checksum (printed in hexadecimal) of all the planes of
27636           the input frame.
27637
27638       plane_checksum
27639           The Adler-32 checksum (printed in hexadecimal) of each plane of the
27640           input frame, expressed in the form "[c0 c1 c2 c3]".
27641
27642       mean
27643           The mean value of pixels in each plane of the input frame,
27644           expressed in the form "[mean0 mean1 mean2 mean3]".
27645
27646       stdev
27647           The standard deviation of pixel values in each plane of the input
27648           frame, expressed in the form "[stdev0 stdev1 stdev2 stdev3]".
27649
27650   showpalette
27651       Displays the 256 colors palette of each frame. This filter is only
27652       relevant for pal8 pixel format frames.
27653
27654       It accepts the following option:
27655
27656       s   Set the size of the box used to represent one palette color entry.
27657           Default is 30 (for a "30x30" pixel box).
27658
27659   shuffleframes
27660       Reorder and/or duplicate and/or drop video frames.
27661
27662       It accepts the following parameters:
27663
27664       mapping
27665           Set the destination indexes of input frames.  This is space or '|'
27666           separated list of indexes that maps input frames to output frames.
27667           Number of indexes also sets maximal value that each index may have.
27668           '-1' index have special meaning and that is to drop frame.
27669
27670       The first frame has the index 0. The default is to keep the input
27671       unchanged.
27672
27673       Examples
27674
27675       •   Swap second and third frame of every three frames of the input:
27676
27677                   ffmpeg -i INPUT -vf "shuffleframes=0 2 1" OUTPUT
27678
27679       •   Swap 10th and 1st frame of every ten frames of the input:
27680
27681                   ffmpeg -i INPUT -vf "shuffleframes=9 1 2 3 4 5 6 7 8 0" OUTPUT
27682
27683   shufflepixels
27684       Reorder pixels in video frames.
27685
27686       This filter accepts the following options:
27687
27688       direction, d
27689           Set shuffle direction. Can be forward or inverse direction.
27690           Default direction is forward.
27691
27692       mode, m
27693           Set shuffle mode. Can be horizontal, vertical or block mode.
27694
27695       width, w
27696       height, h
27697           Set shuffle block_size. In case of horizontal shuffle mode only
27698           width part of size is used, and in case of vertical shuffle mode
27699           only height part of size is used.
27700
27701       seed, s
27702           Set random seed used with shuffling pixels. Mainly useful to set to
27703           be able to reverse filtering process to get original input.  For
27704           example, to reverse forward shuffle you need to use same parameters
27705           and exact same seed and to set direction to inverse.
27706
27707   shuffleplanes
27708       Reorder and/or duplicate video planes.
27709
27710       It accepts the following parameters:
27711
27712       map0
27713           The index of the input plane to be used as the first output plane.
27714
27715       map1
27716           The index of the input plane to be used as the second output plane.
27717
27718       map2
27719           The index of the input plane to be used as the third output plane.
27720
27721       map3
27722           The index of the input plane to be used as the fourth output plane.
27723
27724       The first plane has the index 0. The default is to keep the input
27725       unchanged.
27726
27727       Examples
27728
27729       •   Swap the second and third planes of the input:
27730
27731                   ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
27732
27733   signalstats
27734       Evaluate various visual metrics that assist in determining issues
27735       associated with the digitization of analog video media.
27736
27737       By default the filter will log these metadata values:
27738
27739       YMIN
27740           Display the minimal Y value contained within the input frame.
27741           Expressed in range of [0-255].
27742
27743       YLOW
27744           Display the Y value at the 10% percentile within the input frame.
27745           Expressed in range of [0-255].
27746
27747       YAVG
27748           Display the average Y value within the input frame. Expressed in
27749           range of [0-255].
27750
27751       YHIGH
27752           Display the Y value at the 90% percentile within the input frame.
27753           Expressed in range of [0-255].
27754
27755       YMAX
27756           Display the maximum Y value contained within the input frame.
27757           Expressed in range of [0-255].
27758
27759       UMIN
27760           Display the minimal U value contained within the input frame.
27761           Expressed in range of [0-255].
27762
27763       ULOW
27764           Display the U value at the 10% percentile within the input frame.
27765           Expressed in range of [0-255].
27766
27767       UAVG
27768           Display the average U value within the input frame. Expressed in
27769           range of [0-255].
27770
27771       UHIGH
27772           Display the U value at the 90% percentile within the input frame.
27773           Expressed in range of [0-255].
27774
27775       UMAX
27776           Display the maximum U value contained within the input frame.
27777           Expressed in range of [0-255].
27778
27779       VMIN
27780           Display the minimal V value contained within the input frame.
27781           Expressed in range of [0-255].
27782
27783       VLOW
27784           Display the V value at the 10% percentile within the input frame.
27785           Expressed in range of [0-255].
27786
27787       VAVG
27788           Display the average V value within the input frame. Expressed in
27789           range of [0-255].
27790
27791       VHIGH
27792           Display the V value at the 90% percentile within the input frame.
27793           Expressed in range of [0-255].
27794
27795       VMAX
27796           Display the maximum V value contained within the input frame.
27797           Expressed in range of [0-255].
27798
27799       SATMIN
27800           Display the minimal saturation value contained within the input
27801           frame.  Expressed in range of [0-~181.02].
27802
27803       SATLOW
27804           Display the saturation value at the 10% percentile within the input
27805           frame.  Expressed in range of [0-~181.02].
27806
27807       SATAVG
27808           Display the average saturation value within the input frame.
27809           Expressed in range of [0-~181.02].
27810
27811       SATHIGH
27812           Display the saturation value at the 90% percentile within the input
27813           frame.  Expressed in range of [0-~181.02].
27814
27815       SATMAX
27816           Display the maximum saturation value contained within the input
27817           frame.  Expressed in range of [0-~181.02].
27818
27819       HUEMED
27820           Display the median value for hue within the input frame. Expressed
27821           in range of [0-360].
27822
27823       HUEAVG
27824           Display the average value for hue within the input frame. Expressed
27825           in range of [0-360].
27826
27827       YDIF
27828           Display the average of sample value difference between all values
27829           of the Y plane in the current frame and corresponding values of the
27830           previous input frame.  Expressed in range of [0-255].
27831
27832       UDIF
27833           Display the average of sample value difference between all values
27834           of the U plane in the current frame and corresponding values of the
27835           previous input frame.  Expressed in range of [0-255].
27836
27837       VDIF
27838           Display the average of sample value difference between all values
27839           of the V plane in the current frame and corresponding values of the
27840           previous input frame.  Expressed in range of [0-255].
27841
27842       YBITDEPTH
27843           Display bit depth of Y plane in current frame.  Expressed in range
27844           of [0-16].
27845
27846       UBITDEPTH
27847           Display bit depth of U plane in current frame.  Expressed in range
27848           of [0-16].
27849
27850       VBITDEPTH
27851           Display bit depth of V plane in current frame.  Expressed in range
27852           of [0-16].
27853
27854       The filter accepts the following options:
27855
27856       stat
27857       out stat specify an additional form of image analysis.  out output
27858           video with the specified type of pixel highlighted.
27859
27860           Both options accept the following values:
27861
27862           tout
27863               Identify temporal outliers pixels. A temporal outlier is a
27864               pixel unlike the neighboring pixels of the same field. Examples
27865               of temporal outliers include the results of video dropouts,
27866               head clogs, or tape tracking issues.
27867
27868           vrep
27869               Identify vertical line repetition. Vertical line repetition
27870               includes similar rows of pixels within a frame. In born-digital
27871               video vertical line repetition is common, but this pattern is
27872               uncommon in video digitized from an analog source. When it
27873               occurs in video that results from the digitization of an analog
27874               source it can indicate concealment from a dropout compensator.
27875
27876           brng
27877               Identify pixels that fall outside of legal broadcast range.
27878
27879       color, c
27880           Set the highlight color for the out option. The default color is
27881           yellow.
27882
27883       Examples
27884
27885       •   Output data of various video metrics:
27886
27887                   ffprobe -f lavfi movie=example.mov,signalstats="stat=tout+vrep+brng" -show_frames
27888
27889       •   Output specific data about the minimum and maximum values of the Y
27890           plane per frame:
27891
27892                   ffprobe -f lavfi movie=example.mov,signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN
27893
27894       •   Playback video while highlighting pixels that are outside of
27895           broadcast range in red.
27896
27897                   ffplay example.mov -vf signalstats="out=brng:color=red"
27898
27899       •   Playback video with signalstats metadata drawn over the frame.
27900
27901                   ffplay example.mov -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=FreeSerif.ttf:textfile=signalstat_drawtext.txt
27902
27903           The contents of signalstat_drawtext.txt used in the command are:
27904
27905                   time %{pts:hms}
27906                   Y (%{metadata:lavfi.signalstats.YMIN}-%{metadata:lavfi.signalstats.YMAX})
27907                   U (%{metadata:lavfi.signalstats.UMIN}-%{metadata:lavfi.signalstats.UMAX})
27908                   V (%{metadata:lavfi.signalstats.VMIN}-%{metadata:lavfi.signalstats.VMAX})
27909                   saturation maximum: %{metadata:lavfi.signalstats.SATMAX}
27910
27911   signature
27912       Calculates the MPEG-7 Video Signature. The filter can handle more than
27913       one input. In this case the matching between the inputs can be
27914       calculated additionally.  The filter always passes through the first
27915       input. The signature of each stream can be written into a file.
27916
27917       It accepts the following options:
27918
27919       detectmode
27920           Enable or disable the matching process.
27921
27922           Available values are:
27923
27924           off Disable the calculation of a matching (default).
27925
27926           full
27927               Calculate the matching for the whole video and output whether
27928               the whole video matches or only parts.
27929
27930           fast
27931               Calculate only until a matching is found or the video ends.
27932               Should be faster in some cases.
27933
27934       nb_inputs
27935           Set the number of inputs. The option value must be a non negative
27936           integer.  Default value is 1.
27937
27938       filename
27939           Set the path to which the output is written. If there is more than
27940           one input, the path must be a prototype, i.e. must contain %d or
27941           %0nd (where n is a positive integer), that will be replaced with
27942           the input number. If no filename is specified, no output will be
27943           written. This is the default.
27944
27945       format
27946           Choose the output format.
27947
27948           Available values are:
27949
27950           binary
27951               Use the specified binary representation (default).
27952
27953           xml Use the specified xml representation.
27954
27955       th_d
27956           Set threshold to detect one word as similar. The option value must
27957           be an integer greater than zero. The default value is 9000.
27958
27959       th_dc
27960           Set threshold to detect all words as similar. The option value must
27961           be an integer greater than zero. The default value is 60000.
27962
27963       th_xh
27964           Set threshold to detect frames as similar. The option value must be
27965           an integer greater than zero. The default value is 116.
27966
27967       th_di
27968           Set the minimum length of a sequence in frames to recognize it as
27969           matching sequence. The option value must be a non negative integer
27970           value.  The default value is 0.
27971
27972       th_it
27973           Set the minimum relation, that matching frames to all frames must
27974           have.  The option value must be a double value between 0 and 1. The
27975           default value is 0.5.
27976
27977       Examples
27978
27979       •   To calculate the signature of an input video and store it in
27980           signature.bin:
27981
27982                   ffmpeg -i input.mkv -vf signature=filename=signature.bin -map 0:v -f null -
27983
27984       •   To detect whether two videos match and store the signatures in XML
27985           format in signature0.xml and signature1.xml:
27986
27987                   ffmpeg -i input1.mkv -i input2.mkv -filter_complex "[0:v][1:v] signature=nb_inputs=2:detectmode=full:format=xml:filename=signature%d.xml" -map :v -f null -
27988
27989   siti
27990       Calculate Spatial Info (SI) and Temporal Info (TI) scores for a video,
27991       as defined in ITU-T P.910: Subjective video quality assessment methods
27992       for multimedia applications. Available PDF at
27993       <https://www.itu.int/rec/T-REC-P.910-199909-S/en >.
27994
27995       It accepts the following option:
27996
27997       print_summary
27998           If set to 1, Summary statistics will be printed to the console.
27999           Default 0.
28000
28001       Examples
28002
28003       •   To calculate SI/TI metrics and print summary:
28004
28005                   ffmpeg -i input.mp4 -vf siti=print_summary=1 -f null -
28006
28007   smartblur
28008       Blur the input video without impacting the outlines.
28009
28010       It accepts the following options:
28011
28012       luma_radius, lr
28013           Set the luma radius. The option value must be a float number in the
28014           range [0.1,5.0] that specifies the variance of the gaussian filter
28015           used to blur the image (slower if larger). Default value is 1.0.
28016
28017       luma_strength, ls
28018           Set the luma strength. The option value must be a float number in
28019           the range [-1.0,1.0] that configures the blurring. A value included
28020           in [0.0,1.0] will blur the image whereas a value included in
28021           [-1.0,0.0] will sharpen the image. Default value is 1.0.
28022
28023       luma_threshold, lt
28024           Set the luma threshold used as a coefficient to determine whether a
28025           pixel should be blurred or not. The option value must be an integer
28026           in the range [-30,30]. A value of 0 will filter all the image, a
28027           value included in [0,30] will filter flat areas and a value
28028           included in [-30,0] will filter edges. Default value is 0.
28029
28030       chroma_radius, cr
28031           Set the chroma radius. The option value must be a float number in
28032           the range [0.1,5.0] that specifies the variance of the gaussian
28033           filter used to blur the image (slower if larger). Default value is
28034           luma_radius.
28035
28036       chroma_strength, cs
28037           Set the chroma strength. The option value must be a float number in
28038           the range [-1.0,1.0] that configures the blurring. A value included
28039           in [0.0,1.0] will blur the image whereas a value included in
28040           [-1.0,0.0] will sharpen the image. Default value is luma_strength.
28041
28042       chroma_threshold, ct
28043           Set the chroma threshold used as a coefficient to determine whether
28044           a pixel should be blurred or not. The option value must be an
28045           integer in the range [-30,30]. A value of 0 will filter all the
28046           image, a value included in [0,30] will filter flat areas and a
28047           value included in [-30,0] will filter edges. Default value is
28048           luma_threshold.
28049
28050       If a chroma option is not explicitly set, the corresponding luma value
28051       is set.
28052
28053   sobel
28054       Apply sobel operator to input video stream.
28055
28056       The filter accepts the following option:
28057
28058       planes
28059           Set which planes will be processed, unprocessed planes will be
28060           copied.  By default value 0xf, all planes will be processed.
28061
28062       scale
28063           Set value which will be multiplied with filtered result.
28064
28065       delta
28066           Set value which will be added to filtered result.
28067
28068       Commands
28069
28070       This filter supports the all above options as commands.
28071
28072   spp
28073       Apply a simple postprocessing filter that compresses and decompresses
28074       the image at several (or - in the case of quality level 6 - all) shifts
28075       and average the results.
28076
28077       The filter accepts the following options:
28078
28079       quality
28080           Set quality. This option defines the number of levels for
28081           averaging. It accepts an integer in the range 0-6. If set to 0, the
28082           filter will have no effect. A value of 6 means the higher quality.
28083           For each increment of that value the speed drops by a factor of
28084           approximately 2.  Default value is 3.
28085
28086       qp  Force a constant quantization parameter. If not set, the filter
28087           will use the QP from the video stream (if available).
28088
28089       mode
28090           Set thresholding mode. Available modes are:
28091
28092           hard
28093               Set hard thresholding (default).
28094
28095           soft
28096               Set soft thresholding (better de-ringing effect, but likely
28097               blurrier).
28098
28099       use_bframe_qp
28100           Enable the use of the QP from the B-Frames if set to 1. Using this
28101           option may cause flicker since the B-Frames have often larger QP.
28102           Default is 0 (not enabled).
28103
28104       Commands
28105
28106       This filter supports the following commands:
28107
28108       quality, level
28109           Set quality level. The value "max" can be used to set the maximum
28110           level, currently 6.
28111
28112   sr
28113       Scale the input by applying one of the super-resolution methods based
28114       on convolutional neural networks. Supported models:
28115
28116       •   Super-Resolution Convolutional Neural Network model (SRCNN).  See
28117           <https://arxiv.org/abs/1501.00092>.
28118
28119       •   Efficient Sub-Pixel Convolutional Neural Network model (ESPCN).
28120           See <https://arxiv.org/abs/1609.05158>.
28121
28122       Training scripts as well as scripts for model file (.pb) saving can be
28123       found at <https://github.com/XueweiMeng/sr/tree/sr_dnn_native>.
28124       Original repository is at
28125       <https://github.com/HighVoltageRocknRoll/sr.git>.
28126
28127       Native model files (.model) can be generated from TensorFlow model
28128       files (.pb) by using tools/python/convert.py
28129
28130       The filter accepts the following options:
28131
28132       dnn_backend
28133           Specify which DNN backend to use for model loading and execution.
28134           This option accepts the following values:
28135
28136           native
28137               Native implementation of DNN loading and execution.
28138
28139           tensorflow
28140               TensorFlow backend. To enable this backend you need to install
28141               the TensorFlow for C library (see
28142               <https://www.tensorflow.org/install/lang_c>) and configure
28143               FFmpeg with "--enable-libtensorflow"
28144
28145           Default value is native.
28146
28147       model
28148           Set path to model file specifying network architecture and its
28149           parameters.  Note that different backends use different file
28150           formats. TensorFlow backend can load files for both formats, while
28151           native backend can load files for only its format.
28152
28153       scale_factor
28154           Set scale factor for SRCNN model. Allowed values are 2, 3 and 4.
28155           Default value is 2. Scale factor is necessary for SRCNN model,
28156           because it accepts input upscaled using bicubic upscaling with
28157           proper scale factor.
28158
28159       To get full functionality (such as async execution), please use the
28160       dnn_processing filter.
28161
28162   ssim
28163       Obtain the SSIM (Structural SImilarity Metric) between two input
28164       videos.
28165
28166       This filter takes in input two input videos, the first input is
28167       considered the "main" source and is passed unchanged to the output. The
28168       second input is used as a "reference" video for computing the SSIM.
28169
28170       Both video inputs must have the same resolution and pixel format for
28171       this filter to work correctly. Also it assumes that both inputs have
28172       the same number of frames, which are compared one by one.
28173
28174       The filter stores the calculated SSIM of each frame.
28175
28176       The description of the accepted parameters follows.
28177
28178       stats_file, f
28179           If specified the filter will use the named file to save the SSIM of
28180           each individual frame. When filename equals "-" the data is sent to
28181           standard output.
28182
28183       The file printed if stats_file is selected, contains a sequence of
28184       key/value pairs of the form key:value for each compared couple of
28185       frames.
28186
28187       A description of each shown parameter follows:
28188
28189       n   sequential number of the input frame, starting from 1
28190
28191       Y, U, V, R, G, B
28192           SSIM of the compared frames for the component specified by the
28193           suffix.
28194
28195       All SSIM of the compared frames for the whole frame.
28196
28197       dB  Same as above but in dB representation.
28198
28199       This filter also supports the framesync options.
28200
28201       Examples
28202
28203       •   For example:
28204
28205                   movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
28206                   [main][ref] ssim="stats_file=stats.log" [out]
28207
28208           On this example the input file being processed is compared with the
28209           reference file ref_movie.mpg. The SSIM of each individual frame is
28210           stored in stats.log.
28211
28212       •   Another example with both psnr and ssim at same time:
28213
28214                   ffmpeg -i main.mpg -i ref.mpg -lavfi  "ssim;[0:v][1:v]psnr" -f null -
28215
28216       •   Another example with different containers:
28217
28218                   ffmpeg -i main.mpg -i ref.mkv -lavfi  "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]ssim" -f null -
28219
28220   stereo3d
28221       Convert between different stereoscopic image formats.
28222
28223       The filters accept the following options:
28224
28225       in  Set stereoscopic image format of input.
28226
28227           Available values for input image formats are:
28228
28229           sbsl
28230               side by side parallel (left eye left, right eye right)
28231
28232           sbsr
28233               side by side crosseye (right eye left, left eye right)
28234
28235           sbs2l
28236               side by side parallel with half width resolution (left eye
28237               left, right eye right)
28238
28239           sbs2r
28240               side by side crosseye with half width resolution (right eye
28241               left, left eye right)
28242
28243           abl
28244           tbl above-below (left eye above, right eye below)
28245
28246           abr
28247           tbr above-below (right eye above, left eye below)
28248
28249           ab2l
28250           tb2l
28251               above-below with half height resolution (left eye above, right
28252               eye below)
28253
28254           ab2r
28255           tb2r
28256               above-below with half height resolution (right eye above, left
28257               eye below)
28258
28259           al  alternating frames (left eye first, right eye second)
28260
28261           ar  alternating frames (right eye first, left eye second)
28262
28263           irl interleaved rows (left eye has top row, right eye starts on
28264               next row)
28265
28266           irr interleaved rows (right eye has top row, left eye starts on
28267               next row)
28268
28269           icl interleaved columns, left eye first
28270
28271           icr interleaved columns, right eye first
28272
28273               Default value is sbsl.
28274
28275       out Set stereoscopic image format of output.
28276
28277           sbsl
28278               side by side parallel (left eye left, right eye right)
28279
28280           sbsr
28281               side by side crosseye (right eye left, left eye right)
28282
28283           sbs2l
28284               side by side parallel with half width resolution (left eye
28285               left, right eye right)
28286
28287           sbs2r
28288               side by side crosseye with half width resolution (right eye
28289               left, left eye right)
28290
28291           abl
28292           tbl above-below (left eye above, right eye below)
28293
28294           abr
28295           tbr above-below (right eye above, left eye below)
28296
28297           ab2l
28298           tb2l
28299               above-below with half height resolution (left eye above, right
28300               eye below)
28301
28302           ab2r
28303           tb2r
28304               above-below with half height resolution (right eye above, left
28305               eye below)
28306
28307           al  alternating frames (left eye first, right eye second)
28308
28309           ar  alternating frames (right eye first, left eye second)
28310
28311           irl interleaved rows (left eye has top row, right eye starts on
28312               next row)
28313
28314           irr interleaved rows (right eye has top row, left eye starts on
28315               next row)
28316
28317           arbg
28318               anaglyph red/blue gray (red filter on left eye, blue filter on
28319               right eye)
28320
28321           argg
28322               anaglyph red/green gray (red filter on left eye, green filter
28323               on right eye)
28324
28325           arcg
28326               anaglyph red/cyan gray (red filter on left eye, cyan filter on
28327               right eye)
28328
28329           arch
28330               anaglyph red/cyan half colored (red filter on left eye, cyan
28331               filter on right eye)
28332
28333           arcc
28334               anaglyph red/cyan color (red filter on left eye, cyan filter on
28335               right eye)
28336
28337           arcd
28338               anaglyph red/cyan color optimized with the least squares
28339               projection of dubois (red filter on left eye, cyan filter on
28340               right eye)
28341
28342           agmg
28343               anaglyph green/magenta gray (green filter on left eye, magenta
28344               filter on right eye)
28345
28346           agmh
28347               anaglyph green/magenta half colored (green filter on left eye,
28348               magenta filter on right eye)
28349
28350           agmc
28351               anaglyph green/magenta colored (green filter on left eye,
28352               magenta filter on right eye)
28353
28354           agmd
28355               anaglyph green/magenta color optimized with the least squares
28356               projection of dubois (green filter on left eye, magenta filter
28357               on right eye)
28358
28359           aybg
28360               anaglyph yellow/blue gray (yellow filter on left eye, blue
28361               filter on right eye)
28362
28363           aybh
28364               anaglyph yellow/blue half colored (yellow filter on left eye,
28365               blue filter on right eye)
28366
28367           aybc
28368               anaglyph yellow/blue colored (yellow filter on left eye, blue
28369               filter on right eye)
28370
28371           aybd
28372               anaglyph yellow/blue color optimized with the least squares
28373               projection of dubois (yellow filter on left eye, blue filter on
28374               right eye)
28375
28376           ml  mono output (left eye only)
28377
28378           mr  mono output (right eye only)
28379
28380           chl checkerboard, left eye first
28381
28382           chr checkerboard, right eye first
28383
28384           icl interleaved columns, left eye first
28385
28386           icr interleaved columns, right eye first
28387
28388           hdmi
28389               HDMI frame pack
28390
28391           Default value is arcd.
28392
28393       Examples
28394
28395       •   Convert input video from side by side parallel to anaglyph
28396           yellow/blue dubois:
28397
28398                   stereo3d=sbsl:aybd
28399
28400       •   Convert input video from above below (left eye above, right eye
28401           below) to side by side crosseye.
28402
28403                   stereo3d=abl:sbsr
28404
28405   streamselect, astreamselect
28406       Select video or audio streams.
28407
28408       The filter accepts the following options:
28409
28410       inputs
28411           Set number of inputs. Default is 2.
28412
28413       map Set input indexes to remap to outputs.
28414
28415       Commands
28416
28417       The "streamselect" and "astreamselect" filter supports the following
28418       commands:
28419
28420       map Set input indexes to remap to outputs.
28421
28422       Examples
28423
28424       •   Select first 5 seconds 1st stream and rest of time 2nd stream:
28425
28426                   sendcmd='5.0 streamselect map 1',streamselect=inputs=2:map=0
28427
28428       •   Same as above, but for audio:
28429
28430                   asendcmd='5.0 astreamselect map 1',astreamselect=inputs=2:map=0
28431
28432   subtitles
28433       Draw subtitles on top of input video using the libass library.
28434
28435       To enable compilation of this filter you need to configure FFmpeg with
28436       "--enable-libass". This filter also requires a build with libavcodec
28437       and libavformat to convert the passed subtitles file to ASS (Advanced
28438       Substation Alpha) subtitles format.
28439
28440       The filter accepts the following options:
28441
28442       filename, f
28443           Set the filename of the subtitle file to read. It must be
28444           specified.
28445
28446       original_size
28447           Specify the size of the original video, the video for which the ASS
28448           file was composed. For the syntax of this option, check the "Video
28449           size" section in the ffmpeg-utils manual.  Due to a misdesign in
28450           ASS aspect ratio arithmetic, this is necessary to correctly scale
28451           the fonts if the aspect ratio has been changed.
28452
28453       fontsdir
28454           Set a directory path containing fonts that can be used by the
28455           filter.  These fonts will be used in addition to whatever the font
28456           provider uses.
28457
28458       alpha
28459           Process alpha channel, by default alpha channel is untouched.
28460
28461       charenc
28462           Set subtitles input character encoding. "subtitles" filter only.
28463           Only useful if not UTF-8.
28464
28465       stream_index, si
28466           Set subtitles stream index. "subtitles" filter only.
28467
28468       force_style
28469           Override default style or script info parameters of the subtitles.
28470           It accepts a string containing ASS style format "KEY=VALUE" couples
28471           separated by ",".
28472
28473       If the first key is not specified, it is assumed that the first value
28474       specifies the filename.
28475
28476       For example, to render the file sub.srt on top of the input video, use
28477       the command:
28478
28479               subtitles=sub.srt
28480
28481       which is equivalent to:
28482
28483               subtitles=filename=sub.srt
28484
28485       To render the default subtitles stream from file video.mkv, use:
28486
28487               subtitles=video.mkv
28488
28489       To render the second subtitles stream from that file, use:
28490
28491               subtitles=video.mkv:si=1
28492
28493       To make the subtitles stream from sub.srt appear in 80% transparent
28494       blue "DejaVu Serif", use:
28495
28496               subtitles=sub.srt:force_style='Fontname=DejaVu Serif,PrimaryColour=&HCCFF0000'
28497
28498   super2xsai
28499       Scale the input by 2x and smooth using the Super2xSaI (Scale and
28500       Interpolate) pixel art scaling algorithm.
28501
28502       Useful for enlarging pixel art images without reducing sharpness.
28503
28504   swaprect
28505       Swap two rectangular objects in video.
28506
28507       This filter accepts the following options:
28508
28509       w   Set object width.
28510
28511       h   Set object height.
28512
28513       x1  Set 1st rect x coordinate.
28514
28515       y1  Set 1st rect y coordinate.
28516
28517       x2  Set 2nd rect x coordinate.
28518
28519       y2  Set 2nd rect y coordinate.
28520
28521           All expressions are evaluated once for each frame.
28522
28523       The all options are expressions containing the following constants:
28524
28525       w
28526       h   The input width and height.
28527
28528       a   same as w / h
28529
28530       sar input sample aspect ratio
28531
28532       dar input display aspect ratio, it is the same as (w / h) * sar
28533
28534       n   The number of the input frame, starting from 0.
28535
28536       t   The timestamp expressed in seconds. It's NAN if the input timestamp
28537           is unknown.
28538
28539       pos the position in the file of the input frame, NAN if unknown
28540
28541       Commands
28542
28543       This filter supports the all above options as commands.
28544
28545   swapuv
28546       Swap U & V plane.
28547
28548   tblend
28549       Blend successive video frames.
28550
28551       See blend
28552
28553   telecine
28554       Apply telecine process to the video.
28555
28556       This filter accepts the following options:
28557
28558       first_field
28559           top, t
28560               top field first
28561
28562           bottom, b
28563               bottom field first The default value is "top".
28564
28565       pattern
28566           A string of numbers representing the pulldown pattern you wish to
28567           apply.  The default value is 23.
28568
28569               Some typical patterns:
28570
28571               NTSC output (30i):
28572               27.5p: 32222
28573               24p: 23 (classic)
28574               24p: 2332 (preferred)
28575               20p: 33
28576               18p: 334
28577               16p: 3444
28578
28579               PAL output (25i):
28580               27.5p: 12222
28581               24p: 222222222223 ("Euro pulldown")
28582               16.67p: 33
28583               16p: 33333334
28584
28585   thistogram
28586       Compute and draw a color distribution histogram for the input video
28587       across time.
28588
28589       Unlike histogram video filter which only shows histogram of single
28590       input frame at certain time, this filter shows also past histograms of
28591       number of frames defined by "width" option.
28592
28593       The computed histogram is a representation of the color component
28594       distribution in an image.
28595
28596       The filter accepts the following options:
28597
28598       width, w
28599           Set width of single color component output. Default value is 0.
28600           Value of 0 means width will be picked from input video.  This also
28601           set number of passed histograms to keep.  Allowed range is [0,
28602           8192].
28603
28604       display_mode, d
28605           Set display mode.  It accepts the following values:
28606
28607           stack
28608               Per color component graphs are placed below each other.
28609
28610           parade
28611               Per color component graphs are placed side by side.
28612
28613           overlay
28614               Presents information identical to that in the "parade", except
28615               that the graphs representing color components are superimposed
28616               directly over one another.
28617
28618           Default is "stack".
28619
28620       levels_mode, m
28621           Set mode. Can be either "linear", or "logarithmic".  Default is
28622           "linear".
28623
28624       components, c
28625           Set what color components to display.  Default is 7.
28626
28627       bgopacity, b
28628           Set background opacity. Default is 0.9.
28629
28630       envelope, e
28631           Show envelope. Default is disabled.
28632
28633       ecolor, ec
28634           Set envelope color. Default is "gold".
28635
28636       slide
28637           Set slide mode.
28638
28639           Available values for slide is:
28640
28641           frame
28642               Draw new frame when right border is reached.
28643
28644           replace
28645               Replace old columns with new ones.
28646
28647           scroll
28648               Scroll from right to left.
28649
28650           rscroll
28651               Scroll from left to right.
28652
28653           picture
28654               Draw single picture.
28655
28656           Default is "replace".
28657
28658   threshold
28659       Apply threshold effect to video stream.
28660
28661       This filter needs four video streams to perform thresholding.  First
28662       stream is stream we are filtering.  Second stream is holding threshold
28663       values, third stream is holding min values, and last, fourth stream is
28664       holding max values.
28665
28666       The filter accepts the following option:
28667
28668       planes
28669           Set which planes will be processed, unprocessed planes will be
28670           copied.  By default value 0xf, all planes will be processed.
28671
28672       For example if first stream pixel's component value is less then
28673       threshold value of pixel component from 2nd threshold stream, third
28674       stream value will picked, otherwise fourth stream pixel component value
28675       will be picked.
28676
28677       Using color source filter one can perform various types of
28678       thresholding:
28679
28680       Commands
28681
28682       This filter supports the all options as commands.
28683
28684       Examples
28685
28686       •   Binary threshold, using gray color as threshold:
28687
28688                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=black -f lavfi -i color=white -lavfi threshold output.avi
28689
28690       •   Inverted binary threshold, using gray color as threshold:
28691
28692                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -f lavfi -i color=black -lavfi threshold output.avi
28693
28694       •   Truncate binary threshold, using gray color as threshold:
28695
28696                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=gray -lavfi threshold output.avi
28697
28698       •   Threshold to zero, using gray color as threshold:
28699
28700                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -i 320x240.avi -lavfi threshold output.avi
28701
28702       •   Inverted threshold to zero, using gray color as threshold:
28703
28704                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=white -lavfi threshold output.avi
28705
28706   thumbnail
28707       Select the most representative frame in a given sequence of consecutive
28708       frames.
28709
28710       The filter accepts the following options:
28711
28712       n   Set the frames batch size to analyze; in a set of n frames, the
28713           filter will pick one of them, and then handle the next batch of n
28714           frames until the end. Default is 100.
28715
28716       Since the filter keeps track of the whole frames sequence, a bigger n
28717       value will result in a higher memory usage, so a high value is not
28718       recommended.
28719
28720       Examples
28721
28722       •   Extract one picture each 50 frames:
28723
28724                   thumbnail=50
28725
28726       •   Complete example of a thumbnail creation with ffmpeg:
28727
28728                   ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
28729
28730   tile
28731       Tile several successive frames together.
28732
28733       The untile filter can do the reverse.
28734
28735       The filter accepts the following options:
28736
28737       layout
28738           Set the grid size in the form "COLUMNSxROWS". Range is upto
28739           UINT_MAX cells.  Default is "6x5".
28740
28741       nb_frames
28742           Set the maximum number of frames to render in the given area. It
28743           must be less than or equal to wxh. The default value is 0, meaning
28744           all the area will be used.
28745
28746       margin
28747           Set the outer border margin in pixels. Range is 0 to 1024. Default
28748           is 0.
28749
28750       padding
28751           Set the inner border thickness (i.e. the number of pixels between
28752           frames). For more advanced padding options (such as having
28753           different values for the edges), refer to the pad video filter.
28754           Range is 0 to 1024. Default is 0.
28755
28756       color
28757           Specify the color of the unused area. For the syntax of this
28758           option, check the "Color" section in the ffmpeg-utils manual.  The
28759           default value of color is "black".
28760
28761       overlap
28762           Set the number of frames to overlap when tiling several successive
28763           frames together.  The value must be between 0 and nb_frames - 1.
28764           Default is 0.
28765
28766       init_padding
28767           Set the number of frames to initially be empty before displaying
28768           first output frame.  This controls how soon will one get first
28769           output frame.  The value must be between 0 and nb_frames - 1.
28770           Default is 0.
28771
28772       Examples
28773
28774       •   Produce 8x8 PNG tiles of all keyframes (-skip_frame nokey) in a
28775           movie:
28776
28777                   ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
28778
28779           The -vsync 0 is necessary to prevent ffmpeg from duplicating each
28780           output frame to accommodate the originally detected frame rate.
28781
28782       •   Display 5 pictures in an area of "3x2" frames, with 7 pixels
28783           between them, and 2 pixels of initial margin, using mixed flat and
28784           named options:
28785
28786                   tile=3x2:nb_frames=5:padding=7:margin=2
28787
28788   tinterlace
28789       Perform various types of temporal field interlacing.
28790
28791       Frames are counted starting from 1, so the first input frame is
28792       considered odd.
28793
28794       The filter accepts the following options:
28795
28796       mode
28797           Specify the mode of the interlacing. This option can also be
28798           specified as a value alone. See below for a list of values for this
28799           option.
28800
28801           Available values are:
28802
28803           merge, 0
28804               Move odd frames into the upper field, even into the lower
28805               field, generating a double height frame at half frame rate.
28806
28807                        ------> time
28808                       Input:
28809                       Frame 1         Frame 2         Frame 3         Frame 4
28810
28811                       11111           22222           33333           44444
28812                       11111           22222           33333           44444
28813                       11111           22222           33333           44444
28814                       11111           22222           33333           44444
28815
28816                       Output:
28817                       11111                           33333
28818                       22222                           44444
28819                       11111                           33333
28820                       22222                           44444
28821                       11111                           33333
28822                       22222                           44444
28823                       11111                           33333
28824                       22222                           44444
28825
28826           drop_even, 1
28827               Only output odd frames, even frames are dropped, generating a
28828               frame with unchanged height at half frame rate.
28829
28830                        ------> time
28831                       Input:
28832                       Frame 1         Frame 2         Frame 3         Frame 4
28833
28834                       11111           22222           33333           44444
28835                       11111           22222           33333           44444
28836                       11111           22222           33333           44444
28837                       11111           22222           33333           44444
28838
28839                       Output:
28840                       11111                           33333
28841                       11111                           33333
28842                       11111                           33333
28843                       11111                           33333
28844
28845           drop_odd, 2
28846               Only output even frames, odd frames are dropped, generating a
28847               frame with unchanged height at half frame rate.
28848
28849                        ------> time
28850                       Input:
28851                       Frame 1         Frame 2         Frame 3         Frame 4
28852
28853                       11111           22222           33333           44444
28854                       11111           22222           33333           44444
28855                       11111           22222           33333           44444
28856                       11111           22222           33333           44444
28857
28858                       Output:
28859                                       22222                           44444
28860                                       22222                           44444
28861                                       22222                           44444
28862                                       22222                           44444
28863
28864           pad, 3
28865               Expand each frame to full height, but pad alternate lines with
28866               black, generating a frame with double height at the same input
28867               frame rate.
28868
28869                        ------> time
28870                       Input:
28871                       Frame 1         Frame 2         Frame 3         Frame 4
28872
28873                       11111           22222           33333           44444
28874                       11111           22222           33333           44444
28875                       11111           22222           33333           44444
28876                       11111           22222           33333           44444
28877
28878                       Output:
28879                       11111           .....           33333           .....
28880                       .....           22222           .....           44444
28881                       11111           .....           33333           .....
28882                       .....           22222           .....           44444
28883                       11111           .....           33333           .....
28884                       .....           22222           .....           44444
28885                       11111           .....           33333           .....
28886                       .....           22222           .....           44444
28887
28888           interleave_top, 4
28889               Interleave the upper field from odd frames with the lower field
28890               from even frames, generating a frame with unchanged height at
28891               half frame rate.
28892
28893                        ------> time
28894                       Input:
28895                       Frame 1         Frame 2         Frame 3         Frame 4
28896
28897                       11111<-         22222           33333<-         44444
28898                       11111           22222<-         33333           44444<-
28899                       11111<-         22222           33333<-         44444
28900                       11111           22222<-         33333           44444<-
28901
28902                       Output:
28903                       11111                           33333
28904                       22222                           44444
28905                       11111                           33333
28906                       22222                           44444
28907
28908           interleave_bottom, 5
28909               Interleave the lower field from odd frames with the upper field
28910               from even frames, generating a frame with unchanged height at
28911               half frame rate.
28912
28913                        ------> time
28914                       Input:
28915                       Frame 1         Frame 2         Frame 3         Frame 4
28916
28917                       11111           22222<-         33333           44444<-
28918                       11111<-         22222           33333<-         44444
28919                       11111           22222<-         33333           44444<-
28920                       11111<-         22222           33333<-         44444
28921
28922                       Output:
28923                       22222                           44444
28924                       11111                           33333
28925                       22222                           44444
28926                       11111                           33333
28927
28928           interlacex2, 6
28929               Double frame rate with unchanged height. Frames are inserted
28930               each containing the second temporal field from the previous
28931               input frame and the first temporal field from the next input
28932               frame. This mode relies on the top_field_first flag. Useful for
28933               interlaced video displays with no field synchronisation.
28934
28935                        ------> time
28936                       Input:
28937                       Frame 1         Frame 2         Frame 3         Frame 4
28938
28939                       11111           22222           33333           44444
28940                        11111           22222           33333           44444
28941                       11111           22222           33333           44444
28942                        11111           22222           33333           44444
28943
28944                       Output:
28945                       11111   22222   22222   33333   33333   44444   44444
28946                        11111   11111   22222   22222   33333   33333   44444
28947                       11111   22222   22222   33333   33333   44444   44444
28948                        11111   11111   22222   22222   33333   33333   44444
28949
28950           mergex2, 7
28951               Move odd frames into the upper field, even into the lower
28952               field, generating a double height frame at same frame rate.
28953
28954                        ------> time
28955                       Input:
28956                       Frame 1         Frame 2         Frame 3         Frame 4
28957
28958                       11111           22222           33333           44444
28959                       11111           22222           33333           44444
28960                       11111           22222           33333           44444
28961                       11111           22222           33333           44444
28962
28963                       Output:
28964                       11111           33333           33333           55555
28965                       22222           22222           44444           44444
28966                       11111           33333           33333           55555
28967                       22222           22222           44444           44444
28968                       11111           33333           33333           55555
28969                       22222           22222           44444           44444
28970                       11111           33333           33333           55555
28971                       22222           22222           44444           44444
28972
28973           Numeric values are deprecated but are accepted for backward
28974           compatibility reasons.
28975
28976           Default mode is "merge".
28977
28978       flags
28979           Specify flags influencing the filter process.
28980
28981           Available value for flags is:
28982
28983           low_pass_filter, vlpf
28984               Enable linear vertical low-pass filtering in the filter.
28985               Vertical low-pass filtering is required when creating an
28986               interlaced destination from a progressive source which contains
28987               high-frequency vertical detail. Filtering will reduce interlace
28988               'twitter' and Moire patterning.
28989
28990           complex_filter, cvlpf
28991               Enable complex vertical low-pass filtering.  This will slightly
28992               less reduce interlace 'twitter' and Moire patterning but better
28993               retain detail and subjective sharpness impression.
28994
28995           bypass_il
28996               Bypass already interlaced frames, only adjust the frame rate.
28997
28998           Vertical low-pass filtering and bypassing already interlaced frames
28999           can only be enabled for mode interleave_top and interleave_bottom.
29000
29001   tmedian
29002       Pick median pixels from several successive input video frames.
29003
29004       The filter accepts the following options:
29005
29006       radius
29007           Set radius of median filter.  Default is 1. Allowed range is from 1
29008           to 127.
29009
29010       planes
29011           Set which planes to filter. Default value is 15, by which all
29012           planes are processed.
29013
29014       percentile
29015           Set median percentile. Default value is 0.5.  Default value of 0.5
29016           will pick always median values, while 0 will pick minimum values,
29017           and 1 maximum values.
29018
29019       Commands
29020
29021       This filter supports all above options as commands, excluding option
29022       "radius".
29023
29024   tmidequalizer
29025       Apply Temporal Midway Video Equalization effect.
29026
29027       Midway Video Equalization adjusts a sequence of video frames to have
29028       the same histograms, while maintaining their dynamics as much as
29029       possible. It's useful for e.g. matching exposures from a video frames
29030       sequence.
29031
29032       This filter accepts the following option:
29033
29034       radius
29035           Set filtering radius. Default is 5. Allowed range is from 1 to 127.
29036
29037       sigma
29038           Set filtering sigma. Default is 0.5. This controls strength of
29039           filtering.  Setting this option to 0 effectively does nothing.
29040
29041       planes
29042           Set which planes to process. Default is 15, which is all available
29043           planes.
29044
29045   tmix
29046       Mix successive video frames.
29047
29048       A description of the accepted options follows.
29049
29050       frames
29051           The number of successive frames to mix. If unspecified, it defaults
29052           to 3.
29053
29054       weights
29055           Specify weight of each input video frame.  Each weight is separated
29056           by space. If number of weights is smaller than number of frames
29057           last specified weight will be used for all remaining unset weights.
29058
29059       scale
29060           Specify scale, if it is set it will be multiplied with sum of each
29061           weight multiplied with pixel values to give final destination pixel
29062           value. By default scale is auto scaled to sum of weights.
29063
29064       planes
29065           Set which planes to filter. Default is all. Allowed range is from 0
29066           to 15.
29067
29068       Examples
29069
29070       •   Average 7 successive frames:
29071
29072                   tmix=frames=7:weights="1 1 1 1 1 1 1"
29073
29074       •   Apply simple temporal convolution:
29075
29076                   tmix=frames=3:weights="-1 3 -1"
29077
29078       •   Similar as above but only showing temporal differences:
29079
29080                   tmix=frames=3:weights="-1 2 -1":scale=1
29081
29082       Commands
29083
29084       This filter supports the following commands:
29085
29086       weights
29087       scale
29088       planes
29089           Syntax is same as option with same name.
29090
29091   tonemap
29092       Tone map colors from different dynamic ranges.
29093
29094       This filter expects data in single precision floating point, as it
29095       needs to operate on (and can output) out-of-range values. Another
29096       filter, such as zscale, is needed to convert the resulting frame to a
29097       usable format.
29098
29099       The tonemapping algorithms implemented only work on linear light, so
29100       input data should be linearized beforehand (and possibly correctly
29101       tagged).
29102
29103               ffmpeg -i INPUT -vf zscale=transfer=linear,tonemap=clip,zscale=transfer=bt709,format=yuv420p OUTPUT
29104
29105       Options
29106
29107       The filter accepts the following options.
29108
29109       tonemap
29110           Set the tone map algorithm to use.
29111
29112           Possible values are:
29113
29114           none
29115               Do not apply any tone map, only desaturate overbright pixels.
29116
29117           clip
29118               Hard-clip any out-of-range values. Use it for perfect color
29119               accuracy for in-range values, while distorting out-of-range
29120               values.
29121
29122           linear
29123               Stretch the entire reference gamut to a linear multiple of the
29124               display.
29125
29126           gamma
29127               Fit a logarithmic transfer between the tone curves.
29128
29129           reinhard
29130               Preserve overall image brightness with a simple curve, using
29131               nonlinear contrast, which results in flattening details and
29132               degrading color accuracy.
29133
29134           hable
29135               Preserve both dark and bright details better than reinhard, at
29136               the cost of slightly darkening everything. Use it when detail
29137               preservation is more important than color and brightness
29138               accuracy.
29139
29140           mobius
29141               Smoothly map out-of-range values, while retaining contrast and
29142               colors for in-range material as much as possible. Use it when
29143               color accuracy is more important than detail preservation.
29144
29145           Default is none.
29146
29147       param
29148           Tune the tone mapping algorithm.
29149
29150           This affects the following algorithms:
29151
29152           none
29153               Ignored.
29154
29155           linear
29156               Specifies the scale factor to use while stretching.  Default to
29157               1.0.
29158
29159           gamma
29160               Specifies the exponent of the function.  Default to 1.8.
29161
29162           clip
29163               Specify an extra linear coefficient to multiply into the signal
29164               before clipping.  Default to 1.0.
29165
29166           reinhard
29167               Specify the local contrast coefficient at the display peak.
29168               Default to 0.5, which means that in-gamut values will be about
29169               half as bright as when clipping.
29170
29171           hable
29172               Ignored.
29173
29174           mobius
29175               Specify the transition point from linear to mobius transform.
29176               Every value below this point is guaranteed to be mapped 1:1.
29177               The higher the value, the more accurate the result will be, at
29178               the cost of losing bright details.  Default to 0.3, which due
29179               to the steep initial slope still preserves in-range colors
29180               fairly accurately.
29181
29182       desat
29183           Apply desaturation for highlights that exceed this level of
29184           brightness. The higher the parameter, the more color information
29185           will be preserved. This setting helps prevent unnaturally blown-out
29186           colors for super-highlights, by (smoothly) turning into white
29187           instead. This makes images feel more natural, at the cost of
29188           reducing information about out-of-range colors.
29189
29190           The default of 2.0 is somewhat conservative and will mostly just
29191           apply to skies or directly sunlit surfaces. A setting of 0.0
29192           disables this option.
29193
29194           This option works only if the input frame has a supported color
29195           tag.
29196
29197       peak
29198           Override signal/nominal/reference peak with this value. Useful when
29199           the embedded peak information in display metadata is not reliable
29200           or when tone mapping from a lower range to a higher range.
29201
29202   tpad
29203       Temporarily pad video frames.
29204
29205       The filter accepts the following options:
29206
29207       start
29208           Specify number of delay frames before input video stream. Default
29209           is 0.
29210
29211       stop
29212           Specify number of padding frames after input video stream.  Set to
29213           -1 to pad indefinitely. Default is 0.
29214
29215       start_mode
29216           Set kind of frames added to beginning of stream.  Can be either add
29217           or clone.  With add frames of solid-color are added.  With clone
29218           frames are clones of first frame.  Default is add.
29219
29220       stop_mode
29221           Set kind of frames added to end of stream.  Can be either add or
29222           clone.  With add frames of solid-color are added.  With clone
29223           frames are clones of last frame.  Default is add.
29224
29225       start_duration, stop_duration
29226           Specify the duration of the start/stop delay. See the Time duration
29227           section in the ffmpeg-utils(1) manual for the accepted syntax.
29228           These options override start and stop. Default is 0.
29229
29230       color
29231           Specify the color of the padded area. For the syntax of this
29232           option, check the "Color" section in the ffmpeg-utils manual.
29233
29234           The default value of color is "black".
29235
29236   transpose
29237       Transpose rows with columns in the input video and optionally flip it.
29238
29239       It accepts the following parameters:
29240
29241       dir Specify the transposition direction.
29242
29243           Can assume the following values:
29244
29245           0, 4, cclock_flip
29246               Rotate by 90 degrees counterclockwise and vertically flip
29247               (default), that is:
29248
29249                       L.R     L.l
29250                       . . ->  . .
29251                       l.r     R.r
29252
29253           1, 5, clock
29254               Rotate by 90 degrees clockwise, that is:
29255
29256                       L.R     l.L
29257                       . . ->  . .
29258                       l.r     r.R
29259
29260           2, 6, cclock
29261               Rotate by 90 degrees counterclockwise, that is:
29262
29263                       L.R     R.r
29264                       . . ->  . .
29265                       l.r     L.l
29266
29267           3, 7, clock_flip
29268               Rotate by 90 degrees clockwise and vertically flip, that is:
29269
29270                       L.R     r.R
29271                       . . ->  . .
29272                       l.r     l.L
29273
29274           For values between 4-7, the transposition is only done if the input
29275           video geometry is portrait and not landscape. These values are
29276           deprecated, the "passthrough" option should be used instead.
29277
29278           Numerical values are deprecated, and should be dropped in favor of
29279           symbolic constants.
29280
29281       passthrough
29282           Do not apply the transposition if the input geometry matches the
29283           one specified by the specified value. It accepts the following
29284           values:
29285
29286           none
29287               Always apply transposition.
29288
29289           portrait
29290               Preserve portrait geometry (when height >= width).
29291
29292           landscape
29293               Preserve landscape geometry (when width >= height).
29294
29295           Default value is "none".
29296
29297       For example to rotate by 90 degrees clockwise and preserve portrait
29298       layout:
29299
29300               transpose=dir=1:passthrough=portrait
29301
29302       The command above can also be specified as:
29303
29304               transpose=1:portrait
29305
29306   transpose_npp
29307       Transpose rows with columns in the input video and optionally flip it.
29308       For more in depth examples see the transpose video filter, which shares
29309       mostly the same options.
29310
29311       It accepts the following parameters:
29312
29313       dir Specify the transposition direction.
29314
29315           Can assume the following values:
29316
29317           cclock_flip
29318               Rotate by 90 degrees counterclockwise and vertically flip.
29319               (default)
29320
29321           clock
29322               Rotate by 90 degrees clockwise.
29323
29324           cclock
29325               Rotate by 90 degrees counterclockwise.
29326
29327           clock_flip
29328               Rotate by 90 degrees clockwise and vertically flip.
29329
29330       passthrough
29331           Do not apply the transposition if the input geometry matches the
29332           one specified by the specified value. It accepts the following
29333           values:
29334
29335           none
29336               Always apply transposition. (default)
29337
29338           portrait
29339               Preserve portrait geometry (when height >= width).
29340
29341           landscape
29342               Preserve landscape geometry (when width >= height).
29343
29344   trim
29345       Trim the input so that the output contains one continuous subpart of
29346       the input.
29347
29348       It accepts the following parameters:
29349
29350       start
29351           Specify the time of the start of the kept section, i.e. the frame
29352           with the timestamp start will be the first frame in the output.
29353
29354       end Specify the time of the first frame that will be dropped, i.e. the
29355           frame immediately preceding the one with the timestamp end will be
29356           the last frame in the output.
29357
29358       start_pts
29359           This is the same as start, except this option sets the start
29360           timestamp in timebase units instead of seconds.
29361
29362       end_pts
29363           This is the same as end, except this option sets the end timestamp
29364           in timebase units instead of seconds.
29365
29366       duration
29367           The maximum duration of the output in seconds.
29368
29369       start_frame
29370           The number of the first frame that should be passed to the output.
29371
29372       end_frame
29373           The number of the first frame that should be dropped.
29374
29375       start, end, and duration are expressed as time duration specifications;
29376       see the Time duration section in the ffmpeg-utils(1) manual for the
29377       accepted syntax.
29378
29379       Note that the first two sets of the start/end options and the duration
29380       option look at the frame timestamp, while the _frame variants simply
29381       count the frames that pass through the filter. Also note that this
29382       filter does not modify the timestamps. If you wish for the output
29383       timestamps to start at zero, insert a setpts filter after the trim
29384       filter.
29385
29386       If multiple start or end options are set, this filter tries to be
29387       greedy and keep all the frames that match at least one of the specified
29388       constraints. To keep only the part that matches all the constraints at
29389       once, chain multiple trim filters.
29390
29391       The defaults are such that all the input is kept. So it is possible to
29392       set e.g.  just the end values to keep everything before the specified
29393       time.
29394
29395       Examples:
29396
29397       •   Drop everything except the second minute of input:
29398
29399                   ffmpeg -i INPUT -vf trim=60:120
29400
29401       •   Keep only the first second:
29402
29403                   ffmpeg -i INPUT -vf trim=duration=1
29404
29405   unpremultiply
29406       Apply alpha unpremultiply effect to input video stream using first
29407       plane of second stream as alpha.
29408
29409       Both streams must have same dimensions and same pixel format.
29410
29411       The filter accepts the following option:
29412
29413       planes
29414           Set which planes will be processed, unprocessed planes will be
29415           copied.  By default value 0xf, all planes will be processed.
29416
29417           If the format has 1 or 2 components, then luma is bit 0.  If the
29418           format has 3 or 4 components: for RGB formats bit 0 is green, bit 1
29419           is blue and bit 2 is red; for YUV formats bit 0 is luma, bit 1 is
29420           chroma-U and bit 2 is chroma-V.  If present, the alpha channel is
29421           always the last bit.
29422
29423       inplace
29424           Do not require 2nd input for processing, instead use alpha plane
29425           from input stream.
29426
29427   unsharp
29428       Sharpen or blur the input video.
29429
29430       It accepts the following parameters:
29431
29432       luma_msize_x, lx
29433           Set the luma matrix horizontal size. It must be an odd integer
29434           between 3 and 23. The default value is 5.
29435
29436       luma_msize_y, ly
29437           Set the luma matrix vertical size. It must be an odd integer
29438           between 3 and 23. The default value is 5.
29439
29440       luma_amount, la
29441           Set the luma effect strength. It must be a floating point number,
29442           reasonable values lay between -1.5 and 1.5.
29443
29444           Negative values will blur the input video, while positive values
29445           will sharpen it, a value of zero will disable the effect.
29446
29447           Default value is 1.0.
29448
29449       chroma_msize_x, cx
29450           Set the chroma matrix horizontal size. It must be an odd integer
29451           between 3 and 23. The default value is 5.
29452
29453       chroma_msize_y, cy
29454           Set the chroma matrix vertical size. It must be an odd integer
29455           between 3 and 23. The default value is 5.
29456
29457       chroma_amount, ca
29458           Set the chroma effect strength. It must be a floating point number,
29459           reasonable values lay between -1.5 and 1.5.
29460
29461           Negative values will blur the input video, while positive values
29462           will sharpen it, a value of zero will disable the effect.
29463
29464           Default value is 0.0.
29465
29466       alpha_msize_x, ax
29467           Set the alpha matrix horizontal size. It must be an odd integer
29468           between 3 and 23. The default value is 5.
29469
29470       alpha_msize_y, ay
29471           Set the alpha matrix vertical size. It must be an odd integer
29472           between 3 and 23. The default value is 5.
29473
29474       alpha_amount, aa
29475           Set the alpha effect strength. It must be a floating point number,
29476           reasonable values lay between -1.5 and 1.5.
29477
29478           Negative values will blur the input video, while positive values
29479           will sharpen it, a value of zero will disable the effect.
29480
29481           Default value is 0.0.
29482
29483       All parameters are optional and default to the equivalent of the string
29484       '5:5:1.0:5:5:0.0'.
29485
29486       Examples
29487
29488       •   Apply strong luma sharpen effect:
29489
29490                   unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
29491
29492       •   Apply a strong blur of both luma and chroma parameters:
29493
29494                   unsharp=7:7:-2:7:7:-2
29495
29496   untile
29497       Decompose a video made of tiled images into the individual images.
29498
29499       The frame rate of the output video is the frame rate of the input video
29500       multiplied by the number of tiles.
29501
29502       This filter does the reverse of tile.
29503
29504       The filter accepts the following options:
29505
29506       layout
29507           Set the grid size (i.e. the number of lines and columns). For the
29508           syntax of this option, check the "Video size" section in the
29509           ffmpeg-utils manual.
29510
29511       Examples
29512
29513       •   Produce a 1-second video from a still image file made of 25 frames
29514           stacked vertically, like an analogic film reel:
29515
29516                   ffmpeg -r 1 -i image.jpg -vf untile=1x25 movie.mkv
29517
29518   uspp
29519       Apply ultra slow/simple postprocessing filter that compresses and
29520       decompresses the image at several (or - in the case of quality level 8
29521       - all) shifts and average the results.
29522
29523       The way this differs from the behavior of spp is that uspp actually
29524       encodes & decodes each case with libavcodec Snow, whereas spp uses a
29525       simplified intra only 8x8 DCT similar to MJPEG.
29526
29527       This filter is only available in ffmpeg version 4.4 or earlier.
29528
29529       The filter accepts the following options:
29530
29531       quality
29532           Set quality. This option defines the number of levels for
29533           averaging. It accepts an integer in the range 0-8. If set to 0, the
29534           filter will have no effect. A value of 8 means the higher quality.
29535           For each increment of that value the speed drops by a factor of
29536           approximately 2.  Default value is 3.
29537
29538       qp  Force a constant quantization parameter. If not set, the filter
29539           will use the QP from the video stream (if available).
29540
29541   v360
29542       Convert 360 videos between various formats.
29543
29544       The filter accepts the following options:
29545
29546       input
29547       output
29548           Set format of the input/output video.
29549
29550           Available formats:
29551
29552           e
29553           equirect
29554               Equirectangular projection.
29555
29556           c3x2
29557           c6x1
29558           c1x6
29559               Cubemap with 3x2/6x1/1x6 layout.
29560
29561               Format specific options:
29562
29563               in_pad
29564               out_pad
29565                   Set padding proportion for the input/output cubemap. Values
29566                   in decimals.
29567
29568                   Example values:
29569
29570                   0   No padding.
29571
29572                   0.01
29573                       1% of face is padding. For example, with 1920x1280
29574                       resolution face size would be 640x640 and padding would
29575                       be 3 pixels from each side. (640 * 0.01 = 6 pixels)
29576
29577                   Default value is @samp{0}.  Maximum value is @samp{0.1}.
29578
29579               fin_pad
29580               fout_pad
29581                   Set fixed padding for the input/output cubemap. Values in
29582                   pixels.
29583
29584                   Default value is @samp{0}. If greater than zero it
29585                   overrides other padding options.
29586
29587               in_forder
29588               out_forder
29589                   Set order of faces for the input/output cubemap. Choose one
29590                   direction for each position.
29591
29592                   Designation of directions:
29593
29594                   r   right
29595
29596                   l   left
29597
29598                   u   up
29599
29600                   d   down
29601
29602                   f   forward
29603
29604                   b   back
29605
29606                   Default value is @samp{rludfb}.
29607
29608               in_frot
29609               out_frot
29610                   Set rotation of faces for the input/output cubemap. Choose
29611                   one angle for each position.
29612
29613                   Designation of angles:
29614
29615                   0   0 degrees clockwise
29616
29617                   1   90 degrees clockwise
29618
29619                   2   180 degrees clockwise
29620
29621                   3   270 degrees clockwise
29622
29623                   Default value is @samp{000000}.
29624
29625           eac Equi-Angular Cubemap.
29626
29627           flat
29628           gnomonic
29629           rectilinear
29630               Regular video.
29631
29632               Format specific options:
29633
29634               h_fov
29635               v_fov
29636               d_fov
29637                   Set output horizontal/vertical/diagonal field of view.
29638                   Values in degrees.
29639
29640                   If diagonal field of view is set it overrides horizontal
29641                   and vertical field of view.
29642
29643               ih_fov
29644               iv_fov
29645               id_fov
29646                   Set input horizontal/vertical/diagonal field of view.
29647                   Values in degrees.
29648
29649                   If diagonal field of view is set it overrides horizontal
29650                   and vertical field of view.
29651
29652           dfisheye
29653               Dual fisheye.
29654
29655               Format specific options:
29656
29657               h_fov
29658               v_fov
29659               d_fov
29660                   Set output horizontal/vertical/diagonal field of view.
29661                   Values in degrees.
29662
29663                   If diagonal field of view is set it overrides horizontal
29664                   and vertical field of view.
29665
29666               ih_fov
29667               iv_fov
29668               id_fov
29669                   Set input horizontal/vertical/diagonal field of view.
29670                   Values in degrees.
29671
29672                   If diagonal field of view is set it overrides horizontal
29673                   and vertical field of view.
29674
29675           barrel
29676           fb
29677           barrelsplit
29678               Facebook's 360 formats.
29679
29680           sg  Stereographic format.
29681
29682               Format specific options:
29683
29684               h_fov
29685               v_fov
29686               d_fov
29687                   Set output horizontal/vertical/diagonal field of view.
29688                   Values in degrees.
29689
29690                   If diagonal field of view is set it overrides horizontal
29691                   and vertical field of view.
29692
29693               ih_fov
29694               iv_fov
29695               id_fov
29696                   Set input horizontal/vertical/diagonal field of view.
29697                   Values in degrees.
29698
29699                   If diagonal field of view is set it overrides horizontal
29700                   and vertical field of view.
29701
29702           mercator
29703               Mercator format.
29704
29705           ball
29706               Ball format, gives significant distortion toward the back.
29707
29708           hammer
29709               Hammer-Aitoff map projection format.
29710
29711           sinusoidal
29712               Sinusoidal map projection format.
29713
29714           fisheye
29715               Fisheye projection.
29716
29717               Format specific options:
29718
29719               h_fov
29720               v_fov
29721               d_fov
29722                   Set output horizontal/vertical/diagonal field of view.
29723                   Values in degrees.
29724
29725                   If diagonal field of view is set it overrides horizontal
29726                   and vertical field of view.
29727
29728               ih_fov
29729               iv_fov
29730               id_fov
29731                   Set input horizontal/vertical/diagonal field of view.
29732                   Values in degrees.
29733
29734                   If diagonal field of view is set it overrides horizontal
29735                   and vertical field of view.
29736
29737           pannini
29738               Pannini projection.
29739
29740               Format specific options:
29741
29742               h_fov
29743                   Set output pannini parameter.
29744
29745               ih_fov
29746                   Set input pannini parameter.
29747
29748           cylindrical
29749               Cylindrical projection.
29750
29751               Format specific options:
29752
29753               h_fov
29754               v_fov
29755               d_fov
29756                   Set output horizontal/vertical/diagonal field of view.
29757                   Values in degrees.
29758
29759                   If diagonal field of view is set it overrides horizontal
29760                   and vertical field of view.
29761
29762               ih_fov
29763               iv_fov
29764               id_fov
29765                   Set input horizontal/vertical/diagonal field of view.
29766                   Values in degrees.
29767
29768                   If diagonal field of view is set it overrides horizontal
29769                   and vertical field of view.
29770
29771           perspective
29772               Perspective projection. (output only)
29773
29774               Format specific options:
29775
29776               v_fov
29777                   Set perspective parameter.
29778
29779           tetrahedron
29780               Tetrahedron projection.
29781
29782           tsp Truncated square pyramid projection.
29783
29784           he
29785           hequirect
29786               Half equirectangular projection.
29787
29788           equisolid
29789               Equisolid format.
29790
29791               Format specific options:
29792
29793               h_fov
29794               v_fov
29795               d_fov
29796                   Set output horizontal/vertical/diagonal field of view.
29797                   Values in degrees.
29798
29799                   If diagonal field of view is set it overrides horizontal
29800                   and vertical field of view.
29801
29802               ih_fov
29803               iv_fov
29804               id_fov
29805                   Set input horizontal/vertical/diagonal field of view.
29806                   Values in degrees.
29807
29808                   If diagonal field of view is set it overrides horizontal
29809                   and vertical field of view.
29810
29811           og  Orthographic format.
29812
29813               Format specific options:
29814
29815               h_fov
29816               v_fov
29817               d_fov
29818                   Set output horizontal/vertical/diagonal field of view.
29819                   Values in degrees.
29820
29821                   If diagonal field of view is set it overrides horizontal
29822                   and vertical field of view.
29823
29824               ih_fov
29825               iv_fov
29826               id_fov
29827                   Set input horizontal/vertical/diagonal field of view.
29828                   Values in degrees.
29829
29830                   If diagonal field of view is set it overrides horizontal
29831                   and vertical field of view.
29832
29833           octahedron
29834               Octahedron projection.
29835
29836           cylindricalea
29837               Cylindrical Equal Area projection.
29838
29839       interp
29840           Set interpolation method.Note: more complex interpolation methods
29841           require much more memory to run.
29842
29843           Available methods:
29844
29845           near
29846           nearest
29847               Nearest neighbour.
29848
29849           line
29850           linear
29851               Bilinear interpolation.
29852
29853           lagrange9
29854               Lagrange9 interpolation.
29855
29856           cube
29857           cubic
29858               Bicubic interpolation.
29859
29860           lanc
29861           lanczos
29862               Lanczos interpolation.
29863
29864           sp16
29865           spline16
29866               Spline16 interpolation.
29867
29868           gauss
29869           gaussian
29870               Gaussian interpolation.
29871
29872           mitchell
29873               Mitchell interpolation.
29874
29875           Default value is @samp{line}.
29876
29877       w
29878       h   Set the output video resolution.
29879
29880           Default resolution depends on formats.
29881
29882       in_stereo
29883       out_stereo
29884           Set the input/output stereo format.
29885
29886           2d  2D mono
29887
29888           sbs Side by side
29889
29890           tb  Top bottom
29891
29892           Default value is @samp{2d} for input and output format.
29893
29894       yaw
29895       pitch
29896       roll
29897           Set rotation for the output video. Values in degrees.
29898
29899       rorder
29900           Set rotation order for the output video. Choose one item for each
29901           position.
29902
29903           y, Y
29904               yaw
29905
29906           p, P
29907               pitch
29908
29909           r, R
29910               roll
29911
29912           Default value is @samp{ypr}.
29913
29914       h_flip
29915       v_flip
29916       d_flip
29917           Flip the output video horizontally(swaps
29918           left-right)/vertically(swaps up-down)/in-depth(swaps back-forward).
29919           Boolean values.
29920
29921       ih_flip
29922       iv_flip
29923           Set if input video is flipped horizontally/vertically. Boolean
29924           values.
29925
29926       in_trans
29927           Set if input video is transposed. Boolean value, by default
29928           disabled.
29929
29930       out_trans
29931           Set if output video needs to be transposed. Boolean value, by
29932           default disabled.
29933
29934       h_offset
29935       v_offset
29936           Set output horizontal/vertical off-axis offset. Default is set to
29937           0.  Allowed range is from -1 to 1.
29938
29939       alpha_mask
29940           Build mask in alpha plane for all unmapped pixels by marking them
29941           fully transparent. Boolean value, by default disabled.
29942
29943       reset_rot
29944           Reset rotation of output video. Boolean value, by default disabled.
29945
29946       Examples
29947
29948       •   Convert equirectangular video to cubemap with 3x2 layout and 1%
29949           padding using bicubic interpolation:
29950
29951                   ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_pad=0.01 output.mkv
29952
29953       •   Extract back view of Equi-Angular Cubemap:
29954
29955                   ffmpeg -i input.mkv -vf v360=eac:flat:yaw=180 output.mkv
29956
29957       •   Convert transposed and horizontally flipped Equi-Angular Cubemap in
29958           side-by-side stereo format to equirectangular top-bottom stereo
29959           format:
29960
29961                   v360=eac:equirect:in_stereo=sbs:in_trans=1:ih_flip=1:out_stereo=tb
29962
29963       Commands
29964
29965       This filter supports subset of above options as commands.
29966
29967   vaguedenoiser
29968       Apply a wavelet based denoiser.
29969
29970       It transforms each frame from the video input into the wavelet domain,
29971       using Cohen-Daubechies-Feauveau 9/7. Then it applies some filtering to
29972       the obtained coefficients. It does an inverse wavelet transform after.
29973       Due to wavelet properties, it should give a nice smoothed result, and
29974       reduced noise, without blurring picture features.
29975
29976       This filter accepts the following options:
29977
29978       threshold
29979           The filtering strength. The higher, the more filtered the video
29980           will be.  Hard thresholding can use a higher threshold than soft
29981           thresholding before the video looks overfiltered. Default value is
29982           2.
29983
29984       method
29985           The filtering method the filter will use.
29986
29987           It accepts the following values:
29988
29989           hard
29990               All values under the threshold will be zeroed.
29991
29992           soft
29993               All values under the threshold will be zeroed. All values above
29994               will be reduced by the threshold.
29995
29996           garrote
29997               Scales or nullifies coefficients - intermediary between (more)
29998               soft and (less) hard thresholding.
29999
30000           Default is garrote.
30001
30002       nsteps
30003           Number of times, the wavelet will decompose the picture. Picture
30004           can't be decomposed beyond a particular point (typically, 8 for a
30005           640x480 frame - as 2^9 = 512 > 480). Valid values are integers
30006           between 1 and 32. Default value is 6.
30007
30008       percent
30009           Partial of full denoising (limited coefficients shrinking), from 0
30010           to 100. Default value is 85.
30011
30012       planes
30013           A list of the planes to process. By default all planes are
30014           processed.
30015
30016       type
30017           The threshold type the filter will use.
30018
30019           It accepts the following values:
30020
30021           universal
30022               Threshold used is same for all decompositions.
30023
30024           bayes
30025               Threshold used depends also on each decomposition coefficients.
30026
30027           Default is universal.
30028
30029   varblur
30030       Apply variable blur filter by using 2nd video stream to set blur
30031       radius.  The 2nd stream must have the same dimensions.
30032
30033       This filter accepts the following options:
30034
30035       min_r
30036           Set min allowed radius. Allowed range is from 0 to 254. Default is
30037           0.
30038
30039       max_r
30040           Set max allowed radius. Allowed range is from 1 to 255. Default is
30041           8.
30042
30043       planes
30044           Set which planes to process. By default, all are used.
30045
30046       The "varblur" filter also supports the framesync options.
30047
30048       Commands
30049
30050       This filter supports all the above options as commands.
30051
30052   vectorscope
30053       Display 2 color component values in the two dimensional graph (which is
30054       called a vectorscope).
30055
30056       This filter accepts the following options:
30057
30058       mode, m
30059           Set vectorscope mode.
30060
30061           It accepts the following values:
30062
30063           gray
30064           tint
30065               Gray values are displayed on graph, higher brightness means
30066               more pixels have same component color value on location in
30067               graph. This is the default mode.
30068
30069           color
30070               Gray values are displayed on graph. Surrounding pixels values
30071               which are not present in video frame are drawn in gradient of 2
30072               color components which are set by option "x" and "y". The 3rd
30073               color component is static.
30074
30075           color2
30076               Actual color components values present in video frame are
30077               displayed on graph.
30078
30079           color3
30080               Similar as color2 but higher frequency of same values "x" and
30081               "y" on graph increases value of another color component, which
30082               is luminance by default values of "x" and "y".
30083
30084           color4
30085               Actual colors present in video frame are displayed on graph. If
30086               two different colors map to same position on graph then color
30087               with higher value of component not present in graph is picked.
30088
30089           color5
30090               Gray values are displayed on graph. Similar to "color" but with
30091               3rd color component picked from radial gradient.
30092
30093       x   Set which color component will be represented on X-axis. Default is
30094           1.
30095
30096       y   Set which color component will be represented on Y-axis. Default is
30097           2.
30098
30099       intensity, i
30100           Set intensity, used by modes: gray, color, color3 and color5 for
30101           increasing brightness of color component which represents frequency
30102           of (X, Y) location in graph.
30103
30104       envelope, e
30105           none
30106               No envelope, this is default.
30107
30108           instant
30109               Instant envelope, even darkest single pixel will be clearly
30110               highlighted.
30111
30112           peak
30113               Hold maximum and minimum values presented in graph over time.
30114               This way you can still spot out of range values without
30115               constantly looking at vectorscope.
30116
30117           peak+instant
30118               Peak and instant envelope combined together.
30119
30120       graticule, g
30121           Set what kind of graticule to draw.
30122
30123           none
30124           green
30125           color
30126           invert
30127       opacity, o
30128           Set graticule opacity.
30129
30130       flags, f
30131           Set graticule flags.
30132
30133           white
30134               Draw graticule for white point.
30135
30136           black
30137               Draw graticule for black point.
30138
30139           name
30140               Draw color points short names.
30141
30142       bgopacity, b
30143           Set background opacity.
30144
30145       lthreshold, l
30146           Set low threshold for color component not represented on X or Y
30147           axis.  Values lower than this value will be ignored. Default is 0.
30148           Note this value is multiplied with actual max possible value one
30149           pixel component can have. So for 8-bit input and low threshold
30150           value of 0.1 actual threshold is 0.1 * 255 = 25.
30151
30152       hthreshold, h
30153           Set high threshold for color component not represented on X or Y
30154           axis.  Values higher than this value will be ignored. Default is 1.
30155           Note this value is multiplied with actual max possible value one
30156           pixel component can have. So for 8-bit input and high threshold
30157           value of 0.9 actual threshold is 0.9 * 255 = 230.
30158
30159       colorspace, c
30160           Set what kind of colorspace to use when drawing graticule.
30161
30162           auto
30163           601
30164           709
30165
30166           Default is auto.
30167
30168       tint0, t0
30169       tint1, t1
30170           Set color tint for gray/tint vectorscope mode. By default both
30171           options are zero.  This means no tint, and output will remain gray.
30172
30173   vidstabdetect
30174       Analyze video stabilization/deshaking. Perform pass 1 of 2, see
30175       vidstabtransform for pass 2.
30176
30177       This filter generates a file with relative translation and rotation
30178       transform information about subsequent frames, which is then used by
30179       the vidstabtransform filter.
30180
30181       To enable compilation of this filter you need to configure FFmpeg with
30182       "--enable-libvidstab".
30183
30184       This filter accepts the following options:
30185
30186       result
30187           Set the path to the file used to write the transforms information.
30188           Default value is transforms.trf.
30189
30190       shakiness
30191           Set how shaky the video is and how quick the camera is. It accepts
30192           an integer in the range 1-10, a value of 1 means little shakiness,
30193           a value of 10 means strong shakiness. Default value is 5.
30194
30195       accuracy
30196           Set the accuracy of the detection process. It must be a value in
30197           the range 1-15. A value of 1 means low accuracy, a value of 15
30198           means high accuracy. Default value is 15.
30199
30200       stepsize
30201           Set stepsize of the search process. The region around minimum is
30202           scanned with 1 pixel resolution. Default value is 6.
30203
30204       mincontrast
30205           Set minimum contrast. Below this value a local measurement field is
30206           discarded. Must be a floating point value in the range 0-1. Default
30207           value is 0.3.
30208
30209       tripod
30210           Set reference frame number for tripod mode.
30211
30212           If enabled, the motion of the frames is compared to a reference
30213           frame in the filtered stream, identified by the specified number.
30214           The idea is to compensate all movements in a more-or-less static
30215           scene and keep the camera view absolutely still.
30216
30217           If set to 0, it is disabled. The frames are counted starting from
30218           1.
30219
30220       show
30221           Show fields and transforms in the resulting frames. It accepts an
30222           integer in the range 0-2. Default value is 0, which disables any
30223           visualization.
30224
30225       Examples
30226
30227       •   Use default values:
30228
30229                   vidstabdetect
30230
30231       •   Analyze strongly shaky movie and put the results in file
30232           mytransforms.trf:
30233
30234                   vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
30235
30236       •   Visualize the result of internal transformations in the resulting
30237           video:
30238
30239                   vidstabdetect=show=1
30240
30241       •   Analyze a video with medium shakiness using ffmpeg:
30242
30243                   ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
30244
30245   vidstabtransform
30246       Video stabilization/deshaking: pass 2 of 2, see vidstabdetect for pass
30247       1.
30248
30249       Read a file with transform information for each frame and
30250       apply/compensate them. Together with the vidstabdetect filter this can
30251       be used to deshake videos. See also
30252       <http://public.hronopik.de/vid.stab>. It is important to also use the
30253       unsharp filter, see below.
30254
30255       To enable compilation of this filter you need to configure FFmpeg with
30256       "--enable-libvidstab".
30257
30258       Options
30259
30260       input
30261           Set path to the file used to read the transforms. Default value is
30262           transforms.trf.
30263
30264       smoothing
30265           Set the number of frames (value*2 + 1) used for lowpass filtering
30266           the camera movements. Default value is 10.
30267
30268           For example a number of 10 means that 21 frames are used (10 in the
30269           past and 10 in the future) to smoothen the motion in the video. A
30270           larger value leads to a smoother video, but limits the acceleration
30271           of the camera (pan/tilt movements). 0 is a special case where a
30272           static camera is simulated.
30273
30274       optalgo
30275           Set the camera path optimization algorithm.
30276
30277           Accepted values are:
30278
30279           gauss
30280               gaussian kernel low-pass filter on camera motion (default)
30281
30282           avg averaging on transformations
30283
30284       maxshift
30285           Set maximal number of pixels to translate frames. Default value is
30286           -1, meaning no limit.
30287
30288       maxangle
30289           Set maximal angle in radians (degree*PI/180) to rotate frames.
30290           Default value is -1, meaning no limit.
30291
30292       crop
30293           Specify how to deal with borders that may be visible due to
30294           movement compensation.
30295
30296           Available values are:
30297
30298           keep
30299               keep image information from previous frame (default)
30300
30301           black
30302               fill the border black
30303
30304       invert
30305           Invert transforms if set to 1. Default value is 0.
30306
30307       relative
30308           Consider transforms as relative to previous frame if set to 1,
30309           absolute if set to 0. Default value is 0.
30310
30311       zoom
30312           Set percentage to zoom. A positive value will result in a zoom-in
30313           effect, a negative value in a zoom-out effect. Default value is 0
30314           (no zoom).
30315
30316       optzoom
30317           Set optimal zooming to avoid borders.
30318
30319           Accepted values are:
30320
30321           0   disabled
30322
30323           1   optimal static zoom value is determined (only very strong
30324               movements will lead to visible borders) (default)
30325
30326           2   optimal adaptive zoom value is determined (no borders will be
30327               visible), see zoomspeed
30328
30329           Note that the value given at zoom is added to the one calculated
30330           here.
30331
30332       zoomspeed
30333           Set percent to zoom maximally each frame (enabled when optzoom is
30334           set to 2). Range is from 0 to 5, default value is 0.25.
30335
30336       interpol
30337           Specify type of interpolation.
30338
30339           Available values are:
30340
30341           no  no interpolation
30342
30343           linear
30344               linear only horizontal
30345
30346           bilinear
30347               linear in both directions (default)
30348
30349           bicubic
30350               cubic in both directions (slow)
30351
30352       tripod
30353           Enable virtual tripod mode if set to 1, which is equivalent to
30354           "relative=0:smoothing=0". Default value is 0.
30355
30356           Use also "tripod" option of vidstabdetect.
30357
30358       debug
30359           Increase log verbosity if set to 1. Also the detected global
30360           motions are written to the temporary file global_motions.trf.
30361           Default value is 0.
30362
30363       Examples
30364
30365       •   Use ffmpeg for a typical stabilization with default values:
30366
30367                   ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
30368
30369           Note the use of the unsharp filter which is always recommended.
30370
30371       •   Zoom in a bit more and load transform data from a given file:
30372
30373                   vidstabtransform=zoom=5:input="mytransforms.trf"
30374
30375       •   Smoothen the video even more:
30376
30377                   vidstabtransform=smoothing=30
30378
30379   vflip
30380       Flip the input video vertically.
30381
30382       For example, to vertically flip a video with ffmpeg:
30383
30384               ffmpeg -i in.avi -vf "vflip" out.avi
30385
30386   vfrdet
30387       Detect variable frame rate video.
30388
30389       This filter tries to detect if the input is variable or constant frame
30390       rate.
30391
30392       At end it will output number of frames detected as having variable
30393       delta pts, and ones with constant delta pts.  If there was frames with
30394       variable delta, than it will also show min, max and average delta
30395       encountered.
30396
30397   vibrance
30398       Boost or alter saturation.
30399
30400       The filter accepts the following options:
30401
30402       intensity
30403           Set strength of boost if positive value or strength of alter if
30404           negative value.  Default is 0. Allowed range is from -2 to 2.
30405
30406       rbal
30407           Set the red balance. Default is 1. Allowed range is from -10 to 10.
30408
30409       gbal
30410           Set the green balance. Default is 1. Allowed range is from -10 to
30411           10.
30412
30413       bbal
30414           Set the blue balance. Default is 1. Allowed range is from -10 to
30415           10.
30416
30417       rlum
30418           Set the red luma coefficient.
30419
30420       glum
30421           Set the green luma coefficient.
30422
30423       blum
30424           Set the blue luma coefficient.
30425
30426       alternate
30427           If "intensity" is negative and this is set to 1, colors will
30428           change, otherwise colors will be less saturated, more towards gray.
30429
30430       Commands
30431
30432       This filter supports the all above options as commands.
30433
30434   vif
30435       Obtain the average VIF (Visual Information Fidelity) between two input
30436       videos.
30437
30438       This filter takes two input videos.
30439
30440       Both input videos must have the same resolution and pixel format for
30441       this filter to work correctly. Also it assumes that both inputs have
30442       the same number of frames, which are compared one by one.
30443
30444       The obtained average VIF score is printed through the logging system.
30445
30446       The filter stores the calculated VIF score of each frame.
30447
30448       In the below example the input file main.mpg being processed is
30449       compared with the reference file ref.mpg.
30450
30451               ffmpeg -i main.mpg -i ref.mpg -lavfi vif -f null -
30452
30453   vignette
30454       Make or reverse a natural vignetting effect.
30455
30456       The filter accepts the following options:
30457
30458       angle, a
30459           Set lens angle expression as a number of radians.
30460
30461           The value is clipped in the "[0,PI/2]" range.
30462
30463           Default value: "PI/5"
30464
30465       x0
30466       y0  Set center coordinates expressions. Respectively "w/2" and "h/2" by
30467           default.
30468
30469       mode
30470           Set forward/backward mode.
30471
30472           Available modes are:
30473
30474           forward
30475               The larger the distance from the central point, the darker the
30476               image becomes.
30477
30478           backward
30479               The larger the distance from the central point, the brighter
30480               the image becomes.  This can be used to reverse a vignette
30481               effect, though there is no automatic detection to extract the
30482               lens angle and other settings (yet). It can also be used to
30483               create a burning effect.
30484
30485           Default value is forward.
30486
30487       eval
30488           Set evaluation mode for the expressions (angle, x0, y0).
30489
30490           It accepts the following values:
30491
30492           init
30493               Evaluate expressions only once during the filter
30494               initialization.
30495
30496           frame
30497               Evaluate expressions for each incoming frame. This is way
30498               slower than the init mode since it requires all the scalers to
30499               be re-computed, but it allows advanced dynamic expressions.
30500
30501           Default value is init.
30502
30503       dither
30504           Set dithering to reduce the circular banding effects. Default is 1
30505           (enabled).
30506
30507       aspect
30508           Set vignette aspect. This setting allows one to adjust the shape of
30509           the vignette.  Setting this value to the SAR of the input will make
30510           a rectangular vignetting following the dimensions of the video.
30511
30512           Default is "1/1".
30513
30514       Expressions
30515
30516       The alpha, x0 and y0 expressions can contain the following parameters.
30517
30518       w
30519       h   input width and height
30520
30521       n   the number of input frame, starting from 0
30522
30523       pts the PTS (Presentation TimeStamp) time of the filtered video frame,
30524           expressed in TB units, NAN if undefined
30525
30526       r   frame rate of the input video, NAN if the input frame rate is
30527           unknown
30528
30529       t   the PTS (Presentation TimeStamp) of the filtered video frame,
30530           expressed in seconds, NAN if undefined
30531
30532       tb  time base of the input video
30533
30534       Examples
30535
30536       •   Apply simple strong vignetting effect:
30537
30538                   vignette=PI/4
30539
30540       •   Make a flickering vignetting:
30541
30542                   vignette='PI/4+random(1)*PI/50':eval=frame
30543
30544   vmafmotion
30545       Obtain the average VMAF motion score of a video.  It is one of the
30546       component metrics of VMAF.
30547
30548       The obtained average motion score is printed through the logging
30549       system.
30550
30551       The filter accepts the following options:
30552
30553       stats_file
30554           If specified, the filter will use the named file to save the motion
30555           score of each frame with respect to the previous frame.  When
30556           filename equals "-" the data is sent to standard output.
30557
30558       Example:
30559
30560               ffmpeg -i ref.mpg -vf vmafmotion -f null -
30561
30562   vstack
30563       Stack input videos vertically.
30564
30565       All streams must be of same pixel format and of same width.
30566
30567       Note that this filter is faster than using overlay and pad filter to
30568       create same output.
30569
30570       The filter accepts the following options:
30571
30572       inputs
30573           Set number of input streams. Default is 2.
30574
30575       shortest
30576           If set to 1, force the output to terminate when the shortest input
30577           terminates. Default value is 0.
30578
30579   w3fdif
30580       Deinterlace the input video ("w3fdif" stands for "Weston 3 Field
30581       Deinterlacing Filter").
30582
30583       Based on the process described by Martin Weston for BBC R&D, and
30584       implemented based on the de-interlace algorithm written by Jim
30585       Easterbrook for BBC R&D, the Weston 3 field deinterlacing filter uses
30586       filter coefficients calculated by BBC R&D.
30587
30588       This filter uses field-dominance information in frame to decide which
30589       of each pair of fields to place first in the output.  If it gets it
30590       wrong use setfield filter before "w3fdif" filter.
30591
30592       There are two sets of filter coefficients, so called "simple" and
30593       "complex". Which set of filter coefficients is used can be set by
30594       passing an optional parameter:
30595
30596       filter
30597           Set the interlacing filter coefficients. Accepts one of the
30598           following values:
30599
30600           simple
30601               Simple filter coefficient set.
30602
30603           complex
30604               More-complex filter coefficient set.
30605
30606           Default value is complex.
30607
30608       mode
30609           The interlacing mode to adopt. It accepts one of the following
30610           values:
30611
30612           frame
30613               Output one frame for each frame.
30614
30615           field
30616               Output one frame for each field.
30617
30618           The default value is "field".
30619
30620       parity
30621           The picture field parity assumed for the input interlaced video. It
30622           accepts one of the following values:
30623
30624           tff Assume the top field is first.
30625
30626           bff Assume the bottom field is first.
30627
30628           auto
30629               Enable automatic detection of field parity.
30630
30631           The default value is "auto".  If the interlacing is unknown or the
30632           decoder does not export this information, top field first will be
30633           assumed.
30634
30635       deint
30636           Specify which frames to deinterlace. Accepts one of the following
30637           values:
30638
30639           all Deinterlace all frames,
30640
30641           interlaced
30642               Only deinterlace frames marked as interlaced.
30643
30644           Default value is all.
30645
30646       Commands
30647
30648       This filter supports same commands as options.
30649
30650   waveform
30651       Video waveform monitor.
30652
30653       The waveform monitor plots color component intensity. By default
30654       luminance only. Each column of the waveform corresponds to a column of
30655       pixels in the source video.
30656
30657       It accepts the following options:
30658
30659       mode, m
30660           Can be either "row", or "column". Default is "column".  In row
30661           mode, the graph on the left side represents color component value 0
30662           and the right side represents value = 255. In column mode, the top
30663           side represents color component value = 0 and bottom side
30664           represents value = 255.
30665
30666       intensity, i
30667           Set intensity. Smaller values are useful to find out how many
30668           values of the same luminance are distributed across input
30669           rows/columns.  Default value is 0.04. Allowed range is [0, 1].
30670
30671       mirror, r
30672           Set mirroring mode. 0 means unmirrored, 1 means mirrored.  In
30673           mirrored mode, higher values will be represented on the left side
30674           for "row" mode and at the top for "column" mode. Default is 1
30675           (mirrored).
30676
30677       display, d
30678           Set display mode.  It accepts the following values:
30679
30680           overlay
30681               Presents information identical to that in the "parade", except
30682               that the graphs representing color components are superimposed
30683               directly over one another.
30684
30685               This display mode makes it easier to spot relative differences
30686               or similarities in overlapping areas of the color components
30687               that are supposed to be identical, such as neutral whites,
30688               grays, or blacks.
30689
30690           stack
30691               Display separate graph for the color components side by side in
30692               "row" mode or one below the other in "column" mode.
30693
30694           parade
30695               Display separate graph for the color components side by side in
30696               "column" mode or one below the other in "row" mode.
30697
30698               Using this display mode makes it easy to spot color casts in
30699               the highlights and shadows of an image, by comparing the
30700               contours of the top and the bottom graphs of each waveform.
30701               Since whites, grays, and blacks are characterized by exactly
30702               equal amounts of red, green, and blue, neutral areas of the
30703               picture should display three waveforms of roughly equal
30704               width/height. If not, the correction is easy to perform by
30705               making level adjustments the three waveforms.
30706
30707           Default is "stack".
30708
30709       components, c
30710           Set which color components to display. Default is 1, which means
30711           only luminance or red color component if input is in RGB
30712           colorspace. If is set for example to 7 it will display all 3 (if)
30713           available color components.
30714
30715       envelope, e
30716           none
30717               No envelope, this is default.
30718
30719           instant
30720               Instant envelope, minimum and maximum values presented in graph
30721               will be easily visible even with small "step" value.
30722
30723           peak
30724               Hold minimum and maximum values presented in graph across time.
30725               This way you can still spot out of range values without
30726               constantly looking at waveforms.
30727
30728           peak+instant
30729               Peak and instant envelope combined together.
30730
30731       filter, f
30732           lowpass
30733               No filtering, this is default.
30734
30735           flat
30736               Luma and chroma combined together.
30737
30738           aflat
30739               Similar as above, but shows difference between blue and red
30740               chroma.
30741
30742           xflat
30743               Similar as above, but use different colors.
30744
30745           yflat
30746               Similar as above, but again with different colors.
30747
30748           chroma
30749               Displays only chroma.
30750
30751           color
30752               Displays actual color value on waveform.
30753
30754           acolor
30755               Similar as above, but with luma showing frequency of chroma
30756               values.
30757
30758       graticule, g
30759           Set which graticule to display.
30760
30761           none
30762               Do not display graticule.
30763
30764           green
30765               Display green graticule showing legal broadcast ranges.
30766
30767           orange
30768               Display orange graticule showing legal broadcast ranges.
30769
30770           invert
30771               Display invert graticule showing legal broadcast ranges.
30772
30773       opacity, o
30774           Set graticule opacity.
30775
30776       flags, fl
30777           Set graticule flags.
30778
30779           numbers
30780               Draw numbers above lines. By default enabled.
30781
30782           dots
30783               Draw dots instead of lines.
30784
30785       scale, s
30786           Set scale used for displaying graticule.
30787
30788           digital
30789           millivolts
30790           ire
30791
30792           Default is digital.
30793
30794       bgopacity, b
30795           Set background opacity.
30796
30797       tint0, t0
30798       tint1, t1
30799           Set tint for output.  Only used with lowpass filter and when
30800           display is not overlay and input pixel formats are not RGB.
30801
30802       fitmode, fm
30803           Set sample aspect ratio of video output frames.  Can be used to
30804           configure waveform so it is not streched too much in one of
30805           directions.
30806
30807           none
30808               Set sample aspect ration to 1/1.
30809
30810           size
30811               Set sample aspect ratio to match input size of video
30812
30813           Default is none.
30814
30815   weave, doubleweave
30816       The "weave" takes a field-based video input and join each two
30817       sequential fields into single frame, producing a new double height clip
30818       with half the frame rate and half the frame count.
30819
30820       The "doubleweave" works same as "weave" but without halving frame rate
30821       and frame count.
30822
30823       It accepts the following option:
30824
30825       first_field
30826           Set first field. Available values are:
30827
30828           top, t
30829               Set the frame as top-field-first.
30830
30831           bottom, b
30832               Set the frame as bottom-field-first.
30833
30834       Examples
30835
30836       •   Interlace video using select and separatefields filter:
30837
30838                   separatefields,select=eq(mod(n,4),0)+eq(mod(n,4),3),weave
30839
30840   xbr
30841       Apply the xBR high-quality magnification filter which is designed for
30842       pixel art. It follows a set of edge-detection rules, see
30843       <https://forums.libretro.com/t/xbr-algorithm-tutorial/123>.
30844
30845       It accepts the following option:
30846
30847       n   Set the scaling dimension: 2 for "2xBR", 3 for "3xBR" and 4 for
30848           "4xBR".  Default is 3.
30849
30850   xcorrelate
30851       Apply normalized cross-correlation between first and second input video
30852       stream.
30853
30854       Second input video stream dimensions must be lower than first input
30855       video stream.
30856
30857       The filter accepts the following options:
30858
30859       planes
30860           Set which planes to process.
30861
30862       secondary
30863           Set which secondary video frames will be processed from second
30864           input video stream, can be first or all. Default is all.
30865
30866       The "xcorrelate" filter also supports the framesync options.
30867
30868   xfade
30869       Apply cross fade from one input video stream to another input video
30870       stream.  The cross fade is applied for specified duration.
30871
30872       Both inputs must be constant frame-rate and have the same resolution,
30873       pixel format, frame rate and timebase.
30874
30875       The filter accepts the following options:
30876
30877       transition
30878           Set one of available transition effects:
30879
30880           custom
30881           fade
30882           wipeleft
30883           wiperight
30884           wipeup
30885           wipedown
30886           slideleft
30887           slideright
30888           slideup
30889           slidedown
30890           circlecrop
30891           rectcrop
30892           distance
30893           fadeblack
30894           fadewhite
30895           radial
30896           smoothleft
30897           smoothright
30898           smoothup
30899           smoothdown
30900           circleopen
30901           circleclose
30902           vertopen
30903           vertclose
30904           horzopen
30905           horzclose
30906           dissolve
30907           pixelize
30908           diagtl
30909           diagtr
30910           diagbl
30911           diagbr
30912           hlslice
30913           hrslice
30914           vuslice
30915           vdslice
30916           hblur
30917           fadegrays
30918           wipetl
30919           wipetr
30920           wipebl
30921           wipebr
30922           squeezeh
30923           squeezev
30924           zoomin
30925           fadefast
30926           fadeslow
30927
30928           Default transition effect is fade.
30929
30930       duration
30931           Set cross fade duration in seconds.  Range is 0 to 60 seconds.
30932           Default duration is 1 second.
30933
30934       offset
30935           Set cross fade start relative to first input stream in seconds.
30936           Default offset is 0.
30937
30938       expr
30939           Set expression for custom transition effect.
30940
30941           The expressions can use the following variables and functions:
30942
30943           X
30944           Y   The coordinates of the current sample.
30945
30946           W
30947           H   The width and height of the image.
30948
30949           P   Progress of transition effect.
30950
30951           PLANE
30952               Currently processed plane.
30953
30954           A   Return value of first input at current location and plane.
30955
30956           B   Return value of second input at current location and plane.
30957
30958           a0(x, y)
30959           a1(x, y)
30960           a2(x, y)
30961           a3(x, y)
30962               Return the value of the pixel at location (x,y) of the
30963               first/second/third/fourth component of first input.
30964
30965           b0(x, y)
30966           b1(x, y)
30967           b2(x, y)
30968           b3(x, y)
30969               Return the value of the pixel at location (x,y) of the
30970               first/second/third/fourth component of second input.
30971
30972       Examples
30973
30974       •   Cross fade from one input video to another input video, with fade
30975           transition and duration of transition of 2 seconds starting at
30976           offset of 5 seconds:
30977
30978                   ffmpeg -i first.mp4 -i second.mp4 -filter_complex xfade=transition=fade:duration=2:offset=5 output.mp4
30979
30980   xmedian
30981       Pick median pixels from several input videos.
30982
30983       The filter accepts the following options:
30984
30985       inputs
30986           Set number of inputs.  Default is 3. Allowed range is from 3 to
30987           255.  If number of inputs is even number, than result will be mean
30988           value between two median values.
30989
30990       planes
30991           Set which planes to filter. Default value is 15, by which all
30992           planes are processed.
30993
30994       percentile
30995           Set median percentile. Default value is 0.5.  Default value of 0.5
30996           will pick always median values, while 0 will pick minimum values,
30997           and 1 maximum values.
30998
30999       Commands
31000
31001       This filter supports all above options as commands, excluding option
31002       "inputs".
31003
31004   xstack
31005       Stack video inputs into custom layout.
31006
31007       All streams must be of same pixel format.
31008
31009       The filter accepts the following options:
31010
31011       inputs
31012           Set number of input streams. Default is 2.
31013
31014       layout
31015           Specify layout of inputs.  This option requires the desired layout
31016           configuration to be explicitly set by the user.  This sets position
31017           of each video input in output. Each input is separated by '|'.  The
31018           first number represents the column, and the second number
31019           represents the row.  Numbers start at 0 and are separated by '_'.
31020           Optionally one can use wX and hX, where X is video input from which
31021           to take width or height.  Multiple values can be used when
31022           separated by '+'. In such case values are summed together.
31023
31024           Note that if inputs are of different sizes gaps may appear, as not
31025           all of the output video frame will be filled. Similarly, videos can
31026           overlap each other if their position doesn't leave enough space for
31027           the full frame of adjoining videos.
31028
31029           For 2 inputs, a default layout of "0_0|w0_0" (equivalent to
31030           "grid=2x1") is set. In all other cases, a layout or a grid must be
31031           set by the user. Either "grid" or "layout" can be specified at a
31032           time.  Specifying both will result in an error.
31033
31034       grid
31035           Specify a fixed size grid of inputs.  This option is used to create
31036           a fixed size grid of the input streams. Set the grid size in the
31037           form "COLUMNSxROWS". There must be "ROWS * COLUMNS" input streams
31038           and they will be arranged as a grid with "ROWS" rows and "COLUMNS"
31039           columns. When using this option, each input stream within a row
31040           must have the same height and all the rows must have the same
31041           width.
31042
31043           If "grid" is set, then "inputs" option is ignored and is implicitly
31044           set to "ROWS * COLUMNS".
31045
31046           For 2 inputs, a default grid of "2x1" (equivalent to
31047           "layout=0_0|w0_0") is set. In all other cases, a layout or a grid
31048           must be set by the user. Either "grid" or "layout" can be specified
31049           at a time.  Specifying both will result in an error.
31050
31051       shortest
31052           If set to 1, force the output to terminate when the shortest input
31053           terminates. Default value is 0.
31054
31055       fill
31056           If set to valid color, all unused pixels will be filled with that
31057           color.  By default fill is set to none, so it is disabled.
31058
31059       Examples
31060
31061       •   Display 4 inputs into 2x2 grid.
31062
31063           Layout:
31064
31065                   input1(0, 0)  | input3(w0, 0)
31066                   input2(0, h0) | input4(w0, h0)
31067
31068
31069
31070                   xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0
31071
31072           Note that if inputs are of different sizes, gaps or overlaps may
31073           occur.
31074
31075       •   Display 4 inputs into 1x4 grid.
31076
31077           Layout:
31078
31079                   input1(0, 0)
31080                   input2(0, h0)
31081                   input3(0, h0+h1)
31082                   input4(0, h0+h1+h2)
31083
31084
31085
31086                   xstack=inputs=4:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2
31087
31088           Note that if inputs are of different widths, unused space will
31089           appear.
31090
31091       •   Display 9 inputs into 3x3 grid.
31092
31093           Layout:
31094
31095                   input1(0, 0)       | input4(w0, 0)      | input7(w0+w3, 0)
31096                   input2(0, h0)      | input5(w0, h0)     | input8(w0+w3, h0)
31097                   input3(0, h0+h1)   | input6(w0, h0+h1)  | input9(w0+w3, h0+h1)
31098
31099
31100
31101                   xstack=inputs=9:layout=0_0|0_h0|0_h0+h1|w0_0|w0_h0|w0_h0+h1|w0+w3_0|w0+w3_h0|w0+w3_h0+h1
31102
31103           Note that if inputs are of different sizes, gaps or overlaps may
31104           occur.
31105
31106       •   Display 16 inputs into 4x4 grid.
31107
31108           Layout:
31109
31110                   input1(0, 0)       | input5(w0, 0)       | input9 (w0+w4, 0)       | input13(w0+w4+w8, 0)
31111                   input2(0, h0)      | input6(w0, h0)      | input10(w0+w4, h0)      | input14(w0+w4+w8, h0)
31112                   input3(0, h0+h1)   | input7(w0, h0+h1)   | input11(w0+w4, h0+h1)   | input15(w0+w4+w8, h0+h1)
31113                   input4(0, h0+h1+h2)| input8(w0, h0+h1+h2)| input12(w0+w4, h0+h1+h2)| input16(w0+w4+w8, h0+h1+h2)
31114
31115
31116
31117                   xstack=inputs=16:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2|w0_0|w0_h0|w0_h0+h1|w0_h0+h1+h2|w0+w4_0|
31118                   w0+w4_h0|w0+w4_h0+h1|w0+w4_h0+h1+h2|w0+w4+w8_0|w0+w4+w8_h0|w0+w4+w8_h0+h1|w0+w4+w8_h0+h1+h2
31119
31120           Note that if inputs are of different sizes, gaps or overlaps may
31121           occur.
31122
31123   yadif
31124       Deinterlace the input video ("yadif" means "yet another deinterlacing
31125       filter").
31126
31127       It accepts the following parameters:
31128
31129       mode
31130           The interlacing mode to adopt. It accepts one of the following
31131           values:
31132
31133           0, send_frame
31134               Output one frame for each frame.
31135
31136           1, send_field
31137               Output one frame for each field.
31138
31139           2, send_frame_nospatial
31140               Like "send_frame", but it skips the spatial interlacing check.
31141
31142           3, send_field_nospatial
31143               Like "send_field", but it skips the spatial interlacing check.
31144
31145           The default value is "send_frame".
31146
31147       parity
31148           The picture field parity assumed for the input interlaced video. It
31149           accepts one of the following values:
31150
31151           0, tff
31152               Assume the top field is first.
31153
31154           1, bff
31155               Assume the bottom field is first.
31156
31157           -1, auto
31158               Enable automatic detection of field parity.
31159
31160           The default value is "auto".  If the interlacing is unknown or the
31161           decoder does not export this information, top field first will be
31162           assumed.
31163
31164       deint
31165           Specify which frames to deinterlace. Accepts one of the following
31166           values:
31167
31168           0, all
31169               Deinterlace all frames.
31170
31171           1, interlaced
31172               Only deinterlace frames marked as interlaced.
31173
31174           The default value is "all".
31175
31176   yadif_cuda
31177       Deinterlace the input video using the yadif algorithm, but implemented
31178       in CUDA so that it can work as part of a GPU accelerated pipeline with
31179       nvdec and/or nvenc.
31180
31181       It accepts the following parameters:
31182
31183       mode
31184           The interlacing mode to adopt. It accepts one of the following
31185           values:
31186
31187           0, send_frame
31188               Output one frame for each frame.
31189
31190           1, send_field
31191               Output one frame for each field.
31192
31193           2, send_frame_nospatial
31194               Like "send_frame", but it skips the spatial interlacing check.
31195
31196           3, send_field_nospatial
31197               Like "send_field", but it skips the spatial interlacing check.
31198
31199           The default value is "send_frame".
31200
31201       parity
31202           The picture field parity assumed for the input interlaced video. It
31203           accepts one of the following values:
31204
31205           0, tff
31206               Assume the top field is first.
31207
31208           1, bff
31209               Assume the bottom field is first.
31210
31211           -1, auto
31212               Enable automatic detection of field parity.
31213
31214           The default value is "auto".  If the interlacing is unknown or the
31215           decoder does not export this information, top field first will be
31216           assumed.
31217
31218       deint
31219           Specify which frames to deinterlace. Accepts one of the following
31220           values:
31221
31222           0, all
31223               Deinterlace all frames.
31224
31225           1, interlaced
31226               Only deinterlace frames marked as interlaced.
31227
31228           The default value is "all".
31229
31230   yaepblur
31231       Apply blur filter while preserving edges ("yaepblur" means "yet another
31232       edge preserving blur filter").  The algorithm is described in "J. S.
31233       Lee, Digital image enhancement and noise filtering by use of local
31234       statistics, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-2, 1980."
31235
31236       It accepts the following parameters:
31237
31238       radius, r
31239           Set the window radius. Default value is 3.
31240
31241       planes, p
31242           Set which planes to filter. Default is only the first plane.
31243
31244       sigma, s
31245           Set blur strength. Default value is 128.
31246
31247       Commands
31248
31249       This filter supports same commands as options.
31250
31251   zoompan
31252       Apply Zoom & Pan effect.
31253
31254       This filter accepts the following options:
31255
31256       zoom, z
31257           Set the zoom expression. Range is 1-10. Default is 1.
31258
31259       x
31260       y   Set the x and y expression. Default is 0.
31261
31262       d   Set the duration expression in number of frames.  This sets for how
31263           many number of frames effect will last for single input image.
31264           Default is 90.
31265
31266       s   Set the output image size, default is 'hd720'.
31267
31268       fps Set the output frame rate, default is '25'.
31269
31270       Each expression can contain the following constants:
31271
31272       in_w, iw
31273           Input width.
31274
31275       in_h, ih
31276           Input height.
31277
31278       out_w, ow
31279           Output width.
31280
31281       out_h, oh
31282           Output height.
31283
31284       in  Input frame count.
31285
31286       on  Output frame count.
31287
31288       in_time, it
31289           The input timestamp expressed in seconds. It's NAN if the input
31290           timestamp is unknown.
31291
31292       out_time, time, ot
31293           The output timestamp expressed in seconds.
31294
31295       x
31296       y   Last calculated 'x' and 'y' position from 'x' and 'y' expression
31297           for current input frame.
31298
31299       px
31300       py  'x' and 'y' of last output frame of previous input frame or 0 when
31301           there was not yet such frame (first input frame).
31302
31303       zoom
31304           Last calculated zoom from 'z' expression for current input frame.
31305
31306       pzoom
31307           Last calculated zoom of last output frame of previous input frame.
31308
31309       duration
31310           Number of output frames for current input frame. Calculated from
31311           'd' expression for each input frame.
31312
31313       pduration
31314           number of output frames created for previous input frame
31315
31316       a   Rational number: input width / input height
31317
31318       sar sample aspect ratio
31319
31320       dar display aspect ratio
31321
31322       Examples
31323
31324       •   Zoom in up to 1.5x and pan at same time to some spot near center of
31325           picture:
31326
31327                   zoompan=z='min(zoom+0.0015,1.5)':d=700:x='if(gte(zoom,1.5),x,x+1/a)':y='if(gte(zoom,1.5),y,y+1)':s=640x360
31328
31329       •   Zoom in up to 1.5x and pan always at center of picture:
31330
31331                   zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31332
31333       •   Same as above but without pausing:
31334
31335                   zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31336
31337       •   Zoom in 2x into center of picture only for the first second of the
31338           input video:
31339
31340                   zoompan=z='if(between(in_time,0,1),2,1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31341
31342   zscale
31343       Scale (resize) the input video, using the z.lib library:
31344       <https://github.com/sekrit-twc/zimg>. To enable compilation of this
31345       filter, you need to configure FFmpeg with "--enable-libzimg".
31346
31347       The zscale filter forces the output display aspect ratio to be the same
31348       as the input, by changing the output sample aspect ratio.
31349
31350       If the input image format is different from the format requested by the
31351       next filter, the zscale filter will convert the input to the requested
31352       format.
31353
31354       Options
31355
31356       The filter accepts the following options.
31357
31358       width, w
31359       height, h
31360           Set the output video dimension expression. Default value is the
31361           input dimension.
31362
31363           If the width or w value is 0, the input width is used for the
31364           output. If the height or h value is 0, the input height is used for
31365           the output.
31366
31367           If one and only one of the values is -n with n >= 1, the zscale
31368           filter will use a value that maintains the aspect ratio of the
31369           input image, calculated from the other specified dimension. After
31370           that it will, however, make sure that the calculated dimension is
31371           divisible by n and adjust the value if necessary.
31372
31373           If both values are -n with n >= 1, the behavior will be identical
31374           to both values being set to 0 as previously detailed.
31375
31376           See below for the list of accepted constants for use in the
31377           dimension expression.
31378
31379       size, s
31380           Set the video size. For the syntax of this option, check the "Video
31381           size" section in the ffmpeg-utils manual.
31382
31383       dither, d
31384           Set the dither type.
31385
31386           Possible values are:
31387
31388           none
31389           ordered
31390           random
31391           error_diffusion
31392
31393           Default is none.
31394
31395       filter, f
31396           Set the resize filter type.
31397
31398           Possible values are:
31399
31400           point
31401           bilinear
31402           bicubic
31403           spline16
31404           spline36
31405           lanczos
31406
31407           Default is bilinear.
31408
31409       range, r
31410           Set the color range.
31411
31412           Possible values are:
31413
31414           input
31415           limited
31416           full
31417
31418           Default is same as input.
31419
31420       primaries, p
31421           Set the color primaries.
31422
31423           Possible values are:
31424
31425           input
31426           709
31427           unspecified
31428           170m
31429           240m
31430           2020
31431
31432           Default is same as input.
31433
31434       transfer, t
31435           Set the transfer characteristics.
31436
31437           Possible values are:
31438
31439           input
31440           709
31441           unspecified
31442           601
31443           linear
31444           2020_10
31445           2020_12
31446           smpte2084
31447           iec61966-2-1
31448           arib-std-b67
31449
31450           Default is same as input.
31451
31452       matrix, m
31453           Set the colorspace matrix.
31454
31455           Possible value are:
31456
31457           input
31458           709
31459           unspecified
31460           470bg
31461           170m
31462           2020_ncl
31463           2020_cl
31464
31465           Default is same as input.
31466
31467       rangein, rin
31468           Set the input color range.
31469
31470           Possible values are:
31471
31472           input
31473           limited
31474           full
31475
31476           Default is same as input.
31477
31478       primariesin, pin
31479           Set the input color primaries.
31480
31481           Possible values are:
31482
31483           input
31484           709
31485           unspecified
31486           170m
31487           240m
31488           2020
31489
31490           Default is same as input.
31491
31492       transferin, tin
31493           Set the input transfer characteristics.
31494
31495           Possible values are:
31496
31497           input
31498           709
31499           unspecified
31500           601
31501           linear
31502           2020_10
31503           2020_12
31504
31505           Default is same as input.
31506
31507       matrixin, min
31508           Set the input colorspace matrix.
31509
31510           Possible value are:
31511
31512           input
31513           709
31514           unspecified
31515           470bg
31516           170m
31517           2020_ncl
31518           2020_cl
31519       chromal, c
31520           Set the output chroma location.
31521
31522           Possible values are:
31523
31524           input
31525           left
31526           center
31527           topleft
31528           top
31529           bottomleft
31530           bottom
31531       chromalin, cin
31532           Set the input chroma location.
31533
31534           Possible values are:
31535
31536           input
31537           left
31538           center
31539           topleft
31540           top
31541           bottomleft
31542           bottom
31543       npl Set the nominal peak luminance.
31544
31545       param_a
31546           Parameter A for scaling filters. Parameter "b" for bicubic, and the
31547           number of filter taps for lanczos.
31548
31549       param_b
31550           Parameter B for scaling filters. Parameter "c" for bicubic.
31551
31552       The values of the w and h options are expressions containing the
31553       following constants:
31554
31555       in_w
31556       in_h
31557           The input width and height
31558
31559       iw
31560       ih  These are the same as in_w and in_h.
31561
31562       out_w
31563       out_h
31564           The output (scaled) width and height
31565
31566       ow
31567       oh  These are the same as out_w and out_h
31568
31569       a   The same as iw / ih
31570
31571       sar input sample aspect ratio
31572
31573       dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
31574
31575       hsub
31576       vsub
31577           horizontal and vertical input chroma subsample values. For example
31578           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
31579
31580       ohsub
31581       ovsub
31582           horizontal and vertical output chroma subsample values. For example
31583           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
31584
31585       Commands
31586
31587       This filter supports the following commands:
31588
31589       width, w
31590       height, h
31591           Set the output video dimension expression.  The command accepts the
31592           same syntax of the corresponding option.
31593
31594           If the specified expression is not valid, it is kept at its current
31595           value.
31596

OPENCL VIDEO FILTERS

31598       Below is a description of the currently available OpenCL video filters.
31599
31600       To enable compilation of these filters you need to configure FFmpeg
31601       with "--enable-opencl".
31602
31603       Running OpenCL filters requires you to initialize a hardware device and
31604       to pass that device to all filters in any filter graph.
31605
31606       -init_hw_device opencl[=name][:device[,key=value...]]
31607           Initialise a new hardware device of type opencl called name, using
31608           the given device parameters.
31609
31610       -filter_hw_device name
31611           Pass the hardware device called name to all filters in any filter
31612           graph.
31613
31614       For more detailed information see
31615       <https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options>
31616
31617       •   Example of choosing the first device on the second platform and
31618           running avgblur_opencl filter with default parameters on it.
31619
31620                   -init_hw_device opencl=gpu:1.0 -filter_hw_device gpu -i INPUT -vf "hwupload, avgblur_opencl, hwdownload" OUTPUT
31621
31622       Since OpenCL filters are not able to access frame data in normal
31623       memory, all frame data needs to be uploaded(hwupload) to hardware
31624       surfaces connected to the appropriate device before being used and then
31625       downloaded(hwdownload) back to normal memory. Note that hwupload will
31626       upload to a surface with the same layout as the software frame, so it
31627       may be necessary to add a format filter immediately before to get the
31628       input into the right format and hwdownload does not support all formats
31629       on the output - it may be necessary to insert an additional format
31630       filter immediately following in the graph to get the output in a
31631       supported format.
31632
31633   avgblur_opencl
31634       Apply average blur filter.
31635
31636       The filter accepts the following options:
31637
31638       sizeX
31639           Set horizontal radius size.  Range is "[1, 1024]" and default value
31640           is 1.
31641
31642       planes
31643           Set which planes to filter. Default value is 0xf, by which all
31644           planes are processed.
31645
31646       sizeY
31647           Set vertical radius size. Range is "[1, 1024]" and default value is
31648           0. If zero, "sizeX" value will be used.
31649
31650       Example
31651
31652       •   Apply average blur filter with horizontal and vertical size of 3,
31653           setting each pixel of the output to the average value of the 7x7
31654           region centered on it in the input. For pixels on the edges of the
31655           image, the region does not extend beyond the image boundaries, and
31656           so out-of-range coordinates are not used in the calculations.
31657
31658                   -i INPUT -vf "hwupload, avgblur_opencl=3, hwdownload" OUTPUT
31659
31660   boxblur_opencl
31661       Apply a boxblur algorithm to the input video.
31662
31663       It accepts the following parameters:
31664
31665       luma_radius, lr
31666       luma_power, lp
31667       chroma_radius, cr
31668       chroma_power, cp
31669       alpha_radius, ar
31670       alpha_power, ap
31671
31672       A description of the accepted options follows.
31673
31674       luma_radius, lr
31675       chroma_radius, cr
31676       alpha_radius, ar
31677           Set an expression for the box radius in pixels used for blurring
31678           the corresponding input plane.
31679
31680           The radius value must be a non-negative number, and must not be
31681           greater than the value of the expression "min(w,h)/2" for the luma
31682           and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
31683
31684           Default value for luma_radius is "2". If not specified,
31685           chroma_radius and alpha_radius default to the corresponding value
31686           set for luma_radius.
31687
31688           The expressions can contain the following constants:
31689
31690           w
31691           h   The input width and height in pixels.
31692
31693           cw
31694           ch  The input chroma image width and height in pixels.
31695
31696           hsub
31697           vsub
31698               The horizontal and vertical chroma subsample values. For
31699               example, for the pixel format "yuv422p", hsub is 2 and vsub is
31700               1.
31701
31702       luma_power, lp
31703       chroma_power, cp
31704       alpha_power, ap
31705           Specify how many times the boxblur filter is applied to the
31706           corresponding plane.
31707
31708           Default value for luma_power is 2. If not specified, chroma_power
31709           and alpha_power default to the corresponding value set for
31710           luma_power.
31711
31712           A value of 0 will disable the effect.
31713
31714       Examples
31715
31716       Apply boxblur filter, setting each pixel of the output to the average
31717       value of box-radiuses luma_radius, chroma_radius, alpha_radius for each
31718       plane respectively. The filter will apply luma_power, chroma_power,
31719       alpha_power times onto the corresponding plane. For pixels on the edges
31720       of the image, the radius does not extend beyond the image boundaries,
31721       and so out-of-range coordinates are not used in the calculations.
31722
31723       •   Apply a boxblur filter with the luma, chroma, and alpha radius set
31724           to 2 and luma, chroma, and alpha power set to 3. The filter will
31725           run 3 times with box-radius set to 2 for every plane of the image.
31726
31727                   -i INPUT -vf "hwupload, boxblur_opencl=luma_radius=2:luma_power=3, hwdownload" OUTPUT
31728                   -i INPUT -vf "hwupload, boxblur_opencl=2:3, hwdownload" OUTPUT
31729
31730       •   Apply a boxblur filter with luma radius set to 2, luma_power to 1,
31731           chroma_radius to 4, chroma_power to 5, alpha_radius to 3 and
31732           alpha_power to 7.
31733
31734           For the luma plane, a 2x2 box radius will be run once.
31735
31736           For the chroma plane, a 4x4 box radius will be run 5 times.
31737
31738           For the alpha plane, a 3x3 box radius will be run 7 times.
31739
31740                   -i INPUT -vf "hwupload, boxblur_opencl=2:1:4:5:3:7, hwdownload" OUTPUT
31741
31742   colorkey_opencl
31743       RGB colorspace color keying.
31744
31745       The filter accepts the following options:
31746
31747       color
31748           The color which will be replaced with transparency.
31749
31750       similarity
31751           Similarity percentage with the key color.
31752
31753           0.01 matches only the exact key color, while 1.0 matches
31754           everything.
31755
31756       blend
31757           Blend percentage.
31758
31759           0.0 makes pixels either fully transparent, or not transparent at
31760           all.
31761
31762           Higher values result in semi-transparent pixels, with a higher
31763           transparency the more similar the pixels color is to the key color.
31764
31765       Examples
31766
31767       •   Make every semi-green pixel in the input transparent with some
31768           slight blending:
31769
31770                   -i INPUT -vf "hwupload, colorkey_opencl=green:0.3:0.1, hwdownload" OUTPUT
31771
31772   convolution_opencl
31773       Apply convolution of 3x3, 5x5, 7x7 matrix.
31774
31775       The filter accepts the following options:
31776
31777       0m
31778       1m
31779       2m
31780       3m  Set matrix for each plane.  Matrix is sequence of 9, 25 or 49
31781           signed numbers.  Default value for each plane is "0 0 0 0 1 0 0 0
31782           0".
31783
31784       0rdiv
31785       1rdiv
31786       2rdiv
31787       3rdiv
31788           Set multiplier for calculated value for each plane.  If unset or 0,
31789           it will be sum of all matrix elements.  The option value must be a
31790           float number greater or equal to 0.0. Default value is 1.0.
31791
31792       0bias
31793       1bias
31794       2bias
31795       3bias
31796           Set bias for each plane. This value is added to the result of the
31797           multiplication.  Useful for making the overall image brighter or
31798           darker.  The option value must be a float number greater or equal
31799           to 0.0. Default value is 0.0.
31800
31801       Examples
31802
31803       •   Apply sharpen:
31804
31805                   -i INPUT -vf "hwupload, convolution_opencl=0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0, hwdownload" OUTPUT
31806
31807       •   Apply blur:
31808
31809                   -i INPUT -vf "hwupload, convolution_opencl=1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1/9:1/9:1/9:1/9, hwdownload" OUTPUT
31810
31811       •   Apply edge enhance:
31812
31813                   -i INPUT -vf "hwupload, convolution_opencl=0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:5:1:1:1:0:128:128:128, hwdownload" OUTPUT
31814
31815       •   Apply edge detect:
31816
31817                   -i INPUT -vf "hwupload, convolution_opencl=0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:5:5:5:1:0:128:128:128, hwdownload" OUTPUT
31818
31819       •   Apply laplacian edge detector which includes diagonals:
31820
31821                   -i INPUT -vf "hwupload, convolution_opencl=1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:5:5:5:1:0:128:128:0, hwdownload" OUTPUT
31822
31823       •   Apply emboss:
31824
31825                   -i INPUT -vf "hwupload, convolution_opencl=-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2, hwdownload" OUTPUT
31826
31827   erosion_opencl
31828       Apply erosion effect to the video.
31829
31830       This filter replaces the pixel by the local(3x3) minimum.
31831
31832       It accepts the following options:
31833
31834       threshold0
31835       threshold1
31836       threshold2
31837       threshold3
31838           Limit the maximum change for each plane. Range is "[0, 65535]" and
31839           default value is 65535.  If 0, plane will remain unchanged.
31840
31841       coordinates
31842           Flag which specifies the pixel to refer to.  Range is "[0, 255]"
31843           and default value is 255, i.e. all eight pixels are used.
31844
31845           Flags to local 3x3 coordinates region centered on "x":
31846
31847               1 2 3
31848
31849               4 x 5
31850
31851               6 7 8
31852
31853       Example
31854
31855       •   Apply erosion filter with threshold0 set to 30, threshold1 set 40,
31856           threshold2 set to 50 and coordinates set to 231, setting each pixel
31857           of the output to the local minimum between pixels: 1, 2, 3, 6, 7, 8
31858           of the 3x3 region centered on it in the input. If the difference
31859           between input pixel and local minimum is more then threshold of the
31860           corresponding plane, output pixel will be set to input pixel -
31861           threshold of corresponding plane.
31862
31863                   -i INPUT -vf "hwupload, erosion_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
31864
31865   deshake_opencl
31866       Feature-point based video stabilization filter.
31867
31868       The filter accepts the following options:
31869
31870       tripod
31871           Simulates a tripod by preventing any camera movement whatsoever
31872           from the original frame. Defaults to 0.
31873
31874       debug
31875           Whether or not additional debug info should be displayed, both in
31876           the processed output and in the console.
31877
31878           Note that in order to see console debug output you will also need
31879           to pass "-v verbose" to ffmpeg.
31880
31881           Viewing point matches in the output video is only supported for RGB
31882           input.
31883
31884           Defaults to 0.
31885
31886       adaptive_crop
31887           Whether or not to do a tiny bit of cropping at the borders to cut
31888           down on the amount of mirrored pixels.
31889
31890           Defaults to 1.
31891
31892       refine_features
31893           Whether or not feature points should be refined at a sub-pixel
31894           level.
31895
31896           This can be turned off for a slight performance gain at the cost of
31897           precision.
31898
31899           Defaults to 1.
31900
31901       smooth_strength
31902           The strength of the smoothing applied to the camera path from 0.0
31903           to 1.0.
31904
31905           1.0 is the maximum smoothing strength while values less than that
31906           result in less smoothing.
31907
31908           0.0 causes the filter to adaptively choose a smoothing strength on
31909           a per-frame basis.
31910
31911           Defaults to 0.0.
31912
31913       smooth_window_multiplier
31914           Controls the size of the smoothing window (the number of frames
31915           buffered to determine motion information from).
31916
31917           The size of the smoothing window is determined by multiplying the
31918           framerate of the video by this number.
31919
31920           Acceptable values range from 0.1 to 10.0.
31921
31922           Larger values increase the amount of motion data available for
31923           determining how to smooth the camera path, potentially improving
31924           smoothness, but also increase latency and memory usage.
31925
31926           Defaults to 2.0.
31927
31928       Examples
31929
31930       •   Stabilize a video with a fixed, medium smoothing strength:
31931
31932                   -i INPUT -vf "hwupload, deshake_opencl=smooth_strength=0.5, hwdownload" OUTPUT
31933
31934       •   Stabilize a video with debugging (both in console and in rendered
31935           video):
31936
31937                   -i INPUT -filter_complex "[0:v]format=rgba, hwupload, deshake_opencl=debug=1, hwdownload, format=rgba, format=yuv420p" -v verbose OUTPUT
31938
31939   dilation_opencl
31940       Apply dilation effect to the video.
31941
31942       This filter replaces the pixel by the local(3x3) maximum.
31943
31944       It accepts the following options:
31945
31946       threshold0
31947       threshold1
31948       threshold2
31949       threshold3
31950           Limit the maximum change for each plane. Range is "[0, 65535]" and
31951           default value is 65535.  If 0, plane will remain unchanged.
31952
31953       coordinates
31954           Flag which specifies the pixel to refer to.  Range is "[0, 255]"
31955           and default value is 255, i.e. all eight pixels are used.
31956
31957           Flags to local 3x3 coordinates region centered on "x":
31958
31959               1 2 3
31960
31961               4 x 5
31962
31963               6 7 8
31964
31965       Example
31966
31967       •   Apply dilation filter with threshold0 set to 30, threshold1 set 40,
31968           threshold2 set to 50 and coordinates set to 231, setting each pixel
31969           of the output to the local maximum between pixels: 1, 2, 3, 6, 7, 8
31970           of the 3x3 region centered on it in the input. If the difference
31971           between input pixel and local maximum is more then threshold of the
31972           corresponding plane, output pixel will be set to input pixel +
31973           threshold of corresponding plane.
31974
31975                   -i INPUT -vf "hwupload, dilation_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
31976
31977   nlmeans_opencl
31978       Non-local Means denoise filter through OpenCL, this filter accepts same
31979       options as nlmeans.
31980
31981   overlay_opencl
31982       Overlay one video on top of another.
31983
31984       It takes two inputs and has one output. The first input is the "main"
31985       video on which the second input is overlaid.  This filter requires same
31986       memory layout for all the inputs. So, format conversion may be needed.
31987
31988       The filter accepts the following options:
31989
31990       x   Set the x coordinate of the overlaid video on the main video.
31991           Default value is 0.
31992
31993       y   Set the y coordinate of the overlaid video on the main video.
31994           Default value is 0.
31995
31996       Examples
31997
31998       •   Overlay an image LOGO at the top-left corner of the INPUT video.
31999           Both inputs are yuv420p format.
32000
32001                   -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
32002
32003       •   The inputs have same memory layout for color channels , the overlay
32004           has additional alpha plane, like INPUT is yuv420p, and the LOGO is
32005           yuva420p.
32006
32007                   -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
32008
32009   pad_opencl
32010       Add paddings to the input image, and place the original input at the
32011       provided x, y coordinates.
32012
32013       It accepts the following options:
32014
32015       width, w
32016       height, h
32017           Specify an expression for the size of the output image with the
32018           paddings added. If the value for width or height is 0, the
32019           corresponding input size is used for the output.
32020
32021           The width expression can reference the value set by the height
32022           expression, and vice versa.
32023
32024           The default value of width and height is 0.
32025
32026       x
32027       y   Specify the offsets to place the input image at within the padded
32028           area, with respect to the top/left border of the output image.
32029
32030           The x expression can reference the value set by the y expression,
32031           and vice versa.
32032
32033           The default value of x and y is 0.
32034
32035           If x or y evaluate to a negative number, they'll be changed so the
32036           input image is centered on the padded area.
32037
32038       color
32039           Specify the color of the padded area. For the syntax of this
32040           option, check the "Color" section in the ffmpeg-utils manual.
32041
32042       aspect
32043           Pad to an aspect instead to a resolution.
32044
32045       The value for the width, height, x, and y options are expressions
32046       containing the following constants:
32047
32048       in_w
32049       in_h
32050           The input video width and height.
32051
32052       iw
32053       ih  These are the same as in_w and in_h.
32054
32055       out_w
32056       out_h
32057           The output width and height (the size of the padded area), as
32058           specified by the width and height expressions.
32059
32060       ow
32061       oh  These are the same as out_w and out_h.
32062
32063       x
32064       y   The x and y offsets as specified by the x and y expressions, or NAN
32065           if not yet specified.
32066
32067       a   same as iw / ih
32068
32069       sar input sample aspect ratio
32070
32071       dar input display aspect ratio, it is the same as (iw / ih) * sar
32072
32073   prewitt_opencl
32074       Apply the Prewitt operator
32075       (<https://en.wikipedia.org/wiki/Prewitt_operator>) to input video
32076       stream.
32077
32078       The filter accepts the following option:
32079
32080       planes
32081           Set which planes to filter. Default value is 0xf, by which all
32082           planes are processed.
32083
32084       scale
32085           Set value which will be multiplied with filtered result.  Range is
32086           "[0.0, 65535]" and default value is 1.0.
32087
32088       delta
32089           Set value which will be added to filtered result.  Range is
32090           "[-65535, 65535]" and default value is 0.0.
32091
32092       Example
32093
32094       •   Apply the Prewitt operator with scale set to 2 and delta set to 10.
32095
32096                   -i INPUT -vf "hwupload, prewitt_opencl=scale=2:delta=10, hwdownload" OUTPUT
32097
32098   program_opencl
32099       Filter video using an OpenCL program.
32100
32101       source
32102           OpenCL program source file.
32103
32104       kernel
32105           Kernel name in program.
32106
32107       inputs
32108           Number of inputs to the filter.  Defaults to 1.
32109
32110       size, s
32111           Size of output frames.  Defaults to the same as the first input.
32112
32113       The "program_opencl" filter also supports the framesync options.
32114
32115       The program source file must contain a kernel function with the given
32116       name, which will be run once for each plane of the output.  Each run on
32117       a plane gets enqueued as a separate 2D global NDRange with one work-
32118       item for each pixel to be generated.  The global ID offset for each
32119       work-item is therefore the coordinates of a pixel in the destination
32120       image.
32121
32122       The kernel function needs to take the following arguments:
32123
32124       •   Destination image, __write_only image2d_t.
32125
32126           This image will become the output; the kernel should write all of
32127           it.
32128
32129       •   Frame index, unsigned int.
32130
32131           This is a counter starting from zero and increasing by one for each
32132           frame.
32133
32134       •   Source images, __read_only image2d_t.
32135
32136           These are the most recent images on each input.  The kernel may
32137           read from them to generate the output, but they can't be written
32138           to.
32139
32140       Example programs:
32141
32142       •   Copy the input to the output (output must be the same size as the
32143           input).
32144
32145                   __kernel void copy(__write_only image2d_t destination,
32146                                      unsigned int index,
32147                                      __read_only  image2d_t source)
32148                   {
32149                       const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE;
32150
32151                       int2 location = (int2)(get_global_id(0), get_global_id(1));
32152
32153                       float4 value = read_imagef(source, sampler, location);
32154
32155                       write_imagef(destination, location, value);
32156                   }
32157
32158       •   Apply a simple transformation, rotating the input by an amount
32159           increasing with the index counter.  Pixel values are linearly
32160           interpolated by the sampler, and the output need not have the same
32161           dimensions as the input.
32162
32163                   __kernel void rotate_image(__write_only image2d_t dst,
32164                                              unsigned int index,
32165                                              __read_only  image2d_t src)
32166                   {
32167                       const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
32168                                                  CLK_FILTER_LINEAR);
32169
32170                       float angle = (float)index / 100.0f;
32171
32172                       float2 dst_dim = convert_float2(get_image_dim(dst));
32173                       float2 src_dim = convert_float2(get_image_dim(src));
32174
32175                       float2 dst_cen = dst_dim / 2.0f;
32176                       float2 src_cen = src_dim / 2.0f;
32177
32178                       int2   dst_loc = (int2)(get_global_id(0), get_global_id(1));
32179
32180                       float2 dst_pos = convert_float2(dst_loc) - dst_cen;
32181                       float2 src_pos = {
32182                           cos(angle) * dst_pos.x - sin(angle) * dst_pos.y,
32183                           sin(angle) * dst_pos.x + cos(angle) * dst_pos.y
32184                       };
32185                       src_pos = src_pos * src_dim / dst_dim;
32186
32187                       float2 src_loc = src_pos + src_cen;
32188
32189                       if (src_loc.x < 0.0f      || src_loc.y < 0.0f ||
32190                           src_loc.x > src_dim.x || src_loc.y > src_dim.y)
32191                           write_imagef(dst, dst_loc, 0.5f);
32192                       else
32193                           write_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc));
32194                   }
32195
32196       •   Blend two inputs together, with the amount of each input used
32197           varying with the index counter.
32198
32199                   __kernel void blend_images(__write_only image2d_t dst,
32200                                              unsigned int index,
32201                                              __read_only  image2d_t src1,
32202                                              __read_only  image2d_t src2)
32203                   {
32204                       const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
32205                                                  CLK_FILTER_LINEAR);
32206
32207                       float blend = (cos((float)index / 50.0f) + 1.0f) / 2.0f;
32208
32209                       int2  dst_loc = (int2)(get_global_id(0), get_global_id(1));
32210                       int2 src1_loc = dst_loc * get_image_dim(src1) / get_image_dim(dst);
32211                       int2 src2_loc = dst_loc * get_image_dim(src2) / get_image_dim(dst);
32212
32213                       float4 val1 = read_imagef(src1, sampler, src1_loc);
32214                       float4 val2 = read_imagef(src2, sampler, src2_loc);
32215
32216                       write_imagef(dst, dst_loc, val1 * blend + val2 * (1.0f - blend));
32217                   }
32218
32219   remap_opencl
32220       Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
32221
32222       Destination pixel at position (X, Y) will be picked from source (x, y)
32223       position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
32224       out of range, zero value for pixel will be used for destination pixel.
32225
32226       Xmap and Ymap input video streams must be of same dimensions. Output
32227       video stream will have Xmap/Ymap video stream dimensions.  Xmap and
32228       Ymap input video streams are 32bit float pixel format, single channel.
32229
32230       interp
32231           Specify interpolation used for remapping of pixels.  Allowed values
32232           are "near" and "linear".  Default value is "linear".
32233
32234       fill
32235           Specify the color of the unmapped pixels. For the syntax of this
32236           option, check the "Color" section in the ffmpeg-utils manual.
32237           Default color is "black".
32238
32239   roberts_opencl
32240       Apply the Roberts cross operator
32241       (<https://en.wikipedia.org/wiki/Roberts_cross>) to input video stream.
32242
32243       The filter accepts the following option:
32244
32245       planes
32246           Set which planes to filter. Default value is 0xf, by which all
32247           planes are processed.
32248
32249       scale
32250           Set value which will be multiplied with filtered result.  Range is
32251           "[0.0, 65535]" and default value is 1.0.
32252
32253       delta
32254           Set value which will be added to filtered result.  Range is
32255           "[-65535, 65535]" and default value is 0.0.
32256
32257       Example
32258
32259       •   Apply the Roberts cross operator with scale set to 2 and delta set
32260           to 10
32261
32262                   -i INPUT -vf "hwupload, roberts_opencl=scale=2:delta=10, hwdownload" OUTPUT
32263
32264   sobel_opencl
32265       Apply the Sobel operator
32266       (<https://en.wikipedia.org/wiki/Sobel_operator>) to input video stream.
32267
32268       The filter accepts the following option:
32269
32270       planes
32271           Set which planes to filter. Default value is 0xf, by which all
32272           planes are processed.
32273
32274       scale
32275           Set value which will be multiplied with filtered result.  Range is
32276           "[0.0, 65535]" and default value is 1.0.
32277
32278       delta
32279           Set value which will be added to filtered result.  Range is
32280           "[-65535, 65535]" and default value is 0.0.
32281
32282       Example
32283
32284       •   Apply sobel operator with scale set to 2 and delta set to 10
32285
32286                   -i INPUT -vf "hwupload, sobel_opencl=scale=2:delta=10, hwdownload" OUTPUT
32287
32288   tonemap_opencl
32289       Perform HDR(PQ/HLG) to SDR conversion with tone-mapping.
32290
32291       It accepts the following parameters:
32292
32293       tonemap
32294           Specify the tone-mapping operator to be used. Same as tonemap
32295           option in tonemap.
32296
32297       param
32298           Tune the tone mapping algorithm. same as param option in tonemap.
32299
32300       desat
32301           Apply desaturation for highlights that exceed this level of
32302           brightness. The higher the parameter, the more color information
32303           will be preserved. This setting helps prevent unnaturally blown-out
32304           colors for super-highlights, by (smoothly) turning into white
32305           instead. This makes images feel more natural, at the cost of
32306           reducing information about out-of-range colors.
32307
32308           The default value is 0.5, and the algorithm here is a little
32309           different from the cpu version tonemap currently. A setting of 0.0
32310           disables this option.
32311
32312       threshold
32313           The tonemapping algorithm parameters is fine-tuned per each scene.
32314           And a threshold is used to detect whether the scene has changed or
32315           not. If the distance between the current frame average brightness
32316           and the current running average exceeds a threshold value, we would
32317           re-calculate scene average and peak brightness.  The default value
32318           is 0.2.
32319
32320       format
32321           Specify the output pixel format.
32322
32323           Currently supported formats are:
32324
32325           p010
32326           nv12
32327       range, r
32328           Set the output color range.
32329
32330           Possible values are:
32331
32332           tv/mpeg
32333           pc/jpeg
32334
32335           Default is same as input.
32336
32337       primaries, p
32338           Set the output color primaries.
32339
32340           Possible values are:
32341
32342           bt709
32343           bt2020
32344
32345           Default is same as input.
32346
32347       transfer, t
32348           Set the output transfer characteristics.
32349
32350           Possible values are:
32351
32352           bt709
32353           bt2020
32354
32355           Default is bt709.
32356
32357       matrix, m
32358           Set the output colorspace matrix.
32359
32360           Possible value are:
32361
32362           bt709
32363           bt2020
32364
32365           Default is same as input.
32366
32367       Example
32368
32369       •   Convert HDR(PQ/HLG) video to bt2020-transfer-characteristic p010
32370           format using linear operator.
32371
32372                   -i INPUT -vf "format=p010,hwupload,tonemap_opencl=t=bt2020:tonemap=linear:format=p010,hwdownload,format=p010" OUTPUT
32373
32374   unsharp_opencl
32375       Sharpen or blur the input video.
32376
32377       It accepts the following parameters:
32378
32379       luma_msize_x, lx
32380           Set the luma matrix horizontal size.  Range is "[1, 23]" and
32381           default value is 5.
32382
32383       luma_msize_y, ly
32384           Set the luma matrix vertical size.  Range is "[1, 23]" and default
32385           value is 5.
32386
32387       luma_amount, la
32388           Set the luma effect strength.  Range is "[-10, 10]" and default
32389           value is 1.0.
32390
32391           Negative values will blur the input video, while positive values
32392           will sharpen it, a value of zero will disable the effect.
32393
32394       chroma_msize_x, cx
32395           Set the chroma matrix horizontal size.  Range is "[1, 23]" and
32396           default value is 5.
32397
32398       chroma_msize_y, cy
32399           Set the chroma matrix vertical size.  Range is "[1, 23]" and
32400           default value is 5.
32401
32402       chroma_amount, ca
32403           Set the chroma effect strength.  Range is "[-10, 10]" and default
32404           value is 0.0.
32405
32406           Negative values will blur the input video, while positive values
32407           will sharpen it, a value of zero will disable the effect.
32408
32409       All parameters are optional and default to the equivalent of the string
32410       '5:5:1.0:5:5:0.0'.
32411
32412       Examples
32413
32414       •   Apply strong luma sharpen effect:
32415
32416                   -i INPUT -vf "hwupload, unsharp_opencl=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5, hwdownload" OUTPUT
32417
32418       •   Apply a strong blur of both luma and chroma parameters:
32419
32420                   -i INPUT -vf "hwupload, unsharp_opencl=7:7:-2:7:7:-2, hwdownload" OUTPUT
32421
32422   xfade_opencl
32423       Cross fade two videos with custom transition effect by using OpenCL.
32424
32425       It accepts the following options:
32426
32427       transition
32428           Set one of possible transition effects.
32429
32430           custom
32431               Select custom transition effect, the actual transition
32432               description will be picked from source and kernel options.
32433
32434           fade
32435           wipeleft
32436           wiperight
32437           wipeup
32438           wipedown
32439           slideleft
32440           slideright
32441           slideup
32442           slidedown
32443               Default transition is fade.
32444
32445       source
32446           OpenCL program source file for custom transition.
32447
32448       kernel
32449           Set name of kernel to use for custom transition from program source
32450           file.
32451
32452       duration
32453           Set duration of video transition.
32454
32455       offset
32456           Set time of start of transition relative to first video.
32457
32458       The program source file must contain a kernel function with the given
32459       name, which will be run once for each plane of the output.  Each run on
32460       a plane gets enqueued as a separate 2D global NDRange with one work-
32461       item for each pixel to be generated.  The global ID offset for each
32462       work-item is therefore the coordinates of a pixel in the destination
32463       image.
32464
32465       The kernel function needs to take the following arguments:
32466
32467       •   Destination image, __write_only image2d_t.
32468
32469           This image will become the output; the kernel should write all of
32470           it.
32471
32472       •   First Source image, __read_only image2d_t.  Second Source image,
32473           __read_only image2d_t.
32474
32475           These are the most recent images on each input.  The kernel may
32476           read from them to generate the output, but they can't be written
32477           to.
32478
32479       •   Transition progress, float. This value is always between 0 and 1
32480           inclusive.
32481
32482       Example programs:
32483
32484       •   Apply dots curtain transition effect:
32485
32486                   __kernel void blend_images(__write_only image2d_t dst,
32487                                              __read_only  image2d_t src1,
32488                                              __read_only  image2d_t src2,
32489                                              float progress)
32490                   {
32491                       const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
32492                                                  CLK_FILTER_LINEAR);
32493                       int2  p = (int2)(get_global_id(0), get_global_id(1));
32494                       float2 rp = (float2)(get_global_id(0), get_global_id(1));
32495                       float2 dim = (float2)(get_image_dim(src1).x, get_image_dim(src1).y);
32496                       rp = rp / dim;
32497
32498                       float2 dots = (float2)(20.0, 20.0);
32499                       float2 center = (float2)(0,0);
32500                       float2 unused;
32501
32502                       float4 val1 = read_imagef(src1, sampler, p);
32503                       float4 val2 = read_imagef(src2, sampler, p);
32504                       bool next = distance(fract(rp * dots, &unused), (float2)(0.5, 0.5)) < (progress / distance(rp, center));
32505
32506                       write_imagef(dst, p, next ? val1 : val2);
32507                   }
32508

VAAPI VIDEO FILTERS

32510       VAAPI Video filters are usually used with VAAPI decoder and VAAPI
32511       encoder. Below is a description of VAAPI video filters.
32512
32513       To enable compilation of these filters you need to configure FFmpeg
32514       with "--enable-vaapi".
32515
32516       To use vaapi filters, you need to setup the vaapi device correctly. For
32517       more information, please read
32518       <https://trac.ffmpeg.org/wiki/Hardware/VAAPI>
32519
32520   overlay_vaapi
32521       Overlay one video on the top of another.
32522
32523       It takes two inputs and has one output. The first input is the "main"
32524       video on which the second input is overlaid.  This filter requires same
32525       memory layout for all the inputs. So, format conversion may be needed.
32526
32527       The filter accepts the following options:
32528
32529       x   Set the x coordinate of the overlaid video on the main video.
32530           Default value is 0.
32531
32532       y   Set the y coordinate of the overlaid video on the main video.
32533           Default value is 0.
32534
32535       w   Set the width of the overlaid video on the main video.  Default
32536           value is the width of input overlay video.
32537
32538       h   Set the height of the overlaid video on the main video.  Default
32539           value is the height of input overlay video.
32540
32541       alpha
32542           Set blocking detection thresholds. Allowed range is 0.0 to 1.0, it
32543           requires an input video with alpha channel.  Default value is 0.0.
32544
32545       Examples
32546
32547       •   Overlay an image LOGO at the top-left corner of the INPUT video.
32548           Both inputs for this filter are yuv420p format.
32549
32550                   -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_vaapi" OUTPUT
32551
32552       •   Overlay an image LOGO at the offset (200, 100) from the top-left
32553           corner of the INPUT video.  The inputs have same memory layout for
32554           color channels, the overlay has additional alpha plane, like INPUT
32555           is yuv420p, and the LOGO is yuva420p.
32556
32557                   -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_vaapi=x=200:y=100:w=400:h=300:alpha=1.0, hwdownload, format=nv12" OUTPUT
32558
32559   tonemap_vaapi
32560       Perform HDR(High Dynamic Range) to SDR(Standard Dynamic Range)
32561       conversion with tone-mapping.  It maps the dynamic range of HDR10
32562       content to the SDR content.  It currently only accepts HDR10 as input.
32563
32564       It accepts the following parameters:
32565
32566       format
32567           Specify the output pixel format.
32568
32569           Currently supported formats are:
32570
32571           p010
32572           nv12
32573
32574           Default is nv12.
32575
32576       primaries, p
32577           Set the output color primaries.
32578
32579           Default is same as input.
32580
32581       transfer, t
32582           Set the output transfer characteristics.
32583
32584           Default is bt709.
32585
32586       matrix, m
32587           Set the output colorspace matrix.
32588
32589           Default is same as input.
32590
32591       Example
32592
32593       •   Convert HDR(HDR10) video to bt2020-transfer-characteristic p010
32594           format
32595
32596                   tonemap_vaapi=format=p010:t=bt2020-10
32597

VIDEO SOURCES

32599       Below is a description of the currently available video sources.
32600
32601   buffer
32602       Buffer video frames, and make them available to the filter chain.
32603
32604       This source is mainly intended for a programmatic use, in particular
32605       through the interface defined in libavfilter/buffersrc.h.
32606
32607       It accepts the following parameters:
32608
32609       video_size
32610           Specify the size (width and height) of the buffered video frames.
32611           For the syntax of this option, check the "Video size" section in
32612           the ffmpeg-utils manual.
32613
32614       width
32615           The input video width.
32616
32617       height
32618           The input video height.
32619
32620       pix_fmt
32621           A string representing the pixel format of the buffered video
32622           frames.  It may be a number corresponding to a pixel format, or a
32623           pixel format name.
32624
32625       time_base
32626           Specify the timebase assumed by the timestamps of the buffered
32627           frames.
32628
32629       frame_rate
32630           Specify the frame rate expected for the video stream.
32631
32632       pixel_aspect, sar
32633           The sample (pixel) aspect ratio of the input video.
32634
32635       sws_param
32636           This option is deprecated and ignored. Prepend "sws_flags=flags;"
32637           to the filtergraph description to specify swscale flags for
32638           automatically inserted scalers. See Filtergraph syntax.
32639
32640       hw_frames_ctx
32641           When using a hardware pixel format, this should be a reference to
32642           an AVHWFramesContext describing input frames.
32643
32644       For example:
32645
32646               buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
32647
32648       will instruct the source to accept video frames with size 320x240 and
32649       with format "yuv410p", assuming 1/24 as the timestamps timebase and
32650       square pixels (1:1 sample aspect ratio).  Since the pixel format with
32651       name "yuv410p" corresponds to the number 6 (check the enum
32652       AVPixelFormat definition in libavutil/pixfmt.h), this example
32653       corresponds to:
32654
32655               buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
32656
32657       Alternatively, the options can be specified as a flat string, but this
32658       syntax is deprecated:
32659
32660       width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den
32661
32662   cellauto
32663       Create a pattern generated by an elementary cellular automaton.
32664
32665       The initial state of the cellular automaton can be defined through the
32666       filename and pattern options. If such options are not specified an
32667       initial state is created randomly.
32668
32669       At each new frame a new row in the video is filled with the result of
32670       the cellular automaton next generation. The behavior when the whole
32671       frame is filled is defined by the scroll option.
32672
32673       This source accepts the following options:
32674
32675       filename, f
32676           Read the initial cellular automaton state, i.e. the starting row,
32677           from the specified file.  In the file, each non-whitespace
32678           character is considered an alive cell, a newline will terminate the
32679           row, and further characters in the file will be ignored.
32680
32681       pattern, p
32682           Read the initial cellular automaton state, i.e. the starting row,
32683           from the specified string.
32684
32685           Each non-whitespace character in the string is considered an alive
32686           cell, a newline will terminate the row, and further characters in
32687           the string will be ignored.
32688
32689       rate, r
32690           Set the video rate, that is the number of frames generated per
32691           second.  Default is 25.
32692
32693       random_fill_ratio, ratio
32694           Set the random fill ratio for the initial cellular automaton row.
32695           It is a floating point number value ranging from 0 to 1, defaults
32696           to 1/PHI.
32697
32698           This option is ignored when a file or a pattern is specified.
32699
32700       random_seed, seed
32701           Set the seed for filling randomly the initial row, must be an
32702           integer included between 0 and UINT32_MAX. If not specified, or if
32703           explicitly set to -1, the filter will try to use a good random seed
32704           on a best effort basis.
32705
32706       rule
32707           Set the cellular automaton rule, it is a number ranging from 0 to
32708           255.  Default value is 110.
32709
32710       size, s
32711           Set the size of the output video. For the syntax of this option,
32712           check the "Video size" section in the ffmpeg-utils manual.
32713
32714           If filename or pattern is specified, the size is set by default to
32715           the width of the specified initial state row, and the height is set
32716           to width * PHI.
32717
32718           If size is set, it must contain the width of the specified pattern
32719           string, and the specified pattern will be centered in the larger
32720           row.
32721
32722           If a filename or a pattern string is not specified, the size value
32723           defaults to "320x518" (used for a randomly generated initial
32724           state).
32725
32726       scroll
32727           If set to 1, scroll the output upward when all the rows in the
32728           output have been already filled. If set to 0, the new generated row
32729           will be written over the top row just after the bottom row is
32730           filled.  Defaults to 1.
32731
32732       start_full, full
32733           If set to 1, completely fill the output with generated rows before
32734           outputting the first frame.  This is the default behavior, for
32735           disabling set the value to 0.
32736
32737       stitch
32738           If set to 1, stitch the left and right row edges together.  This is
32739           the default behavior, for disabling set the value to 0.
32740
32741       Examples
32742
32743       •   Read the initial state from pattern, and specify an output of size
32744           200x400.
32745
32746                   cellauto=f=pattern:s=200x400
32747
32748       •   Generate a random initial row with a width of 200 cells, with a
32749           fill ratio of 2/3:
32750
32751                   cellauto=ratio=2/3:s=200x200
32752
32753       •   Create a pattern generated by rule 18 starting by a single alive
32754           cell centered on an initial row with width 100:
32755
32756                   cellauto=p=@s=100x400:full=0:rule=18
32757
32758       •   Specify a more elaborated initial pattern:
32759
32760                   cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
32761
32762   coreimagesrc
32763       Video source generated on GPU using Apple's CoreImage API on OSX.
32764
32765       This video source is a specialized version of the coreimage video
32766       filter.  Use a core image generator at the beginning of the applied
32767       filterchain to generate the content.
32768
32769       The coreimagesrc video source accepts the following options:
32770
32771       list_generators
32772           List all available generators along with all their respective
32773           options as well as possible minimum and maximum values along with
32774           the default values.
32775
32776                   list_generators=true
32777
32778       size, s
32779           Specify the size of the sourced video. For the syntax of this
32780           option, check the "Video size" section in the ffmpeg-utils manual.
32781           The default value is "320x240".
32782
32783       rate, r
32784           Specify the frame rate of the sourced video, as the number of
32785           frames generated per second. It has to be a string in the format
32786           frame_rate_num/frame_rate_den, an integer number, a floating point
32787           number or a valid video frame rate abbreviation. The default value
32788           is "25".
32789
32790       sar Set the sample aspect ratio of the sourced video.
32791
32792       duration, d
32793           Set the duration of the sourced video. See the Time duration
32794           section in the ffmpeg-utils(1) manual for the accepted syntax.
32795
32796           If not specified, or the expressed duration is negative, the video
32797           is supposed to be generated forever.
32798
32799       Additionally, all options of the coreimage video filter are accepted.
32800       A complete filterchain can be used for further processing of the
32801       generated input without CPU-HOST transfer. See coreimage documentation
32802       and examples for details.
32803
32804       Examples
32805
32806       •   Use CIQRCodeGenerator to create a QR code for the FFmpeg homepage,
32807           given as complete and escaped command-line for Apple's standard
32808           bash shell:
32809
32810                   ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
32811
32812           This example is equivalent to the QRCode example of coreimage
32813           without the need for a nullsrc video source.
32814
32815   gradients
32816       Generate several gradients.
32817
32818       size, s
32819           Set frame size. For the syntax of this option, check the "Video
32820           size" section in the ffmpeg-utils manual. Default value is
32821           "640x480".
32822
32823       rate, r
32824           Set frame rate, expressed as number of frames per second. Default
32825           value is "25".
32826
32827       c0, c1, c2, c3, c4, c5, c6, c7
32828           Set 8 colors. Default values for colors is to pick random one.
32829
32830       x0, y0, y0, y1
32831           Set gradient line source and destination points. If negative or out
32832           of range, random ones are picked.
32833
32834       nb_colors, n
32835           Set number of colors to use at once. Allowed range is from 2 to 8.
32836           Default value is 2.
32837
32838       seed
32839           Set seed for picking gradient line points.
32840
32841       duration, d
32842           Set the duration of the sourced video. See the Time duration
32843           section in the ffmpeg-utils(1) manual for the accepted syntax.
32844
32845           If not specified, or the expressed duration is negative, the video
32846           is supposed to be generated forever.
32847
32848       speed
32849           Set speed of gradients rotation.
32850
32851       type, t
32852           Set type of gradients, can be "linear" or "radial" or "circular" or
32853           "spiral".
32854
32855   mandelbrot
32856       Generate a Mandelbrot set fractal, and progressively zoom towards the
32857       point specified with start_x and start_y.
32858
32859       This source accepts the following options:
32860
32861       end_pts
32862           Set the terminal pts value. Default value is 400.
32863
32864       end_scale
32865           Set the terminal scale value.  Must be a floating point value.
32866           Default value is 0.3.
32867
32868       inner
32869           Set the inner coloring mode, that is the algorithm used to draw the
32870           Mandelbrot fractal internal region.
32871
32872           It shall assume one of the following values:
32873
32874           black
32875               Set black mode.
32876
32877           convergence
32878               Show time until convergence.
32879
32880           mincol
32881               Set color based on point closest to the origin of the
32882               iterations.
32883
32884           period
32885               Set period mode.
32886
32887           Default value is mincol.
32888
32889       bailout
32890           Set the bailout value. Default value is 10.0.
32891
32892       maxiter
32893           Set the maximum of iterations performed by the rendering algorithm.
32894           Default value is 7189.
32895
32896       outer
32897           Set outer coloring mode.  It shall assume one of following values:
32898
32899           iteration_count
32900               Set iteration count mode.
32901
32902           normalized_iteration_count
32903               set normalized iteration count mode.
32904
32905           Default value is normalized_iteration_count.
32906
32907       rate, r
32908           Set frame rate, expressed as number of frames per second. Default
32909           value is "25".
32910
32911       size, s
32912           Set frame size. For the syntax of this option, check the "Video
32913           size" section in the ffmpeg-utils manual. Default value is
32914           "640x480".
32915
32916       start_scale
32917           Set the initial scale value. Default value is 3.0.
32918
32919       start_x
32920           Set the initial x position. Must be a floating point value between
32921           -100 and 100. Default value is
32922           -0.743643887037158704752191506114774.
32923
32924       start_y
32925           Set the initial y position. Must be a floating point value between
32926           -100 and 100. Default value is
32927           -0.131825904205311970493132056385139.
32928
32929   mptestsrc
32930       Generate various test patterns, as generated by the MPlayer test
32931       filter.
32932
32933       The size of the generated video is fixed, and is 256x256.  This source
32934       is useful in particular for testing encoding features.
32935
32936       This source accepts the following options:
32937
32938       rate, r
32939           Specify the frame rate of the sourced video, as the number of
32940           frames generated per second. It has to be a string in the format
32941           frame_rate_num/frame_rate_den, an integer number, a floating point
32942           number or a valid video frame rate abbreviation. The default value
32943           is "25".
32944
32945       duration, d
32946           Set the duration of the sourced video. See the Time duration
32947           section in the ffmpeg-utils(1) manual for the accepted syntax.
32948
32949           If not specified, or the expressed duration is negative, the video
32950           is supposed to be generated forever.
32951
32952       test, t
32953           Set the number or the name of the test to perform. Supported tests
32954           are:
32955
32956           dc_luma
32957           dc_chroma
32958           freq_luma
32959           freq_chroma
32960           amp_luma
32961           amp_chroma
32962           cbp
32963           mv
32964           ring1
32965           ring2
32966           all
32967           max_frames, m
32968               Set the maximum number of frames generated for each test,
32969               default value is 30.
32970
32971           Default value is "all", which will cycle through the list of all
32972           tests.
32973
32974       Some examples:
32975
32976               mptestsrc=t=dc_luma
32977
32978       will generate a "dc_luma" test pattern.
32979
32980   frei0r_src
32981       Provide a frei0r source.
32982
32983       To enable compilation of this filter you need to install the frei0r
32984       header and configure FFmpeg with "--enable-frei0r".
32985
32986       This source accepts the following parameters:
32987
32988       size
32989           The size of the video to generate. For the syntax of this option,
32990           check the "Video size" section in the ffmpeg-utils manual.
32991
32992       framerate
32993           The framerate of the generated video. It may be a string of the
32994           form num/den or a frame rate abbreviation.
32995
32996       filter_name
32997           The name to the frei0r source to load. For more information
32998           regarding frei0r and how to set the parameters, read the frei0r
32999           section in the video filters documentation.
33000
33001       filter_params
33002           A '|'-separated list of parameters to pass to the frei0r source.
33003
33004       For example, to generate a frei0r partik0l source with size 200x200 and
33005       frame rate 10 which is overlaid on the overlay filter main input:
33006
33007               frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
33008
33009   life
33010       Generate a life pattern.
33011
33012       This source is based on a generalization of John Conway's life game.
33013
33014       The sourced input represents a life grid, each pixel represents a cell
33015       which can be in one of two possible states, alive or dead. Every cell
33016       interacts with its eight neighbours, which are the cells that are
33017       horizontally, vertically, or diagonally adjacent.
33018
33019       At each interaction the grid evolves according to the adopted rule,
33020       which specifies the number of neighbor alive cells which will make a
33021       cell stay alive or born. The rule option allows one to specify the rule
33022       to adopt.
33023
33024       This source accepts the following options:
33025
33026       filename, f
33027           Set the file from which to read the initial grid state. In the
33028           file, each non-whitespace character is considered an alive cell,
33029           and newline is used to delimit the end of each row.
33030
33031           If this option is not specified, the initial grid is generated
33032           randomly.
33033
33034       rate, r
33035           Set the video rate, that is the number of frames generated per
33036           second.  Default is 25.
33037
33038       random_fill_ratio, ratio
33039           Set the random fill ratio for the initial random grid. It is a
33040           floating point number value ranging from 0 to 1, defaults to 1/PHI.
33041           It is ignored when a file is specified.
33042
33043       random_seed, seed
33044           Set the seed for filling the initial random grid, must be an
33045           integer included between 0 and UINT32_MAX. If not specified, or if
33046           explicitly set to -1, the filter will try to use a good random seed
33047           on a best effort basis.
33048
33049       rule
33050           Set the life rule.
33051
33052           A rule can be specified with a code of the kind "SNS/BNB", where NS
33053           and NB are sequences of numbers in the range 0-8, NS specifies the
33054           number of alive neighbor cells which make a live cell stay alive,
33055           and NB the number of alive neighbor cells which make a dead cell to
33056           become alive (i.e. to "born").  "s" and "b" can be used in place of
33057           "S" and "B", respectively.
33058
33059           Alternatively a rule can be specified by an 18-bits integer. The 9
33060           high order bits are used to encode the next cell state if it is
33061           alive for each number of neighbor alive cells, the low order bits
33062           specify the rule for "borning" new cells. Higher order bits encode
33063           for an higher number of neighbor cells.  For example the number
33064           6153 = "(12<<9)+9" specifies a stay alive rule of 12 and a born
33065           rule of 9, which corresponds to "S23/B03".
33066
33067           Default value is "S23/B3", which is the original Conway's game of
33068           life rule, and will keep a cell alive if it has 2 or 3 neighbor
33069           alive cells, and will born a new cell if there are three alive
33070           cells around a dead cell.
33071
33072       size, s
33073           Set the size of the output video. For the syntax of this option,
33074           check the "Video size" section in the ffmpeg-utils manual.
33075
33076           If filename is specified, the size is set by default to the same
33077           size of the input file. If size is set, it must contain the size
33078           specified in the input file, and the initial grid defined in that
33079           file is centered in the larger resulting area.
33080
33081           If a filename is not specified, the size value defaults to
33082           "320x240" (used for a randomly generated initial grid).
33083
33084       stitch
33085           If set to 1, stitch the left and right grid edges together, and the
33086           top and bottom edges also. Defaults to 1.
33087
33088       mold
33089           Set cell mold speed. If set, a dead cell will go from death_color
33090           to mold_color with a step of mold. mold can have a value from 0 to
33091           255.
33092
33093       life_color
33094           Set the color of living (or new born) cells.
33095
33096       death_color
33097           Set the color of dead cells. If mold is set, this is the first
33098           color used to represent a dead cell.
33099
33100       mold_color
33101           Set mold color, for definitely dead and moldy cells.
33102
33103           For the syntax of these 3 color options, check the "Color" section
33104           in the ffmpeg-utils manual.
33105
33106       Examples
33107
33108       •   Read a grid from pattern, and center it on a grid of size 300x300
33109           pixels:
33110
33111                   life=f=pattern:s=300x300
33112
33113       •   Generate a random grid of size 200x200, with a fill ratio of 2/3:
33114
33115                   life=ratio=2/3:s=200x200
33116
33117       •   Specify a custom rule for evolving a randomly generated grid:
33118
33119                   life=rule=S14/B34
33120
33121       •   Full example with slow death effect (mold) using ffplay:
33122
33123                   ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
33124
33125   allrgb, allyuv, color, colorchart, colorspectrum, haldclutsrc, nullsrc,
33126       pal75bars, pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc,
33127       testsrc2, yuvtestsrc
33128       The "allrgb" source returns frames of size 4096x4096 of all rgb colors.
33129
33130       The "allyuv" source returns frames of size 4096x4096 of all yuv colors.
33131
33132       The "color" source provides an uniformly colored input.
33133
33134       The "colorchart" source provides a colors checker chart.
33135
33136       The "colorspectrum" source provides a color spectrum input.
33137
33138       The "haldclutsrc" source provides an identity Hald CLUT. See also
33139       haldclut filter.
33140
33141       The "nullsrc" source returns unprocessed video frames. It is mainly
33142       useful to be employed in analysis / debugging tools, or as the source
33143       for filters which ignore the input data.
33144
33145       The "pal75bars" source generates a color bars pattern, based on EBU PAL
33146       recommendations with 75% color levels.
33147
33148       The "pal100bars" source generates a color bars pattern, based on EBU
33149       PAL recommendations with 100% color levels.
33150
33151       The "rgbtestsrc" source generates an RGB test pattern useful for
33152       detecting RGB vs BGR issues. You should see a red, green and blue
33153       stripe from top to bottom.
33154
33155       The "smptebars" source generates a color bars pattern, based on the
33156       SMPTE Engineering Guideline EG 1-1990.
33157
33158       The "smptehdbars" source generates a color bars pattern, based on the
33159       SMPTE RP 219-2002.
33160
33161       The "testsrc" source generates a test video pattern, showing a color
33162       pattern, a scrolling gradient and a timestamp. This is mainly intended
33163       for testing purposes.
33164
33165       The "testsrc2" source is similar to testsrc, but supports more pixel
33166       formats instead of just "rgb24". This allows using it as an input for
33167       other tests without requiring a format conversion.
33168
33169       The "yuvtestsrc" source generates an YUV test pattern. You should see a
33170       y, cb and cr stripe from top to bottom.
33171
33172       The sources accept the following parameters:
33173
33174       level
33175           Specify the level of the Hald CLUT, only available in the
33176           "haldclutsrc" source. A level of "N" generates a picture of "N*N*N"
33177           by "N*N*N" pixels to be used as identity matrix for 3D lookup
33178           tables. Each component is coded on a "1/(N*N)" scale.
33179
33180       color, c
33181           Specify the color of the source, only available in the "color"
33182           source. For the syntax of this option, check the "Color" section in
33183           the ffmpeg-utils manual.
33184
33185       size, s
33186           Specify the size of the sourced video. For the syntax of this
33187           option, check the "Video size" section in the ffmpeg-utils manual.
33188           The default value is "320x240".
33189
33190           This option is not available with the "allrgb", "allyuv", and
33191           "haldclutsrc" filters.
33192
33193       rate, r
33194           Specify the frame rate of the sourced video, as the number of
33195           frames generated per second. It has to be a string in the format
33196           frame_rate_num/frame_rate_den, an integer number, a floating point
33197           number or a valid video frame rate abbreviation. The default value
33198           is "25".
33199
33200       duration, d
33201           Set the duration of the sourced video. See the Time duration
33202           section in the ffmpeg-utils(1) manual for the accepted syntax.
33203
33204           If not specified, or the expressed duration is negative, the video
33205           is supposed to be generated forever.
33206
33207           Since the frame rate is used as time base, all frames including the
33208           last one will have their full duration. If the specified duration
33209           is not a multiple of the frame duration, it will be rounded up.
33210
33211       sar Set the sample aspect ratio of the sourced video.
33212
33213       alpha
33214           Specify the alpha (opacity) of the background, only available in
33215           the "testsrc2" source. The value must be between 0 (fully
33216           transparent) and 255 (fully opaque, the default).
33217
33218       decimals, n
33219           Set the number of decimals to show in the timestamp, only available
33220           in the "testsrc" source.
33221
33222           The displayed timestamp value will correspond to the original
33223           timestamp value multiplied by the power of 10 of the specified
33224           value. Default value is 0.
33225
33226       type
33227           Set the type of the color spectrum, only available in the
33228           "colorspectrum" source. Can be one of the following:
33229
33230           black
33231           white
33232           all
33233       patch_size
33234           Set patch size of single color patch, only available in the
33235           "colorchart" source. Default is "64x64".
33236
33237       preset
33238           Set colorchecker colors preset, only available in the "colorchart"
33239           source.
33240
33241           Available values are:
33242
33243           reference
33244           skintones
33245
33246           Default value is "reference".
33247
33248       Examples
33249
33250       •   Generate a video with a duration of 5.3 seconds, with size 176x144
33251           and a frame rate of 10 frames per second:
33252
33253                   testsrc=duration=5.3:size=qcif:rate=10
33254
33255       •   The following graph description will generate a red source with an
33256           opacity of 0.2, with size "qcif" and a frame rate of 10 frames per
33257           second:
33258
33259                   color=c=red@0.2:s=qcif:r=10
33260
33261       •   If the input content is to be ignored, "nullsrc" can be used. The
33262           following command generates noise in the luminance plane by
33263           employing the "geq" filter:
33264
33265                   nullsrc=s=256x256, geq=random(1)*255:128:128
33266
33267       Commands
33268
33269       The "color" source supports the following commands:
33270
33271       c, color
33272           Set the color of the created image. Accepts the same syntax of the
33273           corresponding color option.
33274
33275   openclsrc
33276       Generate video using an OpenCL program.
33277
33278       source
33279           OpenCL program source file.
33280
33281       kernel
33282           Kernel name in program.
33283
33284       size, s
33285           Size of frames to generate.  This must be set.
33286
33287       format
33288           Pixel format to use for the generated frames.  This must be set.
33289
33290       rate, r
33291           Number of frames generated every second.  Default value is '25'.
33292
33293       For details of how the program loading works, see the program_opencl
33294       filter.
33295
33296       Example programs:
33297
33298       •   Generate a colour ramp by setting pixel values from the position of
33299           the pixel in the output image.  (Note that this will work with all
33300           pixel formats, but the generated output will not be the same.)
33301
33302                   __kernel void ramp(__write_only image2d_t dst,
33303                                      unsigned int index)
33304                   {
33305                       int2 loc = (int2)(get_global_id(0), get_global_id(1));
33306
33307                       float4 val;
33308                       val.xy = val.zw = convert_float2(loc) / convert_float2(get_image_dim(dst));
33309
33310                       write_imagef(dst, loc, val);
33311                   }
33312
33313       •   Generate a Sierpinski carpet pattern, panning by a single pixel
33314           each frame.
33315
33316                   __kernel void sierpinski_carpet(__write_only image2d_t dst,
33317                                                   unsigned int index)
33318                   {
33319                       int2 loc = (int2)(get_global_id(0), get_global_id(1));
33320
33321                       float4 value = 0.0f;
33322                       int x = loc.x + index;
33323                       int y = loc.y + index;
33324                       while (x > 0 || y > 0) {
33325                           if (x % 3 == 1 && y % 3 == 1) {
33326                               value = 1.0f;
33327                               break;
33328                           }
33329                           x /= 3;
33330                           y /= 3;
33331                       }
33332
33333                       write_imagef(dst, loc, value);
33334                   }
33335
33336   sierpinski
33337       Generate a Sierpinski carpet/triangle fractal, and randomly pan around.
33338
33339       This source accepts the following options:
33340
33341       size, s
33342           Set frame size. For the syntax of this option, check the "Video
33343           size" section in the ffmpeg-utils manual. Default value is
33344           "640x480".
33345
33346       rate, r
33347           Set frame rate, expressed as number of frames per second. Default
33348           value is "25".
33349
33350       seed
33351           Set seed which is used for random panning.
33352
33353       jump
33354           Set max jump for single pan destination. Allowed range is from 1 to
33355           10000.
33356
33357       type
33358           Set fractal type, can be default "carpet" or "triangle".
33359

VIDEO SINKS

33361       Below is a description of the currently available video sinks.
33362
33363   buffersink
33364       Buffer video frames, and make them available to the end of the filter
33365       graph.
33366
33367       This sink is mainly intended for programmatic use, in particular
33368       through the interface defined in libavfilter/buffersink.h or the
33369       options system.
33370
33371       It accepts a pointer to an AVBufferSinkContext structure, which defines
33372       the incoming buffers' formats, to be passed as the opaque parameter to
33373       "avfilter_init_filter" for initialization.
33374
33375   nullsink
33376       Null video sink: do absolutely nothing with the input video. It is
33377       mainly useful as a template and for use in analysis / debugging tools.
33378

MULTIMEDIA FILTERS

33380       Below is a description of the currently available multimedia filters.
33381
33382   abitscope
33383       Convert input audio to a video output, displaying the audio bit scope.
33384
33385       The filter accepts the following options:
33386
33387       rate, r
33388           Set frame rate, expressed as number of frames per second. Default
33389           value is "25".
33390
33391       size, s
33392           Specify the video size for the output. For the syntax of this
33393           option, check the "Video size" section in the ffmpeg-utils manual.
33394           Default value is "1024x256".
33395
33396       colors
33397           Specify list of colors separated by space or by '|' which will be
33398           used to draw channels. Unrecognized or missing colors will be
33399           replaced by white color.
33400
33401       mode, m
33402           Set output mode. Can be "bars" or "trace". Default is "bars".
33403
33404   adrawgraph
33405       Draw a graph using input audio metadata.
33406
33407       See drawgraph
33408
33409   agraphmonitor
33410       See graphmonitor.
33411
33412   ahistogram
33413       Convert input audio to a video output, displaying the volume histogram.
33414
33415       The filter accepts the following options:
33416
33417       dmode
33418           Specify how histogram is calculated.
33419
33420           It accepts the following values:
33421
33422           single
33423               Use single histogram for all channels.
33424
33425           separate
33426               Use separate histogram for each channel.
33427
33428           Default is "single".
33429
33430       rate, r
33431           Set frame rate, expressed as number of frames per second. Default
33432           value is "25".
33433
33434       size, s
33435           Specify the video size for the output. For the syntax of this
33436           option, check the "Video size" section in the ffmpeg-utils manual.
33437           Default value is "hd720".
33438
33439       scale
33440           Set display scale.
33441
33442           It accepts the following values:
33443
33444           log logarithmic
33445
33446           sqrt
33447               square root
33448
33449           cbrt
33450               cubic root
33451
33452           lin linear
33453
33454           rlog
33455               reverse logarithmic
33456
33457           Default is "log".
33458
33459       ascale
33460           Set amplitude scale.
33461
33462           It accepts the following values:
33463
33464           log logarithmic
33465
33466           lin linear
33467
33468           Default is "log".
33469
33470       acount
33471           Set how much frames to accumulate in histogram.  Default is 1.
33472           Setting this to -1 accumulates all frames.
33473
33474       rheight
33475           Set histogram ratio of window height.
33476
33477       slide
33478           Set sonogram sliding.
33479
33480           It accepts the following values:
33481
33482           replace
33483               replace old rows with new ones.
33484
33485           scroll
33486               scroll from top to bottom.
33487
33488           Default is "replace".
33489
33490       hmode
33491           Set histogram mode.
33492
33493           It accepts the following values:
33494
33495           abs Use absolute values of samples.
33496
33497           sign
33498               Use untouched values of samples.
33499
33500           Default is "abs".
33501
33502   aphasemeter
33503       Measures phase of input audio, which is exported as metadata
33504       "lavfi.aphasemeter.phase", representing mean phase of current audio
33505       frame. A video output can also be produced and is enabled by default.
33506       The audio is passed through as first output.
33507
33508       Audio will be rematrixed to stereo if it has a different channel
33509       layout. Phase value is in range "[-1, 1]" where "-1" means left and
33510       right channels are completely out of phase and 1 means channels are in
33511       phase.
33512
33513       The filter accepts the following options, all related to its video
33514       output:
33515
33516       rate, r
33517           Set the output frame rate. Default value is 25.
33518
33519       size, s
33520           Set the video size for the output. For the syntax of this option,
33521           check the "Video size" section in the ffmpeg-utils manual.  Default
33522           value is "800x400".
33523
33524       rc
33525       gc
33526       bc  Specify the red, green, blue contrast. Default values are 2, 7 and
33527           1.  Allowed range is "[0, 255]".
33528
33529       mpc Set color which will be used for drawing median phase. If color is
33530           "none" which is default, no median phase value will be drawn.
33531
33532       video
33533           Enable video output. Default is enabled.
33534
33535       phasing detection
33536
33537       The filter also detects out of phase and mono sequences in stereo
33538       streams.  It logs the sequence start, end and duration when it lasts
33539       longer or as long as the minimum set.
33540
33541       The filter accepts the following options for this detection:
33542
33543       phasing
33544           Enable mono and out of phase detection. Default is disabled.
33545
33546       tolerance, t
33547           Set phase tolerance for mono detection, in amplitude ratio. Default
33548           is 0.  Allowed range is "[0, 1]".
33549
33550       angle, a
33551           Set angle threshold for out of phase detection, in degree. Default
33552           is 170.  Allowed range is "[90, 180]".
33553
33554       duration, d
33555           Set mono or out of phase duration until notification, expressed in
33556           seconds. Default is 2.
33557
33558       Examples
33559
33560       •   Complete example with ffmpeg to detect 1 second of mono with 0.001
33561           phase tolerance:
33562
33563                   ffmpeg -i stereo.wav -af aphasemeter=video=0:phasing=1:duration=1:tolerance=0.001 -f null -
33564
33565   avectorscope
33566       Convert input audio to a video output, representing the audio vector
33567       scope.
33568
33569       The filter is used to measure the difference between channels of stereo
33570       audio stream. A monaural signal, consisting of identical left and right
33571       signal, results in straight vertical line. Any stereo separation is
33572       visible as a deviation from this line, creating a Lissajous figure.  If
33573       the straight (or deviation from it) but horizontal line appears this
33574       indicates that the left and right channels are out of phase.
33575
33576       The filter accepts the following options:
33577
33578       mode, m
33579           Set the vectorscope mode.
33580
33581           Available values are:
33582
33583           lissajous
33584               Lissajous rotated by 45 degrees.
33585
33586           lissajous_xy
33587               Same as above but not rotated.
33588
33589           polar
33590               Shape resembling half of circle.
33591
33592           Default value is lissajous.
33593
33594       size, s
33595           Set the video size for the output. For the syntax of this option,
33596           check the "Video size" section in the ffmpeg-utils manual.  Default
33597           value is "400x400".
33598
33599       rate, r
33600           Set the output frame rate. Default value is 25.
33601
33602       rc
33603       gc
33604       bc
33605       ac  Specify the red, green, blue and alpha contrast. Default values are
33606           40, 160, 80 and 255.  Allowed range is "[0, 255]".
33607
33608       rf
33609       gf
33610       bf
33611       af  Specify the red, green, blue and alpha fade. Default values are 15,
33612           10, 5 and 5.  Allowed range is "[0, 255]".
33613
33614       zoom
33615           Set the zoom factor. Default value is 1. Allowed range is "[0,
33616           10]".  Values lower than 1 will auto adjust zoom factor to maximal
33617           possible value.
33618
33619       draw
33620           Set the vectorscope drawing mode.
33621
33622           Available values are:
33623
33624           dot Draw dot for each sample.
33625
33626           line
33627               Draw line between previous and current sample.
33628
33629           Default value is dot.
33630
33631       scale
33632           Specify amplitude scale of audio samples.
33633
33634           Available values are:
33635
33636           lin Linear.
33637
33638           sqrt
33639               Square root.
33640
33641           cbrt
33642               Cubic root.
33643
33644           log Logarithmic.
33645
33646       swap
33647           Swap left channel axis with right channel axis.
33648
33649       mirror
33650           Mirror axis.
33651
33652           none
33653               No mirror.
33654
33655           x   Mirror only x axis.
33656
33657           y   Mirror only y axis.
33658
33659           xy  Mirror both axis.
33660
33661       Examples
33662
33663       •   Complete example using ffplay:
33664
33665                   ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
33666                                [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
33667
33668       Commands
33669
33670       This filter supports the all above options as commands except options
33671       "size" and "rate".
33672
33673   bench, abench
33674       Benchmark part of a filtergraph.
33675
33676       The filter accepts the following options:
33677
33678       action
33679           Start or stop a timer.
33680
33681           Available values are:
33682
33683           start
33684               Get the current time, set it as frame metadata (using the key
33685               "lavfi.bench.start_time"), and forward the frame to the next
33686               filter.
33687
33688           stop
33689               Get the current time and fetch the "lavfi.bench.start_time"
33690               metadata from the input frame metadata to get the time
33691               difference. Time difference, average, maximum and minimum time
33692               (respectively "t", "avg", "max" and "min") are then printed.
33693               The timestamps are expressed in seconds.
33694
33695       Examples
33696
33697       •   Benchmark selectivecolor filter:
33698
33699                   bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
33700
33701   concat
33702       Concatenate audio and video streams, joining them together one after
33703       the other.
33704
33705       The filter works on segments of synchronized video and audio streams.
33706       All segments must have the same number of streams of each type, and
33707       that will also be the number of streams at output.
33708
33709       The filter accepts the following options:
33710
33711       n   Set the number of segments. Default is 2.
33712
33713       v   Set the number of output video streams, that is also the number of
33714           video streams in each segment. Default is 1.
33715
33716       a   Set the number of output audio streams, that is also the number of
33717           audio streams in each segment. Default is 0.
33718
33719       unsafe
33720           Activate unsafe mode: do not fail if segments have a different
33721           format.
33722
33723       The filter has v+a outputs: first v video outputs, then a audio
33724       outputs.
33725
33726       There are nx(v+a) inputs: first the inputs for the first segment, in
33727       the same order as the outputs, then the inputs for the second segment,
33728       etc.
33729
33730       Related streams do not always have exactly the same duration, for
33731       various reasons including codec frame size or sloppy authoring. For
33732       that reason, related synchronized streams (e.g. a video and its audio
33733       track) should be concatenated at once. The concat filter will use the
33734       duration of the longest stream in each segment (except the last one),
33735       and if necessary pad shorter audio streams with silence.
33736
33737       For this filter to work correctly, all segments must start at timestamp
33738       0.
33739
33740       All corresponding streams must have the same parameters in all
33741       segments; the filtering system will automatically select a common pixel
33742       format for video streams, and a common sample format, sample rate and
33743       channel layout for audio streams, but other settings, such as
33744       resolution, must be converted explicitly by the user.
33745
33746       Different frame rates are acceptable but will result in variable frame
33747       rate at output; be sure to configure the output file to handle it.
33748
33749       Examples
33750
33751       •   Concatenate an opening, an episode and an ending, all in bilingual
33752           version (video in stream 0, audio in streams 1 and 2):
33753
33754                   ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \
33755                     '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]
33756                      concat=n=3:v=1:a=2 [v] [a1] [a2]' \
33757                     -map '[v]' -map '[a1]' -map '[a2]' output.mkv
33758
33759       •   Concatenate two parts, handling audio and video separately, using
33760           the (a)movie sources, and adjusting the resolution:
33761
33762                   movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
33763                   movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
33764                   [v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
33765
33766           Note that a desync will happen at the stitch if the audio and video
33767           streams do not have exactly the same duration in the first file.
33768
33769       Commands
33770
33771       This filter supports the following commands:
33772
33773       next
33774           Close the current segment and step to the next one
33775
33776   ebur128
33777       EBU R128 scanner filter. This filter takes an audio stream and analyzes
33778       its loudness level. By default, it logs a message at a frequency of
33779       10Hz with the Momentary loudness (identified by "M"), Short-term
33780       loudness ("S"), Integrated loudness ("I") and Loudness Range ("LRA").
33781
33782       The filter can only analyze streams which have sample format is double-
33783       precision floating point. The input stream will be converted to this
33784       specification, if needed. Users may need to insert aformat and/or
33785       aresample filters after this filter to obtain the original parameters.
33786
33787       The filter also has a video output (see the video option) with a real
33788       time graph to observe the loudness evolution. The graphic contains the
33789       logged message mentioned above, so it is not printed anymore when this
33790       option is set, unless the verbose logging is set. The main graphing
33791       area contains the short-term loudness (3 seconds of analysis), and the
33792       gauge on the right is for the momentary loudness (400 milliseconds),
33793       but can optionally be configured to instead display short-term loudness
33794       (see gauge).
33795
33796       The green area marks a  +/- 1LU target range around the target loudness
33797       (-23LUFS by default, unless modified through target).
33798
33799       More information about the Loudness Recommendation EBU R128 on
33800       <http://tech.ebu.ch/loudness>.
33801
33802       The filter accepts the following options:
33803
33804       video
33805           Activate the video output. The audio stream is passed unchanged
33806           whether this option is set or no. The video stream will be the
33807           first output stream if activated. Default is 0.
33808
33809       size
33810           Set the video size. This option is for video only. For the syntax
33811           of this option, check the "Video size" section in the ffmpeg-utils
33812           manual.  Default and minimum resolution is "640x480".
33813
33814       meter
33815           Set the EBU scale meter. Default is 9. Common values are 9 and 18,
33816           respectively for EBU scale meter +9 and EBU scale meter +18. Any
33817           other integer value between this range is allowed.
33818
33819       metadata
33820           Set metadata injection. If set to 1, the audio input will be
33821           segmented into 100ms output frames, each of them containing various
33822           loudness information in metadata.  All the metadata keys are
33823           prefixed with "lavfi.r128.".
33824
33825           Default is 0.
33826
33827       framelog
33828           Force the frame logging level.
33829
33830           Available values are:
33831
33832           info
33833               information logging level
33834
33835           verbose
33836               verbose logging level
33837
33838           By default, the logging level is set to info. If the video or the
33839           metadata options are set, it switches to verbose.
33840
33841       peak
33842           Set peak mode(s).
33843
33844           Available modes can be cumulated (the option is a "flag" type).
33845           Possible values are:
33846
33847           none
33848               Disable any peak mode (default).
33849
33850           sample
33851               Enable sample-peak mode.
33852
33853               Simple peak mode looking for the higher sample value. It logs a
33854               message for sample-peak (identified by "SPK").
33855
33856           true
33857               Enable true-peak mode.
33858
33859               If enabled, the peak lookup is done on an over-sampled version
33860               of the input stream for better peak accuracy. It logs a message
33861               for true-peak.  (identified by "TPK") and true-peak per frame
33862               (identified by "FTPK").  This mode requires a build with
33863               "libswresample".
33864
33865       dualmono
33866           Treat mono input files as "dual mono". If a mono file is intended
33867           for playback on a stereo system, its EBU R128 measurement will be
33868           perceptually incorrect.  If set to "true", this option will
33869           compensate for this effect.  Multi-channel input files are not
33870           affected by this option.
33871
33872       panlaw
33873           Set a specific pan law to be used for the measurement of dual mono
33874           files.  This parameter is optional, and has a default value of
33875           -3.01dB.
33876
33877       target
33878           Set a specific target level (in LUFS) used as relative zero in the
33879           visualization.  This parameter is optional and has a default value
33880           of -23LUFS as specified by EBU R128. However, material published
33881           online may prefer a level of -16LUFS (e.g. for use with podcasts or
33882           video platforms).
33883
33884       gauge
33885           Set the value displayed by the gauge. Valid values are "momentary"
33886           and s "shortterm". By default the momentary value will be used, but
33887           in certain scenarios it may be more useful to observe the short
33888           term value instead (e.g.  live mixing).
33889
33890       scale
33891           Sets the display scale for the loudness. Valid parameters are
33892           "absolute" (in LUFS) or "relative" (LU) relative to the target.
33893           This only affects the video output, not the summary or continuous
33894           log output.
33895
33896       Examples
33897
33898       •   Real-time graph using ffplay, with a EBU scale meter +18:
33899
33900                   ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
33901
33902       •   Run an analysis with ffmpeg:
33903
33904                   ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
33905
33906   interleave, ainterleave
33907       Temporally interleave frames from several inputs.
33908
33909       "interleave" works with video inputs, "ainterleave" with audio.
33910
33911       These filters read frames from several inputs and send the oldest
33912       queued frame to the output.
33913
33914       Input streams must have well defined, monotonically increasing frame
33915       timestamp values.
33916
33917       In order to submit one frame to output, these filters need to enqueue
33918       at least one frame for each input, so they cannot work in case one
33919       input is not yet terminated and will not receive incoming frames.
33920
33921       For example consider the case when one input is a "select" filter which
33922       always drops input frames. The "interleave" filter will keep reading
33923       from that input, but it will never be able to send new frames to output
33924       until the input sends an end-of-stream signal.
33925
33926       Also, depending on inputs synchronization, the filters will drop frames
33927       in case one input receives more frames than the other ones, and the
33928       queue is already filled.
33929
33930       These filters accept the following options:
33931
33932       nb_inputs, n
33933           Set the number of different inputs, it is 2 by default.
33934
33935       duration
33936           How to determine the end-of-stream.
33937
33938           longest
33939               The duration of the longest input. (default)
33940
33941           shortest
33942               The duration of the shortest input.
33943
33944           first
33945               The duration of the first input.
33946
33947       Examples
33948
33949       •   Interleave frames belonging to different streams using ffmpeg:
33950
33951                   ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
33952
33953       •   Add flickering blur effect:
33954
33955                   select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
33956
33957   latency, alatency
33958       Measure filtering latency.
33959
33960       Report previous filter filtering latency, delay in number of audio
33961       samples for audio filters or number of video frames for video filters.
33962
33963       On end of input stream, filter will report min and max measured latency
33964       for previous running filter in filtergraph.
33965
33966   metadata, ametadata
33967       Manipulate frame metadata.
33968
33969       This filter accepts the following options:
33970
33971       mode
33972           Set mode of operation of the filter.
33973
33974           Can be one of the following:
33975
33976           select
33977               If both "value" and "key" is set, select frames which have such
33978               metadata. If only "key" is set, select every frame that has
33979               such key in metadata.
33980
33981           add Add new metadata "key" and "value". If key is already available
33982               do nothing.
33983
33984           modify
33985               Modify value of already present key.
33986
33987           delete
33988               If "value" is set, delete only keys that have such value.
33989               Otherwise, delete key. If "key" is not set, delete all metadata
33990               values in the frame.
33991
33992           print
33993               Print key and its value if metadata was found. If "key" is not
33994               set print all metadata values available in frame.
33995
33996       key Set key used with all modes. Must be set for all modes except
33997           "print" and "delete".
33998
33999       value
34000           Set metadata value which will be used. This option is mandatory for
34001           "modify" and "add" mode.
34002
34003       function
34004           Which function to use when comparing metadata value and "value".
34005
34006           Can be one of following:
34007
34008           same_str
34009               Values are interpreted as strings, returns true if metadata
34010               value is same as "value".
34011
34012           starts_with
34013               Values are interpreted as strings, returns true if metadata
34014               value starts with the "value" option string.
34015
34016           less
34017               Values are interpreted as floats, returns true if metadata
34018               value is less than "value".
34019
34020           equal
34021               Values are interpreted as floats, returns true if "value" is
34022               equal with metadata value.
34023
34024           greater
34025               Values are interpreted as floats, returns true if metadata
34026               value is greater than "value".
34027
34028           expr
34029               Values are interpreted as floats, returns true if expression
34030               from option "expr" evaluates to true.
34031
34032           ends_with
34033               Values are interpreted as strings, returns true if metadata
34034               value ends with the "value" option string.
34035
34036       expr
34037           Set expression which is used when "function" is set to "expr".  The
34038           expression is evaluated through the eval API and can contain the
34039           following constants:
34040
34041           VALUE1, FRAMEVAL
34042               Float representation of "value" from metadata key.
34043
34044           VALUE2, USERVAL
34045               Float representation of "value" as supplied by user in "value"
34046               option.
34047
34048       file
34049           If specified in "print" mode, output is written to the named file.
34050           Instead of plain filename any writable url can be specified.
34051           Filename ``-'' is a shorthand for standard output. If "file" option
34052           is not set, output is written to the log with AV_LOG_INFO loglevel.
34053
34054       direct
34055           Reduces buffering in print mode when output is written to a URL set
34056           using file.
34057
34058       Examples
34059
34060       •   Print all metadata values for frames with key
34061           "lavfi.signalstats.YDIF" with values between 0 and 1.
34062
34063                   signalstats,metadata=print:key=lavfi.signalstats.YDIF:value=0:function=expr:expr='between(VALUE1,0,1)'
34064
34065       •   Print silencedetect output to file metadata.txt.
34066
34067                   silencedetect,ametadata=mode=print:file=metadata.txt
34068
34069       •   Direct all metadata to a pipe with file descriptor 4.
34070
34071                   metadata=mode=print:file='pipe\:4'
34072
34073   perms, aperms
34074       Set read/write permissions for the output frames.
34075
34076       These filters are mainly aimed at developers to test direct path in the
34077       following filter in the filtergraph.
34078
34079       The filters accept the following options:
34080
34081       mode
34082           Select the permissions mode.
34083
34084           It accepts the following values:
34085
34086           none
34087               Do nothing. This is the default.
34088
34089           ro  Set all the output frames read-only.
34090
34091           rw  Set all the output frames directly writable.
34092
34093           toggle
34094               Make the frame read-only if writable, and writable if read-
34095               only.
34096
34097           random
34098               Set each output frame read-only or writable randomly.
34099
34100       seed
34101           Set the seed for the random mode, must be an integer included
34102           between 0 and "UINT32_MAX". If not specified, or if explicitly set
34103           to "-1", the filter will try to use a good random seed on a best
34104           effort basis.
34105
34106       Note: in case of auto-inserted filter between the permission filter and
34107       the following one, the permission might not be received as expected in
34108       that following filter. Inserting a format or aformat filter before the
34109       perms/aperms filter can avoid this problem.
34110
34111   realtime, arealtime
34112       Slow down filtering to match real time approximately.
34113
34114       These filters will pause the filtering for a variable amount of time to
34115       match the output rate with the input timestamps.  They are similar to
34116       the re option to "ffmpeg".
34117
34118       They accept the following options:
34119
34120       limit
34121           Time limit for the pauses. Any pause longer than that will be
34122           considered a timestamp discontinuity and reset the timer. Default
34123           is 2 seconds.
34124
34125       speed
34126           Speed factor for processing. The value must be a float larger than
34127           zero.  Values larger than 1.0 will result in faster than realtime
34128           processing, smaller will slow processing down. The limit is
34129           automatically adapted accordingly. Default is 1.0.
34130
34131           A processing speed faster than what is possible without these
34132           filters cannot be achieved.
34133
34134       Commands
34135
34136       Both filters supports the all above options as commands.
34137
34138   segment, asegment
34139       Split single input stream into multiple streams.
34140
34141       This filter does opposite of concat filters.
34142
34143       "segment" works on video frames, "asegment" on audio samples.
34144
34145       This filter accepts the following options:
34146
34147       timestamps
34148           Timestamps of output segments separated by '|'. The first segment
34149           will run from the beginning of the input stream. The last segment
34150           will run until the end of the input stream
34151
34152       frames, samples
34153           Exact frame/sample count to split the segments.
34154
34155       In all cases, prefixing an each segment with '+' will make it relative
34156       to the previous segment.
34157
34158       Examples
34159
34160       •   Split input audio stream into three output audio streams, starting
34161           at start of input audio stream and storing that in 1st output audio
34162           stream, then following at 60th second and storing than in 2nd
34163           output audio stream, and last after 150th second of input audio
34164           stream store in 3rd output audio stream:
34165
34166                   asegment=timestamps="60|150"
34167
34168   select, aselect
34169       Select frames to pass in output.
34170
34171       This filter accepts the following options:
34172
34173       expr, e
34174           Set expression, which is evaluated for each input frame.
34175
34176           If the expression is evaluated to zero, the frame is discarded.
34177
34178           If the evaluation result is negative or NaN, the frame is sent to
34179           the first output; otherwise it is sent to the output with index
34180           "ceil(val)-1", assuming that the input index starts from 0.
34181
34182           For example a value of 1.2 corresponds to the output with index
34183           "ceil(1.2)-1 = 2-1 = 1", that is the second output.
34184
34185       outputs, n
34186           Set the number of outputs. The output to which to send the selected
34187           frame is based on the result of the evaluation. Default value is 1.
34188
34189       The expression can contain the following constants:
34190
34191       n   The (sequential) number of the filtered frame, starting from 0.
34192
34193       selected_n
34194           The (sequential) number of the selected frame, starting from 0.
34195
34196       prev_selected_n
34197           The sequential number of the last selected frame. It's NAN if
34198           undefined.
34199
34200       TB  The timebase of the input timestamps.
34201
34202       pts The PTS (Presentation TimeStamp) of the filtered frame, expressed
34203           in TB units. It's NAN if undefined.
34204
34205       t   The PTS of the filtered frame, expressed in seconds. It's NAN if
34206           undefined.
34207
34208       prev_pts
34209           The PTS of the previously filtered frame. It's NAN if undefined.
34210
34211       prev_selected_pts
34212           The PTS of the last previously filtered frame. It's NAN if
34213           undefined.
34214
34215       prev_selected_t
34216           The PTS of the last previously selected frame, expressed in
34217           seconds. It's NAN if undefined.
34218
34219       start_pts
34220           The first PTS in the stream which is not NAN. It remains NAN if not
34221           found.
34222
34223       start_t
34224           The first PTS, in seconds, in the stream which is not NAN. It
34225           remains NAN if not found.
34226
34227       pict_type (video only)
34228           The type of the filtered frame. It can assume one of the following
34229           values:
34230
34231           I
34232           P
34233           B
34234           S
34235           SI
34236           SP
34237           BI
34238       interlace_type (video only)
34239           The frame interlace type. It can assume one of the following
34240           values:
34241
34242           PROGRESSIVE
34243               The frame is progressive (not interlaced).
34244
34245           TOPFIRST
34246               The frame is top-field-first.
34247
34248           BOTTOMFIRST
34249               The frame is bottom-field-first.
34250
34251       consumed_sample_n (audio only)
34252           the number of selected samples before the current frame
34253
34254       samples_n (audio only)
34255           the number of samples in the current frame
34256
34257       sample_rate (audio only)
34258           the input sample rate
34259
34260       key This is 1 if the filtered frame is a key-frame, 0 otherwise.
34261
34262       pos the position in the file of the filtered frame, -1 if the
34263           information is not available (e.g. for synthetic video)
34264
34265       scene (video only)
34266           value between 0 and 1 to indicate a new scene; a low value reflects
34267           a low probability for the current frame to introduce a new scene,
34268           while a higher value means the current frame is more likely to be
34269           one (see the example below)
34270
34271       concatdec_select
34272           The concat demuxer can select only part of a concat input file by
34273           setting an inpoint and an outpoint, but the output packets may not
34274           be entirely contained in the selected interval. By using this
34275           variable, it is possible to skip frames generated by the concat
34276           demuxer which are not exactly contained in the selected interval.
34277
34278           This works by comparing the frame pts against the
34279           lavf.concat.start_time and the lavf.concat.duration packet metadata
34280           values which are also present in the decoded frames.
34281
34282           The concatdec_select variable is -1 if the frame pts is at least
34283           start_time and either the duration metadata is missing or the frame
34284           pts is less than start_time + duration, 0 otherwise, and NaN if the
34285           start_time metadata is missing.
34286
34287           That basically means that an input frame is selected if its pts is
34288           within the interval set by the concat demuxer.
34289
34290       The default value of the select expression is "1".
34291
34292       Examples
34293
34294       •   Select all frames in input:
34295
34296                   select
34297
34298           The example above is the same as:
34299
34300                   select=1
34301
34302       •   Skip all frames:
34303
34304                   select=0
34305
34306       •   Select only I-frames:
34307
34308                   select='eq(pict_type\,I)'
34309
34310       •   Select one frame every 100:
34311
34312                   select='not(mod(n\,100))'
34313
34314       •   Select only frames contained in the 10-20 time interval:
34315
34316                   select=between(t\,10\,20)
34317
34318       •   Select only I-frames contained in the 10-20 time interval:
34319
34320                   select=between(t\,10\,20)*eq(pict_type\,I)
34321
34322       •   Select frames with a minimum distance of 10 seconds:
34323
34324                   select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
34325
34326       •   Use aselect to select only audio frames with samples number > 100:
34327
34328                   aselect='gt(samples_n\,100)'
34329
34330       •   Create a mosaic of the first scenes:
34331
34332                   ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
34333
34334           Comparing scene against a value between 0.3 and 0.5 is generally a
34335           sane choice.
34336
34337       •   Send even and odd frames to separate outputs, and compose them:
34338
34339                   select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
34340
34341       •   Select useful frames from an ffconcat file which is using inpoints
34342           and outpoints but where the source files are not intra frame only.
34343
34344                   ffmpeg -copyts -vsync 0 -segment_time_metadata 1 -i input.ffconcat -vf select=concatdec_select -af aselect=concatdec_select output.avi
34345
34346   sendcmd, asendcmd
34347       Send commands to filters in the filtergraph.
34348
34349       These filters read commands to be sent to other filters in the
34350       filtergraph.
34351
34352       "sendcmd" must be inserted between two video filters, "asendcmd" must
34353       be inserted between two audio filters, but apart from that they act the
34354       same way.
34355
34356       The specification of commands can be provided in the filter arguments
34357       with the commands option, or in a file specified by the filename
34358       option.
34359
34360       These filters accept the following options:
34361
34362       commands, c
34363           Set the commands to be read and sent to the other filters.
34364
34365       filename, f
34366           Set the filename of the commands to be read and sent to the other
34367           filters.
34368
34369       Commands syntax
34370
34371       A commands description consists of a sequence of interval
34372       specifications, comprising a list of commands to be executed when a
34373       particular event related to that interval occurs. The occurring event
34374       is typically the current frame time entering or leaving a given time
34375       interval.
34376
34377       An interval is specified by the following syntax:
34378
34379               <START>[-<END>] <COMMANDS>;
34380
34381       The time interval is specified by the START and END times.  END is
34382       optional and defaults to the maximum time.
34383
34384       The current frame time is considered within the specified interval if
34385       it is included in the interval [START, END), that is when the time is
34386       greater or equal to START and is lesser than END.
34387
34388       COMMANDS consists of a sequence of one or more command specifications,
34389       separated by ",", relating to that interval.  The syntax of a command
34390       specification is given by:
34391
34392               [<FLAGS>] <TARGET> <COMMAND> <ARG>
34393
34394       FLAGS is optional and specifies the type of events relating to the time
34395       interval which enable sending the specified command, and must be a non-
34396       null sequence of identifier flags separated by "+" or "|" and enclosed
34397       between "[" and "]".
34398
34399       The following flags are recognized:
34400
34401       enter
34402           The command is sent when the current frame timestamp enters the
34403           specified interval. In other words, the command is sent when the
34404           previous frame timestamp was not in the given interval, and the
34405           current is.
34406
34407       leave
34408           The command is sent when the current frame timestamp leaves the
34409           specified interval. In other words, the command is sent when the
34410           previous frame timestamp was in the given interval, and the current
34411           is not.
34412
34413       expr
34414           The command ARG is interpreted as expression and result of
34415           expression is passed as ARG.
34416
34417           The expression is evaluated through the eval API and can contain
34418           the following constants:
34419
34420           POS Original position in the file of the frame, or undefined if
34421               undefined for the current frame.
34422
34423           PTS The presentation timestamp in input.
34424
34425           N   The count of the input frame for video or audio, starting from
34426               0.
34427
34428           T   The time in seconds of the current frame.
34429
34430           TS  The start time in seconds of the current command interval.
34431
34432           TE  The end time in seconds of the current command interval.
34433
34434           TI  The interpolated time of the current command interval, TI = (T
34435               - TS) / (TE - TS).
34436
34437           W   The video frame width.
34438
34439           H   The video frame height.
34440
34441       If FLAGS is not specified, a default value of "[enter]" is assumed.
34442
34443       TARGET specifies the target of the command, usually the name of the
34444       filter class or a specific filter instance name.
34445
34446       COMMAND specifies the name of the command for the target filter.
34447
34448       ARG is optional and specifies the optional list of argument for the
34449       given COMMAND.
34450
34451       Between one interval specification and another, whitespaces, or
34452       sequences of characters starting with "#" until the end of line, are
34453       ignored and can be used to annotate comments.
34454
34455       A simplified BNF description of the commands specification syntax
34456       follows:
34457
34458               <COMMAND_FLAG>  ::= "enter" | "leave"
34459               <COMMAND_FLAGS> ::= <COMMAND_FLAG> [(+|"|")<COMMAND_FLAG>]
34460               <COMMAND>       ::= ["[" <COMMAND_FLAGS> "]"] <TARGET> <COMMAND> [<ARG>]
34461               <COMMANDS>      ::= <COMMAND> [,<COMMANDS>]
34462               <INTERVAL>      ::= <START>[-<END>] <COMMANDS>
34463               <INTERVALS>     ::= <INTERVAL>[;<INTERVALS>]
34464
34465       Examples
34466
34467       •   Specify audio tempo change at second 4:
34468
34469                   asendcmd=c='4.0 atempo tempo 1.5',atempo
34470
34471       •   Target a specific filter instance:
34472
34473                   asendcmd=c='4.0 atempo@my tempo 1.5',atempo@my
34474
34475       •   Specify a list of drawtext and hue commands in a file.
34476
34477                   # show text in the interval 5-10
34478                   5.0-10.0 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=hello world',
34479                            [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=';
34480
34481                   # desaturate the image in the interval 15-20
34482                   15.0-20.0 [enter] hue s 0,
34483                             [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor',
34484                             [leave] hue s 1,
34485                             [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color';
34486
34487                   # apply an exponential saturation fade-out effect, starting from time 25
34488                   25 [enter] hue s exp(25-t)
34489
34490           A filtergraph allowing to read and process the above command list
34491           stored in a file test.cmd, can be specified with:
34492
34493                   sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
34494
34495   setpts, asetpts
34496       Change the PTS (presentation timestamp) of the input frames.
34497
34498       "setpts" works on video frames, "asetpts" on audio frames.
34499
34500       This filter accepts the following options:
34501
34502       expr
34503           The expression which is evaluated for each frame to construct its
34504           timestamp.
34505
34506       The expression is evaluated through the eval API and can contain the
34507       following constants:
34508
34509       FRAME_RATE, FR
34510           frame rate, only defined for constant frame-rate video
34511
34512       PTS The presentation timestamp in input
34513
34514       N   The count of the input frame for video or the number of consumed
34515           samples, not including the current frame for audio, starting from
34516           0.
34517
34518       NB_CONSUMED_SAMPLES
34519           The number of consumed samples, not including the current frame
34520           (only audio)
34521
34522       NB_SAMPLES, S
34523           The number of samples in the current frame (only audio)
34524
34525       SAMPLE_RATE, SR
34526           The audio sample rate.
34527
34528       STARTPTS
34529           The PTS of the first frame.
34530
34531       STARTT
34532           the time in seconds of the first frame
34533
34534       INTERLACED
34535           State whether the current frame is interlaced.
34536
34537       T   the time in seconds of the current frame
34538
34539       POS original position in the file of the frame, or undefined if
34540           undefined for the current frame
34541
34542       PREV_INPTS
34543           The previous input PTS.
34544
34545       PREV_INT
34546           previous input time in seconds
34547
34548       PREV_OUTPTS
34549           The previous output PTS.
34550
34551       PREV_OUTT
34552           previous output time in seconds
34553
34554       RTCTIME
34555           The wallclock (RTC) time in microseconds. This is deprecated, use
34556           time(0) instead.
34557
34558       RTCSTART
34559           The wallclock (RTC) time at the start of the movie in microseconds.
34560
34561       TB  The timebase of the input timestamps.
34562
34563       Examples
34564
34565       •   Start counting PTS from zero
34566
34567                   setpts=PTS-STARTPTS
34568
34569       •   Apply fast motion effect:
34570
34571                   setpts=0.5*PTS
34572
34573       •   Apply slow motion effect:
34574
34575                   setpts=2.0*PTS
34576
34577       •   Set fixed rate of 25 frames per second:
34578
34579                   setpts=N/(25*TB)
34580
34581       •   Set fixed rate 25 fps with some jitter:
34582
34583                   setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
34584
34585       •   Apply an offset of 10 seconds to the input PTS:
34586
34587                   setpts=PTS+10/TB
34588
34589       •   Generate timestamps from a "live source" and rebase onto the
34590           current timebase:
34591
34592                   setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
34593
34594       •   Generate timestamps by counting samples:
34595
34596                   asetpts=N/SR/TB
34597
34598   setrange
34599       Force color range for the output video frame.
34600
34601       The "setrange" filter marks the color range property for the output
34602       frames. It does not change the input frame, but only sets the
34603       corresponding property, which affects how the frame is treated by
34604       following filters.
34605
34606       The filter accepts the following options:
34607
34608       range
34609           Available values are:
34610
34611           auto
34612               Keep the same color range property.
34613
34614           unspecified, unknown
34615               Set the color range as unspecified.
34616
34617           limited, tv, mpeg
34618               Set the color range as limited.
34619
34620           full, pc, jpeg
34621               Set the color range as full.
34622
34623   settb, asettb
34624       Set the timebase to use for the output frames timestamps.  It is mainly
34625       useful for testing timebase configuration.
34626
34627       It accepts the following parameters:
34628
34629       expr, tb
34630           The expression which is evaluated into the output timebase.
34631
34632       The value for tb is an arithmetic expression representing a rational.
34633       The expression can contain the constants "AVTB" (the default timebase),
34634       "intb" (the input timebase) and "sr" (the sample rate, audio only).
34635       Default value is "intb".
34636
34637       Examples
34638
34639       •   Set the timebase to 1/25:
34640
34641                   settb=expr=1/25
34642
34643       •   Set the timebase to 1/10:
34644
34645                   settb=expr=0.1
34646
34647       •   Set the timebase to 1001/1000:
34648
34649                   settb=1+0.001
34650
34651       •   Set the timebase to 2*intb:
34652
34653                   settb=2*intb
34654
34655       •   Set the default timebase value:
34656
34657                   settb=AVTB
34658
34659   showcqt
34660       Convert input audio to a video output representing frequency spectrum
34661       logarithmically using Brown-Puckette constant Q transform algorithm
34662       with direct frequency domain coefficient calculation (but the transform
34663       itself is not really constant Q, instead the Q factor is actually
34664       variable/clamped), with musical tone scale, from E0 to D#10.
34665
34666       The filter accepts the following options:
34667
34668       size, s
34669           Specify the video size for the output. It must be even. For the
34670           syntax of this option, check the "Video size" section in the
34671           ffmpeg-utils manual.  Default value is "1920x1080".
34672
34673       fps, rate, r
34674           Set the output frame rate. Default value is 25.
34675
34676       bar_h
34677           Set the bargraph height. It must be even. Default value is "-1"
34678           which computes the bargraph height automatically.
34679
34680       axis_h
34681           Set the axis height. It must be even. Default value is "-1" which
34682           computes the axis height automatically.
34683
34684       sono_h
34685           Set the sonogram height. It must be even. Default value is "-1"
34686           which computes the sonogram height automatically.
34687
34688       fullhd
34689           Set the fullhd resolution. This option is deprecated, use size, s
34690           instead. Default value is 1.
34691
34692       sono_v, volume
34693           Specify the sonogram volume expression. It can contain variables:
34694
34695           bar_v
34696               the bar_v evaluated expression
34697
34698           frequency, freq, f
34699               the frequency where it is evaluated
34700
34701           timeclamp, tc
34702               the value of timeclamp option
34703
34704           and functions:
34705
34706           a_weighting(f)
34707               A-weighting of equal loudness
34708
34709           b_weighting(f)
34710               B-weighting of equal loudness
34711
34712           c_weighting(f)
34713               C-weighting of equal loudness.
34714
34715           Default value is 16.
34716
34717       bar_v, volume2
34718           Specify the bargraph volume expression. It can contain variables:
34719
34720           sono_v
34721               the sono_v evaluated expression
34722
34723           frequency, freq, f
34724               the frequency where it is evaluated
34725
34726           timeclamp, tc
34727               the value of timeclamp option
34728
34729           and functions:
34730
34731           a_weighting(f)
34732               A-weighting of equal loudness
34733
34734           b_weighting(f)
34735               B-weighting of equal loudness
34736
34737           c_weighting(f)
34738               C-weighting of equal loudness.
34739
34740           Default value is "sono_v".
34741
34742       sono_g, gamma
34743           Specify the sonogram gamma. Lower gamma makes the spectrum more
34744           contrast, higher gamma makes the spectrum having more range.
34745           Default value is 3.  Acceptable range is "[1, 7]".
34746
34747       bar_g, gamma2
34748           Specify the bargraph gamma. Default value is 1. Acceptable range is
34749           "[1, 7]".
34750
34751       bar_t
34752           Specify the bargraph transparency level. Lower value makes the
34753           bargraph sharper.  Default value is 1. Acceptable range is "[0,
34754           1]".
34755
34756       timeclamp, tc
34757           Specify the transform timeclamp. At low frequency, there is trade-
34758           off between accuracy in time domain and frequency domain. If
34759           timeclamp is lower, event in time domain is represented more
34760           accurately (such as fast bass drum), otherwise event in frequency
34761           domain is represented more accurately (such as bass guitar).
34762           Acceptable range is "[0.002, 1]". Default value is 0.17.
34763
34764       attack
34765           Set attack time in seconds. The default is 0 (disabled). Otherwise,
34766           it limits future samples by applying asymmetric windowing in time
34767           domain, useful when low latency is required. Accepted range is "[0,
34768           1]".
34769
34770       basefreq
34771           Specify the transform base frequency. Default value is
34772           20.01523126408007475, which is frequency 50 cents below E0.
34773           Acceptable range is "[10, 100000]".
34774
34775       endfreq
34776           Specify the transform end frequency. Default value is
34777           20495.59681441799654, which is frequency 50 cents above D#10.
34778           Acceptable range is "[10, 100000]".
34779
34780       coeffclamp
34781           This option is deprecated and ignored.
34782
34783       tlength
34784           Specify the transform length in time domain. Use this option to
34785           control accuracy trade-off between time domain and frequency domain
34786           at every frequency sample.  It can contain variables:
34787
34788           frequency, freq, f
34789               the frequency where it is evaluated
34790
34791           timeclamp, tc
34792               the value of timeclamp option.
34793
34794           Default value is "384*tc/(384+tc*f)".
34795
34796       count
34797           Specify the transform count for every video frame. Default value is
34798           6.  Acceptable range is "[1, 30]".
34799
34800       fcount
34801           Specify the transform count for every single pixel. Default value
34802           is 0, which makes it computed automatically. Acceptable range is
34803           "[0, 10]".
34804
34805       fontfile
34806           Specify font file for use with freetype to draw the axis. If not
34807           specified, use embedded font. Note that drawing with font file or
34808           embedded font is not implemented with custom basefreq and endfreq,
34809           use axisfile option instead.
34810
34811       font
34812           Specify fontconfig pattern. This has lower priority than fontfile.
34813           The ":" in the pattern may be replaced by "|" to avoid unnecessary
34814           escaping.
34815
34816       fontcolor
34817           Specify font color expression. This is arithmetic expression that
34818           should return integer value 0xRRGGBB. It can contain variables:
34819
34820           frequency, freq, f
34821               the frequency where it is evaluated
34822
34823           timeclamp, tc
34824               the value of timeclamp option
34825
34826           and functions:
34827
34828           midi(f)
34829               midi number of frequency f, some midi numbers: E0(16), C1(24),
34830               C2(36), A4(69)
34831
34832           r(x), g(x), b(x)
34833               red, green, and blue value of intensity x.
34834
34835           Default value is "st(0, (midi(f)-59.5)/12); st(1,
34836           if(between(ld(0),0,1), 0.5-0.5*cos(2*PI*ld(0)), 0)); r(1-ld(1)) +
34837           b(ld(1))".
34838
34839       axisfile
34840           Specify image file to draw the axis. This option override fontfile
34841           and fontcolor option.
34842
34843       axis, text
34844           Enable/disable drawing text to the axis. If it is set to 0, drawing
34845           to the axis is disabled, ignoring fontfile and axisfile option.
34846           Default value is 1.
34847
34848       csp Set colorspace. The accepted values are:
34849
34850           unspecified
34851               Unspecified (default)
34852
34853           bt709
34854               BT.709
34855
34856           fcc FCC
34857
34858           bt470bg
34859               BT.470BG or BT.601-6 625
34860
34861           smpte170m
34862               SMPTE-170M or BT.601-6 525
34863
34864           smpte240m
34865               SMPTE-240M
34866
34867           bt2020ncl
34868               BT.2020 with non-constant luminance
34869
34870       cscheme
34871           Set spectrogram color scheme. This is list of floating point values
34872           with format "left_r|left_g|left_b|right_r|right_g|right_b".  The
34873           default is "1|0.5|0|0|0.5|1".
34874
34875       Examples
34876
34877       •   Playing audio while showing the spectrum:
34878
34879                   ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt [out0]'
34880
34881       •   Same as above, but with frame rate 30 fps:
34882
34883                   ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=fps=30:count=5 [out0]'
34884
34885       •   Playing at 1280x720:
34886
34887                   ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=s=1280x720:count=4 [out0]'
34888
34889       •   Disable sonogram display:
34890
34891                   sono_h=0
34892
34893       •   A1 and its harmonics: A1, A2, (near)E3, A3:
34894
34895                   ffplay -f lavfi 'aevalsrc=0.1*sin(2*PI*55*t)+0.1*sin(4*PI*55*t)+0.1*sin(6*PI*55*t)+0.1*sin(8*PI*55*t),
34896                                    asplit[a][out1]; [a] showcqt [out0]'
34897
34898       •   Same as above, but with more accuracy in frequency domain:
34899
34900                   ffplay -f lavfi 'aevalsrc=0.1*sin(2*PI*55*t)+0.1*sin(4*PI*55*t)+0.1*sin(6*PI*55*t)+0.1*sin(8*PI*55*t),
34901                                    asplit[a][out1]; [a] showcqt=timeclamp=0.5 [out0]'
34902
34903       •   Custom volume:
34904
34905                   bar_v=10:sono_v=bar_v*a_weighting(f)
34906
34907       •   Custom gamma, now spectrum is linear to the amplitude.
34908
34909                   bar_g=2:sono_g=2
34910
34911       •   Custom tlength equation:
34912
34913                   tc=0.33:tlength='st(0,0.17); 384*tc / (384 / ld(0) + tc*f /(1-ld(0))) + 384*tc / (tc*f / ld(0) + 384 /(1-ld(0)))'
34914
34915       •   Custom fontcolor and fontfile, C-note is colored green, others are
34916           colored blue:
34917
34918                   fontcolor='if(mod(floor(midi(f)+0.5),12), 0x0000FF, g(1))':fontfile=myfont.ttf
34919
34920       •   Custom font using fontconfig:
34921
34922                   font='Courier New,Monospace,mono|bold'
34923
34924       •   Custom frequency range with custom axis using image file:
34925
34926                   axisfile=myaxis.png:basefreq=40:endfreq=10000
34927
34928   showfreqs
34929       Convert input audio to video output representing the audio power
34930       spectrum.  Audio amplitude is on Y-axis while frequency is on X-axis.
34931
34932       The filter accepts the following options:
34933
34934       size, s
34935           Specify size of video. For the syntax of this option, check the
34936           "Video size" section in the ffmpeg-utils manual.  Default is
34937           "1024x512".
34938
34939       rate, r
34940           Set video rate. Default is 25.
34941
34942       mode
34943           Set display mode.  This set how each frequency bin will be
34944           represented.
34945
34946           It accepts the following values:
34947
34948           line
34949           bar
34950           dot
34951
34952           Default is "bar".
34953
34954       ascale
34955           Set amplitude scale.
34956
34957           It accepts the following values:
34958
34959           lin Linear scale.
34960
34961           sqrt
34962               Square root scale.
34963
34964           cbrt
34965               Cubic root scale.
34966
34967           log Logarithmic scale.
34968
34969           Default is "log".
34970
34971       fscale
34972           Set frequency scale.
34973
34974           It accepts the following values:
34975
34976           lin Linear scale.
34977
34978           log Logarithmic scale.
34979
34980           rlog
34981               Reverse logarithmic scale.
34982
34983           Default is "lin".
34984
34985       win_size
34986           Set window size. Allowed range is from 16 to 65536.
34987
34988           Default is 2048
34989
34990       win_func
34991           Set windowing function.
34992
34993           It accepts the following values:
34994
34995           rect
34996           bartlett
34997           hanning
34998           hamming
34999           blackman
35000           welch
35001           flattop
35002           bharris
35003           bnuttall
35004           bhann
35005           sine
35006           nuttall
35007           lanczos
35008           gauss
35009           tukey
35010           dolph
35011           cauchy
35012           parzen
35013           poisson
35014           bohman
35015
35016           Default is "hanning".
35017
35018       overlap
35019           Set window overlap. In range "[0, 1]". Default is 1, which means
35020           optimal overlap for selected window function will be picked.
35021
35022       averaging
35023           Set time averaging. Setting this to 0 will display current maximal
35024           peaks.  Default is 1, which means time averaging is disabled.
35025
35026       colors
35027           Specify list of colors separated by space or by '|' which will be
35028           used to draw channel frequencies. Unrecognized or missing colors
35029           will be replaced by white color.
35030
35031       cmode
35032           Set channel display mode.
35033
35034           It accepts the following values:
35035
35036           combined
35037           separate
35038
35039           Default is "combined".
35040
35041       minamp
35042           Set minimum amplitude used in "log" amplitude scaler.
35043
35044       data
35045           Set data display mode.
35046
35047           It accepts the following values:
35048
35049           magnitude
35050           phase
35051           delay
35052
35053           Default is "magnitude".
35054
35055       channels
35056           Set channels to use when processing audio. By default all are
35057           processed.
35058
35059   showspatial
35060       Convert stereo input audio to a video output, representing the spatial
35061       relationship between two channels.
35062
35063       The filter accepts the following options:
35064
35065       size, s
35066           Specify the video size for the output. For the syntax of this
35067           option, check the "Video size" section in the ffmpeg-utils manual.
35068           Default value is "512x512".
35069
35070       win_size
35071           Set window size. Allowed range is from 1024 to 65536. Default size
35072           is 4096.
35073
35074       win_func
35075           Set window function.
35076
35077           It accepts the following values:
35078
35079           rect
35080           bartlett
35081           hann
35082           hanning
35083           hamming
35084           blackman
35085           welch
35086           flattop
35087           bharris
35088           bnuttall
35089           bhann
35090           sine
35091           nuttall
35092           lanczos
35093           gauss
35094           tukey
35095           dolph
35096           cauchy
35097           parzen
35098           poisson
35099           bohman
35100
35101           Default value is "hann".
35102
35103       overlap
35104           Set ratio of overlap window. Default value is 0.5.  When value is 1
35105           overlap is set to recommended size for specific window function
35106           currently used.
35107
35108   showspectrum
35109       Convert input audio to a video output, representing the audio frequency
35110       spectrum.
35111
35112       The filter accepts the following options:
35113
35114       size, s
35115           Specify the video size for the output. For the syntax of this
35116           option, check the "Video size" section in the ffmpeg-utils manual.
35117           Default value is "640x512".
35118
35119       slide
35120           Specify how the spectrum should slide along the window.
35121
35122           It accepts the following values:
35123
35124           replace
35125               the samples start again on the left when they reach the right
35126
35127           scroll
35128               the samples scroll from right to left
35129
35130           fullframe
35131               frames are only produced when the samples reach the right
35132
35133           rscroll
35134               the samples scroll from left to right
35135
35136           lreplace
35137               the samples start again on the right when they reach the left
35138
35139           Default value is "replace".
35140
35141       mode
35142           Specify display mode.
35143
35144           It accepts the following values:
35145
35146           combined
35147               all channels are displayed in the same row
35148
35149           separate
35150               all channels are displayed in separate rows
35151
35152           Default value is combined.
35153
35154       color
35155           Specify display color mode.
35156
35157           It accepts the following values:
35158
35159           channel
35160               each channel is displayed in a separate color
35161
35162           intensity
35163               each channel is displayed using the same color scheme
35164
35165           rainbow
35166               each channel is displayed using the rainbow color scheme
35167
35168           moreland
35169               each channel is displayed using the moreland color scheme
35170
35171           nebulae
35172               each channel is displayed using the nebulae color scheme
35173
35174           fire
35175               each channel is displayed using the fire color scheme
35176
35177           fiery
35178               each channel is displayed using the fiery color scheme
35179
35180           fruit
35181               each channel is displayed using the fruit color scheme
35182
35183           cool
35184               each channel is displayed using the cool color scheme
35185
35186           magma
35187               each channel is displayed using the magma color scheme
35188
35189           green
35190               each channel is displayed using the green color scheme
35191
35192           viridis
35193               each channel is displayed using the viridis color scheme
35194
35195           plasma
35196               each channel is displayed using the plasma color scheme
35197
35198           cividis
35199               each channel is displayed using the cividis color scheme
35200
35201           terrain
35202               each channel is displayed using the terrain color scheme
35203
35204           Default value is channel.
35205
35206       scale
35207           Specify scale used for calculating intensity color values.
35208
35209           It accepts the following values:
35210
35211           lin linear
35212
35213           sqrt
35214               square root, default
35215
35216           cbrt
35217               cubic root
35218
35219           log logarithmic
35220
35221           4thrt
35222               4th root
35223
35224           5thrt
35225               5th root
35226
35227           Default value is sqrt.
35228
35229       fscale
35230           Specify frequency scale.
35231
35232           It accepts the following values:
35233
35234           lin linear
35235
35236           log logarithmic
35237
35238           Default value is lin.
35239
35240       saturation
35241           Set saturation modifier for displayed colors. Negative values
35242           provide alternative color scheme. 0 is no saturation at all.
35243           Saturation must be in [-10.0, 10.0] range.  Default value is 1.
35244
35245       win_func
35246           Set window function.
35247
35248           It accepts the following values:
35249
35250           rect
35251           bartlett
35252           hann
35253           hanning
35254           hamming
35255           blackman
35256           welch
35257           flattop
35258           bharris
35259           bnuttall
35260           bhann
35261           sine
35262           nuttall
35263           lanczos
35264           gauss
35265           tukey
35266           dolph
35267           cauchy
35268           parzen
35269           poisson
35270           bohman
35271
35272           Default value is "hann".
35273
35274       orientation
35275           Set orientation of time vs frequency axis. Can be "vertical" or
35276           "horizontal". Default is "vertical".
35277
35278       overlap
35279           Set ratio of overlap window. Default value is 0.  When value is 1
35280           overlap is set to recommended size for specific window function
35281           currently used.
35282
35283       gain
35284           Set scale gain for calculating intensity color values.  Default
35285           value is 1.
35286
35287       data
35288           Set which data to display. Can be "magnitude", default or "phase",
35289           or unwrapped phase: "uphase".
35290
35291       rotation
35292           Set color rotation, must be in [-1.0, 1.0] range.  Default value is
35293           0.
35294
35295       start
35296           Set start frequency from which to display spectrogram. Default is
35297           0.
35298
35299       stop
35300           Set stop frequency to which to display spectrogram. Default is 0.
35301
35302       fps Set upper frame rate limit. Default is "auto", unlimited.
35303
35304       legend
35305           Draw time and frequency axes and legends. Default is disabled.
35306
35307       drange
35308           Set dynamic range used to calculate intensity color values. Default
35309           is 120 dBFS.  Allowed range is from 10 to 200.
35310
35311       limit
35312           Set upper limit of input audio samples volume in dBFS. Default is 0
35313           dBFS.  Allowed range is from -100 to 100.
35314
35315       opacity
35316           Set opacity strength when using pixel format output with alpha
35317           component.
35318
35319       The usage is very similar to the showwaves filter; see the examples in
35320       that section.
35321
35322       Examples
35323
35324       •   Large window with logarithmic color scaling:
35325
35326                   showspectrum=s=1280x480:scale=log
35327
35328       •   Complete example for a colored and sliding spectrum per channel
35329           using ffplay:
35330
35331                   ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
35332                                [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
35333
35334   showspectrumpic
35335       Convert input audio to a single video frame, representing the audio
35336       frequency spectrum.
35337
35338       The filter accepts the following options:
35339
35340       size, s
35341           Specify the video size for the output. For the syntax of this
35342           option, check the "Video size" section in the ffmpeg-utils manual.
35343           Default value is "4096x2048".
35344
35345       mode
35346           Specify display mode.
35347
35348           It accepts the following values:
35349
35350           combined
35351               all channels are displayed in the same row
35352
35353           separate
35354               all channels are displayed in separate rows
35355
35356           Default value is combined.
35357
35358       color
35359           Specify display color mode.
35360
35361           It accepts the following values:
35362
35363           channel
35364               each channel is displayed in a separate color
35365
35366           intensity
35367               each channel is displayed using the same color scheme
35368
35369           rainbow
35370               each channel is displayed using the rainbow color scheme
35371
35372           moreland
35373               each channel is displayed using the moreland color scheme
35374
35375           nebulae
35376               each channel is displayed using the nebulae color scheme
35377
35378           fire
35379               each channel is displayed using the fire color scheme
35380
35381           fiery
35382               each channel is displayed using the fiery color scheme
35383
35384           fruit
35385               each channel is displayed using the fruit color scheme
35386
35387           cool
35388               each channel is displayed using the cool color scheme
35389
35390           magma
35391               each channel is displayed using the magma color scheme
35392
35393           green
35394               each channel is displayed using the green color scheme
35395
35396           viridis
35397               each channel is displayed using the viridis color scheme
35398
35399           plasma
35400               each channel is displayed using the plasma color scheme
35401
35402           cividis
35403               each channel is displayed using the cividis color scheme
35404
35405           terrain
35406               each channel is displayed using the terrain color scheme
35407
35408           Default value is intensity.
35409
35410       scale
35411           Specify scale used for calculating intensity color values.
35412
35413           It accepts the following values:
35414
35415           lin linear
35416
35417           sqrt
35418               square root, default
35419
35420           cbrt
35421               cubic root
35422
35423           log logarithmic
35424
35425           4thrt
35426               4th root
35427
35428           5thrt
35429               5th root
35430
35431           Default value is log.
35432
35433       fscale
35434           Specify frequency scale.
35435
35436           It accepts the following values:
35437
35438           lin linear
35439
35440           log logarithmic
35441
35442           Default value is lin.
35443
35444       saturation
35445           Set saturation modifier for displayed colors. Negative values
35446           provide alternative color scheme. 0 is no saturation at all.
35447           Saturation must be in [-10.0, 10.0] range.  Default value is 1.
35448
35449       win_func
35450           Set window function.
35451
35452           It accepts the following values:
35453
35454           rect
35455           bartlett
35456           hann
35457           hanning
35458           hamming
35459           blackman
35460           welch
35461           flattop
35462           bharris
35463           bnuttall
35464           bhann
35465           sine
35466           nuttall
35467           lanczos
35468           gauss
35469           tukey
35470           dolph
35471           cauchy
35472           parzen
35473           poisson
35474           bohman
35475
35476           Default value is "hann".
35477
35478       orientation
35479           Set orientation of time vs frequency axis. Can be "vertical" or
35480           "horizontal". Default is "vertical".
35481
35482       gain
35483           Set scale gain for calculating intensity color values.  Default
35484           value is 1.
35485
35486       legend
35487           Draw time and frequency axes and legends. Default is enabled.
35488
35489       rotation
35490           Set color rotation, must be in [-1.0, 1.0] range.  Default value is
35491           0.
35492
35493       start
35494           Set start frequency from which to display spectrogram. Default is
35495           0.
35496
35497       stop
35498           Set stop frequency to which to display spectrogram. Default is 0.
35499
35500       drange
35501           Set dynamic range used to calculate intensity color values. Default
35502           is 120 dBFS.  Allowed range is from 10 to 200.
35503
35504       limit
35505           Set upper limit of input audio samples volume in dBFS. Default is 0
35506           dBFS.  Allowed range is from -100 to 100.
35507
35508       opacity
35509           Set opacity strength when using pixel format output with alpha
35510           component.
35511
35512       Examples
35513
35514       •   Extract an audio spectrogram of a whole audio track in a 1024x1024
35515           picture using ffmpeg:
35516
35517                   ffmpeg -i audio.flac -lavfi showspectrumpic=s=1024x1024 spectrogram.png
35518
35519   showvolume
35520       Convert input audio volume to a video output.
35521
35522       The filter accepts the following options:
35523
35524       rate, r
35525           Set video rate.
35526
35527       b   Set border width, allowed range is [0, 5]. Default is 1.
35528
35529       w   Set channel width, allowed range is [80, 8192]. Default is 400.
35530
35531       h   Set channel height, allowed range is [1, 900]. Default is 20.
35532
35533       f   Set fade, allowed range is [0, 1]. Default is 0.95.
35534
35535       c   Set volume color expression.
35536
35537           The expression can use the following variables:
35538
35539           VOLUME
35540               Current max volume of channel in dB.
35541
35542           PEAK
35543               Current peak.
35544
35545           CHANNEL
35546               Current channel number, starting from 0.
35547
35548       t   If set, displays channel names. Default is enabled.
35549
35550       v   If set, displays volume values. Default is enabled.
35551
35552       o   Set orientation, can be horizontal: "h" or vertical: "v", default
35553           is "h".
35554
35555       s   Set step size, allowed range is [0, 5]. Default is 0, which means
35556           step is disabled.
35557
35558       p   Set background opacity, allowed range is [0, 1]. Default is 0.
35559
35560       m   Set metering mode, can be peak: "p" or rms: "r", default is "p".
35561
35562       ds  Set display scale, can be linear: "lin" or log: "log", default is
35563           "lin".
35564
35565       dm  In second.  If set to > 0., display a line for the max level in the
35566           previous seconds.  default is disabled: 0.
35567
35568       dmc The color of the max line. Use when "dm" option is set to > 0.
35569           default is: "orange"
35570
35571   showwaves
35572       Convert input audio to a video output, representing the samples waves.
35573
35574       The filter accepts the following options:
35575
35576       size, s
35577           Specify the video size for the output. For the syntax of this
35578           option, check the "Video size" section in the ffmpeg-utils manual.
35579           Default value is "600x240".
35580
35581       mode
35582           Set display mode.
35583
35584           Available values are:
35585
35586           point
35587               Draw a point for each sample.
35588
35589           line
35590               Draw a vertical line for each sample.
35591
35592           p2p Draw a point for each sample and a line between them.
35593
35594           cline
35595               Draw a centered vertical line for each sample.
35596
35597           Default value is "point".
35598
35599       n   Set the number of samples which are printed on the same column. A
35600           larger value will decrease the frame rate. Must be a positive
35601           integer. This option can be set only if the value for rate is not
35602           explicitly specified.
35603
35604       rate, r
35605           Set the (approximate) output frame rate. This is done by setting
35606           the option n. Default value is "25".
35607
35608       split_channels
35609           Set if channels should be drawn separately or overlap. Default
35610           value is 0.
35611
35612       colors
35613           Set colors separated by '|' which are going to be used for drawing
35614           of each channel.
35615
35616       scale
35617           Set amplitude scale.
35618
35619           Available values are:
35620
35621           lin Linear.
35622
35623           log Logarithmic.
35624
35625           sqrt
35626               Square root.
35627
35628           cbrt
35629               Cubic root.
35630
35631           Default is linear.
35632
35633       draw
35634           Set the draw mode. This is mostly useful to set for high n.
35635
35636           Available values are:
35637
35638           scale
35639               Scale pixel values for each drawn sample.
35640
35641           full
35642               Draw every sample directly.
35643
35644           Default value is "scale".
35645
35646       Examples
35647
35648       •   Output the input file audio and the corresponding video
35649           representation at the same time:
35650
35651                   amovie=a.mp3,asplit[out0],showwaves[out1]
35652
35653       •   Create a synthetic signal and show it with showwaves, forcing a
35654           frame rate of 30 frames per second:
35655
35656                   aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
35657
35658   showwavespic
35659       Convert input audio to a single video frame, representing the samples
35660       waves.
35661
35662       The filter accepts the following options:
35663
35664       size, s
35665           Specify the video size for the output. For the syntax of this
35666           option, check the "Video size" section in the ffmpeg-utils manual.
35667           Default value is "600x240".
35668
35669       split_channels
35670           Set if channels should be drawn separately or overlap. Default
35671           value is 0.
35672
35673       colors
35674           Set colors separated by '|' which are going to be used for drawing
35675           of each channel.
35676
35677       scale
35678           Set amplitude scale.
35679
35680           Available values are:
35681
35682           lin Linear.
35683
35684           log Logarithmic.
35685
35686           sqrt
35687               Square root.
35688
35689           cbrt
35690               Cubic root.
35691
35692           Default is linear.
35693
35694       draw
35695           Set the draw mode.
35696
35697           Available values are:
35698
35699           scale
35700               Scale pixel values for each drawn sample.
35701
35702           full
35703               Draw every sample directly.
35704
35705           Default value is "scale".
35706
35707       filter
35708           Set the filter mode.
35709
35710           Available values are:
35711
35712           average
35713               Use average samples values for each drawn sample.
35714
35715           peak
35716               Use peak samples values for each drawn sample.
35717
35718           Default value is "average".
35719
35720       Examples
35721
35722       •   Extract a channel split representation of the wave form of a whole
35723           audio track in a 1024x800 picture using ffmpeg:
35724
35725                   ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
35726
35727   sidedata, asidedata
35728       Delete frame side data, or select frames based on it.
35729
35730       This filter accepts the following options:
35731
35732       mode
35733           Set mode of operation of the filter.
35734
35735           Can be one of the following:
35736
35737           select
35738               Select every frame with side data of "type".
35739
35740           delete
35741               Delete side data of "type". If "type" is not set, delete all
35742               side data in the frame.
35743
35744       type
35745           Set side data type used with all modes. Must be set for "select"
35746           mode. For the list of frame side data types, refer to the
35747           "AVFrameSideDataType" enum in libavutil/frame.h. For example, to
35748           choose "AV_FRAME_DATA_PANSCAN" side data, you must specify
35749           "PANSCAN".
35750
35751   spectrumsynth
35752       Synthesize audio from 2 input video spectrums, first input stream
35753       represents magnitude across time and second represents phase across
35754       time.  The filter will transform from frequency domain as displayed in
35755       videos back to time domain as presented in audio output.
35756
35757       This filter is primarily created for reversing processed showspectrum
35758       filter outputs, but can synthesize sound from other spectrograms too.
35759       But in such case results are going to be poor if the phase data is not
35760       available, because in such cases phase data need to be recreated,
35761       usually it's just recreated from random noise.  For best results use
35762       gray only output ("channel" color mode in showspectrum filter) and
35763       "log" scale for magnitude video and "lin" scale for phase video. To
35764       produce phase, for 2nd video, use "data" option. Inputs videos should
35765       generally use "fullframe" slide mode as that saves resources needed for
35766       decoding video.
35767
35768       The filter accepts the following options:
35769
35770       sample_rate
35771           Specify sample rate of output audio, the sample rate of audio from
35772           which spectrum was generated may differ.
35773
35774       channels
35775           Set number of channels represented in input video spectrums.
35776
35777       scale
35778           Set scale which was used when generating magnitude input spectrum.
35779           Can be "lin" or "log". Default is "log".
35780
35781       slide
35782           Set slide which was used when generating inputs spectrums.  Can be
35783           "replace", "scroll", "fullframe" or "rscroll".  Default is
35784           "fullframe".
35785
35786       win_func
35787           Set window function used for resynthesis.
35788
35789       overlap
35790           Set window overlap. In range "[0, 1]". Default is 1, which means
35791           optimal overlap for selected window function will be picked.
35792
35793       orientation
35794           Set orientation of input videos. Can be "vertical" or "horizontal".
35795           Default is "vertical".
35796
35797       Examples
35798
35799       •   First create magnitude and phase videos from audio, assuming audio
35800           is stereo with 44100 sample rate, then resynthesize videos back to
35801           audio with spectrumsynth:
35802
35803                   ffmpeg -i input.flac -lavfi showspectrum=mode=separate:scale=log:overlap=0.875:color=channel:slide=fullframe:data=magnitude -an -c:v rawvideo magnitude.nut
35804                   ffmpeg -i input.flac -lavfi showspectrum=mode=separate:scale=lin:overlap=0.875:color=channel:slide=fullframe:data=phase -an -c:v rawvideo phase.nut
35805                   ffmpeg -i magnitude.nut -i phase.nut -lavfi spectrumsynth=channels=2:sample_rate=44100:win_func=hann:overlap=0.875:slide=fullframe output.flac
35806
35807   split, asplit
35808       Split input into several identical outputs.
35809
35810       "asplit" works with audio input, "split" with video.
35811
35812       The filter accepts a single parameter which specifies the number of
35813       outputs. If unspecified, it defaults to 2.
35814
35815       Examples
35816
35817       •   Create two separate outputs from the same input:
35818
35819                   [in] split [out0][out1]
35820
35821       •   To create 3 or more outputs, you need to specify the number of
35822           outputs, like in:
35823
35824                   [in] asplit=3 [out0][out1][out2]
35825
35826       •   Create two separate outputs from the same input, one cropped and
35827           one padded:
35828
35829                   [in] split [splitout1][splitout2];
35830                   [splitout1] crop=100:100:0:0    [cropout];
35831                   [splitout2] pad=200:200:100:100 [padout];
35832
35833       •   Create 5 copies of the input audio with ffmpeg:
35834
35835                   ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
35836
35837   zmq, azmq
35838       Receive commands sent through a libzmq client, and forward them to
35839       filters in the filtergraph.
35840
35841       "zmq" and "azmq" work as a pass-through filters. "zmq" must be inserted
35842       between two video filters, "azmq" between two audio filters. Both are
35843       capable to send messages to any filter type.
35844
35845       To enable these filters you need to install the libzmq library and
35846       headers and configure FFmpeg with "--enable-libzmq".
35847
35848       For more information about libzmq see: <http://www.zeromq.org/>
35849
35850       The "zmq" and "azmq" filters work as a libzmq server, which receives
35851       messages sent through a network interface defined by the bind_address
35852       (or the abbreviation "b") option.  Default value of this option is
35853       tcp://localhost:5555. You may want to alter this value to your needs,
35854       but do not forget to escape any ':' signs (see filtergraph escaping).
35855
35856       The received message must be in the form:
35857
35858               <TARGET> <COMMAND> [<ARG>]
35859
35860       TARGET specifies the target of the command, usually the name of the
35861       filter class or a specific filter instance name. The default filter
35862       instance name uses the pattern Parsed_<filter_name>_<index>, but you
35863       can override this by using the filter_name@id syntax (see Filtergraph
35864       syntax).
35865
35866       COMMAND specifies the name of the command for the target filter.
35867
35868       ARG is optional and specifies the optional argument list for the given
35869       COMMAND.
35870
35871       Upon reception, the message is processed and the corresponding command
35872       is injected into the filtergraph. Depending on the result, the filter
35873       will send a reply to the client, adopting the format:
35874
35875               <ERROR_CODE> <ERROR_REASON>
35876               <MESSAGE>
35877
35878       MESSAGE is optional.
35879
35880       Examples
35881
35882       Look at tools/zmqsend for an example of a zmq client which can be used
35883       to send commands processed by these filters.
35884
35885       Consider the following filtergraph generated by ffplay.  In this
35886       example the last overlay filter has an instance name. All other filters
35887       will have default instance names.
35888
35889               ffplay -dumpgraph 1 -f lavfi "
35890               color=s=100x100:c=red  [l];
35891               color=s=100x100:c=blue [r];
35892               nullsrc=s=200x100, zmq [bg];
35893               [bg][l]   overlay     [bg+l];
35894               [bg+l][r] overlay@my=x=100 "
35895
35896       To change the color of the left side of the video, the following
35897       command can be used:
35898
35899               echo Parsed_color_0 c yellow | tools/zmqsend
35900
35901       To change the right side:
35902
35903               echo Parsed_color_1 c pink | tools/zmqsend
35904
35905       To change the position of the right side:
35906
35907               echo overlay@my x 150 | tools/zmqsend
35908

MULTIMEDIA SOURCES

35910       Below is a description of the currently available multimedia sources.
35911
35912   amovie
35913       This is the same as movie source, except it selects an audio stream by
35914       default.
35915
35916   avsynctest
35917       Generate an Audio/Video Sync Test.
35918
35919       Generated stream periodically shows flash video frame and emits beep in
35920       audio.  Useful to inspect A/V sync issues.
35921
35922       It accepts the following options:
35923
35924       size, s
35925           Set output video size. Default value is "hd720".
35926
35927       framerate, fr
35928           Set output video frame rate. Default value is 30.
35929
35930       samplerate, sr
35931           Set output audio sample rate. Default value is 44100.
35932
35933       amplitude, a
35934           Set output audio beep amplitude. Default value is 0.7.
35935
35936       period, p
35937           Set output audio beep period in seconds. Default value is 3.
35938
35939       delay, dl
35940           Set output video flash delay in number of frames. Default value is
35941           0.
35942
35943       cycle, c
35944           Enable cycling of video delays, by default is disabled.
35945
35946       duration, d
35947           Set stream output duration. By default duration is unlimited.
35948
35949       fg, bg, ag
35950           Set foreground/background/additional color.
35951
35952   movie
35953       Read audio and/or video stream(s) from a movie container.
35954
35955       It accepts the following parameters:
35956
35957       filename
35958           The name of the resource to read (not necessarily a file; it can
35959           also be a device or a stream accessed through some protocol).
35960
35961       format_name, f
35962           Specifies the format assumed for the movie to read, and can be
35963           either the name of a container or an input device. If not
35964           specified, the format is guessed from movie_name or by probing.
35965
35966       seek_point, sp
35967           Specifies the seek point in seconds. The frames will be output
35968           starting from this seek point. The parameter is evaluated with
35969           "av_strtod", so the numerical value may be suffixed by an IS
35970           postfix. The default value is "0".
35971
35972       streams, s
35973           Specifies the streams to read. Several streams can be specified,
35974           separated by "+". The source will then have as many outputs, in the
35975           same order. The syntax is explained in the "Stream specifiers"
35976           section in the ffmpeg manual. Two special names, "dv" and "da"
35977           specify respectively the default (best suited) video and audio
35978           stream. Default is "dv", or "da" if the filter is called as
35979           "amovie".
35980
35981       stream_index, si
35982           Specifies the index of the video stream to read. If the value is
35983           -1, the most suitable video stream will be automatically selected.
35984           The default value is "-1". Deprecated. If the filter is called
35985           "amovie", it will select audio instead of video.
35986
35987       loop
35988           Specifies how many times to read the stream in sequence.  If the
35989           value is 0, the stream will be looped infinitely.  Default value is
35990           "1".
35991
35992           Note that when the movie is looped the source timestamps are not
35993           changed, so it will generate non monotonically increasing
35994           timestamps.
35995
35996       discontinuity
35997           Specifies the time difference between frames above which the point
35998           is considered a timestamp discontinuity which is removed by
35999           adjusting the later timestamps.
36000
36001       dec_threads
36002           Specifies the number of threads for decoding
36003
36004       format_opts
36005           Specify format options for the opened file. Format options can be
36006           specified as a list of key=value pairs separated by ':'. The
36007           following example shows how to add protocol_whitelist and
36008           protocol_blacklist options:
36009
36010                   ffplay -f lavfi
36011                   "movie=filename='1.sdp':format_opts='protocol_whitelist=file,rtp,udp\:protocol_blacklist=http'"
36012
36013       It allows overlaying a second video on top of the main input of a
36014       filtergraph, as shown in this graph:
36015
36016               input -----------> deltapts0 --> overlay --> output
36017                                                   ^
36018                                                   |
36019               movie --> scale--> deltapts1 -------+
36020
36021       Examples
36022
36023       •   Skip 3.2 seconds from the start of the AVI file in.avi, and overlay
36024           it on top of the input labelled "in":
36025
36026                   movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over];
36027                   [in] setpts=PTS-STARTPTS [main];
36028                   [main][over] overlay=16:16 [out]
36029
36030       •   Read from a video4linux2 device, and overlay it on top of the input
36031           labelled "in":
36032
36033                   movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over];
36034                   [in] setpts=PTS-STARTPTS [main];
36035                   [main][over] overlay=16:16 [out]
36036
36037       •   Read the first video stream and the audio stream with id 0x81 from
36038           dvd.vob; the video is connected to the pad named "video" and the
36039           audio is connected to the pad named "audio":
36040
36041                   movie=dvd.vob:s=v:0+#0x81 [video] [audio]
36042
36043       Commands
36044
36045       Both movie and amovie support the following commands:
36046
36047       seek
36048           Perform seek using "av_seek_frame".  The syntax is: seek
36049           stream_index|timestamp|flags
36050
36051           •   stream_index: If stream_index is -1, a default stream is
36052               selected, and timestamp is automatically converted from
36053               AV_TIME_BASE units to the stream specific time_base.
36054
36055           •   timestamp: Timestamp in AVStream.time_base units or, if no
36056               stream is specified, in AV_TIME_BASE units.
36057
36058           •   flags: Flags which select direction and seeking mode.
36059
36060       get_duration
36061           Get movie duration in AV_TIME_BASE units.
36062

EXTERNAL LIBRARIES

36064       FFmpeg can be hooked up with a number of external libraries to add
36065       support for more formats. None of them are used by default, their use
36066       has to be explicitly requested by passing the appropriate flags to
36067       ./configure.
36068
36069   Alliance for Open Media (AOM)
36070       FFmpeg can make use of the AOM library for AV1 decoding and encoding.
36071
36072       Go to <http://aomedia.org/> and follow the instructions for installing
36073       the library. Then pass "--enable-libaom" to configure to enable it.
36074
36075   AMD AMF/VCE
36076       FFmpeg can use the AMD Advanced Media Framework library for accelerated
36077       H.264 and HEVC(only windows) encoding on hardware with Video Coding
36078       Engine (VCE).
36079
36080       To enable support you must obtain the AMF framework header
36081       files(version 1.4.9+) from
36082       <https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git>.
36083
36084       Create an "AMF/" directory in the system include path.  Copy the
36085       contents of "AMF/amf/public/include/" into that directory.  Then
36086       configure FFmpeg with "--enable-amf".
36087
36088       Initialization of amf encoder occurs in this order: 1) trying to
36089       initialize through dx11(only windows) 2) trying to initialize through
36090       dx9(only windows) 3) trying to initialize through vulkan
36091
36092       To use h.264(AMD VCE) encoder on linux amdgru-pro version 19.20+ and
36093       amf-amdgpu-pro package(amdgru-pro contains, but does not install
36094       automatically) are required.
36095
36096       This driver can be installed using amdgpu-pro-install script in
36097       official amd driver archive.
36098
36099   AviSynth
36100       FFmpeg can read AviSynth scripts as input. To enable support, pass
36101       "--enable-avisynth" to configure after installing the headers provided
36102       by <https://github.com/AviSynth/AviSynthPlus>.  AviSynth+ can be
36103       configured to install only the headers by either passing
36104       "-DHEADERS_ONLY:bool=on" to the normal CMake-based build system, or by
36105       using the supplied "GNUmakefile".
36106
36107       For Windows, supported AviSynth variants are <http://avisynth.nl> for
36108       32-bit builds and <http://avisynth.nl/index.php/AviSynth+> for 32-bit
36109       and 64-bit builds.
36110
36111       For Linux, macOS, and BSD, the only supported AviSynth variant is
36112       <https://github.com/AviSynth/AviSynthPlus>, starting with version 3.5.
36113
36114           In 2016, AviSynth+ added support for building with GCC. However,
36115           due to the eccentricities of Windows' calling conventions, 32-bit
36116           GCC builds of AviSynth+ are not compatible with typical 32-bit
36117           builds of FFmpeg.
36118
36119           By default, FFmpeg assumes compatibility with 32-bit MSVC builds of
36120           AviSynth+ since that is the most widely-used and entrenched build
36121           configuration.  Users can override this and enable support for
36122           32-bit GCC builds of AviSynth+ by passing "-DAVSC_WIN32_GCC32" to
36123           "--extra-cflags" when configuring FFmpeg.
36124
36125           64-bit builds of FFmpeg are not affected, and can use either MSVC
36126           or GCC builds of AviSynth+ without any special flags.
36127
36128           AviSynth(+) is loaded dynamically.  Distributors can build FFmpeg
36129           with "--enable-avisynth", and the binaries will work regardless of
36130           the end user having AviSynth installed.  If/when an end user would
36131           like to use AviSynth scripts, then they can install AviSynth(+) and
36132           FFmpeg will be able to find and use it to open scripts.
36133
36134   Chromaprint
36135       FFmpeg can make use of the Chromaprint library for generating audio
36136       fingerprints.  Pass "--enable-chromaprint" to configure to enable it.
36137       See <https://acoustid.org/chromaprint>.
36138
36139   codec2
36140       FFmpeg can make use of the codec2 library for codec2 decoding and
36141       encoding.  There is currently no native decoder, so libcodec2 must be
36142       used for decoding.
36143
36144       Go to <http://freedv.org/>, download "Codec 2 source archive".  Build
36145       and install using CMake. Debian users can install the libcodec2-dev
36146       package instead.  Once libcodec2 is installed you can pass
36147       "--enable-libcodec2" to configure to enable it.
36148
36149       The easiest way to use codec2 is with .c2 files, since they contain the
36150       mode information required for decoding.  To encode such a file, use a
36151       .c2 file extension and give the libcodec2 encoder the -mode option:
36152       "ffmpeg -i input.wav -mode 700C output.c2".  Playback is as simple as
36153       "ffplay output.c2".  For a list of supported modes, run "ffmpeg -h
36154       encoder=libcodec2".  Raw codec2 files are also supported.  To make
36155       sense of them the mode in use needs to be specified as a format option:
36156       "ffmpeg -f codec2raw -mode 1300 -i input.raw output.wav".
36157
36158   dav1d
36159       FFmpeg can make use of the dav1d library for AV1 video decoding.
36160
36161       Go to <https://code.videolan.org/videolan/dav1d> and follow the
36162       instructions for installing the library. Then pass "--enable-libdav1d"
36163       to configure to enable it.
36164
36165   davs2
36166       FFmpeg can make use of the davs2 library for AVS2-P2/IEEE1857.4 video
36167       decoding.
36168
36169       Go to <https://github.com/pkuvcl/davs2> and follow the instructions for
36170       installing the library. Then pass "--enable-libdavs2" to configure to
36171       enable it.
36172
36173           libdavs2 is under the GNU Public License Version 2 or later (see
36174           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
36175           details), you must upgrade FFmpeg's license to GPL in order to use
36176           it.
36177
36178   uavs3d
36179       FFmpeg can make use of the uavs3d library for AVS3-P2/IEEE1857.10 video
36180       decoding.
36181
36182       Go to <https://github.com/uavs3/uavs3d> and follow the instructions for
36183       installing the library. Then pass "--enable-libuavs3d" to configure to
36184       enable it.
36185
36186   Game Music Emu
36187       FFmpeg can make use of the Game Music Emu library to read audio from
36188       supported video game music file formats. Pass "--enable-libgme" to
36189       configure to enable it. See
36190       <https://bitbucket.org/mpyne/game-music-emu/overview>.
36191
36192   Intel QuickSync Video
36193       FFmpeg can use Intel QuickSync Video (QSV) for accelerated decoding and
36194       encoding of multiple codecs. To use QSV, FFmpeg must be linked against
36195       the "libmfx" dispatcher, which loads the actual decoding libraries.
36196
36197       The dispatcher is open source and can be downloaded from
36198       <https://github.com/lu-zero/mfx_dispatch.git>. FFmpeg needs to be
36199       configured with the "--enable-libmfx" option and "pkg-config" needs to
36200       be able to locate the dispatcher's ".pc" files.
36201
36202   Kvazaar
36203       FFmpeg can make use of the Kvazaar library for HEVC encoding.
36204
36205       Go to <https://github.com/ultravideo/kvazaar> and follow the
36206       instructions for installing the library. Then pass
36207       "--enable-libkvazaar" to configure to enable it.
36208
36209   LAME
36210       FFmpeg can make use of the LAME library for MP3 encoding.
36211
36212       Go to <http://lame.sourceforge.net/> and follow the instructions for
36213       installing the library.  Then pass "--enable-libmp3lame" to configure
36214       to enable it.
36215
36216   libilbc
36217       iLBC is a narrowband speech codec that has been made freely available
36218       by Google as part of the WebRTC project. libilbc is a packaging
36219       friendly copy of the iLBC codec. FFmpeg can make use of the libilbc
36220       library for iLBC decoding and encoding.
36221
36222       Go to <https://github.com/TimothyGu/libilbc> and follow the
36223       instructions for installing the library. Then pass "--enable-libilbc"
36224       to configure to enable it.
36225
36226   libjxl
36227       JPEG XL is an image format intended to fully replace legacy JPEG for an
36228       extended period of life. See <https://jpegxl.info/> for more
36229       information, and see <https://github.com/libjxl/libjxl> for the library
36230       source. You can pass "--enable-libjxl" to configure in order enable the
36231       libjxl wrapper.
36232
36233   libvpx
36234       FFmpeg can make use of the libvpx library for VP8/VP9 decoding and
36235       encoding.
36236
36237       Go to <http://www.webmproject.org/> and follow the instructions for
36238       installing the library. Then pass "--enable-libvpx" to configure to
36239       enable it.
36240
36241   ModPlug
36242       FFmpeg can make use of this library, originating in Modplug-XMMS, to
36243       read from MOD-like music files.  See
36244       <https://github.com/Konstanty/libmodplug>. Pass "--enable-libmodplug"
36245       to configure to enable it.
36246
36247   OpenCORE, VisualOn, and Fraunhofer libraries
36248       Spun off Google Android sources, OpenCore, VisualOn and Fraunhofer
36249       libraries provide encoders for a number of audio codecs.
36250
36251           OpenCORE and VisualOn libraries are under the Apache License 2.0
36252           (see <http://www.apache.org/licenses/LICENSE-2.0> for details),
36253           which is incompatible to the LGPL version 2.1 and GPL version 2.
36254           You have to upgrade FFmpeg's license to LGPL version 3 (or if you
36255           have enabled GPL components, GPL version 3) by passing
36256           "--enable-version3" to configure in order to use it.
36257
36258           The license of the Fraunhofer AAC library is incompatible with the
36259           GPL.  Therefore, for GPL builds, you have to pass
36260           "--enable-nonfree" to configure in order to use it. To the best of
36261           our knowledge, it is compatible with the LGPL.
36262
36263       OpenCORE AMR
36264
36265       FFmpeg can make use of the OpenCORE libraries for AMR-NB
36266       decoding/encoding and AMR-WB decoding.
36267
36268       Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
36269       instructions for installing the libraries.  Then pass
36270       "--enable-libopencore-amrnb" and/or "--enable-libopencore-amrwb" to
36271       configure to enable them.
36272
36273       VisualOn AMR-WB encoder library
36274
36275       FFmpeg can make use of the VisualOn AMR-WBenc library for AMR-WB
36276       encoding.
36277
36278       Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
36279       instructions for installing the library.  Then pass
36280       "--enable-libvo-amrwbenc" to configure to enable it.
36281
36282       Fraunhofer AAC library
36283
36284       FFmpeg can make use of the Fraunhofer AAC library for AAC decoding &
36285       encoding.
36286
36287       Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
36288       instructions for installing the library.  Then pass
36289       "--enable-libfdk-aac" to configure to enable it.
36290
36291   OpenH264
36292       FFmpeg can make use of the OpenH264 library for H.264 decoding and
36293       encoding.
36294
36295       Go to <http://www.openh264.org/> and follow the instructions for
36296       installing the library. Then pass "--enable-libopenh264" to configure
36297       to enable it.
36298
36299       For decoding, this library is much more limited than the built-in
36300       decoder in libavcodec; currently, this library lacks support for
36301       decoding B-frames and some other main/high profile features. (It
36302       currently only supports constrained baseline profile and CABAC.) Using
36303       it is mostly useful for testing and for taking advantage of Cisco's
36304       patent portfolio license
36305       (<http://www.openh264.org/BINARY_LICENSE.txt>).
36306
36307   OpenJPEG
36308       FFmpeg can use the OpenJPEG libraries for decoding/encoding J2K videos.
36309       Go to <http://www.openjpeg.org/> to get the libraries and follow the
36310       installation instructions.  To enable using OpenJPEG in FFmpeg, pass
36311       "--enable-libopenjpeg" to ./configure.
36312
36313   rav1e
36314       FFmpeg can make use of rav1e (Rust AV1 Encoder) via its C bindings to
36315       encode videos.  Go to <https://github.com/xiph/rav1e/> and follow the
36316       instructions to build the C library. To enable using rav1e in FFmpeg,
36317       pass "--enable-librav1e" to ./configure.
36318
36319   SVT-AV1
36320       FFmpeg can make use of the Scalable Video Technology for AV1 library
36321       for AV1 encoding.
36322
36323       Go to <https://gitlab.com/AOMediaCodec/SVT-AV1/> and follow the
36324       instructions for installing the library. Then pass "--enable-libsvtav1"
36325       to configure to enable it.
36326
36327   TwoLAME
36328       FFmpeg can make use of the TwoLAME library for MP2 encoding.
36329
36330       Go to <http://www.twolame.org/> and follow the instructions for
36331       installing the library.  Then pass "--enable-libtwolame" to configure
36332       to enable it.
36333
36334   VapourSynth
36335       FFmpeg can read VapourSynth scripts as input. To enable support, pass
36336       "--enable-vapoursynth" to configure. Vapoursynth is detected via
36337       "pkg-config". Versions 42 or greater supported.  See
36338       <http://www.vapoursynth.com/>.
36339
36340       Due to security concerns, Vapoursynth scripts will not be autodetected
36341       so the input format has to be forced. For ff* CLI tools, add "-f
36342       vapoursynth" before the input "-i yourscript.vpy".
36343
36344   x264
36345       FFmpeg can make use of the x264 library for H.264 encoding.
36346
36347       Go to <http://www.videolan.org/developers/x264.html> and follow the
36348       instructions for installing the library. Then pass "--enable-libx264"
36349       to configure to enable it.
36350
36351           x264 is under the GNU Public License Version 2 or later (see
36352           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
36353           details), you must upgrade FFmpeg's license to GPL in order to use
36354           it.
36355
36356   x265
36357       FFmpeg can make use of the x265 library for HEVC encoding.
36358
36359       Go to <http://x265.org/developers.html> and follow the instructions for
36360       installing the library. Then pass "--enable-libx265" to configure to
36361       enable it.
36362
36363           x265 is under the GNU Public License Version 2 or later (see
36364           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
36365           details), you must upgrade FFmpeg's license to GPL in order to use
36366           it.
36367
36368   xavs
36369       FFmpeg can make use of the xavs library for AVS encoding.
36370
36371       Go to <http://xavs.sf.net/> and follow the instructions for installing
36372       the library. Then pass "--enable-libxavs" to configure to enable it.
36373
36374   xavs2
36375       FFmpeg can make use of the xavs2 library for AVS2-P2/IEEE1857.4 video
36376       encoding.
36377
36378       Go to <https://github.com/pkuvcl/xavs2> and follow the instructions for
36379       installing the library. Then pass "--enable-libxavs2" to configure to
36380       enable it.
36381
36382           libxavs2 is under the GNU Public License Version 2 or later (see
36383           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
36384           details), you must upgrade FFmpeg's license to GPL in order to use
36385           it.
36386
36387   ZVBI
36388       ZVBI is a VBI decoding library which can be used by FFmpeg to decode
36389       DVB teletext pages and DVB teletext subtitles.
36390
36391       Go to <http://sourceforge.net/projects/zapping/> and follow the
36392       instructions for installing the library. Then pass "--enable-libzvbi"
36393       to configure to enable it.
36394

SUPPORTED FILE FORMATS

36396       You can use the "-formats" and "-codecs" options to have an exhaustive
36397       list.
36398
36399   File Formats
36400       FFmpeg supports the following file formats through the "libavformat"
36401       library:
36402
36403       Name  :  Encoding @tab Decoding @tab Comments
36404       3dostr                     :    @tab X
36405       4xm                        :    @tab X
36406               @tab 4X Technologies format, used in some games.
36407
36408       8088flex TMV               :    @tab X
36409       AAX                        :    @tab X
36410               @tab Audible Enhanced Audio format, used in audiobooks.
36411
36412       AA                         :    @tab X
36413               @tab Audible Format 2, 3, and 4, used in audiobooks.
36414
36415       ACT Voice                  :    @tab X
36416               @tab contains G.729 audio
36417
36418       Adobe Filmstrip            :  X @tab X
36419       Audio IFF (AIFF)           :  X @tab X
36420       American Laser Games MM    :    @tab X
36421               @tab Multimedia format used in games like Mad Dog McCree.
36422
36423       3GPP AMR                   :  X @tab X
36424       Amazing Studio Packed Animation File   :    @tab X
36425               @tab Multimedia format used in game Heart Of Darkness.
36426
36427       Apple HTTP Live Streaming  :    @tab X
36428       Artworx Data Format        :    @tab X
36429       Interplay ACM              :    @tab X
36430               @tab Audio only format used in some Interplay games.
36431
36432       ADP                        :    @tab X
36433               @tab Audio format used on the Nintendo Gamecube.
36434
36435       AFC                        :    @tab X
36436               @tab Audio format used on the Nintendo Gamecube.
36437
36438       ADS/SS2                    :    @tab X
36439               @tab Audio format used on the PS2.
36440
36441       APNG                       :  X @tab X
36442       ASF                        :  X @tab X
36443               @tab Advanced / Active Streaming Format.
36444
36445       AST                        :  X @tab X
36446               @tab Audio format used on the Nintendo Wii.
36447
36448       AVI                        :  X @tab X
36449       AviSynth                   :    @tab X
36450       AVR                        :    @tab X
36451               @tab Audio format used on Mac.
36452
36453       AVS                        :    @tab X
36454               @tab Multimedia format used by the Creature Shock game.
36455
36456       Beam Software SIFF         :    @tab X
36457               @tab Audio and video format used in some games by Beam Software.
36458
36459       Bethesda Softworks VID     :    @tab X
36460               @tab Used in some games from Bethesda Softworks.
36461
36462       Binary text                :    @tab X
36463       Bink                       :    @tab X
36464               @tab Multimedia format used by many games.
36465
36466       Bink Audio                 :    @tab X
36467               @tab Audio only multimedia format used by some games.
36468
36469       Bitmap Brothers JV         :    @tab X
36470               @tab Used in Z and Z95 games.
36471
36472       BRP                        :    @tab X
36473               @tab Argonaut Games format.
36474
36475       Brute Force & Ignorance    :    @tab X
36476               @tab Used in the game Flash Traffic: City of Angels.
36477
36478       BFSTM                      :    @tab X
36479               @tab Audio format used on the Nintendo WiiU (based on BRSTM).
36480
36481       BRSTM                      :    @tab X
36482               @tab Audio format used on the Nintendo Wii.
36483
36484       BW64                       :    @tab X
36485               @tab Broadcast Wave 64bit.
36486
36487       BWF                        :  X @tab X
36488       codec2 (raw)               :  X @tab X
36489               @tab Must be given -mode format option to decode correctly.
36490
36491       codec2 (.c2 files)         :  X @tab X
36492               @tab Contains header with version and mode info, simplifying playback.
36493
36494       CRI ADX                    :  X @tab X
36495               @tab Audio-only format used in console video games.
36496
36497       CRI AIX                    :    @tab X
36498       CRI HCA                    :    @tab X
36499               @tab Audio-only format used in console video games.
36500
36501       Discworld II BMV           :    @tab X
36502       Interplay C93              :    @tab X
36503               @tab Used in the game Cyberia from Interplay.
36504
36505       Delphine Software International CIN  :    @tab X
36506               @tab Multimedia format used by Delphine Software games.
36507
36508       Digital Speech Standard (DSS)  :    @tab X
36509       CD+G                       :    @tab X
36510               @tab Video format used by CD+G karaoke disks
36511
36512       Phantom Cine               :    @tab X
36513       Commodore CDXL             :    @tab X
36514               @tab Amiga CD video format
36515
36516       Core Audio Format          :  X @tab X
36517               @tab Apple Core Audio Format
36518
36519       CRC testing format         :  X @tab
36520       Creative Voice             :  X @tab X
36521               @tab Created for the Sound Blaster Pro.
36522
36523       CRYO APC                   :    @tab X
36524               @tab Audio format used in some games by CRYO Interactive Entertainment.
36525
36526       D-Cinema audio             :  X @tab X
36527       Deluxe Paint Animation     :    @tab X
36528       DCSTR                      :    @tab X
36529       DFA                        :    @tab X
36530               @tab This format is used in Chronomaster game
36531
36532       DirectDraw Surface         :    @tab X
36533       DSD Stream File (DSF)      :    @tab X
36534       DV video                   :  X @tab X
36535       DXA                        :    @tab X
36536               @tab This format is used in the non-Windows version of the Feeble Files
36537                    game and different game cutscenes repacked for use with ScummVM.
36538
36539       Electronic Arts cdata   :     @tab X
36540       Electronic Arts Multimedia   :     @tab X
36541               @tab Used in various EA games; files have extensions like WVE and UV2.
36542
36543       Ensoniq Paris Audio File   :    @tab X
36544       FFM (FFserver live feed)   :  X @tab X
36545       Flash (SWF)                :  X @tab X
36546       Flash 9 (AVM2)             :  X @tab X
36547               @tab Only embedded audio is decoded.
36548
36549       FLI/FLC/FLX animation      :    @tab X
36550               @tab .fli/.flc files
36551
36552       Flash Video (FLV)          :  X @tab X
36553               @tab Macromedia Flash video files
36554
36555       framecrc testing format    :  X @tab
36556       FunCom ISS                 :    @tab X
36557               @tab Audio format used in various games from FunCom like The Longest Journey.
36558
36559       G.723.1                    :  X @tab X
36560       G.726                      :    @tab X @tab Both left- and right-
36561       justified.
36562       G.729 BIT                  :  X @tab X
36563       G.729 raw                  :    @tab X
36564       GENH                       :    @tab X
36565               @tab Audio format for various games.
36566
36567       GIF Animation              :  X @tab X
36568       GXF                        :  X @tab X
36569               @tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley
36570                    playout servers.
36571
36572       HNM  :    @tab X
36573               @tab Only version 4 supported, used in some games from Cryo Interactive
36574
36575       iCEDraw File               :    @tab X
36576       ICO                        :  X @tab X
36577               @tab Microsoft Windows ICO
36578
36579       id Quake II CIN video      :    @tab X
36580       id RoQ                     :  X @tab X
36581               @tab Used in Quake III, Jedi Knight 2 and other computer games.
36582
36583       IEC61937 encapsulation  :  X @tab X
36584       IFF                        :    @tab X
36585               @tab Interchange File Format
36586
36587       IFV                        :    @tab X
36588               @tab A format used by some old CCTV DVRs.
36589
36590       iLBC                       :  X @tab X
36591       Interplay MVE              :    @tab X
36592               @tab Format used in various Interplay computer games.
36593
36594       Iterated Systems ClearVideo  :      @tab  X
36595               @tab I-frames only
36596
36597       IV8                        :    @tab X
36598               @tab A format generated by IndigoVision 8000 video server.
36599
36600       IVF (On2)                  :  X @tab X
36601               @tab A format used by libvpx
36602
36603       Internet Video Recording   :    @tab X
36604       IRCAM                      :  X @tab X
36605       LATM                       :  X @tab X
36606       LMLM4                      :    @tab X
36607               @tab Used by Linux Media Labs MPEG-4 PCI boards
36608
36609       LOAS                       :    @tab X
36610               @tab contains LATM multiplexed AAC audio
36611
36612       LRC                        :  X @tab X
36613       LVF                        :    @tab X
36614       LXF                        :    @tab X
36615               @tab VR native stream format, used by Leitch/Harris' video servers.
36616
36617       Magic Lantern Video (MLV)  :    @tab X
36618       Matroska                   :  X @tab X
36619       Matroska audio             :  X @tab
36620       FFmpeg metadata            :  X @tab X
36621               @tab Metadata in text format.
36622
36623       MAXIS XA                   :    @tab X
36624               @tab Used in Sim City 3000; file extension .xa.
36625
36626       MCA                        :    @tab X
36627               @tab Used in some games from Capcom; file extension .mca.
36628
36629       MD Studio                  :    @tab X
36630       Metal Gear Solid: The Twin Snakes  :  @tab X
36631       Megalux Frame              :    @tab X
36632               @tab Used by Megalux Ultimate Paint
36633
36634       Mobotix .mxg               :    @tab X
36635       Monkey's Audio             :    @tab X
36636       Motion Pixels MVI          :    @tab X
36637       MOV/QuickTime/MP4          :  X @tab X
36638               @tab 3GP, 3GP2, PSP, iPod variants supported
36639
36640       MP2                        :  X @tab X
36641       MP3                        :  X @tab X
36642       MPEG-1 System              :  X @tab X
36643               @tab muxed audio and video, VCD format supported
36644
36645       MPEG-PS (program stream)   :  X @tab X
36646               @tab also known as C<VOB> file, SVCD and DVD format supported
36647
36648       MPEG-TS (transport stream)  :  X @tab X
36649               @tab also known as DVB Transport Stream
36650
36651       MPEG-4                     :  X @tab X
36652               @tab MPEG-4 is a variant of QuickTime.
36653
36654       MSF                        :    @tab X
36655               @tab Audio format used on the PS3.
36656
36657       Mirillis FIC video         :    @tab X
36658               @tab No cursor rendering.
36659
36660       MIDI Sample Dump Standard  :    @tab X
36661       MIME multipart JPEG        :  X @tab
36662       MSN TCP webcam             :    @tab X
36663               @tab Used by MSN Messenger webcam streams.
36664
36665       MTV                        :    @tab X
36666       Musepack                   :    @tab X
36667       Musepack SV8               :    @tab X
36668       Material eXchange Format (MXF)  :  X @tab X
36669               @tab SMPTE 377M, used by D-Cinema, broadcast industry.
36670
36671       Material eXchange Format (MXF), D-10 Mapping  :  X @tab X
36672               @tab SMPTE 386M, D-10/IMX Mapping.
36673
36674       NC camera feed             :    @tab X
36675               @tab NC (AVIP NC4600) camera streams
36676
36677       NIST SPeech HEader REsources  :    @tab X
36678       Computerized Speech Lab NSP  :    @tab X
36679       NTT TwinVQ (VQF)           :    @tab X
36680               @tab Nippon Telegraph and Telephone Corporation TwinVQ.
36681
36682       Nullsoft Streaming Video   :    @tab X
36683       NuppelVideo                :    @tab X
36684       NUT                        :  X @tab X
36685               @tab NUT Open Container Format
36686
36687       Ogg                        :  X @tab X
36688       Playstation Portable PMP   :    @tab X
36689       Portable Voice Format      :    @tab X
36690       TechnoTrend PVA            :    @tab X
36691               @tab Used by TechnoTrend DVB PCI boards.
36692
36693       QCP                        :    @tab X
36694       raw ADTS (AAC)             :  X @tab X
36695       raw AC-3                   :  X @tab X
36696       raw AMR-NB                 :    @tab X
36697       raw AMR-WB                 :    @tab X
36698       raw aptX                   :  X @tab X
36699       raw aptX HD                :  X @tab X
36700       raw Chinese AVS video      :  X @tab X
36701       raw DFPWM                  :  X @tab X
36702       raw Dirac                  :  X @tab X
36703       raw DNxHD                  :  X @tab X
36704       raw DTS                    :  X @tab X
36705       raw DTS-HD                 :    @tab X
36706       raw E-AC-3                 :  X @tab X
36707       raw FLAC                   :  X @tab X
36708       raw GSM                    :    @tab X
36709       raw H.261                  :  X @tab X
36710       raw H.263                  :  X @tab X
36711       raw H.264                  :  X @tab X
36712       raw HEVC                   :  X @tab X
36713       raw Ingenient MJPEG        :    @tab X
36714       raw MJPEG                  :  X @tab X
36715       raw MLP                    :    @tab X
36716       raw MPEG                   :    @tab X
36717       raw MPEG-1                 :    @tab X
36718       raw MPEG-2                 :    @tab X
36719       raw MPEG-4                 :  X @tab X
36720       raw NULL                   :  X @tab
36721       raw video                  :  X @tab X
36722       raw id RoQ                 :  X @tab
36723       raw OBU                    :  X @tab X
36724       raw SBC                    :  X @tab X
36725       raw Shorten                :    @tab X
36726       raw TAK                    :    @tab X
36727       raw TrueHD                 :  X @tab X
36728       raw VC-1                   :  X @tab X
36729       raw PCM A-law              :  X @tab X
36730       raw PCM mu-law             :  X @tab X
36731       raw PCM Archimedes VIDC    :  X @tab X
36732       raw PCM signed 8 bit       :  X @tab X
36733       raw PCM signed 16 bit big-endian   :  X @tab X
36734       raw PCM signed 16 bit little-endian   :  X @tab X
36735       raw PCM signed 24 bit big-endian   :  X @tab X
36736       raw PCM signed 24 bit little-endian   :  X @tab X
36737       raw PCM signed 32 bit big-endian   :  X @tab X
36738       raw PCM signed 32 bit little-endian   :  X @tab X
36739       raw PCM signed 64 bit big-endian   :  X @tab X
36740       raw PCM signed 64 bit little-endian   :  X @tab X
36741       raw PCM unsigned 8 bit     :  X @tab X
36742       raw PCM unsigned 16 bit big-endian   :  X @tab X
36743       raw PCM unsigned 16 bit little-endian   :  X @tab X
36744       raw PCM unsigned 24 bit big-endian   :  X @tab X
36745       raw PCM unsigned 24 bit little-endian   :  X @tab X
36746       raw PCM unsigned 32 bit big-endian   :  X @tab X
36747       raw PCM unsigned 32 bit little-endian   :  X @tab X
36748       raw PCM 16.8 floating point little-endian  :    @tab X
36749       raw PCM 24.0 floating point little-endian  :    @tab X
36750       raw PCM floating-point 32 bit big-endian   :  X @tab X
36751       raw PCM floating-point 32 bit little-endian   :  X @tab X
36752       raw PCM floating-point 64 bit big-endian   :  X @tab X
36753       raw PCM floating-point 64 bit little-endian   :  X @tab X
36754       RDT                        :    @tab X
36755       REDCODE R3D                :    @tab X
36756               @tab File format used by RED Digital cameras, contains JPEG 2000 frames and PCM audio.
36757
36758       RealMedia                  :  X @tab X
36759       Redirector                 :    @tab X
36760       RedSpark                   :    @tab X
36761       Renderware TeXture Dictionary  :    @tab X
36762       Resolume DXV               :    @tab X
36763       RF64                       :    @tab X
36764       RL2                        :    @tab X
36765               @tab Audio and video format used in some games by Entertainment Software Partners.
36766
36767       RPL/ARMovie                :    @tab X
36768       Lego Mindstorms RSO        :  X @tab X
36769       RSD                        :    @tab X
36770       RTMP                       :  X @tab X
36771               @tab Output is performed by publishing stream to RTMP server
36772
36773       RTP                        :  X @tab X
36774       RTSP                       :  X @tab X
36775       Sample Dump eXchange       :    @tab X
36776       SAP                        :  X @tab X
36777       SBG                        :    @tab X
36778       SDP                        :    @tab X
36779       SER                        :    @tab X
36780       Sega FILM/CPK              :  X @tab X
36781               @tab Used in many Sega Saturn console games.
36782
36783       Silicon Graphics Movie     :    @tab X
36784       Sierra SOL                 :    @tab X
36785               @tab .sol files used in Sierra Online games.
36786
36787       Sierra VMD                 :    @tab X
36788               @tab Used in Sierra CD-ROM games.
36789
36790       Smacker                    :    @tab X
36791               @tab Multimedia format used by many games.
36792
36793       SMJPEG                     :  X @tab X
36794               @tab Used in certain Loki game ports.
36795
36796       SMPTE 337M encapsulation   :    @tab X
36797       Smush                      :    @tab X
36798               @tab Multimedia format used in some LucasArts games.
36799
36800       Sony OpenMG (OMA)          :  X @tab X
36801               @tab Audio format used in Sony Sonic Stage and Sony Vegas.
36802
36803       Sony PlayStation STR       :    @tab X
36804       Sony Wave64 (W64)          :  X @tab X
36805       SoX native format          :  X @tab X
36806       SUN AU format              :  X @tab X
36807       SUP raw PGS subtitles      :  X @tab X
36808       SVAG                       :    @tab X
36809               @tab Audio format used in Konami PS2 games.
36810
36811       TDSC                       :    @tab X
36812       Text files                 :    @tab X
36813       THP                        :    @tab X
36814               @tab Used on the Nintendo GameCube.
36815
36816       Tiertex Limited SEQ        :    @tab X
36817               @tab Tiertex .seq files used in the DOS CD-ROM version of the game Flashback.
36818
36819       True Audio                 :  X @tab X
36820       VAG                        :    @tab X
36821               @tab Audio format used in many Sony PS2 games.
36822
36823       VC-1 test bitstream        :  X @tab X
36824       Vidvox Hap                 :  X @tab X
36825       Vivo                       :    @tab X
36826       VPK                        :    @tab X
36827               @tab Audio format used in Sony PS games.
36828
36829       WAV                        :  X @tab X
36830       WavPack                    :  X @tab X
36831       WebM                       :  X @tab X
36832       Windows Televison (WTV)    :  X @tab X
36833       Wing Commander III movie   :    @tab X
36834               @tab Multimedia format used in Origin's Wing Commander III computer game.
36835
36836       Westwood Studios audio     :  X @tab X
36837               @tab Multimedia format used in Westwood Studios games.
36838
36839       Westwood Studios VQA       :    @tab X
36840               @tab Multimedia format used in Westwood Studios games.
36841
36842       Wideband Single-bit Data (WSD)  :    @tab X
36843       WVE                        :    @tab X
36844       XMV                        :    @tab X
36845               @tab Microsoft video container used in Xbox games.
36846
36847       XVAG                       :    @tab X
36848               @tab Audio format used on the PS3.
36849
36850       xWMA                       :    @tab X
36851               @tab Microsoft audio container used by XAudio 2.
36852
36853       eXtended BINary text (XBIN)  :  @tab X
36854       YUV4MPEG pipe              :  X @tab X
36855       Psygnosis YOP              :    @tab X
36856
36857       "X" means that the feature in that column (encoding / decoding) is
36858       supported.
36859
36860   Image Formats
36861       FFmpeg can read and write images for each frame of a video sequence.
36862       The following image formats are supported:
36863
36864       Name  :  Encoding @tab Decoding @tab Comments
36865       .Y.U.V        :  X @tab X
36866               @tab one raw file per component
36867
36868       Alias PIX     :  X @tab X
36869               @tab Alias/Wavefront PIX image format
36870
36871       animated GIF  :  X @tab X
36872       APNG          :  X @tab X
36873               @tab Animated Portable Network Graphics
36874
36875       BMP           :  X @tab X
36876               @tab Microsoft BMP image
36877
36878       BRender PIX   :    @tab X
36879               @tab Argonaut BRender 3D engine image format.
36880
36881       CRI           :    @tab X
36882               @tab Cintel RAW
36883
36884       DPX           :  X @tab X
36885               @tab Digital Picture Exchange
36886
36887       EXR           :    @tab X
36888               @tab OpenEXR
36889
36890       FITS          :  X @tab X
36891               @tab Flexible Image Transport System
36892
36893       IMG           :    @tab X
36894               @tab GEM Raster image
36895
36896       JPEG          :  X @tab X
36897               @tab Progressive JPEG is not supported.
36898
36899       JPEG 2000     :  X @tab X
36900       JPEG-LS       :  X @tab X
36901       LJPEG         :  X @tab
36902               @tab Lossless JPEG
36903
36904       MSP           :    @tab X
36905               @tab Microsoft Paint image
36906
36907       PAM           :  X @tab X
36908               @tab PAM is a PNM extension with alpha support.
36909
36910       PBM           :  X @tab X
36911               @tab Portable BitMap image
36912
36913       PCD           :    @tab X
36914               @tab PhotoCD
36915
36916       PCX           :  X @tab X
36917               @tab PC Paintbrush
36918
36919       PFM           :  X @tab X
36920               @tab Portable FloatMap image
36921
36922       PGM           :  X @tab X
36923               @tab Portable GrayMap image
36924
36925       PGMYUV        :  X @tab X
36926               @tab PGM with U and V components in YUV 4:2:0
36927
36928       PGX           :    @tab X
36929               @tab PGX file decoder
36930
36931       PHM           :  X @tab X
36932               @tab Portable HalfFloatMap image
36933
36934       PIC           :  @tab X
36935               @tab Pictor/PC Paint
36936
36937       PNG           :  X @tab X
36938               @tab Portable Network Graphics image
36939
36940       PPM           :  X @tab X
36941               @tab Portable PixelMap image
36942
36943       PSD           :    @tab X
36944               @tab Photoshop
36945
36946       PTX           :    @tab X
36947               @tab V.Flash PTX format
36948
36949       QOI           :  X @tab X
36950               @tab Quite OK Image format
36951
36952       SGI           :  X @tab X
36953               @tab SGI RGB image format
36954
36955       Sun Rasterfile   :  X @tab X
36956               @tab Sun RAS image format
36957
36958       TIFF          :  X @tab X
36959               @tab YUV, JPEG and some extension is not supported yet.
36960
36961       Truevision Targa   :  X @tab X
36962               @tab Targa (.TGA) image format
36963
36964       VBN   :  X @tab X
36965               @tab Vizrt Binary Image format
36966
36967       WebP          :  E @tab X
36968               @tab WebP image format, encoding supported through external library libwebp
36969
36970       XBM   :  X @tab X
36971               @tab X BitMap image format
36972
36973       XFace  :  X @tab X
36974               @tab X-Face image format
36975
36976       XPM   :    @tab X
36977               @tab X PixMap image format
36978
36979       XWD   :  X @tab X
36980               @tab X Window Dump image format
36981
36982       "X" means that the feature in that column (encoding / decoding) is
36983       supported.
36984
36985       "E" means that support is provided through an external library.
36986
36987   Video Codecs
36988       Name  :  Encoding @tab Decoding @tab Comments
36989       4X Movie                :      @tab  X
36990               @tab Used in certain computer games.
36991
36992       8088flex TMV            :      @tab  X
36993       A64 multicolor          :   X  @tab
36994               @tab Creates video suitable to be played on a commodore 64 (multicolor mode).
36995
36996       Amazing Studio PAF Video  :      @tab  X
36997       American Laser Games MM   :     @tab X
36998               @tab Used in games like Mad Dog McCree.
36999
37000       Amuse Graphics Movie    :      @tab  X
37001       AMV Video               :   X  @tab  X
37002               @tab Used in Chinese MP3 players.
37003
37004       ANSI/ASCII art          :      @tab  X
37005       Apple Intermediate Codec  :      @tab  X
37006       Apple MJPEG-B           :      @tab  X
37007       Apple Pixlet            :      @tab  X
37008       Apple ProRes            :   X  @tab  X
37009               @tab fourcc: apch,apcn,apcs,apco,ap4h,ap4x
37010
37011       Apple QuickDraw         :      @tab  X
37012               @tab fourcc: qdrw
37013
37014       Argonaut Video          :      @tab  X
37015               @tab Used in some Argonaut games.
37016
37017       Asus v1                 :   X  @tab  X
37018               @tab fourcc: ASV1
37019
37020       Asus v2                 :   X  @tab  X
37021               @tab fourcc: ASV2
37022
37023       ATI VCR1                :      @tab  X
37024               @tab fourcc: VCR1
37025
37026       ATI VCR2                :      @tab  X
37027               @tab fourcc: VCR2
37028
37029       Auravision Aura         :      @tab  X
37030       Auravision Aura 2       :      @tab  X
37031       Autodesk Animator Flic video   :      @tab  X
37032       Autodesk RLE            :      @tab  X
37033               @tab fourcc: AASC
37034
37035       AV1                     :   E  @tab  E
37036               @tab Supported through external libraries libaom, libdav1d, librav1e and libsvtav1
37037
37038       Avid 1:1 10-bit RGB Packer   :   X  @tab  X
37039               @tab fourcc: AVrp
37040
37041       AVS (Audio Video Standard) video   :      @tab  X
37042               @tab Video encoding used by the Creature Shock game.
37043
37044       AVS2-P2/IEEE1857.4      :   E  @tab  E
37045               @tab Supported through external libraries libxavs2 and libdavs2
37046
37047       AVS3-P2/IEEE1857.10     :      @tab  E
37048               @tab Supported through external library libuavs3d
37049
37050       AYUV                    :   X  @tab  X
37051               @tab Microsoft uncompressed packed 4:4:4:4
37052
37053       Beam Software VB        :      @tab  X
37054       Bethesda VID video      :      @tab  X
37055               @tab Used in some games from Bethesda Softworks.
37056
37057       Bink Video              :      @tab  X
37058       BitJazz SheerVideo      :      @tab  X
37059       Bitmap Brothers JV video   :    @tab X
37060       y41p Brooktree uncompressed 4:1:1 12-bit      :   X  @tab  X
37061       Brooktree ProSumer Video   :      @tab  X
37062               @tab fourcc: BT20
37063
37064       Brute Force & Ignorance    :    @tab X
37065               @tab Used in the game Flash Traffic: City of Angels.
37066
37067       C93 video               :      @tab  X
37068               @tab Codec used in Cyberia game.
37069
37070       CamStudio               :      @tab  X
37071               @tab fourcc: CSCD
37072
37073       CD+G                    :      @tab  X
37074               @tab Video codec for CD+G karaoke disks
37075
37076       CDXL                    :      @tab  X
37077               @tab Amiga CD video codec
37078
37079       Chinese AVS video       :   E  @tab  X
37080               @tab AVS1-P2, JiZhun profile, encoding through external library libxavs
37081
37082       Delphine Software International CIN video   :      @tab  X
37083               @tab Codec used in Delphine Software International games.
37084
37085       Discworld II BMV Video  :      @tab  X
37086       CineForm HD             :   X  @tab  X
37087       Canopus HQ              :      @tab  X
37088       Canopus HQA             :      @tab  X
37089       Canopus HQX             :      @tab  X
37090       Canopus Lossless Codec  :      @tab  X
37091       CDToons                 :      @tab  X
37092               @tab Codec used in various Broderbund games.
37093
37094       Cinepak                 :      @tab  X
37095       Cirrus Logic AccuPak    :   X  @tab  X
37096               @tab fourcc: CLJR
37097
37098       CPiA Video Format       :      @tab  X
37099       Creative YUV (CYUV)     :      @tab  X
37100       DFA                     :      @tab  X
37101               @tab Codec used in Chronomaster game.
37102
37103       Dirac                   :   E  @tab  X
37104               @tab supported though the native vc2 (Dirac Pro) encoder
37105
37106       Deluxe Paint Animation  :      @tab  X
37107       DNxHD                   :    X @tab  X
37108               @tab aka SMPTE VC3
37109
37110       Duck TrueMotion 1.0    :      @tab  X
37111               @tab fourcc: DUCK
37112
37113       Duck TrueMotion 2.0     :      @tab  X
37114               @tab fourcc: TM20
37115
37116       Duck TrueMotion 2.0 RT  :      @tab  X
37117               @tab fourcc: TR20
37118
37119       DV (Digital Video)      :   X  @tab  X
37120       Dxtory capture format   :      @tab  X
37121       Feeble Files/ScummVM DXA   :      @tab  X
37122               @tab Codec originally used in Feeble Files game.
37123
37124       Electronic Arts CMV video   :      @tab  X
37125               @tab Used in NHL 95 game.
37126
37127       Electronic Arts Madcow video   :      @tab  X
37128       Electronic Arts TGV video   :      @tab  X
37129       Electronic Arts TGQ video   :      @tab  X
37130       Electronic Arts TQI video   :      @tab  X
37131       Escape 124              :      @tab  X
37132       Escape 130              :      @tab  X
37133       FFmpeg video codec #1   :   X  @tab  X
37134               @tab lossless codec (fourcc: FFV1)
37135
37136       Flash Screen Video v1   :   X  @tab  X
37137               @tab fourcc: FSV1
37138
37139       Flash Screen Video v2   :   X  @tab  X
37140       Flash Video (FLV)       :   X  @tab  X
37141               @tab Sorenson H.263 used in Flash
37142
37143       FM Screen Capture Codec   :      @tab  X
37144       Forward Uncompressed    :      @tab  X
37145       Fraps                   :      @tab  X
37146       Go2Meeting              :      @tab  X
37147               @tab fourcc: G2M2, G2M3
37148
37149       Go2Webinar              :      @tab  X
37150               @tab fourcc: G2M4
37151
37152       Gremlin Digital Video   :      @tab  X
37153       H.261                   :   X  @tab  X
37154       H.263 / H.263-1996      :   X  @tab  X
37155       H.263+ / H.263-1998 / H.263 version 2   :   X  @tab  X
37156       H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10   :   E  @tab  X
37157               @tab encoding supported through external library libx264 and OpenH264
37158
37159       HEVC                    :   X  @tab  X
37160               @tab encoding supported through external library libx265 and libkvazaar
37161
37162       HNM version 4           :      @tab  X
37163       HuffYUV                 :   X  @tab  X
37164       HuffYUV FFmpeg variant  :   X  @tab  X
37165       IBM Ultimotion          :      @tab  X
37166               @tab fourcc: ULTI
37167
37168       id Cinematic video      :      @tab  X
37169               @tab Used in Quake II.
37170
37171       id RoQ video            :   X  @tab  X
37172               @tab Used in Quake III, Jedi Knight 2, other computer games.
37173
37174       IFF ILBM                :      @tab  X
37175               @tab IFF interleaved bitmap
37176
37177       IFF ByteRun1            :      @tab  X
37178               @tab IFF run length encoded bitmap
37179
37180       Infinity IMM4           :      @tab  X
37181       Intel H.263             :      @tab  X
37182       Intel Indeo 2           :      @tab  X
37183       Intel Indeo 3           :      @tab  X
37184       Intel Indeo 4           :      @tab  X
37185       Intel Indeo 5           :      @tab  X
37186       Interplay C93           :      @tab  X
37187               @tab Used in the game Cyberia from Interplay.
37188
37189       Interplay MVE video     :      @tab  X
37190               @tab Used in Interplay .MVE files.
37191
37192       J2K  :   X  @tab  X
37193       Karl Morton's video codec   :      @tab  X
37194               @tab Codec used in Worms games.
37195
37196       Kega Game Video (KGV1)  :       @tab  X
37197               @tab Kega emulator screen capture codec.
37198
37199       Lagarith                :      @tab  X
37200       LCL (LossLess Codec Library) MSZH   :      @tab  X
37201       LCL (LossLess Codec Library) ZLIB   :   E  @tab  E
37202       LOCO                    :      @tab  X
37203       LucasArts SANM/Smush    :      @tab  X
37204               @tab Used in LucasArts games / SMUSH animations.
37205
37206       lossless MJPEG          :   X  @tab  X
37207       MagicYUV Video          :   X  @tab  X
37208       Mandsoft Screen Capture Codec   :      @tab  X
37209       Microsoft ATC Screen    :      @tab  X
37210               @tab Also known as Microsoft Screen 3.
37211
37212       Microsoft Expression Encoder Screen   :      @tab  X
37213               @tab Also known as Microsoft Titanium Screen 2.
37214
37215       Microsoft RLE           :      @tab  X
37216       Microsoft Screen 1      :      @tab  X
37217               @tab Also known as Windows Media Video V7 Screen.
37218
37219       Microsoft Screen 2      :      @tab  X
37220               @tab Also known as Windows Media Video V9 Screen.
37221
37222       Microsoft Video 1       :      @tab  X
37223       Mimic                   :      @tab  X
37224               @tab Used in MSN Messenger Webcam streams.
37225
37226       Miro VideoXL            :      @tab  X
37227               @tab fourcc: VIXL
37228
37229       MJPEG (Motion JPEG)     :   X  @tab  X
37230       Mobotix MxPEG video     :      @tab  X
37231       Motion Pixels video     :      @tab  X
37232       MPEG-1 video            :   X  @tab  X
37233       MPEG-2 video            :   X  @tab  X
37234       MPEG-4 part 2           :   X  @tab  X
37235               @tab libxvidcore can be used alternatively for encoding.
37236
37237       MPEG-4 part 2 Microsoft variant version 1   :      @tab  X
37238       MPEG-4 part 2 Microsoft variant version 2   :   X  @tab  X
37239       MPEG-4 part 2 Microsoft variant version 3   :   X  @tab  X
37240       Newtek SpeedHQ                :   X  @tab  X
37241       Nintendo Gamecube THP video   :      @tab  X
37242       NotchLC                 :      @tab  X
37243       NuppelVideo/RTjpeg      :      @tab  X
37244               @tab Video encoding used in NuppelVideo files.
37245
37246       On2 VP3                 :      @tab  X
37247               @tab still experimental
37248
37249       On2 VP4                 :      @tab  X
37250               @tab fourcc: VP40
37251
37252       On2 VP5                 :      @tab  X
37253               @tab fourcc: VP50
37254
37255       On2 VP6                 :      @tab  X
37256               @tab fourcc: VP60,VP61,VP62
37257
37258       On2 VP7                 :      @tab  X
37259               @tab fourcc: VP70,VP71
37260
37261       VP8                     :   E  @tab  X
37262               @tab fourcc: VP80, encoding supported through external library libvpx
37263
37264       VP9                     :   E  @tab  X
37265               @tab encoding supported through external library libvpx
37266
37267       Pinnacle TARGA CineWave YUV16  :      @tab  X
37268               @tab fourcc: Y216
37269
37270       Q-team QPEG             :      @tab  X
37271               @tab fourccs: QPEG, Q1.0, Q1.1
37272
37273       QuickTime 8BPS video    :      @tab  X
37274       QuickTime Animation (RLE) video   :   X  @tab  X
37275               @tab fourcc: 'rle '
37276
37277       QuickTime Graphics (SMC)   :   X  @tab  X
37278               @tab fourcc: 'smc '
37279
37280       QuickTime video (RPZA)  :   X  @tab  X
37281               @tab fourcc: rpza
37282
37283       R10K AJA Kona 10-bit RGB Codec      :   X  @tab  X
37284       R210 Quicktime Uncompressed RGB 10-bit      :   X  @tab  X
37285       Raw Video               :   X  @tab  X
37286       RealVideo 1.0           :   X  @tab  X
37287       RealVideo 2.0           :   X  @tab  X
37288       RealVideo 3.0           :      @tab  X
37289               @tab still far from ideal
37290
37291       RealVideo 4.0           :      @tab  X
37292       Renderware TXD (TeXture Dictionary)   :      @tab  X
37293               @tab Texture dictionaries used by the Renderware Engine.
37294
37295       RL2 video               :      @tab  X
37296               @tab used in some games by Entertainment Software Partners
37297
37298       ScreenPressor           :      @tab  X
37299       Screenpresso            :      @tab  X
37300       Screen Recorder Gold Codec   :      @tab  X
37301       Sierra VMD video        :      @tab  X
37302               @tab Used in Sierra VMD files.
37303
37304       Silicon Graphics Motion Video Compressor 1 (MVC1)   :      @tab  X
37305       Silicon Graphics Motion Video Compressor 2 (MVC2)   :      @tab  X
37306       Silicon Graphics RLE 8-bit video   :      @tab  X
37307       Smacker video           :      @tab  X
37308               @tab Video encoding used in Smacker.
37309
37310       SMPTE VC-1              :      @tab  X
37311       Snow                    :   X  @tab  X
37312               @tab experimental wavelet codec (fourcc: SNOW)
37313
37314       Sony PlayStation MDEC (Motion DECoder)   :      @tab  X
37315       Sorenson Vector Quantizer 1   :   X  @tab  X
37316               @tab fourcc: SVQ1
37317
37318       Sorenson Vector Quantizer 3   :      @tab  X
37319               @tab fourcc: SVQ3
37320
37321       Sunplus JPEG (SP5X)     :      @tab  X
37322               @tab fourcc: SP5X
37323
37324       TechSmith Screen Capture Codec   :      @tab  X
37325               @tab fourcc: TSCC
37326
37327       TechSmith Screen Capture Codec 2   :      @tab  X
37328               @tab fourcc: TSC2
37329
37330       Theora                  :   E  @tab  X
37331               @tab encoding supported through external library libtheora
37332
37333       Tiertex Limited SEQ video   :      @tab  X
37334               @tab Codec used in DOS CD-ROM FlashBack game.
37335
37336       Ut Video                :   X  @tab  X
37337       v210 QuickTime uncompressed 4:2:2 10-bit      :   X  @tab  X
37338       v308 QuickTime uncompressed 4:4:4             :   X  @tab  X
37339       v408 QuickTime uncompressed 4:4:4:4           :   X  @tab  X
37340       v410 QuickTime uncompressed 4:4:4 10-bit      :   X  @tab  X
37341       VBLE Lossless Codec     :      @tab  X
37342       VMware Screen Codec / VMware Video   :      @tab  X
37343               @tab Codec used in videos captured by VMware.
37344
37345       Westwood Studios VQA (Vector Quantized Animation) video   :      @tab
37346       X
37347       Windows Media Image     :      @tab  X
37348       Windows Media Video 7   :   X  @tab  X
37349       Windows Media Video 8   :   X  @tab  X
37350       Windows Media Video 9   :      @tab  X
37351               @tab not completely working
37352
37353       Wing Commander III / Xan   :      @tab  X
37354               @tab Used in Wing Commander III .MVE files.
37355
37356       Wing Commander IV / Xan   :      @tab  X
37357               @tab Used in Wing Commander IV.
37358
37359       Winnov WNV1             :      @tab  X
37360       WMV7                    :   X  @tab  X
37361       YAMAHA SMAF             :   X  @tab  X
37362       Psygnosis YOP Video     :      @tab  X
37363       yuv4                    :   X  @tab  X
37364               @tab libquicktime uncompressed packed 4:2:0
37365
37366       ZeroCodec Lossless Video  :      @tab  X
37367       ZLIB                    :   X  @tab  X
37368               @tab part of LCL, encoder experimental
37369
37370       Zip Motion Blocks Video   :    X @tab  X
37371               @tab Encoder works only in PAL8.
37372
37373       "X" means that the feature in that column (encoding / decoding) is
37374       supported.
37375
37376       "E" means that support is provided through an external library.
37377
37378   Audio Codecs
37379       Name  :  Encoding @tab Decoding @tab Comments
37380       8SVX exponential        :      @tab  X
37381       8SVX fibonacci          :      @tab  X
37382       AAC                     :  EX  @tab  X
37383               @tab encoding supported through internal encoder and external library libfdk-aac
37384
37385       AAC+                    :   E  @tab  IX
37386               @tab encoding supported through external library libfdk-aac
37387
37388       AC-3                    :  IX  @tab  IX
37389       ACELP.KELVIN            :      @tab  X
37390       ADPCM 4X Movie          :      @tab  X
37391       ADPCM Yamaha AICA       :      @tab  X
37392       ADPCM AmuseGraphics Movie  :     @tab  X
37393       ADPCM Argonaut Games    :  X   @tab  X
37394       ADPCM CDROM XA          :      @tab  X
37395       ADPCM Creative Technology  :      @tab  X
37396               @tab 16 -E<gt> 4, 8 -E<gt> 4, 8 -E<gt> 3, 8 -E<gt> 2
37397
37398       ADPCM Electronic Arts   :      @tab  X
37399               @tab Used in various EA titles.
37400
37401       ADPCM Electronic Arts Maxis CDROM XS   :      @tab  X
37402               @tab Used in Sim City 3000.
37403
37404       ADPCM Electronic Arts R1   :      @tab  X
37405       ADPCM Electronic Arts R2   :      @tab  X
37406       ADPCM Electronic Arts R3   :      @tab  X
37407       ADPCM Electronic Arts XAS  :      @tab  X
37408       ADPCM G.722             :   X  @tab  X
37409       ADPCM G.726             :   X  @tab  X
37410       ADPCM IMA Acorn Replay  :      @tab  X
37411       ADPCM IMA AMV           :   X  @tab  X
37412               @tab Used in AMV files
37413
37414       ADPCM IMA Cunning Developments   :      @tab  X
37415       ADPCM IMA Electronic Arts EACS   :      @tab  X
37416       ADPCM IMA Electronic Arts SEAD   :      @tab  X
37417       ADPCM IMA Funcom        :      @tab  X
37418       ADPCM IMA High Voltage Software ALP       :   X  @tab  X
37419       ADPCM IMA QuickTime     :   X  @tab  X
37420       ADPCM IMA Simon & Schuster Interactive    :   X  @tab  X
37421       ADPCM IMA Ubisoft APM   :   X  @tab  X
37422       ADPCM IMA Loki SDL MJPEG   :      @tab  X
37423       ADPCM IMA WAV           :   X  @tab  X
37424       ADPCM IMA Westwood      :      @tab  X
37425       ADPCM ISS IMA           :      @tab  X
37426               @tab Used in FunCom games.
37427
37428       ADPCM IMA Dialogic      :      @tab  X
37429       ADPCM IMA Duck DK3      :      @tab  X
37430               @tab Used in some Sega Saturn console games.
37431
37432       ADPCM IMA Duck DK4      :      @tab  X
37433               @tab Used in some Sega Saturn console games.
37434
37435       ADPCM IMA Radical       :      @tab  X
37436       ADPCM Microsoft         :   X  @tab  X
37437       ADPCM MS IMA            :   X  @tab  X
37438       ADPCM Nintendo Gamecube AFC   :      @tab  X
37439       ADPCM Nintendo Gamecube DTK   :      @tab  X
37440       ADPCM Nintendo THP   :      @tab  X
37441       ADPCM Playstation       :      @tab  X
37442       ADPCM QT IMA            :   X  @tab  X
37443       ADPCM SEGA CRI ADX      :   X  @tab  X
37444               @tab Used in Sega Dreamcast games.
37445
37446       ADPCM Shockwave Flash   :   X  @tab  X
37447       ADPCM Sound Blaster Pro 2-bit   :      @tab  X
37448       ADPCM Sound Blaster Pro 2.6-bit   :      @tab  X
37449       ADPCM Sound Blaster Pro 4-bit   :      @tab  X
37450       ADPCM VIMA              :      @tab  X
37451               @tab Used in LucasArts SMUSH animations.
37452
37453       ADPCM Westwood Studios IMA       :   X @tab  X
37454               @tab Used in Westwood Studios games like Command and Conquer.
37455
37456       ADPCM Yamaha            :   X  @tab  X
37457       ADPCM Zork              :      @tab  X
37458       AMR-NB                  :   E  @tab  X
37459               @tab encoding supported through external library libopencore-amrnb
37460
37461       AMR-WB                  :   E  @tab  X
37462               @tab encoding supported through external library libvo-amrwbenc
37463
37464       Amazing Studio PAF Audio  :      @tab  X
37465       Apple lossless audio    :   X  @tab  X
37466               @tab QuickTime fourcc 'alac'
37467
37468       aptX                    :   X  @tab  X
37469               @tab Used in Bluetooth A2DP
37470
37471       aptX HD                 :   X  @tab  X
37472               @tab Used in Bluetooth A2DP
37473
37474       ATRAC1                  :      @tab  X
37475       ATRAC3                  :      @tab  X
37476       ATRAC3+                 :      @tab  X
37477       ATRAC9                  :      @tab  X
37478       Bink Audio              :      @tab  X
37479               @tab Used in Bink and Smacker files in many games.
37480
37481       CELT                    :      @tab  E
37482               @tab decoding supported through external library libcelt
37483
37484       codec2                  :   E  @tab  E
37485               @tab en/decoding supported through external library libcodec2
37486
37487       CRI HCA                 :      @tab X
37488       Delphine Software International CIN audio   :      @tab  X
37489               @tab Codec used in Delphine Software International games.
37490
37491       DFPWM                   :   X  @tab  X
37492       Digital Speech Standard - Standard Play mode (DSS SP)  :      @tab  X
37493       Discworld II BMV Audio  :      @tab  X
37494       COOK                    :      @tab  X
37495               @tab All versions except 5.1 are supported.
37496
37497       DCA (DTS Coherent Acoustics)   :   X  @tab  X
37498               @tab supported extensions: XCh, XXCH, X96, XBR, XLL, LBR (partially)
37499
37500       Dolby E   :      @tab  X
37501       DPCM Gremlin            :      @tab  X
37502       DPCM id RoQ             :   X  @tab  X
37503               @tab Used in Quake III, Jedi Knight 2 and other computer games.
37504
37505       DPCM Interplay          :      @tab  X
37506               @tab Used in various Interplay computer games.
37507
37508       DPCM Squareroot-Delta-Exact   :   @tab  X
37509               @tab Used in various games.
37510
37511       DPCM Sierra Online      :      @tab  X
37512               @tab Used in Sierra Online game audio files.
37513
37514       DPCM Sol                :      @tab  X
37515       DPCM Xan                :      @tab  X
37516               @tab Used in Origin's Wing Commander IV AVI files.
37517
37518       DPCM Xilam DERF         :      @tab  X
37519       DSD (Direct Stream Digital), least significant bit first   :   @tab  X
37520       DSD (Direct Stream Digital), most significant bit first    :   @tab  X
37521       DSD (Direct Stream Digital), least significant bit first, planar   :
37522       @tab  X
37523       DSD (Direct Stream Digital), most significant bit first, planar    :
37524       @tab  X
37525       DSP Group TrueSpeech    :      @tab  X
37526       DST (Direct Stream Transfer)  :   @tab  X
37527       DV audio                :      @tab  X
37528       Enhanced AC-3           :   X  @tab  X
37529       EVRC (Enhanced Variable Rate Codec)  :      @tab  X
37530       FLAC (Free Lossless Audio Codec)   :   X  @tab  IX
37531       G.723.1                 :  X   @tab  X
37532       G.729                   :      @tab  X
37533       GSM                     :   E  @tab  X
37534               @tab encoding supported through external library libgsm
37535
37536       GSM Microsoft variant   :   E  @tab  X
37537               @tab encoding supported through external library libgsm
37538
37539       IAC (Indeo Audio Coder)   :      @tab  X
37540       iLBC (Internet Low Bitrate Codec)  :   E  @tab  EX
37541               @tab encoding and decoding supported through external library libilbc
37542
37543       IMC (Intel Music Coder)   :      @tab  X
37544       Interplay ACM             :      @tab  X
37545       MACE (Macintosh Audio Compression/Expansion) 3:1   :      @tab  X
37546       MACE (Macintosh Audio Compression/Expansion) 6:1   :      @tab  X
37547       MLP (Meridian Lossless Packing)   :   X  @tab  X
37548               @tab Used in DVD-Audio discs.
37549
37550       Monkey's Audio          :      @tab  X
37551       MP1 (MPEG audio layer 1)   :      @tab IX
37552       MP2 (MPEG audio layer 2)   :  IX  @tab IX
37553               @tab encoding supported also through external library TwoLAME
37554
37555       MP3 (MPEG audio layer 3)   :   E  @tab IX
37556               @tab encoding supported through external library LAME, ADU MP3 and MP3onMP4 also supported
37557
37558       MPEG-4 Audio Lossless Coding (ALS)   :      @tab  X
37559       Musepack SV7            :      @tab  X
37560       Musepack SV8            :      @tab  X
37561       Nellymoser Asao         :   X  @tab  X
37562       On2 AVC (Audio for Video Codec)  :      @tab  X
37563       Opus                    :   E  @tab  X
37564               @tab encoding supported through external library libopus
37565
37566       PCM A-law               :   X  @tab  X
37567       PCM mu-law              :   X  @tab  X
37568       PCM Archimedes VIDC     :   X  @tab  X
37569       PCM signed 8-bit planar   :   X  @tab  X
37570       PCM signed 16-bit big-endian planar   :   X  @tab  X
37571       PCM signed 16-bit little-endian planar   :   X  @tab  X
37572       PCM signed 24-bit little-endian planar   :   X  @tab  X
37573       PCM signed 32-bit little-endian planar   :   X  @tab  X
37574       PCM 32-bit floating point big-endian   :   X  @tab  X
37575       PCM 32-bit floating point little-endian   :   X  @tab  X
37576       PCM 64-bit floating point big-endian   :   X  @tab  X
37577       PCM 64-bit floating point little-endian   :   X  @tab  X
37578       PCM D-Cinema audio signed 24-bit    :   X  @tab  X
37579       PCM signed 8-bit        :   X  @tab  X
37580       PCM signed 16-bit big-endian   :   X  @tab  X
37581       PCM signed 16-bit little-endian   :   X  @tab  X
37582       PCM signed 24-bit big-endian   :   X  @tab  X
37583       PCM signed 24-bit little-endian   :   X  @tab  X
37584       PCM signed 32-bit big-endian   :   X  @tab  X
37585       PCM signed 32-bit little-endian   :   X  @tab  X
37586       PCM signed 16/20/24-bit big-endian in MPEG-TS   :      @tab  X
37587       PCM unsigned 8-bit      :   X  @tab  X
37588       PCM unsigned 16-bit big-endian   :   X  @tab  X
37589       PCM unsigned 16-bit little-endian   :   X  @tab  X
37590       PCM unsigned 24-bit big-endian   :   X  @tab  X
37591       PCM unsigned 24-bit little-endian   :   X  @tab  X
37592       PCM unsigned 32-bit big-endian   :   X  @tab  X
37593       PCM unsigned 32-bit little-endian   :   X  @tab  X
37594       QCELP / PureVoice       :      @tab  X
37595       QDesign Music Codec 1   :      @tab  X
37596       QDesign Music Codec 2   :      @tab  X
37597               @tab There are still some distortions.
37598
37599       RealAudio 1.0 (14.4K)   :   X  @tab  X
37600               @tab Real 14400 bit/s codec
37601
37602       RealAudio 2.0 (28.8K)   :      @tab  X
37603               @tab Real 28800 bit/s codec
37604
37605       RealAudio 3.0 (dnet)    :  IX  @tab  X
37606               @tab Real low bitrate AC-3 codec
37607
37608       RealAudio Lossless      :      @tab  X
37609       RealAudio SIPR / ACELP.NET  :      @tab  X
37610       SBC (low-complexity subband codec)  :   X  @tab  X
37611               @tab Used in Bluetooth A2DP
37612
37613       Shorten                 :      @tab  X
37614       Sierra VMD audio        :      @tab  X
37615               @tab Used in Sierra VMD files.
37616
37617       Smacker audio           :      @tab  X
37618       SMPTE 302M AES3 audio   :   X  @tab  X
37619       Sonic                   :   X  @tab  X
37620               @tab experimental codec
37621
37622       Sonic lossless          :   X  @tab  X
37623               @tab experimental codec
37624
37625       Speex                   :   E  @tab  EX
37626               @tab supported through external library libspeex
37627
37628       TAK (Tom's lossless Audio Kompressor)   :      @tab  X
37629       True Audio (TTA)        :   X  @tab  X
37630       TrueHD                  :   X  @tab  X
37631               @tab Used in HD-DVD and Blu-Ray discs.
37632
37633       TwinVQ (VQF flavor)     :      @tab  X
37634       VIMA                    :      @tab  X
37635               @tab Used in LucasArts SMUSH animations.
37636
37637       Vorbis                  :   E  @tab  X
37638               @tab A native but very primitive encoder exists.
37639
37640       Voxware MetaSound       :      @tab  X
37641       WavPack                 :   X  @tab  X
37642       Westwood Audio (SND1)   :      @tab  X
37643       Windows Media Audio 1   :   X  @tab  X
37644       Windows Media Audio 2   :   X  @tab  X
37645       Windows Media Audio Lossless  :   @tab  X
37646       Windows Media Audio Pro  :     @tab  X
37647       Windows Media Audio Voice  :   @tab  X
37648       Xbox Media Audio 1      :      @tab  X
37649       Xbox Media Audio 2      :      @tab  X
37650
37651       "X" means that the feature in that column (encoding / decoding) is
37652       supported.
37653
37654       "E" means that support is provided through an external library.
37655
37656       "I" means that an integer-only version is available, too (ensures high
37657       performance on systems without hardware floating point support).
37658
37659   Subtitle Formats
37660       Name  :  Muxing @tab Demuxing @tab Encoding @tab Decoding
37661       3GPP Timed Text   :    @tab   @tab X @tab X
37662       AQTitle           :    @tab X @tab   @tab X
37663       DVB               :  X @tab X @tab X @tab X
37664       DVB teletext      :    @tab X @tab   @tab E
37665       DVD               :  X @tab X @tab X @tab X
37666       JACOsub           :  X @tab X @tab   @tab X
37667       MicroDVD          :  X @tab X @tab   @tab X
37668       MPL2              :    @tab X @tab   @tab X
37669       MPsub (MPlayer)   :    @tab X @tab   @tab X
37670       PGS               :    @tab   @tab   @tab X
37671       PJS (Phoenix)     :    @tab X @tab   @tab X
37672       RealText          :    @tab X @tab   @tab X
37673       SAMI              :    @tab X @tab   @tab X
37674       Spruce format (STL)  :    @tab X @tab   @tab X
37675       SSA/ASS           :  X @tab X @tab X @tab X
37676       SubRip (SRT)      :  X @tab X @tab X @tab X
37677       SubViewer v1      :    @tab X @tab   @tab X
37678       SubViewer         :    @tab X @tab   @tab X
37679       TED Talks captions  :  @tab X @tab   @tab X
37680       TTML              :  X @tab   @tab X @tab
37681       VobSub (IDX+SUB)  :    @tab X @tab   @tab X
37682       VPlayer           :    @tab X @tab   @tab X
37683       WebVTT            :  X @tab X @tab X @tab X
37684       XSUB              :    @tab   @tab X @tab X
37685
37686       "X" means that the feature is supported.
37687
37688       "E" means that support is provided through an external library.
37689
37690   Network Protocols
37691       Name          :  Support
37692       AMQP          :  E
37693       file          :  X
37694       FTP           :  X
37695       Gopher        :  X
37696       Gophers       :  X
37697       HLS           :  X
37698       HTTP          :  X
37699       HTTPS         :  X
37700       Icecast       :  X
37701       MMSH          :  X
37702       MMST          :  X
37703       pipe          :  X
37704       Pro-MPEG FEC  :  X
37705       RTMP          :  X
37706       RTMPE         :  X
37707       RTMPS         :  X
37708       RTMPT         :  X
37709       RTMPTE        :  X
37710       RTMPTS        :  X
37711       RTP           :  X
37712       SAMBA         :  E
37713       SCTP          :  X
37714       SFTP          :  E
37715       TCP           :  X
37716       TLS           :  X
37717       UDP           :  X
37718       ZMQ           :  E
37719
37720       "X" means that the protocol is supported.
37721
37722       "E" means that support is provided through an external library.
37723
37724   Input/Output Devices
37725       Name               :  Input  @tab Output
37726       ALSA               :  X      @tab X
37727       BKTR               :  X      @tab
37728       caca               :         @tab X
37729       DV1394             :  X      @tab
37730       Lavfi virtual device  :  X   @tab
37731       Linux framebuffer  :  X      @tab X
37732       JACK               :  X      @tab
37733       LIBCDIO            :  X
37734       LIBDC1394          :  X      @tab
37735       OpenAL             :  X
37736       OpenGL             :         @tab X
37737       OSS                :  X      @tab X
37738       PulseAudio         :  X      @tab X
37739       SDL                :         @tab X
37740       Video4Linux2       :  X      @tab X
37741       VfW capture        :  X      @tab
37742       X11 grabbing       :  X      @tab
37743       Win32 grabbing     :  X      @tab
37744
37745       "X" means that input/output is supported.
37746
37747   Timecode
37748       Codec/format       :  Read   @tab Write
37749       AVI                :  X      @tab X
37750       DV                 :  X      @tab X
37751       GXF                :  X      @tab X
37752       MOV                :  X      @tab X
37753       MPEG1/2            :  X      @tab X
37754       MXF                :  X      @tab X
37755

SEE ALSO

37757       ffprobe(1), ffmpeg(1), ffplay(1), ffmpeg-utils(1), ffmpeg-scaler(1),
37758       ffmpeg-resampler(1), ffmpeg-codecs(1), ffmpeg-bitstream-filters(1),
37759       ffmpeg-formats(1), ffmpeg-devices(1), ffmpeg-protocols(1),
37760       ffmpeg-filters(1)
37761

AUTHORS

37763       The FFmpeg developers.
37764
37765       For details about the authorship, see the Git history of the project
37766       (git://source.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
37767       the FFmpeg source directory, or browsing the online repository at
37768       <http://source.ffmpeg.org>.
37769
37770       Maintainers for the specific components are listed in the file
37771       MAINTAINERS in the source code tree.
37772
37773
37774
37775                                                                FFPROBE-ALL(1)
Impressum