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       7.1(top)
1824           FL+FR+FC+LFE+BL+BR+TFL+TFR
1825
1826       octagonal
1827           FL+FR+FC+BL+BR+BC+SL+SR
1828
1829       cube
1830           FL+FR+BL+BR+TFL+TFR+TBL+TBR
1831
1832       hexadecagonal
1833           FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR
1834
1835       downmix
1836           DL+DR
1837
1838       22.2
1839           FL+FR+FC+LFE+BL+BR+FLC+FRC+BC+SL+SR+TC+TFL+TFC+TFR+TBL+TBC+TBR+LFE2+TSL+TSR+BFC+BFL+BFR
1840
1841       A custom channel layout can be specified as a sequence of terms,
1842       separated by '+'.  Each term can be:
1843
1844       •   the name of a single channel (e.g. FL, FR, FC, LFE, etc.), each
1845           optionally containing a custom name after a '@', (e.g. FL@Left,
1846           FR@Right, FC@Center, LFE@Low_Frequency, etc.)
1847
1848       A standard channel layout can be specified by the following:
1849
1850       •   the name of a single channel (e.g. FL, FR, FC, LFE, etc.)
1851
1852       •   the name of a standard channel layout (e.g. mono, stereo, 4.0,
1853           quad, 5.0, etc.)
1854
1855       •   a number of channels, in decimal, followed by 'c', yielding the
1856           default channel layout for that number of channels (see the
1857           function "av_channel_layout_default"). Note that not all channel
1858           counts have a default layout.
1859
1860       •   a number of channels, in decimal, followed by 'C', yielding an
1861           unknown channel layout with the specified number of channels. Note
1862           that not all channel layout specification strings support unknown
1863           channel layouts.
1864
1865       •   a channel layout mask, in hexadecimal starting with "0x" (see the
1866           "AV_CH_*" macros in libavutil/channel_layout.h.
1867
1868       Before libavutil version 53 the trailing character "c" to specify a
1869       number of channels was optional, but now it is required, while a
1870       channel layout mask can also be specified as a decimal number (if and
1871       only if not followed by "c" or "C").
1872
1873       See also the function "av_channel_layout_from_string" defined in
1874       libavutil/channel_layout.h.
1875

EXPRESSION EVALUATION

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

CODEC OPTIONS

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

DECODERS

3232       Decoders are configured elements in FFmpeg which allow the decoding of
3233       multimedia streams.
3234
3235       When you configure your FFmpeg build, all the supported native decoders
3236       are enabled by default. Decoders requiring an external library must be
3237       enabled manually via the corresponding "--enable-lib" option. You can
3238       list all available decoders using the configure option
3239       "--list-decoders".
3240
3241       You can disable all the decoders with the configure option
3242       "--disable-decoders" and selectively enable / disable single decoders
3243       with the options "--enable-decoder=DECODER" /
3244       "--disable-decoder=DECODER".
3245
3246       The option "-decoders" of the ff* tools will display the list of
3247       enabled decoders.
3248

VIDEO DECODERS

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

AUDIO DECODERS

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

SUBTITLES DECODERS

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

BITSTREAM FILTERS

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

FORMAT OPTIONS

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

DEMUXERS

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

METADATA

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

PROTOCOL OPTIONS

5712       The libavformat library provides some generic global options, which can
5713       be set on all the protocols. In addition each protocol may support so-
5714       called private options, which are specific for that component.
5715
5716       Options may be set by specifying -option value in the FFmpeg tools, or
5717       by setting the value explicitly in the "AVFormatContext" options or
5718       using the libavutil/opt.h API for programmatic use.
5719
5720       The list of supported options follows:
5721
5722       protocol_whitelist list (input)
5723           Set a ","-separated list of allowed protocols. "ALL" matches all
5724           protocols. Protocols prefixed by "-" are disabled.  All protocols
5725           are allowed by default but protocols used by an another protocol
5726           (nested protocols) are restricted to a per protocol subset.
5727

PROTOCOLS

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

DEVICE OPTIONS

7633       The libavdevice library provides the same interface as libavformat.
7634       Namely, an input device is considered like a demuxer, and an output
7635       device like a muxer, and the interface and generic device options are
7636       the same provided by libavformat (see the ffmpeg-formats manual).
7637
7638       In addition each input or output device may support so-called private
7639       options, which are specific for that component.
7640
7641       Options may be set by specifying -option value in the FFmpeg tools, or
7642       by setting the value explicitly in the device "AVFormatContext" options
7643       or using the libavutil/opt.h API for programmatic use.
7644

INPUT DEVICES

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

RESAMPLER OPTIONS

9032       The audio resampler supports the following named options.
9033
9034       Options may be set by specifying -option value in the FFmpeg tools,
9035       option=value for the aresample filter, by setting the value explicitly
9036       in the "SwrContext" options or using the libavutil/opt.h API for
9037       programmatic use.
9038
9039       uchl, used_chlayout
9040           Set used input channel layout. Default is unset. This option is
9041           only used for special remapping.
9042
9043       isr, in_sample_rate
9044           Set the input sample rate. Default value is 0.
9045
9046       osr, out_sample_rate
9047           Set the output sample rate. Default value is 0.
9048
9049       isf, in_sample_fmt
9050           Specify the input sample format. It is set by default to "none".
9051
9052       osf, out_sample_fmt
9053           Specify the output sample format. It is set by default to "none".
9054
9055       tsf, internal_sample_fmt
9056           Set the internal sample format. Default value is "none".  This will
9057           automatically be chosen when it is not explicitly set.
9058
9059       ichl, in_chlayout
9060       ochl, out_chlayout
9061           Set the input/output channel layout.
9062
9063           See the Channel Layout section in the ffmpeg-utils(1) manual for
9064           the required syntax.
9065
9066       clev, center_mix_level
9067           Set the center mix level. It is a value expressed in deciBel, and
9068           must be in the interval [-32,32].
9069
9070       slev, surround_mix_level
9071           Set the surround mix level. It is a value expressed in deciBel, and
9072           must be in the interval [-32,32].
9073
9074       lfe_mix_level
9075           Set LFE mix into non LFE level. It is used when there is a LFE
9076           input but no LFE output. It is a value expressed in deciBel, and
9077           must be in the interval [-32,32].
9078
9079       rmvol, rematrix_volume
9080           Set rematrix volume. Default value is 1.0.
9081
9082       rematrix_maxval
9083           Set maximum output value for rematrixing.  This can be used to
9084           prevent clipping vs. preventing volume reduction.  A value of 1.0
9085           prevents clipping.
9086
9087       flags, swr_flags
9088           Set flags used by the converter. Default value is 0.
9089
9090           It supports the following individual flags:
9091
9092           res force resampling, this flag forces resampling to be used even
9093               when the input and output sample rates match.
9094
9095       dither_scale
9096           Set the dither scale. Default value is 1.
9097
9098       dither_method
9099           Set dither method. Default value is 0.
9100
9101           Supported values:
9102
9103           rectangular
9104               select rectangular dither
9105
9106           triangular
9107               select triangular dither
9108
9109           triangular_hp
9110               select triangular dither with high pass
9111
9112           lipshitz
9113               select Lipshitz noise shaping dither.
9114
9115           shibata
9116               select Shibata noise shaping dither.
9117
9118           low_shibata
9119               select low Shibata noise shaping dither.
9120
9121           high_shibata
9122               select high Shibata noise shaping dither.
9123
9124           f_weighted
9125               select f-weighted noise shaping dither
9126
9127           modified_e_weighted
9128               select modified-e-weighted noise shaping dither
9129
9130           improved_e_weighted
9131               select improved-e-weighted noise shaping dither
9132
9133       resampler
9134           Set resampling engine. Default value is swr.
9135
9136           Supported values:
9137
9138           swr select the native SW Resampler; filter options precision and
9139               cheby are not applicable in this case.
9140
9141           soxr
9142               select the SoX Resampler (where available); compensation, and
9143               filter options filter_size, phase_shift, exact_rational,
9144               filter_type & kaiser_beta, are not applicable in this case.
9145
9146       filter_size
9147           For swr only, set resampling filter size, default value is 32.
9148
9149       phase_shift
9150           For swr only, set resampling phase shift, default value is 10, and
9151           must be in the interval [0,30].
9152
9153       linear_interp
9154           Use linear interpolation when enabled (the default). Disable it if
9155           you want to preserve speed instead of quality when exact_rational
9156           fails.
9157
9158       exact_rational
9159           For swr only, when enabled, try to use exact phase_count based on
9160           input and output sample rate. However, if it is larger than "1 <<
9161           phase_shift", the phase_count will be "1 << phase_shift" as
9162           fallback. Default is enabled.
9163
9164       cutoff
9165           Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must
9166           be a float value between 0 and 1.  Default value is 0.97 with swr,
9167           and 0.91 with soxr (which, with a sample-rate of 44100, preserves
9168           the entire audio band to 20kHz).
9169
9170       precision
9171           For soxr only, the precision in bits to which the resampled signal
9172           will be calculated.  The default value of 20 (which, with suitable
9173           dithering, is appropriate for a destination bit-depth of 16) gives
9174           SoX's 'High Quality'; a value of 28 gives SoX's 'Very High
9175           Quality'.
9176
9177       cheby
9178           For soxr only, selects passband rolloff none (Chebyshev) & higher-
9179           precision approximation for 'irrational' ratios. Default value is
9180           0.
9181
9182       async
9183           For swr only, simple 1 parameter audio sync to timestamps using
9184           stretching, squeezing, filling and trimming. Setting this to 1 will
9185           enable filling and trimming, larger values represent the maximum
9186           amount in samples that the data may be stretched or squeezed for
9187           each second.  Default value is 0, thus no compensation is applied
9188           to make the samples match the audio timestamps.
9189
9190       first_pts
9191           For swr only, assume the first pts should be this value. The time
9192           unit is 1 / sample rate.  This allows for padding/trimming at the
9193           start of stream. By default, no assumption is made about the first
9194           frame's expected pts, so no padding or trimming is done. For
9195           example, this could be set to 0 to pad the beginning with silence
9196           if an audio stream starts after the video stream or to trim any
9197           samples with a negative pts due to encoder delay.
9198
9199       min_comp
9200           For swr only, set the minimum difference between timestamps and
9201           audio data (in seconds) to trigger stretching/squeezing/filling or
9202           trimming of the data to make it match the timestamps. The default
9203           is that stretching/squeezing/filling and trimming is disabled
9204           (min_comp = "FLT_MAX").
9205
9206       min_hard_comp
9207           For swr only, set the minimum difference between timestamps and
9208           audio data (in seconds) to trigger adding/dropping samples to make
9209           it match the timestamps.  This option effectively is a threshold to
9210           select between hard (trim/fill) and soft (squeeze/stretch)
9211           compensation. Note that all compensation is by default disabled
9212           through min_comp.  The default is 0.1.
9213
9214       comp_duration
9215           For swr only, set duration (in seconds) over which data is
9216           stretched/squeezed to make it match the timestamps. Must be a non-
9217           negative double float value, default value is 1.0.
9218
9219       max_soft_comp
9220           For swr only, set maximum factor by which data is
9221           stretched/squeezed to make it match the timestamps. Must be a non-
9222           negative double float value, default value is 0.
9223
9224       matrix_encoding
9225           Select matrixed stereo encoding.
9226
9227           It accepts the following values:
9228
9229           none
9230               select none
9231
9232           dolby
9233               select Dolby
9234
9235           dplii
9236               select Dolby Pro Logic II
9237
9238           Default value is "none".
9239
9240       filter_type
9241           For swr only, select resampling filter type. This only affects
9242           resampling operations.
9243
9244           It accepts the following values:
9245
9246           cubic
9247               select cubic
9248
9249           blackman_nuttall
9250               select Blackman Nuttall windowed sinc
9251
9252           kaiser
9253               select Kaiser windowed sinc
9254
9255       kaiser_beta
9256           For swr only, set Kaiser window beta value. Must be a double float
9257           value in the interval [2,16], default value is 9.
9258
9259       output_sample_bits
9260           For swr only, set number of used output sample bits for dithering.
9261           Must be an integer in the interval [0,64], default value is 0,
9262           which means it's not used.
9263

SCALER OPTIONS

9265       The video scaler supports the following named options.
9266
9267       Options may be set by specifying -option value in the FFmpeg tools,
9268       with a few API-only exceptions noted below.  For programmatic use, they
9269       can be set explicitly in the "SwsContext" options or through the
9270       libavutil/opt.h API.
9271
9272       sws_flags
9273           Set the scaler flags. This is also used to set the scaling
9274           algorithm. Only a single algorithm should be selected. Default
9275           value is bicubic.
9276
9277           It accepts the following values:
9278
9279           fast_bilinear
9280               Select fast bilinear scaling algorithm.
9281
9282           bilinear
9283               Select bilinear scaling algorithm.
9284
9285           bicubic
9286               Select bicubic scaling algorithm.
9287
9288           experimental
9289               Select experimental scaling algorithm.
9290
9291           neighbor
9292               Select nearest neighbor rescaling algorithm.
9293
9294           area
9295               Select averaging area rescaling algorithm.
9296
9297           bicublin
9298               Select bicubic scaling algorithm for the luma component,
9299               bilinear for chroma components.
9300
9301           gauss
9302               Select Gaussian rescaling algorithm.
9303
9304           sinc
9305               Select sinc rescaling algorithm.
9306
9307           lanczos
9308               Select Lanczos rescaling algorithm. The default width (alpha)
9309               is 3 and can be changed by setting "param0".
9310
9311           spline
9312               Select natural bicubic spline rescaling algorithm.
9313
9314           print_info
9315               Enable printing/debug logging.
9316
9317           accurate_rnd
9318               Enable accurate rounding.
9319
9320           full_chroma_int
9321               Enable full chroma interpolation.
9322
9323           full_chroma_inp
9324               Select full chroma input.
9325
9326           bitexact
9327               Enable bitexact output.
9328
9329       srcw (API only)
9330           Set source width.
9331
9332       srch (API only)
9333           Set source height.
9334
9335       dstw (API only)
9336           Set destination width.
9337
9338       dsth (API only)
9339           Set destination height.
9340
9341       src_format (API only)
9342           Set source pixel format (must be expressed as an integer).
9343
9344       dst_format (API only)
9345           Set destination pixel format (must be expressed as an integer).
9346
9347       src_range (boolean)
9348           If value is set to 1, indicates source is full range. Default value
9349           is 0, which indicates source is limited range.
9350
9351       dst_range (boolean)
9352           If value is set to 1, enable full range for destination. Default
9353           value is 0, which enables limited range.
9354
9355       param0, param1
9356           Set scaling algorithm parameters. The specified values are specific
9357           of some scaling algorithms and ignored by others. The specified
9358           values are floating point number values.
9359
9360       sws_dither
9361           Set the dithering algorithm. Accepts one of the following values.
9362           Default value is auto.
9363
9364           auto
9365               automatic choice
9366
9367           none
9368               no dithering
9369
9370           bayer
9371               bayer dither
9372
9373           ed  error diffusion dither
9374
9375           a_dither
9376               arithmetic dither, based using addition
9377
9378           x_dither
9379               arithmetic dither, based using xor (more random/less apparent
9380               patterning that a_dither).
9381
9382       alphablend
9383           Set the alpha blending to use when the input has alpha but the
9384           output does not.  Default value is none.
9385
9386           uniform_color
9387               Blend onto a uniform background color
9388
9389           checkerboard
9390               Blend onto a checkerboard
9391
9392           none
9393               No blending
9394

FILTERING INTRODUCTION

9396       Filtering in FFmpeg is enabled through the libavfilter library.
9397
9398       In libavfilter, a filter can have multiple inputs and multiple outputs.
9399       To illustrate the sorts of things that are possible, we consider the
9400       following filtergraph.
9401
9402                               [main]
9403               input --> split ---------------------> overlay --> output
9404                           |                             ^
9405                           |[tmp]                  [flip]|
9406                           +-----> crop --> vflip -------+
9407
9408       This filtergraph splits the input stream in two streams, then sends one
9409       stream through the crop filter and the vflip filter, before merging it
9410       back with the other stream by overlaying it on top. You can use the
9411       following command to achieve this:
9412
9413               ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
9414
9415       The result will be that the top half of the video is mirrored onto the
9416       bottom half of the output video.
9417
9418       Filters in the same linear chain are separated by commas, and distinct
9419       linear chains of filters are separated by semicolons. In our example,
9420       crop,vflip are in one linear chain, split and overlay are separately in
9421       another. The points where the linear chains join are labelled by names
9422       enclosed in square brackets. In the example, the split filter generates
9423       two outputs that are associated to the labels [main] and [tmp].
9424
9425       The stream sent to the second output of split, labelled as [tmp], is
9426       processed through the crop filter, which crops away the lower half part
9427       of the video, and then vertically flipped. The overlay filter takes in
9428       input the first unchanged output of the split filter (which was
9429       labelled as [main]), and overlay on its lower half the output generated
9430       by the crop,vflip filterchain.
9431
9432       Some filters take in input a list of parameters: they are specified
9433       after the filter name and an equal sign, and are separated from each
9434       other by a colon.
9435
9436       There exist so-called source filters that do not have an audio/video
9437       input, and sink filters that will not have audio/video output.
9438

GRAPH

9440       The graph2dot program included in the FFmpeg tools directory can be
9441       used to parse a filtergraph description and issue a corresponding
9442       textual representation in the dot language.
9443
9444       Invoke the command:
9445
9446               graph2dot -h
9447
9448       to see how to use graph2dot.
9449
9450       You can then pass the dot description to the dot program (from the
9451       graphviz suite of programs) and obtain a graphical representation of
9452       the filtergraph.
9453
9454       For example the sequence of commands:
9455
9456               echo <GRAPH_DESCRIPTION> | \
9457               tools/graph2dot -o graph.tmp && \
9458               dot -Tpng graph.tmp -o graph.png && \
9459               display graph.png
9460
9461       can be used to create and display an image representing the graph
9462       described by the GRAPH_DESCRIPTION string. Note that this string must
9463       be a complete self-contained graph, with its inputs and outputs
9464       explicitly defined.  For example if your command line is of the form:
9465
9466               ffmpeg -i infile -vf scale=640:360 outfile
9467
9468       your GRAPH_DESCRIPTION string will need to be of the form:
9469
9470               nullsrc,scale=640:360,nullsink
9471
9472       you may also need to set the nullsrc parameters and add a format filter
9473       in order to simulate a specific input file.
9474

FILTERGRAPH DESCRIPTION

9476       A filtergraph is a directed graph of connected filters. It can contain
9477       cycles, and there can be multiple links between a pair of filters. Each
9478       link has one input pad on one side connecting it to one filter from
9479       which it takes its input, and one output pad on the other side
9480       connecting it to one filter accepting its output.
9481
9482       Each filter in a filtergraph is an instance of a filter class
9483       registered in the application, which defines the features and the
9484       number of input and output pads of the filter.
9485
9486       A filter with no input pads is called a "source", and a filter with no
9487       output pads is called a "sink".
9488
9489   Filtergraph syntax
9490       A filtergraph has a textual representation, which is recognized by the
9491       -filter/-vf/-af and -filter_complex options in ffmpeg and -vf/-af in
9492       ffplay, and by the avfilter_graph_parse_ptr() function defined in
9493       libavfilter/avfilter.h.
9494
9495       A filterchain consists of a sequence of connected filters, each one
9496       connected to the previous one in the sequence. A filterchain is
9497       represented by a list of ","-separated filter descriptions.
9498
9499       A filtergraph consists of a sequence of filterchains. A sequence of
9500       filterchains is represented by a list of ";"-separated filterchain
9501       descriptions.
9502
9503       A filter is represented by a string of the form:
9504       [in_link_1]...[in_link_N]filter_name@id=arguments[out_link_1]...[out_link_M]
9505
9506       filter_name is the name of the filter class of which the described
9507       filter is an instance of, and has to be the name of one of the filter
9508       classes registered in the program optionally followed by "@id".  The
9509       name of the filter class is optionally followed by a string
9510       "=arguments".
9511
9512       arguments is a string which contains the parameters used to initialize
9513       the filter instance. It may have one of two forms:
9514
9515       •   A ':'-separated list of key=value pairs.
9516
9517       •   A ':'-separated list of value. In this case, the keys are assumed
9518           to be the option names in the order they are declared. E.g. the
9519           "fade" filter declares three options in this order -- type,
9520           start_frame and nb_frames. Then the parameter list in:0:30 means
9521           that the value in is assigned to the option type, 0 to start_frame
9522           and 30 to nb_frames.
9523
9524       •   A ':'-separated list of mixed direct value and long key=value
9525           pairs. The direct value must precede the key=value pairs, and
9526           follow the same constraints order of the previous point. The
9527           following key=value pairs can be set in any preferred order.
9528
9529       If the option value itself is a list of items (e.g. the "format" filter
9530       takes a list of pixel formats), the items in the list are usually
9531       separated by |.
9532
9533       The list of arguments can be quoted using the character ' as initial
9534       and ending mark, and the character \ for escaping the characters within
9535       the quoted text; otherwise the argument string is considered terminated
9536       when the next special character (belonging to the set []=;,) is
9537       encountered.
9538
9539       A special syntax implemented in the ffmpeg CLI tool allows loading
9540       option values from files. This is done be prepending a slash '/' to the
9541       option name, then the supplied value is interpreted as a path from
9542       which the actual value is loaded. E.g.
9543
9544               ffmpeg -i <INPUT> -vf drawtext=/text=/tmp/some_text <OUTPUT>
9545
9546       will load the text to be drawn from /tmp/some_text. API users wishing
9547       to implement a similar feature should use the
9548       "avfilter_graph_segment_*()" functions together with custom IO code.
9549
9550       The name and arguments of the filter are optionally preceded and
9551       followed by a list of link labels.  A link label allows one to name a
9552       link and associate it to a filter output or input pad. The preceding
9553       labels in_link_1 ... in_link_N, are associated to the filter input
9554       pads, the following labels out_link_1 ... out_link_M, are associated to
9555       the output pads.
9556
9557       When two link labels with the same name are found in the filtergraph, a
9558       link between the corresponding input and output pad is created.
9559
9560       If an output pad is not labelled, it is linked by default to the first
9561       unlabelled input pad of the next filter in the filterchain.  For
9562       example in the filterchain
9563
9564               nullsrc, split[L1], [L2]overlay, nullsink
9565
9566       the split filter instance has two output pads, and the overlay filter
9567       instance two input pads. The first output pad of split is labelled
9568       "L1", the first input pad of overlay is labelled "L2", and the second
9569       output pad of split is linked to the second input pad of overlay, which
9570       are both unlabelled.
9571
9572       In a filter description, if the input label of the first filter is not
9573       specified, "in" is assumed; if the output label of the last filter is
9574       not specified, "out" is assumed.
9575
9576       In a complete filterchain all the unlabelled filter input and output
9577       pads must be connected. A filtergraph is considered valid if all the
9578       filter input and output pads of all the filterchains are connected.
9579
9580       Libavfilter will automatically insert scale filters where format
9581       conversion is required. It is possible to specify swscale flags for
9582       those automatically inserted scalers by prepending "sws_flags=flags;"
9583       to the filtergraph description.
9584
9585       Here is a BNF description of the filtergraph syntax:
9586
9587               <NAME>             ::= sequence of alphanumeric characters and '_'
9588               <FILTER_NAME>      ::= <NAME>["@"<NAME>]
9589               <LINKLABEL>        ::= "[" <NAME> "]"
9590               <LINKLABELS>       ::= <LINKLABEL> [<LINKLABELS>]
9591               <FILTER_ARGUMENTS> ::= sequence of chars (possibly quoted)
9592               <FILTER>           ::= [<LINKLABELS>] <FILTER_NAME> ["=" <FILTER_ARGUMENTS>] [<LINKLABELS>]
9593               <FILTERCHAIN>      ::= <FILTER> [,<FILTERCHAIN>]
9594               <FILTERGRAPH>      ::= [sws_flags=<flags>;] <FILTERCHAIN> [;<FILTERGRAPH>]
9595
9596   Notes on filtergraph escaping
9597       Filtergraph description composition entails several levels of escaping.
9598       See the "Quoting and escaping" section in the ffmpeg-utils(1) manual
9599       for more information about the employed escaping procedure.
9600
9601       A first level escaping affects the content of each filter option value,
9602       which may contain the special character ":" used to separate values, or
9603       one of the escaping characters "\'".
9604
9605       A second level escaping affects the whole filter description, which may
9606       contain the escaping characters "\'" or the special characters "[],;"
9607       used by the filtergraph description.
9608
9609       Finally, when you specify a filtergraph on a shell commandline, you
9610       need to perform a third level escaping for the shell special characters
9611       contained within it.
9612
9613       For example, consider the following string to be embedded in the
9614       drawtext filter description text value:
9615
9616               this is a 'string': may contain one, or more, special characters
9617
9618       This string contains the "'" special escaping character, and the ":"
9619       special character, so it needs to be escaped in this way:
9620
9621               text=this is a \'string\'\: may contain one, or more, special characters
9622
9623       A second level of escaping is required when embedding the filter
9624       description in a filtergraph description, in order to escape all the
9625       filtergraph special characters. Thus the example above becomes:
9626
9627               drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
9628
9629       (note that in addition to the "\'" escaping special characters, also
9630       "," needs to be escaped).
9631
9632       Finally an additional level of escaping is needed when writing the
9633       filtergraph description in a shell command, which depends on the
9634       escaping rules of the adopted shell. For example, assuming that "\" is
9635       special and needs to be escaped with another "\", the previous string
9636       will finally result in:
9637
9638               -vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
9639

TIMELINE EDITING

9641       Some filters support a generic enable option. For the filters
9642       supporting timeline editing, this option can be set to an expression
9643       which is evaluated before sending a frame to the filter. If the
9644       evaluation is non-zero, the filter will be enabled, otherwise the frame
9645       will be sent unchanged to the next filter in the filtergraph.
9646
9647       The expression accepts the following values:
9648
9649       t   timestamp expressed in seconds, NAN if the input timestamp is
9650           unknown
9651
9652       n   sequential number of the input frame, starting from 0
9653
9654       pos the position in the file of the input frame, NAN if unknown
9655
9656       w
9657       h   width and height of the input frame if video
9658
9659       Additionally, these filters support an enable command that can be used
9660       to re-define the expression.
9661
9662       Like any other filtering option, the enable option follows the same
9663       rules.
9664
9665       For example, to enable a blur filter (smartblur) from 10 seconds to 3
9666       minutes, and a curves filter starting at 3 seconds:
9667
9668               smartblur = enable='between(t,10,3*60)',
9669               curves    = enable='gte(t,3)' : preset=cross_process
9670
9671       See "ffmpeg -filters" to view which filters have timeline support.
9672

CHANGING OPTIONS AT RUNTIME WITH A COMMAND

9674       Some options can be changed during the operation of the filter using a
9675       command. These options are marked 'T' on the output of ffmpeg -h
9676       filter=<name of filter>.  The name of the command is the name of the
9677       option and the argument is the new value.
9678

OPTIONS FOR FILTERS WITH SEVERAL INPUTS

9680       Some filters with several inputs support a common set of options.
9681       These options can only be set by name, not with the short notation.
9682
9683       eof_action
9684           The action to take when EOF is encountered on the secondary input;
9685           it accepts one of the following values:
9686
9687           repeat
9688               Repeat the last frame (the default).
9689
9690           endall
9691               End both streams.
9692
9693           pass
9694               Pass the main input through.
9695
9696       shortest
9697           If set to 1, force the output to terminate when the shortest input
9698           terminates. Default value is 0.
9699
9700       repeatlast
9701           If set to 1, force the filter to extend the last frame of secondary
9702           streams until the end of the primary stream. A value of 0 disables
9703           this behavior.  Default value is 1.
9704
9705       ts_sync_mode
9706           How strictly to sync streams based on secondary input timestamps;
9707           it accepts one of the following values:
9708
9709           default
9710               Frame from secondary input with the nearest lower or equal
9711               timestamp to the primary input frame.
9712
9713           nearest
9714               Frame from secondary input with the absolute nearest timestamp
9715               to the primary input frame.
9716

AUDIO FILTERS

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

AUDIO SOURCES

16055       Below is a description of the currently available audio sources.
16056
16057   abuffer
16058       Buffer audio frames, and make them available to the filter chain.
16059
16060       This source is mainly intended for a programmatic use, in particular
16061       through the interface defined in libavfilter/buffersrc.h.
16062
16063       It accepts the following parameters:
16064
16065       time_base
16066           The timebase which will be used for timestamps of submitted frames.
16067           It must be either a floating-point number or in
16068           numerator/denominator form.
16069
16070       sample_rate
16071           The sample rate of the incoming audio buffers.
16072
16073       sample_fmt
16074           The sample format of the incoming audio buffers.  Either a sample
16075           format name or its corresponding integer representation from the
16076           enum AVSampleFormat in libavutil/samplefmt.h
16077
16078       channel_layout
16079           The channel layout of the incoming audio buffers.  Either a channel
16080           layout name from channel_layout_map in libavutil/channel_layout.c
16081           or its corresponding integer representation from the AV_CH_LAYOUT_*
16082           macros in libavutil/channel_layout.h
16083
16084       channels
16085           The number of channels of the incoming audio buffers.  If both
16086           channels and channel_layout are specified, then they must be
16087           consistent.
16088
16089       Examples
16090
16091               abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
16092
16093       will instruct the source to accept planar 16bit signed stereo at
16094       44100Hz.  Since the sample format with name "s16p" corresponds to the
16095       number 6 and the "stereo" channel layout corresponds to the value 0x3,
16096       this is equivalent to:
16097
16098               abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
16099
16100   aevalsrc
16101       Generate an audio signal specified by an expression.
16102
16103       This source accepts in input one or more expressions (one for each
16104       channel), which are evaluated and used to generate a corresponding
16105       audio signal.
16106
16107       This source accepts the following options:
16108
16109       exprs
16110           Set the '|'-separated expressions list for each separate channel.
16111           In case the channel_layout option is not specified, the selected
16112           channel layout depends on the number of provided expressions.
16113           Otherwise the last specified expression is applied to the remaining
16114           output channels.
16115
16116       channel_layout, c
16117           Set the channel layout. The number of channels in the specified
16118           layout must be equal to the number of specified expressions.
16119
16120       duration, d
16121           Set the minimum duration of the sourced audio. See the Time
16122           duration section in the ffmpeg-utils(1) manual for the accepted
16123           syntax.  Note that the resulting duration may be greater than the
16124           specified duration, as the generated audio is always cut at the end
16125           of a complete frame.
16126
16127           If not specified, or the expressed duration is negative, the audio
16128           is supposed to be generated forever.
16129
16130       nb_samples, n
16131           Set the number of samples per channel per each output frame,
16132           default to 1024.
16133
16134       sample_rate, s
16135           Specify the sample rate, default to 44100.
16136
16137       Each expression in exprs can contain the following constants:
16138
16139       n   number of the evaluated sample, starting from 0
16140
16141       t   time of the evaluated sample expressed in seconds, starting from 0
16142
16143       s   sample rate
16144
16145       Examples
16146
16147       •   Generate silence:
16148
16149                   aevalsrc=0
16150
16151       •   Generate a sin signal with frequency of 440 Hz, set sample rate to
16152           8000 Hz:
16153
16154                   aevalsrc="sin(440*2*PI*t):s=8000"
16155
16156       •   Generate a two channels signal, specify the channel layout (Front
16157           Center + Back Center) explicitly:
16158
16159                   aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
16160
16161       •   Generate white noise:
16162
16163                   aevalsrc="-2+random(0)"
16164
16165       •   Generate an amplitude modulated signal:
16166
16167                   aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
16168
16169       •   Generate 2.5 Hz binaural beats on a 360 Hz carrier:
16170
16171                   aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
16172
16173   afdelaysrc
16174       Generate a fractional delay FIR coefficients.
16175
16176       The resulting stream can be used with afir filter for filtering the
16177       audio signal.
16178
16179       The filter accepts the following options:
16180
16181       delay, d
16182           Set the fractional delay. Default is 0.
16183
16184       sample_rate, r
16185           Set the sample rate, default is 44100.
16186
16187       nb_samples, n
16188           Set the number of samples per each frame. Default is 1024.
16189
16190       taps, t
16191           Set the number of filter coefficents in output audio stream.
16192           Default value is 0.
16193
16194       channel_layout, c
16195           Specifies the channel layout, and can be a string representing a
16196           channel layout.  The default value of channel_layout is "stereo".
16197
16198   afirsrc
16199       Generate a FIR coefficients using frequency sampling method.
16200
16201       The resulting stream can be used with afir filter for filtering the
16202       audio signal.
16203
16204       The filter accepts the following options:
16205
16206       taps, t
16207           Set number of filter coefficents in output audio stream.  Default
16208           value is 1025.
16209
16210       frequency, f
16211           Set frequency points from where magnitude and phase are set.  This
16212           must be in non decreasing order, and first element must be 0, while
16213           last element must be 1. Elements are separated by white spaces.
16214
16215       magnitude, m
16216           Set magnitude value for every frequency point set by frequency.
16217           Number of values must be same as number of frequency points.
16218           Values are separated by white spaces.
16219
16220       phase, p
16221           Set phase value for every frequency point set by frequency.  Number
16222           of values must be same as number of frequency points.  Values are
16223           separated by white spaces.
16224
16225       sample_rate, r
16226           Set sample rate, default is 44100.
16227
16228       nb_samples, n
16229           Set number of samples per each frame. Default is 1024.
16230
16231       win_func, w
16232           Set window function. Default is blackman.
16233
16234   anullsrc
16235       The null audio source, return unprocessed audio frames. It is mainly
16236       useful as a template and to be employed in analysis / debugging tools,
16237       or as the source for filters which ignore the input data (for example
16238       the sox synth filter).
16239
16240       This source accepts the following options:
16241
16242       channel_layout, cl
16243           Specifies the channel layout, and can be either an integer or a
16244           string representing a channel layout. The default value of
16245           channel_layout is "stereo".
16246
16247           Check the channel_layout_map definition in
16248           libavutil/channel_layout.c for the mapping between strings and
16249           channel layout values.
16250
16251       sample_rate, r
16252           Specifies the sample rate, and defaults to 44100.
16253
16254       nb_samples, n
16255           Set the number of samples per requested frames.
16256
16257       duration, d
16258           Set the duration of the sourced audio. See the Time duration
16259           section in the ffmpeg-utils(1) manual for the accepted syntax.
16260
16261           If not specified, or the expressed duration is negative, the audio
16262           is supposed to be generated forever.
16263
16264       Examples
16265
16266       •   Set the sample rate to 48000 Hz and the channel layout to
16267           AV_CH_LAYOUT_MONO.
16268
16269                   anullsrc=r=48000:cl=4
16270
16271       •   Do the same operation with a more obvious syntax:
16272
16273                   anullsrc=r=48000:cl=mono
16274
16275       All the parameters need to be explicitly defined.
16276
16277   flite
16278       Synthesize a voice utterance using the libflite library.
16279
16280       To enable compilation of this filter you need to configure FFmpeg with
16281       "--enable-libflite".
16282
16283       Note that versions of the flite library prior to 2.0 are not thread-
16284       safe.
16285
16286       The filter accepts the following options:
16287
16288       list_voices
16289           If set to 1, list the names of the available voices and exit
16290           immediately. Default value is 0.
16291
16292       nb_samples, n
16293           Set the maximum number of samples per frame. Default value is 512.
16294
16295       textfile
16296           Set the filename containing the text to speak.
16297
16298       text
16299           Set the text to speak.
16300
16301       voice, v
16302           Set the voice to use for the speech synthesis. Default value is
16303           "kal". See also the list_voices option.
16304
16305       Examples
16306
16307       •   Read from file speech.txt, and synthesize the text using the
16308           standard flite voice:
16309
16310                   flite=textfile=speech.txt
16311
16312       •   Read the specified text selecting the "slt" voice:
16313
16314                   flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
16315
16316       •   Input text to ffmpeg:
16317
16318                   ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
16319
16320       •   Make ffplay speak the specified text, using "flite" and the "lavfi"
16321           device:
16322
16323                   ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
16324
16325       For more information about libflite, check:
16326       <http://www.festvox.org/flite/>
16327
16328   anoisesrc
16329       Generate a noise audio signal.
16330
16331       The filter accepts the following options:
16332
16333       sample_rate, r
16334           Specify the sample rate. Default value is 48000 Hz.
16335
16336       amplitude, a
16337           Specify the amplitude (0.0 - 1.0) of the generated audio stream.
16338           Default value is 1.0.
16339
16340       duration, d
16341           Specify the duration of the generated audio stream. Not specifying
16342           this option results in noise with an infinite length.
16343
16344       color, colour, c
16345           Specify the color of noise. Available noise colors are white, pink,
16346           brown, blue, violet and velvet. Default color is white.
16347
16348       seed, s
16349           Specify a value used to seed the PRNG.
16350
16351       nb_samples, n
16352           Set the number of samples per each output frame, default is 1024.
16353
16354       Examples
16355
16356       •   Generate 60 seconds of pink noise, with a 44.1 kHz sampling rate
16357           and an amplitude of 0.5:
16358
16359                   anoisesrc=d=60:c=pink:r=44100:a=0.5
16360
16361   hilbert
16362       Generate odd-tap Hilbert transform FIR coefficients.
16363
16364       The resulting stream can be used with afir filter for phase-shifting
16365       the signal by 90 degrees.
16366
16367       This is used in many matrix coding schemes and for analytic signal
16368       generation.  The process is often written as a multiplication by i (or
16369       j), the imaginary unit.
16370
16371       The filter accepts the following options:
16372
16373       sample_rate, s
16374           Set sample rate, default is 44100.
16375
16376       taps, t
16377           Set length of FIR filter, default is 22051.
16378
16379       nb_samples, n
16380           Set number of samples per each frame.
16381
16382       win_func, w
16383           Set window function to be used when generating FIR coefficients.
16384
16385   sinc
16386       Generate a sinc kaiser-windowed low-pass, high-pass, band-pass, or
16387       band-reject FIR coefficients.
16388
16389       The resulting stream can be used with afir filter for filtering the
16390       audio signal.
16391
16392       The filter accepts the following options:
16393
16394       sample_rate, r
16395           Set sample rate, default is 44100.
16396
16397       nb_samples, n
16398           Set number of samples per each frame. Default is 1024.
16399
16400       hp  Set high-pass frequency. Default is 0.
16401
16402       lp  Set low-pass frequency. Default is 0.  If high-pass frequency is
16403           lower than low-pass frequency and low-pass frequency is higher than
16404           0 then filter will create band-pass filter coefficients, otherwise
16405           band-reject filter coefficients.
16406
16407       phase
16408           Set filter phase response. Default is 50. Allowed range is from 0
16409           to 100.
16410
16411       beta
16412           Set Kaiser window beta.
16413
16414       att Set stop-band attenuation. Default is 120dB, allowed range is from
16415           40 to 180 dB.
16416
16417       round
16418           Enable rounding, by default is disabled.
16419
16420       hptaps
16421           Set number of taps for high-pass filter.
16422
16423       lptaps
16424           Set number of taps for low-pass filter.
16425
16426   sine
16427       Generate an audio signal made of a sine wave with amplitude 1/8.
16428
16429       The audio signal is bit-exact.
16430
16431       The filter accepts the following options:
16432
16433       frequency, f
16434           Set the carrier frequency. Default is 440 Hz.
16435
16436       beep_factor, b
16437           Enable a periodic beep every second with frequency beep_factor
16438           times the carrier frequency. Default is 0, meaning the beep is
16439           disabled.
16440
16441       sample_rate, r
16442           Specify the sample rate, default is 44100.
16443
16444       duration, d
16445           Specify the duration of the generated audio stream.
16446
16447       samples_per_frame
16448           Set the number of samples per output frame.
16449
16450           The expression can contain the following constants:
16451
16452           n   The (sequential) number of the output audio frame, starting
16453               from 0.
16454
16455           pts The PTS (Presentation TimeStamp) of the output audio frame,
16456               expressed in TB units.
16457
16458           t   The PTS of the output audio frame, expressed in seconds.
16459
16460           TB  The timebase of the output audio frames.
16461
16462           Default is 1024.
16463
16464       Examples
16465
16466       •   Generate a simple 440 Hz sine wave:
16467
16468                   sine
16469
16470       •   Generate a 220 Hz sine wave with a 880 Hz beep each second, for 5
16471           seconds:
16472
16473                   sine=220:4:d=5
16474                   sine=f=220:b=4:d=5
16475                   sine=frequency=220:beep_factor=4:duration=5
16476
16477       •   Generate a 1 kHz sine wave following "1602,1601,1602,1601,1602"
16478           NTSC pattern:
16479
16480                   sine=1000:samples_per_frame='st(0,mod(n,5)); 1602-not(not(eq(ld(0),1)+eq(ld(0),3)))'
16481

AUDIO SINKS

16483       Below is a description of the currently available audio sinks.
16484
16485   abuffersink
16486       Buffer audio frames, and make them available to the end of filter
16487       chain.
16488
16489       This sink is mainly intended for programmatic use, in particular
16490       through the interface defined in libavfilter/buffersink.h or the
16491       options system.
16492
16493       It accepts a pointer to an AVABufferSinkContext structure, which
16494       defines the incoming buffers' formats, to be passed as the opaque
16495       parameter to "avfilter_init_filter" for initialization.
16496
16497   anullsink
16498       Null audio sink; do absolutely nothing with the input audio. It is
16499       mainly useful as a template and for use in analysis / debugging tools.
16500

VIDEO FILTERS

16502       When you configure your FFmpeg build, you can disable any of the
16503       existing filters using "--disable-filters".  The configure output will
16504       show the video filters included in your build.
16505
16506       Below is a description of the currently available video filters.
16507
16508   addroi
16509       Mark a region of interest in a video frame.
16510
16511       The frame data is passed through unchanged, but metadata is attached to
16512       the frame indicating regions of interest which can affect the behaviour
16513       of later encoding.  Multiple regions can be marked by applying the
16514       filter multiple times.
16515
16516       x   Region distance in pixels from the left edge of the frame.
16517
16518       y   Region distance in pixels from the top edge of the frame.
16519
16520       w   Region width in pixels.
16521
16522       h   Region height in pixels.
16523
16524           The parameters x, y, w and h are expressions, and may contain the
16525           following variables:
16526
16527           iw  Width of the input frame.
16528
16529           ih  Height of the input frame.
16530
16531       qoffset
16532           Quantisation offset to apply within the region.
16533
16534           This must be a real value in the range -1 to +1.  A value of zero
16535           indicates no quality change.  A negative value asks for better
16536           quality (less quantisation), while a positive value asks for worse
16537           quality (greater quantisation).
16538
16539           The range is calibrated so that the extreme values indicate the
16540           largest possible offset - if the rest of the frame is encoded with
16541           the worst possible quality, an offset of -1 indicates that this
16542           region should be encoded with the best possible quality anyway.
16543           Intermediate values are then interpolated in some codec-dependent
16544           way.
16545
16546           For example, in 10-bit H.264 the quantisation parameter varies
16547           between -12 and 51.  A typical qoffset value of -1/10 therefore
16548           indicates that this region should be encoded with a QP around one-
16549           tenth of the full range better than the rest of the frame.  So, if
16550           most of the frame were to be encoded with a QP of around 30, this
16551           region would get a QP of around 24 (an offset of approximately
16552           -1/10 * (51 - -12) = -6.3).  An extreme value of -1 would indicate
16553           that this region should be encoded with the best possible quality
16554           regardless of the treatment of the rest of the frame - that is,
16555           should be encoded at a QP of -12.
16556
16557       clear
16558           If set to true, remove any existing regions of interest marked on
16559           the frame before adding the new one.
16560
16561       Examples
16562
16563       •   Mark the centre quarter of the frame as interesting.
16564
16565                   addroi=iw/4:ih/4:iw/2:ih/2:-1/10
16566
16567       •   Mark the 100-pixel-wide region on the left edge of the frame as
16568           very uninteresting (to be encoded at much lower quality than the
16569           rest of the frame).
16570
16571                   addroi=0:0:100:ih:+1/5
16572
16573   alphaextract
16574       Extract the alpha component from the input as a grayscale video. This
16575       is especially useful with the alphamerge filter.
16576
16577   alphamerge
16578       Add or replace the alpha component of the primary input with the
16579       grayscale value of a second input. This is intended for use with
16580       alphaextract to allow the transmission or storage of frame sequences
16581       that have alpha in a format that doesn't support an alpha channel.
16582
16583       For example, to reconstruct full frames from a normal YUV-encoded video
16584       and a separate video created with alphaextract, you might use:
16585
16586               movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
16587
16588   amplify
16589       Amplify differences between current pixel and pixels of adjacent frames
16590       in same pixel location.
16591
16592       This filter accepts the following options:
16593
16594       radius
16595           Set frame radius. Default is 2. Allowed range is from 1 to 63.  For
16596           example radius of 3 will instruct filter to calculate average of 7
16597           frames.
16598
16599       factor
16600           Set factor to amplify difference. Default is 2. Allowed range is
16601           from 0 to 65535.
16602
16603       threshold
16604           Set threshold for difference amplification. Any difference greater
16605           or equal to this value will not alter source pixel. Default is 10.
16606           Allowed range is from 0 to 65535.
16607
16608       tolerance
16609           Set tolerance for difference amplification. Any difference lower to
16610           this value will not alter source pixel. Default is 0.  Allowed
16611           range is from 0 to 65535.
16612
16613       low Set lower limit for changing source pixel. Default is 65535.
16614           Allowed range is from 0 to 65535.  This option controls maximum
16615           possible value that will decrease source pixel value.
16616
16617       high
16618           Set high limit for changing source pixel. Default is 65535. Allowed
16619           range is from 0 to 65535.  This option controls maximum possible
16620           value that will increase source pixel value.
16621
16622       planes
16623           Set which planes to filter. Default is all. Allowed range is from 0
16624           to 15.
16625
16626       Commands
16627
16628       This filter supports the following commands that corresponds to option
16629       of same name:
16630
16631       factor
16632       threshold
16633       tolerance
16634       low
16635       high
16636       planes
16637
16638   ass
16639       Same as the subtitles filter, except that it doesn't require libavcodec
16640       and libavformat to work. On the other hand, it is limited to ASS
16641       (Advanced Substation Alpha) subtitles files.
16642
16643       This filter accepts the following option in addition to the common
16644       options from the subtitles filter:
16645
16646       shaping
16647           Set the shaping engine
16648
16649           Available values are:
16650
16651           auto
16652               The default libass shaping engine, which is the best available.
16653
16654           simple
16655               Fast, font-agnostic shaper that can do only substitutions
16656
16657           complex
16658               Slower shaper using OpenType for substitutions and positioning
16659
16660           The default is "auto".
16661
16662   atadenoise
16663       Apply an Adaptive Temporal Averaging Denoiser to the video input.
16664
16665       The filter accepts the following options:
16666
16667       0a  Set threshold A for 1st plane. Default is 0.02.  Valid range is 0
16668           to 0.3.
16669
16670       0b  Set threshold B for 1st plane. Default is 0.04.  Valid range is 0
16671           to 5.
16672
16673       1a  Set threshold A for 2nd plane. Default is 0.02.  Valid range is 0
16674           to 0.3.
16675
16676       1b  Set threshold B for 2nd plane. Default is 0.04.  Valid range is 0
16677           to 5.
16678
16679       2a  Set threshold A for 3rd plane. Default is 0.02.  Valid range is 0
16680           to 0.3.
16681
16682       2b  Set threshold B for 3rd plane. Default is 0.04.  Valid range is 0
16683           to 5.
16684
16685           Threshold A is designed to react on abrupt changes in the input
16686           signal and threshold B is designed to react on continuous changes
16687           in the input signal.
16688
16689       s   Set number of frames filter will use for averaging. Default is 9.
16690           Must be odd number in range [5, 129].
16691
16692       p   Set what planes of frame filter will use for averaging. Default is
16693           all.
16694
16695       a   Set what variant of algorithm filter will use for averaging.
16696           Default is "p" parallel.  Alternatively can be set to "s" serial.
16697
16698           Parallel can be faster then serial, while other way around is never
16699           true.  Parallel will abort early on first change being greater then
16700           thresholds, while serial will continue processing other side of
16701           frames if they are equal or below thresholds.
16702
16703       0s
16704       1s
16705       2s  Set sigma for 1st plane, 2nd plane or 3rd plane. Default is 32767.
16706           Valid range is from 0 to 32767.  This options controls weight for
16707           each pixel in radius defined by size.  Default value means every
16708           pixel have same weight.  Setting this option to 0 effectively
16709           disables filtering.
16710
16711       Commands
16712
16713       This filter supports same commands as options except option "s".  The
16714       command accepts the same syntax of the corresponding option.
16715
16716   avgblur
16717       Apply average blur filter.
16718
16719       The filter accepts the following options:
16720
16721       sizeX
16722           Set horizontal radius size.
16723
16724       planes
16725           Set which planes to filter. By default all planes are filtered.
16726
16727       sizeY
16728           Set vertical radius size, if zero it will be same as "sizeX".
16729           Default is 0.
16730
16731       Commands
16732
16733       This filter supports same commands as options.  The command accepts the
16734       same syntax of the corresponding option.
16735
16736       If the specified expression is not valid, it is kept at its current
16737       value.
16738
16739   backgroundkey
16740       Turns a static background into transparency.
16741
16742       The filter accepts the following option:
16743
16744       threshold
16745           Threshold for scene change detection.
16746
16747       similarity
16748           Similarity percentage with the background.
16749
16750       blend
16751           Set the blend amount for pixels that are not similar.
16752
16753       Commands
16754
16755       This filter supports the all above options as commands.
16756
16757   bbox
16758       Compute the bounding box for the non-black pixels in the input frame
16759       luminance plane.
16760
16761       This filter computes the bounding box containing all the pixels with a
16762       luminance value greater than the minimum allowed value.  The parameters
16763       describing the bounding box are printed on the filter log.
16764
16765       The filter accepts the following option:
16766
16767       min_val
16768           Set the minimal luminance value. Default is 16.
16769
16770       Commands
16771
16772       This filter supports the all above options as commands.
16773
16774   bilateral
16775       Apply bilateral filter, spatial smoothing while preserving edges.
16776
16777       The filter accepts the following options:
16778
16779       sigmaS
16780           Set sigma of gaussian function to calculate spatial weight.
16781           Allowed range is 0 to 512. Default is 0.1.
16782
16783       sigmaR
16784           Set sigma of gaussian function to calculate range weight.  Allowed
16785           range is 0 to 1. Default is 0.1.
16786
16787       planes
16788           Set planes to filter. Default is first only.
16789
16790       Commands
16791
16792       This filter supports the all above options as commands.
16793
16794   bilateral_cuda
16795       CUDA accelerated bilateral filter, an edge preserving filter.  This
16796       filter is mathematically accurate thanks to the use of GPU
16797       acceleration.  For best output quality, use one to one chroma
16798       subsampling, i.e. yuv444p format.
16799
16800       The filter accepts the following options:
16801
16802       sigmaS
16803           Set sigma of gaussian function to calculate spatial weight, also
16804           called sigma space.  Allowed range is 0.1 to 512. Default is 0.1.
16805
16806       sigmaR
16807           Set sigma of gaussian function to calculate color range weight,
16808           also called sigma color.  Allowed range is 0.1 to 512. Default is
16809           0.1.
16810
16811       window_size
16812           Set window size of the bilateral function to determine the number
16813           of neighbours to loop on.  If the number entered is even, one will
16814           be added automatically.  Allowed range is 1 to 255. Default is 1.
16815
16816       Examples
16817
16818       •   Apply the bilateral filter on a video.
16819
16820                   ./ffmpeg -v verbose \
16821                   -hwaccel cuda -hwaccel_output_format cuda -i input.mp4  \
16822                   -init_hw_device cuda \
16823                   -filter_complex \
16824                   " \
16825                   [0:v]scale_cuda=format=yuv444p[scaled_video];
16826                   [scaled_video]bilateral_cuda=window_size=9:sigmaS=3.0:sigmaR=50.0" \
16827                   -an -sn -c:v h264_nvenc -cq 20 out.mp4
16828
16829   bitplanenoise
16830       Show and measure bit plane noise.
16831
16832       The filter accepts the following options:
16833
16834       bitplane
16835           Set which plane to analyze. Default is 1.
16836
16837       filter
16838           Filter out noisy pixels from "bitplane" set above.  Default is
16839           disabled.
16840
16841   blackdetect
16842       Detect video intervals that are (almost) completely black. Can be
16843       useful to detect chapter transitions, commercials, or invalid
16844       recordings.
16845
16846       The filter outputs its detection analysis to both the log as well as
16847       frame metadata. If a black segment of at least the specified minimum
16848       duration is found, a line with the start and end timestamps as well as
16849       duration is printed to the log with level "info". In addition, a log
16850       line with level "debug" is printed per frame showing the black amount
16851       detected for that frame.
16852
16853       The filter also attaches metadata to the first frame of a black segment
16854       with key "lavfi.black_start" and to the first frame after the black
16855       segment ends with key "lavfi.black_end". The value is the frame's
16856       timestamp. This metadata is added regardless of the minimum duration
16857       specified.
16858
16859       The filter accepts the following options:
16860
16861       black_min_duration, d
16862           Set the minimum detected black duration expressed in seconds. It
16863           must be a non-negative floating point number.
16864
16865           Default value is 2.0.
16866
16867       picture_black_ratio_th, pic_th
16868           Set the threshold for considering a picture "black".  Express the
16869           minimum value for the ratio:
16870
16871                   <nb_black_pixels> / <nb_pixels>
16872
16873           for which a picture is considered black.  Default value is 0.98.
16874
16875       pixel_black_th, pix_th
16876           Set the threshold for considering a pixel "black".
16877
16878           The threshold expresses the maximum pixel luminance value for which
16879           a pixel is considered "black". The provided value is scaled
16880           according to the following equation:
16881
16882                   <absolute_threshold> = <luminance_minimum_value> + <pixel_black_th> * <luminance_range_size>
16883
16884           luminance_range_size and luminance_minimum_value depend on the
16885           input video format, the range is [0-255] for YUV full-range formats
16886           and [16-235] for YUV non full-range formats.
16887
16888           Default value is 0.10.
16889
16890       The following example sets the maximum pixel threshold to the minimum
16891       value, and detects only black intervals of 2 or more seconds:
16892
16893               blackdetect=d=2:pix_th=0.00
16894
16895   blackframe
16896       Detect frames that are (almost) completely black. Can be useful to
16897       detect chapter transitions or commercials. Output lines consist of the
16898       frame number of the detected frame, the percentage of blackness, the
16899       position in the file if known or -1 and the timestamp in seconds.
16900
16901       In order to display the output lines, you need to set the loglevel at
16902       least to the AV_LOG_INFO value.
16903
16904       This filter exports frame metadata "lavfi.blackframe.pblack".  The
16905       value represents the percentage of pixels in the picture that are below
16906       the threshold value.
16907
16908       It accepts the following parameters:
16909
16910       amount
16911           The percentage of the pixels that have to be below the threshold;
16912           it defaults to 98.
16913
16914       threshold, thresh
16915           The threshold below which a pixel value is considered black; it
16916           defaults to 32.
16917
16918   blend
16919       Blend two video frames into each other.
16920
16921       The "blend" filter takes two input streams and outputs one stream, the
16922       first input is the "top" layer and second input is "bottom" layer.  By
16923       default, the output terminates when the longest input terminates.
16924
16925       The "tblend" (time blend) filter takes two consecutive frames from one
16926       single stream, and outputs the result obtained by blending the new
16927       frame on top of the old frame.
16928
16929       A description of the accepted options follows.
16930
16931       c0_mode
16932       c1_mode
16933       c2_mode
16934       c3_mode
16935       all_mode
16936           Set blend mode for specific pixel component or all pixel components
16937           in case of all_mode. Default value is "normal".
16938
16939           Available values for component modes are:
16940
16941           addition
16942           and
16943           average
16944           bleach
16945           burn
16946           darken
16947           difference
16948           divide
16949           dodge
16950           exclusion
16951           extremity
16952           freeze
16953           geometric
16954           glow
16955           grainextract
16956           grainmerge
16957           hardlight
16958           hardmix
16959           hardoverlay
16960           harmonic
16961           heat
16962           interpolate
16963           lighten
16964           linearlight
16965           multiply
16966           multiply128
16967           negation
16968           normal
16969           or
16970           overlay
16971           phoenix
16972           pinlight
16973           reflect
16974           screen
16975           softdifference
16976           softlight
16977           stain
16978           subtract
16979           vividlight
16980           xor
16981       c0_opacity
16982       c1_opacity
16983       c2_opacity
16984       c3_opacity
16985       all_opacity
16986           Set blend opacity for specific pixel component or all pixel
16987           components in case of all_opacity. Only used in combination with
16988           pixel component blend modes.
16989
16990       c0_expr
16991       c1_expr
16992       c2_expr
16993       c3_expr
16994       all_expr
16995           Set blend expression for specific pixel component or all pixel
16996           components in case of all_expr. Note that related mode options will
16997           be ignored if those are set.
16998
16999           The expressions can use the following variables:
17000
17001           N   The sequential number of the filtered frame, starting from 0.
17002
17003           X
17004           Y   the coordinates of the current sample
17005
17006           W
17007           H   the width and height of currently filtered plane
17008
17009           SW
17010           SH  Width and height scale for the plane being filtered. It is the
17011               ratio between the dimensions of the current plane to the luma
17012               plane, e.g. for a "yuv420p" frame, the values are "1,1" for the
17013               luma plane and "0.5,0.5" for the chroma planes.
17014
17015           T   Time of the current frame, expressed in seconds.
17016
17017           TOP, A
17018               Value of pixel component at current location for first video
17019               frame (top layer).
17020
17021           BOTTOM, B
17022               Value of pixel component at current location for second video
17023               frame (bottom layer).
17024
17025       The "blend" filter also supports the framesync options.
17026
17027       Examples
17028
17029       •   Apply transition from bottom layer to top layer in first 10
17030           seconds:
17031
17032                   blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
17033
17034       •   Apply linear horizontal transition from top layer to bottom layer:
17035
17036                   blend=all_expr='A*(X/W)+B*(1-X/W)'
17037
17038       •   Apply 1x1 checkerboard effect:
17039
17040                   blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
17041
17042       •   Apply uncover left effect:
17043
17044                   blend=all_expr='if(gte(N*SW+X,W),A,B)'
17045
17046       •   Apply uncover down effect:
17047
17048                   blend=all_expr='if(gte(Y-N*SH,0),A,B)'
17049
17050       •   Apply uncover up-left effect:
17051
17052                   blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
17053
17054       •   Split diagonally video and shows top and bottom layer on each side:
17055
17056                   blend=all_expr='if(gt(X,Y*(W/H)),A,B)'
17057
17058       •   Display differences between the current and the previous frame:
17059
17060                   tblend=all_mode=grainextract
17061
17062       Commands
17063
17064       This filter supports same commands as options.
17065
17066   blockdetect
17067       Determines blockiness of frames without altering the input frames.
17068
17069       Based on Remco Muijs and Ihor Kirenko: "A no-reference blocking
17070       artifact measure for adaptive video processing." 2005 13th European
17071       signal processing conference.
17072
17073       The filter accepts the following options:
17074
17075       period_min
17076       period_max
17077           Set minimum and maximum values for determining pixel grids
17078           (periods).  Default values are [3,24].
17079
17080       planes
17081           Set planes to filter. Default is first only.
17082
17083       Examples
17084
17085       •   Determine blockiness for the first plane and search for periods
17086           within [8,32]:
17087
17088                   blockdetect=period_min=8:period_max=32:planes=1
17089
17090   blurdetect
17091       Determines blurriness of frames without altering the input frames.
17092
17093       Based on Marziliano, Pina, et al. "A no-reference perceptual blur
17094       metric."  Allows for a block-based abbreviation.
17095
17096       The filter accepts the following options:
17097
17098       low
17099       high
17100           Set low and high threshold values used by the Canny thresholding
17101           algorithm.
17102
17103           The high threshold selects the "strong" edge pixels, which are then
17104           connected through 8-connectivity with the "weak" edge pixels
17105           selected by the low threshold.
17106
17107           low and high threshold values must be chosen in the range [0,1],
17108           and low should be lesser or equal to high.
17109
17110           Default value for low is "20/255", and default value for high is
17111           "50/255".
17112
17113       radius
17114           Define the radius to search around an edge pixel for local maxima.
17115
17116       block_pct
17117           Determine blurriness only for the most significant blocks, given in
17118           percentage.
17119
17120       block_width
17121           Determine blurriness for blocks of width block_width. If set to any
17122           value smaller 1, no blocks are used and the whole image is
17123           processed as one no matter of block_height.
17124
17125       block_height
17126           Determine blurriness for blocks of height block_height. If set to
17127           any value smaller 1, no blocks are used and the whole image is
17128           processed as one no matter of block_width.
17129
17130       planes
17131           Set planes to filter. Default is first only.
17132
17133       Examples
17134
17135       •   Determine blur for 80% of most significant 32x32 blocks:
17136
17137                   blurdetect=block_width=32:block_height=32:block_pct=80
17138
17139   bm3d
17140       Denoise frames using Block-Matching 3D algorithm.
17141
17142       The filter accepts the following options.
17143
17144       sigma
17145           Set denoising strength. Default value is 1.  Allowed range is from
17146           0 to 999.9.  The denoising algorithm is very sensitive to sigma, so
17147           adjust it according to the source.
17148
17149       block
17150           Set local patch size. This sets dimensions in 2D.
17151
17152       bstep
17153           Set sliding step for processing blocks. Default value is 4.
17154           Allowed range is from 1 to 64.  Smaller values allows processing
17155           more reference blocks and is slower.
17156
17157       group
17158           Set maximal number of similar blocks for 3rd dimension. Default
17159           value is 1.  When set to 1, no block matching is done. Larger
17160           values allows more blocks in single group.  Allowed range is from 1
17161           to 256.
17162
17163       range
17164           Set radius for search block matching. Default is 9.  Allowed range
17165           is from 1 to INT32_MAX.
17166
17167       mstep
17168           Set step between two search locations for block matching. Default
17169           is 1.  Allowed range is from 1 to 64. Smaller is slower.
17170
17171       thmse
17172           Set threshold of mean square error for block matching. Valid range
17173           is 0 to INT32_MAX.
17174
17175       hdthr
17176           Set thresholding parameter for hard thresholding in 3D transformed
17177           domain.  Larger values results in stronger hard-thresholding
17178           filtering in frequency domain.
17179
17180       estim
17181           Set filtering estimation mode. Can be "basic" or "final".  Default
17182           is "basic".
17183
17184       ref If enabled, filter will use 2nd stream for block matching.  Default
17185           is disabled for "basic" value of estim option, and always enabled
17186           if value of estim is "final".
17187
17188       planes
17189           Set planes to filter. Default is all available except alpha.
17190
17191       Examples
17192
17193       •   Basic filtering with bm3d:
17194
17195                   bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic
17196
17197       •   Same as above, but filtering only luma:
17198
17199                   bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic:planes=1
17200
17201       •   Same as above, but with both estimation modes:
17202
17203                   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
17204
17205       •   Same as above, but prefilter with nlmeans filter instead:
17206
17207                   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
17208
17209   boxblur
17210       Apply a boxblur algorithm to the input video.
17211
17212       It accepts the following parameters:
17213
17214       luma_radius, lr
17215       luma_power, lp
17216       chroma_radius, cr
17217       chroma_power, cp
17218       alpha_radius, ar
17219       alpha_power, ap
17220
17221       A description of the accepted options follows.
17222
17223       luma_radius, lr
17224       chroma_radius, cr
17225       alpha_radius, ar
17226           Set an expression for the box radius in pixels used for blurring
17227           the corresponding input plane.
17228
17229           The radius value must be a non-negative number, and must not be
17230           greater than the value of the expression "min(w,h)/2" for the luma
17231           and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
17232
17233           Default value for luma_radius is "2". If not specified,
17234           chroma_radius and alpha_radius default to the corresponding value
17235           set for luma_radius.
17236
17237           The expressions can contain the following constants:
17238
17239           w
17240           h   The input width and height in pixels.
17241
17242           cw
17243           ch  The input chroma image width and height in pixels.
17244
17245           hsub
17246           vsub
17247               The horizontal and vertical chroma subsample values. For
17248               example, for the pixel format "yuv422p", hsub is 2 and vsub is
17249               1.
17250
17251       luma_power, lp
17252       chroma_power, cp
17253       alpha_power, ap
17254           Specify how many times the boxblur filter is applied to the
17255           corresponding plane.
17256
17257           Default value for luma_power is 2. If not specified, chroma_power
17258           and alpha_power default to the corresponding value set for
17259           luma_power.
17260
17261           A value of 0 will disable the effect.
17262
17263       Examples
17264
17265       •   Apply a boxblur filter with the luma, chroma, and alpha radii set
17266           to 2:
17267
17268                   boxblur=luma_radius=2:luma_power=1
17269                   boxblur=2:1
17270
17271       •   Set the luma radius to 2, and alpha and chroma radius to 0:
17272
17273                   boxblur=2:1:cr=0:ar=0
17274
17275       •   Set the luma and chroma radii to a fraction of the video dimension:
17276
17277                   boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
17278
17279   bwdif
17280       Deinterlace the input video ("bwdif" stands for "Bob Weaver
17281       Deinterlacing Filter").
17282
17283       Motion adaptive deinterlacing based on yadif with the use of w3fdif and
17284       cubic interpolation algorithms.  It accepts the following parameters:
17285
17286       mode
17287           The interlacing mode to adopt. It accepts one of the following
17288           values:
17289
17290           0, send_frame
17291               Output one frame for each frame.
17292
17293           1, send_field
17294               Output one frame for each field.
17295
17296           The default value is "send_field".
17297
17298       parity
17299           The picture field parity assumed for the input interlaced video. It
17300           accepts one of the following values:
17301
17302           0, tff
17303               Assume the top field is first.
17304
17305           1, bff
17306               Assume the bottom field is first.
17307
17308           -1, auto
17309               Enable automatic detection of field parity.
17310
17311           The default value is "auto".  If the interlacing is unknown or the
17312           decoder does not export this information, top field first will be
17313           assumed.
17314
17315       deint
17316           Specify which frames to deinterlace. Accepts one of the following
17317           values:
17318
17319           0, all
17320               Deinterlace all frames.
17321
17322           1, interlaced
17323               Only deinterlace frames marked as interlaced.
17324
17325           The default value is "all".
17326
17327   cas
17328       Apply Contrast Adaptive Sharpen filter to video stream.
17329
17330       The filter accepts the following options:
17331
17332       strength
17333           Set the sharpening strength. Default value is 0.
17334
17335       planes
17336           Set planes to filter. Default value is to filter all planes except
17337           alpha plane.
17338
17339       Commands
17340
17341       This filter supports same commands as options.
17342
17343   chromahold
17344       Remove all color information for all colors except for certain one.
17345
17346       The filter accepts the following options:
17347
17348       color
17349           The color which will not be replaced with neutral chroma.
17350
17351       similarity
17352           Similarity percentage with the above color.  0.01 matches only the
17353           exact key color, while 1.0 matches everything.
17354
17355       blend
17356           Blend percentage.  0.0 makes pixels either fully gray, or not gray
17357           at all.  Higher values result in more preserved color.
17358
17359       yuv Signals that the color passed is already in YUV instead of RGB.
17360
17361           Literal colors like "green" or "red" don't make sense with this
17362           enabled anymore.  This can be used to pass exact YUV values as
17363           hexadecimal numbers.
17364
17365       Commands
17366
17367       This filter supports same commands as options.  The command accepts the
17368       same syntax of the corresponding option.
17369
17370       If the specified expression is not valid, it is kept at its current
17371       value.
17372
17373   chromakey
17374       YUV colorspace color/chroma keying.
17375
17376       The filter accepts the following options:
17377
17378       color
17379           The color which will be replaced with transparency.
17380
17381       similarity
17382           Similarity percentage with the key color.
17383
17384           0.01 matches only the exact key color, while 1.0 matches
17385           everything.
17386
17387       blend
17388           Blend percentage.
17389
17390           0.0 makes pixels either fully transparent, or not transparent at
17391           all.
17392
17393           Higher values result in semi-transparent pixels, with a higher
17394           transparency the more similar the pixels color is to the key color.
17395
17396       yuv Signals that the color passed is already in YUV instead of RGB.
17397
17398           Literal colors like "green" or "red" don't make sense with this
17399           enabled anymore.  This can be used to pass exact YUV values as
17400           hexadecimal numbers.
17401
17402       Commands
17403
17404       This filter supports same commands as options.  The command accepts the
17405       same syntax of the corresponding option.
17406
17407       If the specified expression is not valid, it is kept at its current
17408       value.
17409
17410       Examples
17411
17412       •   Make every green pixel in the input image transparent:
17413
17414                   ffmpeg -i input.png -vf chromakey=green out.png
17415
17416       •   Overlay a greenscreen-video on top of a static black background.
17417
17418                   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
17419
17420   chromakey_cuda
17421       CUDA accelerated YUV colorspace color/chroma keying.
17422
17423       This filter works like normal chromakey filter but operates on CUDA
17424       frames.  for more details and parameters see chromakey.
17425
17426       Examples
17427
17428       •   Make all the green pixels in the input video transparent and use it
17429           as an overlay for another video:
17430
17431                   ./ffmpeg \
17432                       -hwaccel cuda -hwaccel_output_format cuda -i input_green.mp4  \
17433                       -hwaccel cuda -hwaccel_output_format cuda -i base_video.mp4 \
17434                       -init_hw_device cuda \
17435                       -filter_complex \
17436                       " \
17437                           [0:v]chromakey_cuda=0x25302D:0.1:0.12:1[overlay_video]; \
17438                           [1:v]scale_cuda=format=yuv420p[base]; \
17439                           [base][overlay_video]overlay_cuda" \
17440                       -an -sn -c:v h264_nvenc -cq 20 output.mp4
17441
17442       •   Process two software sources, explicitly uploading the frames:
17443
17444                   ./ffmpeg -init_hw_device cuda=cuda -filter_hw_device cuda \
17445                       -f lavfi -i color=size=800x600:color=white,format=yuv420p \
17446                       -f lavfi -i yuvtestsrc=size=200x200,format=yuv420p \
17447                       -filter_complex \
17448                       " \
17449                           [0]hwupload[under]; \
17450                           [1]hwupload,chromakey_cuda=green:0.1:0.12[over]; \
17451                           [under][over]overlay_cuda" \
17452                       -c:v hevc_nvenc -cq 18 -preset slow output.mp4
17453
17454   chromanr
17455       Reduce chrominance noise.
17456
17457       The filter accepts the following options:
17458
17459       thres
17460           Set threshold for averaging chrominance values.  Sum of absolute
17461           difference of Y, U and V pixel components of current pixel and
17462           neighbour pixels lower than this threshold will be used in
17463           averaging. Luma component is left unchanged and is copied to
17464           output.  Default value is 30. Allowed range is from 1 to 200.
17465
17466       sizew
17467           Set horizontal radius of rectangle used for averaging.  Allowed
17468           range is from 1 to 100. Default value is 5.
17469
17470       sizeh
17471           Set vertical radius of rectangle used for averaging.  Allowed range
17472           is from 1 to 100. Default value is 5.
17473
17474       stepw
17475           Set horizontal step when averaging. Default value is 1.  Allowed
17476           range is from 1 to 50.  Mostly useful to speed-up filtering.
17477
17478       steph
17479           Set vertical step when averaging. Default value is 1.  Allowed
17480           range is from 1 to 50.  Mostly useful to speed-up filtering.
17481
17482       threy
17483           Set Y threshold for averaging chrominance values.  Set finer
17484           control for max allowed difference between Y components of current
17485           pixel and neigbour pixels.  Default value is 200. Allowed range is
17486           from 1 to 200.
17487
17488       threu
17489           Set U threshold for averaging chrominance values.  Set finer
17490           control for max allowed difference between U components of current
17491           pixel and neigbour pixels.  Default value is 200. Allowed range is
17492           from 1 to 200.
17493
17494       threv
17495           Set V threshold for averaging chrominance values.  Set finer
17496           control for max allowed difference between V components of current
17497           pixel and neigbour pixels.  Default value is 200. Allowed range is
17498           from 1 to 200.
17499
17500       distance
17501           Set distance type used in calculations.
17502
17503           manhattan
17504               Absolute difference.
17505
17506           euclidean
17507               Difference squared.
17508
17509           Default distance type is manhattan.
17510
17511       Commands
17512
17513       This filter supports same commands as options.  The command accepts the
17514       same syntax of the corresponding option.
17515
17516   chromashift
17517       Shift chroma pixels horizontally and/or vertically.
17518
17519       The filter accepts the following options:
17520
17521       cbh Set amount to shift chroma-blue horizontally.
17522
17523       cbv Set amount to shift chroma-blue vertically.
17524
17525       crh Set amount to shift chroma-red horizontally.
17526
17527       crv Set amount to shift chroma-red vertically.
17528
17529       edge
17530           Set edge mode, can be smear, default, or warp.
17531
17532       Commands
17533
17534       This filter supports the all above options as commands.
17535
17536   ciescope
17537       Display CIE color diagram with pixels overlaid onto it.
17538
17539       The filter accepts the following options:
17540
17541       system
17542           Set color system.
17543
17544           ntsc, 470m
17545           ebu, 470bg
17546           smpte
17547           240m
17548           apple
17549           widergb
17550           cie1931
17551           rec709, hdtv
17552           uhdtv, rec2020
17553           dcip3
17554       cie Set CIE system.
17555
17556           xyy
17557           ucs
17558           luv
17559       gamuts
17560           Set what gamuts to draw.
17561
17562           See "system" option for available values.
17563
17564       size, s
17565           Set ciescope size, by default set to 512.
17566
17567       intensity, i
17568           Set intensity used to map input pixel values to CIE diagram.
17569
17570       contrast
17571           Set contrast used to draw tongue colors that are out of active
17572           color system gamut.
17573
17574       corrgamma
17575           Correct gamma displayed on scope, by default enabled.
17576
17577       showwhite
17578           Show white point on CIE diagram, by default disabled.
17579
17580       gamma
17581           Set input gamma. Used only with XYZ input color space.
17582
17583       fill
17584           Fill with CIE colors. By default is enabled.
17585
17586   codecview
17587       Visualize information exported by some codecs.
17588
17589       Some codecs can export information through frames using side-data or
17590       other means. For example, some MPEG based codecs export motion vectors
17591       through the export_mvs flag in the codec flags2 option.
17592
17593       The filter accepts the following option:
17594
17595       block
17596           Display block partition structure using the luma plane.
17597
17598       mv  Set motion vectors to visualize.
17599
17600           Available flags for mv are:
17601
17602           pf  forward predicted MVs of P-frames
17603
17604           bf  forward predicted MVs of B-frames
17605
17606           bb  backward predicted MVs of B-frames
17607
17608       qp  Display quantization parameters using the chroma planes.
17609
17610       mv_type, mvt
17611           Set motion vectors type to visualize. Includes MVs from all frames
17612           unless specified by frame_type option.
17613
17614           Available flags for mv_type are:
17615
17616           fp  forward predicted MVs
17617
17618           bp  backward predicted MVs
17619
17620       frame_type, ft
17621           Set frame type to visualize motion vectors of.
17622
17623           Available flags for frame_type are:
17624
17625           if  intra-coded frames (I-frames)
17626
17627           pf  predicted frames (P-frames)
17628
17629           bf  bi-directionally predicted frames (B-frames)
17630
17631       Examples
17632
17633       •   Visualize forward predicted MVs of all frames using ffplay:
17634
17635                   ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp
17636
17637       •   Visualize multi-directionals MVs of P and B-Frames using ffplay:
17638
17639                   ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
17640
17641   colorbalance
17642       Modify intensity of primary colors (red, green and blue) of input
17643       frames.
17644
17645       The filter allows an input frame to be adjusted in the shadows,
17646       midtones or highlights regions for the red-cyan, green-magenta or blue-
17647       yellow balance.
17648
17649       A positive adjustment value shifts the balance towards the primary
17650       color, a negative value towards the complementary color.
17651
17652       The filter accepts the following options:
17653
17654       rs
17655       gs
17656       bs  Adjust red, green and blue shadows (darkest pixels).
17657
17658       rm
17659       gm
17660       bm  Adjust red, green and blue midtones (medium pixels).
17661
17662       rh
17663       gh
17664       bh  Adjust red, green and blue highlights (brightest pixels).
17665
17666           Allowed ranges for options are "[-1.0, 1.0]". Defaults are 0.
17667
17668       pl  Preserve lightness when changing color balance. Default is
17669           disabled.
17670
17671       Examples
17672
17673       •   Add red color cast to shadows:
17674
17675                   colorbalance=rs=.3
17676
17677       Commands
17678
17679       This filter supports the all above options as commands.
17680
17681   colorcontrast
17682       Adjust color contrast between RGB components.
17683
17684       The filter accepts the following options:
17685
17686       rc  Set the red-cyan contrast. Defaults is 0.0. Allowed range is from
17687           -1.0 to 1.0.
17688
17689       gm  Set the green-magenta contrast. Defaults is 0.0. Allowed range is
17690           from -1.0 to 1.0.
17691
17692       by  Set the blue-yellow contrast. Defaults is 0.0. Allowed range is
17693           from -1.0 to 1.0.
17694
17695       rcw
17696       gmw
17697       byw Set the weight of each "rc", "gm", "by" option value. Default value
17698           is 0.0.  Allowed range is from 0.0 to 1.0. If all weights are 0.0
17699           filtering is disabled.
17700
17701       pl  Set the amount of preserving lightness. Default value is 0.0.
17702           Allowed range is from 0.0 to 1.0.
17703
17704       Commands
17705
17706       This filter supports the all above options as commands.
17707
17708   colorcorrect
17709       Adjust color white balance selectively for blacks and whites.  This
17710       filter operates in YUV colorspace.
17711
17712       The filter accepts the following options:
17713
17714       rl  Set the red shadow spot. Allowed range is from -1.0 to 1.0.
17715           Default value is 0.
17716
17717       bl  Set the blue shadow spot. Allowed range is from -1.0 to 1.0.
17718           Default value is 0.
17719
17720       rh  Set the red highlight spot. Allowed range is from -1.0 to 1.0.
17721           Default value is 0.
17722
17723       bh  Set the red highlight spot. Allowed range is from -1.0 to 1.0.
17724           Default value is 0.
17725
17726       saturation
17727           Set the amount of saturation. Allowed range is from -3.0 to 3.0.
17728           Default value is 1.
17729
17730       analyze
17731           If set to anything other than "manual" it will analyze every frame
17732           and use derived parameters for filtering output frame.
17733
17734           Possible values are:
17735
17736           manual
17737           average
17738           minmax
17739           median
17740
17741           Default value is "manual".
17742
17743       Commands
17744
17745       This filter supports the all above options as commands.
17746
17747   colorchannelmixer
17748       Adjust video input frames by re-mixing color channels.
17749
17750       This filter modifies a color channel by adding the values associated to
17751       the other channels of the same pixels. For example if the value to
17752       modify is red, the output value will be:
17753
17754               <red>=<red>*<rr> + <blue>*<rb> + <green>*<rg> + <alpha>*<ra>
17755
17756       The filter accepts the following options:
17757
17758       rr
17759       rg
17760       rb
17761       ra  Adjust contribution of input red, green, blue and alpha channels
17762           for output red channel.  Default is 1 for rr, and 0 for rg, rb and
17763           ra.
17764
17765       gr
17766       gg
17767       gb
17768       ga  Adjust contribution of input red, green, blue and alpha channels
17769           for output green channel.  Default is 1 for gg, and 0 for gr, gb
17770           and ga.
17771
17772       br
17773       bg
17774       bb
17775       ba  Adjust contribution of input red, green, blue and alpha channels
17776           for output blue channel.  Default is 1 for bb, and 0 for br, bg and
17777           ba.
17778
17779       ar
17780       ag
17781       ab
17782       aa  Adjust contribution of input red, green, blue and alpha channels
17783           for output alpha channel.  Default is 1 for aa, and 0 for ar, ag
17784           and ab.
17785
17786           Allowed ranges for options are "[-2.0, 2.0]".
17787
17788       pc  Set preserve color mode. The accepted values are:
17789
17790           none
17791               Disable color preserving, this is default.
17792
17793           lum Preserve luminance.
17794
17795           max Preserve max value of RGB triplet.
17796
17797           avg Preserve average value of RGB triplet.
17798
17799           sum Preserve sum value of RGB triplet.
17800
17801           nrm Preserve normalized value of RGB triplet.
17802
17803           pwr Preserve power value of RGB triplet.
17804
17805       pa  Set the preserve color amount when changing colors. Allowed range
17806           is from "[0.0, 1.0]".  Default is 0.0, thus disabled.
17807
17808       Examples
17809
17810       •   Convert source to grayscale:
17811
17812                   colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
17813
17814       •   Simulate sepia tones:
17815
17816                   colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
17817
17818       Commands
17819
17820       This filter supports the all above options as commands.
17821
17822   colorize
17823       Overlay a solid color on the video stream.
17824
17825       The filter accepts the following options:
17826
17827       hue Set the color hue. Allowed range is from 0 to 360.  Default value
17828           is 0.
17829
17830       saturation
17831           Set the color saturation. Allowed range is from 0 to 1.  Default
17832           value is 0.5.
17833
17834       lightness
17835           Set the color lightness. Allowed range is from 0 to 1.  Default
17836           value is 0.5.
17837
17838       mix Set the mix of source lightness. By default is set to 1.0.  Allowed
17839           range is from 0.0 to 1.0.
17840
17841       Commands
17842
17843       This filter supports the all above options as commands.
17844
17845   colorkey
17846       RGB colorspace color keying.  This filter operates on 8-bit RGB format
17847       frames by setting the alpha component of each pixel which falls within
17848       the similarity radius of the key color to 0. The alpha value for pixels
17849       outside the similarity radius depends on the value of the blend option.
17850
17851       The filter accepts the following options:
17852
17853       color
17854           Set the color for which alpha will be set to 0 (full transparency).
17855           See "Color" section in the ffmpeg-utils manual.  Default is
17856           "black".
17857
17858       similarity
17859           Set the radius from the key color within which other colors also
17860           have full transparency.  The computed distance is related to the
17861           unit fractional distance in 3D space between the RGB values of the
17862           key color and the pixel's color. Range is 0.01 to 1.0. 0.01 matches
17863           within a very small radius around the exact key color, while 1.0
17864           matches everything.  Default is 0.01.
17865
17866       blend
17867           Set how the alpha value for pixels that fall outside the similarity
17868           radius is computed.  0.0 makes pixels either fully transparent or
17869           fully opaque.  Higher values result in semi-transparent pixels,
17870           with greater transparency the more similar the pixel color is to
17871           the key color.  Range is 0.0 to 1.0. Default is 0.0.
17872
17873       Examples
17874
17875       •   Make every green pixel in the input image transparent:
17876
17877                   ffmpeg -i input.png -vf colorkey=green out.png
17878
17879       •   Overlay a greenscreen-video on top of a static background image.
17880
17881                   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
17882
17883       Commands
17884
17885       This filter supports same commands as options.  The command accepts the
17886       same syntax of the corresponding option.
17887
17888       If the specified expression is not valid, it is kept at its current
17889       value.
17890
17891   colorhold
17892       Remove all color information for all RGB colors except for certain one.
17893
17894       The filter accepts the following options:
17895
17896       color
17897           The color which will not be replaced with neutral gray.
17898
17899       similarity
17900           Similarity percentage with the above color.  0.01 matches only the
17901           exact key color, while 1.0 matches everything.
17902
17903       blend
17904           Blend percentage. 0.0 makes pixels fully gray.  Higher values
17905           result in more preserved color.
17906
17907       Commands
17908
17909       This filter supports same commands as options.  The command accepts the
17910       same syntax of the corresponding option.
17911
17912       If the specified expression is not valid, it is kept at its current
17913       value.
17914
17915   colorlevels
17916       Adjust video input frames using levels.
17917
17918       The filter accepts the following options:
17919
17920       rimin
17921       gimin
17922       bimin
17923       aimin
17924           Adjust red, green, blue and alpha input black point.  Allowed
17925           ranges for options are "[-1.0, 1.0]". Defaults are 0.
17926
17927       rimax
17928       gimax
17929       bimax
17930       aimax
17931           Adjust red, green, blue and alpha input white point.  Allowed
17932           ranges for options are "[-1.0, 1.0]". Defaults are 1.
17933
17934           Input levels are used to lighten highlights (bright tones), darken
17935           shadows (dark tones), change the balance of bright and dark tones.
17936
17937       romin
17938       gomin
17939       bomin
17940       aomin
17941           Adjust red, green, blue and alpha output black point.  Allowed
17942           ranges for options are "[0, 1.0]". Defaults are 0.
17943
17944       romax
17945       gomax
17946       bomax
17947       aomax
17948           Adjust red, green, blue and alpha output white point.  Allowed
17949           ranges for options are "[0, 1.0]". Defaults are 1.
17950
17951           Output levels allows manual selection of a constrained output level
17952           range.
17953
17954       preserve
17955           Set preserve color mode. The accepted values are:
17956
17957           none
17958               Disable color preserving, this is default.
17959
17960           lum Preserve luminance.
17961
17962           max Preserve max value of RGB triplet.
17963
17964           avg Preserve average value of RGB triplet.
17965
17966           sum Preserve sum value of RGB triplet.
17967
17968           nrm Preserve normalized value of RGB triplet.
17969
17970           pwr Preserve power value of RGB triplet.
17971
17972       Examples
17973
17974       •   Make video output darker:
17975
17976                   colorlevels=rimin=0.058:gimin=0.058:bimin=0.058
17977
17978       •   Increase contrast:
17979
17980                   colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.96:gimax=0.96:bimax=0.96
17981
17982       •   Make video output lighter:
17983
17984                   colorlevels=rimax=0.902:gimax=0.902:bimax=0.902
17985
17986       •   Increase brightness:
17987
17988                   colorlevels=romin=0.5:gomin=0.5:bomin=0.5
17989
17990       Commands
17991
17992       This filter supports the all above options as commands.
17993
17994   colormap
17995       Apply custom color maps to video stream.
17996
17997       This filter needs three input video streams.  First stream is video
17998       stream that is going to be filtered out.  Second and third video stream
17999       specify color patches for source color to target color mapping.
18000
18001       The filter accepts the following options:
18002
18003       patch_size
18004           Set the source and target video stream patch size in pixels.
18005
18006       nb_patches
18007           Set the max number of used patches from source and target video
18008           stream.  Default value is number of patches available in additional
18009           video streams.  Max allowed number of patches is 64.
18010
18011       type
18012           Set the adjustments used for target colors. Can be "relative" or
18013           "absolute".  Defaults is "absolute".
18014
18015       kernel
18016           Set the kernel used to measure color differences between mapped
18017           colors.
18018
18019           The accepted values are:
18020
18021           euclidean
18022           weuclidean
18023
18024           Default is "euclidean".
18025
18026   colormatrix
18027       Convert color matrix.
18028
18029       The filter accepts the following options:
18030
18031       src
18032       dst Specify the source and destination color matrix. Both values must
18033           be specified.
18034
18035           The accepted values are:
18036
18037           bt709
18038               BT.709
18039
18040           fcc FCC
18041
18042           bt601
18043               BT.601
18044
18045           bt470
18046               BT.470
18047
18048           bt470bg
18049               BT.470BG
18050
18051           smpte170m
18052               SMPTE-170M
18053
18054           smpte240m
18055               SMPTE-240M
18056
18057           bt2020
18058               BT.2020
18059
18060       For example to convert from BT.601 to SMPTE-240M, use the command:
18061
18062               colormatrix=bt601:smpte240m
18063
18064   colorspace
18065       Convert colorspace, transfer characteristics or color primaries.  Input
18066       video needs to have an even size.
18067
18068       The filter accepts the following options:
18069
18070       all Specify all color properties at once.
18071
18072           The accepted values are:
18073
18074           bt470m
18075               BT.470M
18076
18077           bt470bg
18078               BT.470BG
18079
18080           bt601-6-525
18081               BT.601-6 525
18082
18083           bt601-6-625
18084               BT.601-6 625
18085
18086           bt709
18087               BT.709
18088
18089           smpte170m
18090               SMPTE-170M
18091
18092           smpte240m
18093               SMPTE-240M
18094
18095           bt2020
18096               BT.2020
18097
18098       space
18099           Specify output colorspace.
18100
18101           The accepted values are:
18102
18103           bt709
18104               BT.709
18105
18106           fcc FCC
18107
18108           bt470bg
18109               BT.470BG or BT.601-6 625
18110
18111           smpte170m
18112               SMPTE-170M or BT.601-6 525
18113
18114           smpte240m
18115               SMPTE-240M
18116
18117           ycgco
18118               YCgCo
18119
18120           bt2020ncl
18121               BT.2020 with non-constant luminance
18122
18123       trc Specify output transfer characteristics.
18124
18125           The accepted values are:
18126
18127           bt709
18128               BT.709
18129
18130           bt470m
18131               BT.470M
18132
18133           bt470bg
18134               BT.470BG
18135
18136           gamma22
18137               Constant gamma of 2.2
18138
18139           gamma28
18140               Constant gamma of 2.8
18141
18142           smpte170m
18143               SMPTE-170M, BT.601-6 625 or BT.601-6 525
18144
18145           smpte240m
18146               SMPTE-240M
18147
18148           srgb
18149               SRGB
18150
18151           iec61966-2-1
18152               iec61966-2-1
18153
18154           iec61966-2-4
18155               iec61966-2-4
18156
18157           xvycc
18158               xvycc
18159
18160           bt2020-10
18161               BT.2020 for 10-bits content
18162
18163           bt2020-12
18164               BT.2020 for 12-bits content
18165
18166       primaries
18167           Specify output color primaries.
18168
18169           The accepted values are:
18170
18171           bt709
18172               BT.709
18173
18174           bt470m
18175               BT.470M
18176
18177           bt470bg
18178               BT.470BG or BT.601-6 625
18179
18180           smpte170m
18181               SMPTE-170M or BT.601-6 525
18182
18183           smpte240m
18184               SMPTE-240M
18185
18186           film
18187               film
18188
18189           smpte431
18190               SMPTE-431
18191
18192           smpte432
18193               SMPTE-432
18194
18195           bt2020
18196               BT.2020
18197
18198           jedec-p22
18199               JEDEC P22 phosphors
18200
18201       range
18202           Specify output color range.
18203
18204           The accepted values are:
18205
18206           tv  TV (restricted) range
18207
18208           mpeg
18209               MPEG (restricted) range
18210
18211           pc  PC (full) range
18212
18213           jpeg
18214               JPEG (full) range
18215
18216       format
18217           Specify output color format.
18218
18219           The accepted values are:
18220
18221           yuv420p
18222               YUV 4:2:0 planar 8-bits
18223
18224           yuv420p10
18225               YUV 4:2:0 planar 10-bits
18226
18227           yuv420p12
18228               YUV 4:2:0 planar 12-bits
18229
18230           yuv422p
18231               YUV 4:2:2 planar 8-bits
18232
18233           yuv422p10
18234               YUV 4:2:2 planar 10-bits
18235
18236           yuv422p12
18237               YUV 4:2:2 planar 12-bits
18238
18239           yuv444p
18240               YUV 4:4:4 planar 8-bits
18241
18242           yuv444p10
18243               YUV 4:4:4 planar 10-bits
18244
18245           yuv444p12
18246               YUV 4:4:4 planar 12-bits
18247
18248       fast
18249           Do a fast conversion, which skips gamma/primary correction. This
18250           will take significantly less CPU, but will be mathematically
18251           incorrect. To get output compatible with that produced by the
18252           colormatrix filter, use fast=1.
18253
18254       dither
18255           Specify dithering mode.
18256
18257           The accepted values are:
18258
18259           none
18260               No dithering
18261
18262           fsb Floyd-Steinberg dithering
18263
18264       wpadapt
18265           Whitepoint adaptation mode.
18266
18267           The accepted values are:
18268
18269           bradford
18270               Bradford whitepoint adaptation
18271
18272           vonkries
18273               von Kries whitepoint adaptation
18274
18275           identity
18276               identity whitepoint adaptation (i.e. no whitepoint adaptation)
18277
18278       iall
18279           Override all input properties at once. Same accepted values as all.
18280
18281       ispace
18282           Override input colorspace. Same accepted values as space.
18283
18284       iprimaries
18285           Override input color primaries. Same accepted values as primaries.
18286
18287       itrc
18288           Override input transfer characteristics. Same accepted values as
18289           trc.
18290
18291       irange
18292           Override input color range. Same accepted values as range.
18293
18294       The filter converts the transfer characteristics, color space and color
18295       primaries to the specified user values. The output value, if not
18296       specified, is set to a default value based on the "all" property. If
18297       that property is also not specified, the filter will log an error. The
18298       output color range and format default to the same value as the input
18299       color range and format. The input transfer characteristics, color
18300       space, color primaries and color range should be set on the input data.
18301       If any of these are missing, the filter will log an error and no
18302       conversion will take place.
18303
18304       For example to convert the input to SMPTE-240M, use the command:
18305
18306               colorspace=smpte240m
18307
18308   colorspace_cuda
18309       CUDA accelerated implementation of the colorspace filter.
18310
18311       It is by no means feature complete compared to the software colorspace
18312       filter, and at the current time only supports color range conversion
18313       between jpeg/full and mpeg/limited range.
18314
18315       The filter accepts the following options:
18316
18317       range
18318           Specify output color range.
18319
18320           The accepted values are:
18321
18322           tv  TV (restricted) range
18323
18324           mpeg
18325               MPEG (restricted) range
18326
18327           pc  PC (full) range
18328
18329           jpeg
18330               JPEG (full) range
18331
18332   colortemperature
18333       Adjust color temperature in video to simulate variations in ambient
18334       color temperature.
18335
18336       The filter accepts the following options:
18337
18338       temperature
18339           Set the temperature in Kelvin. Allowed range is from 1000 to 40000.
18340           Default value is 6500 K.
18341
18342       mix Set mixing with filtered output. Allowed range is from 0 to 1.
18343           Default value is 1.
18344
18345       pl  Set the amount of preserving lightness. Allowed range is from 0 to
18346           1.  Default value is 0.
18347
18348       Commands
18349
18350       This filter supports same commands as options.
18351
18352   convolution
18353       Apply convolution of 3x3, 5x5, 7x7 or horizontal/vertical up to 49
18354       elements.
18355
18356       The filter accepts the following options:
18357
18358       0m
18359       1m
18360       2m
18361       3m  Set matrix for each plane.  Matrix is sequence of 9, 25 or 49
18362           signed integers in square mode, and from 1 to 49 odd number of
18363           signed integers in row mode.
18364
18365       0rdiv
18366       1rdiv
18367       2rdiv
18368       3rdiv
18369           Set multiplier for calculated value for each plane.  If unset or 0,
18370           it will be sum of all matrix elements.
18371
18372       0bias
18373       1bias
18374       2bias
18375       3bias
18376           Set bias for each plane. This value is added to the result of the
18377           multiplication.  Useful for making the overall image brighter or
18378           darker. Default is 0.0.
18379
18380       0mode
18381       1mode
18382       2mode
18383       3mode
18384           Set matrix mode for each plane. Can be square, row or column.
18385           Default is square.
18386
18387       Commands
18388
18389       This filter supports the all above options as commands.
18390
18391       Examples
18392
18393       •   Apply sharpen:
18394
18395                   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"
18396
18397       •   Apply blur:
18398
18399                   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"
18400
18401       •   Apply edge enhance:
18402
18403                   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"
18404
18405       •   Apply edge detect:
18406
18407                   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"
18408
18409       •   Apply laplacian edge detector which includes diagonals:
18410
18411                   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"
18412
18413       •   Apply emboss:
18414
18415                   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"
18416
18417   convolve
18418       Apply 2D convolution of video stream in frequency domain using second
18419       stream as impulse.
18420
18421       The filter accepts the following options:
18422
18423       planes
18424           Set which planes to process.
18425
18426       impulse
18427           Set which impulse video frames will be processed, can be first or
18428           all. Default is all.
18429
18430       The "convolve" filter also supports the framesync options.
18431
18432   copy
18433       Copy the input video source unchanged to the output. This is mainly
18434       useful for testing purposes.
18435
18436   coreimage
18437       Video filtering on GPU using Apple's CoreImage API on OSX.
18438
18439       Hardware acceleration is based on an OpenGL context. Usually, this
18440       means it is processed by video hardware. However, software-based OpenGL
18441       implementations exist which means there is no guarantee for hardware
18442       processing. It depends on the respective OSX.
18443
18444       There are many filters and image generators provided by Apple that come
18445       with a large variety of options. The filter has to be referenced by its
18446       name along with its options.
18447
18448       The coreimage filter accepts the following options:
18449
18450       list_filters
18451           List all available filters and generators along with all their
18452           respective options as well as possible minimum and maximum values
18453           along with the default values.
18454
18455                   list_filters=true
18456
18457       filter
18458           Specify all filters by their respective name and options.  Use
18459           list_filters to determine all valid filter names and options.
18460           Numerical options are specified by a float value and are
18461           automatically clamped to their respective value range.  Vector and
18462           color options have to be specified by a list of space separated
18463           float values. Character escaping has to be done.  A special option
18464           name "default" is available to use default options for a filter.
18465
18466           It is required to specify either "default" or at least one of the
18467           filter options.  All omitted options are used with their default
18468           values.  The syntax of the filter string is as follows:
18469
18470                   filter=<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...][#<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...]][#...]
18471
18472       output_rect
18473           Specify a rectangle where the output of the filter chain is copied
18474           into the input image. It is given by a list of space separated
18475           float values:
18476
18477                   output_rect=x\ y\ width\ height
18478
18479           If not given, the output rectangle equals the dimensions of the
18480           input image.  The output rectangle is automatically cropped at the
18481           borders of the input image. Negative values are valid for each
18482           component.
18483
18484                   output_rect=25\ 25\ 100\ 100
18485
18486       Several filters can be chained for successive processing without GPU-
18487       HOST transfers allowing for fast processing of complex filter chains.
18488       Currently, only filters with zero (generators) or exactly one (filters)
18489       input image and one output image are supported. Also, transition
18490       filters are not yet usable as intended.
18491
18492       Some filters generate output images with additional padding depending
18493       on the respective filter kernel. The padding is automatically removed
18494       to ensure the filter output has the same size as the input image.
18495
18496       For image generators, the size of the output image is determined by the
18497       previous output image of the filter chain or the input image of the
18498       whole filterchain, respectively. The generators do not use the pixel
18499       information of this image to generate their output. However, the
18500       generated output is blended onto this image, resulting in partial or
18501       complete coverage of the output image.
18502
18503       The coreimagesrc video source can be used for generating input images
18504       which are directly fed into the filter chain. By using it, providing
18505       input images by another video source or an input video is not required.
18506
18507       Examples
18508
18509       •   List all filters available:
18510
18511                   coreimage=list_filters=true
18512
18513       •   Use the CIBoxBlur filter with default options to blur an image:
18514
18515                   coreimage=filter=CIBoxBlur@default
18516
18517       •   Use a filter chain with CISepiaTone at default values and
18518           CIVignetteEffect with its center at 100x100 and a radius of 50
18519           pixels:
18520
18521                   coreimage=filter=CIBoxBlur@default#CIVignetteEffect@inputCenter=100\ 100@inputRadius=50
18522
18523       •   Use nullsrc and CIQRCodeGenerator to create a QR code for the
18524           FFmpeg homepage, given as complete and escaped command-line for
18525           Apple's standard bash shell:
18526
18527                   ffmpeg -f lavfi -i nullsrc=s=100x100,coreimage=filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
18528
18529   corr
18530       Obtain the correlation between two input videos.
18531
18532       This filter takes two input videos.
18533
18534       Both input videos must have the same resolution and pixel format for
18535       this filter to work correctly. Also it assumes that both inputs have
18536       the same number of frames, which are compared one by one.
18537
18538       The obtained per component, average, min and max correlation is printed
18539       through the logging system.
18540
18541       The filter stores the calculated correlation of each frame in frame
18542       metadata.
18543
18544       This filter also supports the framesync options.
18545
18546       In the below example the input file main.mpg being processed is
18547       compared with the reference file ref.mpg.
18548
18549               ffmpeg -i main.mpg -i ref.mpg -lavfi corr -f null -
18550
18551   cover_rect
18552       Cover a rectangular object
18553
18554       It accepts the following options:
18555
18556       cover
18557           Filepath of the optional cover image, needs to be in yuv420.
18558
18559       mode
18560           Set covering mode.
18561
18562           It accepts the following values:
18563
18564           cover
18565               cover it by the supplied image
18566
18567           blur
18568               cover it by interpolating the surrounding pixels
18569
18570           Default value is blur.
18571
18572       Examples
18573
18574       •   Cover a rectangular object by the supplied image of a given video
18575           using ffmpeg:
18576
18577                   ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
18578
18579   crop
18580       Crop the input video to given dimensions.
18581
18582       It accepts the following parameters:
18583
18584       w, out_w
18585           The width of the output video. It defaults to "iw".  This
18586           expression is evaluated only once during the filter configuration,
18587           or when the w or out_w command is sent.
18588
18589       h, out_h
18590           The height of the output video. It defaults to "ih".  This
18591           expression is evaluated only once during the filter configuration,
18592           or when the h or out_h command is sent.
18593
18594       x   The horizontal position, in the input video, of the left edge of
18595           the output video. It defaults to "(in_w-out_w)/2".  This expression
18596           is evaluated per-frame.
18597
18598       y   The vertical position, in the input video, of the top edge of the
18599           output video.  It defaults to "(in_h-out_h)/2".  This expression is
18600           evaluated per-frame.
18601
18602       keep_aspect
18603           If set to 1 will force the output display aspect ratio to be the
18604           same of the input, by changing the output sample aspect ratio. It
18605           defaults to 0.
18606
18607       exact
18608           Enable exact cropping. If enabled, subsampled videos will be
18609           cropped at exact width/height/x/y as specified and will not be
18610           rounded to nearest smaller value.  It defaults to 0.
18611
18612       The out_w, out_h, x, y parameters are expressions containing the
18613       following constants:
18614
18615       x
18616       y   The computed values for x and y. They are evaluated for each new
18617           frame.
18618
18619       in_w
18620       in_h
18621           The input width and height.
18622
18623       iw
18624       ih  These are the same as in_w and in_h.
18625
18626       out_w
18627       out_h
18628           The output (cropped) width and height.
18629
18630       ow
18631       oh  These are the same as out_w and out_h.
18632
18633       a   same as iw / ih
18634
18635       sar input sample aspect ratio
18636
18637       dar input display aspect ratio, it is the same as (iw / ih) * sar
18638
18639       hsub
18640       vsub
18641           horizontal and vertical chroma subsample values. For example for
18642           the pixel format "yuv422p" hsub is 2 and vsub is 1.
18643
18644       n   The number of the input frame, starting from 0.
18645
18646       pos the position in the file of the input frame, NAN if unknown
18647
18648       t   The timestamp expressed in seconds. It's NAN if the input timestamp
18649           is unknown.
18650
18651       The expression for out_w may depend on the value of out_h, and the
18652       expression for out_h may depend on out_w, but they cannot depend on x
18653       and y, as x and y are evaluated after out_w and out_h.
18654
18655       The x and y parameters specify the expressions for the position of the
18656       top-left corner of the output (non-cropped) area. They are evaluated
18657       for each frame. If the evaluated value is not valid, it is approximated
18658       to the nearest valid value.
18659
18660       The expression for x may depend on y, and the expression for y may
18661       depend on x.
18662
18663       Examples
18664
18665       •   Crop area with size 100x100 at position (12,34).
18666
18667                   crop=100:100:12:34
18668
18669           Using named options, the example above becomes:
18670
18671                   crop=w=100:h=100:x=12:y=34
18672
18673       •   Crop the central input area with size 100x100:
18674
18675                   crop=100:100
18676
18677       •   Crop the central input area with size 2/3 of the input video:
18678
18679                   crop=2/3*in_w:2/3*in_h
18680
18681       •   Crop the input video central square:
18682
18683                   crop=out_w=in_h
18684                   crop=in_h
18685
18686       •   Delimit the rectangle with the top-left corner placed at position
18687           100:100 and the right-bottom corner corresponding to the right-
18688           bottom corner of the input image.
18689
18690                   crop=in_w-100:in_h-100:100:100
18691
18692       •   Crop 10 pixels from the left and right borders, and 20 pixels from
18693           the top and bottom borders
18694
18695                   crop=in_w-2*10:in_h-2*20
18696
18697       •   Keep only the bottom right quarter of the input image:
18698
18699                   crop=in_w/2:in_h/2:in_w/2:in_h/2
18700
18701       •   Crop height for getting Greek harmony:
18702
18703                   crop=in_w:1/PHI*in_w
18704
18705       •   Apply trembling effect:
18706
18707                   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)
18708
18709       •   Apply erratic camera effect depending on timestamp:
18710
18711                   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)"
18712
18713       •   Set x depending on the value of y:
18714
18715                   crop=in_w/2:in_h/2:y:10+10*sin(n/10)
18716
18717       Commands
18718
18719       This filter supports the following commands:
18720
18721       w, out_w
18722       h, out_h
18723       x
18724       y   Set width/height of the output video and the horizontal/vertical
18725           position in the input video.  The command accepts the same syntax
18726           of the corresponding option.
18727
18728           If the specified expression is not valid, it is kept at its current
18729           value.
18730
18731   cropdetect
18732       Auto-detect the crop size.
18733
18734       It calculates the necessary cropping parameters and prints the
18735       recommended parameters via the logging system. The detected dimensions
18736       correspond to the non-black or video area of the input video according
18737       to mode.
18738
18739       It accepts the following parameters:
18740
18741       mode
18742           Depending on mode crop detection is based on either the mere black
18743           value of surrounding pixels or a combination of motion vectors and
18744           edge pixels.
18745
18746           black
18747               Detect black pixels surrounding the playing video. For fine
18748               control use option limit.
18749
18750           mvedges
18751               Detect the playing video by the motion vectors inside the video
18752               and scanning for edge pixels typically forming the border of a
18753               playing video.
18754
18755       limit
18756           Set higher black value threshold, which can be optionally specified
18757           from nothing (0) to everything (255 for 8-bit based formats). An
18758           intensity value greater to the set value is considered non-black.
18759           It defaults to 24.  You can also specify a value between 0.0 and
18760           1.0 which will be scaled depending on the bitdepth of the pixel
18761           format.
18762
18763       round
18764           The value which the width/height should be divisible by. It
18765           defaults to 16. The offset is automatically adjusted to center the
18766           video. Use 2 to get only even dimensions (needed for 4:2:2 video).
18767           16 is best when encoding to most video codecs.
18768
18769       skip
18770           Set the number of initial frames for which evaluation is skipped.
18771           Default is 2. Range is 0 to INT_MAX.
18772
18773       reset_count, reset
18774           Set the counter that determines after how many frames cropdetect
18775           will reset the previously detected largest video area and start
18776           over to detect the current optimal crop area. Default value is 0.
18777
18778           This can be useful when channel logos distort the video area. 0
18779           indicates 'never reset', and returns the largest area encountered
18780           during playback.
18781
18782       mv_threshold
18783           Set motion in pixel units as threshold for motion detection. It
18784           defaults to 8.
18785
18786       low
18787       high
18788           Set low and high threshold values used by the Canny thresholding
18789           algorithm.
18790
18791           The high threshold selects the "strong" edge pixels, which are then
18792           connected through 8-connectivity with the "weak" edge pixels
18793           selected by the low threshold.
18794
18795           low and high threshold values must be chosen in the range [0,1],
18796           and low should be lesser or equal to high.
18797
18798           Default value for low is "5/255", and default value for high is
18799           "15/255".
18800
18801       Examples
18802
18803       •   Find video area surrounded by black borders:
18804
18805                   ffmpeg -i file.mp4 -vf cropdetect,metadata=mode=print -f null -
18806
18807       •   Find an embedded video area, generate motion vectors beforehand:
18808
18809                   ffmpeg -i file.mp4 -vf mestimate,cropdetect=mode=mvedges,metadata=mode=print -f null -
18810
18811       •   Find an embedded video area, use motion vectors from decoder:
18812
18813                   ffmpeg -flags2 +export_mvs -i file.mp4 -vf cropdetect=mode=mvedges,metadata=mode=print -f null -
18814
18815       Commands
18816
18817       This filter supports the following commands:
18818
18819       limit
18820           The command accepts the same syntax of the corresponding option.
18821           If the specified expression is not valid, it is kept at its current
18822           value.
18823
18824   cue
18825       Delay video filtering until a given wallclock timestamp. The filter
18826       first passes on preroll amount of frames, then it buffers at most
18827       buffer amount of frames and waits for the cue. After reaching the cue
18828       it forwards the buffered frames and also any subsequent frames coming
18829       in its input.
18830
18831       The filter can be used synchronize the output of multiple ffmpeg
18832       processes for realtime output devices like decklink. By putting the
18833       delay in the filtering chain and pre-buffering frames the process can
18834       pass on data to output almost immediately after the target wallclock
18835       timestamp is reached.
18836
18837       Perfect frame accuracy cannot be guaranteed, but the result is good
18838       enough for some use cases.
18839
18840       cue The cue timestamp expressed in a UNIX timestamp in microseconds.
18841           Default is 0.
18842
18843       preroll
18844           The duration of content to pass on as preroll expressed in seconds.
18845           Default is 0.
18846
18847       buffer
18848           The maximum duration of content to buffer before waiting for the
18849           cue expressed in seconds. Default is 0.
18850
18851   curves
18852       Apply color adjustments using curves.
18853
18854       This filter is similar to the Adobe Photoshop and GIMP curves tools.
18855       Each component (red, green and blue) has its values defined by N key
18856       points tied from each other using a smooth curve. The x-axis represents
18857       the pixel values from the input frame, and the y-axis the new pixel
18858       values to be set for the output frame.
18859
18860       By default, a component curve is defined by the two points (0;0) and
18861       (1;1). This creates a straight line where each original pixel value is
18862       "adjusted" to its own value, which means no change to the image.
18863
18864       The filter allows you to redefine these two points and add some more. A
18865       new curve will be define to pass smoothly through all these new
18866       coordinates. The new defined points needs to be strictly increasing
18867       over the x-axis, and their x and y values must be in the [0;1]
18868       interval. The curve is formed by using a natural or monotonic cubic
18869       spline interpolation, depending on the interp option (default:
18870       "natural"). The "natural" spline produces a smoother curve in general
18871       while the monotonic ("pchip") spline guarantees the transitions between
18872       the specified points to be monotonic. If the computed curves happened
18873       to go outside the vector spaces, the values will be clipped
18874       accordingly.
18875
18876       The filter accepts the following options:
18877
18878       preset
18879           Select one of the available color presets. This option can be used
18880           in addition to the r, g, b parameters; in this case, the later
18881           options takes priority on the preset values.  Available presets
18882           are:
18883
18884           none
18885           color_negative
18886           cross_process
18887           darker
18888           increase_contrast
18889           lighter
18890           linear_contrast
18891           medium_contrast
18892           negative
18893           strong_contrast
18894           vintage
18895
18896           Default is "none".
18897
18898       master, m
18899           Set the master key points. These points will define a second pass
18900           mapping. It is sometimes called a "luminance" or "value" mapping.
18901           It can be used with r, g, b or all since it acts like a post-
18902           processing LUT.
18903
18904       red, r
18905           Set the key points for the red component.
18906
18907       green, g
18908           Set the key points for the green component.
18909
18910       blue, b
18911           Set the key points for the blue component.
18912
18913       all Set the key points for all components (not including master).  Can
18914           be used in addition to the other key points component options. In
18915           this case, the unset component(s) will fallback on this all
18916           setting.
18917
18918       psfile
18919           Specify a Photoshop curves file (".acv") to import the settings
18920           from.
18921
18922       plot
18923           Save Gnuplot script of the curves in specified file.
18924
18925       interp
18926           Specify the kind of interpolation. Available algorithms are:
18927
18928           natural
18929               Natural cubic spline using a piece-wise cubic polynomial that
18930               is twice continuously differentiable.
18931
18932           pchip
18933               Monotonic cubic spline using a piecewise cubic Hermite
18934               interpolating polynomial (PCHIP).
18935
18936       To avoid some filtergraph syntax conflicts, each key points list need
18937       to be defined using the following syntax: "x0/y0 x1/y1 x2/y2 ...".
18938
18939       Commands
18940
18941       This filter supports same commands as options.
18942
18943       Examples
18944
18945       •   Increase slightly the middle level of blue:
18946
18947                   curves=blue='0/0 0.5/0.58 1/1'
18948
18949       •   Vintage effect:
18950
18951                   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'
18952
18953           Here we obtain the following coordinates for each components:
18954
18955           red "(0;0.11) (0.42;0.51) (1;0.95)"
18956
18957           green
18958               "(0;0) (0.50;0.48) (1;1)"
18959
18960           blue
18961               "(0;0.22) (0.49;0.44) (1;0.80)"
18962
18963       •   The previous example can also be achieved with the associated
18964           built-in preset:
18965
18966                   curves=preset=vintage
18967
18968       •   Or simply:
18969
18970                   curves=vintage
18971
18972       •   Use a Photoshop preset and redefine the points of the green
18973           component:
18974
18975                   curves=psfile='MyCurvesPresets/purple.acv':green='0/0 0.45/0.53 1/1'
18976
18977       •   Check out the curves of the "cross_process" profile using ffmpeg
18978           and gnuplot:
18979
18980                   ffmpeg -f lavfi -i color -vf curves=cross_process:plot=/tmp/curves.plt -frames:v 1 -f null -
18981                   gnuplot -p /tmp/curves.plt
18982
18983   datascope
18984       Video data analysis filter.
18985
18986       This filter shows hexadecimal pixel values of part of video.
18987
18988       The filter accepts the following options:
18989
18990       size, s
18991           Set output video size.
18992
18993       x   Set x offset from where to pick pixels.
18994
18995       y   Set y offset from where to pick pixels.
18996
18997       mode
18998           Set scope mode, can be one of the following:
18999
19000           mono
19001               Draw hexadecimal pixel values with white color on black
19002               background.
19003
19004           color
19005               Draw hexadecimal pixel values with input video pixel color on
19006               black background.
19007
19008           color2
19009               Draw hexadecimal pixel values on color background picked from
19010               input video, the text color is picked in such way so its always
19011               visible.
19012
19013       axis
19014           Draw rows and columns numbers on left and top of video.
19015
19016       opacity
19017           Set background opacity.
19018
19019       format
19020           Set display number format. Can be "hex", or "dec". Default is
19021           "hex".
19022
19023       components
19024           Set pixel components to display. By default all pixel components
19025           are displayed.
19026
19027       Commands
19028
19029       This filter supports same commands as options excluding "size" option.
19030
19031   dblur
19032       Apply Directional blur filter.
19033
19034       The filter accepts the following options:
19035
19036       angle
19037           Set angle of directional blur. Default is 45.
19038
19039       radius
19040           Set radius of directional blur. Default is 5.
19041
19042       planes
19043           Set which planes to filter. By default all planes are filtered.
19044
19045       Commands
19046
19047       This filter supports same commands as options.  The command accepts the
19048       same syntax of the corresponding option.
19049
19050       If the specified expression is not valid, it is kept at its current
19051       value.
19052
19053   dctdnoiz
19054       Denoise frames using 2D DCT (frequency domain filtering).
19055
19056       This filter is not designed for real time.
19057
19058       The filter accepts the following options:
19059
19060       sigma, s
19061           Set the noise sigma constant.
19062
19063           This sigma defines a hard threshold of "3 * sigma"; every DCT
19064           coefficient (absolute value) below this threshold with be dropped.
19065
19066           If you need a more advanced filtering, see expr.
19067
19068           Default is 0.
19069
19070       overlap
19071           Set number overlapping pixels for each block. Since the filter can
19072           be slow, you may want to reduce this value, at the cost of a less
19073           effective filter and the risk of various artefacts.
19074
19075           If the overlapping value doesn't permit processing the whole input
19076           width or height, a warning will be displayed and according borders
19077           won't be denoised.
19078
19079           Default value is blocksize-1, which is the best possible setting.
19080
19081       expr, e
19082           Set the coefficient factor expression.
19083
19084           For each coefficient of a DCT block, this expression will be
19085           evaluated as a multiplier value for the coefficient.
19086
19087           If this is option is set, the sigma option will be ignored.
19088
19089           The absolute value of the coefficient can be accessed through the c
19090           variable.
19091
19092       n   Set the blocksize using the number of bits. "1<<n" defines the
19093           blocksize, which is the width and height of the processed blocks.
19094
19095           The default value is 3 (8x8) and can be raised to 4 for a blocksize
19096           of 16x16. Note that changing this setting has huge consequences on
19097           the speed processing. Also, a larger block size does not
19098           necessarily means a better de-noising.
19099
19100       Examples
19101
19102       Apply a denoise with a sigma of 4.5:
19103
19104               dctdnoiz=4.5
19105
19106       The same operation can be achieved using the expression system:
19107
19108               dctdnoiz=e='gte(c, 4.5*3)'
19109
19110       Violent denoise using a block size of "16x16":
19111
19112               dctdnoiz=15:n=4
19113
19114   deband
19115       Remove banding artifacts from input video.  It works by replacing
19116       banded pixels with average value of referenced pixels.
19117
19118       The filter accepts the following options:
19119
19120       1thr
19121       2thr
19122       3thr
19123       4thr
19124           Set banding detection threshold for each plane. Default is 0.02.
19125           Valid range is 0.00003 to 0.5.  If difference between current pixel
19126           and reference pixel is less than threshold, it will be considered
19127           as banded.
19128
19129       range, r
19130           Banding detection range in pixels. Default is 16. If positive,
19131           random number in range 0 to set value will be used. If negative,
19132           exact absolute value will be used.  The range defines square of
19133           four pixels around current pixel.
19134
19135       direction, d
19136           Set direction in radians from which four pixel will be compared. If
19137           positive, random direction from 0 to set direction will be picked.
19138           If negative, exact of absolute value will be picked. For example
19139           direction 0, -PI or -2*PI radians will pick only pixels on same row
19140           and -PI/2 will pick only pixels on same column.
19141
19142       blur, b
19143           If enabled, current pixel is compared with average value of all
19144           four surrounding pixels. The default is enabled. If disabled
19145           current pixel is compared with all four surrounding pixels. The
19146           pixel is considered banded if only all four differences with
19147           surrounding pixels are less than threshold.
19148
19149       coupling, c
19150           If enabled, current pixel is changed if and only if all pixel
19151           components are banded, e.g. banding detection threshold is
19152           triggered for all color components.  The default is disabled.
19153
19154       Commands
19155
19156       This filter supports the all above options as commands.
19157
19158   deblock
19159       Remove blocking artifacts from input video.
19160
19161       The filter accepts the following options:
19162
19163       filter
19164           Set filter type, can be weak or strong. Default is strong.  This
19165           controls what kind of deblocking is applied.
19166
19167       block
19168           Set size of block, allowed range is from 4 to 512. Default is 8.
19169
19170       alpha
19171       beta
19172       gamma
19173       delta
19174           Set blocking detection thresholds. Allowed range is 0 to 1.
19175           Defaults are: 0.098 for alpha and 0.05 for the rest.  Using higher
19176           threshold gives more deblocking strength.  Setting alpha controls
19177           threshold detection at exact edge of block.  Remaining options
19178           controls threshold detection near the edge. Each one for
19179           below/above or left/right. Setting any of those to 0 disables
19180           deblocking.
19181
19182       planes
19183           Set planes to filter. Default is to filter all available planes.
19184
19185       Examples
19186
19187       •   Deblock using weak filter and block size of 4 pixels.
19188
19189                   deblock=filter=weak:block=4
19190
19191       •   Deblock using strong filter, block size of 4 pixels and custom
19192           thresholds for deblocking more edges.
19193
19194                   deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05
19195
19196       •   Similar as above, but filter only first plane.
19197
19198                   deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=1
19199
19200       •   Similar as above, but filter only second and third plane.
19201
19202                   deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=6
19203
19204       Commands
19205
19206       This filter supports the all above options as commands.
19207
19208   decimate
19209       Drop duplicated frames at regular intervals.
19210
19211       The filter accepts the following options:
19212
19213       cycle
19214           Set the number of frames from which one will be dropped. Setting
19215           this to N means one frame in every batch of N frames will be
19216           dropped.  Default is 5.
19217
19218       dupthresh
19219           Set the threshold for duplicate detection. If the difference metric
19220           for a frame is less than or equal to this value, then it is
19221           declared as duplicate. Default is 1.1
19222
19223       scthresh
19224           Set scene change threshold. Default is 15.
19225
19226       blockx
19227       blocky
19228           Set the size of the x and y-axis blocks used during metric
19229           calculations.  Larger blocks give better noise suppression, but
19230           also give worse detection of small movements. Must be a power of
19231           two. Default is 32.
19232
19233       ppsrc
19234           Mark main input as a pre-processed input and activate clean source
19235           input stream. This allows the input to be pre-processed with
19236           various filters to help the metrics calculation while keeping the
19237           frame selection lossless. When set to 1, the first stream is for
19238           the pre-processed input, and the second stream is the clean source
19239           from where the kept frames are chosen. Default is 0.
19240
19241       chroma
19242           Set whether or not chroma is considered in the metric calculations.
19243           Default is 1.
19244
19245       mixed
19246           Set whether or not the input only partially contains content to be
19247           decimated.  Default is "false".  If enabled video output stream
19248           will be in variable frame rate.
19249
19250   deconvolve
19251       Apply 2D deconvolution of video stream in frequency domain using second
19252       stream as impulse.
19253
19254       The filter accepts the following options:
19255
19256       planes
19257           Set which planes to process.
19258
19259       impulse
19260           Set which impulse video frames will be processed, can be first or
19261           all. Default is all.
19262
19263       noise
19264           Set noise when doing divisions. Default is 0.0000001. Useful when
19265           width and height are not same and not power of 2 or if stream prior
19266           to convolving had noise.
19267
19268       The "deconvolve" filter also supports the framesync options.
19269
19270   dedot
19271       Reduce cross-luminance (dot-crawl) and cross-color (rainbows) from
19272       video.
19273
19274       It accepts the following options:
19275
19276       m   Set mode of operation. Can be combination of dotcrawl for cross-
19277           luminance reduction and/or rainbows for cross-color reduction.
19278
19279       lt  Set spatial luma threshold. Lower values increases reduction of
19280           cross-luminance.
19281
19282       tl  Set tolerance for temporal luma. Higher values increases reduction
19283           of cross-luminance.
19284
19285       tc  Set tolerance for chroma temporal variation. Higher values
19286           increases reduction of cross-color.
19287
19288       ct  Set temporal chroma threshold. Lower values increases reduction of
19289           cross-color.
19290
19291   deflate
19292       Apply deflate effect to the video.
19293
19294       This filter replaces the pixel by the local(3x3) average by taking into
19295       account only values lower than the pixel.
19296
19297       It accepts the following options:
19298
19299       threshold0
19300       threshold1
19301       threshold2
19302       threshold3
19303           Limit the maximum change for each plane, default is 65535.  If 0,
19304           plane will remain unchanged.
19305
19306       Commands
19307
19308       This filter supports the all above options as commands.
19309
19310   deflicker
19311       Remove temporal frame luminance variations.
19312
19313       It accepts the following options:
19314
19315       size, s
19316           Set moving-average filter size in frames. Default is 5. Allowed
19317           range is 2 - 129.
19318
19319       mode, m
19320           Set averaging mode to smooth temporal luminance variations.
19321
19322           Available values are:
19323
19324           am  Arithmetic mean
19325
19326           gm  Geometric mean
19327
19328           hm  Harmonic mean
19329
19330           qm  Quadratic mean
19331
19332           cm  Cubic mean
19333
19334           pm  Power mean
19335
19336           median
19337               Median
19338
19339       bypass
19340           Do not actually modify frame. Useful when one only wants metadata.
19341
19342   dejudder
19343       Remove judder produced by partially interlaced telecined content.
19344
19345       Judder can be introduced, for instance, by pullup filter. If the
19346       original source was partially telecined content then the output of
19347       "pullup,dejudder" will have a variable frame rate. May change the
19348       recorded frame rate of the container. Aside from that change, this
19349       filter will not affect constant frame rate video.
19350
19351       The option available in this filter is:
19352
19353       cycle
19354           Specify the length of the window over which the judder repeats.
19355
19356           Accepts any integer greater than 1. Useful values are:
19357
19358           4   If the original was telecined from 24 to 30 fps (Film to NTSC).
19359
19360           5   If the original was telecined from 25 to 30 fps (PAL to NTSC).
19361
19362           20  If a mixture of the two.
19363
19364           The default is 4.
19365
19366   delogo
19367       Suppress a TV station logo by a simple interpolation of the surrounding
19368       pixels. Just set a rectangle covering the logo and watch it disappear
19369       (and sometimes something even uglier appear - your mileage may vary).
19370
19371       It accepts the following parameters:
19372
19373       x
19374       y   Specify the top left corner coordinates of the logo. They must be
19375           specified.
19376
19377       w
19378       h   Specify the width and height of the logo to clear. They must be
19379           specified.
19380
19381       show
19382           When set to 1, a green rectangle is drawn on the screen to simplify
19383           finding the right x, y, w, and h parameters.  The default value is
19384           0.
19385
19386           The rectangle is drawn on the outermost pixels which will be
19387           (partly) replaced with interpolated values. The values of the next
19388           pixels immediately outside this rectangle in each direction will be
19389           used to compute the interpolated pixel values inside the rectangle.
19390
19391       Examples
19392
19393       •   Set a rectangle covering the area with top left corner coordinates
19394           0,0 and size 100x77:
19395
19396                   delogo=x=0:y=0:w=100:h=77
19397
19398   derain
19399       Remove the rain in the input image/video by applying the derain methods
19400       based on convolutional neural networks. Supported models:
19401
19402       •   Recurrent Squeeze-and-Excitation Context Aggregation Net (RESCAN).
19403           See
19404           <http://openaccess.thecvf.com/content_ECCV_2018/papers/Xia_Li_Recurrent_Squeeze-and-Excitation_Context_ECCV_2018_paper.pdf>.
19405
19406       Training as well as model generation scripts are provided in the
19407       repository at <https://github.com/XueweiMeng/derain_filter.git>.
19408
19409       Native model files (.model) can be generated from TensorFlow model
19410       files (.pb) by using tools/python/convert.py
19411
19412       The filter accepts the following options:
19413
19414       filter_type
19415           Specify which filter to use. This option accepts the following
19416           values:
19417
19418           derain
19419               Derain filter. To conduct derain filter, you need to use a
19420               derain model.
19421
19422           dehaze
19423               Dehaze filter. To conduct dehaze filter, you need to use a
19424               dehaze model.
19425
19426           Default value is derain.
19427
19428       dnn_backend
19429           Specify which DNN backend to use for model loading and execution.
19430           This option accepts the following values:
19431
19432           native
19433               Native implementation of DNN loading and execution.
19434
19435           tensorflow
19436               TensorFlow backend. To enable this backend you need to install
19437               the TensorFlow for C library (see
19438               <https://www.tensorflow.org/install/lang_c>) and configure
19439               FFmpeg with "--enable-libtensorflow"
19440
19441           Default value is native.
19442
19443       model
19444           Set path to model file specifying network architecture and its
19445           parameters.  Note that different backends use different file
19446           formats. TensorFlow and native backend can load files for only its
19447           format.
19448
19449       To get full functionality (such as async execution), please use the
19450       dnn_processing filter.
19451
19452   deshake
19453       Attempt to fix small changes in horizontal and/or vertical shift. This
19454       filter helps remove camera shake from hand-holding a camera, bumping a
19455       tripod, moving on a vehicle, etc.
19456
19457       The filter accepts the following options:
19458
19459       x
19460       y
19461       w
19462       h   Specify a rectangular area where to limit the search for motion
19463           vectors.  If desired the search for motion vectors can be limited
19464           to a rectangular area of the frame defined by its top left corner,
19465           width and height. These parameters have the same meaning as the
19466           drawbox filter which can be used to visualise the position of the
19467           bounding box.
19468
19469           This is useful when simultaneous movement of subjects within the
19470           frame might be confused for camera motion by the motion vector
19471           search.
19472
19473           If any or all of x, y, w and h are set to -1 then the full frame is
19474           used. This allows later options to be set without specifying the
19475           bounding box for the motion vector search.
19476
19477           Default - search the whole frame.
19478
19479       rx
19480       ry  Specify the maximum extent of movement in x and y directions in the
19481           range 0-64 pixels. Default 16.
19482
19483       edge
19484           Specify how to generate pixels to fill blanks at the edge of the
19485           frame. Available values are:
19486
19487           blank, 0
19488               Fill zeroes at blank locations
19489
19490           original, 1
19491               Original image at blank locations
19492
19493           clamp, 2
19494               Extruded edge value at blank locations
19495
19496           mirror, 3
19497               Mirrored edge at blank locations
19498
19499           Default value is mirror.
19500
19501       blocksize
19502           Specify the blocksize to use for motion search. Range 4-128 pixels,
19503           default 8.
19504
19505       contrast
19506           Specify the contrast threshold for blocks. Only blocks with more
19507           than the specified contrast (difference between darkest and
19508           lightest pixels) will be considered. Range 1-255, default 125.
19509
19510       search
19511           Specify the search strategy. Available values are:
19512
19513           exhaustive, 0
19514               Set exhaustive search
19515
19516           less, 1
19517               Set less exhaustive search.
19518
19519           Default value is exhaustive.
19520
19521       filename
19522           If set then a detailed log of the motion search is written to the
19523           specified file.
19524
19525   despill
19526       Remove unwanted contamination of foreground colors, caused by reflected
19527       color of greenscreen or bluescreen.
19528
19529       This filter accepts the following options:
19530
19531       type
19532           Set what type of despill to use.
19533
19534       mix Set how spillmap will be generated.
19535
19536       expand
19537           Set how much to get rid of still remaining spill.
19538
19539       red Controls amount of red in spill area.
19540
19541       green
19542           Controls amount of green in spill area.  Should be -1 for
19543           greenscreen.
19544
19545       blue
19546           Controls amount of blue in spill area.  Should be -1 for
19547           bluescreen.
19548
19549       brightness
19550           Controls brightness of spill area, preserving colors.
19551
19552       alpha
19553           Modify alpha from generated spillmap.
19554
19555       Commands
19556
19557       This filter supports the all above options as commands.
19558
19559   detelecine
19560       Apply an exact inverse of the telecine operation. It requires a
19561       predefined pattern specified using the pattern option which must be the
19562       same as that passed to the telecine filter.
19563
19564       This filter accepts the following options:
19565
19566       first_field
19567           top, t
19568               top field first
19569
19570           bottom, b
19571               bottom field first The default value is "top".
19572
19573       pattern
19574           A string of numbers representing the pulldown pattern you wish to
19575           apply.  The default value is 23.
19576
19577       start_frame
19578           A number representing position of the first frame with respect to
19579           the telecine pattern. This is to be used if the stream is cut. The
19580           default value is 0.
19581
19582   dilation
19583       Apply dilation effect to the video.
19584
19585       This filter replaces the pixel by the local(3x3) maximum.
19586
19587       It accepts the following options:
19588
19589       threshold0
19590       threshold1
19591       threshold2
19592       threshold3
19593           Limit the maximum change for each plane, default is 65535.  If 0,
19594           plane will remain unchanged.
19595
19596       coordinates
19597           Flag which specifies the pixel to refer to. Default is 255 i.e. all
19598           eight pixels are used.
19599
19600           Flags to local 3x3 coordinates maps like this:
19601
19602               1 2 3
19603               4   5
19604               6 7 8
19605
19606       Commands
19607
19608       This filter supports the all above options as commands.
19609
19610   displace
19611       Displace pixels as indicated by second and third input stream.
19612
19613       It takes three input streams and outputs one stream, the first input is
19614       the source, and second and third input are displacement maps.
19615
19616       The second input specifies how much to displace pixels along the
19617       x-axis, while the third input specifies how much to displace pixels
19618       along the y-axis.  If one of displacement map streams terminates, last
19619       frame from that displacement map will be used.
19620
19621       Note that once generated, displacements maps can be reused over and
19622       over again.
19623
19624       A description of the accepted options follows.
19625
19626       edge
19627           Set displace behavior for pixels that are out of range.
19628
19629           Available values are:
19630
19631           blank
19632               Missing pixels are replaced by black pixels.
19633
19634           smear
19635               Adjacent pixels will spread out to replace missing pixels.
19636
19637           wrap
19638               Out of range pixels are wrapped so they point to pixels of
19639               other side.
19640
19641           mirror
19642               Out of range pixels will be replaced with mirrored pixels.
19643
19644           Default is smear.
19645
19646       Examples
19647
19648       •   Add ripple effect to rgb input of video size hd720:
19649
19650                   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
19651
19652       •   Add wave effect to rgb input of video size hd720:
19653
19654                   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
19655
19656   dnn_classify
19657       Do classification with deep neural networks based on bounding boxes.
19658
19659       The filter accepts the following options:
19660
19661       dnn_backend
19662           Specify which DNN backend to use for model loading and execution.
19663           This option accepts only openvino now, tensorflow backends will be
19664           added.
19665
19666       model
19667           Set path to model file specifying network architecture and its
19668           parameters.  Note that different backends use different file
19669           formats.
19670
19671       input
19672           Set the input name of the dnn network.
19673
19674       output
19675           Set the output name of the dnn network.
19676
19677       confidence
19678           Set the confidence threshold (default: 0.5).
19679
19680       labels
19681           Set path to label file specifying the mapping between label id and
19682           name.  Each label name is written in one line, tailing spaces and
19683           empty lines are skipped.  The first line is the name of label id 0,
19684           and the second line is the name of label id 1, etc.  The label id
19685           is considered as name if the label file is not provided.
19686
19687       backend_configs
19688           Set the configs to be passed into backend
19689
19690           For tensorflow backend, you can set its configs with sess_config
19691           options, please use tools/python/tf_sess_config.py to get the
19692           configs for your system.
19693
19694   dnn_detect
19695       Do object detection with deep neural networks.
19696
19697       The filter accepts the following options:
19698
19699       dnn_backend
19700           Specify which DNN backend to use for model loading and execution.
19701           This option accepts only openvino now, tensorflow backends will be
19702           added.
19703
19704       model
19705           Set path to model file specifying network architecture and its
19706           parameters.  Note that different backends use different file
19707           formats.
19708
19709       input
19710           Set the input name of the dnn network.
19711
19712       output
19713           Set the output name of the dnn network.
19714
19715       confidence
19716           Set the confidence threshold (default: 0.5).
19717
19718       labels
19719           Set path to label file specifying the mapping between label id and
19720           name.  Each label name is written in one line, tailing spaces and
19721           empty lines are skipped.  The first line is the name of label id 0
19722           (usually it is 'background'), and the second line is the name of
19723           label id 1, etc.  The label id is considered as name if the label
19724           file is not provided.
19725
19726       backend_configs
19727           Set the configs to be passed into backend. To use async execution,
19728           set async (default: set).  Roll back to sync execution if the
19729           backend does not support async.
19730
19731   dnn_processing
19732       Do image processing with deep neural networks. It works together with
19733       another filter which converts the pixel format of the Frame to what the
19734       dnn network requires.
19735
19736       The filter accepts the following options:
19737
19738       dnn_backend
19739           Specify which DNN backend to use for model loading and execution.
19740           This option accepts the following values:
19741
19742           native
19743               Native implementation of DNN loading and execution.
19744
19745           tensorflow
19746               TensorFlow backend. To enable this backend you need to install
19747               the TensorFlow for C library (see
19748               <https://www.tensorflow.org/install/lang_c>) and configure
19749               FFmpeg with "--enable-libtensorflow"
19750
19751           openvino
19752               OpenVINO backend. To enable this backend you need to build and
19753               install the OpenVINO for C library (see
19754               <https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md>)
19755               and configure FFmpeg with "--enable-libopenvino"
19756               (--extra-cflags=-I... --extra-ldflags=-L... might be needed if
19757               the header files and libraries are not installed into system
19758               path)
19759
19760           Default value is native.
19761
19762       model
19763           Set path to model file specifying network architecture and its
19764           parameters.  Note that different backends use different file
19765           formats. TensorFlow, OpenVINO and native backend can load files for
19766           only its format.
19767
19768           Native model file (.model) can be generated from TensorFlow model
19769           file (.pb) by using tools/python/convert.py
19770
19771       input
19772           Set the input name of the dnn network.
19773
19774       output
19775           Set the output name of the dnn network.
19776
19777       backend_configs
19778           Set the configs to be passed into backend. To use async execution,
19779           set async (default: set).  Roll back to sync execution if the
19780           backend does not support async.
19781
19782           For tensorflow backend, you can set its configs with sess_config
19783           options, please use tools/python/tf_sess_config.py to get the
19784           configs of TensorFlow backend for your system.
19785
19786       Examples
19787
19788       •   Remove rain in rgb24 frame with can.pb (see derain filter):
19789
19790                   ./ffmpeg -i rain.jpg -vf format=rgb24,dnn_processing=dnn_backend=tensorflow:model=can.pb:input=x:output=y derain.jpg
19791
19792       •   Halve the pixel value of the frame with format gray32f:
19793
19794                   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
19795
19796       •   Handle the Y channel with srcnn.pb (see sr filter) for frame with
19797           yuv420p (planar YUV formats supported):
19798
19799                   ./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
19800
19801       •   Handle the Y channel with espcn.pb (see sr filter), which changes
19802           frame size, for format yuv420p (planar YUV formats supported),
19803           please use tools/python/tf_sess_config.py to get the configs of
19804           TensorFlow backend for your system.
19805
19806                   ./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
19807
19808   drawbox
19809       Draw a colored box on the input image.
19810
19811       It accepts the following parameters:
19812
19813       x
19814       y   The expressions which specify the top left corner coordinates of
19815           the box. It defaults to 0.
19816
19817       width, w
19818       height, h
19819           The expressions which specify the width and height of the box; if 0
19820           they are interpreted as the input width and height. It defaults to
19821           0.
19822
19823       color, c
19824           Specify the color of the box to write. For the general syntax of
19825           this option, check the "Color" section in the ffmpeg-utils manual.
19826           If the special value "invert" is used, the box edge color is the
19827           same as the video with inverted luma.
19828
19829       thickness, t
19830           The expression which sets the thickness of the box edge.  A value
19831           of "fill" will create a filled box. Default value is 3.
19832
19833           See below for the list of accepted constants.
19834
19835       replace
19836           Applicable if the input has alpha. With value 1, the pixels of the
19837           painted box will overwrite the video's color and alpha pixels.
19838           Default is 0, which composites the box onto the input, leaving the
19839           video's alpha intact.
19840
19841       The parameters for x, y, w and h and t are expressions containing the
19842       following constants:
19843
19844       dar The input display aspect ratio, it is the same as (w / h) * sar.
19845
19846       hsub
19847       vsub
19848           horizontal and vertical chroma subsample values. For example for
19849           the pixel format "yuv422p" hsub is 2 and vsub is 1.
19850
19851       in_h, ih
19852       in_w, iw
19853           The input width and height.
19854
19855       sar The input sample aspect ratio.
19856
19857       x
19858       y   The x and y offset coordinates where the box is drawn.
19859
19860       w
19861       h   The width and height of the drawn box.
19862
19863       box_source
19864           Box source can be set as side_data_detection_bboxes if you want to
19865           use box data in detection bboxes of side data.
19866
19867           If box_source is set, the x, y, width and height will be ignored
19868           and still use box data in detection bboxes of side data. So please
19869           do not use this parameter if you were not sure about the box
19870           source.
19871
19872       t   The thickness of the drawn box.
19873
19874           These constants allow the x, y, w, h and t expressions to refer to
19875           each other, so you may for example specify "y=x/dar" or "h=w/dar".
19876
19877       Examples
19878
19879       •   Draw a black box around the edge of the input image:
19880
19881                   drawbox
19882
19883       •   Draw a box with color red and an opacity of 50%:
19884
19885                   drawbox=10:20:200:60:red@0.5
19886
19887           The previous example can be specified as:
19888
19889                   drawbox=x=10:y=20:w=200:h=60:color=red@0.5
19890
19891       •   Fill the box with pink color:
19892
19893                   drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill
19894
19895       •   Draw a 2-pixel red 2.40:1 mask:
19896
19897                   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
19898
19899       Commands
19900
19901       This filter supports same commands as options.  The command accepts the
19902       same syntax of the corresponding option.
19903
19904       If the specified expression is not valid, it is kept at its current
19905       value.
19906
19907   drawgraph
19908       Draw a graph using input video metadata.
19909
19910       It accepts the following parameters:
19911
19912       m1  Set 1st frame metadata key from which metadata values will be used
19913           to draw a graph.
19914
19915       fg1 Set 1st foreground color expression.
19916
19917       m2  Set 2nd frame metadata key from which metadata values will be used
19918           to draw a graph.
19919
19920       fg2 Set 2nd foreground color expression.
19921
19922       m3  Set 3rd frame metadata key from which metadata values will be used
19923           to draw a graph.
19924
19925       fg3 Set 3rd foreground color expression.
19926
19927       m4  Set 4th frame metadata key from which metadata values will be used
19928           to draw a graph.
19929
19930       fg4 Set 4th foreground color expression.
19931
19932       min Set minimal value of metadata value.
19933
19934       max Set maximal value of metadata value.
19935
19936       bg  Set graph background color. Default is white.
19937
19938       mode
19939           Set graph mode.
19940
19941           Available values for mode is:
19942
19943           bar
19944           dot
19945           line
19946
19947           Default is "line".
19948
19949       slide
19950           Set slide mode.
19951
19952           Available values for slide is:
19953
19954           frame
19955               Draw new frame when right border is reached.
19956
19957           replace
19958               Replace old columns with new ones.
19959
19960           scroll
19961               Scroll from right to left.
19962
19963           rscroll
19964               Scroll from left to right.
19965
19966           picture
19967               Draw single picture.
19968
19969           Default is "frame".
19970
19971       size
19972           Set size of graph video. For the syntax of this option, check the
19973           "Video size" section in the ffmpeg-utils manual.  The default value
19974           is "900x256".
19975
19976       rate, r
19977           Set the output frame rate. Default value is 25.
19978
19979           The foreground color expressions can use the following variables:
19980
19981           MIN Minimal value of metadata value.
19982
19983           MAX Maximal value of metadata value.
19984
19985           VAL Current metadata key value.
19986
19987           The color is defined as 0xAABBGGRR.
19988
19989       Example using metadata from signalstats filter:
19990
19991               signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255
19992
19993       Example using metadata from ebur128 filter:
19994
19995               ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5
19996
19997   drawgrid
19998       Draw a grid on the input image.
19999
20000       It accepts the following parameters:
20001
20002       x
20003       y   The expressions which specify the coordinates of some point of grid
20004           intersection (meant to configure offset). Both default to 0.
20005
20006       width, w
20007       height, h
20008           The expressions which specify the width and height of the grid
20009           cell, if 0 they are interpreted as the input width and height,
20010           respectively, minus "thickness", so image gets framed. Default to
20011           0.
20012
20013       color, c
20014           Specify the color of the grid. For the general syntax of this
20015           option, check the "Color" section in the ffmpeg-utils manual. If
20016           the special value "invert" is used, the grid color is the same as
20017           the video with inverted luma.
20018
20019       thickness, t
20020           The expression which sets the thickness of the grid line. Default
20021           value is 1.
20022
20023           See below for the list of accepted constants.
20024
20025       replace
20026           Applicable if the input has alpha. With 1 the pixels of the painted
20027           grid will overwrite the video's color and alpha pixels.  Default is
20028           0, which composites the grid onto the input, leaving the video's
20029           alpha intact.
20030
20031       The parameters for x, y, w and h and t are expressions containing the
20032       following constants:
20033
20034       dar The input display aspect ratio, it is the same as (w / h) * sar.
20035
20036       hsub
20037       vsub
20038           horizontal and vertical chroma subsample values. For example for
20039           the pixel format "yuv422p" hsub is 2 and vsub is 1.
20040
20041       in_h, ih
20042       in_w, iw
20043           The input grid cell width and height.
20044
20045       sar The input sample aspect ratio.
20046
20047       x
20048       y   The x and y coordinates of some point of grid intersection (meant
20049           to configure offset).
20050
20051       w
20052       h   The width and height of the drawn cell.
20053
20054       t   The thickness of the drawn cell.
20055
20056           These constants allow the x, y, w, h and t expressions to refer to
20057           each other, so you may for example specify "y=x/dar" or "h=w/dar".
20058
20059       Examples
20060
20061       •   Draw a grid with cell 100x100 pixels, thickness 2 pixels, with
20062           color red and an opacity of 50%:
20063
20064                   drawgrid=width=100:height=100:thickness=2:color=red@0.5
20065
20066       •   Draw a white 3x3 grid with an opacity of 50%:
20067
20068                   drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
20069
20070       Commands
20071
20072       This filter supports same commands as options.  The command accepts the
20073       same syntax of the corresponding option.
20074
20075       If the specified expression is not valid, it is kept at its current
20076       value.
20077
20078   drawtext
20079       Draw a text string or text from a specified file on top of a video,
20080       using the libfreetype library.
20081
20082       To enable compilation of this filter, you need to configure FFmpeg with
20083       "--enable-libfreetype".  To enable default font fallback and the font
20084       option you need to configure FFmpeg with "--enable-libfontconfig".  To
20085       enable the text_shaping option, you need to configure FFmpeg with
20086       "--enable-libfribidi".
20087
20088       Syntax
20089
20090       It accepts the following parameters:
20091
20092       box Used to draw a box around text using the background color.  The
20093           value must be either 1 (enable) or 0 (disable).  The default value
20094           of box is 0.
20095
20096       boxborderw
20097           Set the width of the border to be drawn around the box using
20098           boxcolor.  The default value of boxborderw is 0.
20099
20100       boxcolor
20101           The color to be used for drawing box around text. For the syntax of
20102           this option, check the "Color" section in the ffmpeg-utils manual.
20103
20104           The default value of boxcolor is "white".
20105
20106       line_spacing
20107           Set the line spacing in pixels of the border to be drawn around the
20108           box using box.  The default value of line_spacing is 0.
20109
20110       borderw
20111           Set the width of the border to be drawn around the text using
20112           bordercolor.  The default value of borderw is 0.
20113
20114       bordercolor
20115           Set the color to be used for drawing border around text. For the
20116           syntax of this option, check the "Color" section in the ffmpeg-
20117           utils manual.
20118
20119           The default value of bordercolor is "black".
20120
20121       expansion
20122           Select how the text is expanded. Can be either "none", "strftime"
20123           (deprecated) or "normal" (default). See the drawtext_expansion,
20124           Text expansion section below for details.
20125
20126       basetime
20127           Set a start time for the count. Value is in microseconds. Only
20128           applied in the deprecated strftime expansion mode. To emulate in
20129           normal expansion mode use the "pts" function, supplying the start
20130           time (in seconds) as the second argument.
20131
20132       fix_bounds
20133           If true, check and fix text coords to avoid clipping.
20134
20135       fontcolor
20136           The color to be used for drawing fonts. For the syntax of this
20137           option, check the "Color" section in the ffmpeg-utils manual.
20138
20139           The default value of fontcolor is "black".
20140
20141       fontcolor_expr
20142           String which is expanded the same way as text to obtain dynamic
20143           fontcolor value. By default this option has empty value and is not
20144           processed. When this option is set, it overrides fontcolor option.
20145
20146       font
20147           The font family to be used for drawing text. By default Sans.
20148
20149       fontfile
20150           The font file to be used for drawing text. The path must be
20151           included.  This parameter is mandatory if the fontconfig support is
20152           disabled.
20153
20154       alpha
20155           Draw the text applying alpha blending. The value can be a number
20156           between 0.0 and 1.0.  The expression accepts the same variables x,
20157           y as well.  The default value is 1.  Please see fontcolor_expr.
20158
20159       fontsize
20160           The font size to be used for drawing text.  The default value of
20161           fontsize is 16.
20162
20163       text_shaping
20164           If set to 1, attempt to shape the text (for example, reverse the
20165           order of right-to-left text and join Arabic characters) before
20166           drawing it.  Otherwise, just draw the text exactly as given.  By
20167           default 1 (if supported).
20168
20169       ft_load_flags
20170           The flags to be used for loading the fonts.
20171
20172           The flags map the corresponding flags supported by libfreetype, and
20173           are a combination of the following values:
20174
20175           default
20176           no_scale
20177           no_hinting
20178           render
20179           no_bitmap
20180           vertical_layout
20181           force_autohint
20182           crop_bitmap
20183           pedantic
20184           ignore_global_advance_width
20185           no_recurse
20186           ignore_transform
20187           monochrome
20188           linear_design
20189           no_autohint
20190
20191           Default value is "default".
20192
20193           For more information consult the documentation for the FT_LOAD_*
20194           libfreetype flags.
20195
20196       shadowcolor
20197           The color to be used for drawing a shadow behind the drawn text.
20198           For the syntax of this option, check the "Color" section in the
20199           ffmpeg-utils manual.
20200
20201           The default value of shadowcolor is "black".
20202
20203       shadowx
20204       shadowy
20205           The x and y offsets for the text shadow position with respect to
20206           the position of the text. They can be either positive or negative
20207           values. The default value for both is "0".
20208
20209       start_number
20210           The starting frame number for the n/frame_num variable. The default
20211           value is "0".
20212
20213       tabsize
20214           The size in number of spaces to use for rendering the tab.  Default
20215           value is 4.
20216
20217       timecode
20218           Set the initial timecode representation in "hh:mm:ss[:;.]ff"
20219           format. It can be used with or without text parameter.
20220           timecode_rate option must be specified.
20221
20222       timecode_rate, rate, r
20223           Set the timecode frame rate (timecode only). Value will be rounded
20224           to nearest integer. Minimum value is "1".  Drop-frame timecode is
20225           supported for frame rates 30 & 60.
20226
20227       tc24hmax
20228           If set to 1, the output of the timecode option will wrap around at
20229           24 hours.  Default is 0 (disabled).
20230
20231       text
20232           The text string to be drawn. The text must be a sequence of UTF-8
20233           encoded characters.  This parameter is mandatory if no file is
20234           specified with the parameter textfile.
20235
20236       textfile
20237           A text file containing text to be drawn. The text must be a
20238           sequence of UTF-8 encoded characters.
20239
20240           This parameter is mandatory if no text string is specified with the
20241           parameter text.
20242
20243           If both text and textfile are specified, an error is thrown.
20244
20245       text_source
20246           Text source should be set as side_data_detection_bboxes if you want
20247           to use text data in detection bboxes of side data.
20248
20249           If text source is set, text and textfile will be ignored and still
20250           use text data in detection bboxes of side data. So please do not
20251           use this parameter if you are not sure about the text source.
20252
20253       reload
20254           The textfile will be reloaded at specified frame interval.  Be sure
20255           to update textfile atomically, or it may be read partially, or even
20256           fail.  Range is 0 to INT_MAX. Default is 0.
20257
20258       x
20259       y   The expressions which specify the offsets where text will be drawn
20260           within the video frame. They are relative to the top/left border of
20261           the output image.
20262
20263           The default value of x and y is "0".
20264
20265           See below for the list of accepted constants and functions.
20266
20267       The parameters for x and y are expressions containing the following
20268       constants and functions:
20269
20270       dar input display aspect ratio, it is the same as (w / h) * sar
20271
20272       hsub
20273       vsub
20274           horizontal and vertical chroma subsample values. For example for
20275           the pixel format "yuv422p" hsub is 2 and vsub is 1.
20276
20277       line_h, lh
20278           the height of each text line
20279
20280       main_h, h, H
20281           the input height
20282
20283       main_w, w, W
20284           the input width
20285
20286       max_glyph_a, ascent
20287           the maximum distance from the baseline to the highest/upper grid
20288           coordinate used to place a glyph outline point, for all the
20289           rendered glyphs.  It is a positive value, due to the grid's
20290           orientation with the Y axis upwards.
20291
20292       max_glyph_d, descent
20293           the maximum distance from the baseline to the lowest grid
20294           coordinate used to place a glyph outline point, for all the
20295           rendered glyphs.  This is a negative value, due to the grid's
20296           orientation, with the Y axis upwards.
20297
20298       max_glyph_h
20299           maximum glyph height, that is the maximum height for all the glyphs
20300           contained in the rendered text, it is equivalent to ascent -
20301           descent.
20302
20303       max_glyph_w
20304           maximum glyph width, that is the maximum width for all the glyphs
20305           contained in the rendered text
20306
20307       n   the number of input frame, starting from 0
20308
20309       rand(min, max)
20310           return a random number included between min and max
20311
20312       sar The input sample aspect ratio.
20313
20314       t   timestamp expressed in seconds, NAN if the input timestamp is
20315           unknown
20316
20317       text_h, th
20318           the height of the rendered text
20319
20320       text_w, tw
20321           the width of the rendered text
20322
20323       x
20324       y   the x and y offset coordinates where the text is drawn.
20325
20326           These parameters allow the x and y expressions to refer to each
20327           other, so you can for example specify "y=x/dar".
20328
20329       pict_type
20330           A one character description of the current frame's picture type.
20331
20332       pkt_pos
20333           The current packet's position in the input file or stream (in
20334           bytes, from the start of the input). A value of -1 indicates this
20335           info is not available.
20336
20337       duration
20338           The current packet's duration, in seconds.
20339
20340       pkt_size
20341           The current packet's size (in bytes).
20342
20343       Text expansion
20344
20345       If expansion is set to "strftime", the filter recognizes strftime()
20346       sequences in the provided text and expands them accordingly. Check the
20347       documentation of strftime(). This feature is deprecated.
20348
20349       If expansion is set to "none", the text is printed verbatim.
20350
20351       If expansion is set to "normal" (which is the default), the following
20352       expansion mechanism is used.
20353
20354       The backslash character \, followed by any character, always expands to
20355       the second character.
20356
20357       Sequences of the form "%{...}" are expanded. The text between the
20358       braces is a function name, possibly followed by arguments separated by
20359       ':'.  If the arguments contain special characters or delimiters (':' or
20360       '}'), they should be escaped.
20361
20362       Note that they probably must also be escaped as the value for the text
20363       option in the filter argument string and as the filter argument in the
20364       filtergraph description, and possibly also for the shell, that makes up
20365       to four levels of escaping; using a text file avoids these problems.
20366
20367       The following functions are available:
20368
20369       expr, e
20370           The expression evaluation result.
20371
20372           It must take one argument specifying the expression to be
20373           evaluated, which accepts the same constants and functions as the x
20374           and y values. Note that not all constants should be used, for
20375           example the text size is not known when evaluating the expression,
20376           so the constants text_w and text_h will have an undefined value.
20377
20378       expr_int_format, eif
20379           Evaluate the expression's value and output as formatted integer.
20380
20381           The first argument is the expression to be evaluated, just as for
20382           the expr function.  The second argument specifies the output
20383           format. Allowed values are x, X, d and u. They are treated exactly
20384           as in the "printf" function.  The third parameter is optional and
20385           sets the number of positions taken by the output.  It can be used
20386           to add padding with zeros from the left.
20387
20388       gmtime
20389           The time at which the filter is running, expressed in UTC.  It can
20390           accept an argument: a strftime() format string.  The format string
20391           is extended to support the variable %[1-6]N which prints fractions
20392           of the second with optionally specified number of digits.
20393
20394       localtime
20395           The time at which the filter is running, expressed in the local
20396           time zone.  It can accept an argument: a strftime() format string.
20397           The format string is extended to support the variable %[1-6]N which
20398           prints fractions of the second with optionally specified number of
20399           digits.
20400
20401       metadata
20402           Frame metadata. Takes one or two arguments.
20403
20404           The first argument is mandatory and specifies the metadata key.
20405
20406           The second argument is optional and specifies a default value, used
20407           when the metadata key is not found or empty.
20408
20409           Available metadata can be identified by inspecting entries starting
20410           with TAG included within each frame section printed by running
20411           "ffprobe -show_frames".
20412
20413           String metadata generated in filters leading to the drawtext filter
20414           are also available.
20415
20416       n, frame_num
20417           The frame number, starting from 0.
20418
20419       pict_type
20420           A one character description of the current picture type.
20421
20422       pts The timestamp of the current frame.  It can take up to three
20423           arguments.
20424
20425           The first argument is the format of the timestamp; it defaults to
20426           "flt" for seconds as a decimal number with microsecond accuracy;
20427           "hms" stands for a formatted [-]HH:MM:SS.mmm timestamp with
20428           millisecond accuracy.  "gmtime" stands for the timestamp of the
20429           frame formatted as UTC time; "localtime" stands for the timestamp
20430           of the frame formatted as local time zone time.
20431
20432           The second argument is an offset added to the timestamp.
20433
20434           If the format is set to "hms", a third argument "24HH" may be
20435           supplied to present the hour part of the formatted timestamp in 24h
20436           format (00-23).
20437
20438           If the format is set to "localtime" or "gmtime", a third argument
20439           may be supplied: a strftime() format string.  By default, YYYY-MM-
20440           DD HH:MM:SS format will be used.
20441
20442       Commands
20443
20444       This filter supports altering parameters via commands:
20445
20446       reinit
20447           Alter existing filter parameters.
20448
20449           Syntax for the argument is the same as for filter invocation, e.g.
20450
20451                   fontsize=56:fontcolor=green:text='Hello World'
20452
20453           Full filter invocation with sendcmd would look like this:
20454
20455                   sendcmd=c='56.0 drawtext reinit fontsize=56\:fontcolor=green\:text=Hello\\ World'
20456
20457       If the entire argument can't be parsed or applied as valid values then
20458       the filter will continue with its existing parameters.
20459
20460       Examples
20461
20462       •   Draw "Test Text" with font FreeSerif, using the default values for
20463           the optional parameters.
20464
20465                   drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
20466
20467       •   Draw 'Test Text' with font FreeSerif of size 24 at position x=100
20468           and y=50 (counting from the top-left corner of the screen), text is
20469           yellow with a red box around it. Both the text and the box have an
20470           opacity of 20%.
20471
20472                   drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\
20473                             x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
20474
20475           Note that the double quotes are not necessary if spaces are not
20476           used within the parameter list.
20477
20478       •   Show the text at the center of the video frame:
20479
20480                   drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2"
20481
20482       •   Show the text at a random position, switching to a new position
20483           every 30 seconds:
20484
20485                   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)"
20486
20487       •   Show a text line sliding from right to left in the last row of the
20488           video frame. The file LONG_LINE is assumed to contain a single line
20489           with no newlines.
20490
20491                   drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
20492
20493       •   Show the content of file CREDITS off the bottom of the frame and
20494           scroll up.
20495
20496                   drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
20497
20498       •   Draw a single green letter "g", at the center of the input video.
20499           The glyph baseline is placed at half screen height.
20500
20501                   drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
20502
20503       •   Show text for 1 second every 3 seconds:
20504
20505                   drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
20506
20507       •   Use fontconfig to set the font. Note that the colons need to be
20508           escaped.
20509
20510                   drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
20511
20512       •   Draw "Test Text" with font size dependent on height of the video.
20513
20514                   drawtext="text='Test Text': fontsize=h/30: x=(w-text_w)/2: y=(h-text_h*2)"
20515
20516       •   Print the date of a real-time encoding (see strftime(3)):
20517
20518                   drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}'
20519
20520       •   Show text fading in and out (appearing/disappearing):
20521
20522                   #!/bin/sh
20523                   DS=1.0 # display start
20524                   DE=10.0 # display end
20525                   FID=1.5 # fade in duration
20526                   FOD=5 # fade out duration
20527                   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 }"
20528
20529       •   Horizontally align multiple separate texts. Note that max_glyph_a
20530           and the fontsize value are included in the y offset.
20531
20532                   drawtext=fontfile=FreeSans.ttf:text=DOG:fontsize=24:x=10:y=20+24-max_glyph_a,
20533                   drawtext=fontfile=FreeSans.ttf:text=cow:fontsize=24:x=80:y=20+24-max_glyph_a
20534
20535       •   Plot special lavf.image2dec.source_basename metadata onto each
20536           frame if such metadata exists. Otherwise, plot the string "NA".
20537           Note that image2 demuxer must have option -export_path_metadata 1
20538           for the special metadata fields to be available for filters.
20539
20540                   drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=10:y=10"
20541
20542       For more information about libfreetype, check:
20543       <http://www.freetype.org/>.
20544
20545       For more information about fontconfig, check:
20546       <http://freedesktop.org/software/fontconfig/fontconfig-user.html>.
20547
20548       For more information about libfribidi, check: <http://fribidi.org/>.
20549
20550   edgedetect
20551       Detect and draw edges. The filter uses the Canny Edge Detection
20552       algorithm.
20553
20554       The filter accepts the following options:
20555
20556       low
20557       high
20558           Set low and high threshold values used by the Canny thresholding
20559           algorithm.
20560
20561           The high threshold selects the "strong" edge pixels, which are then
20562           connected through 8-connectivity with the "weak" edge pixels
20563           selected by the low threshold.
20564
20565           low and high threshold values must be chosen in the range [0,1],
20566           and low should be lesser or equal to high.
20567
20568           Default value for low is "20/255", and default value for high is
20569           "50/255".
20570
20571       mode
20572           Define the drawing mode.
20573
20574           wires
20575               Draw white/gray wires on black background.
20576
20577           colormix
20578               Mix the colors to create a paint/cartoon effect.
20579
20580           canny
20581               Apply Canny edge detector on all selected planes.
20582
20583           Default value is wires.
20584
20585       planes
20586           Select planes for filtering. By default all available planes are
20587           filtered.
20588
20589       Examples
20590
20591       •   Standard edge detection with custom values for the hysteresis
20592           thresholding:
20593
20594                   edgedetect=low=0.1:high=0.4
20595
20596       •   Painting effect without thresholding:
20597
20598                   edgedetect=mode=colormix:high=0
20599
20600   elbg
20601       Apply a posterize effect using the ELBG (Enhanced LBG) algorithm.
20602
20603       For each input image, the filter will compute the optimal mapping from
20604       the input to the output given the codebook length, that is the number
20605       of distinct output colors.
20606
20607       This filter accepts the following options.
20608
20609       codebook_length, l
20610           Set codebook length. The value must be a positive integer, and
20611           represents the number of distinct output colors. Default value is
20612           256.
20613
20614       nb_steps, n
20615           Set the maximum number of iterations to apply for computing the
20616           optimal mapping. The higher the value the better the result and the
20617           higher the computation time. Default value is 1.
20618
20619       seed, s
20620           Set a random seed, must be an integer included between 0 and
20621           UINT32_MAX. If not specified, or if explicitly set to -1, the
20622           filter will try to use a good random seed on a best effort basis.
20623
20624       pal8
20625           Set pal8 output pixel format. This option does not work with
20626           codebook length greater than 256. Default is disabled.
20627
20628       use_alpha
20629           Include alpha values in the quantization calculation. Allows
20630           creating palettized output images (e.g. PNG8) with multiple alpha
20631           smooth blending.
20632
20633   entropy
20634       Measure graylevel entropy in histogram of color channels of video
20635       frames.
20636
20637       It accepts the following parameters:
20638
20639       mode
20640           Can be either normal or diff. Default is normal.
20641
20642           diff mode measures entropy of histogram delta values, absolute
20643           differences between neighbour histogram values.
20644
20645   epx
20646       Apply the EPX magnification filter which is designed for pixel art.
20647
20648       It accepts the following option:
20649
20650       n   Set the scaling dimension: 2 for "2xEPX", 3 for "3xEPX".  Default
20651           is 3.
20652
20653   eq
20654       Set brightness, contrast, saturation and approximate gamma adjustment.
20655
20656       The filter accepts the following options:
20657
20658       contrast
20659           Set the contrast expression. The value must be a float value in
20660           range -1000.0 to 1000.0. The default value is "1".
20661
20662       brightness
20663           Set the brightness expression. The value must be a float value in
20664           range -1.0 to 1.0. The default value is "0".
20665
20666       saturation
20667           Set the saturation expression. The value must be a float in range
20668           0.0 to 3.0. The default value is "1".
20669
20670       gamma
20671           Set the gamma expression. The value must be a float in range 0.1 to
20672           10.0.  The default value is "1".
20673
20674       gamma_r
20675           Set the gamma expression for red. The value must be a float in
20676           range 0.1 to 10.0. The default value is "1".
20677
20678       gamma_g
20679           Set the gamma expression for green. The value must be a float in
20680           range 0.1 to 10.0. The default value is "1".
20681
20682       gamma_b
20683           Set the gamma expression for blue. The value must be a float in
20684           range 0.1 to 10.0. The default value is "1".
20685
20686       gamma_weight
20687           Set the gamma weight expression. It can be used to reduce the
20688           effect of a high gamma value on bright image areas, e.g. keep them
20689           from getting overamplified and just plain white. The value must be
20690           a float in range 0.0 to 1.0. A value of 0.0 turns the gamma
20691           correction all the way down while 1.0 leaves it at its full
20692           strength. Default is "1".
20693
20694       eval
20695           Set when the expressions for brightness, contrast, saturation and
20696           gamma expressions are evaluated.
20697
20698           It accepts the following values:
20699
20700           init
20701               only evaluate expressions once during the filter initialization
20702               or when a command is processed
20703
20704           frame
20705               evaluate expressions for each incoming frame
20706
20707           Default value is init.
20708
20709       The expressions accept the following parameters:
20710
20711       n   frame count of the input frame starting from 0
20712
20713       pos byte position of the corresponding packet in the input file, NAN if
20714           unspecified
20715
20716       r   frame rate of the input video, NAN if the input frame rate is
20717           unknown
20718
20719       t   timestamp expressed in seconds, NAN if the input timestamp is
20720           unknown
20721
20722       Commands
20723
20724       The filter supports the following commands:
20725
20726       contrast
20727           Set the contrast expression.
20728
20729       brightness
20730           Set the brightness expression.
20731
20732       saturation
20733           Set the saturation expression.
20734
20735       gamma
20736           Set the gamma expression.
20737
20738       gamma_r
20739           Set the gamma_r expression.
20740
20741       gamma_g
20742           Set gamma_g expression.
20743
20744       gamma_b
20745           Set gamma_b expression.
20746
20747       gamma_weight
20748           Set gamma_weight expression.
20749
20750           The command accepts the same syntax of the corresponding option.
20751
20752           If the specified expression is not valid, it is kept at its current
20753           value.
20754
20755   erosion
20756       Apply erosion effect to the video.
20757
20758       This filter replaces the pixel by the local(3x3) minimum.
20759
20760       It accepts the following options:
20761
20762       threshold0
20763       threshold1
20764       threshold2
20765       threshold3
20766           Limit the maximum change for each plane, default is 65535.  If 0,
20767           plane will remain unchanged.
20768
20769       coordinates
20770           Flag which specifies the pixel to refer to. Default is 255 i.e. all
20771           eight pixels are used.
20772
20773           Flags to local 3x3 coordinates maps like this:
20774
20775               1 2 3
20776               4   5
20777               6 7 8
20778
20779       Commands
20780
20781       This filter supports the all above options as commands.
20782
20783   estdif
20784       Deinterlace the input video ("estdif" stands for "Edge Slope Tracing
20785       Deinterlacing Filter").
20786
20787       Spatial only filter that uses edge slope tracing algorithm to
20788       interpolate missing lines.  It accepts the following parameters:
20789
20790       mode
20791           The interlacing mode to adopt. It accepts one of the following
20792           values:
20793
20794           frame
20795               Output one frame for each frame.
20796
20797           field
20798               Output one frame for each field.
20799
20800           The default value is "field".
20801
20802       parity
20803           The picture field parity assumed for the input interlaced video. It
20804           accepts one of the following values:
20805
20806           tff Assume the top field is first.
20807
20808           bff Assume the bottom field is first.
20809
20810           auto
20811               Enable automatic detection of field parity.
20812
20813           The default value is "auto".  If the interlacing is unknown or the
20814           decoder does not export this information, top field first will be
20815           assumed.
20816
20817       deint
20818           Specify which frames to deinterlace. Accepts one of the following
20819           values:
20820
20821           all Deinterlace all frames.
20822
20823           interlaced
20824               Only deinterlace frames marked as interlaced.
20825
20826           The default value is "all".
20827
20828       rslope
20829           Specify the search radius for edge slope tracing. Default value is
20830           1.  Allowed range is from 1 to 15.
20831
20832       redge
20833           Specify the search radius for best edge matching. Default value is
20834           2.  Allowed range is from 0 to 15.
20835
20836       ecost
20837           Specify the edge cost for edge matching. Default value is 1.0.
20838           Allowed range is from 0 to 9.
20839
20840       mcost
20841           Specify the middle cost for edge matching. Default value is 0.5.
20842           Allowed range is from 0 to 1.
20843
20844       dcost
20845           Specify the distance cost for edge matching. Default value is 0.5.
20846           Allowed range is from 0 to 1.
20847
20848       interp
20849           Specify the interpolation used. Default is 4-point interpolation.
20850           It accepts one of the following values:
20851
20852           2p  Two-point interpolation.
20853
20854           4p  Four-point interpolation.
20855
20856           6p  Six-point interpolation.
20857
20858       Commands
20859
20860       This filter supports same commands as options.
20861
20862   exposure
20863       Adjust exposure of the video stream.
20864
20865       The filter accepts the following options:
20866
20867       exposure
20868           Set the exposure correction in EV. Allowed range is from -3.0 to
20869           3.0 EV Default value is 0 EV.
20870
20871       black
20872           Set the black level correction. Allowed range is from -1.0 to 1.0.
20873           Default value is 0.
20874
20875       Commands
20876
20877       This filter supports same commands as options.
20878
20879   extractplanes
20880       Extract color channel components from input video stream into separate
20881       grayscale video streams.
20882
20883       The filter accepts the following option:
20884
20885       planes
20886           Set plane(s) to extract.
20887
20888           Available values for planes are:
20889
20890           y
20891           u
20892           v
20893           a
20894           r
20895           g
20896           b
20897
20898           Choosing planes not available in the input will result in an error.
20899           That means you cannot select "r", "g", "b" planes with "y", "u",
20900           "v" planes at same time.
20901
20902       Examples
20903
20904       •   Extract luma, u and v color channel component from input video
20905           frame into 3 grayscale outputs:
20906
20907                   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
20908
20909   fade
20910       Apply a fade-in/out effect to the input video.
20911
20912       It accepts the following parameters:
20913
20914       type, t
20915           The effect type can be either "in" for a fade-in, or "out" for a
20916           fade-out effect.  Default is "in".
20917
20918       start_frame, s
20919           Specify the number of the frame to start applying the fade effect
20920           at. Default is 0.
20921
20922       nb_frames, n
20923           The number of frames that the fade effect lasts. At the end of the
20924           fade-in effect, the output video will have the same intensity as
20925           the input video.  At the end of the fade-out transition, the output
20926           video will be filled with the selected color.  Default is 25.
20927
20928       alpha
20929           If set to 1, fade only alpha channel, if one exists on the input.
20930           Default value is 0.
20931
20932       start_time, st
20933           Specify the timestamp (in seconds) of the frame to start to apply
20934           the fade effect. If both start_frame and start_time are specified,
20935           the fade will start at whichever comes last.  Default is 0.
20936
20937       duration, d
20938           The number of seconds for which the fade effect has to last. At the
20939           end of the fade-in effect the output video will have the same
20940           intensity as the input video, at the end of the fade-out transition
20941           the output video will be filled with the selected color.  If both
20942           duration and nb_frames are specified, duration is used. Default is
20943           0 (nb_frames is used by default).
20944
20945       color, c
20946           Specify the color of the fade. Default is "black".
20947
20948       Examples
20949
20950       •   Fade in the first 30 frames of video:
20951
20952                   fade=in:0:30
20953
20954           The command above is equivalent to:
20955
20956                   fade=t=in:s=0:n=30
20957
20958       •   Fade out the last 45 frames of a 200-frame video:
20959
20960                   fade=out:155:45
20961                   fade=type=out:start_frame=155:nb_frames=45
20962
20963       •   Fade in the first 25 frames and fade out the last 25 frames of a
20964           1000-frame video:
20965
20966                   fade=in:0:25, fade=out:975:25
20967
20968       •   Make the first 5 frames yellow, then fade in from frame 5-24:
20969
20970                   fade=in:5:20:color=yellow
20971
20972       •   Fade in alpha over first 25 frames of video:
20973
20974                   fade=in:0:25:alpha=1
20975
20976       •   Make the first 5.5 seconds black, then fade in for 0.5 seconds:
20977
20978                   fade=t=in:st=5.5:d=0.5
20979
20980   feedback
20981       Apply feedback video filter.
20982
20983       This filter pass cropped input frames to 2nd output.  From there it can
20984       be filtered with other video filters.  After filter receives frame from
20985       2nd input, that frame is combined on top of original frame from 1st
20986       input and passed to 1st output.
20987
20988       The typical usage is filter only part of frame.
20989
20990       The filter accepts the following options:
20991
20992       x
20993       y   Set the top left crop position.
20994
20995       w
20996       h   Set the crop size.
20997
20998       Examples
20999
21000       •   Blur only top left rectangular part of video frame size 100x100
21001           with gblur filter.
21002
21003                   [in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]gblur=8[blurin]
21004
21005       •   Draw black box on top left part of video frame of size 100x100 with
21006           drawbox filter.
21007
21008                   [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]
21009
21010   fftdnoiz
21011       Denoise frames using 3D FFT (frequency domain filtering).
21012
21013       The filter accepts the following options:
21014
21015       sigma
21016           Set the noise sigma constant. This sets denoising strength.
21017           Default value is 1. Allowed range is from 0 to 30.  Using very high
21018           sigma with low overlap may give blocking artifacts.
21019
21020       amount
21021           Set amount of denoising. By default all detected noise is reduced.
21022           Default value is 1. Allowed range is from 0 to 1.
21023
21024       block
21025           Set size of block in pixels, Default is 32, can be 8 to 256.
21026
21027       overlap
21028           Set block overlap. Default is 0.5. Allowed range is from 0.2 to
21029           0.8.
21030
21031       method
21032           Set denoising method. Default is "wiener", can also be "hard".
21033
21034       prev
21035           Set number of previous frames to use for denoising. By default is
21036           set to 0.
21037
21038       next
21039           Set number of next frames to to use for denoising. By default is
21040           set to 0.
21041
21042       planes
21043           Set planes which will be filtered, by default are all available
21044           filtered except alpha.
21045
21046   fftfilt
21047       Apply arbitrary expressions to samples in frequency domain
21048
21049       dc_Y
21050           Adjust the dc value (gain) of the luma plane of the image. The
21051           filter accepts an integer value in range 0 to 1000. The default
21052           value is set to 0.
21053
21054       dc_U
21055           Adjust the dc value (gain) of the 1st chroma plane of the image.
21056           The filter accepts an integer value in range 0 to 1000. The default
21057           value is set to 0.
21058
21059       dc_V
21060           Adjust the dc value (gain) of the 2nd chroma plane of the image.
21061           The filter accepts an integer value in range 0 to 1000. The default
21062           value is set to 0.
21063
21064       weight_Y
21065           Set the frequency domain weight expression for the luma plane.
21066
21067       weight_U
21068           Set the frequency domain weight expression for the 1st chroma
21069           plane.
21070
21071       weight_V
21072           Set the frequency domain weight expression for the 2nd chroma
21073           plane.
21074
21075       eval
21076           Set when the expressions are evaluated.
21077
21078           It accepts the following values:
21079
21080           init
21081               Only evaluate expressions once during the filter
21082               initialization.
21083
21084           frame
21085               Evaluate expressions for each incoming frame.
21086
21087           Default value is init.
21088
21089           The filter accepts the following variables:
21090
21091       X
21092       Y   The coordinates of the current sample.
21093
21094       W
21095       H   The width and height of the image.
21096
21097       N   The number of input frame, starting from 0.
21098
21099       WS
21100       HS  The size of FFT array for horizontal and vertical processing.
21101
21102       Examples
21103
21104       •   High-pass:
21105
21106                   fftfilt=dc_Y=128:weight_Y='squish(1-(Y+X)/100)'
21107
21108       •   Low-pass:
21109
21110                   fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)'
21111
21112       •   Sharpen:
21113
21114                   fftfilt=dc_Y=0:weight_Y='1+squish(1-(Y+X)/100)'
21115
21116       •   Blur:
21117
21118                   fftfilt=dc_Y=0:weight_Y='exp(-4 * ((Y+X)/(W+H)))'
21119
21120   field
21121       Extract a single field from an interlaced image using stride arithmetic
21122       to avoid wasting CPU time. The output frames are marked as non-
21123       interlaced.
21124
21125       The filter accepts the following options:
21126
21127       type
21128           Specify whether to extract the top (if the value is 0 or "top") or
21129           the bottom field (if the value is 1 or "bottom").
21130
21131   fieldhint
21132       Create new frames by copying the top and bottom fields from surrounding
21133       frames supplied as numbers by the hint file.
21134
21135       hint
21136           Set file containing hints: absolute/relative frame numbers.
21137
21138           There must be one line for each frame in a clip. Each line must
21139           contain two numbers separated by the comma, optionally followed by
21140           "-" or "+".  Numbers supplied on each line of file can not be out
21141           of [N-1,N+1] where N is current frame number for "absolute" mode or
21142           out of [-1, 1] range for "relative" mode. First number tells from
21143           which frame to pick up top field and second number tells from which
21144           frame to pick up bottom field.
21145
21146           If optionally followed by "+" output frame will be marked as
21147           interlaced, else if followed by "-" output frame will be marked as
21148           progressive, else it will be marked same as input frame.  If
21149           optionally followed by "t" output frame will use only top field, or
21150           in case of "b" it will use only bottom field.  If line starts with
21151           "#" or ";" that line is skipped.
21152
21153       mode
21154           Can be item "absolute" or "relative" or "pattern". Default is
21155           "absolute".  The "pattern" mode is same as "relative" mode, except
21156           at last entry of file if there are more frames to process than
21157           "hint" file is seek back to start.
21158
21159       Example of first several lines of "hint" file for "relative" mode:
21160
21161               0,0 - # first frame
21162               1,0 - # second frame, use third's frame top field and second's frame bottom field
21163               1,0 - # third frame, use fourth's frame top field and third's frame bottom field
21164               1,0 -
21165               0,0 -
21166               0,0 -
21167               1,0 -
21168               1,0 -
21169               1,0 -
21170               0,0 -
21171               0,0 -
21172               1,0 -
21173               1,0 -
21174               1,0 -
21175               0,0 -
21176
21177   fieldmatch
21178       Field matching filter for inverse telecine. It is meant to reconstruct
21179       the progressive frames from a telecined stream. The filter does not
21180       drop duplicated frames, so to achieve a complete inverse telecine
21181       "fieldmatch" needs to be followed by a decimation filter such as
21182       decimate in the filtergraph.
21183
21184       The separation of the field matching and the decimation is notably
21185       motivated by the possibility of inserting a de-interlacing filter
21186       fallback between the two.  If the source has mixed telecined and real
21187       interlaced content, "fieldmatch" will not be able to match fields for
21188       the interlaced parts.  But these remaining combed frames will be marked
21189       as interlaced, and thus can be de-interlaced by a later filter such as
21190       yadif before decimation.
21191
21192       In addition to the various configuration options, "fieldmatch" can take
21193       an optional second stream, activated through the ppsrc option. If
21194       enabled, the frames reconstruction will be based on the fields and
21195       frames from this second stream. This allows the first input to be pre-
21196       processed in order to help the various algorithms of the filter, while
21197       keeping the output lossless (assuming the fields are matched properly).
21198       Typically, a field-aware denoiser, or brightness/contrast adjustments
21199       can help.
21200
21201       Note that this filter uses the same algorithms as TIVTC/TFM (AviSynth
21202       project) and VIVTC/VFM (VapourSynth project). The later is a light
21203       clone of TFM from which "fieldmatch" is based on. While the semantic
21204       and usage are very close, some behaviour and options names can differ.
21205
21206       The decimate filter currently only works for constant frame rate input.
21207       If your input has mixed telecined (30fps) and progressive content with
21208       a lower framerate like 24fps use the following filterchain to produce
21209       the necessary cfr stream:
21210       "dejudder,fps=30000/1001,fieldmatch,decimate".
21211
21212       The filter accepts the following options:
21213
21214       order
21215           Specify the assumed field order of the input stream. Available
21216           values are:
21217
21218           auto
21219               Auto detect parity (use FFmpeg's internal parity value).
21220
21221           bff Assume bottom field first.
21222
21223           tff Assume top field first.
21224
21225           Note that it is sometimes recommended not to trust the parity
21226           announced by the stream.
21227
21228           Default value is auto.
21229
21230       mode
21231           Set the matching mode or strategy to use. pc mode is the safest in
21232           the sense that it won't risk creating jerkiness due to duplicate
21233           frames when possible, but if there are bad edits or blended fields
21234           it will end up outputting combed frames when a good match might
21235           actually exist. On the other hand, pcn_ub mode is the most risky in
21236           terms of creating jerkiness, but will almost always find a good
21237           frame if there is one. The other values are all somewhere in
21238           between pc and pcn_ub in terms of risking jerkiness and creating
21239           duplicate frames versus finding good matches in sections with bad
21240           edits, orphaned fields, blended fields, etc.
21241
21242           More details about p/c/n/u/b are available in p/c/n/u/b meaning
21243           section.
21244
21245           Available values are:
21246
21247           pc  2-way matching (p/c)
21248
21249           pc_n
21250               2-way matching, and trying 3rd match if still combed (p/c + n)
21251
21252           pc_u
21253               2-way matching, and trying 3rd match (same order) if still
21254               combed (p/c + u)
21255
21256           pc_n_ub
21257               2-way matching, trying 3rd match if still combed, and trying
21258               4th/5th matches if still combed (p/c + n + u/b)
21259
21260           pcn 3-way matching (p/c/n)
21261
21262           pcn_ub
21263               3-way matching, and trying 4th/5th matches if all 3 of the
21264               original matches are detected as combed (p/c/n + u/b)
21265
21266           The parenthesis at the end indicate the matches that would be used
21267           for that mode assuming order=tff (and field on auto or top).
21268
21269           In terms of speed pc mode is by far the fastest and pcn_ub is the
21270           slowest.
21271
21272           Default value is pc_n.
21273
21274       ppsrc
21275           Mark the main input stream as a pre-processed input, and enable the
21276           secondary input stream as the clean source to pick the fields from.
21277           See the filter introduction for more details. It is similar to the
21278           clip2 feature from VFM/TFM.
21279
21280           Default value is 0 (disabled).
21281
21282       field
21283           Set the field to match from. It is recommended to set this to the
21284           same value as order unless you experience matching failures with
21285           that setting. In certain circumstances changing the field that is
21286           used to match from can have a large impact on matching performance.
21287           Available values are:
21288
21289           auto
21290               Automatic (same value as order).
21291
21292           bottom
21293               Match from the bottom field.
21294
21295           top Match from the top field.
21296
21297           Default value is auto.
21298
21299       mchroma
21300           Set whether or not chroma is included during the match comparisons.
21301           In most cases it is recommended to leave this enabled. You should
21302           set this to 0 only if your clip has bad chroma problems such as
21303           heavy rainbowing or other artifacts. Setting this to 0 could also
21304           be used to speed things up at the cost of some accuracy.
21305
21306           Default value is 1.
21307
21308       y0
21309       y1  These define an exclusion band which excludes the lines between y0
21310           and y1 from being included in the field matching decision. An
21311           exclusion band can be used to ignore subtitles, a logo, or other
21312           things that may interfere with the matching. y0 sets the starting
21313           scan line and y1 sets the ending line; all lines in between y0 and
21314           y1 (including y0 and y1) will be ignored. Setting y0 and y1 to the
21315           same value will disable the feature.  y0 and y1 defaults to 0.
21316
21317       scthresh
21318           Set the scene change detection threshold as a percentage of maximum
21319           change on the luma plane. Good values are in the "[8.0, 14.0]"
21320           range. Scene change detection is only relevant in case
21321           combmatch=sc.  The range for scthresh is "[0.0, 100.0]".
21322
21323           Default value is 12.0.
21324
21325       combmatch
21326           When combatch is not none, "fieldmatch" will take into account the
21327           combed scores of matches when deciding what match to use as the
21328           final match. Available values are:
21329
21330           none
21331               No final matching based on combed scores.
21332
21333           sc  Combed scores are only used when a scene change is detected.
21334
21335           full
21336               Use combed scores all the time.
21337
21338           Default is sc.
21339
21340       combdbg
21341           Force "fieldmatch" to calculate the combed metrics for certain
21342           matches and print them. This setting is known as micout in TFM/VFM
21343           vocabulary.  Available values are:
21344
21345           none
21346               No forced calculation.
21347
21348           pcn Force p/c/n calculations.
21349
21350           pcnub
21351               Force p/c/n/u/b calculations.
21352
21353           Default value is none.
21354
21355       cthresh
21356           This is the area combing threshold used for combed frame detection.
21357           This essentially controls how "strong" or "visible" combing must be
21358           to be detected.  Larger values mean combing must be more visible
21359           and smaller values mean combing can be less visible or strong and
21360           still be detected. Valid settings are from -1 (every pixel will be
21361           detected as combed) to 255 (no pixel will be detected as combed).
21362           This is basically a pixel difference value. A good range is "[8,
21363           12]".
21364
21365           Default value is 9.
21366
21367       chroma
21368           Sets whether or not chroma is considered in the combed frame
21369           decision.  Only disable this if your source has chroma problems
21370           (rainbowing, etc.) that are causing problems for the combed frame
21371           detection with chroma enabled. Actually, using chroma=0 is usually
21372           more reliable, except for the case where there is chroma only
21373           combing in the source.
21374
21375           Default value is 0.
21376
21377       blockx
21378       blocky
21379           Respectively set the x-axis and y-axis size of the window used
21380           during combed frame detection. This has to do with the size of the
21381           area in which combpel pixels are required to be detected as combed
21382           for a frame to be declared combed. See the combpel parameter
21383           description for more info.  Possible values are any number that is
21384           a power of 2 starting at 4 and going up to 512.
21385
21386           Default value is 16.
21387
21388       combpel
21389           The number of combed pixels inside any of the blocky by blockx size
21390           blocks on the frame for the frame to be detected as combed. While
21391           cthresh controls how "visible" the combing must be, this setting
21392           controls "how much" combing there must be in any localized area (a
21393           window defined by the blockx and blocky settings) on the frame.
21394           Minimum value is 0 and maximum is "blocky x blockx" (at which point
21395           no frames will ever be detected as combed). This setting is known
21396           as MI in TFM/VFM vocabulary.
21397
21398           Default value is 80.
21399
21400       p/c/n/u/b meaning
21401
21402       p/c/n
21403
21404       We assume the following telecined stream:
21405
21406               Top fields:     1 2 2 3 4
21407               Bottom fields:  1 2 3 4 4
21408
21409       The numbers correspond to the progressive frame the fields relate to.
21410       Here, the first two frames are progressive, the 3rd and 4th are combed,
21411       and so on.
21412
21413       When "fieldmatch" is configured to run a matching from bottom
21414       (field=bottom) this is how this input stream get transformed:
21415
21416               Input stream:
21417                               T     1 2 2 3 4
21418                               B     1 2 3 4 4   <-- matching reference
21419
21420               Matches:              c c n n c
21421
21422               Output stream:
21423                               T     1 2 3 4 4
21424                               B     1 2 3 4 4
21425
21426       As a result of the field matching, we can see that some frames get
21427       duplicated.  To perform a complete inverse telecine, you need to rely
21428       on a decimation filter after this operation. See for instance the
21429       decimate filter.
21430
21431       The same operation now matching from top fields (field=top) looks like
21432       this:
21433
21434               Input stream:
21435                               T     1 2 2 3 4   <-- matching reference
21436                               B     1 2 3 4 4
21437
21438               Matches:              c c p p c
21439
21440               Output stream:
21441                               T     1 2 2 3 4
21442                               B     1 2 2 3 4
21443
21444       In these examples, we can see what p, c and n mean; basically, they
21445       refer to the frame and field of the opposite parity:
21446
21447       *<p matches the field of the opposite parity in the previous frame>
21448       *<c matches the field of the opposite parity in the current frame>
21449       *<n matches the field of the opposite parity in the next frame>
21450
21451       u/b
21452
21453       The u and b matching are a bit special in the sense that they match
21454       from the opposite parity flag. In the following examples, we assume
21455       that we are currently matching the 2nd frame (Top:2, bottom:2).
21456       According to the match, a 'x' is placed above and below each matched
21457       fields.
21458
21459       With bottom matching (field=bottom):
21460
21461               Match:           c         p           n          b          u
21462
21463                                x       x               x        x          x
21464                 Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
21465                 Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
21466                                x         x           x        x              x
21467
21468               Output frames:
21469                                2          1          2          2          2
21470                                2          2          2          1          3
21471
21472       With top matching (field=top):
21473
21474               Match:           c         p           n          b          u
21475
21476                                x         x           x        x              x
21477                 Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
21478                 Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
21479                                x       x               x        x          x
21480
21481               Output frames:
21482                                2          2          2          1          2
21483                                2          1          3          2          2
21484
21485       Examples
21486
21487       Simple IVTC of a top field first telecined stream:
21488
21489               fieldmatch=order=tff:combmatch=none, decimate
21490
21491       Advanced IVTC, with fallback on yadif for still combed frames:
21492
21493               fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
21494
21495   fieldorder
21496       Transform the field order of the input video.
21497
21498       It accepts the following parameters:
21499
21500       order
21501           The output field order. Valid values are tff for top field first or
21502           bff for bottom field first.
21503
21504       The default value is tff.
21505
21506       The transformation is done by shifting the picture content up or down
21507       by one line, and filling the remaining line with appropriate picture
21508       content.  This method is consistent with most broadcast field order
21509       converters.
21510
21511       If the input video is not flagged as being interlaced, or it is already
21512       flagged as being of the required output field order, then this filter
21513       does not alter the incoming video.
21514
21515       It is very useful when converting to or from PAL DV material, which is
21516       bottom field first.
21517
21518       For example:
21519
21520               ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
21521
21522   fifo, afifo
21523       Buffer input images and send them when they are requested.
21524
21525       It is mainly useful when auto-inserted by the libavfilter framework.
21526
21527       It does not take parameters.
21528
21529   fillborders
21530       Fill borders of the input video, without changing video stream
21531       dimensions.  Sometimes video can have garbage at the four edges and you
21532       may not want to crop video input to keep size multiple of some number.
21533
21534       This filter accepts the following options:
21535
21536       left
21537           Number of pixels to fill from left border.
21538
21539       right
21540           Number of pixels to fill from right border.
21541
21542       top Number of pixels to fill from top border.
21543
21544       bottom
21545           Number of pixels to fill from bottom border.
21546
21547       mode
21548           Set fill mode.
21549
21550           It accepts the following values:
21551
21552           smear
21553               fill pixels using outermost pixels
21554
21555           mirror
21556               fill pixels using mirroring (half sample symmetric)
21557
21558           fixed
21559               fill pixels with constant value
21560
21561           reflect
21562               fill pixels using reflecting (whole sample symmetric)
21563
21564           wrap
21565               fill pixels using wrapping
21566
21567           fade
21568               fade pixels to constant value
21569
21570           margins
21571               fill pixels at top and bottom with weighted averages pixels
21572               near borders
21573
21574           Default is smear.
21575
21576       color
21577           Set color for pixels in fixed or fade mode. Default is black.
21578
21579       Commands
21580
21581       This filter supports same commands as options.  The command accepts the
21582       same syntax of the corresponding option.
21583
21584       If the specified expression is not valid, it is kept at its current
21585       value.
21586
21587   find_rect
21588       Find a rectangular object
21589
21590       It accepts the following options:
21591
21592       object
21593           Filepath of the object image, needs to be in gray8.
21594
21595       threshold
21596           Detection threshold, default is 0.5.
21597
21598       mipmaps
21599           Number of mipmaps, default is 3.
21600
21601       xmin, ymin, xmax, ymax
21602           Specifies the rectangle in which to search.
21603
21604       discard
21605           Discard frames where object is not detected. Default is disabled.
21606
21607       Examples
21608
21609       •   Cover a rectangular object by the supplied image of a given video
21610           using ffmpeg:
21611
21612                   ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
21613
21614   floodfill
21615       Flood area with values of same pixel components with another values.
21616
21617       It accepts the following options:
21618
21619       x   Set pixel x coordinate.
21620
21621       y   Set pixel y coordinate.
21622
21623       s0  Set source #0 component value.
21624
21625       s1  Set source #1 component value.
21626
21627       s2  Set source #2 component value.
21628
21629       s3  Set source #3 component value.
21630
21631       d0  Set destination #0 component value.
21632
21633       d1  Set destination #1 component value.
21634
21635       d2  Set destination #2 component value.
21636
21637       d3  Set destination #3 component value.
21638
21639   format
21640       Convert the input video to one of the specified pixel formats.
21641       Libavfilter will try to pick one that is suitable as input to the next
21642       filter.
21643
21644       It accepts the following parameters:
21645
21646       pix_fmts
21647           A '|'-separated list of pixel format names, such as
21648           "pix_fmts=yuv420p|monow|rgb24".
21649
21650       Examples
21651
21652       •   Convert the input video to the yuv420p format
21653
21654                   format=pix_fmts=yuv420p
21655
21656           Convert the input video to any of the formats in the list
21657
21658                   format=pix_fmts=yuv420p|yuv444p|yuv410p
21659
21660   fps
21661       Convert the video to specified constant frame rate by duplicating or
21662       dropping frames as necessary.
21663
21664       It accepts the following parameters:
21665
21666       fps The desired output frame rate. It accepts expressions containing
21667           the following constants:
21668
21669           source_fps
21670               The input's frame rate
21671
21672           ntsc
21673               NTSC frame rate of "30000/1001"
21674
21675           pal PAL frame rate of 25.0
21676
21677           film
21678               Film frame rate of 24.0
21679
21680           ntsc_film
21681               NTSC-film frame rate of "24000/1001"
21682
21683           The default is 25.
21684
21685       start_time
21686           Assume the first PTS should be the given value, in seconds. This
21687           allows for padding/trimming at the start of stream. By default, no
21688           assumption is made about the first frame's expected PTS, so no
21689           padding or trimming is done.  For example, this could be set to 0
21690           to pad the beginning with duplicates of the first frame if a video
21691           stream starts after the audio stream or to trim any frames with a
21692           negative PTS.
21693
21694       round
21695           Timestamp (PTS) rounding method.
21696
21697           Possible values are:
21698
21699           zero
21700               round towards 0
21701
21702           inf round away from 0
21703
21704           down
21705               round towards -infinity
21706
21707           up  round towards +infinity
21708
21709           near
21710               round to nearest
21711
21712           The default is "near".
21713
21714       eof_action
21715           Action performed when reading the last frame.
21716
21717           Possible values are:
21718
21719           round
21720               Use same timestamp rounding method as used for other frames.
21721
21722           pass
21723               Pass through last frame if input duration has not been reached
21724               yet.
21725
21726           The default is "round".
21727
21728       Alternatively, the options can be specified as a flat string:
21729       fps[:start_time[:round]].
21730
21731       See also the setpts filter.
21732
21733       Examples
21734
21735       •   A typical usage in order to set the fps to 25:
21736
21737                   fps=fps=25
21738
21739       •   Sets the fps to 24, using abbreviation and rounding method to round
21740           to nearest:
21741
21742                   fps=fps=film:round=near
21743
21744   framepack
21745       Pack two different video streams into a stereoscopic video, setting
21746       proper metadata on supported codecs. The two views should have the same
21747       size and framerate and processing will stop when the shorter video
21748       ends. Please note that you may conveniently adjust view properties with
21749       the scale and fps filters.
21750
21751       It accepts the following parameters:
21752
21753       format
21754           The desired packing format. Supported values are:
21755
21756           sbs The views are next to each other (default).
21757
21758           tab The views are on top of each other.
21759
21760           lines
21761               The views are packed by line.
21762
21763           columns
21764               The views are packed by column.
21765
21766           frameseq
21767               The views are temporally interleaved.
21768
21769       Some examples:
21770
21771               # Convert left and right views into a frame-sequential video
21772               ffmpeg -i LEFT -i RIGHT -filter_complex framepack=frameseq OUTPUT
21773
21774               # Convert views into a side-by-side video with the same output resolution as the input
21775               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
21776
21777   framerate
21778       Change the frame rate by interpolating new video output frames from the
21779       source frames.
21780
21781       This filter is not designed to function correctly with interlaced
21782       media. If you wish to change the frame rate of interlaced media then
21783       you are required to deinterlace before this filter and re-interlace
21784       after this filter.
21785
21786       A description of the accepted options follows.
21787
21788       fps Specify the output frames per second. This option can also be
21789           specified as a value alone. The default is 50.
21790
21791       interp_start
21792           Specify the start of a range where the output frame will be created
21793           as a linear interpolation of two frames. The range is [0-255], the
21794           default is 15.
21795
21796       interp_end
21797           Specify the end of a range where the output frame will be created
21798           as a linear interpolation of two frames. The range is [0-255], the
21799           default is 240.
21800
21801       scene
21802           Specify the level at which a scene change is detected as a value
21803           between 0 and 100 to indicate a new scene; a low value reflects a
21804           low probability for the current frame to introduce a new scene,
21805           while a higher value means the current frame is more likely to be
21806           one.  The default is 8.2.
21807
21808       flags
21809           Specify flags influencing the filter process.
21810
21811           Available value for flags is:
21812
21813           scene_change_detect, scd
21814               Enable scene change detection using the value of the option
21815               scene.  This flag is enabled by default.
21816
21817   framestep
21818       Select one frame every N-th frame.
21819
21820       This filter accepts the following option:
21821
21822       step
21823           Select frame after every "step" frames.  Allowed values are
21824           positive integers higher than 0. Default value is 1.
21825
21826   freezedetect
21827       Detect frozen video.
21828
21829       This filter logs a message and sets frame metadata when it detects that
21830       the input video has no significant change in content during a specified
21831       duration.  Video freeze detection calculates the mean average absolute
21832       difference of all the components of video frames and compares it to a
21833       noise floor.
21834
21835       The printed times and duration are expressed in seconds. The
21836       "lavfi.freezedetect.freeze_start" metadata key is set on the first
21837       frame whose timestamp equals or exceeds the detection duration and it
21838       contains the timestamp of the first frame of the freeze. The
21839       "lavfi.freezedetect.freeze_duration" and
21840       "lavfi.freezedetect.freeze_end" metadata keys are set on the first
21841       frame after the freeze.
21842
21843       The filter accepts the following options:
21844
21845       noise, n
21846           Set noise tolerance. Can be specified in dB (in case "dB" is
21847           appended to the specified value) or as a difference ratio between 0
21848           and 1. Default is -60dB, or 0.001.
21849
21850       duration, d
21851           Set freeze duration until notification (default is 2 seconds).
21852
21853   freezeframes
21854       Freeze video frames.
21855
21856       This filter freezes video frames using frame from 2nd input.
21857
21858       The filter accepts the following options:
21859
21860       first
21861           Set number of first frame from which to start freeze.
21862
21863       last
21864           Set number of last frame from which to end freeze.
21865
21866       replace
21867           Set number of frame from 2nd input which will be used instead of
21868           replaced frames.
21869
21870   frei0r
21871       Apply a frei0r effect to the input video.
21872
21873       To enable the compilation of this filter, you need to install the
21874       frei0r header and configure FFmpeg with "--enable-frei0r".
21875
21876       It accepts the following parameters:
21877
21878       filter_name
21879           The name of the frei0r effect to load. If the environment variable
21880           FREI0R_PATH is defined, the frei0r effect is searched for in each
21881           of the directories specified by the colon-separated list in
21882           FREI0R_PATH.  Otherwise, the standard frei0r paths are searched, in
21883           this order: HOME/.frei0r-1/lib/, /usr/local/lib/frei0r-1/,
21884           /usr/lib/frei0r-1/.
21885
21886       filter_params
21887           A '|'-separated list of parameters to pass to the frei0r effect.
21888
21889       A frei0r effect parameter can be a boolean (its value is either "y" or
21890       "n"), a double, a color (specified as R/G/B, where R, G, and B are
21891       floating point numbers between 0.0 and 1.0, inclusive) or a color
21892       description as specified in the "Color" section in the ffmpeg-utils
21893       manual, a position (specified as X/Y, where X and Y are floating point
21894       numbers) and/or a string.
21895
21896       The number and types of parameters depend on the loaded effect. If an
21897       effect parameter is not specified, the default value is set.
21898
21899       Examples
21900
21901       •   Apply the distort0r effect, setting the first two double
21902           parameters:
21903
21904                   frei0r=filter_name=distort0r:filter_params=0.5|0.01
21905
21906       •   Apply the colordistance effect, taking a color as the first
21907           parameter:
21908
21909                   frei0r=colordistance:0.2/0.3/0.4
21910                   frei0r=colordistance:violet
21911                   frei0r=colordistance:0x112233
21912
21913       •   Apply the perspective effect, specifying the top left and top right
21914           image positions:
21915
21916                   frei0r=perspective:0.2/0.2|0.8/0.2
21917
21918       For more information, see <http://frei0r.dyne.org>
21919
21920       Commands
21921
21922       This filter supports the filter_params option as commands.
21923
21924   fspp
21925       Apply fast and simple postprocessing. It is a faster version of spp.
21926
21927       It splits (I)DCT into horizontal/vertical passes. Unlike the simple
21928       post- processing filter, one of them is performed once per block, not
21929       per pixel.  This allows for much higher speed.
21930
21931       The filter accepts the following options:
21932
21933       quality
21934           Set quality. This option defines the number of levels for
21935           averaging. It accepts an integer in the range 4-5. Default value is
21936           4.
21937
21938       qp  Force a constant quantization parameter. It accepts an integer in
21939           range 0-63.  If not set, the filter will use the QP from the video
21940           stream (if available).
21941
21942       strength
21943           Set filter strength. It accepts an integer in range -15 to 32.
21944           Lower values mean more details but also more artifacts, while
21945           higher values make the image smoother but also blurrier. Default
21946           value is 0 − PSNR optimal.
21947
21948       use_bframe_qp
21949           Enable the use of the QP from the B-Frames if set to 1. Using this
21950           option may cause flicker since the B-Frames have often larger QP.
21951           Default is 0 (not enabled).
21952
21953   gblur
21954       Apply Gaussian blur filter.
21955
21956       The filter accepts the following options:
21957
21958       sigma
21959           Set horizontal sigma, standard deviation of Gaussian blur. Default
21960           is 0.5.
21961
21962       steps
21963           Set number of steps for Gaussian approximation. Default is 1.
21964
21965       planes
21966           Set which planes to filter. By default all planes are filtered.
21967
21968       sigmaV
21969           Set vertical sigma, if negative it will be same as "sigma".
21970           Default is -1.
21971
21972       Commands
21973
21974       This filter supports same commands as options.  The command accepts the
21975       same syntax of the corresponding option.
21976
21977       If the specified expression is not valid, it is kept at its current
21978       value.
21979
21980   geq
21981       Apply generic equation to each pixel.
21982
21983       The filter accepts the following options:
21984
21985       lum_expr, lum
21986           Set the luminance expression.
21987
21988       cb_expr, cb
21989           Set the chrominance blue expression.
21990
21991       cr_expr, cr
21992           Set the chrominance red expression.
21993
21994       alpha_expr, a
21995           Set the alpha expression.
21996
21997       red_expr, r
21998           Set the red expression.
21999
22000       green_expr, g
22001           Set the green expression.
22002
22003       blue_expr, b
22004           Set the blue expression.
22005
22006       The colorspace is selected according to the specified options. If one
22007       of the lum_expr, cb_expr, or cr_expr options is specified, the filter
22008       will automatically select a YCbCr colorspace. If one of the red_expr,
22009       green_expr, or blue_expr options is specified, it will select an RGB
22010       colorspace.
22011
22012       If one of the chrominance expression is not defined, it falls back on
22013       the other one. If no alpha expression is specified it will evaluate to
22014       opaque value.  If none of chrominance expressions are specified, they
22015       will evaluate to the luminance expression.
22016
22017       The expressions can use the following variables and functions:
22018
22019       N   The sequential number of the filtered frame, starting from 0.
22020
22021       X
22022       Y   The coordinates of the current sample.
22023
22024       W
22025       H   The width and height of the image.
22026
22027       SW
22028       SH  Width and height scale depending on the currently filtered plane.
22029           It is the ratio between the corresponding luma plane number of
22030           pixels and the current plane ones. E.g. for YUV4:2:0 the values are
22031           "1,1" for the luma plane, and "0.5,0.5" for chroma planes.
22032
22033       T   Time of the current frame, expressed in seconds.
22034
22035       p(x, y)
22036           Return the value of the pixel at location (x,y) of the current
22037           plane.
22038
22039       lum(x, y)
22040           Return the value of the pixel at location (x,y) of the luminance
22041           plane.
22042
22043       cb(x, y)
22044           Return the value of the pixel at location (x,y) of the blue-
22045           difference chroma plane. Return 0 if there is no such plane.
22046
22047       cr(x, y)
22048           Return the value of the pixel at location (x,y) of the red-
22049           difference chroma plane. Return 0 if there is no such plane.
22050
22051       r(x, y)
22052       g(x, y)
22053       b(x, y)
22054           Return the value of the pixel at location (x,y) of the
22055           red/green/blue component. Return 0 if there is no such component.
22056
22057       alpha(x, y)
22058           Return the value of the pixel at location (x,y) of the alpha plane.
22059           Return 0 if there is no such plane.
22060
22061       psum(x,y), lumsum(x, y), cbsum(x,y), crsum(x,y), rsum(x,y), gsum(x,y),
22062       bsum(x,y), alphasum(x,y)
22063           Sum of sample values in the rectangle from (0,0) to (x,y), this
22064           allows obtaining sums of samples within a rectangle. See the
22065           functions without the sum postfix.
22066
22067       interpolation
22068           Set one of interpolation methods:
22069
22070           nearest, n
22071           bilinear, b
22072
22073           Default is bilinear.
22074
22075       For functions, if x and y are outside the area, the value will be
22076       automatically clipped to the closer edge.
22077
22078       Please note that this filter can use multiple threads in which case
22079       each slice will have its own expression state. If you want to use only
22080       a single expression state because your expressions depend on previous
22081       state then you should limit the number of filter threads to 1.
22082
22083       Examples
22084
22085       •   Flip the image horizontally:
22086
22087                   geq=p(W-X\,Y)
22088
22089       •   Generate a bidimensional sine wave, with angle "PI/3" and a
22090           wavelength of 100 pixels:
22091
22092                   geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
22093
22094       •   Generate a fancy enigmatic moving light:
22095
22096                   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
22097
22098       •   Generate a quick emboss effect:
22099
22100                   format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
22101
22102       •   Modify RGB components depending on pixel position:
22103
22104                   geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
22105
22106       •   Create a radial gradient that is the same size as the input (also
22107           see the vignette filter):
22108
22109                   geq=lum=255*gauss((X/W-0.5)*3)*gauss((Y/H-0.5)*3)/gauss(0)/gauss(0),format=gray
22110
22111   gradfun
22112       Fix the banding artifacts that are sometimes introduced into nearly
22113       flat regions by truncation to 8-bit color depth.  Interpolate the
22114       gradients that should go where the bands are, and dither them.
22115
22116       It is designed for playback only.  Do not use it prior to lossy
22117       compression, because compression tends to lose the dither and bring
22118       back the bands.
22119
22120       It accepts the following parameters:
22121
22122       strength
22123           The maximum amount by which the filter will change any one pixel.
22124           This is also the threshold for detecting nearly flat regions.
22125           Acceptable values range from .51 to 64; the default value is 1.2.
22126           Out-of-range values will be clipped to the valid range.
22127
22128       radius
22129           The neighborhood to fit the gradient to. A larger radius makes for
22130           smoother gradients, but also prevents the filter from modifying the
22131           pixels near detailed regions. Acceptable values are 8-32; the
22132           default value is 16. Out-of-range values will be clipped to the
22133           valid range.
22134
22135       Alternatively, the options can be specified as a flat string:
22136       strength[:radius]
22137
22138       Examples
22139
22140       •   Apply the filter with a 3.5 strength and radius of 8:
22141
22142                   gradfun=3.5:8
22143
22144       •   Specify radius, omitting the strength (which will fall-back to the
22145           default value):
22146
22147                   gradfun=radius=8
22148
22149   graphmonitor
22150       Show various filtergraph stats.
22151
22152       With this filter one can debug complete filtergraph.  Especially issues
22153       with links filling with queued frames.
22154
22155       The filter accepts the following options:
22156
22157       size, s
22158           Set video output size. Default is hd720.
22159
22160       opacity, o
22161           Set video opacity. Default is 0.9. Allowed range is from 0 to 1.
22162
22163       mode, m
22164           Set output mode, can be fulll or compact.  In compact mode only
22165           filters with some queued frames have displayed stats.
22166
22167       flags, f
22168           Set flags which enable which stats are shown in video.
22169
22170           Available values for flags are:
22171
22172           queue
22173               Display number of queued frames in each link.
22174
22175           frame_count_in
22176               Display number of frames taken from filter.
22177
22178           frame_count_out
22179               Display number of frames given out from filter.
22180
22181           frame_count_delta
22182               Display delta number of frames between above two values.
22183
22184           pts Display current filtered frame pts.
22185
22186           pts_delta
22187               Display pts delta between current and previous frame.
22188
22189           time
22190               Display current filtered frame time.
22191
22192           time_delta
22193               Display time delta between current and previous frame.
22194
22195           timebase
22196               Display time base for filter link.
22197
22198           format
22199               Display used format for filter link.
22200
22201           size
22202               Display video size or number of audio channels in case of audio
22203               used by filter link.
22204
22205           rate
22206               Display video frame rate or sample rate in case of audio used
22207               by filter link.
22208
22209           eof Display link output status.
22210
22211           sample_count_in
22212               Display number of samples taken from filter.
22213
22214           sample_count_out
22215               Display number of samples given out from filter.
22216
22217           sample_count_delta
22218               Display delta number of samples between above two values.
22219
22220       rate, r
22221           Set upper limit for video rate of output stream, Default value is
22222           25.  This guarantee that output video frame rate will not be higher
22223           than this value.
22224
22225   grayworld
22226       A color constancy filter that applies color correction based on the
22227       grayworld assumption
22228
22229       See:
22230       <https://www.researchgate.net/publication/275213614_A_New_Color_Correction_Method_for_Underwater_Imaging>
22231
22232       The algorithm  uses linear light, so input data should be linearized
22233       beforehand (and possibly correctly tagged).
22234
22235               ffmpeg -i INPUT -vf zscale=transfer=linear,grayworld,zscale=transfer=bt709,format=yuv420p OUTPUT
22236
22237   greyedge
22238       A color constancy variation filter which estimates scene illumination
22239       via grey edge algorithm and corrects the scene colors accordingly.
22240
22241       See: <https://staff.science.uva.nl/th.gevers/pub/GeversTIP07.pdf>
22242
22243       The filter accepts the following options:
22244
22245       difford
22246           The order of differentiation to be applied on the scene. Must be
22247           chosen in the range [0,2] and default value is 1.
22248
22249       minknorm
22250           The Minkowski parameter to be used for calculating the Minkowski
22251           distance. Must be chosen in the range [0,20] and default value is
22252           1. Set to 0 for getting max value instead of calculating Minkowski
22253           distance.
22254
22255       sigma
22256           The standard deviation of Gaussian blur to be applied on the scene.
22257           Must be chosen in the range [0,1024.0] and default value = 1.
22258           floor( sigma * break_off_sigma(3) ) can't be equal to 0 if difford
22259           is greater than 0.
22260
22261       Examples
22262
22263       •   Grey Edge:
22264
22265                   greyedge=difford=1:minknorm=5:sigma=2
22266
22267       •   Max Edge:
22268
22269                   greyedge=difford=1:minknorm=0:sigma=2
22270
22271   guided
22272       Apply guided filter for edge-preserving smoothing, dehazing and so on.
22273
22274       The filter accepts the following options:
22275
22276       radius
22277           Set the box radius in pixels.  Allowed range is 1 to 20. Default is
22278           3.
22279
22280       eps Set regularization parameter (with square).  Allowed range is 0 to
22281           1. Default is 0.01.
22282
22283       mode
22284           Set filter mode. Can be "basic" or "fast".  Default is "basic".
22285
22286       sub Set subsampling ratio for "fast" mode.  Range is 2 to 64. Default
22287           is 4.  No subsampling occurs in "basic" mode.
22288
22289       guidance
22290           Set guidance mode. Can be "off" or "on". Default is "off".  If
22291           "off", single input is required.  If "on", two inputs of the same
22292           resolution and pixel format are required.  The second input serves
22293           as the guidance.
22294
22295       planes
22296           Set planes to filter. Default is first only.
22297
22298       Commands
22299
22300       This filter supports the all above options as commands.
22301
22302       Examples
22303
22304       •   Edge-preserving smoothing with guided filter:
22305
22306                   ffmpeg -i in.png -vf guided out.png
22307
22308       •   Dehazing, structure-transferring filtering, detail enhancement with
22309           guided filter.  For the generation of guidance image, refer to
22310           paper "Guided Image Filtering".  See:
22311           <http://kaiminghe.com/publications/pami12guidedfilter.pdf>.
22312
22313                   ffmpeg -i in.png -i guidance.png -filter_complex guided=guidance=on out.png
22314
22315   haldclut
22316       Apply a Hald CLUT to a video stream.
22317
22318       First input is the video stream to process, and second one is the Hald
22319       CLUT.  The Hald CLUT input can be a simple picture or a complete video
22320       stream.
22321
22322       The filter accepts the following options:
22323
22324       clut
22325           Set which CLUT video frames will be processed from second input
22326           stream, can be first or all. Default is all.
22327
22328       shortest
22329           Force termination when the shortest input terminates. Default is 0.
22330
22331       repeatlast
22332           Continue applying the last CLUT after the end of the stream. A
22333           value of 0 disable the filter after the last frame of the CLUT is
22334           reached.  Default is 1.
22335
22336       "haldclut" also has the same interpolation options as lut3d (both
22337       filters share the same internals).
22338
22339       This filter also supports the framesync options.
22340
22341       More information about the Hald CLUT can be found on Eskil Steenberg's
22342       website (Hald CLUT author) at
22343       <http://www.quelsolaar.com/technology/clut.html>.
22344
22345       Commands
22346
22347       This filter supports the "interp" option as commands.
22348
22349       Workflow examples
22350
22351       Hald CLUT video stream
22352
22353       Generate an identity Hald CLUT stream altered with various effects:
22354
22355               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
22356
22357       Note: make sure you use a lossless codec.
22358
22359       Then use it with "haldclut" to apply it on some random stream:
22360
22361               ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
22362
22363       The Hald CLUT will be applied to the 10 first seconds (duration of
22364       clut.nut), then the latest picture of that CLUT stream will be applied
22365       to the remaining frames of the "mandelbrot" stream.
22366
22367       Hald CLUT with preview
22368
22369       A Hald CLUT is supposed to be a squared image of "Level*Level*Level" by
22370       "Level*Level*Level" pixels. For a given Hald CLUT, FFmpeg will select
22371       the biggest possible square starting at the top left of the picture.
22372       The remaining padding pixels (bottom or right) will be ignored. This
22373       area can be used to add a preview of the Hald CLUT.
22374
22375       Typically, the following generated Hald CLUT will be supported by the
22376       "haldclut" filter:
22377
22378               ffmpeg -f lavfi -i B<haldclutsrc>=8 -vf "
22379                  pad=iw+320 [padded_clut];
22380                  smptebars=s=320x256, split [a][b];
22381                  [padded_clut][a] overlay=W-320:h, curves=color_negative [main];
22382                  [main][b] overlay=W-320" -frames:v 1 clut.png
22383
22384       It contains the original and a preview of the effect of the CLUT: SMPTE
22385       color bars are displayed on the right-top, and below the same color
22386       bars processed by the color changes.
22387
22388       Then, the effect of this Hald CLUT can be visualized with:
22389
22390               ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
22391
22392   hflip
22393       Flip the input video horizontally.
22394
22395       For example, to horizontally flip the input video with ffmpeg:
22396
22397               ffmpeg -i in.avi -vf "hflip" out.avi
22398
22399   histeq
22400       This filter applies a global color histogram equalization on a per-
22401       frame basis.
22402
22403       It can be used to correct video that has a compressed range of pixel
22404       intensities.  The filter redistributes the pixel intensities to
22405       equalize their distribution across the intensity range. It may be
22406       viewed as an "automatically adjusting contrast filter". This filter is
22407       useful only for correcting degraded or poorly captured source video.
22408
22409       The filter accepts the following options:
22410
22411       strength
22412           Determine the amount of equalization to be applied.  As the
22413           strength is reduced, the distribution of pixel intensities more-
22414           and-more approaches that of the input frame. The value must be a
22415           float number in the range [0,1] and defaults to 0.200.
22416
22417       intensity
22418           Set the maximum intensity that can generated and scale the output
22419           values appropriately.  The strength should be set as desired and
22420           then the intensity can be limited if needed to avoid washing-out.
22421           The value must be a float number in the range [0,1] and defaults to
22422           0.210.
22423
22424       antibanding
22425           Set the antibanding level. If enabled the filter will randomly vary
22426           the luminance of output pixels by a small amount to avoid banding
22427           of the histogram. Possible values are "none", "weak" or "strong".
22428           It defaults to "none".
22429
22430   histogram
22431       Compute and draw a color distribution histogram for the input video.
22432
22433       The computed histogram is a representation of the color component
22434       distribution in an image.
22435
22436       Standard histogram displays the color components distribution in an
22437       image.  Displays color graph for each color component. Shows
22438       distribution of the Y, U, V, A or R, G, B components, depending on
22439       input format, in the current frame. Below each graph a color component
22440       scale meter is shown.
22441
22442       The filter accepts the following options:
22443
22444       level_height
22445           Set height of level. Default value is 200.  Allowed range is [50,
22446           2048].
22447
22448       scale_height
22449           Set height of color scale. Default value is 12.  Allowed range is
22450           [0, 40].
22451
22452       display_mode
22453           Set display mode.  It accepts the following values:
22454
22455           stack
22456               Per color component graphs are placed below each other.
22457
22458           parade
22459               Per color component graphs are placed side by side.
22460
22461           overlay
22462               Presents information identical to that in the "parade", except
22463               that the graphs representing color components are superimposed
22464               directly over one another.
22465
22466           Default is "stack".
22467
22468       levels_mode
22469           Set mode. Can be either "linear", or "logarithmic".  Default is
22470           "linear".
22471
22472       components
22473           Set what color components to display.  Default is 7.
22474
22475       fgopacity
22476           Set foreground opacity. Default is 0.7.
22477
22478       bgopacity
22479           Set background opacity. Default is 0.5.
22480
22481       colors_mode
22482           Set colors mode.  It accepts the following values:
22483
22484           whiteonblack
22485           blackonwhite
22486           whiteongray
22487           blackongray
22488           coloronblack
22489           coloronwhite
22490           colorongray
22491           blackoncolor
22492           whiteoncolor
22493           grayoncolor
22494
22495           Default is "whiteonblack".
22496
22497       Examples
22498
22499       •   Calculate and draw histogram:
22500
22501                   ffplay -i input -vf histogram
22502
22503   hqdn3d
22504       This is a high precision/quality 3d denoise filter. It aims to reduce
22505       image noise, producing smooth images and making still images really
22506       still. It should enhance compressibility.
22507
22508       It accepts the following optional parameters:
22509
22510       luma_spatial
22511           A non-negative floating point number which specifies spatial luma
22512           strength.  It defaults to 4.0.
22513
22514       chroma_spatial
22515           A non-negative floating point number which specifies spatial chroma
22516           strength.  It defaults to 3.0*luma_spatial/4.0.
22517
22518       luma_tmp
22519           A floating point number which specifies luma temporal strength. It
22520           defaults to 6.0*luma_spatial/4.0.
22521
22522       chroma_tmp
22523           A floating point number which specifies chroma temporal strength.
22524           It defaults to luma_tmp*chroma_spatial/luma_spatial.
22525
22526       Commands
22527
22528       This filter supports same commands as options.  The command accepts the
22529       same syntax of the corresponding option.
22530
22531       If the specified expression is not valid, it is kept at its current
22532       value.
22533
22534   hwdownload
22535       Download hardware frames to system memory.
22536
22537       The input must be in hardware frames, and the output a non-hardware
22538       format.  Not all formats will be supported on the output - it may be
22539       necessary to insert an additional format filter immediately following
22540       in the graph to get the output in a supported format.
22541
22542   hwmap
22543       Map hardware frames to system memory or to another device.
22544
22545       This filter has several different modes of operation; which one is used
22546       depends on the input and output formats:
22547
22548       •   Hardware frame input, normal frame output
22549
22550           Map the input frames to system memory and pass them to the output.
22551           If the original hardware frame is later required (for example,
22552           after overlaying something else on part of it), the hwmap filter
22553           can be used again in the next mode to retrieve it.
22554
22555       •   Normal frame input, hardware frame output
22556
22557           If the input is actually a software-mapped hardware frame, then
22558           unmap it - that is, return the original hardware frame.
22559
22560           Otherwise, a device must be provided.  Create new hardware surfaces
22561           on that device for the output, then map them back to the software
22562           format at the input and give those frames to the preceding filter.
22563           This will then act like the hwupload filter, but may be able to
22564           avoid an additional copy when the input is already in a compatible
22565           format.
22566
22567       •   Hardware frame input and output
22568
22569           A device must be supplied for the output, either directly or with
22570           the derive_device option.  The input and output devices must be of
22571           different types and compatible - the exact meaning of this is
22572           system-dependent, but typically it means that they must refer to
22573           the same underlying hardware context (for example, refer to the
22574           same graphics card).
22575
22576           If the input frames were originally created on the output device,
22577           then unmap to retrieve the original frames.
22578
22579           Otherwise, map the frames to the output device - create new
22580           hardware frames on the output corresponding to the frames on the
22581           input.
22582
22583       The following additional parameters are accepted:
22584
22585       mode
22586           Set the frame mapping mode.  Some combination of:
22587
22588           read
22589               The mapped frame should be readable.
22590
22591           write
22592               The mapped frame should be writeable.
22593
22594           overwrite
22595               The mapping will always overwrite the entire frame.
22596
22597               This may improve performance in some cases, as the original
22598               contents of the frame need not be loaded.
22599
22600           direct
22601               The mapping must not involve any copying.
22602
22603               Indirect mappings to copies of frames are created in some cases
22604               where either direct mapping is not possible or it would have
22605               unexpected properties.  Setting this flag ensures that the
22606               mapping is direct and will fail if that is not possible.
22607
22608           Defaults to read+write if not specified.
22609
22610       derive_device type
22611           Rather than using the device supplied at initialisation, instead
22612           derive a new device of type type from the device the input frames
22613           exist on.
22614
22615       reverse
22616           In a hardware to hardware mapping, map in reverse - create frames
22617           in the sink and map them back to the source.  This may be necessary
22618           in some cases where a mapping in one direction is required but only
22619           the opposite direction is supported by the devices being used.
22620
22621           This option is dangerous - it may break the preceding filter in
22622           undefined ways if there are any additional constraints on that
22623           filter's output.  Do not use it without fully understanding the
22624           implications of its use.
22625
22626   hwupload
22627       Upload system memory frames to hardware surfaces.
22628
22629       The device to upload to must be supplied when the filter is
22630       initialised.  If using ffmpeg, select the appropriate device with the
22631       -filter_hw_device option or with the derive_device option.  The input
22632       and output devices must be of different types and compatible - the
22633       exact meaning of this is system-dependent, but typically it means that
22634       they must refer to the same underlying hardware context (for example,
22635       refer to the same graphics card).
22636
22637       The following additional parameters are accepted:
22638
22639       derive_device type
22640           Rather than using the device supplied at initialisation, instead
22641           derive a new device of type type from the device the input frames
22642           exist on.
22643
22644   hwupload_cuda
22645       Upload system memory frames to a CUDA device.
22646
22647       It accepts the following optional parameters:
22648
22649       device
22650           The number of the CUDA device to use
22651
22652   hqx
22653       Apply a high-quality magnification filter designed for pixel art. This
22654       filter was originally created by Maxim Stepin.
22655
22656       It accepts the following option:
22657
22658       n   Set the scaling dimension: 2 for "hq2x", 3 for "hq3x" and 4 for
22659           "hq4x".  Default is 3.
22660
22661   hstack
22662       Stack input videos horizontally.
22663
22664       All streams must be of same pixel format and of same height.
22665
22666       Note that this filter is faster than using overlay and pad filter to
22667       create same output.
22668
22669       The filter accepts the following option:
22670
22671       inputs
22672           Set number of input streams. Default is 2.
22673
22674       shortest
22675           If set to 1, force the output to terminate when the shortest input
22676           terminates. Default value is 0.
22677
22678   hsvhold
22679       Turns a certain HSV range into gray values.
22680
22681       This filter measures color difference between set HSV color in options
22682       and ones measured in video stream. Depending on options, output colors
22683       can be changed to be gray or not.
22684
22685       The filter accepts the following options:
22686
22687       hue Set the hue value which will be used in color difference
22688           calculation.  Allowed range is from -360 to 360. Default value is
22689           0.
22690
22691       sat Set the saturation value which will be used in color difference
22692           calculation.  Allowed range is from -1 to 1. Default value is 0.
22693
22694       val Set the value which will be used in color difference calculation.
22695           Allowed range is from -1 to 1. Default value is 0.
22696
22697       similarity
22698           Set similarity percentage with the key color.  Allowed range is
22699           from 0 to 1. Default value is 0.01.
22700
22701           0.00001 matches only the exact key color, while 1.0 matches
22702           everything.
22703
22704       blend
22705           Blend percentage.  Allowed range is from 0 to 1. Default value is
22706           0.
22707
22708           0.0 makes pixels either fully gray, or not gray at all.
22709
22710           Higher values result in more gray pixels, with a higher gray pixel
22711           the more similar the pixels color is to the key color.
22712
22713   hsvkey
22714       Turns a certain HSV range into transparency.
22715
22716       This filter measures color difference between set HSV color in options
22717       and ones measured in video stream. Depending on options, output colors
22718       can be changed to transparent by adding alpha channel.
22719
22720       The filter accepts the following options:
22721
22722       hue Set the hue value which will be used in color difference
22723           calculation.  Allowed range is from -360 to 360. Default value is
22724           0.
22725
22726       sat Set the saturation value which will be used in color difference
22727           calculation.  Allowed range is from -1 to 1. Default value is 0.
22728
22729       val Set the value which will be used in color difference calculation.
22730           Allowed range is from -1 to 1. Default value is 0.
22731
22732       similarity
22733           Set similarity percentage with the key color.  Allowed range is
22734           from 0 to 1. Default value is 0.01.
22735
22736           0.00001 matches only the exact key color, while 1.0 matches
22737           everything.
22738
22739       blend
22740           Blend percentage.  Allowed range is from 0 to 1. Default value is
22741           0.
22742
22743           0.0 makes pixels either fully transparent, or not transparent at
22744           all.
22745
22746           Higher values result in semi-transparent pixels, with a higher
22747           transparency the more similar the pixels color is to the key color.
22748
22749   hue
22750       Modify the hue and/or the saturation of the input.
22751
22752       It accepts the following parameters:
22753
22754       h   Specify the hue angle as a number of degrees. It accepts an
22755           expression, and defaults to "0".
22756
22757       s   Specify the saturation in the [-10,10] range. It accepts an
22758           expression and defaults to "1".
22759
22760       H   Specify the hue angle as a number of radians. It accepts an
22761           expression, and defaults to "0".
22762
22763       b   Specify the brightness in the [-10,10] range. It accepts an
22764           expression and defaults to "0".
22765
22766       h and H are mutually exclusive, and can't be specified at the same
22767       time.
22768
22769       The b, h, H and s option values are expressions containing the
22770       following constants:
22771
22772       n   frame count of the input frame starting from 0
22773
22774       pts presentation timestamp of the input frame expressed in time base
22775           units
22776
22777       r   frame rate of the input video, NAN if the input frame rate is
22778           unknown
22779
22780       t   timestamp expressed in seconds, NAN if the input timestamp is
22781           unknown
22782
22783       tb  time base of the input video
22784
22785       Examples
22786
22787       •   Set the hue to 90 degrees and the saturation to 1.0:
22788
22789                   hue=h=90:s=1
22790
22791       •   Same command but expressing the hue in radians:
22792
22793                   hue=H=PI/2:s=1
22794
22795       •   Rotate hue and make the saturation swing between 0 and 2 over a
22796           period of 1 second:
22797
22798                   hue="H=2*PI*t: s=sin(2*PI*t)+1"
22799
22800       •   Apply a 3 seconds saturation fade-in effect starting at 0:
22801
22802                   hue="s=min(t/3\,1)"
22803
22804           The general fade-in expression can be written as:
22805
22806                   hue="s=min(0\, max((t-START)/DURATION\, 1))"
22807
22808       •   Apply a 3 seconds saturation fade-out effect starting at 5 seconds:
22809
22810                   hue="s=max(0\, min(1\, (8-t)/3))"
22811
22812           The general fade-out expression can be written as:
22813
22814                   hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
22815
22816       Commands
22817
22818       This filter supports the following commands:
22819
22820       b
22821       s
22822       h
22823       H   Modify the hue and/or the saturation and/or brightness of the input
22824           video.  The command accepts the same syntax of the corresponding
22825           option.
22826
22827           If the specified expression is not valid, it is kept at its current
22828           value.
22829
22830   huesaturation
22831       Apply hue-saturation-intensity adjustments to input video stream.
22832
22833       This filter operates in RGB colorspace.
22834
22835       This filter accepts the following options:
22836
22837       hue Set the hue shift in degrees to apply. Default is 0.  Allowed range
22838           is from -180 to 180.
22839
22840       saturation
22841           Set the saturation shift. Default is 0.  Allowed range is from -1
22842           to 1.
22843
22844       intensity
22845           Set the intensity shift. Default is 0.  Allowed range is from -1 to
22846           1.
22847
22848       colors
22849           Set which primary and complementary colors are going to be
22850           adjusted.  This options is set by providing one or multiple values.
22851           This can select multiple colors at once. By default all colors are
22852           selected.
22853
22854           r   Adjust reds.
22855
22856           y   Adjust yellows.
22857
22858           g   Adjust greens.
22859
22860           c   Adjust cyans.
22861
22862           b   Adjust blues.
22863
22864           m   Adjust magentas.
22865
22866           a   Adjust all colors.
22867
22868       strength
22869           Set strength of filtering. Allowed range is from 0 to 100.  Default
22870           value is 1.
22871
22872       rw, gw, bw
22873           Set weight for each RGB component. Allowed range is from 0 to 1.
22874           By default is set to 0.333, 0.334, 0.333.  Those options are used
22875           in saturation and lightess processing.
22876
22877       lightness
22878           Set preserving lightness, by default is disabled.  Adjusting hues
22879           can change lightness from original RGB triplet, with this option
22880           enabled lightness is kept at same value.
22881
22882   hysteresis
22883       Grow first stream into second stream by connecting components.  This
22884       makes it possible to build more robust edge masks.
22885
22886       This filter accepts the following options:
22887
22888       planes
22889           Set which planes will be processed as bitmap, unprocessed planes
22890           will be copied from first stream.  By default value 0xf, all planes
22891           will be processed.
22892
22893       threshold
22894           Set threshold which is used in filtering. If pixel component value
22895           is higher than this value filter algorithm for connecting
22896           components is activated.  By default value is 0.
22897
22898       The "hysteresis" filter also supports the framesync options.
22899
22900   iccdetect
22901       Detect the colorspace  from an embedded ICC profile (if present), and
22902       update the frame's tags accordingly.
22903
22904       This filter accepts the following options:
22905
22906       force
22907           If true, the frame's existing colorspace tags will always be
22908           overridden by values detected from an ICC profile. Otherwise, they
22909           will only be assigned if they contain "unknown". Enabled by
22910           default.
22911
22912   iccgen
22913       Generate ICC profiles and attach them to frames.
22914
22915       This filter accepts the following options:
22916
22917       color_primaries
22918       color_trc
22919           Configure the colorspace that the ICC profile will be generated
22920           for. The default value of "auto" infers the value from the input
22921           frame's metadata, defaulting to BT.709/sRGB as appropriate.
22922
22923           See the setparams filter for a list of possible values, but note
22924           that "unknown" are not valid values for this filter.
22925
22926       force
22927           If true, an ICC profile will be generated even if it would
22928           overwrite an already existing ICC profile. Disabled by default.
22929
22930   identity
22931       Obtain the identity score between two input videos.
22932
22933       This filter takes two input videos.
22934
22935       Both input videos must have the same resolution and pixel format for
22936       this filter to work correctly. Also it assumes that both inputs have
22937       the same number of frames, which are compared one by one.
22938
22939       The obtained per component, average, min and max identity score is
22940       printed through the logging system.
22941
22942       The filter stores the calculated identity scores of each frame in frame
22943       metadata.
22944
22945       This filter also supports the framesync options.
22946
22947       In the below example the input file main.mpg being processed is
22948       compared with the reference file ref.mpg.
22949
22950               ffmpeg -i main.mpg -i ref.mpg -lavfi identity -f null -
22951
22952   idet
22953       Detect video interlacing type.
22954
22955       This filter tries to detect if the input frames are interlaced,
22956       progressive, top or bottom field first. It will also try to detect
22957       fields that are repeated between adjacent frames (a sign of telecine).
22958
22959       Single frame detection considers only immediately adjacent frames when
22960       classifying each frame.  Multiple frame detection incorporates the
22961       classification history of previous frames.
22962
22963       The filter will log these metadata values:
22964
22965       single.current_frame
22966           Detected type of current frame using single-frame detection. One
22967           of: ``tff'' (top field first), ``bff'' (bottom field first),
22968           ``progressive'', or ``undetermined''
22969
22970       single.tff
22971           Cumulative number of frames detected as top field first using
22972           single-frame detection.
22973
22974       multiple.tff
22975           Cumulative number of frames detected as top field first using
22976           multiple-frame detection.
22977
22978       single.bff
22979           Cumulative number of frames detected as bottom field first using
22980           single-frame detection.
22981
22982       multiple.current_frame
22983           Detected type of current frame using multiple-frame detection. One
22984           of: ``tff'' (top field first), ``bff'' (bottom field first),
22985           ``progressive'', or ``undetermined''
22986
22987       multiple.bff
22988           Cumulative number of frames detected as bottom field first using
22989           multiple-frame detection.
22990
22991       single.progressive
22992           Cumulative number of frames detected as progressive using single-
22993           frame detection.
22994
22995       multiple.progressive
22996           Cumulative number of frames detected as progressive using multiple-
22997           frame detection.
22998
22999       single.undetermined
23000           Cumulative number of frames that could not be classified using
23001           single-frame detection.
23002
23003       multiple.undetermined
23004           Cumulative number of frames that could not be classified using
23005           multiple-frame detection.
23006
23007       repeated.current_frame
23008           Which field in the current frame is repeated from the last. One of
23009           ``neither'', ``top'', or ``bottom''.
23010
23011       repeated.neither
23012           Cumulative number of frames with no repeated field.
23013
23014       repeated.top
23015           Cumulative number of frames with the top field repeated from the
23016           previous frame's top field.
23017
23018       repeated.bottom
23019           Cumulative number of frames with the bottom field repeated from the
23020           previous frame's bottom field.
23021
23022       The filter accepts the following options:
23023
23024       intl_thres
23025           Set interlacing threshold.
23026
23027       prog_thres
23028           Set progressive threshold.
23029
23030       rep_thres
23031           Threshold for repeated field detection.
23032
23033       half_life
23034           Number of frames after which a given frame's contribution to the
23035           statistics is halved (i.e., it contributes only 0.5 to its
23036           classification). The default of 0 means that all frames seen are
23037           given full weight of 1.0 forever.
23038
23039       analyze_interlaced_flag
23040           When this is not 0 then idet will use the specified number of
23041           frames to determine if the interlaced flag is accurate, it will not
23042           count undetermined frames.  If the flag is found to be accurate it
23043           will be used without any further computations, if it is found to be
23044           inaccurate it will be cleared without any further computations.
23045           This allows inserting the idet filter as a low computational method
23046           to clean up the interlaced flag
23047
23048   il
23049       Deinterleave or interleave fields.
23050
23051       This filter allows one to process interlaced images fields without
23052       deinterlacing them. Deinterleaving splits the input frame into 2 fields
23053       (so called half pictures). Odd lines are moved to the top half of the
23054       output image, even lines to the bottom half.  You can process (filter)
23055       them independently and then re-interleave them.
23056
23057       The filter accepts the following options:
23058
23059       luma_mode, l
23060       chroma_mode, c
23061       alpha_mode, a
23062           Available values for luma_mode, chroma_mode and alpha_mode are:
23063
23064           none
23065               Do nothing.
23066
23067           deinterleave, d
23068               Deinterleave fields, placing one above the other.
23069
23070           interleave, i
23071               Interleave fields. Reverse the effect of deinterleaving.
23072
23073           Default value is "none".
23074
23075       luma_swap, ls
23076       chroma_swap, cs
23077       alpha_swap, as
23078           Swap luma/chroma/alpha fields. Exchange even & odd lines. Default
23079           value is 0.
23080
23081       Commands
23082
23083       This filter supports the all above options as commands.
23084
23085   inflate
23086       Apply inflate effect to the video.
23087
23088       This filter replaces the pixel by the local(3x3) average by taking into
23089       account only values higher than the pixel.
23090
23091       It accepts the following options:
23092
23093       threshold0
23094       threshold1
23095       threshold2
23096       threshold3
23097           Limit the maximum change for each plane, default is 65535.  If 0,
23098           plane will remain unchanged.
23099
23100       Commands
23101
23102       This filter supports the all above options as commands.
23103
23104   interlace
23105       Simple interlacing filter from progressive contents. This interleaves
23106       upper (or lower) lines from odd frames with lower (or upper) lines from
23107       even frames, halving the frame rate and preserving image height.
23108
23109                  Original        Original             New Frame
23110                  Frame 'j'      Frame 'j+1'             (tff)
23111                 ==========      ===========       ==================
23112                   Line 0  -------------------->    Frame 'j' Line 0
23113                   Line 1          Line 1  ---->   Frame 'j+1' Line 1
23114                   Line 2 --------------------->    Frame 'j' Line 2
23115                   Line 3          Line 3  ---->   Frame 'j+1' Line 3
23116                    ...             ...                   ...
23117               New Frame + 1 will be generated by Frame 'j+2' and Frame 'j+3' and so on
23118
23119       It accepts the following optional parameters:
23120
23121       scan
23122           This determines whether the interlaced frame is taken from the even
23123           (tff - default) or odd (bff) lines of the progressive frame.
23124
23125       lowpass
23126           Vertical lowpass filter to avoid twitter interlacing and reduce
23127           moire patterns.
23128
23129           0, off
23130               Disable vertical lowpass filter
23131
23132           1, linear
23133               Enable linear filter (default)
23134
23135           2, complex
23136               Enable complex filter. This will slightly less reduce twitter
23137               and moire but better retain detail and subjective sharpness
23138               impression.
23139
23140   kerndeint
23141       Deinterlace input video by applying Donald Graft's adaptive kernel
23142       deinterling. Work on interlaced parts of a video to produce progressive
23143       frames.
23144
23145       The description of the accepted parameters follows.
23146
23147       thresh
23148           Set the threshold which affects the filter's tolerance when
23149           determining if a pixel line must be processed. It must be an
23150           integer in the range [0,255] and defaults to 10. A value of 0 will
23151           result in applying the process on every pixels.
23152
23153       map Paint pixels exceeding the threshold value to white if set to 1.
23154           Default is 0.
23155
23156       order
23157           Set the fields order. Swap fields if set to 1, leave fields alone
23158           if 0. Default is 0.
23159
23160       sharp
23161           Enable additional sharpening if set to 1. Default is 0.
23162
23163       twoway
23164           Enable twoway sharpening if set to 1. Default is 0.
23165
23166       Examples
23167
23168       •   Apply default values:
23169
23170                   kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
23171
23172       •   Enable additional sharpening:
23173
23174                   kerndeint=sharp=1
23175
23176       •   Paint processed pixels in white:
23177
23178                   kerndeint=map=1
23179
23180   kirsch
23181       Apply kirsch operator to input video stream.
23182
23183       The filter accepts the following option:
23184
23185       planes
23186           Set which planes will be processed, unprocessed planes will be
23187           copied.  By default value 0xf, all planes will be processed.
23188
23189       scale
23190           Set value which will be multiplied with filtered result.
23191
23192       delta
23193           Set value which will be added to filtered result.
23194
23195       Commands
23196
23197       This filter supports the all above options as commands.
23198
23199   lagfun
23200       Slowly update darker pixels.
23201
23202       This filter makes short flashes of light appear longer.  This filter
23203       accepts the following options:
23204
23205       decay
23206           Set factor for decaying. Default is .95. Allowed range is from 0 to
23207           1.
23208
23209       planes
23210           Set which planes to filter. Default is all. Allowed range is from 0
23211           to 15.
23212
23213       Commands
23214
23215       This filter supports the all above options as commands.
23216
23217   lenscorrection
23218       Correct radial lens distortion
23219
23220       This filter can be used to correct for radial distortion as can result
23221       from the use of wide angle lenses, and thereby re-rectify the image. To
23222       find the right parameters one can use tools available for example as
23223       part of opencv or simply trial-and-error.  To use opencv use the
23224       calibration sample (under samples/cpp) from the opencv sources and
23225       extract the k1 and k2 coefficients from the resulting matrix.
23226
23227       Note that effectively the same filter is available in the open-source
23228       tools Krita and Digikam from the KDE project.
23229
23230       In contrast to the vignette filter, which can also be used to
23231       compensate lens errors, this filter corrects the distortion of the
23232       image, whereas vignette corrects the brightness distribution, so you
23233       may want to use both filters together in certain cases, though you will
23234       have to take care of ordering, i.e. whether vignetting should be
23235       applied before or after lens correction.
23236
23237       Options
23238
23239       The filter accepts the following options:
23240
23241       cx  Relative x-coordinate of the focal point of the image, and thereby
23242           the center of the distortion. This value has a range [0,1] and is
23243           expressed as fractions of the image width. Default is 0.5.
23244
23245       cy  Relative y-coordinate of the focal point of the image, and thereby
23246           the center of the distortion. This value has a range [0,1] and is
23247           expressed as fractions of the image height. Default is 0.5.
23248
23249       k1  Coefficient of the quadratic correction term. This value has a
23250           range [-1,1]. 0 means no correction. Default is 0.
23251
23252       k2  Coefficient of the double quadratic correction term. This value has
23253           a range [-1,1].  0 means no correction. Default is 0.
23254
23255       i   Set interpolation type. Can be "nearest" or "bilinear".  Default is
23256           "nearest".
23257
23258       fc  Specify the color of the unmapped pixels. For the syntax of this
23259           option, check the "Color" section in the ffmpeg-utils manual.
23260           Default color is "black@0".
23261
23262       The formula that generates the correction is:
23263
23264       r_src = r_tgt * (1 + k1 * (r_tgt / r_0)^2 + k2 * (r_tgt / r_0)^4)
23265
23266       where r_0 is halve of the image diagonal and r_src and r_tgt are the
23267       distances from the focal point in the source and target images,
23268       respectively.
23269
23270       Commands
23271
23272       This filter supports the all above options as commands.
23273
23274   lensfun
23275       Apply lens correction via the lensfun library
23276       (<http://lensfun.sourceforge.net/>).
23277
23278       The "lensfun" filter requires the camera make, camera model, and lens
23279       model to apply the lens correction. The filter will load the lensfun
23280       database and query it to find the corresponding camera and lens entries
23281       in the database. As long as these entries can be found with the given
23282       options, the filter can perform corrections on frames. Note that
23283       incomplete strings will result in the filter choosing the best match
23284       with the given options, and the filter will output the chosen camera
23285       and lens models (logged with level "info"). You must provide the make,
23286       camera model, and lens model as they are required.
23287
23288       To obtain a list of available makes and models, leave out one or both
23289       of "make" and "model" options. The filter will send the full list to
23290       the log with level "INFO".  The first column is the make and the second
23291       column is the model.  To obtain a list of available lenses, set any
23292       values for make and model and leave out the "lens_model" option. The
23293       filter will send the full list of lenses in the log with level "INFO".
23294       The ffmpeg tool will exit after the list is printed.
23295
23296       The filter accepts the following options:
23297
23298       make
23299           The make of the camera (for example, "Canon"). This option is
23300           required.
23301
23302       model
23303           The model of the camera (for example, "Canon EOS 100D"). This
23304           option is required.
23305
23306       lens_model
23307           The model of the lens (for example, "Canon EF-S 18-55mm f/3.5-5.6
23308           IS STM"). This option is required.
23309
23310       db_path
23311           The full path to the lens database folder. If not set, the filter
23312           will attempt to load the database from the install path when the
23313           library was built. Default is unset.
23314
23315       mode
23316           The type of correction to apply. The following values are valid
23317           options:
23318
23319           vignetting
23320               Enables fixing lens vignetting.
23321
23322           geometry
23323               Enables fixing lens geometry. This is the default.
23324
23325           subpixel
23326               Enables fixing chromatic aberrations.
23327
23328           vig_geo
23329               Enables fixing lens vignetting and lens geometry.
23330
23331           vig_subpixel
23332               Enables fixing lens vignetting and chromatic aberrations.
23333
23334           distortion
23335               Enables fixing both lens geometry and chromatic aberrations.
23336
23337           all Enables all possible corrections.
23338
23339       focal_length
23340           The focal length of the image/video (zoom; expected constant for
23341           video). For example, a 18--55mm lens has focal length range of
23342           [18--55], so a value in that range should be chosen when using that
23343           lens. Default 18.
23344
23345       aperture
23346           The aperture of the image/video (expected constant for video). Note
23347           that aperture is only used for vignetting correction. Default 3.5.
23348
23349       focus_distance
23350           The focus distance of the image/video (expected constant for
23351           video). Note that focus distance is only used for vignetting and
23352           only slightly affects the vignetting correction process. If
23353           unknown, leave it at the default value (which is 1000).
23354
23355       scale
23356           The scale factor which is applied after transformation. After
23357           correction the video is no longer necessarily rectangular. This
23358           parameter controls how much of the resulting image is visible. The
23359           value 0 means that a value will be chosen automatically such that
23360           there is little or no unmapped area in the output image. 1.0 means
23361           that no additional scaling is done. Lower values may result in more
23362           of the corrected image being visible, while higher values may avoid
23363           unmapped areas in the output.
23364
23365       target_geometry
23366           The target geometry of the output image/video. The following values
23367           are valid options:
23368
23369           rectilinear (default)
23370           fisheye
23371           panoramic
23372           equirectangular
23373           fisheye_orthographic
23374           fisheye_stereographic
23375           fisheye_equisolid
23376           fisheye_thoby
23377       reverse
23378           Apply the reverse of image correction (instead of correcting
23379           distortion, apply it).
23380
23381       interpolation
23382           The type of interpolation used when correcting distortion. The
23383           following values are valid options:
23384
23385           nearest
23386           linear (default)
23387           lanczos
23388
23389       Examples
23390
23391       •   Apply lens correction with make "Canon", camera model "Canon EOS
23392           100D", and lens model "Canon EF-S 18-55mm f/3.5-5.6 IS STM" with
23393           focal length of "18" and aperture of "8.0".
23394
23395                   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
23396
23397       •   Apply the same as before, but only for the first 5 seconds of
23398           video.
23399
23400                   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
23401
23402   libplacebo
23403       Flexible GPU-accelerated processing filter based on libplacebo
23404       (<https://code.videolan.org/videolan/libplacebo>). Note that this
23405       filter currently only accepts Vulkan input frames.
23406
23407       Options
23408
23409       The options for this filter are divided into the following sections:
23410
23411       Output mode
23412
23413       These options control the overall output mode. By default, libplacebo
23414       will try to preserve the source colorimetry and size as best as it can,
23415       but it will apply any embedded film grain, dolby vision metadata or
23416       anamorphic SAR present in source frames.
23417
23418       w
23419       h   Set the output video dimension expression. Default value is the
23420           input dimension.
23421
23422           Allows for the same expressions as the scale filter.
23423
23424       format
23425           Set the output format override. If unset (the default), frames will
23426           be output in the same format as the respective input frames.
23427           Otherwise, format conversion will be performed.
23428
23429       force_original_aspect_ratio
23430       force_divisible_by
23431           Work the same as the identical scale filter options.
23432
23433       normalize_sar
23434           If enabled, output frames will always have a pixel aspect ratio of
23435           1:1. This will introduce padding/cropping as necessary. If disabled
23436           (the default), any aspect ratio mismatches, including those from
23437           e.g. anamorphic video sources, are forwarded to the output pixel
23438           aspect ratio.
23439
23440       pad_crop_ratio
23441           Specifies a ratio (between 0.0 and 1.0) between padding and
23442           cropping when the input aspect ratio does not match the output
23443           aspect ratio and normalize_sar is in effect. The default of 0.0
23444           always pads the content with black borders, while a value of 1.0
23445           always crops off parts of the content. Intermediate values are
23446           possible, leading to a mix of the two approaches.
23447
23448       colorspace
23449       color_primaries
23450       color_trc
23451       range
23452           Configure the colorspace that output frames will be delivered in.
23453           The default value of "auto" outputs frames in the same format as
23454           the input frames, leading to no change. For any other value,
23455           conversion will be performed.
23456
23457           See the setparams filter for a list of possible values.
23458
23459       apply_filmgrain
23460           Apply film grain (e.g. AV1 or H.274) if present in source frames,
23461           and strip it from the output. Enabled by default.
23462
23463       apply_dolbyvision
23464           Apply Dolby Vision RPU metadata if present in source frames, and
23465           strip it from the output. Enabled by default. Note that Dolby
23466           Vision will always output BT.2020+PQ, overriding the usual input
23467           frame metadata. These will also be picked as the values of "auto"
23468           for the respective frame output options.
23469
23470       Scaling
23471
23472       The options in this section control how libplacebo performs upscaling
23473       and (if necessary) downscaling. Note that libplacebo will always
23474       internally operate on 4:4:4 content, so any sub-sampled chroma formats
23475       such as "yuv420p" will necessarily be upsampled and downsampled as part
23476       of the rendering process. That means scaling might be in effect even if
23477       the source and destination resolution are the same.
23478
23479       upscaler
23480       downscaler
23481           Configure the filter kernel used for upscaling and downscaling. The
23482           respective defaults are "spline36" and "mitchell". For a full list
23483           of possible values, pass "help" to these options. The most
23484           important values are:
23485
23486           none
23487               Forces the use of built-in GPU texture sampling (typically
23488               bilinear). Extremely fast but poor quality, especially when
23489               downscaling.
23490
23491           bilinear
23492               Bilinear interpolation. Can generally be done for free on GPUs,
23493               except when doing so would lead to aliasing. Fast and low
23494               quality.
23495
23496           nearest
23497               Nearest-neighbour interpolation. Sharp but highly aliasing.
23498
23499           oversample
23500               Algorithm that looks visually similar to nearest-neighbour
23501               interpolation but tries to preserve pixel aspect ratio. Good
23502               for pixel art, since it results in minimal distortion of the
23503               artistic appearance.
23504
23505           lanczos
23506               Standard sinc-sinc interpolation kernel.
23507
23508           spline36
23509               Cubic spline approximation of lanczos. No difference in
23510               performance, but has very slightly less ringing.
23511
23512           ewa_lanczos
23513               Elliptically weighted average version of lanczos, based on a
23514               jinc-sinc kernel.  This is also popularly referred to as just
23515               "Jinc scaling". Slow but very high quality.
23516
23517           gaussian
23518               Gaussian kernel. Has certain ideal mathematical properties, but
23519               subjectively very blurry.
23520
23521           mitchell
23522               Cubic BC spline with parameters recommended by Mitchell and
23523               Netravali. Very little ringing.
23524
23525       lut_entries
23526           Configures the size of scaler LUTs, ranging from 1 to 256. The
23527           default of 0 will pick libplacebo's internal default, typically 64.
23528
23529       antiringing
23530           Enables anti-ringing (for non-EWA filters). The value (between 0.0
23531           and 1.0) configures the strength of the anti-ringing algorithm. May
23532           increase aliasing if set too high. Disabled by default.
23533
23534       sigmoid
23535           Enable sigmoidal compression during upscaling. Reduces ringing
23536           slightly.  Enabled by default.
23537
23538       Debanding
23539
23540       Libplacebo comes with a built-in debanding filter that is good at
23541       counteracting many common sources of banding and blocking. Turning this
23542       on is highly recommended whenever quality is desired.
23543
23544       deband
23545           Enable (fast) debanding algorithm. Disabled by default.
23546
23547       deband_iterations
23548           Number of deband iterations of the debanding algorithm. Each
23549           iteration is performed with progressively increased radius (and
23550           diminished threshold).  Recommended values are in the range 1 to 4.
23551           Defaults to 1.
23552
23553       deband_threshold
23554           Debanding filter strength. Higher numbers lead to more aggressive
23555           debanding.  Defaults to 4.0.
23556
23557       deband_radius
23558           Debanding filter radius. A higher radius is better for slow
23559           gradients, while a lower radius is better for steep gradients.
23560           Defaults to 16.0.
23561
23562       deband_grain
23563           Amount of extra output grain to add. Helps hide imperfections.
23564           Defaults to 6.0.
23565
23566       Color adjustment
23567
23568       A collection of subjective color controls. Not very rigorous, so the
23569       exact effect will vary somewhat depending on the input primaries and
23570       colorspace.
23571
23572       brightness
23573           Brightness boost, between -1.0 and 1.0. Defaults to 0.0.
23574
23575       contrast
23576           Contrast gain, between 0.0 and 16.0. Defaults to 1.0.
23577
23578       saturation
23579           Saturation gain, between 0.0 and 16.0. Defaults to 1.0.
23580
23581       hue Hue shift in radians, between -3.14 and 3.14. Defaults to 0.0. This
23582           will rotate the UV subvector, defaulting to BT.709 coefficients for
23583           RGB inputs.
23584
23585       gamma
23586           Gamma adjustment, between 0.0 and 16.0. Defaults to 1.0.
23587
23588       cones
23589           Cone model to use for color blindness simulation. Accepts any
23590           combination of "l", "m" and "s". Here are some examples:
23591
23592           m   Deuteranomaly / deuteranopia (affecting 3%-4% of the
23593               population)
23594
23595           l   Protanomaly / protanopia (affecting 1%-2% of the population)
23596
23597           l+m Monochromacy (very rare)
23598
23599           l+m+s
23600               Achromatopsy (complete loss of daytime vision, extremely rare)
23601
23602       cone-strength
23603           Gain factor for the cones specified by "cones", between 0.0 and
23604           10.0. A value of 1.0 results in no change to color vision. A value
23605           of 0.0 (the default) simulates complete loss of those cones. Values
23606           above 1.0 result in exaggerating the differences between cones,
23607           which may help compensate for reduced color vision.
23608
23609       Peak detection
23610
23611       To help deal with sources that only have static HDR10 metadata (or no
23612       tagging whatsoever), libplacebo uses its own internal frame analysis
23613       compute shader to analyze source frames and adapt the tone mapping
23614       function in realtime. If this is too slow, or if exactly reproducible
23615       frame-perfect results are needed, it's recommended to turn this feature
23616       off.
23617
23618       peak_detect
23619           Enable HDR peak detection. Ignores static MaxCLL/MaxFALL values in
23620           favor of dynamic detection from the input. Note that the detected
23621           values do not get written back to the output frames, they merely
23622           guide the internal tone mapping process. Enabled by default.
23623
23624       smoothing_period
23625           Peak detection smoothing period, between 0.0 and 1000.0. Higher
23626           values result in peak detection becoming less responsive to changes
23627           in the input. Defaults to 100.0.
23628
23629       minimum_peak
23630           Lower bound on the detected peak (relative to SDR white), between
23631           0.0 and 100.0. Defaults to 1.0.
23632
23633       scene_threshold_low
23634       scene_threshold_high
23635           Lower and upper thresholds for scene change detection. Expressed in
23636           a logarithmic scale between 0.0 and 100.0. Default to 5.5 and 10.0,
23637           respectively. Setting either to a negative value disables this
23638           functionality.
23639
23640       overshoot
23641           Peak smoothing overshoot margin, between 0.0 and 1.0. Provides a
23642           safety margin to prevent clipping as a result of peak smoothing.
23643           Defaults to 0.05, corresponding to a margin of 5%.
23644
23645       Tone mapping
23646
23647       The options in this section control how libplacebo performs tone-
23648       mapping and gamut-mapping when dealing with mismatches between wide-
23649       gamut or HDR content.  In general, libplacebo relies on accurate source
23650       tagging and mastering display gamut information to produce the best
23651       results.
23652
23653       intent
23654           Rendering intent to use when adapting between different primary
23655           color gamuts (after tone-mapping).
23656
23657           perceptual
23658               Perceptual gamut mapping. Currently equivalent to relative
23659               colorimetric.
23660
23661           relative
23662               Relative colorimetric. This is the default.
23663
23664           absolute
23665               Absolute colorimetric.
23666
23667           saturation
23668               Saturation mapping. Forcibly stretches the source gamut to the
23669               target gamut.
23670
23671       gamut_mode
23672           How to handle out-of-gamut colors that can occur as a result of
23673           colorimetric gamut mapping.
23674
23675           clip
23676               Do nothing, simply clip out-of-range colors to the RGB volume.
23677               This is the default.
23678
23679           warn
23680               Highlight out-of-gamut pixels (by coloring them pink).
23681
23682           darken
23683               Linearly reduces content brightness to preserves saturated
23684               details, followed by clipping the remaining out-of-gamut
23685               colors. As the name implies, this makes everything darker, but
23686               provides a good balance between preserving details and colors.
23687
23688           desaturate
23689               Hard-desaturates out-of-gamut colors towards white, while
23690               preserving the luminance. Has a tendency to shift colors.
23691
23692       tonemapping
23693           Tone-mapping algorithm to use. Available values are:
23694
23695           auto
23696               Automatic selection based on internal heuristics. This is the
23697               default.
23698
23699           clip
23700               Performs no tone-mapping, just clips out-of-range colors.
23701               Retains perfect color accuracy for in-range colors but
23702               completely destroys out-of-range information.  Does not perform
23703               any black point adaptation. Not configurable.
23704
23705           st2094-40
23706               EETF from SMPTE ST 2094-40 Annex B, which applies the Bezier
23707               curves from HDR10+ dynamic metadata based on Bezier curves to
23708               perform tone-mapping. The OOTF used is adjusted based on the
23709               ratio between the targeted and actual display peak luminances.
23710
23711           st2094-10
23712               EETF from SMPTE ST 2094-10 Annex B.2, which takes into account
23713               the input signal average luminance in addition to the
23714               maximum/minimum. The configurable contrast parameter influences
23715               the slope of the linear output segment, defaulting to 1.0 for
23716               no increase/decrease in contrast. Note that this does not
23717               currently include the subjective gain/offset/gamma controls
23718               defined in Annex B.3.
23719
23720           bt.2390
23721               EETF from the ITU-R Report BT.2390, a hermite spline roll-off
23722               with linear segment. The knee point offset is configurable.
23723               Note that this parameter defaults to 1.0, rather than the value
23724               of 0.5 from the ITU-R spec.
23725
23726           bt.2446a
23727               EETF from ITU-R Report BT.2446, method A. Designed for well-
23728               mastered HDR sources. Can be used for both forward and inverse
23729               tone mapping. Not configurable.
23730
23731           spline
23732               Simple spline consisting of two polynomials, joined by a single
23733               pivot point.  The parameter gives the pivot point (in PQ
23734               space), defaulting to 0.30.  Can be used for both forward and
23735               inverse tone mapping.
23736
23737           reinhard
23738               Simple non-linear, global tone mapping algorithm. The parameter
23739               specifies the local contrast coefficient at the display peak.
23740               Essentially, a parameter of 0.5 implies that the reference
23741               white will be about half as bright as when clipping. Defaults
23742               to 0.5, which results in the simplest formulation of this
23743               function.
23744
23745           mobius
23746               Generalization of the reinhard tone mapping algorithm to
23747               support an additional linear slope near black. The tone mapping
23748               parameter indicates the trade-off between the linear section
23749               and the non-linear section. Essentially, for a given parameter
23750               x, every color value below x will be mapped linearly, while
23751               higher values get non-linearly tone-mapped. Values near 1.0
23752               make this curve behave like "clip", while values near 0.0 make
23753               this curve behave like "reinhard". The default value is 0.3,
23754               which provides a good balance between colorimetric accuracy and
23755               preserving out-of-gamut details.
23756
23757           hable
23758               Piece-wise, filmic tone-mapping algorithm developed by John
23759               Hable for use in Uncharted 2, inspired by a similar tone-
23760               mapping algorithm used by Kodak.  Popularized by its use in
23761               video games with HDR rendering. Preserves both dark and bright
23762               details very well, but comes with the drawback of changing the
23763               average brightness quite significantly. This is sort of similar
23764               to "reinhard" with parameter 0.24.
23765
23766           gamma
23767               Fits a gamma (power) function to transfer between the source
23768               and target color spaces, effectively resulting in a perceptual
23769               hard-knee joining two roughly linear sections. This preserves
23770               details at all scales fairly accurately, but can result in an
23771               image with a muted or dull appearance. The parameter is used as
23772               the cutoff point, defaulting to 0.5.
23773
23774           linear
23775               Linearly stretches the input range to the output range, in PQ
23776               space. This will preserve all details accurately, but results
23777               in a significantly different average brightness. Can be used
23778               for inverse tone-mapping in addition to regular tone-mapping.
23779               The parameter can be used as an additional linear gain
23780               coefficient (defaulting to 1.0).
23781
23782       tonemapping_param
23783           For tunable tone mapping functions, this parameter can be used to
23784           fine-tune the curve behavior. Refer to the documentation of
23785           "tonemapping". The default value of 0.0 is replaced by the curve's
23786           preferred default setting.
23787
23788       tonemapping_mode
23789           This option determines how the tone mapping function specified by
23790           "tonemapping" is applied to the colors in a scene. Possible values
23791           are:
23792
23793           auto
23794               Automatic selection based on internal heuristics. This is the
23795               default.
23796
23797           rgb Apply the function per-channel in the RGB colorspace.  Per-
23798               channel tone-mapping in RGB. Guarantees no clipping and heavily
23799               desaturates the output, but distorts the colors quite
23800               significantly. Very similar to the "Hollywood" look and feel.
23801
23802           max Tone-mapping is performed on the brightest component found in
23803               the signal. Good at preserving details in highlights, but has a
23804               tendency to crush blacks.
23805
23806           hybrid
23807               Tone-map per-channel for highlights and linearly (luma-based)
23808               for midtones/shadows, based on a fixed gamma 2.4 coefficient
23809               curve.
23810
23811           luma
23812               Tone-map linearly on the luma component (CIE Y), and adjust
23813               (desaturate) the chromaticities to compensate using a simple
23814               constant factor. This is essentially the mode used in ITU-R
23815               BT.2446 method A.
23816
23817       inverse_tonemapping
23818           If enabled, this filter will also attempt stretching SDR signals to
23819           fill HDR output color volumes. Disabled by default.
23820
23821       tonemapping_crosstalk
23822           Extra tone-mapping crosstalk factor, between 0.0 and 0.3. This can
23823           help reduce issues tone-mapping certain bright spectral colors.
23824           Defaults to 0.04.
23825
23826       tonemapping_lut_size
23827           Size of the tone-mapping LUT, between 2 and 1024. Defaults to 256.
23828           Note that this figure is squared when combined with "peak_detect".
23829
23830       Dithering
23831
23832       By default, libplacebo will dither whenever necessary, which includes
23833       rendering to any integer format below 16-bit precision. It's
23834       recommended to always leave this on, since not doing so may result in
23835       visible banding in the output, even if the "debanding" filter is
23836       enabled. If maximum performance is needed, use "ordered_fixed" instead
23837       of disabling dithering.
23838
23839       dithering
23840           Dithering method to use. Accepts the following values:
23841
23842           none
23843               Disables dithering completely. May result in visible banding.
23844
23845           blue
23846               Dither with pseudo-blue noise. This is the default.
23847
23848           ordered
23849               Tunable ordered dither pattern.
23850
23851           ordered_fixed
23852               Faster ordered dither with a fixed size of 6. Texture-less.
23853
23854           white
23855               Dither with white noise. Texture-less.
23856
23857       dither_lut_size
23858           Dither LUT size, as log base2 between 1 and 8. Defaults to 6,
23859           corresponding to a LUT size of "64x64".
23860
23861       dither_temporal
23862           Enables temporal dithering. Disabled by default.
23863
23864       Custom shaders
23865
23866       libplacebo supports a number of custom shaders based on the mpv .hook
23867       GLSL syntax. A collection of such shaders can be found here:
23868       <https://github.com/mpv-player/mpv/wiki/User-Scripts#user-shaders>
23869
23870       A full description of the mpv shader format is beyond the scope of this
23871       section, but a summary can be found here:
23872       <https://mpv.io/manual/master/#options-glsl-shader>
23873
23874       custom_shader_path
23875           Specifies a path to a custom shader file to load at runtime.
23876
23877       custom_shader_bin
23878           Specifies a complete custom shader as a raw string.
23879
23880       Debugging / performance
23881
23882       All of the options in this section default off. They may be of
23883       assistance when attempting to squeeze the maximum performance at the
23884       cost of quality.
23885
23886       skip_aa
23887           Disable anti-aliasing when downscaling.
23888
23889       polar_cutoff
23890           Truncate polar (EWA) scaler kernels below this absolute magnitude,
23891           between 0.0 and 1.0.
23892
23893       disable_linear
23894           Disable linear light scaling.
23895
23896       disable_builtin
23897           Disable built-in GPU sampling (forces LUT).
23898
23899       disable_fbos
23900           Forcibly disable FBOs, resulting in loss of almost all
23901           functionality, but offering the maximum possible speed.
23902
23903       Commands
23904
23905       This filter supports almost all of the above options as commands.
23906
23907       Examples
23908
23909       •   Complete example for how to initialize the Vulkan device, upload
23910           frames to the GPU, perform filter conversion to yuv420p, and
23911           download frames back to the CPU for output. Note that in specific
23912           cases you can get around the need to perform format conversion by
23913           specifying the correct "format" filter option corresponding to the
23914           input frames.
23915
23916                   ffmpeg -i $INPUT -init_hw_device vulkan -vf hwupload,libplacebo=format=yuv420p,hwdownload,format=yuv420p $OUTPUT
23917
23918       •   Tone-map input to standard gamut BT.709 output:
23919
23920                   libplacebo=colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv
23921
23922       •   Rescale input to fit into standard 1080p, with high quality
23923           scaling:
23924
23925                   libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos
23926
23927       •   Convert input to standard sRGB JPEG:
23928
23929                   libplacebo=format=yuv420p:colorspace=bt470bg:color_primaries=bt709:color_trc=iec61966-2-1:range=pc
23930
23931       •   Use higher quality debanding settings:
23932
23933                   libplacebo=deband=true:deband_iterations=3:deband_radius=8:deband_threshold=6
23934
23935       •   Run this filter on the CPU, on systems with Mesa installed (and
23936           with the most expensive options disabled):
23937
23938                   ffmpeg ... -init_hw_device vulkan:llvmpipe ... -vf libplacebo=upscaler=none:downscaler=none:peak_detect=false
23939
23940       •   Suppress CPU-based AV1/H.274 film grain application in the decoder,
23941           in favor of doing it with this filter. Note that this is only a
23942           gain if the frames are either already on the GPU, or if you're
23943           using libplacebo for other purposes, since otherwise the VRAM
23944           roundtrip will more than offset any expected speedup.
23945
23946                   ffmpeg -export_side_data +film_grain ... -vf libplacebo=apply_filmgrain=true
23947
23948   libvmaf
23949       Calulate the VMAF (Video Multi-Method Assessment Fusion) score for a
23950       reference/distorted pair of input videos.
23951
23952       The first input is the distorted video, and the second input is the
23953       reference video.
23954
23955       The obtained VMAF score is printed through the logging system.
23956
23957       It requires Netflix's vmaf library (libvmaf) as a pre-requisite.  After
23958       installing the library it can be enabled using: "./configure
23959       --enable-libvmaf".
23960
23961       The filter has following options:
23962
23963       model
23964           A `|` delimited list of vmaf models. Each model can be configured
23965           with a number of parameters.  Default value: "version=vmaf_v0.6.1"
23966
23967       model_path
23968           Deprecated, use model='path=...'.
23969
23970       enable_transform
23971           Deprecated, use model='enable_transform=true'.
23972
23973       phone_model
23974           Deprecated, use model='enable_transform=true'.
23975
23976       enable_conf_interval
23977           Deprecated, use model='enable_conf_interval=true'.
23978
23979       feature
23980           A `|` delimited list of features. Each feature can be configured
23981           with a number of parameters.
23982
23983       psnr
23984           Deprecated, use feature='name=psnr'.
23985
23986       ssim
23987           Deprecated, use feature='name=ssim'.
23988
23989       ms_ssim
23990           Deprecated, use feature='name=ms_ssim'.
23991
23992       log_path
23993           Set the file path to be used to store log files.
23994
23995       log_fmt
23996           Set the format of the log file (xml, json, csv, or sub).
23997
23998       n_threads
23999           Set number of threads to be used when initializing libvmaf.
24000           Default value: 0, no threads.
24001
24002       n_subsample
24003           Set frame subsampling interval to be used.
24004
24005       This filter also supports the framesync options.
24006
24007       Examples
24008
24009       •   In the examples below, a distorted video distorted.mpg is compared
24010           with a reference file reference.mpg.
24011
24012       •   Basic usage:
24013
24014                   ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf=log_path=output.xml -f null -
24015
24016       •   Example with multiple models:
24017
24018                   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 -
24019
24020       •   Example with multiple addtional features:
24021
24022                   ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='feature=name=psnr|name=ciede' -f null -
24023
24024       •   Example with options and different containers:
24025
24026                   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 -
24027
24028   limitdiff
24029       Apply limited difference filter using second and optionally third video
24030       stream.
24031
24032       The filter accepts the following options:
24033
24034       threshold
24035           Set the threshold to use when allowing certain differences between
24036           video streams.  Any absolute difference value lower or exact than
24037           this threshold will pick pixel components from first video stream.
24038
24039       elasticity
24040           Set the elasticity of soft thresholding when processing video
24041           streams.  This value multiplied with first one sets second
24042           threshold.  Any absolute difference value greater or exact than
24043           second threshold will pick pixel components from second video
24044           stream. For values between those two threshold linear interpolation
24045           between first and second video stream will be used.
24046
24047       reference
24048           Enable the reference (third) video stream processing. By default is
24049           disabled.  If set, this video stream will be used for calculating
24050           absolute difference with first video stream.
24051
24052       planes
24053           Specify which planes will be processed. Defaults to all available.
24054
24055       Commands
24056
24057       This filter supports the all above options as commands except option
24058       reference.
24059
24060   limiter
24061       Limits the pixel components values to the specified range [min, max].
24062
24063       The filter accepts the following options:
24064
24065       min Lower bound. Defaults to the lowest allowed value for the input.
24066
24067       max Upper bound. Defaults to the highest allowed value for the input.
24068
24069       planes
24070           Specify which planes will be processed. Defaults to all available.
24071
24072       Commands
24073
24074       This filter supports the all above options as commands.
24075
24076   loop
24077       Loop video frames.
24078
24079       The filter accepts the following options:
24080
24081       loop
24082           Set the number of loops. Setting this value to -1 will result in
24083           infinite loops.  Default is 0.
24084
24085       size
24086           Set maximal size in number of frames. Default is 0.
24087
24088       start
24089           Set first frame of loop. Default is 0.
24090
24091       Examples
24092
24093       •   Loop single first frame infinitely:
24094
24095                   loop=loop=-1:size=1:start=0
24096
24097       •   Loop single first frame 10 times:
24098
24099                   loop=loop=10:size=1:start=0
24100
24101       •   Loop 10 first frames 5 times:
24102
24103                   loop=loop=5:size=10:start=0
24104
24105   lut1d
24106       Apply a 1D LUT to an input video.
24107
24108       The filter accepts the following options:
24109
24110       file
24111           Set the 1D LUT file name.
24112
24113           Currently supported formats:
24114
24115           cube
24116               Iridas
24117
24118           csp cineSpace
24119
24120       interp
24121           Select interpolation mode.
24122
24123           Available values are:
24124
24125           nearest
24126               Use values from the nearest defined point.
24127
24128           linear
24129               Interpolate values using the linear interpolation.
24130
24131           cosine
24132               Interpolate values using the cosine interpolation.
24133
24134           cubic
24135               Interpolate values using the cubic interpolation.
24136
24137           spline
24138               Interpolate values using the spline interpolation.
24139
24140       Commands
24141
24142       This filter supports the all above options as commands.
24143
24144   lut3d
24145       Apply a 3D LUT to an input video.
24146
24147       The filter accepts the following options:
24148
24149       file
24150           Set the 3D LUT file name.
24151
24152           Currently supported formats:
24153
24154           3dl AfterEffects
24155
24156           cube
24157               Iridas
24158
24159           dat DaVinci
24160
24161           m3d Pandora
24162
24163           csp cineSpace
24164
24165       interp
24166           Select interpolation mode.
24167
24168           Available values are:
24169
24170           nearest
24171               Use values from the nearest defined point.
24172
24173           trilinear
24174               Interpolate values using the 8 points defining a cube.
24175
24176           tetrahedral
24177               Interpolate values using a tetrahedron.
24178
24179           pyramid
24180               Interpolate values using a pyramid.
24181
24182           prism
24183               Interpolate values using a prism.
24184
24185       Commands
24186
24187       This filter supports the "interp" option as commands.
24188
24189   lumakey
24190       Turn certain luma values into transparency.
24191
24192       The filter accepts the following options:
24193
24194       threshold
24195           Set the luma which will be used as base for transparency.  Default
24196           value is 0.
24197
24198       tolerance
24199           Set the range of luma values to be keyed out.  Default value is
24200           0.01.
24201
24202       softness
24203           Set the range of softness. Default value is 0.  Use this to control
24204           gradual transition from zero to full transparency.
24205
24206       Commands
24207
24208       This filter supports same commands as options.  The command accepts the
24209       same syntax of the corresponding option.
24210
24211       If the specified expression is not valid, it is kept at its current
24212       value.
24213
24214   lut, lutrgb, lutyuv
24215       Compute a look-up table for binding each pixel component input value to
24216       an output value, and apply it to the input video.
24217
24218       lutyuv applies a lookup table to a YUV input video, lutrgb to an RGB
24219       input video.
24220
24221       These filters accept the following parameters:
24222
24223       c0  set first pixel component expression
24224
24225       c1  set second pixel component expression
24226
24227       c2  set third pixel component expression
24228
24229       c3  set fourth pixel component expression, corresponds to the alpha
24230           component
24231
24232       r   set red component expression
24233
24234       g   set green component expression
24235
24236       b   set blue component expression
24237
24238       a   alpha component expression
24239
24240       y   set Y/luminance component expression
24241
24242       u   set U/Cb component expression
24243
24244       v   set V/Cr component expression
24245
24246       Each of them specifies the expression to use for computing the lookup
24247       table for the corresponding pixel component values.
24248
24249       The exact component associated to each of the c* options depends on the
24250       format in input.
24251
24252       The lut filter requires either YUV or RGB pixel formats in input,
24253       lutrgb requires RGB pixel formats in input, and lutyuv requires YUV.
24254
24255       The expressions can contain the following constants and functions:
24256
24257       w
24258       h   The input width and height.
24259
24260       val The input value for the pixel component.
24261
24262       clipval
24263           The input value, clipped to the minval-maxval range.
24264
24265       maxval
24266           The maximum value for the pixel component.
24267
24268       minval
24269           The minimum value for the pixel component.
24270
24271       negval
24272           The negated value for the pixel component value, clipped to the
24273           minval-maxval range; it corresponds to the expression
24274           "maxval-clipval+minval".
24275
24276       clip(val)
24277           The computed value in val, clipped to the minval-maxval range.
24278
24279       gammaval(gamma)
24280           The computed gamma correction value of the pixel component value,
24281           clipped to the minval-maxval range. It corresponds to the
24282           expression
24283           "pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+minval"
24284
24285       All expressions default to "clipval".
24286
24287       Commands
24288
24289       This filter supports same commands as options.
24290
24291       Examples
24292
24293       •   Negate input video:
24294
24295                   lutrgb="r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val"
24296                   lutyuv="y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val"
24297
24298           The above is the same as:
24299
24300                   lutrgb="r=negval:g=negval:b=negval"
24301                   lutyuv="y=negval:u=negval:v=negval"
24302
24303       •   Negate luminance:
24304
24305                   lutyuv=y=negval
24306
24307       •   Remove chroma components, turning the video into a graytone image:
24308
24309                   lutyuv="u=128:v=128"
24310
24311       •   Apply a luma burning effect:
24312
24313                   lutyuv="y=2*val"
24314
24315       •   Remove green and blue components:
24316
24317                   lutrgb="g=0:b=0"
24318
24319       •   Set a constant alpha channel value on input:
24320
24321                   format=rgba,lutrgb=a="maxval-minval/2"
24322
24323       •   Correct luminance gamma by a factor of 0.5:
24324
24325                   lutyuv=y=gammaval(0.5)
24326
24327       •   Discard least significant bits of luma:
24328
24329                   lutyuv=y='bitand(val, 128+64+32)'
24330
24331       •   Technicolor like effect:
24332
24333                   lutyuv=u='(val-maxval/2)*2+maxval/2':v='(val-maxval/2)*2+maxval/2'
24334
24335   lut2, tlut2
24336       The "lut2" filter takes two input streams and outputs one stream.
24337
24338       The "tlut2" (time lut2) filter takes two consecutive frames from one
24339       single stream.
24340
24341       This filter accepts the following parameters:
24342
24343       c0  set first pixel component expression
24344
24345       c1  set second pixel component expression
24346
24347       c2  set third pixel component expression
24348
24349       c3  set fourth pixel component expression, corresponds to the alpha
24350           component
24351
24352       d   set output bit depth, only available for "lut2" filter. By default
24353           is 0, which means bit depth is automatically picked from first
24354           input format.
24355
24356       The "lut2" filter also supports the framesync options.
24357
24358       Each of them specifies the expression to use for computing the lookup
24359       table for the corresponding pixel component values.
24360
24361       The exact component associated to each of the c* options depends on the
24362       format in inputs.
24363
24364       The expressions can contain the following constants:
24365
24366       w
24367       h   The input width and height.
24368
24369       x   The first input value for the pixel component.
24370
24371       y   The second input value for the pixel component.
24372
24373       bdx The first input video bit depth.
24374
24375       bdy The second input video bit depth.
24376
24377       All expressions default to "x".
24378
24379       Commands
24380
24381       This filter supports the all above options as commands except option
24382       "d".
24383
24384       Examples
24385
24386       •   Highlight differences between two RGB video streams:
24387
24388                   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)'
24389
24390       •   Highlight differences between two YUV video streams:
24391
24392                   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)'
24393
24394       •   Show max difference between two video streams:
24395
24396                   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)))'
24397
24398   maskedclamp
24399       Clamp the first input stream with the second input and third input
24400       stream.
24401
24402       Returns the value of first stream to be between second input stream -
24403       "undershoot" and third input stream + "overshoot".
24404
24405       This filter accepts the following options:
24406
24407       undershoot
24408           Default value is 0.
24409
24410       overshoot
24411           Default value is 0.
24412
24413       planes
24414           Set which planes will be processed as bitmap, unprocessed planes
24415           will be copied from first stream.  By default value 0xf, all planes
24416           will be processed.
24417
24418       Commands
24419
24420       This filter supports the all above options as commands.
24421
24422   maskedmax
24423       Merge the second and third input stream into output stream using
24424       absolute differences between second input stream and first input stream
24425       and absolute difference between third input stream and first input
24426       stream. The picked value will be from second input stream if second
24427       absolute difference is greater than first one or from third input
24428       stream otherwise.
24429
24430       This filter accepts the following options:
24431
24432       planes
24433           Set which planes will be processed as bitmap, unprocessed planes
24434           will be copied from first stream.  By default value 0xf, all planes
24435           will be processed.
24436
24437       Commands
24438
24439       This filter supports the all above options as commands.
24440
24441   maskedmerge
24442       Merge the first input stream with the second input stream using per
24443       pixel weights in the third input stream.
24444
24445       A value of 0 in the third stream pixel component means that pixel
24446       component from first stream is returned unchanged, while maximum value
24447       (eg. 255 for 8-bit videos) means that pixel component from second
24448       stream is returned unchanged. Intermediate values define the amount of
24449       merging between both input stream's pixel components.
24450
24451       This filter accepts the following options:
24452
24453       planes
24454           Set which planes will be processed as bitmap, unprocessed planes
24455           will be copied from first stream.  By default value 0xf, all planes
24456           will be processed.
24457
24458       Commands
24459
24460       This filter supports the all above options as commands.
24461
24462   maskedmin
24463       Merge the second and third input stream into output stream using
24464       absolute differences between second input stream and first input stream
24465       and absolute difference between third input stream and first input
24466       stream. The picked value will be from second input stream if second
24467       absolute difference is less than first one or from third input stream
24468       otherwise.
24469
24470       This filter accepts the following options:
24471
24472       planes
24473           Set which planes will be processed as bitmap, unprocessed planes
24474           will be copied from first stream.  By default value 0xf, all planes
24475           will be processed.
24476
24477       Commands
24478
24479       This filter supports the all above options as commands.
24480
24481   maskedthreshold
24482       Pick pixels comparing absolute difference of two video streams with
24483       fixed threshold.
24484
24485       If absolute difference between pixel component of first and second
24486       video stream is equal or lower than user supplied threshold than pixel
24487       component from first video stream is picked, otherwise pixel component
24488       from second video stream is picked.
24489
24490       This filter accepts the following options:
24491
24492       threshold
24493           Set threshold used when picking pixels from absolute difference
24494           from two input video streams.
24495
24496       planes
24497           Set which planes will be processed as bitmap, unprocessed planes
24498           will be copied from second stream.  By default value 0xf, all
24499           planes will be processed.
24500
24501       mode
24502           Set mode of filter operation. Can be "abs" or "diff".  Default is
24503           "abs".
24504
24505       Commands
24506
24507       This filter supports the all above options as commands.
24508
24509   maskfun
24510       Create mask from input video.
24511
24512       For example it is useful to create motion masks after "tblend" filter.
24513
24514       This filter accepts the following options:
24515
24516       low Set low threshold. Any pixel component lower or exact than this
24517           value will be set to 0.
24518
24519       high
24520           Set high threshold. Any pixel component higher than this value will
24521           be set to max value allowed for current pixel format.
24522
24523       planes
24524           Set planes to filter, by default all available planes are filtered.
24525
24526       fill
24527           Fill all frame pixels with this value.
24528
24529       sum Set max average pixel value for frame. If sum of all pixel
24530           components is higher that this average, output frame will be
24531           completely filled with value set by fill option.  Typically useful
24532           for scene changes when used in combination with "tblend" filter.
24533
24534       Commands
24535
24536       This filter supports the all above options as commands.
24537
24538   mcdeint
24539       Apply motion-compensation deinterlacing.
24540
24541       It needs one field per frame as input and must thus be used together
24542       with yadif=1/3 or equivalent.
24543
24544       This filter is only available in ffmpeg version 4.4 or earlier.
24545
24546       This filter accepts the following options:
24547
24548       mode
24549           Set the deinterlacing mode.
24550
24551           It accepts one of the following values:
24552
24553           fast
24554           medium
24555           slow
24556               use iterative motion estimation
24557
24558           extra_slow
24559               like slow, but use multiple reference frames.
24560
24561           Default value is fast.
24562
24563       parity
24564           Set the picture field parity assumed for the input video. It must
24565           be one of the following values:
24566
24567           0, tff
24568               assume top field first
24569
24570           1, bff
24571               assume bottom field first
24572
24573           Default value is bff.
24574
24575       qp  Set per-block quantization parameter (QP) used by the internal
24576           encoder.
24577
24578           Higher values should result in a smoother motion vector field but
24579           less optimal individual vectors. Default value is 1.
24580
24581   median
24582       Pick median pixel from certain rectangle defined by radius.
24583
24584       This filter accepts the following options:
24585
24586       radius
24587           Set horizontal radius size. Default value is 1.  Allowed range is
24588           integer from 1 to 127.
24589
24590       planes
24591           Set which planes to process. Default is 15, which is all available
24592           planes.
24593
24594       radiusV
24595           Set vertical radius size. Default value is 0.  Allowed range is
24596           integer from 0 to 127.  If it is 0, value will be picked from
24597           horizontal "radius" option.
24598
24599       percentile
24600           Set median percentile. Default value is 0.5.  Default value of 0.5
24601           will pick always median values, while 0 will pick minimum values,
24602           and 1 maximum values.
24603
24604       Commands
24605
24606       This filter supports same commands as options.  The command accepts the
24607       same syntax of the corresponding option.
24608
24609       If the specified expression is not valid, it is kept at its current
24610       value.
24611
24612   mergeplanes
24613       Merge color channel components from several video streams.
24614
24615       The filter accepts up to 4 input streams, and merge selected input
24616       planes to the output video.
24617
24618       This filter accepts the following options:
24619
24620       mapping
24621           Set input to output plane mapping. Default is 0.
24622
24623           The mappings is specified as a bitmap. It should be specified as a
24624           hexadecimal number in the form 0xAa[Bb[Cc[Dd]]]. 'Aa' describes the
24625           mapping for the first plane of the output stream. 'A' sets the
24626           number of the input stream to use (from 0 to 3), and 'a' the plane
24627           number of the corresponding input to use (from 0 to 3). The rest of
24628           the mappings is similar, 'Bb' describes the mapping for the output
24629           stream second plane, 'Cc' describes the mapping for the output
24630           stream third plane and 'Dd' describes the mapping for the output
24631           stream fourth plane.
24632
24633       format
24634           Set output pixel format. Default is "yuva444p".
24635
24636       map0s
24637       map1s
24638       map2s
24639       map3s
24640           Set input to output stream mapping for output Nth plane. Default is
24641           0.
24642
24643       map0p
24644       map1p
24645       map2p
24646       map3p
24647           Set input to output plane mapping for output Nth plane. Default is
24648           0.
24649
24650       Examples
24651
24652       •   Merge three gray video streams of same width and height into single
24653           video stream:
24654
24655                   [a0][a1][a2]mergeplanes=0x001020:yuv444p
24656
24657       •   Merge 1st yuv444p stream and 2nd gray video stream into yuva444p
24658           video stream:
24659
24660                   [a0][a1]mergeplanes=0x00010210:yuva444p
24661
24662       •   Swap Y and A plane in yuva444p stream:
24663
24664                   format=yuva444p,mergeplanes=0x03010200:yuva444p
24665
24666       •   Swap U and V plane in yuv420p stream:
24667
24668                   format=yuv420p,mergeplanes=0x000201:yuv420p
24669
24670       •   Cast a rgb24 clip to yuv444p:
24671
24672                   format=rgb24,mergeplanes=0x000102:yuv444p
24673
24674   mestimate
24675       Estimate and export motion vectors using block matching algorithms.
24676       Motion vectors are stored in frame side data to be used by other
24677       filters.
24678
24679       This filter accepts the following options:
24680
24681       method
24682           Specify the motion estimation method. Accepts one of the following
24683           values:
24684
24685           esa Exhaustive search algorithm.
24686
24687           tss Three step search algorithm.
24688
24689           tdls
24690               Two dimensional logarithmic search algorithm.
24691
24692           ntss
24693               New three step search algorithm.
24694
24695           fss Four step search algorithm.
24696
24697           ds  Diamond search algorithm.
24698
24699           hexbs
24700               Hexagon-based search algorithm.
24701
24702           epzs
24703               Enhanced predictive zonal search algorithm.
24704
24705           umh Uneven multi-hexagon search algorithm.
24706
24707           Default value is esa.
24708
24709       mb_size
24710           Macroblock size. Default 16.
24711
24712       search_param
24713           Search parameter. Default 7.
24714
24715   midequalizer
24716       Apply Midway Image Equalization effect using two video streams.
24717
24718       Midway Image Equalization adjusts a pair of images to have the same
24719       histogram, while maintaining their dynamics as much as possible. It's
24720       useful for e.g. matching exposures from a pair of stereo cameras.
24721
24722       This filter has two inputs and one output, which must be of same pixel
24723       format, but may be of different sizes. The output of filter is first
24724       input adjusted with midway histogram of both inputs.
24725
24726       This filter accepts the following option:
24727
24728       planes
24729           Set which planes to process. Default is 15, which is all available
24730           planes.
24731
24732   minterpolate
24733       Convert the video to specified frame rate using motion interpolation.
24734
24735       This filter accepts the following options:
24736
24737       fps Specify the output frame rate. This can be rational e.g.
24738           "60000/1001". Frames are dropped if fps is lower than source fps.
24739           Default 60.
24740
24741       mi_mode
24742           Motion interpolation mode. Following values are accepted:
24743
24744           dup Duplicate previous or next frame for interpolating new ones.
24745
24746           blend
24747               Blend source frames. Interpolated frame is mean of previous and
24748               next frames.
24749
24750           mci Motion compensated interpolation. Following options are
24751               effective when this mode is selected:
24752
24753               mc_mode
24754                   Motion compensation mode. Following values are accepted:
24755
24756                   obmc
24757                       Overlapped block motion compensation.
24758
24759                   aobmc
24760                       Adaptive overlapped block motion compensation. Window
24761                       weighting coefficients are controlled adaptively
24762                       according to the reliabilities of the neighboring
24763                       motion vectors to reduce oversmoothing.
24764
24765                   Default mode is obmc.
24766
24767               me_mode
24768                   Motion estimation mode. Following values are accepted:
24769
24770                   bidir
24771                       Bidirectional motion estimation. Motion vectors are
24772                       estimated for each source frame in both forward and
24773                       backward directions.
24774
24775                   bilat
24776                       Bilateral motion estimation. Motion vectors are
24777                       estimated directly for interpolated frame.
24778
24779                   Default mode is bilat.
24780
24781               me  The algorithm to be used for motion estimation. Following
24782                   values are accepted:
24783
24784                   esa Exhaustive search algorithm.
24785
24786                   tss Three step search algorithm.
24787
24788                   tdls
24789                       Two dimensional logarithmic search algorithm.
24790
24791                   ntss
24792                       New three step search algorithm.
24793
24794                   fss Four step search algorithm.
24795
24796                   ds  Diamond search algorithm.
24797
24798                   hexbs
24799                       Hexagon-based search algorithm.
24800
24801                   epzs
24802                       Enhanced predictive zonal search algorithm.
24803
24804                   umh Uneven multi-hexagon search algorithm.
24805
24806                   Default algorithm is epzs.
24807
24808               mb_size
24809                   Macroblock size. Default 16.
24810
24811               search_param
24812                   Motion estimation search parameter. Default 32.
24813
24814               vsbmc
24815                   Enable variable-size block motion compensation. Motion
24816                   estimation is applied with smaller block sizes at object
24817                   boundaries in order to make the them less blur. Default is
24818                   0 (disabled).
24819
24820       scd Scene change detection method. Scene change leads motion vectors to
24821           be in random direction. Scene change detection replace interpolated
24822           frames by duplicate ones. May not be needed for other modes.
24823           Following values are accepted:
24824
24825           none
24826               Disable scene change detection.
24827
24828           fdiff
24829               Frame difference. Corresponding pixel values are compared and
24830               if it satisfies scd_threshold scene change is detected.
24831
24832           Default method is fdiff.
24833
24834       scd_threshold
24835           Scene change detection threshold. Default is 10..
24836
24837   mix
24838       Mix several video input streams into one video stream.
24839
24840       A description of the accepted options follows.
24841
24842       inputs
24843           The number of inputs. If unspecified, it defaults to 2.
24844
24845       weights
24846           Specify weight of each input video stream as sequence.  Each weight
24847           is separated by space. If number of weights is smaller than number
24848           of frames last specified weight will be used for all remaining
24849           unset weights.
24850
24851       scale
24852           Specify scale, if it is set it will be multiplied with sum of each
24853           weight multiplied with pixel values to give final destination pixel
24854           value. By default scale is auto scaled to sum of weights.
24855
24856       planes
24857           Set which planes to filter. Default is all. Allowed range is from 0
24858           to 15.
24859
24860       duration
24861           Specify how end of stream is determined.
24862
24863           longest
24864               The duration of the longest input. (default)
24865
24866           shortest
24867               The duration of the shortest input.
24868
24869           first
24870               The duration of the first input.
24871
24872       Commands
24873
24874       This filter supports the following commands:
24875
24876       weights
24877       scale
24878       planes
24879           Syntax is same as option with same name.
24880
24881   monochrome
24882       Convert video to gray using custom color filter.
24883
24884       A description of the accepted options follows.
24885
24886       cb  Set the chroma blue spot. Allowed range is from -1 to 1.  Default
24887           value is 0.
24888
24889       cr  Set the chroma red spot. Allowed range is from -1 to 1.  Default
24890           value is 0.
24891
24892       size
24893           Set the color filter size. Allowed range is from .1 to 10.  Default
24894           value is 1.
24895
24896       high
24897           Set the highlights strength. Allowed range is from 0 to 1.  Default
24898           value is 0.
24899
24900       Commands
24901
24902       This filter supports the all above options as commands.
24903
24904   morpho
24905       This filter allows to apply main morphological grayscale transforms,
24906       erode and dilate with arbitrary structures set in second input stream.
24907
24908       Unlike naive implementation and much slower performance in erosion and
24909       dilation filters, when speed is critical "morpho" filter should be used
24910       instead.
24911
24912       A description of accepted options follows,
24913
24914       mode
24915           Set morphological transform to apply, can be:
24916
24917           erode
24918           dilate
24919           open
24920           close
24921           gradient
24922           tophat
24923           blackhat
24924
24925           Default is "erode".
24926
24927       planes
24928           Set planes to filter, by default all planes except alpha are
24929           filtered.
24930
24931       structure
24932           Set which structure video frames will be processed from second
24933           input stream, can be first or all. Default is all.
24934
24935       The "morpho" filter also supports the framesync options.
24936
24937       Commands
24938
24939       This filter supports same commands as options.
24940
24941   mpdecimate
24942       Drop frames that do not differ greatly from the previous frame in order
24943       to reduce frame rate.
24944
24945       The main use of this filter is for very-low-bitrate encoding (e.g.
24946       streaming over dialup modem), but it could in theory be used for fixing
24947       movies that were inverse-telecined incorrectly.
24948
24949       A description of the accepted options follows.
24950
24951       max Set the maximum number of consecutive frames which can be dropped
24952           (if positive), or the minimum interval between dropped frames (if
24953           negative). If the value is 0, the frame is dropped disregarding the
24954           number of previous sequentially dropped frames.
24955
24956           Default value is 0.
24957
24958       hi
24959       lo
24960       frac
24961           Set the dropping threshold values.
24962
24963           Values for hi and lo are for 8x8 pixel blocks and represent actual
24964           pixel value differences, so a threshold of 64 corresponds to 1 unit
24965           of difference for each pixel, or the same spread out differently
24966           over the block.
24967
24968           A frame is a candidate for dropping if no 8x8 blocks differ by more
24969           than a threshold of hi, and if no more than frac blocks (1 meaning
24970           the whole image) differ by more than a threshold of lo.
24971
24972           Default value for hi is 64*12, default value for lo is 64*5, and
24973           default value for frac is 0.33.
24974
24975   msad
24976       Obtain the MSAD (Mean Sum of Absolute Differences) between two input
24977       videos.
24978
24979       This filter takes two input videos.
24980
24981       Both input videos must have the same resolution and pixel format for
24982       this filter to work correctly. Also it assumes that both inputs have
24983       the same number of frames, which are compared one by one.
24984
24985       The obtained per component, average, min and max MSAD is printed
24986       through the logging system.
24987
24988       The filter stores the calculated MSAD of each frame in frame metadata.
24989
24990       This filter also supports the framesync options.
24991
24992       In the below example the input file main.mpg being processed is
24993       compared with the reference file ref.mpg.
24994
24995               ffmpeg -i main.mpg -i ref.mpg -lavfi msad -f null -
24996
24997   multiply
24998       Multiply first video stream pixels values with second video stream
24999       pixels values.
25000
25001       The filter accepts the following options:
25002
25003       scale
25004           Set the scale applied to second video stream. By default is 1.
25005           Allowed range is from 0 to 9.
25006
25007       offset
25008           Set the offset applied to second video stream. By default is 0.5.
25009           Allowed range is from -1 to 1.
25010
25011       planes
25012           Specify planes from input video stream that will be processed.  By
25013           default all planes are processed.
25014
25015       Commands
25016
25017       This filter supports same commands as options.
25018
25019   negate
25020       Negate (invert) the input video.
25021
25022       It accepts the following option:
25023
25024       components
25025           Set components to negate.
25026
25027           Available values for components are:
25028
25029           y
25030           u
25031           v
25032           a
25033           r
25034           g
25035           b
25036       negate_alpha
25037           With value 1, it negates the alpha component, if present. Default
25038           value is 0.
25039
25040       Commands
25041
25042       This filter supports same commands as options.
25043
25044   nlmeans
25045       Denoise frames using Non-Local Means algorithm.
25046
25047       Each pixel is adjusted by looking for other pixels with similar
25048       contexts. This context similarity is defined by comparing their
25049       surrounding patches of size pxp. Patches are searched in an area of rxr
25050       around the pixel.
25051
25052       Note that the research area defines centers for patches, which means
25053       some patches will be made of pixels outside that research area.
25054
25055       The filter accepts the following options.
25056
25057       s   Set denoising strength. Default is 1.0. Must be in range [1.0,
25058           30.0].
25059
25060       p   Set patch size. Default is 7. Must be odd number in range [0, 99].
25061
25062       pc  Same as p but for chroma planes.
25063
25064           The default value is 0 and means automatic.
25065
25066       r   Set research size. Default is 15. Must be odd number in range [0,
25067           99].
25068
25069       rc  Same as r but for chroma planes.
25070
25071           The default value is 0 and means automatic.
25072
25073   nnedi
25074       Deinterlace video using neural network edge directed interpolation.
25075
25076       This filter accepts the following options:
25077
25078       weights
25079           Mandatory option, without binary file filter can not work.
25080           Currently file can be found here:
25081           https://github.com/dubhater/vapoursynth-nnedi3/blob/master/src/nnedi3_weights.bin
25082
25083       deint
25084           Set which frames to deinterlace, by default it is "all".  Can be
25085           "all" or "interlaced".
25086
25087       field
25088           Set mode of operation.
25089
25090           Can be one of the following:
25091
25092           af  Use frame flags, both fields.
25093
25094           a   Use frame flags, single field.
25095
25096           t   Use top field only.
25097
25098           b   Use bottom field only.
25099
25100           tf  Use both fields, top first.
25101
25102           bf  Use both fields, bottom first.
25103
25104       planes
25105           Set which planes to process, by default filter process all frames.
25106
25107       nsize
25108           Set size of local neighborhood around each pixel, used by the
25109           predictor neural network.
25110
25111           Can be one of the following:
25112
25113           s8x6
25114           s16x6
25115           s32x6
25116           s48x6
25117           s8x4
25118           s16x4
25119           s32x4
25120       nns Set the number of neurons in predictor neural network.  Can be one
25121           of the following:
25122
25123           n16
25124           n32
25125           n64
25126           n128
25127           n256
25128       qual
25129           Controls the number of different neural network predictions that
25130           are blended together to compute the final output value. Can be
25131           "fast", default or "slow".
25132
25133       etype
25134           Set which set of weights to use in the predictor.  Can be one of
25135           the following:
25136
25137           a, abs
25138               weights trained to minimize absolute error
25139
25140           s, mse
25141               weights trained to minimize squared error
25142
25143       pscrn
25144           Controls whether or not the prescreener neural network is used to
25145           decide which pixels should be processed by the predictor neural
25146           network and which can be handled by simple cubic interpolation.
25147           The prescreener is trained to know whether cubic interpolation will
25148           be sufficient for a pixel or whether it should be predicted by the
25149           predictor nn.  The computational complexity of the prescreener nn
25150           is much less than that of the predictor nn. Since most pixels can
25151           be handled by cubic interpolation, using the prescreener generally
25152           results in much faster processing.  The prescreener is pretty
25153           accurate, so the difference between using it and not using it is
25154           almost always unnoticeable.
25155
25156           Can be one of the following:
25157
25158           none
25159           original
25160           new
25161           new2
25162           new3
25163
25164           Default is "new".
25165
25166       Commands
25167
25168       This filter supports same commands as options, excluding weights
25169       option.
25170
25171   noformat
25172       Force libavfilter not to use any of the specified pixel formats for the
25173       input to the next filter.
25174
25175       It accepts the following parameters:
25176
25177       pix_fmts
25178           A '|'-separated list of pixel format names, such as
25179           pix_fmts=yuv420p|monow|rgb24".
25180
25181       Examples
25182
25183       •   Force libavfilter to use a format different from yuv420p for the
25184           input to the vflip filter:
25185
25186                   noformat=pix_fmts=yuv420p,vflip
25187
25188       •   Convert the input video to any of the formats not contained in the
25189           list:
25190
25191                   noformat=yuv420p|yuv444p|yuv410p
25192
25193   noise
25194       Add noise on video input frame.
25195
25196       The filter accepts the following options:
25197
25198       all_seed
25199       c0_seed
25200       c1_seed
25201       c2_seed
25202       c3_seed
25203           Set noise seed for specific pixel component or all pixel components
25204           in case of all_seed. Default value is 123457.
25205
25206       all_strength, alls
25207       c0_strength, c0s
25208       c1_strength, c1s
25209       c2_strength, c2s
25210       c3_strength, c3s
25211           Set noise strength for specific pixel component or all pixel
25212           components in case all_strength. Default value is 0. Allowed range
25213           is [0, 100].
25214
25215       all_flags, allf
25216       c0_flags, c0f
25217       c1_flags, c1f
25218       c2_flags, c2f
25219       c3_flags, c3f
25220           Set pixel component flags or set flags for all components if
25221           all_flags.  Available values for component flags are:
25222
25223           a   averaged temporal noise (smoother)
25224
25225           p   mix random noise with a (semi)regular pattern
25226
25227           t   temporal noise (noise pattern changes between frames)
25228
25229           u   uniform noise (gaussian otherwise)
25230
25231       Examples
25232
25233       Add temporal and uniform noise to input video:
25234
25235               noise=alls=20:allf=t+u
25236
25237   normalize
25238       Normalize RGB video (aka histogram stretching, contrast stretching).
25239       See: https://en.wikipedia.org/wiki/Normalization_(image_processing)
25240
25241       For each channel of each frame, the filter computes the input range and
25242       maps it linearly to the user-specified output range. The output range
25243       defaults to the full dynamic range from pure black to pure white.
25244
25245       Temporal smoothing can be used on the input range to reduce flickering
25246       (rapid changes in brightness) caused when small dark or bright objects
25247       enter or leave the scene. This is similar to the auto-exposure
25248       (automatic gain control) on a video camera, and, like a video camera,
25249       it may cause a period of over- or under-exposure of the video.
25250
25251       The R,G,B channels can be normalized independently, which may cause
25252       some color shifting, or linked together as a single channel, which
25253       prevents color shifting. Linked normalization preserves hue.
25254       Independent normalization does not, so it can be used to remove some
25255       color casts. Independent and linked normalization can be combined in
25256       any ratio.
25257
25258       The normalize filter accepts the following options:
25259
25260       blackpt
25261       whitept
25262           Colors which define the output range. The minimum input value is
25263           mapped to the blackpt. The maximum input value is mapped to the
25264           whitept.  The defaults are black and white respectively. Specifying
25265           white for blackpt and black for whitept will give color-inverted,
25266           normalized video. Shades of grey can be used to reduce the dynamic
25267           range (contrast). Specifying saturated colors here can create some
25268           interesting effects.
25269
25270       smoothing
25271           The number of previous frames to use for temporal smoothing. The
25272           input range of each channel is smoothed using a rolling average
25273           over the current frame and the smoothing previous frames. The
25274           default is 0 (no temporal smoothing).
25275
25276       independence
25277           Controls the ratio of independent (color shifting) channel
25278           normalization to linked (color preserving) normalization. 0.0 is
25279           fully linked, 1.0 is fully independent. Defaults to 1.0 (fully
25280           independent).
25281
25282       strength
25283           Overall strength of the filter. 1.0 is full strength. 0.0 is a
25284           rather expensive no-op. Defaults to 1.0 (full strength).
25285
25286       Commands
25287
25288       This filter supports same commands as options, excluding smoothing
25289       option.  The command accepts the same syntax of the corresponding
25290       option.
25291
25292       If the specified expression is not valid, it is kept at its current
25293       value.
25294
25295       Examples
25296
25297       Stretch video contrast to use the full dynamic range, with no temporal
25298       smoothing; may flicker depending on the source content:
25299
25300               normalize=blackpt=black:whitept=white:smoothing=0
25301
25302       As above, but with 50 frames of temporal smoothing; flicker should be
25303       reduced, depending on the source content:
25304
25305               normalize=blackpt=black:whitept=white:smoothing=50
25306
25307       As above, but with hue-preserving linked channel normalization:
25308
25309               normalize=blackpt=black:whitept=white:smoothing=50:independence=0
25310
25311       As above, but with half strength:
25312
25313               normalize=blackpt=black:whitept=white:smoothing=50:independence=0:strength=0.5
25314
25315       Map the darkest input color to red, the brightest input color to cyan:
25316
25317               normalize=blackpt=red:whitept=cyan
25318
25319   null
25320       Pass the video source unchanged to the output.
25321
25322   ocr
25323       Optical Character Recognition
25324
25325       This filter uses Tesseract for optical character recognition. To enable
25326       compilation of this filter, you need to configure FFmpeg with
25327       "--enable-libtesseract".
25328
25329       It accepts the following options:
25330
25331       datapath
25332           Set datapath to tesseract data. Default is to use whatever was set
25333           at installation.
25334
25335       language
25336           Set language, default is "eng".
25337
25338       whitelist
25339           Set character whitelist.
25340
25341       blacklist
25342           Set character blacklist.
25343
25344       The filter exports recognized text as the frame metadata
25345       "lavfi.ocr.text".  The filter exports confidence of recognized words as
25346       the frame metadata "lavfi.ocr.confidence".
25347
25348   ocv
25349       Apply a video transform using libopencv.
25350
25351       To enable this filter, install the libopencv library and headers and
25352       configure FFmpeg with "--enable-libopencv".
25353
25354       It accepts the following parameters:
25355
25356       filter_name
25357           The name of the libopencv filter to apply.
25358
25359       filter_params
25360           The parameters to pass to the libopencv filter. If not specified,
25361           the default values are assumed.
25362
25363       Refer to the official libopencv documentation for more precise
25364       information:
25365       <http://docs.opencv.org/master/modules/imgproc/doc/filtering.html>
25366
25367       Several libopencv filters are supported; see the following subsections.
25368
25369       dilate
25370
25371       Dilate an image by using a specific structuring element.  It
25372       corresponds to the libopencv function "cvDilate".
25373
25374       It accepts the parameters: struct_el|nb_iterations.
25375
25376       struct_el represents a structuring element, and has the syntax:
25377       colsxrows+anchor_xxanchor_y/shape
25378
25379       cols and rows represent the number of columns and rows of the
25380       structuring element, anchor_x and anchor_y the anchor point, and shape
25381       the shape for the structuring element. shape must be "rect", "cross",
25382       "ellipse", or "custom".
25383
25384       If the value for shape is "custom", it must be followed by a string of
25385       the form "=filename". The file with name filename is assumed to
25386       represent a binary image, with each printable character corresponding
25387       to a bright pixel. When a custom shape is used, cols and rows are
25388       ignored, the number or columns and rows of the read file are assumed
25389       instead.
25390
25391       The default value for struct_el is "3x3+0x0/rect".
25392
25393       nb_iterations specifies the number of times the transform is applied to
25394       the image, and defaults to 1.
25395
25396       Some examples:
25397
25398               # Use the default values
25399               ocv=dilate
25400
25401               # Dilate using a structuring element with a 5x5 cross, iterating two times
25402               ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2
25403
25404               # Read the shape from the file diamond.shape, iterating two times.
25405               # The file diamond.shape may contain a pattern of characters like this
25406               #   *
25407               #  ***
25408               # *****
25409               #  ***
25410               #   *
25411               # The specified columns and rows are ignored
25412               # but the anchor point coordinates are not
25413               ocv=dilate:0x0+2x2/custom=diamond.shape|2
25414
25415       erode
25416
25417       Erode an image by using a specific structuring element.  It corresponds
25418       to the libopencv function "cvErode".
25419
25420       It accepts the parameters: struct_el:nb_iterations, with the same
25421       syntax and semantics as the dilate filter.
25422
25423       smooth
25424
25425       Smooth the input video.
25426
25427       The filter takes the following parameters:
25428       type|param1|param2|param3|param4.
25429
25430       type is the type of smooth filter to apply, and must be one of the
25431       following values: "blur", "blur_no_scale", "median", "gaussian", or
25432       "bilateral". The default value is "gaussian".
25433
25434       The meaning of param1, param2, param3, and param4 depends on the smooth
25435       type. param1 and param2 accept integer positive values or 0. param3 and
25436       param4 accept floating point values.
25437
25438       The default value for param1 is 3. The default value for the other
25439       parameters is 0.
25440
25441       These parameters correspond to the parameters assigned to the libopencv
25442       function "cvSmooth".
25443
25444   oscilloscope
25445       2D Video Oscilloscope.
25446
25447       Useful to measure spatial impulse, step responses, chroma delays, etc.
25448
25449       It accepts the following parameters:
25450
25451       x   Set scope center x position.
25452
25453       y   Set scope center y position.
25454
25455       s   Set scope size, relative to frame diagonal.
25456
25457       t   Set scope tilt/rotation.
25458
25459       o   Set trace opacity.
25460
25461       tx  Set trace center x position.
25462
25463       ty  Set trace center y position.
25464
25465       tw  Set trace width, relative to width of frame.
25466
25467       th  Set trace height, relative to height of frame.
25468
25469       c   Set which components to trace. By default it traces first three
25470           components.
25471
25472       g   Draw trace grid. By default is enabled.
25473
25474       st  Draw some statistics. By default is enabled.
25475
25476       sc  Draw scope. By default is enabled.
25477
25478       Commands
25479
25480       This filter supports same commands as options.  The command accepts the
25481       same syntax of the corresponding option.
25482
25483       If the specified expression is not valid, it is kept at its current
25484       value.
25485
25486       Examples
25487
25488       •   Inspect full first row of video frame.
25489
25490                   oscilloscope=x=0.5:y=0:s=1
25491
25492       •   Inspect full last row of video frame.
25493
25494                   oscilloscope=x=0.5:y=1:s=1
25495
25496       •   Inspect full 5th line of video frame of height 1080.
25497
25498                   oscilloscope=x=0.5:y=5/1080:s=1
25499
25500       •   Inspect full last column of video frame.
25501
25502                   oscilloscope=x=1:y=0.5:s=1:t=1
25503
25504   overlay
25505       Overlay one video on top of another.
25506
25507       It takes two inputs and has one output. The first input is the "main"
25508       video on which the second input is overlaid.
25509
25510       It accepts the following parameters:
25511
25512       A description of the accepted options follows.
25513
25514       x
25515       y   Set the expression for the x and y coordinates of the overlaid
25516           video on the main video. Default value is "0" for both expressions.
25517           In case the expression is invalid, it is set to a huge value
25518           (meaning that the overlay will not be displayed within the output
25519           visible area).
25520
25521       eof_action
25522           See framesync.
25523
25524       eval
25525           Set when the expressions for x, and y are evaluated.
25526
25527           It accepts the following values:
25528
25529           init
25530               only evaluate expressions once during the filter initialization
25531               or when a command is processed
25532
25533           frame
25534               evaluate expressions for each incoming frame
25535
25536           Default value is frame.
25537
25538       shortest
25539           See framesync.
25540
25541       format
25542           Set the format for the output video.
25543
25544           It accepts the following values:
25545
25546           yuv420
25547               force YUV420 output
25548
25549           yuv420p10
25550               force YUV420p10 output
25551
25552           yuv422
25553               force YUV422 output
25554
25555           yuv422p10
25556               force YUV422p10 output
25557
25558           yuv444
25559               force YUV444 output
25560
25561           rgb force packed RGB output
25562
25563           gbrp
25564               force planar RGB output
25565
25566           auto
25567               automatically pick format
25568
25569           Default value is yuv420.
25570
25571       repeatlast
25572           See framesync.
25573
25574       alpha
25575           Set format of alpha of the overlaid video, it can be straight or
25576           premultiplied. Default is straight.
25577
25578       The x, and y expressions can contain the following parameters.
25579
25580       main_w, W
25581       main_h, H
25582           The main input width and height.
25583
25584       overlay_w, w
25585       overlay_h, h
25586           The overlay input width and height.
25587
25588       x
25589       y   The computed values for x and y. They are evaluated for each new
25590           frame.
25591
25592       hsub
25593       vsub
25594           horizontal and vertical chroma subsample values of the output
25595           format. For example for the pixel format "yuv422p" hsub is 2 and
25596           vsub is 1.
25597
25598       n   the number of input frame, starting from 0
25599
25600       pos the position in the file of the input frame, NAN if unknown
25601
25602       t   The timestamp, expressed in seconds. It's NAN if the input
25603           timestamp is unknown.
25604
25605       This filter also supports the framesync options.
25606
25607       Note that the n, pos, t variables are available only when evaluation is
25608       done per frame, and will evaluate to NAN when eval is set to init.
25609
25610       Be aware that frames are taken from each input video in timestamp
25611       order, hence, if their initial timestamps differ, it is a good idea to
25612       pass the two inputs through a setpts=PTS-STARTPTS filter to have them
25613       begin in the same zero timestamp, as the example for the movie filter
25614       does.
25615
25616       You can chain together more overlays but you should test the efficiency
25617       of such approach.
25618
25619       Commands
25620
25621       This filter supports the following commands:
25622
25623       x
25624       y   Modify the x and y of the overlay input.  The command accepts the
25625           same syntax of the corresponding option.
25626
25627           If the specified expression is not valid, it is kept at its current
25628           value.
25629
25630       Examples
25631
25632       •   Draw the overlay at 10 pixels from the bottom right corner of the
25633           main video:
25634
25635                   overlay=main_w-overlay_w-10:main_h-overlay_h-10
25636
25637           Using named options the example above becomes:
25638
25639                   overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
25640
25641       •   Insert a transparent PNG logo in the bottom left corner of the
25642           input, using the ffmpeg tool with the "-filter_complex" option:
25643
25644                   ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
25645
25646       •   Insert 2 different transparent PNG logos (second logo on bottom
25647           right corner) using the ffmpeg tool:
25648
25649                   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
25650
25651       •   Add a transparent color layer on top of the main video; "WxH" must
25652           specify the size of the main input to the overlay filter:
25653
25654                   color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
25655
25656       •   Play an original video and a filtered version (here with the
25657           deshake filter) side by side using the ffplay tool:
25658
25659                   ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
25660
25661           The above command is the same as:
25662
25663                   ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
25664
25665       •   Make a sliding overlay appearing from the left to the right top
25666           part of the screen starting since time 2:
25667
25668                   overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
25669
25670       •   Compose output by putting two input videos side to side:
25671
25672                   ffmpeg -i left.avi -i right.avi -filter_complex "
25673                   nullsrc=size=200x100 [background];
25674                   [0:v] setpts=PTS-STARTPTS, scale=100x100 [left];
25675                   [1:v] setpts=PTS-STARTPTS, scale=100x100 [right];
25676                   [background][left]       overlay=shortest=1       [background+left];
25677                   [background+left][right] overlay=shortest=1:x=100 [left+right]
25678                   "
25679
25680       •   Mask 10-20 seconds of a video by applying the delogo filter to a
25681           section
25682
25683                   ffmpeg -i test.avi -codec:v:0 wmv2 -ar 11025 -b:v 9000k
25684                   -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]'
25685                   masked.avi
25686
25687       •   Chain several overlays in cascade:
25688
25689                   nullsrc=s=200x200 [bg];
25690                   testsrc=s=100x100, split=4 [in0][in1][in2][in3];
25691                   [in0] lutrgb=r=0, [bg]   overlay=0:0     [mid0];
25692                   [in1] lutrgb=g=0, [mid0] overlay=100:0   [mid1];
25693                   [in2] lutrgb=b=0, [mid1] overlay=0:100   [mid2];
25694                   [in3] null,       [mid2] overlay=100:100 [out0]
25695
25696   overlay_cuda
25697       Overlay one video on top of another.
25698
25699       This is the CUDA variant of the overlay filter.  It only accepts CUDA
25700       frames. The underlying input pixel formats have to match.
25701
25702       It takes two inputs and has one output. The first input is the "main"
25703       video on which the second input is overlaid.
25704
25705       It accepts the following parameters:
25706
25707       x
25708       y   Set expressions for the x and y coordinates of the overlaid video
25709           on the main video.
25710
25711           They can contain the following parameters:
25712
25713           main_w, W
25714           main_h, H
25715               The main input width and height.
25716
25717           overlay_w, w
25718           overlay_h, h
25719               The overlay input width and height.
25720
25721           x
25722           y   The computed values for x and y. They are evaluated for each
25723               new frame.
25724
25725           n   The ordinal index of the main input frame, starting from 0.
25726
25727           pos The byte offset position in the file of the main input frame,
25728               NAN if unknown.
25729
25730           t   The timestamp of the main input frame, expressed in seconds,
25731               NAN if unknown.
25732
25733           Default value is "0" for both expressions.
25734
25735       eval
25736           Set when the expressions for x and y are evaluated.
25737
25738           It accepts the following values:
25739
25740           init
25741               Evaluate expressions once during filter initialization or when
25742               a command is processed.
25743
25744           frame
25745               Evaluate expressions for each incoming frame
25746
25747           Default value is frame.
25748
25749       eof_action
25750           See framesync.
25751
25752       shortest
25753           See framesync.
25754
25755       repeatlast
25756           See framesync.
25757
25758       This filter also supports the framesync options.
25759
25760   owdenoise
25761       Apply Overcomplete Wavelet denoiser.
25762
25763       The filter accepts the following options:
25764
25765       depth
25766           Set depth.
25767
25768           Larger depth values will denoise lower frequency components more,
25769           but slow down filtering.
25770
25771           Must be an int in the range 8-16, default is 8.
25772
25773       luma_strength, ls
25774           Set luma strength.
25775
25776           Must be a double value in the range 0-1000, default is 1.0.
25777
25778       chroma_strength, cs
25779           Set chroma strength.
25780
25781           Must be a double value in the range 0-1000, default is 1.0.
25782
25783   pad
25784       Add paddings to the input image, and place the original input at the
25785       provided x, y coordinates.
25786
25787       It accepts the following parameters:
25788
25789       width, w
25790       height, h
25791           Specify an expression for the size of the output image with the
25792           paddings added. If the value for width or height is 0, the
25793           corresponding input size is used for the output.
25794
25795           The width expression can reference the value set by the height
25796           expression, and vice versa.
25797
25798           The default value of width and height is 0.
25799
25800       x
25801       y   Specify the offsets to place the input image at within the padded
25802           area, with respect to the top/left border of the output image.
25803
25804           The x expression can reference the value set by the y expression,
25805           and vice versa.
25806
25807           The default value of x and y is 0.
25808
25809           If x or y evaluate to a negative number, they'll be changed so the
25810           input image is centered on the padded area.
25811
25812       color
25813           Specify the color of the padded area. For the syntax of this
25814           option, check the "Color" section in the ffmpeg-utils manual.
25815
25816           The default value of color is "black".
25817
25818       eval
25819           Specify when to evaluate  width, height, x and y expression.
25820
25821           It accepts the following values:
25822
25823           init
25824               Only evaluate expressions once during the filter initialization
25825               or when a command is processed.
25826
25827           frame
25828               Evaluate expressions for each incoming frame.
25829
25830           Default value is init.
25831
25832       aspect
25833           Pad to aspect instead to a resolution.
25834
25835       The value for the width, height, x, and y options are expressions
25836       containing the following constants:
25837
25838       in_w
25839       in_h
25840           The input video width and height.
25841
25842       iw
25843       ih  These are the same as in_w and in_h.
25844
25845       out_w
25846       out_h
25847           The output width and height (the size of the padded area), as
25848           specified by the width and height expressions.
25849
25850       ow
25851       oh  These are the same as out_w and out_h.
25852
25853       x
25854       y   The x and y offsets as specified by the x and y expressions, or NAN
25855           if not yet specified.
25856
25857       a   same as iw / ih
25858
25859       sar input sample aspect ratio
25860
25861       dar input display aspect ratio, it is the same as (iw / ih) * sar
25862
25863       hsub
25864       vsub
25865           The horizontal and vertical chroma subsample values. For example
25866           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
25867
25868       Examples
25869
25870       •   Add paddings with the color "violet" to the input video. The output
25871           video size is 640x480, and the top-left corner of the input video
25872           is placed at column 0, row 40
25873
25874                   pad=640:480:0:40:violet
25875
25876           The example above is equivalent to the following command:
25877
25878                   pad=width=640:height=480:x=0:y=40:color=violet
25879
25880       •   Pad the input to get an output with dimensions increased by 3/2,
25881           and put the input video at the center of the padded area:
25882
25883                   pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
25884
25885       •   Pad the input to get a squared output with size equal to the
25886           maximum value between the input width and height, and put the input
25887           video at the center of the padded area:
25888
25889                   pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
25890
25891       •   Pad the input to get a final w/h ratio of 16:9:
25892
25893                   pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
25894
25895       •   In case of anamorphic video, in order to set the output display
25896           aspect correctly, it is necessary to use sar in the expression,
25897           according to the relation:
25898
25899                   (ih * X / ih) * sar = output_dar
25900                   X = output_dar / sar
25901
25902           Thus the previous example needs to be modified to:
25903
25904                   pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
25905
25906       •   Double the output size and put the input video in the bottom-right
25907           corner of the output padded area:
25908
25909                   pad="2*iw:2*ih:ow-iw:oh-ih"
25910
25911   palettegen
25912       Generate one palette for a whole video stream.
25913
25914       It accepts the following options:
25915
25916       max_colors
25917           Set the maximum number of colors to quantize in the palette.  Note:
25918           the palette will still contain 256 colors; the unused palette
25919           entries will be black.
25920
25921       reserve_transparent
25922           Create a palette of 255 colors maximum and reserve the last one for
25923           transparency. Reserving the transparency color is useful for GIF
25924           optimization.  If not set, the maximum of colors in the palette
25925           will be 256. You probably want to disable this option for a
25926           standalone image.  Set by default.
25927
25928       transparency_color
25929           Set the color that will be used as background for transparency.
25930
25931       stats_mode
25932           Set statistics mode.
25933
25934           It accepts the following values:
25935
25936           full
25937               Compute full frame histograms.
25938
25939           diff
25940               Compute histograms only for the part that differs from previous
25941               frame. This might be relevant to give more importance to the
25942               moving part of your input if the background is static.
25943
25944           single
25945               Compute new histogram for each frame.
25946
25947           Default value is full.
25948
25949       The filter also exports the frame metadata "lavfi.color_quant_ratio"
25950       ("nb_color_in / nb_color_out") which you can use to evaluate the degree
25951       of color quantization of the palette. This information is also visible
25952       at info logging level.
25953
25954       Examples
25955
25956       •   Generate a representative palette of a given video using ffmpeg:
25957
25958                   ffmpeg -i input.mkv -vf palettegen palette.png
25959
25960   paletteuse
25961       Use a palette to downsample an input video stream.
25962
25963       The filter takes two inputs: one video stream and a palette. The
25964       palette must be a 256 pixels image.
25965
25966       It accepts the following options:
25967
25968       dither
25969           Select dithering mode. Available algorithms are:
25970
25971           bayer
25972               Ordered 8x8 bayer dithering (deterministic)
25973
25974           heckbert
25975               Dithering as defined by Paul Heckbert in 1982 (simple error
25976               diffusion).  Note: this dithering is sometimes considered
25977               "wrong" and is included as a reference.
25978
25979           floyd_steinberg
25980               Floyd and Steingberg dithering (error diffusion)
25981
25982           sierra2
25983               Frankie Sierra dithering v2 (error diffusion)
25984
25985           sierra2_4a
25986               Frankie Sierra dithering v2 "Lite" (error diffusion)
25987
25988           sierra3
25989               Frankie Sierra dithering v3 (error diffusion)
25990
25991           burkes
25992               Burkes dithering (error diffusion)
25993
25994           atkinson
25995               Atkinson dithering by Bill Atkinson at Apple Computer (error
25996               diffusion)
25997
25998           Default is sierra2_4a.
25999
26000       bayer_scale
26001           When bayer dithering is selected, this option defines the scale of
26002           the pattern (how much the crosshatch pattern is visible). A low
26003           value means more visible pattern for less banding, and higher value
26004           means less visible pattern at the cost of more banding.
26005
26006           The option must be an integer value in the range [0,5]. Default is
26007           2.
26008
26009       diff_mode
26010           If set, define the zone to process
26011
26012           rectangle
26013               Only the changing rectangle will be reprocessed. This is
26014               similar to GIF cropping/offsetting compression mechanism. This
26015               option can be useful for speed if only a part of the image is
26016               changing, and has use cases such as limiting the scope of the
26017               error diffusal dither to the rectangle that bounds the moving
26018               scene (it leads to more deterministic output if the scene
26019               doesn't change much, and as a result less moving noise and
26020               better GIF compression).
26021
26022           Default is none.
26023
26024       new Take new palette for each output frame.
26025
26026       alpha_threshold
26027           Sets the alpha threshold for transparency. Alpha values above this
26028           threshold will be treated as completely opaque, and values below
26029           this threshold will be treated as completely transparent.
26030
26031           The option must be an integer value in the range [0,255]. Default
26032           is 128.
26033
26034       Examples
26035
26036       •   Use a palette (generated for example with palettegen) to encode a
26037           GIF using ffmpeg:
26038
26039                   ffmpeg -i input.mkv -i palette.png -lavfi paletteuse output.gif
26040
26041   perspective
26042       Correct perspective of video not recorded perpendicular to the screen.
26043
26044       A description of the accepted parameters follows.
26045
26046       x0
26047       y0
26048       x1
26049       y1
26050       x2
26051       y2
26052       x3
26053       y3  Set coordinates expression for top left, top right, bottom left and
26054           bottom right corners.  Default values are "0:0:W:0:0:H:W:H" with
26055           which perspective will remain unchanged.  If the "sense" option is
26056           set to "source", then the specified points will be sent to the
26057           corners of the destination. If the "sense" option is set to
26058           "destination", then the corners of the source will be sent to the
26059           specified coordinates.
26060
26061           The expressions can use the following variables:
26062
26063           W
26064           H   the width and height of video frame.
26065
26066           in  Input frame count.
26067
26068           on  Output frame count.
26069
26070       interpolation
26071           Set interpolation for perspective correction.
26072
26073           It accepts the following values:
26074
26075           linear
26076           cubic
26077
26078           Default value is linear.
26079
26080       sense
26081           Set interpretation of coordinate options.
26082
26083           It accepts the following values:
26084
26085           0, source
26086               Send point in the source specified by the given coordinates to
26087               the corners of the destination.
26088
26089           1, destination
26090               Send the corners of the source to the point in the destination
26091               specified by the given coordinates.
26092
26093               Default value is source.
26094
26095       eval
26096           Set when the expressions for coordinates x0,y0,...x3,y3 are
26097           evaluated.
26098
26099           It accepts the following values:
26100
26101           init
26102               only evaluate expressions once during the filter initialization
26103               or when a command is processed
26104
26105           frame
26106               evaluate expressions for each incoming frame
26107
26108           Default value is init.
26109
26110   phase
26111       Delay interlaced video by one field time so that the field order
26112       changes.
26113
26114       The intended use is to fix PAL movies that have been captured with the
26115       opposite field order to the film-to-video transfer.
26116
26117       A description of the accepted parameters follows.
26118
26119       mode
26120           Set phase mode.
26121
26122           It accepts the following values:
26123
26124           t   Capture field order top-first, transfer bottom-first.  Filter
26125               will delay the bottom field.
26126
26127           b   Capture field order bottom-first, transfer top-first.  Filter
26128               will delay the top field.
26129
26130           p   Capture and transfer with the same field order. This mode only
26131               exists for the documentation of the other options to refer to,
26132               but if you actually select it, the filter will faithfully do
26133               nothing.
26134
26135           a   Capture field order determined automatically by field flags,
26136               transfer opposite.  Filter selects among t and b modes on a
26137               frame by frame basis using field flags. If no field information
26138               is available, then this works just like u.
26139
26140           u   Capture unknown or varying, transfer opposite.  Filter selects
26141               among t and b on a frame by frame basis by analyzing the images
26142               and selecting the alternative that produces best match between
26143               the fields.
26144
26145           T   Capture top-first, transfer unknown or varying.  Filter selects
26146               among t and p using image analysis.
26147
26148           B   Capture bottom-first, transfer unknown or varying.  Filter
26149               selects among b and p using image analysis.
26150
26151           A   Capture determined by field flags, transfer unknown or varying.
26152               Filter selects among t, b and p using field flags and image
26153               analysis. If no field information is available, then this works
26154               just like U. This is the default mode.
26155
26156           U   Both capture and transfer unknown or varying.  Filter selects
26157               among t, b and p using image analysis only.
26158
26159       Commands
26160
26161       This filter supports the all above options as commands.
26162
26163   photosensitivity
26164       Reduce various flashes in video, so to help users with epilepsy.
26165
26166       It accepts the following options:
26167
26168       frames, f
26169           Set how many frames to use when filtering. Default is 30.
26170
26171       threshold, t
26172           Set detection threshold factor. Default is 1.  Lower is stricter.
26173
26174       skip
26175           Set how many pixels to skip when sampling frames. Default is 1.
26176           Allowed range is from 1 to 1024.
26177
26178       bypass
26179           Leave frames unchanged. Default is disabled.
26180
26181   pixdesctest
26182       Pixel format descriptor test filter, mainly useful for internal
26183       testing. The output video should be equal to the input video.
26184
26185       For example:
26186
26187               format=monow, pixdesctest
26188
26189       can be used to test the monowhite pixel format descriptor definition.
26190
26191   pixelize
26192       Apply pixelization to video stream.
26193
26194       The filter accepts the following options:
26195
26196       width, w
26197       height, h
26198           Set block dimensions that will be used for pixelization.  Default
26199           value is 16.
26200
26201       mode, m
26202           Set the mode of pixelization used.
26203
26204           Possible values are:
26205
26206           avg
26207           min
26208           max
26209
26210           Default value is "avg".
26211
26212       planes, p
26213           Set what planes to filter. Default is to filter all planes.
26214
26215       Commands
26216
26217       This filter supports all options as commands.
26218
26219   pixscope
26220       Display sample values of color channels. Mainly useful for checking
26221       color and levels. Minimum supported resolution is 640x480.
26222
26223       The filters accept the following options:
26224
26225       x   Set scope X position, relative offset on X axis.
26226
26227       y   Set scope Y position, relative offset on Y axis.
26228
26229       w   Set scope width.
26230
26231       h   Set scope height.
26232
26233       o   Set window opacity. This window also holds statistics about pixel
26234           area.
26235
26236       wx  Set window X position, relative offset on X axis.
26237
26238       wy  Set window Y position, relative offset on Y axis.
26239
26240       Commands
26241
26242       This filter supports same commands as options.
26243
26244   pp
26245       Enable the specified chain of postprocessing subfilters using
26246       libpostproc. This library should be automatically selected with a GPL
26247       build ("--enable-gpl").  Subfilters must be separated by '/' and can be
26248       disabled by prepending a '-'.  Each subfilter and some options have a
26249       short and a long name that can be used interchangeably, i.e. dr/dering
26250       are the same.
26251
26252       The filters accept the following options:
26253
26254       subfilters
26255           Set postprocessing subfilters string.
26256
26257       All subfilters share common options to determine their scope:
26258
26259       a/autoq
26260           Honor the quality commands for this subfilter.
26261
26262       c/chrom
26263           Do chrominance filtering, too (default).
26264
26265       y/nochrom
26266           Do luminance filtering only (no chrominance).
26267
26268       n/noluma
26269           Do chrominance filtering only (no luminance).
26270
26271       These options can be appended after the subfilter name, separated by a
26272       '|'.
26273
26274       Available subfilters are:
26275
26276       hb/hdeblock[|difference[|flatness]]
26277           Horizontal deblocking filter
26278
26279           difference
26280               Difference factor where higher values mean more deblocking
26281               (default: 32).
26282
26283           flatness
26284               Flatness threshold where lower values mean more deblocking
26285               (default: 39).
26286
26287       vb/vdeblock[|difference[|flatness]]
26288           Vertical deblocking filter
26289
26290           difference
26291               Difference factor where higher values mean more deblocking
26292               (default: 32).
26293
26294           flatness
26295               Flatness threshold where lower values mean more deblocking
26296               (default: 39).
26297
26298       ha/hadeblock[|difference[|flatness]]
26299           Accurate horizontal deblocking filter
26300
26301           difference
26302               Difference factor where higher values mean more deblocking
26303               (default: 32).
26304
26305           flatness
26306               Flatness threshold where lower values mean more deblocking
26307               (default: 39).
26308
26309       va/vadeblock[|difference[|flatness]]
26310           Accurate vertical deblocking filter
26311
26312           difference
26313               Difference factor where higher values mean more deblocking
26314               (default: 32).
26315
26316           flatness
26317               Flatness threshold where lower values mean more deblocking
26318               (default: 39).
26319
26320       The horizontal and vertical deblocking filters share the difference and
26321       flatness values so you cannot set different horizontal and vertical
26322       thresholds.
26323
26324       h1/x1hdeblock
26325           Experimental horizontal deblocking filter
26326
26327       v1/x1vdeblock
26328           Experimental vertical deblocking filter
26329
26330       dr/dering
26331           Deringing filter
26332
26333       tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise
26334       reducer
26335           threshold1
26336               larger -> stronger filtering
26337
26338           threshold2
26339               larger -> stronger filtering
26340
26341           threshold3
26342               larger -> stronger filtering
26343
26344       al/autolevels[:f/fullyrange], automatic brightness / contrast
26345       correction
26346           f/fullyrange
26347               Stretch luminance to "0-255".
26348
26349       lb/linblenddeint
26350           Linear blend deinterlacing filter that deinterlaces the given block
26351           by filtering all lines with a "(1 2 1)" filter.
26352
26353       li/linipoldeint
26354           Linear interpolating deinterlacing filter that deinterlaces the
26355           given block by linearly interpolating every second line.
26356
26357       ci/cubicipoldeint
26358           Cubic interpolating deinterlacing filter deinterlaces the given
26359           block by cubically interpolating every second line.
26360
26361       md/mediandeint
26362           Median deinterlacing filter that deinterlaces the given block by
26363           applying a median filter to every second line.
26364
26365       fd/ffmpegdeint
26366           FFmpeg deinterlacing filter that deinterlaces the given block by
26367           filtering every second line with a "(-1 4 2 4 -1)" filter.
26368
26369       l5/lowpass5
26370           Vertically applied FIR lowpass deinterlacing filter that
26371           deinterlaces the given block by filtering all lines with a "(-1 2 6
26372           2 -1)" filter.
26373
26374       fq/forceQuant[|quantizer]
26375           Overrides the quantizer table from the input with the constant
26376           quantizer you specify.
26377
26378           quantizer
26379               Quantizer to use
26380
26381       de/default
26382           Default pp filter combination ("hb|a,vb|a,dr|a")
26383
26384       fa/fast
26385           Fast pp filter combination ("h1|a,v1|a,dr|a")
26386
26387       ac  High quality pp filter combination ("ha|a|128|7,va|a,dr|a")
26388
26389       Examples
26390
26391       •   Apply horizontal and vertical deblocking, deringing and automatic
26392           brightness/contrast:
26393
26394                   pp=hb/vb/dr/al
26395
26396       •   Apply default filters without brightness/contrast correction:
26397
26398                   pp=de/-al
26399
26400       •   Apply default filters and temporal denoiser:
26401
26402                   pp=default/tmpnoise|1|2|3
26403
26404       •   Apply deblocking on luminance only, and switch vertical deblocking
26405           on or off automatically depending on available CPU time:
26406
26407                   pp=hb|y/vb|a
26408
26409   pp7
26410       Apply Postprocessing filter 7. It is variant of the spp filter, similar
26411       to spp = 6 with 7 point DCT, where only the center sample is used after
26412       IDCT.
26413
26414       The filter accepts the following options:
26415
26416       qp  Force a constant quantization parameter. It accepts an integer in
26417           range 0 to 63. If not set, the filter will use the QP from the
26418           video stream (if available).
26419
26420       mode
26421           Set thresholding mode. Available modes are:
26422
26423           hard
26424               Set hard thresholding.
26425
26426           soft
26427               Set soft thresholding (better de-ringing effect, but likely
26428               blurrier).
26429
26430           medium
26431               Set medium thresholding (good results, default).
26432
26433   premultiply
26434       Apply alpha premultiply effect to input video stream using first plane
26435       of second stream as alpha.
26436
26437       Both streams must have same dimensions and same pixel format.
26438
26439       The filter accepts the following option:
26440
26441       planes
26442           Set which planes will be processed, unprocessed planes will be
26443           copied.  By default value 0xf, all planes will be processed.
26444
26445       inplace
26446           Do not require 2nd input for processing, instead use alpha plane
26447           from input stream.
26448
26449   prewitt
26450       Apply prewitt operator to input video stream.
26451
26452       The filter accepts the following option:
26453
26454       planes
26455           Set which planes will be processed, unprocessed planes will be
26456           copied.  By default value 0xf, all planes will be processed.
26457
26458       scale
26459           Set value which will be multiplied with filtered result.
26460
26461       delta
26462           Set value which will be added to filtered result.
26463
26464       Commands
26465
26466       This filter supports the all above options as commands.
26467
26468   pseudocolor
26469       Alter frame colors in video with pseudocolors.
26470
26471       This filter accepts the following options:
26472
26473       c0  set pixel first component expression
26474
26475       c1  set pixel second component expression
26476
26477       c2  set pixel third component expression
26478
26479       c3  set pixel fourth component expression, corresponds to the alpha
26480           component
26481
26482       index, i
26483           set component to use as base for altering colors
26484
26485       preset, p
26486           Pick one of built-in LUTs. By default is set to none.
26487
26488           Available LUTs:
26489
26490           magma
26491           inferno
26492           plasma
26493           viridis
26494           turbo
26495           cividis
26496           range1
26497           range2
26498           shadows
26499           highlights
26500           solar
26501           nominal
26502           preferred
26503           total
26504           spectral
26505       opacity
26506           Set opacity of output colors. Allowed range is from 0 to 1.
26507           Default value is set to 1.
26508
26509       Each of the expression options specifies the expression to use for
26510       computing the lookup table for the corresponding pixel component
26511       values.
26512
26513       The expressions can contain the following constants and functions:
26514
26515       w
26516       h   The input width and height.
26517
26518       val The input value for the pixel component.
26519
26520       ymin, umin, vmin, amin
26521           The minimum allowed component value.
26522
26523       ymax, umax, vmax, amax
26524           The maximum allowed component value.
26525
26526       All expressions default to "val".
26527
26528       Commands
26529
26530       This filter supports the all above options as commands.
26531
26532       Examples
26533
26534       •   Change too high luma values to gradient:
26535
26536                   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'"
26537
26538   psnr
26539       Obtain the average, maximum and minimum PSNR (Peak Signal to Noise
26540       Ratio) between two input videos.
26541
26542       This filter takes in input two input videos, the first input is
26543       considered the "main" source and is passed unchanged to the output. The
26544       second input is used as a "reference" video for computing the PSNR.
26545
26546       Both video inputs must have the same resolution and pixel format for
26547       this filter to work correctly. Also it assumes that both inputs have
26548       the same number of frames, which are compared one by one.
26549
26550       The obtained average PSNR is printed through the logging system.
26551
26552       The filter stores the accumulated MSE (mean squared error) of each
26553       frame, and at the end of the processing it is averaged across all
26554       frames equally, and the following formula is applied to obtain the
26555       PSNR:
26556
26557               PSNR = 10*log10(MAX^2/MSE)
26558
26559       Where MAX is the average of the maximum values of each component of the
26560       image.
26561
26562       The description of the accepted parameters follows.
26563
26564       stats_file, f
26565           If specified the filter will use the named file to save the PSNR of
26566           each individual frame. When filename equals "-" the data is sent to
26567           standard output.
26568
26569       stats_version
26570           Specifies which version of the stats file format to use. Details of
26571           each format are written below.  Default value is 1.
26572
26573       stats_add_max
26574           Determines whether the max value is output to the stats log.
26575           Default value is 0.  Requires stats_version >= 2. If this is set
26576           and stats_version < 2, the filter will return an error.
26577
26578       This filter also supports the framesync options.
26579
26580       The file printed if stats_file is selected, contains a sequence of
26581       key/value pairs of the form key:value for each compared couple of
26582       frames.
26583
26584       If a stats_version greater than 1 is specified, a header line precedes
26585       the list of per-frame-pair stats, with key value pairs following the
26586       frame format with the following parameters:
26587
26588       psnr_log_version
26589           The version of the log file format. Will match stats_version.
26590
26591       fields
26592           A comma separated list of the per-frame-pair parameters included in
26593           the log.
26594
26595       A description of each shown per-frame-pair parameter follows:
26596
26597       n   sequential number of the input frame, starting from 1
26598
26599       mse_avg
26600           Mean Square Error pixel-by-pixel average difference of the compared
26601           frames, averaged over all the image components.
26602
26603       mse_y, mse_u, mse_v, mse_r, mse_g, mse_b, mse_a
26604           Mean Square Error pixel-by-pixel average difference of the compared
26605           frames for the component specified by the suffix.
26606
26607       psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
26608           Peak Signal to Noise ratio of the compared frames for the component
26609           specified by the suffix.
26610
26611       max_avg, max_y, max_u, max_v
26612           Maximum allowed value for each channel, and average over all
26613           channels.
26614
26615       Examples
26616
26617       •   For example:
26618
26619                   movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
26620                   [main][ref] psnr="stats_file=stats.log" [out]
26621
26622           On this example the input file being processed is compared with the
26623           reference file ref_movie.mpg. The PSNR of each individual frame is
26624           stored in stats.log.
26625
26626       •   Another example with different containers:
26627
26628                   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 -
26629
26630   pullup
26631       Pulldown reversal (inverse telecine) filter, capable of handling mixed
26632       hard-telecine, 24000/1001 fps progressive, and 30000/1001 fps
26633       progressive content.
26634
26635       The pullup filter is designed to take advantage of future context in
26636       making its decisions. This filter is stateless in the sense that it
26637       does not lock onto a pattern to follow, but it instead looks forward to
26638       the following fields in order to identify matches and rebuild
26639       progressive frames.
26640
26641       To produce content with an even framerate, insert the fps filter after
26642       pullup, use "fps=24000/1001" if the input frame rate is 29.97fps,
26643       "fps=24" for 30fps and the (rare) telecined 25fps input.
26644
26645       The filter accepts the following options:
26646
26647       jl
26648       jr
26649       jt
26650       jb  These options set the amount of "junk" to ignore at the left,
26651           right, top, and bottom of the image, respectively. Left and right
26652           are in units of 8 pixels, while top and bottom are in units of 2
26653           lines.  The default is 8 pixels on each side.
26654
26655       sb  Set the strict breaks. Setting this option to 1 will reduce the
26656           chances of filter generating an occasional mismatched frame, but it
26657           may also cause an excessive number of frames to be dropped during
26658           high motion sequences.  Conversely, setting it to -1 will make
26659           filter match fields more easily.  This may help processing of video
26660           where there is slight blurring between the fields, but may also
26661           cause there to be interlaced frames in the output.  Default value
26662           is 0.
26663
26664       mp  Set the metric plane to use. It accepts the following values:
26665
26666           l   Use luma plane.
26667
26668           u   Use chroma blue plane.
26669
26670           v   Use chroma red plane.
26671
26672           This option may be set to use chroma plane instead of the default
26673           luma plane for doing filter's computations. This may improve
26674           accuracy on very clean source material, but more likely will
26675           decrease accuracy, especially if there is chroma noise (rainbow
26676           effect) or any grayscale video.  The main purpose of setting mp to
26677           a chroma plane is to reduce CPU load and make pullup usable in
26678           realtime on slow machines.
26679
26680       For best results (without duplicated frames in the output file) it is
26681       necessary to change the output frame rate. For example, to inverse
26682       telecine NTSC input:
26683
26684               ffmpeg -i input -vf pullup -r 24000/1001 ...
26685
26686   qp
26687       Change video quantization parameters (QP).
26688
26689       The filter accepts the following option:
26690
26691       qp  Set expression for quantization parameter.
26692
26693       The expression is evaluated through the eval API and can contain, among
26694       others, the following constants:
26695
26696       known
26697           1 if index is not 129, 0 otherwise.
26698
26699       qp  Sequential index starting from -129 to 128.
26700
26701       Examples
26702
26703       •   Some equation like:
26704
26705                   qp=2+2*sin(PI*qp)
26706
26707   random
26708       Flush video frames from internal cache of frames into a random order.
26709       No frame is discarded.  Inspired by frei0r nervous filter.
26710
26711       frames
26712           Set size in number of frames of internal cache, in range from 2 to
26713           512. Default is 30.
26714
26715       seed
26716           Set seed for random number generator, must be an integer included
26717           between 0 and "UINT32_MAX". If not specified, or if explicitly set
26718           to less than 0, the filter will try to use a good random seed on a
26719           best effort basis.
26720
26721   readeia608
26722       Read closed captioning (EIA-608) information from the top lines of a
26723       video frame.
26724
26725       This filter adds frame metadata for "lavfi.readeia608.X.cc" and
26726       "lavfi.readeia608.X.line", where "X" is the number of the identified
26727       line with EIA-608 data (starting from 0). A description of each
26728       metadata value follows:
26729
26730       lavfi.readeia608.X.cc
26731           The two bytes stored as EIA-608 data (printed in hexadecimal).
26732
26733       lavfi.readeia608.X.line
26734           The number of the line on which the EIA-608 data was identified and
26735           read.
26736
26737       This filter accepts the following options:
26738
26739       scan_min
26740           Set the line to start scanning for EIA-608 data. Default is 0.
26741
26742       scan_max
26743           Set the line to end scanning for EIA-608 data. Default is 29.
26744
26745       spw Set the ratio of width reserved for sync code detection.  Default
26746           is 0.27. Allowed range is "[0.1 - 0.7]".
26747
26748       chp Enable checking the parity bit. In the event of a parity error, the
26749           filter will output 0x00 for that character. Default is false.
26750
26751       lp  Lowpass lines prior to further processing. Default is enabled.
26752
26753       Commands
26754
26755       This filter supports the all above options as commands.
26756
26757       Examples
26758
26759       •   Output a csv with presentation time and the first two lines of
26760           identified EIA-608 captioning data.
26761
26762                   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
26763
26764   readvitc
26765       Read vertical interval timecode (VITC) information from the top lines
26766       of a video frame.
26767
26768       The filter adds frame metadata key "lavfi.readvitc.tc_str" with the
26769       timecode value, if a valid timecode has been detected. Further metadata
26770       key "lavfi.readvitc.found" is set to 0/1 depending on whether timecode
26771       data has been found or not.
26772
26773       This filter accepts the following options:
26774
26775       scan_max
26776           Set the maximum number of lines to scan for VITC data. If the value
26777           is set to -1 the full video frame is scanned. Default is 45.
26778
26779       thr_b
26780           Set the luma threshold for black. Accepts float numbers in the
26781           range [0.0,1.0], default value is 0.2. The value must be equal or
26782           less than "thr_w".
26783
26784       thr_w
26785           Set the luma threshold for white. Accepts float numbers in the
26786           range [0.0,1.0], default value is 0.6. The value must be equal or
26787           greater than "thr_b".
26788
26789       Examples
26790
26791       •   Detect and draw VITC data onto the video frame; if no valid VITC is
26792           detected, draw "--:--:--:--" as a placeholder:
26793
26794                   ffmpeg -i input.avi -filter:v 'readvitc,drawtext=fontfile=FreeMono.ttf:text=%{metadata\\:lavfi.readvitc.tc_str\\:--\\\\\\:--\\\\\\:--\\\\\\:--}:x=(w-tw)/2:y=400-ascent'
26795
26796   remap
26797       Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
26798
26799       Destination pixel at position (X, Y) will be picked from source (x, y)
26800       position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
26801       out of range, zero value for pixel will be used for destination pixel.
26802
26803       Xmap and Ymap input video streams must be of same dimensions. Output
26804       video stream will have Xmap/Ymap video stream dimensions.  Xmap and
26805       Ymap input video streams are 16bit depth, single channel.
26806
26807       format
26808           Specify pixel format of output from this filter. Can be "color" or
26809           "gray".  Default is "color".
26810
26811       fill
26812           Specify the color of the unmapped pixels. For the syntax of this
26813           option, check the "Color" section in the ffmpeg-utils manual.
26814           Default color is "black".
26815
26816   removegrain
26817       The removegrain filter is a spatial denoiser for progressive video.
26818
26819       m0  Set mode for the first plane.
26820
26821       m1  Set mode for the second plane.
26822
26823       m2  Set mode for the third plane.
26824
26825       m3  Set mode for the fourth plane.
26826
26827       Range of mode is from 0 to 24. Description of each mode follows:
26828
26829       0   Leave input plane unchanged. Default.
26830
26831       1   Clips the pixel with the minimum and maximum of the 8 neighbour
26832           pixels.
26833
26834       2   Clips the pixel with the second minimum and maximum of the 8
26835           neighbour pixels.
26836
26837       3   Clips the pixel with the third minimum and maximum of the 8
26838           neighbour pixels.
26839
26840       4   Clips the pixel with the fourth minimum and maximum of the 8
26841           neighbour pixels.  This is equivalent to a median filter.
26842
26843       5   Line-sensitive clipping giving the minimal change.
26844
26845       6   Line-sensitive clipping, intermediate.
26846
26847       7   Line-sensitive clipping, intermediate.
26848
26849       8   Line-sensitive clipping, intermediate.
26850
26851       9   Line-sensitive clipping on a line where the neighbours pixels are
26852           the closest.
26853
26854       10  Replaces the target pixel with the closest neighbour.
26855
26856       11  [1 2 1] horizontal and vertical kernel blur.
26857
26858       12  Same as mode 11.
26859
26860       13  Bob mode, interpolates top field from the line where the neighbours
26861           pixels are the closest.
26862
26863       14  Bob mode, interpolates bottom field from the line where the
26864           neighbours pixels are the closest.
26865
26866       15  Bob mode, interpolates top field. Same as 13 but with a more
26867           complicated interpolation formula.
26868
26869       16  Bob mode, interpolates bottom field. Same as 14 but with a more
26870           complicated interpolation formula.
26871
26872       17  Clips the pixel with the minimum and maximum of respectively the
26873           maximum and minimum of each pair of opposite neighbour pixels.
26874
26875       18  Line-sensitive clipping using opposite neighbours whose greatest
26876           distance from the current pixel is minimal.
26877
26878       19  Replaces the pixel with the average of its 8 neighbours.
26879
26880       20  Averages the 9 pixels ([1 1 1] horizontal and vertical blur).
26881
26882       21  Clips pixels using the averages of opposite neighbour.
26883
26884       22  Same as mode 21 but simpler and faster.
26885
26886       23  Small edge and halo removal, but reputed useless.
26887
26888       24  Similar as 23.
26889
26890   removelogo
26891       Suppress a TV station logo, using an image file to determine which
26892       pixels comprise the logo. It works by filling in the pixels that
26893       comprise the logo with neighboring pixels.
26894
26895       The filter accepts the following options:
26896
26897       filename, f
26898           Set the filter bitmap file, which can be any image format supported
26899           by libavformat. The width and height of the image file must match
26900           those of the video stream being processed.
26901
26902       Pixels in the provided bitmap image with a value of zero are not
26903       considered part of the logo, non-zero pixels are considered part of the
26904       logo. If you use white (255) for the logo and black (0) for the rest,
26905       you will be safe. For making the filter bitmap, it is recommended to
26906       take a screen capture of a black frame with the logo visible, and then
26907       using a threshold filter followed by the erode filter once or twice.
26908
26909       If needed, little splotches can be fixed manually. Remember that if
26910       logo pixels are not covered, the filter quality will be much reduced.
26911       Marking too many pixels as part of the logo does not hurt as much, but
26912       it will increase the amount of blurring needed to cover over the image
26913       and will destroy more information than necessary, and extra pixels will
26914       slow things down on a large logo.
26915
26916   repeatfields
26917       This filter uses the repeat_field flag from the Video ES headers and
26918       hard repeats fields based on its value.
26919
26920   reverse
26921       Reverse a video clip.
26922
26923       Warning: This filter requires memory to buffer the entire clip, so
26924       trimming is suggested.
26925
26926       Examples
26927
26928       •   Take the first 5 seconds of a clip, and reverse it.
26929
26930                   trim=end=5,reverse
26931
26932   rgbashift
26933       Shift R/G/B/A pixels horizontally and/or vertically.
26934
26935       The filter accepts the following options:
26936
26937       rh  Set amount to shift red horizontally.
26938
26939       rv  Set amount to shift red vertically.
26940
26941       gh  Set amount to shift green horizontally.
26942
26943       gv  Set amount to shift green vertically.
26944
26945       bh  Set amount to shift blue horizontally.
26946
26947       bv  Set amount to shift blue vertically.
26948
26949       ah  Set amount to shift alpha horizontally.
26950
26951       av  Set amount to shift alpha vertically.
26952
26953       edge
26954           Set edge mode, can be smear, default, or warp.
26955
26956       Commands
26957
26958       This filter supports the all above options as commands.
26959
26960   roberts
26961       Apply roberts cross operator to input video stream.
26962
26963       The filter accepts the following option:
26964
26965       planes
26966           Set which planes will be processed, unprocessed planes will be
26967           copied.  By default value 0xf, all planes will be processed.
26968
26969       scale
26970           Set value which will be multiplied with filtered result.
26971
26972       delta
26973           Set value which will be added to filtered result.
26974
26975       Commands
26976
26977       This filter supports the all above options as commands.
26978
26979   rotate
26980       Rotate video by an arbitrary angle expressed in radians.
26981
26982       The filter accepts the following options:
26983
26984       A description of the optional parameters follows.
26985
26986       angle, a
26987           Set an expression for the angle by which to rotate the input video
26988           clockwise, expressed as a number of radians. A negative value will
26989           result in a counter-clockwise rotation. By default it is set to
26990           "0".
26991
26992           This expression is evaluated for each frame.
26993
26994       out_w, ow
26995           Set the output width expression, default value is "iw".  This
26996           expression is evaluated just once during configuration.
26997
26998       out_h, oh
26999           Set the output height expression, default value is "ih".  This
27000           expression is evaluated just once during configuration.
27001
27002       bilinear
27003           Enable bilinear interpolation if set to 1, a value of 0 disables
27004           it. Default value is 1.
27005
27006       fillcolor, c
27007           Set the color used to fill the output area not covered by the
27008           rotated image. For the general syntax of this option, check the
27009           "Color" section in the ffmpeg-utils manual.  If the special value
27010           "none" is selected then no background is printed (useful for
27011           example if the background is never shown).
27012
27013           Default value is "black".
27014
27015       The expressions for the angle and the output size can contain the
27016       following constants and functions:
27017
27018       n   sequential number of the input frame, starting from 0. It is always
27019           NAN before the first frame is filtered.
27020
27021       t   time in seconds of the input frame, it is set to 0 when the filter
27022           is configured. It is always NAN before the first frame is filtered.
27023
27024       hsub
27025       vsub
27026           horizontal and vertical chroma subsample values. For example for
27027           the pixel format "yuv422p" hsub is 2 and vsub is 1.
27028
27029       in_w, iw
27030       in_h, ih
27031           the input video width and height
27032
27033       out_w, ow
27034       out_h, oh
27035           the output width and height, that is the size of the padded area as
27036           specified by the width and height expressions
27037
27038       rotw(a)
27039       roth(a)
27040           the minimal width/height required for completely containing the
27041           input video rotated by a radians.
27042
27043           These are only available when computing the out_w and out_h
27044           expressions.
27045
27046       Examples
27047
27048       •   Rotate the input by PI/6 radians clockwise:
27049
27050                   rotate=PI/6
27051
27052       •   Rotate the input by PI/6 radians counter-clockwise:
27053
27054                   rotate=-PI/6
27055
27056       •   Rotate the input by 45 degrees clockwise:
27057
27058                   rotate=45*PI/180
27059
27060       •   Apply a constant rotation with period T, starting from an angle of
27061           PI/3:
27062
27063                   rotate=PI/3+2*PI*t/T
27064
27065       •   Make the input video rotation oscillating with a period of T
27066           seconds and an amplitude of A radians:
27067
27068                   rotate=A*sin(2*PI/T*t)
27069
27070       •   Rotate the video, output size is chosen so that the whole rotating
27071           input video is always completely contained in the output:
27072
27073                   rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
27074
27075       •   Rotate the video, reduce the output size so that no background is
27076           ever shown:
27077
27078                   rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
27079
27080       Commands
27081
27082       The filter supports the following commands:
27083
27084       a, angle
27085           Set the angle expression.  The command accepts the same syntax of
27086           the corresponding option.
27087
27088           If the specified expression is not valid, it is kept at its current
27089           value.
27090
27091   sab
27092       Apply Shape Adaptive Blur.
27093
27094       The filter accepts the following options:
27095
27096       luma_radius, lr
27097           Set luma blur filter strength, must be a value in range 0.1-4.0,
27098           default value is 1.0. A greater value will result in a more blurred
27099           image, and in slower processing.
27100
27101       luma_pre_filter_radius, lpfr
27102           Set luma pre-filter radius, must be a value in the 0.1-2.0 range,
27103           default value is 1.0.
27104
27105       luma_strength, ls
27106           Set luma maximum difference between pixels to still be considered,
27107           must be a value in the 0.1-100.0 range, default value is 1.0.
27108
27109       chroma_radius, cr
27110           Set chroma blur filter strength, must be a value in range -0.9-4.0.
27111           A greater value will result in a more blurred image, and in slower
27112           processing.
27113
27114       chroma_pre_filter_radius, cpfr
27115           Set chroma pre-filter radius, must be a value in the -0.9-2.0
27116           range.
27117
27118       chroma_strength, cs
27119           Set chroma maximum difference between pixels to still be
27120           considered, must be a value in the -0.9-100.0 range.
27121
27122       Each chroma option value, if not explicitly specified, is set to the
27123       corresponding luma option value.
27124
27125   scale
27126       Scale (resize) the input video, using the libswscale library.
27127
27128       The scale filter forces the output display aspect ratio to be the same
27129       of the input, by changing the output sample aspect ratio.
27130
27131       If the input image format is different from the format requested by the
27132       next filter, the scale filter will convert the input to the requested
27133       format.
27134
27135       Options
27136
27137       The filter accepts the following options, or any of the options
27138       supported by the libswscale scaler.
27139
27140       See the ffmpeg-scaler manual for the complete list of scaler options.
27141
27142       width, w
27143       height, h
27144           Set the output video dimension expression. Default value is the
27145           input dimension.
27146
27147           If the width or w value is 0, the input width is used for the
27148           output. If the height or h value is 0, the input height is used for
27149           the output.
27150
27151           If one and only one of the values is -n with n >= 1, the scale
27152           filter will use a value that maintains the aspect ratio of the
27153           input image, calculated from the other specified dimension. After
27154           that it will, however, make sure that the calculated dimension is
27155           divisible by n and adjust the value if necessary.
27156
27157           If both values are -n with n >= 1, the behavior will be identical
27158           to both values being set to 0 as previously detailed.
27159
27160           See below for the list of accepted constants for use in the
27161           dimension expression.
27162
27163       eval
27164           Specify when to evaluate width and height expression. It accepts
27165           the following values:
27166
27167           init
27168               Only evaluate expressions once during the filter initialization
27169               or when a command is processed.
27170
27171           frame
27172               Evaluate expressions for each incoming frame.
27173
27174           Default value is init.
27175
27176       interl
27177           Set the interlacing mode. It accepts the following values:
27178
27179           1   Force interlaced aware scaling.
27180
27181           0   Do not apply interlaced scaling.
27182
27183           -1  Select interlaced aware scaling depending on whether the source
27184               frames are flagged as interlaced or not.
27185
27186           Default value is 0.
27187
27188       flags
27189           Set libswscale scaling flags. See the ffmpeg-scaler manual for the
27190           complete list of values. If not explicitly specified the filter
27191           applies the default flags.
27192
27193       param0, param1
27194           Set libswscale input parameters for scaling algorithms that need
27195           them. See the ffmpeg-scaler manual for the complete documentation.
27196           If not explicitly specified the filter applies empty parameters.
27197
27198       size, s
27199           Set the video size. For the syntax of this option, check the "Video
27200           size" section in the ffmpeg-utils manual.
27201
27202       in_color_matrix
27203       out_color_matrix
27204           Set in/output YCbCr color space type.
27205
27206           This allows the autodetected value to be overridden as well as
27207           allows forcing a specific value used for the output and encoder.
27208
27209           If not specified, the color space type depends on the pixel format.
27210
27211           Possible values:
27212
27213           auto
27214               Choose automatically.
27215
27216           bt709
27217               Format conforming to International Telecommunication Union
27218               (ITU) Recommendation BT.709.
27219
27220           fcc Set color space conforming to the United States Federal
27221               Communications Commission (FCC) Code of Federal Regulations
27222               (CFR) Title 47 (2003) 73.682 (a).
27223
27224           bt601
27225           bt470
27226           smpte170m
27227               Set color space conforming to:
27228
27229               •   ITU Radiocommunication Sector (ITU-R) Recommendation BT.601
27230
27231               •   ITU-R Rec. BT.470-6 (1998) Systems B, B1, and G
27232
27233               •   Society of Motion Picture and Television Engineers (SMPTE)
27234                   ST 170:2004
27235
27236           smpte240m
27237               Set color space conforming to SMPTE ST 240:1999.
27238
27239           bt2020
27240               Set color space conforming to ITU-R BT.2020 non-constant
27241               luminance system.
27242
27243       in_range
27244       out_range
27245           Set in/output YCbCr sample range.
27246
27247           This allows the autodetected value to be overridden as well as
27248           allows forcing a specific value used for the output and encoder. If
27249           not specified, the range depends on the pixel format. Possible
27250           values:
27251
27252           auto/unknown
27253               Choose automatically.
27254
27255           jpeg/full/pc
27256               Set full range (0-255 in case of 8-bit luma).
27257
27258           mpeg/limited/tv
27259               Set "MPEG" range (16-235 in case of 8-bit luma).
27260
27261       force_original_aspect_ratio
27262           Enable decreasing or increasing output video width or height if
27263           necessary to keep the original aspect ratio. Possible values:
27264
27265           disable
27266               Scale the video as specified and disable this feature.
27267
27268           decrease
27269               The output video dimensions will automatically be decreased if
27270               needed.
27271
27272           increase
27273               The output video dimensions will automatically be increased if
27274               needed.
27275
27276           One useful instance of this option is that when you know a specific
27277           device's maximum allowed resolution, you can use this to limit the
27278           output video to that, while retaining the aspect ratio. For
27279           example, device A allows 1280x720 playback, and your video is
27280           1920x800. Using this option (set it to decrease) and specifying
27281           1280x720 to the command line makes the output 1280x533.
27282
27283           Please note that this is a different thing than specifying -1 for w
27284           or h, you still need to specify the output resolution for this
27285           option to work.
27286
27287       force_divisible_by
27288           Ensures that both the output dimensions, width and height, are
27289           divisible by the given integer when used together with
27290           force_original_aspect_ratio. This works similar to using "-n" in
27291           the w and h options.
27292
27293           This option respects the value set for force_original_aspect_ratio,
27294           increasing or decreasing the resolution accordingly. The video's
27295           aspect ratio may be slightly modified.
27296
27297           This option can be handy if you need to have a video fit within or
27298           exceed a defined resolution using force_original_aspect_ratio but
27299           also have encoder restrictions on width or height divisibility.
27300
27301       The values of the w and h options are expressions containing the
27302       following constants:
27303
27304       in_w
27305       in_h
27306           The input width and height
27307
27308       iw
27309       ih  These are the same as in_w and in_h.
27310
27311       out_w
27312       out_h
27313           The output (scaled) width and height
27314
27315       ow
27316       oh  These are the same as out_w and out_h
27317
27318       a   The same as iw / ih
27319
27320       sar input sample aspect ratio
27321
27322       dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
27323
27324       hsub
27325       vsub
27326           horizontal and vertical input chroma subsample values. For example
27327           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
27328
27329       ohsub
27330       ovsub
27331           horizontal and vertical output chroma subsample values. For example
27332           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
27333
27334       n   The (sequential) number of the input frame, starting from 0.  Only
27335           available with "eval=frame".
27336
27337       t   The presentation timestamp of the input frame, expressed as a
27338           number of seconds. Only available with "eval=frame".
27339
27340       pos The position (byte offset) of the frame in the input stream, or NaN
27341           if this information is unavailable and/or meaningless (for example
27342           in case of synthetic video).  Only available with "eval=frame".
27343
27344       Examples
27345
27346       •   Scale the input video to a size of 200x100
27347
27348                   scale=w=200:h=100
27349
27350           This is equivalent to:
27351
27352                   scale=200:100
27353
27354           or:
27355
27356                   scale=200x100
27357
27358       •   Specify a size abbreviation for the output size:
27359
27360                   scale=qcif
27361
27362           which can also be written as:
27363
27364                   scale=size=qcif
27365
27366       •   Scale the input to 2x:
27367
27368                   scale=w=2*iw:h=2*ih
27369
27370       •   The above is the same as:
27371
27372                   scale=2*in_w:2*in_h
27373
27374       •   Scale the input to 2x with forced interlaced scaling:
27375
27376                   scale=2*iw:2*ih:interl=1
27377
27378       •   Scale the input to half size:
27379
27380                   scale=w=iw/2:h=ih/2
27381
27382       •   Increase the width, and set the height to the same size:
27383
27384                   scale=3/2*iw:ow
27385
27386       •   Seek Greek harmony:
27387
27388                   scale=iw:1/PHI*iw
27389                   scale=ih*PHI:ih
27390
27391       •   Increase the height, and set the width to 3/2 of the height:
27392
27393                   scale=w=3/2*oh:h=3/5*ih
27394
27395       •   Increase the size, making the size a multiple of the chroma
27396           subsample values:
27397
27398                   scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
27399
27400       •   Increase the width to a maximum of 500 pixels, keeping the same
27401           aspect ratio as the input:
27402
27403                   scale=w='min(500\, iw*3/2):h=-1'
27404
27405       •   Make pixels square by combining scale and setsar:
27406
27407                   scale='trunc(ih*dar):ih',setsar=1/1
27408
27409       •   Make pixels square by combining scale and setsar, making sure the
27410           resulting resolution is even (required by some codecs):
27411
27412                   scale='trunc(ih*dar/2)*2:trunc(ih/2)*2',setsar=1/1
27413
27414       Commands
27415
27416       This filter supports the following commands:
27417
27418       width, w
27419       height, h
27420           Set the output video dimension expression.  The command accepts the
27421           same syntax of the corresponding option.
27422
27423           If the specified expression is not valid, it is kept at its current
27424           value.
27425
27426   scale_cuda
27427       Scale (resize) and convert (pixel format) the input video, using
27428       accelerated CUDA kernels.  Setting the output width and height works in
27429       the same way as for the scale filter.
27430
27431       The filter accepts the following options:
27432
27433       w
27434       h   Set the output video dimension expression. Default value is the
27435           input dimension.
27436
27437           Allows for the same expressions as the scale filter.
27438
27439       interp_algo
27440           Sets the algorithm used for scaling:
27441
27442           nearest
27443               Nearest neighbour
27444
27445               Used by default if input parameters match the desired output.
27446
27447           bilinear
27448               Bilinear
27449
27450           bicubic
27451               Bicubic
27452
27453               This is the default.
27454
27455           lanczos
27456               Lanczos
27457
27458       format
27459           Controls the output pixel format. By default, or if none is
27460           specified, the input pixel format is used.
27461
27462           The filter does not support converting between YUV and RGB pixel
27463           formats.
27464
27465       passthrough
27466           If set to 0, every frame is processed, even if no conversion is
27467           neccesary.  This mode can be useful to use the filter as a buffer
27468           for a downstream frame-consumer that exhausts the limited decoder
27469           frame pool.
27470
27471           If set to 1, frames are passed through as-is if they match the
27472           desired output parameters. This is the default behaviour.
27473
27474       param
27475           Algorithm-Specific parameter.
27476
27477           Affects the curves of the bicubic algorithm.
27478
27479       force_original_aspect_ratio
27480       force_divisible_by
27481           Work the same as the identical scale filter options.
27482
27483       Examples
27484
27485       •   Scale input to 720p, keeping aspect ratio and ensuring the output
27486           is yuv420p.
27487
27488                   scale_cuda=-2:720:format=yuv420p
27489
27490       •   Upscale to 4K using nearest neighbour algorithm.
27491
27492                   scale_cuda=4096:2160:interp_algo=nearest
27493
27494       •   Don't do any conversion or scaling, but copy all input frames into
27495           newly allocated ones.  This can be useful to deal with a filter and
27496           encode chain that otherwise exhausts the decoders frame pool.
27497
27498                   scale_cuda=passthrough=0
27499
27500   scale_npp
27501       Use the NVIDIA Performance Primitives (libnpp) to perform scaling
27502       and/or pixel format conversion on CUDA video frames. Setting the output
27503       width and height works in the same way as for the scale filter.
27504
27505       The following additional options are accepted:
27506
27507       format
27508           The pixel format of the output CUDA frames. If set to the string
27509           "same" (the default), the input format will be kept. Note that
27510           automatic format negotiation and conversion is not yet supported
27511           for hardware frames
27512
27513       interp_algo
27514           The interpolation algorithm used for resizing. One of the
27515           following:
27516
27517           nn  Nearest neighbour.
27518
27519           linear
27520           cubic
27521           cubic2p_bspline
27522               2-parameter cubic (B=1, C=0)
27523
27524           cubic2p_catmullrom
27525               2-parameter cubic (B=0, C=1/2)
27526
27527           cubic2p_b05c03
27528               2-parameter cubic (B=1/2, C=3/10)
27529
27530           super
27531               Supersampling
27532
27533           lanczos
27534       force_original_aspect_ratio
27535           Enable decreasing or increasing output video width or height if
27536           necessary to keep the original aspect ratio. Possible values:
27537
27538           disable
27539               Scale the video as specified and disable this feature.
27540
27541           decrease
27542               The output video dimensions will automatically be decreased if
27543               needed.
27544
27545           increase
27546               The output video dimensions will automatically be increased if
27547               needed.
27548
27549           One useful instance of this option is that when you know a specific
27550           device's maximum allowed resolution, you can use this to limit the
27551           output video to that, while retaining the aspect ratio. For
27552           example, device A allows 1280x720 playback, and your video is
27553           1920x800. Using this option (set it to decrease) and specifying
27554           1280x720 to the command line makes the output 1280x533.
27555
27556           Please note that this is a different thing than specifying -1 for w
27557           or h, you still need to specify the output resolution for this
27558           option to work.
27559
27560       force_divisible_by
27561           Ensures that both the output dimensions, width and height, are
27562           divisible by the given integer when used together with
27563           force_original_aspect_ratio. This works similar to using "-n" in
27564           the w and h options.
27565
27566           This option respects the value set for force_original_aspect_ratio,
27567           increasing or decreasing the resolution accordingly. The video's
27568           aspect ratio may be slightly modified.
27569
27570           This option can be handy if you need to have a video fit within or
27571           exceed a defined resolution using force_original_aspect_ratio but
27572           also have encoder restrictions on width or height divisibility.
27573
27574       eval
27575           Specify when to evaluate width and height expression. It accepts
27576           the following values:
27577
27578           init
27579               Only evaluate expressions once during the filter initialization
27580               or when a command is processed.
27581
27582           frame
27583               Evaluate expressions for each incoming frame.
27584
27585       The values of the w and h options are expressions containing the
27586       following constants:
27587
27588       in_w
27589       in_h
27590           The input width and height
27591
27592       iw
27593       ih  These are the same as in_w and in_h.
27594
27595       out_w
27596       out_h
27597           The output (scaled) width and height
27598
27599       ow
27600       oh  These are the same as out_w and out_h
27601
27602       a   The same as iw / ih
27603
27604       sar input sample aspect ratio
27605
27606       dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
27607
27608       n   The (sequential) number of the input frame, starting from 0.  Only
27609           available with "eval=frame".
27610
27611       t   The presentation timestamp of the input frame, expressed as a
27612           number of seconds. Only available with "eval=frame".
27613
27614       pos The position (byte offset) of the frame in the input stream, or NaN
27615           if this information is unavailable and/or meaningless (for example
27616           in case of synthetic video).  Only available with "eval=frame".
27617
27618   scale2ref
27619       Scale (resize) the input video, based on a reference video.
27620
27621       See the scale filter for available options, scale2ref supports the same
27622       but uses the reference video instead of the main input as basis.
27623       scale2ref also supports the following additional constants for the w
27624       and h options:
27625
27626       main_w
27627       main_h
27628           The main input video's width and height
27629
27630       main_a
27631           The same as main_w / main_h
27632
27633       main_sar
27634           The main input video's sample aspect ratio
27635
27636       main_dar, mdar
27637           The main input video's display aspect ratio. Calculated from
27638           "(main_w / main_h) * main_sar".
27639
27640       main_hsub
27641       main_vsub
27642           The main input video's horizontal and vertical chroma subsample
27643           values.  For example for the pixel format "yuv422p" hsub is 2 and
27644           vsub is 1.
27645
27646       main_n
27647           The (sequential) number of the main input frame, starting from 0.
27648           Only available with "eval=frame".
27649
27650       main_t
27651           The presentation timestamp of the main input frame, expressed as a
27652           number of seconds. Only available with "eval=frame".
27653
27654       main_pos
27655           The position (byte offset) of the frame in the main input stream,
27656           or NaN if this information is unavailable and/or meaningless (for
27657           example in case of synthetic video).  Only available with
27658           "eval=frame".
27659
27660       Examples
27661
27662       •   Scale a subtitle stream (b) to match the main video (a) in size
27663           before overlaying
27664
27665                   'scale2ref[b][a];[a][b]overlay'
27666
27667       •   Scale a logo to 1/10th the height of a video, while preserving its
27668           display aspect ratio.
27669
27670                   [logo-in][video-in]scale2ref=w=oh*mdar:h=ih/10[logo-out][video-out]
27671
27672       Commands
27673
27674       This filter supports the following commands:
27675
27676       width, w
27677       height, h
27678           Set the output video dimension expression.  The command accepts the
27679           same syntax of the corresponding option.
27680
27681           If the specified expression is not valid, it is kept at its current
27682           value.
27683
27684   scale2ref_npp
27685       Use the NVIDIA Performance Primitives (libnpp) to scale (resize) the
27686       input video, based on a reference video.
27687
27688       See the scale_npp filter for available options, scale2ref_npp supports
27689       the same but uses the reference video instead of the main input as
27690       basis. scale2ref_npp also supports the following additional constants
27691       for the w and h options:
27692
27693       main_w
27694       main_h
27695           The main input video's width and height
27696
27697       main_a
27698           The same as main_w / main_h
27699
27700       main_sar
27701           The main input video's sample aspect ratio
27702
27703       main_dar, mdar
27704           The main input video's display aspect ratio. Calculated from
27705           "(main_w / main_h) * main_sar".
27706
27707       main_n
27708           The (sequential) number of the main input frame, starting from 0.
27709           Only available with "eval=frame".
27710
27711       main_t
27712           The presentation timestamp of the main input frame, expressed as a
27713           number of seconds. Only available with "eval=frame".
27714
27715       main_pos
27716           The position (byte offset) of the frame in the main input stream,
27717           or NaN if this information is unavailable and/or meaningless (for
27718           example in case of synthetic video).  Only available with
27719           "eval=frame".
27720
27721       Examples
27722
27723       •   Scale a subtitle stream (b) to match the main video (a) in size
27724           before overlaying
27725
27726                   'scale2ref_npp[b][a];[a][b]overlay_cuda'
27727
27728       •   Scale a logo to 1/10th the height of a video, while preserving its
27729           display aspect ratio.
27730
27731                   [logo-in][video-in]scale2ref_npp=w=oh*mdar:h=ih/10[logo-out][video-out]
27732
27733   scharr
27734       Apply scharr operator to input video stream.
27735
27736       The filter accepts the following option:
27737
27738       planes
27739           Set which planes will be processed, unprocessed planes will be
27740           copied.  By default value 0xf, all planes will be processed.
27741
27742       scale
27743           Set value which will be multiplied with filtered result.
27744
27745       delta
27746           Set value which will be added to filtered result.
27747
27748       Commands
27749
27750       This filter supports the all above options as commands.
27751
27752   scroll
27753       Scroll input video horizontally and/or vertically by constant speed.
27754
27755       The filter accepts the following options:
27756
27757       horizontal, h
27758           Set the horizontal scrolling speed. Default is 0. Allowed range is
27759           from -1 to 1.  Negative values changes scrolling direction.
27760
27761       vertical, v
27762           Set the vertical scrolling speed. Default is 0. Allowed range is
27763           from -1 to 1.  Negative values changes scrolling direction.
27764
27765       hpos
27766           Set the initial horizontal scrolling position. Default is 0.
27767           Allowed range is from 0 to 1.
27768
27769       vpos
27770           Set the initial vertical scrolling position. Default is 0. Allowed
27771           range is from 0 to 1.
27772
27773       Commands
27774
27775       This filter supports the following commands:
27776
27777       horizontal, h
27778           Set the horizontal scrolling speed.
27779
27780       vertical, v
27781           Set the vertical scrolling speed.
27782
27783   scdet
27784       Detect video scene change.
27785
27786       This filter sets frame metadata with mafd between frame, the scene
27787       score, and forward the frame to the next filter, so they can use these
27788       metadata to detect scene change or others.
27789
27790       In addition, this filter logs a message and sets frame metadata when it
27791       detects a scene change by threshold.
27792
27793       "lavfi.scd.mafd" metadata keys are set with mafd for every frame.
27794
27795       "lavfi.scd.score" metadata keys are set with scene change score for
27796       every frame to detect scene change.
27797
27798       "lavfi.scd.time" metadata keys are set with current filtered frame time
27799       which detect scene change with threshold.
27800
27801       The filter accepts the following options:
27802
27803       threshold, t
27804           Set the scene change detection threshold as a percentage of maximum
27805           change. Good values are in the "[8.0, 14.0]" range. The range for
27806           threshold is "[0., 100.]".
27807
27808           Default value is 10..
27809
27810       sc_pass, s
27811           Set the flag to pass scene change frames to the next filter.
27812           Default value is 0 You can enable it if you want to get snapshot of
27813           scene change frames only.
27814
27815   selectivecolor
27816       Adjust cyan, magenta, yellow and black (CMYK) to certain ranges of
27817       colors (such as "reds", "yellows", "greens", "cyans", ...). The
27818       adjustment range is defined by the "purity" of the color (that is, how
27819       saturated it already is).
27820
27821       This filter is similar to the Adobe Photoshop Selective Color tool.
27822
27823       The filter accepts the following options:
27824
27825       correction_method
27826           Select color correction method.
27827
27828           Available values are:
27829
27830           absolute
27831               Specified adjustments are applied "as-is" (added/subtracted to
27832               original pixel component value).
27833
27834           relative
27835               Specified adjustments are relative to the original component
27836               value.
27837
27838           Default is "absolute".
27839
27840       reds
27841           Adjustments for red pixels (pixels where the red component is the
27842           maximum)
27843
27844       yellows
27845           Adjustments for yellow pixels (pixels where the blue component is
27846           the minimum)
27847
27848       greens
27849           Adjustments for green pixels (pixels where the green component is
27850           the maximum)
27851
27852       cyans
27853           Adjustments for cyan pixels (pixels where the red component is the
27854           minimum)
27855
27856       blues
27857           Adjustments for blue pixels (pixels where the blue component is the
27858           maximum)
27859
27860       magentas
27861           Adjustments for magenta pixels (pixels where the green component is
27862           the minimum)
27863
27864       whites
27865           Adjustments for white pixels (pixels where all components are
27866           greater than 128)
27867
27868       neutrals
27869           Adjustments for all pixels except pure black and pure white
27870
27871       blacks
27872           Adjustments for black pixels (pixels where all components are
27873           lesser than 128)
27874
27875       psfile
27876           Specify a Photoshop selective color file (".asv") to import the
27877           settings from.
27878
27879       All the adjustment settings (reds, yellows, ...) accept up to 4 space
27880       separated floating point adjustment values in the [-1,1] range,
27881       respectively to adjust the amount of cyan, magenta, yellow and black
27882       for the pixels of its range.
27883
27884       Examples
27885
27886       •   Increase cyan by 50% and reduce yellow by 33% in every green areas,
27887           and increase magenta by 27% in blue areas:
27888
27889                   selectivecolor=greens=.5 0 -.33 0:blues=0 .27
27890
27891       •   Use a Photoshop selective color preset:
27892
27893                   selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
27894
27895   separatefields
27896       The "separatefields" takes a frame-based video input and splits each
27897       frame into its components fields, producing a new half height clip with
27898       twice the frame rate and twice the frame count.
27899
27900       This filter use field-dominance information in frame to decide which of
27901       each pair of fields to place first in the output.  If it gets it wrong
27902       use setfield filter before "separatefields" filter.
27903
27904   setdar, setsar
27905       The "setdar" filter sets the Display Aspect Ratio for the filter output
27906       video.
27907
27908       This is done by changing the specified Sample (aka Pixel) Aspect Ratio,
27909       according to the following equation:
27910
27911               <DAR> = <HORIZONTAL_RESOLUTION> / <VERTICAL_RESOLUTION> * <SAR>
27912
27913       Keep in mind that the "setdar" filter does not modify the pixel
27914       dimensions of the video frame. Also, the display aspect ratio set by
27915       this filter may be changed by later filters in the filterchain, e.g. in
27916       case of scaling or if another "setdar" or a "setsar" filter is applied.
27917
27918       The "setsar" filter sets the Sample (aka Pixel) Aspect Ratio for the
27919       filter output video.
27920
27921       Note that as a consequence of the application of this filter, the
27922       output display aspect ratio will change according to the equation
27923       above.
27924
27925       Keep in mind that the sample aspect ratio set by the "setsar" filter
27926       may be changed by later filters in the filterchain, e.g. if another
27927       "setsar" or a "setdar" filter is applied.
27928
27929       It accepts the following parameters:
27930
27931       r, ratio, dar ("setdar" only), sar ("setsar" only)
27932           Set the aspect ratio used by the filter.
27933
27934           The parameter can be a floating point number string, an expression,
27935           or a string of the form num:den, where num and den are the
27936           numerator and denominator of the aspect ratio. If the parameter is
27937           not specified, it is assumed the value "0".  In case the form
27938           "num:den" is used, the ":" character should be escaped.
27939
27940       max Set the maximum integer value to use for expressing numerator and
27941           denominator when reducing the expressed aspect ratio to a rational.
27942           Default value is 100.
27943
27944       The parameter sar is an expression containing the following constants:
27945
27946       E, PI, PHI
27947           These are approximated values for the mathematical constants e
27948           (Euler's number), pi (Greek pi), and phi (the golden ratio).
27949
27950       w, h
27951           The input width and height.
27952
27953       a   These are the same as w / h.
27954
27955       sar The input sample aspect ratio.
27956
27957       dar The input display aspect ratio. It is the same as (w / h) * sar.
27958
27959       hsub, vsub
27960           Horizontal and vertical chroma subsample values. For example, for
27961           the pixel format "yuv422p" hsub is 2 and vsub is 1.
27962
27963       Examples
27964
27965       •   To change the display aspect ratio to 16:9, specify one of the
27966           following:
27967
27968                   setdar=dar=1.77777
27969                   setdar=dar=16/9
27970
27971       •   To change the sample aspect ratio to 10:11, specify:
27972
27973                   setsar=sar=10/11
27974
27975       •   To set a display aspect ratio of 16:9, and specify a maximum
27976           integer value of 1000 in the aspect ratio reduction, use the
27977           command:
27978
27979                   setdar=ratio=16/9:max=1000
27980
27981   setfield
27982       Force field for the output video frame.
27983
27984       The "setfield" filter marks the interlace type field for the output
27985       frames. It does not change the input frame, but only sets the
27986       corresponding property, which affects how the frame is treated by
27987       following filters (e.g. "fieldorder" or "yadif").
27988
27989       The filter accepts the following options:
27990
27991       mode
27992           Available values are:
27993
27994           auto
27995               Keep the same field property.
27996
27997           bff Mark the frame as bottom-field-first.
27998
27999           tff Mark the frame as top-field-first.
28000
28001           prog
28002               Mark the frame as progressive.
28003
28004   setparams
28005       Force frame parameter for the output video frame.
28006
28007       The "setparams" filter marks interlace and color range for the output
28008       frames. It does not change the input frame, but only sets the
28009       corresponding property, which affects how the frame is treated by
28010       filters/encoders.
28011
28012       field_mode
28013           Available values are:
28014
28015           auto
28016               Keep the same field property (default).
28017
28018           bff Mark the frame as bottom-field-first.
28019
28020           tff Mark the frame as top-field-first.
28021
28022           prog
28023               Mark the frame as progressive.
28024
28025       range
28026           Available values are:
28027
28028           auto
28029               Keep the same color range property (default).
28030
28031           unspecified, unknown
28032               Mark the frame as unspecified color range.
28033
28034           limited, tv, mpeg
28035               Mark the frame as limited range.
28036
28037           full, pc, jpeg
28038               Mark the frame as full range.
28039
28040       color_primaries
28041           Set the color primaries.  Available values are:
28042
28043           auto
28044               Keep the same color primaries property (default).
28045
28046           bt709
28047           unknown
28048           bt470m
28049           bt470bg
28050           smpte170m
28051           smpte240m
28052           film
28053           bt2020
28054           smpte428
28055           smpte431
28056           smpte432
28057           jedec-p22
28058       color_trc
28059           Set the color transfer.  Available values are:
28060
28061           auto
28062               Keep the same color trc property (default).
28063
28064           bt709
28065           unknown
28066           bt470m
28067           bt470bg
28068           smpte170m
28069           smpte240m
28070           linear
28071           log100
28072           log316
28073           iec61966-2-4
28074           bt1361e
28075           iec61966-2-1
28076           bt2020-10
28077           bt2020-12
28078           smpte2084
28079           smpte428
28080           arib-std-b67
28081       colorspace
28082           Set the colorspace.  Available values are:
28083
28084           auto
28085               Keep the same colorspace property (default).
28086
28087           gbr
28088           bt709
28089           unknown
28090           fcc
28091           bt470bg
28092           smpte170m
28093           smpte240m
28094           ycgco
28095           bt2020nc
28096           bt2020c
28097           smpte2085
28098           chroma-derived-nc
28099           chroma-derived-c
28100           ictcp
28101
28102   sharpen_npp
28103       Use the NVIDIA Performance Primitives (libnpp) to perform image
28104       sharpening with border control.
28105
28106       The following additional options are accepted:
28107
28108       border_type
28109           Type of sampling to be used ad frame borders. One of the following:
28110
28111           replicate
28112               Replicate pixel values.
28113
28114   shear
28115       Apply shear transform to input video.
28116
28117       This filter supports the following options:
28118
28119       shx Shear factor in X-direction. Default value is 0.  Allowed range is
28120           from -2 to 2.
28121
28122       shy Shear factor in Y-direction. Default value is 0.  Allowed range is
28123           from -2 to 2.
28124
28125       fillcolor, c
28126           Set the color used to fill the output area not covered by the
28127           transformed video. For the general syntax of this option, check the
28128           "Color" section in the ffmpeg-utils manual.  If the special value
28129           "none" is selected then no background is printed (useful for
28130           example if the background is never shown).
28131
28132           Default value is "black".
28133
28134       interp
28135           Set interpolation type. Can be "bilinear" or "nearest". Default is
28136           "bilinear".
28137
28138       Commands
28139
28140       This filter supports the all above options as commands.
28141
28142   showinfo
28143       Show a line containing various information for each input video frame.
28144       The input video is not modified.
28145
28146       This filter supports the following options:
28147
28148       checksum
28149           Calculate checksums of each plane. By default enabled.
28150
28151       The shown line contains a sequence of key/value pairs of the form
28152       key:value.
28153
28154       The following values are shown in the output:
28155
28156       n   The (sequential) number of the input frame, starting from 0.
28157
28158       pts The Presentation TimeStamp of the input frame, expressed as a
28159           number of time base units. The time base unit depends on the filter
28160           input pad.
28161
28162       pts_time
28163           The Presentation TimeStamp of the input frame, expressed as a
28164           number of seconds.
28165
28166       pos The position of the frame in the input stream, or -1 if this
28167           information is unavailable and/or meaningless (for example in case
28168           of synthetic video).
28169
28170       fmt The pixel format name.
28171
28172       sar The sample aspect ratio of the input frame, expressed in the form
28173           num/den.
28174
28175       s   The size of the input frame. For the syntax of this option, check
28176           the "Video size" section in the ffmpeg-utils manual.
28177
28178       i   The type of interlaced mode ("P" for "progressive", "T" for top
28179           field first, "B" for bottom field first).
28180
28181       iskey
28182           This is 1 if the frame is a key frame, 0 otherwise.
28183
28184       type
28185           The picture type of the input frame ("I" for an I-frame, "P" for a
28186           P-frame, "B" for a B-frame, or "?" for an unknown type).  Also
28187           refer to the documentation of the "AVPictureType" enum and of the
28188           "av_get_picture_type_char" function defined in libavutil/avutil.h.
28189
28190       checksum
28191           The Adler-32 checksum (printed in hexadecimal) of all the planes of
28192           the input frame.
28193
28194       plane_checksum
28195           The Adler-32 checksum (printed in hexadecimal) of each plane of the
28196           input frame, expressed in the form "[c0 c1 c2 c3]".
28197
28198       mean
28199           The mean value of pixels in each plane of the input frame,
28200           expressed in the form "[mean0 mean1 mean2 mean3]".
28201
28202       stdev
28203           The standard deviation of pixel values in each plane of the input
28204           frame, expressed in the form "[stdev0 stdev1 stdev2 stdev3]".
28205
28206   showpalette
28207       Displays the 256 colors palette of each frame. This filter is only
28208       relevant for pal8 pixel format frames.
28209
28210       It accepts the following option:
28211
28212       s   Set the size of the box used to represent one palette color entry.
28213           Default is 30 (for a "30x30" pixel box).
28214
28215   shuffleframes
28216       Reorder and/or duplicate and/or drop video frames.
28217
28218       It accepts the following parameters:
28219
28220       mapping
28221           Set the destination indexes of input frames.  This is space or '|'
28222           separated list of indexes that maps input frames to output frames.
28223           Number of indexes also sets maximal value that each index may have.
28224           '-1' index have special meaning and that is to drop frame.
28225
28226       The first frame has the index 0. The default is to keep the input
28227       unchanged.
28228
28229       Examples
28230
28231       •   Swap second and third frame of every three frames of the input:
28232
28233                   ffmpeg -i INPUT -vf "shuffleframes=0 2 1" OUTPUT
28234
28235       •   Swap 10th and 1st frame of every ten frames of the input:
28236
28237                   ffmpeg -i INPUT -vf "shuffleframes=9 1 2 3 4 5 6 7 8 0" OUTPUT
28238
28239   shufflepixels
28240       Reorder pixels in video frames.
28241
28242       This filter accepts the following options:
28243
28244       direction, d
28245           Set shuffle direction. Can be forward or inverse direction.
28246           Default direction is forward.
28247
28248       mode, m
28249           Set shuffle mode. Can be horizontal, vertical or block mode.
28250
28251       width, w
28252       height, h
28253           Set shuffle block_size. In case of horizontal shuffle mode only
28254           width part of size is used, and in case of vertical shuffle mode
28255           only height part of size is used.
28256
28257       seed, s
28258           Set random seed used with shuffling pixels. Mainly useful to set to
28259           be able to reverse filtering process to get original input.  For
28260           example, to reverse forward shuffle you need to use same parameters
28261           and exact same seed and to set direction to inverse.
28262
28263   shuffleplanes
28264       Reorder and/or duplicate video planes.
28265
28266       It accepts the following parameters:
28267
28268       map0
28269           The index of the input plane to be used as the first output plane.
28270
28271       map1
28272           The index of the input plane to be used as the second output plane.
28273
28274       map2
28275           The index of the input plane to be used as the third output plane.
28276
28277       map3
28278           The index of the input plane to be used as the fourth output plane.
28279
28280       The first plane has the index 0. The default is to keep the input
28281       unchanged.
28282
28283       Examples
28284
28285       •   Swap the second and third planes of the input:
28286
28287                   ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
28288
28289   signalstats
28290       Evaluate various visual metrics that assist in determining issues
28291       associated with the digitization of analog video media.
28292
28293       By default the filter will log these metadata values:
28294
28295       YMIN
28296           Display the minimal Y value contained within the input frame.
28297           Expressed in range of [0-255].
28298
28299       YLOW
28300           Display the Y value at the 10% percentile within the input frame.
28301           Expressed in range of [0-255].
28302
28303       YAVG
28304           Display the average Y value within the input frame. Expressed in
28305           range of [0-255].
28306
28307       YHIGH
28308           Display the Y value at the 90% percentile within the input frame.
28309           Expressed in range of [0-255].
28310
28311       YMAX
28312           Display the maximum Y value contained within the input frame.
28313           Expressed in range of [0-255].
28314
28315       UMIN
28316           Display the minimal U value contained within the input frame.
28317           Expressed in range of [0-255].
28318
28319       ULOW
28320           Display the U value at the 10% percentile within the input frame.
28321           Expressed in range of [0-255].
28322
28323       UAVG
28324           Display the average U value within the input frame. Expressed in
28325           range of [0-255].
28326
28327       UHIGH
28328           Display the U value at the 90% percentile within the input frame.
28329           Expressed in range of [0-255].
28330
28331       UMAX
28332           Display the maximum U value contained within the input frame.
28333           Expressed in range of [0-255].
28334
28335       VMIN
28336           Display the minimal V value contained within the input frame.
28337           Expressed in range of [0-255].
28338
28339       VLOW
28340           Display the V value at the 10% percentile within the input frame.
28341           Expressed in range of [0-255].
28342
28343       VAVG
28344           Display the average V value within the input frame. Expressed in
28345           range of [0-255].
28346
28347       VHIGH
28348           Display the V value at the 90% percentile within the input frame.
28349           Expressed in range of [0-255].
28350
28351       VMAX
28352           Display the maximum V value contained within the input frame.
28353           Expressed in range of [0-255].
28354
28355       SATMIN
28356           Display the minimal saturation value contained within the input
28357           frame.  Expressed in range of [0-~181.02].
28358
28359       SATLOW
28360           Display the saturation value at the 10% percentile within the input
28361           frame.  Expressed in range of [0-~181.02].
28362
28363       SATAVG
28364           Display the average saturation value within the input frame.
28365           Expressed in range of [0-~181.02].
28366
28367       SATHIGH
28368           Display the saturation value at the 90% percentile within the input
28369           frame.  Expressed in range of [0-~181.02].
28370
28371       SATMAX
28372           Display the maximum saturation value contained within the input
28373           frame.  Expressed in range of [0-~181.02].
28374
28375       HUEMED
28376           Display the median value for hue within the input frame. Expressed
28377           in range of [0-360].
28378
28379       HUEAVG
28380           Display the average value for hue within the input frame. Expressed
28381           in range of [0-360].
28382
28383       YDIF
28384           Display the average of sample value difference between all values
28385           of the Y plane in the current frame and corresponding values of the
28386           previous input frame.  Expressed in range of [0-255].
28387
28388       UDIF
28389           Display the average of sample value difference between all values
28390           of the U plane in the current frame and corresponding values of the
28391           previous input frame.  Expressed in range of [0-255].
28392
28393       VDIF
28394           Display the average of sample value difference between all values
28395           of the V plane in the current frame and corresponding values of the
28396           previous input frame.  Expressed in range of [0-255].
28397
28398       YBITDEPTH
28399           Display bit depth of Y plane in current frame.  Expressed in range
28400           of [0-16].
28401
28402       UBITDEPTH
28403           Display bit depth of U plane in current frame.  Expressed in range
28404           of [0-16].
28405
28406       VBITDEPTH
28407           Display bit depth of V plane in current frame.  Expressed in range
28408           of [0-16].
28409
28410       The filter accepts the following options:
28411
28412       stat
28413       out stat specify an additional form of image analysis.  out output
28414           video with the specified type of pixel highlighted.
28415
28416           Both options accept the following values:
28417
28418           tout
28419               Identify temporal outliers pixels. A temporal outlier is a
28420               pixel unlike the neighboring pixels of the same field. Examples
28421               of temporal outliers include the results of video dropouts,
28422               head clogs, or tape tracking issues.
28423
28424           vrep
28425               Identify vertical line repetition. Vertical line repetition
28426               includes similar rows of pixels within a frame. In born-digital
28427               video vertical line repetition is common, but this pattern is
28428               uncommon in video digitized from an analog source. When it
28429               occurs in video that results from the digitization of an analog
28430               source it can indicate concealment from a dropout compensator.
28431
28432           brng
28433               Identify pixels that fall outside of legal broadcast range.
28434
28435       color, c
28436           Set the highlight color for the out option. The default color is
28437           yellow.
28438
28439       Examples
28440
28441       •   Output data of various video metrics:
28442
28443                   ffprobe -f lavfi movie=example.mov,signalstats="stat=tout+vrep+brng" -show_frames
28444
28445       •   Output specific data about the minimum and maximum values of the Y
28446           plane per frame:
28447
28448                   ffprobe -f lavfi movie=example.mov,signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN
28449
28450       •   Playback video while highlighting pixels that are outside of
28451           broadcast range in red.
28452
28453                   ffplay example.mov -vf signalstats="out=brng:color=red"
28454
28455       •   Playback video with signalstats metadata drawn over the frame.
28456
28457                   ffplay example.mov -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=FreeSerif.ttf:textfile=signalstat_drawtext.txt
28458
28459           The contents of signalstat_drawtext.txt used in the command are:
28460
28461                   time %{pts:hms}
28462                   Y (%{metadata:lavfi.signalstats.YMIN}-%{metadata:lavfi.signalstats.YMAX})
28463                   U (%{metadata:lavfi.signalstats.UMIN}-%{metadata:lavfi.signalstats.UMAX})
28464                   V (%{metadata:lavfi.signalstats.VMIN}-%{metadata:lavfi.signalstats.VMAX})
28465                   saturation maximum: %{metadata:lavfi.signalstats.SATMAX}
28466
28467   signature
28468       Calculates the MPEG-7 Video Signature. The filter can handle more than
28469       one input. In this case the matching between the inputs can be
28470       calculated additionally.  The filter always passes through the first
28471       input. The signature of each stream can be written into a file.
28472
28473       It accepts the following options:
28474
28475       detectmode
28476           Enable or disable the matching process.
28477
28478           Available values are:
28479
28480           off Disable the calculation of a matching (default).
28481
28482           full
28483               Calculate the matching for the whole video and output whether
28484               the whole video matches or only parts.
28485
28486           fast
28487               Calculate only until a matching is found or the video ends.
28488               Should be faster in some cases.
28489
28490       nb_inputs
28491           Set the number of inputs. The option value must be a non negative
28492           integer.  Default value is 1.
28493
28494       filename
28495           Set the path to which the output is written. If there is more than
28496           one input, the path must be a prototype, i.e. must contain %d or
28497           %0nd (where n is a positive integer), that will be replaced with
28498           the input number. If no filename is specified, no output will be
28499           written. This is the default.
28500
28501       format
28502           Choose the output format.
28503
28504           Available values are:
28505
28506           binary
28507               Use the specified binary representation (default).
28508
28509           xml Use the specified xml representation.
28510
28511       th_d
28512           Set threshold to detect one word as similar. The option value must
28513           be an integer greater than zero. The default value is 9000.
28514
28515       th_dc
28516           Set threshold to detect all words as similar. The option value must
28517           be an integer greater than zero. The default value is 60000.
28518
28519       th_xh
28520           Set threshold to detect frames as similar. The option value must be
28521           an integer greater than zero. The default value is 116.
28522
28523       th_di
28524           Set the minimum length of a sequence in frames to recognize it as
28525           matching sequence. The option value must be a non negative integer
28526           value.  The default value is 0.
28527
28528       th_it
28529           Set the minimum relation, that matching frames to all frames must
28530           have.  The option value must be a double value between 0 and 1. The
28531           default value is 0.5.
28532
28533       Examples
28534
28535       •   To calculate the signature of an input video and store it in
28536           signature.bin:
28537
28538                   ffmpeg -i input.mkv -vf signature=filename=signature.bin -map 0:v -f null -
28539
28540       •   To detect whether two videos match and store the signatures in XML
28541           format in signature0.xml and signature1.xml:
28542
28543                   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 -
28544
28545   siti
28546       Calculate Spatial Info (SI) and Temporal Info (TI) scores for a video,
28547       as defined in ITU-T P.910: Subjective video quality assessment methods
28548       for multimedia applications. Available PDF at
28549       <https://www.itu.int/rec/T-REC-P.910-199909-S/en >.
28550
28551       It accepts the following option:
28552
28553       print_summary
28554           If set to 1, Summary statistics will be printed to the console.
28555           Default 0.
28556
28557       Examples
28558
28559       •   To calculate SI/TI metrics and print summary:
28560
28561                   ffmpeg -i input.mp4 -vf siti=print_summary=1 -f null -
28562
28563   smartblur
28564       Blur the input video without impacting the outlines.
28565
28566       It accepts the following options:
28567
28568       luma_radius, lr
28569           Set the luma radius. The option value must be a float number in the
28570           range [0.1,5.0] that specifies the variance of the gaussian filter
28571           used to blur the image (slower if larger). Default value is 1.0.
28572
28573       luma_strength, ls
28574           Set the luma strength. The option value must be a float number in
28575           the range [-1.0,1.0] that configures the blurring. A value included
28576           in [0.0,1.0] will blur the image whereas a value included in
28577           [-1.0,0.0] will sharpen the image. Default value is 1.0.
28578
28579       luma_threshold, lt
28580           Set the luma threshold used as a coefficient to determine whether a
28581           pixel should be blurred or not. The option value must be an integer
28582           in the range [-30,30]. A value of 0 will filter all the image, a
28583           value included in [0,30] will filter flat areas and a value
28584           included in [-30,0] will filter edges. Default value is 0.
28585
28586       chroma_radius, cr
28587           Set the chroma radius. The option value must be a float number in
28588           the range [0.1,5.0] that specifies the variance of the gaussian
28589           filter used to blur the image (slower if larger). Default value is
28590           luma_radius.
28591
28592       chroma_strength, cs
28593           Set the chroma strength. The option value must be a float number in
28594           the range [-1.0,1.0] that configures the blurring. A value included
28595           in [0.0,1.0] will blur the image whereas a value included in
28596           [-1.0,0.0] will sharpen the image. Default value is luma_strength.
28597
28598       chroma_threshold, ct
28599           Set the chroma threshold used as a coefficient to determine whether
28600           a pixel should be blurred or not. The option value must be an
28601           integer in the range [-30,30]. A value of 0 will filter all the
28602           image, a value included in [0,30] will filter flat areas and a
28603           value included in [-30,0] will filter edges. Default value is
28604           luma_threshold.
28605
28606       If a chroma option is not explicitly set, the corresponding luma value
28607       is set.
28608
28609   sobel
28610       Apply sobel operator to input video stream.
28611
28612       The filter accepts the following option:
28613
28614       planes
28615           Set which planes will be processed, unprocessed planes will be
28616           copied.  By default value 0xf, all planes will be processed.
28617
28618       scale
28619           Set value which will be multiplied with filtered result.
28620
28621       delta
28622           Set value which will be added to filtered result.
28623
28624       Commands
28625
28626       This filter supports the all above options as commands.
28627
28628   spp
28629       Apply a simple postprocessing filter that compresses and decompresses
28630       the image at several (or - in the case of quality level 6 - all) shifts
28631       and average the results.
28632
28633       The filter accepts the following options:
28634
28635       quality
28636           Set quality. This option defines the number of levels for
28637           averaging. It accepts an integer in the range 0-6. If set to 0, the
28638           filter will have no effect. A value of 6 means the higher quality.
28639           For each increment of that value the speed drops by a factor of
28640           approximately 2.  Default value is 3.
28641
28642       qp  Force a constant quantization parameter. If not set, the filter
28643           will use the QP from the video stream (if available).
28644
28645       mode
28646           Set thresholding mode. Available modes are:
28647
28648           hard
28649               Set hard thresholding (default).
28650
28651           soft
28652               Set soft thresholding (better de-ringing effect, but likely
28653               blurrier).
28654
28655       use_bframe_qp
28656           Enable the use of the QP from the B-Frames if set to 1. Using this
28657           option may cause flicker since the B-Frames have often larger QP.
28658           Default is 0 (not enabled).
28659
28660       Commands
28661
28662       This filter supports the following commands:
28663
28664       quality, level
28665           Set quality level. The value "max" can be used to set the maximum
28666           level, currently 6.
28667
28668   sr
28669       Scale the input by applying one of the super-resolution methods based
28670       on convolutional neural networks. Supported models:
28671
28672       •   Super-Resolution Convolutional Neural Network model (SRCNN).  See
28673           <https://arxiv.org/abs/1501.00092>.
28674
28675       •   Efficient Sub-Pixel Convolutional Neural Network model (ESPCN).
28676           See <https://arxiv.org/abs/1609.05158>.
28677
28678       Training scripts as well as scripts for model file (.pb) saving can be
28679       found at <https://github.com/XueweiMeng/sr/tree/sr_dnn_native>.
28680       Original repository is at
28681       <https://github.com/HighVoltageRocknRoll/sr.git>.
28682
28683       Native model files (.model) can be generated from TensorFlow model
28684       files (.pb) by using tools/python/convert.py
28685
28686       The filter accepts the following options:
28687
28688       dnn_backend
28689           Specify which DNN backend to use for model loading and execution.
28690           This option accepts the following values:
28691
28692           native
28693               Native implementation of DNN loading and execution.
28694
28695           tensorflow
28696               TensorFlow backend. To enable this backend you need to install
28697               the TensorFlow for C library (see
28698               <https://www.tensorflow.org/install/lang_c>) and configure
28699               FFmpeg with "--enable-libtensorflow"
28700
28701           Default value is native.
28702
28703       model
28704           Set path to model file specifying network architecture and its
28705           parameters.  Note that different backends use different file
28706           formats. TensorFlow backend can load files for both formats, while
28707           native backend can load files for only its format.
28708
28709       scale_factor
28710           Set scale factor for SRCNN model. Allowed values are 2, 3 and 4.
28711           Default value is 2. Scale factor is necessary for SRCNN model,
28712           because it accepts input upscaled using bicubic upscaling with
28713           proper scale factor.
28714
28715       To get full functionality (such as async execution), please use the
28716       dnn_processing filter.
28717
28718   ssim
28719       Obtain the SSIM (Structural SImilarity Metric) between two input
28720       videos.
28721
28722       This filter takes in input two input videos, the first input is
28723       considered the "main" source and is passed unchanged to the output. The
28724       second input is used as a "reference" video for computing the SSIM.
28725
28726       Both video inputs must have the same resolution and pixel format for
28727       this filter to work correctly. Also it assumes that both inputs have
28728       the same number of frames, which are compared one by one.
28729
28730       The filter stores the calculated SSIM of each frame.
28731
28732       The description of the accepted parameters follows.
28733
28734       stats_file, f
28735           If specified the filter will use the named file to save the SSIM of
28736           each individual frame. When filename equals "-" the data is sent to
28737           standard output.
28738
28739       The file printed if stats_file is selected, contains a sequence of
28740       key/value pairs of the form key:value for each compared couple of
28741       frames.
28742
28743       A description of each shown parameter follows:
28744
28745       n   sequential number of the input frame, starting from 1
28746
28747       Y, U, V, R, G, B
28748           SSIM of the compared frames for the component specified by the
28749           suffix.
28750
28751       All SSIM of the compared frames for the whole frame.
28752
28753       dB  Same as above but in dB representation.
28754
28755       This filter also supports the framesync options.
28756
28757       Examples
28758
28759       •   For example:
28760
28761                   movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
28762                   [main][ref] ssim="stats_file=stats.log" [out]
28763
28764           On this example the input file being processed is compared with the
28765           reference file ref_movie.mpg. The SSIM of each individual frame is
28766           stored in stats.log.
28767
28768       •   Another example with both psnr and ssim at same time:
28769
28770                   ffmpeg -i main.mpg -i ref.mpg -lavfi  "ssim;[0:v][1:v]psnr" -f null -
28771
28772       •   Another example with different containers:
28773
28774                   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 -
28775
28776   stereo3d
28777       Convert between different stereoscopic image formats.
28778
28779       The filters accept the following options:
28780
28781       in  Set stereoscopic image format of input.
28782
28783           Available values for input image formats are:
28784
28785           sbsl
28786               side by side parallel (left eye left, right eye right)
28787
28788           sbsr
28789               side by side crosseye (right eye left, left eye right)
28790
28791           sbs2l
28792               side by side parallel with half width resolution (left eye
28793               left, right eye right)
28794
28795           sbs2r
28796               side by side crosseye with half width resolution (right eye
28797               left, left eye right)
28798
28799           abl
28800           tbl above-below (left eye above, right eye below)
28801
28802           abr
28803           tbr above-below (right eye above, left eye below)
28804
28805           ab2l
28806           tb2l
28807               above-below with half height resolution (left eye above, right
28808               eye below)
28809
28810           ab2r
28811           tb2r
28812               above-below with half height resolution (right eye above, left
28813               eye below)
28814
28815           al  alternating frames (left eye first, right eye second)
28816
28817           ar  alternating frames (right eye first, left eye second)
28818
28819           irl interleaved rows (left eye has top row, right eye starts on
28820               next row)
28821
28822           irr interleaved rows (right eye has top row, left eye starts on
28823               next row)
28824
28825           icl interleaved columns, left eye first
28826
28827           icr interleaved columns, right eye first
28828
28829               Default value is sbsl.
28830
28831       out Set stereoscopic image format of output.
28832
28833           sbsl
28834               side by side parallel (left eye left, right eye right)
28835
28836           sbsr
28837               side by side crosseye (right eye left, left eye right)
28838
28839           sbs2l
28840               side by side parallel with half width resolution (left eye
28841               left, right eye right)
28842
28843           sbs2r
28844               side by side crosseye with half width resolution (right eye
28845               left, left eye right)
28846
28847           abl
28848           tbl above-below (left eye above, right eye below)
28849
28850           abr
28851           tbr above-below (right eye above, left eye below)
28852
28853           ab2l
28854           tb2l
28855               above-below with half height resolution (left eye above, right
28856               eye below)
28857
28858           ab2r
28859           tb2r
28860               above-below with half height resolution (right eye above, left
28861               eye below)
28862
28863           al  alternating frames (left eye first, right eye second)
28864
28865           ar  alternating frames (right eye first, left eye second)
28866
28867           irl interleaved rows (left eye has top row, right eye starts on
28868               next row)
28869
28870           irr interleaved rows (right eye has top row, left eye starts on
28871               next row)
28872
28873           arbg
28874               anaglyph red/blue gray (red filter on left eye, blue filter on
28875               right eye)
28876
28877           argg
28878               anaglyph red/green gray (red filter on left eye, green filter
28879               on right eye)
28880
28881           arcg
28882               anaglyph red/cyan gray (red filter on left eye, cyan filter on
28883               right eye)
28884
28885           arch
28886               anaglyph red/cyan half colored (red filter on left eye, cyan
28887               filter on right eye)
28888
28889           arcc
28890               anaglyph red/cyan color (red filter on left eye, cyan filter on
28891               right eye)
28892
28893           arcd
28894               anaglyph red/cyan color optimized with the least squares
28895               projection of dubois (red filter on left eye, cyan filter on
28896               right eye)
28897
28898           agmg
28899               anaglyph green/magenta gray (green filter on left eye, magenta
28900               filter on right eye)
28901
28902           agmh
28903               anaglyph green/magenta half colored (green filter on left eye,
28904               magenta filter on right eye)
28905
28906           agmc
28907               anaglyph green/magenta colored (green filter on left eye,
28908               magenta filter on right eye)
28909
28910           agmd
28911               anaglyph green/magenta color optimized with the least squares
28912               projection of dubois (green filter on left eye, magenta filter
28913               on right eye)
28914
28915           aybg
28916               anaglyph yellow/blue gray (yellow filter on left eye, blue
28917               filter on right eye)
28918
28919           aybh
28920               anaglyph yellow/blue half colored (yellow filter on left eye,
28921               blue filter on right eye)
28922
28923           aybc
28924               anaglyph yellow/blue colored (yellow filter on left eye, blue
28925               filter on right eye)
28926
28927           aybd
28928               anaglyph yellow/blue color optimized with the least squares
28929               projection of dubois (yellow filter on left eye, blue filter on
28930               right eye)
28931
28932           ml  mono output (left eye only)
28933
28934           mr  mono output (right eye only)
28935
28936           chl checkerboard, left eye first
28937
28938           chr checkerboard, right eye first
28939
28940           icl interleaved columns, left eye first
28941
28942           icr interleaved columns, right eye first
28943
28944           hdmi
28945               HDMI frame pack
28946
28947           Default value is arcd.
28948
28949       Examples
28950
28951       •   Convert input video from side by side parallel to anaglyph
28952           yellow/blue dubois:
28953
28954                   stereo3d=sbsl:aybd
28955
28956       •   Convert input video from above below (left eye above, right eye
28957           below) to side by side crosseye.
28958
28959                   stereo3d=abl:sbsr
28960
28961   streamselect, astreamselect
28962       Select video or audio streams.
28963
28964       The filter accepts the following options:
28965
28966       inputs
28967           Set number of inputs. Default is 2.
28968
28969       map Set input indexes to remap to outputs.
28970
28971       Commands
28972
28973       The "streamselect" and "astreamselect" filter supports the following
28974       commands:
28975
28976       map Set input indexes to remap to outputs.
28977
28978       Examples
28979
28980       •   Select first 5 seconds 1st stream and rest of time 2nd stream:
28981
28982                   sendcmd='5.0 streamselect map 1',streamselect=inputs=2:map=0
28983
28984       •   Same as above, but for audio:
28985
28986                   asendcmd='5.0 astreamselect map 1',astreamselect=inputs=2:map=0
28987
28988   subtitles
28989       Draw subtitles on top of input video using the libass library.
28990
28991       To enable compilation of this filter you need to configure FFmpeg with
28992       "--enable-libass". This filter also requires a build with libavcodec
28993       and libavformat to convert the passed subtitles file to ASS (Advanced
28994       Substation Alpha) subtitles format.
28995
28996       The filter accepts the following options:
28997
28998       filename, f
28999           Set the filename of the subtitle file to read. It must be
29000           specified.
29001
29002       original_size
29003           Specify the size of the original video, the video for which the ASS
29004           file was composed. For the syntax of this option, check the "Video
29005           size" section in the ffmpeg-utils manual.  Due to a misdesign in
29006           ASS aspect ratio arithmetic, this is necessary to correctly scale
29007           the fonts if the aspect ratio has been changed.
29008
29009       fontsdir
29010           Set a directory path containing fonts that can be used by the
29011           filter.  These fonts will be used in addition to whatever the font
29012           provider uses.
29013
29014       alpha
29015           Process alpha channel, by default alpha channel is untouched.
29016
29017       charenc
29018           Set subtitles input character encoding. "subtitles" filter only.
29019           Only useful if not UTF-8.
29020
29021       stream_index, si
29022           Set subtitles stream index. "subtitles" filter only.
29023
29024       force_style
29025           Override default style or script info parameters of the subtitles.
29026           It accepts a string containing ASS style format "KEY=VALUE" couples
29027           separated by ",".
29028
29029       If the first key is not specified, it is assumed that the first value
29030       specifies the filename.
29031
29032       For example, to render the file sub.srt on top of the input video, use
29033       the command:
29034
29035               subtitles=sub.srt
29036
29037       which is equivalent to:
29038
29039               subtitles=filename=sub.srt
29040
29041       To render the default subtitles stream from file video.mkv, use:
29042
29043               subtitles=video.mkv
29044
29045       To render the second subtitles stream from that file, use:
29046
29047               subtitles=video.mkv:si=1
29048
29049       To make the subtitles stream from sub.srt appear in 80% transparent
29050       blue "DejaVu Serif", use:
29051
29052               subtitles=sub.srt:force_style='Fontname=DejaVu Serif,PrimaryColour=&HCCFF0000'
29053
29054   super2xsai
29055       Scale the input by 2x and smooth using the Super2xSaI (Scale and
29056       Interpolate) pixel art scaling algorithm.
29057
29058       Useful for enlarging pixel art images without reducing sharpness.
29059
29060   swaprect
29061       Swap two rectangular objects in video.
29062
29063       This filter accepts the following options:
29064
29065       w   Set object width.
29066
29067       h   Set object height.
29068
29069       x1  Set 1st rect x coordinate.
29070
29071       y1  Set 1st rect y coordinate.
29072
29073       x2  Set 2nd rect x coordinate.
29074
29075       y2  Set 2nd rect y coordinate.
29076
29077           All expressions are evaluated once for each frame.
29078
29079       The all options are expressions containing the following constants:
29080
29081       w
29082       h   The input width and height.
29083
29084       a   same as w / h
29085
29086       sar input sample aspect ratio
29087
29088       dar input display aspect ratio, it is the same as (w / h) * sar
29089
29090       n   The number of the input frame, starting from 0.
29091
29092       t   The timestamp expressed in seconds. It's NAN if the input timestamp
29093           is unknown.
29094
29095       pos the position in the file of the input frame, NAN if unknown
29096
29097       Commands
29098
29099       This filter supports the all above options as commands.
29100
29101   swapuv
29102       Swap U & V plane.
29103
29104   tblend
29105       Blend successive video frames.
29106
29107       See blend
29108
29109   telecine
29110       Apply telecine process to the video.
29111
29112       This filter accepts the following options:
29113
29114       first_field
29115           top, t
29116               top field first
29117
29118           bottom, b
29119               bottom field first The default value is "top".
29120
29121       pattern
29122           A string of numbers representing the pulldown pattern you wish to
29123           apply.  The default value is 23.
29124
29125               Some typical patterns:
29126
29127               NTSC output (30i):
29128               27.5p: 32222
29129               24p: 23 (classic)
29130               24p: 2332 (preferred)
29131               20p: 33
29132               18p: 334
29133               16p: 3444
29134
29135               PAL output (25i):
29136               27.5p: 12222
29137               24p: 222222222223 ("Euro pulldown")
29138               16.67p: 33
29139               16p: 33333334
29140
29141   thistogram
29142       Compute and draw a color distribution histogram for the input video
29143       across time.
29144
29145       Unlike histogram video filter which only shows histogram of single
29146       input frame at certain time, this filter shows also past histograms of
29147       number of frames defined by "width" option.
29148
29149       The computed histogram is a representation of the color component
29150       distribution in an image.
29151
29152       The filter accepts the following options:
29153
29154       width, w
29155           Set width of single color component output. Default value is 0.
29156           Value of 0 means width will be picked from input video.  This also
29157           set number of passed histograms to keep.  Allowed range is [0,
29158           8192].
29159
29160       display_mode, d
29161           Set display mode.  It accepts the following values:
29162
29163           stack
29164               Per color component graphs are placed below each other.
29165
29166           parade
29167               Per color component graphs are placed side by side.
29168
29169           overlay
29170               Presents information identical to that in the "parade", except
29171               that the graphs representing color components are superimposed
29172               directly over one another.
29173
29174           Default is "stack".
29175
29176       levels_mode, m
29177           Set mode. Can be either "linear", or "logarithmic".  Default is
29178           "linear".
29179
29180       components, c
29181           Set what color components to display.  Default is 7.
29182
29183       bgopacity, b
29184           Set background opacity. Default is 0.9.
29185
29186       envelope, e
29187           Show envelope. Default is disabled.
29188
29189       ecolor, ec
29190           Set envelope color. Default is "gold".
29191
29192       slide
29193           Set slide mode.
29194
29195           Available values for slide is:
29196
29197           frame
29198               Draw new frame when right border is reached.
29199
29200           replace
29201               Replace old columns with new ones.
29202
29203           scroll
29204               Scroll from right to left.
29205
29206           rscroll
29207               Scroll from left to right.
29208
29209           picture
29210               Draw single picture.
29211
29212           Default is "replace".
29213
29214   threshold
29215       Apply threshold effect to video stream.
29216
29217       This filter needs four video streams to perform thresholding.  First
29218       stream is stream we are filtering.  Second stream is holding threshold
29219       values, third stream is holding min values, and last, fourth stream is
29220       holding max values.
29221
29222       The filter accepts the following option:
29223
29224       planes
29225           Set which planes will be processed, unprocessed planes will be
29226           copied.  By default value 0xf, all planes will be processed.
29227
29228       For example if first stream pixel's component value is less then
29229       threshold value of pixel component from 2nd threshold stream, third
29230       stream value will picked, otherwise fourth stream pixel component value
29231       will be picked.
29232
29233       Using color source filter one can perform various types of
29234       thresholding:
29235
29236       Commands
29237
29238       This filter supports the all options as commands.
29239
29240       Examples
29241
29242       •   Binary threshold, using gray color as threshold:
29243
29244                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=black -f lavfi -i color=white -lavfi threshold output.avi
29245
29246       •   Inverted binary threshold, using gray color as threshold:
29247
29248                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -f lavfi -i color=black -lavfi threshold output.avi
29249
29250       •   Truncate binary threshold, using gray color as threshold:
29251
29252                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=gray -lavfi threshold output.avi
29253
29254       •   Threshold to zero, using gray color as threshold:
29255
29256                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -i 320x240.avi -lavfi threshold output.avi
29257
29258       •   Inverted threshold to zero, using gray color as threshold:
29259
29260                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=white -lavfi threshold output.avi
29261
29262   thumbnail
29263       Select the most representative frame in a given sequence of consecutive
29264       frames.
29265
29266       The filter accepts the following options:
29267
29268       n   Set the frames batch size to analyze; in a set of n frames, the
29269           filter will pick one of them, and then handle the next batch of n
29270           frames until the end. Default is 100.
29271
29272       log Set the log level to display picked frame stats.  Default is
29273           "info".
29274
29275       Since the filter keeps track of the whole frames sequence, a bigger n
29276       value will result in a higher memory usage, so a high value is not
29277       recommended.
29278
29279       Examples
29280
29281       •   Extract one picture each 50 frames:
29282
29283                   thumbnail=50
29284
29285       •   Complete example of a thumbnail creation with ffmpeg:
29286
29287                   ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
29288
29289   tile
29290       Tile several successive frames together.
29291
29292       The untile filter can do the reverse.
29293
29294       The filter accepts the following options:
29295
29296       layout
29297           Set the grid size in the form "COLUMNSxROWS". Range is upto
29298           UINT_MAX cells.  Default is "6x5".
29299
29300       nb_frames
29301           Set the maximum number of frames to render in the given area. It
29302           must be less than or equal to wxh. The default value is 0, meaning
29303           all the area will be used.
29304
29305       margin
29306           Set the outer border margin in pixels. Range is 0 to 1024. Default
29307           is 0.
29308
29309       padding
29310           Set the inner border thickness (i.e. the number of pixels between
29311           frames). For more advanced padding options (such as having
29312           different values for the edges), refer to the pad video filter.
29313           Range is 0 to 1024. Default is 0.
29314
29315       color
29316           Specify the color of the unused area. For the syntax of this
29317           option, check the "Color" section in the ffmpeg-utils manual.  The
29318           default value of color is "black".
29319
29320       overlap
29321           Set the number of frames to overlap when tiling several successive
29322           frames together.  The value must be between 0 and nb_frames - 1.
29323           Default is 0.
29324
29325       init_padding
29326           Set the number of frames to initially be empty before displaying
29327           first output frame.  This controls how soon will one get first
29328           output frame.  The value must be between 0 and nb_frames - 1.
29329           Default is 0.
29330
29331       Examples
29332
29333       •   Produce 8x8 PNG tiles of all keyframes (-skip_frame nokey) in a
29334           movie:
29335
29336                   ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
29337
29338           The -vsync 0 is necessary to prevent ffmpeg from duplicating each
29339           output frame to accommodate the originally detected frame rate.
29340
29341       •   Display 5 pictures in an area of "3x2" frames, with 7 pixels
29342           between them, and 2 pixels of initial margin, using mixed flat and
29343           named options:
29344
29345                   tile=3x2:nb_frames=5:padding=7:margin=2
29346
29347   tinterlace
29348       Perform various types of temporal field interlacing.
29349
29350       Frames are counted starting from 1, so the first input frame is
29351       considered odd.
29352
29353       The filter accepts the following options:
29354
29355       mode
29356           Specify the mode of the interlacing. This option can also be
29357           specified as a value alone. See below for a list of values for this
29358           option.
29359
29360           Available values are:
29361
29362           merge, 0
29363               Move odd frames into the upper field, even into the lower
29364               field, generating a double height frame at half frame rate.
29365
29366                        ------> time
29367                       Input:
29368                       Frame 1         Frame 2         Frame 3         Frame 4
29369
29370                       11111           22222           33333           44444
29371                       11111           22222           33333           44444
29372                       11111           22222           33333           44444
29373                       11111           22222           33333           44444
29374
29375                       Output:
29376                       11111                           33333
29377                       22222                           44444
29378                       11111                           33333
29379                       22222                           44444
29380                       11111                           33333
29381                       22222                           44444
29382                       11111                           33333
29383                       22222                           44444
29384
29385           drop_even, 1
29386               Only output odd frames, even frames are dropped, generating a
29387               frame with unchanged height at half frame rate.
29388
29389                        ------> time
29390                       Input:
29391                       Frame 1         Frame 2         Frame 3         Frame 4
29392
29393                       11111           22222           33333           44444
29394                       11111           22222           33333           44444
29395                       11111           22222           33333           44444
29396                       11111           22222           33333           44444
29397
29398                       Output:
29399                       11111                           33333
29400                       11111                           33333
29401                       11111                           33333
29402                       11111                           33333
29403
29404           drop_odd, 2
29405               Only output even frames, odd frames are dropped, generating a
29406               frame with unchanged height at half frame rate.
29407
29408                        ------> time
29409                       Input:
29410                       Frame 1         Frame 2         Frame 3         Frame 4
29411
29412                       11111           22222           33333           44444
29413                       11111           22222           33333           44444
29414                       11111           22222           33333           44444
29415                       11111           22222           33333           44444
29416
29417                       Output:
29418                                       22222                           44444
29419                                       22222                           44444
29420                                       22222                           44444
29421                                       22222                           44444
29422
29423           pad, 3
29424               Expand each frame to full height, but pad alternate lines with
29425               black, generating a frame with double height at the same input
29426               frame rate.
29427
29428                        ------> time
29429                       Input:
29430                       Frame 1         Frame 2         Frame 3         Frame 4
29431
29432                       11111           22222           33333           44444
29433                       11111           22222           33333           44444
29434                       11111           22222           33333           44444
29435                       11111           22222           33333           44444
29436
29437                       Output:
29438                       11111           .....           33333           .....
29439                       .....           22222           .....           44444
29440                       11111           .....           33333           .....
29441                       .....           22222           .....           44444
29442                       11111           .....           33333           .....
29443                       .....           22222           .....           44444
29444                       11111           .....           33333           .....
29445                       .....           22222           .....           44444
29446
29447           interleave_top, 4
29448               Interleave the upper field from odd frames with the lower field
29449               from even frames, generating a frame with unchanged height at
29450               half frame rate.
29451
29452                        ------> time
29453                       Input:
29454                       Frame 1         Frame 2         Frame 3         Frame 4
29455
29456                       11111<-         22222           33333<-         44444
29457                       11111           22222<-         33333           44444<-
29458                       11111<-         22222           33333<-         44444
29459                       11111           22222<-         33333           44444<-
29460
29461                       Output:
29462                       11111                           33333
29463                       22222                           44444
29464                       11111                           33333
29465                       22222                           44444
29466
29467           interleave_bottom, 5
29468               Interleave the lower field from odd frames with the upper field
29469               from even frames, generating a frame with unchanged height at
29470               half frame rate.
29471
29472                        ------> time
29473                       Input:
29474                       Frame 1         Frame 2         Frame 3         Frame 4
29475
29476                       11111           22222<-         33333           44444<-
29477                       11111<-         22222           33333<-         44444
29478                       11111           22222<-         33333           44444<-
29479                       11111<-         22222           33333<-         44444
29480
29481                       Output:
29482                       22222                           44444
29483                       11111                           33333
29484                       22222                           44444
29485                       11111                           33333
29486
29487           interlacex2, 6
29488               Double frame rate with unchanged height. Frames are inserted
29489               each containing the second temporal field from the previous
29490               input frame and the first temporal field from the next input
29491               frame. This mode relies on the top_field_first flag. Useful for
29492               interlaced video displays with no field synchronisation.
29493
29494                        ------> time
29495                       Input:
29496                       Frame 1         Frame 2         Frame 3         Frame 4
29497
29498                       11111           22222           33333           44444
29499                        11111           22222           33333           44444
29500                       11111           22222           33333           44444
29501                        11111           22222           33333           44444
29502
29503                       Output:
29504                       11111   22222   22222   33333   33333   44444   44444
29505                        11111   11111   22222   22222   33333   33333   44444
29506                       11111   22222   22222   33333   33333   44444   44444
29507                        11111   11111   22222   22222   33333   33333   44444
29508
29509           mergex2, 7
29510               Move odd frames into the upper field, even into the lower
29511               field, generating a double height frame at same frame rate.
29512
29513                        ------> time
29514                       Input:
29515                       Frame 1         Frame 2         Frame 3         Frame 4
29516
29517                       11111           22222           33333           44444
29518                       11111           22222           33333           44444
29519                       11111           22222           33333           44444
29520                       11111           22222           33333           44444
29521
29522                       Output:
29523                       11111           33333           33333           55555
29524                       22222           22222           44444           44444
29525                       11111           33333           33333           55555
29526                       22222           22222           44444           44444
29527                       11111           33333           33333           55555
29528                       22222           22222           44444           44444
29529                       11111           33333           33333           55555
29530                       22222           22222           44444           44444
29531
29532           Numeric values are deprecated but are accepted for backward
29533           compatibility reasons.
29534
29535           Default mode is "merge".
29536
29537       flags
29538           Specify flags influencing the filter process.
29539
29540           Available value for flags is:
29541
29542           low_pass_filter, vlpf
29543               Enable linear vertical low-pass filtering in the filter.
29544               Vertical low-pass filtering is required when creating an
29545               interlaced destination from a progressive source which contains
29546               high-frequency vertical detail. Filtering will reduce interlace
29547               'twitter' and Moire patterning.
29548
29549           complex_filter, cvlpf
29550               Enable complex vertical low-pass filtering.  This will slightly
29551               less reduce interlace 'twitter' and Moire patterning but better
29552               retain detail and subjective sharpness impression.
29553
29554           bypass_il
29555               Bypass already interlaced frames, only adjust the frame rate.
29556
29557           Vertical low-pass filtering and bypassing already interlaced frames
29558           can only be enabled for mode interleave_top and interleave_bottom.
29559
29560   tmedian
29561       Pick median pixels from several successive input video frames.
29562
29563       The filter accepts the following options:
29564
29565       radius
29566           Set radius of median filter.  Default is 1. Allowed range is from 1
29567           to 127.
29568
29569       planes
29570           Set which planes to filter. Default value is 15, by which all
29571           planes are processed.
29572
29573       percentile
29574           Set median percentile. Default value is 0.5.  Default value of 0.5
29575           will pick always median values, while 0 will pick minimum values,
29576           and 1 maximum values.
29577
29578       Commands
29579
29580       This filter supports all above options as commands, excluding option
29581       "radius".
29582
29583   tmidequalizer
29584       Apply Temporal Midway Video Equalization effect.
29585
29586       Midway Video Equalization adjusts a sequence of video frames to have
29587       the same histograms, while maintaining their dynamics as much as
29588       possible. It's useful for e.g. matching exposures from a video frames
29589       sequence.
29590
29591       This filter accepts the following option:
29592
29593       radius
29594           Set filtering radius. Default is 5. Allowed range is from 1 to 127.
29595
29596       sigma
29597           Set filtering sigma. Default is 0.5. This controls strength of
29598           filtering.  Setting this option to 0 effectively does nothing.
29599
29600       planes
29601           Set which planes to process. Default is 15, which is all available
29602           planes.
29603
29604   tmix
29605       Mix successive video frames.
29606
29607       A description of the accepted options follows.
29608
29609       frames
29610           The number of successive frames to mix. If unspecified, it defaults
29611           to 3.
29612
29613       weights
29614           Specify weight of each input video frame.  Each weight is separated
29615           by space. If number of weights is smaller than number of frames
29616           last specified weight will be used for all remaining unset weights.
29617
29618       scale
29619           Specify scale, if it is set it will be multiplied with sum of each
29620           weight multiplied with pixel values to give final destination pixel
29621           value. By default scale is auto scaled to sum of weights.
29622
29623       planes
29624           Set which planes to filter. Default is all. Allowed range is from 0
29625           to 15.
29626
29627       Examples
29628
29629       •   Average 7 successive frames:
29630
29631                   tmix=frames=7:weights="1 1 1 1 1 1 1"
29632
29633       •   Apply simple temporal convolution:
29634
29635                   tmix=frames=3:weights="-1 3 -1"
29636
29637       •   Similar as above but only showing temporal differences:
29638
29639                   tmix=frames=3:weights="-1 2 -1":scale=1
29640
29641       Commands
29642
29643       This filter supports the following commands:
29644
29645       weights
29646       scale
29647       planes
29648           Syntax is same as option with same name.
29649
29650   tonemap
29651       Tone map colors from different dynamic ranges.
29652
29653       This filter expects data in single precision floating point, as it
29654       needs to operate on (and can output) out-of-range values. Another
29655       filter, such as zscale, is needed to convert the resulting frame to a
29656       usable format.
29657
29658       The tonemapping algorithms implemented only work on linear light, so
29659       input data should be linearized beforehand (and possibly correctly
29660       tagged).
29661
29662               ffmpeg -i INPUT -vf zscale=transfer=linear,tonemap=clip,zscale=transfer=bt709,format=yuv420p OUTPUT
29663
29664       Options
29665
29666       The filter accepts the following options.
29667
29668       tonemap
29669           Set the tone map algorithm to use.
29670
29671           Possible values are:
29672
29673           none
29674               Do not apply any tone map, only desaturate overbright pixels.
29675
29676           clip
29677               Hard-clip any out-of-range values. Use it for perfect color
29678               accuracy for in-range values, while distorting out-of-range
29679               values.
29680
29681           linear
29682               Stretch the entire reference gamut to a linear multiple of the
29683               display.
29684
29685           gamma
29686               Fit a logarithmic transfer between the tone curves.
29687
29688           reinhard
29689               Preserve overall image brightness with a simple curve, using
29690               nonlinear contrast, which results in flattening details and
29691               degrading color accuracy.
29692
29693           hable
29694               Preserve both dark and bright details better than reinhard, at
29695               the cost of slightly darkening everything. Use it when detail
29696               preservation is more important than color and brightness
29697               accuracy.
29698
29699           mobius
29700               Smoothly map out-of-range values, while retaining contrast and
29701               colors for in-range material as much as possible. Use it when
29702               color accuracy is more important than detail preservation.
29703
29704           Default is none.
29705
29706       param
29707           Tune the tone mapping algorithm.
29708
29709           This affects the following algorithms:
29710
29711           none
29712               Ignored.
29713
29714           linear
29715               Specifies the scale factor to use while stretching.  Default to
29716               1.0.
29717
29718           gamma
29719               Specifies the exponent of the function.  Default to 1.8.
29720
29721           clip
29722               Specify an extra linear coefficient to multiply into the signal
29723               before clipping.  Default to 1.0.
29724
29725           reinhard
29726               Specify the local contrast coefficient at the display peak.
29727               Default to 0.5, which means that in-gamut values will be about
29728               half as bright as when clipping.
29729
29730           hable
29731               Ignored.
29732
29733           mobius
29734               Specify the transition point from linear to mobius transform.
29735               Every value below this point is guaranteed to be mapped 1:1.
29736               The higher the value, the more accurate the result will be, at
29737               the cost of losing bright details.  Default to 0.3, which due
29738               to the steep initial slope still preserves in-range colors
29739               fairly accurately.
29740
29741       desat
29742           Apply desaturation for highlights that exceed this level of
29743           brightness. The higher the parameter, the more color information
29744           will be preserved. This setting helps prevent unnaturally blown-out
29745           colors for super-highlights, by (smoothly) turning into white
29746           instead. This makes images feel more natural, at the cost of
29747           reducing information about out-of-range colors.
29748
29749           The default of 2.0 is somewhat conservative and will mostly just
29750           apply to skies or directly sunlit surfaces. A setting of 0.0
29751           disables this option.
29752
29753           This option works only if the input frame has a supported color
29754           tag.
29755
29756       peak
29757           Override signal/nominal/reference peak with this value. Useful when
29758           the embedded peak information in display metadata is not reliable
29759           or when tone mapping from a lower range to a higher range.
29760
29761   tpad
29762       Temporarily pad video frames.
29763
29764       The filter accepts the following options:
29765
29766       start
29767           Specify number of delay frames before input video stream. Default
29768           is 0.
29769
29770       stop
29771           Specify number of padding frames after input video stream.  Set to
29772           -1 to pad indefinitely. Default is 0.
29773
29774       start_mode
29775           Set kind of frames added to beginning of stream.  Can be either add
29776           or clone.  With add frames of solid-color are added.  With clone
29777           frames are clones of first frame.  Default is add.
29778
29779       stop_mode
29780           Set kind of frames added to end of stream.  Can be either add or
29781           clone.  With add frames of solid-color are added.  With clone
29782           frames are clones of last frame.  Default is add.
29783
29784       start_duration, stop_duration
29785           Specify the duration of the start/stop delay. See the Time duration
29786           section in the ffmpeg-utils(1) manual for the accepted syntax.
29787           These options override start and stop. Default is 0.
29788
29789       color
29790           Specify the color of the padded area. For the syntax of this
29791           option, check the "Color" section in the ffmpeg-utils manual.
29792
29793           The default value of color is "black".
29794
29795   transpose
29796       Transpose rows with columns in the input video and optionally flip it.
29797
29798       It accepts the following parameters:
29799
29800       dir Specify the transposition direction.
29801
29802           Can assume the following values:
29803
29804           0, 4, cclock_flip
29805               Rotate by 90 degrees counterclockwise and vertically flip
29806               (default), that is:
29807
29808                       L.R     L.l
29809                       . . ->  . .
29810                       l.r     R.r
29811
29812           1, 5, clock
29813               Rotate by 90 degrees clockwise, that is:
29814
29815                       L.R     l.L
29816                       . . ->  . .
29817                       l.r     r.R
29818
29819           2, 6, cclock
29820               Rotate by 90 degrees counterclockwise, that is:
29821
29822                       L.R     R.r
29823                       . . ->  . .
29824                       l.r     L.l
29825
29826           3, 7, clock_flip
29827               Rotate by 90 degrees clockwise and vertically flip, that is:
29828
29829                       L.R     r.R
29830                       . . ->  . .
29831                       l.r     l.L
29832
29833           For values between 4-7, the transposition is only done if the input
29834           video geometry is portrait and not landscape. These values are
29835           deprecated, the "passthrough" option should be used instead.
29836
29837           Numerical values are deprecated, and should be dropped in favor of
29838           symbolic constants.
29839
29840       passthrough
29841           Do not apply the transposition if the input geometry matches the
29842           one specified by the specified value. It accepts the following
29843           values:
29844
29845           none
29846               Always apply transposition.
29847
29848           portrait
29849               Preserve portrait geometry (when height >= width).
29850
29851           landscape
29852               Preserve landscape geometry (when width >= height).
29853
29854           Default value is "none".
29855
29856       For example to rotate by 90 degrees clockwise and preserve portrait
29857       layout:
29858
29859               transpose=dir=1:passthrough=portrait
29860
29861       The command above can also be specified as:
29862
29863               transpose=1:portrait
29864
29865   transpose_npp
29866       Transpose rows with columns in the input video and optionally flip it.
29867       For more in depth examples see the transpose video filter, which shares
29868       mostly the same options.
29869
29870       It accepts the following parameters:
29871
29872       dir Specify the transposition direction.
29873
29874           Can assume the following values:
29875
29876           cclock_flip
29877               Rotate by 90 degrees counterclockwise and vertically flip.
29878               (default)
29879
29880           clock
29881               Rotate by 90 degrees clockwise.
29882
29883           cclock
29884               Rotate by 90 degrees counterclockwise.
29885
29886           clock_flip
29887               Rotate by 90 degrees clockwise and vertically flip.
29888
29889       passthrough
29890           Do not apply the transposition if the input geometry matches the
29891           one specified by the specified value. It accepts the following
29892           values:
29893
29894           none
29895               Always apply transposition. (default)
29896
29897           portrait
29898               Preserve portrait geometry (when height >= width).
29899
29900           landscape
29901               Preserve landscape geometry (when width >= height).
29902
29903   trim
29904       Trim the input so that the output contains one continuous subpart of
29905       the input.
29906
29907       It accepts the following parameters:
29908
29909       start
29910           Specify the time of the start of the kept section, i.e. the frame
29911           with the timestamp start will be the first frame in the output.
29912
29913       end Specify the time of the first frame that will be dropped, i.e. the
29914           frame immediately preceding the one with the timestamp end will be
29915           the last frame in the output.
29916
29917       start_pts
29918           This is the same as start, except this option sets the start
29919           timestamp in timebase units instead of seconds.
29920
29921       end_pts
29922           This is the same as end, except this option sets the end timestamp
29923           in timebase units instead of seconds.
29924
29925       duration
29926           The maximum duration of the output in seconds.
29927
29928       start_frame
29929           The number of the first frame that should be passed to the output.
29930
29931       end_frame
29932           The number of the first frame that should be dropped.
29933
29934       start, end, and duration are expressed as time duration specifications;
29935       see the Time duration section in the ffmpeg-utils(1) manual for the
29936       accepted syntax.
29937
29938       Note that the first two sets of the start/end options and the duration
29939       option look at the frame timestamp, while the _frame variants simply
29940       count the frames that pass through the filter. Also note that this
29941       filter does not modify the timestamps. If you wish for the output
29942       timestamps to start at zero, insert a setpts filter after the trim
29943       filter.
29944
29945       If multiple start or end options are set, this filter tries to be
29946       greedy and keep all the frames that match at least one of the specified
29947       constraints. To keep only the part that matches all the constraints at
29948       once, chain multiple trim filters.
29949
29950       The defaults are such that all the input is kept. So it is possible to
29951       set e.g.  just the end values to keep everything before the specified
29952       time.
29953
29954       Examples:
29955
29956       •   Drop everything except the second minute of input:
29957
29958                   ffmpeg -i INPUT -vf trim=60:120
29959
29960       •   Keep only the first second:
29961
29962                   ffmpeg -i INPUT -vf trim=duration=1
29963
29964   unpremultiply
29965       Apply alpha unpremultiply effect to input video stream using first
29966       plane of second stream as alpha.
29967
29968       Both streams must have same dimensions and same pixel format.
29969
29970       The filter accepts the following option:
29971
29972       planes
29973           Set which planes will be processed, unprocessed planes will be
29974           copied.  By default value 0xf, all planes will be processed.
29975
29976           If the format has 1 or 2 components, then luma is bit 0.  If the
29977           format has 3 or 4 components: for RGB formats bit 0 is green, bit 1
29978           is blue and bit 2 is red; for YUV formats bit 0 is luma, bit 1 is
29979           chroma-U and bit 2 is chroma-V.  If present, the alpha channel is
29980           always the last bit.
29981
29982       inplace
29983           Do not require 2nd input for processing, instead use alpha plane
29984           from input stream.
29985
29986   unsharp
29987       Sharpen or blur the input video.
29988
29989       It accepts the following parameters:
29990
29991       luma_msize_x, lx
29992           Set the luma matrix horizontal size. It must be an odd integer
29993           between 3 and 23. The default value is 5.
29994
29995       luma_msize_y, ly
29996           Set the luma matrix vertical size. It must be an odd integer
29997           between 3 and 23. The default value is 5.
29998
29999       luma_amount, la
30000           Set the luma effect strength. It must be a floating point number,
30001           reasonable values lay between -1.5 and 1.5.
30002
30003           Negative values will blur the input video, while positive values
30004           will sharpen it, a value of zero will disable the effect.
30005
30006           Default value is 1.0.
30007
30008       chroma_msize_x, cx
30009           Set the chroma matrix horizontal size. It must be an odd integer
30010           between 3 and 23. The default value is 5.
30011
30012       chroma_msize_y, cy
30013           Set the chroma matrix vertical size. It must be an odd integer
30014           between 3 and 23. The default value is 5.
30015
30016       chroma_amount, ca
30017           Set the chroma effect strength. It must be a floating point number,
30018           reasonable values lay between -1.5 and 1.5.
30019
30020           Negative values will blur the input video, while positive values
30021           will sharpen it, a value of zero will disable the effect.
30022
30023           Default value is 0.0.
30024
30025       alpha_msize_x, ax
30026           Set the alpha matrix horizontal size. It must be an odd integer
30027           between 3 and 23. The default value is 5.
30028
30029       alpha_msize_y, ay
30030           Set the alpha matrix vertical size. It must be an odd integer
30031           between 3 and 23. The default value is 5.
30032
30033       alpha_amount, aa
30034           Set the alpha effect strength. It must be a floating point number,
30035           reasonable values lay between -1.5 and 1.5.
30036
30037           Negative values will blur the input video, while positive values
30038           will sharpen it, a value of zero will disable the effect.
30039
30040           Default value is 0.0.
30041
30042       All parameters are optional and default to the equivalent of the string
30043       '5:5:1.0:5:5:0.0'.
30044
30045       Examples
30046
30047       •   Apply strong luma sharpen effect:
30048
30049                   unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
30050
30051       •   Apply a strong blur of both luma and chroma parameters:
30052
30053                   unsharp=7:7:-2:7:7:-2
30054
30055   untile
30056       Decompose a video made of tiled images into the individual images.
30057
30058       The frame rate of the output video is the frame rate of the input video
30059       multiplied by the number of tiles.
30060
30061       This filter does the reverse of tile.
30062
30063       The filter accepts the following options:
30064
30065       layout
30066           Set the grid size (i.e. the number of lines and columns). For the
30067           syntax of this option, check the "Video size" section in the
30068           ffmpeg-utils manual.
30069
30070       Examples
30071
30072       •   Produce a 1-second video from a still image file made of 25 frames
30073           stacked vertically, like an analogic film reel:
30074
30075                   ffmpeg -r 1 -i image.jpg -vf untile=1x25 movie.mkv
30076
30077   uspp
30078       Apply ultra slow/simple postprocessing filter that compresses and
30079       decompresses the image at several (or - in the case of quality level 8
30080       - all) shifts and average the results.
30081
30082       The way this differs from the behavior of spp is that uspp actually
30083       encodes & decodes each case with libavcodec Snow, whereas spp uses a
30084       simplified intra only 8x8 DCT similar to MJPEG.
30085
30086       This filter is only available in ffmpeg version 4.4 or earlier.
30087
30088       The filter accepts the following options:
30089
30090       quality
30091           Set quality. This option defines the number of levels for
30092           averaging. It accepts an integer in the range 0-8. If set to 0, the
30093           filter will have no effect. A value of 8 means the higher quality.
30094           For each increment of that value the speed drops by a factor of
30095           approximately 2.  Default value is 3.
30096
30097       qp  Force a constant quantization parameter. If not set, the filter
30098           will use the QP from the video stream (if available).
30099
30100   v360
30101       Convert 360 videos between various formats.
30102
30103       The filter accepts the following options:
30104
30105       input
30106       output
30107           Set format of the input/output video.
30108
30109           Available formats:
30110
30111           e
30112           equirect
30113               Equirectangular projection.
30114
30115           c3x2
30116           c6x1
30117           c1x6
30118               Cubemap with 3x2/6x1/1x6 layout.
30119
30120               Format specific options:
30121
30122               in_pad
30123               out_pad
30124                   Set padding proportion for the input/output cubemap. Values
30125                   in decimals.
30126
30127                   Example values:
30128
30129                   0   No padding.
30130
30131                   0.01
30132                       1% of face is padding. For example, with 1920x1280
30133                       resolution face size would be 640x640 and padding would
30134                       be 3 pixels from each side. (640 * 0.01 = 6 pixels)
30135
30136                   Default value is @samp{0}.  Maximum value is @samp{0.1}.
30137
30138               fin_pad
30139               fout_pad
30140                   Set fixed padding for the input/output cubemap. Values in
30141                   pixels.
30142
30143                   Default value is @samp{0}. If greater than zero it
30144                   overrides other padding options.
30145
30146               in_forder
30147               out_forder
30148                   Set order of faces for the input/output cubemap. Choose one
30149                   direction for each position.
30150
30151                   Designation of directions:
30152
30153                   r   right
30154
30155                   l   left
30156
30157                   u   up
30158
30159                   d   down
30160
30161                   f   forward
30162
30163                   b   back
30164
30165                   Default value is @samp{rludfb}.
30166
30167               in_frot
30168               out_frot
30169                   Set rotation of faces for the input/output cubemap. Choose
30170                   one angle for each position.
30171
30172                   Designation of angles:
30173
30174                   0   0 degrees clockwise
30175
30176                   1   90 degrees clockwise
30177
30178                   2   180 degrees clockwise
30179
30180                   3   270 degrees clockwise
30181
30182                   Default value is @samp{000000}.
30183
30184           eac Equi-Angular Cubemap.
30185
30186           flat
30187           gnomonic
30188           rectilinear
30189               Regular video.
30190
30191               Format specific options:
30192
30193               h_fov
30194               v_fov
30195               d_fov
30196                   Set output horizontal/vertical/diagonal field of view.
30197                   Values in degrees.
30198
30199                   If diagonal field of view is set it overrides horizontal
30200                   and vertical field of view.
30201
30202               ih_fov
30203               iv_fov
30204               id_fov
30205                   Set input horizontal/vertical/diagonal field of view.
30206                   Values in degrees.
30207
30208                   If diagonal field of view is set it overrides horizontal
30209                   and vertical field of view.
30210
30211           dfisheye
30212               Dual fisheye.
30213
30214               Format specific options:
30215
30216               h_fov
30217               v_fov
30218               d_fov
30219                   Set output horizontal/vertical/diagonal field of view.
30220                   Values in degrees.
30221
30222                   If diagonal field of view is set it overrides horizontal
30223                   and vertical field of view.
30224
30225               ih_fov
30226               iv_fov
30227               id_fov
30228                   Set input horizontal/vertical/diagonal field of view.
30229                   Values in degrees.
30230
30231                   If diagonal field of view is set it overrides horizontal
30232                   and vertical field of view.
30233
30234           barrel
30235           fb
30236           barrelsplit
30237               Facebook's 360 formats.
30238
30239           sg  Stereographic format.
30240
30241               Format specific options:
30242
30243               h_fov
30244               v_fov
30245               d_fov
30246                   Set output horizontal/vertical/diagonal field of view.
30247                   Values in degrees.
30248
30249                   If diagonal field of view is set it overrides horizontal
30250                   and vertical field of view.
30251
30252               ih_fov
30253               iv_fov
30254               id_fov
30255                   Set input horizontal/vertical/diagonal field of view.
30256                   Values in degrees.
30257
30258                   If diagonal field of view is set it overrides horizontal
30259                   and vertical field of view.
30260
30261           mercator
30262               Mercator format.
30263
30264           ball
30265               Ball format, gives significant distortion toward the back.
30266
30267           hammer
30268               Hammer-Aitoff map projection format.
30269
30270           sinusoidal
30271               Sinusoidal map projection format.
30272
30273           fisheye
30274               Fisheye projection.
30275
30276               Format specific options:
30277
30278               h_fov
30279               v_fov
30280               d_fov
30281                   Set output horizontal/vertical/diagonal field of view.
30282                   Values in degrees.
30283
30284                   If diagonal field of view is set it overrides horizontal
30285                   and vertical field of view.
30286
30287               ih_fov
30288               iv_fov
30289               id_fov
30290                   Set input horizontal/vertical/diagonal field of view.
30291                   Values in degrees.
30292
30293                   If diagonal field of view is set it overrides horizontal
30294                   and vertical field of view.
30295
30296           pannini
30297               Pannini projection.
30298
30299               Format specific options:
30300
30301               h_fov
30302                   Set output pannini parameter.
30303
30304               ih_fov
30305                   Set input pannini parameter.
30306
30307           cylindrical
30308               Cylindrical projection.
30309
30310               Format specific options:
30311
30312               h_fov
30313               v_fov
30314               d_fov
30315                   Set output horizontal/vertical/diagonal field of view.
30316                   Values in degrees.
30317
30318                   If diagonal field of view is set it overrides horizontal
30319                   and vertical field of view.
30320
30321               ih_fov
30322               iv_fov
30323               id_fov
30324                   Set input horizontal/vertical/diagonal field of view.
30325                   Values in degrees.
30326
30327                   If diagonal field of view is set it overrides horizontal
30328                   and vertical field of view.
30329
30330           perspective
30331               Perspective projection. (output only)
30332
30333               Format specific options:
30334
30335               v_fov
30336                   Set perspective parameter.
30337
30338           tetrahedron
30339               Tetrahedron projection.
30340
30341           tsp Truncated square pyramid projection.
30342
30343           he
30344           hequirect
30345               Half equirectangular projection.
30346
30347           equisolid
30348               Equisolid format.
30349
30350               Format specific options:
30351
30352               h_fov
30353               v_fov
30354               d_fov
30355                   Set output horizontal/vertical/diagonal field of view.
30356                   Values in degrees.
30357
30358                   If diagonal field of view is set it overrides horizontal
30359                   and vertical field of view.
30360
30361               ih_fov
30362               iv_fov
30363               id_fov
30364                   Set input horizontal/vertical/diagonal field of view.
30365                   Values in degrees.
30366
30367                   If diagonal field of view is set it overrides horizontal
30368                   and vertical field of view.
30369
30370           og  Orthographic format.
30371
30372               Format specific options:
30373
30374               h_fov
30375               v_fov
30376               d_fov
30377                   Set output horizontal/vertical/diagonal field of view.
30378                   Values in degrees.
30379
30380                   If diagonal field of view is set it overrides horizontal
30381                   and vertical field of view.
30382
30383               ih_fov
30384               iv_fov
30385               id_fov
30386                   Set input horizontal/vertical/diagonal field of view.
30387                   Values in degrees.
30388
30389                   If diagonal field of view is set it overrides horizontal
30390                   and vertical field of view.
30391
30392           octahedron
30393               Octahedron projection.
30394
30395           cylindricalea
30396               Cylindrical Equal Area projection.
30397
30398       interp
30399           Set interpolation method.Note: more complex interpolation methods
30400           require much more memory to run.
30401
30402           Available methods:
30403
30404           near
30405           nearest
30406               Nearest neighbour.
30407
30408           line
30409           linear
30410               Bilinear interpolation.
30411
30412           lagrange9
30413               Lagrange9 interpolation.
30414
30415           cube
30416           cubic
30417               Bicubic interpolation.
30418
30419           lanc
30420           lanczos
30421               Lanczos interpolation.
30422
30423           sp16
30424           spline16
30425               Spline16 interpolation.
30426
30427           gauss
30428           gaussian
30429               Gaussian interpolation.
30430
30431           mitchell
30432               Mitchell interpolation.
30433
30434           Default value is @samp{line}.
30435
30436       w
30437       h   Set the output video resolution.
30438
30439           Default resolution depends on formats.
30440
30441       in_stereo
30442       out_stereo
30443           Set the input/output stereo format.
30444
30445           2d  2D mono
30446
30447           sbs Side by side
30448
30449           tb  Top bottom
30450
30451           Default value is @samp{2d} for input and output format.
30452
30453       yaw
30454       pitch
30455       roll
30456           Set rotation for the output video. Values in degrees.
30457
30458       rorder
30459           Set rotation order for the output video. Choose one item for each
30460           position.
30461
30462           y, Y
30463               yaw
30464
30465           p, P
30466               pitch
30467
30468           r, R
30469               roll
30470
30471           Default value is @samp{ypr}.
30472
30473       h_flip
30474       v_flip
30475       d_flip
30476           Flip the output video horizontally(swaps
30477           left-right)/vertically(swaps up-down)/in-depth(swaps back-forward).
30478           Boolean values.
30479
30480       ih_flip
30481       iv_flip
30482           Set if input video is flipped horizontally/vertically. Boolean
30483           values.
30484
30485       in_trans
30486           Set if input video is transposed. Boolean value, by default
30487           disabled.
30488
30489       out_trans
30490           Set if output video needs to be transposed. Boolean value, by
30491           default disabled.
30492
30493       h_offset
30494       v_offset
30495           Set output horizontal/vertical off-axis offset. Default is set to
30496           0.  Allowed range is from -1 to 1.
30497
30498       alpha_mask
30499           Build mask in alpha plane for all unmapped pixels by marking them
30500           fully transparent. Boolean value, by default disabled.
30501
30502       reset_rot
30503           Reset rotation of output video. Boolean value, by default disabled.
30504
30505       Examples
30506
30507       •   Convert equirectangular video to cubemap with 3x2 layout and 1%
30508           padding using bicubic interpolation:
30509
30510                   ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_pad=0.01 output.mkv
30511
30512       •   Extract back view of Equi-Angular Cubemap:
30513
30514                   ffmpeg -i input.mkv -vf v360=eac:flat:yaw=180 output.mkv
30515
30516       •   Convert transposed and horizontally flipped Equi-Angular Cubemap in
30517           side-by-side stereo format to equirectangular top-bottom stereo
30518           format:
30519
30520                   v360=eac:equirect:in_stereo=sbs:in_trans=1:ih_flip=1:out_stereo=tb
30521
30522       Commands
30523
30524       This filter supports subset of above options as commands.
30525
30526   vaguedenoiser
30527       Apply a wavelet based denoiser.
30528
30529       It transforms each frame from the video input into the wavelet domain,
30530       using Cohen-Daubechies-Feauveau 9/7. Then it applies some filtering to
30531       the obtained coefficients. It does an inverse wavelet transform after.
30532       Due to wavelet properties, it should give a nice smoothed result, and
30533       reduced noise, without blurring picture features.
30534
30535       This filter accepts the following options:
30536
30537       threshold
30538           The filtering strength. The higher, the more filtered the video
30539           will be.  Hard thresholding can use a higher threshold than soft
30540           thresholding before the video looks overfiltered. Default value is
30541           2.
30542
30543       method
30544           The filtering method the filter will use.
30545
30546           It accepts the following values:
30547
30548           hard
30549               All values under the threshold will be zeroed.
30550
30551           soft
30552               All values under the threshold will be zeroed. All values above
30553               will be reduced by the threshold.
30554
30555           garrote
30556               Scales or nullifies coefficients - intermediary between (more)
30557               soft and (less) hard thresholding.
30558
30559           Default is garrote.
30560
30561       nsteps
30562           Number of times, the wavelet will decompose the picture. Picture
30563           can't be decomposed beyond a particular point (typically, 8 for a
30564           640x480 frame - as 2^9 = 512 > 480). Valid values are integers
30565           between 1 and 32. Default value is 6.
30566
30567       percent
30568           Partial of full denoising (limited coefficients shrinking), from 0
30569           to 100. Default value is 85.
30570
30571       planes
30572           A list of the planes to process. By default all planes are
30573           processed.
30574
30575       type
30576           The threshold type the filter will use.
30577
30578           It accepts the following values:
30579
30580           universal
30581               Threshold used is same for all decompositions.
30582
30583           bayes
30584               Threshold used depends also on each decomposition coefficients.
30585
30586           Default is universal.
30587
30588   varblur
30589       Apply variable blur filter by using 2nd video stream to set blur
30590       radius.  The 2nd stream must have the same dimensions.
30591
30592       This filter accepts the following options:
30593
30594       min_r
30595           Set min allowed radius. Allowed range is from 0 to 254. Default is
30596           0.
30597
30598       max_r
30599           Set max allowed radius. Allowed range is from 1 to 255. Default is
30600           8.
30601
30602       planes
30603           Set which planes to process. By default, all are used.
30604
30605       The "varblur" filter also supports the framesync options.
30606
30607       Commands
30608
30609       This filter supports all the above options as commands.
30610
30611   vectorscope
30612       Display 2 color component values in the two dimensional graph (which is
30613       called a vectorscope).
30614
30615       This filter accepts the following options:
30616
30617       mode, m
30618           Set vectorscope mode.
30619
30620           It accepts the following values:
30621
30622           gray
30623           tint
30624               Gray values are displayed on graph, higher brightness means
30625               more pixels have same component color value on location in
30626               graph. This is the default mode.
30627
30628           color
30629               Gray values are displayed on graph. Surrounding pixels values
30630               which are not present in video frame are drawn in gradient of 2
30631               color components which are set by option "x" and "y". The 3rd
30632               color component is static.
30633
30634           color2
30635               Actual color components values present in video frame are
30636               displayed on graph.
30637
30638           color3
30639               Similar as color2 but higher frequency of same values "x" and
30640               "y" on graph increases value of another color component, which
30641               is luminance by default values of "x" and "y".
30642
30643           color4
30644               Actual colors present in video frame are displayed on graph. If
30645               two different colors map to same position on graph then color
30646               with higher value of component not present in graph is picked.
30647
30648           color5
30649               Gray values are displayed on graph. Similar to "color" but with
30650               3rd color component picked from radial gradient.
30651
30652       x   Set which color component will be represented on X-axis. Default is
30653           1.
30654
30655       y   Set which color component will be represented on Y-axis. Default is
30656           2.
30657
30658       intensity, i
30659           Set intensity, used by modes: gray, color, color3 and color5 for
30660           increasing brightness of color component which represents frequency
30661           of (X, Y) location in graph.
30662
30663       envelope, e
30664           none
30665               No envelope, this is default.
30666
30667           instant
30668               Instant envelope, even darkest single pixel will be clearly
30669               highlighted.
30670
30671           peak
30672               Hold maximum and minimum values presented in graph over time.
30673               This way you can still spot out of range values without
30674               constantly looking at vectorscope.
30675
30676           peak+instant
30677               Peak and instant envelope combined together.
30678
30679       graticule, g
30680           Set what kind of graticule to draw.
30681
30682           none
30683           green
30684           color
30685           invert
30686       opacity, o
30687           Set graticule opacity.
30688
30689       flags, f
30690           Set graticule flags.
30691
30692           white
30693               Draw graticule for white point.
30694
30695           black
30696               Draw graticule for black point.
30697
30698           name
30699               Draw color points short names.
30700
30701       bgopacity, b
30702           Set background opacity.
30703
30704       lthreshold, l
30705           Set low threshold for color component not represented on X or Y
30706           axis.  Values lower than this value will be ignored. Default is 0.
30707           Note this value is multiplied with actual max possible value one
30708           pixel component can have. So for 8-bit input and low threshold
30709           value of 0.1 actual threshold is 0.1 * 255 = 25.
30710
30711       hthreshold, h
30712           Set high threshold for color component not represented on X or Y
30713           axis.  Values higher than this value will be ignored. Default is 1.
30714           Note this value is multiplied with actual max possible value one
30715           pixel component can have. So for 8-bit input and high threshold
30716           value of 0.9 actual threshold is 0.9 * 255 = 230.
30717
30718       colorspace, c
30719           Set what kind of colorspace to use when drawing graticule.
30720
30721           auto
30722           601
30723           709
30724
30725           Default is auto.
30726
30727       tint0, t0
30728       tint1, t1
30729           Set color tint for gray/tint vectorscope mode. By default both
30730           options are zero.  This means no tint, and output will remain gray.
30731
30732   vidstabdetect
30733       Analyze video stabilization/deshaking. Perform pass 1 of 2, see
30734       vidstabtransform for pass 2.
30735
30736       This filter generates a file with relative translation and rotation
30737       transform information about subsequent frames, which is then used by
30738       the vidstabtransform filter.
30739
30740       To enable compilation of this filter you need to configure FFmpeg with
30741       "--enable-libvidstab".
30742
30743       This filter accepts the following options:
30744
30745       result
30746           Set the path to the file used to write the transforms information.
30747           Default value is transforms.trf.
30748
30749       shakiness
30750           Set how shaky the video is and how quick the camera is. It accepts
30751           an integer in the range 1-10, a value of 1 means little shakiness,
30752           a value of 10 means strong shakiness. Default value is 5.
30753
30754       accuracy
30755           Set the accuracy of the detection process. It must be a value in
30756           the range 1-15. A value of 1 means low accuracy, a value of 15
30757           means high accuracy. Default value is 15.
30758
30759       stepsize
30760           Set stepsize of the search process. The region around minimum is
30761           scanned with 1 pixel resolution. Default value is 6.
30762
30763       mincontrast
30764           Set minimum contrast. Below this value a local measurement field is
30765           discarded. Must be a floating point value in the range 0-1. Default
30766           value is 0.3.
30767
30768       tripod
30769           Set reference frame number for tripod mode.
30770
30771           If enabled, the motion of the frames is compared to a reference
30772           frame in the filtered stream, identified by the specified number.
30773           The idea is to compensate all movements in a more-or-less static
30774           scene and keep the camera view absolutely still.
30775
30776           If set to 0, it is disabled. The frames are counted starting from
30777           1.
30778
30779       show
30780           Show fields and transforms in the resulting frames. It accepts an
30781           integer in the range 0-2. Default value is 0, which disables any
30782           visualization.
30783
30784       Examples
30785
30786       •   Use default values:
30787
30788                   vidstabdetect
30789
30790       •   Analyze strongly shaky movie and put the results in file
30791           mytransforms.trf:
30792
30793                   vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
30794
30795       •   Visualize the result of internal transformations in the resulting
30796           video:
30797
30798                   vidstabdetect=show=1
30799
30800       •   Analyze a video with medium shakiness using ffmpeg:
30801
30802                   ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
30803
30804   vidstabtransform
30805       Video stabilization/deshaking: pass 2 of 2, see vidstabdetect for pass
30806       1.
30807
30808       Read a file with transform information for each frame and
30809       apply/compensate them. Together with the vidstabdetect filter this can
30810       be used to deshake videos. See also
30811       <http://public.hronopik.de/vid.stab>. It is important to also use the
30812       unsharp filter, see below.
30813
30814       To enable compilation of this filter you need to configure FFmpeg with
30815       "--enable-libvidstab".
30816
30817       Options
30818
30819       input
30820           Set path to the file used to read the transforms. Default value is
30821           transforms.trf.
30822
30823       smoothing
30824           Set the number of frames (value*2 + 1) used for lowpass filtering
30825           the camera movements. Default value is 10.
30826
30827           For example a number of 10 means that 21 frames are used (10 in the
30828           past and 10 in the future) to smoothen the motion in the video. A
30829           larger value leads to a smoother video, but limits the acceleration
30830           of the camera (pan/tilt movements). 0 is a special case where a
30831           static camera is simulated.
30832
30833       optalgo
30834           Set the camera path optimization algorithm.
30835
30836           Accepted values are:
30837
30838           gauss
30839               gaussian kernel low-pass filter on camera motion (default)
30840
30841           avg averaging on transformations
30842
30843       maxshift
30844           Set maximal number of pixels to translate frames. Default value is
30845           -1, meaning no limit.
30846
30847       maxangle
30848           Set maximal angle in radians (degree*PI/180) to rotate frames.
30849           Default value is -1, meaning no limit.
30850
30851       crop
30852           Specify how to deal with borders that may be visible due to
30853           movement compensation.
30854
30855           Available values are:
30856
30857           keep
30858               keep image information from previous frame (default)
30859
30860           black
30861               fill the border black
30862
30863       invert
30864           Invert transforms if set to 1. Default value is 0.
30865
30866       relative
30867           Consider transforms as relative to previous frame if set to 1,
30868           absolute if set to 0. Default value is 0.
30869
30870       zoom
30871           Set percentage to zoom. A positive value will result in a zoom-in
30872           effect, a negative value in a zoom-out effect. Default value is 0
30873           (no zoom).
30874
30875       optzoom
30876           Set optimal zooming to avoid borders.
30877
30878           Accepted values are:
30879
30880           0   disabled
30881
30882           1   optimal static zoom value is determined (only very strong
30883               movements will lead to visible borders) (default)
30884
30885           2   optimal adaptive zoom value is determined (no borders will be
30886               visible), see zoomspeed
30887
30888           Note that the value given at zoom is added to the one calculated
30889           here.
30890
30891       zoomspeed
30892           Set percent to zoom maximally each frame (enabled when optzoom is
30893           set to 2). Range is from 0 to 5, default value is 0.25.
30894
30895       interpol
30896           Specify type of interpolation.
30897
30898           Available values are:
30899
30900           no  no interpolation
30901
30902           linear
30903               linear only horizontal
30904
30905           bilinear
30906               linear in both directions (default)
30907
30908           bicubic
30909               cubic in both directions (slow)
30910
30911       tripod
30912           Enable virtual tripod mode if set to 1, which is equivalent to
30913           "relative=0:smoothing=0". Default value is 0.
30914
30915           Use also "tripod" option of vidstabdetect.
30916
30917       debug
30918           Increase log verbosity if set to 1. Also the detected global
30919           motions are written to the temporary file global_motions.trf.
30920           Default value is 0.
30921
30922       Examples
30923
30924       •   Use ffmpeg for a typical stabilization with default values:
30925
30926                   ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
30927
30928           Note the use of the unsharp filter which is always recommended.
30929
30930       •   Zoom in a bit more and load transform data from a given file:
30931
30932                   vidstabtransform=zoom=5:input="mytransforms.trf"
30933
30934       •   Smoothen the video even more:
30935
30936                   vidstabtransform=smoothing=30
30937
30938   vflip
30939       Flip the input video vertically.
30940
30941       For example, to vertically flip a video with ffmpeg:
30942
30943               ffmpeg -i in.avi -vf "vflip" out.avi
30944
30945   vfrdet
30946       Detect variable frame rate video.
30947
30948       This filter tries to detect if the input is variable or constant frame
30949       rate.
30950
30951       At end it will output number of frames detected as having variable
30952       delta pts, and ones with constant delta pts.  If there was frames with
30953       variable delta, than it will also show min, max and average delta
30954       encountered.
30955
30956   vibrance
30957       Boost or alter saturation.
30958
30959       The filter accepts the following options:
30960
30961       intensity
30962           Set strength of boost if positive value or strength of alter if
30963           negative value.  Default is 0. Allowed range is from -2 to 2.
30964
30965       rbal
30966           Set the red balance. Default is 1. Allowed range is from -10 to 10.
30967
30968       gbal
30969           Set the green balance. Default is 1. Allowed range is from -10 to
30970           10.
30971
30972       bbal
30973           Set the blue balance. Default is 1. Allowed range is from -10 to
30974           10.
30975
30976       rlum
30977           Set the red luma coefficient.
30978
30979       glum
30980           Set the green luma coefficient.
30981
30982       blum
30983           Set the blue luma coefficient.
30984
30985       alternate
30986           If "intensity" is negative and this is set to 1, colors will
30987           change, otherwise colors will be less saturated, more towards gray.
30988
30989       Commands
30990
30991       This filter supports the all above options as commands.
30992
30993   vif
30994       Obtain the average VIF (Visual Information Fidelity) between two input
30995       videos.
30996
30997       This filter takes two input videos.
30998
30999       Both input videos must have the same resolution and pixel format for
31000       this filter to work correctly. Also it assumes that both inputs have
31001       the same number of frames, which are compared one by one.
31002
31003       The obtained average VIF score is printed through the logging system.
31004
31005       The filter stores the calculated VIF score of each frame.
31006
31007       This filter also supports the framesync options.
31008
31009       In the below example the input file main.mpg being processed is
31010       compared with the reference file ref.mpg.
31011
31012               ffmpeg -i main.mpg -i ref.mpg -lavfi vif -f null -
31013
31014   vignette
31015       Make or reverse a natural vignetting effect.
31016
31017       The filter accepts the following options:
31018
31019       angle, a
31020           Set lens angle expression as a number of radians.
31021
31022           The value is clipped in the "[0,PI/2]" range.
31023
31024           Default value: "PI/5"
31025
31026       x0
31027       y0  Set center coordinates expressions. Respectively "w/2" and "h/2" by
31028           default.
31029
31030       mode
31031           Set forward/backward mode.
31032
31033           Available modes are:
31034
31035           forward
31036               The larger the distance from the central point, the darker the
31037               image becomes.
31038
31039           backward
31040               The larger the distance from the central point, the brighter
31041               the image becomes.  This can be used to reverse a vignette
31042               effect, though there is no automatic detection to extract the
31043               lens angle and other settings (yet). It can also be used to
31044               create a burning effect.
31045
31046           Default value is forward.
31047
31048       eval
31049           Set evaluation mode for the expressions (angle, x0, y0).
31050
31051           It accepts the following values:
31052
31053           init
31054               Evaluate expressions only once during the filter
31055               initialization.
31056
31057           frame
31058               Evaluate expressions for each incoming frame. This is way
31059               slower than the init mode since it requires all the scalers to
31060               be re-computed, but it allows advanced dynamic expressions.
31061
31062           Default value is init.
31063
31064       dither
31065           Set dithering to reduce the circular banding effects. Default is 1
31066           (enabled).
31067
31068       aspect
31069           Set vignette aspect. This setting allows one to adjust the shape of
31070           the vignette.  Setting this value to the SAR of the input will make
31071           a rectangular vignetting following the dimensions of the video.
31072
31073           Default is "1/1".
31074
31075       Expressions
31076
31077       The alpha, x0 and y0 expressions can contain the following parameters.
31078
31079       w
31080       h   input width and height
31081
31082       n   the number of input frame, starting from 0
31083
31084       pts the PTS (Presentation TimeStamp) time of the filtered video frame,
31085           expressed in TB units, NAN if undefined
31086
31087       r   frame rate of the input video, NAN if the input frame rate is
31088           unknown
31089
31090       t   the PTS (Presentation TimeStamp) of the filtered video frame,
31091           expressed in seconds, NAN if undefined
31092
31093       tb  time base of the input video
31094
31095       Examples
31096
31097       •   Apply simple strong vignetting effect:
31098
31099                   vignette=PI/4
31100
31101       •   Make a flickering vignetting:
31102
31103                   vignette='PI/4+random(1)*PI/50':eval=frame
31104
31105   vmafmotion
31106       Obtain the average VMAF motion score of a video.  It is one of the
31107       component metrics of VMAF.
31108
31109       The obtained average motion score is printed through the logging
31110       system.
31111
31112       The filter accepts the following options:
31113
31114       stats_file
31115           If specified, the filter will use the named file to save the motion
31116           score of each frame with respect to the previous frame.  When
31117           filename equals "-" the data is sent to standard output.
31118
31119       Example:
31120
31121               ffmpeg -i ref.mpg -vf vmafmotion -f null -
31122
31123   vstack
31124       Stack input videos vertically.
31125
31126       All streams must be of same pixel format and of same width.
31127
31128       Note that this filter is faster than using overlay and pad filter to
31129       create same output.
31130
31131       The filter accepts the following options:
31132
31133       inputs
31134           Set number of input streams. Default is 2.
31135
31136       shortest
31137           If set to 1, force the output to terminate when the shortest input
31138           terminates. Default value is 0.
31139
31140   w3fdif
31141       Deinterlace the input video ("w3fdif" stands for "Weston 3 Field
31142       Deinterlacing Filter").
31143
31144       Based on the process described by Martin Weston for BBC R&D, and
31145       implemented based on the de-interlace algorithm written by Jim
31146       Easterbrook for BBC R&D, the Weston 3 field deinterlacing filter uses
31147       filter coefficients calculated by BBC R&D.
31148
31149       This filter uses field-dominance information in frame to decide which
31150       of each pair of fields to place first in the output.  If it gets it
31151       wrong use setfield filter before "w3fdif" filter.
31152
31153       There are two sets of filter coefficients, so called "simple" and
31154       "complex". Which set of filter coefficients is used can be set by
31155       passing an optional parameter:
31156
31157       filter
31158           Set the interlacing filter coefficients. Accepts one of the
31159           following values:
31160
31161           simple
31162               Simple filter coefficient set.
31163
31164           complex
31165               More-complex filter coefficient set.
31166
31167           Default value is complex.
31168
31169       mode
31170           The interlacing mode to adopt. It accepts one of the following
31171           values:
31172
31173           frame
31174               Output one frame for each frame.
31175
31176           field
31177               Output one frame for each field.
31178
31179           The default value is "field".
31180
31181       parity
31182           The picture field parity assumed for the input interlaced video. It
31183           accepts one of the following values:
31184
31185           tff Assume the top field is first.
31186
31187           bff Assume the bottom field is first.
31188
31189           auto
31190               Enable automatic detection of field parity.
31191
31192           The default value is "auto".  If the interlacing is unknown or the
31193           decoder does not export this information, top field first will be
31194           assumed.
31195
31196       deint
31197           Specify which frames to deinterlace. Accepts one of the following
31198           values:
31199
31200           all Deinterlace all frames,
31201
31202           interlaced
31203               Only deinterlace frames marked as interlaced.
31204
31205           Default value is all.
31206
31207       Commands
31208
31209       This filter supports same commands as options.
31210
31211   waveform
31212       Video waveform monitor.
31213
31214       The waveform monitor plots color component intensity. By default
31215       luminance only. Each column of the waveform corresponds to a column of
31216       pixels in the source video.
31217
31218       It accepts the following options:
31219
31220       mode, m
31221           Can be either "row", or "column". Default is "column".  In row
31222           mode, the graph on the left side represents color component value 0
31223           and the right side represents value = 255. In column mode, the top
31224           side represents color component value = 0 and bottom side
31225           represents value = 255.
31226
31227       intensity, i
31228           Set intensity. Smaller values are useful to find out how many
31229           values of the same luminance are distributed across input
31230           rows/columns.  Default value is 0.04. Allowed range is [0, 1].
31231
31232       mirror, r
31233           Set mirroring mode. 0 means unmirrored, 1 means mirrored.  In
31234           mirrored mode, higher values will be represented on the left side
31235           for "row" mode and at the top for "column" mode. Default is 1
31236           (mirrored).
31237
31238       display, d
31239           Set display mode.  It accepts the following values:
31240
31241           overlay
31242               Presents information identical to that in the "parade", except
31243               that the graphs representing color components are superimposed
31244               directly over one another.
31245
31246               This display mode makes it easier to spot relative differences
31247               or similarities in overlapping areas of the color components
31248               that are supposed to be identical, such as neutral whites,
31249               grays, or blacks.
31250
31251           stack
31252               Display separate graph for the color components side by side in
31253               "row" mode or one below the other in "column" mode.
31254
31255           parade
31256               Display separate graph for the color components side by side in
31257               "column" mode or one below the other in "row" mode.
31258
31259               Using this display mode makes it easy to spot color casts in
31260               the highlights and shadows of an image, by comparing the
31261               contours of the top and the bottom graphs of each waveform.
31262               Since whites, grays, and blacks are characterized by exactly
31263               equal amounts of red, green, and blue, neutral areas of the
31264               picture should display three waveforms of roughly equal
31265               width/height. If not, the correction is easy to perform by
31266               making level adjustments the three waveforms.
31267
31268           Default is "stack".
31269
31270       components, c
31271           Set which color components to display. Default is 1, which means
31272           only luminance or red color component if input is in RGB
31273           colorspace. If is set for example to 7 it will display all 3 (if)
31274           available color components.
31275
31276       envelope, e
31277           none
31278               No envelope, this is default.
31279
31280           instant
31281               Instant envelope, minimum and maximum values presented in graph
31282               will be easily visible even with small "step" value.
31283
31284           peak
31285               Hold minimum and maximum values presented in graph across time.
31286               This way you can still spot out of range values without
31287               constantly looking at waveforms.
31288
31289           peak+instant
31290               Peak and instant envelope combined together.
31291
31292       filter, f
31293           lowpass
31294               No filtering, this is default.
31295
31296           flat
31297               Luma and chroma combined together.
31298
31299           aflat
31300               Similar as above, but shows difference between blue and red
31301               chroma.
31302
31303           xflat
31304               Similar as above, but use different colors.
31305
31306           yflat
31307               Similar as above, but again with different colors.
31308
31309           chroma
31310               Displays only chroma.
31311
31312           color
31313               Displays actual color value on waveform.
31314
31315           acolor
31316               Similar as above, but with luma showing frequency of chroma
31317               values.
31318
31319       graticule, g
31320           Set which graticule to display.
31321
31322           none
31323               Do not display graticule.
31324
31325           green
31326               Display green graticule showing legal broadcast ranges.
31327
31328           orange
31329               Display orange graticule showing legal broadcast ranges.
31330
31331           invert
31332               Display invert graticule showing legal broadcast ranges.
31333
31334       opacity, o
31335           Set graticule opacity.
31336
31337       flags, fl
31338           Set graticule flags.
31339
31340           numbers
31341               Draw numbers above lines. By default enabled.
31342
31343           dots
31344               Draw dots instead of lines.
31345
31346       scale, s
31347           Set scale used for displaying graticule.
31348
31349           digital
31350           millivolts
31351           ire
31352
31353           Default is digital.
31354
31355       bgopacity, b
31356           Set background opacity.
31357
31358       tint0, t0
31359       tint1, t1
31360           Set tint for output.  Only used with lowpass filter and when
31361           display is not overlay and input pixel formats are not RGB.
31362
31363       fitmode, fm
31364           Set sample aspect ratio of video output frames.  Can be used to
31365           configure waveform so it is not streched too much in one of
31366           directions.
31367
31368           none
31369               Set sample aspect ration to 1/1.
31370
31371           size
31372               Set sample aspect ratio to match input size of video
31373
31374           Default is none.
31375
31376   weave, doubleweave
31377       The "weave" takes a field-based video input and join each two
31378       sequential fields into single frame, producing a new double height clip
31379       with half the frame rate and half the frame count.
31380
31381       The "doubleweave" works same as "weave" but without halving frame rate
31382       and frame count.
31383
31384       It accepts the following option:
31385
31386       first_field
31387           Set first field. Available values are:
31388
31389           top, t
31390               Set the frame as top-field-first.
31391
31392           bottom, b
31393               Set the frame as bottom-field-first.
31394
31395       Examples
31396
31397       •   Interlace video using select and separatefields filter:
31398
31399                   separatefields,select=eq(mod(n,4),0)+eq(mod(n,4),3),weave
31400
31401   xbr
31402       Apply the xBR high-quality magnification filter which is designed for
31403       pixel art. It follows a set of edge-detection rules, see
31404       <https://forums.libretro.com/t/xbr-algorithm-tutorial/123>.
31405
31406       It accepts the following option:
31407
31408       n   Set the scaling dimension: 2 for "2xBR", 3 for "3xBR" and 4 for
31409           "4xBR".  Default is 3.
31410
31411   xcorrelate
31412       Apply normalized cross-correlation between first and second input video
31413       stream.
31414
31415       Second input video stream dimensions must be lower than first input
31416       video stream.
31417
31418       The filter accepts the following options:
31419
31420       planes
31421           Set which planes to process.
31422
31423       secondary
31424           Set which secondary video frames will be processed from second
31425           input video stream, can be first or all. Default is all.
31426
31427       The "xcorrelate" filter also supports the framesync options.
31428
31429   xfade
31430       Apply cross fade from one input video stream to another input video
31431       stream.  The cross fade is applied for specified duration.
31432
31433       Both inputs must be constant frame-rate and have the same resolution,
31434       pixel format, frame rate and timebase.
31435
31436       The filter accepts the following options:
31437
31438       transition
31439           Set one of available transition effects:
31440
31441           custom
31442           fade
31443           wipeleft
31444           wiperight
31445           wipeup
31446           wipedown
31447           slideleft
31448           slideright
31449           slideup
31450           slidedown
31451           circlecrop
31452           rectcrop
31453           distance
31454           fadeblack
31455           fadewhite
31456           radial
31457           smoothleft
31458           smoothright
31459           smoothup
31460           smoothdown
31461           circleopen
31462           circleclose
31463           vertopen
31464           vertclose
31465           horzopen
31466           horzclose
31467           dissolve
31468           pixelize
31469           diagtl
31470           diagtr
31471           diagbl
31472           diagbr
31473           hlslice
31474           hrslice
31475           vuslice
31476           vdslice
31477           hblur
31478           fadegrays
31479           wipetl
31480           wipetr
31481           wipebl
31482           wipebr
31483           squeezeh
31484           squeezev
31485           zoomin
31486           fadefast
31487           fadeslow
31488
31489           Default transition effect is fade.
31490
31491       duration
31492           Set cross fade duration in seconds.  Range is 0 to 60 seconds.
31493           Default duration is 1 second.
31494
31495       offset
31496           Set cross fade start relative to first input stream in seconds.
31497           Default offset is 0.
31498
31499       expr
31500           Set expression for custom transition effect.
31501
31502           The expressions can use the following variables and functions:
31503
31504           X
31505           Y   The coordinates of the current sample.
31506
31507           W
31508           H   The width and height of the image.
31509
31510           P   Progress of transition effect.
31511
31512           PLANE
31513               Currently processed plane.
31514
31515           A   Return value of first input at current location and plane.
31516
31517           B   Return value of second input at current location and plane.
31518
31519           a0(x, y)
31520           a1(x, y)
31521           a2(x, y)
31522           a3(x, y)
31523               Return the value of the pixel at location (x,y) of the
31524               first/second/third/fourth component of first input.
31525
31526           b0(x, y)
31527           b1(x, y)
31528           b2(x, y)
31529           b3(x, y)
31530               Return the value of the pixel at location (x,y) of the
31531               first/second/third/fourth component of second input.
31532
31533       Examples
31534
31535       •   Cross fade from one input video to another input video, with fade
31536           transition and duration of transition of 2 seconds starting at
31537           offset of 5 seconds:
31538
31539                   ffmpeg -i first.mp4 -i second.mp4 -filter_complex xfade=transition=fade:duration=2:offset=5 output.mp4
31540
31541   xmedian
31542       Pick median pixels from several input videos.
31543
31544       The filter accepts the following options:
31545
31546       inputs
31547           Set number of inputs.  Default is 3. Allowed range is from 3 to
31548           255.  If number of inputs is even number, than result will be mean
31549           value between two median values.
31550
31551       planes
31552           Set which planes to filter. Default value is 15, by which all
31553           planes are processed.
31554
31555       percentile
31556           Set median percentile. Default value is 0.5.  Default value of 0.5
31557           will pick always median values, while 0 will pick minimum values,
31558           and 1 maximum values.
31559
31560       Commands
31561
31562       This filter supports all above options as commands, excluding option
31563       "inputs".
31564
31565   xstack
31566       Stack video inputs into custom layout.
31567
31568       All streams must be of same pixel format.
31569
31570       The filter accepts the following options:
31571
31572       inputs
31573           Set number of input streams. Default is 2.
31574
31575       layout
31576           Specify layout of inputs.  This option requires the desired layout
31577           configuration to be explicitly set by the user.  This sets position
31578           of each video input in output. Each input is separated by '|'.  The
31579           first number represents the column, and the second number
31580           represents the row.  Numbers start at 0 and are separated by '_'.
31581           Optionally one can use wX and hX, where X is video input from which
31582           to take width or height.  Multiple values can be used when
31583           separated by '+'. In such case values are summed together.
31584
31585           Note that if inputs are of different sizes gaps may appear, as not
31586           all of the output video frame will be filled. Similarly, videos can
31587           overlap each other if their position doesn't leave enough space for
31588           the full frame of adjoining videos.
31589
31590           For 2 inputs, a default layout of "0_0|w0_0" (equivalent to
31591           "grid=2x1") is set. In all other cases, a layout or a grid must be
31592           set by the user. Either "grid" or "layout" can be specified at a
31593           time.  Specifying both will result in an error.
31594
31595       grid
31596           Specify a fixed size grid of inputs.  This option is used to create
31597           a fixed size grid of the input streams. Set the grid size in the
31598           form "COLUMNSxROWS". There must be "ROWS * COLUMNS" input streams
31599           and they will be arranged as a grid with "ROWS" rows and "COLUMNS"
31600           columns. When using this option, each input stream within a row
31601           must have the same height and all the rows must have the same
31602           width.
31603
31604           If "grid" is set, then "inputs" option is ignored and is implicitly
31605           set to "ROWS * COLUMNS".
31606
31607           For 2 inputs, a default grid of "2x1" (equivalent to
31608           "layout=0_0|w0_0") is set. In all other cases, a layout or a grid
31609           must be set by the user. Either "grid" or "layout" can be specified
31610           at a time.  Specifying both will result in an error.
31611
31612       shortest
31613           If set to 1, force the output to terminate when the shortest input
31614           terminates. Default value is 0.
31615
31616       fill
31617           If set to valid color, all unused pixels will be filled with that
31618           color.  By default fill is set to none, so it is disabled.
31619
31620       Examples
31621
31622       •   Display 4 inputs into 2x2 grid.
31623
31624           Layout:
31625
31626                   input1(0, 0)  | input3(w0, 0)
31627                   input2(0, h0) | input4(w0, h0)
31628
31629
31630
31631                   xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0
31632
31633           Note that if inputs are of different sizes, gaps or overlaps may
31634           occur.
31635
31636       •   Display 4 inputs into 1x4 grid.
31637
31638           Layout:
31639
31640                   input1(0, 0)
31641                   input2(0, h0)
31642                   input3(0, h0+h1)
31643                   input4(0, h0+h1+h2)
31644
31645
31646
31647                   xstack=inputs=4:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2
31648
31649           Note that if inputs are of different widths, unused space will
31650           appear.
31651
31652       •   Display 9 inputs into 3x3 grid.
31653
31654           Layout:
31655
31656                   input1(0, 0)       | input4(w0, 0)      | input7(w0+w3, 0)
31657                   input2(0, h0)      | input5(w0, h0)     | input8(w0+w3, h0)
31658                   input3(0, h0+h1)   | input6(w0, h0+h1)  | input9(w0+w3, h0+h1)
31659
31660
31661
31662                   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
31663
31664           Note that if inputs are of different sizes, gaps or overlaps may
31665           occur.
31666
31667       •   Display 16 inputs into 4x4 grid.
31668
31669           Layout:
31670
31671                   input1(0, 0)       | input5(w0, 0)       | input9 (w0+w4, 0)       | input13(w0+w4+w8, 0)
31672                   input2(0, h0)      | input6(w0, h0)      | input10(w0+w4, h0)      | input14(w0+w4+w8, h0)
31673                   input3(0, h0+h1)   | input7(w0, h0+h1)   | input11(w0+w4, h0+h1)   | input15(w0+w4+w8, h0+h1)
31674                   input4(0, h0+h1+h2)| input8(w0, h0+h1+h2)| input12(w0+w4, h0+h1+h2)| input16(w0+w4+w8, h0+h1+h2)
31675
31676
31677
31678                   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|
31679                   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
31680
31681           Note that if inputs are of different sizes, gaps or overlaps may
31682           occur.
31683
31684   yadif
31685       Deinterlace the input video ("yadif" means "yet another deinterlacing
31686       filter").
31687
31688       It accepts the following parameters:
31689
31690       mode
31691           The interlacing mode to adopt. It accepts one of the following
31692           values:
31693
31694           0, send_frame
31695               Output one frame for each frame.
31696
31697           1, send_field
31698               Output one frame for each field.
31699
31700           2, send_frame_nospatial
31701               Like "send_frame", but it skips the spatial interlacing check.
31702
31703           3, send_field_nospatial
31704               Like "send_field", but it skips the spatial interlacing check.
31705
31706           The default value is "send_frame".
31707
31708       parity
31709           The picture field parity assumed for the input interlaced video. It
31710           accepts one of the following values:
31711
31712           0, tff
31713               Assume the top field is first.
31714
31715           1, bff
31716               Assume the bottom field is first.
31717
31718           -1, auto
31719               Enable automatic detection of field parity.
31720
31721           The default value is "auto".  If the interlacing is unknown or the
31722           decoder does not export this information, top field first will be
31723           assumed.
31724
31725       deint
31726           Specify which frames to deinterlace. Accepts one of the following
31727           values:
31728
31729           0, all
31730               Deinterlace all frames.
31731
31732           1, interlaced
31733               Only deinterlace frames marked as interlaced.
31734
31735           The default value is "all".
31736
31737   yadif_cuda
31738       Deinterlace the input video using the yadif algorithm, but implemented
31739       in CUDA so that it can work as part of a GPU accelerated pipeline with
31740       nvdec and/or nvenc.
31741
31742       It accepts the following parameters:
31743
31744       mode
31745           The interlacing mode to adopt. It accepts one of the following
31746           values:
31747
31748           0, send_frame
31749               Output one frame for each frame.
31750
31751           1, send_field
31752               Output one frame for each field.
31753
31754           2, send_frame_nospatial
31755               Like "send_frame", but it skips the spatial interlacing check.
31756
31757           3, send_field_nospatial
31758               Like "send_field", but it skips the spatial interlacing check.
31759
31760           The default value is "send_frame".
31761
31762       parity
31763           The picture field parity assumed for the input interlaced video. It
31764           accepts one of the following values:
31765
31766           0, tff
31767               Assume the top field is first.
31768
31769           1, bff
31770               Assume the bottom field is first.
31771
31772           -1, auto
31773               Enable automatic detection of field parity.
31774
31775           The default value is "auto".  If the interlacing is unknown or the
31776           decoder does not export this information, top field first will be
31777           assumed.
31778
31779       deint
31780           Specify which frames to deinterlace. Accepts one of the following
31781           values:
31782
31783           0, all
31784               Deinterlace all frames.
31785
31786           1, interlaced
31787               Only deinterlace frames marked as interlaced.
31788
31789           The default value is "all".
31790
31791   yaepblur
31792       Apply blur filter while preserving edges ("yaepblur" means "yet another
31793       edge preserving blur filter").  The algorithm is described in "J. S.
31794       Lee, Digital image enhancement and noise filtering by use of local
31795       statistics, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-2, 1980."
31796
31797       It accepts the following parameters:
31798
31799       radius, r
31800           Set the window radius. Default value is 3.
31801
31802       planes, p
31803           Set which planes to filter. Default is only the first plane.
31804
31805       sigma, s
31806           Set blur strength. Default value is 128.
31807
31808       Commands
31809
31810       This filter supports same commands as options.
31811
31812   zoompan
31813       Apply Zoom & Pan effect.
31814
31815       This filter accepts the following options:
31816
31817       zoom, z
31818           Set the zoom expression. Range is 1-10. Default is 1.
31819
31820       x
31821       y   Set the x and y expression. Default is 0.
31822
31823       d   Set the duration expression in number of frames.  This sets for how
31824           many number of frames effect will last for single input image.
31825           Default is 90.
31826
31827       s   Set the output image size, default is 'hd720'.
31828
31829       fps Set the output frame rate, default is '25'.
31830
31831       Each expression can contain the following constants:
31832
31833       in_w, iw
31834           Input width.
31835
31836       in_h, ih
31837           Input height.
31838
31839       out_w, ow
31840           Output width.
31841
31842       out_h, oh
31843           Output height.
31844
31845       in  Input frame count.
31846
31847       on  Output frame count.
31848
31849       in_time, it
31850           The input timestamp expressed in seconds. It's NAN if the input
31851           timestamp is unknown.
31852
31853       out_time, time, ot
31854           The output timestamp expressed in seconds.
31855
31856       x
31857       y   Last calculated 'x' and 'y' position from 'x' and 'y' expression
31858           for current input frame.
31859
31860       px
31861       py  'x' and 'y' of last output frame of previous input frame or 0 when
31862           there was not yet such frame (first input frame).
31863
31864       zoom
31865           Last calculated zoom from 'z' expression for current input frame.
31866
31867       pzoom
31868           Last calculated zoom of last output frame of previous input frame.
31869
31870       duration
31871           Number of output frames for current input frame. Calculated from
31872           'd' expression for each input frame.
31873
31874       pduration
31875           number of output frames created for previous input frame
31876
31877       a   Rational number: input width / input height
31878
31879       sar sample aspect ratio
31880
31881       dar display aspect ratio
31882
31883       Examples
31884
31885       •   Zoom in up to 1.5x and pan at same time to some spot near center of
31886           picture:
31887
31888                   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
31889
31890       •   Zoom in up to 1.5x and pan always at center of picture:
31891
31892                   zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31893
31894       •   Same as above but without pausing:
31895
31896                   zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31897
31898       •   Zoom in 2x into center of picture only for the first second of the
31899           input video:
31900
31901                   zoompan=z='if(between(in_time,0,1),2,1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31902
31903   zscale
31904       Scale (resize) the input video, using the z.lib library:
31905       <https://github.com/sekrit-twc/zimg>. To enable compilation of this
31906       filter, you need to configure FFmpeg with "--enable-libzimg".
31907
31908       The zscale filter forces the output display aspect ratio to be the same
31909       as the input, by changing the output sample aspect ratio.
31910
31911       If the input image format is different from the format requested by the
31912       next filter, the zscale filter will convert the input to the requested
31913       format.
31914
31915       Options
31916
31917       The filter accepts the following options.
31918
31919       width, w
31920       height, h
31921           Set the output video dimension expression. Default value is the
31922           input dimension.
31923
31924           If the width or w value is 0, the input width is used for the
31925           output. If the height or h value is 0, the input height is used for
31926           the output.
31927
31928           If one and only one of the values is -n with n >= 1, the zscale
31929           filter will use a value that maintains the aspect ratio of the
31930           input image, calculated from the other specified dimension. After
31931           that it will, however, make sure that the calculated dimension is
31932           divisible by n and adjust the value if necessary.
31933
31934           If both values are -n with n >= 1, the behavior will be identical
31935           to both values being set to 0 as previously detailed.
31936
31937           See below for the list of accepted constants for use in the
31938           dimension expression.
31939
31940       size, s
31941           Set the video size. For the syntax of this option, check the "Video
31942           size" section in the ffmpeg-utils manual.
31943
31944       dither, d
31945           Set the dither type.
31946
31947           Possible values are:
31948
31949           none
31950           ordered
31951           random
31952           error_diffusion
31953
31954           Default is none.
31955
31956       filter, f
31957           Set the resize filter type.
31958
31959           Possible values are:
31960
31961           point
31962           bilinear
31963           bicubic
31964           spline16
31965           spline36
31966           lanczos
31967
31968           Default is bilinear.
31969
31970       range, r
31971           Set the color range.
31972
31973           Possible values are:
31974
31975           input
31976           limited
31977           full
31978
31979           Default is same as input.
31980
31981       primaries, p
31982           Set the color primaries.
31983
31984           Possible values are:
31985
31986           input
31987           709
31988           unspecified
31989           170m
31990           240m
31991           2020
31992
31993           Default is same as input.
31994
31995       transfer, t
31996           Set the transfer characteristics.
31997
31998           Possible values are:
31999
32000           input
32001           709
32002           unspecified
32003           601
32004           linear
32005           2020_10
32006           2020_12
32007           smpte2084
32008           iec61966-2-1
32009           arib-std-b67
32010
32011           Default is same as input.
32012
32013       matrix, m
32014           Set the colorspace matrix.
32015
32016           Possible value are:
32017
32018           input
32019           709
32020           unspecified
32021           470bg
32022           170m
32023           2020_ncl
32024           2020_cl
32025
32026           Default is same as input.
32027
32028       rangein, rin
32029           Set the input color range.
32030
32031           Possible values are:
32032
32033           input
32034           limited
32035           full
32036
32037           Default is same as input.
32038
32039       primariesin, pin
32040           Set the input color primaries.
32041
32042           Possible values are:
32043
32044           input
32045           709
32046           unspecified
32047           170m
32048           240m
32049           2020
32050
32051           Default is same as input.
32052
32053       transferin, tin
32054           Set the input transfer characteristics.
32055
32056           Possible values are:
32057
32058           input
32059           709
32060           unspecified
32061           601
32062           linear
32063           2020_10
32064           2020_12
32065
32066           Default is same as input.
32067
32068       matrixin, min
32069           Set the input colorspace matrix.
32070
32071           Possible value are:
32072
32073           input
32074           709
32075           unspecified
32076           470bg
32077           170m
32078           2020_ncl
32079           2020_cl
32080       chromal, c
32081           Set the output chroma location.
32082
32083           Possible values are:
32084
32085           input
32086           left
32087           center
32088           topleft
32089           top
32090           bottomleft
32091           bottom
32092       chromalin, cin
32093           Set the input chroma location.
32094
32095           Possible values are:
32096
32097           input
32098           left
32099           center
32100           topleft
32101           top
32102           bottomleft
32103           bottom
32104       npl Set the nominal peak luminance.
32105
32106       param_a
32107           Parameter A for scaling filters. Parameter "b" for bicubic, and the
32108           number of filter taps for lanczos.
32109
32110       param_b
32111           Parameter B for scaling filters. Parameter "c" for bicubic.
32112
32113       The values of the w and h options are expressions containing the
32114       following constants:
32115
32116       in_w
32117       in_h
32118           The input width and height
32119
32120       iw
32121       ih  These are the same as in_w and in_h.
32122
32123       out_w
32124       out_h
32125           The output (scaled) width and height
32126
32127       ow
32128       oh  These are the same as out_w and out_h
32129
32130       a   The same as iw / ih
32131
32132       sar input sample aspect ratio
32133
32134       dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
32135
32136       hsub
32137       vsub
32138           horizontal and vertical input chroma subsample values. For example
32139           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
32140
32141       ohsub
32142       ovsub
32143           horizontal and vertical output chroma subsample values. For example
32144           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
32145
32146       Commands
32147
32148       This filter supports the following commands:
32149
32150       width, w
32151       height, h
32152           Set the output video dimension expression.  The command accepts the
32153           same syntax of the corresponding option.
32154
32155           If the specified expression is not valid, it is kept at its current
32156           value.
32157

OPENCL VIDEO FILTERS

32159       Below is a description of the currently available OpenCL video filters.
32160
32161       To enable compilation of these filters you need to configure FFmpeg
32162       with "--enable-opencl".
32163
32164       Running OpenCL filters requires you to initialize a hardware device and
32165       to pass that device to all filters in any filter graph.
32166
32167       -init_hw_device opencl[=name][:device[,key=value...]]
32168           Initialise a new hardware device of type opencl called name, using
32169           the given device parameters.
32170
32171       -filter_hw_device name
32172           Pass the hardware device called name to all filters in any filter
32173           graph.
32174
32175       For more detailed information see
32176       <https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options>
32177
32178       •   Example of choosing the first device on the second platform and
32179           running avgblur_opencl filter with default parameters on it.
32180
32181                   -init_hw_device opencl=gpu:1.0 -filter_hw_device gpu -i INPUT -vf "hwupload, avgblur_opencl, hwdownload" OUTPUT
32182
32183       Since OpenCL filters are not able to access frame data in normal
32184       memory, all frame data needs to be uploaded(hwupload) to hardware
32185       surfaces connected to the appropriate device before being used and then
32186       downloaded(hwdownload) back to normal memory. Note that hwupload will
32187       upload to a surface with the same layout as the software frame, so it
32188       may be necessary to add a format filter immediately before to get the
32189       input into the right format and hwdownload does not support all formats
32190       on the output - it may be necessary to insert an additional format
32191       filter immediately following in the graph to get the output in a
32192       supported format.
32193
32194   avgblur_opencl
32195       Apply average blur filter.
32196
32197       The filter accepts the following options:
32198
32199       sizeX
32200           Set horizontal radius size.  Range is "[1, 1024]" and default value
32201           is 1.
32202
32203       planes
32204           Set which planes to filter. Default value is 0xf, by which all
32205           planes are processed.
32206
32207       sizeY
32208           Set vertical radius size. Range is "[1, 1024]" and default value is
32209           0. If zero, "sizeX" value will be used.
32210
32211       Example
32212
32213       •   Apply average blur filter with horizontal and vertical size of 3,
32214           setting each pixel of the output to the average value of the 7x7
32215           region centered on it in the input. For pixels on the edges of the
32216           image, the region does not extend beyond the image boundaries, and
32217           so out-of-range coordinates are not used in the calculations.
32218
32219                   -i INPUT -vf "hwupload, avgblur_opencl=3, hwdownload" OUTPUT
32220
32221   boxblur_opencl
32222       Apply a boxblur algorithm to the input video.
32223
32224       It accepts the following parameters:
32225
32226       luma_radius, lr
32227       luma_power, lp
32228       chroma_radius, cr
32229       chroma_power, cp
32230       alpha_radius, ar
32231       alpha_power, ap
32232
32233       A description of the accepted options follows.
32234
32235       luma_radius, lr
32236       chroma_radius, cr
32237       alpha_radius, ar
32238           Set an expression for the box radius in pixels used for blurring
32239           the corresponding input plane.
32240
32241           The radius value must be a non-negative number, and must not be
32242           greater than the value of the expression "min(w,h)/2" for the luma
32243           and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
32244
32245           Default value for luma_radius is "2". If not specified,
32246           chroma_radius and alpha_radius default to the corresponding value
32247           set for luma_radius.
32248
32249           The expressions can contain the following constants:
32250
32251           w
32252           h   The input width and height in pixels.
32253
32254           cw
32255           ch  The input chroma image width and height in pixels.
32256
32257           hsub
32258           vsub
32259               The horizontal and vertical chroma subsample values. For
32260               example, for the pixel format "yuv422p", hsub is 2 and vsub is
32261               1.
32262
32263       luma_power, lp
32264       chroma_power, cp
32265       alpha_power, ap
32266           Specify how many times the boxblur filter is applied to the
32267           corresponding plane.
32268
32269           Default value for luma_power is 2. If not specified, chroma_power
32270           and alpha_power default to the corresponding value set for
32271           luma_power.
32272
32273           A value of 0 will disable the effect.
32274
32275       Examples
32276
32277       Apply boxblur filter, setting each pixel of the output to the average
32278       value of box-radiuses luma_radius, chroma_radius, alpha_radius for each
32279       plane respectively. The filter will apply luma_power, chroma_power,
32280       alpha_power times onto the corresponding plane. For pixels on the edges
32281       of the image, the radius does not extend beyond the image boundaries,
32282       and so out-of-range coordinates are not used in the calculations.
32283
32284       •   Apply a boxblur filter with the luma, chroma, and alpha radius set
32285           to 2 and luma, chroma, and alpha power set to 3. The filter will
32286           run 3 times with box-radius set to 2 for every plane of the image.
32287
32288                   -i INPUT -vf "hwupload, boxblur_opencl=luma_radius=2:luma_power=3, hwdownload" OUTPUT
32289                   -i INPUT -vf "hwupload, boxblur_opencl=2:3, hwdownload" OUTPUT
32290
32291       •   Apply a boxblur filter with luma radius set to 2, luma_power to 1,
32292           chroma_radius to 4, chroma_power to 5, alpha_radius to 3 and
32293           alpha_power to 7.
32294
32295           For the luma plane, a 2x2 box radius will be run once.
32296
32297           For the chroma plane, a 4x4 box radius will be run 5 times.
32298
32299           For the alpha plane, a 3x3 box radius will be run 7 times.
32300
32301                   -i INPUT -vf "hwupload, boxblur_opencl=2:1:4:5:3:7, hwdownload" OUTPUT
32302
32303   colorkey_opencl
32304       RGB colorspace color keying.
32305
32306       The filter accepts the following options:
32307
32308       color
32309           The color which will be replaced with transparency.
32310
32311       similarity
32312           Similarity percentage with the key color.
32313
32314           0.01 matches only the exact key color, while 1.0 matches
32315           everything.
32316
32317       blend
32318           Blend percentage.
32319
32320           0.0 makes pixels either fully transparent, or not transparent at
32321           all.
32322
32323           Higher values result in semi-transparent pixels, with a higher
32324           transparency the more similar the pixels color is to the key color.
32325
32326       Examples
32327
32328       •   Make every semi-green pixel in the input transparent with some
32329           slight blending:
32330
32331                   -i INPUT -vf "hwupload, colorkey_opencl=green:0.3:0.1, hwdownload" OUTPUT
32332
32333   convolution_opencl
32334       Apply convolution of 3x3, 5x5, 7x7 matrix.
32335
32336       The filter accepts the following options:
32337
32338       0m
32339       1m
32340       2m
32341       3m  Set matrix for each plane.  Matrix is sequence of 9, 25 or 49
32342           signed numbers.  Default value for each plane is "0 0 0 0 1 0 0 0
32343           0".
32344
32345       0rdiv
32346       1rdiv
32347       2rdiv
32348       3rdiv
32349           Set multiplier for calculated value for each plane.  If unset or 0,
32350           it will be sum of all matrix elements.  The option value must be a
32351           float number greater or equal to 0.0. Default value is 1.0.
32352
32353       0bias
32354       1bias
32355       2bias
32356       3bias
32357           Set bias for each plane. This value is added to the result of the
32358           multiplication.  Useful for making the overall image brighter or
32359           darker.  The option value must be a float number greater or equal
32360           to 0.0. Default value is 0.0.
32361
32362       Examples
32363
32364       •   Apply sharpen:
32365
32366                   -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
32367
32368       •   Apply blur:
32369
32370                   -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
32371
32372       •   Apply edge enhance:
32373
32374                   -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
32375
32376       •   Apply edge detect:
32377
32378                   -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
32379
32380       •   Apply laplacian edge detector which includes diagonals:
32381
32382                   -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
32383
32384       •   Apply emboss:
32385
32386                   -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
32387
32388   erosion_opencl
32389       Apply erosion effect to the video.
32390
32391       This filter replaces the pixel by the local(3x3) minimum.
32392
32393       It accepts the following options:
32394
32395       threshold0
32396       threshold1
32397       threshold2
32398       threshold3
32399           Limit the maximum change for each plane. Range is "[0, 65535]" and
32400           default value is 65535.  If 0, plane will remain unchanged.
32401
32402       coordinates
32403           Flag which specifies the pixel to refer to.  Range is "[0, 255]"
32404           and default value is 255, i.e. all eight pixels are used.
32405
32406           Flags to local 3x3 coordinates region centered on "x":
32407
32408               1 2 3
32409
32410               4 x 5
32411
32412               6 7 8
32413
32414       Example
32415
32416       •   Apply erosion filter with threshold0 set to 30, threshold1 set 40,
32417           threshold2 set to 50 and coordinates set to 231, setting each pixel
32418           of the output to the local minimum between pixels: 1, 2, 3, 6, 7, 8
32419           of the 3x3 region centered on it in the input. If the difference
32420           between input pixel and local minimum is more then threshold of the
32421           corresponding plane, output pixel will be set to input pixel -
32422           threshold of corresponding plane.
32423
32424                   -i INPUT -vf "hwupload, erosion_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
32425
32426   deshake_opencl
32427       Feature-point based video stabilization filter.
32428
32429       The filter accepts the following options:
32430
32431       tripod
32432           Simulates a tripod by preventing any camera movement whatsoever
32433           from the original frame. Defaults to 0.
32434
32435       debug
32436           Whether or not additional debug info should be displayed, both in
32437           the processed output and in the console.
32438
32439           Note that in order to see console debug output you will also need
32440           to pass "-v verbose" to ffmpeg.
32441
32442           Viewing point matches in the output video is only supported for RGB
32443           input.
32444
32445           Defaults to 0.
32446
32447       adaptive_crop
32448           Whether or not to do a tiny bit of cropping at the borders to cut
32449           down on the amount of mirrored pixels.
32450
32451           Defaults to 1.
32452
32453       refine_features
32454           Whether or not feature points should be refined at a sub-pixel
32455           level.
32456
32457           This can be turned off for a slight performance gain at the cost of
32458           precision.
32459
32460           Defaults to 1.
32461
32462       smooth_strength
32463           The strength of the smoothing applied to the camera path from 0.0
32464           to 1.0.
32465
32466           1.0 is the maximum smoothing strength while values less than that
32467           result in less smoothing.
32468
32469           0.0 causes the filter to adaptively choose a smoothing strength on
32470           a per-frame basis.
32471
32472           Defaults to 0.0.
32473
32474       smooth_window_multiplier
32475           Controls the size of the smoothing window (the number of frames
32476           buffered to determine motion information from).
32477
32478           The size of the smoothing window is determined by multiplying the
32479           framerate of the video by this number.
32480
32481           Acceptable values range from 0.1 to 10.0.
32482
32483           Larger values increase the amount of motion data available for
32484           determining how to smooth the camera path, potentially improving
32485           smoothness, but also increase latency and memory usage.
32486
32487           Defaults to 2.0.
32488
32489       Examples
32490
32491       •   Stabilize a video with a fixed, medium smoothing strength:
32492
32493                   -i INPUT -vf "hwupload, deshake_opencl=smooth_strength=0.5, hwdownload" OUTPUT
32494
32495       •   Stabilize a video with debugging (both in console and in rendered
32496           video):
32497
32498                   -i INPUT -filter_complex "[0:v]format=rgba, hwupload, deshake_opencl=debug=1, hwdownload, format=rgba, format=yuv420p" -v verbose OUTPUT
32499
32500   dilation_opencl
32501       Apply dilation effect to the video.
32502
32503       This filter replaces the pixel by the local(3x3) maximum.
32504
32505       It accepts the following options:
32506
32507       threshold0
32508       threshold1
32509       threshold2
32510       threshold3
32511           Limit the maximum change for each plane. Range is "[0, 65535]" and
32512           default value is 65535.  If 0, plane will remain unchanged.
32513
32514       coordinates
32515           Flag which specifies the pixel to refer to.  Range is "[0, 255]"
32516           and default value is 255, i.e. all eight pixels are used.
32517
32518           Flags to local 3x3 coordinates region centered on "x":
32519
32520               1 2 3
32521
32522               4 x 5
32523
32524               6 7 8
32525
32526       Example
32527
32528       •   Apply dilation filter with threshold0 set to 30, threshold1 set 40,
32529           threshold2 set to 50 and coordinates set to 231, setting each pixel
32530           of the output to the local maximum between pixels: 1, 2, 3, 6, 7, 8
32531           of the 3x3 region centered on it in the input. If the difference
32532           between input pixel and local maximum is more then threshold of the
32533           corresponding plane, output pixel will be set to input pixel +
32534           threshold of corresponding plane.
32535
32536                   -i INPUT -vf "hwupload, dilation_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
32537
32538   nlmeans_opencl
32539       Non-local Means denoise filter through OpenCL, this filter accepts same
32540       options as nlmeans.
32541
32542   overlay_opencl
32543       Overlay one video on top of another.
32544
32545       It takes two inputs and has one output. The first input is the "main"
32546       video on which the second input is overlaid.  This filter requires same
32547       memory layout for all the inputs. So, format conversion may be needed.
32548
32549       The filter accepts the following options:
32550
32551       x   Set the x coordinate of the overlaid video on the main video.
32552           Default value is 0.
32553
32554       y   Set the y coordinate of the overlaid video on the main video.
32555           Default value is 0.
32556
32557       Examples
32558
32559       •   Overlay an image LOGO at the top-left corner of the INPUT video.
32560           Both inputs are yuv420p format.
32561
32562                   -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
32563
32564       •   The inputs have same memory layout for color channels , the overlay
32565           has additional alpha plane, like INPUT is yuv420p, and the LOGO is
32566           yuva420p.
32567
32568                   -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
32569
32570   pad_opencl
32571       Add paddings to the input image, and place the original input at the
32572       provided x, y coordinates.
32573
32574       It accepts the following options:
32575
32576       width, w
32577       height, h
32578           Specify an expression for the size of the output image with the
32579           paddings added. If the value for width or height is 0, the
32580           corresponding input size is used for the output.
32581
32582           The width expression can reference the value set by the height
32583           expression, and vice versa.
32584
32585           The default value of width and height is 0.
32586
32587       x
32588       y   Specify the offsets to place the input image at within the padded
32589           area, with respect to the top/left border of the output image.
32590
32591           The x expression can reference the value set by the y expression,
32592           and vice versa.
32593
32594           The default value of x and y is 0.
32595
32596           If x or y evaluate to a negative number, they'll be changed so the
32597           input image is centered on the padded area.
32598
32599       color
32600           Specify the color of the padded area. For the syntax of this
32601           option, check the "Color" section in the ffmpeg-utils manual.
32602
32603       aspect
32604           Pad to an aspect instead to a resolution.
32605
32606       The value for the width, height, x, and y options are expressions
32607       containing the following constants:
32608
32609       in_w
32610       in_h
32611           The input video width and height.
32612
32613       iw
32614       ih  These are the same as in_w and in_h.
32615
32616       out_w
32617       out_h
32618           The output width and height (the size of the padded area), as
32619           specified by the width and height expressions.
32620
32621       ow
32622       oh  These are the same as out_w and out_h.
32623
32624       x
32625       y   The x and y offsets as specified by the x and y expressions, or NAN
32626           if not yet specified.
32627
32628       a   same as iw / ih
32629
32630       sar input sample aspect ratio
32631
32632       dar input display aspect ratio, it is the same as (iw / ih) * sar
32633
32634   prewitt_opencl
32635       Apply the Prewitt operator
32636       (<https://en.wikipedia.org/wiki/Prewitt_operator>) to input video
32637       stream.
32638
32639       The filter accepts the following option:
32640
32641       planes
32642           Set which planes to filter. Default value is 0xf, by which all
32643           planes are processed.
32644
32645       scale
32646           Set value which will be multiplied with filtered result.  Range is
32647           "[0.0, 65535]" and default value is 1.0.
32648
32649       delta
32650           Set value which will be added to filtered result.  Range is
32651           "[-65535, 65535]" and default value is 0.0.
32652
32653       Example
32654
32655       •   Apply the Prewitt operator with scale set to 2 and delta set to 10.
32656
32657                   -i INPUT -vf "hwupload, prewitt_opencl=scale=2:delta=10, hwdownload" OUTPUT
32658
32659   program_opencl
32660       Filter video using an OpenCL program.
32661
32662       source
32663           OpenCL program source file.
32664
32665       kernel
32666           Kernel name in program.
32667
32668       inputs
32669           Number of inputs to the filter.  Defaults to 1.
32670
32671       size, s
32672           Size of output frames.  Defaults to the same as the first input.
32673
32674       The "program_opencl" filter also supports the framesync options.
32675
32676       The program source file must contain a kernel function with the given
32677       name, which will be run once for each plane of the output.  Each run on
32678       a plane gets enqueued as a separate 2D global NDRange with one work-
32679       item for each pixel to be generated.  The global ID offset for each
32680       work-item is therefore the coordinates of a pixel in the destination
32681       image.
32682
32683       The kernel function needs to take the following arguments:
32684
32685       •   Destination image, __write_only image2d_t.
32686
32687           This image will become the output; the kernel should write all of
32688           it.
32689
32690       •   Frame index, unsigned int.
32691
32692           This is a counter starting from zero and increasing by one for each
32693           frame.
32694
32695       •   Source images, __read_only image2d_t.
32696
32697           These are the most recent images on each input.  The kernel may
32698           read from them to generate the output, but they can't be written
32699           to.
32700
32701       Example programs:
32702
32703       •   Copy the input to the output (output must be the same size as the
32704           input).
32705
32706                   __kernel void copy(__write_only image2d_t destination,
32707                                      unsigned int index,
32708                                      __read_only  image2d_t source)
32709                   {
32710                       const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE;
32711
32712                       int2 location = (int2)(get_global_id(0), get_global_id(1));
32713
32714                       float4 value = read_imagef(source, sampler, location);
32715
32716                       write_imagef(destination, location, value);
32717                   }
32718
32719       •   Apply a simple transformation, rotating the input by an amount
32720           increasing with the index counter.  Pixel values are linearly
32721           interpolated by the sampler, and the output need not have the same
32722           dimensions as the input.
32723
32724                   __kernel void rotate_image(__write_only image2d_t dst,
32725                                              unsigned int index,
32726                                              __read_only  image2d_t src)
32727                   {
32728                       const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
32729                                                  CLK_FILTER_LINEAR);
32730
32731                       float angle = (float)index / 100.0f;
32732
32733                       float2 dst_dim = convert_float2(get_image_dim(dst));
32734                       float2 src_dim = convert_float2(get_image_dim(src));
32735
32736                       float2 dst_cen = dst_dim / 2.0f;
32737                       float2 src_cen = src_dim / 2.0f;
32738
32739                       int2   dst_loc = (int2)(get_global_id(0), get_global_id(1));
32740
32741                       float2 dst_pos = convert_float2(dst_loc) - dst_cen;
32742                       float2 src_pos = {
32743                           cos(angle) * dst_pos.x - sin(angle) * dst_pos.y,
32744                           sin(angle) * dst_pos.x + cos(angle) * dst_pos.y
32745                       };
32746                       src_pos = src_pos * src_dim / dst_dim;
32747
32748                       float2 src_loc = src_pos + src_cen;
32749
32750                       if (src_loc.x < 0.0f      || src_loc.y < 0.0f ||
32751                           src_loc.x > src_dim.x || src_loc.y > src_dim.y)
32752                           write_imagef(dst, dst_loc, 0.5f);
32753                       else
32754                           write_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc));
32755                   }
32756
32757       •   Blend two inputs together, with the amount of each input used
32758           varying with the index counter.
32759
32760                   __kernel void blend_images(__write_only image2d_t dst,
32761                                              unsigned int index,
32762                                              __read_only  image2d_t src1,
32763                                              __read_only  image2d_t src2)
32764                   {
32765                       const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
32766                                                  CLK_FILTER_LINEAR);
32767
32768                       float blend = (cos((float)index / 50.0f) + 1.0f) / 2.0f;
32769
32770                       int2  dst_loc = (int2)(get_global_id(0), get_global_id(1));
32771                       int2 src1_loc = dst_loc * get_image_dim(src1) / get_image_dim(dst);
32772                       int2 src2_loc = dst_loc * get_image_dim(src2) / get_image_dim(dst);
32773
32774                       float4 val1 = read_imagef(src1, sampler, src1_loc);
32775                       float4 val2 = read_imagef(src2, sampler, src2_loc);
32776
32777                       write_imagef(dst, dst_loc, val1 * blend + val2 * (1.0f - blend));
32778                   }
32779
32780   remap_opencl
32781       Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
32782
32783       Destination pixel at position (X, Y) will be picked from source (x, y)
32784       position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
32785       out of range, zero value for pixel will be used for destination pixel.
32786
32787       Xmap and Ymap input video streams must be of same dimensions. Output
32788       video stream will have Xmap/Ymap video stream dimensions.  Xmap and
32789       Ymap input video streams are 32bit float pixel format, single channel.
32790
32791       interp
32792           Specify interpolation used for remapping of pixels.  Allowed values
32793           are "near" and "linear".  Default value is "linear".
32794
32795       fill
32796           Specify the color of the unmapped pixels. For the syntax of this
32797           option, check the "Color" section in the ffmpeg-utils manual.
32798           Default color is "black".
32799
32800   roberts_opencl
32801       Apply the Roberts cross operator
32802       (<https://en.wikipedia.org/wiki/Roberts_cross>) to input video stream.
32803
32804       The filter accepts the following option:
32805
32806       planes
32807           Set which planes to filter. Default value is 0xf, by which all
32808           planes are processed.
32809
32810       scale
32811           Set value which will be multiplied with filtered result.  Range is
32812           "[0.0, 65535]" and default value is 1.0.
32813
32814       delta
32815           Set value which will be added to filtered result.  Range is
32816           "[-65535, 65535]" and default value is 0.0.
32817
32818       Example
32819
32820       •   Apply the Roberts cross operator with scale set to 2 and delta set
32821           to 10
32822
32823                   -i INPUT -vf "hwupload, roberts_opencl=scale=2:delta=10, hwdownload" OUTPUT
32824
32825   sobel_opencl
32826       Apply the Sobel operator
32827       (<https://en.wikipedia.org/wiki/Sobel_operator>) to input video stream.
32828
32829       The filter accepts the following option:
32830
32831       planes
32832           Set which planes to filter. Default value is 0xf, by which all
32833           planes are processed.
32834
32835       scale
32836           Set value which will be multiplied with filtered result.  Range is
32837           "[0.0, 65535]" and default value is 1.0.
32838
32839       delta
32840           Set value which will be added to filtered result.  Range is
32841           "[-65535, 65535]" and default value is 0.0.
32842
32843       Example
32844
32845       •   Apply sobel operator with scale set to 2 and delta set to 10
32846
32847                   -i INPUT -vf "hwupload, sobel_opencl=scale=2:delta=10, hwdownload" OUTPUT
32848
32849   tonemap_opencl
32850       Perform HDR(PQ/HLG) to SDR conversion with tone-mapping.
32851
32852       It accepts the following parameters:
32853
32854       tonemap
32855           Specify the tone-mapping operator to be used. Same as tonemap
32856           option in tonemap.
32857
32858       param
32859           Tune the tone mapping algorithm. same as param option in tonemap.
32860
32861       desat
32862           Apply desaturation for highlights that exceed this level of
32863           brightness. The higher the parameter, the more color information
32864           will be preserved. This setting helps prevent unnaturally blown-out
32865           colors for super-highlights, by (smoothly) turning into white
32866           instead. This makes images feel more natural, at the cost of
32867           reducing information about out-of-range colors.
32868
32869           The default value is 0.5, and the algorithm here is a little
32870           different from the cpu version tonemap currently. A setting of 0.0
32871           disables this option.
32872
32873       threshold
32874           The tonemapping algorithm parameters is fine-tuned per each scene.
32875           And a threshold is used to detect whether the scene has changed or
32876           not. If the distance between the current frame average brightness
32877           and the current running average exceeds a threshold value, we would
32878           re-calculate scene average and peak brightness.  The default value
32879           is 0.2.
32880
32881       format
32882           Specify the output pixel format.
32883
32884           Currently supported formats are:
32885
32886           p010
32887           nv12
32888       range, r
32889           Set the output color range.
32890
32891           Possible values are:
32892
32893           tv/mpeg
32894           pc/jpeg
32895
32896           Default is same as input.
32897
32898       primaries, p
32899           Set the output color primaries.
32900
32901           Possible values are:
32902
32903           bt709
32904           bt2020
32905
32906           Default is same as input.
32907
32908       transfer, t
32909           Set the output transfer characteristics.
32910
32911           Possible values are:
32912
32913           bt709
32914           bt2020
32915
32916           Default is bt709.
32917
32918       matrix, m
32919           Set the output colorspace matrix.
32920
32921           Possible value are:
32922
32923           bt709
32924           bt2020
32925
32926           Default is same as input.
32927
32928       Example
32929
32930       •   Convert HDR(PQ/HLG) video to bt2020-transfer-characteristic p010
32931           format using linear operator.
32932
32933                   -i INPUT -vf "format=p010,hwupload,tonemap_opencl=t=bt2020:tonemap=linear:format=p010,hwdownload,format=p010" OUTPUT
32934
32935   unsharp_opencl
32936       Sharpen or blur the input video.
32937
32938       It accepts the following parameters:
32939
32940       luma_msize_x, lx
32941           Set the luma matrix horizontal size.  Range is "[1, 23]" and
32942           default value is 5.
32943
32944       luma_msize_y, ly
32945           Set the luma matrix vertical size.  Range is "[1, 23]" and default
32946           value is 5.
32947
32948       luma_amount, la
32949           Set the luma effect strength.  Range is "[-10, 10]" and default
32950           value is 1.0.
32951
32952           Negative values will blur the input video, while positive values
32953           will sharpen it, a value of zero will disable the effect.
32954
32955       chroma_msize_x, cx
32956           Set the chroma matrix horizontal size.  Range is "[1, 23]" and
32957           default value is 5.
32958
32959       chroma_msize_y, cy
32960           Set the chroma matrix vertical size.  Range is "[1, 23]" and
32961           default value is 5.
32962
32963       chroma_amount, ca
32964           Set the chroma effect strength.  Range is "[-10, 10]" and default
32965           value is 0.0.
32966
32967           Negative values will blur the input video, while positive values
32968           will sharpen it, a value of zero will disable the effect.
32969
32970       All parameters are optional and default to the equivalent of the string
32971       '5:5:1.0:5:5:0.0'.
32972
32973       Examples
32974
32975       •   Apply strong luma sharpen effect:
32976
32977                   -i INPUT -vf "hwupload, unsharp_opencl=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5, hwdownload" OUTPUT
32978
32979       •   Apply a strong blur of both luma and chroma parameters:
32980
32981                   -i INPUT -vf "hwupload, unsharp_opencl=7:7:-2:7:7:-2, hwdownload" OUTPUT
32982
32983   xfade_opencl
32984       Cross fade two videos with custom transition effect by using OpenCL.
32985
32986       It accepts the following options:
32987
32988       transition
32989           Set one of possible transition effects.
32990
32991           custom
32992               Select custom transition effect, the actual transition
32993               description will be picked from source and kernel options.
32994
32995           fade
32996           wipeleft
32997           wiperight
32998           wipeup
32999           wipedown
33000           slideleft
33001           slideright
33002           slideup
33003           slidedown
33004               Default transition is fade.
33005
33006       source
33007           OpenCL program source file for custom transition.
33008
33009       kernel
33010           Set name of kernel to use for custom transition from program source
33011           file.
33012
33013       duration
33014           Set duration of video transition.
33015
33016       offset
33017           Set time of start of transition relative to first video.
33018
33019       The program source file must contain a kernel function with the given
33020       name, which will be run once for each plane of the output.  Each run on
33021       a plane gets enqueued as a separate 2D global NDRange with one work-
33022       item for each pixel to be generated.  The global ID offset for each
33023       work-item is therefore the coordinates of a pixel in the destination
33024       image.
33025
33026       The kernel function needs to take the following arguments:
33027
33028       •   Destination image, __write_only image2d_t.
33029
33030           This image will become the output; the kernel should write all of
33031           it.
33032
33033       •   First Source image, __read_only image2d_t.  Second Source image,
33034           __read_only image2d_t.
33035
33036           These are the most recent images on each input.  The kernel may
33037           read from them to generate the output, but they can't be written
33038           to.
33039
33040       •   Transition progress, float. This value is always between 0 and 1
33041           inclusive.
33042
33043       Example programs:
33044
33045       •   Apply dots curtain transition effect:
33046
33047                   __kernel void blend_images(__write_only image2d_t dst,
33048                                              __read_only  image2d_t src1,
33049                                              __read_only  image2d_t src2,
33050                                              float progress)
33051                   {
33052                       const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
33053                                                  CLK_FILTER_LINEAR);
33054                       int2  p = (int2)(get_global_id(0), get_global_id(1));
33055                       float2 rp = (float2)(get_global_id(0), get_global_id(1));
33056                       float2 dim = (float2)(get_image_dim(src1).x, get_image_dim(src1).y);
33057                       rp = rp / dim;
33058
33059                       float2 dots = (float2)(20.0, 20.0);
33060                       float2 center = (float2)(0,0);
33061                       float2 unused;
33062
33063                       float4 val1 = read_imagef(src1, sampler, p);
33064                       float4 val2 = read_imagef(src2, sampler, p);
33065                       bool next = distance(fract(rp * dots, &unused), (float2)(0.5, 0.5)) < (progress / distance(rp, center));
33066
33067                       write_imagef(dst, p, next ? val1 : val2);
33068                   }
33069

VAAPI VIDEO FILTERS

33071       VAAPI Video filters are usually used with VAAPI decoder and VAAPI
33072       encoder. Below is a description of VAAPI video filters.
33073
33074       To enable compilation of these filters you need to configure FFmpeg
33075       with "--enable-vaapi".
33076
33077       To use vaapi filters, you need to setup the vaapi device correctly. For
33078       more information, please read
33079       <https://trac.ffmpeg.org/wiki/Hardware/VAAPI>
33080
33081   overlay_vaapi
33082       Overlay one video on the top of another.
33083
33084       It takes two inputs and has one output. The first input is the "main"
33085       video on which the second input is overlaid.
33086
33087       The filter accepts the following options:
33088
33089       x
33090       y   Set expressions for the x and y coordinates of the overlaid video
33091           on the main video.
33092
33093           Default value is "0" for both expressions.
33094
33095       w
33096       h   Set expressions for the width and height the overlaid video on the
33097           main video.
33098
33099           Default values are 'overlay_iw' for 'w' and
33100           'overlay_ih*w/overlay_iw' for 'h'.
33101
33102           The expressions can contain the following parameters:
33103
33104           main_w, W
33105           main_h, H
33106               The main input width and height.
33107
33108           overlay_iw
33109           overlay_ih
33110               The overlay input width and height.
33111
33112           overlay_w, w
33113           overlay_h, h
33114               The overlay output width and height.
33115
33116           overlay_x, x
33117           overlay_y, y
33118               Position of the overlay layer inside of main
33119
33120       alpha
33121           Set transparency of overlaid video. Allowed range is 0.0 to 1.0.
33122           Higher value means lower transparency.  Default value is 1.0.
33123
33124       eof_action
33125           See framesync.
33126
33127       shortest
33128           See framesync.
33129
33130       repeatlast
33131           See framesync.
33132
33133       This filter also supports the framesync options.
33134
33135       Examples
33136
33137       •   Overlay an image LOGO at the top-left corner of the INPUT video.
33138           Both inputs for this filter are yuv420p format.
33139
33140                   -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_vaapi" OUTPUT
33141
33142       •   Overlay an image LOGO at the offset (200, 100) from the top-left
33143           corner of the INPUT video.  The inputs have same memory layout for
33144           color channels, the overlay has additional alpha plane, like INPUT
33145           is yuv420p, and the LOGO is yuva420p.
33146
33147                   -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
33148
33149   tonemap_vaapi
33150       Perform HDR(High Dynamic Range) to SDR(Standard Dynamic Range)
33151       conversion with tone-mapping.  It maps the dynamic range of HDR10
33152       content to the SDR content.  It currently only accepts HDR10 as input.
33153
33154       It accepts the following parameters:
33155
33156       format
33157           Specify the output pixel format.
33158
33159           Currently supported formats are:
33160
33161           p010
33162           nv12
33163
33164           Default is nv12.
33165
33166       primaries, p
33167           Set the output color primaries.
33168
33169           Default is same as input.
33170
33171       transfer, t
33172           Set the output transfer characteristics.
33173
33174           Default is bt709.
33175
33176       matrix, m
33177           Set the output colorspace matrix.
33178
33179           Default is same as input.
33180
33181       Example
33182
33183       •   Convert HDR(HDR10) video to bt2020-transfer-characteristic p010
33184           format
33185
33186                   tonemap_vaapi=format=p010:t=bt2020-10
33187
33188   hstack_vaapi
33189       Stack input videos horizontally.
33190
33191       This is the VA-API variant of the hstack filter, each input stream may
33192       have different height, this filter will scale down/up each input stream
33193       while keeping the orignal aspect.
33194
33195       It accepts the following options:
33196
33197       inputs
33198           See hstack.
33199
33200       shortest
33201           See hstack.
33202
33203       height
33204           Set height of output. If set to 0, this filter will set height of
33205           output to height of the first input stream. Default value is 0.
33206
33207   vstack_vaapi
33208       Stack input videos vertically.
33209
33210       This is the VA-API variant of the vstack filter, each input stream may
33211       have different width, this filter will scale down/up each input stream
33212       while keeping the orignal aspect.
33213
33214       It accepts the following options:
33215
33216       inputs
33217           See vstack.
33218
33219       shortest
33220           See vstack.
33221
33222       width
33223           Set width of output. If set to 0, this filter will set width of
33224           output to width of the first input stream. Default value is 0.
33225
33226   xstack_vaapi
33227       Stack video inputs into custom layout.
33228
33229       This is the VA-API variant of the xstack filter,  each input stream may
33230       have different size, this filter will scale down/up each input stream
33231       to the given output size, or the size of the first input stream.
33232
33233       It accepts the following options:
33234
33235       inputs
33236           See xstack.
33237
33238       shortest
33239           See xstack.
33240
33241       layout
33242           See xstack.  Moreover, this permits the user to supply output size
33243           for each input stream.
33244
33245                   xstack_vaapi=inputs=4:layout=0_0_1920x1080|0_h0_1920x1080|w0_0_1920x1080|w0_h0_1920x1080
33246
33247       grid
33248           See xstack.
33249
33250       grid_tile_size
33251           Set output size for each input stream when grid is set. If this
33252           option is not set, this filter will set output size by default to
33253           the size of the first input stream. For the syntax of this option,
33254           check the "Video size" section in the ffmpeg-utils manual.
33255
33256       fill
33257           See xstack.
33258

QSV VIDEO FILTERS

33260       Below is a description of the currently available QSV video filters.
33261
33262       To enable compilation of these filters you need to configure FFmpeg
33263       with "--enable-libmfx" or "--enable-libvpl".
33264
33265       To use QSV filters, you need to setup the QSV device correctly. For
33266       more information, please read
33267       <https://trac.ffmpeg.org/wiki/Hardware/QuickSync>
33268
33269   hstack_qsv
33270       Stack input videos horizontally.
33271
33272       This is the QSV variant of the hstack filter, each input stream may
33273       have different height, this filter will scale down/up each input stream
33274       while keeping the orignal aspect.
33275
33276       It accepts the following options:
33277
33278       inputs
33279           See hstack.
33280
33281       shortest
33282           See hstack.
33283
33284       height
33285           Set height of output. If set to 0, this filter will set height of
33286           output to height of the first input stream. Default value is 0.
33287
33288   vstack_qsv
33289       Stack input videos vertically.
33290
33291       This is the QSV variant of the vstack filter, each input stream may
33292       have different width, this filter will scale down/up each input stream
33293       while keeping the orignal aspect.
33294
33295       It accepts the following options:
33296
33297       inputs
33298           See vstack.
33299
33300       shortest
33301           See vstack.
33302
33303       width
33304           Set width of output. If set to 0, this filter will set width of
33305           output to width of the first input stream. Default value is 0.
33306
33307   xstack_qsv
33308       Stack video inputs into custom layout.
33309
33310       This is the QSV variant of the xstack filter.
33311
33312       It accepts the following options:
33313
33314       inputs
33315           See xstack.
33316
33317       shortest
33318           See xstack.
33319
33320       layout
33321           See xstack.  Moreover, this permits the user to supply output size
33322           for each input stream.
33323
33324                   xstack_qsv=inputs=4:layout=0_0_1920x1080|0_h0_1920x1080|w0_0_1920x1080|w0_h0_1920x1080
33325
33326       grid
33327           See xstack.
33328
33329       grid_tile_size
33330           Set output size for each input stream when grid is set. If this
33331           option is not set, this filter will set output size by default to
33332           the size of the first input stream. For the syntax of this option,
33333           check the "Video size" section in the ffmpeg-utils manual.
33334
33335       fill
33336           See xstack.
33337

VIDEO SOURCES

33339       Below is a description of the currently available video sources.
33340
33341   buffer
33342       Buffer video frames, and make them available to the filter chain.
33343
33344       This source is mainly intended for a programmatic use, in particular
33345       through the interface defined in libavfilter/buffersrc.h.
33346
33347       It accepts the following parameters:
33348
33349       video_size
33350           Specify the size (width and height) of the buffered video frames.
33351           For the syntax of this option, check the "Video size" section in
33352           the ffmpeg-utils manual.
33353
33354       width
33355           The input video width.
33356
33357       height
33358           The input video height.
33359
33360       pix_fmt
33361           A string representing the pixel format of the buffered video
33362           frames.  It may be a number corresponding to a pixel format, or a
33363           pixel format name.
33364
33365       time_base
33366           Specify the timebase assumed by the timestamps of the buffered
33367           frames.
33368
33369       frame_rate
33370           Specify the frame rate expected for the video stream.
33371
33372       pixel_aspect, sar
33373           The sample (pixel) aspect ratio of the input video.
33374
33375       hw_frames_ctx
33376           When using a hardware pixel format, this should be a reference to
33377           an AVHWFramesContext describing input frames.
33378
33379       For example:
33380
33381               buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
33382
33383       will instruct the source to accept video frames with size 320x240 and
33384       with format "yuv410p", assuming 1/24 as the timestamps timebase and
33385       square pixels (1:1 sample aspect ratio).  Since the pixel format with
33386       name "yuv410p" corresponds to the number 6 (check the enum
33387       AVPixelFormat definition in libavutil/pixfmt.h), this example
33388       corresponds to:
33389
33390               buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
33391
33392       Alternatively, the options can be specified as a flat string, but this
33393       syntax is deprecated:
33394
33395       width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den
33396
33397   cellauto
33398       Create a pattern generated by an elementary cellular automaton.
33399
33400       The initial state of the cellular automaton can be defined through the
33401       filename and pattern options. If such options are not specified an
33402       initial state is created randomly.
33403
33404       At each new frame a new row in the video is filled with the result of
33405       the cellular automaton next generation. The behavior when the whole
33406       frame is filled is defined by the scroll option.
33407
33408       This source accepts the following options:
33409
33410       filename, f
33411           Read the initial cellular automaton state, i.e. the starting row,
33412           from the specified file.  In the file, each non-whitespace
33413           character is considered an alive cell, a newline will terminate the
33414           row, and further characters in the file will be ignored.
33415
33416       pattern, p
33417           Read the initial cellular automaton state, i.e. the starting row,
33418           from the specified string.
33419
33420           Each non-whitespace character in the string is considered an alive
33421           cell, a newline will terminate the row, and further characters in
33422           the string will be ignored.
33423
33424       rate, r
33425           Set the video rate, that is the number of frames generated per
33426           second.  Default is 25.
33427
33428       random_fill_ratio, ratio
33429           Set the random fill ratio for the initial cellular automaton row.
33430           It is a floating point number value ranging from 0 to 1, defaults
33431           to 1/PHI.
33432
33433           This option is ignored when a file or a pattern is specified.
33434
33435       random_seed, seed
33436           Set the seed for filling randomly the initial row, must be an
33437           integer included between 0 and UINT32_MAX. If not specified, or if
33438           explicitly set to -1, the filter will try to use a good random seed
33439           on a best effort basis.
33440
33441       rule
33442           Set the cellular automaton rule, it is a number ranging from 0 to
33443           255.  Default value is 110.
33444
33445       size, s
33446           Set the size of the output video. For the syntax of this option,
33447           check the "Video size" section in the ffmpeg-utils manual.
33448
33449           If filename or pattern is specified, the size is set by default to
33450           the width of the specified initial state row, and the height is set
33451           to width * PHI.
33452
33453           If size is set, it must contain the width of the specified pattern
33454           string, and the specified pattern will be centered in the larger
33455           row.
33456
33457           If a filename or a pattern string is not specified, the size value
33458           defaults to "320x518" (used for a randomly generated initial
33459           state).
33460
33461       scroll
33462           If set to 1, scroll the output upward when all the rows in the
33463           output have been already filled. If set to 0, the new generated row
33464           will be written over the top row just after the bottom row is
33465           filled.  Defaults to 1.
33466
33467       start_full, full
33468           If set to 1, completely fill the output with generated rows before
33469           outputting the first frame.  This is the default behavior, for
33470           disabling set the value to 0.
33471
33472       stitch
33473           If set to 1, stitch the left and right row edges together.  This is
33474           the default behavior, for disabling set the value to 0.
33475
33476       Examples
33477
33478       •   Read the initial state from pattern, and specify an output of size
33479           200x400.
33480
33481                   cellauto=f=pattern:s=200x400
33482
33483       •   Generate a random initial row with a width of 200 cells, with a
33484           fill ratio of 2/3:
33485
33486                   cellauto=ratio=2/3:s=200x200
33487
33488       •   Create a pattern generated by rule 18 starting by a single alive
33489           cell centered on an initial row with width 100:
33490
33491                   cellauto=p=@s=100x400:full=0:rule=18
33492
33493       •   Specify a more elaborated initial pattern:
33494
33495                   cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
33496
33497   coreimagesrc
33498       Video source generated on GPU using Apple's CoreImage API on OSX.
33499
33500       This video source is a specialized version of the coreimage video
33501       filter.  Use a core image generator at the beginning of the applied
33502       filterchain to generate the content.
33503
33504       The coreimagesrc video source accepts the following options:
33505
33506       list_generators
33507           List all available generators along with all their respective
33508           options as well as possible minimum and maximum values along with
33509           the default values.
33510
33511                   list_generators=true
33512
33513       size, s
33514           Specify the size of the sourced video. For the syntax of this
33515           option, check the "Video size" section in the ffmpeg-utils manual.
33516           The default value is "320x240".
33517
33518       rate, r
33519           Specify the frame rate of the sourced video, as the number of
33520           frames generated per second. It has to be a string in the format
33521           frame_rate_num/frame_rate_den, an integer number, a floating point
33522           number or a valid video frame rate abbreviation. The default value
33523           is "25".
33524
33525       sar Set the sample aspect ratio of the sourced video.
33526
33527       duration, d
33528           Set the duration of the sourced video. See the Time duration
33529           section in the ffmpeg-utils(1) manual for the accepted syntax.
33530
33531           If not specified, or the expressed duration is negative, the video
33532           is supposed to be generated forever.
33533
33534       Additionally, all options of the coreimage video filter are accepted.
33535       A complete filterchain can be used for further processing of the
33536       generated input without CPU-HOST transfer. See coreimage documentation
33537       and examples for details.
33538
33539       Examples
33540
33541       •   Use CIQRCodeGenerator to create a QR code for the FFmpeg homepage,
33542           given as complete and escaped command-line for Apple's standard
33543           bash shell:
33544
33545                   ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
33546
33547           This example is equivalent to the QRCode example of coreimage
33548           without the need for a nullsrc video source.
33549
33550   ddagrab
33551       Captures the Windows Desktop via Desktop Duplication API.
33552
33553       The filter exclusively returns D3D11 Hardware Frames, for on-gpu
33554       encoding or processing. So an explicit hwdownload is needed for any
33555       kind of software processing.
33556
33557       It accepts the following options:
33558
33559       output_idx
33560           DXGI Output Index to capture.
33561
33562           Usually corresponds to the index Windows has given the screen minus
33563           one, so it's starting at 0.
33564
33565           Defaults to output 0.
33566
33567       draw_mouse
33568           Whether to draw the mouse cursor.
33569
33570           Defaults to true.
33571
33572           Only affects hardware cursors. If a game or application renders its
33573           own cursor, it'll always be captured.
33574
33575       framerate
33576           Framerate at which the desktop will be captured.
33577
33578           Defaults to 30 FPS.
33579
33580       video_size
33581           Specify the size of the captured video.
33582
33583           Defaults to the full size of the screen.
33584
33585           Cropped from the bottom/right if smaller than screen size.
33586
33587       offset_x
33588           Horizontal offset of the captured video.
33589
33590       offset_y
33591           Vertical offset of the captured video.
33592
33593       output_fmt
33594           Desired filter output format.  Defaults to 8 Bit BGRA.
33595
33596           It accepts the following values:
33597
33598           auto
33599               Passes all supported output formats to DDA and returns what DDA
33600               decides to use.
33601
33602           8bit
33603           bgra
33604               8 Bit formats always work, and DDA will convert to them if
33605               neccesary.
33606
33607           10bit
33608           x2bgr10
33609               Filter initialization will fail if 10 bit format is requested
33610               but unavailable.
33611
33612       Examples
33613
33614       Capture primary screen and encode using nvenc:
33615
33616               ffmpeg -f lavfi -i ddagrab -c:v h264_nvenc -cq 18 output.mp4
33617
33618       You can also skip the lavfi device and directly use the filter.  Also
33619       demonstrates downloading the frame and encoding with libx264.  Explicit
33620       output format specification is required in this case:
33621
33622               ffmpeg -filter_complex ddagrab=output_idx=1:framerate=60,hwdownload,format=bgra -c:v libx264 -crf 18 output.mp4
33623
33624       If you want to capture only a subsection of the desktop, this can be
33625       achieved by specifying a smaller size and its offsets into the screen:
33626
33627               ddagrab=video_size=800x600:offset_x=100:offset_y=100
33628
33629   gradients
33630       Generate several gradients.
33631
33632       size, s
33633           Set frame size. For the syntax of this option, check the "Video
33634           size" section in the ffmpeg-utils manual. Default value is
33635           "640x480".
33636
33637       rate, r
33638           Set frame rate, expressed as number of frames per second. Default
33639           value is "25".
33640
33641       c0, c1, c2, c3, c4, c5, c6, c7
33642           Set 8 colors. Default values for colors is to pick random one.
33643
33644       x0, y0, y0, y1
33645           Set gradient line source and destination points. If negative or out
33646           of range, random ones are picked.
33647
33648       nb_colors, n
33649           Set number of colors to use at once. Allowed range is from 2 to 8.
33650           Default value is 2.
33651
33652       seed
33653           Set seed for picking gradient line points.
33654
33655       duration, d
33656           Set the duration of the sourced video. See the Time duration
33657           section in the ffmpeg-utils(1) manual for the accepted syntax.
33658
33659           If not specified, or the expressed duration is negative, the video
33660           is supposed to be generated forever.
33661
33662       speed
33663           Set speed of gradients rotation.
33664
33665       type, t
33666           Set type of gradients, can be "linear" or "radial" or "circular" or
33667           "spiral".
33668
33669   mandelbrot
33670       Generate a Mandelbrot set fractal, and progressively zoom towards the
33671       point specified with start_x and start_y.
33672
33673       This source accepts the following options:
33674
33675       end_pts
33676           Set the terminal pts value. Default value is 400.
33677
33678       end_scale
33679           Set the terminal scale value.  Must be a floating point value.
33680           Default value is 0.3.
33681
33682       inner
33683           Set the inner coloring mode, that is the algorithm used to draw the
33684           Mandelbrot fractal internal region.
33685
33686           It shall assume one of the following values:
33687
33688           black
33689               Set black mode.
33690
33691           convergence
33692               Show time until convergence.
33693
33694           mincol
33695               Set color based on point closest to the origin of the
33696               iterations.
33697
33698           period
33699               Set period mode.
33700
33701           Default value is mincol.
33702
33703       bailout
33704           Set the bailout value. Default value is 10.0.
33705
33706       maxiter
33707           Set the maximum of iterations performed by the rendering algorithm.
33708           Default value is 7189.
33709
33710       outer
33711           Set outer coloring mode.  It shall assume one of following values:
33712
33713           iteration_count
33714               Set iteration count mode.
33715
33716           normalized_iteration_count
33717               set normalized iteration count mode.
33718
33719           Default value is normalized_iteration_count.
33720
33721       rate, r
33722           Set frame rate, expressed as number of frames per second. Default
33723           value is "25".
33724
33725       size, s
33726           Set frame size. For the syntax of this option, check the "Video
33727           size" section in the ffmpeg-utils manual. Default value is
33728           "640x480".
33729
33730       start_scale
33731           Set the initial scale value. Default value is 3.0.
33732
33733       start_x
33734           Set the initial x position. Must be a floating point value between
33735           -100 and 100. Default value is
33736           -0.743643887037158704752191506114774.
33737
33738       start_y
33739           Set the initial y position. Must be a floating point value between
33740           -100 and 100. Default value is
33741           -0.131825904205311970493132056385139.
33742
33743   mptestsrc
33744       Generate various test patterns, as generated by the MPlayer test
33745       filter.
33746
33747       The size of the generated video is fixed, and is 256x256.  This source
33748       is useful in particular for testing encoding features.
33749
33750       This source accepts the following options:
33751
33752       rate, r
33753           Specify the frame rate of the sourced video, as the number of
33754           frames generated per second. It has to be a string in the format
33755           frame_rate_num/frame_rate_den, an integer number, a floating point
33756           number or a valid video frame rate abbreviation. The default value
33757           is "25".
33758
33759       duration, d
33760           Set the duration of the sourced video. See the Time duration
33761           section in the ffmpeg-utils(1) manual for the accepted syntax.
33762
33763           If not specified, or the expressed duration is negative, the video
33764           is supposed to be generated forever.
33765
33766       test, t
33767           Set the number or the name of the test to perform. Supported tests
33768           are:
33769
33770           dc_luma
33771           dc_chroma
33772           freq_luma
33773           freq_chroma
33774           amp_luma
33775           amp_chroma
33776           cbp
33777           mv
33778           ring1
33779           ring2
33780           all
33781           max_frames, m
33782               Set the maximum number of frames generated for each test,
33783               default value is 30.
33784
33785           Default value is "all", which will cycle through the list of all
33786           tests.
33787
33788       Some examples:
33789
33790               mptestsrc=t=dc_luma
33791
33792       will generate a "dc_luma" test pattern.
33793
33794   frei0r_src
33795       Provide a frei0r source.
33796
33797       To enable compilation of this filter you need to install the frei0r
33798       header and configure FFmpeg with "--enable-frei0r".
33799
33800       This source accepts the following parameters:
33801
33802       size
33803           The size of the video to generate. For the syntax of this option,
33804           check the "Video size" section in the ffmpeg-utils manual.
33805
33806       framerate
33807           The framerate of the generated video. It may be a string of the
33808           form num/den or a frame rate abbreviation.
33809
33810       filter_name
33811           The name to the frei0r source to load. For more information
33812           regarding frei0r and how to set the parameters, read the frei0r
33813           section in the video filters documentation.
33814
33815       filter_params
33816           A '|'-separated list of parameters to pass to the frei0r source.
33817
33818       For example, to generate a frei0r partik0l source with size 200x200 and
33819       frame rate 10 which is overlaid on the overlay filter main input:
33820
33821               frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
33822
33823   life
33824       Generate a life pattern.
33825
33826       This source is based on a generalization of John Conway's life game.
33827
33828       The sourced input represents a life grid, each pixel represents a cell
33829       which can be in one of two possible states, alive or dead. Every cell
33830       interacts with its eight neighbours, which are the cells that are
33831       horizontally, vertically, or diagonally adjacent.
33832
33833       At each interaction the grid evolves according to the adopted rule,
33834       which specifies the number of neighbor alive cells which will make a
33835       cell stay alive or born. The rule option allows one to specify the rule
33836       to adopt.
33837
33838       This source accepts the following options:
33839
33840       filename, f
33841           Set the file from which to read the initial grid state. In the
33842           file, each non-whitespace character is considered an alive cell,
33843           and newline is used to delimit the end of each row.
33844
33845           If this option is not specified, the initial grid is generated
33846           randomly.
33847
33848       rate, r
33849           Set the video rate, that is the number of frames generated per
33850           second.  Default is 25.
33851
33852       random_fill_ratio, ratio
33853           Set the random fill ratio for the initial random grid. It is a
33854           floating point number value ranging from 0 to 1, defaults to 1/PHI.
33855           It is ignored when a file is specified.
33856
33857       random_seed, seed
33858           Set the seed for filling the initial random grid, must be an
33859           integer included between 0 and UINT32_MAX. If not specified, or if
33860           explicitly set to -1, the filter will try to use a good random seed
33861           on a best effort basis.
33862
33863       rule
33864           Set the life rule.
33865
33866           A rule can be specified with a code of the kind "SNS/BNB", where NS
33867           and NB are sequences of numbers in the range 0-8, NS specifies the
33868           number of alive neighbor cells which make a live cell stay alive,
33869           and NB the number of alive neighbor cells which make a dead cell to
33870           become alive (i.e. to "born").  "s" and "b" can be used in place of
33871           "S" and "B", respectively.
33872
33873           Alternatively a rule can be specified by an 18-bits integer. The 9
33874           high order bits are used to encode the next cell state if it is
33875           alive for each number of neighbor alive cells, the low order bits
33876           specify the rule for "borning" new cells. Higher order bits encode
33877           for an higher number of neighbor cells.  For example the number
33878           6153 = "(12<<9)+9" specifies a stay alive rule of 12 and a born
33879           rule of 9, which corresponds to "S23/B03".
33880
33881           Default value is "S23/B3", which is the original Conway's game of
33882           life rule, and will keep a cell alive if it has 2 or 3 neighbor
33883           alive cells, and will born a new cell if there are three alive
33884           cells around a dead cell.
33885
33886       size, s
33887           Set the size of the output video. For the syntax of this option,
33888           check the "Video size" section in the ffmpeg-utils manual.
33889
33890           If filename is specified, the size is set by default to the same
33891           size of the input file. If size is set, it must contain the size
33892           specified in the input file, and the initial grid defined in that
33893           file is centered in the larger resulting area.
33894
33895           If a filename is not specified, the size value defaults to
33896           "320x240" (used for a randomly generated initial grid).
33897
33898       stitch
33899           If set to 1, stitch the left and right grid edges together, and the
33900           top and bottom edges also. Defaults to 1.
33901
33902       mold
33903           Set cell mold speed. If set, a dead cell will go from death_color
33904           to mold_color with a step of mold. mold can have a value from 0 to
33905           255.
33906
33907       life_color
33908           Set the color of living (or new born) cells.
33909
33910       death_color
33911           Set the color of dead cells. If mold is set, this is the first
33912           color used to represent a dead cell.
33913
33914       mold_color
33915           Set mold color, for definitely dead and moldy cells.
33916
33917           For the syntax of these 3 color options, check the "Color" section
33918           in the ffmpeg-utils manual.
33919
33920       Examples
33921
33922       •   Read a grid from pattern, and center it on a grid of size 300x300
33923           pixels:
33924
33925                   life=f=pattern:s=300x300
33926
33927       •   Generate a random grid of size 200x200, with a fill ratio of 2/3:
33928
33929                   life=ratio=2/3:s=200x200
33930
33931       •   Specify a custom rule for evolving a randomly generated grid:
33932
33933                   life=rule=S14/B34
33934
33935       •   Full example with slow death effect (mold) using ffplay:
33936
33937                   ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
33938
33939   allrgb, allyuv, color, colorchart, colorspectrum, haldclutsrc, nullsrc,
33940       pal75bars, pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc,
33941       testsrc2, yuvtestsrc
33942       The "allrgb" source returns frames of size 4096x4096 of all rgb colors.
33943
33944       The "allyuv" source returns frames of size 4096x4096 of all yuv colors.
33945
33946       The "color" source provides an uniformly colored input.
33947
33948       The "colorchart" source provides a colors checker chart.
33949
33950       The "colorspectrum" source provides a color spectrum input.
33951
33952       The "haldclutsrc" source provides an identity Hald CLUT. See also
33953       haldclut filter.
33954
33955       The "nullsrc" source returns unprocessed video frames. It is mainly
33956       useful to be employed in analysis / debugging tools, or as the source
33957       for filters which ignore the input data.
33958
33959       The "pal75bars" source generates a color bars pattern, based on EBU PAL
33960       recommendations with 75% color levels.
33961
33962       The "pal100bars" source generates a color bars pattern, based on EBU
33963       PAL recommendations with 100% color levels.
33964
33965       The "rgbtestsrc" source generates an RGB test pattern useful for
33966       detecting RGB vs BGR issues. You should see a red, green and blue
33967       stripe from top to bottom.
33968
33969       The "smptebars" source generates a color bars pattern, based on the
33970       SMPTE Engineering Guideline EG 1-1990.
33971
33972       The "smptehdbars" source generates a color bars pattern, based on the
33973       SMPTE RP 219-2002.
33974
33975       The "testsrc" source generates a test video pattern, showing a color
33976       pattern, a scrolling gradient and a timestamp. This is mainly intended
33977       for testing purposes.
33978
33979       The "testsrc2" source is similar to testsrc, but supports more pixel
33980       formats instead of just "rgb24". This allows using it as an input for
33981       other tests without requiring a format conversion.
33982
33983       The "yuvtestsrc" source generates an YUV test pattern. You should see a
33984       y, cb and cr stripe from top to bottom.
33985
33986       The sources accept the following parameters:
33987
33988       level
33989           Specify the level of the Hald CLUT, only available in the
33990           "haldclutsrc" source. A level of "N" generates a picture of "N*N*N"
33991           by "N*N*N" pixels to be used as identity matrix for 3D lookup
33992           tables. Each component is coded on a "1/(N*N)" scale.
33993
33994       color, c
33995           Specify the color of the source, only available in the "color"
33996           source. For the syntax of this option, check the "Color" section in
33997           the ffmpeg-utils manual.
33998
33999       size, s
34000           Specify the size of the sourced video. For the syntax of this
34001           option, check the "Video size" section in the ffmpeg-utils manual.
34002           The default value is "320x240".
34003
34004           This option is not available with the "allrgb", "allyuv", and
34005           "haldclutsrc" filters.
34006
34007       rate, r
34008           Specify the frame rate of the sourced video, as the number of
34009           frames generated per second. It has to be a string in the format
34010           frame_rate_num/frame_rate_den, an integer number, a floating point
34011           number or a valid video frame rate abbreviation. The default value
34012           is "25".
34013
34014       duration, d
34015           Set the duration of the sourced video. See the Time duration
34016           section in the ffmpeg-utils(1) manual for the accepted syntax.
34017
34018           If not specified, or the expressed duration is negative, the video
34019           is supposed to be generated forever.
34020
34021           Since the frame rate is used as time base, all frames including the
34022           last one will have their full duration. If the specified duration
34023           is not a multiple of the frame duration, it will be rounded up.
34024
34025       sar Set the sample aspect ratio of the sourced video.
34026
34027       alpha
34028           Specify the alpha (opacity) of the background, only available in
34029           the "testsrc2" source. The value must be between 0 (fully
34030           transparent) and 255 (fully opaque, the default).
34031
34032       decimals, n
34033           Set the number of decimals to show in the timestamp, only available
34034           in the "testsrc" source.
34035
34036           The displayed timestamp value will correspond to the original
34037           timestamp value multiplied by the power of 10 of the specified
34038           value. Default value is 0.
34039
34040       type
34041           Set the type of the color spectrum, only available in the
34042           "colorspectrum" source. Can be one of the following:
34043
34044           black
34045           white
34046           all
34047       patch_size
34048           Set patch size of single color patch, only available in the
34049           "colorchart" source. Default is "64x64".
34050
34051       preset
34052           Set colorchecker colors preset, only available in the "colorchart"
34053           source.
34054
34055           Available values are:
34056
34057           reference
34058           skintones
34059
34060           Default value is "reference".
34061
34062       Examples
34063
34064       •   Generate a video with a duration of 5.3 seconds, with size 176x144
34065           and a frame rate of 10 frames per second:
34066
34067                   testsrc=duration=5.3:size=qcif:rate=10
34068
34069       •   The following graph description will generate a red source with an
34070           opacity of 0.2, with size "qcif" and a frame rate of 10 frames per
34071           second:
34072
34073                   color=c=red@0.2:s=qcif:r=10
34074
34075       •   If the input content is to be ignored, "nullsrc" can be used. The
34076           following command generates noise in the luminance plane by
34077           employing the "geq" filter:
34078
34079                   nullsrc=s=256x256, geq=random(1)*255:128:128
34080
34081       Commands
34082
34083       The "color" source supports the following commands:
34084
34085       c, color
34086           Set the color of the created image. Accepts the same syntax of the
34087           corresponding color option.
34088
34089   openclsrc
34090       Generate video using an OpenCL program.
34091
34092       source
34093           OpenCL program source file.
34094
34095       kernel
34096           Kernel name in program.
34097
34098       size, s
34099           Size of frames to generate.  This must be set.
34100
34101       format
34102           Pixel format to use for the generated frames.  This must be set.
34103
34104       rate, r
34105           Number of frames generated every second.  Default value is '25'.
34106
34107       For details of how the program loading works, see the program_opencl
34108       filter.
34109
34110       Example programs:
34111
34112       •   Generate a colour ramp by setting pixel values from the position of
34113           the pixel in the output image.  (Note that this will work with all
34114           pixel formats, but the generated output will not be the same.)
34115
34116                   __kernel void ramp(__write_only image2d_t dst,
34117                                      unsigned int index)
34118                   {
34119                       int2 loc = (int2)(get_global_id(0), get_global_id(1));
34120
34121                       float4 val;
34122                       val.xy = val.zw = convert_float2(loc) / convert_float2(get_image_dim(dst));
34123
34124                       write_imagef(dst, loc, val);
34125                   }
34126
34127       •   Generate a Sierpinski carpet pattern, panning by a single pixel
34128           each frame.
34129
34130                   __kernel void sierpinski_carpet(__write_only image2d_t dst,
34131                                                   unsigned int index)
34132                   {
34133                       int2 loc = (int2)(get_global_id(0), get_global_id(1));
34134
34135                       float4 value = 0.0f;
34136                       int x = loc.x + index;
34137                       int y = loc.y + index;
34138                       while (x > 0 || y > 0) {
34139                           if (x % 3 == 1 && y % 3 == 1) {
34140                               value = 1.0f;
34141                               break;
34142                           }
34143                           x /= 3;
34144                           y /= 3;
34145                       }
34146
34147                       write_imagef(dst, loc, value);
34148                   }
34149
34150   sierpinski
34151       Generate a Sierpinski carpet/triangle fractal, and randomly pan around.
34152
34153       This source accepts the following options:
34154
34155       size, s
34156           Set frame size. For the syntax of this option, check the "Video
34157           size" section in the ffmpeg-utils manual. Default value is
34158           "640x480".
34159
34160       rate, r
34161           Set frame rate, expressed as number of frames per second. Default
34162           value is "25".
34163
34164       seed
34165           Set seed which is used for random panning.
34166
34167       jump
34168           Set max jump for single pan destination. Allowed range is from 1 to
34169           10000.
34170
34171       type
34172           Set fractal type, can be default "carpet" or "triangle".
34173

VIDEO SINKS

34175       Below is a description of the currently available video sinks.
34176
34177   buffersink
34178       Buffer video frames, and make them available to the end of the filter
34179       graph.
34180
34181       This sink is mainly intended for programmatic use, in particular
34182       through the interface defined in libavfilter/buffersink.h or the
34183       options system.
34184
34185       It accepts a pointer to an AVBufferSinkContext structure, which defines
34186       the incoming buffers' formats, to be passed as the opaque parameter to
34187       "avfilter_init_filter" for initialization.
34188
34189   nullsink
34190       Null video sink: do absolutely nothing with the input video. It is
34191       mainly useful as a template and for use in analysis / debugging tools.
34192

MULTIMEDIA FILTERS

34194       Below is a description of the currently available multimedia filters.
34195
34196   a3dscope
34197       Convert input audio to 3d scope video output.
34198
34199       The filter accepts the following options:
34200
34201       rate, r
34202           Set frame rate, expressed as number of frames per second. Default
34203           value is "25".
34204
34205       size, s
34206           Specify the video size for the output. For the syntax of this
34207           option, check the "Video size" section in the ffmpeg-utils manual.
34208           Default value is "hd720".
34209
34210       fov Set the camera field of view. Default is 90 degrees.  Allowed range
34211           is from 40 to 150.
34212
34213       roll
34214           Set the camera roll.
34215
34216       pitch
34217           Set the camera pitch.
34218
34219       yaw Set the camera yaw.
34220
34221       xzoom
34222           Set the camera zoom on X-axis.
34223
34224       yzoom
34225           Set the camera zoom on Y-axis.
34226
34227       zzoom
34228           Set the camera zoom on Z-axis.
34229
34230       xpos
34231           Set the camera position on X-axis.
34232
34233       ypos
34234           Set the camera position on Y-axis.
34235
34236       zpos
34237           Set the camera position on Z-axis.
34238
34239       length
34240           Set the length of displayed audio waves in number of frames.
34241
34242       Commands
34243
34244       Filter supports the some above options as commands.
34245
34246   abitscope
34247       Convert input audio to a video output, displaying the audio bit scope.
34248
34249       The filter accepts the following options:
34250
34251       rate, r
34252           Set frame rate, expressed as number of frames per second. Default
34253           value is "25".
34254
34255       size, s
34256           Specify the video size for the output. For the syntax of this
34257           option, check the "Video size" section in the ffmpeg-utils manual.
34258           Default value is "1024x256".
34259
34260       colors
34261           Specify list of colors separated by space or by '|' which will be
34262           used to draw channels. Unrecognized or missing colors will be
34263           replaced by white color.
34264
34265       mode, m
34266           Set output mode. Can be "bars" or "trace". Default is "bars".
34267
34268   adrawgraph
34269       Draw a graph using input audio metadata.
34270
34271       See drawgraph
34272
34273   agraphmonitor
34274       See graphmonitor.
34275
34276   ahistogram
34277       Convert input audio to a video output, displaying the volume histogram.
34278
34279       The filter accepts the following options:
34280
34281       dmode
34282           Specify how histogram is calculated.
34283
34284           It accepts the following values:
34285
34286           single
34287               Use single histogram for all channels.
34288
34289           separate
34290               Use separate histogram for each channel.
34291
34292           Default is "single".
34293
34294       rate, r
34295           Set frame rate, expressed as number of frames per second. Default
34296           value is "25".
34297
34298       size, s
34299           Specify the video size for the output. For the syntax of this
34300           option, check the "Video size" section in the ffmpeg-utils manual.
34301           Default value is "hd720".
34302
34303       scale
34304           Set display scale.
34305
34306           It accepts the following values:
34307
34308           log logarithmic
34309
34310           sqrt
34311               square root
34312
34313           cbrt
34314               cubic root
34315
34316           lin linear
34317
34318           rlog
34319               reverse logarithmic
34320
34321           Default is "log".
34322
34323       ascale
34324           Set amplitude scale.
34325
34326           It accepts the following values:
34327
34328           log logarithmic
34329
34330           lin linear
34331
34332           Default is "log".
34333
34334       acount
34335           Set how much frames to accumulate in histogram.  Default is 1.
34336           Setting this to -1 accumulates all frames.
34337
34338       rheight
34339           Set histogram ratio of window height.
34340
34341       slide
34342           Set sonogram sliding.
34343
34344           It accepts the following values:
34345
34346           replace
34347               replace old rows with new ones.
34348
34349           scroll
34350               scroll from top to bottom.
34351
34352           Default is "replace".
34353
34354       hmode
34355           Set histogram mode.
34356
34357           It accepts the following values:
34358
34359           abs Use absolute values of samples.
34360
34361           sign
34362               Use untouched values of samples.
34363
34364           Default is "abs".
34365
34366   aphasemeter
34367       Measures phase of input audio, which is exported as metadata
34368       "lavfi.aphasemeter.phase", representing mean phase of current audio
34369       frame. A video output can also be produced and is enabled by default.
34370       The audio is passed through as first output.
34371
34372       Audio will be rematrixed to stereo if it has a different channel
34373       layout. Phase value is in range "[-1, 1]" where -1 means left and right
34374       channels are completely out of phase and 1 means channels are in phase.
34375
34376       The filter accepts the following options, all related to its video
34377       output:
34378
34379       rate, r
34380           Set the output frame rate. Default value is 25.
34381
34382       size, s
34383           Set the video size for the output. For the syntax of this option,
34384           check the "Video size" section in the ffmpeg-utils manual.  Default
34385           value is "800x400".
34386
34387       rc
34388       gc
34389       bc  Specify the red, green, blue contrast. Default values are 2, 7 and
34390           1.  Allowed range is "[0, 255]".
34391
34392       mpc Set color which will be used for drawing median phase. If color is
34393           "none" which is default, no median phase value will be drawn.
34394
34395       video
34396           Enable video output. Default is enabled.
34397
34398       phasing detection
34399
34400       The filter also detects out of phase and mono sequences in stereo
34401       streams.  It logs the sequence start, end and duration when it lasts
34402       longer or as long as the minimum set.
34403
34404       The filter accepts the following options for this detection:
34405
34406       phasing
34407           Enable mono and out of phase detection. Default is disabled.
34408
34409       tolerance, t
34410           Set phase tolerance for mono detection, in amplitude ratio. Default
34411           is 0.  Allowed range is "[0, 1]".
34412
34413       angle, a
34414           Set angle threshold for out of phase detection, in degree. Default
34415           is 170.  Allowed range is "[90, 180]".
34416
34417       duration, d
34418           Set mono or out of phase duration until notification, expressed in
34419           seconds. Default is 2.
34420
34421       Examples
34422
34423       •   Complete example with ffmpeg to detect 1 second of mono with 0.001
34424           phase tolerance:
34425
34426                   ffmpeg -i stereo.wav -af aphasemeter=video=0:phasing=1:duration=1:tolerance=0.001 -f null -
34427
34428   avectorscope
34429       Convert input audio to a video output, representing the audio vector
34430       scope.
34431
34432       The filter is used to measure the difference between channels of stereo
34433       audio stream. A monaural signal, consisting of identical left and right
34434       signal, results in straight vertical line. Any stereo separation is
34435       visible as a deviation from this line, creating a Lissajous figure.  If
34436       the straight (or deviation from it) but horizontal line appears this
34437       indicates that the left and right channels are out of phase.
34438
34439       The filter accepts the following options:
34440
34441       mode, m
34442           Set the vectorscope mode.
34443
34444           Available values are:
34445
34446           lissajous
34447               Lissajous rotated by 45 degrees.
34448
34449           lissajous_xy
34450               Same as above but not rotated.
34451
34452           polar
34453               Shape resembling half of circle.
34454
34455           Default value is lissajous.
34456
34457       size, s
34458           Set the video size for the output. For the syntax of this option,
34459           check the "Video size" section in the ffmpeg-utils manual.  Default
34460           value is "400x400".
34461
34462       rate, r
34463           Set the output frame rate. Default value is 25.
34464
34465       rc
34466       gc
34467       bc
34468       ac  Specify the red, green, blue and alpha contrast. Default values are
34469           40, 160, 80 and 255.  Allowed range is "[0, 255]".
34470
34471       rf
34472       gf
34473       bf
34474       af  Specify the red, green, blue and alpha fade. Default values are 15,
34475           10, 5 and 5.  Allowed range is "[0, 255]".
34476
34477       zoom
34478           Set the zoom factor. Default value is 1. Allowed range is "[0,
34479           10]".  Values lower than 1 will auto adjust zoom factor to maximal
34480           possible value.
34481
34482       draw
34483           Set the vectorscope drawing mode.
34484
34485           Available values are:
34486
34487           dot Draw dot for each sample.
34488
34489           line
34490               Draw line between previous and current sample.
34491
34492           aaline
34493               Draw anti-aliased line between previous and current sample.
34494
34495           Default value is dot.
34496
34497       scale
34498           Specify amplitude scale of audio samples.
34499
34500           Available values are:
34501
34502           lin Linear.
34503
34504           sqrt
34505               Square root.
34506
34507           cbrt
34508               Cubic root.
34509
34510           log Logarithmic.
34511
34512       swap
34513           Swap left channel axis with right channel axis.
34514
34515       mirror
34516           Mirror axis.
34517
34518           none
34519               No mirror.
34520
34521           x   Mirror only x axis.
34522
34523           y   Mirror only y axis.
34524
34525           xy  Mirror both axis.
34526
34527       Examples
34528
34529       •   Complete example using ffplay:
34530
34531                   ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
34532                                [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
34533
34534       Commands
34535
34536       This filter supports the all above options as commands except options
34537       "size" and "rate".
34538
34539   bench, abench
34540       Benchmark part of a filtergraph.
34541
34542       The filter accepts the following options:
34543
34544       action
34545           Start or stop a timer.
34546
34547           Available values are:
34548
34549           start
34550               Get the current time, set it as frame metadata (using the key
34551               "lavfi.bench.start_time"), and forward the frame to the next
34552               filter.
34553
34554           stop
34555               Get the current time and fetch the "lavfi.bench.start_time"
34556               metadata from the input frame metadata to get the time
34557               difference. Time difference, average, maximum and minimum time
34558               (respectively "t", "avg", "max" and "min") are then printed.
34559               The timestamps are expressed in seconds.
34560
34561       Examples
34562
34563       •   Benchmark selectivecolor filter:
34564
34565                   bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
34566
34567   concat
34568       Concatenate audio and video streams, joining them together one after
34569       the other.
34570
34571       The filter works on segments of synchronized video and audio streams.
34572       All segments must have the same number of streams of each type, and
34573       that will also be the number of streams at output.
34574
34575       The filter accepts the following options:
34576
34577       n   Set the number of segments. Default is 2.
34578
34579       v   Set the number of output video streams, that is also the number of
34580           video streams in each segment. Default is 1.
34581
34582       a   Set the number of output audio streams, that is also the number of
34583           audio streams in each segment. Default is 0.
34584
34585       unsafe
34586           Activate unsafe mode: do not fail if segments have a different
34587           format.
34588
34589       The filter has v+a outputs: first v video outputs, then a audio
34590       outputs.
34591
34592       There are nx(v+a) inputs: first the inputs for the first segment, in
34593       the same order as the outputs, then the inputs for the second segment,
34594       etc.
34595
34596       Related streams do not always have exactly the same duration, for
34597       various reasons including codec frame size or sloppy authoring. For
34598       that reason, related synchronized streams (e.g. a video and its audio
34599       track) should be concatenated at once. The concat filter will use the
34600       duration of the longest stream in each segment (except the last one),
34601       and if necessary pad shorter audio streams with silence.
34602
34603       For this filter to work correctly, all segments must start at timestamp
34604       0.
34605
34606       All corresponding streams must have the same parameters in all
34607       segments; the filtering system will automatically select a common pixel
34608       format for video streams, and a common sample format, sample rate and
34609       channel layout for audio streams, but other settings, such as
34610       resolution, must be converted explicitly by the user.
34611
34612       Different frame rates are acceptable but will result in variable frame
34613       rate at output; be sure to configure the output file to handle it.
34614
34615       Examples
34616
34617       •   Concatenate an opening, an episode and an ending, all in bilingual
34618           version (video in stream 0, audio in streams 1 and 2):
34619
34620                   ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \
34621                     '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]
34622                      concat=n=3:v=1:a=2 [v] [a1] [a2]' \
34623                     -map '[v]' -map '[a1]' -map '[a2]' output.mkv
34624
34625       •   Concatenate two parts, handling audio and video separately, using
34626           the (a)movie sources, and adjusting the resolution:
34627
34628                   movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
34629                   movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
34630                   [v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
34631
34632           Note that a desync will happen at the stitch if the audio and video
34633           streams do not have exactly the same duration in the first file.
34634
34635       Commands
34636
34637       This filter supports the following commands:
34638
34639       next
34640           Close the current segment and step to the next one
34641
34642   ebur128
34643       EBU R128 scanner filter. This filter takes an audio stream and analyzes
34644       its loudness level. By default, it logs a message at a frequency of
34645       10Hz with the Momentary loudness (identified by "M"), Short-term
34646       loudness ("S"), Integrated loudness ("I") and Loudness Range ("LRA").
34647
34648       The filter can only analyze streams which have sample format is double-
34649       precision floating point. The input stream will be converted to this
34650       specification, if needed. Users may need to insert aformat and/or
34651       aresample filters after this filter to obtain the original parameters.
34652
34653       The filter also has a video output (see the video option) with a real
34654       time graph to observe the loudness evolution. The graphic contains the
34655       logged message mentioned above, so it is not printed anymore when this
34656       option is set, unless the verbose logging is set. The main graphing
34657       area contains the short-term loudness (3 seconds of analysis), and the
34658       gauge on the right is for the momentary loudness (400 milliseconds),
34659       but can optionally be configured to instead display short-term loudness
34660       (see gauge).
34661
34662       The green area marks a  +/- 1LU target range around the target loudness
34663       (-23LUFS by default, unless modified through target).
34664
34665       More information about the Loudness Recommendation EBU R128 on
34666       <http://tech.ebu.ch/loudness>.
34667
34668       The filter accepts the following options:
34669
34670       video
34671           Activate the video output. The audio stream is passed unchanged
34672           whether this option is set or no. The video stream will be the
34673           first output stream if activated. Default is 0.
34674
34675       size
34676           Set the video size. This option is for video only. For the syntax
34677           of this option, check the "Video size" section in the ffmpeg-utils
34678           manual.  Default and minimum resolution is "640x480".
34679
34680       meter
34681           Set the EBU scale meter. Default is 9. Common values are 9 and 18,
34682           respectively for EBU scale meter +9 and EBU scale meter +18. Any
34683           other integer value between this range is allowed.
34684
34685       metadata
34686           Set metadata injection. If set to 1, the audio input will be
34687           segmented into 100ms output frames, each of them containing various
34688           loudness information in metadata.  All the metadata keys are
34689           prefixed with "lavfi.r128.".
34690
34691           Default is 0.
34692
34693       framelog
34694           Force the frame logging level.
34695
34696           Available values are:
34697
34698           quiet
34699               logging disabled
34700
34701           info
34702               information logging level
34703
34704           verbose
34705               verbose logging level
34706
34707           By default, the logging level is set to info. If the video or the
34708           metadata options are set, it switches to verbose.
34709
34710       peak
34711           Set peak mode(s).
34712
34713           Available modes can be cumulated (the option is a "flag" type).
34714           Possible values are:
34715
34716           none
34717               Disable any peak mode (default).
34718
34719           sample
34720               Enable sample-peak mode.
34721
34722               Simple peak mode looking for the higher sample value. It logs a
34723               message for sample-peak (identified by "SPK").
34724
34725           true
34726               Enable true-peak mode.
34727
34728               If enabled, the peak lookup is done on an over-sampled version
34729               of the input stream for better peak accuracy. It logs a message
34730               for true-peak.  (identified by "TPK") and true-peak per frame
34731               (identified by "FTPK").  This mode requires a build with
34732               "libswresample".
34733
34734       dualmono
34735           Treat mono input files as "dual mono". If a mono file is intended
34736           for playback on a stereo system, its EBU R128 measurement will be
34737           perceptually incorrect.  If set to "true", this option will
34738           compensate for this effect.  Multi-channel input files are not
34739           affected by this option.
34740
34741       panlaw
34742           Set a specific pan law to be used for the measurement of dual mono
34743           files.  This parameter is optional, and has a default value of
34744           -3.01dB.
34745
34746       target
34747           Set a specific target level (in LUFS) used as relative zero in the
34748           visualization.  This parameter is optional and has a default value
34749           of -23LUFS as specified by EBU R128. However, material published
34750           online may prefer a level of -16LUFS (e.g. for use with podcasts or
34751           video platforms).
34752
34753       gauge
34754           Set the value displayed by the gauge. Valid values are "momentary"
34755           and s "shortterm". By default the momentary value will be used, but
34756           in certain scenarios it may be more useful to observe the short
34757           term value instead (e.g.  live mixing).
34758
34759       scale
34760           Sets the display scale for the loudness. Valid parameters are
34761           "absolute" (in LUFS) or "relative" (LU) relative to the target.
34762           This only affects the video output, not the summary or continuous
34763           log output.
34764
34765       Examples
34766
34767       •   Real-time graph using ffplay, with a EBU scale meter +18:
34768
34769                   ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
34770
34771       •   Run an analysis with ffmpeg:
34772
34773                   ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
34774
34775   interleave, ainterleave
34776       Temporally interleave frames from several inputs.
34777
34778       "interleave" works with video inputs, "ainterleave" with audio.
34779
34780       These filters read frames from several inputs and send the oldest
34781       queued frame to the output.
34782
34783       Input streams must have well defined, monotonically increasing frame
34784       timestamp values.
34785
34786       In order to submit one frame to output, these filters need to enqueue
34787       at least one frame for each input, so they cannot work in case one
34788       input is not yet terminated and will not receive incoming frames.
34789
34790       For example consider the case when one input is a "select" filter which
34791       always drops input frames. The "interleave" filter will keep reading
34792       from that input, but it will never be able to send new frames to output
34793       until the input sends an end-of-stream signal.
34794
34795       Also, depending on inputs synchronization, the filters will drop frames
34796       in case one input receives more frames than the other ones, and the
34797       queue is already filled.
34798
34799       These filters accept the following options:
34800
34801       nb_inputs, n
34802           Set the number of different inputs, it is 2 by default.
34803
34804       duration
34805           How to determine the end-of-stream.
34806
34807           longest
34808               The duration of the longest input. (default)
34809
34810           shortest
34811               The duration of the shortest input.
34812
34813           first
34814               The duration of the first input.
34815
34816       Examples
34817
34818       •   Interleave frames belonging to different streams using ffmpeg:
34819
34820                   ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
34821
34822       •   Add flickering blur effect:
34823
34824                   select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
34825
34826   latency, alatency
34827       Measure filtering latency.
34828
34829       Report previous filter filtering latency, delay in number of audio
34830       samples for audio filters or number of video frames for video filters.
34831
34832       On end of input stream, filter will report min and max measured latency
34833       for previous running filter in filtergraph.
34834
34835   metadata, ametadata
34836       Manipulate frame metadata.
34837
34838       This filter accepts the following options:
34839
34840       mode
34841           Set mode of operation of the filter.
34842
34843           Can be one of the following:
34844
34845           select
34846               If both "value" and "key" is set, select frames which have such
34847               metadata. If only "key" is set, select every frame that has
34848               such key in metadata.
34849
34850           add Add new metadata "key" and "value". If key is already available
34851               do nothing.
34852
34853           modify
34854               Modify value of already present key.
34855
34856           delete
34857               If "value" is set, delete only keys that have such value.
34858               Otherwise, delete key. If "key" is not set, delete all metadata
34859               values in the frame.
34860
34861           print
34862               Print key and its value if metadata was found. If "key" is not
34863               set print all metadata values available in frame.
34864
34865       key Set key used with all modes. Must be set for all modes except
34866           "print" and "delete".
34867
34868       value
34869           Set metadata value which will be used. This option is mandatory for
34870           "modify" and "add" mode.
34871
34872       function
34873           Which function to use when comparing metadata value and "value".
34874
34875           Can be one of following:
34876
34877           same_str
34878               Values are interpreted as strings, returns true if metadata
34879               value is same as "value".
34880
34881           starts_with
34882               Values are interpreted as strings, returns true if metadata
34883               value starts with the "value" option string.
34884
34885           less
34886               Values are interpreted as floats, returns true if metadata
34887               value is less than "value".
34888
34889           equal
34890               Values are interpreted as floats, returns true if "value" is
34891               equal with metadata value.
34892
34893           greater
34894               Values are interpreted as floats, returns true if metadata
34895               value is greater than "value".
34896
34897           expr
34898               Values are interpreted as floats, returns true if expression
34899               from option "expr" evaluates to true.
34900
34901           ends_with
34902               Values are interpreted as strings, returns true if metadata
34903               value ends with the "value" option string.
34904
34905       expr
34906           Set expression which is used when "function" is set to "expr".  The
34907           expression is evaluated through the eval API and can contain the
34908           following constants:
34909
34910           VALUE1, FRAMEVAL
34911               Float representation of "value" from metadata key.
34912
34913           VALUE2, USERVAL
34914               Float representation of "value" as supplied by user in "value"
34915               option.
34916
34917       file
34918           If specified in "print" mode, output is written to the named file.
34919           Instead of plain filename any writable url can be specified.
34920           Filename ``-'' is a shorthand for standard output. If "file" option
34921           is not set, output is written to the log with AV_LOG_INFO loglevel.
34922
34923       direct
34924           Reduces buffering in print mode when output is written to a URL set
34925           using file.
34926
34927       Examples
34928
34929       •   Print all metadata values for frames with key
34930           "lavfi.signalstats.YDIF" with values between 0 and 1.
34931
34932                   signalstats,metadata=print:key=lavfi.signalstats.YDIF:value=0:function=expr:expr='between(VALUE1,0,1)'
34933
34934       •   Print silencedetect output to file metadata.txt.
34935
34936                   silencedetect,ametadata=mode=print:file=metadata.txt
34937
34938       •   Direct all metadata to a pipe with file descriptor 4.
34939
34940                   metadata=mode=print:file='pipe\:4'
34941
34942   perms, aperms
34943       Set read/write permissions for the output frames.
34944
34945       These filters are mainly aimed at developers to test direct path in the
34946       following filter in the filtergraph.
34947
34948       The filters accept the following options:
34949
34950       mode
34951           Select the permissions mode.
34952
34953           It accepts the following values:
34954
34955           none
34956               Do nothing. This is the default.
34957
34958           ro  Set all the output frames read-only.
34959
34960           rw  Set all the output frames directly writable.
34961
34962           toggle
34963               Make the frame read-only if writable, and writable if read-
34964               only.
34965
34966           random
34967               Set each output frame read-only or writable randomly.
34968
34969       seed
34970           Set the seed for the random mode, must be an integer included
34971           between 0 and "UINT32_MAX". If not specified, or if explicitly set
34972           to -1, the filter will try to use a good random seed on a best
34973           effort basis.
34974
34975       Note: in case of auto-inserted filter between the permission filter and
34976       the following one, the permission might not be received as expected in
34977       that following filter. Inserting a format or aformat filter before the
34978       perms/aperms filter can avoid this problem.
34979
34980   realtime, arealtime
34981       Slow down filtering to match real time approximately.
34982
34983       These filters will pause the filtering for a variable amount of time to
34984       match the output rate with the input timestamps.  They are similar to
34985       the re option to "ffmpeg".
34986
34987       They accept the following options:
34988
34989       limit
34990           Time limit for the pauses. Any pause longer than that will be
34991           considered a timestamp discontinuity and reset the timer. Default
34992           is 2 seconds.
34993
34994       speed
34995           Speed factor for processing. The value must be a float larger than
34996           zero.  Values larger than 1.0 will result in faster than realtime
34997           processing, smaller will slow processing down. The limit is
34998           automatically adapted accordingly. Default is 1.0.
34999
35000           A processing speed faster than what is possible without these
35001           filters cannot be achieved.
35002
35003       Commands
35004
35005       Both filters supports the all above options as commands.
35006
35007   segment, asegment
35008       Split single input stream into multiple streams.
35009
35010       This filter does opposite of concat filters.
35011
35012       "segment" works on video frames, "asegment" on audio samples.
35013
35014       This filter accepts the following options:
35015
35016       timestamps
35017           Timestamps of output segments separated by '|'. The first segment
35018           will run from the beginning of the input stream. The last segment
35019           will run until the end of the input stream
35020
35021       frames, samples
35022           Exact frame/sample count to split the segments.
35023
35024       In all cases, prefixing an each segment with '+' will make it relative
35025       to the previous segment.
35026
35027       Examples
35028
35029       •   Split input audio stream into three output audio streams, starting
35030           at start of input audio stream and storing that in 1st output audio
35031           stream, then following at 60th second and storing than in 2nd
35032           output audio stream, and last after 150th second of input audio
35033           stream store in 3rd output audio stream:
35034
35035                   asegment=timestamps="60|150"
35036
35037   select, aselect
35038       Select frames to pass in output.
35039
35040       This filter accepts the following options:
35041
35042       expr, e
35043           Set expression, which is evaluated for each input frame.
35044
35045           If the expression is evaluated to zero, the frame is discarded.
35046
35047           If the evaluation result is negative or NaN, the frame is sent to
35048           the first output; otherwise it is sent to the output with index
35049           "ceil(val)-1", assuming that the input index starts from 0.
35050
35051           For example a value of 1.2 corresponds to the output with index
35052           "ceil(1.2)-1 = 2-1 = 1", that is the second output.
35053
35054       outputs, n
35055           Set the number of outputs. The output to which to send the selected
35056           frame is based on the result of the evaluation. Default value is 1.
35057
35058       The expression can contain the following constants:
35059
35060       n   The (sequential) number of the filtered frame, starting from 0.
35061
35062       selected_n
35063           The (sequential) number of the selected frame, starting from 0.
35064
35065       prev_selected_n
35066           The sequential number of the last selected frame. It's NAN if
35067           undefined.
35068
35069       TB  The timebase of the input timestamps.
35070
35071       pts The PTS (Presentation TimeStamp) of the filtered frame, expressed
35072           in TB units. It's NAN if undefined.
35073
35074       t   The PTS of the filtered frame, expressed in seconds. It's NAN if
35075           undefined.
35076
35077       prev_pts
35078           The PTS of the previously filtered frame. It's NAN if undefined.
35079
35080       prev_selected_pts
35081           The PTS of the last previously filtered frame. It's NAN if
35082           undefined.
35083
35084       prev_selected_t
35085           The PTS of the last previously selected frame, expressed in
35086           seconds. It's NAN if undefined.
35087
35088       start_pts
35089           The first PTS in the stream which is not NAN. It remains NAN if not
35090           found.
35091
35092       start_t
35093           The first PTS, in seconds, in the stream which is not NAN. It
35094           remains NAN if not found.
35095
35096       pict_type (video only)
35097           The type of the filtered frame. It can assume one of the following
35098           values:
35099
35100           I
35101           P
35102           B
35103           S
35104           SI
35105           SP
35106           BI
35107       interlace_type (video only)
35108           The frame interlace type. It can assume one of the following
35109           values:
35110
35111           PROGRESSIVE
35112               The frame is progressive (not interlaced).
35113
35114           TOPFIRST
35115               The frame is top-field-first.
35116
35117           BOTTOMFIRST
35118               The frame is bottom-field-first.
35119
35120       consumed_sample_n (audio only)
35121           the number of selected samples before the current frame
35122
35123       samples_n (audio only)
35124           the number of samples in the current frame
35125
35126       sample_rate (audio only)
35127           the input sample rate
35128
35129       key This is 1 if the filtered frame is a key-frame, 0 otherwise.
35130
35131       pos the position in the file of the filtered frame, -1 if the
35132           information is not available (e.g. for synthetic video)
35133
35134       scene (video only)
35135           value between 0 and 1 to indicate a new scene; a low value reflects
35136           a low probability for the current frame to introduce a new scene,
35137           while a higher value means the current frame is more likely to be
35138           one (see the example below)
35139
35140       concatdec_select
35141           The concat demuxer can select only part of a concat input file by
35142           setting an inpoint and an outpoint, but the output packets may not
35143           be entirely contained in the selected interval. By using this
35144           variable, it is possible to skip frames generated by the concat
35145           demuxer which are not exactly contained in the selected interval.
35146
35147           This works by comparing the frame pts against the
35148           lavf.concat.start_time and the lavf.concat.duration packet metadata
35149           values which are also present in the decoded frames.
35150
35151           The concatdec_select variable is -1 if the frame pts is at least
35152           start_time and either the duration metadata is missing or the frame
35153           pts is less than start_time + duration, 0 otherwise, and NaN if the
35154           start_time metadata is missing.
35155
35156           That basically means that an input frame is selected if its pts is
35157           within the interval set by the concat demuxer.
35158
35159       The default value of the select expression is "1".
35160
35161       Examples
35162
35163       •   Select all frames in input:
35164
35165                   select
35166
35167           The example above is the same as:
35168
35169                   select=1
35170
35171       •   Skip all frames:
35172
35173                   select=0
35174
35175       •   Select only I-frames:
35176
35177                   select='eq(pict_type\,I)'
35178
35179       •   Select one frame every 100:
35180
35181                   select='not(mod(n\,100))'
35182
35183       •   Select only frames contained in the 10-20 time interval:
35184
35185                   select=between(t\,10\,20)
35186
35187       •   Select only I-frames contained in the 10-20 time interval:
35188
35189                   select=between(t\,10\,20)*eq(pict_type\,I)
35190
35191       •   Select frames with a minimum distance of 10 seconds:
35192
35193                   select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
35194
35195       •   Use aselect to select only audio frames with samples number > 100:
35196
35197                   aselect='gt(samples_n\,100)'
35198
35199       •   Create a mosaic of the first scenes:
35200
35201                   ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
35202
35203           Comparing scene against a value between 0.3 and 0.5 is generally a
35204           sane choice.
35205
35206       •   Send even and odd frames to separate outputs, and compose them:
35207
35208                   select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
35209
35210       •   Select useful frames from an ffconcat file which is using inpoints
35211           and outpoints but where the source files are not intra frame only.
35212
35213                   ffmpeg -copyts -vsync 0 -segment_time_metadata 1 -i input.ffconcat -vf select=concatdec_select -af aselect=concatdec_select output.avi
35214
35215   sendcmd, asendcmd
35216       Send commands to filters in the filtergraph.
35217
35218       These filters read commands to be sent to other filters in the
35219       filtergraph.
35220
35221       "sendcmd" must be inserted between two video filters, "asendcmd" must
35222       be inserted between two audio filters, but apart from that they act the
35223       same way.
35224
35225       The specification of commands can be provided in the filter arguments
35226       with the commands option, or in a file specified by the filename
35227       option.
35228
35229       These filters accept the following options:
35230
35231       commands, c
35232           Set the commands to be read and sent to the other filters.
35233
35234       filename, f
35235           Set the filename of the commands to be read and sent to the other
35236           filters.
35237
35238       Commands syntax
35239
35240       A commands description consists of a sequence of interval
35241       specifications, comprising a list of commands to be executed when a
35242       particular event related to that interval occurs. The occurring event
35243       is typically the current frame time entering or leaving a given time
35244       interval.
35245
35246       An interval is specified by the following syntax:
35247
35248               <START>[-<END>] <COMMANDS>;
35249
35250       The time interval is specified by the START and END times.  END is
35251       optional and defaults to the maximum time.
35252
35253       The current frame time is considered within the specified interval if
35254       it is included in the interval [START, END), that is when the time is
35255       greater or equal to START and is lesser than END.
35256
35257       COMMANDS consists of a sequence of one or more command specifications,
35258       separated by ",", relating to that interval.  The syntax of a command
35259       specification is given by:
35260
35261               [<FLAGS>] <TARGET> <COMMAND> <ARG>
35262
35263       FLAGS is optional and specifies the type of events relating to the time
35264       interval which enable sending the specified command, and must be a non-
35265       null sequence of identifier flags separated by "+" or "|" and enclosed
35266       between "[" and "]".
35267
35268       The following flags are recognized:
35269
35270       enter
35271           The command is sent when the current frame timestamp enters the
35272           specified interval. In other words, the command is sent when the
35273           previous frame timestamp was not in the given interval, and the
35274           current is.
35275
35276       leave
35277           The command is sent when the current frame timestamp leaves the
35278           specified interval. In other words, the command is sent when the
35279           previous frame timestamp was in the given interval, and the current
35280           is not.
35281
35282       expr
35283           The command ARG is interpreted as expression and result of
35284           expression is passed as ARG.
35285
35286           The expression is evaluated through the eval API and can contain
35287           the following constants:
35288
35289           POS Original position in the file of the frame, or undefined if
35290               undefined for the current frame.
35291
35292           PTS The presentation timestamp in input.
35293
35294           N   The count of the input frame for video or audio, starting from
35295               0.
35296
35297           T   The time in seconds of the current frame.
35298
35299           TS  The start time in seconds of the current command interval.
35300
35301           TE  The end time in seconds of the current command interval.
35302
35303           TI  The interpolated time of the current command interval, TI = (T
35304               - TS) / (TE - TS).
35305
35306           W   The video frame width.
35307
35308           H   The video frame height.
35309
35310       If FLAGS is not specified, a default value of "[enter]" is assumed.
35311
35312       TARGET specifies the target of the command, usually the name of the
35313       filter class or a specific filter instance name.
35314
35315       COMMAND specifies the name of the command for the target filter.
35316
35317       ARG is optional and specifies the optional list of argument for the
35318       given COMMAND.
35319
35320       Between one interval specification and another, whitespaces, or
35321       sequences of characters starting with "#" until the end of line, are
35322       ignored and can be used to annotate comments.
35323
35324       A simplified BNF description of the commands specification syntax
35325       follows:
35326
35327               <COMMAND_FLAG>  ::= "enter" | "leave"
35328               <COMMAND_FLAGS> ::= <COMMAND_FLAG> [(+|"|")<COMMAND_FLAG>]
35329               <COMMAND>       ::= ["[" <COMMAND_FLAGS> "]"] <TARGET> <COMMAND> [<ARG>]
35330               <COMMANDS>      ::= <COMMAND> [,<COMMANDS>]
35331               <INTERVAL>      ::= <START>[-<END>] <COMMANDS>
35332               <INTERVALS>     ::= <INTERVAL>[;<INTERVALS>]
35333
35334       Examples
35335
35336       •   Specify audio tempo change at second 4:
35337
35338                   asendcmd=c='4.0 atempo tempo 1.5',atempo
35339
35340       •   Target a specific filter instance:
35341
35342                   asendcmd=c='4.0 atempo@my tempo 1.5',atempo@my
35343
35344       •   Specify a list of drawtext and hue commands in a file.
35345
35346                   # show text in the interval 5-10
35347                   5.0-10.0 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=hello world',
35348                            [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=';
35349
35350                   # desaturate the image in the interval 15-20
35351                   15.0-20.0 [enter] hue s 0,
35352                             [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor',
35353                             [leave] hue s 1,
35354                             [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color';
35355
35356                   # apply an exponential saturation fade-out effect, starting from time 25
35357                   25 [enter] hue s exp(25-t)
35358
35359           A filtergraph allowing to read and process the above command list
35360           stored in a file test.cmd, can be specified with:
35361
35362                   sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
35363
35364   setpts, asetpts
35365       Change the PTS (presentation timestamp) of the input frames.
35366
35367       "setpts" works on video frames, "asetpts" on audio frames.
35368
35369       This filter accepts the following options:
35370
35371       expr
35372           The expression which is evaluated for each frame to construct its
35373           timestamp.
35374
35375       The expression is evaluated through the eval API and can contain the
35376       following constants:
35377
35378       FRAME_RATE, FR
35379           frame rate, only defined for constant frame-rate video
35380
35381       PTS The presentation timestamp in input
35382
35383       N   The count of the input frame for video or the number of consumed
35384           samples, not including the current frame for audio, starting from
35385           0.
35386
35387       NB_CONSUMED_SAMPLES
35388           The number of consumed samples, not including the current frame
35389           (only audio)
35390
35391       NB_SAMPLES, S
35392           The number of samples in the current frame (only audio)
35393
35394       SAMPLE_RATE, SR
35395           The audio sample rate.
35396
35397       STARTPTS
35398           The PTS of the first frame.
35399
35400       STARTT
35401           the time in seconds of the first frame
35402
35403       INTERLACED
35404           State whether the current frame is interlaced.
35405
35406       T   the time in seconds of the current frame
35407
35408       POS original position in the file of the frame, or undefined if
35409           undefined for the current frame
35410
35411       PREV_INPTS
35412           The previous input PTS.
35413
35414       PREV_INT
35415           previous input time in seconds
35416
35417       PREV_OUTPTS
35418           The previous output PTS.
35419
35420       PREV_OUTT
35421           previous output time in seconds
35422
35423       RTCTIME
35424           The wallclock (RTC) time in microseconds. This is deprecated, use
35425           time(0) instead.
35426
35427       RTCSTART
35428           The wallclock (RTC) time at the start of the movie in microseconds.
35429
35430       TB  The timebase of the input timestamps.
35431
35432       Examples
35433
35434       •   Start counting PTS from zero
35435
35436                   setpts=PTS-STARTPTS
35437
35438       •   Apply fast motion effect:
35439
35440                   setpts=0.5*PTS
35441
35442       •   Apply slow motion effect:
35443
35444                   setpts=2.0*PTS
35445
35446       •   Set fixed rate of 25 frames per second:
35447
35448                   setpts=N/(25*TB)
35449
35450       •   Set fixed rate 25 fps with some jitter:
35451
35452                   setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
35453
35454       •   Apply an offset of 10 seconds to the input PTS:
35455
35456                   setpts=PTS+10/TB
35457
35458       •   Generate timestamps from a "live source" and rebase onto the
35459           current timebase:
35460
35461                   setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
35462
35463       •   Generate timestamps by counting samples:
35464
35465                   asetpts=N/SR/TB
35466
35467   setrange
35468       Force color range for the output video frame.
35469
35470       The "setrange" filter marks the color range property for the output
35471       frames. It does not change the input frame, but only sets the
35472       corresponding property, which affects how the frame is treated by
35473       following filters.
35474
35475       The filter accepts the following options:
35476
35477       range
35478           Available values are:
35479
35480           auto
35481               Keep the same color range property.
35482
35483           unspecified, unknown
35484               Set the color range as unspecified.
35485
35486           limited, tv, mpeg
35487               Set the color range as limited.
35488
35489           full, pc, jpeg
35490               Set the color range as full.
35491
35492   settb, asettb
35493       Set the timebase to use for the output frames timestamps.  It is mainly
35494       useful for testing timebase configuration.
35495
35496       It accepts the following parameters:
35497
35498       expr, tb
35499           The expression which is evaluated into the output timebase.
35500
35501       The value for tb is an arithmetic expression representing a rational.
35502       The expression can contain the constants "AVTB" (the default timebase),
35503       "intb" (the input timebase) and "sr" (the sample rate, audio only).
35504       Default value is "intb".
35505
35506       Examples
35507
35508       •   Set the timebase to 1/25:
35509
35510                   settb=expr=1/25
35511
35512       •   Set the timebase to 1/10:
35513
35514                   settb=expr=0.1
35515
35516       •   Set the timebase to 1001/1000:
35517
35518                   settb=1+0.001
35519
35520       •   Set the timebase to 2*intb:
35521
35522                   settb=2*intb
35523
35524       •   Set the default timebase value:
35525
35526                   settb=AVTB
35527
35528   showcqt
35529       Convert input audio to a video output representing frequency spectrum
35530       logarithmically using Brown-Puckette constant Q transform algorithm
35531       with direct frequency domain coefficient calculation (but the transform
35532       itself is not really constant Q, instead the Q factor is actually
35533       variable/clamped), with musical tone scale, from E0 to D#10.
35534
35535       The filter accepts the following options:
35536
35537       size, s
35538           Specify the video size for the output. It must be even. For the
35539           syntax of this option, check the "Video size" section in the
35540           ffmpeg-utils manual.  Default value is "1920x1080".
35541
35542       fps, rate, r
35543           Set the output frame rate. Default value is 25.
35544
35545       bar_h
35546           Set the bargraph height. It must be even. Default value is -1 which
35547           computes the bargraph height automatically.
35548
35549       axis_h
35550           Set the axis height. It must be even. Default value is -1 which
35551           computes the axis height automatically.
35552
35553       sono_h
35554           Set the sonogram height. It must be even. Default value is -1 which
35555           computes the sonogram height automatically.
35556
35557       fullhd
35558           Set the fullhd resolution. This option is deprecated, use size, s
35559           instead. Default value is 1.
35560
35561       sono_v, volume
35562           Specify the sonogram volume expression. It can contain variables:
35563
35564           bar_v
35565               the bar_v evaluated expression
35566
35567           frequency, freq, f
35568               the frequency where it is evaluated
35569
35570           timeclamp, tc
35571               the value of timeclamp option
35572
35573           and functions:
35574
35575           a_weighting(f)
35576               A-weighting of equal loudness
35577
35578           b_weighting(f)
35579               B-weighting of equal loudness
35580
35581           c_weighting(f)
35582               C-weighting of equal loudness.
35583
35584           Default value is 16.
35585
35586       bar_v, volume2
35587           Specify the bargraph volume expression. It can contain variables:
35588
35589           sono_v
35590               the sono_v evaluated expression
35591
35592           frequency, freq, f
35593               the frequency where it is evaluated
35594
35595           timeclamp, tc
35596               the value of timeclamp option
35597
35598           and functions:
35599
35600           a_weighting(f)
35601               A-weighting of equal loudness
35602
35603           b_weighting(f)
35604               B-weighting of equal loudness
35605
35606           c_weighting(f)
35607               C-weighting of equal loudness.
35608
35609           Default value is "sono_v".
35610
35611       sono_g, gamma
35612           Specify the sonogram gamma. Lower gamma makes the spectrum more
35613           contrast, higher gamma makes the spectrum having more range.
35614           Default value is 3.  Acceptable range is "[1, 7]".
35615
35616       bar_g, gamma2
35617           Specify the bargraph gamma. Default value is 1. Acceptable range is
35618           "[1, 7]".
35619
35620       bar_t
35621           Specify the bargraph transparency level. Lower value makes the
35622           bargraph sharper.  Default value is 1. Acceptable range is "[0,
35623           1]".
35624
35625       timeclamp, tc
35626           Specify the transform timeclamp. At low frequency, there is trade-
35627           off between accuracy in time domain and frequency domain. If
35628           timeclamp is lower, event in time domain is represented more
35629           accurately (such as fast bass drum), otherwise event in frequency
35630           domain is represented more accurately (such as bass guitar).
35631           Acceptable range is "[0.002, 1]". Default value is 0.17.
35632
35633       attack
35634           Set attack time in seconds. The default is 0 (disabled). Otherwise,
35635           it limits future samples by applying asymmetric windowing in time
35636           domain, useful when low latency is required. Accepted range is "[0,
35637           1]".
35638
35639       basefreq
35640           Specify the transform base frequency. Default value is
35641           20.01523126408007475, which is frequency 50 cents below E0.
35642           Acceptable range is "[10, 100000]".
35643
35644       endfreq
35645           Specify the transform end frequency. Default value is
35646           20495.59681441799654, which is frequency 50 cents above D#10.
35647           Acceptable range is "[10, 100000]".
35648
35649       coeffclamp
35650           This option is deprecated and ignored.
35651
35652       tlength
35653           Specify the transform length in time domain. Use this option to
35654           control accuracy trade-off between time domain and frequency domain
35655           at every frequency sample.  It can contain variables:
35656
35657           frequency, freq, f
35658               the frequency where it is evaluated
35659
35660           timeclamp, tc
35661               the value of timeclamp option.
35662
35663           Default value is "384*tc/(384+tc*f)".
35664
35665       count
35666           Specify the transform count for every video frame. Default value is
35667           6.  Acceptable range is "[1, 30]".
35668
35669       fcount
35670           Specify the transform count for every single pixel. Default value
35671           is 0, which makes it computed automatically. Acceptable range is
35672           "[0, 10]".
35673
35674       fontfile
35675           Specify font file for use with freetype to draw the axis. If not
35676           specified, use embedded font. Note that drawing with font file or
35677           embedded font is not implemented with custom basefreq and endfreq,
35678           use axisfile option instead.
35679
35680       font
35681           Specify fontconfig pattern. This has lower priority than fontfile.
35682           The ":" in the pattern may be replaced by "|" to avoid unnecessary
35683           escaping.
35684
35685       fontcolor
35686           Specify font color expression. This is arithmetic expression that
35687           should return integer value 0xRRGGBB. It can contain variables:
35688
35689           frequency, freq, f
35690               the frequency where it is evaluated
35691
35692           timeclamp, tc
35693               the value of timeclamp option
35694
35695           and functions:
35696
35697           midi(f)
35698               midi number of frequency f, some midi numbers: E0(16), C1(24),
35699               C2(36), A4(69)
35700
35701           r(x), g(x), b(x)
35702               red, green, and blue value of intensity x.
35703
35704           Default value is "st(0, (midi(f)-59.5)/12); st(1,
35705           if(between(ld(0),0,1), 0.5-0.5*cos(2*PI*ld(0)), 0)); r(1-ld(1)) +
35706           b(ld(1))".
35707
35708       axisfile
35709           Specify image file to draw the axis. This option override fontfile
35710           and fontcolor option.
35711
35712       axis, text
35713           Enable/disable drawing text to the axis. If it is set to 0, drawing
35714           to the axis is disabled, ignoring fontfile and axisfile option.
35715           Default value is 1.
35716
35717       csp Set colorspace. The accepted values are:
35718
35719           unspecified
35720               Unspecified (default)
35721
35722           bt709
35723               BT.709
35724
35725           fcc FCC
35726
35727           bt470bg
35728               BT.470BG or BT.601-6 625
35729
35730           smpte170m
35731               SMPTE-170M or BT.601-6 525
35732
35733           smpte240m
35734               SMPTE-240M
35735
35736           bt2020ncl
35737               BT.2020 with non-constant luminance
35738
35739       cscheme
35740           Set spectrogram color scheme. This is list of floating point values
35741           with format "left_r|left_g|left_b|right_r|right_g|right_b".  The
35742           default is "1|0.5|0|0|0.5|1".
35743
35744       Examples
35745
35746       •   Playing audio while showing the spectrum:
35747
35748                   ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt [out0]'
35749
35750       •   Same as above, but with frame rate 30 fps:
35751
35752                   ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=fps=30:count=5 [out0]'
35753
35754       •   Playing at 1280x720:
35755
35756                   ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=s=1280x720:count=4 [out0]'
35757
35758       •   Disable sonogram display:
35759
35760                   sono_h=0
35761
35762       •   A1 and its harmonics: A1, A2, (near)E3, A3:
35763
35764                   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),
35765                                    asplit[a][out1]; [a] showcqt [out0]'
35766
35767       •   Same as above, but with more accuracy in frequency domain:
35768
35769                   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),
35770                                    asplit[a][out1]; [a] showcqt=timeclamp=0.5 [out0]'
35771
35772       •   Custom volume:
35773
35774                   bar_v=10:sono_v=bar_v*a_weighting(f)
35775
35776       •   Custom gamma, now spectrum is linear to the amplitude.
35777
35778                   bar_g=2:sono_g=2
35779
35780       •   Custom tlength equation:
35781
35782                   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)))'
35783
35784       •   Custom fontcolor and fontfile, C-note is colored green, others are
35785           colored blue:
35786
35787                   fontcolor='if(mod(floor(midi(f)+0.5),12), 0x0000FF, g(1))':fontfile=myfont.ttf
35788
35789       •   Custom font using fontconfig:
35790
35791                   font='Courier New,Monospace,mono|bold'
35792
35793       •   Custom frequency range with custom axis using image file:
35794
35795                   axisfile=myaxis.png:basefreq=40:endfreq=10000
35796
35797   showcwt
35798       Convert input audio to video output representing frequency spectrum
35799       using Continuous Wavelet Transform and Morlet wavelet.
35800
35801       The filter accepts the following options:
35802
35803       size, s
35804           Specify the video size for the output. For the syntax of this
35805           option, check the "Video size" section in the ffmpeg-utils manual.
35806           Default value is "640x512".
35807
35808       rate, r
35809           Set the output frame rate. Default value is 25.
35810
35811       scale
35812           Set the frequency scale used. Allowed values are:
35813
35814           linear
35815           log2
35816           bark
35817           mel
35818           erbs
35819
35820           Default value is "linear".
35821
35822       min Set the minimum frequency that will be used in output.  Default is
35823           20 Hz.
35824
35825       max Set the maximum frequency that will be used in output.  Default is
35826           20000 Hz. The real frequency upper limit depends on input audio's
35827           sample rate and such will be enforced on this value when it is set
35828           to value greater than Nyquist frequency.
35829
35830       logb
35831           Set the logarithmic basis for brightness strength when mapping
35832           calculated magnitude values to pixel values.  Allowed range is from
35833           0 to 1.  Default value is 0.0001.
35834
35835       deviation
35836           Set the frequency deviation.  Lower values than 1 are more
35837           frequency oriented, while higher values than 1 are more time
35838           oriented.  Allowed range is from 0 to 10.  Default value is 1.
35839
35840       pps Set the number of pixel output per each second in one row.  Allowed
35841           range is from 1 to 1024.  Default value is 64.
35842
35843       mode
35844           Set the output visual mode. Allowed values are:
35845
35846           magnitude
35847               Show magnitude.
35848
35849           phase
35850               Show only phase.
35851
35852           magphase
35853               Show combination of magnitude and phase.  Magnitude is mapped
35854               to brightness and phase to color.
35855
35856           channel
35857               Show unique color per channel magnitude.
35858
35859           stereo
35860               Show unique color per stereo difference.
35861
35862           Default value is "magnitude".
35863
35864       slide
35865           Set the output slide method. Allowed values are:
35866
35867           replace
35868           scroll
35869           frame
35870       direction
35871           Set the direction method for output slide method. Allowed values
35872           are:
35873
35874           lr  Direction from left to right.
35875
35876           rl  Direction from right to left.
35877
35878           ud  Direction from up to down.
35879
35880           du  Direction from down to up.
35881
35882   showfreqs
35883       Convert input audio to video output representing the audio power
35884       spectrum.  Audio amplitude is on Y-axis while frequency is on X-axis.
35885
35886       The filter accepts the following options:
35887
35888       size, s
35889           Specify size of video. For the syntax of this option, check the
35890           "Video size" section in the ffmpeg-utils manual.  Default is
35891           "1024x512".
35892
35893       rate, r
35894           Set video rate. Default is 25.
35895
35896       mode
35897           Set display mode.  This set how each frequency bin will be
35898           represented.
35899
35900           It accepts the following values:
35901
35902           line
35903           bar
35904           dot
35905
35906           Default is "bar".
35907
35908       ascale
35909           Set amplitude scale.
35910
35911           It accepts the following values:
35912
35913           lin Linear scale.
35914
35915           sqrt
35916               Square root scale.
35917
35918           cbrt
35919               Cubic root scale.
35920
35921           log Logarithmic scale.
35922
35923           Default is "log".
35924
35925       fscale
35926           Set frequency scale.
35927
35928           It accepts the following values:
35929
35930           lin Linear scale.
35931
35932           log Logarithmic scale.
35933
35934           rlog
35935               Reverse logarithmic scale.
35936
35937           Default is "lin".
35938
35939       win_size
35940           Set window size. Allowed range is from 16 to 65536.
35941
35942           Default is 2048
35943
35944       win_func
35945           Set windowing function.
35946
35947           It accepts the following values:
35948
35949           rect
35950           bartlett
35951           hanning
35952           hamming
35953           blackman
35954           welch
35955           flattop
35956           bharris
35957           bnuttall
35958           bhann
35959           sine
35960           nuttall
35961           lanczos
35962           gauss
35963           tukey
35964           dolph
35965           cauchy
35966           parzen
35967           poisson
35968           bohman
35969           kaiser
35970
35971           Default is "hanning".
35972
35973       overlap
35974           Set window overlap. In range "[0, 1]". Default is 1, which means
35975           optimal overlap for selected window function will be picked.
35976
35977       averaging
35978           Set time averaging. Setting this to 0 will display current maximal
35979           peaks.  Default is 1, which means time averaging is disabled.
35980
35981       colors
35982           Specify list of colors separated by space or by '|' which will be
35983           used to draw channel frequencies. Unrecognized or missing colors
35984           will be replaced by white color.
35985
35986       cmode
35987           Set channel display mode.
35988
35989           It accepts the following values:
35990
35991           combined
35992           separate
35993
35994           Default is "combined".
35995
35996       minamp
35997           Set minimum amplitude used in "log" amplitude scaler.
35998
35999       data
36000           Set data display mode.
36001
36002           It accepts the following values:
36003
36004           magnitude
36005           phase
36006           delay
36007
36008           Default is "magnitude".
36009
36010       channels
36011           Set channels to use when processing audio. By default all are
36012           processed.
36013
36014   showspatial
36015       Convert stereo input audio to a video output, representing the spatial
36016       relationship between two channels.
36017
36018       The filter accepts the following options:
36019
36020       size, s
36021           Specify the video size for the output. For the syntax of this
36022           option, check the "Video size" section in the ffmpeg-utils manual.
36023           Default value is "512x512".
36024
36025       win_size
36026           Set window size. Allowed range is from 1024 to 65536. Default size
36027           is 4096.
36028
36029       win_func
36030           Set window function.
36031
36032           It accepts the following values:
36033
36034           rect
36035           bartlett
36036           hann
36037           hanning
36038           hamming
36039           blackman
36040           welch
36041           flattop
36042           bharris
36043           bnuttall
36044           bhann
36045           sine
36046           nuttall
36047           lanczos
36048           gauss
36049           tukey
36050           dolph
36051           cauchy
36052           parzen
36053           poisson
36054           bohman
36055           kaiser
36056
36057           Default value is "hann".
36058
36059       rate, r
36060           Set output framerate.
36061
36062   showspectrum
36063       Convert input audio to a video output, representing the audio frequency
36064       spectrum.
36065
36066       The filter accepts the following options:
36067
36068       size, s
36069           Specify the video size for the output. For the syntax of this
36070           option, check the "Video size" section in the ffmpeg-utils manual.
36071           Default value is "640x512".
36072
36073       slide
36074           Specify how the spectrum should slide along the window.
36075
36076           It accepts the following values:
36077
36078           replace
36079               the samples start again on the left when they reach the right
36080
36081           scroll
36082               the samples scroll from right to left
36083
36084           fullframe
36085               frames are only produced when the samples reach the right
36086
36087           rscroll
36088               the samples scroll from left to right
36089
36090           lreplace
36091               the samples start again on the right when they reach the left
36092
36093           Default value is "replace".
36094
36095       mode
36096           Specify display mode.
36097
36098           It accepts the following values:
36099
36100           combined
36101               all channels are displayed in the same row
36102
36103           separate
36104               all channels are displayed in separate rows
36105
36106           Default value is combined.
36107
36108       color
36109           Specify display color mode.
36110
36111           It accepts the following values:
36112
36113           channel
36114               each channel is displayed in a separate color
36115
36116           intensity
36117               each channel is displayed using the same color scheme
36118
36119           rainbow
36120               each channel is displayed using the rainbow color scheme
36121
36122           moreland
36123               each channel is displayed using the moreland color scheme
36124
36125           nebulae
36126               each channel is displayed using the nebulae color scheme
36127
36128           fire
36129               each channel is displayed using the fire color scheme
36130
36131           fiery
36132               each channel is displayed using the fiery color scheme
36133
36134           fruit
36135               each channel is displayed using the fruit color scheme
36136
36137           cool
36138               each channel is displayed using the cool color scheme
36139
36140           magma
36141               each channel is displayed using the magma color scheme
36142
36143           green
36144               each channel is displayed using the green color scheme
36145
36146           viridis
36147               each channel is displayed using the viridis color scheme
36148
36149           plasma
36150               each channel is displayed using the plasma color scheme
36151
36152           cividis
36153               each channel is displayed using the cividis color scheme
36154
36155           terrain
36156               each channel is displayed using the terrain color scheme
36157
36158           Default value is channel.
36159
36160       scale
36161           Specify scale used for calculating intensity color values.
36162
36163           It accepts the following values:
36164
36165           lin linear
36166
36167           sqrt
36168               square root, default
36169
36170           cbrt
36171               cubic root
36172
36173           log logarithmic
36174
36175           4thrt
36176               4th root
36177
36178           5thrt
36179               5th root
36180
36181           Default value is sqrt.
36182
36183       fscale
36184           Specify frequency scale.
36185
36186           It accepts the following values:
36187
36188           lin linear
36189
36190           log logarithmic
36191
36192           Default value is lin.
36193
36194       saturation
36195           Set saturation modifier for displayed colors. Negative values
36196           provide alternative color scheme. 0 is no saturation at all.
36197           Saturation must be in [-10.0, 10.0] range.  Default value is 1.
36198
36199       win_func
36200           Set window function.
36201
36202           It accepts the following values:
36203
36204           rect
36205           bartlett
36206           hann
36207           hanning
36208           hamming
36209           blackman
36210           welch
36211           flattop
36212           bharris
36213           bnuttall
36214           bhann
36215           sine
36216           nuttall
36217           lanczos
36218           gauss
36219           tukey
36220           dolph
36221           cauchy
36222           parzen
36223           poisson
36224           bohman
36225           kaiser
36226
36227           Default value is "hann".
36228
36229       orientation
36230           Set orientation of time vs frequency axis. Can be "vertical" or
36231           "horizontal". Default is "vertical".
36232
36233       overlap
36234           Set ratio of overlap window. Default value is 0.  When value is 1
36235           overlap is set to recommended size for specific window function
36236           currently used.
36237
36238       gain
36239           Set scale gain for calculating intensity color values.  Default
36240           value is 1.
36241
36242       data
36243           Set which data to display. Can be "magnitude", default or "phase",
36244           or unwrapped phase: "uphase".
36245
36246       rotation
36247           Set color rotation, must be in [-1.0, 1.0] range.  Default value is
36248           0.
36249
36250       start
36251           Set start frequency from which to display spectrogram. Default is
36252           0.
36253
36254       stop
36255           Set stop frequency to which to display spectrogram. Default is 0.
36256
36257       fps Set upper frame rate limit. Default is "auto", unlimited.
36258
36259       legend
36260           Draw time and frequency axes and legends. Default is disabled.
36261
36262       drange
36263           Set dynamic range used to calculate intensity color values. Default
36264           is 120 dBFS.  Allowed range is from 10 to 200.
36265
36266       limit
36267           Set upper limit of input audio samples volume in dBFS. Default is 0
36268           dBFS.  Allowed range is from -100 to 100.
36269
36270       opacity
36271           Set opacity strength when using pixel format output with alpha
36272           component.
36273
36274       The usage is very similar to the showwaves filter; see the examples in
36275       that section.
36276
36277       Examples
36278
36279       •   Large window with logarithmic color scaling:
36280
36281                   showspectrum=s=1280x480:scale=log
36282
36283       •   Complete example for a colored and sliding spectrum per channel
36284           using ffplay:
36285
36286                   ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
36287                                [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
36288
36289   showspectrumpic
36290       Convert input audio to a single video frame, representing the audio
36291       frequency spectrum.
36292
36293       The filter accepts the following options:
36294
36295       size, s
36296           Specify the video size for the output. For the syntax of this
36297           option, check the "Video size" section in the ffmpeg-utils manual.
36298           Default value is "4096x2048".
36299
36300       mode
36301           Specify display mode.
36302
36303           It accepts the following values:
36304
36305           combined
36306               all channels are displayed in the same row
36307
36308           separate
36309               all channels are displayed in separate rows
36310
36311           Default value is combined.
36312
36313       color
36314           Specify display color mode.
36315
36316           It accepts the following values:
36317
36318           channel
36319               each channel is displayed in a separate color
36320
36321           intensity
36322               each channel is displayed using the same color scheme
36323
36324           rainbow
36325               each channel is displayed using the rainbow color scheme
36326
36327           moreland
36328               each channel is displayed using the moreland color scheme
36329
36330           nebulae
36331               each channel is displayed using the nebulae color scheme
36332
36333           fire
36334               each channel is displayed using the fire color scheme
36335
36336           fiery
36337               each channel is displayed using the fiery color scheme
36338
36339           fruit
36340               each channel is displayed using the fruit color scheme
36341
36342           cool
36343               each channel is displayed using the cool color scheme
36344
36345           magma
36346               each channel is displayed using the magma color scheme
36347
36348           green
36349               each channel is displayed using the green color scheme
36350
36351           viridis
36352               each channel is displayed using the viridis color scheme
36353
36354           plasma
36355               each channel is displayed using the plasma color scheme
36356
36357           cividis
36358               each channel is displayed using the cividis color scheme
36359
36360           terrain
36361               each channel is displayed using the terrain color scheme
36362
36363           Default value is intensity.
36364
36365       scale
36366           Specify scale used for calculating intensity color values.
36367
36368           It accepts the following values:
36369
36370           lin linear
36371
36372           sqrt
36373               square root, default
36374
36375           cbrt
36376               cubic root
36377
36378           log logarithmic
36379
36380           4thrt
36381               4th root
36382
36383           5thrt
36384               5th root
36385
36386           Default value is log.
36387
36388       fscale
36389           Specify frequency scale.
36390
36391           It accepts the following values:
36392
36393           lin linear
36394
36395           log logarithmic
36396
36397           Default value is lin.
36398
36399       saturation
36400           Set saturation modifier for displayed colors. Negative values
36401           provide alternative color scheme. 0 is no saturation at all.
36402           Saturation must be in [-10.0, 10.0] range.  Default value is 1.
36403
36404       win_func
36405           Set window function.
36406
36407           It accepts the following values:
36408
36409           rect
36410           bartlett
36411           hann
36412           hanning
36413           hamming
36414           blackman
36415           welch
36416           flattop
36417           bharris
36418           bnuttall
36419           bhann
36420           sine
36421           nuttall
36422           lanczos
36423           gauss
36424           tukey
36425           dolph
36426           cauchy
36427           parzen
36428           poisson
36429           bohman
36430           kaiser
36431
36432           Default value is "hann".
36433
36434       orientation
36435           Set orientation of time vs frequency axis. Can be "vertical" or
36436           "horizontal". Default is "vertical".
36437
36438       gain
36439           Set scale gain for calculating intensity color values.  Default
36440           value is 1.
36441
36442       legend
36443           Draw time and frequency axes and legends. Default is enabled.
36444
36445       rotation
36446           Set color rotation, must be in [-1.0, 1.0] range.  Default value is
36447           0.
36448
36449       start
36450           Set start frequency from which to display spectrogram. Default is
36451           0.
36452
36453       stop
36454           Set stop frequency to which to display spectrogram. Default is 0.
36455
36456       drange
36457           Set dynamic range used to calculate intensity color values. Default
36458           is 120 dBFS.  Allowed range is from 10 to 200.
36459
36460       limit
36461           Set upper limit of input audio samples volume in dBFS. Default is 0
36462           dBFS.  Allowed range is from -100 to 100.
36463
36464       opacity
36465           Set opacity strength when using pixel format output with alpha
36466           component.
36467
36468       Examples
36469
36470       •   Extract an audio spectrogram of a whole audio track in a 1024x1024
36471           picture using ffmpeg:
36472
36473                   ffmpeg -i audio.flac -lavfi showspectrumpic=s=1024x1024 spectrogram.png
36474
36475   showvolume
36476       Convert input audio volume to a video output.
36477
36478       The filter accepts the following options:
36479
36480       rate, r
36481           Set video rate.
36482
36483       b   Set border width, allowed range is [0, 5]. Default is 1.
36484
36485       w   Set channel width, allowed range is [80, 8192]. Default is 400.
36486
36487       h   Set channel height, allowed range is [1, 900]. Default is 20.
36488
36489       f   Set fade, allowed range is [0, 1]. Default is 0.95.
36490
36491       c   Set volume color expression.
36492
36493           The expression can use the following variables:
36494
36495           VOLUME
36496               Current max volume of channel in dB.
36497
36498           PEAK
36499               Current peak.
36500
36501           CHANNEL
36502               Current channel number, starting from 0.
36503
36504       t   If set, displays channel names. Default is enabled.
36505
36506       v   If set, displays volume values. Default is enabled.
36507
36508       o   Set orientation, can be horizontal: "h" or vertical: "v", default
36509           is "h".
36510
36511       s   Set step size, allowed range is [0, 5]. Default is 0, which means
36512           step is disabled.
36513
36514       p   Set background opacity, allowed range is [0, 1]. Default is 0.
36515
36516       m   Set metering mode, can be peak: "p" or rms: "r", default is "p".
36517
36518       ds  Set display scale, can be linear: "lin" or log: "log", default is
36519           "lin".
36520
36521       dm  In second.  If set to > 0., display a line for the max level in the
36522           previous seconds.  default is disabled: 0.
36523
36524       dmc The color of the max line. Use when "dm" option is set to > 0.
36525           default is: "orange"
36526
36527   showwaves
36528       Convert input audio to a video output, representing the samples waves.
36529
36530       The filter accepts the following options:
36531
36532       size, s
36533           Specify the video size for the output. For the syntax of this
36534           option, check the "Video size" section in the ffmpeg-utils manual.
36535           Default value is "600x240".
36536
36537       mode
36538           Set display mode.
36539
36540           Available values are:
36541
36542           point
36543               Draw a point for each sample.
36544
36545           line
36546               Draw a vertical line for each sample.
36547
36548           p2p Draw a point for each sample and a line between them.
36549
36550           cline
36551               Draw a centered vertical line for each sample.
36552
36553           Default value is "point".
36554
36555       n   Set the number of samples which are printed on the same column. A
36556           larger value will decrease the frame rate. Must be a positive
36557           integer. This option can be set only if the value for rate is not
36558           explicitly specified.
36559
36560       rate, r
36561           Set the (approximate) output frame rate. This is done by setting
36562           the option n. Default value is "25".
36563
36564       split_channels
36565           Set if channels should be drawn separately or overlap. Default
36566           value is 0.
36567
36568       colors
36569           Set colors separated by '|' which are going to be used for drawing
36570           of each channel.
36571
36572       scale
36573           Set amplitude scale.
36574
36575           Available values are:
36576
36577           lin Linear.
36578
36579           log Logarithmic.
36580
36581           sqrt
36582               Square root.
36583
36584           cbrt
36585               Cubic root.
36586
36587           Default is linear.
36588
36589       draw
36590           Set the draw mode. This is mostly useful to set for high n.
36591
36592           Available values are:
36593
36594           scale
36595               Scale pixel values for each drawn sample.
36596
36597           full
36598               Draw every sample directly.
36599
36600           Default value is "scale".
36601
36602       Examples
36603
36604       •   Output the input file audio and the corresponding video
36605           representation at the same time:
36606
36607                   amovie=a.mp3,asplit[out0],showwaves[out1]
36608
36609       •   Create a synthetic signal and show it with showwaves, forcing a
36610           frame rate of 30 frames per second:
36611
36612                   aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
36613
36614   showwavespic
36615       Convert input audio to a single video frame, representing the samples
36616       waves.
36617
36618       The filter accepts the following options:
36619
36620       size, s
36621           Specify the video size for the output. For the syntax of this
36622           option, check the "Video size" section in the ffmpeg-utils manual.
36623           Default value is "600x240".
36624
36625       split_channels
36626           Set if channels should be drawn separately or overlap. Default
36627           value is 0.
36628
36629       colors
36630           Set colors separated by '|' which are going to be used for drawing
36631           of each channel.
36632
36633       scale
36634           Set amplitude scale.
36635
36636           Available values are:
36637
36638           lin Linear.
36639
36640           log Logarithmic.
36641
36642           sqrt
36643               Square root.
36644
36645           cbrt
36646               Cubic root.
36647
36648           Default is linear.
36649
36650       draw
36651           Set the draw mode.
36652
36653           Available values are:
36654
36655           scale
36656               Scale pixel values for each drawn sample.
36657
36658           full
36659               Draw every sample directly.
36660
36661           Default value is "scale".
36662
36663       filter
36664           Set the filter mode.
36665
36666           Available values are:
36667
36668           average
36669               Use average samples values for each drawn sample.
36670
36671           peak
36672               Use peak samples values for each drawn sample.
36673
36674           Default value is "average".
36675
36676       Examples
36677
36678       •   Extract a channel split representation of the wave form of a whole
36679           audio track in a 1024x800 picture using ffmpeg:
36680
36681                   ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
36682
36683   sidedata, asidedata
36684       Delete frame side data, or select frames based on it.
36685
36686       This filter accepts the following options:
36687
36688       mode
36689           Set mode of operation of the filter.
36690
36691           Can be one of the following:
36692
36693           select
36694               Select every frame with side data of "type".
36695
36696           delete
36697               Delete side data of "type". If "type" is not set, delete all
36698               side data in the frame.
36699
36700       type
36701           Set side data type used with all modes. Must be set for "select"
36702           mode. For the list of frame side data types, refer to the
36703           "AVFrameSideDataType" enum in libavutil/frame.h. For example, to
36704           choose "AV_FRAME_DATA_PANSCAN" side data, you must specify
36705           "PANSCAN".
36706
36707   spectrumsynth
36708       Synthesize audio from 2 input video spectrums, first input stream
36709       represents magnitude across time and second represents phase across
36710       time.  The filter will transform from frequency domain as displayed in
36711       videos back to time domain as presented in audio output.
36712
36713       This filter is primarily created for reversing processed showspectrum
36714       filter outputs, but can synthesize sound from other spectrograms too.
36715       But in such case results are going to be poor if the phase data is not
36716       available, because in such cases phase data need to be recreated,
36717       usually it's just recreated from random noise.  For best results use
36718       gray only output ("channel" color mode in showspectrum filter) and
36719       "log" scale for magnitude video and "lin" scale for phase video. To
36720       produce phase, for 2nd video, use "data" option. Inputs videos should
36721       generally use "fullframe" slide mode as that saves resources needed for
36722       decoding video.
36723
36724       The filter accepts the following options:
36725
36726       sample_rate
36727           Specify sample rate of output audio, the sample rate of audio from
36728           which spectrum was generated may differ.
36729
36730       channels
36731           Set number of channels represented in input video spectrums.
36732
36733       scale
36734           Set scale which was used when generating magnitude input spectrum.
36735           Can be "lin" or "log". Default is "log".
36736
36737       slide
36738           Set slide which was used when generating inputs spectrums.  Can be
36739           "replace", "scroll", "fullframe" or "rscroll".  Default is
36740           "fullframe".
36741
36742       win_func
36743           Set window function used for resynthesis.
36744
36745       overlap
36746           Set window overlap. In range "[0, 1]". Default is 1, which means
36747           optimal overlap for selected window function will be picked.
36748
36749       orientation
36750           Set orientation of input videos. Can be "vertical" or "horizontal".
36751           Default is "vertical".
36752
36753       Examples
36754
36755       •   First create magnitude and phase videos from audio, assuming audio
36756           is stereo with 44100 sample rate, then resynthesize videos back to
36757           audio with spectrumsynth:
36758
36759                   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
36760                   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
36761                   ffmpeg -i magnitude.nut -i phase.nut -lavfi spectrumsynth=channels=2:sample_rate=44100:win_func=hann:overlap=0.875:slide=fullframe output.flac
36762
36763   split, asplit
36764       Split input into several identical outputs.
36765
36766       "asplit" works with audio input, "split" with video.
36767
36768       The filter accepts a single parameter which specifies the number of
36769       outputs. If unspecified, it defaults to 2.
36770
36771       Examples
36772
36773       •   Create two separate outputs from the same input:
36774
36775                   [in] split [out0][out1]
36776
36777       •   To create 3 or more outputs, you need to specify the number of
36778           outputs, like in:
36779
36780                   [in] asplit=3 [out0][out1][out2]
36781
36782       •   Create two separate outputs from the same input, one cropped and
36783           one padded:
36784
36785                   [in] split [splitout1][splitout2];
36786                   [splitout1] crop=100:100:0:0    [cropout];
36787                   [splitout2] pad=200:200:100:100 [padout];
36788
36789       •   Create 5 copies of the input audio with ffmpeg:
36790
36791                   ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
36792
36793   zmq, azmq
36794       Receive commands sent through a libzmq client, and forward them to
36795       filters in the filtergraph.
36796
36797       "zmq" and "azmq" work as a pass-through filters. "zmq" must be inserted
36798       between two video filters, "azmq" between two audio filters. Both are
36799       capable to send messages to any filter type.
36800
36801       To enable these filters you need to install the libzmq library and
36802       headers and configure FFmpeg with "--enable-libzmq".
36803
36804       For more information about libzmq see: <http://www.zeromq.org/>
36805
36806       The "zmq" and "azmq" filters work as a libzmq server, which receives
36807       messages sent through a network interface defined by the bind_address
36808       (or the abbreviation "b") option.  Default value of this option is
36809       tcp://localhost:5555. You may want to alter this value to your needs,
36810       but do not forget to escape any ':' signs (see filtergraph escaping).
36811
36812       The received message must be in the form:
36813
36814               <TARGET> <COMMAND> [<ARG>]
36815
36816       TARGET specifies the target of the command, usually the name of the
36817       filter class or a specific filter instance name. The default filter
36818       instance name uses the pattern Parsed_<filter_name>_<index>, but you
36819       can override this by using the filter_name@id syntax (see Filtergraph
36820       syntax).
36821
36822       COMMAND specifies the name of the command for the target filter.
36823
36824       ARG is optional and specifies the optional argument list for the given
36825       COMMAND.
36826
36827       Upon reception, the message is processed and the corresponding command
36828       is injected into the filtergraph. Depending on the result, the filter
36829       will send a reply to the client, adopting the format:
36830
36831               <ERROR_CODE> <ERROR_REASON>
36832               <MESSAGE>
36833
36834       MESSAGE is optional.
36835
36836       Examples
36837
36838       Look at tools/zmqsend for an example of a zmq client which can be used
36839       to send commands processed by these filters.
36840
36841       Consider the following filtergraph generated by ffplay.  In this
36842       example the last overlay filter has an instance name. All other filters
36843       will have default instance names.
36844
36845               ffplay -dumpgraph 1 -f lavfi "
36846               color=s=100x100:c=red  [l];
36847               color=s=100x100:c=blue [r];
36848               nullsrc=s=200x100, zmq [bg];
36849               [bg][l]   overlay     [bg+l];
36850               [bg+l][r] overlay@my=x=100 "
36851
36852       To change the color of the left side of the video, the following
36853       command can be used:
36854
36855               echo Parsed_color_0 c yellow | tools/zmqsend
36856
36857       To change the right side:
36858
36859               echo Parsed_color_1 c pink | tools/zmqsend
36860
36861       To change the position of the right side:
36862
36863               echo overlay@my x 150 | tools/zmqsend
36864

MULTIMEDIA SOURCES

36866       Below is a description of the currently available multimedia sources.
36867
36868   amovie
36869       This is the same as movie source, except it selects an audio stream by
36870       default.
36871
36872   avsynctest
36873       Generate an Audio/Video Sync Test.
36874
36875       Generated stream periodically shows flash video frame and emits beep in
36876       audio.  Useful to inspect A/V sync issues.
36877
36878       It accepts the following options:
36879
36880       size, s
36881           Set output video size. Default value is "hd720".
36882
36883       framerate, fr
36884           Set output video frame rate. Default value is 30.
36885
36886       samplerate, sr
36887           Set output audio sample rate. Default value is 44100.
36888
36889       amplitude, a
36890           Set output audio beep amplitude. Default value is 0.7.
36891
36892       period, p
36893           Set output audio beep period in seconds. Default value is 3.
36894
36895       delay, dl
36896           Set output video flash delay in number of frames. Default value is
36897           0.
36898
36899       cycle, c
36900           Enable cycling of video delays, by default is disabled.
36901
36902       duration, d
36903           Set stream output duration. By default duration is unlimited.
36904
36905       fg, bg, ag
36906           Set foreground/background/additional color.
36907
36908   movie
36909       Read audio and/or video stream(s) from a movie container.
36910
36911       It accepts the following parameters:
36912
36913       filename
36914           The name of the resource to read (not necessarily a file; it can
36915           also be a device or a stream accessed through some protocol).
36916
36917       format_name, f
36918           Specifies the format assumed for the movie to read, and can be
36919           either the name of a container or an input device. If not
36920           specified, the format is guessed from movie_name or by probing.
36921
36922       seek_point, sp
36923           Specifies the seek point in seconds. The frames will be output
36924           starting from this seek point. The parameter is evaluated with
36925           "av_strtod", so the numerical value may be suffixed by an IS
36926           postfix. The default value is "0".
36927
36928       streams, s
36929           Specifies the streams to read. Several streams can be specified,
36930           separated by "+". The source will then have as many outputs, in the
36931           same order. The syntax is explained in the "Stream specifiers"
36932           section in the ffmpeg manual. Two special names, "dv" and "da"
36933           specify respectively the default (best suited) video and audio
36934           stream. Default is "dv", or "da" if the filter is called as
36935           "amovie".
36936
36937       stream_index, si
36938           Specifies the index of the video stream to read. If the value is
36939           -1, the most suitable video stream will be automatically selected.
36940           The default value is "-1". Deprecated. If the filter is called
36941           "amovie", it will select audio instead of video.
36942
36943       loop
36944           Specifies how many times to read the stream in sequence.  If the
36945           value is 0, the stream will be looped infinitely.  Default value is
36946           "1".
36947
36948           Note that when the movie is looped the source timestamps are not
36949           changed, so it will generate non monotonically increasing
36950           timestamps.
36951
36952       discontinuity
36953           Specifies the time difference between frames above which the point
36954           is considered a timestamp discontinuity which is removed by
36955           adjusting the later timestamps.
36956
36957       dec_threads
36958           Specifies the number of threads for decoding
36959
36960       format_opts
36961           Specify format options for the opened file. Format options can be
36962           specified as a list of key=value pairs separated by ':'. The
36963           following example shows how to add protocol_whitelist and
36964           protocol_blacklist options:
36965
36966                   ffplay -f lavfi
36967                   "movie=filename='1.sdp':format_opts='protocol_whitelist=file,rtp,udp\:protocol_blacklist=http'"
36968
36969       It allows overlaying a second video on top of the main input of a
36970       filtergraph, as shown in this graph:
36971
36972               input -----------> deltapts0 --> overlay --> output
36973                                                   ^
36974                                                   |
36975               movie --> scale--> deltapts1 -------+
36976
36977       Examples
36978
36979       •   Skip 3.2 seconds from the start of the AVI file in.avi, and overlay
36980           it on top of the input labelled "in":
36981
36982                   movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over];
36983                   [in] setpts=PTS-STARTPTS [main];
36984                   [main][over] overlay=16:16 [out]
36985
36986       •   Read from a video4linux2 device, and overlay it on top of the input
36987           labelled "in":
36988
36989                   movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over];
36990                   [in] setpts=PTS-STARTPTS [main];
36991                   [main][over] overlay=16:16 [out]
36992
36993       •   Read the first video stream and the audio stream with id 0x81 from
36994           dvd.vob; the video is connected to the pad named "video" and the
36995           audio is connected to the pad named "audio":
36996
36997                   movie=dvd.vob:s=v:0+#0x81 [video] [audio]
36998
36999       Commands
37000
37001       Both movie and amovie support the following commands:
37002
37003       seek
37004           Perform seek using "av_seek_frame".  The syntax is: seek
37005           stream_index|timestamp|flags
37006
37007           •   stream_index: If stream_index is -1, a default stream is
37008               selected, and timestamp is automatically converted from
37009               AV_TIME_BASE units to the stream specific time_base.
37010
37011           •   timestamp: Timestamp in AVStream.time_base units or, if no
37012               stream is specified, in AV_TIME_BASE units.
37013
37014           •   flags: Flags which select direction and seeking mode.
37015
37016       get_duration
37017           Get movie duration in AV_TIME_BASE units.
37018

EXTERNAL LIBRARIES

37020       FFmpeg can be hooked up with a number of external libraries to add
37021       support for more formats. None of them are used by default, their use
37022       has to be explicitly requested by passing the appropriate flags to
37023       ./configure.
37024
37025   Alliance for Open Media (AOM)
37026       FFmpeg can make use of the AOM library for AV1 decoding and encoding.
37027
37028       Go to <http://aomedia.org/> and follow the instructions for installing
37029       the library. Then pass "--enable-libaom" to configure to enable it.
37030
37031   AMD AMF/VCE
37032       FFmpeg can use the AMD Advanced Media Framework library for accelerated
37033       H.264 and HEVC(only windows) encoding on hardware with Video Coding
37034       Engine (VCE).
37035
37036       To enable support you must obtain the AMF framework header
37037       files(version 1.4.9+) from
37038       <https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git>.
37039
37040       Create an "AMF/" directory in the system include path.  Copy the
37041       contents of "AMF/amf/public/include/" into that directory.  Then
37042       configure FFmpeg with "--enable-amf".
37043
37044       Initialization of amf encoder occurs in this order: 1) trying to
37045       initialize through dx11(only windows) 2) trying to initialize through
37046       dx9(only windows) 3) trying to initialize through vulkan
37047
37048       To use h.264(AMD VCE) encoder on linux amdgru-pro version 19.20+ and
37049       amf-amdgpu-pro package(amdgru-pro contains, but does not install
37050       automatically) are required.
37051
37052       This driver can be installed using amdgpu-pro-install script in
37053       official amd driver archive.
37054
37055   AviSynth
37056       FFmpeg can read AviSynth scripts as input. To enable support, pass
37057       "--enable-avisynth" to configure after installing the headers provided
37058       by <https://github.com/AviSynth/AviSynthPlus>.  AviSynth+ can be
37059       configured to install only the headers by either passing
37060       "-DHEADERS_ONLY:bool=on" to the normal CMake-based build system, or by
37061       using the supplied "GNUmakefile".
37062
37063       For Windows, supported AviSynth variants are <http://avisynth.nl> for
37064       32-bit builds and <http://avisynth.nl/index.php/AviSynth+> for 32-bit
37065       and 64-bit builds.
37066
37067       For Linux, macOS, and BSD, the only supported AviSynth variant is
37068       <https://github.com/AviSynth/AviSynthPlus>, starting with version 3.5.
37069
37070           In 2016, AviSynth+ added support for building with GCC. However,
37071           due to the eccentricities of Windows' calling conventions, 32-bit
37072           GCC builds of AviSynth+ are not compatible with typical 32-bit
37073           builds of FFmpeg.
37074
37075           By default, FFmpeg assumes compatibility with 32-bit MSVC builds of
37076           AviSynth+ since that is the most widely-used and entrenched build
37077           configuration.  Users can override this and enable support for
37078           32-bit GCC builds of AviSynth+ by passing "-DAVSC_WIN32_GCC32" to
37079           "--extra-cflags" when configuring FFmpeg.
37080
37081           64-bit builds of FFmpeg are not affected, and can use either MSVC
37082           or GCC builds of AviSynth+ without any special flags.
37083
37084           AviSynth(+) is loaded dynamically.  Distributors can build FFmpeg
37085           with "--enable-avisynth", and the binaries will work regardless of
37086           the end user having AviSynth installed.  If/when an end user would
37087           like to use AviSynth scripts, then they can install AviSynth(+) and
37088           FFmpeg will be able to find and use it to open scripts.
37089
37090   Chromaprint
37091       FFmpeg can make use of the Chromaprint library for generating audio
37092       fingerprints.  Pass "--enable-chromaprint" to configure to enable it.
37093       See <https://acoustid.org/chromaprint>.
37094
37095   codec2
37096       FFmpeg can make use of the codec2 library for codec2 decoding and
37097       encoding.  There is currently no native decoder, so libcodec2 must be
37098       used for decoding.
37099
37100       Go to <http://freedv.org/>, download "Codec 2 source archive".  Build
37101       and install using CMake. Debian users can install the libcodec2-dev
37102       package instead.  Once libcodec2 is installed you can pass
37103       "--enable-libcodec2" to configure to enable it.
37104
37105       The easiest way to use codec2 is with .c2 files, since they contain the
37106       mode information required for decoding.  To encode such a file, use a
37107       .c2 file extension and give the libcodec2 encoder the -mode option:
37108       "ffmpeg -i input.wav -mode 700C output.c2".  Playback is as simple as
37109       "ffplay output.c2".  For a list of supported modes, run "ffmpeg -h
37110       encoder=libcodec2".  Raw codec2 files are also supported.  To make
37111       sense of them the mode in use needs to be specified as a format option:
37112       "ffmpeg -f codec2raw -mode 1300 -i input.raw output.wav".
37113
37114   dav1d
37115       FFmpeg can make use of the dav1d library for AV1 video decoding.
37116
37117       Go to <https://code.videolan.org/videolan/dav1d> and follow the
37118       instructions for installing the library. Then pass "--enable-libdav1d"
37119       to configure to enable it.
37120
37121   davs2
37122       FFmpeg can make use of the davs2 library for AVS2-P2/IEEE1857.4 video
37123       decoding.
37124
37125       Go to <https://github.com/pkuvcl/davs2> and follow the instructions for
37126       installing the library. Then pass "--enable-libdavs2" to configure to
37127       enable it.
37128
37129           libdavs2 is under the GNU Public License Version 2 or later (see
37130           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
37131           details), you must upgrade FFmpeg's license to GPL in order to use
37132           it.
37133
37134   uavs3d
37135       FFmpeg can make use of the uavs3d library for AVS3-P2/IEEE1857.10 video
37136       decoding.
37137
37138       Go to <https://github.com/uavs3/uavs3d> and follow the instructions for
37139       installing the library. Then pass "--enable-libuavs3d" to configure to
37140       enable it.
37141
37142   Game Music Emu
37143       FFmpeg can make use of the Game Music Emu library to read audio from
37144       supported video game music file formats. Pass "--enable-libgme" to
37145       configure to enable it. See
37146       <https://bitbucket.org/mpyne/game-music-emu/overview>.
37147
37148   Intel QuickSync Video
37149       FFmpeg can use Intel QuickSync Video (QSV) for accelerated decoding and
37150       encoding of multiple codecs. To use QSV, FFmpeg must be linked against
37151       the "libmfx" dispatcher, which loads the actual decoding libraries.
37152
37153       The dispatcher is open source and can be downloaded from
37154       <https://github.com/lu-zero/mfx_dispatch.git>. FFmpeg needs to be
37155       configured with the "--enable-libmfx" option and "pkg-config" needs to
37156       be able to locate the dispatcher's ".pc" files.
37157
37158   Kvazaar
37159       FFmpeg can make use of the Kvazaar library for HEVC encoding.
37160
37161       Go to <https://github.com/ultravideo/kvazaar> and follow the
37162       instructions for installing the library. Then pass
37163       "--enable-libkvazaar" to configure to enable it.
37164
37165   LAME
37166       FFmpeg can make use of the LAME library for MP3 encoding.
37167
37168       Go to <http://lame.sourceforge.net/> and follow the instructions for
37169       installing the library.  Then pass "--enable-libmp3lame" to configure
37170       to enable it.
37171
37172   libilbc
37173       iLBC is a narrowband speech codec that has been made freely available
37174       by Google as part of the WebRTC project. libilbc is a packaging
37175       friendly copy of the iLBC codec. FFmpeg can make use of the libilbc
37176       library for iLBC decoding and encoding.
37177
37178       Go to <https://github.com/TimothyGu/libilbc> and follow the
37179       instructions for installing the library. Then pass "--enable-libilbc"
37180       to configure to enable it.
37181
37182   libjxl
37183       JPEG XL is an image format intended to fully replace legacy JPEG for an
37184       extended period of life. See <https://jpegxl.info/> for more
37185       information, and see <https://github.com/libjxl/libjxl> for the library
37186       source. You can pass "--enable-libjxl" to configure in order enable the
37187       libjxl wrapper.
37188
37189   libvpx
37190       FFmpeg can make use of the libvpx library for VP8/VP9 decoding and
37191       encoding.
37192
37193       Go to <http://www.webmproject.org/> and follow the instructions for
37194       installing the library. Then pass "--enable-libvpx" to configure to
37195       enable it.
37196
37197   ModPlug
37198       FFmpeg can make use of this library, originating in Modplug-XMMS, to
37199       read from MOD-like music files.  See
37200       <https://github.com/Konstanty/libmodplug>. Pass "--enable-libmodplug"
37201       to configure to enable it.
37202
37203   OpenCORE, VisualOn, and Fraunhofer libraries
37204       Spun off Google Android sources, OpenCore, VisualOn and Fraunhofer
37205       libraries provide encoders for a number of audio codecs.
37206
37207           OpenCORE and VisualOn libraries are under the Apache License 2.0
37208           (see <http://www.apache.org/licenses/LICENSE-2.0> for details),
37209           which is incompatible to the LGPL version 2.1 and GPL version 2.
37210           You have to upgrade FFmpeg's license to LGPL version 3 (or if you
37211           have enabled GPL components, GPL version 3) by passing
37212           "--enable-version3" to configure in order to use it.
37213
37214           The license of the Fraunhofer AAC library is incompatible with the
37215           GPL.  Therefore, for GPL builds, you have to pass
37216           "--enable-nonfree" to configure in order to use it. To the best of
37217           our knowledge, it is compatible with the LGPL.
37218
37219       OpenCORE AMR
37220
37221       FFmpeg can make use of the OpenCORE libraries for AMR-NB
37222       decoding/encoding and AMR-WB decoding.
37223
37224       Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
37225       instructions for installing the libraries.  Then pass
37226       "--enable-libopencore-amrnb" and/or "--enable-libopencore-amrwb" to
37227       configure to enable them.
37228
37229       VisualOn AMR-WB encoder library
37230
37231       FFmpeg can make use of the VisualOn AMR-WBenc library for AMR-WB
37232       encoding.
37233
37234       Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
37235       instructions for installing the library.  Then pass
37236       "--enable-libvo-amrwbenc" to configure to enable it.
37237
37238       Fraunhofer AAC library
37239
37240       FFmpeg can make use of the Fraunhofer AAC library for AAC decoding &
37241       encoding.
37242
37243       Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
37244       instructions for installing the library.  Then pass
37245       "--enable-libfdk-aac" to configure to enable it.
37246
37247   OpenH264
37248       FFmpeg can make use of the OpenH264 library for H.264 decoding and
37249       encoding.
37250
37251       Go to <http://www.openh264.org/> and follow the instructions for
37252       installing the library. Then pass "--enable-libopenh264" to configure
37253       to enable it.
37254
37255       For decoding, this library is much more limited than the built-in
37256       decoder in libavcodec; currently, this library lacks support for
37257       decoding B-frames and some other main/high profile features. (It
37258       currently only supports constrained baseline profile and CABAC.) Using
37259       it is mostly useful for testing and for taking advantage of Cisco's
37260       patent portfolio license
37261       (<http://www.openh264.org/BINARY_LICENSE.txt>).
37262
37263   OpenJPEG
37264       FFmpeg can use the OpenJPEG libraries for decoding/encoding J2K videos.
37265       Go to <http://www.openjpeg.org/> to get the libraries and follow the
37266       installation instructions.  To enable using OpenJPEG in FFmpeg, pass
37267       "--enable-libopenjpeg" to ./configure.
37268
37269   rav1e
37270       FFmpeg can make use of rav1e (Rust AV1 Encoder) via its C bindings to
37271       encode videos.  Go to <https://github.com/xiph/rav1e/> and follow the
37272       instructions to build the C library. To enable using rav1e in FFmpeg,
37273       pass "--enable-librav1e" to ./configure.
37274
37275   SVT-AV1
37276       FFmpeg can make use of the Scalable Video Technology for AV1 library
37277       for AV1 encoding.
37278
37279       Go to <https://gitlab.com/AOMediaCodec/SVT-AV1/> and follow the
37280       instructions for installing the library. Then pass "--enable-libsvtav1"
37281       to configure to enable it.
37282
37283   TwoLAME
37284       FFmpeg can make use of the TwoLAME library for MP2 encoding.
37285
37286       Go to <http://www.twolame.org/> and follow the instructions for
37287       installing the library.  Then pass "--enable-libtwolame" to configure
37288       to enable it.
37289
37290   VapourSynth
37291       FFmpeg can read VapourSynth scripts as input. To enable support, pass
37292       "--enable-vapoursynth" to configure. Vapoursynth is detected via
37293       "pkg-config". Versions 42 or greater supported.  See
37294       <http://www.vapoursynth.com/>.
37295
37296       Due to security concerns, Vapoursynth scripts will not be autodetected
37297       so the input format has to be forced. For ff* CLI tools, add "-f
37298       vapoursynth" before the input "-i yourscript.vpy".
37299
37300   x264
37301       FFmpeg can make use of the x264 library for H.264 encoding.
37302
37303       Go to <http://www.videolan.org/developers/x264.html> and follow the
37304       instructions for installing the library. Then pass "--enable-libx264"
37305       to configure to enable it.
37306
37307           x264 is under the GNU Public License Version 2 or later (see
37308           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
37309           details), you must upgrade FFmpeg's license to GPL in order to use
37310           it.
37311
37312   x265
37313       FFmpeg can make use of the x265 library for HEVC encoding.
37314
37315       Go to <http://x265.org/developers.html> and follow the instructions for
37316       installing the library. Then pass "--enable-libx265" to configure to
37317       enable it.
37318
37319           x265 is under the GNU Public License Version 2 or later (see
37320           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
37321           details), you must upgrade FFmpeg's license to GPL in order to use
37322           it.
37323
37324   xavs
37325       FFmpeg can make use of the xavs library for AVS encoding.
37326
37327       Go to <http://xavs.sf.net/> and follow the instructions for installing
37328       the library. Then pass "--enable-libxavs" to configure to enable it.
37329
37330   xavs2
37331       FFmpeg can make use of the xavs2 library for AVS2-P2/IEEE1857.4 video
37332       encoding.
37333
37334       Go to <https://github.com/pkuvcl/xavs2> and follow the instructions for
37335       installing the library. Then pass "--enable-libxavs2" to configure to
37336       enable it.
37337
37338           libxavs2 is under the GNU Public License Version 2 or later (see
37339           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
37340           details), you must upgrade FFmpeg's license to GPL in order to use
37341           it.
37342
37343   ZVBI
37344       ZVBI is a VBI decoding library which can be used by FFmpeg to decode
37345       DVB teletext pages and DVB teletext subtitles.
37346
37347       Go to <http://sourceforge.net/projects/zapping/> and follow the
37348       instructions for installing the library. Then pass "--enable-libzvbi"
37349       to configure to enable it.
37350

SUPPORTED FILE FORMATS

37352       You can use the "-formats" and "-codecs" options to have an exhaustive
37353       list.
37354
37355   File Formats
37356       FFmpeg supports the following file formats through the "libavformat"
37357       library:
37358
37359       Name  :  Encoding @tab Decoding @tab Comments
37360       3dostr                     :    @tab X
37361       4xm                        :    @tab X
37362               @tab 4X Technologies format, used in some games.
37363
37364       8088flex TMV               :    @tab X
37365       AAX                        :    @tab X
37366               @tab Audible Enhanced Audio format, used in audiobooks.
37367
37368       AA                         :    @tab X
37369               @tab Audible Format 2, 3, and 4, used in audiobooks.
37370
37371       ACT Voice                  :    @tab X
37372               @tab contains G.729 audio
37373
37374       Adobe Filmstrip            :  X @tab X
37375       Audio IFF (AIFF)           :  X @tab X
37376       American Laser Games MM    :    @tab X
37377               @tab Multimedia format used in games like Mad Dog McCree.
37378
37379       3GPP AMR                   :  X @tab X
37380       Amazing Studio Packed Animation File   :    @tab X
37381               @tab Multimedia format used in game Heart Of Darkness.
37382
37383       Apple HTTP Live Streaming  :    @tab X
37384       Artworx Data Format        :    @tab X
37385       Interplay ACM              :    @tab X
37386               @tab Audio only format used in some Interplay games.
37387
37388       ADP                        :    @tab X
37389               @tab Audio format used on the Nintendo Gamecube.
37390
37391       AFC                        :    @tab X
37392               @tab Audio format used on the Nintendo Gamecube.
37393
37394       ADS/SS2                    :    @tab X
37395               @tab Audio format used on the PS2.
37396
37397       APNG                       :  X @tab X
37398       ASF                        :  X @tab X
37399               @tab Advanced / Active Streaming Format.
37400
37401       AST                        :  X @tab X
37402               @tab Audio format used on the Nintendo Wii.
37403
37404       AVI                        :  X @tab X
37405       AviSynth                   :    @tab X
37406       AVR                        :    @tab X
37407               @tab Audio format used on Mac.
37408
37409       AVS                        :    @tab X
37410               @tab Multimedia format used by the Creature Shock game.
37411
37412       Beam Software SIFF         :    @tab X
37413               @tab Audio and video format used in some games by Beam Software.
37414
37415       Bethesda Softworks VID     :    @tab X
37416               @tab Used in some games from Bethesda Softworks.
37417
37418       Binary text                :    @tab X
37419       Bink                       :    @tab X
37420               @tab Multimedia format used by many games.
37421
37422       Bink Audio                 :    @tab X
37423               @tab Audio only multimedia format used by some games.
37424
37425       Bitmap Brothers JV         :    @tab X
37426               @tab Used in Z and Z95 games.
37427
37428       BRP                        :    @tab X
37429               @tab Argonaut Games format.
37430
37431       Brute Force & Ignorance    :    @tab X
37432               @tab Used in the game Flash Traffic: City of Angels.
37433
37434       BFSTM                      :    @tab X
37435               @tab Audio format used on the Nintendo WiiU (based on BRSTM).
37436
37437       BRSTM                      :    @tab X
37438               @tab Audio format used on the Nintendo Wii.
37439
37440       BW64                       :    @tab X
37441               @tab Broadcast Wave 64bit.
37442
37443       BWF                        :  X @tab X
37444       codec2 (raw)               :  X @tab X
37445               @tab Must be given -mode format option to decode correctly.
37446
37447       codec2 (.c2 files)         :  X @tab X
37448               @tab Contains header with version and mode info, simplifying playback.
37449
37450       CRI ADX                    :  X @tab X
37451               @tab Audio-only format used in console video games.
37452
37453       CRI AIX                    :    @tab X
37454       CRI HCA                    :    @tab X
37455               @tab Audio-only format used in console video games.
37456
37457       Discworld II BMV           :    @tab X
37458       Interplay C93              :    @tab X
37459               @tab Used in the game Cyberia from Interplay.
37460
37461       Delphine Software International CIN  :    @tab X
37462               @tab Multimedia format used by Delphine Software games.
37463
37464       Digital Speech Standard (DSS)  :    @tab X
37465       CD+G                       :    @tab X
37466               @tab Video format used by CD+G karaoke disks
37467
37468       Phantom Cine               :    @tab X
37469       Commodore CDXL             :    @tab X
37470               @tab Amiga CD video format
37471
37472       Core Audio Format          :  X @tab X
37473               @tab Apple Core Audio Format
37474
37475       CRC testing format         :  X @tab
37476       Creative Voice             :  X @tab X
37477               @tab Created for the Sound Blaster Pro.
37478
37479       CRYO APC                   :    @tab X
37480               @tab Audio format used in some games by CRYO Interactive Entertainment.
37481
37482       D-Cinema audio             :  X @tab X
37483       Deluxe Paint Animation     :    @tab X
37484       DCSTR                      :    @tab X
37485       DFA                        :    @tab X
37486               @tab This format is used in Chronomaster game
37487
37488       DirectDraw Surface         :    @tab X
37489       DSD Stream File (DSF)      :    @tab X
37490       DV video                   :  X @tab X
37491       DXA                        :    @tab X
37492               @tab This format is used in the non-Windows version of the Feeble Files
37493                    game and different game cutscenes repacked for use with ScummVM.
37494
37495       Electronic Arts cdata   :     @tab X
37496       Electronic Arts Multimedia   :     @tab X
37497               @tab Used in various EA games; files have extensions like WVE and UV2.
37498
37499       Ensoniq Paris Audio File   :    @tab X
37500       FFM (FFserver live feed)   :  X @tab X
37501       Flash (SWF)                :  X @tab X
37502       Flash 9 (AVM2)             :  X @tab X
37503               @tab Only embedded audio is decoded.
37504
37505       FLI/FLC/FLX animation      :    @tab X
37506               @tab .fli/.flc files
37507
37508       Flash Video (FLV)          :  X @tab X
37509               @tab Macromedia Flash video files
37510
37511       framecrc testing format    :  X @tab
37512       FunCom ISS                 :    @tab X
37513               @tab Audio format used in various games from FunCom like The Longest Journey.
37514
37515       G.723.1                    :  X @tab X
37516       G.726                      :    @tab X @tab Both left- and right-
37517       justified.
37518       G.729 BIT                  :  X @tab X
37519       G.729 raw                  :    @tab X
37520       GENH                       :    @tab X
37521               @tab Audio format for various games.
37522
37523       GIF Animation              :  X @tab X
37524       GXF                        :  X @tab X
37525               @tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley
37526                    playout servers.
37527
37528       HNM  :    @tab X
37529               @tab Only version 4 supported, used in some games from Cryo Interactive
37530
37531       iCEDraw File               :    @tab X
37532       ICO                        :  X @tab X
37533               @tab Microsoft Windows ICO
37534
37535       id Quake II CIN video      :    @tab X
37536       id RoQ                     :  X @tab X
37537               @tab Used in Quake III, Jedi Knight 2 and other computer games.
37538
37539       IEC61937 encapsulation  :  X @tab X
37540       IFF                        :    @tab X
37541               @tab Interchange File Format
37542
37543       IFV                        :    @tab X
37544               @tab A format used by some old CCTV DVRs.
37545
37546       iLBC                       :  X @tab X
37547       Interplay MVE              :    @tab X
37548               @tab Format used in various Interplay computer games.
37549
37550       Iterated Systems ClearVideo  :      @tab  X
37551               @tab I-frames only
37552
37553       IV8                        :    @tab X
37554               @tab A format generated by IndigoVision 8000 video server.
37555
37556       IVF (On2)                  :  X @tab X
37557               @tab A format used by libvpx
37558
37559       Internet Video Recording   :    @tab X
37560       IRCAM                      :  X @tab X
37561       LAF                        :    @tab X
37562               @tab Limitless Audio Format
37563
37564       LATM                       :  X @tab X
37565       LMLM4                      :    @tab X
37566               @tab Used by Linux Media Labs MPEG-4 PCI boards
37567
37568       LOAS                       :    @tab X
37569               @tab contains LATM multiplexed AAC audio
37570
37571       LRC                        :  X @tab X
37572       LVF                        :    @tab X
37573       LXF                        :    @tab X
37574               @tab VR native stream format, used by Leitch/Harris' video servers.
37575
37576       Magic Lantern Video (MLV)  :    @tab X
37577       Matroska                   :  X @tab X
37578       Matroska audio             :  X @tab
37579       FFmpeg metadata            :  X @tab X
37580               @tab Metadata in text format.
37581
37582       MAXIS XA                   :    @tab X
37583               @tab Used in Sim City 3000; file extension .xa.
37584
37585       MCA                        :    @tab X
37586               @tab Used in some games from Capcom; file extension .mca.
37587
37588       MD Studio                  :    @tab X
37589       Metal Gear Solid: The Twin Snakes  :  @tab X
37590       Megalux Frame              :    @tab X
37591               @tab Used by Megalux Ultimate Paint
37592
37593       MobiClip MODS              :    @tab X
37594       MobiClip MOFLEX            :    @tab X
37595       Mobotix .mxg               :    @tab X
37596       Monkey's Audio             :    @tab X
37597       Motion Pixels MVI          :    @tab X
37598       MOV/QuickTime/MP4          :  X @tab X
37599               @tab 3GP, 3GP2, PSP, iPod variants supported
37600
37601       MP2                        :  X @tab X
37602       MP3                        :  X @tab X
37603       MPEG-1 System              :  X @tab X
37604               @tab muxed audio and video, VCD format supported
37605
37606       MPEG-PS (program stream)   :  X @tab X
37607               @tab also known as C<VOB> file, SVCD and DVD format supported
37608
37609       MPEG-TS (transport stream)  :  X @tab X
37610               @tab also known as DVB Transport Stream
37611
37612       MPEG-4                     :  X @tab X
37613               @tab MPEG-4 is a variant of QuickTime.
37614
37615       MSF                        :    @tab X
37616               @tab Audio format used on the PS3.
37617
37618       Mirillis FIC video         :    @tab X
37619               @tab No cursor rendering.
37620
37621       MIDI Sample Dump Standard  :    @tab X
37622       MIME multipart JPEG        :  X @tab
37623       MSN TCP webcam             :    @tab X
37624               @tab Used by MSN Messenger webcam streams.
37625
37626       MTV                        :    @tab X
37627       Musepack                   :    @tab X
37628       Musepack SV8               :    @tab X
37629       Material eXchange Format (MXF)  :  X @tab X
37630               @tab SMPTE 377M, used by D-Cinema, broadcast industry.
37631
37632       Material eXchange Format (MXF), D-10 Mapping  :  X @tab X
37633               @tab SMPTE 386M, D-10/IMX Mapping.
37634
37635       NC camera feed             :    @tab X
37636               @tab NC (AVIP NC4600) camera streams
37637
37638       NIST SPeech HEader REsources  :    @tab X
37639       Computerized Speech Lab NSP  :    @tab X
37640       NTT TwinVQ (VQF)           :    @tab X
37641               @tab Nippon Telegraph and Telephone Corporation TwinVQ.
37642
37643       Nullsoft Streaming Video   :    @tab X
37644       NuppelVideo                :    @tab X
37645       NUT                        :  X @tab X
37646               @tab NUT Open Container Format
37647
37648       Ogg                        :  X @tab X
37649       Playstation Portable PMP   :    @tab X
37650       Portable Voice Format      :    @tab X
37651       RK Audio (RKA)             :    @tab X
37652       TechnoTrend PVA            :    @tab X
37653               @tab Used by TechnoTrend DVB PCI boards.
37654
37655       QCP                        :    @tab X
37656       raw ADTS (AAC)             :  X @tab X
37657       raw AC-3                   :  X @tab X
37658       raw AMR-NB                 :    @tab X
37659       raw AMR-WB                 :    @tab X
37660       raw APAC                   :    @tab X
37661       raw aptX                   :  X @tab X
37662       raw aptX HD                :  X @tab X
37663       raw Bonk                   :    @tab X
37664       raw Chinese AVS video      :  X @tab X
37665       raw DFPWM                  :  X @tab X
37666       raw Dirac                  :  X @tab X
37667       raw DNxHD                  :  X @tab X
37668       raw DTS                    :  X @tab X
37669       raw DTS-HD                 :    @tab X
37670       raw E-AC-3                 :  X @tab X
37671       raw FLAC                   :  X @tab X
37672       raw GSM                    :    @tab X
37673       raw H.261                  :  X @tab X
37674       raw H.263                  :  X @tab X
37675       raw H.264                  :  X @tab X
37676       raw HEVC                   :  X @tab X
37677       raw Ingenient MJPEG        :    @tab X
37678       raw MJPEG                  :  X @tab X
37679       raw MLP                    :    @tab X
37680       raw MPEG                   :    @tab X
37681       raw MPEG-1                 :    @tab X
37682       raw MPEG-2                 :    @tab X
37683       raw MPEG-4                 :  X @tab X
37684       raw NULL                   :  X @tab
37685       raw video                  :  X @tab X
37686       raw id RoQ                 :  X @tab
37687       raw OBU                    :  X @tab X
37688       raw SBC                    :  X @tab X
37689       raw Shorten                :    @tab X
37690       raw TAK                    :    @tab X
37691       raw TrueHD                 :  X @tab X
37692       raw VC-1                   :  X @tab X
37693       raw PCM A-law              :  X @tab X
37694       raw PCM mu-law             :  X @tab X
37695       raw PCM Archimedes VIDC    :  X @tab X
37696       raw PCM signed 8 bit       :  X @tab X
37697       raw PCM signed 16 bit big-endian   :  X @tab X
37698       raw PCM signed 16 bit little-endian   :  X @tab X
37699       raw PCM signed 24 bit big-endian   :  X @tab X
37700       raw PCM signed 24 bit little-endian   :  X @tab X
37701       raw PCM signed 32 bit big-endian   :  X @tab X
37702       raw PCM signed 32 bit little-endian   :  X @tab X
37703       raw PCM signed 64 bit big-endian   :  X @tab X
37704       raw PCM signed 64 bit little-endian   :  X @tab X
37705       raw PCM unsigned 8 bit     :  X @tab X
37706       raw PCM unsigned 16 bit big-endian   :  X @tab X
37707       raw PCM unsigned 16 bit little-endian   :  X @tab X
37708       raw PCM unsigned 24 bit big-endian   :  X @tab X
37709       raw PCM unsigned 24 bit little-endian   :  X @tab X
37710       raw PCM unsigned 32 bit big-endian   :  X @tab X
37711       raw PCM unsigned 32 bit little-endian   :  X @tab X
37712       raw PCM 16.8 floating point little-endian  :    @tab X
37713       raw PCM 24.0 floating point little-endian  :    @tab X
37714       raw PCM floating-point 32 bit big-endian   :  X @tab X
37715       raw PCM floating-point 32 bit little-endian   :  X @tab X
37716       raw PCM floating-point 64 bit big-endian   :  X @tab X
37717       raw PCM floating-point 64 bit little-endian   :  X @tab X
37718       RDT                        :    @tab X
37719       REDCODE R3D                :    @tab X
37720               @tab File format used by RED Digital cameras, contains JPEG 2000 frames and PCM audio.
37721
37722       RealMedia                  :  X @tab X
37723       Redirector                 :    @tab X
37724       RedSpark                   :    @tab X
37725       Renderware TeXture Dictionary  :    @tab X
37726       Resolume DXV               :    @tab X
37727       RF64                       :    @tab X
37728       RL2                        :    @tab X
37729               @tab Audio and video format used in some games by Entertainment Software Partners.
37730
37731       RPL/ARMovie                :    @tab X
37732       Lego Mindstorms RSO        :  X @tab X
37733       RSD                        :    @tab X
37734       RTMP                       :  X @tab X
37735               @tab Output is performed by publishing stream to RTMP server
37736
37737       RTP                        :  X @tab X
37738       RTSP                       :  X @tab X
37739       Sample Dump eXchange       :    @tab X
37740       SAP                        :  X @tab X
37741       SBG                        :    @tab X
37742       SDNS                       :    @tab X
37743       SDP                        :    @tab X
37744       SER                        :    @tab X
37745       Digital Pictures SGA       :    @tab X
37746       Sega FILM/CPK              :  X @tab X
37747               @tab Used in many Sega Saturn console games.
37748
37749       Silicon Graphics Movie     :    @tab X
37750       Sierra SOL                 :    @tab X
37751               @tab .sol files used in Sierra Online games.
37752
37753       Sierra VMD                 :    @tab X
37754               @tab Used in Sierra CD-ROM games.
37755
37756       Smacker                    :    @tab X
37757               @tab Multimedia format used by many games.
37758
37759       SMJPEG                     :  X @tab X
37760               @tab Used in certain Loki game ports.
37761
37762       SMPTE 337M encapsulation   :    @tab X
37763       Smush                      :    @tab X
37764               @tab Multimedia format used in some LucasArts games.
37765
37766       Sony OpenMG (OMA)          :  X @tab X
37767               @tab Audio format used in Sony Sonic Stage and Sony Vegas.
37768
37769       Sony PlayStation STR       :    @tab X
37770       Sony Wave64 (W64)          :  X @tab X
37771       SoX native format          :  X @tab X
37772       SUN AU format              :  X @tab X
37773       SUP raw PGS subtitles      :  X @tab X
37774       SVAG                       :    @tab X
37775               @tab Audio format used in Konami PS2 games.
37776
37777       TDSC                       :    @tab X
37778       Text files                 :    @tab X
37779       THP                        :    @tab X
37780               @tab Used on the Nintendo GameCube.
37781
37782       Tiertex Limited SEQ        :    @tab X
37783               @tab Tiertex .seq files used in the DOS CD-ROM version of the game Flashback.
37784
37785       True Audio                 :  X @tab X
37786       VAG                        :    @tab X
37787               @tab Audio format used in many Sony PS2 games.
37788
37789       VC-1 test bitstream        :  X @tab X
37790       Vidvox Hap                 :  X @tab X
37791       Vivo                       :    @tab X
37792       VPK                        :    @tab X
37793               @tab Audio format used in Sony PS games.
37794
37795       Marble WADY                :    @tab X
37796       WAV                        :  X @tab X
37797       Waveform Archiver          :    @tab X
37798       WavPack                    :  X @tab X
37799       WebM                       :  X @tab X
37800       Windows Televison (WTV)    :  X @tab X
37801       Wing Commander III movie   :    @tab X
37802               @tab Multimedia format used in Origin's Wing Commander III computer game.
37803
37804       Westwood Studios audio     :  X @tab X
37805               @tab Multimedia format used in Westwood Studios games.
37806
37807       Westwood Studios VQA       :    @tab X
37808               @tab Multimedia format used in Westwood Studios games.
37809
37810       Wideband Single-bit Data (WSD)  :    @tab X
37811       WVE                        :    @tab X
37812       Konami XMD                 :    @tab X
37813       XMV                        :    @tab X
37814               @tab Microsoft video container used in Xbox games.
37815
37816       XVAG                       :    @tab X
37817               @tab Audio format used on the PS3.
37818
37819       xWMA                       :    @tab X
37820               @tab Microsoft audio container used by XAudio 2.
37821
37822       eXtended BINary text (XBIN)  :  @tab X
37823       YUV4MPEG pipe              :  X @tab X
37824       Psygnosis YOP              :    @tab X
37825
37826       "X" means that the feature in that column (encoding / decoding) is
37827       supported.
37828
37829   Image Formats
37830       FFmpeg can read and write images for each frame of a video sequence.
37831       The following image formats are supported:
37832
37833       Name  :  Encoding @tab Decoding @tab Comments
37834       .Y.U.V        :  X @tab X
37835               @tab one raw file per component
37836
37837       Alias PIX     :  X @tab X
37838               @tab Alias/Wavefront PIX image format
37839
37840       animated GIF  :  X @tab X
37841       APNG          :  X @tab X
37842               @tab Animated Portable Network Graphics
37843
37844       BMP           :  X @tab X
37845               @tab Microsoft BMP image
37846
37847       BRender PIX   :    @tab X
37848               @tab Argonaut BRender 3D engine image format.
37849
37850       CRI           :    @tab X
37851               @tab Cintel RAW
37852
37853       DPX           :  X @tab X
37854               @tab Digital Picture Exchange
37855
37856       EXR           :    @tab X
37857               @tab OpenEXR
37858
37859       FITS          :  X @tab X
37860               @tab Flexible Image Transport System
37861
37862       HDR           :  X @tab X
37863               @tab Radiance HDR RGBE Image format
37864
37865       IMG           :    @tab X
37866               @tab GEM Raster image
37867
37868       JPEG          :  X @tab X
37869               @tab Progressive JPEG is not supported.
37870
37871       JPEG 2000     :  X @tab X
37872       JPEG-LS       :  X @tab X
37873       LJPEG         :  X @tab
37874               @tab Lossless JPEG
37875
37876       Media 100     :    @tab X
37877       MSP           :    @tab X
37878               @tab Microsoft Paint image
37879
37880       PAM           :  X @tab X
37881               @tab PAM is a PNM extension with alpha support.
37882
37883       PBM           :  X @tab X
37884               @tab Portable BitMap image
37885
37886       PCD           :    @tab X
37887               @tab PhotoCD
37888
37889       PCX           :  X @tab X
37890               @tab PC Paintbrush
37891
37892       PFM           :  X @tab X
37893               @tab Portable FloatMap image
37894
37895       PGM           :  X @tab X
37896               @tab Portable GrayMap image
37897
37898       PGMYUV        :  X @tab X
37899               @tab PGM with U and V components in YUV 4:2:0
37900
37901       PGX           :    @tab X
37902               @tab PGX file decoder
37903
37904       PHM           :  X @tab X
37905               @tab Portable HalfFloatMap image
37906
37907       PIC           :  @tab X
37908               @tab Pictor/PC Paint
37909
37910       PNG           :  X @tab X
37911               @tab Portable Network Graphics image
37912
37913       PPM           :  X @tab X
37914               @tab Portable PixelMap image
37915
37916       PSD           :    @tab X
37917               @tab Photoshop
37918
37919       PTX           :    @tab X
37920               @tab V.Flash PTX format
37921
37922       QOI           :  X @tab X
37923               @tab Quite OK Image format
37924
37925       SGI           :  X @tab X
37926               @tab SGI RGB image format
37927
37928       Sun Rasterfile   :  X @tab X
37929               @tab Sun RAS image format
37930
37931       TIFF          :  X @tab X
37932               @tab YUV, JPEG and some extension is not supported yet.
37933
37934       Truevision Targa   :  X @tab X
37935               @tab Targa (.TGA) image format
37936
37937       VBN   :  X @tab X
37938               @tab Vizrt Binary Image format
37939
37940       WBMP          :  X @tab X
37941               @tab Wireless Application Protocol Bitmap image format
37942
37943       WebP          :  E @tab X
37944               @tab WebP image format, encoding supported through external library libwebp
37945
37946       XBM   :  X @tab X
37947               @tab X BitMap image format
37948
37949       XFace  :  X @tab X
37950               @tab X-Face image format
37951
37952       XPM   :    @tab X
37953               @tab X PixMap image format
37954
37955       XWD   :  X @tab X
37956               @tab X Window Dump image format
37957
37958       "X" means that the feature in that column (encoding / decoding) is
37959       supported.
37960
37961       "E" means that support is provided through an external library.
37962
37963   Video Codecs
37964       Name  :  Encoding @tab Decoding @tab Comments
37965       4X Movie                :      @tab  X
37966               @tab Used in certain computer games.
37967
37968       8088flex TMV            :      @tab  X
37969       A64 multicolor          :   X  @tab
37970               @tab Creates video suitable to be played on a commodore 64 (multicolor mode).
37971
37972       Amazing Studio PAF Video  :      @tab  X
37973       American Laser Games MM   :     @tab X
37974               @tab Used in games like Mad Dog McCree.
37975
37976       Amuse Graphics Movie    :      @tab  X
37977       AMV Video               :   X  @tab  X
37978               @tab Used in Chinese MP3 players.
37979
37980       ANSI/ASCII art          :      @tab  X
37981       Apple Intermediate Codec  :      @tab  X
37982       Apple MJPEG-B           :      @tab  X
37983       Apple Pixlet            :      @tab  X
37984       Apple ProRes            :   X  @tab  X
37985               @tab fourcc: apch,apcn,apcs,apco,ap4h,ap4x
37986
37987       Apple QuickDraw         :      @tab  X
37988               @tab fourcc: qdrw
37989
37990       Argonaut Video          :      @tab  X
37991               @tab Used in some Argonaut games.
37992
37993       Asus v1                 :   X  @tab  X
37994               @tab fourcc: ASV1
37995
37996       Asus v2                 :   X  @tab  X
37997               @tab fourcc: ASV2
37998
37999       ATI VCR1                :      @tab  X
38000               @tab fourcc: VCR1
38001
38002       ATI VCR2                :      @tab  X
38003               @tab fourcc: VCR2
38004
38005       Auravision Aura         :      @tab  X
38006       Auravision Aura 2       :      @tab  X
38007       Autodesk Animator Flic video   :      @tab  X
38008       Autodesk RLE            :      @tab  X
38009               @tab fourcc: AASC
38010
38011       AV1                     :   E  @tab  E
38012               @tab Supported through external libraries libaom, libdav1d, librav1e and libsvtav1
38013
38014       Avid 1:1 10-bit RGB Packer   :   X  @tab  X
38015               @tab fourcc: AVrp
38016
38017       AVS (Audio Video Standard) video   :      @tab  X
38018               @tab Video encoding used by the Creature Shock game.
38019
38020       AVS2-P2/IEEE1857.4      :   E  @tab  E
38021               @tab Supported through external libraries libxavs2 and libdavs2
38022
38023       AVS3-P2/IEEE1857.10     :      @tab  E
38024               @tab Supported through external library libuavs3d
38025
38026       AYUV                    :   X  @tab  X
38027               @tab Microsoft uncompressed packed 4:4:4:4
38028
38029       Beam Software VB        :      @tab  X
38030       Bethesda VID video      :      @tab  X
38031               @tab Used in some games from Bethesda Softworks.
38032
38033       Bink Video              :      @tab  X
38034       BitJazz SheerVideo      :      @tab  X
38035       Bitmap Brothers JV video   :    @tab X
38036       y41p Brooktree uncompressed 4:1:1 12-bit      :   X  @tab  X
38037       Brooktree ProSumer Video   :      @tab  X
38038               @tab fourcc: BT20
38039
38040       Brute Force & Ignorance    :    @tab X
38041               @tab Used in the game Flash Traffic: City of Angels.
38042
38043       C93 video               :      @tab  X
38044               @tab Codec used in Cyberia game.
38045
38046       CamStudio               :      @tab  X
38047               @tab fourcc: CSCD
38048
38049       CD+G                    :      @tab  X
38050               @tab Video codec for CD+G karaoke disks
38051
38052       CDXL                    :      @tab  X
38053               @tab Amiga CD video codec
38054
38055       Chinese AVS video       :   E  @tab  X
38056               @tab AVS1-P2, JiZhun profile, encoding through external library libxavs
38057
38058       Delphine Software International CIN video   :      @tab  X
38059               @tab Codec used in Delphine Software International games.
38060
38061       Discworld II BMV Video  :      @tab  X
38062       CineForm HD             :   X  @tab  X
38063       Canopus HQ              :      @tab  X
38064       Canopus HQA             :      @tab  X
38065       Canopus HQX             :      @tab  X
38066       Canopus Lossless Codec  :      @tab  X
38067       CDToons                 :      @tab  X
38068               @tab Codec used in various Broderbund games.
38069
38070       Cinepak                 :      @tab  X
38071       Cirrus Logic AccuPak    :   X  @tab  X
38072               @tab fourcc: CLJR
38073
38074       CPiA Video Format       :      @tab  X
38075       Creative YUV (CYUV)     :      @tab  X
38076       DFA                     :      @tab  X
38077               @tab Codec used in Chronomaster game.
38078
38079       Dirac                   :   E  @tab  X
38080               @tab supported though the native vc2 (Dirac Pro) encoder
38081
38082       Deluxe Paint Animation  :      @tab  X
38083       DNxHD                   :    X @tab  X
38084               @tab aka SMPTE VC3
38085
38086       Duck TrueMotion 1.0    :      @tab  X
38087               @tab fourcc: DUCK
38088
38089       Duck TrueMotion 2.0     :      @tab  X
38090               @tab fourcc: TM20
38091
38092       Duck TrueMotion 2.0 RT  :      @tab  X
38093               @tab fourcc: TR20
38094
38095       DV (Digital Video)      :   X  @tab  X
38096       Dxtory capture format   :      @tab  X
38097       Feeble Files/ScummVM DXA   :      @tab  X
38098               @tab Codec originally used in Feeble Files game.
38099
38100       Electronic Arts CMV video   :      @tab  X
38101               @tab Used in NHL 95 game.
38102
38103       Electronic Arts Madcow video   :      @tab  X
38104       Electronic Arts TGV video   :      @tab  X
38105       Electronic Arts TGQ video   :      @tab  X
38106       Electronic Arts TQI video   :      @tab  X
38107       Escape 124              :      @tab  X
38108       Escape 130              :      @tab  X
38109       FFmpeg video codec #1   :   X  @tab  X
38110               @tab lossless codec (fourcc: FFV1)
38111
38112       Flash Screen Video v1   :   X  @tab  X
38113               @tab fourcc: FSV1
38114
38115       Flash Screen Video v2   :   X  @tab  X
38116       Flash Video (FLV)       :   X  @tab  X
38117               @tab Sorenson H.263 used in Flash
38118
38119       FM Screen Capture Codec   :      @tab  X
38120       Forward Uncompressed    :      @tab  X
38121       Fraps                   :      @tab  X
38122       Go2Meeting              :      @tab  X
38123               @tab fourcc: G2M2, G2M3
38124
38125       Go2Webinar              :      @tab  X
38126               @tab fourcc: G2M4
38127
38128       Gremlin Digital Video   :      @tab  X
38129       H.261                   :   X  @tab  X
38130       H.263 / H.263-1996      :   X  @tab  X
38131       H.263+ / H.263-1998 / H.263 version 2   :   X  @tab  X
38132       H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10   :   E  @tab  X
38133               @tab encoding supported through external library libx264 and OpenH264
38134
38135       HEVC                    :   X  @tab  X
38136               @tab encoding supported through external library libx265 and libkvazaar
38137
38138       HNM version 4           :      @tab  X
38139       HuffYUV                 :   X  @tab  X
38140       HuffYUV FFmpeg variant  :   X  @tab  X
38141       IBM Ultimotion          :      @tab  X
38142               @tab fourcc: ULTI
38143
38144       id Cinematic video      :      @tab  X
38145               @tab Used in Quake II.
38146
38147       id RoQ video            :   X  @tab  X
38148               @tab Used in Quake III, Jedi Knight 2, other computer games.
38149
38150       IFF ILBM                :      @tab  X
38151               @tab IFF interleaved bitmap
38152
38153       IFF ByteRun1            :      @tab  X
38154               @tab IFF run length encoded bitmap
38155
38156       Infinity IMM4           :      @tab  X
38157       Intel H.263             :      @tab  X
38158       Intel Indeo 2           :      @tab  X
38159       Intel Indeo 3           :      @tab  X
38160       Intel Indeo 4           :      @tab  X
38161       Intel Indeo 5           :      @tab  X
38162       Interplay C93           :      @tab  X
38163               @tab Used in the game Cyberia from Interplay.
38164
38165       Interplay MVE video     :      @tab  X
38166               @tab Used in Interplay .MVE files.
38167
38168       J2K  :   X  @tab  X
38169       Karl Morton's video codec   :      @tab  X
38170               @tab Codec used in Worms games.
38171
38172       Kega Game Video (KGV1)  :       @tab  X
38173               @tab Kega emulator screen capture codec.
38174
38175       Lagarith                :      @tab  X
38176       LCL (LossLess Codec Library) MSZH   :      @tab  X
38177       LCL (LossLess Codec Library) ZLIB   :   E  @tab  E
38178       LOCO                    :      @tab  X
38179       LucasArts SANM/Smush    :      @tab  X
38180               @tab Used in LucasArts games / SMUSH animations.
38181
38182       lossless MJPEG          :   X  @tab  X
38183       MagicYUV Video          :   X  @tab  X
38184       Mandsoft Screen Capture Codec   :      @tab  X
38185       Microsoft ATC Screen    :      @tab  X
38186               @tab Also known as Microsoft Screen 3.
38187
38188       Microsoft Expression Encoder Screen   :      @tab  X
38189               @tab Also known as Microsoft Titanium Screen 2.
38190
38191       Microsoft RLE           :      @tab  X
38192       Microsoft Screen 1      :      @tab  X
38193               @tab Also known as Windows Media Video V7 Screen.
38194
38195       Microsoft Screen 2      :      @tab  X
38196               @tab Also known as Windows Media Video V9 Screen.
38197
38198       Microsoft Video 1       :      @tab  X
38199       Mimic                   :      @tab  X
38200               @tab Used in MSN Messenger Webcam streams.
38201
38202       Miro VideoXL            :      @tab  X
38203               @tab fourcc: VIXL
38204
38205       MJPEG (Motion JPEG)     :   X  @tab  X
38206       Mobotix MxPEG video     :      @tab  X
38207       Motion Pixels video     :      @tab  X
38208       MPEG-1 video            :   X  @tab  X
38209       MPEG-2 video            :   X  @tab  X
38210       MPEG-4 part 2           :   X  @tab  X
38211               @tab libxvidcore can be used alternatively for encoding.
38212
38213       MPEG-4 part 2 Microsoft variant version 1   :      @tab  X
38214       MPEG-4 part 2 Microsoft variant version 2   :   X  @tab  X
38215       MPEG-4 part 2 Microsoft variant version 3   :   X  @tab  X
38216       Newtek SpeedHQ                :   X  @tab  X
38217       Nintendo Gamecube THP video   :      @tab  X
38218       NotchLC                 :      @tab  X
38219       NuppelVideo/RTjpeg      :      @tab  X
38220               @tab Video encoding used in NuppelVideo files.
38221
38222       On2 VP3                 :      @tab  X
38223               @tab still experimental
38224
38225       On2 VP4                 :      @tab  X
38226               @tab fourcc: VP40
38227
38228       On2 VP5                 :      @tab  X
38229               @tab fourcc: VP50
38230
38231       On2 VP6                 :      @tab  X
38232               @tab fourcc: VP60,VP61,VP62
38233
38234       On2 VP7                 :      @tab  X
38235               @tab fourcc: VP70,VP71
38236
38237       VP8                     :   E  @tab  X
38238               @tab fourcc: VP80, encoding supported through external library libvpx
38239
38240       VP9                     :   E  @tab  X
38241               @tab encoding supported through external library libvpx
38242
38243       Pinnacle TARGA CineWave YUV16  :      @tab  X
38244               @tab fourcc: Y216
38245
38246       Q-team QPEG             :      @tab  X
38247               @tab fourccs: QPEG, Q1.0, Q1.1
38248
38249       QuickTime 8BPS video    :      @tab  X
38250       QuickTime Animation (RLE) video   :   X  @tab  X
38251               @tab fourcc: 'rle '
38252
38253       QuickTime Graphics (SMC)   :   X  @tab  X
38254               @tab fourcc: 'smc '
38255
38256       QuickTime video (RPZA)  :   X  @tab  X
38257               @tab fourcc: rpza
38258
38259       R10K AJA Kona 10-bit RGB Codec      :   X  @tab  X
38260       R210 Quicktime Uncompressed RGB 10-bit      :   X  @tab  X
38261       Raw Video               :   X  @tab  X
38262       RealVideo 1.0           :   X  @tab  X
38263       RealVideo 2.0           :   X  @tab  X
38264       RealVideo 3.0           :      @tab  X
38265               @tab still far from ideal
38266
38267       RealVideo 4.0           :      @tab  X
38268       Renderware TXD (TeXture Dictionary)   :      @tab  X
38269               @tab Texture dictionaries used by the Renderware Engine.
38270
38271       RL2 video               :      @tab  X
38272               @tab used in some games by Entertainment Software Partners
38273
38274       ScreenPressor           :      @tab  X
38275       Screenpresso            :      @tab  X
38276       Screen Recorder Gold Codec   :      @tab  X
38277       Sierra VMD video        :      @tab  X
38278               @tab Used in Sierra VMD files.
38279
38280       Silicon Graphics Motion Video Compressor 1 (MVC1)   :      @tab  X
38281       Silicon Graphics Motion Video Compressor 2 (MVC2)   :      @tab  X
38282       Silicon Graphics RLE 8-bit video   :      @tab  X
38283       Smacker video           :      @tab  X
38284               @tab Video encoding used in Smacker.
38285
38286       SMPTE VC-1              :      @tab  X
38287       Snow                    :   X  @tab  X
38288               @tab experimental wavelet codec (fourcc: SNOW)
38289
38290       Sony PlayStation MDEC (Motion DECoder)   :      @tab  X
38291       Sorenson Vector Quantizer 1   :   X  @tab  X
38292               @tab fourcc: SVQ1
38293
38294       Sorenson Vector Quantizer 3   :      @tab  X
38295               @tab fourcc: SVQ3
38296
38297       Sunplus JPEG (SP5X)     :      @tab  X
38298               @tab fourcc: SP5X
38299
38300       TechSmith Screen Capture Codec   :      @tab  X
38301               @tab fourcc: TSCC
38302
38303       TechSmith Screen Capture Codec 2   :      @tab  X
38304               @tab fourcc: TSC2
38305
38306       Theora                  :   E  @tab  X
38307               @tab encoding supported through external library libtheora
38308
38309       Tiertex Limited SEQ video   :      @tab  X
38310               @tab Codec used in DOS CD-ROM FlashBack game.
38311
38312       Ut Video                :   X  @tab  X
38313       v210 QuickTime uncompressed 4:2:2 10-bit      :   X  @tab  X
38314       v308 QuickTime uncompressed 4:4:4             :   X  @tab  X
38315       v408 QuickTime uncompressed 4:4:4:4           :   X  @tab  X
38316       v410 QuickTime uncompressed 4:4:4 10-bit      :   X  @tab  X
38317       VBLE Lossless Codec     :      @tab  X
38318       VMware Screen Codec / VMware Video   :      @tab  X
38319               @tab Codec used in videos captured by VMware.
38320
38321       Westwood Studios VQA (Vector Quantized Animation) video   :      @tab
38322       X
38323       Windows Media Image     :      @tab  X
38324       Windows Media Video 7   :   X  @tab  X
38325       Windows Media Video 8   :   X  @tab  X
38326       Windows Media Video 9   :      @tab  X
38327               @tab not completely working
38328
38329       Wing Commander III / Xan   :      @tab  X
38330               @tab Used in Wing Commander III .MVE files.
38331
38332       Wing Commander IV / Xan   :      @tab  X
38333               @tab Used in Wing Commander IV.
38334
38335       Winnov WNV1             :      @tab  X
38336       WMV7                    :   X  @tab  X
38337       YAMAHA SMAF             :   X  @tab  X
38338       Psygnosis YOP Video     :      @tab  X
38339       yuv4                    :   X  @tab  X
38340               @tab libquicktime uncompressed packed 4:2:0
38341
38342       ZeroCodec Lossless Video  :      @tab  X
38343       ZLIB                    :   X  @tab  X
38344               @tab part of LCL, encoder experimental
38345
38346       Zip Motion Blocks Video   :    X @tab  X
38347               @tab Encoder works only in PAL8.
38348
38349       "X" means that the feature in that column (encoding / decoding) is
38350       supported.
38351
38352       "E" means that support is provided through an external library.
38353
38354   Audio Codecs
38355       Name  :  Encoding @tab Decoding @tab Comments
38356       8SVX exponential        :      @tab  X
38357       8SVX fibonacci          :      @tab  X
38358       AAC                     :  EX  @tab  X
38359               @tab encoding supported through internal encoder and external library libfdk-aac
38360
38361       AAC+                    :   E  @tab  IX
38362               @tab encoding supported through external library libfdk-aac
38363
38364       AC-3                    :  IX  @tab  IX
38365       ACELP.KELVIN            :      @tab  X
38366       ADPCM 4X Movie          :      @tab  X
38367       ADPCM Yamaha AICA       :      @tab  X
38368       ADPCM AmuseGraphics Movie  :     @tab  X
38369       ADPCM Argonaut Games    :  X   @tab  X
38370       ADPCM CDROM XA          :      @tab  X
38371       ADPCM Creative Technology  :      @tab  X
38372               @tab 16 -E<gt> 4, 8 -E<gt> 4, 8 -E<gt> 3, 8 -E<gt> 2
38373
38374       ADPCM Electronic Arts   :      @tab  X
38375               @tab Used in various EA titles.
38376
38377       ADPCM Electronic Arts Maxis CDROM XS   :      @tab  X
38378               @tab Used in Sim City 3000.
38379
38380       ADPCM Electronic Arts R1   :      @tab  X
38381       ADPCM Electronic Arts R2   :      @tab  X
38382       ADPCM Electronic Arts R3   :      @tab  X
38383       ADPCM Electronic Arts XAS  :      @tab  X
38384       ADPCM G.722             :   X  @tab  X
38385       ADPCM G.726             :   X  @tab  X
38386       ADPCM IMA Acorn Replay  :      @tab  X
38387       ADPCM IMA AMV           :   X  @tab  X
38388               @tab Used in AMV files
38389
38390       ADPCM IMA Cunning Developments   :      @tab  X
38391       ADPCM IMA Electronic Arts EACS   :      @tab  X
38392       ADPCM IMA Electronic Arts SEAD   :      @tab  X
38393       ADPCM IMA Funcom        :      @tab  X
38394       ADPCM IMA High Voltage Software ALP       :   X  @tab  X
38395       ADPCM IMA Mobiclip MOFLEX   :      @tab  X
38396       ADPCM IMA QuickTime     :   X  @tab  X
38397       ADPCM IMA Simon & Schuster Interactive    :   X  @tab  X
38398       ADPCM IMA Ubisoft APM   :   X  @tab  X
38399       ADPCM IMA Loki SDL MJPEG   :      @tab  X
38400       ADPCM IMA WAV           :   X  @tab  X
38401       ADPCM IMA Westwood      :      @tab  X
38402       ADPCM ISS IMA           :      @tab  X
38403               @tab Used in FunCom games.
38404
38405       ADPCM IMA Dialogic      :      @tab  X
38406       ADPCM IMA Duck DK3      :      @tab  X
38407               @tab Used in some Sega Saturn console games.
38408
38409       ADPCM IMA Duck DK4      :      @tab  X
38410               @tab Used in some Sega Saturn console games.
38411
38412       ADPCM IMA Radical       :      @tab  X
38413       ADPCM Microsoft         :   X  @tab  X
38414       ADPCM MS IMA            :   X  @tab  X
38415       ADPCM Nintendo Gamecube AFC   :      @tab  X
38416       ADPCM Nintendo Gamecube DTK   :      @tab  X
38417       ADPCM Nintendo THP   :      @tab  X
38418       ADPCM Playstation       :      @tab  X
38419       ADPCM QT IMA            :   X  @tab  X
38420       ADPCM SEGA CRI ADX      :   X  @tab  X
38421               @tab Used in Sega Dreamcast games.
38422
38423       ADPCM Shockwave Flash   :   X  @tab  X
38424       ADPCM Sound Blaster Pro 2-bit   :      @tab  X
38425       ADPCM Sound Blaster Pro 2.6-bit   :      @tab  X
38426       ADPCM Sound Blaster Pro 4-bit   :      @tab  X
38427       ADPCM VIMA              :      @tab  X
38428               @tab Used in LucasArts SMUSH animations.
38429
38430       ADPCM Konami XMD        :      @tab  X
38431       ADPCM Westwood Studios IMA       :   X @tab  X
38432               @tab Used in Westwood Studios games like Command and Conquer.
38433
38434       ADPCM Yamaha            :   X  @tab  X
38435       ADPCM Zork              :      @tab  X
38436       AMR-NB                  :   E  @tab  X
38437               @tab encoding supported through external library libopencore-amrnb
38438
38439       AMR-WB                  :   E  @tab  X
38440               @tab encoding supported through external library libvo-amrwbenc
38441
38442       Amazing Studio PAF Audio  :      @tab  X
38443       Apple lossless audio    :   X  @tab  X
38444               @tab QuickTime fourcc 'alac'
38445
38446       aptX                    :   X  @tab  X
38447               @tab Used in Bluetooth A2DP
38448
38449       aptX HD                 :   X  @tab  X
38450               @tab Used in Bluetooth A2DP
38451
38452       ATRAC1                  :      @tab  X
38453       ATRAC3                  :      @tab  X
38454       ATRAC3+                 :      @tab  X
38455       ATRAC9                  :      @tab  X
38456       Bink Audio              :      @tab  X
38457               @tab Used in Bink and Smacker files in many games.
38458
38459       Bonk audio              :      @tab  X
38460       CELT                    :      @tab  E
38461               @tab decoding supported through external library libcelt
38462
38463       codec2                  :   E  @tab  E
38464               @tab en/decoding supported through external library libcodec2
38465
38466       CRI HCA                 :      @tab X
38467       Delphine Software International CIN audio   :      @tab  X
38468               @tab Codec used in Delphine Software International games.
38469
38470       DFPWM                   :   X  @tab  X
38471       Digital Speech Standard - Standard Play mode (DSS SP)  :      @tab  X
38472       Discworld II BMV Audio  :      @tab  X
38473       COOK                    :      @tab  X
38474               @tab All versions except 5.1 are supported.
38475
38476       DCA (DTS Coherent Acoustics)   :   X  @tab  X
38477               @tab supported extensions: XCh, XXCH, X96, XBR, XLL, LBR (partially)
38478
38479       Dolby E   :      @tab  X
38480       DPCM Cuberoot-Delta-Exact  :   @tab  X
38481               @tab Used in few games.
38482
38483       DPCM Gremlin            :      @tab  X
38484       DPCM id RoQ             :   X  @tab  X
38485               @tab Used in Quake III, Jedi Knight 2 and other computer games.
38486
38487       DPCM Marble WADY        :      @tab  X
38488       DPCM Interplay          :      @tab  X
38489               @tab Used in various Interplay computer games.
38490
38491       DPCM Squareroot-Delta-Exact   :   @tab  X
38492               @tab Used in various games.
38493
38494       DPCM Sierra Online      :      @tab  X
38495               @tab Used in Sierra Online game audio files.
38496
38497       DPCM Sol                :      @tab  X
38498       DPCM Xan                :      @tab  X
38499               @tab Used in Origin's Wing Commander IV AVI files.
38500
38501       DPCM Xilam DERF         :      @tab  X
38502       DSD (Direct Stream Digital), least significant bit first   :   @tab  X
38503       DSD (Direct Stream Digital), most significant bit first    :   @tab  X
38504       DSD (Direct Stream Digital), least significant bit first, planar   :
38505       @tab  X
38506       DSD (Direct Stream Digital), most significant bit first, planar    :
38507       @tab  X
38508       DSP Group TrueSpeech    :      @tab  X
38509       DST (Direct Stream Transfer)  :   @tab  X
38510       DV audio                :      @tab  X
38511       Enhanced AC-3           :   X  @tab  X
38512       EVRC (Enhanced Variable Rate Codec)  :      @tab  X
38513       FLAC (Free Lossless Audio Codec)   :   X  @tab  IX
38514       FTR Voice               :      @tab  X
38515       G.723.1                 :  X   @tab  X
38516       G.729                   :      @tab  X
38517       GSM                     :   E  @tab  X
38518               @tab encoding supported through external library libgsm
38519
38520       GSM Microsoft variant   :   E  @tab  X
38521               @tab encoding supported through external library libgsm
38522
38523       IAC (Indeo Audio Coder)   :      @tab  X
38524       iLBC (Internet Low Bitrate Codec)  :   E  @tab  EX
38525               @tab encoding and decoding supported through external library libilbc
38526
38527       IMC (Intel Music Coder)   :      @tab  X
38528       Interplay ACM             :      @tab  X
38529       MACE (Macintosh Audio Compression/Expansion) 3:1   :      @tab  X
38530       MACE (Macintosh Audio Compression/Expansion) 6:1   :      @tab  X
38531       Marian's A-pac audio      :      @tab  X
38532       MI-SC4 (Micronas SC-4 Audio)   :      @tab  X
38533       MLP (Meridian Lossless Packing)   :   X  @tab  X
38534               @tab Used in DVD-Audio discs.
38535
38536       Monkey's Audio          :      @tab  X
38537       MP1 (MPEG audio layer 1)   :      @tab IX
38538       MP2 (MPEG audio layer 2)   :  IX  @tab IX
38539               @tab encoding supported also through external library TwoLAME
38540
38541       MP3 (MPEG audio layer 3)   :   E  @tab IX
38542               @tab encoding supported through external library LAME, ADU MP3 and MP3onMP4 also supported
38543
38544       MPEG-4 Audio Lossless Coding (ALS)   :      @tab  X
38545       MobiClip FastAudio      :      @tab  X
38546       Musepack SV7            :      @tab  X
38547       Musepack SV8            :      @tab  X
38548       Nellymoser Asao         :   X  @tab  X
38549       On2 AVC (Audio for Video Codec)  :      @tab  X
38550       Opus                    :   E  @tab  X
38551               @tab encoding supported through external library libopus
38552
38553       PCM A-law               :   X  @tab  X
38554       PCM mu-law              :   X  @tab  X
38555       PCM Archimedes VIDC     :   X  @tab  X
38556       PCM signed 8-bit planar   :   X  @tab  X
38557       PCM signed 16-bit big-endian planar   :   X  @tab  X
38558       PCM signed 16-bit little-endian planar   :   X  @tab  X
38559       PCM signed 24-bit little-endian planar   :   X  @tab  X
38560       PCM signed 32-bit little-endian planar   :   X  @tab  X
38561       PCM 32-bit floating point big-endian   :   X  @tab  X
38562       PCM 32-bit floating point little-endian   :   X  @tab  X
38563       PCM 64-bit floating point big-endian   :   X  @tab  X
38564       PCM 64-bit floating point little-endian   :   X  @tab  X
38565       PCM D-Cinema audio signed 24-bit    :   X  @tab  X
38566       PCM signed 8-bit        :   X  @tab  X
38567       PCM signed 16-bit big-endian   :   X  @tab  X
38568       PCM signed 16-bit little-endian   :   X  @tab  X
38569       PCM signed 24-bit big-endian   :   X  @tab  X
38570       PCM signed 24-bit little-endian   :   X  @tab  X
38571       PCM signed 32-bit big-endian   :   X  @tab  X
38572       PCM signed 32-bit little-endian   :   X  @tab  X
38573       PCM signed 16/20/24-bit big-endian in MPEG-TS   :      @tab  X
38574       PCM unsigned 8-bit      :   X  @tab  X
38575       PCM unsigned 16-bit big-endian   :   X  @tab  X
38576       PCM unsigned 16-bit little-endian   :   X  @tab  X
38577       PCM unsigned 24-bit big-endian   :   X  @tab  X
38578       PCM unsigned 24-bit little-endian   :   X  @tab  X
38579       PCM unsigned 32-bit big-endian   :   X  @tab  X
38580       PCM unsigned 32-bit little-endian   :   X  @tab  X
38581       PCM SGA                 :      @tab  X
38582       QCELP / PureVoice       :      @tab  X
38583       QDesign Music Codec 1   :      @tab  X
38584       QDesign Music Codec 2   :      @tab  X
38585               @tab There are still some distortions.
38586
38587       RealAudio 1.0 (14.4K)   :   X  @tab  X
38588               @tab Real 14400 bit/s codec
38589
38590       RealAudio 2.0 (28.8K)   :      @tab  X
38591               @tab Real 28800 bit/s codec
38592
38593       RealAudio 3.0 (dnet)    :  IX  @tab  X
38594               @tab Real low bitrate AC-3 codec
38595
38596       RealAudio Lossless      :      @tab  X
38597       RealAudio SIPR / ACELP.NET  :      @tab  X
38598       RK Audio (RKA)          :      @tab  X
38599       SBC (low-complexity subband codec)  :   X  @tab  X
38600               @tab Used in Bluetooth A2DP
38601
38602       Shorten                 :      @tab  X
38603       Sierra VMD audio        :      @tab  X
38604               @tab Used in Sierra VMD files.
38605
38606       Smacker audio           :      @tab  X
38607       SMPTE 302M AES3 audio   :   X  @tab  X
38608       Sonic                   :   X  @tab  X
38609               @tab experimental codec
38610
38611       Sonic lossless          :   X  @tab  X
38612               @tab experimental codec
38613
38614       Speex                   :   E  @tab  EX
38615               @tab supported through external library libspeex
38616
38617       TAK (Tom's lossless Audio Kompressor)   :      @tab  X
38618       True Audio (TTA)        :   X  @tab  X
38619       TrueHD                  :   X  @tab  X
38620               @tab Used in HD-DVD and Blu-Ray discs.
38621
38622       TwinVQ (VQF flavor)     :      @tab  X
38623       VIMA                    :      @tab  X
38624               @tab Used in LucasArts SMUSH animations.
38625
38626       ViewQuest VQC           :      @tab  X
38627       Vorbis                  :   E  @tab  X
38628               @tab A native but very primitive encoder exists.
38629
38630       Voxware MetaSound       :      @tab  X
38631       Waveform Archiver       :      @tab  X
38632       WavPack                 :   X  @tab  X
38633       Westwood Audio (SND1)   :      @tab  X
38634       Windows Media Audio 1   :   X  @tab  X
38635       Windows Media Audio 2   :   X  @tab  X
38636       Windows Media Audio Lossless  :   @tab  X
38637       Windows Media Audio Pro  :     @tab  X
38638       Windows Media Audio Voice  :   @tab  X
38639       Xbox Media Audio 1      :      @tab  X
38640       Xbox Media Audio 2      :      @tab  X
38641
38642       "X" means that the feature in that column (encoding / decoding) is
38643       supported.
38644
38645       "E" means that support is provided through an external library.
38646
38647       "I" means that an integer-only version is available, too (ensures high
38648       performance on systems without hardware floating point support).
38649
38650   Subtitle Formats
38651       Name  :  Muxing @tab Demuxing @tab Encoding @tab Decoding
38652       3GPP Timed Text   :    @tab   @tab X @tab X
38653       AQTitle           :    @tab X @tab   @tab X
38654       DVB               :  X @tab X @tab X @tab X
38655       DVB teletext      :    @tab X @tab   @tab E
38656       DVD               :  X @tab X @tab X @tab X
38657       JACOsub           :  X @tab X @tab   @tab X
38658       MicroDVD          :  X @tab X @tab   @tab X
38659       MPL2              :    @tab X @tab   @tab X
38660       MPsub (MPlayer)   :    @tab X @tab   @tab X
38661       PGS               :    @tab   @tab   @tab X
38662       PJS (Phoenix)     :    @tab X @tab   @tab X
38663       RealText          :    @tab X @tab   @tab X
38664       SAMI              :    @tab X @tab   @tab X
38665       Spruce format (STL)  :    @tab X @tab   @tab X
38666       SSA/ASS           :  X @tab X @tab X @tab X
38667       SubRip (SRT)      :  X @tab X @tab X @tab X
38668       SubViewer v1      :    @tab X @tab   @tab X
38669       SubViewer         :    @tab X @tab   @tab X
38670       TED Talks captions  :  @tab X @tab   @tab X
38671       TTML              :  X @tab   @tab X @tab
38672       VobSub (IDX+SUB)  :    @tab X @tab   @tab X
38673       VPlayer           :    @tab X @tab   @tab X
38674       WebVTT            :  X @tab X @tab X @tab X
38675       XSUB              :    @tab   @tab X @tab X
38676
38677       "X" means that the feature is supported.
38678
38679       "E" means that support is provided through an external library.
38680
38681   Network Protocols
38682       Name          :  Support
38683       AMQP          :  E
38684       file          :  X
38685       FTP           :  X
38686       Gopher        :  X
38687       Gophers       :  X
38688       HLS           :  X
38689       HTTP          :  X
38690       HTTPS         :  X
38691       Icecast       :  X
38692       MMSH          :  X
38693       MMST          :  X
38694       pipe          :  X
38695       Pro-MPEG FEC  :  X
38696       RTMP          :  X
38697       RTMPE         :  X
38698       RTMPS         :  X
38699       RTMPT         :  X
38700       RTMPTE        :  X
38701       RTMPTS        :  X
38702       RTP           :  X
38703       SAMBA         :  E
38704       SCTP          :  X
38705       SFTP          :  E
38706       TCP           :  X
38707       TLS           :  X
38708       UDP           :  X
38709       ZMQ           :  E
38710
38711       "X" means that the protocol is supported.
38712
38713       "E" means that support is provided through an external library.
38714
38715   Input/Output Devices
38716       Name               :  Input  @tab Output
38717       ALSA               :  X      @tab X
38718       BKTR               :  X      @tab
38719       caca               :         @tab X
38720       DV1394             :  X      @tab
38721       Lavfi virtual device  :  X   @tab
38722       Linux framebuffer  :  X      @tab X
38723       JACK               :  X      @tab
38724       LIBCDIO            :  X
38725       LIBDC1394          :  X      @tab
38726       OpenAL             :  X
38727       OpenGL             :         @tab X
38728       OSS                :  X      @tab X
38729       PulseAudio         :  X      @tab X
38730       SDL                :         @tab X
38731       Video4Linux2       :  X      @tab X
38732       VfW capture        :  X      @tab
38733       X11 grabbing       :  X      @tab
38734       Win32 grabbing     :  X      @tab
38735
38736       "X" means that input/output is supported.
38737
38738   Timecode
38739       Codec/format       :  Read   @tab Write
38740       AVI                :  X      @tab X
38741       DV                 :  X      @tab X
38742       GXF                :  X      @tab X
38743       MOV                :  X      @tab X
38744       MPEG1/2            :  X      @tab X
38745       MXF                :  X      @tab X
38746

SEE ALSO

38748       ffprobe(1), ffmpeg(1), ffplay(1), ffmpeg-utils(1), ffmpeg-scaler(1),
38749       ffmpeg-resampler(1), ffmpeg-codecs(1), ffmpeg-bitstream-filters(1),
38750       ffmpeg-formats(1), ffmpeg-devices(1), ffmpeg-protocols(1),
38751       ffmpeg-filters(1)
38752

AUTHORS

38754       The FFmpeg developers.
38755
38756       For details about the authorship, see the Git history of the project
38757       (https://git.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
38758       the FFmpeg source directory, or browsing the online repository at
38759       <https://git.ffmpeg.org/ffmpeg>.
38760
38761       Maintainers for the specific components are listed in the file
38762       MAINTAINERS in the source code tree.
38763
38764
38765
38766                                                                FFPROBE-ALL(1)
Impressum