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

NAME

6       ffplay - FFplay media player
7

SYNOPSIS

9       ffplay [options] [input_url]
10

DESCRIPTION

12       FFplay is a very simple and portable media player using the FFmpeg
13       libraries and the SDL library. It is mostly used as a testbed for the
14       various FFmpeg APIs.
15

OPTIONS

17       All the numerical options, if not specified otherwise, accept a string
18       representing a number as input, which may be followed by one of the SI
19       unit prefixes, for example: 'K', 'M', or 'G'.
20
21       If 'i' is appended to the SI unit prefix, the complete prefix will be
22       interpreted as a unit prefix for binary multiples, which are based on
23       powers of 1024 instead of powers of 1000. Appending 'B' to the SI unit
24       prefix multiplies the value by 8. This allows using, for example: 'KB',
25       'MiB', 'G' and 'B' as number suffixes.
26
27       Options which do not take arguments are boolean options, and set the
28       corresponding value to true. They can be set to false by prefixing the
29       option name with "no". For example using "-nofoo" will set the boolean
30       option with name "foo" to false.
31
32   Stream specifiers
33       Some options are applied per-stream, e.g. bitrate or codec. Stream
34       specifiers are used to precisely specify which stream(s) a given option
35       belongs to.
36
37       A stream specifier is a string generally appended to the option name
38       and separated from it by a colon. E.g. "-codec:a:1 ac3" contains the
39       "a:1" stream specifier, which matches the second audio stream.
40       Therefore, it would select the ac3 codec for the second audio stream.
41
42       A stream specifier can match several streams, so that the option is
43       applied to all of them. E.g. the stream specifier in "-b:a 128k"
44       matches all audio streams.
45
46       An empty stream specifier matches all streams. For example, "-codec
47       copy" or "-codec: copy" would copy all the streams without reencoding.
48
49       Possible forms of stream specifiers are:
50
51       stream_index
52           Matches the stream with this index. E.g. "-threads:1 4" would set
53           the thread count for the second stream to 4. If stream_index is
54           used as an additional stream specifier (see below), then it selects
55           stream number stream_index from the matching streams. Stream
56           numbering is based on the order of the streams as detected by
57           libavformat except when a program ID is also specified. In this
58           case it is based on the ordering of the streams in the program.
59
60       stream_type[:additional_stream_specifier]
61           stream_type is one of following: 'v' or 'V' for video, 'a' for
62           audio, 's' for subtitle, 'd' for data, and 't' for attachments. 'v'
63           matches all video streams, 'V' only matches video streams which are
64           not attached pictures, video thumbnails or cover arts. If
65           additional_stream_specifier is used, then it matches streams which
66           both have this type and match the additional_stream_specifier.
67           Otherwise, it matches all streams of the specified type.
68
69       p:program_id[:additional_stream_specifier]
70           Matches streams which are in the program with the id program_id. If
71           additional_stream_specifier is used, then it matches streams which
72           both are part of the program and match the
73           additional_stream_specifier.
74
75       #stream_id or i:stream_id
76           Match the stream by stream id (e.g. PID in MPEG-TS container).
77
78       m:key[:value]
79           Matches streams with the metadata tag key having the specified
80           value. If value is not given, matches streams that contain the
81           given tag with any value.
82
83       u   Matches streams with usable configuration, the codec must be
84           defined and the essential information such as video dimension or
85           audio sample rate must be present.
86
87           Note that in ffmpeg, matching by metadata will only work properly
88           for input files.
89
90   Generic options
91       These options are shared amongst the ff* tools.
92
93       -L  Show license.
94
95       -h, -?, -help, --help [arg]
96           Show help. An optional parameter may be specified to print help
97           about a specific item. If no argument is specified, only basic (non
98           advanced) tool options are shown.
99
100           Possible values of arg are:
101
102           long
103               Print advanced tool options in addition to the basic tool
104               options.
105
106           full
107               Print complete list of options, including shared and private
108               options for encoders, decoders, demuxers, muxers, filters, etc.
109
110           decoder=decoder_name
111               Print detailed information about the decoder named
112               decoder_name. Use the -decoders option to get a list of all
113               decoders.
114
115           encoder=encoder_name
116               Print detailed information about the encoder named
117               encoder_name. Use the -encoders option to get a list of all
118               encoders.
119
120           demuxer=demuxer_name
121               Print detailed information about the demuxer named
122               demuxer_name. Use the -formats option to get a list of all
123               demuxers and muxers.
124
125           muxer=muxer_name
126               Print detailed information about the muxer named muxer_name.
127               Use the -formats option to get a list of all muxers and
128               demuxers.
129
130           filter=filter_name
131               Print detailed information about the filter named filter_name.
132               Use the -filters option to get a list of all filters.
133
134           bsf=bitstream_filter_name
135               Print detailed information about the bitstream filter named
136               bitstream_filter_name.  Use the -bsfs option to get a list of
137               all bitstream filters.
138
139           protocol=protocol_name
140               Print detailed information about the protocol named
141               protocol_name.  Use the -protocols option to get a list of all
142               protocols.
143
144       -version
145           Show version.
146
147       -buildconf
148           Show the build configuration, one option per line.
149
150       -formats
151           Show available formats (including devices).
152
153       -demuxers
154           Show available demuxers.
155
156       -muxers
157           Show available muxers.
158
159       -devices
160           Show available devices.
161
162       -codecs
163           Show all codecs known to libavcodec.
164
165           Note that the term 'codec' is used throughout this documentation as
166           a shortcut for what is more correctly called a media bitstream
167           format.
168
169       -decoders
170           Show available decoders.
171
172       -encoders
173           Show all available encoders.
174
175       -bsfs
176           Show available bitstream filters.
177
178       -protocols
179           Show available protocols.
180
181       -filters
182           Show available libavfilter filters.
183
184       -pix_fmts
185           Show available pixel formats.
186
187       -sample_fmts
188           Show available sample formats.
189
190       -layouts
191           Show channel names and standard channel layouts.
192
193       -dispositions
194           Show stream dispositions.
195
196       -colors
197           Show recognized color names.
198
199       -sources device[,opt1=val1[,opt2=val2]...]
200           Show autodetected sources of the input device.  Some devices may
201           provide system-dependent source names that cannot be autodetected.
202           The returned list cannot be assumed to be always complete.
203
204                   ffmpeg -sources pulse,server=192.168.0.4
205
206       -sinks device[,opt1=val1[,opt2=val2]...]
207           Show autodetected sinks of the output device.  Some devices may
208           provide system-dependent sink names that cannot be autodetected.
209           The returned list cannot be assumed to be always complete.
210
211                   ffmpeg -sinks pulse,server=192.168.0.4
212
213       -loglevel [flags+]loglevel | -v [flags+]loglevel
214           Set logging level and flags used by the library.
215
216           The optional flags prefix can consist of the following values:
217
218           repeat
219               Indicates that repeated log output should not be compressed to
220               the first line and the "Last message repeated n times" line
221               will be omitted.
222
223           level
224               Indicates that log output should add a "[level]" prefix to each
225               message line. This can be used as an alternative to log
226               coloring, e.g. when dumping the log to file.
227
228           Flags can also be used alone by adding a '+'/'-' prefix to
229           set/reset a single flag without affecting other flags or changing
230           loglevel. When setting both flags and loglevel, a '+' separator is
231           expected between the last flags value and before loglevel.
232
233           loglevel is a string or a number containing one of the following
234           values:
235
236           quiet, -8
237               Show nothing at all; be silent.
238
239           panic, 0
240               Only show fatal errors which could lead the process to crash,
241               such as an assertion failure. This is not currently used for
242               anything.
243
244           fatal, 8
245               Only show fatal errors. These are errors after which the
246               process absolutely cannot continue.
247
248           error, 16
249               Show all errors, including ones which can be recovered from.
250
251           warning, 24
252               Show all warnings and errors. Any message related to possibly
253               incorrect or unexpected events will be shown.
254
255           info, 32
256               Show informative messages during processing. This is in
257               addition to warnings and errors. This is the default value.
258
259           verbose, 40
260               Same as "info", except more verbose.
261
262           debug, 48
263               Show everything, including debugging information.
264
265           trace, 56
266
267           For example to enable repeated log output, add the "level" prefix,
268           and set loglevel to "verbose":
269
270                   ffmpeg -loglevel repeat+level+verbose -i input output
271
272           Another example that enables repeated log output without affecting
273           current state of "level" prefix flag or loglevel:
274
275                   ffmpeg [...] -loglevel +repeat
276
277           By default the program logs to stderr. If coloring is supported by
278           the terminal, colors are used to mark errors and warnings. Log
279           coloring can be disabled setting the environment variable
280           AV_LOG_FORCE_NOCOLOR, or can be forced setting the environment
281           variable AV_LOG_FORCE_COLOR.
282
283       -report
284           Dump full command line and log output to a file named
285           "program-YYYYMMDD-HHMMSS.log" in the current directory.  This file
286           can be useful for bug reports.  It also implies "-loglevel debug".
287
288           Setting the environment variable FFREPORT to any value has the same
289           effect. If the value is a ':'-separated key=value sequence, these
290           options will affect the report; option values must be escaped if
291           they contain special characters or the options delimiter ':' (see
292           the ``Quoting and escaping'' section in the ffmpeg-utils manual).
293
294           The following options are recognized:
295
296           file
297               set the file name to use for the report; %p is expanded to the
298               name of the program, %t is expanded to a timestamp, "%%" is
299               expanded to a plain "%"
300
301           level
302               set the log verbosity level using a numerical value (see
303               "-loglevel").
304
305           For example, to output a report to a file named ffreport.log using
306           a log level of 32 (alias for log level "info"):
307
308                   FFREPORT=file=ffreport.log:level=32 ffmpeg -i input output
309
310           Errors in parsing the environment variable are not fatal, and will
311           not appear in the report.
312
313       -hide_banner
314           Suppress printing banner.
315
316           All FFmpeg tools will normally show a copyright notice, build
317           options and library versions. This option can be used to suppress
318           printing this information.
319
320       -cpuflags flags (global)
321           Allows setting and clearing cpu flags. This option is intended for
322           testing. Do not use it unless you know what you're doing.
323
324                   ffmpeg -cpuflags -sse+mmx ...
325                   ffmpeg -cpuflags mmx ...
326                   ffmpeg -cpuflags 0 ...
327
328           Possible flags for this option are:
329
330           x86
331               mmx
332               mmxext
333               sse
334               sse2
335               sse2slow
336               sse3
337               sse3slow
338               ssse3
339               atom
340               sse4.1
341               sse4.2
342               avx
343               avx2
344               xop
345               fma3
346               fma4
347               3dnow
348               3dnowext
349               bmi1
350               bmi2
351               cmov
352           ARM
353               armv5te
354               armv6
355               armv6t2
356               vfp
357               vfpv3
358               neon
359               setend
360           AArch64
361               armv8
362               vfp
363               neon
364           PowerPC
365               altivec
366           Specific Processors
367               pentium2
368               pentium3
369               pentium4
370               k6
371               k62
372               athlon
373               athlonxp
374               k8
375       -cpucount count (global)
376           Override detection of CPU count. This option is intended for
377           testing. Do not use it unless you know what you're doing.
378
379                   ffmpeg -cpucount 2
380
381       -max_alloc bytes
382           Set the maximum size limit for allocating a block on the heap by
383           ffmpeg's family of malloc functions. Exercise extreme caution when
384           using this option. Don't use if you do not understand the full
385           consequence of doing so.  Default is INT_MAX.
386
387   AVOptions
388       These options are provided directly by the libavformat, libavdevice and
389       libavcodec libraries. To see the list of available AVOptions, use the
390       -help option. They are separated into two categories:
391
392       generic
393           These options can be set for any container, codec or device.
394           Generic options are listed under AVFormatContext options for
395           containers/devices and under AVCodecContext options for codecs.
396
397       private
398           These options are specific to the given container, device or codec.
399           Private options are listed under their corresponding
400           containers/devices/codecs.
401
402       For example to write an ID3v2.3 header instead of a default ID3v2.4 to
403       an MP3 file, use the id3v2_version private option of the MP3 muxer:
404
405               ffmpeg -i input.flac -id3v2_version 3 out.mp3
406
407       All codec AVOptions are per-stream, and thus a stream specifier should
408       be attached to them:
409
410               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
411
412       In the above example, a multichannel audio stream is mapped twice for
413       output.  The first instance is encoded with codec ac3 and bitrate 640k.
414       The second instance is downmixed to 2 channels and encoded with codec
415       aac. A bitrate of 128k is specified for it using absolute index of the
416       output stream.
417
418       Note: the -nooption syntax cannot be used for boolean AVOptions, use
419       -option 0/-option 1.
420
421       Note: the old undocumented way of specifying per-stream AVOptions by
422       prepending v/a/s to the options name is now obsolete and will be
423       removed soon.
424
425   Main options
426       -x width
427           Force displayed width.
428
429       -y height
430           Force displayed height.
431
432       -fs Start in fullscreen mode.
433
434       -an Disable audio.
435
436       -vn Disable video.
437
438       -sn Disable subtitles.
439
440       -ss pos
441           Seek to pos. Note that in most formats it is not possible to seek
442           exactly, so ffplay will seek to the nearest seek point to pos.
443
444           pos must be a time duration specification, see the Time duration
445           section in the ffmpeg-utils(1) manual.
446
447       -t duration
448           Play duration seconds of audio/video.
449
450           duration must be a time duration specification, see the Time
451           duration section in the ffmpeg-utils(1) manual.
452
453       -bytes
454           Seek by bytes.
455
456       -seek_interval
457           Set custom interval, in seconds, for seeking using left/right keys.
458           Default is 10 seconds.
459
460       -nodisp
461           Disable graphical display.
462
463       -noborder
464           Borderless window.
465
466       -alwaysontop
467           Window always on top. Available on: X11 with SDL >= 2.0.5, Windows
468           SDL >= 2.0.6.
469
470       -volume
471           Set the startup volume. 0 means silence, 100 means no volume
472           reduction or amplification. Negative values are treated as 0,
473           values above 100 are treated as 100.
474
475       -f fmt
476           Force format.
477
478       -window_title title
479           Set window title (default is the input filename).
480
481       -left title
482           Set the x position for the left of the window (default is a
483           centered window).
484
485       -top title
486           Set the y position for the top of the window (default is a centered
487           window).
488
489       -loop number
490           Loops movie playback <number> times. 0 means forever.
491
492       -showmode mode
493           Set the show mode to use.  Available values for mode are:
494
495           0, video
496               show video
497
498           1, waves
499               show audio waves
500
501           2, rdft
502               show audio frequency band using RDFT ((Inverse) Real Discrete
503               Fourier Transform)
504
505           Default value is "video", if video is not present or cannot be
506           played "rdft" is automatically selected.
507
508           You can interactively cycle through the available show modes by
509           pressing the key w.
510
511       -vf filtergraph
512           Create the filtergraph specified by filtergraph and use it to
513           filter the video stream.
514
515           filtergraph is a description of the filtergraph to apply to the
516           stream, and must have a single video input and a single video
517           output. In the filtergraph, the input is associated to the label
518           "in", and the output to the label "out". See the ffmpeg-filters
519           manual for more information about the filtergraph syntax.
520
521           You can specify this parameter multiple times and cycle through the
522           specified filtergraphs along with the show modes by pressing the
523           key w.
524
525       -af filtergraph
526           filtergraph is a description of the filtergraph to apply to the
527           input audio.  Use the option "-filters" to show all the available
528           filters (including sources and sinks).
529
530       -i input_url
531           Read input_url.
532
533   Advanced options
534       -stats
535           Print several playback statistics, in particular show the stream
536           duration, the codec parameters, the current position in the stream
537           and the audio/video synchronisation drift. It is shown by default,
538           unless the log level is lower than "info". Its display can be
539           forced by manually specifying this option. To disable it, you need
540           to specify "-nostats".
541
542       -fast
543           Non-spec-compliant optimizations.
544
545       -genpts
546           Generate pts.
547
548       -sync type
549           Set the master clock to audio ("type=audio"), video ("type=video")
550           or external ("type=ext"). Default is audio. The master clock is
551           used to control audio-video synchronization. Most media players use
552           audio as master clock, but in some cases (streaming or high quality
553           broadcast) it is necessary to change that. This option is mainly
554           used for debugging purposes.
555
556       -ast audio_stream_specifier
557           Select the desired audio stream using the given stream specifier.
558           The stream specifiers are described in the Stream specifiers
559           chapter. If this option is not specified, the "best" audio stream
560           is selected in the program of the already selected video stream.
561
562       -vst video_stream_specifier
563           Select the desired video stream using the given stream specifier.
564           The stream specifiers are described in the Stream specifiers
565           chapter. If this option is not specified, the "best" video stream
566           is selected.
567
568       -sst subtitle_stream_specifier
569           Select the desired subtitle stream using the given stream
570           specifier. The stream specifiers are described in the Stream
571           specifiers chapter. If this option is not specified, the "best"
572           subtitle stream is selected in the program of the already selected
573           video or audio stream.
574
575       -autoexit
576           Exit when video is done playing.
577
578       -exitonkeydown
579           Exit if any key is pressed.
580
581       -exitonmousedown
582           Exit if any mouse button is pressed.
583
584       -codec:media_specifier codec_name
585           Force a specific decoder implementation for the stream identified
586           by media_specifier, which can assume the values "a" (audio), "v"
587           (video), and "s" subtitle.
588
589       -acodec codec_name
590           Force a specific audio decoder.
591
592       -vcodec codec_name
593           Force a specific video decoder.
594
595       -scodec codec_name
596           Force a specific subtitle decoder.
597
598       -autorotate
599           Automatically rotate the video according to file metadata. Enabled
600           by default, use -noautorotate to disable it.
601
602       -framedrop
603           Drop video frames if video is out of sync. Enabled by default if
604           the master clock is not set to video. Use this option to enable
605           frame dropping for all master clock sources, use -noframedrop to
606           disable it.
607
608       -infbuf
609           Do not limit the input buffer size, read as much data as possible
610           from the input as soon as possible. Enabled by default for realtime
611           streams, where data may be dropped if not read in time. Use this
612           option to enable infinite buffers for all inputs, use -noinfbuf to
613           disable it.
614
615       -filter_threads nb_threads
616           Defines how many threads are used to process a filter pipeline.
617           Each pipeline will produce a thread pool with this many threads
618           available for parallel processing. The default is 0 which means
619           that the thread count will be determined by the number of available
620           CPUs.
621
622   While playing
623       q, ESC
624           Quit.
625
626       f   Toggle full screen.
627
628       p, SPC
629           Pause.
630
631       m   Toggle mute.
632
633       9, 0
634       /, *
635           Decrease and increase volume respectively.
636
637       a   Cycle audio channel in the current program.
638
639       v   Cycle video channel.
640
641       t   Cycle subtitle channel in the current program.
642
643       c   Cycle program.
644
645       w   Cycle video filters or show modes.
646
647       s   Step to the next frame.
648
649           Pause if the stream is not already paused, step to the next video
650           frame, and pause.
651
652       left/right
653           Seek backward/forward 10 seconds.
654
655       down/up
656           Seek backward/forward 1 minute.
657
658       page down/page up
659           Seek to the previous/next chapter.  or if there are no chapters
660           Seek backward/forward 10 minutes.
661
662       right mouse click
663           Seek to percentage in file corresponding to fraction of width.
664
665       left mouse double-click
666           Toggle full screen.
667

SYNTAX

669       This section documents the syntax and formats employed by the FFmpeg
670       libraries and tools.
671
672   Quoting and escaping
673       FFmpeg adopts the following quoting and escaping mechanism, unless
674       explicitly specified. The following rules are applied:
675
676       •   ' and \ are special characters (respectively used for quoting and
677           escaping). In addition to them, there might be other special
678           characters depending on the specific syntax where the escaping and
679           quoting are employed.
680
681       •   A special character is escaped by prefixing it with a \.
682
683       •   All characters enclosed between '' are included literally in the
684           parsed string. The quote character ' itself cannot be quoted, so
685           you may need to close the quote and escape it.
686
687       •   Leading and trailing whitespaces, unless escaped or quoted, are
688           removed from the parsed string.
689
690       Note that you may need to add a second level of escaping when using the
691       command line or a script, which depends on the syntax of the adopted
692       shell language.
693
694       The function "av_get_token" defined in libavutil/avstring.h can be used
695       to parse a token quoted or escaped according to the rules defined
696       above.
697
698       The tool tools/ffescape in the FFmpeg source tree can be used to
699       automatically quote or escape a string in a script.
700
701       Examples
702
703       •   Escape the string "Crime d'Amour" containing the "'" special
704           character:
705
706                   Crime d\'Amour
707
708       •   The string above contains a quote, so the "'" needs to be escaped
709           when quoting it:
710
711                   'Crime d'\''Amour'
712
713       •   Include leading or trailing whitespaces using quoting:
714
715                   '  this string starts and ends with whitespaces  '
716
717       •   Escaping and quoting can be mixed together:
718
719                   ' The string '\'string\'' is a string '
720
721       •   To include a literal \ you can use either escaping or quoting:
722
723                   'c:\foo' can be written as c:\\foo
724
725   Date
726       The accepted syntax is:
727
728               [(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
729               now
730
731       If the value is "now" it takes the current time.
732
733       Time is local time unless Z is appended, in which case it is
734       interpreted as UTC.  If the year-month-day part is not specified it
735       takes the current year-month-day.
736
737   Time duration
738       There are two accepted syntaxes for expressing time duration.
739
740               [-][<HH>:]<MM>:<SS>[.<m>...]
741
742       HH expresses the number of hours, MM the number of minutes for a
743       maximum of 2 digits, and SS the number of seconds for a maximum of 2
744       digits. The m at the end expresses decimal value for SS.
745
746       or
747
748               [-]<S>+[.<m>...][s|ms|us]
749
750       S expresses the number of seconds, with the optional decimal part m.
751       The optional literal suffixes s, ms or us indicate to interpret the
752       value as seconds, milliseconds or microseconds, respectively.
753
754       In both expressions, the optional - indicates negative duration.
755
756       Examples
757
758       The following examples are all valid time duration:
759
760       55  55 seconds
761
762       0.2 0.2 seconds
763
764       200ms
765           200 milliseconds, that's 0.2s
766
767       200000us
768           200000 microseconds, that's 0.2s
769
770       12:03:45
771           12 hours, 03 minutes and 45 seconds
772
773       23.189
774           23.189 seconds
775
776   Video size
777       Specify the size of the sourced video, it may be a string of the form
778       widthxheight, or the name of a size abbreviation.
779
780       The following abbreviations are recognized:
781
782       ntsc
783           720x480
784
785       pal 720x576
786
787       qntsc
788           352x240
789
790       qpal
791           352x288
792
793       sntsc
794           640x480
795
796       spal
797           768x576
798
799       film
800           352x240
801
802       ntsc-film
803           352x240
804
805       sqcif
806           128x96
807
808       qcif
809           176x144
810
811       cif 352x288
812
813       4cif
814           704x576
815
816       16cif
817           1408x1152
818
819       qqvga
820           160x120
821
822       qvga
823           320x240
824
825       vga 640x480
826
827       svga
828           800x600
829
830       xga 1024x768
831
832       uxga
833           1600x1200
834
835       qxga
836           2048x1536
837
838       sxga
839           1280x1024
840
841       qsxga
842           2560x2048
843
844       hsxga
845           5120x4096
846
847       wvga
848           852x480
849
850       wxga
851           1366x768
852
853       wsxga
854           1600x1024
855
856       wuxga
857           1920x1200
858
859       woxga
860           2560x1600
861
862       wqsxga
863           3200x2048
864
865       wquxga
866           3840x2400
867
868       whsxga
869           6400x4096
870
871       whuxga
872           7680x4800
873
874       cga 320x200
875
876       ega 640x350
877
878       hd480
879           852x480
880
881       hd720
882           1280x720
883
884       hd1080
885           1920x1080
886
887       2k  2048x1080
888
889       2kflat
890           1998x1080
891
892       2kscope
893           2048x858
894
895       4k  4096x2160
896
897       4kflat
898           3996x2160
899
900       4kscope
901           4096x1716
902
903       nhd 640x360
904
905       hqvga
906           240x160
907
908       wqvga
909           400x240
910
911       fwqvga
912           432x240
913
914       hvga
915           480x320
916
917       qhd 960x540
918
919       2kdci
920           2048x1080
921
922       4kdci
923           4096x2160
924
925       uhd2160
926           3840x2160
927
928       uhd4320
929           7680x4320
930
931   Video rate
932       Specify the frame rate of a video, expressed as the number of frames
933       generated per second. It has to be a string in the format
934       frame_rate_num/frame_rate_den, an integer number, a float number or a
935       valid video frame rate abbreviation.
936
937       The following abbreviations are recognized:
938
939       ntsc
940           30000/1001
941
942       pal 25/1
943
944       qntsc
945           30000/1001
946
947       qpal
948           25/1
949
950       sntsc
951           30000/1001
952
953       spal
954           25/1
955
956       film
957           24/1
958
959       ntsc-film
960           24000/1001
961
962   Ratio
963       A ratio can be expressed as an expression, or in the form
964       numerator:denominator.
965
966       Note that a ratio with infinite (1/0) or negative value is considered
967       valid, so you should check on the returned value if you want to exclude
968       those values.
969
970       The undefined value can be expressed using the "0:0" string.
971
972   Color
973       It can be the name of a color as defined below (case insensitive match)
974       or a "[0x|#]RRGGBB[AA]" sequence, possibly followed by @ and a string
975       representing the alpha component.
976
977       The alpha component may be a string composed by "0x" followed by an
978       hexadecimal number or a decimal number between 0.0 and 1.0, which
979       represents the opacity value (0x00 or 0.0 means completely transparent,
980       0xff or 1.0 completely opaque). If the alpha component is not specified
981       then 0xff is assumed.
982
983       The string random will result in a random color.
984
985       The following names of colors are recognized:
986
987       AliceBlue
988           0xF0F8FF
989
990       AntiqueWhite
991           0xFAEBD7
992
993       Aqua
994           0x00FFFF
995
996       Aquamarine
997           0x7FFFD4
998
999       Azure
1000           0xF0FFFF
1001
1002       Beige
1003           0xF5F5DC
1004
1005       Bisque
1006           0xFFE4C4
1007
1008       Black
1009           0x000000
1010
1011       BlanchedAlmond
1012           0xFFEBCD
1013
1014       Blue
1015           0x0000FF
1016
1017       BlueViolet
1018           0x8A2BE2
1019
1020       Brown
1021           0xA52A2A
1022
1023       BurlyWood
1024           0xDEB887
1025
1026       CadetBlue
1027           0x5F9EA0
1028
1029       Chartreuse
1030           0x7FFF00
1031
1032       Chocolate
1033           0xD2691E
1034
1035       Coral
1036           0xFF7F50
1037
1038       CornflowerBlue
1039           0x6495ED
1040
1041       Cornsilk
1042           0xFFF8DC
1043
1044       Crimson
1045           0xDC143C
1046
1047       Cyan
1048           0x00FFFF
1049
1050       DarkBlue
1051           0x00008B
1052
1053       DarkCyan
1054           0x008B8B
1055
1056       DarkGoldenRod
1057           0xB8860B
1058
1059       DarkGray
1060           0xA9A9A9
1061
1062       DarkGreen
1063           0x006400
1064
1065       DarkKhaki
1066           0xBDB76B
1067
1068       DarkMagenta
1069           0x8B008B
1070
1071       DarkOliveGreen
1072           0x556B2F
1073
1074       Darkorange
1075           0xFF8C00
1076
1077       DarkOrchid
1078           0x9932CC
1079
1080       DarkRed
1081           0x8B0000
1082
1083       DarkSalmon
1084           0xE9967A
1085
1086       DarkSeaGreen
1087           0x8FBC8F
1088
1089       DarkSlateBlue
1090           0x483D8B
1091
1092       DarkSlateGray
1093           0x2F4F4F
1094
1095       DarkTurquoise
1096           0x00CED1
1097
1098       DarkViolet
1099           0x9400D3
1100
1101       DeepPink
1102           0xFF1493
1103
1104       DeepSkyBlue
1105           0x00BFFF
1106
1107       DimGray
1108           0x696969
1109
1110       DodgerBlue
1111           0x1E90FF
1112
1113       FireBrick
1114           0xB22222
1115
1116       FloralWhite
1117           0xFFFAF0
1118
1119       ForestGreen
1120           0x228B22
1121
1122       Fuchsia
1123           0xFF00FF
1124
1125       Gainsboro
1126           0xDCDCDC
1127
1128       GhostWhite
1129           0xF8F8FF
1130
1131       Gold
1132           0xFFD700
1133
1134       GoldenRod
1135           0xDAA520
1136
1137       Gray
1138           0x808080
1139
1140       Green
1141           0x008000
1142
1143       GreenYellow
1144           0xADFF2F
1145
1146       HoneyDew
1147           0xF0FFF0
1148
1149       HotPink
1150           0xFF69B4
1151
1152       IndianRed
1153           0xCD5C5C
1154
1155       Indigo
1156           0x4B0082
1157
1158       Ivory
1159           0xFFFFF0
1160
1161       Khaki
1162           0xF0E68C
1163
1164       Lavender
1165           0xE6E6FA
1166
1167       LavenderBlush
1168           0xFFF0F5
1169
1170       LawnGreen
1171           0x7CFC00
1172
1173       LemonChiffon
1174           0xFFFACD
1175
1176       LightBlue
1177           0xADD8E6
1178
1179       LightCoral
1180           0xF08080
1181
1182       LightCyan
1183           0xE0FFFF
1184
1185       LightGoldenRodYellow
1186           0xFAFAD2
1187
1188       LightGreen
1189           0x90EE90
1190
1191       LightGrey
1192           0xD3D3D3
1193
1194       LightPink
1195           0xFFB6C1
1196
1197       LightSalmon
1198           0xFFA07A
1199
1200       LightSeaGreen
1201           0x20B2AA
1202
1203       LightSkyBlue
1204           0x87CEFA
1205
1206       LightSlateGray
1207           0x778899
1208
1209       LightSteelBlue
1210           0xB0C4DE
1211
1212       LightYellow
1213           0xFFFFE0
1214
1215       Lime
1216           0x00FF00
1217
1218       LimeGreen
1219           0x32CD32
1220
1221       Linen
1222           0xFAF0E6
1223
1224       Magenta
1225           0xFF00FF
1226
1227       Maroon
1228           0x800000
1229
1230       MediumAquaMarine
1231           0x66CDAA
1232
1233       MediumBlue
1234           0x0000CD
1235
1236       MediumOrchid
1237           0xBA55D3
1238
1239       MediumPurple
1240           0x9370D8
1241
1242       MediumSeaGreen
1243           0x3CB371
1244
1245       MediumSlateBlue
1246           0x7B68EE
1247
1248       MediumSpringGreen
1249           0x00FA9A
1250
1251       MediumTurquoise
1252           0x48D1CC
1253
1254       MediumVioletRed
1255           0xC71585
1256
1257       MidnightBlue
1258           0x191970
1259
1260       MintCream
1261           0xF5FFFA
1262
1263       MistyRose
1264           0xFFE4E1
1265
1266       Moccasin
1267           0xFFE4B5
1268
1269       NavajoWhite
1270           0xFFDEAD
1271
1272       Navy
1273           0x000080
1274
1275       OldLace
1276           0xFDF5E6
1277
1278       Olive
1279           0x808000
1280
1281       OliveDrab
1282           0x6B8E23
1283
1284       Orange
1285           0xFFA500
1286
1287       OrangeRed
1288           0xFF4500
1289
1290       Orchid
1291           0xDA70D6
1292
1293       PaleGoldenRod
1294           0xEEE8AA
1295
1296       PaleGreen
1297           0x98FB98
1298
1299       PaleTurquoise
1300           0xAFEEEE
1301
1302       PaleVioletRed
1303           0xD87093
1304
1305       PapayaWhip
1306           0xFFEFD5
1307
1308       PeachPuff
1309           0xFFDAB9
1310
1311       Peru
1312           0xCD853F
1313
1314       Pink
1315           0xFFC0CB
1316
1317       Plum
1318           0xDDA0DD
1319
1320       PowderBlue
1321           0xB0E0E6
1322
1323       Purple
1324           0x800080
1325
1326       Red 0xFF0000
1327
1328       RosyBrown
1329           0xBC8F8F
1330
1331       RoyalBlue
1332           0x4169E1
1333
1334       SaddleBrown
1335           0x8B4513
1336
1337       Salmon
1338           0xFA8072
1339
1340       SandyBrown
1341           0xF4A460
1342
1343       SeaGreen
1344           0x2E8B57
1345
1346       SeaShell
1347           0xFFF5EE
1348
1349       Sienna
1350           0xA0522D
1351
1352       Silver
1353           0xC0C0C0
1354
1355       SkyBlue
1356           0x87CEEB
1357
1358       SlateBlue
1359           0x6A5ACD
1360
1361       SlateGray
1362           0x708090
1363
1364       Snow
1365           0xFFFAFA
1366
1367       SpringGreen
1368           0x00FF7F
1369
1370       SteelBlue
1371           0x4682B4
1372
1373       Tan 0xD2B48C
1374
1375       Teal
1376           0x008080
1377
1378       Thistle
1379           0xD8BFD8
1380
1381       Tomato
1382           0xFF6347
1383
1384       Turquoise
1385           0x40E0D0
1386
1387       Violet
1388           0xEE82EE
1389
1390       Wheat
1391           0xF5DEB3
1392
1393       White
1394           0xFFFFFF
1395
1396       WhiteSmoke
1397           0xF5F5F5
1398
1399       Yellow
1400           0xFFFF00
1401
1402       YellowGreen
1403           0x9ACD32
1404
1405   Channel Layout
1406       A channel layout specifies the spatial disposition of the channels in a
1407       multi-channel audio stream. To specify a channel layout, FFmpeg makes
1408       use of a special syntax.
1409
1410       Individual channels are identified by an id, as given by the table
1411       below:
1412
1413       FL  front left
1414
1415       FR  front right
1416
1417       FC  front center
1418
1419       LFE low frequency
1420
1421       BL  back left
1422
1423       BR  back right
1424
1425       FLC front left-of-center
1426
1427       FRC front right-of-center
1428
1429       BC  back center
1430
1431       SL  side left
1432
1433       SR  side right
1434
1435       TC  top center
1436
1437       TFL top front left
1438
1439       TFC top front center
1440
1441       TFR top front right
1442
1443       TBL top back left
1444
1445       TBC top back center
1446
1447       TBR top back right
1448
1449       DL  downmix left
1450
1451       DR  downmix right
1452
1453       WL  wide left
1454
1455       WR  wide right
1456
1457       SDL surround direct left
1458
1459       SDR surround direct right
1460
1461       LFE2
1462           low frequency 2
1463
1464       Standard channel layout compositions can be specified by using the
1465       following identifiers:
1466
1467       mono
1468           FC
1469
1470       stereo
1471           FL+FR
1472
1473       2.1 FL+FR+LFE
1474
1475       3.0 FL+FR+FC
1476
1477       3.0(back)
1478           FL+FR+BC
1479
1480       4.0 FL+FR+FC+BC
1481
1482       quad
1483           FL+FR+BL+BR
1484
1485       quad(side)
1486           FL+FR+SL+SR
1487
1488       3.1 FL+FR+FC+LFE
1489
1490       5.0 FL+FR+FC+BL+BR
1491
1492       5.0(side)
1493           FL+FR+FC+SL+SR
1494
1495       4.1 FL+FR+FC+LFE+BC
1496
1497       5.1 FL+FR+FC+LFE+BL+BR
1498
1499       5.1(side)
1500           FL+FR+FC+LFE+SL+SR
1501
1502       6.0 FL+FR+FC+BC+SL+SR
1503
1504       6.0(front)
1505           FL+FR+FLC+FRC+SL+SR
1506
1507       hexagonal
1508           FL+FR+FC+BL+BR+BC
1509
1510       6.1 FL+FR+FC+LFE+BC+SL+SR
1511
1512       6.1 FL+FR+FC+LFE+BL+BR+BC
1513
1514       6.1(front)
1515           FL+FR+LFE+FLC+FRC+SL+SR
1516
1517       7.0 FL+FR+FC+BL+BR+SL+SR
1518
1519       7.0(front)
1520           FL+FR+FC+FLC+FRC+SL+SR
1521
1522       7.1 FL+FR+FC+LFE+BL+BR+SL+SR
1523
1524       7.1(wide)
1525           FL+FR+FC+LFE+BL+BR+FLC+FRC
1526
1527       7.1(wide-side)
1528           FL+FR+FC+LFE+FLC+FRC+SL+SR
1529
1530       octagonal
1531           FL+FR+FC+BL+BR+BC+SL+SR
1532
1533       hexadecagonal
1534           FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR
1535
1536       downmix
1537           DL+DR
1538
1539       22.2
1540           FL+FR+FC+LFE+BL+BR+FLC+FRC+BC+SL+SR+TC+TFL+TFC+TFR+TBL+TBC+TBR+LFE2+TSL+TSR+BFC+BFL+BFR
1541
1542       A custom channel layout can be specified as a sequence of terms,
1543       separated by '+'.  Each term can be:
1544
1545       •   the name of a single channel (e.g. FL, FR, FC, LFE, etc.), each
1546           optionally containing a custom name after a '@', (e.g. FL@Left,
1547           FR@Right, FC@Center, LFE@Low_Frequency, etc.)
1548
1549       A standard channel layout can be specified by the following:
1550
1551       •   the name of a single channel (e.g. FL, FR, FC, LFE, etc.)
1552
1553       •   the name of a standard channel layout (e.g. mono, stereo, 4.0,
1554           quad, 5.0, etc.)
1555
1556       •   a number of channels, in decimal, followed by 'c', yielding the
1557           default channel layout for that number of channels (see the
1558           function "av_channel_layout_default"). Note that not all channel
1559           counts have a default layout.
1560
1561       •   a number of channels, in decimal, followed by 'C', yielding an
1562           unknown channel layout with the specified number of channels. Note
1563           that not all channel layout specification strings support unknown
1564           channel layouts.
1565
1566       •   a channel layout mask, in hexadecimal starting with "0x" (see the
1567           "AV_CH_*" macros in libavutil/channel_layout.h.
1568
1569       Before libavutil version 53 the trailing character "c" to specify a
1570       number of channels was optional, but now it is required, while a
1571       channel layout mask can also be specified as a decimal number (if and
1572       only if not followed by "c" or "C").
1573
1574       See also the function "av_channel_layout_from_string" defined in
1575       libavutil/channel_layout.h.
1576

EXPRESSION EVALUATION

1578       When evaluating an arithmetic expression, FFmpeg uses an internal
1579       formula evaluator, implemented through the libavutil/eval.h interface.
1580
1581       An expression may contain unary, binary operators, constants, and
1582       functions.
1583
1584       Two expressions expr1 and expr2 can be combined to form another
1585       expression "expr1;expr2".  expr1 and expr2 are evaluated in turn, and
1586       the new expression evaluates to the value of expr2.
1587
1588       The following binary operators are available: "+", "-", "*", "/", "^".
1589
1590       The following unary operators are available: "+", "-".
1591
1592       The following functions are available:
1593
1594       abs(x)
1595           Compute absolute value of x.
1596
1597       acos(x)
1598           Compute arccosine of x.
1599
1600       asin(x)
1601           Compute arcsine of x.
1602
1603       atan(x)
1604           Compute arctangent of x.
1605
1606       atan2(x, y)
1607           Compute principal value of the arc tangent of y/x.
1608
1609       between(x, min, max)
1610           Return 1 if x is greater than or equal to min and lesser than or
1611           equal to max, 0 otherwise.
1612
1613       bitand(x, y)
1614       bitor(x, y)
1615           Compute bitwise and/or operation on x and y.
1616
1617           The results of the evaluation of x and y are converted to integers
1618           before executing the bitwise operation.
1619
1620           Note that both the conversion to integer and the conversion back to
1621           floating point can lose precision. Beware of unexpected results for
1622           large numbers (usually 2^53 and larger).
1623
1624       ceil(expr)
1625           Round the value of expression expr upwards to the nearest integer.
1626           For example, "ceil(1.5)" is "2.0".
1627
1628       clip(x, min, max)
1629           Return the value of x clipped between min and max.
1630
1631       cos(x)
1632           Compute cosine of x.
1633
1634       cosh(x)
1635           Compute hyperbolic cosine of x.
1636
1637       eq(x, y)
1638           Return 1 if x and y are equivalent, 0 otherwise.
1639
1640       exp(x)
1641           Compute exponential of x (with base "e", the Euler's number).
1642
1643       floor(expr)
1644           Round the value of expression expr downwards to the nearest
1645           integer. For example, "floor(-1.5)" is "-2.0".
1646
1647       gauss(x)
1648           Compute Gauss function of x, corresponding to "exp(-x*x/2) /
1649           sqrt(2*PI)".
1650
1651       gcd(x, y)
1652           Return the greatest common divisor of x and y. If both x and y are
1653           0 or either or both are less than zero then behavior is undefined.
1654
1655       gt(x, y)
1656           Return 1 if x is greater than y, 0 otherwise.
1657
1658       gte(x, y)
1659           Return 1 if x is greater than or equal to y, 0 otherwise.
1660
1661       hypot(x, y)
1662           This function is similar to the C function with the same name; it
1663           returns "sqrt(x*x + y*y)", the length of the hypotenuse of a right
1664           triangle with sides of length x and y, or the distance of the point
1665           (x, y) from the origin.
1666
1667       if(x, y)
1668           Evaluate x, and if the result is non-zero return the result of the
1669           evaluation of y, return 0 otherwise.
1670
1671       if(x, y, z)
1672           Evaluate x, and if the result is non-zero return the evaluation
1673           result of y, otherwise the evaluation result of z.
1674
1675       ifnot(x, y)
1676           Evaluate x, and if the result is zero return the result of the
1677           evaluation of y, return 0 otherwise.
1678
1679       ifnot(x, y, z)
1680           Evaluate x, and if the result is zero return the evaluation result
1681           of y, otherwise the evaluation result of z.
1682
1683       isinf(x)
1684           Return 1.0 if x is +/-INFINITY, 0.0 otherwise.
1685
1686       isnan(x)
1687           Return 1.0 if x is NAN, 0.0 otherwise.
1688
1689       ld(var)
1690           Load the value of the internal variable with number var, which was
1691           previously stored with st(var, expr).  The function returns the
1692           loaded value.
1693
1694       lerp(x, y, z)
1695           Return linear interpolation between x and y by amount of z.
1696
1697       log(x)
1698           Compute natural logarithm of x.
1699
1700       lt(x, y)
1701           Return 1 if x is lesser than y, 0 otherwise.
1702
1703       lte(x, y)
1704           Return 1 if x is lesser than or equal to y, 0 otherwise.
1705
1706       max(x, y)
1707           Return the maximum between x and y.
1708
1709       min(x, y)
1710           Return the minimum between x and y.
1711
1712       mod(x, y)
1713           Compute the remainder of division of x by y.
1714
1715       not(expr)
1716           Return 1.0 if expr is zero, 0.0 otherwise.
1717
1718       pow(x, y)
1719           Compute the power of x elevated y, it is equivalent to "(x)^(y)".
1720
1721       print(t)
1722       print(t, l)
1723           Print the value of expression t with loglevel l. If l is not
1724           specified then a default log level is used.  Returns the value of
1725           the expression printed.
1726
1727           Prints t with loglevel l
1728
1729       random(x)
1730           Return a pseudo random value between 0.0 and 1.0. x is the index of
1731           the internal variable which will be used to save the seed/state.
1732
1733       root(expr, max)
1734           Find an input value for which the function represented by expr with
1735           argument ld(0) is 0 in the interval 0..max.
1736
1737           The expression in expr must denote a continuous function or the
1738           result is undefined.
1739
1740           ld(0) is used to represent the function input value, which means
1741           that the given expression will be evaluated multiple times with
1742           various input values that the expression can access through ld(0).
1743           When the expression evaluates to 0 then the corresponding input
1744           value will be returned.
1745
1746       round(expr)
1747           Round the value of expression expr to the nearest integer. For
1748           example, "round(1.5)" is "2.0".
1749
1750       sgn(x)
1751           Compute sign of x.
1752
1753       sin(x)
1754           Compute sine of x.
1755
1756       sinh(x)
1757           Compute hyperbolic sine of x.
1758
1759       sqrt(expr)
1760           Compute the square root of expr. This is equivalent to "(expr)^.5".
1761
1762       squish(x)
1763           Compute expression "1/(1 + exp(4*x))".
1764
1765       st(var, expr)
1766           Store the value of the expression expr in an internal variable. var
1767           specifies the number of the variable where to store the value, and
1768           it is a value ranging from 0 to 9. The function returns the value
1769           stored in the internal variable.  Note, Variables are currently not
1770           shared between expressions.
1771
1772       tan(x)
1773           Compute tangent of x.
1774
1775       tanh(x)
1776           Compute hyperbolic tangent of x.
1777
1778       taylor(expr, x)
1779       taylor(expr, x, id)
1780           Evaluate a Taylor series at x, given an expression representing the
1781           "ld(id)"-th derivative of a function at 0.
1782
1783           When the series does not converge the result is undefined.
1784
1785           ld(id) is used to represent the derivative order in expr, which
1786           means that the given expression will be evaluated multiple times
1787           with various input values that the expression can access through
1788           "ld(id)". If id is not specified then 0 is assumed.
1789
1790           Note, when you have the derivatives at y instead of 0,
1791           "taylor(expr, x-y)" can be used.
1792
1793       time(0)
1794           Return the current (wallclock) time in seconds.
1795
1796       trunc(expr)
1797           Round the value of expression expr towards zero to the nearest
1798           integer. For example, "trunc(-1.5)" is "-1.0".
1799
1800       while(cond, expr)
1801           Evaluate expression expr while the expression cond is non-zero, and
1802           returns the value of the last expr evaluation, or NAN if cond was
1803           always false.
1804
1805       The following constants are available:
1806
1807       PI  area of the unit disc, approximately 3.14
1808
1809       E   exp(1) (Euler's number), approximately 2.718
1810
1811       PHI golden ratio (1+sqrt(5))/2, approximately 1.618
1812
1813       Assuming that an expression is considered "true" if it has a non-zero
1814       value, note that:
1815
1816       "*" works like AND
1817
1818       "+" works like OR
1819
1820       For example the construct:
1821
1822               if (A AND B) then C
1823
1824       is equivalent to:
1825
1826               if(A*B, C)
1827
1828       In your C code, you can extend the list of unary and binary functions,
1829       and define recognized constants, so that they are available for your
1830       expressions.
1831
1832       The evaluator also recognizes the International System unit prefixes.
1833       If 'i' is appended after the prefix, binary prefixes are used, which
1834       are based on powers of 1024 instead of powers of 1000.  The 'B' postfix
1835       multiplies the value by 8, and can be appended after a unit prefix or
1836       used alone. This allows using for example 'KB', 'MiB', 'G' and 'B' as
1837       number postfix.
1838
1839       The list of available International System prefixes follows, with
1840       indication of the corresponding powers of 10 and of 2.
1841
1842       y   10^-24 / 2^-80
1843
1844       z   10^-21 / 2^-70
1845
1846       a   10^-18 / 2^-60
1847
1848       f   10^-15 / 2^-50
1849
1850       p   10^-12 / 2^-40
1851
1852       n   10^-9 / 2^-30
1853
1854       u   10^-6 / 2^-20
1855
1856       m   10^-3 / 2^-10
1857
1858       c   10^-2
1859
1860       d   10^-1
1861
1862       h   10^2
1863
1864       k   10^3 / 2^10
1865
1866       K   10^3 / 2^10
1867
1868       M   10^6 / 2^20
1869
1870       G   10^9 / 2^30
1871
1872       T   10^12 / 2^40
1873
1874       P   10^15 / 2^40
1875
1876       E   10^18 / 2^50
1877
1878       Z   10^21 / 2^60
1879
1880       Y   10^24 / 2^70
1881

CODEC OPTIONS

1883       libavcodec provides some generic global options, which can be set on
1884       all the encoders and decoders. In addition each codec may support so-
1885       called private options, which are specific for a given codec.
1886
1887       Sometimes, a global option may only affect a specific kind of codec,
1888       and may be nonsensical or ignored by another, so you need to be aware
1889       of the meaning of the specified options. Also some options are meant
1890       only for decoding or encoding.
1891
1892       Options may be set by specifying -option value in the FFmpeg tools, or
1893       by setting the value explicitly in the "AVCodecContext" options or
1894       using the libavutil/opt.h API for programmatic use.
1895
1896       The list of supported options follow:
1897
1898       b integer (encoding,audio,video)
1899           Set bitrate in bits/s. Default value is 200K.
1900
1901       ab integer (encoding,audio)
1902           Set audio bitrate (in bits/s). Default value is 128K.
1903
1904       bt integer (encoding,video)
1905           Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
1906           tolerance specifies how far ratecontrol is willing to deviate from
1907           the target average bitrate value. This is not related to min/max
1908           bitrate. Lowering tolerance too much has an adverse effect on
1909           quality.
1910
1911       flags flags (decoding/encoding,audio,video,subtitles)
1912           Set generic flags.
1913
1914           Possible values:
1915
1916           mv4 Use four motion vector by macroblock (mpeg4).
1917
1918           qpel
1919               Use 1/4 pel motion compensation.
1920
1921           loop
1922               Use loop filter.
1923
1924           qscale
1925               Use fixed qscale.
1926
1927           pass1
1928               Use internal 2pass ratecontrol in first pass mode.
1929
1930           pass2
1931               Use internal 2pass ratecontrol in second pass mode.
1932
1933           gray
1934               Only decode/encode grayscale.
1935
1936           psnr
1937               Set error[?] variables during encoding.
1938
1939           truncated
1940               Input bitstream might be randomly truncated.
1941
1942           drop_changed
1943               Don't output frames whose parameters differ from first decoded
1944               frame in stream.  Error AVERROR_INPUT_CHANGED is returned when
1945               a frame is dropped.
1946
1947           ildct
1948               Use interlaced DCT.
1949
1950           low_delay
1951               Force low delay.
1952
1953           global_header
1954               Place global headers in extradata instead of every keyframe.
1955
1956           bitexact
1957               Only write platform-, build- and time-independent data. (except
1958               (I)DCT).  This ensures that file and data checksums are
1959               reproducible and match between platforms. Its primary use is
1960               for regression testing.
1961
1962           aic Apply H263 advanced intra coding / mpeg4 ac prediction.
1963
1964           ilme
1965               Apply interlaced motion estimation.
1966
1967           cgop
1968               Use closed gop.
1969
1970           output_corrupt
1971               Output even potentially corrupted frames.
1972
1973       time_base rational number
1974           Set codec time base.
1975
1976           It is the fundamental unit of time (in seconds) in terms of which
1977           frame timestamps are represented. For fixed-fps content, timebase
1978           should be "1 / frame_rate" and timestamp increments should be
1979           identically 1.
1980
1981       g integer (encoding,video)
1982           Set the group of picture (GOP) size. Default value is 12.
1983
1984       ar integer (decoding/encoding,audio)
1985           Set audio sampling rate (in Hz).
1986
1987       ac integer (decoding/encoding,audio)
1988           Set number of audio channels.
1989
1990       cutoff integer (encoding,audio)
1991           Set cutoff bandwidth. (Supported only by selected encoders, see
1992           their respective documentation sections.)
1993
1994       frame_size integer (encoding,audio)
1995           Set audio frame size.
1996
1997           Each submitted frame except the last must contain exactly
1998           frame_size samples per channel. May be 0 when the codec has
1999           CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is
2000           not restricted. It is set by some decoders to indicate constant
2001           frame size.
2002
2003       frame_number integer
2004           Set the frame number.
2005
2006       delay integer
2007       qcomp float (encoding,video)
2008           Set video quantizer scale compression (VBR). It is used as a
2009           constant in the ratecontrol equation. Recommended range for default
2010           rc_eq: 0.0-1.0.
2011
2012       qblur float (encoding,video)
2013           Set video quantizer scale blur (VBR).
2014
2015       qmin integer (encoding,video)
2016           Set min video quantizer scale (VBR). Must be included between -1
2017           and 69, default value is 2.
2018
2019       qmax integer (encoding,video)
2020           Set max video quantizer scale (VBR). Must be included between -1
2021           and 1024, default value is 31.
2022
2023       qdiff integer (encoding,video)
2024           Set max difference between the quantizer scale (VBR).
2025
2026       bf integer (encoding,video)
2027           Set max number of B frames between non-B-frames.
2028
2029           Must be an integer between -1 and 16. 0 means that B-frames are
2030           disabled. If a value of -1 is used, it will choose an automatic
2031           value depending on the encoder.
2032
2033           Default value is 0.
2034
2035       b_qfactor float (encoding,video)
2036           Set qp factor between P and B frames.
2037
2038       codec_tag integer
2039       bug flags (decoding,video)
2040           Workaround not auto detected encoder bugs.
2041
2042           Possible values:
2043
2044           autodetect
2045           xvid_ilace
2046               Xvid interlacing bug (autodetected if fourcc==XVIX)
2047
2048           ump4
2049               (autodetected if fourcc==UMP4)
2050
2051           no_padding
2052               padding bug (autodetected)
2053
2054           amv
2055           qpel_chroma
2056           std_qpel
2057               old standard qpel (autodetected per fourcc/version)
2058
2059           qpel_chroma2
2060           direct_blocksize
2061               direct-qpel-blocksize bug (autodetected per fourcc/version)
2062
2063           edge
2064               edge padding bug (autodetected per fourcc/version)
2065
2066           hpel_chroma
2067           dc_clip
2068           ms  Workaround various bugs in microsoft broken decoders.
2069
2070           trunc
2071               trancated frames
2072
2073       strict integer (decoding/encoding,audio,video)
2074           Specify how strictly to follow the standards.
2075
2076           Possible values:
2077
2078           very
2079               strictly conform to an older more strict version of the spec or
2080               reference software
2081
2082           strict
2083               strictly conform to all the things in the spec no matter what
2084               consequences
2085
2086           normal
2087           unofficial
2088               allow unofficial extensions
2089
2090           experimental
2091               allow non standardized experimental things, experimental
2092               (unfinished/work in progress/not well tested) decoders and
2093               encoders.  Note: experimental decoders can pose a security
2094               risk, do not use this for decoding untrusted input.
2095
2096       b_qoffset float (encoding,video)
2097           Set QP offset between P and B frames.
2098
2099       err_detect flags (decoding,audio,video)
2100           Set error detection flags.
2101
2102           Possible values:
2103
2104           crccheck
2105               verify embedded CRCs
2106
2107           bitstream
2108               detect bitstream specification deviations
2109
2110           buffer
2111               detect improper bitstream length
2112
2113           explode
2114               abort decoding on minor error detection
2115
2116           ignore_err
2117               ignore decoding errors, and continue decoding.  This is useful
2118               if you want to analyze the content of a video and thus want
2119               everything to be decoded no matter what. This option will not
2120               result in a video that is pleasing to watch in case of errors.
2121
2122           careful
2123               consider things that violate the spec and have not been seen in
2124               the wild as errors
2125
2126           compliant
2127               consider all spec non compliancies as errors
2128
2129           aggressive
2130               consider things that a sane encoder should not do as an error
2131
2132       has_b_frames integer
2133       block_align integer
2134       rc_override_count integer
2135       maxrate integer (encoding,audio,video)
2136           Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
2137
2138       minrate integer (encoding,audio,video)
2139           Set min bitrate tolerance (in bits/s). Most useful in setting up a
2140           CBR encode. It is of little use elsewise.
2141
2142       bufsize integer (encoding,audio,video)
2143           Set ratecontrol buffer size (in bits).
2144
2145       i_qfactor float (encoding,video)
2146           Set QP factor between P and I frames.
2147
2148       i_qoffset float (encoding,video)
2149           Set QP offset between P and I frames.
2150
2151       dct integer (encoding,video)
2152           Set DCT algorithm.
2153
2154           Possible values:
2155
2156           auto
2157               autoselect a good one (default)
2158
2159           fastint
2160               fast integer
2161
2162           int accurate integer
2163
2164           mmx
2165           altivec
2166           faan
2167               floating point AAN DCT
2168
2169       lumi_mask float (encoding,video)
2170           Compress bright areas stronger than medium ones.
2171
2172       tcplx_mask float (encoding,video)
2173           Set temporal complexity masking.
2174
2175       scplx_mask float (encoding,video)
2176           Set spatial complexity masking.
2177
2178       p_mask float (encoding,video)
2179           Set inter masking.
2180
2181       dark_mask float (encoding,video)
2182           Compress dark areas stronger than medium ones.
2183
2184       idct integer (decoding/encoding,video)
2185           Select IDCT implementation.
2186
2187           Possible values:
2188
2189           auto
2190           int
2191           simple
2192           simplemmx
2193           simpleauto
2194               Automatically pick a IDCT compatible with the simple one
2195
2196           arm
2197           altivec
2198           sh4
2199           simplearm
2200           simplearmv5te
2201           simplearmv6
2202           simpleneon
2203           xvid
2204           faani
2205               floating point AAN IDCT
2206
2207       slice_count integer
2208       ec flags (decoding,video)
2209           Set error concealment strategy.
2210
2211           Possible values:
2212
2213           guess_mvs
2214               iterative motion vector (MV) search (slow)
2215
2216           deblock
2217               use strong deblock filter for damaged MBs
2218
2219           favor_inter
2220               favor predicting from the previous frame instead of the current
2221
2222       bits_per_coded_sample integer
2223       aspect rational number (encoding,video)
2224           Set sample aspect ratio.
2225
2226       sar rational number (encoding,video)
2227           Set sample aspect ratio. Alias to aspect.
2228
2229       debug flags (decoding/encoding,audio,video,subtitles)
2230           Print specific debug info.
2231
2232           Possible values:
2233
2234           pict
2235               picture info
2236
2237           rc  rate control
2238
2239           bitstream
2240           mb_type
2241               macroblock (MB) type
2242
2243           qp  per-block quantization parameter (QP)
2244
2245           dct_coeff
2246           green_metadata
2247               display complexity metadata for the upcoming frame, GoP or for
2248               a given duration.
2249
2250           skip
2251           startcode
2252           er  error recognition
2253
2254           mmco
2255               memory management control operations (H.264)
2256
2257           bugs
2258           buffers
2259               picture buffer allocations
2260
2261           thread_ops
2262               threading operations
2263
2264           nomc
2265               skip motion compensation
2266
2267       cmp integer (encoding,video)
2268           Set full pel me compare function.
2269
2270           Possible values:
2271
2272           sad sum of absolute differences, fast (default)
2273
2274           sse sum of squared errors
2275
2276           satd
2277               sum of absolute Hadamard transformed differences
2278
2279           dct sum of absolute DCT transformed differences
2280
2281           psnr
2282               sum of squared quantization errors (avoid, low quality)
2283
2284           bit number of bits needed for the block
2285
2286           rd  rate distortion optimal, slow
2287
2288           zero
2289               0
2290
2291           vsad
2292               sum of absolute vertical differences
2293
2294           vsse
2295               sum of squared vertical differences
2296
2297           nsse
2298               noise preserving sum of squared differences
2299
2300           w53 5/3 wavelet, only used in snow
2301
2302           w97 9/7 wavelet, only used in snow
2303
2304           dctmax
2305           chroma
2306       subcmp integer (encoding,video)
2307           Set sub pel me compare function.
2308
2309           Possible values:
2310
2311           sad sum of absolute differences, fast (default)
2312
2313           sse sum of squared errors
2314
2315           satd
2316               sum of absolute Hadamard transformed differences
2317
2318           dct sum of absolute DCT transformed differences
2319
2320           psnr
2321               sum of squared quantization errors (avoid, low quality)
2322
2323           bit number of bits needed for the block
2324
2325           rd  rate distortion optimal, slow
2326
2327           zero
2328               0
2329
2330           vsad
2331               sum of absolute vertical differences
2332
2333           vsse
2334               sum of squared vertical differences
2335
2336           nsse
2337               noise preserving sum of squared differences
2338
2339           w53 5/3 wavelet, only used in snow
2340
2341           w97 9/7 wavelet, only used in snow
2342
2343           dctmax
2344           chroma
2345       mbcmp integer (encoding,video)
2346           Set macroblock compare function.
2347
2348           Possible values:
2349
2350           sad sum of absolute differences, fast (default)
2351
2352           sse sum of squared errors
2353
2354           satd
2355               sum of absolute Hadamard transformed differences
2356
2357           dct sum of absolute DCT transformed differences
2358
2359           psnr
2360               sum of squared quantization errors (avoid, low quality)
2361
2362           bit number of bits needed for the block
2363
2364           rd  rate distortion optimal, slow
2365
2366           zero
2367               0
2368
2369           vsad
2370               sum of absolute vertical differences
2371
2372           vsse
2373               sum of squared vertical differences
2374
2375           nsse
2376               noise preserving sum of squared differences
2377
2378           w53 5/3 wavelet, only used in snow
2379
2380           w97 9/7 wavelet, only used in snow
2381
2382           dctmax
2383           chroma
2384       ildctcmp integer (encoding,video)
2385           Set interlaced dct compare function.
2386
2387           Possible values:
2388
2389           sad sum of absolute differences, fast (default)
2390
2391           sse sum of squared errors
2392
2393           satd
2394               sum of absolute Hadamard transformed differences
2395
2396           dct sum of absolute DCT transformed differences
2397
2398           psnr
2399               sum of squared quantization errors (avoid, low quality)
2400
2401           bit number of bits needed for the block
2402
2403           rd  rate distortion optimal, slow
2404
2405           zero
2406               0
2407
2408           vsad
2409               sum of absolute vertical differences
2410
2411           vsse
2412               sum of squared vertical differences
2413
2414           nsse
2415               noise preserving sum of squared differences
2416
2417           w53 5/3 wavelet, only used in snow
2418
2419           w97 9/7 wavelet, only used in snow
2420
2421           dctmax
2422           chroma
2423       dia_size integer (encoding,video)
2424           Set diamond type & size for motion estimation.
2425
2426           (1024, INT_MAX)
2427               full motion estimation(slowest)
2428
2429           (768, 1024]
2430               umh motion estimation
2431
2432           (512, 768]
2433               hex motion estimation
2434
2435           (256, 512]
2436               l2s diamond motion estimation
2437
2438           [2,256]
2439               var diamond motion estimation
2440
2441           (-1,  2)
2442               small diamond motion estimation
2443
2444           -1  funny diamond motion estimation
2445
2446           (INT_MIN, -1)
2447               sab diamond motion estimation
2448
2449       last_pred integer (encoding,video)
2450           Set amount of motion predictors from the previous frame.
2451
2452       precmp integer (encoding,video)
2453           Set pre motion estimation compare function.
2454
2455           Possible values:
2456
2457           sad sum of absolute differences, fast (default)
2458
2459           sse sum of squared errors
2460
2461           satd
2462               sum of absolute Hadamard transformed differences
2463
2464           dct sum of absolute DCT transformed differences
2465
2466           psnr
2467               sum of squared quantization errors (avoid, low quality)
2468
2469           bit number of bits needed for the block
2470
2471           rd  rate distortion optimal, slow
2472
2473           zero
2474               0
2475
2476           vsad
2477               sum of absolute vertical differences
2478
2479           vsse
2480               sum of squared vertical differences
2481
2482           nsse
2483               noise preserving sum of squared differences
2484
2485           w53 5/3 wavelet, only used in snow
2486
2487           w97 9/7 wavelet, only used in snow
2488
2489           dctmax
2490           chroma
2491       pre_dia_size integer (encoding,video)
2492           Set diamond type & size for motion estimation pre-pass.
2493
2494       subq integer (encoding,video)
2495           Set sub pel motion estimation quality.
2496
2497       me_range integer (encoding,video)
2498           Set limit motion vectors range (1023 for DivX player).
2499
2500       global_quality integer (encoding,audio,video)
2501       slice_flags integer
2502       mbd integer (encoding,video)
2503           Set macroblock decision algorithm (high quality mode).
2504
2505           Possible values:
2506
2507           simple
2508               use mbcmp (default)
2509
2510           bits
2511               use fewest bits
2512
2513           rd  use best rate distortion
2514
2515       rc_init_occupancy integer (encoding,video)
2516           Set number of bits which should be loaded into the rc buffer before
2517           decoding starts.
2518
2519       flags2 flags (decoding/encoding,audio,video,subtitles)
2520           Possible values:
2521
2522           fast
2523               Allow non spec compliant speedup tricks.
2524
2525           noout
2526               Skip bitstream encoding.
2527
2528           ignorecrop
2529               Ignore cropping information from sps.
2530
2531           local_header
2532               Place global headers at every keyframe instead of in extradata.
2533
2534           chunks
2535               Frame data might be split into multiple chunks.
2536
2537           showall
2538               Show all frames before the first keyframe.
2539
2540           export_mvs
2541               Export motion vectors into frame side-data (see
2542               "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
2543               also doc/examples/export_mvs.c.
2544
2545           skip_manual
2546               Do not skip samples and export skip information as frame side
2547               data.
2548
2549           ass_ro_flush_noop
2550               Do not reset ASS ReadOrder field on flush.
2551
2552       export_side_data flags (decoding/encoding,audio,video,subtitles)
2553           Possible values:
2554
2555           mvs Export motion vectors into frame side-data (see
2556               "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
2557               also doc/examples/export_mvs.c.
2558
2559           prft
2560               Export encoder Producer Reference Time into packet side-data
2561               (see "AV_PKT_DATA_PRFT") for codecs that support it.
2562
2563           venc_params
2564               Export video encoding parameters through frame side data (see
2565               "AV_FRAME_DATA_VIDEO_ENC_PARAMS") for codecs that support it.
2566               At present, those are H.264 and VP9.
2567
2568           film_grain
2569               Export film grain parameters through frame side data (see
2570               "AV_FRAME_DATA_FILM_GRAIN_PARAMS").  Supported at present by
2571               AV1 decoders.
2572
2573       threads integer (decoding/encoding,video)
2574           Set the number of threads to be used, in case the selected codec
2575           implementation supports multi-threading.
2576
2577           Possible values:
2578
2579           auto, 0
2580               automatically select the number of threads to set
2581
2582           Default value is auto.
2583
2584       dc integer (encoding,video)
2585           Set intra_dc_precision.
2586
2587       nssew integer (encoding,video)
2588           Set nsse weight.
2589
2590       skip_top integer (decoding,video)
2591           Set number of macroblock rows at the top which are skipped.
2592
2593       skip_bottom integer (decoding,video)
2594           Set number of macroblock rows at the bottom which are skipped.
2595
2596       profile integer (encoding,audio,video)
2597           Set encoder codec profile. Default value is unknown. Encoder
2598           specific profiles are documented in the relevant encoder
2599           documentation.
2600
2601       level integer (encoding,audio,video)
2602           Possible values:
2603
2604           unknown
2605       lowres integer (decoding,audio,video)
2606           Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
2607
2608       mblmin integer (encoding,video)
2609           Set min macroblock lagrange factor (VBR).
2610
2611       mblmax integer (encoding,video)
2612           Set max macroblock lagrange factor (VBR).
2613
2614       skip_loop_filter integer (decoding,video)
2615       skip_idct        integer (decoding,video)
2616       skip_frame       integer (decoding,video)
2617           Make decoder discard processing depending on the frame type
2618           selected by the option value.
2619
2620           skip_loop_filter skips frame loop filtering, skip_idct skips frame
2621           IDCT/dequantization, skip_frame skips decoding.
2622
2623           Possible values:
2624
2625           none
2626               Discard no frame.
2627
2628           default
2629               Discard useless frames like 0-sized frames.
2630
2631           noref
2632               Discard all non-reference frames.
2633
2634           bidir
2635               Discard all bidirectional frames.
2636
2637           nokey
2638               Discard all frames excepts keyframes.
2639
2640           nointra
2641               Discard all frames except I frames.
2642
2643           all Discard all frames.
2644
2645           Default value is default.
2646
2647       bidir_refine integer (encoding,video)
2648           Refine the two motion vectors used in bidirectional macroblocks.
2649
2650       keyint_min integer (encoding,video)
2651           Set minimum interval between IDR-frames.
2652
2653       refs integer (encoding,video)
2654           Set reference frames to consider for motion compensation.
2655
2656       trellis integer (encoding,audio,video)
2657           Set rate-distortion optimal quantization.
2658
2659       mv0_threshold integer (encoding,video)
2660       compression_level integer (encoding,audio,video)
2661       bits_per_raw_sample integer
2662       channel_layout integer (decoding/encoding,audio)
2663           Possible values:
2664
2665       request_channel_layout integer (decoding,audio)
2666           Possible values:
2667
2668       rc_max_vbv_use float (encoding,video)
2669       rc_min_vbv_use float (encoding,video)
2670       ticks_per_frame integer (decoding/encoding,audio,video)
2671       color_primaries integer (decoding/encoding,video)
2672           Possible values:
2673
2674           bt709
2675               BT.709
2676
2677           bt470m
2678               BT.470 M
2679
2680           bt470bg
2681               BT.470 BG
2682
2683           smpte170m
2684               SMPTE 170 M
2685
2686           smpte240m
2687               SMPTE 240 M
2688
2689           film
2690               Film
2691
2692           bt2020
2693               BT.2020
2694
2695           smpte428
2696           smpte428_1
2697               SMPTE ST 428-1
2698
2699           smpte431
2700               SMPTE 431-2
2701
2702           smpte432
2703               SMPTE 432-1
2704
2705           jedec-p22
2706               JEDEC P22
2707
2708       color_trc integer (decoding/encoding,video)
2709           Possible values:
2710
2711           bt709
2712               BT.709
2713
2714           gamma22
2715               BT.470 M
2716
2717           gamma28
2718               BT.470 BG
2719
2720           smpte170m
2721               SMPTE 170 M
2722
2723           smpte240m
2724               SMPTE 240 M
2725
2726           linear
2727               Linear
2728
2729           log
2730           log100
2731               Log
2732
2733           log_sqrt
2734           log316
2735               Log square root
2736
2737           iec61966_2_4
2738           iec61966-2-4
2739               IEC 61966-2-4
2740
2741           bt1361
2742           bt1361e
2743               BT.1361
2744
2745           iec61966_2_1
2746           iec61966-2-1
2747               IEC 61966-2-1
2748
2749           bt2020_10
2750           bt2020_10bit
2751               BT.2020 - 10 bit
2752
2753           bt2020_12
2754           bt2020_12bit
2755               BT.2020 - 12 bit
2756
2757           smpte2084
2758               SMPTE ST 2084
2759
2760           smpte428
2761           smpte428_1
2762               SMPTE ST 428-1
2763
2764           arib-std-b67
2765               ARIB STD-B67
2766
2767       colorspace integer (decoding/encoding,video)
2768           Possible values:
2769
2770           rgb RGB
2771
2772           bt709
2773               BT.709
2774
2775           fcc FCC
2776
2777           bt470bg
2778               BT.470 BG
2779
2780           smpte170m
2781               SMPTE 170 M
2782
2783           smpte240m
2784               SMPTE 240 M
2785
2786           ycocg
2787               YCOCG
2788
2789           bt2020nc
2790           bt2020_ncl
2791               BT.2020 NCL
2792
2793           bt2020c
2794           bt2020_cl
2795               BT.2020 CL
2796
2797           smpte2085
2798               SMPTE 2085
2799
2800           chroma-derived-nc
2801               Chroma-derived NCL
2802
2803           chroma-derived-c
2804               Chroma-derived CL
2805
2806           ictcp
2807               ICtCp
2808
2809       color_range integer (decoding/encoding,video)
2810           If used as input parameter, it serves as a hint to the decoder,
2811           which color_range the input has.  Possible values:
2812
2813           tv
2814           mpeg
2815               MPEG (219*2^(n-8))
2816
2817           pc
2818           jpeg
2819               JPEG (2^n-1)
2820
2821       chroma_sample_location integer (decoding/encoding,video)
2822           Possible values:
2823
2824           left
2825           center
2826           topleft
2827           top
2828           bottomleft
2829           bottom
2830       log_level_offset integer
2831           Set the log level offset.
2832
2833       slices integer (encoding,video)
2834           Number of slices, used in parallelized encoding.
2835
2836       thread_type flags (decoding/encoding,video)
2837           Select which multithreading methods to use.
2838
2839           Use of frame will increase decoding delay by one frame per thread,
2840           so clients which cannot provide future frames should not use it.
2841
2842           Possible values:
2843
2844           slice
2845               Decode more than one part of a single frame at once.
2846
2847               Multithreading using slices works only when the video was
2848               encoded with slices.
2849
2850           frame
2851               Decode more than one frame at once.
2852
2853           Default value is slice+frame.
2854
2855       audio_service_type integer (encoding,audio)
2856           Set audio service type.
2857
2858           Possible values:
2859
2860           ma  Main Audio Service
2861
2862           ef  Effects
2863
2864           vi  Visually Impaired
2865
2866           hi  Hearing Impaired
2867
2868           di  Dialogue
2869
2870           co  Commentary
2871
2872           em  Emergency
2873
2874           vo  Voice Over
2875
2876           ka  Karaoke
2877
2878       request_sample_fmt sample_fmt (decoding,audio)
2879           Set sample format audio decoders should prefer. Default value is
2880           "none".
2881
2882       pkt_timebase rational number
2883       sub_charenc encoding (decoding,subtitles)
2884           Set the input subtitles character encoding.
2885
2886       field_order  field_order (video)
2887           Set/override the field order of the video.  Possible values:
2888
2889           progressive
2890               Progressive video
2891
2892           tt  Interlaced video, top field coded and displayed first
2893
2894           bb  Interlaced video, bottom field coded and displayed first
2895
2896           tb  Interlaced video, top coded first, bottom displayed first
2897
2898           bt  Interlaced video, bottom coded first, top displayed first
2899
2900       skip_alpha bool (decoding,video)
2901           Set to 1 to disable processing alpha (transparency). This works
2902           like the gray flag in the flags option which skips chroma
2903           information instead of alpha. Default is 0.
2904
2905       codec_whitelist list (input)
2906           "," separated list of allowed decoders. By default all are allowed.
2907
2908       dump_separator string (input)
2909           Separator used to separate the fields printed on the command line
2910           about the Stream parameters.  For example, to separate the fields
2911           with newlines and indentation:
2912
2913                   ffprobe -dump_separator "
2914                                             "  -i ~/videos/matrixbench_mpeg2.mpg
2915
2916       max_pixels integer (decoding/encoding,video)
2917           Maximum number of pixels per image. This value can be used to avoid
2918           out of memory failures due to large images.
2919
2920       apply_cropping bool (decoding,video)
2921           Enable cropping if cropping parameters are multiples of the
2922           required alignment for the left and top parameters. If the
2923           alignment is not met the cropping will be partially applied to
2924           maintain alignment.  Default is 1 (enabled).  Note: The required
2925           alignment depends on if "AV_CODEC_FLAG_UNALIGNED" is set and the
2926           CPU. "AV_CODEC_FLAG_UNALIGNED" cannot be changed from the command
2927           line. Also hardware decoders will not apply left/top Cropping.
2928

DECODERS

2930       Decoders are configured elements in FFmpeg which allow the decoding of
2931       multimedia streams.
2932
2933       When you configure your FFmpeg build, all the supported native decoders
2934       are enabled by default. Decoders requiring an external library must be
2935       enabled manually via the corresponding "--enable-lib" option. You can
2936       list all available decoders using the configure option
2937       "--list-decoders".
2938
2939       You can disable all the decoders with the configure option
2940       "--disable-decoders" and selectively enable / disable single decoders
2941       with the options "--enable-decoder=DECODER" /
2942       "--disable-decoder=DECODER".
2943
2944       The option "-decoders" of the ff* tools will display the list of
2945       enabled decoders.
2946

VIDEO DECODERS

2948       A description of some of the currently available video decoders
2949       follows.
2950
2951   av1
2952       AOMedia Video 1 (AV1) decoder.
2953
2954       Options
2955
2956       operating_point
2957           Select an operating point of a scalable AV1 bitstream (0 - 31).
2958           Default is 0.
2959
2960   rawvideo
2961       Raw video decoder.
2962
2963       This decoder decodes rawvideo streams.
2964
2965       Options
2966
2967       top top_field_first
2968           Specify the assumed field type of the input video.
2969
2970           -1  the video is assumed to be progressive (default)
2971
2972           0   bottom-field-first is assumed
2973
2974           1   top-field-first is assumed
2975
2976   libdav1d
2977       dav1d AV1 decoder.
2978
2979       libdav1d allows libavcodec to decode the AOMedia Video 1 (AV1) codec.
2980       Requires the presence of the libdav1d headers and library during
2981       configuration.  You need to explicitly configure the build with
2982       "--enable-libdav1d".
2983
2984       Options
2985
2986       The following options are supported by the libdav1d wrapper.
2987
2988       framethreads
2989           Set amount of frame threads to use during decoding. The default
2990           value is 0 (autodetect).  This option is deprecated for libdav1d >=
2991           1.0 and will be removed in the future. Use the global option
2992           "threads" instead.
2993
2994       tilethreads
2995           Set amount of tile threads to use during decoding. The default
2996           value is 0 (autodetect).  This option is deprecated for libdav1d >=
2997           1.0 and will be removed in the future. Use the global option
2998           "threads" instead.
2999
3000       filmgrain
3001           Apply film grain to the decoded video if present in the bitstream.
3002           Defaults to the internal default of the library.  This option is
3003           deprecated and will be removed in the future. See the global option
3004           "export_side_data" to export Film Grain parameters instead of
3005           applying it.
3006
3007       oppoint
3008           Select an operating point of a scalable AV1 bitstream (0 - 31).
3009           Defaults to the internal default of the library.
3010
3011       alllayers
3012           Output all spatial layers of a scalable AV1 bitstream. The default
3013           value is false.
3014
3015   libdavs2
3016       AVS2-P2/IEEE1857.4 video decoder wrapper.
3017
3018       This decoder allows libavcodec to decode AVS2 streams with davs2
3019       library.
3020
3021   libuavs3d
3022       AVS3-P2/IEEE1857.10 video decoder.
3023
3024       libuavs3d allows libavcodec to decode AVS3 streams.  Requires the
3025       presence of the libuavs3d headers and library during configuration.
3026       You need to explicitly configure the build with "--enable-libuavs3d".
3027
3028       Options
3029
3030       The following option is supported by the libuavs3d wrapper.
3031
3032       frame_threads
3033           Set amount of frame threads to use during decoding. The default
3034           value is 0 (autodetect).
3035
3036   QSV Decoders
3037       The family of Intel QuickSync Video decoders (VC1, MPEG-2, H.264, HEVC,
3038       JPEG/MJPEG, VP8, VP9, AV1).
3039
3040       Common Options
3041
3042       The following options are supported by all qsv decoders.
3043
3044       async_depth
3045           Internal parallelization depth, the higher the value the higher the
3046           latency.
3047
3048       gpu_copy
3049           A GPU-accelerated copy between video and system memory
3050
3051           default
3052           on
3053           off
3054
3055       HEVC Options
3056
3057       Extra options for hevc_qsv.
3058
3059       load_plugin
3060           A user plugin to load in an internal session
3061
3062           none
3063           hevc_sw
3064           hevc_hw
3065       load_plugins
3066           A :-separate list of hexadecimal plugin UIDs to load in an internal
3067           session
3068
3069   v210
3070       Uncompressed 4:2:2 10-bit decoder.
3071
3072       Options
3073
3074       custom_stride
3075           Set the line size of the v210 data in bytes. The default value is 0
3076           (autodetect). You can use the special -1 value for a strideless
3077           v210 as seen in BOXX files.
3078

AUDIO DECODERS

3080       A description of some of the currently available audio decoders
3081       follows.
3082
3083   ac3
3084       AC-3 audio decoder.
3085
3086       This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as
3087       well as the undocumented RealAudio 3 (a.k.a. dnet).
3088
3089       AC-3 Decoder Options
3090
3091       -drc_scale value
3092           Dynamic Range Scale Factor. The factor to apply to dynamic range
3093           values from the AC-3 stream. This factor is applied exponentially.
3094           The default value is 1.  There are 3 notable scale factor ranges:
3095
3096           drc_scale == 0
3097               DRC disabled. Produces full range audio.
3098
3099           0 < drc_scale <= 1
3100               DRC enabled.  Applies a fraction of the stream DRC value.
3101               Audio reproduction is between full range and full compression.
3102
3103           drc_scale > 1
3104               DRC enabled. Applies drc_scale asymmetrically.  Loud sounds are
3105               fully compressed.  Soft sounds are enhanced.
3106
3107   flac
3108       FLAC audio decoder.
3109
3110       This decoder aims to implement the complete FLAC specification from
3111       Xiph.
3112
3113       FLAC Decoder options
3114
3115       -use_buggy_lpc
3116           The lavc FLAC encoder used to produce buggy streams with high lpc
3117           values (like the default value). This option makes it possible to
3118           decode such streams correctly by using lavc's old buggy lpc logic
3119           for decoding.
3120
3121   ffwavesynth
3122       Internal wave synthesizer.
3123
3124       This decoder generates wave patterns according to predefined sequences.
3125       Its use is purely internal and the format of the data it accepts is not
3126       publicly documented.
3127
3128   libcelt
3129       libcelt decoder wrapper.
3130
3131       libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio
3132       codec.  Requires the presence of the libcelt headers and library during
3133       configuration.  You need to explicitly configure the build with
3134       "--enable-libcelt".
3135
3136   libgsm
3137       libgsm decoder wrapper.
3138
3139       libgsm allows libavcodec to decode the GSM full rate audio codec.
3140       Requires the presence of the libgsm headers and library during
3141       configuration. You need to explicitly configure the build with
3142       "--enable-libgsm".
3143
3144       This decoder supports both the ordinary GSM and the Microsoft variant.
3145
3146   libilbc
3147       libilbc decoder wrapper.
3148
3149       libilbc allows libavcodec to decode the Internet Low Bitrate Codec
3150       (iLBC) audio codec. Requires the presence of the libilbc headers and
3151       library during configuration. You need to explicitly configure the
3152       build with "--enable-libilbc".
3153
3154       Options
3155
3156       The following option is supported by the libilbc wrapper.
3157
3158       enhance
3159           Enable the enhancement of the decoded audio when set to 1. The
3160           default value is 0 (disabled).
3161
3162   libopencore-amrnb
3163       libopencore-amrnb decoder wrapper.
3164
3165       libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate
3166       Narrowband audio codec. Using it requires the presence of the
3167       libopencore-amrnb headers and library during configuration. You need to
3168       explicitly configure the build with "--enable-libopencore-amrnb".
3169
3170       An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB
3171       without this library.
3172
3173   libopencore-amrwb
3174       libopencore-amrwb decoder wrapper.
3175
3176       libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate
3177       Wideband audio codec. Using it requires the presence of the
3178       libopencore-amrwb headers and library during configuration. You need to
3179       explicitly configure the build with "--enable-libopencore-amrwb".
3180
3181       An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB
3182       without this library.
3183
3184   libopus
3185       libopus decoder wrapper.
3186
3187       libopus allows libavcodec to decode the Opus Interactive Audio Codec.
3188       Requires the presence of the libopus headers and library during
3189       configuration. You need to explicitly configure the build with
3190       "--enable-libopus".
3191
3192       An FFmpeg native decoder for Opus exists, so users can decode Opus
3193       without this library.
3194

SUBTITLES DECODERS

3196   libaribb24
3197       ARIB STD-B24 caption decoder.
3198
3199       Implements profiles A and C of the ARIB STD-B24 standard.
3200
3201       libaribb24 Decoder Options
3202
3203       -aribb24-base-path path
3204           Sets the base path for the libaribb24 library. This is utilized for
3205           reading of configuration files (for custom unicode conversions),
3206           and for dumping of non-text symbols as images under that location.
3207
3208           Unset by default.
3209
3210       -aribb24-skip-ruby-text boolean
3211           Tells the decoder wrapper to skip text blocks that contain half-
3212           height ruby text.
3213
3214           Enabled by default.
3215
3216   dvbsub
3217       Options
3218
3219       compute_clut
3220           -2  Compute clut once if no matching CLUT is in the stream.
3221
3222           -1  Compute clut if no matching CLUT is in the stream.
3223
3224           0   Never compute CLUT
3225
3226           1   Always compute CLUT and override the one provided in the
3227               stream.
3228
3229       dvb_substream
3230           Selects the dvb substream, or all substreams if -1 which is
3231           default.
3232
3233   dvdsub
3234       This codec decodes the bitmap subtitles used in DVDs; the same
3235       subtitles can also be found in VobSub file pairs and in some Matroska
3236       files.
3237
3238       Options
3239
3240       palette
3241           Specify the global palette used by the bitmaps. When stored in
3242           VobSub, the palette is normally specified in the index file; in
3243           Matroska, the palette is stored in the codec extra-data in the same
3244           format as in VobSub. In DVDs, the palette is stored in the IFO
3245           file, and therefore not available when reading from dumped VOB
3246           files.
3247
3248           The format for this option is a string containing 16 24-bits
3249           hexadecimal numbers (without 0x prefix) separated by commas, for
3250           example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b,
3251           0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c,
3252           7c127b".
3253
3254       ifo_palette
3255           Specify the IFO file from which the global palette is obtained.
3256           (experimental)
3257
3258       forced_subs_only
3259           Only decode subtitle entries marked as forced. Some titles have
3260           forced and non-forced subtitles in the same track. Setting this
3261           flag to 1 will only keep the forced subtitles. Default value is 0.
3262
3263   libzvbi-teletext
3264       Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext
3265       subtitles. Requires the presence of the libzvbi headers and library
3266       during configuration. You need to explicitly configure the build with
3267       "--enable-libzvbi".
3268
3269       Options
3270
3271       txt_page
3272           List of teletext page numbers to decode. Pages that do not match
3273           the specified list are dropped. You may use the special "*" string
3274           to match all pages, or "subtitle" to match all subtitle pages.
3275           Default value is *.
3276
3277       txt_default_region
3278           Set default character set used for decoding, a value between 0 and
3279           87 (see ETS 300 706, Section 15, Table 32). Default value is -1,
3280           which does not override the libzvbi default. This option is needed
3281           for some legacy level 1.0 transmissions which cannot signal the
3282           proper charset.
3283
3284       txt_chop_top
3285           Discards the top teletext line. Default value is 1.
3286
3287       txt_format
3288           Specifies the format of the decoded subtitles.
3289
3290           bitmap
3291               The default format, you should use this for teletext pages,
3292               because certain graphics and colors cannot be expressed in
3293               simple text or even ASS.
3294
3295           text
3296               Simple text based output without formatting.
3297
3298           ass Formatted ASS output, subtitle pages and teletext pages are
3299               returned in different styles, subtitle pages are stripped down
3300               to text, but an effort is made to keep the text alignment and
3301               the formatting.
3302
3303       txt_left
3304           X offset of generated bitmaps, default is 0.
3305
3306       txt_top
3307           Y offset of generated bitmaps, default is 0.
3308
3309       txt_chop_spaces
3310           Chops leading and trailing spaces and removes empty lines from the
3311           generated text. This option is useful for teletext based subtitles
3312           where empty spaces may be present at the start or at the end of the
3313           lines or empty lines may be present between the subtitle lines
3314           because of double-sized teletext characters.  Default value is 1.
3315
3316       txt_duration
3317           Sets the display duration of the decoded teletext pages or
3318           subtitles in milliseconds. Default value is -1 which means infinity
3319           or until the next subtitle event comes.
3320
3321       txt_transparent
3322           Force transparent background of the generated teletext bitmaps.
3323           Default value is 0 which means an opaque background.
3324
3325       txt_opacity
3326           Sets the opacity (0-255) of the teletext background. If
3327           txt_transparent is not set, it only affects characters between a
3328           start box and an end box, typically subtitles. Default value is 0
3329           if txt_transparent is set, 255 otherwise.
3330

BITSTREAM FILTERS

3332       When you configure your FFmpeg build, all the supported bitstream
3333       filters are enabled by default. You can list all available ones using
3334       the configure option "--list-bsfs".
3335
3336       You can disable all the bitstream filters using the configure option
3337       "--disable-bsfs", and selectively enable any bitstream filter using the
3338       option "--enable-bsf=BSF", or you can disable a particular bitstream
3339       filter using the option "--disable-bsf=BSF".
3340
3341       The option "-bsfs" of the ff* tools will display the list of all the
3342       supported bitstream filters included in your build.
3343
3344       The ff* tools have a -bsf option applied per stream, taking a comma-
3345       separated list of filters, whose parameters follow the filter name
3346       after a '='.
3347
3348               ffmpeg -i INPUT -c:v copy -bsf:v filter1[=opt1=str1:opt2=str2][,filter2] OUTPUT
3349
3350       Below is a description of the currently available bitstream filters,
3351       with their parameters, if any.
3352
3353   aac_adtstoasc
3354       Convert MPEG-2/4 AAC ADTS to an MPEG-4 Audio Specific Configuration
3355       bitstream.
3356
3357       This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4 ADTS
3358       header and removes the ADTS header.
3359
3360       This filter is required for example when copying an AAC stream from a
3361       raw ADTS AAC or an MPEG-TS container to MP4A-LATM, to an FLV file, or
3362       to MOV/MP4 files and related formats such as 3GP or M4A. Please note
3363       that it is auto-inserted for MP4A-LATM and MOV/MP4 and related formats.
3364
3365   av1_metadata
3366       Modify metadata embedded in an AV1 stream.
3367
3368       td  Insert or remove temporal delimiter OBUs in all temporal units of
3369           the stream.
3370
3371           insert
3372               Insert a TD at the beginning of every TU which does not already
3373               have one.
3374
3375           remove
3376               Remove the TD from the beginning of every TU which has one.
3377
3378       color_primaries
3379       transfer_characteristics
3380       matrix_coefficients
3381           Set the color description fields in the stream (see AV1 section
3382           6.4.2).
3383
3384       color_range
3385           Set the color range in the stream (see AV1 section 6.4.2; note that
3386           this cannot be set for streams using BT.709 primaries, sRGB
3387           transfer characteristic and identity (RGB) matrix coefficients).
3388
3389           tv  Limited range.
3390
3391           pc  Full range.
3392
3393       chroma_sample_position
3394           Set the chroma sample location in the stream (see AV1 section
3395           6.4.2).  This can only be set for 4:2:0 streams.
3396
3397           vertical
3398               Left position (matching the default in MPEG-2 and H.264).
3399
3400           colocated
3401               Top-left position.
3402
3403       tick_rate
3404           Set the tick rate (time_scale / num_units_in_display_tick) in the
3405           timing info in the sequence header.
3406
3407       num_ticks_per_picture
3408           Set the number of ticks in each picture, to indicate that the
3409           stream has a fixed framerate.  Ignored if tick_rate is not also
3410           set.
3411
3412       delete_padding
3413           Deletes Padding OBUs.
3414
3415   chomp
3416       Remove zero padding at the end of a packet.
3417
3418   dca_core
3419       Extract the core from a DCA/DTS stream, dropping extensions such as
3420       DTS-HD.
3421
3422   dump_extra
3423       Add extradata to the beginning of the filtered packets except when said
3424       packets already exactly begin with the extradata that is intended to be
3425       added.
3426
3427       freq
3428           The additional argument specifies which packets should be filtered.
3429           It accepts the values:
3430
3431           k
3432           keyframe
3433               add extradata to all key packets
3434
3435           e
3436           all add extradata to all packets
3437
3438       If not specified it is assumed k.
3439
3440       For example the following ffmpeg command forces a global header (thus
3441       disabling individual packet headers) in the H.264 packets generated by
3442       the "libx264" encoder, but corrects them by adding the header stored in
3443       extradata to the key packets:
3444
3445               ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
3446
3447   dv_error_marker
3448       Blocks in DV which are marked as damaged are replaced by blocks of the
3449       specified color.
3450
3451       color
3452           The color to replace damaged blocks by
3453
3454       sta A 16 bit mask which specifies which of the 16 possible error status
3455           values are to be replaced by colored blocks. 0xFFFE is the default
3456           which replaces all non 0 error status values.
3457
3458           ok  No error, no concealment
3459
3460           err Error, No concealment
3461
3462           res Reserved
3463
3464           notok
3465               Error or concealment
3466
3467           notres
3468               Not reserved
3469
3470           Aa, Ba, Ca, Ab, Bb, Cb, A, B, C, a, b, erri, erru
3471               The specific error status code
3472
3473           see page 44-46 or section 5.5 of
3474           <http://web.archive.org/web/20060927044735/http://www.smpte.org/smpte_store/standards/pdf/s314m.pdf>
3475
3476   eac3_core
3477       Extract the core from a E-AC-3 stream, dropping extra channels.
3478
3479   extract_extradata
3480       Extract the in-band extradata.
3481
3482       Certain codecs allow the long-term headers (e.g. MPEG-2 sequence
3483       headers, or H.264/HEVC (VPS/)SPS/PPS) to be transmitted either "in-
3484       band" (i.e. as a part of the bitstream containing the coded frames) or
3485       "out of band" (e.g. on the container level). This latter form is called
3486       "extradata" in FFmpeg terminology.
3487
3488       This bitstream filter detects the in-band headers and makes them
3489       available as extradata.
3490
3491       remove
3492           When this option is enabled, the long-term headers are removed from
3493           the bitstream after extraction.
3494
3495   filter_units
3496       Remove units with types in or not in a given set from the stream.
3497
3498       pass_types
3499           List of unit types or ranges of unit types to pass through while
3500           removing all others.  This is specified as a '|'-separated list of
3501           unit type values or ranges of values with '-'.
3502
3503       remove_types
3504           Identical to pass_types, except the units in the given set removed
3505           and all others passed through.
3506
3507       Extradata is unchanged by this transformation, but note that if the
3508       stream contains inline parameter sets then the output may be unusable
3509       if they are removed.
3510
3511       For example, to remove all non-VCL NAL units from an H.264 stream:
3512
3513               ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=pass_types=1-5' OUTPUT
3514
3515       To remove all AUDs, SEI and filler from an H.265 stream:
3516
3517               ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=35|38-40' OUTPUT
3518
3519   hapqa_extract
3520       Extract Rgb or Alpha part of an HAPQA file, without recompression, in
3521       order to create an HAPQ or an HAPAlphaOnly file.
3522
3523       texture
3524           Specifies the texture to keep.
3525
3526           color
3527           alpha
3528
3529       Convert HAPQA to HAPQ
3530
3531               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
3532
3533       Convert HAPQA to HAPAlphaOnly
3534
3535               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
3536
3537   h264_metadata
3538       Modify metadata embedded in an H.264 stream.
3539
3540       aud Insert or remove AUD NAL units in all access units of the stream.
3541
3542           pass
3543           insert
3544           remove
3545
3546           Default is pass.
3547
3548       sample_aspect_ratio
3549           Set the sample aspect ratio of the stream in the VUI parameters.
3550           See H.264 table E-1.
3551
3552       overscan_appropriate_flag
3553           Set whether the stream is suitable for display using overscan or
3554           not (see H.264 section E.2.1).
3555
3556       video_format
3557       video_full_range_flag
3558           Set the video format in the stream (see H.264 section E.2.1 and
3559           table E-2).
3560
3561       colour_primaries
3562       transfer_characteristics
3563       matrix_coefficients
3564           Set the colour description in the stream (see H.264 section E.2.1
3565           and tables E-3, E-4 and E-5).
3566
3567       chroma_sample_loc_type
3568           Set the chroma sample location in the stream (see H.264 section
3569           E.2.1 and figure E-1).
3570
3571       tick_rate
3572           Set the tick rate (time_scale / num_units_in_tick) in the VUI
3573           parameters.  This is the smallest time unit representable in the
3574           stream, and in many cases represents the field rate of the stream
3575           (double the frame rate).
3576
3577       fixed_frame_rate_flag
3578           Set whether the stream has fixed framerate - typically this
3579           indicates that the framerate is exactly half the tick rate, but the
3580           exact meaning is dependent on interlacing and the picture structure
3581           (see H.264 section E.2.1 and table E-6).
3582
3583       zero_new_constraint_set_flags
3584           Zero constraint_set4_flag and constraint_set5_flag in the SPS.
3585           These bits were reserved in a previous version of the H.264 spec,
3586           and thus some hardware decoders require these to be zero. The
3587           result of zeroing this is still a valid bitstream.
3588
3589       crop_left
3590       crop_right
3591       crop_top
3592       crop_bottom
3593           Set the frame cropping offsets in the SPS.  These values will
3594           replace the current ones if the stream is already cropped.
3595
3596           These fields are set in pixels.  Note that some sizes may not be
3597           representable if the chroma is subsampled or the stream is
3598           interlaced (see H.264 section 7.4.2.1.1).
3599
3600       sei_user_data
3601           Insert a string as SEI unregistered user data.  The argument must
3602           be of the form UUID+string, where the UUID is as hex digits
3603           possibly separated by hyphens, and the string can be anything.
3604
3605           For example, 086f3693-b7b3-4f2c-9653-21492feee5b8+hello will insert
3606           the string ``hello'' associated with the given UUID.
3607
3608       delete_filler
3609           Deletes both filler NAL units and filler SEI messages.
3610
3611       display_orientation
3612           Insert, extract or remove Display orientation SEI messages.  See
3613           H.264 section D.1.27 and D.2.27 for syntax and semantics.
3614
3615           pass
3616           insert
3617           remove
3618           extract
3619
3620           Default is pass.
3621
3622           Insert mode works in conjunction with "rotate" and "flip" options.
3623           Any pre-existing Display orientation messages will be removed in
3624           insert or remove mode.  Extract mode attaches the display matrix to
3625           the packet as side data.
3626
3627       rotate
3628           Set rotation in display orientation SEI (anticlockwise angle in
3629           degrees).  Range is -360 to +360. Default is NaN.
3630
3631       flip
3632           Set flip in display orientation SEI.
3633
3634           horizontal
3635           vertical
3636
3637           Default is unset.
3638
3639       level
3640           Set the level in the SPS.  Refer to H.264 section A.3 and tables
3641           A-1 to A-5.
3642
3643           The argument must be the name of a level (for example, 4.2), a
3644           level_idc value (for example, 42), or the special name auto
3645           indicating that the filter should attempt to guess the level from
3646           the input stream properties.
3647
3648   h264_mp4toannexb
3649       Convert an H.264 bitstream from length prefixed mode to start code
3650       prefixed mode (as defined in the Annex B of the ITU-T H.264
3651       specification).
3652
3653       This is required by some streaming formats, typically the MPEG-2
3654       transport stream format (muxer "mpegts").
3655
3656       For example to remux an MP4 file containing an H.264 stream to mpegts
3657       format with ffmpeg, you can use the command:
3658
3659               ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
3660
3661       Please note that this filter is auto-inserted for MPEG-TS (muxer
3662       "mpegts") and raw H.264 (muxer "h264") output formats.
3663
3664   h264_redundant_pps
3665       This applies a specific fixup to some Blu-ray streams which contain
3666       redundant PPSs modifying irrelevant parameters of the stream which
3667       confuse other transformations which require correct extradata.
3668
3669       A new single global PPS is created, and all of the redundant PPSs
3670       within the stream are removed.
3671
3672   hevc_metadata
3673       Modify metadata embedded in an HEVC stream.
3674
3675       aud Insert or remove AUD NAL units in all access units of the stream.
3676
3677           insert
3678           remove
3679       sample_aspect_ratio
3680           Set the sample aspect ratio in the stream in the VUI parameters.
3681
3682       video_format
3683       video_full_range_flag
3684           Set the video format in the stream (see H.265 section E.3.1 and
3685           table E.2).
3686
3687       colour_primaries
3688       transfer_characteristics
3689       matrix_coefficients
3690           Set the colour description in the stream (see H.265 section E.3.1
3691           and tables E.3, E.4 and E.5).
3692
3693       chroma_sample_loc_type
3694           Set the chroma sample location in the stream (see H.265 section
3695           E.3.1 and figure E.1).
3696
3697       tick_rate
3698           Set the tick rate in the VPS and VUI parameters (time_scale /
3699           num_units_in_tick). Combined with num_ticks_poc_diff_one, this can
3700           set a constant framerate in the stream.  Note that it is likely to
3701           be overridden by container parameters when the stream is in a
3702           container.
3703
3704       num_ticks_poc_diff_one
3705           Set poc_proportional_to_timing_flag in VPS and VUI and use this
3706           value to set num_ticks_poc_diff_one_minus1 (see H.265 sections
3707           7.4.3.1 and E.3.1).  Ignored if tick_rate is not also set.
3708
3709       crop_left
3710       crop_right
3711       crop_top
3712       crop_bottom
3713           Set the conformance window cropping offsets in the SPS.  These
3714           values will replace the current ones if the stream is already
3715           cropped.
3716
3717           These fields are set in pixels.  Note that some sizes may not be
3718           representable if the chroma is subsampled (H.265 section
3719           7.4.3.2.1).
3720
3721       level
3722           Set the level in the VPS and SPS.  See H.265 section A.4 and tables
3723           A.6 and A.7.
3724
3725           The argument must be the name of a level (for example, 5.1), a
3726           general_level_idc value (for example, 153 for level 5.1), or the
3727           special name auto indicating that the filter should attempt to
3728           guess the level from the input stream properties.
3729
3730   hevc_mp4toannexb
3731       Convert an HEVC/H.265 bitstream from length prefixed mode to start code
3732       prefixed mode (as defined in the Annex B of the ITU-T H.265
3733       specification).
3734
3735       This is required by some streaming formats, typically the MPEG-2
3736       transport stream format (muxer "mpegts").
3737
3738       For example to remux an MP4 file containing an HEVC stream to mpegts
3739       format with ffmpeg, you can use the command:
3740
3741               ffmpeg -i INPUT.mp4 -codec copy -bsf:v hevc_mp4toannexb OUTPUT.ts
3742
3743       Please note that this filter is auto-inserted for MPEG-TS (muxer
3744       "mpegts") and raw HEVC/H.265 (muxer "h265" or "hevc") output formats.
3745
3746   imxdump
3747       Modifies the bitstream to fit in MOV and to be usable by the Final Cut
3748       Pro decoder. This filter only applies to the mpeg2video codec, and is
3749       likely not needed for Final Cut Pro 7 and newer with the appropriate
3750       -tag:v.
3751
3752       For example, to remux 30 MB/sec NTSC IMX to MOV:
3753
3754               ffmpeg -i input.mxf -c copy -bsf:v imxdump -tag:v mx3n output.mov
3755
3756   mjpeg2jpeg
3757       Convert MJPEG/AVI1 packets to full JPEG/JFIF packets.
3758
3759       MJPEG is a video codec wherein each video frame is essentially a JPEG
3760       image. The individual frames can be extracted without loss, e.g. by
3761
3762               ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg
3763
3764       Unfortunately, these chunks are incomplete JPEG images, because they
3765       lack the DHT segment required for decoding. Quoting from
3766       <http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml>:
3767
3768       Avery Lee, writing in the rec.video.desktop newsgroup in 2001,
3769       commented that "MJPEG, or at least the MJPEG in AVIs having the MJPG
3770       fourcc, is restricted JPEG with a fixed -- and *omitted* -- Huffman
3771       table. The JPEG must be YCbCr colorspace, it must be 4:2:2, and it must
3772       use basic Huffman encoding, not arithmetic or progressive. . . . You
3773       can indeed extract the MJPEG frames and decode them with a regular JPEG
3774       decoder, but you have to prepend the DHT segment to them, or else the
3775       decoder won't have any idea how to decompress the data. The exact table
3776       necessary is given in the OpenDML spec."
3777
3778       This bitstream filter patches the header of frames extracted from an
3779       MJPEG stream (carrying the AVI1 header ID and lacking a DHT segment) to
3780       produce fully qualified JPEG images.
3781
3782               ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
3783               exiftran -i -9 frame*.jpg
3784               ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
3785
3786   mjpegadump
3787       Add an MJPEG A header to the bitstream, to enable decoding by
3788       Quicktime.
3789
3790   mov2textsub
3791       Extract a representable text file from MOV subtitles, stripping the
3792       metadata header from each subtitle packet.
3793
3794       See also the text2movsub filter.
3795
3796   mp3decomp
3797       Decompress non-standard compressed MP3 audio headers.
3798
3799   mpeg2_metadata
3800       Modify metadata embedded in an MPEG-2 stream.
3801
3802       display_aspect_ratio
3803           Set the display aspect ratio in the stream.
3804
3805           The following fixed values are supported:
3806
3807           4/3
3808           16/9
3809           221/100
3810
3811           Any other value will result in square pixels being signalled
3812           instead (see H.262 section 6.3.3 and table 6-3).
3813
3814       frame_rate
3815           Set the frame rate in the stream.  This is constructed from a table
3816           of known values combined with a small multiplier and divisor - if
3817           the supplied value is not exactly representable, the nearest
3818           representable value will be used instead (see H.262 section 6.3.3
3819           and table 6-4).
3820
3821       video_format
3822           Set the video format in the stream (see H.262 section 6.3.6 and
3823           table 6-6).
3824
3825       colour_primaries
3826       transfer_characteristics
3827       matrix_coefficients
3828           Set the colour description in the stream (see H.262 section 6.3.6
3829           and tables 6-7, 6-8 and 6-9).
3830
3831   mpeg4_unpack_bframes
3832       Unpack DivX-style packed B-frames.
3833
3834       DivX-style packed B-frames are not valid MPEG-4 and were only a
3835       workaround for the broken Video for Windows subsystem.  They use more
3836       space, can cause minor AV sync issues, require more CPU power to decode
3837       (unless the player has some decoded picture queue to compensate the
3838       2,0,2,0 frame per packet style) and cause trouble if copied into a
3839       standard container like mp4 or mpeg-ps/ts, because MPEG-4 decoders may
3840       not be able to decode them, since they are not valid MPEG-4.
3841
3842       For example to fix an AVI file containing an MPEG-4 stream with DivX-
3843       style packed B-frames using ffmpeg, you can use the command:
3844
3845               ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi
3846
3847   noise
3848       Damages the contents of packets or simply drops them without damaging
3849       the container. Can be used for fuzzing or testing error
3850       resilience/concealment.
3851
3852       Parameters:
3853
3854       amount
3855           Accepts an expression whose evaluation per-packet determines how
3856           often bytes in that packet will be modified. A value below 0 will
3857           result in a variable frequency.  Default is 0 which results in no
3858           modification. However, if neither amount nor drop is specified,
3859           amount will be set to -1. See below for accepted variables.
3860
3861       drop
3862           Accepts an expression evaluated per-packet whose value determines
3863           whether that packet is dropped.  Evaluation to a positive value
3864           results in the packet being dropped. Evaluation to a negative value
3865           results in a variable chance of it being dropped, roughly inverse
3866           in proportion to the magnitude of the value. Default is 0 which
3867           results in no drops. See below for accepted variables.
3868
3869       dropamount
3870           Accepts a non-negative integer, which assigns a variable chance of
3871           it being dropped, roughly inverse in proportion to the value.
3872           Default is 0 which results in no drops. This option is kept for
3873           backwards compatibility and is equivalent to setting drop to a
3874           negative value with the same magnitude i.e. "dropamount=4" is the
3875           same as "drop=-4". Ignored if drop is also specified.
3876
3877       Both "amount" and "drop" accept expressions containing the following
3878       variables:
3879
3880       n   The index of the packet, starting from zero.
3881
3882       tb  The timebase for packet timestamps.
3883
3884       pts Packet presentation timestamp.
3885
3886       dts Packet decoding timestamp.
3887
3888       nopts
3889           Constant representing AV_NOPTS_VALUE.
3890
3891       startpts
3892           First non-AV_NOPTS_VALUE PTS seen in the stream.
3893
3894       startdts
3895           First non-AV_NOPTS_VALUE DTS seen in the stream.
3896
3897       duration
3898       d   Packet duration, in timebase units.
3899
3900       pos Packet position in input; may be -1 when unknown or not set.
3901
3902       size
3903           Packet size, in bytes.
3904
3905       key Whether packet is marked as a keyframe.
3906
3907       state
3908           A pseudo random integer, primarily derived from the content of
3909           packet payload.
3910
3911       Examples
3912
3913       Apply modification to every byte but don't drop any packets.
3914
3915               ffmpeg -i INPUT -c copy -bsf noise=1 output.mkv
3916
3917       Drop every video packet not marked as a keyframe after timestamp 30s
3918       but do not modify any of the remaining packets.
3919
3920               ffmpeg -i INPUT -c copy -bsf:v noise=drop='gt(t\,30)*not(key)' output.mkv
3921
3922       Drop one second of audio every 10 seconds and add some random noise to
3923       the rest.
3924
3925               ffmpeg -i INPUT -c copy -bsf:a noise=amount=-1:drop='between(mod(t\,10)\,9\,10)' output.mkv
3926
3927   null
3928       This bitstream filter passes the packets through unchanged.
3929
3930   pcm_rechunk
3931       Repacketize PCM audio to a fixed number of samples per packet or a
3932       fixed packet rate per second. This is similar to the asetnsamples audio
3933       filter but works on audio packets instead of audio frames.
3934
3935       nb_out_samples, n
3936           Set the number of samples per each output audio packet. The number
3937           is intended as the number of samples per each channel. Default
3938           value is 1024.
3939
3940       pad, p
3941           If set to 1, the filter will pad the last audio packet with
3942           silence, so that it will contain the same number of samples (or
3943           roughly the same number of samples, see frame_rate) as the previous
3944           ones. Default value is 1.
3945
3946       frame_rate, r
3947           This option makes the filter output a fixed number of packets per
3948           second instead of a fixed number of samples per packet. If the
3949           audio sample rate is not divisible by the frame rate then the
3950           number of samples will not be constant but will vary slightly so
3951           that each packet will start as close to the frame boundary as
3952           possible. Using this option has precedence over nb_out_samples.
3953
3954       You can generate the well known 1602-1601-1602-1601-1602 pattern of
3955       48kHz audio for NTSC frame rate using the frame_rate option.
3956
3957               ffmpeg -f lavfi -i sine=r=48000:d=1 -c pcm_s16le -bsf pcm_rechunk=r=30000/1001 -f framecrc -
3958
3959   pgs_frame_merge
3960       Merge a sequence of PGS Subtitle segments ending with an "end of
3961       display set" segment into a single packet.
3962
3963       This is required by some containers that support PGS subtitles (muxer
3964       "matroska").
3965
3966   prores_metadata
3967       Modify color property metadata embedded in prores stream.
3968
3969       color_primaries
3970           Set the color primaries.  Available values are:
3971
3972           auto
3973               Keep the same color primaries property (default).
3974
3975           unknown
3976           bt709
3977           bt470bg
3978               BT601 625
3979
3980           smpte170m
3981               BT601 525
3982
3983           bt2020
3984           smpte431
3985               DCI P3
3986
3987           smpte432
3988               P3 D65
3989
3990       transfer_characteristics
3991           Set the color transfer.  Available values are:
3992
3993           auto
3994               Keep the same transfer characteristics property (default).
3995
3996           unknown
3997           bt709
3998               BT 601, BT 709, BT 2020
3999
4000           smpte2084
4001               SMPTE ST 2084
4002
4003           arib-std-b67
4004               ARIB STD-B67
4005
4006       matrix_coefficients
4007           Set the matrix coefficient.  Available values are:
4008
4009           auto
4010               Keep the same colorspace property (default).
4011
4012           unknown
4013           bt709
4014           smpte170m
4015               BT 601
4016
4017           bt2020nc
4018
4019       Set Rec709 colorspace for each frame of the file
4020
4021               ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt709:color_trc=bt709:colorspace=bt709 output.mov
4022
4023       Set Hybrid Log-Gamma parameters for each frame of the file
4024
4025               ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt2020:color_trc=arib-std-b67:colorspace=bt2020nc output.mov
4026
4027   remove_extra
4028       Remove extradata from packets.
4029
4030       It accepts the following parameter:
4031
4032       freq
4033           Set which frame types to remove extradata from.
4034
4035           k   Remove extradata from non-keyframes only.
4036
4037           keyframe
4038               Remove extradata from keyframes only.
4039
4040           e, all
4041               Remove extradata from all frames.
4042
4043   setts
4044       Set PTS and DTS in packets.
4045
4046       It accepts the following parameters:
4047
4048       ts
4049       pts
4050       dts Set expressions for PTS, DTS or both.
4051
4052       duration
4053           Set expression for duration.
4054
4055       time_base
4056           Set output time base.
4057
4058       The expressions are evaluated through the eval API and can contain the
4059       following constants:
4060
4061       N   The count of the input packet. Starting from 0.
4062
4063       TS  The demux timestamp in input in case of "ts" or "dts" option or
4064           presentation timestamp in case of "pts" option.
4065
4066       POS The original position in the file of the packet, or undefined if
4067           undefined for the current packet
4068
4069       DTS The demux timestamp in input.
4070
4071       PTS The presentation timestamp in input.
4072
4073       DURATION
4074           The duration in input.
4075
4076       STARTDTS
4077           The DTS of the first packet.
4078
4079       STARTPTS
4080           The PTS of the first packet.
4081
4082       PREV_INDTS
4083           The previous input DTS.
4084
4085       PREV_INPTS
4086           The previous input PTS.
4087
4088       PREV_INDURATION
4089           The previous input duration.
4090
4091       PREV_OUTDTS
4092           The previous output DTS.
4093
4094       PREV_OUTPTS
4095           The previous output PTS.
4096
4097       PREV_OUTDURATION
4098           The previous output duration.
4099
4100       NEXT_DTS
4101           The next input DTS.
4102
4103       NEXT_PTS
4104           The next input PTS.
4105
4106       NEXT_DURATION
4107           The next input duration.
4108
4109       TB  The timebase of stream packet belongs.
4110
4111       TB_OUT
4112           The output timebase.
4113
4114       SR  The sample rate of stream packet belongs.
4115
4116       NOPTS
4117           The AV_NOPTS_VALUE constant.
4118
4119   text2movsub
4120       Convert text subtitles to MOV subtitles (as used by the "mov_text"
4121       codec) with metadata headers.
4122
4123       See also the mov2textsub filter.
4124
4125   trace_headers
4126       Log trace output containing all syntax elements in the coded stream
4127       headers (everything above the level of individual coded blocks).  This
4128       can be useful for debugging low-level stream issues.
4129
4130       Supports AV1, H.264, H.265, (M)JPEG, MPEG-2 and VP9, but depending on
4131       the build only a subset of these may be available.
4132
4133   truehd_core
4134       Extract the core from a TrueHD stream, dropping ATMOS data.
4135
4136   vp9_metadata
4137       Modify metadata embedded in a VP9 stream.
4138
4139       color_space
4140           Set the color space value in the frame header.  Note that any frame
4141           set to RGB will be implicitly set to PC range and that RGB is
4142           incompatible with profiles 0 and 2.
4143
4144           unknown
4145           bt601
4146           bt709
4147           smpte170
4148           smpte240
4149           bt2020
4150           rgb
4151       color_range
4152           Set the color range value in the frame header.  Note that any value
4153           imposed by the color space will take precedence over this value.
4154
4155           tv
4156           pc
4157
4158   vp9_superframe
4159       Merge VP9 invisible (alt-ref) frames back into VP9 superframes. This
4160       fixes merging of split/segmented VP9 streams where the alt-ref frame
4161       was split from its visible counterpart.
4162
4163   vp9_superframe_split
4164       Split VP9 superframes into single frames.
4165
4166   vp9_raw_reorder
4167       Given a VP9 stream with correct timestamps but possibly out of order,
4168       insert additional show-existing-frame packets to correct the ordering.
4169

FORMAT OPTIONS

4171       The libavformat library provides some generic global options, which can
4172       be set on all the muxers and demuxers. In addition each muxer or
4173       demuxer may support so-called private options, which are specific for
4174       that component.
4175
4176       Options may be set by specifying -option value in the FFmpeg tools, or
4177       by setting the value explicitly in the "AVFormatContext" options or
4178       using the libavutil/opt.h API for programmatic use.
4179
4180       The list of supported options follows:
4181
4182       avioflags flags (input/output)
4183           Possible values:
4184
4185           direct
4186               Reduce buffering.
4187
4188       probesize integer (input)
4189           Set probing size in bytes, i.e. the size of the data to analyze to
4190           get stream information. A higher value will enable detecting more
4191           information in case it is dispersed into the stream, but will
4192           increase latency. Must be an integer not lesser than 32. It is
4193           5000000 by default.
4194
4195       max_probe_packets integer (input)
4196           Set the maximum number of buffered packets when probing a codec.
4197           Default is 2500 packets.
4198
4199       packetsize integer (output)
4200           Set packet size.
4201
4202       fflags flags
4203           Set format flags. Some are implemented for a limited number of
4204           formats.
4205
4206           Possible values for input files:
4207
4208           discardcorrupt
4209               Discard corrupted packets.
4210
4211           fastseek
4212               Enable fast, but inaccurate seeks for some formats.
4213
4214           genpts
4215               Generate missing PTS if DTS is present.
4216
4217           igndts
4218               Ignore DTS if PTS is set. Inert when nofillin is set.
4219
4220           ignidx
4221               Ignore index.
4222
4223           nobuffer
4224               Reduce the latency introduced by buffering during initial input
4225               streams analysis.
4226
4227           nofillin
4228               Do not fill in missing values in packet fields that can be
4229               exactly calculated.
4230
4231           noparse
4232               Disable AVParsers, this needs "+nofillin" too.
4233
4234           sortdts
4235               Try to interleave output packets by DTS. At present, available
4236               only for AVIs with an index.
4237
4238           Possible values for output files:
4239
4240           autobsf
4241               Automatically apply bitstream filters as required by the output
4242               format. Enabled by default.
4243
4244           bitexact
4245               Only write platform-, build- and time-independent data.  This
4246               ensures that file and data checksums are reproducible and match
4247               between platforms. Its primary use is for regression testing.
4248
4249           flush_packets
4250               Write out packets immediately.
4251
4252           shortest
4253               Stop muxing at the end of the shortest stream.  It may be
4254               needed to increase max_interleave_delta to avoid flushing the
4255               longer streams before EOF.
4256
4257       seek2any integer (input)
4258           Allow seeking to non-keyframes on demuxer level when supported if
4259           set to 1.  Default is 0.
4260
4261       analyzeduration integer (input)
4262           Specify how many microseconds are analyzed to probe the input. A
4263           higher value will enable detecting more accurate information, but
4264           will increase latency. It defaults to 5,000,000 microseconds = 5
4265           seconds.
4266
4267       cryptokey hexadecimal string (input)
4268           Set decryption key.
4269
4270       indexmem integer (input)
4271           Set max memory used for timestamp index (per stream).
4272
4273       rtbufsize integer (input)
4274           Set max memory used for buffering real-time frames.
4275
4276       fdebug flags (input/output)
4277           Print specific debug info.
4278
4279           Possible values:
4280
4281           ts
4282       max_delay integer (input/output)
4283           Set maximum muxing or demuxing delay in microseconds.
4284
4285       fpsprobesize integer (input)
4286           Set number of frames used to probe fps.
4287
4288       audio_preload integer (output)
4289           Set microseconds by which audio packets should be interleaved
4290           earlier.
4291
4292       chunk_duration integer (output)
4293           Set microseconds for each chunk.
4294
4295       chunk_size integer (output)
4296           Set size in bytes for each chunk.
4297
4298       err_detect, f_err_detect flags (input)
4299           Set error detection flags. "f_err_detect" is deprecated and should
4300           be used only via the ffmpeg tool.
4301
4302           Possible values:
4303
4304           crccheck
4305               Verify embedded CRCs.
4306
4307           bitstream
4308               Detect bitstream specification deviations.
4309
4310           buffer
4311               Detect improper bitstream length.
4312
4313           explode
4314               Abort decoding on minor error detection.
4315
4316           careful
4317               Consider things that violate the spec and have not been seen in
4318               the wild as errors.
4319
4320           compliant
4321               Consider all spec non compliancies as errors.
4322
4323           aggressive
4324               Consider things that a sane encoder should not do as an error.
4325
4326       max_interleave_delta integer (output)
4327           Set maximum buffering duration for interleaving. The duration is
4328           expressed in microseconds, and defaults to 10000000 (10 seconds).
4329
4330           To ensure all the streams are interleaved correctly, libavformat
4331           will wait until it has at least one packet for each stream before
4332           actually writing any packets to the output file. When some streams
4333           are "sparse" (i.e. there are large gaps between successive
4334           packets), this can result in excessive buffering.
4335
4336           This field specifies the maximum difference between the timestamps
4337           of the first and the last packet in the muxing queue, above which
4338           libavformat will output a packet regardless of whether it has
4339           queued a packet for all the streams.
4340
4341           If set to 0, libavformat will continue buffering packets until it
4342           has a packet for each stream, regardless of the maximum timestamp
4343           difference between the buffered packets.
4344
4345       use_wallclock_as_timestamps integer (input)
4346           Use wallclock as timestamps if set to 1. Default is 0.
4347
4348       avoid_negative_ts integer (output)
4349           Possible values:
4350
4351           make_non_negative
4352               Shift timestamps to make them non-negative.  Also note that
4353               this affects only leading negative timestamps, and not non-
4354               monotonic negative timestamps.
4355
4356           make_zero
4357               Shift timestamps so that the first timestamp is 0.
4358
4359           auto (default)
4360               Enables shifting when required by the target format.
4361
4362           disabled
4363               Disables shifting of timestamp.
4364
4365           When shifting is enabled, all output timestamps are shifted by the
4366           same amount. Audio, video, and subtitles desynching and relative
4367           timestamp differences are preserved compared to how they would have
4368           been without shifting.
4369
4370       skip_initial_bytes integer (input)
4371           Set number of bytes to skip before reading header and frames if set
4372           to 1.  Default is 0.
4373
4374       correct_ts_overflow integer (input)
4375           Correct single timestamp overflows if set to 1. Default is 1.
4376
4377       flush_packets integer (output)
4378           Flush the underlying I/O stream after each packet. Default is -1
4379           (auto), which means that the underlying protocol will decide, 1
4380           enables it, and has the effect of reducing the latency, 0 disables
4381           it and may increase IO throughput in some cases.
4382
4383       output_ts_offset offset (output)
4384           Set the output time offset.
4385
4386           offset must be a time duration specification, see the Time duration
4387           section in the ffmpeg-utils(1) manual.
4388
4389           The offset is added by the muxer to the output timestamps.
4390
4391           Specifying a positive offset means that the corresponding streams
4392           are delayed bt the time duration specified in offset. Default value
4393           is 0 (meaning that no offset is applied).
4394
4395       format_whitelist list (input)
4396           "," separated list of allowed demuxers. By default all are allowed.
4397
4398       dump_separator string (input)
4399           Separator used to separate the fields printed on the command line
4400           about the Stream parameters.  For example, to separate the fields
4401           with newlines and indentation:
4402
4403                   ffprobe -dump_separator "
4404                                             "  -i ~/videos/matrixbench_mpeg2.mpg
4405
4406       max_streams integer (input)
4407           Specifies the maximum number of streams. This can be used to reject
4408           files that would require too many resources due to a large number
4409           of streams.
4410
4411       skip_estimate_duration_from_pts bool (input)
4412           Skip estimation of input duration when calculated using PTS.  At
4413           present, applicable for MPEG-PS and MPEG-TS.
4414
4415       strict, f_strict integer (input/output)
4416           Specify how strictly to follow the standards. "f_strict" is
4417           deprecated and should be used only via the ffmpeg tool.
4418
4419           Possible values:
4420
4421           very
4422               strictly conform to an older more strict version of the spec or
4423               reference software
4424
4425           strict
4426               strictly conform to all the things in the spec no matter what
4427               consequences
4428
4429           normal
4430           unofficial
4431               allow unofficial extensions
4432
4433           experimental
4434               allow non standardized experimental things, experimental
4435               (unfinished/work in progress/not well tested) decoders and
4436               encoders.  Note: experimental decoders can pose a security
4437               risk, do not use this for decoding untrusted input.
4438
4439   Format stream specifiers
4440       Format stream specifiers allow selection of one or more streams that
4441       match specific properties.
4442
4443       The exact semantics of stream specifiers is defined by the
4444       "avformat_match_stream_specifier()" function declared in the
4445       libavformat/avformat.h header and documented in the Stream specifiers
4446       section in the ffmpeg(1) manual.
4447

DEMUXERS

4449       Demuxers are configured elements in FFmpeg that can read the multimedia
4450       streams from a particular type of file.
4451
4452       When you configure your FFmpeg build, all the supported demuxers are
4453       enabled by default. You can list all available ones using the configure
4454       option "--list-demuxers".
4455
4456       You can disable all the demuxers using the configure option
4457       "--disable-demuxers", and selectively enable a single demuxer with the
4458       option "--enable-demuxer=DEMUXER", or disable it with the option
4459       "--disable-demuxer=DEMUXER".
4460
4461       The option "-demuxers" of the ff* tools will display the list of
4462       enabled demuxers. Use "-formats" to view a combined list of enabled
4463       demuxers and muxers.
4464
4465       The description of some of the currently available demuxers follows.
4466
4467   aa
4468       Audible Format 2, 3, and 4 demuxer.
4469
4470       This demuxer is used to demux Audible Format 2, 3, and 4 (.aa) files.
4471
4472   aac
4473       Raw Audio Data Transport Stream AAC demuxer.
4474
4475       This demuxer is used to demux an ADTS input containing a single AAC
4476       stream alongwith any ID3v1/2 or APE tags in it.
4477
4478   apng
4479       Animated Portable Network Graphics demuxer.
4480
4481       This demuxer is used to demux APNG files.  All headers, but the PNG
4482       signature, up to (but not including) the first fcTL chunk are
4483       transmitted as extradata.  Frames are then split as being all the
4484       chunks between two fcTL ones, or between the last fcTL and IEND chunks.
4485
4486       -ignore_loop bool
4487           Ignore the loop variable in the file if set. Default is enabled.
4488
4489       -max_fps int
4490           Maximum framerate in frames per second. Default of 0 imposes no
4491           limit.
4492
4493       -default_fps int
4494           Default framerate in frames per second when none is specified in
4495           the file (0 meaning as fast as possible). Default is 15.
4496
4497   asf
4498       Advanced Systems Format demuxer.
4499
4500       This demuxer is used to demux ASF files and MMS network streams.
4501
4502       -no_resync_search bool
4503           Do not try to resynchronize by looking for a certain optional start
4504           code.
4505
4506   concat
4507       Virtual concatenation script demuxer.
4508
4509       This demuxer reads a list of files and other directives from a text
4510       file and demuxes them one after the other, as if all their packets had
4511       been muxed together.
4512
4513       The timestamps in the files are adjusted so that the first file starts
4514       at 0 and each next file starts where the previous one finishes. Note
4515       that it is done globally and may cause gaps if all streams do not have
4516       exactly the same length.
4517
4518       All files must have the same streams (same codecs, same time base,
4519       etc.).
4520
4521       The duration of each file is used to adjust the timestamps of the next
4522       file: if the duration is incorrect (because it was computed using the
4523       bit-rate or because the file is truncated, for example), it can cause
4524       artifacts. The "duration" directive can be used to override the
4525       duration stored in each file.
4526
4527       Syntax
4528
4529       The script is a text file in extended-ASCII, with one directive per
4530       line.  Empty lines, leading spaces and lines starting with '#' are
4531       ignored. The following directive is recognized:
4532
4533       "file path"
4534           Path to a file to read; special characters and spaces must be
4535           escaped with backslash or single quotes.
4536
4537           All subsequent file-related directives apply to that file.
4538
4539       "ffconcat version 1.0"
4540           Identify the script type and version.
4541
4542           To make FFmpeg recognize the format automatically, this directive
4543           must appear exactly as is (no extra space or byte-order-mark) on
4544           the very first line of the script.
4545
4546       "duration dur"
4547           Duration of the file. This information can be specified from the
4548           file; specifying it here may be more efficient or help if the
4549           information from the file is not available or accurate.
4550
4551           If the duration is set for all files, then it is possible to seek
4552           in the whole concatenated video.
4553
4554       "inpoint timestamp"
4555           In point of the file. When the demuxer opens the file it instantly
4556           seeks to the specified timestamp. Seeking is done so that all
4557           streams can be presented successfully at In point.
4558
4559           This directive works best with intra frame codecs, because for non-
4560           intra frame ones you will usually get extra packets before the
4561           actual In point and the decoded content will most likely contain
4562           frames before In point too.
4563
4564           For each file, packets before the file In point will have
4565           timestamps less than the calculated start timestamp of the file
4566           (negative in case of the first file), and the duration of the files
4567           (if not specified by the "duration" directive) will be reduced
4568           based on their specified In point.
4569
4570           Because of potential packets before the specified In point, packet
4571           timestamps may overlap between two concatenated files.
4572
4573       "outpoint timestamp"
4574           Out point of the file. When the demuxer reaches the specified
4575           decoding timestamp in any of the streams, it handles it as an end
4576           of file condition and skips the current and all the remaining
4577           packets from all streams.
4578
4579           Out point is exclusive, which means that the demuxer will not
4580           output packets with a decoding timestamp greater or equal to Out
4581           point.
4582
4583           This directive works best with intra frame codecs and formats where
4584           all streams are tightly interleaved. For non-intra frame codecs you
4585           will usually get additional packets with presentation timestamp
4586           after Out point therefore the decoded content will most likely
4587           contain frames after Out point too. If your streams are not tightly
4588           interleaved you may not get all the packets from all streams before
4589           Out point and you may only will be able to decode the earliest
4590           stream until Out point.
4591
4592           The duration of the files (if not specified by the "duration"
4593           directive) will be reduced based on their specified Out point.
4594
4595       "file_packet_metadata key=value"
4596           Metadata of the packets of the file. The specified metadata will be
4597           set for each file packet. You can specify this directive multiple
4598           times to add multiple metadata entries.  This directive is
4599           deprecated, use "file_packet_meta" instead.
4600
4601       "file_packet_meta key value"
4602           Metadata of the packets of the file. The specified metadata will be
4603           set for each file packet. You can specify this directive multiple
4604           times to add multiple metadata entries.
4605
4606       "option key value"
4607           Option to access, open and probe the file.  Can be present multiple
4608           times.
4609
4610       "stream"
4611           Introduce a stream in the virtual file.  All subsequent stream-
4612           related directives apply to the last introduced stream.  Some
4613           streams properties must be set in order to allow identifying the
4614           matching streams in the subfiles.  If no streams are defined in the
4615           script, the streams from the first file are copied.
4616
4617       "exact_stream_id id"
4618           Set the id of the stream.  If this directive is given, the string
4619           with the corresponding id in the subfiles will be used.  This is
4620           especially useful for MPEG-PS (VOB) files, where the order of the
4621           streams is not reliable.
4622
4623       "stream_meta key value"
4624           Metadata for the stream.  Can be present multiple times.
4625
4626       "stream_codec value"
4627           Codec for the stream.
4628
4629       "stream_extradata hex_string"
4630           Extradata for the string, encoded in hexadecimal.
4631
4632       "chapter id start end"
4633           Add a chapter. id is an unique identifier, possibly small and
4634           consecutive.
4635
4636       Options
4637
4638       This demuxer accepts the following option:
4639
4640       safe
4641           If set to 1, reject unsafe file paths and directives.  A file path
4642           is considered safe if it does not contain a protocol specification
4643           and is relative and all components only contain characters from the
4644           portable character set (letters, digits, period, underscore and
4645           hyphen) and have no period at the beginning of a component.
4646
4647           If set to 0, any file name is accepted.
4648
4649           The default is 1.
4650
4651       auto_convert
4652           If set to 1, try to perform automatic conversions on packet data to
4653           make the streams concatenable.  The default is 1.
4654
4655           Currently, the only conversion is adding the h264_mp4toannexb
4656           bitstream filter to H.264 streams in MP4 format. This is necessary
4657           in particular if there are resolution changes.
4658
4659       segment_time_metadata
4660           If set to 1, every packet will contain the lavf.concat.start_time
4661           and the lavf.concat.duration packet metadata values which are the
4662           start_time and the duration of the respective file segments in the
4663           concatenated output expressed in microseconds. The duration
4664           metadata is only set if it is known based on the concat file.  The
4665           default is 0.
4666
4667       Examples
4668
4669       •   Use absolute filenames and include some comments:
4670
4671                   # my first filename
4672                   file /mnt/share/file-1.wav
4673                   # my second filename including whitespace
4674                   file '/mnt/share/file 2.wav'
4675                   # my third filename including whitespace plus single quote
4676                   file '/mnt/share/file 3'\''.wav'
4677
4678       •   Allow for input format auto-probing, use safe filenames and set the
4679           duration of the first file:
4680
4681                   ffconcat version 1.0
4682
4683                   file file-1.wav
4684                   duration 20.0
4685
4686                   file subdir/file-2.wav
4687
4688   dash
4689       Dynamic Adaptive Streaming over HTTP demuxer.
4690
4691       This demuxer presents all AVStreams found in the manifest.  By setting
4692       the discard flags on AVStreams the caller can decide which streams to
4693       actually receive.  Each stream mirrors the "id" and "bandwidth"
4694       properties from the "<Representation>" as metadata keys named "id" and
4695       "variant_bitrate" respectively.
4696
4697       Options
4698
4699       This demuxer accepts the following option:
4700
4701       cenc_decryption_key
4702           16-byte key, in hex, to decrypt files encrypted using ISO Common
4703           Encryption (CENC/AES-128 CTR; ISO/IEC 23001-7).
4704
4705   imf
4706       Interoperable Master Format demuxer.
4707
4708       This demuxer presents audio and video streams found in an IMF
4709       Composition.
4710
4711   flv, live_flv, kux
4712       Adobe Flash Video Format demuxer.
4713
4714       This demuxer is used to demux FLV files and RTMP network streams. In
4715       case of live network streams, if you force format, you may use live_flv
4716       option instead of flv to survive timestamp discontinuities.  KUX is a
4717       flv variant used on the Youku platform.
4718
4719               ffmpeg -f flv -i myfile.flv ...
4720               ffmpeg -f live_flv -i rtmp://<any.server>/anything/key ....
4721
4722       -flv_metadata bool
4723           Allocate the streams according to the onMetaData array content.
4724
4725       -flv_ignore_prevtag bool
4726           Ignore the size of previous tag value.
4727
4728       -flv_full_metadata bool
4729           Output all context of the onMetadata.
4730
4731   gif
4732       Animated GIF demuxer.
4733
4734       It accepts the following options:
4735
4736       min_delay
4737           Set the minimum valid delay between frames in hundredths of
4738           seconds.  Range is 0 to 6000. Default value is 2.
4739
4740       max_gif_delay
4741           Set the maximum valid delay between frames in hundredth of seconds.
4742           Range is 0 to 65535. Default value is 65535 (nearly eleven
4743           minutes), the maximum value allowed by the specification.
4744
4745       default_delay
4746           Set the default delay between frames in hundredths of seconds.
4747           Range is 0 to 6000. Default value is 10.
4748
4749       ignore_loop
4750           GIF files can contain information to loop a certain number of times
4751           (or infinitely). If ignore_loop is set to 1, then the loop setting
4752           from the input will be ignored and looping will not occur. If set
4753           to 0, then looping will occur and will cycle the number of times
4754           according to the GIF. Default value is 1.
4755
4756       For example, with the overlay filter, place an infinitely looping GIF
4757       over another video:
4758
4759               ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex overlay=shortest=1 out.mkv
4760
4761       Note that in the above example the shortest option for overlay filter
4762       is used to end the output video at the length of the shortest input
4763       file, which in this case is input.mp4 as the GIF in this example loops
4764       infinitely.
4765
4766   hls
4767       HLS demuxer
4768
4769       Apple HTTP Live Streaming demuxer.
4770
4771       This demuxer presents all AVStreams from all variant streams.  The id
4772       field is set to the bitrate variant index number. By setting the
4773       discard flags on AVStreams (by pressing 'a' or 'v' in ffplay), the
4774       caller can decide which variant streams to actually receive.  The total
4775       bitrate of the variant that the stream belongs to is available in a
4776       metadata key named "variant_bitrate".
4777
4778       It accepts the following options:
4779
4780       live_start_index
4781           segment index to start live streams at (negative values are from
4782           the end).
4783
4784       prefer_x_start
4785           prefer to use #EXT-X-START if it's in playlist instead of
4786           live_start_index.
4787
4788       allowed_extensions
4789           ',' separated list of file extensions that hls is allowed to
4790           access.
4791
4792       max_reload
4793           Maximum number of times a insufficient list is attempted to be
4794           reloaded.  Default value is 1000.
4795
4796       m3u8_hold_counters
4797           The maximum number of times to load m3u8 when it refreshes without
4798           new segments.  Default value is 1000.
4799
4800       http_persistent
4801           Use persistent HTTP connections. Applicable only for HTTP streams.
4802           Enabled by default.
4803
4804       http_multiple
4805           Use multiple HTTP connections for downloading HTTP segments.
4806           Enabled by default for HTTP/1.1 servers.
4807
4808       http_seekable
4809           Use HTTP partial requests for downloading HTTP segments.  0 =
4810           disable, 1 = enable, -1 = auto, Default is auto.
4811
4812       seg_format_options
4813           Set options for the demuxer of media segments using a list of
4814           key=value pairs separated by ":".
4815
4816   image2
4817       Image file demuxer.
4818
4819       This demuxer reads from a list of image files specified by a pattern.
4820       The syntax and meaning of the pattern is specified by the option
4821       pattern_type.
4822
4823       The pattern may contain a suffix which is used to automatically
4824       determine the format of the images contained in the files.
4825
4826       The size, the pixel format, and the format of each image must be the
4827       same for all the files in the sequence.
4828
4829       This demuxer accepts the following options:
4830
4831       framerate
4832           Set the frame rate for the video stream. It defaults to 25.
4833
4834       loop
4835           If set to 1, loop over the input. Default value is 0.
4836
4837       pattern_type
4838           Select the pattern type used to interpret the provided filename.
4839
4840           pattern_type accepts one of the following values.
4841
4842           none
4843               Disable pattern matching, therefore the video will only contain
4844               the specified image. You should use this option if you do not
4845               want to create sequences from multiple images and your
4846               filenames may contain special pattern characters.
4847
4848           sequence
4849               Select a sequence pattern type, used to specify a sequence of
4850               files indexed by sequential numbers.
4851
4852               A sequence pattern may contain the string "%d" or "%0Nd", which
4853               specifies the position of the characters representing a
4854               sequential number in each filename matched by the pattern. If
4855               the form "%d0Nd" is used, the string representing the number in
4856               each filename is 0-padded and N is the total number of 0-padded
4857               digits representing the number. The literal character '%' can
4858               be specified in the pattern with the string "%%".
4859
4860               If the sequence pattern contains "%d" or "%0Nd", the first
4861               filename of the file list specified by the pattern must contain
4862               a number inclusively contained between start_number and
4863               start_number+start_number_range-1, and all the following
4864               numbers must be sequential.
4865
4866               For example the pattern "img-%03d.bmp" will match a sequence of
4867               filenames of the form img-001.bmp, img-002.bmp, ...,
4868               img-010.bmp, etc.; the pattern "i%%m%%g-%d.jpg" will match a
4869               sequence of filenames of the form i%m%g-1.jpg, i%m%g-2.jpg,
4870               ..., i%m%g-10.jpg, etc.
4871
4872               Note that the pattern must not necessarily contain "%d" or
4873               "%0Nd", for example to convert a single image file img.jpeg you
4874               can employ the command:
4875
4876                       ffmpeg -i img.jpeg img.png
4877
4878           glob
4879               Select a glob wildcard pattern type.
4880
4881               The pattern is interpreted like a "glob()" pattern. This is
4882               only selectable if libavformat was compiled with globbing
4883               support.
4884
4885           glob_sequence (deprecated, will be removed)
4886               Select a mixed glob wildcard/sequence pattern.
4887
4888               If your version of libavformat was compiled with globbing
4889               support, and the provided pattern contains at least one glob
4890               meta character among "%*?[]{}" that is preceded by an unescaped
4891               "%", the pattern is interpreted like a "glob()" pattern,
4892               otherwise it is interpreted like a sequence pattern.
4893
4894               All glob special characters "%*?[]{}" must be prefixed with
4895               "%". To escape a literal "%" you shall use "%%".
4896
4897               For example the pattern "foo-%*.jpeg" will match all the
4898               filenames prefixed by "foo-" and terminating with ".jpeg", and
4899               "foo-%?%?%?.jpeg" will match all the filenames prefixed with
4900               "foo-", followed by a sequence of three characters, and
4901               terminating with ".jpeg".
4902
4903               This pattern type is deprecated in favor of glob and sequence.
4904
4905           Default value is glob_sequence.
4906
4907       pixel_format
4908           Set the pixel format of the images to read. If not specified the
4909           pixel format is guessed from the first image file in the sequence.
4910
4911       start_number
4912           Set the index of the file matched by the image file pattern to
4913           start to read from. Default value is 0.
4914
4915       start_number_range
4916           Set the index interval range to check when looking for the first
4917           image file in the sequence, starting from start_number. Default
4918           value is 5.
4919
4920       ts_from_file
4921           If set to 1, will set frame timestamp to modification time of image
4922           file. Note that monotonity of timestamps is not provided: images go
4923           in the same order as without this option. Default value is 0.  If
4924           set to 2, will set frame timestamp to the modification time of the
4925           image file in nanosecond precision.
4926
4927       video_size
4928           Set the video size of the images to read. If not specified the
4929           video size is guessed from the first image file in the sequence.
4930
4931       export_path_metadata
4932           If set to 1, will add two extra fields to the metadata found in
4933           input, making them also available for other filters (see drawtext
4934           filter for examples). Default value is 0. The extra fields are
4935           described below:
4936
4937           lavf.image2dec.source_path
4938               Corresponds to the full path to the input file being read.
4939
4940           lavf.image2dec.source_basename
4941               Corresponds to the name of the file being read.
4942
4943       Examples
4944
4945       •   Use ffmpeg for creating a video from the images in the file
4946           sequence img-001.jpeg, img-002.jpeg, ..., assuming an input frame
4947           rate of 10 frames per second:
4948
4949                   ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
4950
4951       •   As above, but start by reading from a file with index 100 in the
4952           sequence:
4953
4954                   ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
4955
4956       •   Read images matching the "*.png" glob pattern , that is all the
4957           files terminating with the ".png" suffix:
4958
4959                   ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
4960
4961   libgme
4962       The Game Music Emu library is a collection of video game music file
4963       emulators.
4964
4965       See <https://bitbucket.org/mpyne/game-music-emu/overview> for more
4966       information.
4967
4968       It accepts the following options:
4969
4970       track_index
4971           Set the index of which track to demux. The demuxer can only export
4972           one track.  Track indexes start at 0. Default is to pick the first
4973           track. Number of tracks is exported as tracks metadata entry.
4974
4975       sample_rate
4976           Set the sampling rate of the exported track. Range is 1000 to
4977           999999. Default is 44100.
4978
4979       max_size (bytes)
4980           The demuxer buffers the entire file into memory. Adjust this value
4981           to set the maximum buffer size, which in turn, acts as a ceiling
4982           for the size of files that can be read.  Default is 50 MiB.
4983
4984   libmodplug
4985       ModPlug based module demuxer
4986
4987       See <https://github.com/Konstanty/libmodplug>
4988
4989       It will export one 2-channel 16-bit 44.1 kHz audio stream.  Optionally,
4990       a "pal8" 16-color video stream can be exported with or without printed
4991       metadata.
4992
4993       It accepts the following options:
4994
4995       noise_reduction
4996           Apply a simple low-pass filter. Can be 1 (on) or 0 (off). Default
4997           is 0.
4998
4999       reverb_depth
5000           Set amount of reverb. Range 0-100. Default is 0.
5001
5002       reverb_delay
5003           Set delay in ms, clamped to 40-250 ms. Default is 0.
5004
5005       bass_amount
5006           Apply bass expansion a.k.a. XBass or megabass. Range is 0 (quiet)
5007           to 100 (loud). Default is 0.
5008
5009       bass_range
5010           Set cutoff i.e. upper-bound for bass frequencies. Range is 10-100
5011           Hz. Default is 0.
5012
5013       surround_depth
5014           Apply a Dolby Pro-Logic surround effect. Range is 0 (quiet) to 100
5015           (heavy). Default is 0.
5016
5017       surround_delay
5018           Set surround delay in ms, clamped to 5-40 ms. Default is 0.
5019
5020       max_size
5021           The demuxer buffers the entire file into memory. Adjust this value
5022           to set the maximum buffer size, which in turn, acts as a ceiling
5023           for the size of files that can be read. Range is 0 to 100 MiB.  0
5024           removes buffer size limit (not recommended). Default is 5 MiB.
5025
5026       video_stream_expr
5027           String which is evaluated using the eval API to assign colors to
5028           the generated video stream.  Variables which can be used are "x",
5029           "y", "w", "h", "t", "speed", "tempo", "order", "pattern" and "row".
5030
5031       video_stream
5032           Generate video stream. Can be 1 (on) or 0 (off). Default is 0.
5033
5034       video_stream_w
5035           Set video frame width in 'chars' where one char indicates 8 pixels.
5036           Range is 20-512. Default is 30.
5037
5038       video_stream_h
5039           Set video frame height in 'chars' where one char indicates 8
5040           pixels. Range is 20-512. Default is 30.
5041
5042       video_stream_ptxt
5043           Print metadata on video stream. Includes "speed", "tempo", "order",
5044           "pattern", "row" and "ts" (time in ms). Can be 1 (on) or 0 (off).
5045           Default is 1.
5046
5047   libopenmpt
5048       libopenmpt based module demuxer
5049
5050       See <https://lib.openmpt.org/libopenmpt/> for more information.
5051
5052       Some files have multiple subsongs (tracks) this can be set with the
5053       subsong option.
5054
5055       It accepts the following options:
5056
5057       subsong
5058           Set the subsong index. This can be either  'all', 'auto', or the
5059           index of the subsong. Subsong indexes start at 0. The default is
5060           'auto'.
5061
5062           The default value is to let libopenmpt choose.
5063
5064       layout
5065           Set the channel layout. Valid values are 1, 2, and 4 channel
5066           layouts.  The default value is STEREO.
5067
5068       sample_rate
5069           Set the sample rate for libopenmpt to output.  Range is from 1000
5070           to INT_MAX. The value default is 48000.
5071
5072   mov/mp4/3gp
5073       Demuxer for Quicktime File Format & ISO/IEC Base Media File Format
5074       (ISO/IEC 14496-12 or MPEG-4 Part 12, ISO/IEC 15444-12 or JPEG 2000 Part
5075       12).
5076
5077       Registered extensions: mov, mp4, m4a, 3gp, 3g2, mj2, psp, m4b, ism,
5078       ismv, isma, f4v
5079
5080       Options
5081
5082       This demuxer accepts the following options:
5083
5084       enable_drefs
5085           Enable loading of external tracks, disabled by default.  Enabling
5086           this can theoretically leak information in some use cases.
5087
5088       use_absolute_path
5089           Allows loading of external tracks via absolute paths, disabled by
5090           default.  Enabling this poses a security risk. It should only be
5091           enabled if the source is known to be non-malicious.
5092
5093       seek_streams_individually
5094           When seeking, identify the closest point in each stream
5095           individually and demux packets in that stream from identified
5096           point. This can lead to a different sequence of packets compared to
5097           demuxing linearly from the beginning. Default is true.
5098
5099       ignore_editlist
5100           Ignore any edit list atoms. The demuxer, by default, modifies the
5101           stream index to reflect the timeline described by the edit list.
5102           Default is false.
5103
5104       advanced_editlist
5105           Modify the stream index to reflect the timeline described by the
5106           edit list. "ignore_editlist" must be set to false for this option
5107           to be effective.  If both "ignore_editlist" and this option are set
5108           to false, then only the start of the stream index is modified to
5109           reflect initial dwell time or starting timestamp described by the
5110           edit list. Default is true.
5111
5112       ignore_chapters
5113           Don't parse chapters. This includes GoPro 'HiLight' tags/moments.
5114           Note that chapters are only parsed when input is seekable. Default
5115           is false.
5116
5117       use_mfra_for
5118           For seekable fragmented input, set fragment's starting timestamp
5119           from media fragment random access box, if present.
5120
5121           Following options are available:
5122
5123           auto
5124               Auto-detect whether to set mfra timestamps as PTS or DTS
5125               (default)
5126
5127           dts Set mfra timestamps as DTS
5128
5129           pts Set mfra timestamps as PTS
5130
5131           0   Don't use mfra box to set timestamps
5132
5133       use_tfdt
5134           For fragmented input, set fragment's starting timestamp to
5135           "baseMediaDecodeTime" from the "tfdt" box.  Default is enabled,
5136           which will prefer to use the "tfdt" box to set DTS. Disable to use
5137           the "earliest_presentation_time" from the "sidx" box.  In either
5138           case, the timestamp from the "mfra" box will be used if it's
5139           available and "use_mfra_for" is set to pts or dts.
5140
5141       export_all
5142           Export unrecognized boxes within the udta box as metadata entries.
5143           The first four characters of the box type are set as the key.
5144           Default is false.
5145
5146       export_xmp
5147           Export entire contents of XMP_ box and uuid box as a string with
5148           key "xmp". Note that if "export_all" is set and this option isn't,
5149           the contents of XMP_ box are still exported but with key "XMP_".
5150           Default is false.
5151
5152       activation_bytes
5153           4-byte key required to decrypt Audible AAX and AAX+ files. See
5154           Audible AAX subsection below.
5155
5156       audible_fixed_key
5157           Fixed key used for handling Audible AAX/AAX+ files. It has been
5158           pre-set so should not be necessary to specify.
5159
5160       decryption_key
5161           16-byte key, in hex, to decrypt files encrypted using ISO Common
5162           Encryption (CENC/AES-128 CTR; ISO/IEC 23001-7).
5163
5164       max_stts_delta
5165           Very high sample deltas written in a trak's stts box may
5166           occasionally be intended but usually they are written in error or
5167           used to store a negative value for dts correction when treated as
5168           signed 32-bit integers. This option lets the user set an upper
5169           limit, beyond which the delta is clamped to 1. Values greater than
5170           the limit if negative when cast to int32 are used to adjust onward
5171           dts.
5172
5173           Unit is the track time scale. Range is 0 to UINT_MAX. Default is
5174           "UINT_MAX - 48000*10" which allows upto a 10 second dts correction
5175           for 48 kHz audio streams while accommodating 99.9% of "uint32"
5176           range.
5177
5178       Audible AAX
5179
5180       Audible AAX files are encrypted M4B files, and they can be decrypted by
5181       specifying a 4 byte activation secret.
5182
5183               ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:a copy output.mp4
5184
5185   mpegts
5186       MPEG-2 transport stream demuxer.
5187
5188       This demuxer accepts the following options:
5189
5190       resync_size
5191           Set size limit for looking up a new synchronization. Default value
5192           is 65536.
5193
5194       skip_unknown_pmt
5195           Skip PMTs for programs not defined in the PAT. Default value is 0.
5196
5197       fix_teletext_pts
5198           Override teletext packet PTS and DTS values with the timestamps
5199           calculated from the PCR of the first program which the teletext
5200           stream is part of and is not discarded. Default value is 1, set
5201           this option to 0 if you want your teletext packet PTS and DTS
5202           values untouched.
5203
5204       ts_packetsize
5205           Output option carrying the raw packet size in bytes.  Show the
5206           detected raw packet size, cannot be set by the user.
5207
5208       scan_all_pmts
5209           Scan and combine all PMTs. The value is an integer with value from
5210           -1 to 1 (-1 means automatic setting, 1 means enabled, 0 means
5211           disabled). Default value is -1.
5212
5213       merge_pmt_versions
5214           Re-use existing streams when a PMT's version is updated and
5215           elementary streams move to different PIDs. Default value is 0.
5216
5217       max_packet_size
5218           Set maximum size, in bytes, of packet emitted by the demuxer.
5219           Payloads above this size are split across multiple packets. Range
5220           is 1 to INT_MAX/2. Default is 204800 bytes.
5221
5222   mpjpeg
5223       MJPEG encapsulated in multi-part MIME demuxer.
5224
5225       This demuxer allows reading of MJPEG, where each frame is represented
5226       as a part of multipart/x-mixed-replace stream.
5227
5228       strict_mime_boundary
5229           Default implementation applies a relaxed standard to multi-part
5230           MIME boundary detection, to prevent regression with numerous
5231           existing endpoints not generating a proper MIME MJPEG stream.
5232           Turning this option on by setting it to 1 will result in a stricter
5233           check of the boundary value.
5234
5235   rawvideo
5236       Raw video demuxer.
5237
5238       This demuxer allows one to read raw video data. Since there is no
5239       header specifying the assumed video parameters, the user must specify
5240       them in order to be able to decode the data correctly.
5241
5242       This demuxer accepts the following options:
5243
5244       framerate
5245           Set input video frame rate. Default value is 25.
5246
5247       pixel_format
5248           Set the input video pixel format. Default value is "yuv420p".
5249
5250       video_size
5251           Set the input video size. This value must be specified explicitly.
5252
5253       For example to read a rawvideo file input.raw with ffplay, assuming a
5254       pixel format of "rgb24", a video size of "320x240", and a frame rate of
5255       10 images per second, use the command:
5256
5257               ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
5258
5259   sbg
5260       SBaGen script demuxer.
5261
5262       This demuxer reads the script language used by SBaGen
5263       <http://uazu.net/sbagen/> to generate binaural beats sessions. A SBG
5264       script looks like that:
5265
5266               -SE
5267               a: 300-2.5/3 440+4.5/0
5268               b: 300-2.5/0 440+4.5/3
5269               off: -
5270               NOW      == a
5271               +0:07:00 == b
5272               +0:14:00 == a
5273               +0:21:00 == b
5274               +0:30:00    off
5275
5276       A SBG script can mix absolute and relative timestamps. If the script
5277       uses either only absolute timestamps (including the script start time)
5278       or only relative ones, then its layout is fixed, and the conversion is
5279       straightforward. On the other hand, if the script mixes both kind of
5280       timestamps, then the NOW reference for relative timestamps will be
5281       taken from the current time of day at the time the script is read, and
5282       the script layout will be frozen according to that reference. That
5283       means that if the script is directly played, the actual times will
5284       match the absolute timestamps up to the sound controller's clock
5285       accuracy, but if the user somehow pauses the playback or seeks, all
5286       times will be shifted accordingly.
5287
5288   tedcaptions
5289       JSON captions used for <http://www.ted.com/>.
5290
5291       TED does not provide links to the captions, but they can be guessed
5292       from the page. The file tools/bookmarklets.html from the FFmpeg source
5293       tree contains a bookmarklet to expose them.
5294
5295       This demuxer accepts the following option:
5296
5297       start_time
5298           Set the start time of the TED talk, in milliseconds. The default is
5299           15000 (15s). It is used to sync the captions with the downloadable
5300           videos, because they include a 15s intro.
5301
5302       Example: convert the captions to a format most players understand:
5303
5304               ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
5305
5306   vapoursynth
5307       Vapoursynth wrapper.
5308
5309       Due to security concerns, Vapoursynth scripts will not be autodetected
5310       so the input format has to be forced. For ff* CLI tools, add "-f
5311       vapoursynth" before the input "-i yourscript.vpy".
5312
5313       This demuxer accepts the following option:
5314
5315       max_script_size
5316           The demuxer buffers the entire script into memory. Adjust this
5317           value to set the maximum buffer size, which in turn, acts as a
5318           ceiling for the size of scripts that can be read.  Default is 1
5319           MiB.
5320

METADATA

5322       FFmpeg is able to dump metadata from media files into a simple
5323       UTF-8-encoded INI-like text file and then load it back using the
5324       metadata muxer/demuxer.
5325
5326       The file format is as follows:
5327
5328       1.  A file consists of a header and a number of metadata tags divided
5329           into sections, each on its own line.
5330
5331       2.  The header is a ;FFMETADATA string, followed by a version number
5332           (now 1).
5333
5334       3.  Metadata tags are of the form key=value
5335
5336       4.  Immediately after header follows global metadata
5337
5338       5.  After global metadata there may be sections with
5339           per-stream/per-chapter metadata.
5340
5341       6.  A section starts with the section name in uppercase (i.e. STREAM or
5342           CHAPTER) in brackets ([, ]) and ends with next section or end of
5343           file.
5344
5345       7.  At the beginning of a chapter section there may be an optional
5346           timebase to be used for start/end values. It must be in form
5347           TIMEBASE=num/den, where num and den are integers. If the timebase
5348           is missing then start/end times are assumed to be in nanoseconds.
5349
5350           Next a chapter section must contain chapter start and end times in
5351           form START=num, END=num, where num is a positive integer.
5352
5353       8.  Empty lines and lines starting with ; or # are ignored.
5354
5355       9.  Metadata keys or values containing special characters (=, ;, #, \
5356           and a newline) must be escaped with a backslash \.
5357
5358       10. Note that whitespace in metadata (e.g. foo = bar) is considered to
5359           be a part of the tag (in the example above key is foo , value is
5360            bar).
5361
5362       A ffmetadata file might look like this:
5363
5364               ;FFMETADATA1
5365               title=bike\\shed
5366               ;this is a comment
5367               artist=FFmpeg troll team
5368
5369               [CHAPTER]
5370               TIMEBASE=1/1000
5371               START=0
5372               #chapter ends at 0:01:00
5373               END=60000
5374               title=chapter \#1
5375               [STREAM]
5376               title=multi\
5377               line
5378
5379       By using the ffmetadata muxer and demuxer it is possible to extract
5380       metadata from an input file to an ffmetadata file, and then transcode
5381       the file into an output file with the edited ffmetadata file.
5382
5383       Extracting an ffmetadata file with ffmpeg goes as follows:
5384
5385               ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
5386
5387       Reinserting edited metadata information from the FFMETADATAFILE file
5388       can be done as:
5389
5390               ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
5391

PROTOCOL OPTIONS

5393       The libavformat library provides some generic global options, which can
5394       be set on all the protocols. In addition each protocol may support so-
5395       called private options, which are specific for that component.
5396
5397       Options may be set by specifying -option value in the FFmpeg tools, or
5398       by setting the value explicitly in the "AVFormatContext" options or
5399       using the libavutil/opt.h API for programmatic use.
5400
5401       The list of supported options follows:
5402
5403       protocol_whitelist list (input)
5404           Set a ","-separated list of allowed protocols. "ALL" matches all
5405           protocols. Protocols prefixed by "-" are disabled.  All protocols
5406           are allowed by default but protocols used by an another protocol
5407           (nested protocols) are restricted to a per protocol subset.
5408

PROTOCOLS

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

DEVICE OPTIONS

7228       The libavdevice library provides the same interface as libavformat.
7229       Namely, an input device is considered like a demuxer, and an output
7230       device like a muxer, and the interface and generic device options are
7231       the same provided by libavformat (see the ffmpeg-formats manual).
7232
7233       In addition each input or output device may support so-called private
7234       options, which are specific for that component.
7235
7236       Options may be set by specifying -option value in the FFmpeg tools, or
7237       by setting the value explicitly in the device "AVFormatContext" options
7238       or using the libavutil/opt.h API for programmatic use.
7239

INPUT DEVICES

7241       Input devices are configured elements in FFmpeg which enable accessing
7242       the data coming from a multimedia device attached to your system.
7243
7244       When you configure your FFmpeg build, all the supported input devices
7245       are enabled by default. You can list all available ones using the
7246       configure option "--list-indevs".
7247
7248       You can disable all the input devices using the configure option
7249       "--disable-indevs", and selectively enable an input device using the
7250       option "--enable-indev=INDEV", or you can disable a particular input
7251       device using the option "--disable-indev=INDEV".
7252
7253       The option "-devices" of the ff* tools will display the list of
7254       supported input devices.
7255
7256       A description of the currently available input devices follows.
7257
7258   alsa
7259       ALSA (Advanced Linux Sound Architecture) input device.
7260
7261       To enable this input device during configuration you need libasound
7262       installed on your system.
7263
7264       This device allows capturing from an ALSA device. The name of the
7265       device to capture has to be an ALSA card identifier.
7266
7267       An ALSA identifier has the syntax:
7268
7269               hw:<CARD>[,<DEV>[,<SUBDEV>]]
7270
7271       where the DEV and SUBDEV components are optional.
7272
7273       The three arguments (in order: CARD,DEV,SUBDEV) specify card number or
7274       identifier, device number and subdevice number (-1 means any).
7275
7276       To see the list of cards currently recognized by your system check the
7277       files /proc/asound/cards and /proc/asound/devices.
7278
7279       For example to capture with ffmpeg from an ALSA device with card id 0,
7280       you may run the command:
7281
7282               ffmpeg -f alsa -i hw:0 alsaout.wav
7283
7284       For more information see:
7285       <http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html>
7286
7287       Options
7288
7289       sample_rate
7290           Set the sample rate in Hz. Default is 48000.
7291
7292       channels
7293           Set the number of channels. Default is 2.
7294
7295   android_camera
7296       Android camera input device.
7297
7298       This input devices uses the Android Camera2 NDK API which is available
7299       on devices with API level 24+. The availability of android_camera is
7300       autodetected during configuration.
7301
7302       This device allows capturing from all cameras on an Android device,
7303       which are integrated into the Camera2 NDK API.
7304
7305       The available cameras are enumerated internally and can be selected
7306       with the camera_index parameter. The input file string is discarded.
7307
7308       Generally the back facing camera has index 0 while the front facing
7309       camera has index 1.
7310
7311       Options
7312
7313       video_size
7314           Set the video size given as a string such as 640x480 or hd720.
7315           Falls back to the first available configuration reported by Android
7316           if requested video size is not available or by default.
7317
7318       framerate
7319           Set the video framerate.  Falls back to the first available
7320           configuration reported by Android if requested framerate is not
7321           available or by default (-1).
7322
7323       camera_index
7324           Set the index of the camera to use. Default is 0.
7325
7326       input_queue_size
7327           Set the maximum number of frames to buffer. Default is 5.
7328
7329   avfoundation
7330       AVFoundation input device.
7331
7332       AVFoundation is the currently recommended framework by Apple for
7333       streamgrabbing on OSX >= 10.7 as well as on iOS.
7334
7335       The input filename has to be given in the following syntax:
7336
7337               -i "[[VIDEO]:[AUDIO]]"
7338
7339       The first entry selects the video input while the latter selects the
7340       audio input.  The stream has to be specified by the device name or the
7341       device index as shown by the device list.  Alternatively, the video
7342       and/or audio input device can be chosen by index using the
7343
7344           B<-video_device_index E<lt>INDEXE<gt>>
7345
7346       and/or
7347
7348           B<-audio_device_index E<lt>INDEXE<gt>>
7349
7350       , overriding any device name or index given in the input filename.
7351
7352       All available devices can be enumerated by using -list_devices true,
7353       listing all device names and corresponding indices.
7354
7355       There are two device name aliases:
7356
7357       "default"
7358           Select the AVFoundation default device of the corresponding type.
7359
7360       "none"
7361           Do not record the corresponding media type.  This is equivalent to
7362           specifying an empty device name or index.
7363
7364       Options
7365
7366       AVFoundation supports the following options:
7367
7368       -list_devices <TRUE|FALSE>
7369           If set to true, a list of all available input devices is given
7370           showing all device names and indices.
7371
7372       -video_device_index <INDEX>
7373           Specify the video device by its index. Overrides anything given in
7374           the input filename.
7375
7376       -audio_device_index <INDEX>
7377           Specify the audio device by its index. Overrides anything given in
7378           the input filename.
7379
7380       -pixel_format <FORMAT>
7381           Request the video device to use a specific pixel format.  If the
7382           specified format is not supported, a list of available formats is
7383           given and the first one in this list is used instead. Available
7384           pixel formats are: "monob, rgb555be, rgb555le, rgb565be, rgb565le,
7385           rgb24, bgr24, 0rgb, bgr0, 0bgr, rgb0,
7386            bgr48be, uyvy422, yuva444p, yuva444p16le, yuv444p, yuv422p16,
7387           yuv422p10, yuv444p10,
7388            yuv420p, nv12, yuyv422, gray"
7389
7390       -framerate
7391           Set the grabbing frame rate. Default is "ntsc", corresponding to a
7392           frame rate of "30000/1001".
7393
7394       -video_size
7395           Set the video frame size.
7396
7397       -capture_cursor
7398           Capture the mouse pointer. Default is 0.
7399
7400       -capture_mouse_clicks
7401           Capture the screen mouse clicks. Default is 0.
7402
7403       -capture_raw_data
7404           Capture the raw device data. Default is 0.  Using this option may
7405           result in receiving the underlying data delivered to the
7406           AVFoundation framework. E.g. for muxed devices that sends raw DV
7407           data to the framework (like tape-based camcorders), setting this
7408           option to false results in extracted video frames captured in the
7409           designated pixel format only. Setting this option to true results
7410           in receiving the raw DV stream untouched.
7411
7412       Examples
7413
7414       •   Print the list of AVFoundation supported devices and exit:
7415
7416                   $ ffmpeg -f avfoundation -list_devices true -i ""
7417
7418       •   Record video from video device 0 and audio from audio device 0 into
7419           out.avi:
7420
7421                   $ ffmpeg -f avfoundation -i "0:0" out.avi
7422
7423       •   Record video from video device 2 and audio from audio device 1 into
7424           out.avi:
7425
7426                   $ ffmpeg -f avfoundation -video_device_index 2 -i ":1" out.avi
7427
7428       •   Record video from the system default video device using the pixel
7429           format bgr0 and do not record any audio into out.avi:
7430
7431                   $ ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi
7432
7433       •   Record raw DV data from a suitable input device and write the
7434           output into out.dv:
7435
7436                   $ ffmpeg -f avfoundation -capture_raw_data true -i "zr100:none" out.dv
7437
7438   bktr
7439       BSD video input device.
7440
7441       Options
7442
7443       framerate
7444           Set the frame rate.
7445
7446       video_size
7447           Set the video frame size. Default is "vga".
7448
7449       standard
7450           Available values are:
7451
7452           pal
7453           ntsc
7454           secam
7455           paln
7456           palm
7457           ntscj
7458
7459   decklink
7460       The decklink input device provides capture capabilities for Blackmagic
7461       DeckLink devices.
7462
7463       To enable this input device, you need the Blackmagic DeckLink SDK and
7464       you need to configure with the appropriate "--extra-cflags" and
7465       "--extra-ldflags".  On Windows, you need to run the IDL files through
7466       widl.
7467
7468       DeckLink is very picky about the formats it supports. Pixel format of
7469       the input can be set with raw_format.  Framerate and video size must be
7470       determined for your device with -list_formats 1. Audio sample rate is
7471       always 48 kHz and the number of channels can be 2, 8 or 16. Note that
7472       all audio channels are bundled in one single audio track.
7473
7474       Options
7475
7476       list_devices
7477           If set to true, print a list of devices and exit.  Defaults to
7478           false. This option is deprecated, please use the "-sources" option
7479           of ffmpeg to list the available input devices.
7480
7481       list_formats
7482           If set to true, print a list of supported formats and exit.
7483           Defaults to false.
7484
7485       format_code <FourCC>
7486           This sets the input video format to the format given by the FourCC.
7487           To see the supported values of your device(s) use list_formats.
7488           Note that there is a FourCC 'pal ' that can also be used as pal (3
7489           letters).  Default behavior is autodetection of the input video
7490           format, if the hardware supports it.
7491
7492       raw_format
7493           Set the pixel format of the captured video.  Available values are:
7494
7495           auto
7496               This is the default which means 8-bit YUV 422 or 8-bit ARGB if
7497               format autodetection is used, 8-bit YUV 422 otherwise.
7498
7499           uyvy422
7500               8-bit YUV 422.
7501
7502           yuv422p10
7503               10-bit YUV 422.
7504
7505           argb
7506               8-bit RGB.
7507
7508           bgra
7509               8-bit RGB.
7510
7511           rgb10
7512               10-bit RGB.
7513
7514       teletext_lines
7515           If set to nonzero, an additional teletext stream will be captured
7516           from the vertical ancillary data. Both SD PAL (576i) and HD (1080i
7517           or 1080p) sources are supported. In case of HD sources, OP47
7518           packets are decoded.
7519
7520           This option is a bitmask of the SD PAL VBI lines captured,
7521           specifically lines 6 to 22, and lines 318 to 335. Line 6 is the LSB
7522           in the mask. Selected lines which do not contain teletext
7523           information will be ignored. You can use the special all constant
7524           to select all possible lines, or standard to skip lines 6, 318 and
7525           319, which are not compatible with all receivers.
7526
7527           For SD sources, ffmpeg needs to be compiled with
7528           "--enable-libzvbi". For HD sources, on older (pre-4K) DeckLink card
7529           models you have to capture in 10 bit mode.
7530
7531       channels
7532           Defines number of audio channels to capture. Must be 2, 8 or 16.
7533           Defaults to 2.
7534
7535       duplex_mode
7536           Sets the decklink device duplex/profile mode. Must be unset, half,
7537           full, one_sub_device_full, one_sub_device_half,
7538           two_sub_device_full, four_sub_device_half Defaults to unset.
7539
7540           Note: DeckLink SDK 11.0 have replaced the duplex property by a
7541           profile property.  For the DeckLink Duo 2 and DeckLink Quad 2, a
7542           profile is shared between any 2 sub-devices that utilize the same
7543           connectors. For the DeckLink 8K Pro, a profile is shared between
7544           all 4 sub-devices. So DeckLink 8K Pro support four profiles.
7545
7546           Valid profile modes for DeckLink 8K Pro(with DeckLink SDK >= 11.0):
7547           one_sub_device_full, one_sub_device_half, two_sub_device_full,
7548           four_sub_device_half
7549
7550           Valid profile modes for DeckLink Quad 2 and DeckLink Duo 2: half,
7551           full
7552
7553       timecode_format
7554           Timecode type to include in the frame and video stream metadata.
7555           Must be none, rp188vitc, rp188vitc2, rp188ltc, rp188hfr, rp188any,
7556           vitc, vitc2, or serial.  Defaults to none (not included).
7557
7558           In order to properly support 50/60 fps timecodes, the ordering of
7559           the queried timecode types for rp188any is HFR, VITC1, VITC2 and
7560           LTC for >30 fps content. Note that this is slightly different to
7561           the ordering used by the DeckLink API, which is HFR, VITC1, LTC,
7562           VITC2.
7563
7564       video_input
7565           Sets the video input source. Must be unset, sdi, hdmi, optical_sdi,
7566           component, composite or s_video.  Defaults to unset.
7567
7568       audio_input
7569           Sets the audio input source. Must be unset, embedded, aes_ebu,
7570           analog, analog_xlr, analog_rca or microphone. Defaults to unset.
7571
7572       video_pts
7573           Sets the video packet timestamp source. Must be video, audio,
7574           reference, wallclock or abs_wallclock.  Defaults to video.
7575
7576       audio_pts
7577           Sets the audio packet timestamp source. Must be video, audio,
7578           reference, wallclock or abs_wallclock.  Defaults to audio.
7579
7580       draw_bars
7581           If set to true, color bars are drawn in the event of a signal loss.
7582           Defaults to true.
7583
7584       queue_size
7585           Sets maximum input buffer size in bytes. If the buffering reaches
7586           this value, incoming frames will be dropped.  Defaults to
7587           1073741824.
7588
7589       audio_depth
7590           Sets the audio sample bit depth. Must be 16 or 32.  Defaults to 16.
7591
7592       decklink_copyts
7593           If set to true, timestamps are forwarded as they are without
7594           removing the initial offset.  Defaults to false.
7595
7596       timestamp_align
7597           Capture start time alignment in seconds. If set to nonzero, input
7598           frames are dropped till the system timestamp aligns with configured
7599           value.  Alignment difference of up to one frame duration is
7600           tolerated.  This is useful for maintaining input synchronization
7601           across N different hardware devices deployed for 'N-way'
7602           redundancy. The system time of different hardware devices should be
7603           synchronized with protocols such as NTP or PTP, before using this
7604           option.  Note that this method is not foolproof. In some border
7605           cases input synchronization may not happen due to thread scheduling
7606           jitters in the OS.  Either sync could go wrong by 1 frame or in a
7607           rarer case timestamp_align seconds.  Defaults to 0.
7608
7609       wait_for_tc (bool)
7610           Drop frames till a frame with timecode is received. Sometimes
7611           serial timecode isn't received with the first input frame. If that
7612           happens, the stored stream timecode will be inaccurate. If this
7613           option is set to true, input frames are dropped till a frame with
7614           timecode is received.  Option timecode_format must be specified.
7615           Defaults to false.
7616
7617       enable_klv(bool)
7618           If set to true, extracts KLV data from VANC and outputs KLV
7619           packets.  KLV VANC packets are joined based on MID and PSC fields
7620           and aggregated into one KLV packet.  Defaults to false.
7621
7622       Examples
7623
7624       •   List input devices:
7625
7626                   ffmpeg -sources decklink
7627
7628       •   List supported formats:
7629
7630                   ffmpeg -f decklink -list_formats 1 -i 'Intensity Pro'
7631
7632       •   Capture video clip at 1080i50:
7633
7634                   ffmpeg -format_code Hi50 -f decklink -i 'Intensity Pro' -c:a copy -c:v copy output.avi
7635
7636       •   Capture video clip at 1080i50 10 bit:
7637
7638                   ffmpeg -raw_format yuv422p10 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
7639
7640       •   Capture video clip at 1080i50 with 16 audio channels:
7641
7642                   ffmpeg -channels 16 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
7643
7644   dshow
7645       Windows DirectShow input device.
7646
7647       DirectShow support is enabled when FFmpeg is built with the mingw-w64
7648       project.  Currently only audio and video devices are supported.
7649
7650       Multiple devices may be opened as separate inputs, but they may also be
7651       opened on the same input, which should improve synchronism between
7652       them.
7653
7654       The input name should be in the format:
7655
7656               <TYPE>=<NAME>[:<TYPE>=<NAME>]
7657
7658       where TYPE can be either audio or video, and NAME is the device's name
7659       or alternative name..
7660
7661       Options
7662
7663       If no options are specified, the device's defaults are used.  If the
7664       device does not support the requested options, it will fail to open.
7665
7666       video_size
7667           Set the video size in the captured video.
7668
7669       framerate
7670           Set the frame rate in the captured video.
7671
7672       sample_rate
7673           Set the sample rate (in Hz) of the captured audio.
7674
7675       sample_size
7676           Set the sample size (in bits) of the captured audio.
7677
7678       channels
7679           Set the number of channels in the captured audio.
7680
7681       list_devices
7682           If set to true, print a list of devices and exit.
7683
7684       list_options
7685           If set to true, print a list of selected device's options and exit.
7686
7687       video_device_number
7688           Set video device number for devices with the same name (starts at
7689           0, defaults to 0).
7690
7691       audio_device_number
7692           Set audio device number for devices with the same name (starts at
7693           0, defaults to 0).
7694
7695       pixel_format
7696           Select pixel format to be used by DirectShow. This may only be set
7697           when the video codec is not set or set to rawvideo.
7698
7699       audio_buffer_size
7700           Set audio device buffer size in milliseconds (which can directly
7701           impact latency, depending on the device).  Defaults to using the
7702           audio device's default buffer size (typically some multiple of
7703           500ms).  Setting this value too low can degrade performance.  See
7704           also
7705           <http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx>
7706
7707       video_pin_name
7708           Select video capture pin to use by name or alternative name.
7709
7710       audio_pin_name
7711           Select audio capture pin to use by name or alternative name.
7712
7713       crossbar_video_input_pin_number
7714           Select video input pin number for crossbar device. This will be
7715           routed to the crossbar device's Video Decoder output pin.  Note
7716           that changing this value can affect future invocations (sets a new
7717           default) until system reboot occurs.
7718
7719       crossbar_audio_input_pin_number
7720           Select audio input pin number for crossbar device. This will be
7721           routed to the crossbar device's Audio Decoder output pin.  Note
7722           that changing this value can affect future invocations (sets a new
7723           default) until system reboot occurs.
7724
7725       show_video_device_dialog
7726           If set to true, before capture starts, popup a display dialog to
7727           the end user, allowing them to change video filter properties and
7728           configurations manually.  Note that for crossbar devices, adjusting
7729           values in this dialog may be needed at times to toggle between PAL
7730           (25 fps) and NTSC (29.97) input frame rates, sizes, interlacing,
7731           etc.  Changing these values can enable different scan rates/frame
7732           rates and avoiding green bars at the bottom, flickering scan lines,
7733           etc.  Note that with some devices, changing these properties can
7734           also affect future invocations (sets new defaults) until system
7735           reboot occurs.
7736
7737       show_audio_device_dialog
7738           If set to true, before capture starts, popup a display dialog to
7739           the end user, allowing them to change audio filter properties and
7740           configurations manually.
7741
7742       show_video_crossbar_connection_dialog
7743           If set to true, before capture starts, popup a display dialog to
7744           the end user, allowing them to manually modify crossbar pin
7745           routings, when it opens a video device.
7746
7747       show_audio_crossbar_connection_dialog
7748           If set to true, before capture starts, popup a display dialog to
7749           the end user, allowing them to manually modify crossbar pin
7750           routings, when it opens an audio device.
7751
7752       show_analog_tv_tuner_dialog
7753           If set to true, before capture starts, popup a display dialog to
7754           the end user, allowing them to manually modify TV channels and
7755           frequencies.
7756
7757       show_analog_tv_tuner_audio_dialog
7758           If set to true, before capture starts, popup a display dialog to
7759           the end user, allowing them to manually modify TV audio (like mono
7760           vs. stereo, Language A,B or C).
7761
7762       audio_device_load
7763           Load an audio capture filter device from file instead of searching
7764           it by name. It may load additional parameters too, if the filter
7765           supports the serialization of its properties to.  To use this an
7766           audio capture source has to be specified, but it can be anything
7767           even fake one.
7768
7769       audio_device_save
7770           Save the currently used audio capture filter device and its
7771           parameters (if the filter supports it) to a file.  If a file with
7772           the same name exists it will be overwritten.
7773
7774       video_device_load
7775           Load a video capture filter device from file instead of searching
7776           it by name. It may load additional parameters too, if the filter
7777           supports the serialization of its properties to.  To use this a
7778           video capture source has to be specified, but it can be anything
7779           even fake one.
7780
7781       video_device_save
7782           Save the currently used video capture filter device and its
7783           parameters (if the filter supports it) to a file.  If a file with
7784           the same name exists it will be overwritten.
7785
7786       use_video_device_timestamps
7787           If set to false, the timestamp for video frames will be derived
7788           from the wallclock instead of the timestamp provided by the capture
7789           device. This allows working around devices that provide unreliable
7790           timestamps.
7791
7792       Examples
7793
7794       •   Print the list of DirectShow supported devices and exit:
7795
7796                   $ ffmpeg -list_devices true -f dshow -i dummy
7797
7798       •   Open video device Camera:
7799
7800                   $ ffmpeg -f dshow -i video="Camera"
7801
7802       •   Open second video device with name Camera:
7803
7804                   $ ffmpeg -f dshow -video_device_number 1 -i video="Camera"
7805
7806       •   Open video device Camera and audio device Microphone:
7807
7808                   $ ffmpeg -f dshow -i video="Camera":audio="Microphone"
7809
7810       •   Print the list of supported options in selected device and exit:
7811
7812                   $ ffmpeg -list_options true -f dshow -i video="Camera"
7813
7814       •   Specify pin names to capture by name or alternative name, specify
7815           alternative device name:
7816
7817                   $ 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"
7818
7819       •   Configure a crossbar device, specifying crossbar pins, allow user
7820           to adjust video capture properties at startup:
7821
7822                   $ ffmpeg -f dshow -show_video_device_dialog true -crossbar_video_input_pin_number 0
7823                        -crossbar_audio_input_pin_number 3 -i video="AVerMedia BDA Analog Capture":audio="AVerMedia BDA Analog Capture"
7824
7825   fbdev
7826       Linux framebuffer input device.
7827
7828       The Linux framebuffer is a graphic hardware-independent abstraction
7829       layer to show graphics on a computer monitor, typically on the console.
7830       It is accessed through a file device node, usually /dev/fb0.
7831
7832       For more detailed information read the file
7833       Documentation/fb/framebuffer.txt included in the Linux source tree.
7834
7835       See also <http://linux-fbdev.sourceforge.net/>, and fbset(1).
7836
7837       To record from the framebuffer device /dev/fb0 with ffmpeg:
7838
7839               ffmpeg -f fbdev -framerate 10 -i /dev/fb0 out.avi
7840
7841       You can take a single screenshot image with the command:
7842
7843               ffmpeg -f fbdev -framerate 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg
7844
7845       Options
7846
7847       framerate
7848           Set the frame rate. Default is 25.
7849
7850   gdigrab
7851       Win32 GDI-based screen capture device.
7852
7853       This device allows you to capture a region of the display on Windows.
7854
7855       There are two options for the input filename:
7856
7857               desktop
7858
7859       or
7860
7861               title=<window_title>
7862
7863       The first option will capture the entire desktop, or a fixed region of
7864       the desktop. The second option will instead capture the contents of a
7865       single window, regardless of its position on the screen.
7866
7867       For example, to grab the entire desktop using ffmpeg:
7868
7869               ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg
7870
7871       Grab a 640x480 region at position "10,20":
7872
7873               ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg
7874
7875       Grab the contents of the window named "Calculator"
7876
7877               ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg
7878
7879       Options
7880
7881       draw_mouse
7882           Specify whether to draw the mouse pointer. Use the value 0 to not
7883           draw the pointer. Default value is 1.
7884
7885       framerate
7886           Set the grabbing frame rate. Default value is "ntsc", corresponding
7887           to a frame rate of "30000/1001".
7888
7889       show_region
7890           Show grabbed region on screen.
7891
7892           If show_region is specified with 1, then the grabbing region will
7893           be indicated on screen. With this option, it is easy to know what
7894           is being grabbed if only a portion of the screen is grabbed.
7895
7896           Note that show_region is incompatible with grabbing the contents of
7897           a single window.
7898
7899           For example:
7900
7901                   ffmpeg -f gdigrab -show_region 1 -framerate 6 -video_size cif -offset_x 10 -offset_y 20 -i desktop out.mpg
7902
7903       video_size
7904           Set the video frame size. The default is to capture the full screen
7905           if desktop is selected, or the full window size if
7906           title=window_title is selected.
7907
7908       offset_x
7909           When capturing a region with video_size, set the distance from the
7910           left edge of the screen or desktop.
7911
7912           Note that the offset calculation is from the top left corner of the
7913           primary monitor on Windows. If you have a monitor positioned to the
7914           left of your primary monitor, you will need to use a negative
7915           offset_x value to move the region to that monitor.
7916
7917       offset_y
7918           When capturing a region with video_size, set the distance from the
7919           top edge of the screen or desktop.
7920
7921           Note that the offset calculation is from the top left corner of the
7922           primary monitor on Windows. If you have a monitor positioned above
7923           your primary monitor, you will need to use a negative offset_y
7924           value to move the region to that monitor.
7925
7926   iec61883
7927       FireWire DV/HDV input device using libiec61883.
7928
7929       To enable this input device, you need libiec61883, libraw1394 and
7930       libavc1394 installed on your system. Use the configure option
7931       "--enable-libiec61883" to compile with the device enabled.
7932
7933       The iec61883 capture device supports capturing from a video device
7934       connected via IEEE1394 (FireWire), using libiec61883 and the new Linux
7935       FireWire stack (juju). This is the default DV/HDV input method in Linux
7936       Kernel 2.6.37 and later, since the old FireWire stack was removed.
7937
7938       Specify the FireWire port to be used as input file, or "auto" to choose
7939       the first port connected.
7940
7941       Options
7942
7943       dvtype
7944           Override autodetection of DV/HDV. This should only be used if auto
7945           detection does not work, or if usage of a different device type
7946           should be prohibited. Treating a DV device as HDV (or vice versa)
7947           will not work and result in undefined behavior.  The values auto,
7948           dv and hdv are supported.
7949
7950       dvbuffer
7951           Set maximum size of buffer for incoming data, in frames. For DV,
7952           this is an exact value. For HDV, it is not frame exact, since HDV
7953           does not have a fixed frame size.
7954
7955       dvguid
7956           Select the capture device by specifying its GUID. Capturing will
7957           only be performed from the specified device and fails if no device
7958           with the given GUID is found. This is useful to select the input if
7959           multiple devices are connected at the same time.  Look at
7960           /sys/bus/firewire/devices to find out the GUIDs.
7961
7962       Examples
7963
7964       •   Grab and show the input of a FireWire DV/HDV device.
7965
7966                   ffplay -f iec61883 -i auto
7967
7968       •   Grab and record the input of a FireWire DV/HDV device, using a
7969           packet buffer of 100000 packets if the source is HDV.
7970
7971                   ffmpeg -f iec61883 -i auto -dvbuffer 100000 out.mpg
7972
7973   jack
7974       JACK input device.
7975
7976       To enable this input device during configuration you need libjack
7977       installed on your system.
7978
7979       A JACK input device creates one or more JACK writable clients, one for
7980       each audio channel, with name client_name:input_N, where client_name is
7981       the name provided by the application, and N is a number which
7982       identifies the channel.  Each writable client will send the acquired
7983       data to the FFmpeg input device.
7984
7985       Once you have created one or more JACK readable clients, you need to
7986       connect them to one or more JACK writable clients.
7987
7988       To connect or disconnect JACK clients you can use the jack_connect and
7989       jack_disconnect programs, or do it through a graphical interface, for
7990       example with qjackctl.
7991
7992       To list the JACK clients and their properties you can invoke the
7993       command jack_lsp.
7994
7995       Follows an example which shows how to capture a JACK readable client
7996       with ffmpeg.
7997
7998               # Create a JACK writable client with name "ffmpeg".
7999               $ ffmpeg -f jack -i ffmpeg -y out.wav
8000
8001               # Start the sample jack_metro readable client.
8002               $ jack_metro -b 120 -d 0.2 -f 4000
8003
8004               # List the current JACK clients.
8005               $ jack_lsp -c
8006               system:capture_1
8007               system:capture_2
8008               system:playback_1
8009               system:playback_2
8010               ffmpeg:input_1
8011               metro:120_bpm
8012
8013               # Connect metro to the ffmpeg writable client.
8014               $ jack_connect metro:120_bpm ffmpeg:input_1
8015
8016       For more information read: <http://jackaudio.org/>
8017
8018       Options
8019
8020       channels
8021           Set the number of channels. Default is 2.
8022
8023   kmsgrab
8024       KMS video input device.
8025
8026       Captures the KMS scanout framebuffer associated with a specified CRTC
8027       or plane as a DRM object that can be passed to other hardware
8028       functions.
8029
8030       Requires either DRM master or CAP_SYS_ADMIN to run.
8031
8032       If you don't understand what all of that means, you probably don't want
8033       this.  Look at x11grab instead.
8034
8035       Options
8036
8037       device
8038           DRM device to capture on.  Defaults to /dev/dri/card0.
8039
8040       format
8041           Pixel format of the framebuffer.  This can be autodetected if you
8042           are running Linux 5.7 or later, but needs to be provided for
8043           earlier versions.  Defaults to bgr0, which is the most common
8044           format used by the Linux console and Xorg X server.
8045
8046       format_modifier
8047           Format modifier to signal on output frames.  This is necessary to
8048           import correctly into some APIs.  It can be autodetected if you are
8049           running Linux 5.7 or later, but will need to be provided explicitly
8050           when needed in earlier versions.  See the libdrm documentation for
8051           possible values.
8052
8053       crtc_id
8054           KMS CRTC ID to define the capture source.  The first active plane
8055           on the given CRTC will be used.
8056
8057       plane_id
8058           KMS plane ID to define the capture source.  Defaults to the first
8059           active plane found if neither crtc_id nor plane_id are specified.
8060
8061       framerate
8062           Framerate to capture at.  This is not synchronised to any page
8063           flipping or framebuffer changes - it just defines the interval at
8064           which the framebuffer is sampled.  Sampling faster than the
8065           framebuffer update rate will generate independent frames with the
8066           same content.  Defaults to 30.
8067
8068       Examples
8069
8070       •   Capture from the first active plane, download the result to normal
8071           frames and encode.  This will only work if the framebuffer is both
8072           linear and mappable - if not, the result may be scrambled or fail
8073           to download.
8074
8075                   ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4
8076
8077       •   Capture from CRTC ID 42 at 60fps, map the result to VAAPI, convert
8078           to NV12 and encode as H.264.
8079
8080                   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
8081
8082       •   To capture only part of a plane the output can be cropped - this
8083           can be used to capture a single window, as long as it has a known
8084           absolute position and size.  For example, to capture and encode the
8085           middle quarter of a 1920x1080 plane:
8086
8087                   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
8088
8089   lavfi
8090       Libavfilter input virtual device.
8091
8092       This input device reads data from the open output pads of a libavfilter
8093       filtergraph.
8094
8095       For each filtergraph open output, the input device will create a
8096       corresponding stream which is mapped to the generated output. Currently
8097       only video data is supported. The filtergraph is specified through the
8098       option graph.
8099
8100       Options
8101
8102       graph
8103           Specify the filtergraph to use as input. Each video open output
8104           must be labelled by a unique string of the form "outN", where N is
8105           a number starting from 0 corresponding to the mapped input stream
8106           generated by the device.  The first unlabelled output is
8107           automatically assigned to the "out0" label, but all the others need
8108           to be specified explicitly.
8109
8110           The suffix "+subcc" can be appended to the output label to create
8111           an extra stream with the closed captions packets attached to that
8112           output (experimental; only for EIA-608 / CEA-708 for now).  The
8113           subcc streams are created after all the normal streams, in the
8114           order of the corresponding stream.  For example, if there is
8115           "out19+subcc", "out7+subcc" and up to "out42", the stream #43 is
8116           subcc for stream #7 and stream #44 is subcc for stream #19.
8117
8118           If not specified defaults to the filename specified for the input
8119           device.
8120
8121       graph_file
8122           Set the filename of the filtergraph to be read and sent to the
8123           other filters. Syntax of the filtergraph is the same as the one
8124           specified by the option graph.
8125
8126       dumpgraph
8127           Dump graph to stderr.
8128
8129       Examples
8130
8131       •   Create a color video stream and play it back with ffplay:
8132
8133                   ffplay -f lavfi -graph "color=c=pink [out0]" dummy
8134
8135       •   As the previous example, but use filename for specifying the graph
8136           description, and omit the "out0" label:
8137
8138                   ffplay -f lavfi color=c=pink
8139
8140       •   Create three different video test filtered sources and play them:
8141
8142                   ffplay -f lavfi -graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
8143
8144       •   Read an audio stream from a file using the amovie source and play
8145           it back with ffplay:
8146
8147                   ffplay -f lavfi "amovie=test.wav"
8148
8149       •   Read an audio stream and a video stream and play it back with
8150           ffplay:
8151
8152                   ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
8153
8154       •   Dump decoded frames to images and closed captions to a file
8155           (experimental):
8156
8157                   ffmpeg -f lavfi -i "movie=test.ts[out0+subcc]" -map v frame%08d.png -map s -c copy -f rawvideo subcc.bin
8158
8159   libcdio
8160       Audio-CD input device based on libcdio.
8161
8162       To enable this input device during configuration you need libcdio
8163       installed on your system. It requires the configure option
8164       "--enable-libcdio".
8165
8166       This device allows playing and grabbing from an Audio-CD.
8167
8168       For example to copy with ffmpeg the entire Audio-CD in /dev/sr0, you
8169       may run the command:
8170
8171               ffmpeg -f libcdio -i /dev/sr0 cd.wav
8172
8173       Options
8174
8175       speed
8176           Set drive reading speed. Default value is 0.
8177
8178           The speed is specified CD-ROM speed units. The speed is set through
8179           the libcdio "cdio_cddap_speed_set" function. On many CD-ROM drives,
8180           specifying a value too large will result in using the fastest
8181           speed.
8182
8183       paranoia_mode
8184           Set paranoia recovery mode flags. It accepts one of the following
8185           values:
8186
8187           disable
8188           verify
8189           overlap
8190           neverskip
8191           full
8192
8193           Default value is disable.
8194
8195           For more information about the available recovery modes, consult
8196           the paranoia project documentation.
8197
8198   libdc1394
8199       IIDC1394 input device, based on libdc1394 and libraw1394.
8200
8201       Requires the configure option "--enable-libdc1394".
8202
8203       Options
8204
8205       framerate
8206           Set the frame rate. Default is "ntsc", corresponding to a frame
8207           rate of "30000/1001".
8208
8209       pixel_format
8210           Select the pixel format. Default is "uyvy422".
8211
8212       video_size
8213           Set the video size given as a string such as "640x480" or "hd720".
8214           Default is "qvga".
8215
8216   openal
8217       The OpenAL input device provides audio capture on all systems with a
8218       working OpenAL 1.1 implementation.
8219
8220       To enable this input device during configuration, you need OpenAL
8221       headers and libraries installed on your system, and need to configure
8222       FFmpeg with "--enable-openal".
8223
8224       OpenAL headers and libraries should be provided as part of your OpenAL
8225       implementation, or as an additional download (an SDK). Depending on
8226       your installation you may need to specify additional flags via the
8227       "--extra-cflags" and "--extra-ldflags" for allowing the build system to
8228       locate the OpenAL headers and libraries.
8229
8230       An incomplete list of OpenAL implementations follows:
8231
8232       Creative
8233           The official Windows implementation, providing hardware
8234           acceleration with supported devices and software fallback.  See
8235           <http://openal.org/>.
8236
8237       OpenAL Soft
8238           Portable, open source (LGPL) software implementation. Includes
8239           backends for the most common sound APIs on the Windows, Linux,
8240           Solaris, and BSD operating systems.  See
8241           <http://kcat.strangesoft.net/openal.html>.
8242
8243       Apple
8244           OpenAL is part of Core Audio, the official Mac OS X Audio
8245           interface.  See
8246           <http://developer.apple.com/technologies/mac/audio-and-video.html>
8247
8248       This device allows one to capture from an audio input device handled
8249       through OpenAL.
8250
8251       You need to specify the name of the device to capture in the provided
8252       filename. If the empty string is provided, the device will
8253       automatically select the default device. You can get the list of the
8254       supported devices by using the option list_devices.
8255
8256       Options
8257
8258       channels
8259           Set the number of channels in the captured audio. Only the values 1
8260           (monaural) and 2 (stereo) are currently supported.  Defaults to 2.
8261
8262       sample_size
8263           Set the sample size (in bits) of the captured audio. Only the
8264           values 8 and 16 are currently supported. Defaults to 16.
8265
8266       sample_rate
8267           Set the sample rate (in Hz) of the captured audio.  Defaults to
8268           44.1k.
8269
8270       list_devices
8271           If set to true, print a list of devices and exit.  Defaults to
8272           false.
8273
8274       Examples
8275
8276       Print the list of OpenAL supported devices and exit:
8277
8278               $ ffmpeg -list_devices true -f openal -i dummy out.ogg
8279
8280       Capture from the OpenAL device DR-BT101 via PulseAudio:
8281
8282               $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out.ogg
8283
8284       Capture from the default device (note the empty string '' as filename):
8285
8286               $ ffmpeg -f openal -i '' out.ogg
8287
8288       Capture from two devices simultaneously, writing to two different
8289       files, within the same ffmpeg command:
8290
8291               $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out1.ogg -f openal -i 'ALSA Default' out2.ogg
8292
8293       Note: not all OpenAL implementations support multiple simultaneous
8294       capture - try the latest OpenAL Soft if the above does not work.
8295
8296   oss
8297       Open Sound System input device.
8298
8299       The filename to provide to the input device is the device node
8300       representing the OSS input device, and is usually set to /dev/dsp.
8301
8302       For example to grab from /dev/dsp using ffmpeg use the command:
8303
8304               ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
8305
8306       For more information about OSS see:
8307       <http://manuals.opensound.com/usersguide/dsp.html>
8308
8309       Options
8310
8311       sample_rate
8312           Set the sample rate in Hz. Default is 48000.
8313
8314       channels
8315           Set the number of channels. Default is 2.
8316
8317   pulse
8318       PulseAudio input device.
8319
8320       To enable this output device you need to configure FFmpeg with
8321       "--enable-libpulse".
8322
8323       The filename to provide to the input device is a source device or the
8324       string "default"
8325
8326       To list the PulseAudio source devices and their properties you can
8327       invoke the command pactl list sources.
8328
8329       More information about PulseAudio can be found on
8330       <http://www.pulseaudio.org>.
8331
8332       Options
8333
8334       server
8335           Connect to a specific PulseAudio server, specified by an IP
8336           address.  Default server is used when not provided.
8337
8338       name
8339           Specify the application name PulseAudio will use when showing
8340           active clients, by default it is the "LIBAVFORMAT_IDENT" string.
8341
8342       stream_name
8343           Specify the stream name PulseAudio will use when showing active
8344           streams, by default it is "record".
8345
8346       sample_rate
8347           Specify the samplerate in Hz, by default 48kHz is used.
8348
8349       channels
8350           Specify the channels in use, by default 2 (stereo) is set.
8351
8352       frame_size
8353           This option does nothing and is deprecated.
8354
8355       fragment_size
8356           Specify the size in bytes of the minimal buffering fragment in
8357           PulseAudio, it will affect the audio latency. By default it is set
8358           to 50 ms amount of data.
8359
8360       wallclock
8361           Set the initial PTS using the current time. Default is 1.
8362
8363       Examples
8364
8365       Record a stream from default device:
8366
8367               ffmpeg -f pulse -i default /tmp/pulse.wav
8368
8369   sndio
8370       sndio input device.
8371
8372       To enable this input device during configuration you need libsndio
8373       installed on your system.
8374
8375       The filename to provide to the input device is the device node
8376       representing the sndio input device, and is usually set to /dev/audio0.
8377
8378       For example to grab from /dev/audio0 using ffmpeg use the command:
8379
8380               ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
8381
8382       Options
8383
8384       sample_rate
8385           Set the sample rate in Hz. Default is 48000.
8386
8387       channels
8388           Set the number of channels. Default is 2.
8389
8390   video4linux2, v4l2
8391       Video4Linux2 input video device.
8392
8393       "v4l2" can be used as alias for "video4linux2".
8394
8395       If FFmpeg is built with v4l-utils support (by using the
8396       "--enable-libv4l2" configure option), it is possible to use it with the
8397       "-use_libv4l2" input device option.
8398
8399       The name of the device to grab is a file device node, usually Linux
8400       systems tend to automatically create such nodes when the device (e.g.
8401       an USB webcam) is plugged into the system, and has a name of the kind
8402       /dev/videoN, where N is a number associated to the device.
8403
8404       Video4Linux2 devices usually support a limited set of widthxheight
8405       sizes and frame rates. You can check which are supported using
8406       -list_formats all for Video4Linux2 devices.  Some devices, like TV
8407       cards, support one or more standards. It is possible to list all the
8408       supported standards using -list_standards all.
8409
8410       The time base for the timestamps is 1 microsecond. Depending on the
8411       kernel version and configuration, the timestamps may be derived from
8412       the real time clock (origin at the Unix Epoch) or the monotonic clock
8413       (origin usually at boot time, unaffected by NTP or manual changes to
8414       the clock). The -timestamps abs or -ts abs option can be used to force
8415       conversion into the real time clock.
8416
8417       Some usage examples of the video4linux2 device with ffmpeg and ffplay:
8418
8419       •   List supported formats for a video4linux2 device:
8420
8421                   ffplay -f video4linux2 -list_formats all /dev/video0
8422
8423       •   Grab and show the input of a video4linux2 device:
8424
8425                   ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
8426
8427       •   Grab and record the input of a video4linux2 device, leave the frame
8428           rate and size as previously set:
8429
8430                   ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
8431
8432       For more information about Video4Linux, check <http://linuxtv.org/>.
8433
8434       Options
8435
8436       standard
8437           Set the standard. Must be the name of a supported standard. To get
8438           a list of the supported standards, use the list_standards option.
8439
8440       channel
8441           Set the input channel number. Default to -1, which means using the
8442           previously selected channel.
8443
8444       video_size
8445           Set the video frame size. The argument must be a string in the form
8446           WIDTHxHEIGHT or a valid size abbreviation.
8447
8448       pixel_format
8449           Select the pixel format (only valid for raw video input).
8450
8451       input_format
8452           Set the preferred pixel format (for raw video) or a codec name.
8453           This option allows one to select the input format, when several are
8454           available.
8455
8456       framerate
8457           Set the preferred video frame rate.
8458
8459       list_formats
8460           List available formats (supported pixel formats, codecs, and frame
8461           sizes) and exit.
8462
8463           Available values are:
8464
8465           all Show all available (compressed and non-compressed) formats.
8466
8467           raw Show only raw video (non-compressed) formats.
8468
8469           compressed
8470               Show only compressed formats.
8471
8472       list_standards
8473           List supported standards and exit.
8474
8475           Available values are:
8476
8477           all Show all supported standards.
8478
8479       timestamps, ts
8480           Set type of timestamps for grabbed frames.
8481
8482           Available values are:
8483
8484           default
8485               Use timestamps from the kernel.
8486
8487           abs Use absolute timestamps (wall clock).
8488
8489           mono2abs
8490               Force conversion from monotonic to absolute timestamps.
8491
8492           Default value is "default".
8493
8494       use_libv4l2
8495           Use libv4l2 (v4l-utils) conversion functions. Default is 0.
8496
8497   vfwcap
8498       VfW (Video for Windows) capture input device.
8499
8500       The filename passed as input is the capture driver number, ranging from
8501       0 to 9. You may use "list" as filename to print a list of drivers. Any
8502       other filename will be interpreted as device number 0.
8503
8504       Options
8505
8506       video_size
8507           Set the video frame size.
8508
8509       framerate
8510           Set the grabbing frame rate. Default value is "ntsc", corresponding
8511           to a frame rate of "30000/1001".
8512
8513   x11grab
8514       X11 video input device.
8515
8516       To enable this input device during configuration you need libxcb
8517       installed on your system. It will be automatically detected during
8518       configuration.
8519
8520       This device allows one to capture a region of an X11 display.
8521
8522       The filename passed as input has the syntax:
8523
8524               [<hostname>]:<display_number>.<screen_number>[+<x_offset>,<y_offset>]
8525
8526       hostname:display_number.screen_number specifies the X11 display name of
8527       the screen to grab from. hostname can be omitted, and defaults to
8528       "localhost". The environment variable DISPLAY contains the default
8529       display name.
8530
8531       x_offset and y_offset specify the offsets of the grabbed area with
8532       respect to the top-left border of the X11 screen. They default to 0.
8533
8534       Check the X11 documentation (e.g. man X) for more detailed information.
8535
8536       Use the xdpyinfo program for getting basic information about the
8537       properties of your X11 display (e.g. grep for "name" or "dimensions").
8538
8539       For example to grab from :0.0 using ffmpeg:
8540
8541               ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0 out.mpg
8542
8543       Grab at position "10,20":
8544
8545               ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
8546
8547       Options
8548
8549       select_region
8550           Specify whether to select the grabbing area graphically using the
8551           pointer.  A value of 1 prompts the user to select the grabbing area
8552           graphically by clicking and dragging. A single click with no
8553           dragging will select the whole screen. A region with zero width or
8554           height will also select the whole screen. This option overwrites
8555           the video_size, grab_x, and grab_y options. Default value is 0.
8556
8557       draw_mouse
8558           Specify whether to draw the mouse pointer. A value of 0 specifies
8559           not to draw the pointer. Default value is 1.
8560
8561       follow_mouse
8562           Make the grabbed area follow the mouse. The argument can be
8563           "centered" or a number of pixels PIXELS.
8564
8565           When it is specified with "centered", the grabbing region follows
8566           the mouse pointer and keeps the pointer at the center of region;
8567           otherwise, the region follows only when the mouse pointer reaches
8568           within PIXELS (greater than zero) to the edge of region.
8569
8570           For example:
8571
8572                   ffmpeg -f x11grab -follow_mouse centered -framerate 25 -video_size cif -i :0.0 out.mpg
8573
8574           To follow only when the mouse pointer reaches within 100 pixels to
8575           edge:
8576
8577                   ffmpeg -f x11grab -follow_mouse 100 -framerate 25 -video_size cif -i :0.0 out.mpg
8578
8579       framerate
8580           Set the grabbing frame rate. Default value is "ntsc", corresponding
8581           to a frame rate of "30000/1001".
8582
8583       show_region
8584           Show grabbed region on screen.
8585
8586           If show_region is specified with 1, then the grabbing region will
8587           be indicated on screen. With this option, it is easy to know what
8588           is being grabbed if only a portion of the screen is grabbed.
8589
8590       region_border
8591           Set the region border thickness if -show_region 1 is used.  Range
8592           is 1 to 128 and default is 3 (XCB-based x11grab only).
8593
8594           For example:
8595
8596                   ffmpeg -f x11grab -show_region 1 -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
8597
8598           With follow_mouse:
8599
8600                   ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_size cif -i :0.0 out.mpg
8601
8602       window_id
8603           Grab this window, instead of the whole screen. Default value is 0,
8604           which maps to the whole screen (root window).
8605
8606           The id of a window can be found using the xwininfo program,
8607           possibly with options -tree and -root.
8608
8609           If the window is later enlarged, the new area is not recorded.
8610           Video ends when the window is closed, unmapped (i.e., iconified) or
8611           shrunk beyond the video size (which defaults to the initial window
8612           size).
8613
8614           This option disables options follow_mouse and select_region.
8615
8616       video_size
8617           Set the video frame size. Default is the full desktop or window.
8618
8619       grab_x
8620       grab_y
8621           Set the grabbing region coordinates. They are expressed as offset
8622           from the top left corner of the X11 window and correspond to the
8623           x_offset and y_offset parameters in the device name. The default
8624           value for both options is 0.
8625

RESAMPLER OPTIONS

8627       The audio resampler supports the following named options.
8628
8629       Options may be set by specifying -option value in the FFmpeg tools,
8630       option=value for the aresample filter, by setting the value explicitly
8631       in the "SwrContext" options or using the libavutil/opt.h API for
8632       programmatic use.
8633
8634       ich, in_channel_count
8635           Set the number of input channels. Default value is 0. Setting this
8636           value is not mandatory if the corresponding channel layout
8637           in_channel_layout is set.
8638
8639       och, out_channel_count
8640           Set the number of output channels. Default value is 0. Setting this
8641           value is not mandatory if the corresponding channel layout
8642           out_channel_layout is set.
8643
8644       uch, used_channel_count
8645           Set the number of used input channels. Default value is 0. This
8646           option is only used for special remapping.
8647
8648       isr, in_sample_rate
8649           Set the input sample rate. Default value is 0.
8650
8651       osr, out_sample_rate
8652           Set the output sample rate. Default value is 0.
8653
8654       isf, in_sample_fmt
8655           Specify the input sample format. It is set by default to "none".
8656
8657       osf, out_sample_fmt
8658           Specify the output sample format. It is set by default to "none".
8659
8660       tsf, internal_sample_fmt
8661           Set the internal sample format. Default value is "none".  This will
8662           automatically be chosen when it is not explicitly set.
8663
8664       icl, in_channel_layout
8665       ocl, out_channel_layout
8666           Set the input/output channel layout.
8667
8668           See the Channel Layout section in the ffmpeg-utils(1) manual for
8669           the required syntax.
8670
8671       clev, center_mix_level
8672           Set the center mix level. It is a value expressed in deciBel, and
8673           must be in the interval [-32,32].
8674
8675       slev, surround_mix_level
8676           Set the surround mix level. It is a value expressed in deciBel, and
8677           must be in the interval [-32,32].
8678
8679       lfe_mix_level
8680           Set LFE mix into non LFE level. It is used when there is a LFE
8681           input but no LFE output. It is a value expressed in deciBel, and
8682           must be in the interval [-32,32].
8683
8684       rmvol, rematrix_volume
8685           Set rematrix volume. Default value is 1.0.
8686
8687       rematrix_maxval
8688           Set maximum output value for rematrixing.  This can be used to
8689           prevent clipping vs. preventing volume reduction.  A value of 1.0
8690           prevents clipping.
8691
8692       flags, swr_flags
8693           Set flags used by the converter. Default value is 0.
8694
8695           It supports the following individual flags:
8696
8697           res force resampling, this flag forces resampling to be used even
8698               when the input and output sample rates match.
8699
8700       dither_scale
8701           Set the dither scale. Default value is 1.
8702
8703       dither_method
8704           Set dither method. Default value is 0.
8705
8706           Supported values:
8707
8708           rectangular
8709               select rectangular dither
8710
8711           triangular
8712               select triangular dither
8713
8714           triangular_hp
8715               select triangular dither with high pass
8716
8717           lipshitz
8718               select Lipshitz noise shaping dither.
8719
8720           shibata
8721               select Shibata noise shaping dither.
8722
8723           low_shibata
8724               select low Shibata noise shaping dither.
8725
8726           high_shibata
8727               select high Shibata noise shaping dither.
8728
8729           f_weighted
8730               select f-weighted noise shaping dither
8731
8732           modified_e_weighted
8733               select modified-e-weighted noise shaping dither
8734
8735           improved_e_weighted
8736               select improved-e-weighted noise shaping dither
8737
8738       resampler
8739           Set resampling engine. Default value is swr.
8740
8741           Supported values:
8742
8743           swr select the native SW Resampler; filter options precision and
8744               cheby are not applicable in this case.
8745
8746           soxr
8747               select the SoX Resampler (where available); compensation, and
8748               filter options filter_size, phase_shift, exact_rational,
8749               filter_type & kaiser_beta, are not applicable in this case.
8750
8751       filter_size
8752           For swr only, set resampling filter size, default value is 32.
8753
8754       phase_shift
8755           For swr only, set resampling phase shift, default value is 10, and
8756           must be in the interval [0,30].
8757
8758       linear_interp
8759           Use linear interpolation when enabled (the default). Disable it if
8760           you want to preserve speed instead of quality when exact_rational
8761           fails.
8762
8763       exact_rational
8764           For swr only, when enabled, try to use exact phase_count based on
8765           input and output sample rate. However, if it is larger than "1 <<
8766           phase_shift", the phase_count will be "1 << phase_shift" as
8767           fallback. Default is enabled.
8768
8769       cutoff
8770           Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must
8771           be a float value between 0 and 1.  Default value is 0.97 with swr,
8772           and 0.91 with soxr (which, with a sample-rate of 44100, preserves
8773           the entire audio band to 20kHz).
8774
8775       precision
8776           For soxr only, the precision in bits to which the resampled signal
8777           will be calculated.  The default value of 20 (which, with suitable
8778           dithering, is appropriate for a destination bit-depth of 16) gives
8779           SoX's 'High Quality'; a value of 28 gives SoX's 'Very High
8780           Quality'.
8781
8782       cheby
8783           For soxr only, selects passband rolloff none (Chebyshev) & higher-
8784           precision approximation for 'irrational' ratios. Default value is
8785           0.
8786
8787       async
8788           For swr only, simple 1 parameter audio sync to timestamps using
8789           stretching, squeezing, filling and trimming. Setting this to 1 will
8790           enable filling and trimming, larger values represent the maximum
8791           amount in samples that the data may be stretched or squeezed for
8792           each second.  Default value is 0, thus no compensation is applied
8793           to make the samples match the audio timestamps.
8794
8795       first_pts
8796           For swr only, assume the first pts should be this value. The time
8797           unit is 1 / sample rate.  This allows for padding/trimming at the
8798           start of stream. By default, no assumption is made about the first
8799           frame's expected pts, so no padding or trimming is done. For
8800           example, this could be set to 0 to pad the beginning with silence
8801           if an audio stream starts after the video stream or to trim any
8802           samples with a negative pts due to encoder delay.
8803
8804       min_comp
8805           For swr only, set the minimum difference between timestamps and
8806           audio data (in seconds) to trigger stretching/squeezing/filling or
8807           trimming of the data to make it match the timestamps. The default
8808           is that stretching/squeezing/filling and trimming is disabled
8809           (min_comp = "FLT_MAX").
8810
8811       min_hard_comp
8812           For swr only, set the minimum difference between timestamps and
8813           audio data (in seconds) to trigger adding/dropping samples to make
8814           it match the timestamps.  This option effectively is a threshold to
8815           select between hard (trim/fill) and soft (squeeze/stretch)
8816           compensation. Note that all compensation is by default disabled
8817           through min_comp.  The default is 0.1.
8818
8819       comp_duration
8820           For swr only, set duration (in seconds) over which data is
8821           stretched/squeezed to make it match the timestamps. Must be a non-
8822           negative double float value, default value is 1.0.
8823
8824       max_soft_comp
8825           For swr only, set maximum factor by which data is
8826           stretched/squeezed to make it match the timestamps. Must be a non-
8827           negative double float value, default value is 0.
8828
8829       matrix_encoding
8830           Select matrixed stereo encoding.
8831
8832           It accepts the following values:
8833
8834           none
8835               select none
8836
8837           dolby
8838               select Dolby
8839
8840           dplii
8841               select Dolby Pro Logic II
8842
8843           Default value is "none".
8844
8845       filter_type
8846           For swr only, select resampling filter type. This only affects
8847           resampling operations.
8848
8849           It accepts the following values:
8850
8851           cubic
8852               select cubic
8853
8854           blackman_nuttall
8855               select Blackman Nuttall windowed sinc
8856
8857           kaiser
8858               select Kaiser windowed sinc
8859
8860       kaiser_beta
8861           For swr only, set Kaiser window beta value. Must be a double float
8862           value in the interval [2,16], default value is 9.
8863
8864       output_sample_bits
8865           For swr only, set number of used output sample bits for dithering.
8866           Must be an integer in the interval [0,64], default value is 0,
8867           which means it's not used.
8868

SCALER OPTIONS

8870       The video scaler supports the following named options.
8871
8872       Options may be set by specifying -option value in the FFmpeg tools,
8873       with a few API-only exceptions noted below.  For programmatic use, they
8874       can be set explicitly in the "SwsContext" options or through the
8875       libavutil/opt.h API.
8876
8877       sws_flags
8878           Set the scaler flags. This is also used to set the scaling
8879           algorithm. Only a single algorithm should be selected. Default
8880           value is bicubic.
8881
8882           It accepts the following values:
8883
8884           fast_bilinear
8885               Select fast bilinear scaling algorithm.
8886
8887           bilinear
8888               Select bilinear scaling algorithm.
8889
8890           bicubic
8891               Select bicubic scaling algorithm.
8892
8893           experimental
8894               Select experimental scaling algorithm.
8895
8896           neighbor
8897               Select nearest neighbor rescaling algorithm.
8898
8899           area
8900               Select averaging area rescaling algorithm.
8901
8902           bicublin
8903               Select bicubic scaling algorithm for the luma component,
8904               bilinear for chroma components.
8905
8906           gauss
8907               Select Gaussian rescaling algorithm.
8908
8909           sinc
8910               Select sinc rescaling algorithm.
8911
8912           lanczos
8913               Select Lanczos rescaling algorithm. The default width (alpha)
8914               is 3 and can be changed by setting "param0".
8915
8916           spline
8917               Select natural bicubic spline rescaling algorithm.
8918
8919           print_info
8920               Enable printing/debug logging.
8921
8922           accurate_rnd
8923               Enable accurate rounding.
8924
8925           full_chroma_int
8926               Enable full chroma interpolation.
8927
8928           full_chroma_inp
8929               Select full chroma input.
8930
8931           bitexact
8932               Enable bitexact output.
8933
8934       srcw (API only)
8935           Set source width.
8936
8937       srch (API only)
8938           Set source height.
8939
8940       dstw (API only)
8941           Set destination width.
8942
8943       dsth (API only)
8944           Set destination height.
8945
8946       src_format (API only)
8947           Set source pixel format (must be expressed as an integer).
8948
8949       dst_format (API only)
8950           Set destination pixel format (must be expressed as an integer).
8951
8952       src_range (boolean)
8953           If value is set to 1, indicates source is full range. Default value
8954           is 0, which indicates source is limited range.
8955
8956       dst_range (boolean)
8957           If value is set to 1, enable full range for destination. Default
8958           value is 0, which enables limited range.
8959
8960       param0, param1
8961           Set scaling algorithm parameters. The specified values are specific
8962           of some scaling algorithms and ignored by others. The specified
8963           values are floating point number values.
8964
8965       sws_dither
8966           Set the dithering algorithm. Accepts one of the following values.
8967           Default value is auto.
8968
8969           auto
8970               automatic choice
8971
8972           none
8973               no dithering
8974
8975           bayer
8976               bayer dither
8977
8978           ed  error diffusion dither
8979
8980           a_dither
8981               arithmetic dither, based using addition
8982
8983           x_dither
8984               arithmetic dither, based using xor (more random/less apparent
8985               patterning that a_dither).
8986
8987       alphablend
8988           Set the alpha blending to use when the input has alpha but the
8989           output does not.  Default value is none.
8990
8991           uniform_color
8992               Blend onto a uniform background color
8993
8994           checkerboard
8995               Blend onto a checkerboard
8996
8997           none
8998               No blending
8999

FILTERING INTRODUCTION

9001       Filtering in FFmpeg is enabled through the libavfilter library.
9002
9003       In libavfilter, a filter can have multiple inputs and multiple outputs.
9004       To illustrate the sorts of things that are possible, we consider the
9005       following filtergraph.
9006
9007                               [main]
9008               input --> split ---------------------> overlay --> output
9009                           |                             ^
9010                           |[tmp]                  [flip]|
9011                           +-----> crop --> vflip -------+
9012
9013       This filtergraph splits the input stream in two streams, then sends one
9014       stream through the crop filter and the vflip filter, before merging it
9015       back with the other stream by overlaying it on top. You can use the
9016       following command to achieve this:
9017
9018               ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
9019
9020       The result will be that the top half of the video is mirrored onto the
9021       bottom half of the output video.
9022
9023       Filters in the same linear chain are separated by commas, and distinct
9024       linear chains of filters are separated by semicolons. In our example,
9025       crop,vflip are in one linear chain, split and overlay are separately in
9026       another. The points where the linear chains join are labelled by names
9027       enclosed in square brackets. In the example, the split filter generates
9028       two outputs that are associated to the labels [main] and [tmp].
9029
9030       The stream sent to the second output of split, labelled as [tmp], is
9031       processed through the crop filter, which crops away the lower half part
9032       of the video, and then vertically flipped. The overlay filter takes in
9033       input the first unchanged output of the split filter (which was
9034       labelled as [main]), and overlay on its lower half the output generated
9035       by the crop,vflip filterchain.
9036
9037       Some filters take in input a list of parameters: they are specified
9038       after the filter name and an equal sign, and are separated from each
9039       other by a colon.
9040
9041       There exist so-called source filters that do not have an audio/video
9042       input, and sink filters that will not have audio/video output.
9043

GRAPH

9045       The graph2dot program included in the FFmpeg tools directory can be
9046       used to parse a filtergraph description and issue a corresponding
9047       textual representation in the dot language.
9048
9049       Invoke the command:
9050
9051               graph2dot -h
9052
9053       to see how to use graph2dot.
9054
9055       You can then pass the dot description to the dot program (from the
9056       graphviz suite of programs) and obtain a graphical representation of
9057       the filtergraph.
9058
9059       For example the sequence of commands:
9060
9061               echo <GRAPH_DESCRIPTION> | \
9062               tools/graph2dot -o graph.tmp && \
9063               dot -Tpng graph.tmp -o graph.png && \
9064               display graph.png
9065
9066       can be used to create and display an image representing the graph
9067       described by the GRAPH_DESCRIPTION string. Note that this string must
9068       be a complete self-contained graph, with its inputs and outputs
9069       explicitly defined.  For example if your command line is of the form:
9070
9071               ffmpeg -i infile -vf scale=640:360 outfile
9072
9073       your GRAPH_DESCRIPTION string will need to be of the form:
9074
9075               nullsrc,scale=640:360,nullsink
9076
9077       you may also need to set the nullsrc parameters and add a format filter
9078       in order to simulate a specific input file.
9079

FILTERGRAPH DESCRIPTION

9081       A filtergraph is a directed graph of connected filters. It can contain
9082       cycles, and there can be multiple links between a pair of filters. Each
9083       link has one input pad on one side connecting it to one filter from
9084       which it takes its input, and one output pad on the other side
9085       connecting it to one filter accepting its output.
9086
9087       Each filter in a filtergraph is an instance of a filter class
9088       registered in the application, which defines the features and the
9089       number of input and output pads of the filter.
9090
9091       A filter with no input pads is called a "source", and a filter with no
9092       output pads is called a "sink".
9093
9094   Filtergraph syntax
9095       A filtergraph has a textual representation, which is recognized by the
9096       -filter/-vf/-af and -filter_complex options in ffmpeg and -vf/-af in
9097       ffplay, and by the "avfilter_graph_parse_ptr()" function defined in
9098       libavfilter/avfilter.h.
9099
9100       A filterchain consists of a sequence of connected filters, each one
9101       connected to the previous one in the sequence. A filterchain is
9102       represented by a list of ","-separated filter descriptions.
9103
9104       A filtergraph consists of a sequence of filterchains. A sequence of
9105       filterchains is represented by a list of ";"-separated filterchain
9106       descriptions.
9107
9108       A filter is represented by a string of the form:
9109       [in_link_1]...[in_link_N]filter_name@id=arguments[out_link_1]...[out_link_M]
9110
9111       filter_name is the name of the filter class of which the described
9112       filter is an instance of, and has to be the name of one of the filter
9113       classes registered in the program optionally followed by "@id".  The
9114       name of the filter class is optionally followed by a string
9115       "=arguments".
9116
9117       arguments is a string which contains the parameters used to initialize
9118       the filter instance. It may have one of two forms:
9119
9120       •   A ':'-separated list of key=value pairs.
9121
9122       •   A ':'-separated list of value. In this case, the keys are assumed
9123           to be the option names in the order they are declared. E.g. the
9124           "fade" filter declares three options in this order -- type,
9125           start_frame and nb_frames. Then the parameter list in:0:30 means
9126           that the value in is assigned to the option type, 0 to start_frame
9127           and 30 to nb_frames.
9128
9129       •   A ':'-separated list of mixed direct value and long key=value
9130           pairs. The direct value must precede the key=value pairs, and
9131           follow the same constraints order of the previous point. The
9132           following key=value pairs can be set in any preferred order.
9133
9134       If the option value itself is a list of items (e.g. the "format" filter
9135       takes a list of pixel formats), the items in the list are usually
9136       separated by |.
9137
9138       The list of arguments can be quoted using the character ' as initial
9139       and ending mark, and the character \ for escaping the characters within
9140       the quoted text; otherwise the argument string is considered terminated
9141       when the next special character (belonging to the set []=;,) is
9142       encountered.
9143
9144       The name and arguments of the filter are optionally preceded and
9145       followed by a list of link labels.  A link label allows one to name a
9146       link and associate it to a filter output or input pad. The preceding
9147       labels in_link_1 ... in_link_N, are associated to the filter input
9148       pads, the following labels out_link_1 ... out_link_M, are associated to
9149       the output pads.
9150
9151       When two link labels with the same name are found in the filtergraph, a
9152       link between the corresponding input and output pad is created.
9153
9154       If an output pad is not labelled, it is linked by default to the first
9155       unlabelled input pad of the next filter in the filterchain.  For
9156       example in the filterchain
9157
9158               nullsrc, split[L1], [L2]overlay, nullsink
9159
9160       the split filter instance has two output pads, and the overlay filter
9161       instance two input pads. The first output pad of split is labelled
9162       "L1", the first input pad of overlay is labelled "L2", and the second
9163       output pad of split is linked to the second input pad of overlay, which
9164       are both unlabelled.
9165
9166       In a filter description, if the input label of the first filter is not
9167       specified, "in" is assumed; if the output label of the last filter is
9168       not specified, "out" is assumed.
9169
9170       In a complete filterchain all the unlabelled filter input and output
9171       pads must be connected. A filtergraph is considered valid if all the
9172       filter input and output pads of all the filterchains are connected.
9173
9174       Libavfilter will automatically insert scale filters where format
9175       conversion is required. It is possible to specify swscale flags for
9176       those automatically inserted scalers by prepending "sws_flags=flags;"
9177       to the filtergraph description.
9178
9179       Here is a BNF description of the filtergraph syntax:
9180
9181               <NAME>             ::= sequence of alphanumeric characters and '_'
9182               <FILTER_NAME>      ::= <NAME>["@"<NAME>]
9183               <LINKLABEL>        ::= "[" <NAME> "]"
9184               <LINKLABELS>       ::= <LINKLABEL> [<LINKLABELS>]
9185               <FILTER_ARGUMENTS> ::= sequence of chars (possibly quoted)
9186               <FILTER>           ::= [<LINKLABELS>] <FILTER_NAME> ["=" <FILTER_ARGUMENTS>] [<LINKLABELS>]
9187               <FILTERCHAIN>      ::= <FILTER> [,<FILTERCHAIN>]
9188               <FILTERGRAPH>      ::= [sws_flags=<flags>;] <FILTERCHAIN> [;<FILTERGRAPH>]
9189
9190   Notes on filtergraph escaping
9191       Filtergraph description composition entails several levels of escaping.
9192       See the "Quoting and escaping" section in the ffmpeg-utils(1) manual
9193       for more information about the employed escaping procedure.
9194
9195       A first level escaping affects the content of each filter option value,
9196       which may contain the special character ":" used to separate values, or
9197       one of the escaping characters "\'".
9198
9199       A second level escaping affects the whole filter description, which may
9200       contain the escaping characters "\'" or the special characters "[],;"
9201       used by the filtergraph description.
9202
9203       Finally, when you specify a filtergraph on a shell commandline, you
9204       need to perform a third level escaping for the shell special characters
9205       contained within it.
9206
9207       For example, consider the following string to be embedded in the
9208       drawtext filter description text value:
9209
9210               this is a 'string': may contain one, or more, special characters
9211
9212       This string contains the "'" special escaping character, and the ":"
9213       special character, so it needs to be escaped in this way:
9214
9215               text=this is a \'string\'\: may contain one, or more, special characters
9216
9217       A second level of escaping is required when embedding the filter
9218       description in a filtergraph description, in order to escape all the
9219       filtergraph special characters. Thus the example above becomes:
9220
9221               drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
9222
9223       (note that in addition to the "\'" escaping special characters, also
9224       "," needs to be escaped).
9225
9226       Finally an additional level of escaping is needed when writing the
9227       filtergraph description in a shell command, which depends on the
9228       escaping rules of the adopted shell. For example, assuming that "\" is
9229       special and needs to be escaped with another "\", the previous string
9230       will finally result in:
9231
9232               -vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
9233

TIMELINE EDITING

9235       Some filters support a generic enable option. For the filters
9236       supporting timeline editing, this option can be set to an expression
9237       which is evaluated before sending a frame to the filter. If the
9238       evaluation is non-zero, the filter will be enabled, otherwise the frame
9239       will be sent unchanged to the next filter in the filtergraph.
9240
9241       The expression accepts the following values:
9242
9243       t   timestamp expressed in seconds, NAN if the input timestamp is
9244           unknown
9245
9246       n   sequential number of the input frame, starting from 0
9247
9248       pos the position in the file of the input frame, NAN if unknown
9249
9250       w
9251       h   width and height of the input frame if video
9252
9253       Additionally, these filters support an enable command that can be used
9254       to re-define the expression.
9255
9256       Like any other filtering option, the enable option follows the same
9257       rules.
9258
9259       For example, to enable a blur filter (smartblur) from 10 seconds to 3
9260       minutes, and a curves filter starting at 3 seconds:
9261
9262               smartblur = enable='between(t,10,3*60)',
9263               curves    = enable='gte(t,3)' : preset=cross_process
9264
9265       See "ffmpeg -filters" to view which filters have timeline support.
9266

CHANGING OPTIONS AT RUNTIME WITH A COMMAND

9268       Some options can be changed during the operation of the filter using a
9269       command. These options are marked 'T' on the output of ffmpeg -h
9270       filter=<name of filter>.  The name of the command is the name of the
9271       option and the argument is the new value.
9272

OPTIONS FOR FILTERS WITH SEVERAL INPUTS

9274       Some filters with several inputs support a common set of options.
9275       These options can only be set by name, not with the short notation.
9276
9277       eof_action
9278           The action to take when EOF is encountered on the secondary input;
9279           it accepts one of the following values:
9280
9281           repeat
9282               Repeat the last frame (the default).
9283
9284           endall
9285               End both streams.
9286
9287           pass
9288               Pass the main input through.
9289
9290       shortest
9291           If set to 1, force the output to terminate when the shortest input
9292           terminates. Default value is 0.
9293
9294       repeatlast
9295           If set to 1, force the filter to extend the last frame of secondary
9296           streams until the end of the primary stream. A value of 0 disables
9297           this behavior.  Default value is 1.
9298

AUDIO FILTERS

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

AUDIO SOURCES

15429       Below is a description of the currently available audio sources.
15430
15431   abuffer
15432       Buffer audio frames, and make them available to the filter chain.
15433
15434       This source is mainly intended for a programmatic use, in particular
15435       through the interface defined in libavfilter/buffersrc.h.
15436
15437       It accepts the following parameters:
15438
15439       time_base
15440           The timebase which will be used for timestamps of submitted frames.
15441           It must be either a floating-point number or in
15442           numerator/denominator form.
15443
15444       sample_rate
15445           The sample rate of the incoming audio buffers.
15446
15447       sample_fmt
15448           The sample format of the incoming audio buffers.  Either a sample
15449           format name or its corresponding integer representation from the
15450           enum AVSampleFormat in libavutil/samplefmt.h
15451
15452       channel_layout
15453           The channel layout of the incoming audio buffers.  Either a channel
15454           layout name from channel_layout_map in libavutil/channel_layout.c
15455           or its corresponding integer representation from the AV_CH_LAYOUT_*
15456           macros in libavutil/channel_layout.h
15457
15458       channels
15459           The number of channels of the incoming audio buffers.  If both
15460           channels and channel_layout are specified, then they must be
15461           consistent.
15462
15463       Examples
15464
15465               abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
15466
15467       will instruct the source to accept planar 16bit signed stereo at
15468       44100Hz.  Since the sample format with name "s16p" corresponds to the
15469       number 6 and the "stereo" channel layout corresponds to the value 0x3,
15470       this is equivalent to:
15471
15472               abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
15473
15474   aevalsrc
15475       Generate an audio signal specified by an expression.
15476
15477       This source accepts in input one or more expressions (one for each
15478       channel), which are evaluated and used to generate a corresponding
15479       audio signal.
15480
15481       This source accepts the following options:
15482
15483       exprs
15484           Set the '|'-separated expressions list for each separate channel.
15485           In case the channel_layout option is not specified, the selected
15486           channel layout depends on the number of provided expressions.
15487           Otherwise the last specified expression is applied to the remaining
15488           output channels.
15489
15490       channel_layout, c
15491           Set the channel layout. The number of channels in the specified
15492           layout must be equal to the number of specified expressions.
15493
15494       duration, d
15495           Set the minimum duration of the sourced audio. See the Time
15496           duration section in the ffmpeg-utils(1) manual for the accepted
15497           syntax.  Note that the resulting duration may be greater than the
15498           specified duration, as the generated audio is always cut at the end
15499           of a complete frame.
15500
15501           If not specified, or the expressed duration is negative, the audio
15502           is supposed to be generated forever.
15503
15504       nb_samples, n
15505           Set the number of samples per channel per each output frame,
15506           default to 1024.
15507
15508       sample_rate, s
15509           Specify the sample rate, default to 44100.
15510
15511       Each expression in exprs can contain the following constants:
15512
15513       n   number of the evaluated sample, starting from 0
15514
15515       t   time of the evaluated sample expressed in seconds, starting from 0
15516
15517       s   sample rate
15518
15519       Examples
15520
15521       •   Generate silence:
15522
15523                   aevalsrc=0
15524
15525       •   Generate a sin signal with frequency of 440 Hz, set sample rate to
15526           8000 Hz:
15527
15528                   aevalsrc="sin(440*2*PI*t):s=8000"
15529
15530       •   Generate a two channels signal, specify the channel layout (Front
15531           Center + Back Center) explicitly:
15532
15533                   aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
15534
15535       •   Generate white noise:
15536
15537                   aevalsrc="-2+random(0)"
15538
15539       •   Generate an amplitude modulated signal:
15540
15541                   aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
15542
15543       •   Generate 2.5 Hz binaural beats on a 360 Hz carrier:
15544
15545                   aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
15546
15547   afirsrc
15548       Generate a FIR coefficients using frequency sampling method.
15549
15550       The resulting stream can be used with afir filter for filtering the
15551       audio signal.
15552
15553       The filter accepts the following options:
15554
15555       taps, t
15556           Set number of filter coefficents in output audio stream.  Default
15557           value is 1025.
15558
15559       frequency, f
15560           Set frequency points from where magnitude and phase are set.  This
15561           must be in non decreasing order, and first element must be 0, while
15562           last element must be 1. Elements are separated by white spaces.
15563
15564       magnitude, m
15565           Set magnitude value for every frequency point set by frequency.
15566           Number of values must be same as number of frequency points.
15567           Values are separated by white spaces.
15568
15569       phase, p
15570           Set phase value for every frequency point set by frequency.  Number
15571           of values must be same as number of frequency points.  Values are
15572           separated by white spaces.
15573
15574       sample_rate, r
15575           Set sample rate, default is 44100.
15576
15577       nb_samples, n
15578           Set number of samples per each frame. Default is 1024.
15579
15580       win_func, w
15581           Set window function. Default is blackman.
15582
15583   anullsrc
15584       The null audio source, return unprocessed audio frames. It is mainly
15585       useful as a template and to be employed in analysis / debugging tools,
15586       or as the source for filters which ignore the input data (for example
15587       the sox synth filter).
15588
15589       This source accepts the following options:
15590
15591       channel_layout, cl
15592           Specifies the channel layout, and can be either an integer or a
15593           string representing a channel layout. The default value of
15594           channel_layout is "stereo".
15595
15596           Check the channel_layout_map definition in
15597           libavutil/channel_layout.c for the mapping between strings and
15598           channel layout values.
15599
15600       sample_rate, r
15601           Specifies the sample rate, and defaults to 44100.
15602
15603       nb_samples, n
15604           Set the number of samples per requested frames.
15605
15606       duration, d
15607           Set the duration of the sourced audio. See the Time duration
15608           section in the ffmpeg-utils(1) manual for the accepted syntax.
15609
15610           If not specified, or the expressed duration is negative, the audio
15611           is supposed to be generated forever.
15612
15613       Examples
15614
15615       •   Set the sample rate to 48000 Hz and the channel layout to
15616           AV_CH_LAYOUT_MONO.
15617
15618                   anullsrc=r=48000:cl=4
15619
15620       •   Do the same operation with a more obvious syntax:
15621
15622                   anullsrc=r=48000:cl=mono
15623
15624       All the parameters need to be explicitly defined.
15625
15626   flite
15627       Synthesize a voice utterance using the libflite library.
15628
15629       To enable compilation of this filter you need to configure FFmpeg with
15630       "--enable-libflite".
15631
15632       Note that versions of the flite library prior to 2.0 are not thread-
15633       safe.
15634
15635       The filter accepts the following options:
15636
15637       list_voices
15638           If set to 1, list the names of the available voices and exit
15639           immediately. Default value is 0.
15640
15641       nb_samples, n
15642           Set the maximum number of samples per frame. Default value is 512.
15643
15644       textfile
15645           Set the filename containing the text to speak.
15646
15647       text
15648           Set the text to speak.
15649
15650       voice, v
15651           Set the voice to use for the speech synthesis. Default value is
15652           "kal". See also the list_voices option.
15653
15654       Examples
15655
15656       •   Read from file speech.txt, and synthesize the text using the
15657           standard flite voice:
15658
15659                   flite=textfile=speech.txt
15660
15661       •   Read the specified text selecting the "slt" voice:
15662
15663                   flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
15664
15665       •   Input text to ffmpeg:
15666
15667                   ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
15668
15669       •   Make ffplay speak the specified text, using "flite" and the "lavfi"
15670           device:
15671
15672                   ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
15673
15674       For more information about libflite, check:
15675       <http://www.festvox.org/flite/>
15676
15677   anoisesrc
15678       Generate a noise audio signal.
15679
15680       The filter accepts the following options:
15681
15682       sample_rate, r
15683           Specify the sample rate. Default value is 48000 Hz.
15684
15685       amplitude, a
15686           Specify the amplitude (0.0 - 1.0) of the generated audio stream.
15687           Default value is 1.0.
15688
15689       duration, d
15690           Specify the duration of the generated audio stream. Not specifying
15691           this option results in noise with an infinite length.
15692
15693       color, colour, c
15694           Specify the color of noise. Available noise colors are white, pink,
15695           brown, blue, violet and velvet. Default color is white.
15696
15697       seed, s
15698           Specify a value used to seed the PRNG.
15699
15700       nb_samples, n
15701           Set the number of samples per each output frame, default is 1024.
15702
15703       Examples
15704
15705       •   Generate 60 seconds of pink noise, with a 44.1 kHz sampling rate
15706           and an amplitude of 0.5:
15707
15708                   anoisesrc=d=60:c=pink:r=44100:a=0.5
15709
15710   hilbert
15711       Generate odd-tap Hilbert transform FIR coefficients.
15712
15713       The resulting stream can be used with afir filter for phase-shifting
15714       the signal by 90 degrees.
15715
15716       This is used in many matrix coding schemes and for analytic signal
15717       generation.  The process is often written as a multiplication by i (or
15718       j), the imaginary unit.
15719
15720       The filter accepts the following options:
15721
15722       sample_rate, s
15723           Set sample rate, default is 44100.
15724
15725       taps, t
15726           Set length of FIR filter, default is 22051.
15727
15728       nb_samples, n
15729           Set number of samples per each frame.
15730
15731       win_func, w
15732           Set window function to be used when generating FIR coefficients.
15733
15734   sinc
15735       Generate a sinc kaiser-windowed low-pass, high-pass, band-pass, or
15736       band-reject FIR coefficients.
15737
15738       The resulting stream can be used with afir filter for filtering the
15739       audio signal.
15740
15741       The filter accepts the following options:
15742
15743       sample_rate, r
15744           Set sample rate, default is 44100.
15745
15746       nb_samples, n
15747           Set number of samples per each frame. Default is 1024.
15748
15749       hp  Set high-pass frequency. Default is 0.
15750
15751       lp  Set low-pass frequency. Default is 0.  If high-pass frequency is
15752           lower than low-pass frequency and low-pass frequency is higher than
15753           0 then filter will create band-pass filter coefficients, otherwise
15754           band-reject filter coefficients.
15755
15756       phase
15757           Set filter phase response. Default is 50. Allowed range is from 0
15758           to 100.
15759
15760       beta
15761           Set Kaiser window beta.
15762
15763       att Set stop-band attenuation. Default is 120dB, allowed range is from
15764           40 to 180 dB.
15765
15766       round
15767           Enable rounding, by default is disabled.
15768
15769       hptaps
15770           Set number of taps for high-pass filter.
15771
15772       lptaps
15773           Set number of taps for low-pass filter.
15774
15775   sine
15776       Generate an audio signal made of a sine wave with amplitude 1/8.
15777
15778       The audio signal is bit-exact.
15779
15780       The filter accepts the following options:
15781
15782       frequency, f
15783           Set the carrier frequency. Default is 440 Hz.
15784
15785       beep_factor, b
15786           Enable a periodic beep every second with frequency beep_factor
15787           times the carrier frequency. Default is 0, meaning the beep is
15788           disabled.
15789
15790       sample_rate, r
15791           Specify the sample rate, default is 44100.
15792
15793       duration, d
15794           Specify the duration of the generated audio stream.
15795
15796       samples_per_frame
15797           Set the number of samples per output frame.
15798
15799           The expression can contain the following constants:
15800
15801           n   The (sequential) number of the output audio frame, starting
15802               from 0.
15803
15804           pts The PTS (Presentation TimeStamp) of the output audio frame,
15805               expressed in TB units.
15806
15807           t   The PTS of the output audio frame, expressed in seconds.
15808
15809           TB  The timebase of the output audio frames.
15810
15811           Default is 1024.
15812
15813       Examples
15814
15815       •   Generate a simple 440 Hz sine wave:
15816
15817                   sine
15818
15819       •   Generate a 220 Hz sine wave with a 880 Hz beep each second, for 5
15820           seconds:
15821
15822                   sine=220:4:d=5
15823                   sine=f=220:b=4:d=5
15824                   sine=frequency=220:beep_factor=4:duration=5
15825
15826       •   Generate a 1 kHz sine wave following "1602,1601,1602,1601,1602"
15827           NTSC pattern:
15828
15829                   sine=1000:samples_per_frame='st(0,mod(n,5)); 1602-not(not(eq(ld(0),1)+eq(ld(0),3)))'
15830

AUDIO SINKS

15832       Below is a description of the currently available audio sinks.
15833
15834   abuffersink
15835       Buffer audio frames, and make them available to the end of filter
15836       chain.
15837
15838       This sink is mainly intended for programmatic use, in particular
15839       through the interface defined in libavfilter/buffersink.h or the
15840       options system.
15841
15842       It accepts a pointer to an AVABufferSinkContext structure, which
15843       defines the incoming buffers' formats, to be passed as the opaque
15844       parameter to "avfilter_init_filter" for initialization.
15845
15846   anullsink
15847       Null audio sink; do absolutely nothing with the input audio. It is
15848       mainly useful as a template and for use in analysis / debugging tools.
15849

VIDEO FILTERS

15851       When you configure your FFmpeg build, you can disable any of the
15852       existing filters using "--disable-filters".  The configure output will
15853       show the video filters included in your build.
15854
15855       Below is a description of the currently available video filters.
15856
15857   addroi
15858       Mark a region of interest in a video frame.
15859
15860       The frame data is passed through unchanged, but metadata is attached to
15861       the frame indicating regions of interest which can affect the behaviour
15862       of later encoding.  Multiple regions can be marked by applying the
15863       filter multiple times.
15864
15865       x   Region distance in pixels from the left edge of the frame.
15866
15867       y   Region distance in pixels from the top edge of the frame.
15868
15869       w   Region width in pixels.
15870
15871       h   Region height in pixels.
15872
15873           The parameters x, y, w and h are expressions, and may contain the
15874           following variables:
15875
15876           iw  Width of the input frame.
15877
15878           ih  Height of the input frame.
15879
15880       qoffset
15881           Quantisation offset to apply within the region.
15882
15883           This must be a real value in the range -1 to +1.  A value of zero
15884           indicates no quality change.  A negative value asks for better
15885           quality (less quantisation), while a positive value asks for worse
15886           quality (greater quantisation).
15887
15888           The range is calibrated so that the extreme values indicate the
15889           largest possible offset - if the rest of the frame is encoded with
15890           the worst possible quality, an offset of -1 indicates that this
15891           region should be encoded with the best possible quality anyway.
15892           Intermediate values are then interpolated in some codec-dependent
15893           way.
15894
15895           For example, in 10-bit H.264 the quantisation parameter varies
15896           between -12 and 51.  A typical qoffset value of -1/10 therefore
15897           indicates that this region should be encoded with a QP around one-
15898           tenth of the full range better than the rest of the frame.  So, if
15899           most of the frame were to be encoded with a QP of around 30, this
15900           region would get a QP of around 24 (an offset of approximately
15901           -1/10 * (51 - -12) = -6.3).  An extreme value of -1 would indicate
15902           that this region should be encoded with the best possible quality
15903           regardless of the treatment of the rest of the frame - that is,
15904           should be encoded at a QP of -12.
15905
15906       clear
15907           If set to true, remove any existing regions of interest marked on
15908           the frame before adding the new one.
15909
15910       Examples
15911
15912       •   Mark the centre quarter of the frame as interesting.
15913
15914                   addroi=iw/4:ih/4:iw/2:ih/2:-1/10
15915
15916       •   Mark the 100-pixel-wide region on the left edge of the frame as
15917           very uninteresting (to be encoded at much lower quality than the
15918           rest of the frame).
15919
15920                   addroi=0:0:100:ih:+1/5
15921
15922   alphaextract
15923       Extract the alpha component from the input as a grayscale video. This
15924       is especially useful with the alphamerge filter.
15925
15926   alphamerge
15927       Add or replace the alpha component of the primary input with the
15928       grayscale value of a second input. This is intended for use with
15929       alphaextract to allow the transmission or storage of frame sequences
15930       that have alpha in a format that doesn't support an alpha channel.
15931
15932       For example, to reconstruct full frames from a normal YUV-encoded video
15933       and a separate video created with alphaextract, you might use:
15934
15935               movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
15936
15937   amplify
15938       Amplify differences between current pixel and pixels of adjacent frames
15939       in same pixel location.
15940
15941       This filter accepts the following options:
15942
15943       radius
15944           Set frame radius. Default is 2. Allowed range is from 1 to 63.  For
15945           example radius of 3 will instruct filter to calculate average of 7
15946           frames.
15947
15948       factor
15949           Set factor to amplify difference. Default is 2. Allowed range is
15950           from 0 to 65535.
15951
15952       threshold
15953           Set threshold for difference amplification. Any difference greater
15954           or equal to this value will not alter source pixel. Default is 10.
15955           Allowed range is from 0 to 65535.
15956
15957       tolerance
15958           Set tolerance for difference amplification. Any difference lower to
15959           this value will not alter source pixel. Default is 0.  Allowed
15960           range is from 0 to 65535.
15961
15962       low Set lower limit for changing source pixel. Default is 65535.
15963           Allowed range is from 0 to 65535.  This option controls maximum
15964           possible value that will decrease source pixel value.
15965
15966       high
15967           Set high limit for changing source pixel. Default is 65535. Allowed
15968           range is from 0 to 65535.  This option controls maximum possible
15969           value that will increase source pixel value.
15970
15971       planes
15972           Set which planes to filter. Default is all. Allowed range is from 0
15973           to 15.
15974
15975       Commands
15976
15977       This filter supports the following commands that corresponds to option
15978       of same name:
15979
15980       factor
15981       threshold
15982       tolerance
15983       low
15984       high
15985       planes
15986
15987   ass
15988       Same as the subtitles filter, except that it doesn't require libavcodec
15989       and libavformat to work. On the other hand, it is limited to ASS
15990       (Advanced Substation Alpha) subtitles files.
15991
15992       This filter accepts the following option in addition to the common
15993       options from the subtitles filter:
15994
15995       shaping
15996           Set the shaping engine
15997
15998           Available values are:
15999
16000           auto
16001               The default libass shaping engine, which is the best available.
16002
16003           simple
16004               Fast, font-agnostic shaper that can do only substitutions
16005
16006           complex
16007               Slower shaper using OpenType for substitutions and positioning
16008
16009           The default is "auto".
16010
16011   atadenoise
16012       Apply an Adaptive Temporal Averaging Denoiser to the video input.
16013
16014       The filter accepts the following options:
16015
16016       0a  Set threshold A for 1st plane. Default is 0.02.  Valid range is 0
16017           to 0.3.
16018
16019       0b  Set threshold B for 1st plane. Default is 0.04.  Valid range is 0
16020           to 5.
16021
16022       1a  Set threshold A for 2nd plane. Default is 0.02.  Valid range is 0
16023           to 0.3.
16024
16025       1b  Set threshold B for 2nd plane. Default is 0.04.  Valid range is 0
16026           to 5.
16027
16028       2a  Set threshold A for 3rd plane. Default is 0.02.  Valid range is 0
16029           to 0.3.
16030
16031       2b  Set threshold B for 3rd plane. Default is 0.04.  Valid range is 0
16032           to 5.
16033
16034           Threshold A is designed to react on abrupt changes in the input
16035           signal and threshold B is designed to react on continuous changes
16036           in the input signal.
16037
16038       s   Set number of frames filter will use for averaging. Default is 9.
16039           Must be odd number in range [5, 129].
16040
16041       p   Set what planes of frame filter will use for averaging. Default is
16042           all.
16043
16044       a   Set what variant of algorithm filter will use for averaging.
16045           Default is "p" parallel.  Alternatively can be set to "s" serial.
16046
16047           Parallel can be faster then serial, while other way around is never
16048           true.  Parallel will abort early on first change being greater then
16049           thresholds, while serial will continue processing other side of
16050           frames if they are equal or below thresholds.
16051
16052       0s
16053       1s
16054       2s  Set sigma for 1st plane, 2nd plane or 3rd plane. Default is 32767.
16055           Valid range is from 0 to 32767.  This options controls weight for
16056           each pixel in radius defined by size.  Default value means every
16057           pixel have same weight.  Setting this option to 0 effectively
16058           disables filtering.
16059
16060       Commands
16061
16062       This filter supports same commands as options except option "s".  The
16063       command accepts the same syntax of the corresponding option.
16064
16065   avgblur
16066       Apply average blur filter.
16067
16068       The filter accepts the following options:
16069
16070       sizeX
16071           Set horizontal radius size.
16072
16073       planes
16074           Set which planes to filter. By default all planes are filtered.
16075
16076       sizeY
16077           Set vertical radius size, if zero it will be same as "sizeX".
16078           Default is 0.
16079
16080       Commands
16081
16082       This filter supports same commands as options.  The command accepts the
16083       same syntax of the corresponding option.
16084
16085       If the specified expression is not valid, it is kept at its current
16086       value.
16087
16088   bbox
16089       Compute the bounding box for the non-black pixels in the input frame
16090       luminance plane.
16091
16092       This filter computes the bounding box containing all the pixels with a
16093       luminance value greater than the minimum allowed value.  The parameters
16094       describing the bounding box are printed on the filter log.
16095
16096       The filter accepts the following option:
16097
16098       min_val
16099           Set the minimal luminance value. Default is 16.
16100
16101       Commands
16102
16103       This filter supports the all above options as commands.
16104
16105   bilateral
16106       Apply bilateral filter, spatial smoothing while preserving edges.
16107
16108       The filter accepts the following options:
16109
16110       sigmaS
16111           Set sigma of gaussian function to calculate spatial weight.
16112           Allowed range is 0 to 512. Default is 0.1.
16113
16114       sigmaR
16115           Set sigma of gaussian function to calculate range weight.  Allowed
16116           range is 0 to 1. Default is 0.1.
16117
16118       planes
16119           Set planes to filter. Default is first only.
16120
16121       Commands
16122
16123       This filter supports the all above options as commands.
16124
16125   bitplanenoise
16126       Show and measure bit plane noise.
16127
16128       The filter accepts the following options:
16129
16130       bitplane
16131           Set which plane to analyze. Default is 1.
16132
16133       filter
16134           Filter out noisy pixels from "bitplane" set above.  Default is
16135           disabled.
16136
16137   blackdetect
16138       Detect video intervals that are (almost) completely black. Can be
16139       useful to detect chapter transitions, commercials, or invalid
16140       recordings.
16141
16142       The filter outputs its detection analysis to both the log as well as
16143       frame metadata. If a black segment of at least the specified minimum
16144       duration is found, a line with the start and end timestamps as well as
16145       duration is printed to the log with level "info". In addition, a log
16146       line with level "debug" is printed per frame showing the black amount
16147       detected for that frame.
16148
16149       The filter also attaches metadata to the first frame of a black segment
16150       with key "lavfi.black_start" and to the first frame after the black
16151       segment ends with key "lavfi.black_end". The value is the frame's
16152       timestamp. This metadata is added regardless of the minimum duration
16153       specified.
16154
16155       The filter accepts the following options:
16156
16157       black_min_duration, d
16158           Set the minimum detected black duration expressed in seconds. It
16159           must be a non-negative floating point number.
16160
16161           Default value is 2.0.
16162
16163       picture_black_ratio_th, pic_th
16164           Set the threshold for considering a picture "black".  Express the
16165           minimum value for the ratio:
16166
16167                   <nb_black_pixels> / <nb_pixels>
16168
16169           for which a picture is considered black.  Default value is 0.98.
16170
16171       pixel_black_th, pix_th
16172           Set the threshold for considering a pixel "black".
16173
16174           The threshold expresses the maximum pixel luminance value for which
16175           a pixel is considered "black". The provided value is scaled
16176           according to the following equation:
16177
16178                   <absolute_threshold> = <luminance_minimum_value> + <pixel_black_th> * <luminance_range_size>
16179
16180           luminance_range_size and luminance_minimum_value depend on the
16181           input video format, the range is [0-255] for YUV full-range formats
16182           and [16-235] for YUV non full-range formats.
16183
16184           Default value is 0.10.
16185
16186       The following example sets the maximum pixel threshold to the minimum
16187       value, and detects only black intervals of 2 or more seconds:
16188
16189               blackdetect=d=2:pix_th=0.00
16190
16191   blackframe
16192       Detect frames that are (almost) completely black. Can be useful to
16193       detect chapter transitions or commercials. Output lines consist of the
16194       frame number of the detected frame, the percentage of blackness, the
16195       position in the file if known or -1 and the timestamp in seconds.
16196
16197       In order to display the output lines, you need to set the loglevel at
16198       least to the AV_LOG_INFO value.
16199
16200       This filter exports frame metadata "lavfi.blackframe.pblack".  The
16201       value represents the percentage of pixels in the picture that are below
16202       the threshold value.
16203
16204       It accepts the following parameters:
16205
16206       amount
16207           The percentage of the pixels that have to be below the threshold;
16208           it defaults to 98.
16209
16210       threshold, thresh
16211           The threshold below which a pixel value is considered black; it
16212           defaults to 32.
16213
16214   blend
16215       Blend two video frames into each other.
16216
16217       The "blend" filter takes two input streams and outputs one stream, the
16218       first input is the "top" layer and second input is "bottom" layer.  By
16219       default, the output terminates when the longest input terminates.
16220
16221       The "tblend" (time blend) filter takes two consecutive frames from one
16222       single stream, and outputs the result obtained by blending the new
16223       frame on top of the old frame.
16224
16225       A description of the accepted options follows.
16226
16227       c0_mode
16228       c1_mode
16229       c2_mode
16230       c3_mode
16231       all_mode
16232           Set blend mode for specific pixel component or all pixel components
16233           in case of all_mode. Default value is "normal".
16234
16235           Available values for component modes are:
16236
16237           addition
16238           and
16239           average
16240           bleach
16241           burn
16242           darken
16243           difference
16244           divide
16245           dodge
16246           exclusion
16247           extremity
16248           freeze
16249           geometric
16250           glow
16251           grainextract
16252           grainmerge
16253           hardlight
16254           hardmix
16255           hardoverlay
16256           harmonic
16257           heat
16258           interpolate
16259           lighten
16260           linearlight
16261           multiply
16262           multiply128
16263           negation
16264           normal
16265           or
16266           overlay
16267           phoenix
16268           pinlight
16269           reflect
16270           screen
16271           softdifference
16272           softlight
16273           stain
16274           subtract
16275           vividlight
16276           xor
16277       c0_opacity
16278       c1_opacity
16279       c2_opacity
16280       c3_opacity
16281       all_opacity
16282           Set blend opacity for specific pixel component or all pixel
16283           components in case of all_opacity. Only used in combination with
16284           pixel component blend modes.
16285
16286       c0_expr
16287       c1_expr
16288       c2_expr
16289       c3_expr
16290       all_expr
16291           Set blend expression for specific pixel component or all pixel
16292           components in case of all_expr. Note that related mode options will
16293           be ignored if those are set.
16294
16295           The expressions can use the following variables:
16296
16297           N   The sequential number of the filtered frame, starting from 0.
16298
16299           X
16300           Y   the coordinates of the current sample
16301
16302           W
16303           H   the width and height of currently filtered plane
16304
16305           SW
16306           SH  Width and height scale for the plane being filtered. It is the
16307               ratio between the dimensions of the current plane to the luma
16308               plane, e.g. for a "yuv420p" frame, the values are "1,1" for the
16309               luma plane and "0.5,0.5" for the chroma planes.
16310
16311           T   Time of the current frame, expressed in seconds.
16312
16313           TOP, A
16314               Value of pixel component at current location for first video
16315               frame (top layer).
16316
16317           BOTTOM, B
16318               Value of pixel component at current location for second video
16319               frame (bottom layer).
16320
16321       The "blend" filter also supports the framesync options.
16322
16323       Examples
16324
16325       •   Apply transition from bottom layer to top layer in first 10
16326           seconds:
16327
16328                   blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
16329
16330       •   Apply linear horizontal transition from top layer to bottom layer:
16331
16332                   blend=all_expr='A*(X/W)+B*(1-X/W)'
16333
16334       •   Apply 1x1 checkerboard effect:
16335
16336                   blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
16337
16338       •   Apply uncover left effect:
16339
16340                   blend=all_expr='if(gte(N*SW+X,W),A,B)'
16341
16342       •   Apply uncover down effect:
16343
16344                   blend=all_expr='if(gte(Y-N*SH,0),A,B)'
16345
16346       •   Apply uncover up-left effect:
16347
16348                   blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
16349
16350       •   Split diagonally video and shows top and bottom layer on each side:
16351
16352                   blend=all_expr='if(gt(X,Y*(W/H)),A,B)'
16353
16354       •   Display differences between the current and the previous frame:
16355
16356                   tblend=all_mode=grainextract
16357
16358       Commands
16359
16360       This filter supports same commands as options.
16361
16362   blockdetect
16363       Determines blockiness of frames without altering the input frames.
16364
16365       Based on Remco Muijs and Ihor Kirenko: "A no-reference blocking
16366       artifact measure for adaptive video processing." 2005 13th European
16367       signal processing conference.
16368
16369       The filter accepts the following options:
16370
16371       period_min
16372       period_max
16373           Set minimum and maximum values for determining pixel grids
16374           (periods).  Default values are [3,24].
16375
16376       planes
16377           Set planes to filter. Default is first only.
16378
16379       Examples
16380
16381       •   Determine blockiness for the first plane and search for periods
16382           within [8,32]:
16383
16384                   blockdetect=period_min=8:period_max=32:planes=1
16385
16386   blurdetect
16387       Determines blurriness of frames without altering the input frames.
16388
16389       Based on Marziliano, Pina, et al. "A no-reference perceptual blur
16390       metric."  Allows for a block-based abbreviation.
16391
16392       The filter accepts the following options:
16393
16394       low
16395       high
16396           Set low and high threshold values used by the Canny thresholding
16397           algorithm.
16398
16399           The high threshold selects the "strong" edge pixels, which are then
16400           connected through 8-connectivity with the "weak" edge pixels
16401           selected by the low threshold.
16402
16403           low and high threshold values must be chosen in the range [0,1],
16404           and low should be lesser or equal to high.
16405
16406           Default value for low is "20/255", and default value for high is
16407           "50/255".
16408
16409       radius
16410           Define the radius to search around an edge pixel for local maxima.
16411
16412       block_pct
16413           Determine blurriness only for the most significant blocks, given in
16414           percentage.
16415
16416       block_width
16417           Determine blurriness for blocks of width block_width. If set to any
16418           value smaller 1, no blocks are used and the whole image is
16419           processed as one no matter of block_height.
16420
16421       block_height
16422           Determine blurriness for blocks of height block_height. If set to
16423           any value smaller 1, no blocks are used and the whole image is
16424           processed as one no matter of block_width.
16425
16426       planes
16427           Set planes to filter. Default is first only.
16428
16429       Examples
16430
16431       •   Determine blur for 80% of most significant 32x32 blocks:
16432
16433                   blurdetect=block_width=32:block_height=32:block_pct=80
16434
16435   bm3d
16436       Denoise frames using Block-Matching 3D algorithm.
16437
16438       The filter accepts the following options.
16439
16440       sigma
16441           Set denoising strength. Default value is 1.  Allowed range is from
16442           0 to 999.9.  The denoising algorithm is very sensitive to sigma, so
16443           adjust it according to the source.
16444
16445       block
16446           Set local patch size. This sets dimensions in 2D.
16447
16448       bstep
16449           Set sliding step for processing blocks. Default value is 4.
16450           Allowed range is from 1 to 64.  Smaller values allows processing
16451           more reference blocks and is slower.
16452
16453       group
16454           Set maximal number of similar blocks for 3rd dimension. Default
16455           value is 1.  When set to 1, no block matching is done. Larger
16456           values allows more blocks in single group.  Allowed range is from 1
16457           to 256.
16458
16459       range
16460           Set radius for search block matching. Default is 9.  Allowed range
16461           is from 1 to INT32_MAX.
16462
16463       mstep
16464           Set step between two search locations for block matching. Default
16465           is 1.  Allowed range is from 1 to 64. Smaller is slower.
16466
16467       thmse
16468           Set threshold of mean square error for block matching. Valid range
16469           is 0 to INT32_MAX.
16470
16471       hdthr
16472           Set thresholding parameter for hard thresholding in 3D transformed
16473           domain.  Larger values results in stronger hard-thresholding
16474           filtering in frequency domain.
16475
16476       estim
16477           Set filtering estimation mode. Can be "basic" or "final".  Default
16478           is "basic".
16479
16480       ref If enabled, filter will use 2nd stream for block matching.  Default
16481           is disabled for "basic" value of estim option, and always enabled
16482           if value of estim is "final".
16483
16484       planes
16485           Set planes to filter. Default is all available except alpha.
16486
16487       Examples
16488
16489       •   Basic filtering with bm3d:
16490
16491                   bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic
16492
16493       •   Same as above, but filtering only luma:
16494
16495                   bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic:planes=1
16496
16497       •   Same as above, but with both estimation modes:
16498
16499                   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
16500
16501       •   Same as above, but prefilter with nlmeans filter instead:
16502
16503                   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
16504
16505   boxblur
16506       Apply a boxblur algorithm to the input video.
16507
16508       It accepts the following parameters:
16509
16510       luma_radius, lr
16511       luma_power, lp
16512       chroma_radius, cr
16513       chroma_power, cp
16514       alpha_radius, ar
16515       alpha_power, ap
16516
16517       A description of the accepted options follows.
16518
16519       luma_radius, lr
16520       chroma_radius, cr
16521       alpha_radius, ar
16522           Set an expression for the box radius in pixels used for blurring
16523           the corresponding input plane.
16524
16525           The radius value must be a non-negative number, and must not be
16526           greater than the value of the expression "min(w,h)/2" for the luma
16527           and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
16528
16529           Default value for luma_radius is "2". If not specified,
16530           chroma_radius and alpha_radius default to the corresponding value
16531           set for luma_radius.
16532
16533           The expressions can contain the following constants:
16534
16535           w
16536           h   The input width and height in pixels.
16537
16538           cw
16539           ch  The input chroma image width and height in pixels.
16540
16541           hsub
16542           vsub
16543               The horizontal and vertical chroma subsample values. For
16544               example, for the pixel format "yuv422p", hsub is 2 and vsub is
16545               1.
16546
16547       luma_power, lp
16548       chroma_power, cp
16549       alpha_power, ap
16550           Specify how many times the boxblur filter is applied to the
16551           corresponding plane.
16552
16553           Default value for luma_power is 2. If not specified, chroma_power
16554           and alpha_power default to the corresponding value set for
16555           luma_power.
16556
16557           A value of 0 will disable the effect.
16558
16559       Examples
16560
16561       •   Apply a boxblur filter with the luma, chroma, and alpha radii set
16562           to 2:
16563
16564                   boxblur=luma_radius=2:luma_power=1
16565                   boxblur=2:1
16566
16567       •   Set the luma radius to 2, and alpha and chroma radius to 0:
16568
16569                   boxblur=2:1:cr=0:ar=0
16570
16571       •   Set the luma and chroma radii to a fraction of the video dimension:
16572
16573                   boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
16574
16575   bwdif
16576       Deinterlace the input video ("bwdif" stands for "Bob Weaver
16577       Deinterlacing Filter").
16578
16579       Motion adaptive deinterlacing based on yadif with the use of w3fdif and
16580       cubic interpolation algorithms.  It accepts the following parameters:
16581
16582       mode
16583           The interlacing mode to adopt. It accepts one of the following
16584           values:
16585
16586           0, send_frame
16587               Output one frame for each frame.
16588
16589           1, send_field
16590               Output one frame for each field.
16591
16592           The default value is "send_field".
16593
16594       parity
16595           The picture field parity assumed for the input interlaced video. It
16596           accepts one of the following values:
16597
16598           0, tff
16599               Assume the top field is first.
16600
16601           1, bff
16602               Assume the bottom field is first.
16603
16604           -1, auto
16605               Enable automatic detection of field parity.
16606
16607           The default value is "auto".  If the interlacing is unknown or the
16608           decoder does not export this information, top field first will be
16609           assumed.
16610
16611       deint
16612           Specify which frames to deinterlace. Accepts one of the following
16613           values:
16614
16615           0, all
16616               Deinterlace all frames.
16617
16618           1, interlaced
16619               Only deinterlace frames marked as interlaced.
16620
16621           The default value is "all".
16622
16623   cas
16624       Apply Contrast Adaptive Sharpen filter to video stream.
16625
16626       The filter accepts the following options:
16627
16628       strength
16629           Set the sharpening strength. Default value is 0.
16630
16631       planes
16632           Set planes to filter. Default value is to filter all planes except
16633           alpha plane.
16634
16635       Commands
16636
16637       This filter supports same commands as options.
16638
16639   chromahold
16640       Remove all color information for all colors except for certain one.
16641
16642       The filter accepts the following options:
16643
16644       color
16645           The color which will not be replaced with neutral chroma.
16646
16647       similarity
16648           Similarity percentage with the above color.  0.01 matches only the
16649           exact key color, while 1.0 matches everything.
16650
16651       blend
16652           Blend percentage.  0.0 makes pixels either fully gray, or not gray
16653           at all.  Higher values result in more preserved color.
16654
16655       yuv Signals that the color passed is already in YUV instead of RGB.
16656
16657           Literal colors like "green" or "red" don't make sense with this
16658           enabled anymore.  This can be used to pass exact YUV values as
16659           hexadecimal numbers.
16660
16661       Commands
16662
16663       This filter supports same commands as options.  The command accepts the
16664       same syntax of the corresponding option.
16665
16666       If the specified expression is not valid, it is kept at its current
16667       value.
16668
16669   chromakey
16670       YUV colorspace color/chroma keying.
16671
16672       The filter accepts the following options:
16673
16674       color
16675           The color which will be replaced with transparency.
16676
16677       similarity
16678           Similarity percentage with the key color.
16679
16680           0.01 matches only the exact key color, while 1.0 matches
16681           everything.
16682
16683       blend
16684           Blend percentage.
16685
16686           0.0 makes pixels either fully transparent, or not transparent at
16687           all.
16688
16689           Higher values result in semi-transparent pixels, with a higher
16690           transparency the more similar the pixels color is to the key color.
16691
16692       yuv Signals that the color passed is already in YUV instead of RGB.
16693
16694           Literal colors like "green" or "red" don't make sense with this
16695           enabled anymore.  This can be used to pass exact YUV values as
16696           hexadecimal numbers.
16697
16698       Commands
16699
16700       This filter supports same commands as options.  The command accepts the
16701       same syntax of the corresponding option.
16702
16703       If the specified expression is not valid, it is kept at its current
16704       value.
16705
16706       Examples
16707
16708       •   Make every green pixel in the input image transparent:
16709
16710                   ffmpeg -i input.png -vf chromakey=green out.png
16711
16712       •   Overlay a greenscreen-video on top of a static black background.
16713
16714                   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
16715
16716   chromakey_cuda
16717       CUDA accelerated YUV colorspace color/chroma keying.
16718
16719       This filter works like normal chromakey filter but operates on CUDA
16720       frames.  for more details and parameters see chromakey.
16721
16722       Examples
16723
16724       •   Make all the green pixels in the input video transparent and use it
16725           as an overlay for another video:
16726
16727                   ./ffmpeg \
16728                       -hwaccel cuda -hwaccel_output_format cuda -i input_green.mp4  \
16729                       -hwaccel cuda -hwaccel_output_format cuda -i base_video.mp4 \
16730                       -init_hw_device cuda \
16731                       -filter_complex \
16732                       " \
16733                           [0:v]chromakey_cuda=0x25302D:0.1:0.12:1[overlay_video]; \
16734                           [1:v]scale_cuda=format=yuv420p[base]; \
16735                           [base][overlay_video]overlay_cuda" \
16736                       -an -sn -c:v h264_nvenc -cq 20 output.mp4
16737
16738       •   Process two software sources, explicitly uploading the frames:
16739
16740                   ./ffmpeg -init_hw_device cuda=cuda -filter_hw_device cuda \
16741                       -f lavfi -i color=size=800x600:color=white,format=yuv420p \
16742                       -f lavfi -i yuvtestsrc=size=200x200,format=yuv420p \
16743                       -filter_complex \
16744                       " \
16745                           [0]hwupload[under]; \
16746                           [1]hwupload,chromakey_cuda=green:0.1:0.12[over]; \
16747                           [under][over]overlay_cuda" \
16748                       -c:v hevc_nvenc -cq 18 -preset slow output.mp4
16749
16750   chromanr
16751       Reduce chrominance noise.
16752
16753       The filter accepts the following options:
16754
16755       thres
16756           Set threshold for averaging chrominance values.  Sum of absolute
16757           difference of Y, U and V pixel components of current pixel and
16758           neighbour pixels lower than this threshold will be used in
16759           averaging. Luma component is left unchanged and is copied to
16760           output.  Default value is 30. Allowed range is from 1 to 200.
16761
16762       sizew
16763           Set horizontal radius of rectangle used for averaging.  Allowed
16764           range is from 1 to 100. Default value is 5.
16765
16766       sizeh
16767           Set vertical radius of rectangle used for averaging.  Allowed range
16768           is from 1 to 100. Default value is 5.
16769
16770       stepw
16771           Set horizontal step when averaging. Default value is 1.  Allowed
16772           range is from 1 to 50.  Mostly useful to speed-up filtering.
16773
16774       steph
16775           Set vertical step when averaging. Default value is 1.  Allowed
16776           range is from 1 to 50.  Mostly useful to speed-up filtering.
16777
16778       threy
16779           Set Y threshold for averaging chrominance values.  Set finer
16780           control for max allowed difference between Y components of current
16781           pixel and neigbour pixels.  Default value is 200. Allowed range is
16782           from 1 to 200.
16783
16784       threu
16785           Set U threshold for averaging chrominance values.  Set finer
16786           control for max allowed difference between U components of current
16787           pixel and neigbour pixels.  Default value is 200. Allowed range is
16788           from 1 to 200.
16789
16790       threv
16791           Set V threshold for averaging chrominance values.  Set finer
16792           control for max allowed difference between V components of current
16793           pixel and neigbour pixels.  Default value is 200. Allowed range is
16794           from 1 to 200.
16795
16796       distance
16797           Set distance type used in calculations.
16798
16799           manhattan
16800               Absolute difference.
16801
16802           euclidean
16803               Difference squared.
16804
16805           Default distance type is manhattan.
16806
16807       Commands
16808
16809       This filter supports same commands as options.  The command accepts the
16810       same syntax of the corresponding option.
16811
16812   chromashift
16813       Shift chroma pixels horizontally and/or vertically.
16814
16815       The filter accepts the following options:
16816
16817       cbh Set amount to shift chroma-blue horizontally.
16818
16819       cbv Set amount to shift chroma-blue vertically.
16820
16821       crh Set amount to shift chroma-red horizontally.
16822
16823       crv Set amount to shift chroma-red vertically.
16824
16825       edge
16826           Set edge mode, can be smear, default, or warp.
16827
16828       Commands
16829
16830       This filter supports the all above options as commands.
16831
16832   ciescope
16833       Display CIE color diagram with pixels overlaid onto it.
16834
16835       The filter accepts the following options:
16836
16837       system
16838           Set color system.
16839
16840           ntsc, 470m
16841           ebu, 470bg
16842           smpte
16843           240m
16844           apple
16845           widergb
16846           cie1931
16847           rec709, hdtv
16848           uhdtv, rec2020
16849           dcip3
16850       cie Set CIE system.
16851
16852           xyy
16853           ucs
16854           luv
16855       gamuts
16856           Set what gamuts to draw.
16857
16858           See "system" option for available values.
16859
16860       size, s
16861           Set ciescope size, by default set to 512.
16862
16863       intensity, i
16864           Set intensity used to map input pixel values to CIE diagram.
16865
16866       contrast
16867           Set contrast used to draw tongue colors that are out of active
16868           color system gamut.
16869
16870       corrgamma
16871           Correct gamma displayed on scope, by default enabled.
16872
16873       showwhite
16874           Show white point on CIE diagram, by default disabled.
16875
16876       gamma
16877           Set input gamma. Used only with XYZ input color space.
16878
16879       fill
16880           Fill with CIE colors. By default is enabled.
16881
16882   codecview
16883       Visualize information exported by some codecs.
16884
16885       Some codecs can export information through frames using side-data or
16886       other means. For example, some MPEG based codecs export motion vectors
16887       through the export_mvs flag in the codec flags2 option.
16888
16889       The filter accepts the following option:
16890
16891       block
16892           Display block partition structure using the luma plane.
16893
16894       mv  Set motion vectors to visualize.
16895
16896           Available flags for mv are:
16897
16898           pf  forward predicted MVs of P-frames
16899
16900           bf  forward predicted MVs of B-frames
16901
16902           bb  backward predicted MVs of B-frames
16903
16904       qp  Display quantization parameters using the chroma planes.
16905
16906       mv_type, mvt
16907           Set motion vectors type to visualize. Includes MVs from all frames
16908           unless specified by frame_type option.
16909
16910           Available flags for mv_type are:
16911
16912           fp  forward predicted MVs
16913
16914           bp  backward predicted MVs
16915
16916       frame_type, ft
16917           Set frame type to visualize motion vectors of.
16918
16919           Available flags for frame_type are:
16920
16921           if  intra-coded frames (I-frames)
16922
16923           pf  predicted frames (P-frames)
16924
16925           bf  bi-directionally predicted frames (B-frames)
16926
16927       Examples
16928
16929       •   Visualize forward predicted MVs of all frames using ffplay:
16930
16931                   ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp
16932
16933       •   Visualize multi-directionals MVs of P and B-Frames using ffplay:
16934
16935                   ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
16936
16937   colorbalance
16938       Modify intensity of primary colors (red, green and blue) of input
16939       frames.
16940
16941       The filter allows an input frame to be adjusted in the shadows,
16942       midtones or highlights regions for the red-cyan, green-magenta or blue-
16943       yellow balance.
16944
16945       A positive adjustment value shifts the balance towards the primary
16946       color, a negative value towards the complementary color.
16947
16948       The filter accepts the following options:
16949
16950       rs
16951       gs
16952       bs  Adjust red, green and blue shadows (darkest pixels).
16953
16954       rm
16955       gm
16956       bm  Adjust red, green and blue midtones (medium pixels).
16957
16958       rh
16959       gh
16960       bh  Adjust red, green and blue highlights (brightest pixels).
16961
16962           Allowed ranges for options are "[-1.0, 1.0]". Defaults are 0.
16963
16964       pl  Preserve lightness when changing color balance. Default is
16965           disabled.
16966
16967       Examples
16968
16969       •   Add red color cast to shadows:
16970
16971                   colorbalance=rs=.3
16972
16973       Commands
16974
16975       This filter supports the all above options as commands.
16976
16977   colorcontrast
16978       Adjust color contrast between RGB components.
16979
16980       The filter accepts the following options:
16981
16982       rc  Set the red-cyan contrast. Defaults is 0.0. Allowed range is from
16983           -1.0 to 1.0.
16984
16985       gm  Set the green-magenta contrast. Defaults is 0.0. Allowed range is
16986           from -1.0 to 1.0.
16987
16988       by  Set the blue-yellow contrast. Defaults is 0.0. Allowed range is
16989           from -1.0 to 1.0.
16990
16991       rcw
16992       gmw
16993       byw Set the weight of each "rc", "gm", "by" option value. Default value
16994           is 0.0.  Allowed range is from 0.0 to 1.0. If all weights are 0.0
16995           filtering is disabled.
16996
16997       pl  Set the amount of preserving lightness. Default value is 0.0.
16998           Allowed range is from 0.0 to 1.0.
16999
17000       Commands
17001
17002       This filter supports the all above options as commands.
17003
17004   colorcorrect
17005       Adjust color white balance selectively for blacks and whites.  This
17006       filter operates in YUV colorspace.
17007
17008       The filter accepts the following options:
17009
17010       rl  Set the red shadow spot. Allowed range is from -1.0 to 1.0.
17011           Default value is 0.
17012
17013       bl  Set the blue shadow spot. Allowed range is from -1.0 to 1.0.
17014           Default value is 0.
17015
17016       rh  Set the red highlight spot. Allowed range is from -1.0 to 1.0.
17017           Default value is 0.
17018
17019       bh  Set the red highlight spot. Allowed range is from -1.0 to 1.0.
17020           Default value is 0.
17021
17022       saturation
17023           Set the amount of saturation. Allowed range is from -3.0 to 3.0.
17024           Default value is 1.
17025
17026       analyze
17027           If set to anything other than "manual" it will analyze every frame
17028           and use derived parameters for filtering output frame.
17029
17030           Possible values are:
17031
17032           manual
17033           average
17034           minmax
17035           median
17036
17037           Default value is "manual".
17038
17039       Commands
17040
17041       This filter supports the all above options as commands.
17042
17043   colorchannelmixer
17044       Adjust video input frames by re-mixing color channels.
17045
17046       This filter modifies a color channel by adding the values associated to
17047       the other channels of the same pixels. For example if the value to
17048       modify is red, the output value will be:
17049
17050               <red>=<red>*<rr> + <blue>*<rb> + <green>*<rg> + <alpha>*<ra>
17051
17052       The filter accepts the following options:
17053
17054       rr
17055       rg
17056       rb
17057       ra  Adjust contribution of input red, green, blue and alpha channels
17058           for output red channel.  Default is 1 for rr, and 0 for rg, rb and
17059           ra.
17060
17061       gr
17062       gg
17063       gb
17064       ga  Adjust contribution of input red, green, blue and alpha channels
17065           for output green channel.  Default is 1 for gg, and 0 for gr, gb
17066           and ga.
17067
17068       br
17069       bg
17070       bb
17071       ba  Adjust contribution of input red, green, blue and alpha channels
17072           for output blue channel.  Default is 1 for bb, and 0 for br, bg and
17073           ba.
17074
17075       ar
17076       ag
17077       ab
17078       aa  Adjust contribution of input red, green, blue and alpha channels
17079           for output alpha channel.  Default is 1 for aa, and 0 for ar, ag
17080           and ab.
17081
17082           Allowed ranges for options are "[-2.0, 2.0]".
17083
17084       pc  Set preserve color mode. The accepted values are:
17085
17086           none
17087               Disable color preserving, this is default.
17088
17089           lum Preserve luminance.
17090
17091           max Preserve max value of RGB triplet.
17092
17093           avg Preserve average value of RGB triplet.
17094
17095           sum Preserve sum value of RGB triplet.
17096
17097           nrm Preserve normalized value of RGB triplet.
17098
17099           pwr Preserve power value of RGB triplet.
17100
17101       pa  Set the preserve color amount when changing colors. Allowed range
17102           is from "[0.0, 1.0]".  Default is 0.0, thus disabled.
17103
17104       Examples
17105
17106       •   Convert source to grayscale:
17107
17108                   colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
17109
17110       •   Simulate sepia tones:
17111
17112                   colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
17113
17114       Commands
17115
17116       This filter supports the all above options as commands.
17117
17118   colorize
17119       Overlay a solid color on the video stream.
17120
17121       The filter accepts the following options:
17122
17123       hue Set the color hue. Allowed range is from 0 to 360.  Default value
17124           is 0.
17125
17126       saturation
17127           Set the color saturation. Allowed range is from 0 to 1.  Default
17128           value is 0.5.
17129
17130       lightness
17131           Set the color lightness. Allowed range is from 0 to 1.  Default
17132           value is 0.5.
17133
17134       mix Set the mix of source lightness. By default is set to 1.0.  Allowed
17135           range is from 0.0 to 1.0.
17136
17137       Commands
17138
17139       This filter supports the all above options as commands.
17140
17141   colorkey
17142       RGB colorspace color keying.  This filter operates on 8-bit RGB format
17143       frames by setting the alpha component of each pixel which falls within
17144       the similarity radius of the key color to 0. The alpha value for pixels
17145       outside the similarity radius depends on the value of the blend option.
17146
17147       The filter accepts the following options:
17148
17149       color
17150           Set the color for which alpha will be set to 0 (full transparency).
17151           See "Color" section in the ffmpeg-utils manual.  Default is
17152           "black".
17153
17154       similarity
17155           Set the radius from the key color within which other colors also
17156           have full transparency.  The computed distance is related to the
17157           unit fractional distance in 3D space between the RGB values of the
17158           key color and the pixel's color. Range is 0.01 to 1.0. 0.01 matches
17159           within a very small radius around the exact key color, while 1.0
17160           matches everything.  Default is 0.01.
17161
17162       blend
17163           Set how the alpha value for pixels that fall outside the similarity
17164           radius is computed.  0.0 makes pixels either fully transparent or
17165           fully opaque.  Higher values result in semi-transparent pixels,
17166           with greater transparency the more similar the pixel color is to
17167           the key color.  Range is 0.0 to 1.0. Default is 0.0.
17168
17169       Examples
17170
17171       •   Make every green pixel in the input image transparent:
17172
17173                   ffmpeg -i input.png -vf colorkey=green out.png
17174
17175       •   Overlay a greenscreen-video on top of a static background image.
17176
17177                   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
17178
17179       Commands
17180
17181       This filter supports same commands as options.  The command accepts the
17182       same syntax of the corresponding option.
17183
17184       If the specified expression is not valid, it is kept at its current
17185       value.
17186
17187   colorhold
17188       Remove all color information for all RGB colors except for certain one.
17189
17190       The filter accepts the following options:
17191
17192       color
17193           The color which will not be replaced with neutral gray.
17194
17195       similarity
17196           Similarity percentage with the above color.  0.01 matches only the
17197           exact key color, while 1.0 matches everything.
17198
17199       blend
17200           Blend percentage. 0.0 makes pixels fully gray.  Higher values
17201           result in more preserved color.
17202
17203       Commands
17204
17205       This filter supports same commands as options.  The command accepts the
17206       same syntax of the corresponding option.
17207
17208       If the specified expression is not valid, it is kept at its current
17209       value.
17210
17211   colorlevels
17212       Adjust video input frames using levels.
17213
17214       The filter accepts the following options:
17215
17216       rimin
17217       gimin
17218       bimin
17219       aimin
17220           Adjust red, green, blue and alpha input black point.  Allowed
17221           ranges for options are "[-1.0, 1.0]". Defaults are 0.
17222
17223       rimax
17224       gimax
17225       bimax
17226       aimax
17227           Adjust red, green, blue and alpha input white point.  Allowed
17228           ranges for options are "[-1.0, 1.0]". Defaults are 1.
17229
17230           Input levels are used to lighten highlights (bright tones), darken
17231           shadows (dark tones), change the balance of bright and dark tones.
17232
17233       romin
17234       gomin
17235       bomin
17236       aomin
17237           Adjust red, green, blue and alpha output black point.  Allowed
17238           ranges for options are "[0, 1.0]". Defaults are 0.
17239
17240       romax
17241       gomax
17242       bomax
17243       aomax
17244           Adjust red, green, blue and alpha output white point.  Allowed
17245           ranges for options are "[0, 1.0]". Defaults are 1.
17246
17247           Output levels allows manual selection of a constrained output level
17248           range.
17249
17250       preserve
17251           Set preserve color mode. The accepted values are:
17252
17253           none
17254               Disable color preserving, this is default.
17255
17256           lum Preserve luminance.
17257
17258           max Preserve max value of RGB triplet.
17259
17260           avg Preserve average value of RGB triplet.
17261
17262           sum Preserve sum value of RGB triplet.
17263
17264           nrm Preserve normalized value of RGB triplet.
17265
17266           pwr Preserve power value of RGB triplet.
17267
17268       Examples
17269
17270       •   Make video output darker:
17271
17272                   colorlevels=rimin=0.058:gimin=0.058:bimin=0.058
17273
17274       •   Increase contrast:
17275
17276                   colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.96:gimax=0.96:bimax=0.96
17277
17278       •   Make video output lighter:
17279
17280                   colorlevels=rimax=0.902:gimax=0.902:bimax=0.902
17281
17282       •   Increase brightness:
17283
17284                   colorlevels=romin=0.5:gomin=0.5:bomin=0.5
17285
17286       Commands
17287
17288       This filter supports the all above options as commands.
17289
17290   colormap
17291       Apply custom color maps to video stream.
17292
17293       This filter needs three input video streams.  First stream is video
17294       stream that is going to be filtered out.  Second and third video stream
17295       specify color patches for source color to target color mapping.
17296
17297       The filter accepts the following options:
17298
17299       patch_size
17300           Set the source and target video stream patch size in pixels.
17301
17302       nb_patches
17303           Set the max number of used patches from source and target video
17304           stream.  Default value is number of patches available in additional
17305           video streams.  Max allowed number of patches is 64.
17306
17307       type
17308           Set the adjustments used for target colors. Can be "relative" or
17309           "absolute".  Defaults is "absolute".
17310
17311       kernel
17312           Set the kernel used to measure color differences between mapped
17313           colors.
17314
17315           The accepted values are:
17316
17317           euclidean
17318           weuclidean
17319
17320           Default is "euclidean".
17321
17322   colormatrix
17323       Convert color matrix.
17324
17325       The filter accepts the following options:
17326
17327       src
17328       dst Specify the source and destination color matrix. Both values must
17329           be specified.
17330
17331           The accepted values are:
17332
17333           bt709
17334               BT.709
17335
17336           fcc FCC
17337
17338           bt601
17339               BT.601
17340
17341           bt470
17342               BT.470
17343
17344           bt470bg
17345               BT.470BG
17346
17347           smpte170m
17348               SMPTE-170M
17349
17350           smpte240m
17351               SMPTE-240M
17352
17353           bt2020
17354               BT.2020
17355
17356       For example to convert from BT.601 to SMPTE-240M, use the command:
17357
17358               colormatrix=bt601:smpte240m
17359
17360   colorspace
17361       Convert colorspace, transfer characteristics or color primaries.  Input
17362       video needs to have an even size.
17363
17364       The filter accepts the following options:
17365
17366       all Specify all color properties at once.
17367
17368           The accepted values are:
17369
17370           bt470m
17371               BT.470M
17372
17373           bt470bg
17374               BT.470BG
17375
17376           bt601-6-525
17377               BT.601-6 525
17378
17379           bt601-6-625
17380               BT.601-6 625
17381
17382           bt709
17383               BT.709
17384
17385           smpte170m
17386               SMPTE-170M
17387
17388           smpte240m
17389               SMPTE-240M
17390
17391           bt2020
17392               BT.2020
17393
17394       space
17395           Specify output colorspace.
17396
17397           The accepted values are:
17398
17399           bt709
17400               BT.709
17401
17402           fcc FCC
17403
17404           bt470bg
17405               BT.470BG or BT.601-6 625
17406
17407           smpte170m
17408               SMPTE-170M or BT.601-6 525
17409
17410           smpte240m
17411               SMPTE-240M
17412
17413           ycgco
17414               YCgCo
17415
17416           bt2020ncl
17417               BT.2020 with non-constant luminance
17418
17419       trc Specify output transfer characteristics.
17420
17421           The accepted values are:
17422
17423           bt709
17424               BT.709
17425
17426           bt470m
17427               BT.470M
17428
17429           bt470bg
17430               BT.470BG
17431
17432           gamma22
17433               Constant gamma of 2.2
17434
17435           gamma28
17436               Constant gamma of 2.8
17437
17438           smpte170m
17439               SMPTE-170M, BT.601-6 625 or BT.601-6 525
17440
17441           smpte240m
17442               SMPTE-240M
17443
17444           srgb
17445               SRGB
17446
17447           iec61966-2-1
17448               iec61966-2-1
17449
17450           iec61966-2-4
17451               iec61966-2-4
17452
17453           xvycc
17454               xvycc
17455
17456           bt2020-10
17457               BT.2020 for 10-bits content
17458
17459           bt2020-12
17460               BT.2020 for 12-bits content
17461
17462       primaries
17463           Specify output color primaries.
17464
17465           The accepted values are:
17466
17467           bt709
17468               BT.709
17469
17470           bt470m
17471               BT.470M
17472
17473           bt470bg
17474               BT.470BG or BT.601-6 625
17475
17476           smpte170m
17477               SMPTE-170M or BT.601-6 525
17478
17479           smpte240m
17480               SMPTE-240M
17481
17482           film
17483               film
17484
17485           smpte431
17486               SMPTE-431
17487
17488           smpte432
17489               SMPTE-432
17490
17491           bt2020
17492               BT.2020
17493
17494           jedec-p22
17495               JEDEC P22 phosphors
17496
17497       range
17498           Specify output color range.
17499
17500           The accepted values are:
17501
17502           tv  TV (restricted) range
17503
17504           mpeg
17505               MPEG (restricted) range
17506
17507           pc  PC (full) range
17508
17509           jpeg
17510               JPEG (full) range
17511
17512       format
17513           Specify output color format.
17514
17515           The accepted values are:
17516
17517           yuv420p
17518               YUV 4:2:0 planar 8-bits
17519
17520           yuv420p10
17521               YUV 4:2:0 planar 10-bits
17522
17523           yuv420p12
17524               YUV 4:2:0 planar 12-bits
17525
17526           yuv422p
17527               YUV 4:2:2 planar 8-bits
17528
17529           yuv422p10
17530               YUV 4:2:2 planar 10-bits
17531
17532           yuv422p12
17533               YUV 4:2:2 planar 12-bits
17534
17535           yuv444p
17536               YUV 4:4:4 planar 8-bits
17537
17538           yuv444p10
17539               YUV 4:4:4 planar 10-bits
17540
17541           yuv444p12
17542               YUV 4:4:4 planar 12-bits
17543
17544       fast
17545           Do a fast conversion, which skips gamma/primary correction. This
17546           will take significantly less CPU, but will be mathematically
17547           incorrect. To get output compatible with that produced by the
17548           colormatrix filter, use fast=1.
17549
17550       dither
17551           Specify dithering mode.
17552
17553           The accepted values are:
17554
17555           none
17556               No dithering
17557
17558           fsb Floyd-Steinberg dithering
17559
17560       wpadapt
17561           Whitepoint adaptation mode.
17562
17563           The accepted values are:
17564
17565           bradford
17566               Bradford whitepoint adaptation
17567
17568           vonkries
17569               von Kries whitepoint adaptation
17570
17571           identity
17572               identity whitepoint adaptation (i.e. no whitepoint adaptation)
17573
17574       iall
17575           Override all input properties at once. Same accepted values as all.
17576
17577       ispace
17578           Override input colorspace. Same accepted values as space.
17579
17580       iprimaries
17581           Override input color primaries. Same accepted values as primaries.
17582
17583       itrc
17584           Override input transfer characteristics. Same accepted values as
17585           trc.
17586
17587       irange
17588           Override input color range. Same accepted values as range.
17589
17590       The filter converts the transfer characteristics, color space and color
17591       primaries to the specified user values. The output value, if not
17592       specified, is set to a default value based on the "all" property. If
17593       that property is also not specified, the filter will log an error. The
17594       output color range and format default to the same value as the input
17595       color range and format. The input transfer characteristics, color
17596       space, color primaries and color range should be set on the input data.
17597       If any of these are missing, the filter will log an error and no
17598       conversion will take place.
17599
17600       For example to convert the input to SMPTE-240M, use the command:
17601
17602               colorspace=smpte240m
17603
17604   colortemperature
17605       Adjust color temperature in video to simulate variations in ambient
17606       color temperature.
17607
17608       The filter accepts the following options:
17609
17610       temperature
17611           Set the temperature in Kelvin. Allowed range is from 1000 to 40000.
17612           Default value is 6500 K.
17613
17614       mix Set mixing with filtered output. Allowed range is from 0 to 1.
17615           Default value is 1.
17616
17617       pl  Set the amount of preserving lightness. Allowed range is from 0 to
17618           1.  Default value is 0.
17619
17620       Commands
17621
17622       This filter supports same commands as options.
17623
17624   convolution
17625       Apply convolution of 3x3, 5x5, 7x7 or horizontal/vertical up to 49
17626       elements.
17627
17628       The filter accepts the following options:
17629
17630       0m
17631       1m
17632       2m
17633       3m  Set matrix for each plane.  Matrix is sequence of 9, 25 or 49
17634           signed integers in square mode, and from 1 to 49 odd number of
17635           signed integers in row mode.
17636
17637       0rdiv
17638       1rdiv
17639       2rdiv
17640       3rdiv
17641           Set multiplier for calculated value for each plane.  If unset or 0,
17642           it will be sum of all matrix elements.
17643
17644       0bias
17645       1bias
17646       2bias
17647       3bias
17648           Set bias for each plane. This value is added to the result of the
17649           multiplication.  Useful for making the overall image brighter or
17650           darker. Default is 0.0.
17651
17652       0mode
17653       1mode
17654       2mode
17655       3mode
17656           Set matrix mode for each plane. Can be square, row or column.
17657           Default is square.
17658
17659       Commands
17660
17661       This filter supports the all above options as commands.
17662
17663       Examples
17664
17665       •   Apply sharpen:
17666
17667                   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"
17668
17669       •   Apply blur:
17670
17671                   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"
17672
17673       •   Apply edge enhance:
17674
17675                   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"
17676
17677       •   Apply edge detect:
17678
17679                   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"
17680
17681       •   Apply laplacian edge detector which includes diagonals:
17682
17683                   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"
17684
17685       •   Apply emboss:
17686
17687                   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"
17688
17689   convolve
17690       Apply 2D convolution of video stream in frequency domain using second
17691       stream as impulse.
17692
17693       The filter accepts the following options:
17694
17695       planes
17696           Set which planes to process.
17697
17698       impulse
17699           Set which impulse video frames will be processed, can be first or
17700           all. Default is all.
17701
17702       The "convolve" filter also supports the framesync options.
17703
17704   copy
17705       Copy the input video source unchanged to the output. This is mainly
17706       useful for testing purposes.
17707
17708   coreimage
17709       Video filtering on GPU using Apple's CoreImage API on OSX.
17710
17711       Hardware acceleration is based on an OpenGL context. Usually, this
17712       means it is processed by video hardware. However, software-based OpenGL
17713       implementations exist which means there is no guarantee for hardware
17714       processing. It depends on the respective OSX.
17715
17716       There are many filters and image generators provided by Apple that come
17717       with a large variety of options. The filter has to be referenced by its
17718       name along with its options.
17719
17720       The coreimage filter accepts the following options:
17721
17722       list_filters
17723           List all available filters and generators along with all their
17724           respective options as well as possible minimum and maximum values
17725           along with the default values.
17726
17727                   list_filters=true
17728
17729       filter
17730           Specify all filters by their respective name and options.  Use
17731           list_filters to determine all valid filter names and options.
17732           Numerical options are specified by a float value and are
17733           automatically clamped to their respective value range.  Vector and
17734           color options have to be specified by a list of space separated
17735           float values. Character escaping has to be done.  A special option
17736           name "default" is available to use default options for a filter.
17737
17738           It is required to specify either "default" or at least one of the
17739           filter options.  All omitted options are used with their default
17740           values.  The syntax of the filter string is as follows:
17741
17742                   filter=<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...][#<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...]][#...]
17743
17744       output_rect
17745           Specify a rectangle where the output of the filter chain is copied
17746           into the input image. It is given by a list of space separated
17747           float values:
17748
17749                   output_rect=x\ y\ width\ height
17750
17751           If not given, the output rectangle equals the dimensions of the
17752           input image.  The output rectangle is automatically cropped at the
17753           borders of the input image. Negative values are valid for each
17754           component.
17755
17756                   output_rect=25\ 25\ 100\ 100
17757
17758       Several filters can be chained for successive processing without GPU-
17759       HOST transfers allowing for fast processing of complex filter chains.
17760       Currently, only filters with zero (generators) or exactly one (filters)
17761       input image and one output image are supported. Also, transition
17762       filters are not yet usable as intended.
17763
17764       Some filters generate output images with additional padding depending
17765       on the respective filter kernel. The padding is automatically removed
17766       to ensure the filter output has the same size as the input image.
17767
17768       For image generators, the size of the output image is determined by the
17769       previous output image of the filter chain or the input image of the
17770       whole filterchain, respectively. The generators do not use the pixel
17771       information of this image to generate their output. However, the
17772       generated output is blended onto this image, resulting in partial or
17773       complete coverage of the output image.
17774
17775       The coreimagesrc video source can be used for generating input images
17776       which are directly fed into the filter chain. By using it, providing
17777       input images by another video source or an input video is not required.
17778
17779       Examples
17780
17781       •   List all filters available:
17782
17783                   coreimage=list_filters=true
17784
17785       •   Use the CIBoxBlur filter with default options to blur an image:
17786
17787                   coreimage=filter=CIBoxBlur@default
17788
17789       •   Use a filter chain with CISepiaTone at default values and
17790           CIVignetteEffect with its center at 100x100 and a radius of 50
17791           pixels:
17792
17793                   coreimage=filter=CIBoxBlur@default#CIVignetteEffect@inputCenter=100\ 100@inputRadius=50
17794
17795       •   Use nullsrc and CIQRCodeGenerator to create a QR code for the
17796           FFmpeg homepage, given as complete and escaped command-line for
17797           Apple's standard bash shell:
17798
17799                   ffmpeg -f lavfi -i nullsrc=s=100x100,coreimage=filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
17800
17801   cover_rect
17802       Cover a rectangular object
17803
17804       It accepts the following options:
17805
17806       cover
17807           Filepath of the optional cover image, needs to be in yuv420.
17808
17809       mode
17810           Set covering mode.
17811
17812           It accepts the following values:
17813
17814           cover
17815               cover it by the supplied image
17816
17817           blur
17818               cover it by interpolating the surrounding pixels
17819
17820           Default value is blur.
17821
17822       Examples
17823
17824       •   Cover a rectangular object by the supplied image of a given video
17825           using ffmpeg:
17826
17827                   ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
17828
17829   crop
17830       Crop the input video to given dimensions.
17831
17832       It accepts the following parameters:
17833
17834       w, out_w
17835           The width of the output video. It defaults to "iw".  This
17836           expression is evaluated only once during the filter configuration,
17837           or when the w or out_w command is sent.
17838
17839       h, out_h
17840           The height of the output video. It defaults to "ih".  This
17841           expression is evaluated only once during the filter configuration,
17842           or when the h or out_h command is sent.
17843
17844       x   The horizontal position, in the input video, of the left edge of
17845           the output video. It defaults to "(in_w-out_w)/2".  This expression
17846           is evaluated per-frame.
17847
17848       y   The vertical position, in the input video, of the top edge of the
17849           output video.  It defaults to "(in_h-out_h)/2".  This expression is
17850           evaluated per-frame.
17851
17852       keep_aspect
17853           If set to 1 will force the output display aspect ratio to be the
17854           same of the input, by changing the output sample aspect ratio. It
17855           defaults to 0.
17856
17857       exact
17858           Enable exact cropping. If enabled, subsampled videos will be
17859           cropped at exact width/height/x/y as specified and will not be
17860           rounded to nearest smaller value.  It defaults to 0.
17861
17862       The out_w, out_h, x, y parameters are expressions containing the
17863       following constants:
17864
17865       x
17866       y   The computed values for x and y. They are evaluated for each new
17867           frame.
17868
17869       in_w
17870       in_h
17871           The input width and height.
17872
17873       iw
17874       ih  These are the same as in_w and in_h.
17875
17876       out_w
17877       out_h
17878           The output (cropped) width and height.
17879
17880       ow
17881       oh  These are the same as out_w and out_h.
17882
17883       a   same as iw / ih
17884
17885       sar input sample aspect ratio
17886
17887       dar input display aspect ratio, it is the same as (iw / ih) * sar
17888
17889       hsub
17890       vsub
17891           horizontal and vertical chroma subsample values. For example for
17892           the pixel format "yuv422p" hsub is 2 and vsub is 1.
17893
17894       n   The number of the input frame, starting from 0.
17895
17896       pos the position in the file of the input frame, NAN if unknown
17897
17898       t   The timestamp expressed in seconds. It's NAN if the input timestamp
17899           is unknown.
17900
17901       The expression for out_w may depend on the value of out_h, and the
17902       expression for out_h may depend on out_w, but they cannot depend on x
17903       and y, as x and y are evaluated after out_w and out_h.
17904
17905       The x and y parameters specify the expressions for the position of the
17906       top-left corner of the output (non-cropped) area. They are evaluated
17907       for each frame. If the evaluated value is not valid, it is approximated
17908       to the nearest valid value.
17909
17910       The expression for x may depend on y, and the expression for y may
17911       depend on x.
17912
17913       Examples
17914
17915       •   Crop area with size 100x100 at position (12,34).
17916
17917                   crop=100:100:12:34
17918
17919           Using named options, the example above becomes:
17920
17921                   crop=w=100:h=100:x=12:y=34
17922
17923       •   Crop the central input area with size 100x100:
17924
17925                   crop=100:100
17926
17927       •   Crop the central input area with size 2/3 of the input video:
17928
17929                   crop=2/3*in_w:2/3*in_h
17930
17931       •   Crop the input video central square:
17932
17933                   crop=out_w=in_h
17934                   crop=in_h
17935
17936       •   Delimit the rectangle with the top-left corner placed at position
17937           100:100 and the right-bottom corner corresponding to the right-
17938           bottom corner of the input image.
17939
17940                   crop=in_w-100:in_h-100:100:100
17941
17942       •   Crop 10 pixels from the left and right borders, and 20 pixels from
17943           the top and bottom borders
17944
17945                   crop=in_w-2*10:in_h-2*20
17946
17947       •   Keep only the bottom right quarter of the input image:
17948
17949                   crop=in_w/2:in_h/2:in_w/2:in_h/2
17950
17951       •   Crop height for getting Greek harmony:
17952
17953                   crop=in_w:1/PHI*in_w
17954
17955       •   Apply trembling effect:
17956
17957                   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)
17958
17959       •   Apply erratic camera effect depending on timestamp:
17960
17961                   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)"
17962
17963       •   Set x depending on the value of y:
17964
17965                   crop=in_w/2:in_h/2:y:10+10*sin(n/10)
17966
17967       Commands
17968
17969       This filter supports the following commands:
17970
17971       w, out_w
17972       h, out_h
17973       x
17974       y   Set width/height of the output video and the horizontal/vertical
17975           position in the input video.  The command accepts the same syntax
17976           of the corresponding option.
17977
17978           If the specified expression is not valid, it is kept at its current
17979           value.
17980
17981   cropdetect
17982       Auto-detect the crop size.
17983
17984       It calculates the necessary cropping parameters and prints the
17985       recommended parameters via the logging system. The detected dimensions
17986       correspond to the non-black area of the input video.
17987
17988       It accepts the following parameters:
17989
17990       limit
17991           Set higher black value threshold, which can be optionally specified
17992           from nothing (0) to everything (255 for 8-bit based formats). An
17993           intensity value greater to the set value is considered non-black.
17994           It defaults to 24.  You can also specify a value between 0.0 and
17995           1.0 which will be scaled depending on the bitdepth of the pixel
17996           format.
17997
17998       round
17999           The value which the width/height should be divisible by. It
18000           defaults to 16. The offset is automatically adjusted to center the
18001           video. Use 2 to get only even dimensions (needed for 4:2:2 video).
18002           16 is best when encoding to most video codecs.
18003
18004       skip
18005           Set the number of initial frames for which evaluation is skipped.
18006           Default is 2. Range is 0 to INT_MAX.
18007
18008       reset_count, reset
18009           Set the counter that determines after how many frames cropdetect
18010           will reset the previously detected largest video area and start
18011           over to detect the current optimal crop area. Default value is 0.
18012
18013           This can be useful when channel logos distort the video area. 0
18014           indicates 'never reset', and returns the largest area encountered
18015           during playback.
18016
18017   cue
18018       Delay video filtering until a given wallclock timestamp. The filter
18019       first passes on preroll amount of frames, then it buffers at most
18020       buffer amount of frames and waits for the cue. After reaching the cue
18021       it forwards the buffered frames and also any subsequent frames coming
18022       in its input.
18023
18024       The filter can be used synchronize the output of multiple ffmpeg
18025       processes for realtime output devices like decklink. By putting the
18026       delay in the filtering chain and pre-buffering frames the process can
18027       pass on data to output almost immediately after the target wallclock
18028       timestamp is reached.
18029
18030       Perfect frame accuracy cannot be guaranteed, but the result is good
18031       enough for some use cases.
18032
18033       cue The cue timestamp expressed in a UNIX timestamp in microseconds.
18034           Default is 0.
18035
18036       preroll
18037           The duration of content to pass on as preroll expressed in seconds.
18038           Default is 0.
18039
18040       buffer
18041           The maximum duration of content to buffer before waiting for the
18042           cue expressed in seconds. Default is 0.
18043
18044   curves
18045       Apply color adjustments using curves.
18046
18047       This filter is similar to the Adobe Photoshop and GIMP curves tools.
18048       Each component (red, green and blue) has its values defined by N key
18049       points tied from each other using a smooth curve. The x-axis represents
18050       the pixel values from the input frame, and the y-axis the new pixel
18051       values to be set for the output frame.
18052
18053       By default, a component curve is defined by the two points (0;0) and
18054       (1;1). This creates a straight line where each original pixel value is
18055       "adjusted" to its own value, which means no change to the image.
18056
18057       The filter allows you to redefine these two points and add some more. A
18058       new curve (using a natural cubic spline interpolation) will be define
18059       to pass smoothly through all these new coordinates. The new defined
18060       points needs to be strictly increasing over the x-axis, and their x and
18061       y values must be in the [0;1] interval.  If the computed curves
18062       happened to go outside the vector spaces, the values will be clipped
18063       accordingly.
18064
18065       The filter accepts the following options:
18066
18067       preset
18068           Select one of the available color presets. This option can be used
18069           in addition to the r, g, b parameters; in this case, the later
18070           options takes priority on the preset values.  Available presets
18071           are:
18072
18073           none
18074           color_negative
18075           cross_process
18076           darker
18077           increase_contrast
18078           lighter
18079           linear_contrast
18080           medium_contrast
18081           negative
18082           strong_contrast
18083           vintage
18084
18085           Default is "none".
18086
18087       master, m
18088           Set the master key points. These points will define a second pass
18089           mapping. It is sometimes called a "luminance" or "value" mapping.
18090           It can be used with r, g, b or all since it acts like a post-
18091           processing LUT.
18092
18093       red, r
18094           Set the key points for the red component.
18095
18096       green, g
18097           Set the key points for the green component.
18098
18099       blue, b
18100           Set the key points for the blue component.
18101
18102       all Set the key points for all components (not including master).  Can
18103           be used in addition to the other key points component options. In
18104           this case, the unset component(s) will fallback on this all
18105           setting.
18106
18107       psfile
18108           Specify a Photoshop curves file (".acv") to import the settings
18109           from.
18110
18111       plot
18112           Save Gnuplot script of the curves in specified file.
18113
18114       To avoid some filtergraph syntax conflicts, each key points list need
18115       to be defined using the following syntax: "x0/y0 x1/y1 x2/y2 ...".
18116
18117       Commands
18118
18119       This filter supports same commands as options.
18120
18121       Examples
18122
18123       •   Increase slightly the middle level of blue:
18124
18125                   curves=blue='0/0 0.5/0.58 1/1'
18126
18127       •   Vintage effect:
18128
18129                   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'
18130
18131           Here we obtain the following coordinates for each components:
18132
18133           red "(0;0.11) (0.42;0.51) (1;0.95)"
18134
18135           green
18136               "(0;0) (0.50;0.48) (1;1)"
18137
18138           blue
18139               "(0;0.22) (0.49;0.44) (1;0.80)"
18140
18141       •   The previous example can also be achieved with the associated
18142           built-in preset:
18143
18144                   curves=preset=vintage
18145
18146       •   Or simply:
18147
18148                   curves=vintage
18149
18150       •   Use a Photoshop preset and redefine the points of the green
18151           component:
18152
18153                   curves=psfile='MyCurvesPresets/purple.acv':green='0/0 0.45/0.53 1/1'
18154
18155       •   Check out the curves of the "cross_process" profile using ffmpeg
18156           and gnuplot:
18157
18158                   ffmpeg -f lavfi -i color -vf curves=cross_process:plot=/tmp/curves.plt -frames:v 1 -f null -
18159                   gnuplot -p /tmp/curves.plt
18160
18161   datascope
18162       Video data analysis filter.
18163
18164       This filter shows hexadecimal pixel values of part of video.
18165
18166       The filter accepts the following options:
18167
18168       size, s
18169           Set output video size.
18170
18171       x   Set x offset from where to pick pixels.
18172
18173       y   Set y offset from where to pick pixels.
18174
18175       mode
18176           Set scope mode, can be one of the following:
18177
18178           mono
18179               Draw hexadecimal pixel values with white color on black
18180               background.
18181
18182           color
18183               Draw hexadecimal pixel values with input video pixel color on
18184               black background.
18185
18186           color2
18187               Draw hexadecimal pixel values on color background picked from
18188               input video, the text color is picked in such way so its always
18189               visible.
18190
18191       axis
18192           Draw rows and columns numbers on left and top of video.
18193
18194       opacity
18195           Set background opacity.
18196
18197       format
18198           Set display number format. Can be "hex", or "dec". Default is
18199           "hex".
18200
18201       components
18202           Set pixel components to display. By default all pixel components
18203           are displayed.
18204
18205       Commands
18206
18207       This filter supports same commands as options excluding "size" option.
18208
18209   dblur
18210       Apply Directional blur filter.
18211
18212       The filter accepts the following options:
18213
18214       angle
18215           Set angle of directional blur. Default is 45.
18216
18217       radius
18218           Set radius of directional blur. Default is 5.
18219
18220       planes
18221           Set which planes to filter. By default all planes are filtered.
18222
18223       Commands
18224
18225       This filter supports same commands as options.  The command accepts the
18226       same syntax of the corresponding option.
18227
18228       If the specified expression is not valid, it is kept at its current
18229       value.
18230
18231   dctdnoiz
18232       Denoise frames using 2D DCT (frequency domain filtering).
18233
18234       This filter is not designed for real time.
18235
18236       The filter accepts the following options:
18237
18238       sigma, s
18239           Set the noise sigma constant.
18240
18241           This sigma defines a hard threshold of "3 * sigma"; every DCT
18242           coefficient (absolute value) below this threshold with be dropped.
18243
18244           If you need a more advanced filtering, see expr.
18245
18246           Default is 0.
18247
18248       overlap
18249           Set number overlapping pixels for each block. Since the filter can
18250           be slow, you may want to reduce this value, at the cost of a less
18251           effective filter and the risk of various artefacts.
18252
18253           If the overlapping value doesn't permit processing the whole input
18254           width or height, a warning will be displayed and according borders
18255           won't be denoised.
18256
18257           Default value is blocksize-1, which is the best possible setting.
18258
18259       expr, e
18260           Set the coefficient factor expression.
18261
18262           For each coefficient of a DCT block, this expression will be
18263           evaluated as a multiplier value for the coefficient.
18264
18265           If this is option is set, the sigma option will be ignored.
18266
18267           The absolute value of the coefficient can be accessed through the c
18268           variable.
18269
18270       n   Set the blocksize using the number of bits. "1<<n" defines the
18271           blocksize, which is the width and height of the processed blocks.
18272
18273           The default value is 3 (8x8) and can be raised to 4 for a blocksize
18274           of 16x16. Note that changing this setting has huge consequences on
18275           the speed processing. Also, a larger block size does not
18276           necessarily means a better de-noising.
18277
18278       Examples
18279
18280       Apply a denoise with a sigma of 4.5:
18281
18282               dctdnoiz=4.5
18283
18284       The same operation can be achieved using the expression system:
18285
18286               dctdnoiz=e='gte(c, 4.5*3)'
18287
18288       Violent denoise using a block size of "16x16":
18289
18290               dctdnoiz=15:n=4
18291
18292   deband
18293       Remove banding artifacts from input video.  It works by replacing
18294       banded pixels with average value of referenced pixels.
18295
18296       The filter accepts the following options:
18297
18298       1thr
18299       2thr
18300       3thr
18301       4thr
18302           Set banding detection threshold for each plane. Default is 0.02.
18303           Valid range is 0.00003 to 0.5.  If difference between current pixel
18304           and reference pixel is less than threshold, it will be considered
18305           as banded.
18306
18307       range, r
18308           Banding detection range in pixels. Default is 16. If positive,
18309           random number in range 0 to set value will be used. If negative,
18310           exact absolute value will be used.  The range defines square of
18311           four pixels around current pixel.
18312
18313       direction, d
18314           Set direction in radians from which four pixel will be compared. If
18315           positive, random direction from 0 to set direction will be picked.
18316           If negative, exact of absolute value will be picked. For example
18317           direction 0, -PI or -2*PI radians will pick only pixels on same row
18318           and -PI/2 will pick only pixels on same column.
18319
18320       blur, b
18321           If enabled, current pixel is compared with average value of all
18322           four surrounding pixels. The default is enabled. If disabled
18323           current pixel is compared with all four surrounding pixels. The
18324           pixel is considered banded if only all four differences with
18325           surrounding pixels are less than threshold.
18326
18327       coupling, c
18328           If enabled, current pixel is changed if and only if all pixel
18329           components are banded, e.g. banding detection threshold is
18330           triggered for all color components.  The default is disabled.
18331
18332       Commands
18333
18334       This filter supports the all above options as commands.
18335
18336   deblock
18337       Remove blocking artifacts from input video.
18338
18339       The filter accepts the following options:
18340
18341       filter
18342           Set filter type, can be weak or strong. Default is strong.  This
18343           controls what kind of deblocking is applied.
18344
18345       block
18346           Set size of block, allowed range is from 4 to 512. Default is 8.
18347
18348       alpha
18349       beta
18350       gamma
18351       delta
18352           Set blocking detection thresholds. Allowed range is 0 to 1.
18353           Defaults are: 0.098 for alpha and 0.05 for the rest.  Using higher
18354           threshold gives more deblocking strength.  Setting alpha controls
18355           threshold detection at exact edge of block.  Remaining options
18356           controls threshold detection near the edge. Each one for
18357           below/above or left/right. Setting any of those to 0 disables
18358           deblocking.
18359
18360       planes
18361           Set planes to filter. Default is to filter all available planes.
18362
18363       Examples
18364
18365       •   Deblock using weak filter and block size of 4 pixels.
18366
18367                   deblock=filter=weak:block=4
18368
18369       •   Deblock using strong filter, block size of 4 pixels and custom
18370           thresholds for deblocking more edges.
18371
18372                   deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05
18373
18374       •   Similar as above, but filter only first plane.
18375
18376                   deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=1
18377
18378       •   Similar as above, but filter only second and third plane.
18379
18380                   deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=6
18381
18382       Commands
18383
18384       This filter supports the all above options as commands.
18385
18386   decimate
18387       Drop duplicated frames at regular intervals.
18388
18389       The filter accepts the following options:
18390
18391       cycle
18392           Set the number of frames from which one will be dropped. Setting
18393           this to N means one frame in every batch of N frames will be
18394           dropped.  Default is 5.
18395
18396       dupthresh
18397           Set the threshold for duplicate detection. If the difference metric
18398           for a frame is less than or equal to this value, then it is
18399           declared as duplicate. Default is 1.1
18400
18401       scthresh
18402           Set scene change threshold. Default is 15.
18403
18404       blockx
18405       blocky
18406           Set the size of the x and y-axis blocks used during metric
18407           calculations.  Larger blocks give better noise suppression, but
18408           also give worse detection of small movements. Must be a power of
18409           two. Default is 32.
18410
18411       ppsrc
18412           Mark main input as a pre-processed input and activate clean source
18413           input stream. This allows the input to be pre-processed with
18414           various filters to help the metrics calculation while keeping the
18415           frame selection lossless. When set to 1, the first stream is for
18416           the pre-processed input, and the second stream is the clean source
18417           from where the kept frames are chosen. Default is 0.
18418
18419       chroma
18420           Set whether or not chroma is considered in the metric calculations.
18421           Default is 1.
18422
18423   deconvolve
18424       Apply 2D deconvolution of video stream in frequency domain using second
18425       stream as impulse.
18426
18427       The filter accepts the following options:
18428
18429       planes
18430           Set which planes to process.
18431
18432       impulse
18433           Set which impulse video frames will be processed, can be first or
18434           all. Default is all.
18435
18436       noise
18437           Set noise when doing divisions. Default is 0.0000001. Useful when
18438           width and height are not same and not power of 2 or if stream prior
18439           to convolving had noise.
18440
18441       The "deconvolve" filter also supports the framesync options.
18442
18443   dedot
18444       Reduce cross-luminance (dot-crawl) and cross-color (rainbows) from
18445       video.
18446
18447       It accepts the following options:
18448
18449       m   Set mode of operation. Can be combination of dotcrawl for cross-
18450           luminance reduction and/or rainbows for cross-color reduction.
18451
18452       lt  Set spatial luma threshold. Lower values increases reduction of
18453           cross-luminance.
18454
18455       tl  Set tolerance for temporal luma. Higher values increases reduction
18456           of cross-luminance.
18457
18458       tc  Set tolerance for chroma temporal variation. Higher values
18459           increases reduction of cross-color.
18460
18461       ct  Set temporal chroma threshold. Lower values increases reduction of
18462           cross-color.
18463
18464   deflate
18465       Apply deflate effect to the video.
18466
18467       This filter replaces the pixel by the local(3x3) average by taking into
18468       account only values lower than the pixel.
18469
18470       It accepts the following options:
18471
18472       threshold0
18473       threshold1
18474       threshold2
18475       threshold3
18476           Limit the maximum change for each plane, default is 65535.  If 0,
18477           plane will remain unchanged.
18478
18479       Commands
18480
18481       This filter supports the all above options as commands.
18482
18483   deflicker
18484       Remove temporal frame luminance variations.
18485
18486       It accepts the following options:
18487
18488       size, s
18489           Set moving-average filter size in frames. Default is 5. Allowed
18490           range is 2 - 129.
18491
18492       mode, m
18493           Set averaging mode to smooth temporal luminance variations.
18494
18495           Available values are:
18496
18497           am  Arithmetic mean
18498
18499           gm  Geometric mean
18500
18501           hm  Harmonic mean
18502
18503           qm  Quadratic mean
18504
18505           cm  Cubic mean
18506
18507           pm  Power mean
18508
18509           median
18510               Median
18511
18512       bypass
18513           Do not actually modify frame. Useful when one only wants metadata.
18514
18515   dejudder
18516       Remove judder produced by partially interlaced telecined content.
18517
18518       Judder can be introduced, for instance, by pullup filter. If the
18519       original source was partially telecined content then the output of
18520       "pullup,dejudder" will have a variable frame rate. May change the
18521       recorded frame rate of the container. Aside from that change, this
18522       filter will not affect constant frame rate video.
18523
18524       The option available in this filter is:
18525
18526       cycle
18527           Specify the length of the window over which the judder repeats.
18528
18529           Accepts any integer greater than 1. Useful values are:
18530
18531           4   If the original was telecined from 24 to 30 fps (Film to NTSC).
18532
18533           5   If the original was telecined from 25 to 30 fps (PAL to NTSC).
18534
18535           20  If a mixture of the two.
18536
18537           The default is 4.
18538
18539   delogo
18540       Suppress a TV station logo by a simple interpolation of the surrounding
18541       pixels. Just set a rectangle covering the logo and watch it disappear
18542       (and sometimes something even uglier appear - your mileage may vary).
18543
18544       It accepts the following parameters:
18545
18546       x
18547       y   Specify the top left corner coordinates of the logo. They must be
18548           specified.
18549
18550       w
18551       h   Specify the width and height of the logo to clear. They must be
18552           specified.
18553
18554       show
18555           When set to 1, a green rectangle is drawn on the screen to simplify
18556           finding the right x, y, w, and h parameters.  The default value is
18557           0.
18558
18559           The rectangle is drawn on the outermost pixels which will be
18560           (partly) replaced with interpolated values. The values of the next
18561           pixels immediately outside this rectangle in each direction will be
18562           used to compute the interpolated pixel values inside the rectangle.
18563
18564       Examples
18565
18566       •   Set a rectangle covering the area with top left corner coordinates
18567           0,0 and size 100x77:
18568
18569                   delogo=x=0:y=0:w=100:h=77
18570
18571   derain
18572       Remove the rain in the input image/video by applying the derain methods
18573       based on convolutional neural networks. Supported models:
18574
18575       •   Recurrent Squeeze-and-Excitation Context Aggregation Net (RESCAN).
18576           See
18577           <http://openaccess.thecvf.com/content_ECCV_2018/papers/Xia_Li_Recurrent_Squeeze-and-Excitation_Context_ECCV_2018_paper.pdf>.
18578
18579       Training as well as model generation scripts are provided in the
18580       repository at <https://github.com/XueweiMeng/derain_filter.git>.
18581
18582       Native model files (.model) can be generated from TensorFlow model
18583       files (.pb) by using tools/python/convert.py
18584
18585       The filter accepts the following options:
18586
18587       filter_type
18588           Specify which filter to use. This option accepts the following
18589           values:
18590
18591           derain
18592               Derain filter. To conduct derain filter, you need to use a
18593               derain model.
18594
18595           dehaze
18596               Dehaze filter. To conduct dehaze filter, you need to use a
18597               dehaze model.
18598
18599           Default value is derain.
18600
18601       dnn_backend
18602           Specify which DNN backend to use for model loading and execution.
18603           This option accepts the following values:
18604
18605           native
18606               Native implementation of DNN loading and execution.
18607
18608           tensorflow
18609               TensorFlow backend. To enable this backend you need to install
18610               the TensorFlow for C library (see
18611               <https://www.tensorflow.org/install/lang_c>) and configure
18612               FFmpeg with "--enable-libtensorflow"
18613
18614           Default value is native.
18615
18616       model
18617           Set path to model file specifying network architecture and its
18618           parameters.  Note that different backends use different file
18619           formats. TensorFlow and native backend can load files for only its
18620           format.
18621
18622       To get full functionality (such as async execution), please use the
18623       dnn_processing filter.
18624
18625   deshake
18626       Attempt to fix small changes in horizontal and/or vertical shift. This
18627       filter helps remove camera shake from hand-holding a camera, bumping a
18628       tripod, moving on a vehicle, etc.
18629
18630       The filter accepts the following options:
18631
18632       x
18633       y
18634       w
18635       h   Specify a rectangular area where to limit the search for motion
18636           vectors.  If desired the search for motion vectors can be limited
18637           to a rectangular area of the frame defined by its top left corner,
18638           width and height. These parameters have the same meaning as the
18639           drawbox filter which can be used to visualise the position of the
18640           bounding box.
18641
18642           This is useful when simultaneous movement of subjects within the
18643           frame might be confused for camera motion by the motion vector
18644           search.
18645
18646           If any or all of x, y, w and h are set to -1 then the full frame is
18647           used. This allows later options to be set without specifying the
18648           bounding box for the motion vector search.
18649
18650           Default - search the whole frame.
18651
18652       rx
18653       ry  Specify the maximum extent of movement in x and y directions in the
18654           range 0-64 pixels. Default 16.
18655
18656       edge
18657           Specify how to generate pixels to fill blanks at the edge of the
18658           frame. Available values are:
18659
18660           blank, 0
18661               Fill zeroes at blank locations
18662
18663           original, 1
18664               Original image at blank locations
18665
18666           clamp, 2
18667               Extruded edge value at blank locations
18668
18669           mirror, 3
18670               Mirrored edge at blank locations
18671
18672           Default value is mirror.
18673
18674       blocksize
18675           Specify the blocksize to use for motion search. Range 4-128 pixels,
18676           default 8.
18677
18678       contrast
18679           Specify the contrast threshold for blocks. Only blocks with more
18680           than the specified contrast (difference between darkest and
18681           lightest pixels) will be considered. Range 1-255, default 125.
18682
18683       search
18684           Specify the search strategy. Available values are:
18685
18686           exhaustive, 0
18687               Set exhaustive search
18688
18689           less, 1
18690               Set less exhaustive search.
18691
18692           Default value is exhaustive.
18693
18694       filename
18695           If set then a detailed log of the motion search is written to the
18696           specified file.
18697
18698   despill
18699       Remove unwanted contamination of foreground colors, caused by reflected
18700       color of greenscreen or bluescreen.
18701
18702       This filter accepts the following options:
18703
18704       type
18705           Set what type of despill to use.
18706
18707       mix Set how spillmap will be generated.
18708
18709       expand
18710           Set how much to get rid of still remaining spill.
18711
18712       red Controls amount of red in spill area.
18713
18714       green
18715           Controls amount of green in spill area.  Should be -1 for
18716           greenscreen.
18717
18718       blue
18719           Controls amount of blue in spill area.  Should be -1 for
18720           bluescreen.
18721
18722       brightness
18723           Controls brightness of spill area, preserving colors.
18724
18725       alpha
18726           Modify alpha from generated spillmap.
18727
18728       Commands
18729
18730       This filter supports the all above options as commands.
18731
18732   detelecine
18733       Apply an exact inverse of the telecine operation. It requires a
18734       predefined pattern specified using the pattern option which must be the
18735       same as that passed to the telecine filter.
18736
18737       This filter accepts the following options:
18738
18739       first_field
18740           top, t
18741               top field first
18742
18743           bottom, b
18744               bottom field first The default value is "top".
18745
18746       pattern
18747           A string of numbers representing the pulldown pattern you wish to
18748           apply.  The default value is 23.
18749
18750       start_frame
18751           A number representing position of the first frame with respect to
18752           the telecine pattern. This is to be used if the stream is cut. The
18753           default value is 0.
18754
18755   dilation
18756       Apply dilation effect to the video.
18757
18758       This filter replaces the pixel by the local(3x3) maximum.
18759
18760       It accepts the following options:
18761
18762       threshold0
18763       threshold1
18764       threshold2
18765       threshold3
18766           Limit the maximum change for each plane, default is 65535.  If 0,
18767           plane will remain unchanged.
18768
18769       coordinates
18770           Flag which specifies the pixel to refer to. Default is 255 i.e. all
18771           eight pixels are used.
18772
18773           Flags to local 3x3 coordinates maps like this:
18774
18775               1 2 3
18776               4   5
18777               6 7 8
18778
18779       Commands
18780
18781       This filter supports the all above options as commands.
18782
18783   displace
18784       Displace pixels as indicated by second and third input stream.
18785
18786       It takes three input streams and outputs one stream, the first input is
18787       the source, and second and third input are displacement maps.
18788
18789       The second input specifies how much to displace pixels along the
18790       x-axis, while the third input specifies how much to displace pixels
18791       along the y-axis.  If one of displacement map streams terminates, last
18792       frame from that displacement map will be used.
18793
18794       Note that once generated, displacements maps can be reused over and
18795       over again.
18796
18797       A description of the accepted options follows.
18798
18799       edge
18800           Set displace behavior for pixels that are out of range.
18801
18802           Available values are:
18803
18804           blank
18805               Missing pixels are replaced by black pixels.
18806
18807           smear
18808               Adjacent pixels will spread out to replace missing pixels.
18809
18810           wrap
18811               Out of range pixels are wrapped so they point to pixels of
18812               other side.
18813
18814           mirror
18815               Out of range pixels will be replaced with mirrored pixels.
18816
18817           Default is smear.
18818
18819       Examples
18820
18821       •   Add ripple effect to rgb input of video size hd720:
18822
18823                   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
18824
18825       •   Add wave effect to rgb input of video size hd720:
18826
18827                   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
18828
18829   dnn_classify
18830       Do classification with deep neural networks based on bounding boxes.
18831
18832       The filter accepts the following options:
18833
18834       dnn_backend
18835           Specify which DNN backend to use for model loading and execution.
18836           This option accepts only openvino now, tensorflow backends will be
18837           added.
18838
18839       model
18840           Set path to model file specifying network architecture and its
18841           parameters.  Note that different backends use different file
18842           formats.
18843
18844       input
18845           Set the input name of the dnn network.
18846
18847       output
18848           Set the output name of the dnn network.
18849
18850       confidence
18851           Set the confidence threshold (default: 0.5).
18852
18853       labels
18854           Set path to label file specifying the mapping between label id and
18855           name.  Each label name is written in one line, tailing spaces and
18856           empty lines are skipped.  The first line is the name of label id 0,
18857           and the second line is the name of label id 1, etc.  The label id
18858           is considered as name if the label file is not provided.
18859
18860       backend_configs
18861           Set the configs to be passed into backend
18862
18863           For tensorflow backend, you can set its configs with sess_config
18864           options, please use tools/python/tf_sess_config.py to get the
18865           configs for your system.
18866
18867   dnn_detect
18868       Do object detection with deep neural networks.
18869
18870       The filter accepts the following options:
18871
18872       dnn_backend
18873           Specify which DNN backend to use for model loading and execution.
18874           This option accepts only openvino now, tensorflow backends will be
18875           added.
18876
18877       model
18878           Set path to model file specifying network architecture and its
18879           parameters.  Note that different backends use different file
18880           formats.
18881
18882       input
18883           Set the input name of the dnn network.
18884
18885       output
18886           Set the output name of the dnn network.
18887
18888       confidence
18889           Set the confidence threshold (default: 0.5).
18890
18891       labels
18892           Set path to label file specifying the mapping between label id and
18893           name.  Each label name is written in one line, tailing spaces and
18894           empty lines are skipped.  The first line is the name of label id 0
18895           (usually it is 'background'), and the second line is the name of
18896           label id 1, etc.  The label id is considered as name if the label
18897           file is not provided.
18898
18899       backend_configs
18900           Set the configs to be passed into backend. To use async execution,
18901           set async (default: set).  Roll back to sync execution if the
18902           backend does not support async.
18903
18904   dnn_processing
18905       Do image processing with deep neural networks. It works together with
18906       another filter which converts the pixel format of the Frame to what the
18907       dnn network requires.
18908
18909       The filter accepts the following options:
18910
18911       dnn_backend
18912           Specify which DNN backend to use for model loading and execution.
18913           This option accepts the following values:
18914
18915           native
18916               Native implementation of DNN loading and execution.
18917
18918           tensorflow
18919               TensorFlow backend. To enable this backend you need to install
18920               the TensorFlow for C library (see
18921               <https://www.tensorflow.org/install/lang_c>) and configure
18922               FFmpeg with "--enable-libtensorflow"
18923
18924           openvino
18925               OpenVINO backend. To enable this backend you need to build and
18926               install the OpenVINO for C library (see
18927               <https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md>)
18928               and configure FFmpeg with "--enable-libopenvino"
18929               (--extra-cflags=-I... --extra-ldflags=-L... might be needed if
18930               the header files and libraries are not installed into system
18931               path)
18932
18933           Default value is native.
18934
18935       model
18936           Set path to model file specifying network architecture and its
18937           parameters.  Note that different backends use different file
18938           formats. TensorFlow, OpenVINO and native backend can load files for
18939           only its format.
18940
18941           Native model file (.model) can be generated from TensorFlow model
18942           file (.pb) by using tools/python/convert.py
18943
18944       input
18945           Set the input name of the dnn network.
18946
18947       output
18948           Set the output name of the dnn network.
18949
18950       backend_configs
18951           Set the configs to be passed into backend. To use async execution,
18952           set async (default: set).  Roll back to sync execution if the
18953           backend does not support async.
18954
18955           For tensorflow backend, you can set its configs with sess_config
18956           options, please use tools/python/tf_sess_config.py to get the
18957           configs of TensorFlow backend for your system.
18958
18959       Examples
18960
18961       •   Remove rain in rgb24 frame with can.pb (see derain filter):
18962
18963                   ./ffmpeg -i rain.jpg -vf format=rgb24,dnn_processing=dnn_backend=tensorflow:model=can.pb:input=x:output=y derain.jpg
18964
18965       •   Halve the pixel value of the frame with format gray32f:
18966
18967                   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
18968
18969       •   Handle the Y channel with srcnn.pb (see sr filter) for frame with
18970           yuv420p (planar YUV formats supported):
18971
18972                   ./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
18973
18974       •   Handle the Y channel with espcn.pb (see sr filter), which changes
18975           frame size, for format yuv420p (planar YUV formats supported),
18976           please use tools/python/tf_sess_config.py to get the configs of
18977           TensorFlow backend for your system.
18978
18979                   ./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
18980
18981   drawbox
18982       Draw a colored box on the input image.
18983
18984       It accepts the following parameters:
18985
18986       x
18987       y   The expressions which specify the top left corner coordinates of
18988           the box. It defaults to 0.
18989
18990       width, w
18991       height, h
18992           The expressions which specify the width and height of the box; if 0
18993           they are interpreted as the input width and height. It defaults to
18994           0.
18995
18996       color, c
18997           Specify the color of the box to write. For the general syntax of
18998           this option, check the "Color" section in the ffmpeg-utils manual.
18999           If the special value "invert" is used, the box edge color is the
19000           same as the video with inverted luma.
19001
19002       thickness, t
19003           The expression which sets the thickness of the box edge.  A value
19004           of "fill" will create a filled box. Default value is 3.
19005
19006           See below for the list of accepted constants.
19007
19008       replace
19009           Applicable if the input has alpha. With value 1, the pixels of the
19010           painted box will overwrite the video's color and alpha pixels.
19011           Default is 0, which composites the box onto the input, leaving the
19012           video's alpha intact.
19013
19014       The parameters for x, y, w and h and t are expressions containing the
19015       following constants:
19016
19017       dar The input display aspect ratio, it is the same as (w / h) * sar.
19018
19019       hsub
19020       vsub
19021           horizontal and vertical chroma subsample values. For example for
19022           the pixel format "yuv422p" hsub is 2 and vsub is 1.
19023
19024       in_h, ih
19025       in_w, iw
19026           The input width and height.
19027
19028       sar The input sample aspect ratio.
19029
19030       x
19031       y   The x and y offset coordinates where the box is drawn.
19032
19033       w
19034       h   The width and height of the drawn box.
19035
19036       box_source
19037           Box source can be set as side_data_detection_bboxes if you want to
19038           use box data in detection bboxes of side data.
19039
19040           If box_source is set, the x, y, width and height will be ignored
19041           and still use box data in detection bboxes of side data. So please
19042           do not use this parameter if you were not sure about the box
19043           source.
19044
19045       t   The thickness of the drawn box.
19046
19047           These constants allow the x, y, w, h and t expressions to refer to
19048           each other, so you may for example specify "y=x/dar" or "h=w/dar".
19049
19050       Examples
19051
19052       •   Draw a black box around the edge of the input image:
19053
19054                   drawbox
19055
19056       •   Draw a box with color red and an opacity of 50%:
19057
19058                   drawbox=10:20:200:60:red@0.5
19059
19060           The previous example can be specified as:
19061
19062                   drawbox=x=10:y=20:w=200:h=60:color=red@0.5
19063
19064       •   Fill the box with pink color:
19065
19066                   drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill
19067
19068       •   Draw a 2-pixel red 2.40:1 mask:
19069
19070                   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
19071
19072       Commands
19073
19074       This filter supports same commands as options.  The command accepts the
19075       same syntax of the corresponding option.
19076
19077       If the specified expression is not valid, it is kept at its current
19078       value.
19079
19080   drawgraph
19081       Draw a graph using input video metadata.
19082
19083       It accepts the following parameters:
19084
19085       m1  Set 1st frame metadata key from which metadata values will be used
19086           to draw a graph.
19087
19088       fg1 Set 1st foreground color expression.
19089
19090       m2  Set 2nd frame metadata key from which metadata values will be used
19091           to draw a graph.
19092
19093       fg2 Set 2nd foreground color expression.
19094
19095       m3  Set 3rd frame metadata key from which metadata values will be used
19096           to draw a graph.
19097
19098       fg3 Set 3rd foreground color expression.
19099
19100       m4  Set 4th frame metadata key from which metadata values will be used
19101           to draw a graph.
19102
19103       fg4 Set 4th foreground color expression.
19104
19105       min Set minimal value of metadata value.
19106
19107       max Set maximal value of metadata value.
19108
19109       bg  Set graph background color. Default is white.
19110
19111       mode
19112           Set graph mode.
19113
19114           Available values for mode is:
19115
19116           bar
19117           dot
19118           line
19119
19120           Default is "line".
19121
19122       slide
19123           Set slide mode.
19124
19125           Available values for slide is:
19126
19127           frame
19128               Draw new frame when right border is reached.
19129
19130           replace
19131               Replace old columns with new ones.
19132
19133           scroll
19134               Scroll from right to left.
19135
19136           rscroll
19137               Scroll from left to right.
19138
19139           picture
19140               Draw single picture.
19141
19142           Default is "frame".
19143
19144       size
19145           Set size of graph video. For the syntax of this option, check the
19146           "Video size" section in the ffmpeg-utils manual.  The default value
19147           is "900x256".
19148
19149       rate, r
19150           Set the output frame rate. Default value is 25.
19151
19152           The foreground color expressions can use the following variables:
19153
19154           MIN Minimal value of metadata value.
19155
19156           MAX Maximal value of metadata value.
19157
19158           VAL Current metadata key value.
19159
19160           The color is defined as 0xAABBGGRR.
19161
19162       Example using metadata from signalstats filter:
19163
19164               signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255
19165
19166       Example using metadata from ebur128 filter:
19167
19168               ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5
19169
19170   drawgrid
19171       Draw a grid on the input image.
19172
19173       It accepts the following parameters:
19174
19175       x
19176       y   The expressions which specify the coordinates of some point of grid
19177           intersection (meant to configure offset). Both default to 0.
19178
19179       width, w
19180       height, h
19181           The expressions which specify the width and height of the grid
19182           cell, if 0 they are interpreted as the input width and height,
19183           respectively, minus "thickness", so image gets framed. Default to
19184           0.
19185
19186       color, c
19187           Specify the color of the grid. For the general syntax of this
19188           option, check the "Color" section in the ffmpeg-utils manual. If
19189           the special value "invert" is used, the grid color is the same as
19190           the video with inverted luma.
19191
19192       thickness, t
19193           The expression which sets the thickness of the grid line. Default
19194           value is 1.
19195
19196           See below for the list of accepted constants.
19197
19198       replace
19199           Applicable if the input has alpha. With 1 the pixels of the painted
19200           grid will overwrite the video's color and alpha pixels.  Default is
19201           0, which composites the grid onto the input, leaving the video's
19202           alpha intact.
19203
19204       The parameters for x, y, w and h and t are expressions containing the
19205       following constants:
19206
19207       dar The input display aspect ratio, it is the same as (w / h) * sar.
19208
19209       hsub
19210       vsub
19211           horizontal and vertical chroma subsample values. For example for
19212           the pixel format "yuv422p" hsub is 2 and vsub is 1.
19213
19214       in_h, ih
19215       in_w, iw
19216           The input grid cell width and height.
19217
19218       sar The input sample aspect ratio.
19219
19220       x
19221       y   The x and y coordinates of some point of grid intersection (meant
19222           to configure offset).
19223
19224       w
19225       h   The width and height of the drawn cell.
19226
19227       t   The thickness of the drawn cell.
19228
19229           These constants allow the x, y, w, h and t expressions to refer to
19230           each other, so you may for example specify "y=x/dar" or "h=w/dar".
19231
19232       Examples
19233
19234       •   Draw a grid with cell 100x100 pixels, thickness 2 pixels, with
19235           color red and an opacity of 50%:
19236
19237                   drawgrid=width=100:height=100:thickness=2:color=red@0.5
19238
19239       •   Draw a white 3x3 grid with an opacity of 50%:
19240
19241                   drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
19242
19243       Commands
19244
19245       This filter supports same commands as options.  The command accepts the
19246       same syntax of the corresponding option.
19247
19248       If the specified expression is not valid, it is kept at its current
19249       value.
19250
19251   drawtext
19252       Draw a text string or text from a specified file on top of a video,
19253       using the libfreetype library.
19254
19255       To enable compilation of this filter, you need to configure FFmpeg with
19256       "--enable-libfreetype".  To enable default font fallback and the font
19257       option you need to configure FFmpeg with "--enable-libfontconfig".  To
19258       enable the text_shaping option, you need to configure FFmpeg with
19259       "--enable-libfribidi".
19260
19261       Syntax
19262
19263       It accepts the following parameters:
19264
19265       box Used to draw a box around text using the background color.  The
19266           value must be either 1 (enable) or 0 (disable).  The default value
19267           of box is 0.
19268
19269       boxborderw
19270           Set the width of the border to be drawn around the box using
19271           boxcolor.  The default value of boxborderw is 0.
19272
19273       boxcolor
19274           The color to be used for drawing box around text. For the syntax of
19275           this option, check the "Color" section in the ffmpeg-utils manual.
19276
19277           The default value of boxcolor is "white".
19278
19279       line_spacing
19280           Set the line spacing in pixels of the border to be drawn around the
19281           box using box.  The default value of line_spacing is 0.
19282
19283       borderw
19284           Set the width of the border to be drawn around the text using
19285           bordercolor.  The default value of borderw is 0.
19286
19287       bordercolor
19288           Set the color to be used for drawing border around text. For the
19289           syntax of this option, check the "Color" section in the ffmpeg-
19290           utils manual.
19291
19292           The default value of bordercolor is "black".
19293
19294       expansion
19295           Select how the text is expanded. Can be either "none", "strftime"
19296           (deprecated) or "normal" (default). See the drawtext_expansion,
19297           Text expansion section below for details.
19298
19299       basetime
19300           Set a start time for the count. Value is in microseconds. Only
19301           applied in the deprecated strftime expansion mode. To emulate in
19302           normal expansion mode use the "pts" function, supplying the start
19303           time (in seconds) as the second argument.
19304
19305       fix_bounds
19306           If true, check and fix text coords to avoid clipping.
19307
19308       fontcolor
19309           The color to be used for drawing fonts. For the syntax of this
19310           option, check the "Color" section in the ffmpeg-utils manual.
19311
19312           The default value of fontcolor is "black".
19313
19314       fontcolor_expr
19315           String which is expanded the same way as text to obtain dynamic
19316           fontcolor value. By default this option has empty value and is not
19317           processed. When this option is set, it overrides fontcolor option.
19318
19319       font
19320           The font family to be used for drawing text. By default Sans.
19321
19322       fontfile
19323           The font file to be used for drawing text. The path must be
19324           included.  This parameter is mandatory if the fontconfig support is
19325           disabled.
19326
19327       alpha
19328           Draw the text applying alpha blending. The value can be a number
19329           between 0.0 and 1.0.  The expression accepts the same variables x,
19330           y as well.  The default value is 1.  Please see fontcolor_expr.
19331
19332       fontsize
19333           The font size to be used for drawing text.  The default value of
19334           fontsize is 16.
19335
19336       text_shaping
19337           If set to 1, attempt to shape the text (for example, reverse the
19338           order of right-to-left text and join Arabic characters) before
19339           drawing it.  Otherwise, just draw the text exactly as given.  By
19340           default 1 (if supported).
19341
19342       ft_load_flags
19343           The flags to be used for loading the fonts.
19344
19345           The flags map the corresponding flags supported by libfreetype, and
19346           are a combination of the following values:
19347
19348           default
19349           no_scale
19350           no_hinting
19351           render
19352           no_bitmap
19353           vertical_layout
19354           force_autohint
19355           crop_bitmap
19356           pedantic
19357           ignore_global_advance_width
19358           no_recurse
19359           ignore_transform
19360           monochrome
19361           linear_design
19362           no_autohint
19363
19364           Default value is "default".
19365
19366           For more information consult the documentation for the FT_LOAD_*
19367           libfreetype flags.
19368
19369       shadowcolor
19370           The color to be used for drawing a shadow behind the drawn text.
19371           For the syntax of this option, check the "Color" section in the
19372           ffmpeg-utils manual.
19373
19374           The default value of shadowcolor is "black".
19375
19376       shadowx
19377       shadowy
19378           The x and y offsets for the text shadow position with respect to
19379           the position of the text. They can be either positive or negative
19380           values. The default value for both is "0".
19381
19382       start_number
19383           The starting frame number for the n/frame_num variable. The default
19384           value is "0".
19385
19386       tabsize
19387           The size in number of spaces to use for rendering the tab.  Default
19388           value is 4.
19389
19390       timecode
19391           Set the initial timecode representation in "hh:mm:ss[:;.]ff"
19392           format. It can be used with or without text parameter.
19393           timecode_rate option must be specified.
19394
19395       timecode_rate, rate, r
19396           Set the timecode frame rate (timecode only). Value will be rounded
19397           to nearest integer. Minimum value is "1".  Drop-frame timecode is
19398           supported for frame rates 30 & 60.
19399
19400       tc24hmax
19401           If set to 1, the output of the timecode option will wrap around at
19402           24 hours.  Default is 0 (disabled).
19403
19404       text
19405           The text string to be drawn. The text must be a sequence of UTF-8
19406           encoded characters.  This parameter is mandatory if no file is
19407           specified with the parameter textfile.
19408
19409       textfile
19410           A text file containing text to be drawn. The text must be a
19411           sequence of UTF-8 encoded characters.
19412
19413           This parameter is mandatory if no text string is specified with the
19414           parameter text.
19415
19416           If both text and textfile are specified, an error is thrown.
19417
19418       text_source
19419           Text source should be set as side_data_detection_bboxes if you want
19420           to use text data in detection bboxes of side data.
19421
19422           If text source is set, text and textfile will be ignored and still
19423           use text data in detection bboxes of side data. So please do not
19424           use this parameter if you are not sure about the text source.
19425
19426       reload
19427           The textfile will be reloaded at specified frame interval.  Be sure
19428           to update textfile atomically, or it may be read partially, or even
19429           fail.  Range is 0 to INT_MAX. Default is 0.
19430
19431       x
19432       y   The expressions which specify the offsets where text will be drawn
19433           within the video frame. They are relative to the top/left border of
19434           the output image.
19435
19436           The default value of x and y is "0".
19437
19438           See below for the list of accepted constants and functions.
19439
19440       The parameters for x and y are expressions containing the following
19441       constants and functions:
19442
19443       dar input display aspect ratio, it is the same as (w / h) * sar
19444
19445       hsub
19446       vsub
19447           horizontal and vertical chroma subsample values. For example for
19448           the pixel format "yuv422p" hsub is 2 and vsub is 1.
19449
19450       line_h, lh
19451           the height of each text line
19452
19453       main_h, h, H
19454           the input height
19455
19456       main_w, w, W
19457           the input width
19458
19459       max_glyph_a, ascent
19460           the maximum distance from the baseline to the highest/upper grid
19461           coordinate used to place a glyph outline point, for all the
19462           rendered glyphs.  It is a positive value, due to the grid's
19463           orientation with the Y axis upwards.
19464
19465       max_glyph_d, descent
19466           the maximum distance from the baseline to the lowest grid
19467           coordinate used to place a glyph outline point, for all the
19468           rendered glyphs.  This is a negative value, due to the grid's
19469           orientation, with the Y axis upwards.
19470
19471       max_glyph_h
19472           maximum glyph height, that is the maximum height for all the glyphs
19473           contained in the rendered text, it is equivalent to ascent -
19474           descent.
19475
19476       max_glyph_w
19477           maximum glyph width, that is the maximum width for all the glyphs
19478           contained in the rendered text
19479
19480       n   the number of input frame, starting from 0
19481
19482       rand(min, max)
19483           return a random number included between min and max
19484
19485       sar The input sample aspect ratio.
19486
19487       t   timestamp expressed in seconds, NAN if the input timestamp is
19488           unknown
19489
19490       text_h, th
19491           the height of the rendered text
19492
19493       text_w, tw
19494           the width of the rendered text
19495
19496       x
19497       y   the x and y offset coordinates where the text is drawn.
19498
19499           These parameters allow the x and y expressions to refer to each
19500           other, so you can for example specify "y=x/dar".
19501
19502       pict_type
19503           A one character description of the current frame's picture type.
19504
19505       pkt_pos
19506           The current packet's position in the input file or stream (in
19507           bytes, from the start of the input). A value of -1 indicates this
19508           info is not available.
19509
19510       pkt_duration
19511           The current packet's duration, in seconds.
19512
19513       pkt_size
19514           The current packet's size (in bytes).
19515
19516       Text expansion
19517
19518       If expansion is set to "strftime", the filter recognizes strftime()
19519       sequences in the provided text and expands them accordingly. Check the
19520       documentation of strftime(). This feature is deprecated.
19521
19522       If expansion is set to "none", the text is printed verbatim.
19523
19524       If expansion is set to "normal" (which is the default), the following
19525       expansion mechanism is used.
19526
19527       The backslash character \, followed by any character, always expands to
19528       the second character.
19529
19530       Sequences of the form "%{...}" are expanded. The text between the
19531       braces is a function name, possibly followed by arguments separated by
19532       ':'.  If the arguments contain special characters or delimiters (':' or
19533       '}'), they should be escaped.
19534
19535       Note that they probably must also be escaped as the value for the text
19536       option in the filter argument string and as the filter argument in the
19537       filtergraph description, and possibly also for the shell, that makes up
19538       to four levels of escaping; using a text file avoids these problems.
19539
19540       The following functions are available:
19541
19542       expr, e
19543           The expression evaluation result.
19544
19545           It must take one argument specifying the expression to be
19546           evaluated, which accepts the same constants and functions as the x
19547           and y values. Note that not all constants should be used, for
19548           example the text size is not known when evaluating the expression,
19549           so the constants text_w and text_h will have an undefined value.
19550
19551       expr_int_format, eif
19552           Evaluate the expression's value and output as formatted integer.
19553
19554           The first argument is the expression to be evaluated, just as for
19555           the expr function.  The second argument specifies the output
19556           format. Allowed values are x, X, d and u. They are treated exactly
19557           as in the "printf" function.  The third parameter is optional and
19558           sets the number of positions taken by the output.  It can be used
19559           to add padding with zeros from the left.
19560
19561       gmtime
19562           The time at which the filter is running, expressed in UTC.  It can
19563           accept an argument: a strftime() format string.  The format string
19564           is extended to support the variable %[1-6]N which prints fractions
19565           of the second with optionally specified number of digits.
19566
19567       localtime
19568           The time at which the filter is running, expressed in the local
19569           time zone.  It can accept an argument: a strftime() format string.
19570           The format string is extended to support the variable %[1-6]N which
19571           prints fractions of the second with optionally specified number of
19572           digits.
19573
19574       metadata
19575           Frame metadata. Takes one or two arguments.
19576
19577           The first argument is mandatory and specifies the metadata key.
19578
19579           The second argument is optional and specifies a default value, used
19580           when the metadata key is not found or empty.
19581
19582           Available metadata can be identified by inspecting entries starting
19583           with TAG included within each frame section printed by running
19584           "ffprobe -show_frames".
19585
19586           String metadata generated in filters leading to the drawtext filter
19587           are also available.
19588
19589       n, frame_num
19590           The frame number, starting from 0.
19591
19592       pict_type
19593           A one character description of the current picture type.
19594
19595       pts The timestamp of the current frame.  It can take up to three
19596           arguments.
19597
19598           The first argument is the format of the timestamp; it defaults to
19599           "flt" for seconds as a decimal number with microsecond accuracy;
19600           "hms" stands for a formatted [-]HH:MM:SS.mmm timestamp with
19601           millisecond accuracy.  "gmtime" stands for the timestamp of the
19602           frame formatted as UTC time; "localtime" stands for the timestamp
19603           of the frame formatted as local time zone time.
19604
19605           The second argument is an offset added to the timestamp.
19606
19607           If the format is set to "hms", a third argument "24HH" may be
19608           supplied to present the hour part of the formatted timestamp in 24h
19609           format (00-23).
19610
19611           If the format is set to "localtime" or "gmtime", a third argument
19612           may be supplied: a strftime() format string.  By default, YYYY-MM-
19613           DD HH:MM:SS format will be used.
19614
19615       Commands
19616
19617       This filter supports altering parameters via commands:
19618
19619       reinit
19620           Alter existing filter parameters.
19621
19622           Syntax for the argument is the same as for filter invocation, e.g.
19623
19624                   fontsize=56:fontcolor=green:text='Hello World'
19625
19626           Full filter invocation with sendcmd would look like this:
19627
19628                   sendcmd=c='56.0 drawtext reinit fontsize=56\:fontcolor=green\:text=Hello\\ World'
19629
19630       If the entire argument can't be parsed or applied as valid values then
19631       the filter will continue with its existing parameters.
19632
19633       Examples
19634
19635       •   Draw "Test Text" with font FreeSerif, using the default values for
19636           the optional parameters.
19637
19638                   drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
19639
19640       •   Draw 'Test Text' with font FreeSerif of size 24 at position x=100
19641           and y=50 (counting from the top-left corner of the screen), text is
19642           yellow with a red box around it. Both the text and the box have an
19643           opacity of 20%.
19644
19645                   drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\
19646                             x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
19647
19648           Note that the double quotes are not necessary if spaces are not
19649           used within the parameter list.
19650
19651       •   Show the text at the center of the video frame:
19652
19653                   drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2"
19654
19655       •   Show the text at a random position, switching to a new position
19656           every 30 seconds:
19657
19658                   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)"
19659
19660       •   Show a text line sliding from right to left in the last row of the
19661           video frame. The file LONG_LINE is assumed to contain a single line
19662           with no newlines.
19663
19664                   drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
19665
19666       •   Show the content of file CREDITS off the bottom of the frame and
19667           scroll up.
19668
19669                   drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
19670
19671       •   Draw a single green letter "g", at the center of the input video.
19672           The glyph baseline is placed at half screen height.
19673
19674                   drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
19675
19676       •   Show text for 1 second every 3 seconds:
19677
19678                   drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
19679
19680       •   Use fontconfig to set the font. Note that the colons need to be
19681           escaped.
19682
19683                   drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
19684
19685       •   Draw "Test Text" with font size dependent on height of the video.
19686
19687                   drawtext="text='Test Text': fontsize=h/30: x=(w-text_w)/2: y=(h-text_h*2)"
19688
19689       •   Print the date of a real-time encoding (see strftime(3)):
19690
19691                   drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}'
19692
19693       •   Show text fading in and out (appearing/disappearing):
19694
19695                   #!/bin/sh
19696                   DS=1.0 # display start
19697                   DE=10.0 # display end
19698                   FID=1.5 # fade in duration
19699                   FOD=5 # fade out duration
19700                   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 }"
19701
19702       •   Horizontally align multiple separate texts. Note that max_glyph_a
19703           and the fontsize value are included in the y offset.
19704
19705                   drawtext=fontfile=FreeSans.ttf:text=DOG:fontsize=24:x=10:y=20+24-max_glyph_a,
19706                   drawtext=fontfile=FreeSans.ttf:text=cow:fontsize=24:x=80:y=20+24-max_glyph_a
19707
19708       •   Plot special lavf.image2dec.source_basename metadata onto each
19709           frame if such metadata exists. Otherwise, plot the string "NA".
19710           Note that image2 demuxer must have option -export_path_metadata 1
19711           for the special metadata fields to be available for filters.
19712
19713                   drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=10:y=10"
19714
19715       For more information about libfreetype, check:
19716       <http://www.freetype.org/>.
19717
19718       For more information about fontconfig, check:
19719       <http://freedesktop.org/software/fontconfig/fontconfig-user.html>.
19720
19721       For more information about libfribidi, check: <http://fribidi.org/>.
19722
19723   edgedetect
19724       Detect and draw edges. The filter uses the Canny Edge Detection
19725       algorithm.
19726
19727       The filter accepts the following options:
19728
19729       low
19730       high
19731           Set low and high threshold values used by the Canny thresholding
19732           algorithm.
19733
19734           The high threshold selects the "strong" edge pixels, which are then
19735           connected through 8-connectivity with the "weak" edge pixels
19736           selected by the low threshold.
19737
19738           low and high threshold values must be chosen in the range [0,1],
19739           and low should be lesser or equal to high.
19740
19741           Default value for low is "20/255", and default value for high is
19742           "50/255".
19743
19744       mode
19745           Define the drawing mode.
19746
19747           wires
19748               Draw white/gray wires on black background.
19749
19750           colormix
19751               Mix the colors to create a paint/cartoon effect.
19752
19753           canny
19754               Apply Canny edge detector on all selected planes.
19755
19756           Default value is wires.
19757
19758       planes
19759           Select planes for filtering. By default all available planes are
19760           filtered.
19761
19762       Examples
19763
19764       •   Standard edge detection with custom values for the hysteresis
19765           thresholding:
19766
19767                   edgedetect=low=0.1:high=0.4
19768
19769       •   Painting effect without thresholding:
19770
19771                   edgedetect=mode=colormix:high=0
19772
19773   elbg
19774       Apply a posterize effect using the ELBG (Enhanced LBG) algorithm.
19775
19776       For each input image, the filter will compute the optimal mapping from
19777       the input to the output given the codebook length, that is the number
19778       of distinct output colors.
19779
19780       This filter accepts the following options.
19781
19782       codebook_length, l
19783           Set codebook length. The value must be a positive integer, and
19784           represents the number of distinct output colors. Default value is
19785           256.
19786
19787       nb_steps, n
19788           Set the maximum number of iterations to apply for computing the
19789           optimal mapping. The higher the value the better the result and the
19790           higher the computation time. Default value is 1.
19791
19792       seed, s
19793           Set a random seed, must be an integer included between 0 and
19794           UINT32_MAX. If not specified, or if explicitly set to -1, the
19795           filter will try to use a good random seed on a best effort basis.
19796
19797       pal8
19798           Set pal8 output pixel format. This option does not work with
19799           codebook length greater than 256. Default is disabled.
19800
19801       use_alpha
19802           Include alpha values in the quantization calculation. Allows
19803           creating palettized output images (e.g. PNG8) with multiple alpha
19804           smooth blending.
19805
19806   entropy
19807       Measure graylevel entropy in histogram of color channels of video
19808       frames.
19809
19810       It accepts the following parameters:
19811
19812       mode
19813           Can be either normal or diff. Default is normal.
19814
19815           diff mode measures entropy of histogram delta values, absolute
19816           differences between neighbour histogram values.
19817
19818   epx
19819       Apply the EPX magnification filter which is designed for pixel art.
19820
19821       It accepts the following option:
19822
19823       n   Set the scaling dimension: 2 for "2xEPX", 3 for "3xEPX".  Default
19824           is 3.
19825
19826   eq
19827       Set brightness, contrast, saturation and approximate gamma adjustment.
19828
19829       The filter accepts the following options:
19830
19831       contrast
19832           Set the contrast expression. The value must be a float value in
19833           range "-1000.0" to 1000.0. The default value is "1".
19834
19835       brightness
19836           Set the brightness expression. The value must be a float value in
19837           range "-1.0" to 1.0. The default value is "0".
19838
19839       saturation
19840           Set the saturation expression. The value must be a float in range
19841           0.0 to 3.0. The default value is "1".
19842
19843       gamma
19844           Set the gamma expression. The value must be a float in range 0.1 to
19845           10.0.  The default value is "1".
19846
19847       gamma_r
19848           Set the gamma expression for red. The value must be a float in
19849           range 0.1 to 10.0. The default value is "1".
19850
19851       gamma_g
19852           Set the gamma expression for green. The value must be a float in
19853           range 0.1 to 10.0. The default value is "1".
19854
19855       gamma_b
19856           Set the gamma expression for blue. The value must be a float in
19857           range 0.1 to 10.0. The default value is "1".
19858
19859       gamma_weight
19860           Set the gamma weight expression. It can be used to reduce the
19861           effect of a high gamma value on bright image areas, e.g. keep them
19862           from getting overamplified and just plain white. The value must be
19863           a float in range 0.0 to 1.0. A value of 0.0 turns the gamma
19864           correction all the way down while 1.0 leaves it at its full
19865           strength. Default is "1".
19866
19867       eval
19868           Set when the expressions for brightness, contrast, saturation and
19869           gamma expressions are evaluated.
19870
19871           It accepts the following values:
19872
19873           init
19874               only evaluate expressions once during the filter initialization
19875               or when a command is processed
19876
19877           frame
19878               evaluate expressions for each incoming frame
19879
19880           Default value is init.
19881
19882       The expressions accept the following parameters:
19883
19884       n   frame count of the input frame starting from 0
19885
19886       pos byte position of the corresponding packet in the input file, NAN if
19887           unspecified
19888
19889       r   frame rate of the input video, NAN if the input frame rate is
19890           unknown
19891
19892       t   timestamp expressed in seconds, NAN if the input timestamp is
19893           unknown
19894
19895       Commands
19896
19897       The filter supports the following commands:
19898
19899       contrast
19900           Set the contrast expression.
19901
19902       brightness
19903           Set the brightness expression.
19904
19905       saturation
19906           Set the saturation expression.
19907
19908       gamma
19909           Set the gamma expression.
19910
19911       gamma_r
19912           Set the gamma_r expression.
19913
19914       gamma_g
19915           Set gamma_g expression.
19916
19917       gamma_b
19918           Set gamma_b expression.
19919
19920       gamma_weight
19921           Set gamma_weight expression.
19922
19923           The command accepts the same syntax of the corresponding option.
19924
19925           If the specified expression is not valid, it is kept at its current
19926           value.
19927
19928   erosion
19929       Apply erosion effect to the video.
19930
19931       This filter replaces the pixel by the local(3x3) minimum.
19932
19933       It accepts the following options:
19934
19935       threshold0
19936       threshold1
19937       threshold2
19938       threshold3
19939           Limit the maximum change for each plane, default is 65535.  If 0,
19940           plane will remain unchanged.
19941
19942       coordinates
19943           Flag which specifies the pixel to refer to. Default is 255 i.e. all
19944           eight pixels are used.
19945
19946           Flags to local 3x3 coordinates maps like this:
19947
19948               1 2 3
19949               4   5
19950               6 7 8
19951
19952       Commands
19953
19954       This filter supports the all above options as commands.
19955
19956   estdif
19957       Deinterlace the input video ("estdif" stands for "Edge Slope Tracing
19958       Deinterlacing Filter").
19959
19960       Spatial only filter that uses edge slope tracing algorithm to
19961       interpolate missing lines.  It accepts the following parameters:
19962
19963       mode
19964           The interlacing mode to adopt. It accepts one of the following
19965           values:
19966
19967           frame
19968               Output one frame for each frame.
19969
19970           field
19971               Output one frame for each field.
19972
19973           The default value is "field".
19974
19975       parity
19976           The picture field parity assumed for the input interlaced video. It
19977           accepts one of the following values:
19978
19979           tff Assume the top field is first.
19980
19981           bff Assume the bottom field is first.
19982
19983           auto
19984               Enable automatic detection of field parity.
19985
19986           The default value is "auto".  If the interlacing is unknown or the
19987           decoder does not export this information, top field first will be
19988           assumed.
19989
19990       deint
19991           Specify which frames to deinterlace. Accepts one of the following
19992           values:
19993
19994           all Deinterlace all frames.
19995
19996           interlaced
19997               Only deinterlace frames marked as interlaced.
19998
19999           The default value is "all".
20000
20001       rslope
20002           Specify the search radius for edge slope tracing. Default value is
20003           1.  Allowed range is from 1 to 15.
20004
20005       redge
20006           Specify the search radius for best edge matching. Default value is
20007           2.  Allowed range is from 0 to 15.
20008
20009       ecost
20010           Specify the edge cost for edge matching. Default value is 1.0.
20011           Allowed range is from 0 to 9.
20012
20013       mcost
20014           Specify the middle cost for edge matching. Default value is 0.5.
20015           Allowed range is from 0 to 1.
20016
20017       dcost
20018           Specify the distance cost for edge matching. Default value is 0.5.
20019           Allowed range is from 0 to 1.
20020
20021       interp
20022           Specify the interpolation used. Default is 4-point interpolation.
20023           It accepts one of the following values:
20024
20025           2p  Two-point interpolation.
20026
20027           4p  Four-point interpolation.
20028
20029           6p  Six-point interpolation.
20030
20031       Commands
20032
20033       This filter supports same commands as options.
20034
20035   exposure
20036       Adjust exposure of the video stream.
20037
20038       The filter accepts the following options:
20039
20040       exposure
20041           Set the exposure correction in EV. Allowed range is from -3.0 to
20042           3.0 EV Default value is 0 EV.
20043
20044       black
20045           Set the black level correction. Allowed range is from -1.0 to 1.0.
20046           Default value is 0.
20047
20048       Commands
20049
20050       This filter supports same commands as options.
20051
20052   extractplanes
20053       Extract color channel components from input video stream into separate
20054       grayscale video streams.
20055
20056       The filter accepts the following option:
20057
20058       planes
20059           Set plane(s) to extract.
20060
20061           Available values for planes are:
20062
20063           y
20064           u
20065           v
20066           a
20067           r
20068           g
20069           b
20070
20071           Choosing planes not available in the input will result in an error.
20072           That means you cannot select "r", "g", "b" planes with "y", "u",
20073           "v" planes at same time.
20074
20075       Examples
20076
20077       •   Extract luma, u and v color channel component from input video
20078           frame into 3 grayscale outputs:
20079
20080                   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
20081
20082   fade
20083       Apply a fade-in/out effect to the input video.
20084
20085       It accepts the following parameters:
20086
20087       type, t
20088           The effect type can be either "in" for a fade-in, or "out" for a
20089           fade-out effect.  Default is "in".
20090
20091       start_frame, s
20092           Specify the number of the frame to start applying the fade effect
20093           at. Default is 0.
20094
20095       nb_frames, n
20096           The number of frames that the fade effect lasts. At the end of the
20097           fade-in effect, the output video will have the same intensity as
20098           the input video.  At the end of the fade-out transition, the output
20099           video will be filled with the selected color.  Default is 25.
20100
20101       alpha
20102           If set to 1, fade only alpha channel, if one exists on the input.
20103           Default value is 0.
20104
20105       start_time, st
20106           Specify the timestamp (in seconds) of the frame to start to apply
20107           the fade effect. If both start_frame and start_time are specified,
20108           the fade will start at whichever comes last.  Default is 0.
20109
20110       duration, d
20111           The number of seconds for which the fade effect has to last. At the
20112           end of the fade-in effect the output video will have the same
20113           intensity as the input video, at the end of the fade-out transition
20114           the output video will be filled with the selected color.  If both
20115           duration and nb_frames are specified, duration is used. Default is
20116           0 (nb_frames is used by default).
20117
20118       color, c
20119           Specify the color of the fade. Default is "black".
20120
20121       Examples
20122
20123       •   Fade in the first 30 frames of video:
20124
20125                   fade=in:0:30
20126
20127           The command above is equivalent to:
20128
20129                   fade=t=in:s=0:n=30
20130
20131       •   Fade out the last 45 frames of a 200-frame video:
20132
20133                   fade=out:155:45
20134                   fade=type=out:start_frame=155:nb_frames=45
20135
20136       •   Fade in the first 25 frames and fade out the last 25 frames of a
20137           1000-frame video:
20138
20139                   fade=in:0:25, fade=out:975:25
20140
20141       •   Make the first 5 frames yellow, then fade in from frame 5-24:
20142
20143                   fade=in:5:20:color=yellow
20144
20145       •   Fade in alpha over first 25 frames of video:
20146
20147                   fade=in:0:25:alpha=1
20148
20149       •   Make the first 5.5 seconds black, then fade in for 0.5 seconds:
20150
20151                   fade=t=in:st=5.5:d=0.5
20152
20153   feedback
20154       Apply feedback video filter.
20155
20156       This filter pass cropped input frames to 2nd output.  From there it can
20157       be filtered with other video filters.  After filter receives frame from
20158       2nd input, that frame is combined on top of original frame from 1st
20159       input and passed to 1st output.
20160
20161       The typical usage is filter only part of frame.
20162
20163       The filter accepts the following options:
20164
20165       x
20166       y   Set the top left crop position.
20167
20168       w
20169       h   Set the crop size.
20170
20171       Examples
20172
20173       •   Blur only top left rectangular part of video frame size 100x100
20174           with gblur filter.
20175
20176                   [in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]gblur=8[blurin]
20177
20178       •   Draw black box on top left part of video frame of size 100x100 with
20179           drawbox filter.
20180
20181                   [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]
20182
20183   fftdnoiz
20184       Denoise frames using 3D FFT (frequency domain filtering).
20185
20186       The filter accepts the following options:
20187
20188       sigma
20189           Set the noise sigma constant. This sets denoising strength.
20190           Default value is 1. Allowed range is from 0 to 30.  Using very high
20191           sigma with low overlap may give blocking artifacts.
20192
20193       amount
20194           Set amount of denoising. By default all detected noise is reduced.
20195           Default value is 1. Allowed range is from 0 to 1.
20196
20197       block
20198           Set size of block in pixels, Default is 32, can be 8 to 256.
20199
20200       overlap
20201           Set block overlap. Default is 0.5. Allowed range is from 0.2 to
20202           0.8.
20203
20204       method
20205           Set denoising method. Default is "wiener", can also be "hard".
20206
20207       prev
20208           Set number of previous frames to use for denoising. By default is
20209           set to 0.
20210
20211       next
20212           Set number of next frames to to use for denoising. By default is
20213           set to 0.
20214
20215       planes
20216           Set planes which will be filtered, by default are all available
20217           filtered except alpha.
20218
20219   fftfilt
20220       Apply arbitrary expressions to samples in frequency domain
20221
20222       dc_Y
20223           Adjust the dc value (gain) of the luma plane of the image. The
20224           filter accepts an integer value in range 0 to 1000. The default
20225           value is set to 0.
20226
20227       dc_U
20228           Adjust the dc value (gain) of the 1st chroma plane of the image.
20229           The filter accepts an integer value in range 0 to 1000. The default
20230           value is set to 0.
20231
20232       dc_V
20233           Adjust the dc value (gain) of the 2nd chroma plane of the image.
20234           The filter accepts an integer value in range 0 to 1000. The default
20235           value is set to 0.
20236
20237       weight_Y
20238           Set the frequency domain weight expression for the luma plane.
20239
20240       weight_U
20241           Set the frequency domain weight expression for the 1st chroma
20242           plane.
20243
20244       weight_V
20245           Set the frequency domain weight expression for the 2nd chroma
20246           plane.
20247
20248       eval
20249           Set when the expressions are evaluated.
20250
20251           It accepts the following values:
20252
20253           init
20254               Only evaluate expressions once during the filter
20255               initialization.
20256
20257           frame
20258               Evaluate expressions for each incoming frame.
20259
20260           Default value is init.
20261
20262           The filter accepts the following variables:
20263
20264       X
20265       Y   The coordinates of the current sample.
20266
20267       W
20268       H   The width and height of the image.
20269
20270       N   The number of input frame, starting from 0.
20271
20272       WS
20273       HS  The size of FFT array for horizontal and vertical processing.
20274
20275       Examples
20276
20277       •   High-pass:
20278
20279                   fftfilt=dc_Y=128:weight_Y='squish(1-(Y+X)/100)'
20280
20281       •   Low-pass:
20282
20283                   fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)'
20284
20285       •   Sharpen:
20286
20287                   fftfilt=dc_Y=0:weight_Y='1+squish(1-(Y+X)/100)'
20288
20289       •   Blur:
20290
20291                   fftfilt=dc_Y=0:weight_Y='exp(-4 * ((Y+X)/(W+H)))'
20292
20293   field
20294       Extract a single field from an interlaced image using stride arithmetic
20295       to avoid wasting CPU time. The output frames are marked as non-
20296       interlaced.
20297
20298       The filter accepts the following options:
20299
20300       type
20301           Specify whether to extract the top (if the value is 0 or "top") or
20302           the bottom field (if the value is 1 or "bottom").
20303
20304   fieldhint
20305       Create new frames by copying the top and bottom fields from surrounding
20306       frames supplied as numbers by the hint file.
20307
20308       hint
20309           Set file containing hints: absolute/relative frame numbers.
20310
20311           There must be one line for each frame in a clip. Each line must
20312           contain two numbers separated by the comma, optionally followed by
20313           "-" or "+".  Numbers supplied on each line of file can not be out
20314           of [N-1,N+1] where N is current frame number for "absolute" mode or
20315           out of [-1, 1] range for "relative" mode. First number tells from
20316           which frame to pick up top field and second number tells from which
20317           frame to pick up bottom field.
20318
20319           If optionally followed by "+" output frame will be marked as
20320           interlaced, else if followed by "-" output frame will be marked as
20321           progressive, else it will be marked same as input frame.  If
20322           optionally followed by "t" output frame will use only top field, or
20323           in case of "b" it will use only bottom field.  If line starts with
20324           "#" or ";" that line is skipped.
20325
20326       mode
20327           Can be item "absolute" or "relative" or "pattern". Default is
20328           "absolute".  The "pattern" mode is same as "relative" mode, except
20329           at last entry of file if there are more frames to process than
20330           "hint" file is seek back to start.
20331
20332       Example of first several lines of "hint" file for "relative" mode:
20333
20334               0,0 - # first frame
20335               1,0 - # second frame, use third's frame top field and second's frame bottom field
20336               1,0 - # third frame, use fourth's frame top field and third's frame bottom field
20337               1,0 -
20338               0,0 -
20339               0,0 -
20340               1,0 -
20341               1,0 -
20342               1,0 -
20343               0,0 -
20344               0,0 -
20345               1,0 -
20346               1,0 -
20347               1,0 -
20348               0,0 -
20349
20350   fieldmatch
20351       Field matching filter for inverse telecine. It is meant to reconstruct
20352       the progressive frames from a telecined stream. The filter does not
20353       drop duplicated frames, so to achieve a complete inverse telecine
20354       "fieldmatch" needs to be followed by a decimation filter such as
20355       decimate in the filtergraph.
20356
20357       The separation of the field matching and the decimation is notably
20358       motivated by the possibility of inserting a de-interlacing filter
20359       fallback between the two.  If the source has mixed telecined and real
20360       interlaced content, "fieldmatch" will not be able to match fields for
20361       the interlaced parts.  But these remaining combed frames will be marked
20362       as interlaced, and thus can be de-interlaced by a later filter such as
20363       yadif before decimation.
20364
20365       In addition to the various configuration options, "fieldmatch" can take
20366       an optional second stream, activated through the ppsrc option. If
20367       enabled, the frames reconstruction will be based on the fields and
20368       frames from this second stream. This allows the first input to be pre-
20369       processed in order to help the various algorithms of the filter, while
20370       keeping the output lossless (assuming the fields are matched properly).
20371       Typically, a field-aware denoiser, or brightness/contrast adjustments
20372       can help.
20373
20374       Note that this filter uses the same algorithms as TIVTC/TFM (AviSynth
20375       project) and VIVTC/VFM (VapourSynth project). The later is a light
20376       clone of TFM from which "fieldmatch" is based on. While the semantic
20377       and usage are very close, some behaviour and options names can differ.
20378
20379       The decimate filter currently only works for constant frame rate input.
20380       If your input has mixed telecined (30fps) and progressive content with
20381       a lower framerate like 24fps use the following filterchain to produce
20382       the necessary cfr stream:
20383       "dejudder,fps=30000/1001,fieldmatch,decimate".
20384
20385       The filter accepts the following options:
20386
20387       order
20388           Specify the assumed field order of the input stream. Available
20389           values are:
20390
20391           auto
20392               Auto detect parity (use FFmpeg's internal parity value).
20393
20394           bff Assume bottom field first.
20395
20396           tff Assume top field first.
20397
20398           Note that it is sometimes recommended not to trust the parity
20399           announced by the stream.
20400
20401           Default value is auto.
20402
20403       mode
20404           Set the matching mode or strategy to use. pc mode is the safest in
20405           the sense that it won't risk creating jerkiness due to duplicate
20406           frames when possible, but if there are bad edits or blended fields
20407           it will end up outputting combed frames when a good match might
20408           actually exist. On the other hand, pcn_ub mode is the most risky in
20409           terms of creating jerkiness, but will almost always find a good
20410           frame if there is one. The other values are all somewhere in
20411           between pc and pcn_ub in terms of risking jerkiness and creating
20412           duplicate frames versus finding good matches in sections with bad
20413           edits, orphaned fields, blended fields, etc.
20414
20415           More details about p/c/n/u/b are available in p/c/n/u/b meaning
20416           section.
20417
20418           Available values are:
20419
20420           pc  2-way matching (p/c)
20421
20422           pc_n
20423               2-way matching, and trying 3rd match if still combed (p/c + n)
20424
20425           pc_u
20426               2-way matching, and trying 3rd match (same order) if still
20427               combed (p/c + u)
20428
20429           pc_n_ub
20430               2-way matching, trying 3rd match if still combed, and trying
20431               4th/5th matches if still combed (p/c + n + u/b)
20432
20433           pcn 3-way matching (p/c/n)
20434
20435           pcn_ub
20436               3-way matching, and trying 4th/5th matches if all 3 of the
20437               original matches are detected as combed (p/c/n + u/b)
20438
20439           The parenthesis at the end indicate the matches that would be used
20440           for that mode assuming order=tff (and field on auto or top).
20441
20442           In terms of speed pc mode is by far the fastest and pcn_ub is the
20443           slowest.
20444
20445           Default value is pc_n.
20446
20447       ppsrc
20448           Mark the main input stream as a pre-processed input, and enable the
20449           secondary input stream as the clean source to pick the fields from.
20450           See the filter introduction for more details. It is similar to the
20451           clip2 feature from VFM/TFM.
20452
20453           Default value is 0 (disabled).
20454
20455       field
20456           Set the field to match from. It is recommended to set this to the
20457           same value as order unless you experience matching failures with
20458           that setting. In certain circumstances changing the field that is
20459           used to match from can have a large impact on matching performance.
20460           Available values are:
20461
20462           auto
20463               Automatic (same value as order).
20464
20465           bottom
20466               Match from the bottom field.
20467
20468           top Match from the top field.
20469
20470           Default value is auto.
20471
20472       mchroma
20473           Set whether or not chroma is included during the match comparisons.
20474           In most cases it is recommended to leave this enabled. You should
20475           set this to 0 only if your clip has bad chroma problems such as
20476           heavy rainbowing or other artifacts. Setting this to 0 could also
20477           be used to speed things up at the cost of some accuracy.
20478
20479           Default value is 1.
20480
20481       y0
20482       y1  These define an exclusion band which excludes the lines between y0
20483           and y1 from being included in the field matching decision. An
20484           exclusion band can be used to ignore subtitles, a logo, or other
20485           things that may interfere with the matching. y0 sets the starting
20486           scan line and y1 sets the ending line; all lines in between y0 and
20487           y1 (including y0 and y1) will be ignored. Setting y0 and y1 to the
20488           same value will disable the feature.  y0 and y1 defaults to 0.
20489
20490       scthresh
20491           Set the scene change detection threshold as a percentage of maximum
20492           change on the luma plane. Good values are in the "[8.0, 14.0]"
20493           range. Scene change detection is only relevant in case
20494           combmatch=sc.  The range for scthresh is "[0.0, 100.0]".
20495
20496           Default value is 12.0.
20497
20498       combmatch
20499           When combatch is not none, "fieldmatch" will take into account the
20500           combed scores of matches when deciding what match to use as the
20501           final match. Available values are:
20502
20503           none
20504               No final matching based on combed scores.
20505
20506           sc  Combed scores are only used when a scene change is detected.
20507
20508           full
20509               Use combed scores all the time.
20510
20511           Default is sc.
20512
20513       combdbg
20514           Force "fieldmatch" to calculate the combed metrics for certain
20515           matches and print them. This setting is known as micout in TFM/VFM
20516           vocabulary.  Available values are:
20517
20518           none
20519               No forced calculation.
20520
20521           pcn Force p/c/n calculations.
20522
20523           pcnub
20524               Force p/c/n/u/b calculations.
20525
20526           Default value is none.
20527
20528       cthresh
20529           This is the area combing threshold used for combed frame detection.
20530           This essentially controls how "strong" or "visible" combing must be
20531           to be detected.  Larger values mean combing must be more visible
20532           and smaller values mean combing can be less visible or strong and
20533           still be detected. Valid settings are from "-1" (every pixel will
20534           be detected as combed) to 255 (no pixel will be detected as
20535           combed). This is basically a pixel difference value. A good range
20536           is "[8, 12]".
20537
20538           Default value is 9.
20539
20540       chroma
20541           Sets whether or not chroma is considered in the combed frame
20542           decision.  Only disable this if your source has chroma problems
20543           (rainbowing, etc.) that are causing problems for the combed frame
20544           detection with chroma enabled. Actually, using chroma=0 is usually
20545           more reliable, except for the case where there is chroma only
20546           combing in the source.
20547
20548           Default value is 0.
20549
20550       blockx
20551       blocky
20552           Respectively set the x-axis and y-axis size of the window used
20553           during combed frame detection. This has to do with the size of the
20554           area in which combpel pixels are required to be detected as combed
20555           for a frame to be declared combed. See the combpel parameter
20556           description for more info.  Possible values are any number that is
20557           a power of 2 starting at 4 and going up to 512.
20558
20559           Default value is 16.
20560
20561       combpel
20562           The number of combed pixels inside any of the blocky by blockx size
20563           blocks on the frame for the frame to be detected as combed. While
20564           cthresh controls how "visible" the combing must be, this setting
20565           controls "how much" combing there must be in any localized area (a
20566           window defined by the blockx and blocky settings) on the frame.
20567           Minimum value is 0 and maximum is "blocky x blockx" (at which point
20568           no frames will ever be detected as combed). This setting is known
20569           as MI in TFM/VFM vocabulary.
20570
20571           Default value is 80.
20572
20573       p/c/n/u/b meaning
20574
20575       p/c/n
20576
20577       We assume the following telecined stream:
20578
20579               Top fields:     1 2 2 3 4
20580               Bottom fields:  1 2 3 4 4
20581
20582       The numbers correspond to the progressive frame the fields relate to.
20583       Here, the first two frames are progressive, the 3rd and 4th are combed,
20584       and so on.
20585
20586       When "fieldmatch" is configured to run a matching from bottom
20587       (field=bottom) this is how this input stream get transformed:
20588
20589               Input stream:
20590                               T     1 2 2 3 4
20591                               B     1 2 3 4 4   <-- matching reference
20592
20593               Matches:              c c n n c
20594
20595               Output stream:
20596                               T     1 2 3 4 4
20597                               B     1 2 3 4 4
20598
20599       As a result of the field matching, we can see that some frames get
20600       duplicated.  To perform a complete inverse telecine, you need to rely
20601       on a decimation filter after this operation. See for instance the
20602       decimate filter.
20603
20604       The same operation now matching from top fields (field=top) looks like
20605       this:
20606
20607               Input stream:
20608                               T     1 2 2 3 4   <-- matching reference
20609                               B     1 2 3 4 4
20610
20611               Matches:              c c p p c
20612
20613               Output stream:
20614                               T     1 2 2 3 4
20615                               B     1 2 2 3 4
20616
20617       In these examples, we can see what p, c and n mean; basically, they
20618       refer to the frame and field of the opposite parity:
20619
20620       *<p matches the field of the opposite parity in the previous frame>
20621       *<c matches the field of the opposite parity in the current frame>
20622       *<n matches the field of the opposite parity in the next frame>
20623
20624       u/b
20625
20626       The u and b matching are a bit special in the sense that they match
20627       from the opposite parity flag. In the following examples, we assume
20628       that we are currently matching the 2nd frame (Top:2, bottom:2).
20629       According to the match, a 'x' is placed above and below each matched
20630       fields.
20631
20632       With bottom matching (field=bottom):
20633
20634               Match:           c         p           n          b          u
20635
20636                                x       x               x        x          x
20637                 Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
20638                 Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
20639                                x         x           x        x              x
20640
20641               Output frames:
20642                                2          1          2          2          2
20643                                2          2          2          1          3
20644
20645       With top matching (field=top):
20646
20647               Match:           c         p           n          b          u
20648
20649                                x         x           x        x              x
20650                 Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
20651                 Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
20652                                x       x               x        x          x
20653
20654               Output frames:
20655                                2          2          2          1          2
20656                                2          1          3          2          2
20657
20658       Examples
20659
20660       Simple IVTC of a top field first telecined stream:
20661
20662               fieldmatch=order=tff:combmatch=none, decimate
20663
20664       Advanced IVTC, with fallback on yadif for still combed frames:
20665
20666               fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
20667
20668   fieldorder
20669       Transform the field order of the input video.
20670
20671       It accepts the following parameters:
20672
20673       order
20674           The output field order. Valid values are tff for top field first or
20675           bff for bottom field first.
20676
20677       The default value is tff.
20678
20679       The transformation is done by shifting the picture content up or down
20680       by one line, and filling the remaining line with appropriate picture
20681       content.  This method is consistent with most broadcast field order
20682       converters.
20683
20684       If the input video is not flagged as being interlaced, or it is already
20685       flagged as being of the required output field order, then this filter
20686       does not alter the incoming video.
20687
20688       It is very useful when converting to or from PAL DV material, which is
20689       bottom field first.
20690
20691       For example:
20692
20693               ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
20694
20695   fifo, afifo
20696       Buffer input images and send them when they are requested.
20697
20698       It is mainly useful when auto-inserted by the libavfilter framework.
20699
20700       It does not take parameters.
20701
20702   fillborders
20703       Fill borders of the input video, without changing video stream
20704       dimensions.  Sometimes video can have garbage at the four edges and you
20705       may not want to crop video input to keep size multiple of some number.
20706
20707       This filter accepts the following options:
20708
20709       left
20710           Number of pixels to fill from left border.
20711
20712       right
20713           Number of pixels to fill from right border.
20714
20715       top Number of pixels to fill from top border.
20716
20717       bottom
20718           Number of pixels to fill from bottom border.
20719
20720       mode
20721           Set fill mode.
20722
20723           It accepts the following values:
20724
20725           smear
20726               fill pixels using outermost pixels
20727
20728           mirror
20729               fill pixels using mirroring (half sample symmetric)
20730
20731           fixed
20732               fill pixels with constant value
20733
20734           reflect
20735               fill pixels using reflecting (whole sample symmetric)
20736
20737           wrap
20738               fill pixels using wrapping
20739
20740           fade
20741               fade pixels to constant value
20742
20743           margins
20744               fill pixels at top and bottom with weighted averages pixels
20745               near borders
20746
20747           Default is smear.
20748
20749       color
20750           Set color for pixels in fixed or fade mode. Default is black.
20751
20752       Commands
20753
20754       This filter supports same commands as options.  The command accepts the
20755       same syntax of the corresponding option.
20756
20757       If the specified expression is not valid, it is kept at its current
20758       value.
20759
20760   find_rect
20761       Find a rectangular object
20762
20763       It accepts the following options:
20764
20765       object
20766           Filepath of the object image, needs to be in gray8.
20767
20768       threshold
20769           Detection threshold, default is 0.5.
20770
20771       mipmaps
20772           Number of mipmaps, default is 3.
20773
20774       xmin, ymin, xmax, ymax
20775           Specifies the rectangle in which to search.
20776
20777       discard
20778           Discard frames where object is not detected. Default is disabled.
20779
20780       Examples
20781
20782       •   Cover a rectangular object by the supplied image of a given video
20783           using ffmpeg:
20784
20785                   ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
20786
20787   floodfill
20788       Flood area with values of same pixel components with another values.
20789
20790       It accepts the following options:
20791
20792       x   Set pixel x coordinate.
20793
20794       y   Set pixel y coordinate.
20795
20796       s0  Set source #0 component value.
20797
20798       s1  Set source #1 component value.
20799
20800       s2  Set source #2 component value.
20801
20802       s3  Set source #3 component value.
20803
20804       d0  Set destination #0 component value.
20805
20806       d1  Set destination #1 component value.
20807
20808       d2  Set destination #2 component value.
20809
20810       d3  Set destination #3 component value.
20811
20812   format
20813       Convert the input video to one of the specified pixel formats.
20814       Libavfilter will try to pick one that is suitable as input to the next
20815       filter.
20816
20817       It accepts the following parameters:
20818
20819       pix_fmts
20820           A '|'-separated list of pixel format names, such as
20821           "pix_fmts=yuv420p|monow|rgb24".
20822
20823       Examples
20824
20825       •   Convert the input video to the yuv420p format
20826
20827                   format=pix_fmts=yuv420p
20828
20829           Convert the input video to any of the formats in the list
20830
20831                   format=pix_fmts=yuv420p|yuv444p|yuv410p
20832
20833   fps
20834       Convert the video to specified constant frame rate by duplicating or
20835       dropping frames as necessary.
20836
20837       It accepts the following parameters:
20838
20839       fps The desired output frame rate. It accepts expressions containing
20840           the following constants:
20841
20842           source_fps
20843               The input's frame rate
20844
20845           ntsc
20846               NTSC frame rate of "30000/1001"
20847
20848           pal PAL frame rate of 25.0
20849
20850           film
20851               Film frame rate of 24.0
20852
20853           ntsc_film
20854               NTSC-film frame rate of "24000/1001"
20855
20856           The default is 25.
20857
20858       start_time
20859           Assume the first PTS should be the given value, in seconds. This
20860           allows for padding/trimming at the start of stream. By default, no
20861           assumption is made about the first frame's expected PTS, so no
20862           padding or trimming is done.  For example, this could be set to 0
20863           to pad the beginning with duplicates of the first frame if a video
20864           stream starts after the audio stream or to trim any frames with a
20865           negative PTS.
20866
20867       round
20868           Timestamp (PTS) rounding method.
20869
20870           Possible values are:
20871
20872           zero
20873               round towards 0
20874
20875           inf round away from 0
20876
20877           down
20878               round towards -infinity
20879
20880           up  round towards +infinity
20881
20882           near
20883               round to nearest
20884
20885           The default is "near".
20886
20887       eof_action
20888           Action performed when reading the last frame.
20889
20890           Possible values are:
20891
20892           round
20893               Use same timestamp rounding method as used for other frames.
20894
20895           pass
20896               Pass through last frame if input duration has not been reached
20897               yet.
20898
20899           The default is "round".
20900
20901       Alternatively, the options can be specified as a flat string:
20902       fps[:start_time[:round]].
20903
20904       See also the setpts filter.
20905
20906       Examples
20907
20908       •   A typical usage in order to set the fps to 25:
20909
20910                   fps=fps=25
20911
20912       •   Sets the fps to 24, using abbreviation and rounding method to round
20913           to nearest:
20914
20915                   fps=fps=film:round=near
20916
20917   framepack
20918       Pack two different video streams into a stereoscopic video, setting
20919       proper metadata on supported codecs. The two views should have the same
20920       size and framerate and processing will stop when the shorter video
20921       ends. Please note that you may conveniently adjust view properties with
20922       the scale and fps filters.
20923
20924       It accepts the following parameters:
20925
20926       format
20927           The desired packing format. Supported values are:
20928
20929           sbs The views are next to each other (default).
20930
20931           tab The views are on top of each other.
20932
20933           lines
20934               The views are packed by line.
20935
20936           columns
20937               The views are packed by column.
20938
20939           frameseq
20940               The views are temporally interleaved.
20941
20942       Some examples:
20943
20944               # Convert left and right views into a frame-sequential video
20945               ffmpeg -i LEFT -i RIGHT -filter_complex framepack=frameseq OUTPUT
20946
20947               # Convert views into a side-by-side video with the same output resolution as the input
20948               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
20949
20950   framerate
20951       Change the frame rate by interpolating new video output frames from the
20952       source frames.
20953
20954       This filter is not designed to function correctly with interlaced
20955       media. If you wish to change the frame rate of interlaced media then
20956       you are required to deinterlace before this filter and re-interlace
20957       after this filter.
20958
20959       A description of the accepted options follows.
20960
20961       fps Specify the output frames per second. This option can also be
20962           specified as a value alone. The default is 50.
20963
20964       interp_start
20965           Specify the start of a range where the output frame will be created
20966           as a linear interpolation of two frames. The range is [0-255], the
20967           default is 15.
20968
20969       interp_end
20970           Specify the end of a range where the output frame will be created
20971           as a linear interpolation of two frames. The range is [0-255], the
20972           default is 240.
20973
20974       scene
20975           Specify the level at which a scene change is detected as a value
20976           between 0 and 100 to indicate a new scene; a low value reflects a
20977           low probability for the current frame to introduce a new scene,
20978           while a higher value means the current frame is more likely to be
20979           one.  The default is 8.2.
20980
20981       flags
20982           Specify flags influencing the filter process.
20983
20984           Available value for flags is:
20985
20986           scene_change_detect, scd
20987               Enable scene change detection using the value of the option
20988               scene.  This flag is enabled by default.
20989
20990   framestep
20991       Select one frame every N-th frame.
20992
20993       This filter accepts the following option:
20994
20995       step
20996           Select frame after every "step" frames.  Allowed values are
20997           positive integers higher than 0. Default value is 1.
20998
20999   freezedetect
21000       Detect frozen video.
21001
21002       This filter logs a message and sets frame metadata when it detects that
21003       the input video has no significant change in content during a specified
21004       duration.  Video freeze detection calculates the mean average absolute
21005       difference of all the components of video frames and compares it to a
21006       noise floor.
21007
21008       The printed times and duration are expressed in seconds. The
21009       "lavfi.freezedetect.freeze_start" metadata key is set on the first
21010       frame whose timestamp equals or exceeds the detection duration and it
21011       contains the timestamp of the first frame of the freeze. The
21012       "lavfi.freezedetect.freeze_duration" and
21013       "lavfi.freezedetect.freeze_end" metadata keys are set on the first
21014       frame after the freeze.
21015
21016       The filter accepts the following options:
21017
21018       noise, n
21019           Set noise tolerance. Can be specified in dB (in case "dB" is
21020           appended to the specified value) or as a difference ratio between 0
21021           and 1. Default is -60dB, or 0.001.
21022
21023       duration, d
21024           Set freeze duration until notification (default is 2 seconds).
21025
21026   freezeframes
21027       Freeze video frames.
21028
21029       This filter freezes video frames using frame from 2nd input.
21030
21031       The filter accepts the following options:
21032
21033       first
21034           Set number of first frame from which to start freeze.
21035
21036       last
21037           Set number of last frame from which to end freeze.
21038
21039       replace
21040           Set number of frame from 2nd input which will be used instead of
21041           replaced frames.
21042
21043   frei0r
21044       Apply a frei0r effect to the input video.
21045
21046       To enable the compilation of this filter, you need to install the
21047       frei0r header and configure FFmpeg with "--enable-frei0r".
21048
21049       It accepts the following parameters:
21050
21051       filter_name
21052           The name of the frei0r effect to load. If the environment variable
21053           FREI0R_PATH is defined, the frei0r effect is searched for in each
21054           of the directories specified by the colon-separated list in
21055           FREI0R_PATH.  Otherwise, the standard frei0r paths are searched, in
21056           this order: HOME/.frei0r-1/lib/, /usr/local/lib/frei0r-1/,
21057           /usr/lib/frei0r-1/.
21058
21059       filter_params
21060           A '|'-separated list of parameters to pass to the frei0r effect.
21061
21062       A frei0r effect parameter can be a boolean (its value is either "y" or
21063       "n"), a double, a color (specified as R/G/B, where R, G, and B are
21064       floating point numbers between 0.0 and 1.0, inclusive) or a color
21065       description as specified in the "Color" section in the ffmpeg-utils
21066       manual, a position (specified as X/Y, where X and Y are floating point
21067       numbers) and/or a string.
21068
21069       The number and types of parameters depend on the loaded effect. If an
21070       effect parameter is not specified, the default value is set.
21071
21072       Examples
21073
21074       •   Apply the distort0r effect, setting the first two double
21075           parameters:
21076
21077                   frei0r=filter_name=distort0r:filter_params=0.5|0.01
21078
21079       •   Apply the colordistance effect, taking a color as the first
21080           parameter:
21081
21082                   frei0r=colordistance:0.2/0.3/0.4
21083                   frei0r=colordistance:violet
21084                   frei0r=colordistance:0x112233
21085
21086       •   Apply the perspective effect, specifying the top left and top right
21087           image positions:
21088
21089                   frei0r=perspective:0.2/0.2|0.8/0.2
21090
21091       For more information, see <http://frei0r.dyne.org>
21092
21093       Commands
21094
21095       This filter supports the filter_params option as commands.
21096
21097   fspp
21098       Apply fast and simple postprocessing. It is a faster version of spp.
21099
21100       It splits (I)DCT into horizontal/vertical passes. Unlike the simple
21101       post- processing filter, one of them is performed once per block, not
21102       per pixel.  This allows for much higher speed.
21103
21104       The filter accepts the following options:
21105
21106       quality
21107           Set quality. This option defines the number of levels for
21108           averaging. It accepts an integer in the range 4-5. Default value is
21109           4.
21110
21111       qp  Force a constant quantization parameter. It accepts an integer in
21112           range 0-63.  If not set, the filter will use the QP from the video
21113           stream (if available).
21114
21115       strength
21116           Set filter strength. It accepts an integer in range -15 to 32.
21117           Lower values mean more details but also more artifacts, while
21118           higher values make the image smoother but also blurrier. Default
21119           value is 0 X PSNR optimal.
21120
21121       use_bframe_qp
21122           Enable the use of the QP from the B-Frames if set to 1. Using this
21123           option may cause flicker since the B-Frames have often larger QP.
21124           Default is 0 (not enabled).
21125
21126   gblur
21127       Apply Gaussian blur filter.
21128
21129       The filter accepts the following options:
21130
21131       sigma
21132           Set horizontal sigma, standard deviation of Gaussian blur. Default
21133           is 0.5.
21134
21135       steps
21136           Set number of steps for Gaussian approximation. Default is 1.
21137
21138       planes
21139           Set which planes to filter. By default all planes are filtered.
21140
21141       sigmaV
21142           Set vertical sigma, if negative it will be same as "sigma".
21143           Default is "-1".
21144
21145       Commands
21146
21147       This filter supports same commands as options.  The command accepts the
21148       same syntax of the corresponding option.
21149
21150       If the specified expression is not valid, it is kept at its current
21151       value.
21152
21153   geq
21154       Apply generic equation to each pixel.
21155
21156       The filter accepts the following options:
21157
21158       lum_expr, lum
21159           Set the luminance expression.
21160
21161       cb_expr, cb
21162           Set the chrominance blue expression.
21163
21164       cr_expr, cr
21165           Set the chrominance red expression.
21166
21167       alpha_expr, a
21168           Set the alpha expression.
21169
21170       red_expr, r
21171           Set the red expression.
21172
21173       green_expr, g
21174           Set the green expression.
21175
21176       blue_expr, b
21177           Set the blue expression.
21178
21179       The colorspace is selected according to the specified options. If one
21180       of the lum_expr, cb_expr, or cr_expr options is specified, the filter
21181       will automatically select a YCbCr colorspace. If one of the red_expr,
21182       green_expr, or blue_expr options is specified, it will select an RGB
21183       colorspace.
21184
21185       If one of the chrominance expression is not defined, it falls back on
21186       the other one. If no alpha expression is specified it will evaluate to
21187       opaque value.  If none of chrominance expressions are specified, they
21188       will evaluate to the luminance expression.
21189
21190       The expressions can use the following variables and functions:
21191
21192       N   The sequential number of the filtered frame, starting from 0.
21193
21194       X
21195       Y   The coordinates of the current sample.
21196
21197       W
21198       H   The width and height of the image.
21199
21200       SW
21201       SH  Width and height scale depending on the currently filtered plane.
21202           It is the ratio between the corresponding luma plane number of
21203           pixels and the current plane ones. E.g. for YUV4:2:0 the values are
21204           "1,1" for the luma plane, and "0.5,0.5" for chroma planes.
21205
21206       T   Time of the current frame, expressed in seconds.
21207
21208       p(x, y)
21209           Return the value of the pixel at location (x,y) of the current
21210           plane.
21211
21212       lum(x, y)
21213           Return the value of the pixel at location (x,y) of the luminance
21214           plane.
21215
21216       cb(x, y)
21217           Return the value of the pixel at location (x,y) of the blue-
21218           difference chroma plane. Return 0 if there is no such plane.
21219
21220       cr(x, y)
21221           Return the value of the pixel at location (x,y) of the red-
21222           difference chroma plane. Return 0 if there is no such plane.
21223
21224       r(x, y)
21225       g(x, y)
21226       b(x, y)
21227           Return the value of the pixel at location (x,y) of the
21228           red/green/blue component. Return 0 if there is no such component.
21229
21230       alpha(x, y)
21231           Return the value of the pixel at location (x,y) of the alpha plane.
21232           Return 0 if there is no such plane.
21233
21234       psum(x,y), lumsum(x, y), cbsum(x,y), crsum(x,y), rsum(x,y), gsum(x,y),
21235       bsum(x,y), alphasum(x,y)
21236           Sum of sample values in the rectangle from (0,0) to (x,y), this
21237           allows obtaining sums of samples within a rectangle. See the
21238           functions without the sum postfix.
21239
21240       interpolation
21241           Set one of interpolation methods:
21242
21243           nearest, n
21244           bilinear, b
21245
21246           Default is bilinear.
21247
21248       For functions, if x and y are outside the area, the value will be
21249       automatically clipped to the closer edge.
21250
21251       Please note that this filter can use multiple threads in which case
21252       each slice will have its own expression state. If you want to use only
21253       a single expression state because your expressions depend on previous
21254       state then you should limit the number of filter threads to 1.
21255
21256       Examples
21257
21258       •   Flip the image horizontally:
21259
21260                   geq=p(W-X\,Y)
21261
21262       •   Generate a bidimensional sine wave, with angle "PI/3" and a
21263           wavelength of 100 pixels:
21264
21265                   geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
21266
21267       •   Generate a fancy enigmatic moving light:
21268
21269                   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
21270
21271       •   Generate a quick emboss effect:
21272
21273                   format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
21274
21275       •   Modify RGB components depending on pixel position:
21276
21277                   geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
21278
21279       •   Create a radial gradient that is the same size as the input (also
21280           see the vignette filter):
21281
21282                   geq=lum=255*gauss((X/W-0.5)*3)*gauss((Y/H-0.5)*3)/gauss(0)/gauss(0),format=gray
21283
21284   gradfun
21285       Fix the banding artifacts that are sometimes introduced into nearly
21286       flat regions by truncation to 8-bit color depth.  Interpolate the
21287       gradients that should go where the bands are, and dither them.
21288
21289       It is designed for playback only.  Do not use it prior to lossy
21290       compression, because compression tends to lose the dither and bring
21291       back the bands.
21292
21293       It accepts the following parameters:
21294
21295       strength
21296           The maximum amount by which the filter will change any one pixel.
21297           This is also the threshold for detecting nearly flat regions.
21298           Acceptable values range from .51 to 64; the default value is 1.2.
21299           Out-of-range values will be clipped to the valid range.
21300
21301       radius
21302           The neighborhood to fit the gradient to. A larger radius makes for
21303           smoother gradients, but also prevents the filter from modifying the
21304           pixels near detailed regions. Acceptable values are 8-32; the
21305           default value is 16. Out-of-range values will be clipped to the
21306           valid range.
21307
21308       Alternatively, the options can be specified as a flat string:
21309       strength[:radius]
21310
21311       Examples
21312
21313       •   Apply the filter with a 3.5 strength and radius of 8:
21314
21315                   gradfun=3.5:8
21316
21317       •   Specify radius, omitting the strength (which will fall-back to the
21318           default value):
21319
21320                   gradfun=radius=8
21321
21322   graphmonitor
21323       Show various filtergraph stats.
21324
21325       With this filter one can debug complete filtergraph.  Especially issues
21326       with links filling with queued frames.
21327
21328       The filter accepts the following options:
21329
21330       size, s
21331           Set video output size. Default is hd720.
21332
21333       opacity, o
21334           Set video opacity. Default is 0.9. Allowed range is from 0 to 1.
21335
21336       mode, m
21337           Set output mode, can be fulll or compact.  In compact mode only
21338           filters with some queued frames have displayed stats.
21339
21340       flags, f
21341           Set flags which enable which stats are shown in video.
21342
21343           Available values for flags are:
21344
21345           queue
21346               Display number of queued frames in each link.
21347
21348           frame_count_in
21349               Display number of frames taken from filter.
21350
21351           frame_count_out
21352               Display number of frames given out from filter.
21353
21354           frame_count_delta
21355               Display delta number of frames between above two values.
21356
21357           pts Display current filtered frame pts.
21358
21359           pts_delta
21360               Display pts delta between current and previous frame.
21361
21362           time
21363               Display current filtered frame time.
21364
21365           time_delta
21366               Display time delta between current and previous frame.
21367
21368           timebase
21369               Display time base for filter link.
21370
21371           format
21372               Display used format for filter link.
21373
21374           size
21375               Display video size or number of audio channels in case of audio
21376               used by filter link.
21377
21378           rate
21379               Display video frame rate or sample rate in case of audio used
21380               by filter link.
21381
21382           eof Display link output status.
21383
21384           sample_count_in
21385               Display number of samples taken from filter.
21386
21387           sample_count_out
21388               Display number of samples given out from filter.
21389
21390           sample_count_delta
21391               Display delta number of samples between above two values.
21392
21393       rate, r
21394           Set upper limit for video rate of output stream, Default value is
21395           25.  This guarantee that output video frame rate will not be higher
21396           than this value.
21397
21398   grayworld
21399       A color constancy filter that applies color correction based on the
21400       grayworld assumption
21401
21402       See:
21403       <https://www.researchgate.net/publication/275213614_A_New_Color_Correction_Method_for_Underwater_Imaging>
21404
21405       The algorithm  uses linear light, so input data should be linearized
21406       beforehand (and possibly correctly tagged).
21407
21408               ffmpeg -i INPUT -vf zscale=transfer=linear,grayworld,zscale=transfer=bt709,format=yuv420p OUTPUT
21409
21410   greyedge
21411       A color constancy variation filter which estimates scene illumination
21412       via grey edge algorithm and corrects the scene colors accordingly.
21413
21414       See: <https://staff.science.uva.nl/th.gevers/pub/GeversTIP07.pdf>
21415
21416       The filter accepts the following options:
21417
21418       difford
21419           The order of differentiation to be applied on the scene. Must be
21420           chosen in the range [0,2] and default value is 1.
21421
21422       minknorm
21423           The Minkowski parameter to be used for calculating the Minkowski
21424           distance. Must be chosen in the range [0,20] and default value is
21425           1. Set to 0 for getting max value instead of calculating Minkowski
21426           distance.
21427
21428       sigma
21429           The standard deviation of Gaussian blur to be applied on the scene.
21430           Must be chosen in the range [0,1024.0] and default value = 1.
21431           floor( sigma * break_off_sigma(3) ) can't be equal to 0 if difford
21432           is greater than 0.
21433
21434       Examples
21435
21436       •   Grey Edge:
21437
21438                   greyedge=difford=1:minknorm=5:sigma=2
21439
21440       •   Max Edge:
21441
21442                   greyedge=difford=1:minknorm=0:sigma=2
21443
21444   guided
21445       Apply guided filter for edge-preserving smoothing, dehazing and so on.
21446
21447       The filter accepts the following options:
21448
21449       radius
21450           Set the box radius in pixels.  Allowed range is 1 to 20. Default is
21451           3.
21452
21453       eps Set regularization parameter (with square).  Allowed range is 0 to
21454           1. Default is 0.01.
21455
21456       mode
21457           Set filter mode. Can be "basic" or "fast".  Default is "basic".
21458
21459       sub Set subsampling ratio for "fast" mode.  Range is 2 to 64. Default
21460           is 4.  No subsampling occurs in "basic" mode.
21461
21462       guidance
21463           Set guidance mode. Can be "off" or "on". Default is "off".  If
21464           "off", single input is required.  If "on", two inputs of the same
21465           resolution and pixel format are required.  The second input serves
21466           as the guidance.
21467
21468       planes
21469           Set planes to filter. Default is first only.
21470
21471       Commands
21472
21473       This filter supports the all above options as commands.
21474
21475       Examples
21476
21477       •   Edge-preserving smoothing with guided filter:
21478
21479                   ffmpeg -i in.png -vf guided out.png
21480
21481       •   Dehazing, structure-transferring filtering, detail enhancement with
21482           guided filter.  For the generation of guidance image, refer to
21483           paper "Guided Image Filtering".  See:
21484           <http://kaiminghe.com/publications/pami12guidedfilter.pdf>.
21485
21486                   ffmpeg -i in.png -i guidance.png -filter_complex guided=guidance=on out.png
21487
21488   haldclut
21489       Apply a Hald CLUT to a video stream.
21490
21491       First input is the video stream to process, and second one is the Hald
21492       CLUT.  The Hald CLUT input can be a simple picture or a complete video
21493       stream.
21494
21495       The filter accepts the following options:
21496
21497       clut
21498           Set which CLUT video frames will be processed from second input
21499           stream, can be first or all. Default is all.
21500
21501       shortest
21502           Force termination when the shortest input terminates. Default is 0.
21503
21504       repeatlast
21505           Continue applying the last CLUT after the end of the stream. A
21506           value of 0 disable the filter after the last frame of the CLUT is
21507           reached.  Default is 1.
21508
21509       "haldclut" also has the same interpolation options as lut3d (both
21510       filters share the same internals).
21511
21512       This filter also supports the framesync options.
21513
21514       More information about the Hald CLUT can be found on Eskil Steenberg's
21515       website (Hald CLUT author) at
21516       <http://www.quelsolaar.com/technology/clut.html>.
21517
21518       Commands
21519
21520       This filter supports the "interp" option as commands.
21521
21522       Workflow examples
21523
21524       Hald CLUT video stream
21525
21526       Generate an identity Hald CLUT stream altered with various effects:
21527
21528               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
21529
21530       Note: make sure you use a lossless codec.
21531
21532       Then use it with "haldclut" to apply it on some random stream:
21533
21534               ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
21535
21536       The Hald CLUT will be applied to the 10 first seconds (duration of
21537       clut.nut), then the latest picture of that CLUT stream will be applied
21538       to the remaining frames of the "mandelbrot" stream.
21539
21540       Hald CLUT with preview
21541
21542       A Hald CLUT is supposed to be a squared image of "Level*Level*Level" by
21543       "Level*Level*Level" pixels. For a given Hald CLUT, FFmpeg will select
21544       the biggest possible square starting at the top left of the picture.
21545       The remaining padding pixels (bottom or right) will be ignored. This
21546       area can be used to add a preview of the Hald CLUT.
21547
21548       Typically, the following generated Hald CLUT will be supported by the
21549       "haldclut" filter:
21550
21551               ffmpeg -f lavfi -i B<haldclutsrc>=8 -vf "
21552                  pad=iw+320 [padded_clut];
21553                  smptebars=s=320x256, split [a][b];
21554                  [padded_clut][a] overlay=W-320:h, curves=color_negative [main];
21555                  [main][b] overlay=W-320" -frames:v 1 clut.png
21556
21557       It contains the original and a preview of the effect of the CLUT: SMPTE
21558       color bars are displayed on the right-top, and below the same color
21559       bars processed by the color changes.
21560
21561       Then, the effect of this Hald CLUT can be visualized with:
21562
21563               ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
21564
21565   hflip
21566       Flip the input video horizontally.
21567
21568       For example, to horizontally flip the input video with ffmpeg:
21569
21570               ffmpeg -i in.avi -vf "hflip" out.avi
21571
21572   histeq
21573       This filter applies a global color histogram equalization on a per-
21574       frame basis.
21575
21576       It can be used to correct video that has a compressed range of pixel
21577       intensities.  The filter redistributes the pixel intensities to
21578       equalize their distribution across the intensity range. It may be
21579       viewed as an "automatically adjusting contrast filter". This filter is
21580       useful only for correcting degraded or poorly captured source video.
21581
21582       The filter accepts the following options:
21583
21584       strength
21585           Determine the amount of equalization to be applied.  As the
21586           strength is reduced, the distribution of pixel intensities more-
21587           and-more approaches that of the input frame. The value must be a
21588           float number in the range [0,1] and defaults to 0.200.
21589
21590       intensity
21591           Set the maximum intensity that can generated and scale the output
21592           values appropriately.  The strength should be set as desired and
21593           then the intensity can be limited if needed to avoid washing-out.
21594           The value must be a float number in the range [0,1] and defaults to
21595           0.210.
21596
21597       antibanding
21598           Set the antibanding level. If enabled the filter will randomly vary
21599           the luminance of output pixels by a small amount to avoid banding
21600           of the histogram. Possible values are "none", "weak" or "strong".
21601           It defaults to "none".
21602
21603   histogram
21604       Compute and draw a color distribution histogram for the input video.
21605
21606       The computed histogram is a representation of the color component
21607       distribution in an image.
21608
21609       Standard histogram displays the color components distribution in an
21610       image.  Displays color graph for each color component. Shows
21611       distribution of the Y, U, V, A or R, G, B components, depending on
21612       input format, in the current frame. Below each graph a color component
21613       scale meter is shown.
21614
21615       The filter accepts the following options:
21616
21617       level_height
21618           Set height of level. Default value is 200.  Allowed range is [50,
21619           2048].
21620
21621       scale_height
21622           Set height of color scale. Default value is 12.  Allowed range is
21623           [0, 40].
21624
21625       display_mode
21626           Set display mode.  It accepts the following values:
21627
21628           stack
21629               Per color component graphs are placed below each other.
21630
21631           parade
21632               Per color component graphs are placed side by side.
21633
21634           overlay
21635               Presents information identical to that in the "parade", except
21636               that the graphs representing color components are superimposed
21637               directly over one another.
21638
21639           Default is "stack".
21640
21641       levels_mode
21642           Set mode. Can be either "linear", or "logarithmic".  Default is
21643           "linear".
21644
21645       components
21646           Set what color components to display.  Default is 7.
21647
21648       fgopacity
21649           Set foreground opacity. Default is 0.7.
21650
21651       bgopacity
21652           Set background opacity. Default is 0.5.
21653
21654       colors_mode
21655           Set colors mode.  It accepts the following values:
21656
21657           whiteonblack
21658           blackonwhite
21659           whiteongray
21660           blackongray
21661           coloronblack
21662           coloronwhite
21663           colorongray
21664           blackoncolor
21665           whiteoncolor
21666           grayoncolor
21667
21668           Default is "whiteonblack".
21669
21670       Examples
21671
21672       •   Calculate and draw histogram:
21673
21674                   ffplay -i input -vf histogram
21675
21676   hqdn3d
21677       This is a high precision/quality 3d denoise filter. It aims to reduce
21678       image noise, producing smooth images and making still images really
21679       still. It should enhance compressibility.
21680
21681       It accepts the following optional parameters:
21682
21683       luma_spatial
21684           A non-negative floating point number which specifies spatial luma
21685           strength.  It defaults to 4.0.
21686
21687       chroma_spatial
21688           A non-negative floating point number which specifies spatial chroma
21689           strength.  It defaults to 3.0*luma_spatial/4.0.
21690
21691       luma_tmp
21692           A floating point number which specifies luma temporal strength. It
21693           defaults to 6.0*luma_spatial/4.0.
21694
21695       chroma_tmp
21696           A floating point number which specifies chroma temporal strength.
21697           It defaults to luma_tmp*chroma_spatial/luma_spatial.
21698
21699       Commands
21700
21701       This filter supports same commands as options.  The command accepts the
21702       same syntax of the corresponding option.
21703
21704       If the specified expression is not valid, it is kept at its current
21705       value.
21706
21707   hwdownload
21708       Download hardware frames to system memory.
21709
21710       The input must be in hardware frames, and the output a non-hardware
21711       format.  Not all formats will be supported on the output - it may be
21712       necessary to insert an additional format filter immediately following
21713       in the graph to get the output in a supported format.
21714
21715   hwmap
21716       Map hardware frames to system memory or to another device.
21717
21718       This filter has several different modes of operation; which one is used
21719       depends on the input and output formats:
21720
21721       •   Hardware frame input, normal frame output
21722
21723           Map the input frames to system memory and pass them to the output.
21724           If the original hardware frame is later required (for example,
21725           after overlaying something else on part of it), the hwmap filter
21726           can be used again in the next mode to retrieve it.
21727
21728       •   Normal frame input, hardware frame output
21729
21730           If the input is actually a software-mapped hardware frame, then
21731           unmap it - that is, return the original hardware frame.
21732
21733           Otherwise, a device must be provided.  Create new hardware surfaces
21734           on that device for the output, then map them back to the software
21735           format at the input and give those frames to the preceding filter.
21736           This will then act like the hwupload filter, but may be able to
21737           avoid an additional copy when the input is already in a compatible
21738           format.
21739
21740       •   Hardware frame input and output
21741
21742           A device must be supplied for the output, either directly or with
21743           the derive_device option.  The input and output devices must be of
21744           different types and compatible - the exact meaning of this is
21745           system-dependent, but typically it means that they must refer to
21746           the same underlying hardware context (for example, refer to the
21747           same graphics card).
21748
21749           If the input frames were originally created on the output device,
21750           then unmap to retrieve the original frames.
21751
21752           Otherwise, map the frames to the output device - create new
21753           hardware frames on the output corresponding to the frames on the
21754           input.
21755
21756       The following additional parameters are accepted:
21757
21758       mode
21759           Set the frame mapping mode.  Some combination of:
21760
21761           read
21762               The mapped frame should be readable.
21763
21764           write
21765               The mapped frame should be writeable.
21766
21767           overwrite
21768               The mapping will always overwrite the entire frame.
21769
21770               This may improve performance in some cases, as the original
21771               contents of the frame need not be loaded.
21772
21773           direct
21774               The mapping must not involve any copying.
21775
21776               Indirect mappings to copies of frames are created in some cases
21777               where either direct mapping is not possible or it would have
21778               unexpected properties.  Setting this flag ensures that the
21779               mapping is direct and will fail if that is not possible.
21780
21781           Defaults to read+write if not specified.
21782
21783       derive_device type
21784           Rather than using the device supplied at initialisation, instead
21785           derive a new device of type type from the device the input frames
21786           exist on.
21787
21788       reverse
21789           In a hardware to hardware mapping, map in reverse - create frames
21790           in the sink and map them back to the source.  This may be necessary
21791           in some cases where a mapping in one direction is required but only
21792           the opposite direction is supported by the devices being used.
21793
21794           This option is dangerous - it may break the preceding filter in
21795           undefined ways if there are any additional constraints on that
21796           filter's output.  Do not use it without fully understanding the
21797           implications of its use.
21798
21799   hwupload
21800       Upload system memory frames to hardware surfaces.
21801
21802       The device to upload to must be supplied when the filter is
21803       initialised.  If using ffmpeg, select the appropriate device with the
21804       -filter_hw_device option or with the derive_device option.  The input
21805       and output devices must be of different types and compatible - the
21806       exact meaning of this is system-dependent, but typically it means that
21807       they must refer to the same underlying hardware context (for example,
21808       refer to the same graphics card).
21809
21810       The following additional parameters are accepted:
21811
21812       derive_device type
21813           Rather than using the device supplied at initialisation, instead
21814           derive a new device of type type from the device the input frames
21815           exist on.
21816
21817   hwupload_cuda
21818       Upload system memory frames to a CUDA device.
21819
21820       It accepts the following optional parameters:
21821
21822       device
21823           The number of the CUDA device to use
21824
21825   hqx
21826       Apply a high-quality magnification filter designed for pixel art. This
21827       filter was originally created by Maxim Stepin.
21828
21829       It accepts the following option:
21830
21831       n   Set the scaling dimension: 2 for "hq2x", 3 for "hq3x" and 4 for
21832           "hq4x".  Default is 3.
21833
21834   hstack
21835       Stack input videos horizontally.
21836
21837       All streams must be of same pixel format and of same height.
21838
21839       Note that this filter is faster than using overlay and pad filter to
21840       create same output.
21841
21842       The filter accepts the following option:
21843
21844       inputs
21845           Set number of input streams. Default is 2.
21846
21847       shortest
21848           If set to 1, force the output to terminate when the shortest input
21849           terminates. Default value is 0.
21850
21851   hsvhold
21852       Turns a certain HSV range into gray values.
21853
21854       This filter measures color difference between set HSV color in options
21855       and ones measured in video stream. Depending on options, output colors
21856       can be changed to be gray or not.
21857
21858       The filter accepts the following options:
21859
21860       hue Set the hue value which will be used in color difference
21861           calculation.  Allowed range is from -360 to 360. Default value is
21862           0.
21863
21864       sat Set the saturation value which will be used in color difference
21865           calculation.  Allowed range is from -1 to 1. Default value is 0.
21866
21867       val Set the value which will be used in color difference calculation.
21868           Allowed range is from -1 to 1. Default value is 0.
21869
21870       similarity
21871           Set similarity percentage with the key color.  Allowed range is
21872           from 0 to 1. Default value is 0.01.
21873
21874           0.00001 matches only the exact key color, while 1.0 matches
21875           everything.
21876
21877       blend
21878           Blend percentage.  Allowed range is from 0 to 1. Default value is
21879           0.
21880
21881           0.0 makes pixels either fully gray, or not gray at all.
21882
21883           Higher values result in more gray pixels, with a higher gray pixel
21884           the more similar the pixels color is to the key color.
21885
21886   hsvkey
21887       Turns a certain HSV range into transparency.
21888
21889       This filter measures color difference between set HSV color in options
21890       and ones measured in video stream. Depending on options, output colors
21891       can be changed to transparent by adding alpha channel.
21892
21893       The filter accepts the following options:
21894
21895       hue Set the hue value which will be used in color difference
21896           calculation.  Allowed range is from -360 to 360. Default value is
21897           0.
21898
21899       sat Set the saturation value which will be used in color difference
21900           calculation.  Allowed range is from -1 to 1. Default value is 0.
21901
21902       val Set the value which will be used in color difference calculation.
21903           Allowed range is from -1 to 1. Default value is 0.
21904
21905       similarity
21906           Set similarity percentage with the key color.  Allowed range is
21907           from 0 to 1. Default value is 0.01.
21908
21909           0.00001 matches only the exact key color, while 1.0 matches
21910           everything.
21911
21912       blend
21913           Blend percentage.  Allowed range is from 0 to 1. Default value is
21914           0.
21915
21916           0.0 makes pixels either fully transparent, or not transparent at
21917           all.
21918
21919           Higher values result in semi-transparent pixels, with a higher
21920           transparency the more similar the pixels color is to the key color.
21921
21922   hue
21923       Modify the hue and/or the saturation of the input.
21924
21925       It accepts the following parameters:
21926
21927       h   Specify the hue angle as a number of degrees. It accepts an
21928           expression, and defaults to "0".
21929
21930       s   Specify the saturation in the [-10,10] range. It accepts an
21931           expression and defaults to "1".
21932
21933       H   Specify the hue angle as a number of radians. It accepts an
21934           expression, and defaults to "0".
21935
21936       b   Specify the brightness in the [-10,10] range. It accepts an
21937           expression and defaults to "0".
21938
21939       h and H are mutually exclusive, and can't be specified at the same
21940       time.
21941
21942       The b, h, H and s option values are expressions containing the
21943       following constants:
21944
21945       n   frame count of the input frame starting from 0
21946
21947       pts presentation timestamp of the input frame expressed in time base
21948           units
21949
21950       r   frame rate of the input video, NAN if the input frame rate is
21951           unknown
21952
21953       t   timestamp expressed in seconds, NAN if the input timestamp is
21954           unknown
21955
21956       tb  time base of the input video
21957
21958       Examples
21959
21960       •   Set the hue to 90 degrees and the saturation to 1.0:
21961
21962                   hue=h=90:s=1
21963
21964       •   Same command but expressing the hue in radians:
21965
21966                   hue=H=PI/2:s=1
21967
21968       •   Rotate hue and make the saturation swing between 0 and 2 over a
21969           period of 1 second:
21970
21971                   hue="H=2*PI*t: s=sin(2*PI*t)+1"
21972
21973       •   Apply a 3 seconds saturation fade-in effect starting at 0:
21974
21975                   hue="s=min(t/3\,1)"
21976
21977           The general fade-in expression can be written as:
21978
21979                   hue="s=min(0\, max((t-START)/DURATION\, 1))"
21980
21981       •   Apply a 3 seconds saturation fade-out effect starting at 5 seconds:
21982
21983                   hue="s=max(0\, min(1\, (8-t)/3))"
21984
21985           The general fade-out expression can be written as:
21986
21987                   hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
21988
21989       Commands
21990
21991       This filter supports the following commands:
21992
21993       b
21994       s
21995       h
21996       H   Modify the hue and/or the saturation and/or brightness of the input
21997           video.  The command accepts the same syntax of the corresponding
21998           option.
21999
22000           If the specified expression is not valid, it is kept at its current
22001           value.
22002
22003   huesaturation
22004       Apply hue-saturation-intensity adjustments to input video stream.
22005
22006       This filter operates in RGB colorspace.
22007
22008       This filter accepts the following options:
22009
22010       hue Set the hue shift in degrees to apply. Default is 0.  Allowed range
22011           is from -180 to 180.
22012
22013       saturation
22014           Set the saturation shift. Default is 0.  Allowed range is from -1
22015           to 1.
22016
22017       intensity
22018           Set the intensity shift. Default is 0.  Allowed range is from -1 to
22019           1.
22020
22021       colors
22022           Set which primary and complementary colors are going to be
22023           adjusted.  This options is set by providing one or multiple values.
22024           This can select multiple colors at once. By default all colors are
22025           selected.
22026
22027           r   Adjust reds.
22028
22029           y   Adjust yellows.
22030
22031           g   Adjust greens.
22032
22033           c   Adjust cyans.
22034
22035           b   Adjust blues.
22036
22037           m   Adjust magentas.
22038
22039           a   Adjust all colors.
22040
22041       strength
22042           Set strength of filtering. Allowed range is from 0 to 100.  Default
22043           value is 1.
22044
22045       rw, gw, bw
22046           Set weight for each RGB component. Allowed range is from 0 to 1.
22047           By default is set to 0.333, 0.334, 0.333.  Those options are used
22048           in saturation and lightess processing.
22049
22050       lightness
22051           Set preserving lightness, by default is disabled.  Adjusting hues
22052           can change lightness from original RGB triplet, with this option
22053           enabled lightness is kept at same value.
22054
22055   hysteresis
22056       Grow first stream into second stream by connecting components.  This
22057       makes it possible to build more robust edge masks.
22058
22059       This filter accepts the following options:
22060
22061       planes
22062           Set which planes will be processed as bitmap, unprocessed planes
22063           will be copied from first stream.  By default value 0xf, all planes
22064           will be processed.
22065
22066       threshold
22067           Set threshold which is used in filtering. If pixel component value
22068           is higher than this value filter algorithm for connecting
22069           components is activated.  By default value is 0.
22070
22071       The "hysteresis" filter also supports the framesync options.
22072
22073   iccdetect
22074       Detect the colorspace  from an embedded ICC profile (if present), and
22075       update the frame's tags accordingly.
22076
22077       This filter accepts the following options:
22078
22079       force
22080           If true, the frame's existing colorspace tags will always be
22081           overridden by values detected from an ICC profile. Otherwise, they
22082           will only be assigned if they contain "unknown". Enabled by
22083           default.
22084
22085   iccgen
22086       Generate ICC profiles and attach them to frames.
22087
22088       This filter accepts the following options:
22089
22090       color_primaries
22091       color_trc
22092           Configure the colorspace that the ICC profile will be generated
22093           for. The default value of "auto" infers the value from the input
22094           frame's metadata, defaulting to BT.709/sRGB as appropriate.
22095
22096           See the setparams filter for a list of possible values, but note
22097           that "unknown" are not valid values for this filter.
22098
22099       force
22100           If true, an ICC profile will be generated even if it would
22101           overwrite an already existing ICC profile. Disabled by default.
22102
22103   identity
22104       Obtain the identity score between two input videos.
22105
22106       This filter takes two input videos.
22107
22108       Both input videos must have the same resolution and pixel format for
22109       this filter to work correctly. Also it assumes that both inputs have
22110       the same number of frames, which are compared one by one.
22111
22112       The obtained per component, average, min and max identity score is
22113       printed through the logging system.
22114
22115       The filter stores the calculated identity scores of each frame in frame
22116       metadata.
22117
22118       In the below example the input file main.mpg being processed is
22119       compared with the reference file ref.mpg.
22120
22121               ffmpeg -i main.mpg -i ref.mpg -lavfi identity -f null -
22122
22123   idet
22124       Detect video interlacing type.
22125
22126       This filter tries to detect if the input frames are interlaced,
22127       progressive, top or bottom field first. It will also try to detect
22128       fields that are repeated between adjacent frames (a sign of telecine).
22129
22130       Single frame detection considers only immediately adjacent frames when
22131       classifying each frame.  Multiple frame detection incorporates the
22132       classification history of previous frames.
22133
22134       The filter will log these metadata values:
22135
22136       single.current_frame
22137           Detected type of current frame using single-frame detection. One
22138           of: ``tff'' (top field first), ``bff'' (bottom field first),
22139           ``progressive'', or ``undetermined''
22140
22141       single.tff
22142           Cumulative number of frames detected as top field first using
22143           single-frame detection.
22144
22145       multiple.tff
22146           Cumulative number of frames detected as top field first using
22147           multiple-frame detection.
22148
22149       single.bff
22150           Cumulative number of frames detected as bottom field first using
22151           single-frame detection.
22152
22153       multiple.current_frame
22154           Detected type of current frame using multiple-frame detection. One
22155           of: ``tff'' (top field first), ``bff'' (bottom field first),
22156           ``progressive'', or ``undetermined''
22157
22158       multiple.bff
22159           Cumulative number of frames detected as bottom field first using
22160           multiple-frame detection.
22161
22162       single.progressive
22163           Cumulative number of frames detected as progressive using single-
22164           frame detection.
22165
22166       multiple.progressive
22167           Cumulative number of frames detected as progressive using multiple-
22168           frame detection.
22169
22170       single.undetermined
22171           Cumulative number of frames that could not be classified using
22172           single-frame detection.
22173
22174       multiple.undetermined
22175           Cumulative number of frames that could not be classified using
22176           multiple-frame detection.
22177
22178       repeated.current_frame
22179           Which field in the current frame is repeated from the last. One of
22180           ``neither'', ``top'', or ``bottom''.
22181
22182       repeated.neither
22183           Cumulative number of frames with no repeated field.
22184
22185       repeated.top
22186           Cumulative number of frames with the top field repeated from the
22187           previous frame's top field.
22188
22189       repeated.bottom
22190           Cumulative number of frames with the bottom field repeated from the
22191           previous frame's bottom field.
22192
22193       The filter accepts the following options:
22194
22195       intl_thres
22196           Set interlacing threshold.
22197
22198       prog_thres
22199           Set progressive threshold.
22200
22201       rep_thres
22202           Threshold for repeated field detection.
22203
22204       half_life
22205           Number of frames after which a given frame's contribution to the
22206           statistics is halved (i.e., it contributes only 0.5 to its
22207           classification). The default of 0 means that all frames seen are
22208           given full weight of 1.0 forever.
22209
22210       analyze_interlaced_flag
22211           When this is not 0 then idet will use the specified number of
22212           frames to determine if the interlaced flag is accurate, it will not
22213           count undetermined frames.  If the flag is found to be accurate it
22214           will be used without any further computations, if it is found to be
22215           inaccurate it will be cleared without any further computations.
22216           This allows inserting the idet filter as a low computational method
22217           to clean up the interlaced flag
22218
22219   il
22220       Deinterleave or interleave fields.
22221
22222       This filter allows one to process interlaced images fields without
22223       deinterlacing them. Deinterleaving splits the input frame into 2 fields
22224       (so called half pictures). Odd lines are moved to the top half of the
22225       output image, even lines to the bottom half.  You can process (filter)
22226       them independently and then re-interleave them.
22227
22228       The filter accepts the following options:
22229
22230       luma_mode, l
22231       chroma_mode, c
22232       alpha_mode, a
22233           Available values for luma_mode, chroma_mode and alpha_mode are:
22234
22235           none
22236               Do nothing.
22237
22238           deinterleave, d
22239               Deinterleave fields, placing one above the other.
22240
22241           interleave, i
22242               Interleave fields. Reverse the effect of deinterleaving.
22243
22244           Default value is "none".
22245
22246       luma_swap, ls
22247       chroma_swap, cs
22248       alpha_swap, as
22249           Swap luma/chroma/alpha fields. Exchange even & odd lines. Default
22250           value is 0.
22251
22252       Commands
22253
22254       This filter supports the all above options as commands.
22255
22256   inflate
22257       Apply inflate effect to the video.
22258
22259       This filter replaces the pixel by the local(3x3) average by taking into
22260       account only values higher than the pixel.
22261
22262       It accepts the following options:
22263
22264       threshold0
22265       threshold1
22266       threshold2
22267       threshold3
22268           Limit the maximum change for each plane, default is 65535.  If 0,
22269           plane will remain unchanged.
22270
22271       Commands
22272
22273       This filter supports the all above options as commands.
22274
22275   interlace
22276       Simple interlacing filter from progressive contents. This interleaves
22277       upper (or lower) lines from odd frames with lower (or upper) lines from
22278       even frames, halving the frame rate and preserving image height.
22279
22280                  Original        Original             New Frame
22281                  Frame 'j'      Frame 'j+1'             (tff)
22282                 ==========      ===========       ==================
22283                   Line 0  -------------------->    Frame 'j' Line 0
22284                   Line 1          Line 1  ---->   Frame 'j+1' Line 1
22285                   Line 2 --------------------->    Frame 'j' Line 2
22286                   Line 3          Line 3  ---->   Frame 'j+1' Line 3
22287                    ...             ...                   ...
22288               New Frame + 1 will be generated by Frame 'j+2' and Frame 'j+3' and so on
22289
22290       It accepts the following optional parameters:
22291
22292       scan
22293           This determines whether the interlaced frame is taken from the even
22294           (tff - default) or odd (bff) lines of the progressive frame.
22295
22296       lowpass
22297           Vertical lowpass filter to avoid twitter interlacing and reduce
22298           moire patterns.
22299
22300           0, off
22301               Disable vertical lowpass filter
22302
22303           1, linear
22304               Enable linear filter (default)
22305
22306           2, complex
22307               Enable complex filter. This will slightly less reduce twitter
22308               and moire but better retain detail and subjective sharpness
22309               impression.
22310
22311   kerndeint
22312       Deinterlace input video by applying Donald Graft's adaptive kernel
22313       deinterling. Work on interlaced parts of a video to produce progressive
22314       frames.
22315
22316       The description of the accepted parameters follows.
22317
22318       thresh
22319           Set the threshold which affects the filter's tolerance when
22320           determining if a pixel line must be processed. It must be an
22321           integer in the range [0,255] and defaults to 10. A value of 0 will
22322           result in applying the process on every pixels.
22323
22324       map Paint pixels exceeding the threshold value to white if set to 1.
22325           Default is 0.
22326
22327       order
22328           Set the fields order. Swap fields if set to 1, leave fields alone
22329           if 0. Default is 0.
22330
22331       sharp
22332           Enable additional sharpening if set to 1. Default is 0.
22333
22334       twoway
22335           Enable twoway sharpening if set to 1. Default is 0.
22336
22337       Examples
22338
22339       •   Apply default values:
22340
22341                   kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
22342
22343       •   Enable additional sharpening:
22344
22345                   kerndeint=sharp=1
22346
22347       •   Paint processed pixels in white:
22348
22349                   kerndeint=map=1
22350
22351   kirsch
22352       Apply kirsch operator to input video stream.
22353
22354       The filter accepts the following option:
22355
22356       planes
22357           Set which planes will be processed, unprocessed planes will be
22358           copied.  By default value 0xf, all planes will be processed.
22359
22360       scale
22361           Set value which will be multiplied with filtered result.
22362
22363       delta
22364           Set value which will be added to filtered result.
22365
22366       Commands
22367
22368       This filter supports the all above options as commands.
22369
22370   lagfun
22371       Slowly update darker pixels.
22372
22373       This filter makes short flashes of light appear longer.  This filter
22374       accepts the following options:
22375
22376       decay
22377           Set factor for decaying. Default is .95. Allowed range is from 0 to
22378           1.
22379
22380       planes
22381           Set which planes to filter. Default is all. Allowed range is from 0
22382           to 15.
22383
22384       Commands
22385
22386       This filter supports the all above options as commands.
22387
22388   lenscorrection
22389       Correct radial lens distortion
22390
22391       This filter can be used to correct for radial distortion as can result
22392       from the use of wide angle lenses, and thereby re-rectify the image. To
22393       find the right parameters one can use tools available for example as
22394       part of opencv or simply trial-and-error.  To use opencv use the
22395       calibration sample (under samples/cpp) from the opencv sources and
22396       extract the k1 and k2 coefficients from the resulting matrix.
22397
22398       Note that effectively the same filter is available in the open-source
22399       tools Krita and Digikam from the KDE project.
22400
22401       In contrast to the vignette filter, which can also be used to
22402       compensate lens errors, this filter corrects the distortion of the
22403       image, whereas vignette corrects the brightness distribution, so you
22404       may want to use both filters together in certain cases, though you will
22405       have to take care of ordering, i.e. whether vignetting should be
22406       applied before or after lens correction.
22407
22408       Options
22409
22410       The filter accepts the following options:
22411
22412       cx  Relative x-coordinate of the focal point of the image, and thereby
22413           the center of the distortion. This value has a range [0,1] and is
22414           expressed as fractions of the image width. Default is 0.5.
22415
22416       cy  Relative y-coordinate of the focal point of the image, and thereby
22417           the center of the distortion. This value has a range [0,1] and is
22418           expressed as fractions of the image height. Default is 0.5.
22419
22420       k1  Coefficient of the quadratic correction term. This value has a
22421           range [-1,1]. 0 means no correction. Default is 0.
22422
22423       k2  Coefficient of the double quadratic correction term. This value has
22424           a range [-1,1].  0 means no correction. Default is 0.
22425
22426       i   Set interpolation type. Can be "nearest" or "bilinear".  Default is
22427           "nearest".
22428
22429       fc  Specify the color of the unmapped pixels. For the syntax of this
22430           option, check the "Color" section in the ffmpeg-utils manual.
22431           Default color is "black@0".
22432
22433       The formula that generates the correction is:
22434
22435       r_src = r_tgt * (1 + k1 * (r_tgt / r_0)^2 + k2 * (r_tgt / r_0)^4)
22436
22437       where r_0 is halve of the image diagonal and r_src and r_tgt are the
22438       distances from the focal point in the source and target images,
22439       respectively.
22440
22441       Commands
22442
22443       This filter supports the all above options as commands.
22444
22445   lensfun
22446       Apply lens correction via the lensfun library
22447       (<http://lensfun.sourceforge.net/>).
22448
22449       The "lensfun" filter requires the camera make, camera model, and lens
22450       model to apply the lens correction. The filter will load the lensfun
22451       database and query it to find the corresponding camera and lens entries
22452       in the database. As long as these entries can be found with the given
22453       options, the filter can perform corrections on frames. Note that
22454       incomplete strings will result in the filter choosing the best match
22455       with the given options, and the filter will output the chosen camera
22456       and lens models (logged with level "info"). You must provide the make,
22457       camera model, and lens model as they are required.
22458
22459       To obtain a list of available makes and models, leave out one or both
22460       of "make" and "model" options. The filter will send the full list to
22461       the log with level "INFO".  The first column is the make and the second
22462       column is the model.  To obtain a list of available lenses, set any
22463       values for make and model and leave out the "lens_model" option. The
22464       filter will send the full list of lenses in the log with level "INFO".
22465       The ffmpeg tool will exit after the list is printed.
22466
22467       The filter accepts the following options:
22468
22469       make
22470           The make of the camera (for example, "Canon"). This option is
22471           required.
22472
22473       model
22474           The model of the camera (for example, "Canon EOS 100D"). This
22475           option is required.
22476
22477       lens_model
22478           The model of the lens (for example, "Canon EF-S 18-55mm f/3.5-5.6
22479           IS STM"). This option is required.
22480
22481       db_path
22482           The full path to the lens database folder. If not set, the filter
22483           will attempt to load the database from the install path when the
22484           library was built. Default is unset.
22485
22486       mode
22487           The type of correction to apply. The following values are valid
22488           options:
22489
22490           vignetting
22491               Enables fixing lens vignetting.
22492
22493           geometry
22494               Enables fixing lens geometry. This is the default.
22495
22496           subpixel
22497               Enables fixing chromatic aberrations.
22498
22499           vig_geo
22500               Enables fixing lens vignetting and lens geometry.
22501
22502           vig_subpixel
22503               Enables fixing lens vignetting and chromatic aberrations.
22504
22505           distortion
22506               Enables fixing both lens geometry and chromatic aberrations.
22507
22508           all Enables all possible corrections.
22509
22510       focal_length
22511           The focal length of the image/video (zoom; expected constant for
22512           video). For example, a 18--55mm lens has focal length range of
22513           [18--55], so a value in that range should be chosen when using that
22514           lens. Default 18.
22515
22516       aperture
22517           The aperture of the image/video (expected constant for video). Note
22518           that aperture is only used for vignetting correction. Default 3.5.
22519
22520       focus_distance
22521           The focus distance of the image/video (expected constant for
22522           video). Note that focus distance is only used for vignetting and
22523           only slightly affects the vignetting correction process. If
22524           unknown, leave it at the default value (which is 1000).
22525
22526       scale
22527           The scale factor which is applied after transformation. After
22528           correction the video is no longer necessarily rectangular. This
22529           parameter controls how much of the resulting image is visible. The
22530           value 0 means that a value will be chosen automatically such that
22531           there is little or no unmapped area in the output image. 1.0 means
22532           that no additional scaling is done. Lower values may result in more
22533           of the corrected image being visible, while higher values may avoid
22534           unmapped areas in the output.
22535
22536       target_geometry
22537           The target geometry of the output image/video. The following values
22538           are valid options:
22539
22540           rectilinear (default)
22541           fisheye
22542           panoramic
22543           equirectangular
22544           fisheye_orthographic
22545           fisheye_stereographic
22546           fisheye_equisolid
22547           fisheye_thoby
22548       reverse
22549           Apply the reverse of image correction (instead of correcting
22550           distortion, apply it).
22551
22552       interpolation
22553           The type of interpolation used when correcting distortion. The
22554           following values are valid options:
22555
22556           nearest
22557           linear (default)
22558           lanczos
22559
22560       Examples
22561
22562       •   Apply lens correction with make "Canon", camera model "Canon EOS
22563           100D", and lens model "Canon EF-S 18-55mm f/3.5-5.6 IS STM" with
22564           focal length of "18" and aperture of "8.0".
22565
22566                   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
22567
22568       •   Apply the same as before, but only for the first 5 seconds of
22569           video.
22570
22571                   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
22572
22573   libplacebo
22574       Flexible GPU-accelerated processing filter based on libplacebo
22575       (<https://code.videolan.org/videolan/libplacebo>). Note that this
22576       filter currently only accepts Vulkan input frames.
22577
22578       Options
22579
22580       The options for this filter are divided into the following sections:
22581
22582       Output mode
22583
22584       These options control the overall output mode. By default, libplacebo
22585       will try to preserve the source colorimetry and size as best as it can,
22586       but it will apply any embedded film grain, dolby vision metadata or
22587       anamorphic SAR present in source frames.
22588
22589       w
22590       h   Set the output video dimension expression. Default value is the
22591           input dimension.
22592
22593           Allows for the same expressions as the scale filter.
22594
22595       format
22596           Set the output format override. If unset (the default), frames will
22597           be output in the same format as the respective input frames.
22598           Otherwise, format conversion will be performed.
22599
22600       force_original_aspect_ratio
22601       force_divisible_by
22602           Work the same as the identical scale filter options.
22603
22604       normalize_sar
22605           If enabled (the default), output frames will always have a pixel
22606           aspect ratio of 1:1. If disabled, any aspect ratio mismatches,
22607           including those from e.g.  anamorphic video sources, are forwarded
22608           to the output pixel aspect ratio.
22609
22610       pad_crop_ratio
22611           Specifies a ratio (between 0.0 and 1.0) between padding and
22612           cropping when the input aspect ratio does not match the output
22613           aspect ratio and normalize_sar is in effect. The default of 0.0
22614           always pads the content with black borders, while a value of 1.0
22615           always crops off parts of the content. Intermediate values are
22616           possible, leading to a mix of the two approaches.
22617
22618       colorspace
22619       color_primaries
22620       color_trc
22621       range
22622           Configure the colorspace that output frames will be delivered in.
22623           The default value of "auto" outputs frames in the same format as
22624           the input frames, leading to no change. For any other value,
22625           conversion will be performed.
22626
22627           See the setparams filter for a list of possible values.
22628
22629       apply_filmgrain
22630           Apply film grain (e.g. AV1 or H.274) if present in source frames,
22631           and strip it from the output. Enabled by default.
22632
22633       apply_dolbyvision
22634           Apply Dolby Vision RPU metadata if present in source frames, and
22635           strip it from the output. Enabled by default. Note that Dolby
22636           Vision will always output BT.2020+PQ, overriding the usual input
22637           frame metadata. These will also be picked as the values of "auto"
22638           for the respective frame output options.
22639
22640       Scaling
22641
22642       The options in this section control how libplacebo performs upscaling
22643       and (if necessary) downscaling. Note that libplacebo will always
22644       internally operate on 4:4:4 content, so any sub-sampled chroma formats
22645       such as "yuv420p" will necessarily be upsampled and downsampled as part
22646       of the rendering process. That means scaling might be in effect even if
22647       the source and destination resolution are the same.
22648
22649       upscaler
22650       downscaler
22651           Configure the filter kernel used for upscaling and downscaling. The
22652           respective defaults are "spline36" and "mitchell". For a full list
22653           of possible values, pass "help" to these options. The most
22654           important values are:
22655
22656           none
22657               Forces the use of built-in GPU texture sampling (typically
22658               bilinear). Extremely fast but poor quality, especially when
22659               downscaling.
22660
22661           bilinear
22662               Bilinear interpolation. Can generally be done for free on GPUs,
22663               except when doing so would lead to aliasing. Fast and low
22664               quality.
22665
22666           nearest
22667               Nearest-neighbour interpolation. Sharp but highly aliasing.
22668
22669           oversample
22670               Algorithm that looks visually similar to nearest-neighbour
22671               interpolation but tries to preserve pixel aspect ratio. Good
22672               for pixel art, since it results in minimal distortion of the
22673               artistic appearance.
22674
22675           lanczos
22676               Standard sinc-sinc interpolation kernel.
22677
22678           spline36
22679               Cubic spline approximation of lanczos. No difference in
22680               performance, but has very slightly less ringing.
22681
22682           ewa_lanczos
22683               Elliptically weighted average version of lanczos, based on a
22684               jinc-sinc kernel.  This is also popularly referred to as just
22685               "Jinc scaling". Slow but very high quality.
22686
22687           gaussian
22688               Gaussian kernel. Has certain ideal mathematical properties, but
22689               subjectively very blurry.
22690
22691           mitchell
22692               Cubic BC spline with parameters recommended by Mitchell and
22693               Netravali. Very little ringing.
22694
22695       lut_entries
22696           Configures the size of scaler LUTs, ranging from 1 to 256. The
22697           default of 0 will pick libplacebo's internal default, typically 64.
22698
22699       antiringing
22700           Enables anti-ringing (for non-EWA filters). The value (between 0.0
22701           and 1.0) configures the strength of the anti-ringing algorithm. May
22702           increase aliasing if set too high. Disabled by default.
22703
22704       sigmoid
22705           Enable sigmoidal compression during upscaling. Reduces ringing
22706           slightly.  Enabled by default.
22707
22708       Debanding
22709
22710       Libplacebo comes with a built-in debanding filter that is good at
22711       counteracting many common sources of banding and blocking. Turning this
22712       on is highly recommended whenever quality is desired.
22713
22714       deband
22715           Enable (fast) debanding algorithm. Disabled by default.
22716
22717       deband_iterations
22718           Number of deband iterations of the debanding algorithm. Each
22719           iteration is performed with progressively increased radius (and
22720           diminished threshold).  Recommended values are in the range 1 to 4.
22721           Defaults to 1.
22722
22723       deband_threshold
22724           Debanding filter strength. Higher numbers lead to more aggressive
22725           debanding.  Defaults to 4.0.
22726
22727       deband_radius
22728           Debanding filter radius. A higher radius is better for slow
22729           gradients, while a lower radius is better for steep gradients.
22730           Defaults to 16.0.
22731
22732       deband_grain
22733           Amount of extra output grain to add. Helps hide imperfections.
22734           Defaults to 6.0.
22735
22736       Color adjustment
22737
22738       A collection of subjective color controls. Not very rigorous, so the
22739       exact effect will vary somewhat depending on the input primaries and
22740       colorspace.
22741
22742       brightness
22743           Brightness boost, between "-1.0" and 1.0. Defaults to 0.0.
22744
22745       contrast
22746           Contrast gain, between 0.0 and 16.0. Defaults to 1.0.
22747
22748       saturation
22749           Saturation gain, between 0.0 and 16.0. Defaults to 1.0.
22750
22751       hue Hue shift in radians, between "-3.14" and 3.14. Defaults to 0.0.
22752           This will rotate the UV subvector, defaulting to BT.709
22753           coefficients for RGB inputs.
22754
22755       gamma
22756           Gamma adjustment, between 0.0 and 16.0. Defaults to 1.0.
22757
22758       cones
22759           Cone model to use for color blindness simulation. Accepts any
22760           combination of "l", "m" and "s". Here are some examples:
22761
22762           m   Deuteranomaly / deuteranopia (affecting 3%-4% of the
22763               population)
22764
22765           l   Protanomaly / protanopia (affecting 1%-2% of the population)
22766
22767           l+m Monochromacy (very rare)
22768
22769           l+m+s
22770               Achromatopsy (complete loss of daytime vision, extremely rare)
22771
22772       cone-strength
22773           Gain factor for the cones specified by "cones", between 0.0 and
22774           10.0. A value of 1.0 results in no change to color vision. A value
22775           of 0.0 (the default) simulates complete loss of those cones. Values
22776           above 1.0 result in exaggerating the differences between cones,
22777           which may help compensate for reduced color vision.
22778
22779       Peak detection
22780
22781       To help deal with sources that only have static HDR10 metadata (or no
22782       tagging whatsoever), libplacebo uses its own internal frame analysis
22783       compute shader to analyze source frames and adapt the tone mapping
22784       function in realtime. If this is too slow, or if exactly reproducible
22785       frame-perfect results are needed, it's recommended to turn this feature
22786       off.
22787
22788       peak_detect
22789           Enable HDR peak detection. Ignores static MaxCLL/MaxFALL values in
22790           favor of dynamic detection from the input. Note that the detected
22791           values do not get written back to the output frames, they merely
22792           guide the internal tone mapping process. Enabled by default.
22793
22794       smoothing_period
22795           Peak detection smoothing period, between 0.0 and 1000.0. Higher
22796           values result in peak detection becoming less responsive to changes
22797           in the input. Defaults to 100.0.
22798
22799       minimum_peak
22800           Lower bound on the detected peak (relative to SDR white), between
22801           0.0 and 100.0. Defaults to 1.0.
22802
22803       scene_threshold_low
22804       scene_threshold_high
22805           Lower and upper thresholds for scene change detection. Expressed in
22806           a logarithmic scale between 0.0 and 100.0. Default to 5.5 and 10.0,
22807           respectively. Setting either to a negative value disables this
22808           functionality.
22809
22810       overshoot
22811           Peak smoothing overshoot margin, between 0.0 and 1.0. Provides a
22812           safety margin to prevent clipping as a result of peak smoothing.
22813           Defaults to 0.05, corresponding to a margin of 5%.
22814
22815       Tone mapping
22816
22817       The options in this section control how libplacebo performs tone-
22818       mapping and gamut-mapping when dealing with mismatches between wide-
22819       gamut or HDR content.  In general, libplacebo relies on accurate source
22820       tagging and mastering display gamut information to produce the best
22821       results.
22822
22823       intent
22824           Rendering intent to use when adapting between different primary
22825           color gamuts (after tone-mapping).
22826
22827           perceptual
22828               Perceptual gamut mapping. Currently equivalent to relative
22829               colorimetric.
22830
22831           relative
22832               Relative colorimetric. This is the default.
22833
22834           absolute
22835               Absolute colorimetric.
22836
22837           saturation
22838               Saturation mapping. Forcibly stretches the source gamut to the
22839               target gamut.
22840
22841       gamut_mode
22842           How to handle out-of-gamut colors that can occur as a result of
22843           colorimetric gamut mapping.
22844
22845           clip
22846               Do nothing, simply clip out-of-range colors to the RGB volume.
22847               This is the default.
22848
22849           warn
22850               Highlight out-of-gamut pixels (by coloring them pink).
22851
22852           darken
22853               Linearly reduces content brightness to preserves saturated
22854               details, followed by clipping the remaining out-of-gamut
22855               colors. As the name implies, this makes everything darker, but
22856               provides a good balance between preserving details and colors.
22857
22858           desaturate
22859               Hard-desaturates out-of-gamut colors towards white, while
22860               preserving the luminance. Has a tendency to shift colors.
22861
22862       tonemapping
22863           Tone-mapping algorithm to use. Available values are:
22864
22865           auto
22866               Automatic selection based on internal heuristics. This is the
22867               default.
22868
22869           clip
22870               Performs no tone-mapping, just clips out-of-range colors.
22871               Retains perfect color accuracy for in-range colors but
22872               completely destroys out-of-range information.  Does not perform
22873               any black point adaptation. Not configurable.
22874
22875           bt.2390
22876               EETF from the ITU-R Report BT.2390, a hermite spline roll-off
22877               with linear segment. The knee point offset is configurable.
22878               Note that this parameter defaults to 1.0, rather than the value
22879               of 0.5 from the ITU-R spec.
22880
22881           bt.2446a
22882               EETF from ITU-R Report BT.2446, method A. Designed for well-
22883               mastered HDR sources. Can be used for both forward and inverse
22884               tone mapping. Not configurable.
22885
22886           spline
22887               Simple spline consisting of two polynomials, joined by a single
22888               pivot point.  The parameter gives the pivot point (in PQ
22889               space), defaulting to 0.30.  Can be used for both forward and
22890               inverse tone mapping.
22891
22892           reinhard
22893               Simple non-linear, global tone mapping algorithm. The parameter
22894               specifies the local contrast coefficient at the display peak.
22895               Essentially, a parameter of 0.5 implies that the reference
22896               white will be about half as bright as when clipping. Defaults
22897               to 0.5, which results in the simplest formulation of this
22898               function.
22899
22900           mobius
22901               Generalization of the reinhard tone mapping algorithm to
22902               support an additional linear slope near black. The tone mapping
22903               parameter indicates the trade-off between the linear section
22904               and the non-linear section. Essentially, for a given parameter
22905               x, every color value below x will be mapped linearly, while
22906               higher values get non-linearly tone-mapped. Values near 1.0
22907               make this curve behave like "clip", while values near 0.0 make
22908               this curve behave like "reinhard". The default value is 0.3,
22909               which provides a good balance between colorimetric accuracy and
22910               preserving out-of-gamut details.
22911
22912           hable
22913               Piece-wise, filmic tone-mapping algorithm developed by John
22914               Hable for use in Uncharted 2, inspired by a similar tone-
22915               mapping algorithm used by Kodak.  Popularized by its use in
22916               video games with HDR rendering. Preserves both dark and bright
22917               details very well, but comes with the drawback of changing the
22918               average brightness quite significantly. This is sort of similar
22919               to "reinhard" with parameter 0.24.
22920
22921           gamma
22922               Fits a gamma (power) function to transfer between the source
22923               and target color spaces, effectively resulting in a perceptual
22924               hard-knee joining two roughly linear sections. This preserves
22925               details at all scales fairly accurately, but can result in an
22926               image with a muted or dull appearance. The parameter is used as
22927               the cutoff point, defaulting to 0.5.
22928
22929           linear
22930               Linearly stretches the input range to the output range, in PQ
22931               space. This will preserve all details accurately, but results
22932               in a significantly different average brightness. Can be used
22933               for inverse tone-mapping in addition to regular tone-mapping.
22934               The parameter can be used as an additional linear gain
22935               coefficient (defaulting to 1.0).
22936
22937       tonemapping_param
22938           For tunable tone mapping functions, this parameter can be used to
22939           fine-tune the curve behavior. Refer to the documentation of
22940           "tonemapping". The default value of 0.0 is replaced by the curve's
22941           preferred default setting.
22942
22943       tonemapping_mode
22944           This option determines how the tone mapping function specified by
22945           "tonemapping" is applied to the colors in a scene. Possible values
22946           are:
22947
22948           auto
22949               Automatic selection based on internal heuristics. This is the
22950               default.
22951
22952           rgb Apply the function per-channel in the RGB colorspace.  Per-
22953               channel tone-mapping in RGB. Guarantees no clipping and heavily
22954               desaturates the output, but distorts the colors quite
22955               significantly. Very similar to the "Hollywood" look and feel.
22956
22957           max Tone-mapping is performed on the brightest component found in
22958               the signal. Good at preserving details in highlights, but has a
22959               tendency to crush blacks.
22960
22961           hybrid
22962               Tone-map per-channel for highlights and linearly (luma-based)
22963               for midtones/shadows, based on a fixed gamma 2.4 coefficient
22964               curve.
22965
22966           luma
22967               Tone-map linearly on the luma component (CIE Y), and adjust
22968               (desaturate) the chromaticities to compensate using a simple
22969               constant factor. This is essentially the mode used in ITU-R
22970               BT.2446 method A.
22971
22972       inverse_tonemapping
22973           If enabled, this filter will also attempt stretching SDR signals to
22974           fill HDR output color volumes. Disabled by default.
22975
22976       tonemapping_crosstalk
22977           Extra tone-mapping crosstalk factor, between 0.0 and 0.3. This can
22978           help reduce issues tone-mapping certain bright spectral colors.
22979           Defaults to 0.04.
22980
22981       tonemapping_lut_size
22982           Size of the tone-mapping LUT, between 2 and 1024. Defaults to 256.
22983           Note that this figure is squared when combined with "peak_detect".
22984
22985       Dithering
22986
22987       By default, libplacebo will dither whenever necessary, which includes
22988       rendering to any integer format below 16-bit precision. It's
22989       recommended to always leave this on, since not doing so may result in
22990       visible banding in the output, even if the "debanding" filter is
22991       enabled. If maximum performance is needed, use "ordered_fixed" instead
22992       of disabling dithering.
22993
22994       dithering
22995           Dithering method to use. Accepts the following values:
22996
22997           none
22998               Disables dithering completely. May result in visible banding.
22999
23000           blue
23001               Dither with pseudo-blue noise. This is the default.
23002
23003           ordered
23004               Tunable ordered dither pattern.
23005
23006           ordered_fixed
23007               Faster ordered dither with a fixed size of 6. Texture-less.
23008
23009           white
23010               Dither with white noise. Texture-less.
23011
23012       dither_lut_size
23013           Dither LUT size, as log base2 between 1 and 8. Defaults to 6,
23014           corresponding to a LUT size of "64x64".
23015
23016       dither_temporal
23017           Enables temporal dithering. Disabled by default.
23018
23019       Custom shaders
23020
23021       libplacebo supports a number of custom shaders based on the mpv .hook
23022       GLSL syntax. A collection of such shaders can be found here:
23023       <https://github.com/mpv-player/mpv/wiki/User-Scripts#user-shaders>
23024
23025       A full description of the mpv shader format is beyond the scope of this
23026       section, but a summary can be found here:
23027       <https://mpv.io/manual/master/#options-glsl-shader>
23028
23029       custom_shader_path
23030           Specifies a path to a custom shader file to load at runtime.
23031
23032       custom_shader_bin
23033           Specifies a complete custom shader as a raw string.
23034
23035       Debugging / performance
23036
23037       All of the options in this section default off. They may be of
23038       assistance when attempting to squeeze the maximum performance at the
23039       cost of quality.
23040
23041       skip_aa
23042           Disable anti-aliasing when downscaling.
23043
23044       polar_cutoff
23045           Truncate polar (EWA) scaler kernels below this absolute magnitude,
23046           between 0.0 and 1.0.
23047
23048       disable_linear
23049           Disable linear light scaling.
23050
23051       disable_builtin
23052           Disable built-in GPU sampling (forces LUT).
23053
23054       force_icc_lut
23055           Force the use of a full ICC 3DLUT for gamut mapping.
23056
23057       disable_fbos
23058           Forcibly disable FBOs, resulting in loss of almost all
23059           functionality, but offering the maximum possible speed.
23060
23061       Commands
23062
23063       This filter supports almost all of the above options as commands.
23064
23065       Examples
23066
23067       •   Complete example for how to initialize the Vulkan device, upload
23068           frames to the GPU, perform filter conversion to yuv420p, and
23069           download frames back to the CPU for output. Note that in specific
23070           cases you can get around the need to perform format conversion by
23071           specifying the correct "format" filter option corresponding to the
23072           input frames.
23073
23074                   ffmpeg -i $INPUT -init_hw_device vulkan -vf hwupload,libplacebo=format=yuv420p,hwdownload,format=yuv420p $OUTPUT
23075
23076       •   Tone-map input to standard gamut BT.709 output:
23077
23078                   libplacebo=colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv
23079
23080       •   Rescale input to fit into standard 1080p, with high quality
23081           scaling:
23082
23083                   libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos
23084
23085       •   Convert input to standard sRGB JPEG:
23086
23087                   libplacebo=format=yuv420p:colorspace=bt470bg:color_primaries=bt709:color_trc=iec61966-2-1:range=pc
23088
23089       •   Use higher quality debanding settings:
23090
23091                   libplacebo=deband=true:deband_iterations=3:deband_radius=8:deband_threshold=6
23092
23093       •   Run this filter on the CPU, on systems with Mesa installed (and
23094           with the most expensive options disabled):
23095
23096                   ffmpeg ... -init_hw_device vulkan:llvmpipe ... -vf libplacebo=upscaler=none:downscaler=none:peak_detect=false
23097
23098       •   Suppress CPU-based AV1/H.274 film grain application in the decoder,
23099           in favor of doing it with this filter. Note that this is only a
23100           gain if the frames are either already on the GPU, or if you're
23101           using libplacebo for other purposes, since otherwise the VRAM
23102           roundtrip will more than offset any expected speedup.
23103
23104                   ffmpeg -export_side_data +film_grain ... -vf libplacebo=apply_filmgrain=true
23105
23106   libvmaf
23107       Calulate the VMAF (Video Multi-Method Assessment Fusion) score for a
23108       reference/distorted pair of input videos.
23109
23110       The first input is the distorted video, and the second input is the
23111       reference video.
23112
23113       The obtained VMAF score is printed through the logging system.
23114
23115       It requires Netflix's vmaf library (libvmaf) as a pre-requisite.  After
23116       installing the library it can be enabled using: "./configure
23117       --enable-libvmaf".
23118
23119       The filter has following options:
23120
23121       model
23122           A `|` delimited list of vmaf models. Each model can be configured
23123           with a number of parameters.  Default value: "version=vmaf_v0.6.1"
23124
23125       model_path
23126           Deprecated, use model='path=...'.
23127
23128       enable_transform
23129           Deprecated, use model='enable_transform=true'.
23130
23131       phone_model
23132           Deprecated, use model='enable_transform=true'.
23133
23134       enable_conf_interval
23135           Deprecated, use model='enable_conf_interval=true'.
23136
23137       feature
23138           A `|` delimited list of features. Each feature can be configured
23139           with a number of parameters.
23140
23141       psnr
23142           Deprecated, use feature='name=psnr'.
23143
23144       ssim
23145           Deprecated, use feature='name=ssim'.
23146
23147       ms_ssim
23148           Deprecated, use feature='name=ms_ssim'.
23149
23150       log_path
23151           Set the file path to be used to store log files.
23152
23153       log_fmt
23154           Set the format of the log file (xml, json, csv, or sub).
23155
23156       n_threads
23157           Set number of threads to be used when initializing libvmaf.
23158           Default value: 0, no threads.
23159
23160       n_subsample
23161           Set frame subsampling interval to be used.
23162
23163       This filter also supports the framesync options.
23164
23165       Examples
23166
23167       •   In the examples below, a distorted video distorted.mpg is compared
23168           with a reference file reference.mpg.
23169
23170       •   Basic usage:
23171
23172                   ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf=log_path=output.xml -f null -
23173
23174       •   Example with multiple models:
23175
23176                   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 -
23177
23178       •   Example with multiple addtional features:
23179
23180                   ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='feature=name=psnr|name=ciede' -f null -
23181
23182       •   Example with options and different containers:
23183
23184                   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 -
23185
23186   limitdiff
23187       Apply limited difference filter using second and optionally third video
23188       stream.
23189
23190       The filter accepts the following options:
23191
23192       threshold
23193           Set the threshold to use when allowing certain differences between
23194           video streams.  Any absolute difference value lower or exact than
23195           this threshold will pick pixel components from first video stream.
23196
23197       elasticity
23198           Set the elasticity of soft thresholding when processing video
23199           streams.  This value multiplied with first one sets second
23200           threshold.  Any absolute difference value greater or exact than
23201           second threshold will pick pixel components from second video
23202           stream. For values between those two threshold linear interpolation
23203           between first and second video stream will be used.
23204
23205       reference
23206           Enable the reference (third) video stream processing. By default is
23207           disabled.  If set, this video stream will be used for calculating
23208           absolute difference with first video stream.
23209
23210       planes
23211           Specify which planes will be processed. Defaults to all available.
23212
23213       Commands
23214
23215       This filter supports the all above options as commands except option
23216       reference.
23217
23218   limiter
23219       Limits the pixel components values to the specified range [min, max].
23220
23221       The filter accepts the following options:
23222
23223       min Lower bound. Defaults to the lowest allowed value for the input.
23224
23225       max Upper bound. Defaults to the highest allowed value for the input.
23226
23227       planes
23228           Specify which planes will be processed. Defaults to all available.
23229
23230       Commands
23231
23232       This filter supports the all above options as commands.
23233
23234   loop
23235       Loop video frames.
23236
23237       The filter accepts the following options:
23238
23239       loop
23240           Set the number of loops. Setting this value to -1 will result in
23241           infinite loops.  Default is 0.
23242
23243       size
23244           Set maximal size in number of frames. Default is 0.
23245
23246       start
23247           Set first frame of loop. Default is 0.
23248
23249       Examples
23250
23251       •   Loop single first frame infinitely:
23252
23253                   loop=loop=-1:size=1:start=0
23254
23255       •   Loop single first frame 10 times:
23256
23257                   loop=loop=10:size=1:start=0
23258
23259       •   Loop 10 first frames 5 times:
23260
23261                   loop=loop=5:size=10:start=0
23262
23263   lut1d
23264       Apply a 1D LUT to an input video.
23265
23266       The filter accepts the following options:
23267
23268       file
23269           Set the 1D LUT file name.
23270
23271           Currently supported formats:
23272
23273           cube
23274               Iridas
23275
23276           csp cineSpace
23277
23278       interp
23279           Select interpolation mode.
23280
23281           Available values are:
23282
23283           nearest
23284               Use values from the nearest defined point.
23285
23286           linear
23287               Interpolate values using the linear interpolation.
23288
23289           cosine
23290               Interpolate values using the cosine interpolation.
23291
23292           cubic
23293               Interpolate values using the cubic interpolation.
23294
23295           spline
23296               Interpolate values using the spline interpolation.
23297
23298       Commands
23299
23300       This filter supports the all above options as commands.
23301
23302   lut3d
23303       Apply a 3D LUT to an input video.
23304
23305       The filter accepts the following options:
23306
23307       file
23308           Set the 3D LUT file name.
23309
23310           Currently supported formats:
23311
23312           3dl AfterEffects
23313
23314           cube
23315               Iridas
23316
23317           dat DaVinci
23318
23319           m3d Pandora
23320
23321           csp cineSpace
23322
23323       interp
23324           Select interpolation mode.
23325
23326           Available values are:
23327
23328           nearest
23329               Use values from the nearest defined point.
23330
23331           trilinear
23332               Interpolate values using the 8 points defining a cube.
23333
23334           tetrahedral
23335               Interpolate values using a tetrahedron.
23336
23337           pyramid
23338               Interpolate values using a pyramid.
23339
23340           prism
23341               Interpolate values using a prism.
23342
23343       Commands
23344
23345       This filter supports the "interp" option as commands.
23346
23347   lumakey
23348       Turn certain luma values into transparency.
23349
23350       The filter accepts the following options:
23351
23352       threshold
23353           Set the luma which will be used as base for transparency.  Default
23354           value is 0.
23355
23356       tolerance
23357           Set the range of luma values to be keyed out.  Default value is
23358           0.01.
23359
23360       softness
23361           Set the range of softness. Default value is 0.  Use this to control
23362           gradual transition from zero to full transparency.
23363
23364       Commands
23365
23366       This filter supports same commands as options.  The command accepts the
23367       same syntax of the corresponding option.
23368
23369       If the specified expression is not valid, it is kept at its current
23370       value.
23371
23372   lut, lutrgb, lutyuv
23373       Compute a look-up table for binding each pixel component input value to
23374       an output value, and apply it to the input video.
23375
23376       lutyuv applies a lookup table to a YUV input video, lutrgb to an RGB
23377       input video.
23378
23379       These filters accept the following parameters:
23380
23381       c0  set first pixel component expression
23382
23383       c1  set second pixel component expression
23384
23385       c2  set third pixel component expression
23386
23387       c3  set fourth pixel component expression, corresponds to the alpha
23388           component
23389
23390       r   set red component expression
23391
23392       g   set green component expression
23393
23394       b   set blue component expression
23395
23396       a   alpha component expression
23397
23398       y   set Y/luminance component expression
23399
23400       u   set U/Cb component expression
23401
23402       v   set V/Cr component expression
23403
23404       Each of them specifies the expression to use for computing the lookup
23405       table for the corresponding pixel component values.
23406
23407       The exact component associated to each of the c* options depends on the
23408       format in input.
23409
23410       The lut filter requires either YUV or RGB pixel formats in input,
23411       lutrgb requires RGB pixel formats in input, and lutyuv requires YUV.
23412
23413       The expressions can contain the following constants and functions:
23414
23415       w
23416       h   The input width and height.
23417
23418       val The input value for the pixel component.
23419
23420       clipval
23421           The input value, clipped to the minval-maxval range.
23422
23423       maxval
23424           The maximum value for the pixel component.
23425
23426       minval
23427           The minimum value for the pixel component.
23428
23429       negval
23430           The negated value for the pixel component value, clipped to the
23431           minval-maxval range; it corresponds to the expression
23432           "maxval-clipval+minval".
23433
23434       clip(val)
23435           The computed value in val, clipped to the minval-maxval range.
23436
23437       gammaval(gamma)
23438           The computed gamma correction value of the pixel component value,
23439           clipped to the minval-maxval range. It corresponds to the
23440           expression
23441           "pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+minval"
23442
23443       All expressions default to "clipval".
23444
23445       Commands
23446
23447       This filter supports same commands as options.
23448
23449       Examples
23450
23451       •   Negate input video:
23452
23453                   lutrgb="r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val"
23454                   lutyuv="y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val"
23455
23456           The above is the same as:
23457
23458                   lutrgb="r=negval:g=negval:b=negval"
23459                   lutyuv="y=negval:u=negval:v=negval"
23460
23461       •   Negate luminance:
23462
23463                   lutyuv=y=negval
23464
23465       •   Remove chroma components, turning the video into a graytone image:
23466
23467                   lutyuv="u=128:v=128"
23468
23469       •   Apply a luma burning effect:
23470
23471                   lutyuv="y=2*val"
23472
23473       •   Remove green and blue components:
23474
23475                   lutrgb="g=0:b=0"
23476
23477       •   Set a constant alpha channel value on input:
23478
23479                   format=rgba,lutrgb=a="maxval-minval/2"
23480
23481       •   Correct luminance gamma by a factor of 0.5:
23482
23483                   lutyuv=y=gammaval(0.5)
23484
23485       •   Discard least significant bits of luma:
23486
23487                   lutyuv=y='bitand(val, 128+64+32)'
23488
23489       •   Technicolor like effect:
23490
23491                   lutyuv=u='(val-maxval/2)*2+maxval/2':v='(val-maxval/2)*2+maxval/2'
23492
23493   lut2, tlut2
23494       The "lut2" filter takes two input streams and outputs one stream.
23495
23496       The "tlut2" (time lut2) filter takes two consecutive frames from one
23497       single stream.
23498
23499       This filter accepts the following parameters:
23500
23501       c0  set first pixel component expression
23502
23503       c1  set second pixel component expression
23504
23505       c2  set third pixel component expression
23506
23507       c3  set fourth pixel component expression, corresponds to the alpha
23508           component
23509
23510       d   set output bit depth, only available for "lut2" filter. By default
23511           is 0, which means bit depth is automatically picked from first
23512           input format.
23513
23514       The "lut2" filter also supports the framesync options.
23515
23516       Each of them specifies the expression to use for computing the lookup
23517       table for the corresponding pixel component values.
23518
23519       The exact component associated to each of the c* options depends on the
23520       format in inputs.
23521
23522       The expressions can contain the following constants:
23523
23524       w
23525       h   The input width and height.
23526
23527       x   The first input value for the pixel component.
23528
23529       y   The second input value for the pixel component.
23530
23531       bdx The first input video bit depth.
23532
23533       bdy The second input video bit depth.
23534
23535       All expressions default to "x".
23536
23537       Commands
23538
23539       This filter supports the all above options as commands except option
23540       "d".
23541
23542       Examples
23543
23544       •   Highlight differences between two RGB video streams:
23545
23546                   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)'
23547
23548       •   Highlight differences between two YUV video streams:
23549
23550                   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)'
23551
23552       •   Show max difference between two video streams:
23553
23554                   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)))'
23555
23556   maskedclamp
23557       Clamp the first input stream with the second input and third input
23558       stream.
23559
23560       Returns the value of first stream to be between second input stream -
23561       "undershoot" and third input stream + "overshoot".
23562
23563       This filter accepts the following options:
23564
23565       undershoot
23566           Default value is 0.
23567
23568       overshoot
23569           Default value is 0.
23570
23571       planes
23572           Set which planes will be processed as bitmap, unprocessed planes
23573           will be copied from first stream.  By default value 0xf, all planes
23574           will be processed.
23575
23576       Commands
23577
23578       This filter supports the all above options as commands.
23579
23580   maskedmax
23581       Merge the second and third input stream into output stream using
23582       absolute differences between second input stream and first input stream
23583       and absolute difference between third input stream and first input
23584       stream. The picked value will be from second input stream if second
23585       absolute difference is greater than first one or from third input
23586       stream otherwise.
23587
23588       This filter accepts the following options:
23589
23590       planes
23591           Set which planes will be processed as bitmap, unprocessed planes
23592           will be copied from first stream.  By default value 0xf, all planes
23593           will be processed.
23594
23595       Commands
23596
23597       This filter supports the all above options as commands.
23598
23599   maskedmerge
23600       Merge the first input stream with the second input stream using per
23601       pixel weights in the third input stream.
23602
23603       A value of 0 in the third stream pixel component means that pixel
23604       component from first stream is returned unchanged, while maximum value
23605       (eg. 255 for 8-bit videos) means that pixel component from second
23606       stream is returned unchanged. Intermediate values define the amount of
23607       merging between both input stream's pixel components.
23608
23609       This filter accepts the following options:
23610
23611       planes
23612           Set which planes will be processed as bitmap, unprocessed planes
23613           will be copied from first stream.  By default value 0xf, all planes
23614           will be processed.
23615
23616       Commands
23617
23618       This filter supports the all above options as commands.
23619
23620   maskedmin
23621       Merge the second and third input stream into output stream using
23622       absolute differences between second input stream and first input stream
23623       and absolute difference between third input stream and first input
23624       stream. The picked value will be from second input stream if second
23625       absolute difference is less than first one or from third input stream
23626       otherwise.
23627
23628       This filter accepts the following options:
23629
23630       planes
23631           Set which planes will be processed as bitmap, unprocessed planes
23632           will be copied from first stream.  By default value 0xf, all planes
23633           will be processed.
23634
23635       Commands
23636
23637       This filter supports the all above options as commands.
23638
23639   maskedthreshold
23640       Pick pixels comparing absolute difference of two video streams with
23641       fixed threshold.
23642
23643       If absolute difference between pixel component of first and second
23644       video stream is equal or lower than user supplied threshold than pixel
23645       component from first video stream is picked, otherwise pixel component
23646       from second video stream is picked.
23647
23648       This filter accepts the following options:
23649
23650       threshold
23651           Set threshold used when picking pixels from absolute difference
23652           from two input video streams.
23653
23654       planes
23655           Set which planes will be processed as bitmap, unprocessed planes
23656           will be copied from second stream.  By default value 0xf, all
23657           planes will be processed.
23658
23659       Commands
23660
23661       This filter supports the all above options as commands.
23662
23663   maskfun
23664       Create mask from input video.
23665
23666       For example it is useful to create motion masks after "tblend" filter.
23667
23668       This filter accepts the following options:
23669
23670       low Set low threshold. Any pixel component lower or exact than this
23671           value will be set to 0.
23672
23673       high
23674           Set high threshold. Any pixel component higher than this value will
23675           be set to max value allowed for current pixel format.
23676
23677       planes
23678           Set planes to filter, by default all available planes are filtered.
23679
23680       fill
23681           Fill all frame pixels with this value.
23682
23683       sum Set max average pixel value for frame. If sum of all pixel
23684           components is higher that this average, output frame will be
23685           completely filled with value set by fill option.  Typically useful
23686           for scene changes when used in combination with "tblend" filter.
23687
23688       Commands
23689
23690       This filter supports the all above options as commands.
23691
23692   mcdeint
23693       Apply motion-compensation deinterlacing.
23694
23695       It needs one field per frame as input and must thus be used together
23696       with yadif=1/3 or equivalent.
23697
23698       This filter is only available in ffmpeg version 4.4 or earlier.
23699
23700       This filter accepts the following options:
23701
23702       mode
23703           Set the deinterlacing mode.
23704
23705           It accepts one of the following values:
23706
23707           fast
23708           medium
23709           slow
23710               use iterative motion estimation
23711
23712           extra_slow
23713               like slow, but use multiple reference frames.
23714
23715           Default value is fast.
23716
23717       parity
23718           Set the picture field parity assumed for the input video. It must
23719           be one of the following values:
23720
23721           0, tff
23722               assume top field first
23723
23724           1, bff
23725               assume bottom field first
23726
23727           Default value is bff.
23728
23729       qp  Set per-block quantization parameter (QP) used by the internal
23730           encoder.
23731
23732           Higher values should result in a smoother motion vector field but
23733           less optimal individual vectors. Default value is 1.
23734
23735   median
23736       Pick median pixel from certain rectangle defined by radius.
23737
23738       This filter accepts the following options:
23739
23740       radius
23741           Set horizontal radius size. Default value is 1.  Allowed range is
23742           integer from 1 to 127.
23743
23744       planes
23745           Set which planes to process. Default is 15, which is all available
23746           planes.
23747
23748       radiusV
23749           Set vertical radius size. Default value is 0.  Allowed range is
23750           integer from 0 to 127.  If it is 0, value will be picked from
23751           horizontal "radius" option.
23752
23753       percentile
23754           Set median percentile. Default value is 0.5.  Default value of 0.5
23755           will pick always median values, while 0 will pick minimum values,
23756           and 1 maximum values.
23757
23758       Commands
23759
23760       This filter supports same commands as options.  The command accepts the
23761       same syntax of the corresponding option.
23762
23763       If the specified expression is not valid, it is kept at its current
23764       value.
23765
23766   mergeplanes
23767       Merge color channel components from several video streams.
23768
23769       The filter accepts up to 4 input streams, and merge selected input
23770       planes to the output video.
23771
23772       This filter accepts the following options:
23773
23774       mapping
23775           Set input to output plane mapping. Default is 0.
23776
23777           The mappings is specified as a bitmap. It should be specified as a
23778           hexadecimal number in the form 0xAa[Bb[Cc[Dd]]]. 'Aa' describes the
23779           mapping for the first plane of the output stream. 'A' sets the
23780           number of the input stream to use (from 0 to 3), and 'a' the plane
23781           number of the corresponding input to use (from 0 to 3). The rest of
23782           the mappings is similar, 'Bb' describes the mapping for the output
23783           stream second plane, 'Cc' describes the mapping for the output
23784           stream third plane and 'Dd' describes the mapping for the output
23785           stream fourth plane.
23786
23787       format
23788           Set output pixel format. Default is "yuva444p".
23789
23790       map0s
23791       map1s
23792       map2s
23793       map3s
23794           Set input to output stream mapping for output Nth plane. Default is
23795           0.
23796
23797       map0p
23798       map1p
23799       map2p
23800       map3p
23801           Set input to output plane mapping for output Nth plane. Default is
23802           0.
23803
23804       Examples
23805
23806       •   Merge three gray video streams of same width and height into single
23807           video stream:
23808
23809                   [a0][a1][a2]mergeplanes=0x001020:yuv444p
23810
23811       •   Merge 1st yuv444p stream and 2nd gray video stream into yuva444p
23812           video stream:
23813
23814                   [a0][a1]mergeplanes=0x00010210:yuva444p
23815
23816       •   Swap Y and A plane in yuva444p stream:
23817
23818                   format=yuva444p,mergeplanes=0x03010200:yuva444p
23819
23820       •   Swap U and V plane in yuv420p stream:
23821
23822                   format=yuv420p,mergeplanes=0x000201:yuv420p
23823
23824       •   Cast a rgb24 clip to yuv444p:
23825
23826                   format=rgb24,mergeplanes=0x000102:yuv444p
23827
23828   mestimate
23829       Estimate and export motion vectors using block matching algorithms.
23830       Motion vectors are stored in frame side data to be used by other
23831       filters.
23832
23833       This filter accepts the following options:
23834
23835       method
23836           Specify the motion estimation method. Accepts one of the following
23837           values:
23838
23839           esa Exhaustive search algorithm.
23840
23841           tss Three step search algorithm.
23842
23843           tdls
23844               Two dimensional logarithmic search algorithm.
23845
23846           ntss
23847               New three step search algorithm.
23848
23849           fss Four step search algorithm.
23850
23851           ds  Diamond search algorithm.
23852
23853           hexbs
23854               Hexagon-based search algorithm.
23855
23856           epzs
23857               Enhanced predictive zonal search algorithm.
23858
23859           umh Uneven multi-hexagon search algorithm.
23860
23861           Default value is esa.
23862
23863       mb_size
23864           Macroblock size. Default 16.
23865
23866       search_param
23867           Search parameter. Default 7.
23868
23869   midequalizer
23870       Apply Midway Image Equalization effect using two video streams.
23871
23872       Midway Image Equalization adjusts a pair of images to have the same
23873       histogram, while maintaining their dynamics as much as possible. It's
23874       useful for e.g. matching exposures from a pair of stereo cameras.
23875
23876       This filter has two inputs and one output, which must be of same pixel
23877       format, but may be of different sizes. The output of filter is first
23878       input adjusted with midway histogram of both inputs.
23879
23880       This filter accepts the following option:
23881
23882       planes
23883           Set which planes to process. Default is 15, which is all available
23884           planes.
23885
23886   minterpolate
23887       Convert the video to specified frame rate using motion interpolation.
23888
23889       This filter accepts the following options:
23890
23891       fps Specify the output frame rate. This can be rational e.g.
23892           "60000/1001". Frames are dropped if fps is lower than source fps.
23893           Default 60.
23894
23895       mi_mode
23896           Motion interpolation mode. Following values are accepted:
23897
23898           dup Duplicate previous or next frame for interpolating new ones.
23899
23900           blend
23901               Blend source frames. Interpolated frame is mean of previous and
23902               next frames.
23903
23904           mci Motion compensated interpolation. Following options are
23905               effective when this mode is selected:
23906
23907               mc_mode
23908                   Motion compensation mode. Following values are accepted:
23909
23910                   obmc
23911                       Overlapped block motion compensation.
23912
23913                   aobmc
23914                       Adaptive overlapped block motion compensation. Window
23915                       weighting coefficients are controlled adaptively
23916                       according to the reliabilities of the neighboring
23917                       motion vectors to reduce oversmoothing.
23918
23919                   Default mode is obmc.
23920
23921               me_mode
23922                   Motion estimation mode. Following values are accepted:
23923
23924                   bidir
23925                       Bidirectional motion estimation. Motion vectors are
23926                       estimated for each source frame in both forward and
23927                       backward directions.
23928
23929                   bilat
23930                       Bilateral motion estimation. Motion vectors are
23931                       estimated directly for interpolated frame.
23932
23933                   Default mode is bilat.
23934
23935               me  The algorithm to be used for motion estimation. Following
23936                   values are accepted:
23937
23938                   esa Exhaustive search algorithm.
23939
23940                   tss Three step search algorithm.
23941
23942                   tdls
23943                       Two dimensional logarithmic search algorithm.
23944
23945                   ntss
23946                       New three step search algorithm.
23947
23948                   fss Four step search algorithm.
23949
23950                   ds  Diamond search algorithm.
23951
23952                   hexbs
23953                       Hexagon-based search algorithm.
23954
23955                   epzs
23956                       Enhanced predictive zonal search algorithm.
23957
23958                   umh Uneven multi-hexagon search algorithm.
23959
23960                   Default algorithm is epzs.
23961
23962               mb_size
23963                   Macroblock size. Default 16.
23964
23965               search_param
23966                   Motion estimation search parameter. Default 32.
23967
23968               vsbmc
23969                   Enable variable-size block motion compensation. Motion
23970                   estimation is applied with smaller block sizes at object
23971                   boundaries in order to make the them less blur. Default is
23972                   0 (disabled).
23973
23974       scd Scene change detection method. Scene change leads motion vectors to
23975           be in random direction. Scene change detection replace interpolated
23976           frames by duplicate ones. May not be needed for other modes.
23977           Following values are accepted:
23978
23979           none
23980               Disable scene change detection.
23981
23982           fdiff
23983               Frame difference. Corresponding pixel values are compared and
23984               if it satisfies scd_threshold scene change is detected.
23985
23986           Default method is fdiff.
23987
23988       scd_threshold
23989           Scene change detection threshold. Default is 10..
23990
23991   mix
23992       Mix several video input streams into one video stream.
23993
23994       A description of the accepted options follows.
23995
23996       inputs
23997           The number of inputs. If unspecified, it defaults to 2.
23998
23999       weights
24000           Specify weight of each input video stream as sequence.  Each weight
24001           is separated by space. If number of weights is smaller than number
24002           of frames last specified weight will be used for all remaining
24003           unset weights.
24004
24005       scale
24006           Specify scale, if it is set it will be multiplied with sum of each
24007           weight multiplied with pixel values to give final destination pixel
24008           value. By default scale is auto scaled to sum of weights.
24009
24010       planes
24011           Set which planes to filter. Default is all. Allowed range is from 0
24012           to 15.
24013
24014       duration
24015           Specify how end of stream is determined.
24016
24017           longest
24018               The duration of the longest input. (default)
24019
24020           shortest
24021               The duration of the shortest input.
24022
24023           first
24024               The duration of the first input.
24025
24026       Commands
24027
24028       This filter supports the following commands:
24029
24030       weights
24031       scale
24032       planes
24033           Syntax is same as option with same name.
24034
24035   monochrome
24036       Convert video to gray using custom color filter.
24037
24038       A description of the accepted options follows.
24039
24040       cb  Set the chroma blue spot. Allowed range is from -1 to 1.  Default
24041           value is 0.
24042
24043       cr  Set the chroma red spot. Allowed range is from -1 to 1.  Default
24044           value is 0.
24045
24046       size
24047           Set the color filter size. Allowed range is from .1 to 10.  Default
24048           value is 1.
24049
24050       high
24051           Set the highlights strength. Allowed range is from 0 to 1.  Default
24052           value is 0.
24053
24054       Commands
24055
24056       This filter supports the all above options as commands.
24057
24058   morpho
24059       This filter allows to apply main morphological grayscale transforms,
24060       erode and dilate with arbitrary structures set in second input stream.
24061
24062       Unlike naive implementation and much slower performance in erosion and
24063       dilation filters, when speed is critical "morpho" filter should be used
24064       instead.
24065
24066       A description of accepted options follows,
24067
24068       mode
24069           Set morphological transform to apply, can be:
24070
24071           erode
24072           dilate
24073           open
24074           close
24075           gradient
24076           tophat
24077           blackhat
24078
24079           Default is "erode".
24080
24081       planes
24082           Set planes to filter, by default all planes except alpha are
24083           filtered.
24084
24085       structure
24086           Set which structure video frames will be processed from second
24087           input stream, can be first or all. Default is all.
24088
24089       The "morpho" filter also supports the framesync options.
24090
24091       Commands
24092
24093       This filter supports same commands as options.
24094
24095   mpdecimate
24096       Drop frames that do not differ greatly from the previous frame in order
24097       to reduce frame rate.
24098
24099       The main use of this filter is for very-low-bitrate encoding (e.g.
24100       streaming over dialup modem), but it could in theory be used for fixing
24101       movies that were inverse-telecined incorrectly.
24102
24103       A description of the accepted options follows.
24104
24105       max Set the maximum number of consecutive frames which can be dropped
24106           (if positive), or the minimum interval between dropped frames (if
24107           negative). If the value is 0, the frame is dropped disregarding the
24108           number of previous sequentially dropped frames.
24109
24110           Default value is 0.
24111
24112       hi
24113       lo
24114       frac
24115           Set the dropping threshold values.
24116
24117           Values for hi and lo are for 8x8 pixel blocks and represent actual
24118           pixel value differences, so a threshold of 64 corresponds to 1 unit
24119           of difference for each pixel, or the same spread out differently
24120           over the block.
24121
24122           A frame is a candidate for dropping if no 8x8 blocks differ by more
24123           than a threshold of hi, and if no more than frac blocks (1 meaning
24124           the whole image) differ by more than a threshold of lo.
24125
24126           Default value for hi is 64*12, default value for lo is 64*5, and
24127           default value for frac is 0.33.
24128
24129   msad
24130       Obtain the MSAD (Mean Sum of Absolute Differences) between two input
24131       videos.
24132
24133       This filter takes two input videos.
24134
24135       Both input videos must have the same resolution and pixel format for
24136       this filter to work correctly. Also it assumes that both inputs have
24137       the same number of frames, which are compared one by one.
24138
24139       The obtained per component, average, min and max MSAD is printed
24140       through the logging system.
24141
24142       The filter stores the calculated MSAD of each frame in frame metadata.
24143
24144       In the below example the input file main.mpg being processed is
24145       compared with the reference file ref.mpg.
24146
24147               ffmpeg -i main.mpg -i ref.mpg -lavfi msad -f null -
24148
24149   multiply
24150       Multiply first video stream pixels values with second video stream
24151       pixels values.
24152
24153       The filter accepts the following options:
24154
24155       scale
24156           Set the scale applied to second video stream. By default is 1.
24157           Allowed range is from 0 to 9.
24158
24159       offset
24160           Set the offset applied to second video stream. By default is 0.5.
24161           Allowed range is from "-1" to 1.
24162
24163       planes
24164           Specify planes from input video stream that will be processed.  By
24165           default all planes are processed.
24166
24167       Commands
24168
24169       This filter supports same commands as options.
24170
24171   negate
24172       Negate (invert) the input video.
24173
24174       It accepts the following option:
24175
24176       components
24177           Set components to negate.
24178
24179           Available values for components are:
24180
24181           y
24182           u
24183           v
24184           a
24185           r
24186           g
24187           b
24188       negate_alpha
24189           With value 1, it negates the alpha component, if present. Default
24190           value is 0.
24191
24192       Commands
24193
24194       This filter supports same commands as options.
24195
24196   nlmeans
24197       Denoise frames using Non-Local Means algorithm.
24198
24199       Each pixel is adjusted by looking for other pixels with similar
24200       contexts. This context similarity is defined by comparing their
24201       surrounding patches of size pxp. Patches are searched in an area of rxr
24202       around the pixel.
24203
24204       Note that the research area defines centers for patches, which means
24205       some patches will be made of pixels outside that research area.
24206
24207       The filter accepts the following options.
24208
24209       s   Set denoising strength. Default is 1.0. Must be in range [1.0,
24210           30.0].
24211
24212       p   Set patch size. Default is 7. Must be odd number in range [0, 99].
24213
24214       pc  Same as p but for chroma planes.
24215
24216           The default value is 0 and means automatic.
24217
24218       r   Set research size. Default is 15. Must be odd number in range [0,
24219           99].
24220
24221       rc  Same as r but for chroma planes.
24222
24223           The default value is 0 and means automatic.
24224
24225   nnedi
24226       Deinterlace video using neural network edge directed interpolation.
24227
24228       This filter accepts the following options:
24229
24230       weights
24231           Mandatory option, without binary file filter can not work.
24232           Currently file can be found here:
24233           https://github.com/dubhater/vapoursynth-nnedi3/blob/master/src/nnedi3_weights.bin
24234
24235       deint
24236           Set which frames to deinterlace, by default it is "all".  Can be
24237           "all" or "interlaced".
24238
24239       field
24240           Set mode of operation.
24241
24242           Can be one of the following:
24243
24244           af  Use frame flags, both fields.
24245
24246           a   Use frame flags, single field.
24247
24248           t   Use top field only.
24249
24250           b   Use bottom field only.
24251
24252           tf  Use both fields, top first.
24253
24254           bf  Use both fields, bottom first.
24255
24256       planes
24257           Set which planes to process, by default filter process all frames.
24258
24259       nsize
24260           Set size of local neighborhood around each pixel, used by the
24261           predictor neural network.
24262
24263           Can be one of the following:
24264
24265           s8x6
24266           s16x6
24267           s32x6
24268           s48x6
24269           s8x4
24270           s16x4
24271           s32x4
24272       nns Set the number of neurons in predictor neural network.  Can be one
24273           of the following:
24274
24275           n16
24276           n32
24277           n64
24278           n128
24279           n256
24280       qual
24281           Controls the number of different neural network predictions that
24282           are blended together to compute the final output value. Can be
24283           "fast", default or "slow".
24284
24285       etype
24286           Set which set of weights to use in the predictor.  Can be one of
24287           the following:
24288
24289           a, abs
24290               weights trained to minimize absolute error
24291
24292           s, mse
24293               weights trained to minimize squared error
24294
24295       pscrn
24296           Controls whether or not the prescreener neural network is used to
24297           decide which pixels should be processed by the predictor neural
24298           network and which can be handled by simple cubic interpolation.
24299           The prescreener is trained to know whether cubic interpolation will
24300           be sufficient for a pixel or whether it should be predicted by the
24301           predictor nn.  The computational complexity of the prescreener nn
24302           is much less than that of the predictor nn. Since most pixels can
24303           be handled by cubic interpolation, using the prescreener generally
24304           results in much faster processing.  The prescreener is pretty
24305           accurate, so the difference between using it and not using it is
24306           almost always unnoticeable.
24307
24308           Can be one of the following:
24309
24310           none
24311           original
24312           new
24313           new2
24314           new3
24315
24316           Default is "new".
24317
24318       Commands
24319
24320       This filter supports same commands as options, excluding weights
24321       option.
24322
24323   noformat
24324       Force libavfilter not to use any of the specified pixel formats for the
24325       input to the next filter.
24326
24327       It accepts the following parameters:
24328
24329       pix_fmts
24330           A '|'-separated list of pixel format names, such as
24331           pix_fmts=yuv420p|monow|rgb24".
24332
24333       Examples
24334
24335       •   Force libavfilter to use a format different from yuv420p for the
24336           input to the vflip filter:
24337
24338                   noformat=pix_fmts=yuv420p,vflip
24339
24340       •   Convert the input video to any of the formats not contained in the
24341           list:
24342
24343                   noformat=yuv420p|yuv444p|yuv410p
24344
24345   noise
24346       Add noise on video input frame.
24347
24348       The filter accepts the following options:
24349
24350       all_seed
24351       c0_seed
24352       c1_seed
24353       c2_seed
24354       c3_seed
24355           Set noise seed for specific pixel component or all pixel components
24356           in case of all_seed. Default value is 123457.
24357
24358       all_strength, alls
24359       c0_strength, c0s
24360       c1_strength, c1s
24361       c2_strength, c2s
24362       c3_strength, c3s
24363           Set noise strength for specific pixel component or all pixel
24364           components in case all_strength. Default value is 0. Allowed range
24365           is [0, 100].
24366
24367       all_flags, allf
24368       c0_flags, c0f
24369       c1_flags, c1f
24370       c2_flags, c2f
24371       c3_flags, c3f
24372           Set pixel component flags or set flags for all components if
24373           all_flags.  Available values for component flags are:
24374
24375           a   averaged temporal noise (smoother)
24376
24377           p   mix random noise with a (semi)regular pattern
24378
24379           t   temporal noise (noise pattern changes between frames)
24380
24381           u   uniform noise (gaussian otherwise)
24382
24383       Examples
24384
24385       Add temporal and uniform noise to input video:
24386
24387               noise=alls=20:allf=t+u
24388
24389   normalize
24390       Normalize RGB video (aka histogram stretching, contrast stretching).
24391       See: https://en.wikipedia.org/wiki/Normalization_(image_processing)
24392
24393       For each channel of each frame, the filter computes the input range and
24394       maps it linearly to the user-specified output range. The output range
24395       defaults to the full dynamic range from pure black to pure white.
24396
24397       Temporal smoothing can be used on the input range to reduce flickering
24398       (rapid changes in brightness) caused when small dark or bright objects
24399       enter or leave the scene. This is similar to the auto-exposure
24400       (automatic gain control) on a video camera, and, like a video camera,
24401       it may cause a period of over- or under-exposure of the video.
24402
24403       The R,G,B channels can be normalized independently, which may cause
24404       some color shifting, or linked together as a single channel, which
24405       prevents color shifting. Linked normalization preserves hue.
24406       Independent normalization does not, so it can be used to remove some
24407       color casts. Independent and linked normalization can be combined in
24408       any ratio.
24409
24410       The normalize filter accepts the following options:
24411
24412       blackpt
24413       whitept
24414           Colors which define the output range. The minimum input value is
24415           mapped to the blackpt. The maximum input value is mapped to the
24416           whitept.  The defaults are black and white respectively. Specifying
24417           white for blackpt and black for whitept will give color-inverted,
24418           normalized video. Shades of grey can be used to reduce the dynamic
24419           range (contrast). Specifying saturated colors here can create some
24420           interesting effects.
24421
24422       smoothing
24423           The number of previous frames to use for temporal smoothing. The
24424           input range of each channel is smoothed using a rolling average
24425           over the current frame and the smoothing previous frames. The
24426           default is 0 (no temporal smoothing).
24427
24428       independence
24429           Controls the ratio of independent (color shifting) channel
24430           normalization to linked (color preserving) normalization. 0.0 is
24431           fully linked, 1.0 is fully independent. Defaults to 1.0 (fully
24432           independent).
24433
24434       strength
24435           Overall strength of the filter. 1.0 is full strength. 0.0 is a
24436           rather expensive no-op. Defaults to 1.0 (full strength).
24437
24438       Commands
24439
24440       This filter supports same commands as options, excluding smoothing
24441       option.  The command accepts the same syntax of the corresponding
24442       option.
24443
24444       If the specified expression is not valid, it is kept at its current
24445       value.
24446
24447       Examples
24448
24449       Stretch video contrast to use the full dynamic range, with no temporal
24450       smoothing; may flicker depending on the source content:
24451
24452               normalize=blackpt=black:whitept=white:smoothing=0
24453
24454       As above, but with 50 frames of temporal smoothing; flicker should be
24455       reduced, depending on the source content:
24456
24457               normalize=blackpt=black:whitept=white:smoothing=50
24458
24459       As above, but with hue-preserving linked channel normalization:
24460
24461               normalize=blackpt=black:whitept=white:smoothing=50:independence=0
24462
24463       As above, but with half strength:
24464
24465               normalize=blackpt=black:whitept=white:smoothing=50:independence=0:strength=0.5
24466
24467       Map the darkest input color to red, the brightest input color to cyan:
24468
24469               normalize=blackpt=red:whitept=cyan
24470
24471   null
24472       Pass the video source unchanged to the output.
24473
24474   ocr
24475       Optical Character Recognition
24476
24477       This filter uses Tesseract for optical character recognition. To enable
24478       compilation of this filter, you need to configure FFmpeg with
24479       "--enable-libtesseract".
24480
24481       It accepts the following options:
24482
24483       datapath
24484           Set datapath to tesseract data. Default is to use whatever was set
24485           at installation.
24486
24487       language
24488           Set language, default is "eng".
24489
24490       whitelist
24491           Set character whitelist.
24492
24493       blacklist
24494           Set character blacklist.
24495
24496       The filter exports recognized text as the frame metadata
24497       "lavfi.ocr.text".  The filter exports confidence of recognized words as
24498       the frame metadata "lavfi.ocr.confidence".
24499
24500   ocv
24501       Apply a video transform using libopencv.
24502
24503       To enable this filter, install the libopencv library and headers and
24504       configure FFmpeg with "--enable-libopencv".
24505
24506       It accepts the following parameters:
24507
24508       filter_name
24509           The name of the libopencv filter to apply.
24510
24511       filter_params
24512           The parameters to pass to the libopencv filter. If not specified,
24513           the default values are assumed.
24514
24515       Refer to the official libopencv documentation for more precise
24516       information:
24517       <http://docs.opencv.org/master/modules/imgproc/doc/filtering.html>
24518
24519       Several libopencv filters are supported; see the following subsections.
24520
24521       dilate
24522
24523       Dilate an image by using a specific structuring element.  It
24524       corresponds to the libopencv function "cvDilate".
24525
24526       It accepts the parameters: struct_el|nb_iterations.
24527
24528       struct_el represents a structuring element, and has the syntax:
24529       colsxrows+anchor_xxanchor_y/shape
24530
24531       cols and rows represent the number of columns and rows of the
24532       structuring element, anchor_x and anchor_y the anchor point, and shape
24533       the shape for the structuring element. shape must be "rect", "cross",
24534       "ellipse", or "custom".
24535
24536       If the value for shape is "custom", it must be followed by a string of
24537       the form "=filename". The file with name filename is assumed to
24538       represent a binary image, with each printable character corresponding
24539       to a bright pixel. When a custom shape is used, cols and rows are
24540       ignored, the number or columns and rows of the read file are assumed
24541       instead.
24542
24543       The default value for struct_el is "3x3+0x0/rect".
24544
24545       nb_iterations specifies the number of times the transform is applied to
24546       the image, and defaults to 1.
24547
24548       Some examples:
24549
24550               # Use the default values
24551               ocv=dilate
24552
24553               # Dilate using a structuring element with a 5x5 cross, iterating two times
24554               ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2
24555
24556               # Read the shape from the file diamond.shape, iterating two times.
24557               # The file diamond.shape may contain a pattern of characters like this
24558               #   *
24559               #  ***
24560               # *****
24561               #  ***
24562               #   *
24563               # The specified columns and rows are ignored
24564               # but the anchor point coordinates are not
24565               ocv=dilate:0x0+2x2/custom=diamond.shape|2
24566
24567       erode
24568
24569       Erode an image by using a specific structuring element.  It corresponds
24570       to the libopencv function "cvErode".
24571
24572       It accepts the parameters: struct_el:nb_iterations, with the same
24573       syntax and semantics as the dilate filter.
24574
24575       smooth
24576
24577       Smooth the input video.
24578
24579       The filter takes the following parameters:
24580       type|param1|param2|param3|param4.
24581
24582       type is the type of smooth filter to apply, and must be one of the
24583       following values: "blur", "blur_no_scale", "median", "gaussian", or
24584       "bilateral". The default value is "gaussian".
24585
24586       The meaning of param1, param2, param3, and param4 depends on the smooth
24587       type. param1 and param2 accept integer positive values or 0. param3 and
24588       param4 accept floating point values.
24589
24590       The default value for param1 is 3. The default value for the other
24591       parameters is 0.
24592
24593       These parameters correspond to the parameters assigned to the libopencv
24594       function "cvSmooth".
24595
24596   oscilloscope
24597       2D Video Oscilloscope.
24598
24599       Useful to measure spatial impulse, step responses, chroma delays, etc.
24600
24601       It accepts the following parameters:
24602
24603       x   Set scope center x position.
24604
24605       y   Set scope center y position.
24606
24607       s   Set scope size, relative to frame diagonal.
24608
24609       t   Set scope tilt/rotation.
24610
24611       o   Set trace opacity.
24612
24613       tx  Set trace center x position.
24614
24615       ty  Set trace center y position.
24616
24617       tw  Set trace width, relative to width of frame.
24618
24619       th  Set trace height, relative to height of frame.
24620
24621       c   Set which components to trace. By default it traces first three
24622           components.
24623
24624       g   Draw trace grid. By default is enabled.
24625
24626       st  Draw some statistics. By default is enabled.
24627
24628       sc  Draw scope. By default is enabled.
24629
24630       Commands
24631
24632       This filter supports same commands as options.  The command accepts the
24633       same syntax of the corresponding option.
24634
24635       If the specified expression is not valid, it is kept at its current
24636       value.
24637
24638       Examples
24639
24640       •   Inspect full first row of video frame.
24641
24642                   oscilloscope=x=0.5:y=0:s=1
24643
24644       •   Inspect full last row of video frame.
24645
24646                   oscilloscope=x=0.5:y=1:s=1
24647
24648       •   Inspect full 5th line of video frame of height 1080.
24649
24650                   oscilloscope=x=0.5:y=5/1080:s=1
24651
24652       •   Inspect full last column of video frame.
24653
24654                   oscilloscope=x=1:y=0.5:s=1:t=1
24655
24656   overlay
24657       Overlay one video on top of another.
24658
24659       It takes two inputs and has one output. The first input is the "main"
24660       video on which the second input is overlaid.
24661
24662       It accepts the following parameters:
24663
24664       A description of the accepted options follows.
24665
24666       x
24667       y   Set the expression for the x and y coordinates of the overlaid
24668           video on the main video. Default value is "0" for both expressions.
24669           In case the expression is invalid, it is set to a huge value
24670           (meaning that the overlay will not be displayed within the output
24671           visible area).
24672
24673       eof_action
24674           See framesync.
24675
24676       eval
24677           Set when the expressions for x, and y are evaluated.
24678
24679           It accepts the following values:
24680
24681           init
24682               only evaluate expressions once during the filter initialization
24683               or when a command is processed
24684
24685           frame
24686               evaluate expressions for each incoming frame
24687
24688           Default value is frame.
24689
24690       shortest
24691           See framesync.
24692
24693       format
24694           Set the format for the output video.
24695
24696           It accepts the following values:
24697
24698           yuv420
24699               force YUV420 output
24700
24701           yuv420p10
24702               force YUV420p10 output
24703
24704           yuv422
24705               force YUV422 output
24706
24707           yuv422p10
24708               force YUV422p10 output
24709
24710           yuv444
24711               force YUV444 output
24712
24713           rgb force packed RGB output
24714
24715           gbrp
24716               force planar RGB output
24717
24718           auto
24719               automatically pick format
24720
24721           Default value is yuv420.
24722
24723       repeatlast
24724           See framesync.
24725
24726       alpha
24727           Set format of alpha of the overlaid video, it can be straight or
24728           premultiplied. Default is straight.
24729
24730       The x, and y expressions can contain the following parameters.
24731
24732       main_w, W
24733       main_h, H
24734           The main input width and height.
24735
24736       overlay_w, w
24737       overlay_h, h
24738           The overlay input width and height.
24739
24740       x
24741       y   The computed values for x and y. They are evaluated for each new
24742           frame.
24743
24744       hsub
24745       vsub
24746           horizontal and vertical chroma subsample values of the output
24747           format. For example for the pixel format "yuv422p" hsub is 2 and
24748           vsub is 1.
24749
24750       n   the number of input frame, starting from 0
24751
24752       pos the position in the file of the input frame, NAN if unknown
24753
24754       t   The timestamp, expressed in seconds. It's NAN if the input
24755           timestamp is unknown.
24756
24757       This filter also supports the framesync options.
24758
24759       Note that the n, pos, t variables are available only when evaluation is
24760       done per frame, and will evaluate to NAN when eval is set to init.
24761
24762       Be aware that frames are taken from each input video in timestamp
24763       order, hence, if their initial timestamps differ, it is a good idea to
24764       pass the two inputs through a setpts=PTS-STARTPTS filter to have them
24765       begin in the same zero timestamp, as the example for the movie filter
24766       does.
24767
24768       You can chain together more overlays but you should test the efficiency
24769       of such approach.
24770
24771       Commands
24772
24773       This filter supports the following commands:
24774
24775       x
24776       y   Modify the x and y of the overlay input.  The command accepts the
24777           same syntax of the corresponding option.
24778
24779           If the specified expression is not valid, it is kept at its current
24780           value.
24781
24782       Examples
24783
24784       •   Draw the overlay at 10 pixels from the bottom right corner of the
24785           main video:
24786
24787                   overlay=main_w-overlay_w-10:main_h-overlay_h-10
24788
24789           Using named options the example above becomes:
24790
24791                   overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
24792
24793       •   Insert a transparent PNG logo in the bottom left corner of the
24794           input, using the ffmpeg tool with the "-filter_complex" option:
24795
24796                   ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
24797
24798       •   Insert 2 different transparent PNG logos (second logo on bottom
24799           right corner) using the ffmpeg tool:
24800
24801                   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
24802
24803       •   Add a transparent color layer on top of the main video; "WxH" must
24804           specify the size of the main input to the overlay filter:
24805
24806                   color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
24807
24808       •   Play an original video and a filtered version (here with the
24809           deshake filter) side by side using the ffplay tool:
24810
24811                   ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
24812
24813           The above command is the same as:
24814
24815                   ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
24816
24817       •   Make a sliding overlay appearing from the left to the right top
24818           part of the screen starting since time 2:
24819
24820                   overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
24821
24822       •   Compose output by putting two input videos side to side:
24823
24824                   ffmpeg -i left.avi -i right.avi -filter_complex "
24825                   nullsrc=size=200x100 [background];
24826                   [0:v] setpts=PTS-STARTPTS, scale=100x100 [left];
24827                   [1:v] setpts=PTS-STARTPTS, scale=100x100 [right];
24828                   [background][left]       overlay=shortest=1       [background+left];
24829                   [background+left][right] overlay=shortest=1:x=100 [left+right]
24830                   "
24831
24832       •   Mask 10-20 seconds of a video by applying the delogo filter to a
24833           section
24834
24835                   ffmpeg -i test.avi -codec:v:0 wmv2 -ar 11025 -b:v 9000k
24836                   -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]'
24837                   masked.avi
24838
24839       •   Chain several overlays in cascade:
24840
24841                   nullsrc=s=200x200 [bg];
24842                   testsrc=s=100x100, split=4 [in0][in1][in2][in3];
24843                   [in0] lutrgb=r=0, [bg]   overlay=0:0     [mid0];
24844                   [in1] lutrgb=g=0, [mid0] overlay=100:0   [mid1];
24845                   [in2] lutrgb=b=0, [mid1] overlay=0:100   [mid2];
24846                   [in3] null,       [mid2] overlay=100:100 [out0]
24847
24848   overlay_cuda
24849       Overlay one video on top of another.
24850
24851       This is the CUDA variant of the overlay filter.  It only accepts CUDA
24852       frames. The underlying input pixel formats have to match.
24853
24854       It takes two inputs and has one output. The first input is the "main"
24855       video on which the second input is overlaid.
24856
24857       It accepts the following parameters:
24858
24859       x
24860       y   Set expressions for the x and y coordinates of the overlaid video
24861           on the main video.
24862
24863           They can contain the following parameters:
24864
24865           main_w, W
24866           main_h, H
24867               The main input width and height.
24868
24869           overlay_w, w
24870           overlay_h, h
24871               The overlay input width and height.
24872
24873           x
24874           y   The computed values for x and y. They are evaluated for each
24875               new frame.
24876
24877           n   The ordinal index of the main input frame, starting from 0.
24878
24879           pos The byte offset position in the file of the main input frame,
24880               NAN if unknown.
24881
24882           t   The timestamp of the main input frame, expressed in seconds,
24883               NAN if unknown.
24884
24885           Default value is "0" for both expressions.
24886
24887       eval
24888           Set when the expressions for x and y are evaluated.
24889
24890           It accepts the following values:
24891
24892           init
24893               Evaluate expressions once during filter initialization or when
24894               a command is processed.
24895
24896           frame
24897               Evaluate expressions for each incoming frame
24898
24899           Default value is frame.
24900
24901       eof_action
24902           See framesync.
24903
24904       shortest
24905           See framesync.
24906
24907       repeatlast
24908           See framesync.
24909
24910       This filter also supports the framesync options.
24911
24912   owdenoise
24913       Apply Overcomplete Wavelet denoiser.
24914
24915       The filter accepts the following options:
24916
24917       depth
24918           Set depth.
24919
24920           Larger depth values will denoise lower frequency components more,
24921           but slow down filtering.
24922
24923           Must be an int in the range 8-16, default is 8.
24924
24925       luma_strength, ls
24926           Set luma strength.
24927
24928           Must be a double value in the range 0-1000, default is 1.0.
24929
24930       chroma_strength, cs
24931           Set chroma strength.
24932
24933           Must be a double value in the range 0-1000, default is 1.0.
24934
24935   pad
24936       Add paddings to the input image, and place the original input at the
24937       provided x, y coordinates.
24938
24939       It accepts the following parameters:
24940
24941       width, w
24942       height, h
24943           Specify an expression for the size of the output image with the
24944           paddings added. If the value for width or height is 0, the
24945           corresponding input size is used for the output.
24946
24947           The width expression can reference the value set by the height
24948           expression, and vice versa.
24949
24950           The default value of width and height is 0.
24951
24952       x
24953       y   Specify the offsets to place the input image at within the padded
24954           area, with respect to the top/left border of the output image.
24955
24956           The x expression can reference the value set by the y expression,
24957           and vice versa.
24958
24959           The default value of x and y is 0.
24960
24961           If x or y evaluate to a negative number, they'll be changed so the
24962           input image is centered on the padded area.
24963
24964       color
24965           Specify the color of the padded area. For the syntax of this
24966           option, check the "Color" section in the ffmpeg-utils manual.
24967
24968           The default value of color is "black".
24969
24970       eval
24971           Specify when to evaluate  width, height, x and y expression.
24972
24973           It accepts the following values:
24974
24975           init
24976               Only evaluate expressions once during the filter initialization
24977               or when a command is processed.
24978
24979           frame
24980               Evaluate expressions for each incoming frame.
24981
24982           Default value is init.
24983
24984       aspect
24985           Pad to aspect instead to a resolution.
24986
24987       The value for the width, height, x, and y options are expressions
24988       containing the following constants:
24989
24990       in_w
24991       in_h
24992           The input video width and height.
24993
24994       iw
24995       ih  These are the same as in_w and in_h.
24996
24997       out_w
24998       out_h
24999           The output width and height (the size of the padded area), as
25000           specified by the width and height expressions.
25001
25002       ow
25003       oh  These are the same as out_w and out_h.
25004
25005       x
25006       y   The x and y offsets as specified by the x and y expressions, or NAN
25007           if not yet specified.
25008
25009       a   same as iw / ih
25010
25011       sar input sample aspect ratio
25012
25013       dar input display aspect ratio, it is the same as (iw / ih) * sar
25014
25015       hsub
25016       vsub
25017           The horizontal and vertical chroma subsample values. For example
25018           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
25019
25020       Examples
25021
25022       •   Add paddings with the color "violet" to the input video. The output
25023           video size is 640x480, and the top-left corner of the input video
25024           is placed at column 0, row 40
25025
25026                   pad=640:480:0:40:violet
25027
25028           The example above is equivalent to the following command:
25029
25030                   pad=width=640:height=480:x=0:y=40:color=violet
25031
25032       •   Pad the input to get an output with dimensions increased by 3/2,
25033           and put the input video at the center of the padded area:
25034
25035                   pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
25036
25037       •   Pad the input to get a squared output with size equal to the
25038           maximum value between the input width and height, and put the input
25039           video at the center of the padded area:
25040
25041                   pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
25042
25043       •   Pad the input to get a final w/h ratio of 16:9:
25044
25045                   pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
25046
25047       •   In case of anamorphic video, in order to set the output display
25048           aspect correctly, it is necessary to use sar in the expression,
25049           according to the relation:
25050
25051                   (ih * X / ih) * sar = output_dar
25052                   X = output_dar / sar
25053
25054           Thus the previous example needs to be modified to:
25055
25056                   pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
25057
25058       •   Double the output size and put the input video in the bottom-right
25059           corner of the output padded area:
25060
25061                   pad="2*iw:2*ih:ow-iw:oh-ih"
25062
25063   palettegen
25064       Generate one palette for a whole video stream.
25065
25066       It accepts the following options:
25067
25068       max_colors
25069           Set the maximum number of colors to quantize in the palette.  Note:
25070           the palette will still contain 256 colors; the unused palette
25071           entries will be black.
25072
25073       reserve_transparent
25074           Create a palette of 255 colors maximum and reserve the last one for
25075           transparency. Reserving the transparency color is useful for GIF
25076           optimization.  If not set, the maximum of colors in the palette
25077           will be 256. You probably want to disable this option for a
25078           standalone image.  Set by default.
25079
25080       transparency_color
25081           Set the color that will be used as background for transparency.
25082
25083       stats_mode
25084           Set statistics mode.
25085
25086           It accepts the following values:
25087
25088           full
25089               Compute full frame histograms.
25090
25091           diff
25092               Compute histograms only for the part that differs from previous
25093               frame. This might be relevant to give more importance to the
25094               moving part of your input if the background is static.
25095
25096           single
25097               Compute new histogram for each frame.
25098
25099           Default value is full.
25100
25101       use_alpha
25102           Create a palette of colors with alpha components.  Setting this,
25103           will automatically disable 'reserve_transparent'.
25104
25105       The filter also exports the frame metadata "lavfi.color_quant_ratio"
25106       ("nb_color_in / nb_color_out") which you can use to evaluate the degree
25107       of color quantization of the palette. This information is also visible
25108       at info logging level.
25109
25110       Examples
25111
25112       •   Generate a representative palette of a given video using ffmpeg:
25113
25114                   ffmpeg -i input.mkv -vf palettegen palette.png
25115
25116   paletteuse
25117       Use a palette to downsample an input video stream.
25118
25119       The filter takes two inputs: one video stream and a palette. The
25120       palette must be a 256 pixels image.
25121
25122       It accepts the following options:
25123
25124       dither
25125           Select dithering mode. Available algorithms are:
25126
25127           bayer
25128               Ordered 8x8 bayer dithering (deterministic)
25129
25130           heckbert
25131               Dithering as defined by Paul Heckbert in 1982 (simple error
25132               diffusion).  Note: this dithering is sometimes considered
25133               "wrong" and is included as a reference.
25134
25135           floyd_steinberg
25136               Floyd and Steingberg dithering (error diffusion)
25137
25138           sierra2
25139               Frankie Sierra dithering v2 (error diffusion)
25140
25141           sierra2_4a
25142               Frankie Sierra dithering v2 "Lite" (error diffusion)
25143
25144           Default is sierra2_4a.
25145
25146       bayer_scale
25147           When bayer dithering is selected, this option defines the scale of
25148           the pattern (how much the crosshatch pattern is visible). A low
25149           value means more visible pattern for less banding, and higher value
25150           means less visible pattern at the cost of more banding.
25151
25152           The option must be an integer value in the range [0,5]. Default is
25153           2.
25154
25155       diff_mode
25156           If set, define the zone to process
25157
25158           rectangle
25159               Only the changing rectangle will be reprocessed. This is
25160               similar to GIF cropping/offsetting compression mechanism. This
25161               option can be useful for speed if only a part of the image is
25162               changing, and has use cases such as limiting the scope of the
25163               error diffusal dither to the rectangle that bounds the moving
25164               scene (it leads to more deterministic output if the scene
25165               doesn't change much, and as a result less moving noise and
25166               better GIF compression).
25167
25168           Default is none.
25169
25170       new Take new palette for each output frame.
25171
25172       alpha_threshold
25173           Sets the alpha threshold for transparency. Alpha values above this
25174           threshold will be treated as completely opaque, and values below
25175           this threshold will be treated as completely transparent.
25176
25177           The option must be an integer value in the range [0,255]. Default
25178           is 128.
25179
25180       use_alpha
25181           Apply the palette by taking alpha values into account. Only useful
25182           with palettes that are containing multiple colors with alpha
25183           components.  Setting this will automatically disable
25184           'alpha_treshold'.
25185
25186       Examples
25187
25188       •   Use a palette (generated for example with palettegen) to encode a
25189           GIF using ffmpeg:
25190
25191                   ffmpeg -i input.mkv -i palette.png -lavfi paletteuse output.gif
25192
25193   perspective
25194       Correct perspective of video not recorded perpendicular to the screen.
25195
25196       A description of the accepted parameters follows.
25197
25198       x0
25199       y0
25200       x1
25201       y1
25202       x2
25203       y2
25204       x3
25205       y3  Set coordinates expression for top left, top right, bottom left and
25206           bottom right corners.  Default values are "0:0:W:0:0:H:W:H" with
25207           which perspective will remain unchanged.  If the "sense" option is
25208           set to "source", then the specified points will be sent to the
25209           corners of the destination. If the "sense" option is set to
25210           "destination", then the corners of the source will be sent to the
25211           specified coordinates.
25212
25213           The expressions can use the following variables:
25214
25215           W
25216           H   the width and height of video frame.
25217
25218           in  Input frame count.
25219
25220           on  Output frame count.
25221
25222       interpolation
25223           Set interpolation for perspective correction.
25224
25225           It accepts the following values:
25226
25227           linear
25228           cubic
25229
25230           Default value is linear.
25231
25232       sense
25233           Set interpretation of coordinate options.
25234
25235           It accepts the following values:
25236
25237           0, source
25238               Send point in the source specified by the given coordinates to
25239               the corners of the destination.
25240
25241           1, destination
25242               Send the corners of the source to the point in the destination
25243               specified by the given coordinates.
25244
25245               Default value is source.
25246
25247       eval
25248           Set when the expressions for coordinates x0,y0,...x3,y3 are
25249           evaluated.
25250
25251           It accepts the following values:
25252
25253           init
25254               only evaluate expressions once during the filter initialization
25255               or when a command is processed
25256
25257           frame
25258               evaluate expressions for each incoming frame
25259
25260           Default value is init.
25261
25262   phase
25263       Delay interlaced video by one field time so that the field order
25264       changes.
25265
25266       The intended use is to fix PAL movies that have been captured with the
25267       opposite field order to the film-to-video transfer.
25268
25269       A description of the accepted parameters follows.
25270
25271       mode
25272           Set phase mode.
25273
25274           It accepts the following values:
25275
25276           t   Capture field order top-first, transfer bottom-first.  Filter
25277               will delay the bottom field.
25278
25279           b   Capture field order bottom-first, transfer top-first.  Filter
25280               will delay the top field.
25281
25282           p   Capture and transfer with the same field order. This mode only
25283               exists for the documentation of the other options to refer to,
25284               but if you actually select it, the filter will faithfully do
25285               nothing.
25286
25287           a   Capture field order determined automatically by field flags,
25288               transfer opposite.  Filter selects among t and b modes on a
25289               frame by frame basis using field flags. If no field information
25290               is available, then this works just like u.
25291
25292           u   Capture unknown or varying, transfer opposite.  Filter selects
25293               among t and b on a frame by frame basis by analyzing the images
25294               and selecting the alternative that produces best match between
25295               the fields.
25296
25297           T   Capture top-first, transfer unknown or varying.  Filter selects
25298               among t and p using image analysis.
25299
25300           B   Capture bottom-first, transfer unknown or varying.  Filter
25301               selects among b and p using image analysis.
25302
25303           A   Capture determined by field flags, transfer unknown or varying.
25304               Filter selects among t, b and p using field flags and image
25305               analysis. If no field information is available, then this works
25306               just like U. This is the default mode.
25307
25308           U   Both capture and transfer unknown or varying.  Filter selects
25309               among t, b and p using image analysis only.
25310
25311       Commands
25312
25313       This filter supports the all above options as commands.
25314
25315   photosensitivity
25316       Reduce various flashes in video, so to help users with epilepsy.
25317
25318       It accepts the following options:
25319
25320       frames, f
25321           Set how many frames to use when filtering. Default is 30.
25322
25323       threshold, t
25324           Set detection threshold factor. Default is 1.  Lower is stricter.
25325
25326       skip
25327           Set how many pixels to skip when sampling frames. Default is 1.
25328           Allowed range is from 1 to 1024.
25329
25330       bypass
25331           Leave frames unchanged. Default is disabled.
25332
25333   pixdesctest
25334       Pixel format descriptor test filter, mainly useful for internal
25335       testing. The output video should be equal to the input video.
25336
25337       For example:
25338
25339               format=monow, pixdesctest
25340
25341       can be used to test the monowhite pixel format descriptor definition.
25342
25343   pixelize
25344       Apply pixelization to video stream.
25345
25346       The filter accepts the following options:
25347
25348       width, w
25349       height, h
25350           Set block dimensions that will be used for pixelization.  Default
25351           value is 16.
25352
25353       mode, m
25354           Set the mode of pixelization used.
25355
25356           Possible values are:
25357
25358           avg
25359           min
25360           max
25361
25362           Default value is "avg".
25363
25364       planes, p
25365           Set what planes to filter. Default is to filter all planes.
25366
25367       Commands
25368
25369       This filter supports all options as commands.
25370
25371   pixscope
25372       Display sample values of color channels. Mainly useful for checking
25373       color and levels. Minimum supported resolution is 640x480.
25374
25375       The filters accept the following options:
25376
25377       x   Set scope X position, relative offset on X axis.
25378
25379       y   Set scope Y position, relative offset on Y axis.
25380
25381       w   Set scope width.
25382
25383       h   Set scope height.
25384
25385       o   Set window opacity. This window also holds statistics about pixel
25386           area.
25387
25388       wx  Set window X position, relative offset on X axis.
25389
25390       wy  Set window Y position, relative offset on Y axis.
25391
25392       Commands
25393
25394       This filter supports same commands as options.
25395
25396   pp
25397       Enable the specified chain of postprocessing subfilters using
25398       libpostproc. This library should be automatically selected with a GPL
25399       build ("--enable-gpl").  Subfilters must be separated by '/' and can be
25400       disabled by prepending a '-'.  Each subfilter and some options have a
25401       short and a long name that can be used interchangeably, i.e. dr/dering
25402       are the same.
25403
25404       The filters accept the following options:
25405
25406       subfilters
25407           Set postprocessing subfilters string.
25408
25409       All subfilters share common options to determine their scope:
25410
25411       a/autoq
25412           Honor the quality commands for this subfilter.
25413
25414       c/chrom
25415           Do chrominance filtering, too (default).
25416
25417       y/nochrom
25418           Do luminance filtering only (no chrominance).
25419
25420       n/noluma
25421           Do chrominance filtering only (no luminance).
25422
25423       These options can be appended after the subfilter name, separated by a
25424       '|'.
25425
25426       Available subfilters are:
25427
25428       hb/hdeblock[|difference[|flatness]]
25429           Horizontal deblocking filter
25430
25431           difference
25432               Difference factor where higher values mean more deblocking
25433               (default: 32).
25434
25435           flatness
25436               Flatness threshold where lower values mean more deblocking
25437               (default: 39).
25438
25439       vb/vdeblock[|difference[|flatness]]
25440           Vertical deblocking filter
25441
25442           difference
25443               Difference factor where higher values mean more deblocking
25444               (default: 32).
25445
25446           flatness
25447               Flatness threshold where lower values mean more deblocking
25448               (default: 39).
25449
25450       ha/hadeblock[|difference[|flatness]]
25451           Accurate horizontal deblocking filter
25452
25453           difference
25454               Difference factor where higher values mean more deblocking
25455               (default: 32).
25456
25457           flatness
25458               Flatness threshold where lower values mean more deblocking
25459               (default: 39).
25460
25461       va/vadeblock[|difference[|flatness]]
25462           Accurate vertical deblocking filter
25463
25464           difference
25465               Difference factor where higher values mean more deblocking
25466               (default: 32).
25467
25468           flatness
25469               Flatness threshold where lower values mean more deblocking
25470               (default: 39).
25471
25472       The horizontal and vertical deblocking filters share the difference and
25473       flatness values so you cannot set different horizontal and vertical
25474       thresholds.
25475
25476       h1/x1hdeblock
25477           Experimental horizontal deblocking filter
25478
25479       v1/x1vdeblock
25480           Experimental vertical deblocking filter
25481
25482       dr/dering
25483           Deringing filter
25484
25485       tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise
25486       reducer
25487           threshold1
25488               larger -> stronger filtering
25489
25490           threshold2
25491               larger -> stronger filtering
25492
25493           threshold3
25494               larger -> stronger filtering
25495
25496       al/autolevels[:f/fullyrange], automatic brightness / contrast
25497       correction
25498           f/fullyrange
25499               Stretch luminance to "0-255".
25500
25501       lb/linblenddeint
25502           Linear blend deinterlacing filter that deinterlaces the given block
25503           by filtering all lines with a "(1 2 1)" filter.
25504
25505       li/linipoldeint
25506           Linear interpolating deinterlacing filter that deinterlaces the
25507           given block by linearly interpolating every second line.
25508
25509       ci/cubicipoldeint
25510           Cubic interpolating deinterlacing filter deinterlaces the given
25511           block by cubically interpolating every second line.
25512
25513       md/mediandeint
25514           Median deinterlacing filter that deinterlaces the given block by
25515           applying a median filter to every second line.
25516
25517       fd/ffmpegdeint
25518           FFmpeg deinterlacing filter that deinterlaces the given block by
25519           filtering every second line with a "(-1 4 2 4 -1)" filter.
25520
25521       l5/lowpass5
25522           Vertically applied FIR lowpass deinterlacing filter that
25523           deinterlaces the given block by filtering all lines with a "(-1 2 6
25524           2 -1)" filter.
25525
25526       fq/forceQuant[|quantizer]
25527           Overrides the quantizer table from the input with the constant
25528           quantizer you specify.
25529
25530           quantizer
25531               Quantizer to use
25532
25533       de/default
25534           Default pp filter combination ("hb|a,vb|a,dr|a")
25535
25536       fa/fast
25537           Fast pp filter combination ("h1|a,v1|a,dr|a")
25538
25539       ac  High quality pp filter combination ("ha|a|128|7,va|a,dr|a")
25540
25541       Examples
25542
25543       •   Apply horizontal and vertical deblocking, deringing and automatic
25544           brightness/contrast:
25545
25546                   pp=hb/vb/dr/al
25547
25548       •   Apply default filters without brightness/contrast correction:
25549
25550                   pp=de/-al
25551
25552       •   Apply default filters and temporal denoiser:
25553
25554                   pp=default/tmpnoise|1|2|3
25555
25556       •   Apply deblocking on luminance only, and switch vertical deblocking
25557           on or off automatically depending on available CPU time:
25558
25559                   pp=hb|y/vb|a
25560
25561   pp7
25562       Apply Postprocessing filter 7. It is variant of the spp filter, similar
25563       to spp = 6 with 7 point DCT, where only the center sample is used after
25564       IDCT.
25565
25566       The filter accepts the following options:
25567
25568       qp  Force a constant quantization parameter. It accepts an integer in
25569           range 0 to 63. If not set, the filter will use the QP from the
25570           video stream (if available).
25571
25572       mode
25573           Set thresholding mode. Available modes are:
25574
25575           hard
25576               Set hard thresholding.
25577
25578           soft
25579               Set soft thresholding (better de-ringing effect, but likely
25580               blurrier).
25581
25582           medium
25583               Set medium thresholding (good results, default).
25584
25585   premultiply
25586       Apply alpha premultiply effect to input video stream using first plane
25587       of second stream as alpha.
25588
25589       Both streams must have same dimensions and same pixel format.
25590
25591       The filter accepts the following option:
25592
25593       planes
25594           Set which planes will be processed, unprocessed planes will be
25595           copied.  By default value 0xf, all planes will be processed.
25596
25597       inplace
25598           Do not require 2nd input for processing, instead use alpha plane
25599           from input stream.
25600
25601   prewitt
25602       Apply prewitt operator to input video stream.
25603
25604       The filter accepts the following option:
25605
25606       planes
25607           Set which planes will be processed, unprocessed planes will be
25608           copied.  By default value 0xf, all planes will be processed.
25609
25610       scale
25611           Set value which will be multiplied with filtered result.
25612
25613       delta
25614           Set value which will be added to filtered result.
25615
25616       Commands
25617
25618       This filter supports the all above options as commands.
25619
25620   pseudocolor
25621       Alter frame colors in video with pseudocolors.
25622
25623       This filter accepts the following options:
25624
25625       c0  set pixel first component expression
25626
25627       c1  set pixel second component expression
25628
25629       c2  set pixel third component expression
25630
25631       c3  set pixel fourth component expression, corresponds to the alpha
25632           component
25633
25634       index, i
25635           set component to use as base for altering colors
25636
25637       preset, p
25638           Pick one of built-in LUTs. By default is set to none.
25639
25640           Available LUTs:
25641
25642           magma
25643           inferno
25644           plasma
25645           viridis
25646           turbo
25647           cividis
25648           range1
25649           range2
25650           shadows
25651           highlights
25652           solar
25653           nominal
25654           preferred
25655           total
25656       opacity
25657           Set opacity of output colors. Allowed range is from 0 to 1.
25658           Default value is set to 1.
25659
25660       Each of the expression options specifies the expression to use for
25661       computing the lookup table for the corresponding pixel component
25662       values.
25663
25664       The expressions can contain the following constants and functions:
25665
25666       w
25667       h   The input width and height.
25668
25669       val The input value for the pixel component.
25670
25671       ymin, umin, vmin, amin
25672           The minimum allowed component value.
25673
25674       ymax, umax, vmax, amax
25675           The maximum allowed component value.
25676
25677       All expressions default to "val".
25678
25679       Commands
25680
25681       This filter supports the all above options as commands.
25682
25683       Examples
25684
25685       •   Change too high luma values to gradient:
25686
25687                   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'"
25688
25689   psnr
25690       Obtain the average, maximum and minimum PSNR (Peak Signal to Noise
25691       Ratio) between two input videos.
25692
25693       This filter takes in input two input videos, the first input is
25694       considered the "main" source and is passed unchanged to the output. The
25695       second input is used as a "reference" video for computing the PSNR.
25696
25697       Both video inputs must have the same resolution and pixel format for
25698       this filter to work correctly. Also it assumes that both inputs have
25699       the same number of frames, which are compared one by one.
25700
25701       The obtained average PSNR is printed through the logging system.
25702
25703       The filter stores the accumulated MSE (mean squared error) of each
25704       frame, and at the end of the processing it is averaged across all
25705       frames equally, and the following formula is applied to obtain the
25706       PSNR:
25707
25708               PSNR = 10*log10(MAX^2/MSE)
25709
25710       Where MAX is the average of the maximum values of each component of the
25711       image.
25712
25713       The description of the accepted parameters follows.
25714
25715       stats_file, f
25716           If specified the filter will use the named file to save the PSNR of
25717           each individual frame. When filename equals "-" the data is sent to
25718           standard output.
25719
25720       stats_version
25721           Specifies which version of the stats file format to use. Details of
25722           each format are written below.  Default value is 1.
25723
25724       stats_add_max
25725           Determines whether the max value is output to the stats log.
25726           Default value is 0.  Requires stats_version >= 2. If this is set
25727           and stats_version < 2, the filter will return an error.
25728
25729       This filter also supports the framesync options.
25730
25731       The file printed if stats_file is selected, contains a sequence of
25732       key/value pairs of the form key:value for each compared couple of
25733       frames.
25734
25735       If a stats_version greater than 1 is specified, a header line precedes
25736       the list of per-frame-pair stats, with key value pairs following the
25737       frame format with the following parameters:
25738
25739       psnr_log_version
25740           The version of the log file format. Will match stats_version.
25741
25742       fields
25743           A comma separated list of the per-frame-pair parameters included in
25744           the log.
25745
25746       A description of each shown per-frame-pair parameter follows:
25747
25748       n   sequential number of the input frame, starting from 1
25749
25750       mse_avg
25751           Mean Square Error pixel-by-pixel average difference of the compared
25752           frames, averaged over all the image components.
25753
25754       mse_y, mse_u, mse_v, mse_r, mse_g, mse_b, mse_a
25755           Mean Square Error pixel-by-pixel average difference of the compared
25756           frames for the component specified by the suffix.
25757
25758       psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
25759           Peak Signal to Noise ratio of the compared frames for the component
25760           specified by the suffix.
25761
25762       max_avg, max_y, max_u, max_v
25763           Maximum allowed value for each channel, and average over all
25764           channels.
25765
25766       Examples
25767
25768       •   For example:
25769
25770                   movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
25771                   [main][ref] psnr="stats_file=stats.log" [out]
25772
25773           On this example the input file being processed is compared with the
25774           reference file ref_movie.mpg. The PSNR of each individual frame is
25775           stored in stats.log.
25776
25777       •   Another example with different containers:
25778
25779                   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 -
25780
25781   pullup
25782       Pulldown reversal (inverse telecine) filter, capable of handling mixed
25783       hard-telecine, 24000/1001 fps progressive, and 30000/1001 fps
25784       progressive content.
25785
25786       The pullup filter is designed to take advantage of future context in
25787       making its decisions. This filter is stateless in the sense that it
25788       does not lock onto a pattern to follow, but it instead looks forward to
25789       the following fields in order to identify matches and rebuild
25790       progressive frames.
25791
25792       To produce content with an even framerate, insert the fps filter after
25793       pullup, use "fps=24000/1001" if the input frame rate is 29.97fps,
25794       "fps=24" for 30fps and the (rare) telecined 25fps input.
25795
25796       The filter accepts the following options:
25797
25798       jl
25799       jr
25800       jt
25801       jb  These options set the amount of "junk" to ignore at the left,
25802           right, top, and bottom of the image, respectively. Left and right
25803           are in units of 8 pixels, while top and bottom are in units of 2
25804           lines.  The default is 8 pixels on each side.
25805
25806       sb  Set the strict breaks. Setting this option to 1 will reduce the
25807           chances of filter generating an occasional mismatched frame, but it
25808           may also cause an excessive number of frames to be dropped during
25809           high motion sequences.  Conversely, setting it to -1 will make
25810           filter match fields more easily.  This may help processing of video
25811           where there is slight blurring between the fields, but may also
25812           cause there to be interlaced frames in the output.  Default value
25813           is 0.
25814
25815       mp  Set the metric plane to use. It accepts the following values:
25816
25817           l   Use luma plane.
25818
25819           u   Use chroma blue plane.
25820
25821           v   Use chroma red plane.
25822
25823           This option may be set to use chroma plane instead of the default
25824           luma plane for doing filter's computations. This may improve
25825           accuracy on very clean source material, but more likely will
25826           decrease accuracy, especially if there is chroma noise (rainbow
25827           effect) or any grayscale video.  The main purpose of setting mp to
25828           a chroma plane is to reduce CPU load and make pullup usable in
25829           realtime on slow machines.
25830
25831       For best results (without duplicated frames in the output file) it is
25832       necessary to change the output frame rate. For example, to inverse
25833       telecine NTSC input:
25834
25835               ffmpeg -i input -vf pullup -r 24000/1001 ...
25836
25837   qp
25838       Change video quantization parameters (QP).
25839
25840       The filter accepts the following option:
25841
25842       qp  Set expression for quantization parameter.
25843
25844       The expression is evaluated through the eval API and can contain, among
25845       others, the following constants:
25846
25847       known
25848           1 if index is not 129, 0 otherwise.
25849
25850       qp  Sequential index starting from -129 to 128.
25851
25852       Examples
25853
25854       •   Some equation like:
25855
25856                   qp=2+2*sin(PI*qp)
25857
25858   random
25859       Flush video frames from internal cache of frames into a random order.
25860       No frame is discarded.  Inspired by frei0r nervous filter.
25861
25862       frames
25863           Set size in number of frames of internal cache, in range from 2 to
25864           512. Default is 30.
25865
25866       seed
25867           Set seed for random number generator, must be an integer included
25868           between 0 and "UINT32_MAX". If not specified, or if explicitly set
25869           to less than 0, the filter will try to use a good random seed on a
25870           best effort basis.
25871
25872   readeia608
25873       Read closed captioning (EIA-608) information from the top lines of a
25874       video frame.
25875
25876       This filter adds frame metadata for "lavfi.readeia608.X.cc" and
25877       "lavfi.readeia608.X.line", where "X" is the number of the identified
25878       line with EIA-608 data (starting from 0). A description of each
25879       metadata value follows:
25880
25881       lavfi.readeia608.X.cc
25882           The two bytes stored as EIA-608 data (printed in hexadecimal).
25883
25884       lavfi.readeia608.X.line
25885           The number of the line on which the EIA-608 data was identified and
25886           read.
25887
25888       This filter accepts the following options:
25889
25890       scan_min
25891           Set the line to start scanning for EIA-608 data. Default is 0.
25892
25893       scan_max
25894           Set the line to end scanning for EIA-608 data. Default is 29.
25895
25896       spw Set the ratio of width reserved for sync code detection.  Default
25897           is 0.27. Allowed range is "[0.1 - 0.7]".
25898
25899       chp Enable checking the parity bit. In the event of a parity error, the
25900           filter will output 0x00 for that character. Default is false.
25901
25902       lp  Lowpass lines prior to further processing. Default is enabled.
25903
25904       Commands
25905
25906       This filter supports the all above options as commands.
25907
25908       Examples
25909
25910       •   Output a csv with presentation time and the first two lines of
25911           identified EIA-608 captioning data.
25912
25913                   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
25914
25915   readvitc
25916       Read vertical interval timecode (VITC) information from the top lines
25917       of a video frame.
25918
25919       The filter adds frame metadata key "lavfi.readvitc.tc_str" with the
25920       timecode value, if a valid timecode has been detected. Further metadata
25921       key "lavfi.readvitc.found" is set to 0/1 depending on whether timecode
25922       data has been found or not.
25923
25924       This filter accepts the following options:
25925
25926       scan_max
25927           Set the maximum number of lines to scan for VITC data. If the value
25928           is set to "-1" the full video frame is scanned. Default is 45.
25929
25930       thr_b
25931           Set the luma threshold for black. Accepts float numbers in the
25932           range [0.0,1.0], default value is 0.2. The value must be equal or
25933           less than "thr_w".
25934
25935       thr_w
25936           Set the luma threshold for white. Accepts float numbers in the
25937           range [0.0,1.0], default value is 0.6. The value must be equal or
25938           greater than "thr_b".
25939
25940       Examples
25941
25942       •   Detect and draw VITC data onto the video frame; if no valid VITC is
25943           detected, draw "--:--:--:--" as a placeholder:
25944
25945                   ffmpeg -i input.avi -filter:v 'readvitc,drawtext=fontfile=FreeMono.ttf:text=%{metadata\\:lavfi.readvitc.tc_str\\:--\\\\\\:--\\\\\\:--\\\\\\:--}:x=(w-tw)/2:y=400-ascent'
25946
25947   remap
25948       Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
25949
25950       Destination pixel at position (X, Y) will be picked from source (x, y)
25951       position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
25952       out of range, zero value for pixel will be used for destination pixel.
25953
25954       Xmap and Ymap input video streams must be of same dimensions. Output
25955       video stream will have Xmap/Ymap video stream dimensions.  Xmap and
25956       Ymap input video streams are 16bit depth, single channel.
25957
25958       format
25959           Specify pixel format of output from this filter. Can be "color" or
25960           "gray".  Default is "color".
25961
25962       fill
25963           Specify the color of the unmapped pixels. For the syntax of this
25964           option, check the "Color" section in the ffmpeg-utils manual.
25965           Default color is "black".
25966
25967   removegrain
25968       The removegrain filter is a spatial denoiser for progressive video.
25969
25970       m0  Set mode for the first plane.
25971
25972       m1  Set mode for the second plane.
25973
25974       m2  Set mode for the third plane.
25975
25976       m3  Set mode for the fourth plane.
25977
25978       Range of mode is from 0 to 24. Description of each mode follows:
25979
25980       0   Leave input plane unchanged. Default.
25981
25982       1   Clips the pixel with the minimum and maximum of the 8 neighbour
25983           pixels.
25984
25985       2   Clips the pixel with the second minimum and maximum of the 8
25986           neighbour pixels.
25987
25988       3   Clips the pixel with the third minimum and maximum of the 8
25989           neighbour pixels.
25990
25991       4   Clips the pixel with the fourth minimum and maximum of the 8
25992           neighbour pixels.  This is equivalent to a median filter.
25993
25994       5   Line-sensitive clipping giving the minimal change.
25995
25996       6   Line-sensitive clipping, intermediate.
25997
25998       7   Line-sensitive clipping, intermediate.
25999
26000       8   Line-sensitive clipping, intermediate.
26001
26002       9   Line-sensitive clipping on a line where the neighbours pixels are
26003           the closest.
26004
26005       10  Replaces the target pixel with the closest neighbour.
26006
26007       11  [1 2 1] horizontal and vertical kernel blur.
26008
26009       12  Same as mode 11.
26010
26011       13  Bob mode, interpolates top field from the line where the neighbours
26012           pixels are the closest.
26013
26014       14  Bob mode, interpolates bottom field from the line where the
26015           neighbours pixels are the closest.
26016
26017       15  Bob mode, interpolates top field. Same as 13 but with a more
26018           complicated interpolation formula.
26019
26020       16  Bob mode, interpolates bottom field. Same as 14 but with a more
26021           complicated interpolation formula.
26022
26023       17  Clips the pixel with the minimum and maximum of respectively the
26024           maximum and minimum of each pair of opposite neighbour pixels.
26025
26026       18  Line-sensitive clipping using opposite neighbours whose greatest
26027           distance from the current pixel is minimal.
26028
26029       19  Replaces the pixel with the average of its 8 neighbours.
26030
26031       20  Averages the 9 pixels ([1 1 1] horizontal and vertical blur).
26032
26033       21  Clips pixels using the averages of opposite neighbour.
26034
26035       22  Same as mode 21 but simpler and faster.
26036
26037       23  Small edge and halo removal, but reputed useless.
26038
26039       24  Similar as 23.
26040
26041   removelogo
26042       Suppress a TV station logo, using an image file to determine which
26043       pixels comprise the logo. It works by filling in the pixels that
26044       comprise the logo with neighboring pixels.
26045
26046       The filter accepts the following options:
26047
26048       filename, f
26049           Set the filter bitmap file, which can be any image format supported
26050           by libavformat. The width and height of the image file must match
26051           those of the video stream being processed.
26052
26053       Pixels in the provided bitmap image with a value of zero are not
26054       considered part of the logo, non-zero pixels are considered part of the
26055       logo. If you use white (255) for the logo and black (0) for the rest,
26056       you will be safe. For making the filter bitmap, it is recommended to
26057       take a screen capture of a black frame with the logo visible, and then
26058       using a threshold filter followed by the erode filter once or twice.
26059
26060       If needed, little splotches can be fixed manually. Remember that if
26061       logo pixels are not covered, the filter quality will be much reduced.
26062       Marking too many pixels as part of the logo does not hurt as much, but
26063       it will increase the amount of blurring needed to cover over the image
26064       and will destroy more information than necessary, and extra pixels will
26065       slow things down on a large logo.
26066
26067   repeatfields
26068       This filter uses the repeat_field flag from the Video ES headers and
26069       hard repeats fields based on its value.
26070
26071   reverse
26072       Reverse a video clip.
26073
26074       Warning: This filter requires memory to buffer the entire clip, so
26075       trimming is suggested.
26076
26077       Examples
26078
26079       •   Take the first 5 seconds of a clip, and reverse it.
26080
26081                   trim=end=5,reverse
26082
26083   rgbashift
26084       Shift R/G/B/A pixels horizontally and/or vertically.
26085
26086       The filter accepts the following options:
26087
26088       rh  Set amount to shift red horizontally.
26089
26090       rv  Set amount to shift red vertically.
26091
26092       gh  Set amount to shift green horizontally.
26093
26094       gv  Set amount to shift green vertically.
26095
26096       bh  Set amount to shift blue horizontally.
26097
26098       bv  Set amount to shift blue vertically.
26099
26100       ah  Set amount to shift alpha horizontally.
26101
26102       av  Set amount to shift alpha vertically.
26103
26104       edge
26105           Set edge mode, can be smear, default, or warp.
26106
26107       Commands
26108
26109       This filter supports the all above options as commands.
26110
26111   roberts
26112       Apply roberts cross operator to input video stream.
26113
26114       The filter accepts the following option:
26115
26116       planes
26117           Set which planes will be processed, unprocessed planes will be
26118           copied.  By default value 0xf, all planes will be processed.
26119
26120       scale
26121           Set value which will be multiplied with filtered result.
26122
26123       delta
26124           Set value which will be added to filtered result.
26125
26126       Commands
26127
26128       This filter supports the all above options as commands.
26129
26130   rotate
26131       Rotate video by an arbitrary angle expressed in radians.
26132
26133       The filter accepts the following options:
26134
26135       A description of the optional parameters follows.
26136
26137       angle, a
26138           Set an expression for the angle by which to rotate the input video
26139           clockwise, expressed as a number of radians. A negative value will
26140           result in a counter-clockwise rotation. By default it is set to
26141           "0".
26142
26143           This expression is evaluated for each frame.
26144
26145       out_w, ow
26146           Set the output width expression, default value is "iw".  This
26147           expression is evaluated just once during configuration.
26148
26149       out_h, oh
26150           Set the output height expression, default value is "ih".  This
26151           expression is evaluated just once during configuration.
26152
26153       bilinear
26154           Enable bilinear interpolation if set to 1, a value of 0 disables
26155           it. Default value is 1.
26156
26157       fillcolor, c
26158           Set the color used to fill the output area not covered by the
26159           rotated image. For the general syntax of this option, check the
26160           "Color" section in the ffmpeg-utils manual.  If the special value
26161           "none" is selected then no background is printed (useful for
26162           example if the background is never shown).
26163
26164           Default value is "black".
26165
26166       The expressions for the angle and the output size can contain the
26167       following constants and functions:
26168
26169       n   sequential number of the input frame, starting from 0. It is always
26170           NAN before the first frame is filtered.
26171
26172       t   time in seconds of the input frame, it is set to 0 when the filter
26173           is configured. It is always NAN before the first frame is filtered.
26174
26175       hsub
26176       vsub
26177           horizontal and vertical chroma subsample values. For example for
26178           the pixel format "yuv422p" hsub is 2 and vsub is 1.
26179
26180       in_w, iw
26181       in_h, ih
26182           the input video width and height
26183
26184       out_w, ow
26185       out_h, oh
26186           the output width and height, that is the size of the padded area as
26187           specified by the width and height expressions
26188
26189       rotw(a)
26190       roth(a)
26191           the minimal width/height required for completely containing the
26192           input video rotated by a radians.
26193
26194           These are only available when computing the out_w and out_h
26195           expressions.
26196
26197       Examples
26198
26199       •   Rotate the input by PI/6 radians clockwise:
26200
26201                   rotate=PI/6
26202
26203       •   Rotate the input by PI/6 radians counter-clockwise:
26204
26205                   rotate=-PI/6
26206
26207       •   Rotate the input by 45 degrees clockwise:
26208
26209                   rotate=45*PI/180
26210
26211       •   Apply a constant rotation with period T, starting from an angle of
26212           PI/3:
26213
26214                   rotate=PI/3+2*PI*t/T
26215
26216       •   Make the input video rotation oscillating with a period of T
26217           seconds and an amplitude of A radians:
26218
26219                   rotate=A*sin(2*PI/T*t)
26220
26221       •   Rotate the video, output size is chosen so that the whole rotating
26222           input video is always completely contained in the output:
26223
26224                   rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
26225
26226       •   Rotate the video, reduce the output size so that no background is
26227           ever shown:
26228
26229                   rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
26230
26231       Commands
26232
26233       The filter supports the following commands:
26234
26235       a, angle
26236           Set the angle expression.  The command accepts the same syntax of
26237           the corresponding option.
26238
26239           If the specified expression is not valid, it is kept at its current
26240           value.
26241
26242   sab
26243       Apply Shape Adaptive Blur.
26244
26245       The filter accepts the following options:
26246
26247       luma_radius, lr
26248           Set luma blur filter strength, must be a value in range 0.1-4.0,
26249           default value is 1.0. A greater value will result in a more blurred
26250           image, and in slower processing.
26251
26252       luma_pre_filter_radius, lpfr
26253           Set luma pre-filter radius, must be a value in the 0.1-2.0 range,
26254           default value is 1.0.
26255
26256       luma_strength, ls
26257           Set luma maximum difference between pixels to still be considered,
26258           must be a value in the 0.1-100.0 range, default value is 1.0.
26259
26260       chroma_radius, cr
26261           Set chroma blur filter strength, must be a value in range -0.9-4.0.
26262           A greater value will result in a more blurred image, and in slower
26263           processing.
26264
26265       chroma_pre_filter_radius, cpfr
26266           Set chroma pre-filter radius, must be a value in the -0.9-2.0
26267           range.
26268
26269       chroma_strength, cs
26270           Set chroma maximum difference between pixels to still be
26271           considered, must be a value in the -0.9-100.0 range.
26272
26273       Each chroma option value, if not explicitly specified, is set to the
26274       corresponding luma option value.
26275
26276   scale
26277       Scale (resize) the input video, using the libswscale library.
26278
26279       The scale filter forces the output display aspect ratio to be the same
26280       of the input, by changing the output sample aspect ratio.
26281
26282       If the input image format is different from the format requested by the
26283       next filter, the scale filter will convert the input to the requested
26284       format.
26285
26286       Options
26287
26288       The filter accepts the following options, or any of the options
26289       supported by the libswscale scaler.
26290
26291       See the ffmpeg-scaler manual for the complete list of scaler options.
26292
26293       width, w
26294       height, h
26295           Set the output video dimension expression. Default value is the
26296           input dimension.
26297
26298           If the width or w value is 0, the input width is used for the
26299           output. If the height or h value is 0, the input height is used for
26300           the output.
26301
26302           If one and only one of the values is -n with n >= 1, the scale
26303           filter will use a value that maintains the aspect ratio of the
26304           input image, calculated from the other specified dimension. After
26305           that it will, however, make sure that the calculated dimension is
26306           divisible by n and adjust the value if necessary.
26307
26308           If both values are -n with n >= 1, the behavior will be identical
26309           to both values being set to 0 as previously detailed.
26310
26311           See below for the list of accepted constants for use in the
26312           dimension expression.
26313
26314       eval
26315           Specify when to evaluate width and height expression. It accepts
26316           the following values:
26317
26318           init
26319               Only evaluate expressions once during the filter initialization
26320               or when a command is processed.
26321
26322           frame
26323               Evaluate expressions for each incoming frame.
26324
26325           Default value is init.
26326
26327       interl
26328           Set the interlacing mode. It accepts the following values:
26329
26330           1   Force interlaced aware scaling.
26331
26332           0   Do not apply interlaced scaling.
26333
26334           -1  Select interlaced aware scaling depending on whether the source
26335               frames are flagged as interlaced or not.
26336
26337           Default value is 0.
26338
26339       flags
26340           Set libswscale scaling flags. See the ffmpeg-scaler manual for the
26341           complete list of values. If not explicitly specified the filter
26342           applies the default flags.
26343
26344       param0, param1
26345           Set libswscale input parameters for scaling algorithms that need
26346           them. See the ffmpeg-scaler manual for the complete documentation.
26347           If not explicitly specified the filter applies empty parameters.
26348
26349       size, s
26350           Set the video size. For the syntax of this option, check the "Video
26351           size" section in the ffmpeg-utils manual.
26352
26353       in_color_matrix
26354       out_color_matrix
26355           Set in/output YCbCr color space type.
26356
26357           This allows the autodetected value to be overridden as well as
26358           allows forcing a specific value used for the output and encoder.
26359
26360           If not specified, the color space type depends on the pixel format.
26361
26362           Possible values:
26363
26364           auto
26365               Choose automatically.
26366
26367           bt709
26368               Format conforming to International Telecommunication Union
26369               (ITU) Recommendation BT.709.
26370
26371           fcc Set color space conforming to the United States Federal
26372               Communications Commission (FCC) Code of Federal Regulations
26373               (CFR) Title 47 (2003) 73.682 (a).
26374
26375           bt601
26376           bt470
26377           smpte170m
26378               Set color space conforming to:
26379
26380               •   ITU Radiocommunication Sector (ITU-R) Recommendation BT.601
26381
26382               •   ITU-R Rec. BT.470-6 (1998) Systems B, B1, and G
26383
26384               •   Society of Motion Picture and Television Engineers (SMPTE)
26385                   ST 170:2004
26386
26387           smpte240m
26388               Set color space conforming to SMPTE ST 240:1999.
26389
26390           bt2020
26391               Set color space conforming to ITU-R BT.2020 non-constant
26392               luminance system.
26393
26394       in_range
26395       out_range
26396           Set in/output YCbCr sample range.
26397
26398           This allows the autodetected value to be overridden as well as
26399           allows forcing a specific value used for the output and encoder. If
26400           not specified, the range depends on the pixel format. Possible
26401           values:
26402
26403           auto/unknown
26404               Choose automatically.
26405
26406           jpeg/full/pc
26407               Set full range (0-255 in case of 8-bit luma).
26408
26409           mpeg/limited/tv
26410               Set "MPEG" range (16-235 in case of 8-bit luma).
26411
26412       force_original_aspect_ratio
26413           Enable decreasing or increasing output video width or height if
26414           necessary to keep the original aspect ratio. Possible values:
26415
26416           disable
26417               Scale the video as specified and disable this feature.
26418
26419           decrease
26420               The output video dimensions will automatically be decreased if
26421               needed.
26422
26423           increase
26424               The output video dimensions will automatically be increased if
26425               needed.
26426
26427           One useful instance of this option is that when you know a specific
26428           device's maximum allowed resolution, you can use this to limit the
26429           output video to that, while retaining the aspect ratio. For
26430           example, device A allows 1280x720 playback, and your video is
26431           1920x800. Using this option (set it to decrease) and specifying
26432           1280x720 to the command line makes the output 1280x533.
26433
26434           Please note that this is a different thing than specifying -1 for w
26435           or h, you still need to specify the output resolution for this
26436           option to work.
26437
26438       force_divisible_by
26439           Ensures that both the output dimensions, width and height, are
26440           divisible by the given integer when used together with
26441           force_original_aspect_ratio. This works similar to using "-n" in
26442           the w and h options.
26443
26444           This option respects the value set for force_original_aspect_ratio,
26445           increasing or decreasing the resolution accordingly. The video's
26446           aspect ratio may be slightly modified.
26447
26448           This option can be handy if you need to have a video fit within or
26449           exceed a defined resolution using force_original_aspect_ratio but
26450           also have encoder restrictions on width or height divisibility.
26451
26452       The values of the w and h options are expressions containing the
26453       following constants:
26454
26455       in_w
26456       in_h
26457           The input width and height
26458
26459       iw
26460       ih  These are the same as in_w and in_h.
26461
26462       out_w
26463       out_h
26464           The output (scaled) width and height
26465
26466       ow
26467       oh  These are the same as out_w and out_h
26468
26469       a   The same as iw / ih
26470
26471       sar input sample aspect ratio
26472
26473       dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
26474
26475       hsub
26476       vsub
26477           horizontal and vertical input chroma subsample values. For example
26478           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
26479
26480       ohsub
26481       ovsub
26482           horizontal and vertical output chroma subsample values. For example
26483           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
26484
26485       n   The (sequential) number of the input frame, starting from 0.  Only
26486           available with "eval=frame".
26487
26488       t   The presentation timestamp of the input frame, expressed as a
26489           number of seconds. Only available with "eval=frame".
26490
26491       pos The position (byte offset) of the frame in the input stream, or NaN
26492           if this information is unavailable and/or meaningless (for example
26493           in case of synthetic video).  Only available with "eval=frame".
26494
26495       Examples
26496
26497       •   Scale the input video to a size of 200x100
26498
26499                   scale=w=200:h=100
26500
26501           This is equivalent to:
26502
26503                   scale=200:100
26504
26505           or:
26506
26507                   scale=200x100
26508
26509       •   Specify a size abbreviation for the output size:
26510
26511                   scale=qcif
26512
26513           which can also be written as:
26514
26515                   scale=size=qcif
26516
26517       •   Scale the input to 2x:
26518
26519                   scale=w=2*iw:h=2*ih
26520
26521       •   The above is the same as:
26522
26523                   scale=2*in_w:2*in_h
26524
26525       •   Scale the input to 2x with forced interlaced scaling:
26526
26527                   scale=2*iw:2*ih:interl=1
26528
26529       •   Scale the input to half size:
26530
26531                   scale=w=iw/2:h=ih/2
26532
26533       •   Increase the width, and set the height to the same size:
26534
26535                   scale=3/2*iw:ow
26536
26537       •   Seek Greek harmony:
26538
26539                   scale=iw:1/PHI*iw
26540                   scale=ih*PHI:ih
26541
26542       •   Increase the height, and set the width to 3/2 of the height:
26543
26544                   scale=w=3/2*oh:h=3/5*ih
26545
26546       •   Increase the size, making the size a multiple of the chroma
26547           subsample values:
26548
26549                   scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
26550
26551       •   Increase the width to a maximum of 500 pixels, keeping the same
26552           aspect ratio as the input:
26553
26554                   scale=w='min(500\, iw*3/2):h=-1'
26555
26556       •   Make pixels square by combining scale and setsar:
26557
26558                   scale='trunc(ih*dar):ih',setsar=1/1
26559
26560       •   Make pixels square by combining scale and setsar, making sure the
26561           resulting resolution is even (required by some codecs):
26562
26563                   scale='trunc(ih*dar/2)*2:trunc(ih/2)*2',setsar=1/1
26564
26565       Commands
26566
26567       This filter supports the following commands:
26568
26569       width, w
26570       height, h
26571           Set the output video dimension expression.  The command accepts the
26572           same syntax of the corresponding option.
26573
26574           If the specified expression is not valid, it is kept at its current
26575           value.
26576
26577   scale_cuda
26578       Scale (resize) and convert (pixel format) the input video, using
26579       accelerated CUDA kernels.  Setting the output width and height works in
26580       the same way as for the scale filter.
26581
26582       The filter accepts the following options:
26583
26584       w
26585       h   Set the output video dimension expression. Default value is the
26586           input dimension.
26587
26588           Allows for the same expressions as the scale filter.
26589
26590       interp_algo
26591           Sets the algorithm used for scaling:
26592
26593           nearest
26594               Nearest neighbour
26595
26596               Used by default if input parameters match the desired output.
26597
26598           bilinear
26599               Bilinear
26600
26601           bicubic
26602               Bicubic
26603
26604               This is the default.
26605
26606           lanczos
26607               Lanczos
26608
26609       format
26610           Controls the output pixel format. By default, or if none is
26611           specified, the input pixel format is used.
26612
26613           The filter does not support converting between YUV and RGB pixel
26614           formats.
26615
26616       passthrough
26617           If set to 0, every frame is processed, even if no conversion is
26618           neccesary.  This mode can be useful to use the filter as a buffer
26619           for a downstream frame-consumer that exhausts the limited decoder
26620           frame pool.
26621
26622           If set to 1, frames are passed through as-is if they match the
26623           desired output parameters. This is the default behaviour.
26624
26625       param
26626           Algorithm-Specific parameter.
26627
26628           Affects the curves of the bicubic algorithm.
26629
26630       force_original_aspect_ratio
26631       force_divisible_by
26632           Work the same as the identical scale filter options.
26633
26634       Examples
26635
26636       •   Scale input to 720p, keeping aspect ratio and ensuring the output
26637           is yuv420p.
26638
26639                   scale_cuda=-2:720:format=yuv420p
26640
26641       •   Upscale to 4K using nearest neighbour algorithm.
26642
26643                   scale_cuda=4096:2160:interp_algo=nearest
26644
26645       •   Don't do any conversion or scaling, but copy all input frames into
26646           newly allocated ones.  This can be useful to deal with a filter and
26647           encode chain that otherwise exhausts the decoders frame pool.
26648
26649                   scale_cuda=passthrough=0
26650
26651   scale_npp
26652       Use the NVIDIA Performance Primitives (libnpp) to perform scaling
26653       and/or pixel format conversion on CUDA video frames. Setting the output
26654       width and height works in the same way as for the scale filter.
26655
26656       The following additional options are accepted:
26657
26658       format
26659           The pixel format of the output CUDA frames. If set to the string
26660           "same" (the default), the input format will be kept. Note that
26661           automatic format negotiation and conversion is not yet supported
26662           for hardware frames
26663
26664       interp_algo
26665           The interpolation algorithm used for resizing. One of the
26666           following:
26667
26668           nn  Nearest neighbour.
26669
26670           linear
26671           cubic
26672           cubic2p_bspline
26673               2-parameter cubic (B=1, C=0)
26674
26675           cubic2p_catmullrom
26676               2-parameter cubic (B=0, C=1/2)
26677
26678           cubic2p_b05c03
26679               2-parameter cubic (B=1/2, C=3/10)
26680
26681           super
26682               Supersampling
26683
26684           lanczos
26685       force_original_aspect_ratio
26686           Enable decreasing or increasing output video width or height if
26687           necessary to keep the original aspect ratio. Possible values:
26688
26689           disable
26690               Scale the video as specified and disable this feature.
26691
26692           decrease
26693               The output video dimensions will automatically be decreased if
26694               needed.
26695
26696           increase
26697               The output video dimensions will automatically be increased if
26698               needed.
26699
26700           One useful instance of this option is that when you know a specific
26701           device's maximum allowed resolution, you can use this to limit the
26702           output video to that, while retaining the aspect ratio. For
26703           example, device A allows 1280x720 playback, and your video is
26704           1920x800. Using this option (set it to decrease) and specifying
26705           1280x720 to the command line makes the output 1280x533.
26706
26707           Please note that this is a different thing than specifying -1 for w
26708           or h, you still need to specify the output resolution for this
26709           option to work.
26710
26711       force_divisible_by
26712           Ensures that both the output dimensions, width and height, are
26713           divisible by the given integer when used together with
26714           force_original_aspect_ratio. This works similar to using "-n" in
26715           the w and h options.
26716
26717           This option respects the value set for force_original_aspect_ratio,
26718           increasing or decreasing the resolution accordingly. The video's
26719           aspect ratio may be slightly modified.
26720
26721           This option can be handy if you need to have a video fit within or
26722           exceed a defined resolution using force_original_aspect_ratio but
26723           also have encoder restrictions on width or height divisibility.
26724
26725       eval
26726           Specify when to evaluate width and height expression. It accepts
26727           the following values:
26728
26729           init
26730               Only evaluate expressions once during the filter initialization
26731               or when a command is processed.
26732
26733           frame
26734               Evaluate expressions for each incoming frame.
26735
26736       The values of the w and h options are expressions containing the
26737       following constants:
26738
26739       in_w
26740       in_h
26741           The input width and height
26742
26743       iw
26744       ih  These are the same as in_w and in_h.
26745
26746       out_w
26747       out_h
26748           The output (scaled) width and height
26749
26750       ow
26751       oh  These are the same as out_w and out_h
26752
26753       a   The same as iw / ih
26754
26755       sar input sample aspect ratio
26756
26757       dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
26758
26759       n   The (sequential) number of the input frame, starting from 0.  Only
26760           available with "eval=frame".
26761
26762       t   The presentation timestamp of the input frame, expressed as a
26763           number of seconds. Only available with "eval=frame".
26764
26765       pos The position (byte offset) of the frame in the input stream, or NaN
26766           if this information is unavailable and/or meaningless (for example
26767           in case of synthetic video).  Only available with "eval=frame".
26768
26769   scale2ref
26770       Scale (resize) the input video, based on a reference video.
26771
26772       See the scale filter for available options, scale2ref supports the same
26773       but uses the reference video instead of the main input as basis.
26774       scale2ref also supports the following additional constants for the w
26775       and h options:
26776
26777       main_w
26778       main_h
26779           The main input video's width and height
26780
26781       main_a
26782           The same as main_w / main_h
26783
26784       main_sar
26785           The main input video's sample aspect ratio
26786
26787       main_dar, mdar
26788           The main input video's display aspect ratio. Calculated from
26789           "(main_w / main_h) * main_sar".
26790
26791       main_hsub
26792       main_vsub
26793           The main input video's horizontal and vertical chroma subsample
26794           values.  For example for the pixel format "yuv422p" hsub is 2 and
26795           vsub is 1.
26796
26797       main_n
26798           The (sequential) number of the main input frame, starting from 0.
26799           Only available with "eval=frame".
26800
26801       main_t
26802           The presentation timestamp of the main input frame, expressed as a
26803           number of seconds. Only available with "eval=frame".
26804
26805       main_pos
26806           The position (byte offset) of the frame in the main input stream,
26807           or NaN if this information is unavailable and/or meaningless (for
26808           example in case of synthetic video).  Only available with
26809           "eval=frame".
26810
26811       Examples
26812
26813       •   Scale a subtitle stream (b) to match the main video (a) in size
26814           before overlaying
26815
26816                   'scale2ref[b][a];[a][b]overlay'
26817
26818       •   Scale a logo to 1/10th the height of a video, while preserving its
26819           display aspect ratio.
26820
26821                   [logo-in][video-in]scale2ref=w=oh*mdar:h=ih/10[logo-out][video-out]
26822
26823       Commands
26824
26825       This filter supports the following commands:
26826
26827       width, w
26828       height, h
26829           Set the output video dimension expression.  The command accepts the
26830           same syntax of the corresponding option.
26831
26832           If the specified expression is not valid, it is kept at its current
26833           value.
26834
26835   scale2ref_npp
26836       Use the NVIDIA Performance Primitives (libnpp) to scale (resize) the
26837       input video, based on a reference video.
26838
26839       See the scale_npp filter for available options, scale2ref_npp supports
26840       the same but uses the reference video instead of the main input as
26841       basis. scale2ref_npp also supports the following additional constants
26842       for the w and h options:
26843
26844       main_w
26845       main_h
26846           The main input video's width and height
26847
26848       main_a
26849           The same as main_w / main_h
26850
26851       main_sar
26852           The main input video's sample aspect ratio
26853
26854       main_dar, mdar
26855           The main input video's display aspect ratio. Calculated from
26856           "(main_w / main_h) * main_sar".
26857
26858       main_n
26859           The (sequential) number of the main input frame, starting from 0.
26860           Only available with "eval=frame".
26861
26862       main_t
26863           The presentation timestamp of the main input frame, expressed as a
26864           number of seconds. Only available with "eval=frame".
26865
26866       main_pos
26867           The position (byte offset) of the frame in the main input stream,
26868           or NaN if this information is unavailable and/or meaningless (for
26869           example in case of synthetic video).  Only available with
26870           "eval=frame".
26871
26872       Examples
26873
26874       •   Scale a subtitle stream (b) to match the main video (a) in size
26875           before overlaying
26876
26877                   'scale2ref_npp[b][a];[a][b]overlay_cuda'
26878
26879       •   Scale a logo to 1/10th the height of a video, while preserving its
26880           display aspect ratio.
26881
26882                   [logo-in][video-in]scale2ref_npp=w=oh*mdar:h=ih/10[logo-out][video-out]
26883
26884   scharr
26885       Apply scharr operator to input video stream.
26886
26887       The filter accepts the following option:
26888
26889       planes
26890           Set which planes will be processed, unprocessed planes will be
26891           copied.  By default value 0xf, all planes will be processed.
26892
26893       scale
26894           Set value which will be multiplied with filtered result.
26895
26896       delta
26897           Set value which will be added to filtered result.
26898
26899       Commands
26900
26901       This filter supports the all above options as commands.
26902
26903   scroll
26904       Scroll input video horizontally and/or vertically by constant speed.
26905
26906       The filter accepts the following options:
26907
26908       horizontal, h
26909           Set the horizontal scrolling speed. Default is 0. Allowed range is
26910           from -1 to 1.  Negative values changes scrolling direction.
26911
26912       vertical, v
26913           Set the vertical scrolling speed. Default is 0. Allowed range is
26914           from -1 to 1.  Negative values changes scrolling direction.
26915
26916       hpos
26917           Set the initial horizontal scrolling position. Default is 0.
26918           Allowed range is from 0 to 1.
26919
26920       vpos
26921           Set the initial vertical scrolling position. Default is 0. Allowed
26922           range is from 0 to 1.
26923
26924       Commands
26925
26926       This filter supports the following commands:
26927
26928       horizontal, h
26929           Set the horizontal scrolling speed.
26930
26931       vertical, v
26932           Set the vertical scrolling speed.
26933
26934   scdet
26935       Detect video scene change.
26936
26937       This filter sets frame metadata with mafd between frame, the scene
26938       score, and forward the frame to the next filter, so they can use these
26939       metadata to detect scene change or others.
26940
26941       In addition, this filter logs a message and sets frame metadata when it
26942       detects a scene change by threshold.
26943
26944       "lavfi.scd.mafd" metadata keys are set with mafd for every frame.
26945
26946       "lavfi.scd.score" metadata keys are set with scene change score for
26947       every frame to detect scene change.
26948
26949       "lavfi.scd.time" metadata keys are set with current filtered frame time
26950       which detect scene change with threshold.
26951
26952       The filter accepts the following options:
26953
26954       threshold, t
26955           Set the scene change detection threshold as a percentage of maximum
26956           change. Good values are in the "[8.0, 14.0]" range. The range for
26957           threshold is "[0., 100.]".
26958
26959           Default value is 10..
26960
26961       sc_pass, s
26962           Set the flag to pass scene change frames to the next filter.
26963           Default value is 0 You can enable it if you want to get snapshot of
26964           scene change frames only.
26965
26966   selectivecolor
26967       Adjust cyan, magenta, yellow and black (CMYK) to certain ranges of
26968       colors (such as "reds", "yellows", "greens", "cyans", ...). The
26969       adjustment range is defined by the "purity" of the color (that is, how
26970       saturated it already is).
26971
26972       This filter is similar to the Adobe Photoshop Selective Color tool.
26973
26974       The filter accepts the following options:
26975
26976       correction_method
26977           Select color correction method.
26978
26979           Available values are:
26980
26981           absolute
26982               Specified adjustments are applied "as-is" (added/subtracted to
26983               original pixel component value).
26984
26985           relative
26986               Specified adjustments are relative to the original component
26987               value.
26988
26989           Default is "absolute".
26990
26991       reds
26992           Adjustments for red pixels (pixels where the red component is the
26993           maximum)
26994
26995       yellows
26996           Adjustments for yellow pixels (pixels where the blue component is
26997           the minimum)
26998
26999       greens
27000           Adjustments for green pixels (pixels where the green component is
27001           the maximum)
27002
27003       cyans
27004           Adjustments for cyan pixels (pixels where the red component is the
27005           minimum)
27006
27007       blues
27008           Adjustments for blue pixels (pixels where the blue component is the
27009           maximum)
27010
27011       magentas
27012           Adjustments for magenta pixels (pixels where the green component is
27013           the minimum)
27014
27015       whites
27016           Adjustments for white pixels (pixels where all components are
27017           greater than 128)
27018
27019       neutrals
27020           Adjustments for all pixels except pure black and pure white
27021
27022       blacks
27023           Adjustments for black pixels (pixels where all components are
27024           lesser than 128)
27025
27026       psfile
27027           Specify a Photoshop selective color file (".asv") to import the
27028           settings from.
27029
27030       All the adjustment settings (reds, yellows, ...) accept up to 4 space
27031       separated floating point adjustment values in the [-1,1] range,
27032       respectively to adjust the amount of cyan, magenta, yellow and black
27033       for the pixels of its range.
27034
27035       Examples
27036
27037       •   Increase cyan by 50% and reduce yellow by 33% in every green areas,
27038           and increase magenta by 27% in blue areas:
27039
27040                   selectivecolor=greens=.5 0 -.33 0:blues=0 .27
27041
27042       •   Use a Photoshop selective color preset:
27043
27044                   selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
27045
27046   separatefields
27047       The "separatefields" takes a frame-based video input and splits each
27048       frame into its components fields, producing a new half height clip with
27049       twice the frame rate and twice the frame count.
27050
27051       This filter use field-dominance information in frame to decide which of
27052       each pair of fields to place first in the output.  If it gets it wrong
27053       use setfield filter before "separatefields" filter.
27054
27055   setdar, setsar
27056       The "setdar" filter sets the Display Aspect Ratio for the filter output
27057       video.
27058
27059       This is done by changing the specified Sample (aka Pixel) Aspect Ratio,
27060       according to the following equation:
27061
27062               <DAR> = <HORIZONTAL_RESOLUTION> / <VERTICAL_RESOLUTION> * <SAR>
27063
27064       Keep in mind that the "setdar" filter does not modify the pixel
27065       dimensions of the video frame. Also, the display aspect ratio set by
27066       this filter may be changed by later filters in the filterchain, e.g. in
27067       case of scaling or if another "setdar" or a "setsar" filter is applied.
27068
27069       The "setsar" filter sets the Sample (aka Pixel) Aspect Ratio for the
27070       filter output video.
27071
27072       Note that as a consequence of the application of this filter, the
27073       output display aspect ratio will change according to the equation
27074       above.
27075
27076       Keep in mind that the sample aspect ratio set by the "setsar" filter
27077       may be changed by later filters in the filterchain, e.g. if another
27078       "setsar" or a "setdar" filter is applied.
27079
27080       It accepts the following parameters:
27081
27082       r, ratio, dar ("setdar" only), sar ("setsar" only)
27083           Set the aspect ratio used by the filter.
27084
27085           The parameter can be a floating point number string, an expression,
27086           or a string of the form num:den, where num and den are the
27087           numerator and denominator of the aspect ratio. If the parameter is
27088           not specified, it is assumed the value "0".  In case the form
27089           "num:den" is used, the ":" character should be escaped.
27090
27091       max Set the maximum integer value to use for expressing numerator and
27092           denominator when reducing the expressed aspect ratio to a rational.
27093           Default value is 100.
27094
27095       The parameter sar is an expression containing the following constants:
27096
27097       E, PI, PHI
27098           These are approximated values for the mathematical constants e
27099           (Euler's number), pi (Greek pi), and phi (the golden ratio).
27100
27101       w, h
27102           The input width and height.
27103
27104       a   These are the same as w / h.
27105
27106       sar The input sample aspect ratio.
27107
27108       dar The input display aspect ratio. It is the same as (w / h) * sar.
27109
27110       hsub, vsub
27111           Horizontal and vertical chroma subsample values. For example, for
27112           the pixel format "yuv422p" hsub is 2 and vsub is 1.
27113
27114       Examples
27115
27116       •   To change the display aspect ratio to 16:9, specify one of the
27117           following:
27118
27119                   setdar=dar=1.77777
27120                   setdar=dar=16/9
27121
27122       •   To change the sample aspect ratio to 10:11, specify:
27123
27124                   setsar=sar=10/11
27125
27126       •   To set a display aspect ratio of 16:9, and specify a maximum
27127           integer value of 1000 in the aspect ratio reduction, use the
27128           command:
27129
27130                   setdar=ratio=16/9:max=1000
27131
27132   setfield
27133       Force field for the output video frame.
27134
27135       The "setfield" filter marks the interlace type field for the output
27136       frames. It does not change the input frame, but only sets the
27137       corresponding property, which affects how the frame is treated by
27138       following filters (e.g. "fieldorder" or "yadif").
27139
27140       The filter accepts the following options:
27141
27142       mode
27143           Available values are:
27144
27145           auto
27146               Keep the same field property.
27147
27148           bff Mark the frame as bottom-field-first.
27149
27150           tff Mark the frame as top-field-first.
27151
27152           prog
27153               Mark the frame as progressive.
27154
27155   setparams
27156       Force frame parameter for the output video frame.
27157
27158       The "setparams" filter marks interlace and color range for the output
27159       frames. It does not change the input frame, but only sets the
27160       corresponding property, which affects how the frame is treated by
27161       filters/encoders.
27162
27163       field_mode
27164           Available values are:
27165
27166           auto
27167               Keep the same field property (default).
27168
27169           bff Mark the frame as bottom-field-first.
27170
27171           tff Mark the frame as top-field-first.
27172
27173           prog
27174               Mark the frame as progressive.
27175
27176       range
27177           Available values are:
27178
27179           auto
27180               Keep the same color range property (default).
27181
27182           unspecified, unknown
27183               Mark the frame as unspecified color range.
27184
27185           limited, tv, mpeg
27186               Mark the frame as limited range.
27187
27188           full, pc, jpeg
27189               Mark the frame as full range.
27190
27191       color_primaries
27192           Set the color primaries.  Available values are:
27193
27194           auto
27195               Keep the same color primaries property (default).
27196
27197           bt709
27198           unknown
27199           bt470m
27200           bt470bg
27201           smpte170m
27202           smpte240m
27203           film
27204           bt2020
27205           smpte428
27206           smpte431
27207           smpte432
27208           jedec-p22
27209       color_trc
27210           Set the color transfer.  Available values are:
27211
27212           auto
27213               Keep the same color trc property (default).
27214
27215           bt709
27216           unknown
27217           bt470m
27218           bt470bg
27219           smpte170m
27220           smpte240m
27221           linear
27222           log100
27223           log316
27224           iec61966-2-4
27225           bt1361e
27226           iec61966-2-1
27227           bt2020-10
27228           bt2020-12
27229           smpte2084
27230           smpte428
27231           arib-std-b67
27232       colorspace
27233           Set the colorspace.  Available values are:
27234
27235           auto
27236               Keep the same colorspace property (default).
27237
27238           gbr
27239           bt709
27240           unknown
27241           fcc
27242           bt470bg
27243           smpte170m
27244           smpte240m
27245           ycgco
27246           bt2020nc
27247           bt2020c
27248           smpte2085
27249           chroma-derived-nc
27250           chroma-derived-c
27251           ictcp
27252
27253   sharpen_npp
27254       Use the NVIDIA Performance Primitives (libnpp) to perform image
27255       sharpening with border control.
27256
27257       The following additional options are accepted:
27258
27259       border_type
27260           Type of sampling to be used ad frame borders. One of the following:
27261
27262           replicate
27263               Replicate pixel values.
27264
27265   shear
27266       Apply shear transform to input video.
27267
27268       This filter supports the following options:
27269
27270       shx Shear factor in X-direction. Default value is 0.  Allowed range is
27271           from -2 to 2.
27272
27273       shy Shear factor in Y-direction. Default value is 0.  Allowed range is
27274           from -2 to 2.
27275
27276       fillcolor, c
27277           Set the color used to fill the output area not covered by the
27278           transformed video. For the general syntax of this option, check the
27279           "Color" section in the ffmpeg-utils manual.  If the special value
27280           "none" is selected then no background is printed (useful for
27281           example if the background is never shown).
27282
27283           Default value is "black".
27284
27285       interp
27286           Set interpolation type. Can be "bilinear" or "nearest". Default is
27287           "bilinear".
27288
27289       Commands
27290
27291       This filter supports the all above options as commands.
27292
27293   showinfo
27294       Show a line containing various information for each input video frame.
27295       The input video is not modified.
27296
27297       This filter supports the following options:
27298
27299       checksum
27300           Calculate checksums of each plane. By default enabled.
27301
27302       The shown line contains a sequence of key/value pairs of the form
27303       key:value.
27304
27305       The following values are shown in the output:
27306
27307       n   The (sequential) number of the input frame, starting from 0.
27308
27309       pts The Presentation TimeStamp of the input frame, expressed as a
27310           number of time base units. The time base unit depends on the filter
27311           input pad.
27312
27313       pts_time
27314           The Presentation TimeStamp of the input frame, expressed as a
27315           number of seconds.
27316
27317       pos The position of the frame in the input stream, or -1 if this
27318           information is unavailable and/or meaningless (for example in case
27319           of synthetic video).
27320
27321       fmt The pixel format name.
27322
27323       sar The sample aspect ratio of the input frame, expressed in the form
27324           num/den.
27325
27326       s   The size of the input frame. For the syntax of this option, check
27327           the "Video size" section in the ffmpeg-utils manual.
27328
27329       i   The type of interlaced mode ("P" for "progressive", "T" for top
27330           field first, "B" for bottom field first).
27331
27332       iskey
27333           This is 1 if the frame is a key frame, 0 otherwise.
27334
27335       type
27336           The picture type of the input frame ("I" for an I-frame, "P" for a
27337           P-frame, "B" for a B-frame, or "?" for an unknown type).  Also
27338           refer to the documentation of the "AVPictureType" enum and of the
27339           "av_get_picture_type_char" function defined in libavutil/avutil.h.
27340
27341       checksum
27342           The Adler-32 checksum (printed in hexadecimal) of all the planes of
27343           the input frame.
27344
27345       plane_checksum
27346           The Adler-32 checksum (printed in hexadecimal) of each plane of the
27347           input frame, expressed in the form "[c0 c1 c2 c3]".
27348
27349       mean
27350           The mean value of pixels in each plane of the input frame,
27351           expressed in the form "[mean0 mean1 mean2 mean3]".
27352
27353       stdev
27354           The standard deviation of pixel values in each plane of the input
27355           frame, expressed in the form "[stdev0 stdev1 stdev2 stdev3]".
27356
27357   showpalette
27358       Displays the 256 colors palette of each frame. This filter is only
27359       relevant for pal8 pixel format frames.
27360
27361       It accepts the following option:
27362
27363       s   Set the size of the box used to represent one palette color entry.
27364           Default is 30 (for a "30x30" pixel box).
27365
27366   shuffleframes
27367       Reorder and/or duplicate and/or drop video frames.
27368
27369       It accepts the following parameters:
27370
27371       mapping
27372           Set the destination indexes of input frames.  This is space or '|'
27373           separated list of indexes that maps input frames to output frames.
27374           Number of indexes also sets maximal value that each index may have.
27375           '-1' index have special meaning and that is to drop frame.
27376
27377       The first frame has the index 0. The default is to keep the input
27378       unchanged.
27379
27380       Examples
27381
27382       •   Swap second and third frame of every three frames of the input:
27383
27384                   ffmpeg -i INPUT -vf "shuffleframes=0 2 1" OUTPUT
27385
27386       •   Swap 10th and 1st frame of every ten frames of the input:
27387
27388                   ffmpeg -i INPUT -vf "shuffleframes=9 1 2 3 4 5 6 7 8 0" OUTPUT
27389
27390   shufflepixels
27391       Reorder pixels in video frames.
27392
27393       This filter accepts the following options:
27394
27395       direction, d
27396           Set shuffle direction. Can be forward or inverse direction.
27397           Default direction is forward.
27398
27399       mode, m
27400           Set shuffle mode. Can be horizontal, vertical or block mode.
27401
27402       width, w
27403       height, h
27404           Set shuffle block_size. In case of horizontal shuffle mode only
27405           width part of size is used, and in case of vertical shuffle mode
27406           only height part of size is used.
27407
27408       seed, s
27409           Set random seed used with shuffling pixels. Mainly useful to set to
27410           be able to reverse filtering process to get original input.  For
27411           example, to reverse forward shuffle you need to use same parameters
27412           and exact same seed and to set direction to inverse.
27413
27414   shuffleplanes
27415       Reorder and/or duplicate video planes.
27416
27417       It accepts the following parameters:
27418
27419       map0
27420           The index of the input plane to be used as the first output plane.
27421
27422       map1
27423           The index of the input plane to be used as the second output plane.
27424
27425       map2
27426           The index of the input plane to be used as the third output plane.
27427
27428       map3
27429           The index of the input plane to be used as the fourth output plane.
27430
27431       The first plane has the index 0. The default is to keep the input
27432       unchanged.
27433
27434       Examples
27435
27436       •   Swap the second and third planes of the input:
27437
27438                   ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
27439
27440   signalstats
27441       Evaluate various visual metrics that assist in determining issues
27442       associated with the digitization of analog video media.
27443
27444       By default the filter will log these metadata values:
27445
27446       YMIN
27447           Display the minimal Y value contained within the input frame.
27448           Expressed in range of [0-255].
27449
27450       YLOW
27451           Display the Y value at the 10% percentile within the input frame.
27452           Expressed in range of [0-255].
27453
27454       YAVG
27455           Display the average Y value within the input frame. Expressed in
27456           range of [0-255].
27457
27458       YHIGH
27459           Display the Y value at the 90% percentile within the input frame.
27460           Expressed in range of [0-255].
27461
27462       YMAX
27463           Display the maximum Y value contained within the input frame.
27464           Expressed in range of [0-255].
27465
27466       UMIN
27467           Display the minimal U value contained within the input frame.
27468           Expressed in range of [0-255].
27469
27470       ULOW
27471           Display the U value at the 10% percentile within the input frame.
27472           Expressed in range of [0-255].
27473
27474       UAVG
27475           Display the average U value within the input frame. Expressed in
27476           range of [0-255].
27477
27478       UHIGH
27479           Display the U value at the 90% percentile within the input frame.
27480           Expressed in range of [0-255].
27481
27482       UMAX
27483           Display the maximum U value contained within the input frame.
27484           Expressed in range of [0-255].
27485
27486       VMIN
27487           Display the minimal V value contained within the input frame.
27488           Expressed in range of [0-255].
27489
27490       VLOW
27491           Display the V value at the 10% percentile within the input frame.
27492           Expressed in range of [0-255].
27493
27494       VAVG
27495           Display the average V value within the input frame. Expressed in
27496           range of [0-255].
27497
27498       VHIGH
27499           Display the V value at the 90% percentile within the input frame.
27500           Expressed in range of [0-255].
27501
27502       VMAX
27503           Display the maximum V value contained within the input frame.
27504           Expressed in range of [0-255].
27505
27506       SATMIN
27507           Display the minimal saturation value contained within the input
27508           frame.  Expressed in range of [0-~181.02].
27509
27510       SATLOW
27511           Display the saturation value at the 10% percentile within the input
27512           frame.  Expressed in range of [0-~181.02].
27513
27514       SATAVG
27515           Display the average saturation value within the input frame.
27516           Expressed in range of [0-~181.02].
27517
27518       SATHIGH
27519           Display the saturation value at the 90% percentile within the input
27520           frame.  Expressed in range of [0-~181.02].
27521
27522       SATMAX
27523           Display the maximum saturation value contained within the input
27524           frame.  Expressed in range of [0-~181.02].
27525
27526       HUEMED
27527           Display the median value for hue within the input frame. Expressed
27528           in range of [0-360].
27529
27530       HUEAVG
27531           Display the average value for hue within the input frame. Expressed
27532           in range of [0-360].
27533
27534       YDIF
27535           Display the average of sample value difference between all values
27536           of the Y plane in the current frame and corresponding values of the
27537           previous input frame.  Expressed in range of [0-255].
27538
27539       UDIF
27540           Display the average of sample value difference between all values
27541           of the U plane in the current frame and corresponding values of the
27542           previous input frame.  Expressed in range of [0-255].
27543
27544       VDIF
27545           Display the average of sample value difference between all values
27546           of the V plane in the current frame and corresponding values of the
27547           previous input frame.  Expressed in range of [0-255].
27548
27549       YBITDEPTH
27550           Display bit depth of Y plane in current frame.  Expressed in range
27551           of [0-16].
27552
27553       UBITDEPTH
27554           Display bit depth of U plane in current frame.  Expressed in range
27555           of [0-16].
27556
27557       VBITDEPTH
27558           Display bit depth of V plane in current frame.  Expressed in range
27559           of [0-16].
27560
27561       The filter accepts the following options:
27562
27563       stat
27564       out stat specify an additional form of image analysis.  out output
27565           video with the specified type of pixel highlighted.
27566
27567           Both options accept the following values:
27568
27569           tout
27570               Identify temporal outliers pixels. A temporal outlier is a
27571               pixel unlike the neighboring pixels of the same field. Examples
27572               of temporal outliers include the results of video dropouts,
27573               head clogs, or tape tracking issues.
27574
27575           vrep
27576               Identify vertical line repetition. Vertical line repetition
27577               includes similar rows of pixels within a frame. In born-digital
27578               video vertical line repetition is common, but this pattern is
27579               uncommon in video digitized from an analog source. When it
27580               occurs in video that results from the digitization of an analog
27581               source it can indicate concealment from a dropout compensator.
27582
27583           brng
27584               Identify pixels that fall outside of legal broadcast range.
27585
27586       color, c
27587           Set the highlight color for the out option. The default color is
27588           yellow.
27589
27590       Examples
27591
27592       •   Output data of various video metrics:
27593
27594                   ffprobe -f lavfi movie=example.mov,signalstats="stat=tout+vrep+brng" -show_frames
27595
27596       •   Output specific data about the minimum and maximum values of the Y
27597           plane per frame:
27598
27599                   ffprobe -f lavfi movie=example.mov,signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN
27600
27601       •   Playback video while highlighting pixels that are outside of
27602           broadcast range in red.
27603
27604                   ffplay example.mov -vf signalstats="out=brng:color=red"
27605
27606       •   Playback video with signalstats metadata drawn over the frame.
27607
27608                   ffplay example.mov -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=FreeSerif.ttf:textfile=signalstat_drawtext.txt
27609
27610           The contents of signalstat_drawtext.txt used in the command are:
27611
27612                   time %{pts:hms}
27613                   Y (%{metadata:lavfi.signalstats.YMIN}-%{metadata:lavfi.signalstats.YMAX})
27614                   U (%{metadata:lavfi.signalstats.UMIN}-%{metadata:lavfi.signalstats.UMAX})
27615                   V (%{metadata:lavfi.signalstats.VMIN}-%{metadata:lavfi.signalstats.VMAX})
27616                   saturation maximum: %{metadata:lavfi.signalstats.SATMAX}
27617
27618   signature
27619       Calculates the MPEG-7 Video Signature. The filter can handle more than
27620       one input. In this case the matching between the inputs can be
27621       calculated additionally.  The filter always passes through the first
27622       input. The signature of each stream can be written into a file.
27623
27624       It accepts the following options:
27625
27626       detectmode
27627           Enable or disable the matching process.
27628
27629           Available values are:
27630
27631           off Disable the calculation of a matching (default).
27632
27633           full
27634               Calculate the matching for the whole video and output whether
27635               the whole video matches or only parts.
27636
27637           fast
27638               Calculate only until a matching is found or the video ends.
27639               Should be faster in some cases.
27640
27641       nb_inputs
27642           Set the number of inputs. The option value must be a non negative
27643           integer.  Default value is 1.
27644
27645       filename
27646           Set the path to which the output is written. If there is more than
27647           one input, the path must be a prototype, i.e. must contain %d or
27648           %0nd (where n is a positive integer), that will be replaced with
27649           the input number. If no filename is specified, no output will be
27650           written. This is the default.
27651
27652       format
27653           Choose the output format.
27654
27655           Available values are:
27656
27657           binary
27658               Use the specified binary representation (default).
27659
27660           xml Use the specified xml representation.
27661
27662       th_d
27663           Set threshold to detect one word as similar. The option value must
27664           be an integer greater than zero. The default value is 9000.
27665
27666       th_dc
27667           Set threshold to detect all words as similar. The option value must
27668           be an integer greater than zero. The default value is 60000.
27669
27670       th_xh
27671           Set threshold to detect frames as similar. The option value must be
27672           an integer greater than zero. The default value is 116.
27673
27674       th_di
27675           Set the minimum length of a sequence in frames to recognize it as
27676           matching sequence. The option value must be a non negative integer
27677           value.  The default value is 0.
27678
27679       th_it
27680           Set the minimum relation, that matching frames to all frames must
27681           have.  The option value must be a double value between 0 and 1. The
27682           default value is 0.5.
27683
27684       Examples
27685
27686       •   To calculate the signature of an input video and store it in
27687           signature.bin:
27688
27689                   ffmpeg -i input.mkv -vf signature=filename=signature.bin -map 0:v -f null -
27690
27691       •   To detect whether two videos match and store the signatures in XML
27692           format in signature0.xml and signature1.xml:
27693
27694                   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 -
27695
27696   siti
27697       Calculate Spatial Info (SI) and Temporal Info (TI) scores for a video,
27698       as defined in ITU-T P.910: Subjective video quality assessment methods
27699       for multimedia applications. Available PDF at
27700       <https://www.itu.int/rec/T-REC-P.910-199909-S/en >.
27701
27702       It accepts the following option:
27703
27704       print_summary
27705           If set to 1, Summary statistics will be printed to the console.
27706           Default 0.
27707
27708       Examples
27709
27710       •   To calculate SI/TI metrics and print summary:
27711
27712                   ffmpeg -i input.mp4 -vf siti=print_summary=1 -f null -
27713
27714   smartblur
27715       Blur the input video without impacting the outlines.
27716
27717       It accepts the following options:
27718
27719       luma_radius, lr
27720           Set the luma radius. The option value must be a float number in the
27721           range [0.1,5.0] that specifies the variance of the gaussian filter
27722           used to blur the image (slower if larger). Default value is 1.0.
27723
27724       luma_strength, ls
27725           Set the luma strength. The option value must be a float number in
27726           the range [-1.0,1.0] that configures the blurring. A value included
27727           in [0.0,1.0] will blur the image whereas a value included in
27728           [-1.0,0.0] will sharpen the image. Default value is 1.0.
27729
27730       luma_threshold, lt
27731           Set the luma threshold used as a coefficient to determine whether a
27732           pixel should be blurred or not. The option value must be an integer
27733           in the range [-30,30]. A value of 0 will filter all the image, a
27734           value included in [0,30] will filter flat areas and a value
27735           included in [-30,0] will filter edges. Default value is 0.
27736
27737       chroma_radius, cr
27738           Set the chroma radius. The option value must be a float number in
27739           the range [0.1,5.0] that specifies the variance of the gaussian
27740           filter used to blur the image (slower if larger). Default value is
27741           luma_radius.
27742
27743       chroma_strength, cs
27744           Set the chroma strength. The option value must be a float number in
27745           the range [-1.0,1.0] that configures the blurring. A value included
27746           in [0.0,1.0] will blur the image whereas a value included in
27747           [-1.0,0.0] will sharpen the image. Default value is luma_strength.
27748
27749       chroma_threshold, ct
27750           Set the chroma threshold used as a coefficient to determine whether
27751           a pixel should be blurred or not. The option value must be an
27752           integer in the range [-30,30]. A value of 0 will filter all the
27753           image, a value included in [0,30] will filter flat areas and a
27754           value included in [-30,0] will filter edges. Default value is
27755           luma_threshold.
27756
27757       If a chroma option is not explicitly set, the corresponding luma value
27758       is set.
27759
27760   sobel
27761       Apply sobel operator to input video stream.
27762
27763       The filter accepts the following option:
27764
27765       planes
27766           Set which planes will be processed, unprocessed planes will be
27767           copied.  By default value 0xf, all planes will be processed.
27768
27769       scale
27770           Set value which will be multiplied with filtered result.
27771
27772       delta
27773           Set value which will be added to filtered result.
27774
27775       Commands
27776
27777       This filter supports the all above options as commands.
27778
27779   spp
27780       Apply a simple postprocessing filter that compresses and decompresses
27781       the image at several (or - in the case of quality level 6 - all) shifts
27782       and average the results.
27783
27784       The filter accepts the following options:
27785
27786       quality
27787           Set quality. This option defines the number of levels for
27788           averaging. It accepts an integer in the range 0-6. If set to 0, the
27789           filter will have no effect. A value of 6 means the higher quality.
27790           For each increment of that value the speed drops by a factor of
27791           approximately 2.  Default value is 3.
27792
27793       qp  Force a constant quantization parameter. If not set, the filter
27794           will use the QP from the video stream (if available).
27795
27796       mode
27797           Set thresholding mode. Available modes are:
27798
27799           hard
27800               Set hard thresholding (default).
27801
27802           soft
27803               Set soft thresholding (better de-ringing effect, but likely
27804               blurrier).
27805
27806       use_bframe_qp
27807           Enable the use of the QP from the B-Frames if set to 1. Using this
27808           option may cause flicker since the B-Frames have often larger QP.
27809           Default is 0 (not enabled).
27810
27811       Commands
27812
27813       This filter supports the following commands:
27814
27815       quality, level
27816           Set quality level. The value "max" can be used to set the maximum
27817           level, currently 6.
27818
27819   sr
27820       Scale the input by applying one of the super-resolution methods based
27821       on convolutional neural networks. Supported models:
27822
27823       •   Super-Resolution Convolutional Neural Network model (SRCNN).  See
27824           <https://arxiv.org/abs/1501.00092>.
27825
27826       •   Efficient Sub-Pixel Convolutional Neural Network model (ESPCN).
27827           See <https://arxiv.org/abs/1609.05158>.
27828
27829       Training scripts as well as scripts for model file (.pb) saving can be
27830       found at <https://github.com/XueweiMeng/sr/tree/sr_dnn_native>.
27831       Original repository is at
27832       <https://github.com/HighVoltageRocknRoll/sr.git>.
27833
27834       Native model files (.model) can be generated from TensorFlow model
27835       files (.pb) by using tools/python/convert.py
27836
27837       The filter accepts the following options:
27838
27839       dnn_backend
27840           Specify which DNN backend to use for model loading and execution.
27841           This option accepts the following values:
27842
27843           native
27844               Native implementation of DNN loading and execution.
27845
27846           tensorflow
27847               TensorFlow backend. To enable this backend you need to install
27848               the TensorFlow for C library (see
27849               <https://www.tensorflow.org/install/lang_c>) and configure
27850               FFmpeg with "--enable-libtensorflow"
27851
27852           Default value is native.
27853
27854       model
27855           Set path to model file specifying network architecture and its
27856           parameters.  Note that different backends use different file
27857           formats. TensorFlow backend can load files for both formats, while
27858           native backend can load files for only its format.
27859
27860       scale_factor
27861           Set scale factor for SRCNN model. Allowed values are 2, 3 and 4.
27862           Default value is 2. Scale factor is necessary for SRCNN model,
27863           because it accepts input upscaled using bicubic upscaling with
27864           proper scale factor.
27865
27866       To get full functionality (such as async execution), please use the
27867       dnn_processing filter.
27868
27869   ssim
27870       Obtain the SSIM (Structural SImilarity Metric) between two input
27871       videos.
27872
27873       This filter takes in input two input videos, the first input is
27874       considered the "main" source and is passed unchanged to the output. The
27875       second input is used as a "reference" video for computing the SSIM.
27876
27877       Both video inputs must have the same resolution and pixel format for
27878       this filter to work correctly. Also it assumes that both inputs have
27879       the same number of frames, which are compared one by one.
27880
27881       The filter stores the calculated SSIM of each frame.
27882
27883       The description of the accepted parameters follows.
27884
27885       stats_file, f
27886           If specified the filter will use the named file to save the SSIM of
27887           each individual frame. When filename equals "-" the data is sent to
27888           standard output.
27889
27890       The file printed if stats_file is selected, contains a sequence of
27891       key/value pairs of the form key:value for each compared couple of
27892       frames.
27893
27894       A description of each shown parameter follows:
27895
27896       n   sequential number of the input frame, starting from 1
27897
27898       Y, U, V, R, G, B
27899           SSIM of the compared frames for the component specified by the
27900           suffix.
27901
27902       All SSIM of the compared frames for the whole frame.
27903
27904       dB  Same as above but in dB representation.
27905
27906       This filter also supports the framesync options.
27907
27908       Examples
27909
27910       •   For example:
27911
27912                   movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
27913                   [main][ref] ssim="stats_file=stats.log" [out]
27914
27915           On this example the input file being processed is compared with the
27916           reference file ref_movie.mpg. The SSIM of each individual frame is
27917           stored in stats.log.
27918
27919       •   Another example with both psnr and ssim at same time:
27920
27921                   ffmpeg -i main.mpg -i ref.mpg -lavfi  "ssim;[0:v][1:v]psnr" -f null -
27922
27923       •   Another example with different containers:
27924
27925                   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 -
27926
27927   stereo3d
27928       Convert between different stereoscopic image formats.
27929
27930       The filters accept the following options:
27931
27932       in  Set stereoscopic image format of input.
27933
27934           Available values for input image formats are:
27935
27936           sbsl
27937               side by side parallel (left eye left, right eye right)
27938
27939           sbsr
27940               side by side crosseye (right eye left, left eye right)
27941
27942           sbs2l
27943               side by side parallel with half width resolution (left eye
27944               left, right eye right)
27945
27946           sbs2r
27947               side by side crosseye with half width resolution (right eye
27948               left, left eye right)
27949
27950           abl
27951           tbl above-below (left eye above, right eye below)
27952
27953           abr
27954           tbr above-below (right eye above, left eye below)
27955
27956           ab2l
27957           tb2l
27958               above-below with half height resolution (left eye above, right
27959               eye below)
27960
27961           ab2r
27962           tb2r
27963               above-below with half height resolution (right eye above, left
27964               eye below)
27965
27966           al  alternating frames (left eye first, right eye second)
27967
27968           ar  alternating frames (right eye first, left eye second)
27969
27970           irl interleaved rows (left eye has top row, right eye starts on
27971               next row)
27972
27973           irr interleaved rows (right eye has top row, left eye starts on
27974               next row)
27975
27976           icl interleaved columns, left eye first
27977
27978           icr interleaved columns, right eye first
27979
27980               Default value is sbsl.
27981
27982       out Set stereoscopic image format of output.
27983
27984           sbsl
27985               side by side parallel (left eye left, right eye right)
27986
27987           sbsr
27988               side by side crosseye (right eye left, left eye right)
27989
27990           sbs2l
27991               side by side parallel with half width resolution (left eye
27992               left, right eye right)
27993
27994           sbs2r
27995               side by side crosseye with half width resolution (right eye
27996               left, left eye right)
27997
27998           abl
27999           tbl above-below (left eye above, right eye below)
28000
28001           abr
28002           tbr above-below (right eye above, left eye below)
28003
28004           ab2l
28005           tb2l
28006               above-below with half height resolution (left eye above, right
28007               eye below)
28008
28009           ab2r
28010           tb2r
28011               above-below with half height resolution (right eye above, left
28012               eye below)
28013
28014           al  alternating frames (left eye first, right eye second)
28015
28016           ar  alternating frames (right eye first, left eye second)
28017
28018           irl interleaved rows (left eye has top row, right eye starts on
28019               next row)
28020
28021           irr interleaved rows (right eye has top row, left eye starts on
28022               next row)
28023
28024           arbg
28025               anaglyph red/blue gray (red filter on left eye, blue filter on
28026               right eye)
28027
28028           argg
28029               anaglyph red/green gray (red filter on left eye, green filter
28030               on right eye)
28031
28032           arcg
28033               anaglyph red/cyan gray (red filter on left eye, cyan filter on
28034               right eye)
28035
28036           arch
28037               anaglyph red/cyan half colored (red filter on left eye, cyan
28038               filter on right eye)
28039
28040           arcc
28041               anaglyph red/cyan color (red filter on left eye, cyan filter on
28042               right eye)
28043
28044           arcd
28045               anaglyph red/cyan color optimized with the least squares
28046               projection of dubois (red filter on left eye, cyan filter on
28047               right eye)
28048
28049           agmg
28050               anaglyph green/magenta gray (green filter on left eye, magenta
28051               filter on right eye)
28052
28053           agmh
28054               anaglyph green/magenta half colored (green filter on left eye,
28055               magenta filter on right eye)
28056
28057           agmc
28058               anaglyph green/magenta colored (green filter on left eye,
28059               magenta filter on right eye)
28060
28061           agmd
28062               anaglyph green/magenta color optimized with the least squares
28063               projection of dubois (green filter on left eye, magenta filter
28064               on right eye)
28065
28066           aybg
28067               anaglyph yellow/blue gray (yellow filter on left eye, blue
28068               filter on right eye)
28069
28070           aybh
28071               anaglyph yellow/blue half colored (yellow filter on left eye,
28072               blue filter on right eye)
28073
28074           aybc
28075               anaglyph yellow/blue colored (yellow filter on left eye, blue
28076               filter on right eye)
28077
28078           aybd
28079               anaglyph yellow/blue color optimized with the least squares
28080               projection of dubois (yellow filter on left eye, blue filter on
28081               right eye)
28082
28083           ml  mono output (left eye only)
28084
28085           mr  mono output (right eye only)
28086
28087           chl checkerboard, left eye first
28088
28089           chr checkerboard, right eye first
28090
28091           icl interleaved columns, left eye first
28092
28093           icr interleaved columns, right eye first
28094
28095           hdmi
28096               HDMI frame pack
28097
28098           Default value is arcd.
28099
28100       Examples
28101
28102       •   Convert input video from side by side parallel to anaglyph
28103           yellow/blue dubois:
28104
28105                   stereo3d=sbsl:aybd
28106
28107       •   Convert input video from above below (left eye above, right eye
28108           below) to side by side crosseye.
28109
28110                   stereo3d=abl:sbsr
28111
28112   streamselect, astreamselect
28113       Select video or audio streams.
28114
28115       The filter accepts the following options:
28116
28117       inputs
28118           Set number of inputs. Default is 2.
28119
28120       map Set input indexes to remap to outputs.
28121
28122       Commands
28123
28124       The "streamselect" and "astreamselect" filter supports the following
28125       commands:
28126
28127       map Set input indexes to remap to outputs.
28128
28129       Examples
28130
28131       •   Select first 5 seconds 1st stream and rest of time 2nd stream:
28132
28133                   sendcmd='5.0 streamselect map 1',streamselect=inputs=2:map=0
28134
28135       •   Same as above, but for audio:
28136
28137                   asendcmd='5.0 astreamselect map 1',astreamselect=inputs=2:map=0
28138
28139   subtitles
28140       Draw subtitles on top of input video using the libass library.
28141
28142       To enable compilation of this filter you need to configure FFmpeg with
28143       "--enable-libass". This filter also requires a build with libavcodec
28144       and libavformat to convert the passed subtitles file to ASS (Advanced
28145       Substation Alpha) subtitles format.
28146
28147       The filter accepts the following options:
28148
28149       filename, f
28150           Set the filename of the subtitle file to read. It must be
28151           specified.
28152
28153       original_size
28154           Specify the size of the original video, the video for which the ASS
28155           file was composed. For the syntax of this option, check the "Video
28156           size" section in the ffmpeg-utils manual.  Due to a misdesign in
28157           ASS aspect ratio arithmetic, this is necessary to correctly scale
28158           the fonts if the aspect ratio has been changed.
28159
28160       fontsdir
28161           Set a directory path containing fonts that can be used by the
28162           filter.  These fonts will be used in addition to whatever the font
28163           provider uses.
28164
28165       alpha
28166           Process alpha channel, by default alpha channel is untouched.
28167
28168       charenc
28169           Set subtitles input character encoding. "subtitles" filter only.
28170           Only useful if not UTF-8.
28171
28172       stream_index, si
28173           Set subtitles stream index. "subtitles" filter only.
28174
28175       force_style
28176           Override default style or script info parameters of the subtitles.
28177           It accepts a string containing ASS style format "KEY=VALUE" couples
28178           separated by ",".
28179
28180       If the first key is not specified, it is assumed that the first value
28181       specifies the filename.
28182
28183       For example, to render the file sub.srt on top of the input video, use
28184       the command:
28185
28186               subtitles=sub.srt
28187
28188       which is equivalent to:
28189
28190               subtitles=filename=sub.srt
28191
28192       To render the default subtitles stream from file video.mkv, use:
28193
28194               subtitles=video.mkv
28195
28196       To render the second subtitles stream from that file, use:
28197
28198               subtitles=video.mkv:si=1
28199
28200       To make the subtitles stream from sub.srt appear in 80% transparent
28201       blue "DejaVu Serif", use:
28202
28203               subtitles=sub.srt:force_style='Fontname=DejaVu Serif,PrimaryColour=&HCCFF0000'
28204
28205   super2xsai
28206       Scale the input by 2x and smooth using the Super2xSaI (Scale and
28207       Interpolate) pixel art scaling algorithm.
28208
28209       Useful for enlarging pixel art images without reducing sharpness.
28210
28211   swaprect
28212       Swap two rectangular objects in video.
28213
28214       This filter accepts the following options:
28215
28216       w   Set object width.
28217
28218       h   Set object height.
28219
28220       x1  Set 1st rect x coordinate.
28221
28222       y1  Set 1st rect y coordinate.
28223
28224       x2  Set 2nd rect x coordinate.
28225
28226       y2  Set 2nd rect y coordinate.
28227
28228           All expressions are evaluated once for each frame.
28229
28230       The all options are expressions containing the following constants:
28231
28232       w
28233       h   The input width and height.
28234
28235       a   same as w / h
28236
28237       sar input sample aspect ratio
28238
28239       dar input display aspect ratio, it is the same as (w / h) * sar
28240
28241       n   The number of the input frame, starting from 0.
28242
28243       t   The timestamp expressed in seconds. It's NAN if the input timestamp
28244           is unknown.
28245
28246       pos the position in the file of the input frame, NAN if unknown
28247
28248       Commands
28249
28250       This filter supports the all above options as commands.
28251
28252   swapuv
28253       Swap U & V plane.
28254
28255   tblend
28256       Blend successive video frames.
28257
28258       See blend
28259
28260   telecine
28261       Apply telecine process to the video.
28262
28263       This filter accepts the following options:
28264
28265       first_field
28266           top, t
28267               top field first
28268
28269           bottom, b
28270               bottom field first The default value is "top".
28271
28272       pattern
28273           A string of numbers representing the pulldown pattern you wish to
28274           apply.  The default value is 23.
28275
28276               Some typical patterns:
28277
28278               NTSC output (30i):
28279               27.5p: 32222
28280               24p: 23 (classic)
28281               24p: 2332 (preferred)
28282               20p: 33
28283               18p: 334
28284               16p: 3444
28285
28286               PAL output (25i):
28287               27.5p: 12222
28288               24p: 222222222223 ("Euro pulldown")
28289               16.67p: 33
28290               16p: 33333334
28291
28292   thistogram
28293       Compute and draw a color distribution histogram for the input video
28294       across time.
28295
28296       Unlike histogram video filter which only shows histogram of single
28297       input frame at certain time, this filter shows also past histograms of
28298       number of frames defined by "width" option.
28299
28300       The computed histogram is a representation of the color component
28301       distribution in an image.
28302
28303       The filter accepts the following options:
28304
28305       width, w
28306           Set width of single color component output. Default value is 0.
28307           Value of 0 means width will be picked from input video.  This also
28308           set number of passed histograms to keep.  Allowed range is [0,
28309           8192].
28310
28311       display_mode, d
28312           Set display mode.  It accepts the following values:
28313
28314           stack
28315               Per color component graphs are placed below each other.
28316
28317           parade
28318               Per color component graphs are placed side by side.
28319
28320           overlay
28321               Presents information identical to that in the "parade", except
28322               that the graphs representing color components are superimposed
28323               directly over one another.
28324
28325           Default is "stack".
28326
28327       levels_mode, m
28328           Set mode. Can be either "linear", or "logarithmic".  Default is
28329           "linear".
28330
28331       components, c
28332           Set what color components to display.  Default is 7.
28333
28334       bgopacity, b
28335           Set background opacity. Default is 0.9.
28336
28337       envelope, e
28338           Show envelope. Default is disabled.
28339
28340       ecolor, ec
28341           Set envelope color. Default is "gold".
28342
28343       slide
28344           Set slide mode.
28345
28346           Available values for slide is:
28347
28348           frame
28349               Draw new frame when right border is reached.
28350
28351           replace
28352               Replace old columns with new ones.
28353
28354           scroll
28355               Scroll from right to left.
28356
28357           rscroll
28358               Scroll from left to right.
28359
28360           picture
28361               Draw single picture.
28362
28363           Default is "replace".
28364
28365   threshold
28366       Apply threshold effect to video stream.
28367
28368       This filter needs four video streams to perform thresholding.  First
28369       stream is stream we are filtering.  Second stream is holding threshold
28370       values, third stream is holding min values, and last, fourth stream is
28371       holding max values.
28372
28373       The filter accepts the following option:
28374
28375       planes
28376           Set which planes will be processed, unprocessed planes will be
28377           copied.  By default value 0xf, all planes will be processed.
28378
28379       For example if first stream pixel's component value is less then
28380       threshold value of pixel component from 2nd threshold stream, third
28381       stream value will picked, otherwise fourth stream pixel component value
28382       will be picked.
28383
28384       Using color source filter one can perform various types of
28385       thresholding:
28386
28387       Commands
28388
28389       This filter supports the all options as commands.
28390
28391       Examples
28392
28393       •   Binary threshold, using gray color as threshold:
28394
28395                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=black -f lavfi -i color=white -lavfi threshold output.avi
28396
28397       •   Inverted binary threshold, using gray color as threshold:
28398
28399                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -f lavfi -i color=black -lavfi threshold output.avi
28400
28401       •   Truncate binary threshold, using gray color as threshold:
28402
28403                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=gray -lavfi threshold output.avi
28404
28405       •   Threshold to zero, using gray color as threshold:
28406
28407                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -i 320x240.avi -lavfi threshold output.avi
28408
28409       •   Inverted threshold to zero, using gray color as threshold:
28410
28411                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=white -lavfi threshold output.avi
28412
28413   thumbnail
28414       Select the most representative frame in a given sequence of consecutive
28415       frames.
28416
28417       The filter accepts the following options:
28418
28419       n   Set the frames batch size to analyze; in a set of n frames, the
28420           filter will pick one of them, and then handle the next batch of n
28421           frames until the end. Default is 100.
28422
28423       Since the filter keeps track of the whole frames sequence, a bigger n
28424       value will result in a higher memory usage, so a high value is not
28425       recommended.
28426
28427       Examples
28428
28429       •   Extract one picture each 50 frames:
28430
28431                   thumbnail=50
28432
28433       •   Complete example of a thumbnail creation with ffmpeg:
28434
28435                   ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
28436
28437   tile
28438       Tile several successive frames together.
28439
28440       The untile filter can do the reverse.
28441
28442       The filter accepts the following options:
28443
28444       layout
28445           Set the grid size in the form "COLUMNSxROWS". Range is upto
28446           UINT_MAX cells.  Default is "6x5".
28447
28448       nb_frames
28449           Set the maximum number of frames to render in the given area. It
28450           must be less than or equal to wxh. The default value is 0, meaning
28451           all the area will be used.
28452
28453       margin
28454           Set the outer border margin in pixels. Range is 0 to 1024. Default
28455           is 0.
28456
28457       padding
28458           Set the inner border thickness (i.e. the number of pixels between
28459           frames). For more advanced padding options (such as having
28460           different values for the edges), refer to the pad video filter.
28461           Range is 0 to 1024. Default is 0.
28462
28463       color
28464           Specify the color of the unused area. For the syntax of this
28465           option, check the "Color" section in the ffmpeg-utils manual.  The
28466           default value of color is "black".
28467
28468       overlap
28469           Set the number of frames to overlap when tiling several successive
28470           frames together.  The value must be between 0 and nb_frames - 1.
28471           Default is 0.
28472
28473       init_padding
28474           Set the number of frames to initially be empty before displaying
28475           first output frame.  This controls how soon will one get first
28476           output frame.  The value must be between 0 and nb_frames - 1.
28477           Default is 0.
28478
28479       Examples
28480
28481       •   Produce 8x8 PNG tiles of all keyframes (-skip_frame nokey) in a
28482           movie:
28483
28484                   ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
28485
28486           The -vsync 0 is necessary to prevent ffmpeg from duplicating each
28487           output frame to accommodate the originally detected frame rate.
28488
28489       •   Display 5 pictures in an area of "3x2" frames, with 7 pixels
28490           between them, and 2 pixels of initial margin, using mixed flat and
28491           named options:
28492
28493                   tile=3x2:nb_frames=5:padding=7:margin=2
28494
28495   tinterlace
28496       Perform various types of temporal field interlacing.
28497
28498       Frames are counted starting from 1, so the first input frame is
28499       considered odd.
28500
28501       The filter accepts the following options:
28502
28503       mode
28504           Specify the mode of the interlacing. This option can also be
28505           specified as a value alone. See below for a list of values for this
28506           option.
28507
28508           Available values are:
28509
28510           merge, 0
28511               Move odd frames into the upper field, even into the lower
28512               field, generating a double height frame at half frame rate.
28513
28514                        ------> time
28515                       Input:
28516                       Frame 1         Frame 2         Frame 3         Frame 4
28517
28518                       11111           22222           33333           44444
28519                       11111           22222           33333           44444
28520                       11111           22222           33333           44444
28521                       11111           22222           33333           44444
28522
28523                       Output:
28524                       11111                           33333
28525                       22222                           44444
28526                       11111                           33333
28527                       22222                           44444
28528                       11111                           33333
28529                       22222                           44444
28530                       11111                           33333
28531                       22222                           44444
28532
28533           drop_even, 1
28534               Only output odd frames, even frames are dropped, generating a
28535               frame with unchanged height at half frame rate.
28536
28537                        ------> time
28538                       Input:
28539                       Frame 1         Frame 2         Frame 3         Frame 4
28540
28541                       11111           22222           33333           44444
28542                       11111           22222           33333           44444
28543                       11111           22222           33333           44444
28544                       11111           22222           33333           44444
28545
28546                       Output:
28547                       11111                           33333
28548                       11111                           33333
28549                       11111                           33333
28550                       11111                           33333
28551
28552           drop_odd, 2
28553               Only output even frames, odd frames are dropped, generating a
28554               frame with unchanged height at half frame rate.
28555
28556                        ------> time
28557                       Input:
28558                       Frame 1         Frame 2         Frame 3         Frame 4
28559
28560                       11111           22222           33333           44444
28561                       11111           22222           33333           44444
28562                       11111           22222           33333           44444
28563                       11111           22222           33333           44444
28564
28565                       Output:
28566                                       22222                           44444
28567                                       22222                           44444
28568                                       22222                           44444
28569                                       22222                           44444
28570
28571           pad, 3
28572               Expand each frame to full height, but pad alternate lines with
28573               black, generating a frame with double height at the same input
28574               frame rate.
28575
28576                        ------> time
28577                       Input:
28578                       Frame 1         Frame 2         Frame 3         Frame 4
28579
28580                       11111           22222           33333           44444
28581                       11111           22222           33333           44444
28582                       11111           22222           33333           44444
28583                       11111           22222           33333           44444
28584
28585                       Output:
28586                       11111           .....           33333           .....
28587                       .....           22222           .....           44444
28588                       11111           .....           33333           .....
28589                       .....           22222           .....           44444
28590                       11111           .....           33333           .....
28591                       .....           22222           .....           44444
28592                       11111           .....           33333           .....
28593                       .....           22222           .....           44444
28594
28595           interleave_top, 4
28596               Interleave the upper field from odd frames with the lower field
28597               from even frames, generating a frame with unchanged height at
28598               half frame rate.
28599
28600                        ------> time
28601                       Input:
28602                       Frame 1         Frame 2         Frame 3         Frame 4
28603
28604                       11111<-         22222           33333<-         44444
28605                       11111           22222<-         33333           44444<-
28606                       11111<-         22222           33333<-         44444
28607                       11111           22222<-         33333           44444<-
28608
28609                       Output:
28610                       11111                           33333
28611                       22222                           44444
28612                       11111                           33333
28613                       22222                           44444
28614
28615           interleave_bottom, 5
28616               Interleave the lower field from odd frames with the upper field
28617               from even frames, generating a frame with unchanged height at
28618               half frame rate.
28619
28620                        ------> time
28621                       Input:
28622                       Frame 1         Frame 2         Frame 3         Frame 4
28623
28624                       11111           22222<-         33333           44444<-
28625                       11111<-         22222           33333<-         44444
28626                       11111           22222<-         33333           44444<-
28627                       11111<-         22222           33333<-         44444
28628
28629                       Output:
28630                       22222                           44444
28631                       11111                           33333
28632                       22222                           44444
28633                       11111                           33333
28634
28635           interlacex2, 6
28636               Double frame rate with unchanged height. Frames are inserted
28637               each containing the second temporal field from the previous
28638               input frame and the first temporal field from the next input
28639               frame. This mode relies on the top_field_first flag. Useful for
28640               interlaced video displays with no field synchronisation.
28641
28642                        ------> time
28643                       Input:
28644                       Frame 1         Frame 2         Frame 3         Frame 4
28645
28646                       11111           22222           33333           44444
28647                        11111           22222           33333           44444
28648                       11111           22222           33333           44444
28649                        11111           22222           33333           44444
28650
28651                       Output:
28652                       11111   22222   22222   33333   33333   44444   44444
28653                        11111   11111   22222   22222   33333   33333   44444
28654                       11111   22222   22222   33333   33333   44444   44444
28655                        11111   11111   22222   22222   33333   33333   44444
28656
28657           mergex2, 7
28658               Move odd frames into the upper field, even into the lower
28659               field, generating a double height frame at same frame rate.
28660
28661                        ------> time
28662                       Input:
28663                       Frame 1         Frame 2         Frame 3         Frame 4
28664
28665                       11111           22222           33333           44444
28666                       11111           22222           33333           44444
28667                       11111           22222           33333           44444
28668                       11111           22222           33333           44444
28669
28670                       Output:
28671                       11111           33333           33333           55555
28672                       22222           22222           44444           44444
28673                       11111           33333           33333           55555
28674                       22222           22222           44444           44444
28675                       11111           33333           33333           55555
28676                       22222           22222           44444           44444
28677                       11111           33333           33333           55555
28678                       22222           22222           44444           44444
28679
28680           Numeric values are deprecated but are accepted for backward
28681           compatibility reasons.
28682
28683           Default mode is "merge".
28684
28685       flags
28686           Specify flags influencing the filter process.
28687
28688           Available value for flags is:
28689
28690           low_pass_filter, vlpf
28691               Enable linear vertical low-pass filtering in the filter.
28692               Vertical low-pass filtering is required when creating an
28693               interlaced destination from a progressive source which contains
28694               high-frequency vertical detail. Filtering will reduce interlace
28695               'twitter' and Moire patterning.
28696
28697           complex_filter, cvlpf
28698               Enable complex vertical low-pass filtering.  This will slightly
28699               less reduce interlace 'twitter' and Moire patterning but better
28700               retain detail and subjective sharpness impression.
28701
28702           bypass_il
28703               Bypass already interlaced frames, only adjust the frame rate.
28704
28705           Vertical low-pass filtering and bypassing already interlaced frames
28706           can only be enabled for mode interleave_top and interleave_bottom.
28707
28708   tmedian
28709       Pick median pixels from several successive input video frames.
28710
28711       The filter accepts the following options:
28712
28713       radius
28714           Set radius of median filter.  Default is 1. Allowed range is from 1
28715           to 127.
28716
28717       planes
28718           Set which planes to filter. Default value is 15, by which all
28719           planes are processed.
28720
28721       percentile
28722           Set median percentile. Default value is 0.5.  Default value of 0.5
28723           will pick always median values, while 0 will pick minimum values,
28724           and 1 maximum values.
28725
28726       Commands
28727
28728       This filter supports all above options as commands, excluding option
28729       "radius".
28730
28731   tmidequalizer
28732       Apply Temporal Midway Video Equalization effect.
28733
28734       Midway Video Equalization adjusts a sequence of video frames to have
28735       the same histograms, while maintaining their dynamics as much as
28736       possible. It's useful for e.g. matching exposures from a video frames
28737       sequence.
28738
28739       This filter accepts the following option:
28740
28741       radius
28742           Set filtering radius. Default is 5. Allowed range is from 1 to 127.
28743
28744       sigma
28745           Set filtering sigma. Default is 0.5. This controls strength of
28746           filtering.  Setting this option to 0 effectively does nothing.
28747
28748       planes
28749           Set which planes to process. Default is 15, which is all available
28750           planes.
28751
28752   tmix
28753       Mix successive video frames.
28754
28755       A description of the accepted options follows.
28756
28757       frames
28758           The number of successive frames to mix. If unspecified, it defaults
28759           to 3.
28760
28761       weights
28762           Specify weight of each input video frame.  Each weight is separated
28763           by space. If number of weights is smaller than number of frames
28764           last specified weight will be used for all remaining unset weights.
28765
28766       scale
28767           Specify scale, if it is set it will be multiplied with sum of each
28768           weight multiplied with pixel values to give final destination pixel
28769           value. By default scale is auto scaled to sum of weights.
28770
28771       planes
28772           Set which planes to filter. Default is all. Allowed range is from 0
28773           to 15.
28774
28775       Examples
28776
28777       •   Average 7 successive frames:
28778
28779                   tmix=frames=7:weights="1 1 1 1 1 1 1"
28780
28781       •   Apply simple temporal convolution:
28782
28783                   tmix=frames=3:weights="-1 3 -1"
28784
28785       •   Similar as above but only showing temporal differences:
28786
28787                   tmix=frames=3:weights="-1 2 -1":scale=1
28788
28789       Commands
28790
28791       This filter supports the following commands:
28792
28793       weights
28794       scale
28795       planes
28796           Syntax is same as option with same name.
28797
28798   tonemap
28799       Tone map colors from different dynamic ranges.
28800
28801       This filter expects data in single precision floating point, as it
28802       needs to operate on (and can output) out-of-range values. Another
28803       filter, such as zscale, is needed to convert the resulting frame to a
28804       usable format.
28805
28806       The tonemapping algorithms implemented only work on linear light, so
28807       input data should be linearized beforehand (and possibly correctly
28808       tagged).
28809
28810               ffmpeg -i INPUT -vf zscale=transfer=linear,tonemap=clip,zscale=transfer=bt709,format=yuv420p OUTPUT
28811
28812       Options
28813
28814       The filter accepts the following options.
28815
28816       tonemap
28817           Set the tone map algorithm to use.
28818
28819           Possible values are:
28820
28821           none
28822               Do not apply any tone map, only desaturate overbright pixels.
28823
28824           clip
28825               Hard-clip any out-of-range values. Use it for perfect color
28826               accuracy for in-range values, while distorting out-of-range
28827               values.
28828
28829           linear
28830               Stretch the entire reference gamut to a linear multiple of the
28831               display.
28832
28833           gamma
28834               Fit a logarithmic transfer between the tone curves.
28835
28836           reinhard
28837               Preserve overall image brightness with a simple curve, using
28838               nonlinear contrast, which results in flattening details and
28839               degrading color accuracy.
28840
28841           hable
28842               Preserve both dark and bright details better than reinhard, at
28843               the cost of slightly darkening everything. Use it when detail
28844               preservation is more important than color and brightness
28845               accuracy.
28846
28847           mobius
28848               Smoothly map out-of-range values, while retaining contrast and
28849               colors for in-range material as much as possible. Use it when
28850               color accuracy is more important than detail preservation.
28851
28852           Default is none.
28853
28854       param
28855           Tune the tone mapping algorithm.
28856
28857           This affects the following algorithms:
28858
28859           none
28860               Ignored.
28861
28862           linear
28863               Specifies the scale factor to use while stretching.  Default to
28864               1.0.
28865
28866           gamma
28867               Specifies the exponent of the function.  Default to 1.8.
28868
28869           clip
28870               Specify an extra linear coefficient to multiply into the signal
28871               before clipping.  Default to 1.0.
28872
28873           reinhard
28874               Specify the local contrast coefficient at the display peak.
28875               Default to 0.5, which means that in-gamut values will be about
28876               half as bright as when clipping.
28877
28878           hable
28879               Ignored.
28880
28881           mobius
28882               Specify the transition point from linear to mobius transform.
28883               Every value below this point is guaranteed to be mapped 1:1.
28884               The higher the value, the more accurate the result will be, at
28885               the cost of losing bright details.  Default to 0.3, which due
28886               to the steep initial slope still preserves in-range colors
28887               fairly accurately.
28888
28889       desat
28890           Apply desaturation for highlights that exceed this level of
28891           brightness. The higher the parameter, the more color information
28892           will be preserved. This setting helps prevent unnaturally blown-out
28893           colors for super-highlights, by (smoothly) turning into white
28894           instead. This makes images feel more natural, at the cost of
28895           reducing information about out-of-range colors.
28896
28897           The default of 2.0 is somewhat conservative and will mostly just
28898           apply to skies or directly sunlit surfaces. A setting of 0.0
28899           disables this option.
28900
28901           This option works only if the input frame has a supported color
28902           tag.
28903
28904       peak
28905           Override signal/nominal/reference peak with this value. Useful when
28906           the embedded peak information in display metadata is not reliable
28907           or when tone mapping from a lower range to a higher range.
28908
28909   tpad
28910       Temporarily pad video frames.
28911
28912       The filter accepts the following options:
28913
28914       start
28915           Specify number of delay frames before input video stream. Default
28916           is 0.
28917
28918       stop
28919           Specify number of padding frames after input video stream.  Set to
28920           -1 to pad indefinitely. Default is 0.
28921
28922       start_mode
28923           Set kind of frames added to beginning of stream.  Can be either add
28924           or clone.  With add frames of solid-color are added.  With clone
28925           frames are clones of first frame.  Default is add.
28926
28927       stop_mode
28928           Set kind of frames added to end of stream.  Can be either add or
28929           clone.  With add frames of solid-color are added.  With clone
28930           frames are clones of last frame.  Default is add.
28931
28932       start_duration, stop_duration
28933           Specify the duration of the start/stop delay. See the Time duration
28934           section in the ffmpeg-utils(1) manual for the accepted syntax.
28935           These options override start and stop. Default is 0.
28936
28937       color
28938           Specify the color of the padded area. For the syntax of this
28939           option, check the "Color" section in the ffmpeg-utils manual.
28940
28941           The default value of color is "black".
28942
28943   transpose
28944       Transpose rows with columns in the input video and optionally flip it.
28945
28946       It accepts the following parameters:
28947
28948       dir Specify the transposition direction.
28949
28950           Can assume the following values:
28951
28952           0, 4, cclock_flip
28953               Rotate by 90 degrees counterclockwise and vertically flip
28954               (default), that is:
28955
28956                       L.R     L.l
28957                       . . ->  . .
28958                       l.r     R.r
28959
28960           1, 5, clock
28961               Rotate by 90 degrees clockwise, that is:
28962
28963                       L.R     l.L
28964                       . . ->  . .
28965                       l.r     r.R
28966
28967           2, 6, cclock
28968               Rotate by 90 degrees counterclockwise, that is:
28969
28970                       L.R     R.r
28971                       . . ->  . .
28972                       l.r     L.l
28973
28974           3, 7, clock_flip
28975               Rotate by 90 degrees clockwise and vertically flip, that is:
28976
28977                       L.R     r.R
28978                       . . ->  . .
28979                       l.r     l.L
28980
28981           For values between 4-7, the transposition is only done if the input
28982           video geometry is portrait and not landscape. These values are
28983           deprecated, the "passthrough" option should be used instead.
28984
28985           Numerical values are deprecated, and should be dropped in favor of
28986           symbolic constants.
28987
28988       passthrough
28989           Do not apply the transposition if the input geometry matches the
28990           one specified by the specified value. It accepts the following
28991           values:
28992
28993           none
28994               Always apply transposition.
28995
28996           portrait
28997               Preserve portrait geometry (when height >= width).
28998
28999           landscape
29000               Preserve landscape geometry (when width >= height).
29001
29002           Default value is "none".
29003
29004       For example to rotate by 90 degrees clockwise and preserve portrait
29005       layout:
29006
29007               transpose=dir=1:passthrough=portrait
29008
29009       The command above can also be specified as:
29010
29011               transpose=1:portrait
29012
29013   transpose_npp
29014       Transpose rows with columns in the input video and optionally flip it.
29015       For more in depth examples see the transpose video filter, which shares
29016       mostly the same options.
29017
29018       It accepts the following parameters:
29019
29020       dir Specify the transposition direction.
29021
29022           Can assume the following values:
29023
29024           cclock_flip
29025               Rotate by 90 degrees counterclockwise and vertically flip.
29026               (default)
29027
29028           clock
29029               Rotate by 90 degrees clockwise.
29030
29031           cclock
29032               Rotate by 90 degrees counterclockwise.
29033
29034           clock_flip
29035               Rotate by 90 degrees clockwise and vertically flip.
29036
29037       passthrough
29038           Do not apply the transposition if the input geometry matches the
29039           one specified by the specified value. It accepts the following
29040           values:
29041
29042           none
29043               Always apply transposition. (default)
29044
29045           portrait
29046               Preserve portrait geometry (when height >= width).
29047
29048           landscape
29049               Preserve landscape geometry (when width >= height).
29050
29051   trim
29052       Trim the input so that the output contains one continuous subpart of
29053       the input.
29054
29055       It accepts the following parameters:
29056
29057       start
29058           Specify the time of the start of the kept section, i.e. the frame
29059           with the timestamp start will be the first frame in the output.
29060
29061       end Specify the time of the first frame that will be dropped, i.e. the
29062           frame immediately preceding the one with the timestamp end will be
29063           the last frame in the output.
29064
29065       start_pts
29066           This is the same as start, except this option sets the start
29067           timestamp in timebase units instead of seconds.
29068
29069       end_pts
29070           This is the same as end, except this option sets the end timestamp
29071           in timebase units instead of seconds.
29072
29073       duration
29074           The maximum duration of the output in seconds.
29075
29076       start_frame
29077           The number of the first frame that should be passed to the output.
29078
29079       end_frame
29080           The number of the first frame that should be dropped.
29081
29082       start, end, and duration are expressed as time duration specifications;
29083       see the Time duration section in the ffmpeg-utils(1) manual for the
29084       accepted syntax.
29085
29086       Note that the first two sets of the start/end options and the duration
29087       option look at the frame timestamp, while the _frame variants simply
29088       count the frames that pass through the filter. Also note that this
29089       filter does not modify the timestamps. If you wish for the output
29090       timestamps to start at zero, insert a setpts filter after the trim
29091       filter.
29092
29093       If multiple start or end options are set, this filter tries to be
29094       greedy and keep all the frames that match at least one of the specified
29095       constraints. To keep only the part that matches all the constraints at
29096       once, chain multiple trim filters.
29097
29098       The defaults are such that all the input is kept. So it is possible to
29099       set e.g.  just the end values to keep everything before the specified
29100       time.
29101
29102       Examples:
29103
29104       •   Drop everything except the second minute of input:
29105
29106                   ffmpeg -i INPUT -vf trim=60:120
29107
29108       •   Keep only the first second:
29109
29110                   ffmpeg -i INPUT -vf trim=duration=1
29111
29112   unpremultiply
29113       Apply alpha unpremultiply effect to input video stream using first
29114       plane of second stream as alpha.
29115
29116       Both streams must have same dimensions and same pixel format.
29117
29118       The filter accepts the following option:
29119
29120       planes
29121           Set which planes will be processed, unprocessed planes will be
29122           copied.  By default value 0xf, all planes will be processed.
29123
29124           If the format has 1 or 2 components, then luma is bit 0.  If the
29125           format has 3 or 4 components: for RGB formats bit 0 is green, bit 1
29126           is blue and bit 2 is red; for YUV formats bit 0 is luma, bit 1 is
29127           chroma-U and bit 2 is chroma-V.  If present, the alpha channel is
29128           always the last bit.
29129
29130       inplace
29131           Do not require 2nd input for processing, instead use alpha plane
29132           from input stream.
29133
29134   unsharp
29135       Sharpen or blur the input video.
29136
29137       It accepts the following parameters:
29138
29139       luma_msize_x, lx
29140           Set the luma matrix horizontal size. It must be an odd integer
29141           between 3 and 23. The default value is 5.
29142
29143       luma_msize_y, ly
29144           Set the luma matrix vertical size. It must be an odd integer
29145           between 3 and 23. The default value is 5.
29146
29147       luma_amount, la
29148           Set the luma effect strength. It must be a floating point number,
29149           reasonable values lay between -1.5 and 1.5.
29150
29151           Negative values will blur the input video, while positive values
29152           will sharpen it, a value of zero will disable the effect.
29153
29154           Default value is 1.0.
29155
29156       chroma_msize_x, cx
29157           Set the chroma matrix horizontal size. It must be an odd integer
29158           between 3 and 23. The default value is 5.
29159
29160       chroma_msize_y, cy
29161           Set the chroma matrix vertical size. It must be an odd integer
29162           between 3 and 23. The default value is 5.
29163
29164       chroma_amount, ca
29165           Set the chroma effect strength. It must be a floating point number,
29166           reasonable values lay between -1.5 and 1.5.
29167
29168           Negative values will blur the input video, while positive values
29169           will sharpen it, a value of zero will disable the effect.
29170
29171           Default value is 0.0.
29172
29173       alpha_msize_x, ax
29174           Set the alpha matrix horizontal size. It must be an odd integer
29175           between 3 and 23. The default value is 5.
29176
29177       alpha_msize_y, ay
29178           Set the alpha matrix vertical size. It must be an odd integer
29179           between 3 and 23. The default value is 5.
29180
29181       alpha_amount, aa
29182           Set the alpha effect strength. It must be a floating point number,
29183           reasonable values lay between -1.5 and 1.5.
29184
29185           Negative values will blur the input video, while positive values
29186           will sharpen it, a value of zero will disable the effect.
29187
29188           Default value is 0.0.
29189
29190       All parameters are optional and default to the equivalent of the string
29191       '5:5:1.0:5:5:0.0'.
29192
29193       Examples
29194
29195       •   Apply strong luma sharpen effect:
29196
29197                   unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
29198
29199       •   Apply a strong blur of both luma and chroma parameters:
29200
29201                   unsharp=7:7:-2:7:7:-2
29202
29203   untile
29204       Decompose a video made of tiled images into the individual images.
29205
29206       The frame rate of the output video is the frame rate of the input video
29207       multiplied by the number of tiles.
29208
29209       This filter does the reverse of tile.
29210
29211       The filter accepts the following options:
29212
29213       layout
29214           Set the grid size (i.e. the number of lines and columns). For the
29215           syntax of this option, check the "Video size" section in the
29216           ffmpeg-utils manual.
29217
29218       Examples
29219
29220       •   Produce a 1-second video from a still image file made of 25 frames
29221           stacked vertically, like an analogic film reel:
29222
29223                   ffmpeg -r 1 -i image.jpg -vf untile=1x25 movie.mkv
29224
29225   uspp
29226       Apply ultra slow/simple postprocessing filter that compresses and
29227       decompresses the image at several (or - in the case of quality level 8
29228       - all) shifts and average the results.
29229
29230       The way this differs from the behavior of spp is that uspp actually
29231       encodes & decodes each case with libavcodec Snow, whereas spp uses a
29232       simplified intra only 8x8 DCT similar to MJPEG.
29233
29234       This filter is only available in ffmpeg version 4.4 or earlier.
29235
29236       The filter accepts the following options:
29237
29238       quality
29239           Set quality. This option defines the number of levels for
29240           averaging. It accepts an integer in the range 0-8. If set to 0, the
29241           filter will have no effect. A value of 8 means the higher quality.
29242           For each increment of that value the speed drops by a factor of
29243           approximately 2.  Default value is 3.
29244
29245       qp  Force a constant quantization parameter. If not set, the filter
29246           will use the QP from the video stream (if available).
29247
29248   v360
29249       Convert 360 videos between various formats.
29250
29251       The filter accepts the following options:
29252
29253       input
29254       output
29255           Set format of the input/output video.
29256
29257           Available formats:
29258
29259           e
29260           equirect
29261               Equirectangular projection.
29262
29263           c3x2
29264           c6x1
29265           c1x6
29266               Cubemap with 3x2/6x1/1x6 layout.
29267
29268               Format specific options:
29269
29270               in_pad
29271               out_pad
29272                   Set padding proportion for the input/output cubemap. Values
29273                   in decimals.
29274
29275                   Example values:
29276
29277                   0   No padding.
29278
29279                   0.01
29280                       1% of face is padding. For example, with 1920x1280
29281                       resolution face size would be 640x640 and padding would
29282                       be 3 pixels from each side. (640 * 0.01 = 6 pixels)
29283
29284                   Default value is @samp{0}.  Maximum value is @samp{0.1}.
29285
29286               fin_pad
29287               fout_pad
29288                   Set fixed padding for the input/output cubemap. Values in
29289                   pixels.
29290
29291                   Default value is @samp{0}. If greater than zero it
29292                   overrides other padding options.
29293
29294               in_forder
29295               out_forder
29296                   Set order of faces for the input/output cubemap. Choose one
29297                   direction for each position.
29298
29299                   Designation of directions:
29300
29301                   r   right
29302
29303                   l   left
29304
29305                   u   up
29306
29307                   d   down
29308
29309                   f   forward
29310
29311                   b   back
29312
29313                   Default value is @samp{rludfb}.
29314
29315               in_frot
29316               out_frot
29317                   Set rotation of faces for the input/output cubemap. Choose
29318                   one angle for each position.
29319
29320                   Designation of angles:
29321
29322                   0   0 degrees clockwise
29323
29324                   1   90 degrees clockwise
29325
29326                   2   180 degrees clockwise
29327
29328                   3   270 degrees clockwise
29329
29330                   Default value is @samp{000000}.
29331
29332           eac Equi-Angular Cubemap.
29333
29334           flat
29335           gnomonic
29336           rectilinear
29337               Regular video.
29338
29339               Format specific options:
29340
29341               h_fov
29342               v_fov
29343               d_fov
29344                   Set output horizontal/vertical/diagonal field of view.
29345                   Values in degrees.
29346
29347                   If diagonal field of view is set it overrides horizontal
29348                   and vertical field of view.
29349
29350               ih_fov
29351               iv_fov
29352               id_fov
29353                   Set input horizontal/vertical/diagonal field of view.
29354                   Values in degrees.
29355
29356                   If diagonal field of view is set it overrides horizontal
29357                   and vertical field of view.
29358
29359           dfisheye
29360               Dual fisheye.
29361
29362               Format specific options:
29363
29364               h_fov
29365               v_fov
29366               d_fov
29367                   Set output horizontal/vertical/diagonal field of view.
29368                   Values in degrees.
29369
29370                   If diagonal field of view is set it overrides horizontal
29371                   and vertical field of view.
29372
29373               ih_fov
29374               iv_fov
29375               id_fov
29376                   Set input horizontal/vertical/diagonal field of view.
29377                   Values in degrees.
29378
29379                   If diagonal field of view is set it overrides horizontal
29380                   and vertical field of view.
29381
29382           barrel
29383           fb
29384           barrelsplit
29385               Facebook's 360 formats.
29386
29387           sg  Stereographic format.
29388
29389               Format specific options:
29390
29391               h_fov
29392               v_fov
29393               d_fov
29394                   Set output horizontal/vertical/diagonal field of view.
29395                   Values in degrees.
29396
29397                   If diagonal field of view is set it overrides horizontal
29398                   and vertical field of view.
29399
29400               ih_fov
29401               iv_fov
29402               id_fov
29403                   Set input horizontal/vertical/diagonal field of view.
29404                   Values in degrees.
29405
29406                   If diagonal field of view is set it overrides horizontal
29407                   and vertical field of view.
29408
29409           mercator
29410               Mercator format.
29411
29412           ball
29413               Ball format, gives significant distortion toward the back.
29414
29415           hammer
29416               Hammer-Aitoff map projection format.
29417
29418           sinusoidal
29419               Sinusoidal map projection format.
29420
29421           fisheye
29422               Fisheye projection.
29423
29424               Format specific options:
29425
29426               h_fov
29427               v_fov
29428               d_fov
29429                   Set output horizontal/vertical/diagonal field of view.
29430                   Values in degrees.
29431
29432                   If diagonal field of view is set it overrides horizontal
29433                   and vertical field of view.
29434
29435               ih_fov
29436               iv_fov
29437               id_fov
29438                   Set input horizontal/vertical/diagonal field of view.
29439                   Values in degrees.
29440
29441                   If diagonal field of view is set it overrides horizontal
29442                   and vertical field of view.
29443
29444           pannini
29445               Pannini projection.
29446
29447               Format specific options:
29448
29449               h_fov
29450                   Set output pannini parameter.
29451
29452               ih_fov
29453                   Set input pannini parameter.
29454
29455           cylindrical
29456               Cylindrical projection.
29457
29458               Format specific options:
29459
29460               h_fov
29461               v_fov
29462               d_fov
29463                   Set output horizontal/vertical/diagonal field of view.
29464                   Values in degrees.
29465
29466                   If diagonal field of view is set it overrides horizontal
29467                   and vertical field of view.
29468
29469               ih_fov
29470               iv_fov
29471               id_fov
29472                   Set input horizontal/vertical/diagonal field of view.
29473                   Values in degrees.
29474
29475                   If diagonal field of view is set it overrides horizontal
29476                   and vertical field of view.
29477
29478           perspective
29479               Perspective projection. (output only)
29480
29481               Format specific options:
29482
29483               v_fov
29484                   Set perspective parameter.
29485
29486           tetrahedron
29487               Tetrahedron projection.
29488
29489           tsp Truncated square pyramid projection.
29490
29491           he
29492           hequirect
29493               Half equirectangular projection.
29494
29495           equisolid
29496               Equisolid format.
29497
29498               Format specific options:
29499
29500               h_fov
29501               v_fov
29502               d_fov
29503                   Set output horizontal/vertical/diagonal field of view.
29504                   Values in degrees.
29505
29506                   If diagonal field of view is set it overrides horizontal
29507                   and vertical field of view.
29508
29509               ih_fov
29510               iv_fov
29511               id_fov
29512                   Set input horizontal/vertical/diagonal field of view.
29513                   Values in degrees.
29514
29515                   If diagonal field of view is set it overrides horizontal
29516                   and vertical field of view.
29517
29518           og  Orthographic format.
29519
29520               Format specific options:
29521
29522               h_fov
29523               v_fov
29524               d_fov
29525                   Set output horizontal/vertical/diagonal field of view.
29526                   Values in degrees.
29527
29528                   If diagonal field of view is set it overrides horizontal
29529                   and vertical field of view.
29530
29531               ih_fov
29532               iv_fov
29533               id_fov
29534                   Set input horizontal/vertical/diagonal field of view.
29535                   Values in degrees.
29536
29537                   If diagonal field of view is set it overrides horizontal
29538                   and vertical field of view.
29539
29540           octahedron
29541               Octahedron projection.
29542
29543           cylindricalea
29544               Cylindrical Equal Area projection.
29545
29546       interp
29547           Set interpolation method.Note: more complex interpolation methods
29548           require much more memory to run.
29549
29550           Available methods:
29551
29552           near
29553           nearest
29554               Nearest neighbour.
29555
29556           line
29557           linear
29558               Bilinear interpolation.
29559
29560           lagrange9
29561               Lagrange9 interpolation.
29562
29563           cube
29564           cubic
29565               Bicubic interpolation.
29566
29567           lanc
29568           lanczos
29569               Lanczos interpolation.
29570
29571           sp16
29572           spline16
29573               Spline16 interpolation.
29574
29575           gauss
29576           gaussian
29577               Gaussian interpolation.
29578
29579           mitchell
29580               Mitchell interpolation.
29581
29582           Default value is @samp{line}.
29583
29584       w
29585       h   Set the output video resolution.
29586
29587           Default resolution depends on formats.
29588
29589       in_stereo
29590       out_stereo
29591           Set the input/output stereo format.
29592
29593           2d  2D mono
29594
29595           sbs Side by side
29596
29597           tb  Top bottom
29598
29599           Default value is @samp{2d} for input and output format.
29600
29601       yaw
29602       pitch
29603       roll
29604           Set rotation for the output video. Values in degrees.
29605
29606       rorder
29607           Set rotation order for the output video. Choose one item for each
29608           position.
29609
29610           y, Y
29611               yaw
29612
29613           p, P
29614               pitch
29615
29616           r, R
29617               roll
29618
29619           Default value is @samp{ypr}.
29620
29621       h_flip
29622       v_flip
29623       d_flip
29624           Flip the output video horizontally(swaps
29625           left-right)/vertically(swaps up-down)/in-depth(swaps back-forward).
29626           Boolean values.
29627
29628       ih_flip
29629       iv_flip
29630           Set if input video is flipped horizontally/vertically. Boolean
29631           values.
29632
29633       in_trans
29634           Set if input video is transposed. Boolean value, by default
29635           disabled.
29636
29637       out_trans
29638           Set if output video needs to be transposed. Boolean value, by
29639           default disabled.
29640
29641       h_offset
29642       v_offset
29643           Set output horizontal/vertical off-axis offset. Default is set to
29644           0.  Allowed range is from -1 to 1.
29645
29646       alpha_mask
29647           Build mask in alpha plane for all unmapped pixels by marking them
29648           fully transparent. Boolean value, by default disabled.
29649
29650       reset_rot
29651           Reset rotation of output video. Boolean value, by default disabled.
29652
29653       Examples
29654
29655       •   Convert equirectangular video to cubemap with 3x2 layout and 1%
29656           padding using bicubic interpolation:
29657
29658                   ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_pad=0.01 output.mkv
29659
29660       •   Extract back view of Equi-Angular Cubemap:
29661
29662                   ffmpeg -i input.mkv -vf v360=eac:flat:yaw=180 output.mkv
29663
29664       •   Convert transposed and horizontally flipped Equi-Angular Cubemap in
29665           side-by-side stereo format to equirectangular top-bottom stereo
29666           format:
29667
29668                   v360=eac:equirect:in_stereo=sbs:in_trans=1:ih_flip=1:out_stereo=tb
29669
29670       Commands
29671
29672       This filter supports subset of above options as commands.
29673
29674   vaguedenoiser
29675       Apply a wavelet based denoiser.
29676
29677       It transforms each frame from the video input into the wavelet domain,
29678       using Cohen-Daubechies-Feauveau 9/7. Then it applies some filtering to
29679       the obtained coefficients. It does an inverse wavelet transform after.
29680       Due to wavelet properties, it should give a nice smoothed result, and
29681       reduced noise, without blurring picture features.
29682
29683       This filter accepts the following options:
29684
29685       threshold
29686           The filtering strength. The higher, the more filtered the video
29687           will be.  Hard thresholding can use a higher threshold than soft
29688           thresholding before the video looks overfiltered. Default value is
29689           2.
29690
29691       method
29692           The filtering method the filter will use.
29693
29694           It accepts the following values:
29695
29696           hard
29697               All values under the threshold will be zeroed.
29698
29699           soft
29700               All values under the threshold will be zeroed. All values above
29701               will be reduced by the threshold.
29702
29703           garrote
29704               Scales or nullifies coefficients - intermediary between (more)
29705               soft and (less) hard thresholding.
29706
29707           Default is garrote.
29708
29709       nsteps
29710           Number of times, the wavelet will decompose the picture. Picture
29711           can't be decomposed beyond a particular point (typically, 8 for a
29712           640x480 frame - as 2^9 = 512 > 480). Valid values are integers
29713           between 1 and 32. Default value is 6.
29714
29715       percent
29716           Partial of full denoising (limited coefficients shrinking), from 0
29717           to 100. Default value is 85.
29718
29719       planes
29720           A list of the planes to process. By default all planes are
29721           processed.
29722
29723       type
29724           The threshold type the filter will use.
29725
29726           It accepts the following values:
29727
29728           universal
29729               Threshold used is same for all decompositions.
29730
29731           bayes
29732               Threshold used depends also on each decomposition coefficients.
29733
29734           Default is universal.
29735
29736   varblur
29737       Apply variable blur filter by using 2nd video stream to set blur
29738       radius.  The 2nd stream must have the same dimensions.
29739
29740       This filter accepts the following options:
29741
29742       min_r
29743           Set min allowed radius. Allowed range is from 0 to 254. Default is
29744           0.
29745
29746       max_r
29747           Set max allowed radius. Allowed range is from 1 to 255. Default is
29748           8.
29749
29750       planes
29751           Set which planes to process. By default, all are used.
29752
29753       The "varblur" filter also supports the framesync options.
29754
29755       Commands
29756
29757       This filter supports all the above options as commands.
29758
29759   vectorscope
29760       Display 2 color component values in the two dimensional graph (which is
29761       called a vectorscope).
29762
29763       This filter accepts the following options:
29764
29765       mode, m
29766           Set vectorscope mode.
29767
29768           It accepts the following values:
29769
29770           gray
29771           tint
29772               Gray values are displayed on graph, higher brightness means
29773               more pixels have same component color value on location in
29774               graph. This is the default mode.
29775
29776           color
29777               Gray values are displayed on graph. Surrounding pixels values
29778               which are not present in video frame are drawn in gradient of 2
29779               color components which are set by option "x" and "y". The 3rd
29780               color component is static.
29781
29782           color2
29783               Actual color components values present in video frame are
29784               displayed on graph.
29785
29786           color3
29787               Similar as color2 but higher frequency of same values "x" and
29788               "y" on graph increases value of another color component, which
29789               is luminance by default values of "x" and "y".
29790
29791           color4
29792               Actual colors present in video frame are displayed on graph. If
29793               two different colors map to same position on graph then color
29794               with higher value of component not present in graph is picked.
29795
29796           color5
29797               Gray values are displayed on graph. Similar to "color" but with
29798               3rd color component picked from radial gradient.
29799
29800       x   Set which color component will be represented on X-axis. Default is
29801           1.
29802
29803       y   Set which color component will be represented on Y-axis. Default is
29804           2.
29805
29806       intensity, i
29807           Set intensity, used by modes: gray, color, color3 and color5 for
29808           increasing brightness of color component which represents frequency
29809           of (X, Y) location in graph.
29810
29811       envelope, e
29812           none
29813               No envelope, this is default.
29814
29815           instant
29816               Instant envelope, even darkest single pixel will be clearly
29817               highlighted.
29818
29819           peak
29820               Hold maximum and minimum values presented in graph over time.
29821               This way you can still spot out of range values without
29822               constantly looking at vectorscope.
29823
29824           peak+instant
29825               Peak and instant envelope combined together.
29826
29827       graticule, g
29828           Set what kind of graticule to draw.
29829
29830           none
29831           green
29832           color
29833           invert
29834       opacity, o
29835           Set graticule opacity.
29836
29837       flags, f
29838           Set graticule flags.
29839
29840           white
29841               Draw graticule for white point.
29842
29843           black
29844               Draw graticule for black point.
29845
29846           name
29847               Draw color points short names.
29848
29849       bgopacity, b
29850           Set background opacity.
29851
29852       lthreshold, l
29853           Set low threshold for color component not represented on X or Y
29854           axis.  Values lower than this value will be ignored. Default is 0.
29855           Note this value is multiplied with actual max possible value one
29856           pixel component can have. So for 8-bit input and low threshold
29857           value of 0.1 actual threshold is 0.1 * 255 = 25.
29858
29859       hthreshold, h
29860           Set high threshold for color component not represented on X or Y
29861           axis.  Values higher than this value will be ignored. Default is 1.
29862           Note this value is multiplied with actual max possible value one
29863           pixel component can have. So for 8-bit input and high threshold
29864           value of 0.9 actual threshold is 0.9 * 255 = 230.
29865
29866       colorspace, c
29867           Set what kind of colorspace to use when drawing graticule.
29868
29869           auto
29870           601
29871           709
29872
29873           Default is auto.
29874
29875       tint0, t0
29876       tint1, t1
29877           Set color tint for gray/tint vectorscope mode. By default both
29878           options are zero.  This means no tint, and output will remain gray.
29879
29880   vidstabdetect
29881       Analyze video stabilization/deshaking. Perform pass 1 of 2, see
29882       vidstabtransform for pass 2.
29883
29884       This filter generates a file with relative translation and rotation
29885       transform information about subsequent frames, which is then used by
29886       the vidstabtransform filter.
29887
29888       To enable compilation of this filter you need to configure FFmpeg with
29889       "--enable-libvidstab".
29890
29891       This filter accepts the following options:
29892
29893       result
29894           Set the path to the file used to write the transforms information.
29895           Default value is transforms.trf.
29896
29897       shakiness
29898           Set how shaky the video is and how quick the camera is. It accepts
29899           an integer in the range 1-10, a value of 1 means little shakiness,
29900           a value of 10 means strong shakiness. Default value is 5.
29901
29902       accuracy
29903           Set the accuracy of the detection process. It must be a value in
29904           the range 1-15. A value of 1 means low accuracy, a value of 15
29905           means high accuracy. Default value is 15.
29906
29907       stepsize
29908           Set stepsize of the search process. The region around minimum is
29909           scanned with 1 pixel resolution. Default value is 6.
29910
29911       mincontrast
29912           Set minimum contrast. Below this value a local measurement field is
29913           discarded. Must be a floating point value in the range 0-1. Default
29914           value is 0.3.
29915
29916       tripod
29917           Set reference frame number for tripod mode.
29918
29919           If enabled, the motion of the frames is compared to a reference
29920           frame in the filtered stream, identified by the specified number.
29921           The idea is to compensate all movements in a more-or-less static
29922           scene and keep the camera view absolutely still.
29923
29924           If set to 0, it is disabled. The frames are counted starting from
29925           1.
29926
29927       show
29928           Show fields and transforms in the resulting frames. It accepts an
29929           integer in the range 0-2. Default value is 0, which disables any
29930           visualization.
29931
29932       Examples
29933
29934       •   Use default values:
29935
29936                   vidstabdetect
29937
29938       •   Analyze strongly shaky movie and put the results in file
29939           mytransforms.trf:
29940
29941                   vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
29942
29943       •   Visualize the result of internal transformations in the resulting
29944           video:
29945
29946                   vidstabdetect=show=1
29947
29948       •   Analyze a video with medium shakiness using ffmpeg:
29949
29950                   ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
29951
29952   vidstabtransform
29953       Video stabilization/deshaking: pass 2 of 2, see vidstabdetect for pass
29954       1.
29955
29956       Read a file with transform information for each frame and
29957       apply/compensate them. Together with the vidstabdetect filter this can
29958       be used to deshake videos. See also
29959       <http://public.hronopik.de/vid.stab>. It is important to also use the
29960       unsharp filter, see below.
29961
29962       To enable compilation of this filter you need to configure FFmpeg with
29963       "--enable-libvidstab".
29964
29965       Options
29966
29967       input
29968           Set path to the file used to read the transforms. Default value is
29969           transforms.trf.
29970
29971       smoothing
29972           Set the number of frames (value*2 + 1) used for lowpass filtering
29973           the camera movements. Default value is 10.
29974
29975           For example a number of 10 means that 21 frames are used (10 in the
29976           past and 10 in the future) to smoothen the motion in the video. A
29977           larger value leads to a smoother video, but limits the acceleration
29978           of the camera (pan/tilt movements). 0 is a special case where a
29979           static camera is simulated.
29980
29981       optalgo
29982           Set the camera path optimization algorithm.
29983
29984           Accepted values are:
29985
29986           gauss
29987               gaussian kernel low-pass filter on camera motion (default)
29988
29989           avg averaging on transformations
29990
29991       maxshift
29992           Set maximal number of pixels to translate frames. Default value is
29993           -1, meaning no limit.
29994
29995       maxangle
29996           Set maximal angle in radians (degree*PI/180) to rotate frames.
29997           Default value is -1, meaning no limit.
29998
29999       crop
30000           Specify how to deal with borders that may be visible due to
30001           movement compensation.
30002
30003           Available values are:
30004
30005           keep
30006               keep image information from previous frame (default)
30007
30008           black
30009               fill the border black
30010
30011       invert
30012           Invert transforms if set to 1. Default value is 0.
30013
30014       relative
30015           Consider transforms as relative to previous frame if set to 1,
30016           absolute if set to 0. Default value is 0.
30017
30018       zoom
30019           Set percentage to zoom. A positive value will result in a zoom-in
30020           effect, a negative value in a zoom-out effect. Default value is 0
30021           (no zoom).
30022
30023       optzoom
30024           Set optimal zooming to avoid borders.
30025
30026           Accepted values are:
30027
30028           0   disabled
30029
30030           1   optimal static zoom value is determined (only very strong
30031               movements will lead to visible borders) (default)
30032
30033           2   optimal adaptive zoom value is determined (no borders will be
30034               visible), see zoomspeed
30035
30036           Note that the value given at zoom is added to the one calculated
30037           here.
30038
30039       zoomspeed
30040           Set percent to zoom maximally each frame (enabled when optzoom is
30041           set to 2). Range is from 0 to 5, default value is 0.25.
30042
30043       interpol
30044           Specify type of interpolation.
30045
30046           Available values are:
30047
30048           no  no interpolation
30049
30050           linear
30051               linear only horizontal
30052
30053           bilinear
30054               linear in both directions (default)
30055
30056           bicubic
30057               cubic in both directions (slow)
30058
30059       tripod
30060           Enable virtual tripod mode if set to 1, which is equivalent to
30061           "relative=0:smoothing=0". Default value is 0.
30062
30063           Use also "tripod" option of vidstabdetect.
30064
30065       debug
30066           Increase log verbosity if set to 1. Also the detected global
30067           motions are written to the temporary file global_motions.trf.
30068           Default value is 0.
30069
30070       Examples
30071
30072       •   Use ffmpeg for a typical stabilization with default values:
30073
30074                   ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
30075
30076           Note the use of the unsharp filter which is always recommended.
30077
30078       •   Zoom in a bit more and load transform data from a given file:
30079
30080                   vidstabtransform=zoom=5:input="mytransforms.trf"
30081
30082       •   Smoothen the video even more:
30083
30084                   vidstabtransform=smoothing=30
30085
30086   vflip
30087       Flip the input video vertically.
30088
30089       For example, to vertically flip a video with ffmpeg:
30090
30091               ffmpeg -i in.avi -vf "vflip" out.avi
30092
30093   vfrdet
30094       Detect variable frame rate video.
30095
30096       This filter tries to detect if the input is variable or constant frame
30097       rate.
30098
30099       At end it will output number of frames detected as having variable
30100       delta pts, and ones with constant delta pts.  If there was frames with
30101       variable delta, than it will also show min, max and average delta
30102       encountered.
30103
30104   vibrance
30105       Boost or alter saturation.
30106
30107       The filter accepts the following options:
30108
30109       intensity
30110           Set strength of boost if positive value or strength of alter if
30111           negative value.  Default is 0. Allowed range is from -2 to 2.
30112
30113       rbal
30114           Set the red balance. Default is 1. Allowed range is from -10 to 10.
30115
30116       gbal
30117           Set the green balance. Default is 1. Allowed range is from -10 to
30118           10.
30119
30120       bbal
30121           Set the blue balance. Default is 1. Allowed range is from -10 to
30122           10.
30123
30124       rlum
30125           Set the red luma coefficient.
30126
30127       glum
30128           Set the green luma coefficient.
30129
30130       blum
30131           Set the blue luma coefficient.
30132
30133       alternate
30134           If "intensity" is negative and this is set to 1, colors will
30135           change, otherwise colors will be less saturated, more towards gray.
30136
30137       Commands
30138
30139       This filter supports the all above options as commands.
30140
30141   vif
30142       Obtain the average VIF (Visual Information Fidelity) between two input
30143       videos.
30144
30145       This filter takes two input videos.
30146
30147       Both input videos must have the same resolution and pixel format for
30148       this filter to work correctly. Also it assumes that both inputs have
30149       the same number of frames, which are compared one by one.
30150
30151       The obtained average VIF score is printed through the logging system.
30152
30153       The filter stores the calculated VIF score of each frame.
30154
30155       In the below example the input file main.mpg being processed is
30156       compared with the reference file ref.mpg.
30157
30158               ffmpeg -i main.mpg -i ref.mpg -lavfi vif -f null -
30159
30160   vignette
30161       Make or reverse a natural vignetting effect.
30162
30163       The filter accepts the following options:
30164
30165       angle, a
30166           Set lens angle expression as a number of radians.
30167
30168           The value is clipped in the "[0,PI/2]" range.
30169
30170           Default value: "PI/5"
30171
30172       x0
30173       y0  Set center coordinates expressions. Respectively "w/2" and "h/2" by
30174           default.
30175
30176       mode
30177           Set forward/backward mode.
30178
30179           Available modes are:
30180
30181           forward
30182               The larger the distance from the central point, the darker the
30183               image becomes.
30184
30185           backward
30186               The larger the distance from the central point, the brighter
30187               the image becomes.  This can be used to reverse a vignette
30188               effect, though there is no automatic detection to extract the
30189               lens angle and other settings (yet). It can also be used to
30190               create a burning effect.
30191
30192           Default value is forward.
30193
30194       eval
30195           Set evaluation mode for the expressions (angle, x0, y0).
30196
30197           It accepts the following values:
30198
30199           init
30200               Evaluate expressions only once during the filter
30201               initialization.
30202
30203           frame
30204               Evaluate expressions for each incoming frame. This is way
30205               slower than the init mode since it requires all the scalers to
30206               be re-computed, but it allows advanced dynamic expressions.
30207
30208           Default value is init.
30209
30210       dither
30211           Set dithering to reduce the circular banding effects. Default is 1
30212           (enabled).
30213
30214       aspect
30215           Set vignette aspect. This setting allows one to adjust the shape of
30216           the vignette.  Setting this value to the SAR of the input will make
30217           a rectangular vignetting following the dimensions of the video.
30218
30219           Default is "1/1".
30220
30221       Expressions
30222
30223       The alpha, x0 and y0 expressions can contain the following parameters.
30224
30225       w
30226       h   input width and height
30227
30228       n   the number of input frame, starting from 0
30229
30230       pts the PTS (Presentation TimeStamp) time of the filtered video frame,
30231           expressed in TB units, NAN if undefined
30232
30233       r   frame rate of the input video, NAN if the input frame rate is
30234           unknown
30235
30236       t   the PTS (Presentation TimeStamp) of the filtered video frame,
30237           expressed in seconds, NAN if undefined
30238
30239       tb  time base of the input video
30240
30241       Examples
30242
30243       •   Apply simple strong vignetting effect:
30244
30245                   vignette=PI/4
30246
30247       •   Make a flickering vignetting:
30248
30249                   vignette='PI/4+random(1)*PI/50':eval=frame
30250
30251   vmafmotion
30252       Obtain the average VMAF motion score of a video.  It is one of the
30253       component metrics of VMAF.
30254
30255       The obtained average motion score is printed through the logging
30256       system.
30257
30258       The filter accepts the following options:
30259
30260       stats_file
30261           If specified, the filter will use the named file to save the motion
30262           score of each frame with respect to the previous frame.  When
30263           filename equals "-" the data is sent to standard output.
30264
30265       Example:
30266
30267               ffmpeg -i ref.mpg -vf vmafmotion -f null -
30268
30269   vstack
30270       Stack input videos vertically.
30271
30272       All streams must be of same pixel format and of same width.
30273
30274       Note that this filter is faster than using overlay and pad filter to
30275       create same output.
30276
30277       The filter accepts the following options:
30278
30279       inputs
30280           Set number of input streams. Default is 2.
30281
30282       shortest
30283           If set to 1, force the output to terminate when the shortest input
30284           terminates. Default value is 0.
30285
30286   w3fdif
30287       Deinterlace the input video ("w3fdif" stands for "Weston 3 Field
30288       Deinterlacing Filter").
30289
30290       Based on the process described by Martin Weston for BBC R&D, and
30291       implemented based on the de-interlace algorithm written by Jim
30292       Easterbrook for BBC R&D, the Weston 3 field deinterlacing filter uses
30293       filter coefficients calculated by BBC R&D.
30294
30295       This filter uses field-dominance information in frame to decide which
30296       of each pair of fields to place first in the output.  If it gets it
30297       wrong use setfield filter before "w3fdif" filter.
30298
30299       There are two sets of filter coefficients, so called "simple" and
30300       "complex". Which set of filter coefficients is used can be set by
30301       passing an optional parameter:
30302
30303       filter
30304           Set the interlacing filter coefficients. Accepts one of the
30305           following values:
30306
30307           simple
30308               Simple filter coefficient set.
30309
30310           complex
30311               More-complex filter coefficient set.
30312
30313           Default value is complex.
30314
30315       mode
30316           The interlacing mode to adopt. It accepts one of the following
30317           values:
30318
30319           frame
30320               Output one frame for each frame.
30321
30322           field
30323               Output one frame for each field.
30324
30325           The default value is "field".
30326
30327       parity
30328           The picture field parity assumed for the input interlaced video. It
30329           accepts one of the following values:
30330
30331           tff Assume the top field is first.
30332
30333           bff Assume the bottom field is first.
30334
30335           auto
30336               Enable automatic detection of field parity.
30337
30338           The default value is "auto".  If the interlacing is unknown or the
30339           decoder does not export this information, top field first will be
30340           assumed.
30341
30342       deint
30343           Specify which frames to deinterlace. Accepts one of the following
30344           values:
30345
30346           all Deinterlace all frames,
30347
30348           interlaced
30349               Only deinterlace frames marked as interlaced.
30350
30351           Default value is all.
30352
30353       Commands
30354
30355       This filter supports same commands as options.
30356
30357   waveform
30358       Video waveform monitor.
30359
30360       The waveform monitor plots color component intensity. By default
30361       luminance only. Each column of the waveform corresponds to a column of
30362       pixels in the source video.
30363
30364       It accepts the following options:
30365
30366       mode, m
30367           Can be either "row", or "column". Default is "column".  In row
30368           mode, the graph on the left side represents color component value 0
30369           and the right side represents value = 255. In column mode, the top
30370           side represents color component value = 0 and bottom side
30371           represents value = 255.
30372
30373       intensity, i
30374           Set intensity. Smaller values are useful to find out how many
30375           values of the same luminance are distributed across input
30376           rows/columns.  Default value is 0.04. Allowed range is [0, 1].
30377
30378       mirror, r
30379           Set mirroring mode. 0 means unmirrored, 1 means mirrored.  In
30380           mirrored mode, higher values will be represented on the left side
30381           for "row" mode and at the top for "column" mode. Default is 1
30382           (mirrored).
30383
30384       display, d
30385           Set display mode.  It accepts the following values:
30386
30387           overlay
30388               Presents information identical to that in the "parade", except
30389               that the graphs representing color components are superimposed
30390               directly over one another.
30391
30392               This display mode makes it easier to spot relative differences
30393               or similarities in overlapping areas of the color components
30394               that are supposed to be identical, such as neutral whites,
30395               grays, or blacks.
30396
30397           stack
30398               Display separate graph for the color components side by side in
30399               "row" mode or one below the other in "column" mode.
30400
30401           parade
30402               Display separate graph for the color components side by side in
30403               "column" mode or one below the other in "row" mode.
30404
30405               Using this display mode makes it easy to spot color casts in
30406               the highlights and shadows of an image, by comparing the
30407               contours of the top and the bottom graphs of each waveform.
30408               Since whites, grays, and blacks are characterized by exactly
30409               equal amounts of red, green, and blue, neutral areas of the
30410               picture should display three waveforms of roughly equal
30411               width/height. If not, the correction is easy to perform by
30412               making level adjustments the three waveforms.
30413
30414           Default is "stack".
30415
30416       components, c
30417           Set which color components to display. Default is 1, which means
30418           only luminance or red color component if input is in RGB
30419           colorspace. If is set for example to 7 it will display all 3 (if)
30420           available color components.
30421
30422       envelope, e
30423           none
30424               No envelope, this is default.
30425
30426           instant
30427               Instant envelope, minimum and maximum values presented in graph
30428               will be easily visible even with small "step" value.
30429
30430           peak
30431               Hold minimum and maximum values presented in graph across time.
30432               This way you can still spot out of range values without
30433               constantly looking at waveforms.
30434
30435           peak+instant
30436               Peak and instant envelope combined together.
30437
30438       filter, f
30439           lowpass
30440               No filtering, this is default.
30441
30442           flat
30443               Luma and chroma combined together.
30444
30445           aflat
30446               Similar as above, but shows difference between blue and red
30447               chroma.
30448
30449           xflat
30450               Similar as above, but use different colors.
30451
30452           yflat
30453               Similar as above, but again with different colors.
30454
30455           chroma
30456               Displays only chroma.
30457
30458           color
30459               Displays actual color value on waveform.
30460
30461           acolor
30462               Similar as above, but with luma showing frequency of chroma
30463               values.
30464
30465       graticule, g
30466           Set which graticule to display.
30467
30468           none
30469               Do not display graticule.
30470
30471           green
30472               Display green graticule showing legal broadcast ranges.
30473
30474           orange
30475               Display orange graticule showing legal broadcast ranges.
30476
30477           invert
30478               Display invert graticule showing legal broadcast ranges.
30479
30480       opacity, o
30481           Set graticule opacity.
30482
30483       flags, fl
30484           Set graticule flags.
30485
30486           numbers
30487               Draw numbers above lines. By default enabled.
30488
30489           dots
30490               Draw dots instead of lines.
30491
30492       scale, s
30493           Set scale used for displaying graticule.
30494
30495           digital
30496           millivolts
30497           ire
30498
30499           Default is digital.
30500
30501       bgopacity, b
30502           Set background opacity.
30503
30504       tint0, t0
30505       tint1, t1
30506           Set tint for output.  Only used with lowpass filter and when
30507           display is not overlay and input pixel formats are not RGB.
30508
30509       fitmode, fm
30510           Set sample aspect ratio of video output frames.  Can be used to
30511           configure waveform so it is not streched too much in one of
30512           directions.
30513
30514           none
30515               Set sample aspect ration to 1/1.
30516
30517           size
30518               Set sample aspect ratio to match input size of video
30519
30520           Default is none.
30521
30522   weave, doubleweave
30523       The "weave" takes a field-based video input and join each two
30524       sequential fields into single frame, producing a new double height clip
30525       with half the frame rate and half the frame count.
30526
30527       The "doubleweave" works same as "weave" but without halving frame rate
30528       and frame count.
30529
30530       It accepts the following option:
30531
30532       first_field
30533           Set first field. Available values are:
30534
30535           top, t
30536               Set the frame as top-field-first.
30537
30538           bottom, b
30539               Set the frame as bottom-field-first.
30540
30541       Examples
30542
30543       •   Interlace video using select and separatefields filter:
30544
30545                   separatefields,select=eq(mod(n,4),0)+eq(mod(n,4),3),weave
30546
30547   xbr
30548       Apply the xBR high-quality magnification filter which is designed for
30549       pixel art. It follows a set of edge-detection rules, see
30550       <https://forums.libretro.com/t/xbr-algorithm-tutorial/123>.
30551
30552       It accepts the following option:
30553
30554       n   Set the scaling dimension: 2 for "2xBR", 3 for "3xBR" and 4 for
30555           "4xBR".  Default is 3.
30556
30557   xcorrelate
30558       Apply normalized cross-correlation between first and second input video
30559       stream.
30560
30561       Second input video stream dimensions must be lower than first input
30562       video stream.
30563
30564       The filter accepts the following options:
30565
30566       planes
30567           Set which planes to process.
30568
30569       secondary
30570           Set which secondary video frames will be processed from second
30571           input video stream, can be first or all. Default is all.
30572
30573       The "xcorrelate" filter also supports the framesync options.
30574
30575   xfade
30576       Apply cross fade from one input video stream to another input video
30577       stream.  The cross fade is applied for specified duration.
30578
30579       Both inputs must be constant frame-rate and have the same resolution,
30580       pixel format, frame rate and timebase.
30581
30582       The filter accepts the following options:
30583
30584       transition
30585           Set one of available transition effects:
30586
30587           custom
30588           fade
30589           wipeleft
30590           wiperight
30591           wipeup
30592           wipedown
30593           slideleft
30594           slideright
30595           slideup
30596           slidedown
30597           circlecrop
30598           rectcrop
30599           distance
30600           fadeblack
30601           fadewhite
30602           radial
30603           smoothleft
30604           smoothright
30605           smoothup
30606           smoothdown
30607           circleopen
30608           circleclose
30609           vertopen
30610           vertclose
30611           horzopen
30612           horzclose
30613           dissolve
30614           pixelize
30615           diagtl
30616           diagtr
30617           diagbl
30618           diagbr
30619           hlslice
30620           hrslice
30621           vuslice
30622           vdslice
30623           hblur
30624           fadegrays
30625           wipetl
30626           wipetr
30627           wipebl
30628           wipebr
30629           squeezeh
30630           squeezev
30631           zoomin
30632           fadefast
30633           fadeslow
30634
30635           Default transition effect is fade.
30636
30637       duration
30638           Set cross fade duration in seconds.  Range is 0 to 60 seconds.
30639           Default duration is 1 second.
30640
30641       offset
30642           Set cross fade start relative to first input stream in seconds.
30643           Default offset is 0.
30644
30645       expr
30646           Set expression for custom transition effect.
30647
30648           The expressions can use the following variables and functions:
30649
30650           X
30651           Y   The coordinates of the current sample.
30652
30653           W
30654           H   The width and height of the image.
30655
30656           P   Progress of transition effect.
30657
30658           PLANE
30659               Currently processed plane.
30660
30661           A   Return value of first input at current location and plane.
30662
30663           B   Return value of second input at current location and plane.
30664
30665           a0(x, y)
30666           a1(x, y)
30667           a2(x, y)
30668           a3(x, y)
30669               Return the value of the pixel at location (x,y) of the
30670               first/second/third/fourth component of first input.
30671
30672           b0(x, y)
30673           b1(x, y)
30674           b2(x, y)
30675           b3(x, y)
30676               Return the value of the pixel at location (x,y) of the
30677               first/second/third/fourth component of second input.
30678
30679       Examples
30680
30681       •   Cross fade from one input video to another input video, with fade
30682           transition and duration of transition of 2 seconds starting at
30683           offset of 5 seconds:
30684
30685                   ffmpeg -i first.mp4 -i second.mp4 -filter_complex xfade=transition=fade:duration=2:offset=5 output.mp4
30686
30687   xmedian
30688       Pick median pixels from several input videos.
30689
30690       The filter accepts the following options:
30691
30692       inputs
30693           Set number of inputs.  Default is 3. Allowed range is from 3 to
30694           255.  If number of inputs is even number, than result will be mean
30695           value between two median values.
30696
30697       planes
30698           Set which planes to filter. Default value is 15, by which all
30699           planes are processed.
30700
30701       percentile
30702           Set median percentile. Default value is 0.5.  Default value of 0.5
30703           will pick always median values, while 0 will pick minimum values,
30704           and 1 maximum values.
30705
30706       Commands
30707
30708       This filter supports all above options as commands, excluding option
30709       "inputs".
30710
30711   xstack
30712       Stack video inputs into custom layout.
30713
30714       All streams must be of same pixel format.
30715
30716       The filter accepts the following options:
30717
30718       inputs
30719           Set number of input streams. Default is 2.
30720
30721       layout
30722           Specify layout of inputs.  This option requires the desired layout
30723           configuration to be explicitly set by the user.  This sets position
30724           of each video input in output. Each input is separated by '|'.  The
30725           first number represents the column, and the second number
30726           represents the row.  Numbers start at 0 and are separated by '_'.
30727           Optionally one can use wX and hX, where X is video input from which
30728           to take width or height.  Multiple values can be used when
30729           separated by '+'. In such case values are summed together.
30730
30731           Note that if inputs are of different sizes gaps may appear, as not
30732           all of the output video frame will be filled. Similarly, videos can
30733           overlap each other if their position doesn't leave enough space for
30734           the full frame of adjoining videos.
30735
30736           For 2 inputs, a default layout of "0_0|w0_0" (equivalent to
30737           "grid=2x1") is set. In all other cases, a layout or a grid must be
30738           set by the user. Either "grid" or "layout" can be specified at a
30739           time.  Specifying both will result in an error.
30740
30741       grid
30742           Specify a fixed size grid of inputs.  This option is used to create
30743           a fixed size grid of the input streams. Set the grid size in the
30744           form "COLUMNSxROWS". There must be "ROWS * COLUMNS" input streams
30745           and they will be arranged as a grid with "ROWS" rows and "COLUMNS"
30746           columns. When using this option, each input stream within a row
30747           must have the same height and all the rows must have the same
30748           width.
30749
30750           If "grid" is set, then "inputs" option is ignored and is implicitly
30751           set to "ROWS * COLUMNS".
30752
30753           For 2 inputs, a default grid of "2x1" (equivalent to
30754           "layout=0_0|w0_0") is set. In all other cases, a layout or a grid
30755           must be set by the user. Either "grid" or "layout" can be specified
30756           at a time.  Specifying both will result in an error.
30757
30758       shortest
30759           If set to 1, force the output to terminate when the shortest input
30760           terminates. Default value is 0.
30761
30762       fill
30763           If set to valid color, all unused pixels will be filled with that
30764           color.  By default fill is set to none, so it is disabled.
30765
30766       Examples
30767
30768       •   Display 4 inputs into 2x2 grid.
30769
30770           Layout:
30771
30772                   input1(0, 0)  | input3(w0, 0)
30773                   input2(0, h0) | input4(w0, h0)
30774
30775
30776
30777                   xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0
30778
30779           Note that if inputs are of different sizes, gaps or overlaps may
30780           occur.
30781
30782       •   Display 4 inputs into 1x4 grid.
30783
30784           Layout:
30785
30786                   input1(0, 0)
30787                   input2(0, h0)
30788                   input3(0, h0+h1)
30789                   input4(0, h0+h1+h2)
30790
30791
30792
30793                   xstack=inputs=4:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2
30794
30795           Note that if inputs are of different widths, unused space will
30796           appear.
30797
30798       •   Display 9 inputs into 3x3 grid.
30799
30800           Layout:
30801
30802                   input1(0, 0)       | input4(w0, 0)      | input7(w0+w3, 0)
30803                   input2(0, h0)      | input5(w0, h0)     | input8(w0+w3, h0)
30804                   input3(0, h0+h1)   | input6(w0, h0+h1)  | input9(w0+w3, h0+h1)
30805
30806
30807
30808                   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
30809
30810           Note that if inputs are of different sizes, gaps or overlaps may
30811           occur.
30812
30813       •   Display 16 inputs into 4x4 grid.
30814
30815           Layout:
30816
30817                   input1(0, 0)       | input5(w0, 0)       | input9 (w0+w4, 0)       | input13(w0+w4+w8, 0)
30818                   input2(0, h0)      | input6(w0, h0)      | input10(w0+w4, h0)      | input14(w0+w4+w8, h0)
30819                   input3(0, h0+h1)   | input7(w0, h0+h1)   | input11(w0+w4, h0+h1)   | input15(w0+w4+w8, h0+h1)
30820                   input4(0, h0+h1+h2)| input8(w0, h0+h1+h2)| input12(w0+w4, h0+h1+h2)| input16(w0+w4+w8, h0+h1+h2)
30821
30822
30823
30824                   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|
30825                   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
30826
30827           Note that if inputs are of different sizes, gaps or overlaps may
30828           occur.
30829
30830   yadif
30831       Deinterlace the input video ("yadif" means "yet another deinterlacing
30832       filter").
30833
30834       It accepts the following parameters:
30835
30836       mode
30837           The interlacing mode to adopt. It accepts one of the following
30838           values:
30839
30840           0, send_frame
30841               Output one frame for each frame.
30842
30843           1, send_field
30844               Output one frame for each field.
30845
30846           2, send_frame_nospatial
30847               Like "send_frame", but it skips the spatial interlacing check.
30848
30849           3, send_field_nospatial
30850               Like "send_field", but it skips the spatial interlacing check.
30851
30852           The default value is "send_frame".
30853
30854       parity
30855           The picture field parity assumed for the input interlaced video. It
30856           accepts one of the following values:
30857
30858           0, tff
30859               Assume the top field is first.
30860
30861           1, bff
30862               Assume the bottom field is first.
30863
30864           -1, auto
30865               Enable automatic detection of field parity.
30866
30867           The default value is "auto".  If the interlacing is unknown or the
30868           decoder does not export this information, top field first will be
30869           assumed.
30870
30871       deint
30872           Specify which frames to deinterlace. Accepts one of the following
30873           values:
30874
30875           0, all
30876               Deinterlace all frames.
30877
30878           1, interlaced
30879               Only deinterlace frames marked as interlaced.
30880
30881           The default value is "all".
30882
30883   yadif_cuda
30884       Deinterlace the input video using the yadif algorithm, but implemented
30885       in CUDA so that it can work as part of a GPU accelerated pipeline with
30886       nvdec and/or nvenc.
30887
30888       It accepts the following parameters:
30889
30890       mode
30891           The interlacing mode to adopt. It accepts one of the following
30892           values:
30893
30894           0, send_frame
30895               Output one frame for each frame.
30896
30897           1, send_field
30898               Output one frame for each field.
30899
30900           2, send_frame_nospatial
30901               Like "send_frame", but it skips the spatial interlacing check.
30902
30903           3, send_field_nospatial
30904               Like "send_field", but it skips the spatial interlacing check.
30905
30906           The default value is "send_frame".
30907
30908       parity
30909           The picture field parity assumed for the input interlaced video. It
30910           accepts one of the following values:
30911
30912           0, tff
30913               Assume the top field is first.
30914
30915           1, bff
30916               Assume the bottom field is first.
30917
30918           -1, auto
30919               Enable automatic detection of field parity.
30920
30921           The default value is "auto".  If the interlacing is unknown or the
30922           decoder does not export this information, top field first will be
30923           assumed.
30924
30925       deint
30926           Specify which frames to deinterlace. Accepts one of the following
30927           values:
30928
30929           0, all
30930               Deinterlace all frames.
30931
30932           1, interlaced
30933               Only deinterlace frames marked as interlaced.
30934
30935           The default value is "all".
30936
30937   yaepblur
30938       Apply blur filter while preserving edges ("yaepblur" means "yet another
30939       edge preserving blur filter").  The algorithm is described in "J. S.
30940       Lee, Digital image enhancement and noise filtering by use of local
30941       statistics, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-2, 1980."
30942
30943       It accepts the following parameters:
30944
30945       radius, r
30946           Set the window radius. Default value is 3.
30947
30948       planes, p
30949           Set which planes to filter. Default is only the first plane.
30950
30951       sigma, s
30952           Set blur strength. Default value is 128.
30953
30954       Commands
30955
30956       This filter supports same commands as options.
30957
30958   zoompan
30959       Apply Zoom & Pan effect.
30960
30961       This filter accepts the following options:
30962
30963       zoom, z
30964           Set the zoom expression. Range is 1-10. Default is 1.
30965
30966       x
30967       y   Set the x and y expression. Default is 0.
30968
30969       d   Set the duration expression in number of frames.  This sets for how
30970           many number of frames effect will last for single input image.
30971           Default is 90.
30972
30973       s   Set the output image size, default is 'hd720'.
30974
30975       fps Set the output frame rate, default is '25'.
30976
30977       Each expression can contain the following constants:
30978
30979       in_w, iw
30980           Input width.
30981
30982       in_h, ih
30983           Input height.
30984
30985       out_w, ow
30986           Output width.
30987
30988       out_h, oh
30989           Output height.
30990
30991       in  Input frame count.
30992
30993       on  Output frame count.
30994
30995       in_time, it
30996           The input timestamp expressed in seconds. It's NAN if the input
30997           timestamp is unknown.
30998
30999       out_time, time, ot
31000           The output timestamp expressed in seconds.
31001
31002       x
31003       y   Last calculated 'x' and 'y' position from 'x' and 'y' expression
31004           for current input frame.
31005
31006       px
31007       py  'x' and 'y' of last output frame of previous input frame or 0 when
31008           there was not yet such frame (first input frame).
31009
31010       zoom
31011           Last calculated zoom from 'z' expression for current input frame.
31012
31013       pzoom
31014           Last calculated zoom of last output frame of previous input frame.
31015
31016       duration
31017           Number of output frames for current input frame. Calculated from
31018           'd' expression for each input frame.
31019
31020       pduration
31021           number of output frames created for previous input frame
31022
31023       a   Rational number: input width / input height
31024
31025       sar sample aspect ratio
31026
31027       dar display aspect ratio
31028
31029       Examples
31030
31031       •   Zoom in up to 1.5x and pan at same time to some spot near center of
31032           picture:
31033
31034                   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
31035
31036       •   Zoom in up to 1.5x and pan always at center of picture:
31037
31038                   zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31039
31040       •   Same as above but without pausing:
31041
31042                   zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31043
31044       •   Zoom in 2x into center of picture only for the first second of the
31045           input video:
31046
31047                   zoompan=z='if(between(in_time,0,1),2,1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31048
31049   zscale
31050       Scale (resize) the input video, using the z.lib library:
31051       <https://github.com/sekrit-twc/zimg>. To enable compilation of this
31052       filter, you need to configure FFmpeg with "--enable-libzimg".
31053
31054       The zscale filter forces the output display aspect ratio to be the same
31055       as the input, by changing the output sample aspect ratio.
31056
31057       If the input image format is different from the format requested by the
31058       next filter, the zscale filter will convert the input to the requested
31059       format.
31060
31061       Options
31062
31063       The filter accepts the following options.
31064
31065       width, w
31066       height, h
31067           Set the output video dimension expression. Default value is the
31068           input dimension.
31069
31070           If the width or w value is 0, the input width is used for the
31071           output. If the height or h value is 0, the input height is used for
31072           the output.
31073
31074           If one and only one of the values is -n with n >= 1, the zscale
31075           filter will use a value that maintains the aspect ratio of the
31076           input image, calculated from the other specified dimension. After
31077           that it will, however, make sure that the calculated dimension is
31078           divisible by n and adjust the value if necessary.
31079
31080           If both values are -n with n >= 1, the behavior will be identical
31081           to both values being set to 0 as previously detailed.
31082
31083           See below for the list of accepted constants for use in the
31084           dimension expression.
31085
31086       size, s
31087           Set the video size. For the syntax of this option, check the "Video
31088           size" section in the ffmpeg-utils manual.
31089
31090       dither, d
31091           Set the dither type.
31092
31093           Possible values are:
31094
31095           none
31096           ordered
31097           random
31098           error_diffusion
31099
31100           Default is none.
31101
31102       filter, f
31103           Set the resize filter type.
31104
31105           Possible values are:
31106
31107           point
31108           bilinear
31109           bicubic
31110           spline16
31111           spline36
31112           lanczos
31113
31114           Default is bilinear.
31115
31116       range, r
31117           Set the color range.
31118
31119           Possible values are:
31120
31121           input
31122           limited
31123           full
31124
31125           Default is same as input.
31126
31127       primaries, p
31128           Set the color primaries.
31129
31130           Possible values are:
31131
31132           input
31133           709
31134           unspecified
31135           170m
31136           240m
31137           2020
31138
31139           Default is same as input.
31140
31141       transfer, t
31142           Set the transfer characteristics.
31143
31144           Possible values are:
31145
31146           input
31147           709
31148           unspecified
31149           601
31150           linear
31151           2020_10
31152           2020_12
31153           smpte2084
31154           iec61966-2-1
31155           arib-std-b67
31156
31157           Default is same as input.
31158
31159       matrix, m
31160           Set the colorspace matrix.
31161
31162           Possible value are:
31163
31164           input
31165           709
31166           unspecified
31167           470bg
31168           170m
31169           2020_ncl
31170           2020_cl
31171
31172           Default is same as input.
31173
31174       rangein, rin
31175           Set the input color range.
31176
31177           Possible values are:
31178
31179           input
31180           limited
31181           full
31182
31183           Default is same as input.
31184
31185       primariesin, pin
31186           Set the input color primaries.
31187
31188           Possible values are:
31189
31190           input
31191           709
31192           unspecified
31193           170m
31194           240m
31195           2020
31196
31197           Default is same as input.
31198
31199       transferin, tin
31200           Set the input transfer characteristics.
31201
31202           Possible values are:
31203
31204           input
31205           709
31206           unspecified
31207           601
31208           linear
31209           2020_10
31210           2020_12
31211
31212           Default is same as input.
31213
31214       matrixin, min
31215           Set the input colorspace matrix.
31216
31217           Possible value are:
31218
31219           input
31220           709
31221           unspecified
31222           470bg
31223           170m
31224           2020_ncl
31225           2020_cl
31226       chromal, c
31227           Set the output chroma location.
31228
31229           Possible values are:
31230
31231           input
31232           left
31233           center
31234           topleft
31235           top
31236           bottomleft
31237           bottom
31238       chromalin, cin
31239           Set the input chroma location.
31240
31241           Possible values are:
31242
31243           input
31244           left
31245           center
31246           topleft
31247           top
31248           bottomleft
31249           bottom
31250       npl Set the nominal peak luminance.
31251
31252       param_a
31253           Parameter A for scaling filters. Parameter "b" for bicubic, and the
31254           number of filter taps for lanczos.
31255
31256       param_b
31257           Parameter B for scaling filters. Parameter "c" for bicubic.
31258
31259       The values of the w and h options are expressions containing the
31260       following constants:
31261
31262       in_w
31263       in_h
31264           The input width and height
31265
31266       iw
31267       ih  These are the same as in_w and in_h.
31268
31269       out_w
31270       out_h
31271           The output (scaled) width and height
31272
31273       ow
31274       oh  These are the same as out_w and out_h
31275
31276       a   The same as iw / ih
31277
31278       sar input sample aspect ratio
31279
31280       dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
31281
31282       hsub
31283       vsub
31284           horizontal and vertical input chroma subsample values. For example
31285           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
31286
31287       ohsub
31288       ovsub
31289           horizontal and vertical output chroma subsample values. For example
31290           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
31291
31292       Commands
31293
31294       This filter supports the following commands:
31295
31296       width, w
31297       height, h
31298           Set the output video dimension expression.  The command accepts the
31299           same syntax of the corresponding option.
31300
31301           If the specified expression is not valid, it is kept at its current
31302           value.
31303

OPENCL VIDEO FILTERS

31305       Below is a description of the currently available OpenCL video filters.
31306
31307       To enable compilation of these filters you need to configure FFmpeg
31308       with "--enable-opencl".
31309
31310       Running OpenCL filters requires you to initialize a hardware device and
31311       to pass that device to all filters in any filter graph.
31312
31313       -init_hw_device opencl[=name][:device[,key=value...]]
31314           Initialise a new hardware device of type opencl called name, using
31315           the given device parameters.
31316
31317       -filter_hw_device name
31318           Pass the hardware device called name to all filters in any filter
31319           graph.
31320
31321       For more detailed information see
31322       <https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options>
31323
31324       •   Example of choosing the first device on the second platform and
31325           running avgblur_opencl filter with default parameters on it.
31326
31327                   -init_hw_device opencl=gpu:1.0 -filter_hw_device gpu -i INPUT -vf "hwupload, avgblur_opencl, hwdownload" OUTPUT
31328
31329       Since OpenCL filters are not able to access frame data in normal
31330       memory, all frame data needs to be uploaded(hwupload) to hardware
31331       surfaces connected to the appropriate device before being used and then
31332       downloaded(hwdownload) back to normal memory. Note that hwupload will
31333       upload to a surface with the same layout as the software frame, so it
31334       may be necessary to add a format filter immediately before to get the
31335       input into the right format and hwdownload does not support all formats
31336       on the output - it may be necessary to insert an additional format
31337       filter immediately following in the graph to get the output in a
31338       supported format.
31339
31340   avgblur_opencl
31341       Apply average blur filter.
31342
31343       The filter accepts the following options:
31344
31345       sizeX
31346           Set horizontal radius size.  Range is "[1, 1024]" and default value
31347           is 1.
31348
31349       planes
31350           Set which planes to filter. Default value is 0xf, by which all
31351           planes are processed.
31352
31353       sizeY
31354           Set vertical radius size. Range is "[1, 1024]" and default value is
31355           0. If zero, "sizeX" value will be used.
31356
31357       Example
31358
31359       •   Apply average blur filter with horizontal and vertical size of 3,
31360           setting each pixel of the output to the average value of the 7x7
31361           region centered on it in the input. For pixels on the edges of the
31362           image, the region does not extend beyond the image boundaries, and
31363           so out-of-range coordinates are not used in the calculations.
31364
31365                   -i INPUT -vf "hwupload, avgblur_opencl=3, hwdownload" OUTPUT
31366
31367   boxblur_opencl
31368       Apply a boxblur algorithm to the input video.
31369
31370       It accepts the following parameters:
31371
31372       luma_radius, lr
31373       luma_power, lp
31374       chroma_radius, cr
31375       chroma_power, cp
31376       alpha_radius, ar
31377       alpha_power, ap
31378
31379       A description of the accepted options follows.
31380
31381       luma_radius, lr
31382       chroma_radius, cr
31383       alpha_radius, ar
31384           Set an expression for the box radius in pixels used for blurring
31385           the corresponding input plane.
31386
31387           The radius value must be a non-negative number, and must not be
31388           greater than the value of the expression "min(w,h)/2" for the luma
31389           and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
31390
31391           Default value for luma_radius is "2". If not specified,
31392           chroma_radius and alpha_radius default to the corresponding value
31393           set for luma_radius.
31394
31395           The expressions can contain the following constants:
31396
31397           w
31398           h   The input width and height in pixels.
31399
31400           cw
31401           ch  The input chroma image width and height in pixels.
31402
31403           hsub
31404           vsub
31405               The horizontal and vertical chroma subsample values. For
31406               example, for the pixel format "yuv422p", hsub is 2 and vsub is
31407               1.
31408
31409       luma_power, lp
31410       chroma_power, cp
31411       alpha_power, ap
31412           Specify how many times the boxblur filter is applied to the
31413           corresponding plane.
31414
31415           Default value for luma_power is 2. If not specified, chroma_power
31416           and alpha_power default to the corresponding value set for
31417           luma_power.
31418
31419           A value of 0 will disable the effect.
31420
31421       Examples
31422
31423       Apply boxblur filter, setting each pixel of the output to the average
31424       value of box-radiuses luma_radius, chroma_radius, alpha_radius for each
31425       plane respectively. The filter will apply luma_power, chroma_power,
31426       alpha_power times onto the corresponding plane. For pixels on the edges
31427       of the image, the radius does not extend beyond the image boundaries,
31428       and so out-of-range coordinates are not used in the calculations.
31429
31430       •   Apply a boxblur filter with the luma, chroma, and alpha radius set
31431           to 2 and luma, chroma, and alpha power set to 3. The filter will
31432           run 3 times with box-radius set to 2 for every plane of the image.
31433
31434                   -i INPUT -vf "hwupload, boxblur_opencl=luma_radius=2:luma_power=3, hwdownload" OUTPUT
31435                   -i INPUT -vf "hwupload, boxblur_opencl=2:3, hwdownload" OUTPUT
31436
31437       •   Apply a boxblur filter with luma radius set to 2, luma_power to 1,
31438           chroma_radius to 4, chroma_power to 5, alpha_radius to 3 and
31439           alpha_power to 7.
31440
31441           For the luma plane, a 2x2 box radius will be run once.
31442
31443           For the chroma plane, a 4x4 box radius will be run 5 times.
31444
31445           For the alpha plane, a 3x3 box radius will be run 7 times.
31446
31447                   -i INPUT -vf "hwupload, boxblur_opencl=2:1:4:5:3:7, hwdownload" OUTPUT
31448
31449   colorkey_opencl
31450       RGB colorspace color keying.
31451
31452       The filter accepts the following options:
31453
31454       color
31455           The color which will be replaced with transparency.
31456
31457       similarity
31458           Similarity percentage with the key color.
31459
31460           0.01 matches only the exact key color, while 1.0 matches
31461           everything.
31462
31463       blend
31464           Blend percentage.
31465
31466           0.0 makes pixels either fully transparent, or not transparent at
31467           all.
31468
31469           Higher values result in semi-transparent pixels, with a higher
31470           transparency the more similar the pixels color is to the key color.
31471
31472       Examples
31473
31474       •   Make every semi-green pixel in the input transparent with some
31475           slight blending:
31476
31477                   -i INPUT -vf "hwupload, colorkey_opencl=green:0.3:0.1, hwdownload" OUTPUT
31478
31479   convolution_opencl
31480       Apply convolution of 3x3, 5x5, 7x7 matrix.
31481
31482       The filter accepts the following options:
31483
31484       0m
31485       1m
31486       2m
31487       3m  Set matrix for each plane.  Matrix is sequence of 9, 25 or 49
31488           signed numbers.  Default value for each plane is "0 0 0 0 1 0 0 0
31489           0".
31490
31491       0rdiv
31492       1rdiv
31493       2rdiv
31494       3rdiv
31495           Set multiplier for calculated value for each plane.  If unset or 0,
31496           it will be sum of all matrix elements.  The option value must be a
31497           float number greater or equal to 0.0. Default value is 1.0.
31498
31499       0bias
31500       1bias
31501       2bias
31502       3bias
31503           Set bias for each plane. This value is added to the result of the
31504           multiplication.  Useful for making the overall image brighter or
31505           darker.  The option value must be a float number greater or equal
31506           to 0.0. Default value is 0.0.
31507
31508       Examples
31509
31510       •   Apply sharpen:
31511
31512                   -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
31513
31514       •   Apply blur:
31515
31516                   -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
31517
31518       •   Apply edge enhance:
31519
31520                   -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
31521
31522       •   Apply edge detect:
31523
31524                   -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
31525
31526       •   Apply laplacian edge detector which includes diagonals:
31527
31528                   -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
31529
31530       •   Apply emboss:
31531
31532                   -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
31533
31534   erosion_opencl
31535       Apply erosion effect to the video.
31536
31537       This filter replaces the pixel by the local(3x3) minimum.
31538
31539       It accepts the following options:
31540
31541       threshold0
31542       threshold1
31543       threshold2
31544       threshold3
31545           Limit the maximum change for each plane. Range is "[0, 65535]" and
31546           default value is 65535.  If 0, plane will remain unchanged.
31547
31548       coordinates
31549           Flag which specifies the pixel to refer to.  Range is "[0, 255]"
31550           and default value is 255, i.e. all eight pixels are used.
31551
31552           Flags to local 3x3 coordinates region centered on "x":
31553
31554               1 2 3
31555
31556               4 x 5
31557
31558               6 7 8
31559
31560       Example
31561
31562       •   Apply erosion filter with threshold0 set to 30, threshold1 set 40,
31563           threshold2 set to 50 and coordinates set to 231, setting each pixel
31564           of the output to the local minimum between pixels: 1, 2, 3, 6, 7, 8
31565           of the 3x3 region centered on it in the input. If the difference
31566           between input pixel and local minimum is more then threshold of the
31567           corresponding plane, output pixel will be set to input pixel -
31568           threshold of corresponding plane.
31569
31570                   -i INPUT -vf "hwupload, erosion_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
31571
31572   deshake_opencl
31573       Feature-point based video stabilization filter.
31574
31575       The filter accepts the following options:
31576
31577       tripod
31578           Simulates a tripod by preventing any camera movement whatsoever
31579           from the original frame. Defaults to 0.
31580
31581       debug
31582           Whether or not additional debug info should be displayed, both in
31583           the processed output and in the console.
31584
31585           Note that in order to see console debug output you will also need
31586           to pass "-v verbose" to ffmpeg.
31587
31588           Viewing point matches in the output video is only supported for RGB
31589           input.
31590
31591           Defaults to 0.
31592
31593       adaptive_crop
31594           Whether or not to do a tiny bit of cropping at the borders to cut
31595           down on the amount of mirrored pixels.
31596
31597           Defaults to 1.
31598
31599       refine_features
31600           Whether or not feature points should be refined at a sub-pixel
31601           level.
31602
31603           This can be turned off for a slight performance gain at the cost of
31604           precision.
31605
31606           Defaults to 1.
31607
31608       smooth_strength
31609           The strength of the smoothing applied to the camera path from 0.0
31610           to 1.0.
31611
31612           1.0 is the maximum smoothing strength while values less than that
31613           result in less smoothing.
31614
31615           0.0 causes the filter to adaptively choose a smoothing strength on
31616           a per-frame basis.
31617
31618           Defaults to 0.0.
31619
31620       smooth_window_multiplier
31621           Controls the size of the smoothing window (the number of frames
31622           buffered to determine motion information from).
31623
31624           The size of the smoothing window is determined by multiplying the
31625           framerate of the video by this number.
31626
31627           Acceptable values range from 0.1 to 10.0.
31628
31629           Larger values increase the amount of motion data available for
31630           determining how to smooth the camera path, potentially improving
31631           smoothness, but also increase latency and memory usage.
31632
31633           Defaults to 2.0.
31634
31635       Examples
31636
31637       •   Stabilize a video with a fixed, medium smoothing strength:
31638
31639                   -i INPUT -vf "hwupload, deshake_opencl=smooth_strength=0.5, hwdownload" OUTPUT
31640
31641       •   Stabilize a video with debugging (both in console and in rendered
31642           video):
31643
31644                   -i INPUT -filter_complex "[0:v]format=rgba, hwupload, deshake_opencl=debug=1, hwdownload, format=rgba, format=yuv420p" -v verbose OUTPUT
31645
31646   dilation_opencl
31647       Apply dilation effect to the video.
31648
31649       This filter replaces the pixel by the local(3x3) maximum.
31650
31651       It accepts the following options:
31652
31653       threshold0
31654       threshold1
31655       threshold2
31656       threshold3
31657           Limit the maximum change for each plane. Range is "[0, 65535]" and
31658           default value is 65535.  If 0, plane will remain unchanged.
31659
31660       coordinates
31661           Flag which specifies the pixel to refer to.  Range is "[0, 255]"
31662           and default value is 255, i.e. all eight pixels are used.
31663
31664           Flags to local 3x3 coordinates region centered on "x":
31665
31666               1 2 3
31667
31668               4 x 5
31669
31670               6 7 8
31671
31672       Example
31673
31674       •   Apply dilation filter with threshold0 set to 30, threshold1 set 40,
31675           threshold2 set to 50 and coordinates set to 231, setting each pixel
31676           of the output to the local maximum between pixels: 1, 2, 3, 6, 7, 8
31677           of the 3x3 region centered on it in the input. If the difference
31678           between input pixel and local maximum is more then threshold of the
31679           corresponding plane, output pixel will be set to input pixel +
31680           threshold of corresponding plane.
31681
31682                   -i INPUT -vf "hwupload, dilation_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
31683
31684   nlmeans_opencl
31685       Non-local Means denoise filter through OpenCL, this filter accepts same
31686       options as nlmeans.
31687
31688   overlay_opencl
31689       Overlay one video on top of another.
31690
31691       It takes two inputs and has one output. The first input is the "main"
31692       video on which the second input is overlaid.  This filter requires same
31693       memory layout for all the inputs. So, format conversion may be needed.
31694
31695       The filter accepts the following options:
31696
31697       x   Set the x coordinate of the overlaid video on the main video.
31698           Default value is 0.
31699
31700       y   Set the y coordinate of the overlaid video on the main video.
31701           Default value is 0.
31702
31703       Examples
31704
31705       •   Overlay an image LOGO at the top-left corner of the INPUT video.
31706           Both inputs are yuv420p format.
31707
31708                   -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
31709
31710       •   The inputs have same memory layout for color channels , the overlay
31711           has additional alpha plane, like INPUT is yuv420p, and the LOGO is
31712           yuva420p.
31713
31714                   -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
31715
31716   pad_opencl
31717       Add paddings to the input image, and place the original input at the
31718       provided x, y coordinates.
31719
31720       It accepts the following options:
31721
31722       width, w
31723       height, h
31724           Specify an expression for the size of the output image with the
31725           paddings added. If the value for width or height is 0, the
31726           corresponding input size is used for the output.
31727
31728           The width expression can reference the value set by the height
31729           expression, and vice versa.
31730
31731           The default value of width and height is 0.
31732
31733       x
31734       y   Specify the offsets to place the input image at within the padded
31735           area, with respect to the top/left border of the output image.
31736
31737           The x expression can reference the value set by the y expression,
31738           and vice versa.
31739
31740           The default value of x and y is 0.
31741
31742           If x or y evaluate to a negative number, they'll be changed so the
31743           input image is centered on the padded area.
31744
31745       color
31746           Specify the color of the padded area. For the syntax of this
31747           option, check the "Color" section in the ffmpeg-utils manual.
31748
31749       aspect
31750           Pad to an aspect instead to a resolution.
31751
31752       The value for the width, height, x, and y options are expressions
31753       containing the following constants:
31754
31755       in_w
31756       in_h
31757           The input video width and height.
31758
31759       iw
31760       ih  These are the same as in_w and in_h.
31761
31762       out_w
31763       out_h
31764           The output width and height (the size of the padded area), as
31765           specified by the width and height expressions.
31766
31767       ow
31768       oh  These are the same as out_w and out_h.
31769
31770       x
31771       y   The x and y offsets as specified by the x and y expressions, or NAN
31772           if not yet specified.
31773
31774       a   same as iw / ih
31775
31776       sar input sample aspect ratio
31777
31778       dar input display aspect ratio, it is the same as (iw / ih) * sar
31779
31780   prewitt_opencl
31781       Apply the Prewitt operator
31782       (<https://en.wikipedia.org/wiki/Prewitt_operator>) to input video
31783       stream.
31784
31785       The filter accepts the following option:
31786
31787       planes
31788           Set which planes to filter. Default value is 0xf, by which all
31789           planes are processed.
31790
31791       scale
31792           Set value which will be multiplied with filtered result.  Range is
31793           "[0.0, 65535]" and default value is 1.0.
31794
31795       delta
31796           Set value which will be added to filtered result.  Range is
31797           "[-65535, 65535]" and default value is 0.0.
31798
31799       Example
31800
31801       •   Apply the Prewitt operator with scale set to 2 and delta set to 10.
31802
31803                   -i INPUT -vf "hwupload, prewitt_opencl=scale=2:delta=10, hwdownload" OUTPUT
31804
31805   program_opencl
31806       Filter video using an OpenCL program.
31807
31808       source
31809           OpenCL program source file.
31810
31811       kernel
31812           Kernel name in program.
31813
31814       inputs
31815           Number of inputs to the filter.  Defaults to 1.
31816
31817       size, s
31818           Size of output frames.  Defaults to the same as the first input.
31819
31820       The "program_opencl" filter also supports the framesync options.
31821
31822       The program source file must contain a kernel function with the given
31823       name, which will be run once for each plane of the output.  Each run on
31824       a plane gets enqueued as a separate 2D global NDRange with one work-
31825       item for each pixel to be generated.  The global ID offset for each
31826       work-item is therefore the coordinates of a pixel in the destination
31827       image.
31828
31829       The kernel function needs to take the following arguments:
31830
31831       •   Destination image, __write_only image2d_t.
31832
31833           This image will become the output; the kernel should write all of
31834           it.
31835
31836       •   Frame index, unsigned int.
31837
31838           This is a counter starting from zero and increasing by one for each
31839           frame.
31840
31841       •   Source images, __read_only image2d_t.
31842
31843           These are the most recent images on each input.  The kernel may
31844           read from them to generate the output, but they can't be written
31845           to.
31846
31847       Example programs:
31848
31849       •   Copy the input to the output (output must be the same size as the
31850           input).
31851
31852                   __kernel void copy(__write_only image2d_t destination,
31853                                      unsigned int index,
31854                                      __read_only  image2d_t source)
31855                   {
31856                       const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE;
31857
31858                       int2 location = (int2)(get_global_id(0), get_global_id(1));
31859
31860                       float4 value = read_imagef(source, sampler, location);
31861
31862                       write_imagef(destination, location, value);
31863                   }
31864
31865       •   Apply a simple transformation, rotating the input by an amount
31866           increasing with the index counter.  Pixel values are linearly
31867           interpolated by the sampler, and the output need not have the same
31868           dimensions as the input.
31869
31870                   __kernel void rotate_image(__write_only image2d_t dst,
31871                                              unsigned int index,
31872                                              __read_only  image2d_t src)
31873                   {
31874                       const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
31875                                                  CLK_FILTER_LINEAR);
31876
31877                       float angle = (float)index / 100.0f;
31878
31879                       float2 dst_dim = convert_float2(get_image_dim(dst));
31880                       float2 src_dim = convert_float2(get_image_dim(src));
31881
31882                       float2 dst_cen = dst_dim / 2.0f;
31883                       float2 src_cen = src_dim / 2.0f;
31884
31885                       int2   dst_loc = (int2)(get_global_id(0), get_global_id(1));
31886
31887                       float2 dst_pos = convert_float2(dst_loc) - dst_cen;
31888                       float2 src_pos = {
31889                           cos(angle) * dst_pos.x - sin(angle) * dst_pos.y,
31890                           sin(angle) * dst_pos.x + cos(angle) * dst_pos.y
31891                       };
31892                       src_pos = src_pos * src_dim / dst_dim;
31893
31894                       float2 src_loc = src_pos + src_cen;
31895
31896                       if (src_loc.x < 0.0f      || src_loc.y < 0.0f ||
31897                           src_loc.x > src_dim.x || src_loc.y > src_dim.y)
31898                           write_imagef(dst, dst_loc, 0.5f);
31899                       else
31900                           write_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc));
31901                   }
31902
31903       •   Blend two inputs together, with the amount of each input used
31904           varying with the index counter.
31905
31906                   __kernel void blend_images(__write_only image2d_t dst,
31907                                              unsigned int index,
31908                                              __read_only  image2d_t src1,
31909                                              __read_only  image2d_t src2)
31910                   {
31911                       const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
31912                                                  CLK_FILTER_LINEAR);
31913
31914                       float blend = (cos((float)index / 50.0f) + 1.0f) / 2.0f;
31915
31916                       int2  dst_loc = (int2)(get_global_id(0), get_global_id(1));
31917                       int2 src1_loc = dst_loc * get_image_dim(src1) / get_image_dim(dst);
31918                       int2 src2_loc = dst_loc * get_image_dim(src2) / get_image_dim(dst);
31919
31920                       float4 val1 = read_imagef(src1, sampler, src1_loc);
31921                       float4 val2 = read_imagef(src2, sampler, src2_loc);
31922
31923                       write_imagef(dst, dst_loc, val1 * blend + val2 * (1.0f - blend));
31924                   }
31925
31926   remap_opencl
31927       Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
31928
31929       Destination pixel at position (X, Y) will be picked from source (x, y)
31930       position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
31931       out of range, zero value for pixel will be used for destination pixel.
31932
31933       Xmap and Ymap input video streams must be of same dimensions. Output
31934       video stream will have Xmap/Ymap video stream dimensions.  Xmap and
31935       Ymap input video streams are 32bit float pixel format, single channel.
31936
31937       interp
31938           Specify interpolation used for remapping of pixels.  Allowed values
31939           are "near" and "linear".  Default value is "linear".
31940
31941       fill
31942           Specify the color of the unmapped pixels. For the syntax of this
31943           option, check the "Color" section in the ffmpeg-utils manual.
31944           Default color is "black".
31945
31946   roberts_opencl
31947       Apply the Roberts cross operator
31948       (<https://en.wikipedia.org/wiki/Roberts_cross>) to input video stream.
31949
31950       The filter accepts the following option:
31951
31952       planes
31953           Set which planes to filter. Default value is 0xf, by which all
31954           planes are processed.
31955
31956       scale
31957           Set value which will be multiplied with filtered result.  Range is
31958           "[0.0, 65535]" and default value is 1.0.
31959
31960       delta
31961           Set value which will be added to filtered result.  Range is
31962           "[-65535, 65535]" and default value is 0.0.
31963
31964       Example
31965
31966       •   Apply the Roberts cross operator with scale set to 2 and delta set
31967           to 10
31968
31969                   -i INPUT -vf "hwupload, roberts_opencl=scale=2:delta=10, hwdownload" OUTPUT
31970
31971   sobel_opencl
31972       Apply the Sobel operator
31973       (<https://en.wikipedia.org/wiki/Sobel_operator>) to input video stream.
31974
31975       The filter accepts the following option:
31976
31977       planes
31978           Set which planes to filter. Default value is 0xf, by which all
31979           planes are processed.
31980
31981       scale
31982           Set value which will be multiplied with filtered result.  Range is
31983           "[0.0, 65535]" and default value is 1.0.
31984
31985       delta
31986           Set value which will be added to filtered result.  Range is
31987           "[-65535, 65535]" and default value is 0.0.
31988
31989       Example
31990
31991       •   Apply sobel operator with scale set to 2 and delta set to 10
31992
31993                   -i INPUT -vf "hwupload, sobel_opencl=scale=2:delta=10, hwdownload" OUTPUT
31994
31995   tonemap_opencl
31996       Perform HDR(PQ/HLG) to SDR conversion with tone-mapping.
31997
31998       It accepts the following parameters:
31999
32000       tonemap
32001           Specify the tone-mapping operator to be used. Same as tonemap
32002           option in tonemap.
32003
32004       param
32005           Tune the tone mapping algorithm. same as param option in tonemap.
32006
32007       desat
32008           Apply desaturation for highlights that exceed this level of
32009           brightness. The higher the parameter, the more color information
32010           will be preserved. This setting helps prevent unnaturally blown-out
32011           colors for super-highlights, by (smoothly) turning into white
32012           instead. This makes images feel more natural, at the cost of
32013           reducing information about out-of-range colors.
32014
32015           The default value is 0.5, and the algorithm here is a little
32016           different from the cpu version tonemap currently. A setting of 0.0
32017           disables this option.
32018
32019       threshold
32020           The tonemapping algorithm parameters is fine-tuned per each scene.
32021           And a threshold is used to detect whether the scene has changed or
32022           not. If the distance between the current frame average brightness
32023           and the current running average exceeds a threshold value, we would
32024           re-calculate scene average and peak brightness.  The default value
32025           is 0.2.
32026
32027       format
32028           Specify the output pixel format.
32029
32030           Currently supported formats are:
32031
32032           p010
32033           nv12
32034       range, r
32035           Set the output color range.
32036
32037           Possible values are:
32038
32039           tv/mpeg
32040           pc/jpeg
32041
32042           Default is same as input.
32043
32044       primaries, p
32045           Set the output color primaries.
32046
32047           Possible values are:
32048
32049           bt709
32050           bt2020
32051
32052           Default is same as input.
32053
32054       transfer, t
32055           Set the output transfer characteristics.
32056
32057           Possible values are:
32058
32059           bt709
32060           bt2020
32061
32062           Default is bt709.
32063
32064       matrix, m
32065           Set the output colorspace matrix.
32066
32067           Possible value are:
32068
32069           bt709
32070           bt2020
32071
32072           Default is same as input.
32073
32074       Example
32075
32076       •   Convert HDR(PQ/HLG) video to bt2020-transfer-characteristic p010
32077           format using linear operator.
32078
32079                   -i INPUT -vf "format=p010,hwupload,tonemap_opencl=t=bt2020:tonemap=linear:format=p010,hwdownload,format=p010" OUTPUT
32080
32081   unsharp_opencl
32082       Sharpen or blur the input video.
32083
32084       It accepts the following parameters:
32085
32086       luma_msize_x, lx
32087           Set the luma matrix horizontal size.  Range is "[1, 23]" and
32088           default value is 5.
32089
32090       luma_msize_y, ly
32091           Set the luma matrix vertical size.  Range is "[1, 23]" and default
32092           value is 5.
32093
32094       luma_amount, la
32095           Set the luma effect strength.  Range is "[-10, 10]" and default
32096           value is 1.0.
32097
32098           Negative values will blur the input video, while positive values
32099           will sharpen it, a value of zero will disable the effect.
32100
32101       chroma_msize_x, cx
32102           Set the chroma matrix horizontal size.  Range is "[1, 23]" and
32103           default value is 5.
32104
32105       chroma_msize_y, cy
32106           Set the chroma matrix vertical size.  Range is "[1, 23]" and
32107           default value is 5.
32108
32109       chroma_amount, ca
32110           Set the chroma effect strength.  Range is "[-10, 10]" and default
32111           value is 0.0.
32112
32113           Negative values will blur the input video, while positive values
32114           will sharpen it, a value of zero will disable the effect.
32115
32116       All parameters are optional and default to the equivalent of the string
32117       '5:5:1.0:5:5:0.0'.
32118
32119       Examples
32120
32121       •   Apply strong luma sharpen effect:
32122
32123                   -i INPUT -vf "hwupload, unsharp_opencl=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5, hwdownload" OUTPUT
32124
32125       •   Apply a strong blur of both luma and chroma parameters:
32126
32127                   -i INPUT -vf "hwupload, unsharp_opencl=7:7:-2:7:7:-2, hwdownload" OUTPUT
32128
32129   xfade_opencl
32130       Cross fade two videos with custom transition effect by using OpenCL.
32131
32132       It accepts the following options:
32133
32134       transition
32135           Set one of possible transition effects.
32136
32137           custom
32138               Select custom transition effect, the actual transition
32139               description will be picked from source and kernel options.
32140
32141           fade
32142           wipeleft
32143           wiperight
32144           wipeup
32145           wipedown
32146           slideleft
32147           slideright
32148           slideup
32149           slidedown
32150               Default transition is fade.
32151
32152       source
32153           OpenCL program source file for custom transition.
32154
32155       kernel
32156           Set name of kernel to use for custom transition from program source
32157           file.
32158
32159       duration
32160           Set duration of video transition.
32161
32162       offset
32163           Set time of start of transition relative to first video.
32164
32165       The program source file must contain a kernel function with the given
32166       name, which will be run once for each plane of the output.  Each run on
32167       a plane gets enqueued as a separate 2D global NDRange with one work-
32168       item for each pixel to be generated.  The global ID offset for each
32169       work-item is therefore the coordinates of a pixel in the destination
32170       image.
32171
32172       The kernel function needs to take the following arguments:
32173
32174       •   Destination image, __write_only image2d_t.
32175
32176           This image will become the output; the kernel should write all of
32177           it.
32178
32179       •   First Source image, __read_only image2d_t.  Second Source image,
32180           __read_only image2d_t.
32181
32182           These are the most recent images on each input.  The kernel may
32183           read from them to generate the output, but they can't be written
32184           to.
32185
32186       •   Transition progress, float. This value is always between 0 and 1
32187           inclusive.
32188
32189       Example programs:
32190
32191       •   Apply dots curtain transition effect:
32192
32193                   __kernel void blend_images(__write_only image2d_t dst,
32194                                              __read_only  image2d_t src1,
32195                                              __read_only  image2d_t src2,
32196                                              float progress)
32197                   {
32198                       const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
32199                                                  CLK_FILTER_LINEAR);
32200                       int2  p = (int2)(get_global_id(0), get_global_id(1));
32201                       float2 rp = (float2)(get_global_id(0), get_global_id(1));
32202                       float2 dim = (float2)(get_image_dim(src1).x, get_image_dim(src1).y);
32203                       rp = rp / dim;
32204
32205                       float2 dots = (float2)(20.0, 20.0);
32206                       float2 center = (float2)(0,0);
32207                       float2 unused;
32208
32209                       float4 val1 = read_imagef(src1, sampler, p);
32210                       float4 val2 = read_imagef(src2, sampler, p);
32211                       bool next = distance(fract(rp * dots, &unused), (float2)(0.5, 0.5)) < (progress / distance(rp, center));
32212
32213                       write_imagef(dst, p, next ? val1 : val2);
32214                   }
32215

VAAPI VIDEO FILTERS

32217       VAAPI Video filters are usually used with VAAPI decoder and VAAPI
32218       encoder. Below is a description of VAAPI video filters.
32219
32220       To enable compilation of these filters you need to configure FFmpeg
32221       with "--enable-vaapi".
32222
32223       To use vaapi filters, you need to setup the vaapi device correctly. For
32224       more information, please read
32225       <https://trac.ffmpeg.org/wiki/Hardware/VAAPI>
32226
32227   overlay_vaapi
32228       Overlay one video on the top of another.
32229
32230       It takes two inputs and has one output. The first input is the "main"
32231       video on which the second input is overlaid.  This filter requires same
32232       memory layout for all the inputs. So, format conversion may be needed.
32233
32234       The filter accepts the following options:
32235
32236       x   Set the x coordinate of the overlaid video on the main video.
32237           Default value is 0.
32238
32239       y   Set the y coordinate of the overlaid video on the main video.
32240           Default value is 0.
32241
32242       w   Set the width of the overlaid video on the main video.  Default
32243           value is the width of input overlay video.
32244
32245       h   Set the height of the overlaid video on the main video.  Default
32246           value is the height of input overlay video.
32247
32248       alpha
32249           Set blocking detection thresholds. Allowed range is 0.0 to 1.0, it
32250           requires an input video with alpha channel.  Default value is 0.0.
32251
32252       Examples
32253
32254       •   Overlay an image LOGO at the top-left corner of the INPUT video.
32255           Both inputs for this filter are yuv420p format.
32256
32257                   -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_vaapi" OUTPUT
32258
32259       •   Overlay an image LOGO at the offset (200, 100) from the top-left
32260           corner of the INPUT video.  The inputs have same memory layout for
32261           color channels, the overlay has additional alpha plane, like INPUT
32262           is yuv420p, and the LOGO is yuva420p.
32263
32264                   -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
32265
32266   tonemap_vaapi
32267       Perform HDR(High Dynamic Range) to SDR(Standard Dynamic Range)
32268       conversion with tone-mapping.  It maps the dynamic range of HDR10
32269       content to the SDR content.  It currently only accepts HDR10 as input.
32270
32271       It accepts the following parameters:
32272
32273       format
32274           Specify the output pixel format.
32275
32276           Currently supported formats are:
32277
32278           p010
32279           nv12
32280
32281           Default is nv12.
32282
32283       primaries, p
32284           Set the output color primaries.
32285
32286           Default is same as input.
32287
32288       transfer, t
32289           Set the output transfer characteristics.
32290
32291           Default is bt709.
32292
32293       matrix, m
32294           Set the output colorspace matrix.
32295
32296           Default is same as input.
32297
32298       Example
32299
32300       •   Convert HDR(HDR10) video to bt2020-transfer-characteristic p010
32301           format
32302
32303                   tonemap_vaapi=format=p010:t=bt2020-10
32304

VIDEO SOURCES

32306       Below is a description of the currently available video sources.
32307
32308   buffer
32309       Buffer video frames, and make them available to the filter chain.
32310
32311       This source is mainly intended for a programmatic use, in particular
32312       through the interface defined in libavfilter/buffersrc.h.
32313
32314       It accepts the following parameters:
32315
32316       video_size
32317           Specify the size (width and height) of the buffered video frames.
32318           For the syntax of this option, check the "Video size" section in
32319           the ffmpeg-utils manual.
32320
32321       width
32322           The input video width.
32323
32324       height
32325           The input video height.
32326
32327       pix_fmt
32328           A string representing the pixel format of the buffered video
32329           frames.  It may be a number corresponding to a pixel format, or a
32330           pixel format name.
32331
32332       time_base
32333           Specify the timebase assumed by the timestamps of the buffered
32334           frames.
32335
32336       frame_rate
32337           Specify the frame rate expected for the video stream.
32338
32339       pixel_aspect, sar
32340           The sample (pixel) aspect ratio of the input video.
32341
32342       sws_param
32343           This option is deprecated and ignored. Prepend "sws_flags=flags;"
32344           to the filtergraph description to specify swscale flags for
32345           automatically inserted scalers. See Filtergraph syntax.
32346
32347       hw_frames_ctx
32348           When using a hardware pixel format, this should be a reference to
32349           an AVHWFramesContext describing input frames.
32350
32351       For example:
32352
32353               buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
32354
32355       will instruct the source to accept video frames with size 320x240 and
32356       with format "yuv410p", assuming 1/24 as the timestamps timebase and
32357       square pixels (1:1 sample aspect ratio).  Since the pixel format with
32358       name "yuv410p" corresponds to the number 6 (check the enum
32359       AVPixelFormat definition in libavutil/pixfmt.h), this example
32360       corresponds to:
32361
32362               buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
32363
32364       Alternatively, the options can be specified as a flat string, but this
32365       syntax is deprecated:
32366
32367       width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den
32368
32369   cellauto
32370       Create a pattern generated by an elementary cellular automaton.
32371
32372       The initial state of the cellular automaton can be defined through the
32373       filename and pattern options. If such options are not specified an
32374       initial state is created randomly.
32375
32376       At each new frame a new row in the video is filled with the result of
32377       the cellular automaton next generation. The behavior when the whole
32378       frame is filled is defined by the scroll option.
32379
32380       This source accepts the following options:
32381
32382       filename, f
32383           Read the initial cellular automaton state, i.e. the starting row,
32384           from the specified file.  In the file, each non-whitespace
32385           character is considered an alive cell, a newline will terminate the
32386           row, and further characters in the file will be ignored.
32387
32388       pattern, p
32389           Read the initial cellular automaton state, i.e. the starting row,
32390           from the specified string.
32391
32392           Each non-whitespace character in the string is considered an alive
32393           cell, a newline will terminate the row, and further characters in
32394           the string will be ignored.
32395
32396       rate, r
32397           Set the video rate, that is the number of frames generated per
32398           second.  Default is 25.
32399
32400       random_fill_ratio, ratio
32401           Set the random fill ratio for the initial cellular automaton row.
32402           It is a floating point number value ranging from 0 to 1, defaults
32403           to 1/PHI.
32404
32405           This option is ignored when a file or a pattern is specified.
32406
32407       random_seed, seed
32408           Set the seed for filling randomly the initial row, must be an
32409           integer included between 0 and UINT32_MAX. If not specified, or if
32410           explicitly set to -1, the filter will try to use a good random seed
32411           on a best effort basis.
32412
32413       rule
32414           Set the cellular automaton rule, it is a number ranging from 0 to
32415           255.  Default value is 110.
32416
32417       size, s
32418           Set the size of the output video. For the syntax of this option,
32419           check the "Video size" section in the ffmpeg-utils manual.
32420
32421           If filename or pattern is specified, the size is set by default to
32422           the width of the specified initial state row, and the height is set
32423           to width * PHI.
32424
32425           If size is set, it must contain the width of the specified pattern
32426           string, and the specified pattern will be centered in the larger
32427           row.
32428
32429           If a filename or a pattern string is not specified, the size value
32430           defaults to "320x518" (used for a randomly generated initial
32431           state).
32432
32433       scroll
32434           If set to 1, scroll the output upward when all the rows in the
32435           output have been already filled. If set to 0, the new generated row
32436           will be written over the top row just after the bottom row is
32437           filled.  Defaults to 1.
32438
32439       start_full, full
32440           If set to 1, completely fill the output with generated rows before
32441           outputting the first frame.  This is the default behavior, for
32442           disabling set the value to 0.
32443
32444       stitch
32445           If set to 1, stitch the left and right row edges together.  This is
32446           the default behavior, for disabling set the value to 0.
32447
32448       Examples
32449
32450       •   Read the initial state from pattern, and specify an output of size
32451           200x400.
32452
32453                   cellauto=f=pattern:s=200x400
32454
32455       •   Generate a random initial row with a width of 200 cells, with a
32456           fill ratio of 2/3:
32457
32458                   cellauto=ratio=2/3:s=200x200
32459
32460       •   Create a pattern generated by rule 18 starting by a single alive
32461           cell centered on an initial row with width 100:
32462
32463                   cellauto=p=@s=100x400:full=0:rule=18
32464
32465       •   Specify a more elaborated initial pattern:
32466
32467                   cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
32468
32469   coreimagesrc
32470       Video source generated on GPU using Apple's CoreImage API on OSX.
32471
32472       This video source is a specialized version of the coreimage video
32473       filter.  Use a core image generator at the beginning of the applied
32474       filterchain to generate the content.
32475
32476       The coreimagesrc video source accepts the following options:
32477
32478       list_generators
32479           List all available generators along with all their respective
32480           options as well as possible minimum and maximum values along with
32481           the default values.
32482
32483                   list_generators=true
32484
32485       size, s
32486           Specify the size of the sourced video. For the syntax of this
32487           option, check the "Video size" section in the ffmpeg-utils manual.
32488           The default value is "320x240".
32489
32490       rate, r
32491           Specify the frame rate of the sourced video, as the number of
32492           frames generated per second. It has to be a string in the format
32493           frame_rate_num/frame_rate_den, an integer number, a floating point
32494           number or a valid video frame rate abbreviation. The default value
32495           is "25".
32496
32497       sar Set the sample aspect ratio of the sourced video.
32498
32499       duration, d
32500           Set the duration of the sourced video. See the Time duration
32501           section in the ffmpeg-utils(1) manual for the accepted syntax.
32502
32503           If not specified, or the expressed duration is negative, the video
32504           is supposed to be generated forever.
32505
32506       Additionally, all options of the coreimage video filter are accepted.
32507       A complete filterchain can be used for further processing of the
32508       generated input without CPU-HOST transfer. See coreimage documentation
32509       and examples for details.
32510
32511       Examples
32512
32513       •   Use CIQRCodeGenerator to create a QR code for the FFmpeg homepage,
32514           given as complete and escaped command-line for Apple's standard
32515           bash shell:
32516
32517                   ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
32518
32519           This example is equivalent to the QRCode example of coreimage
32520           without the need for a nullsrc video source.
32521
32522   gradients
32523       Generate several gradients.
32524
32525       size, s
32526           Set frame size. For the syntax of this option, check the "Video
32527           size" section in the ffmpeg-utils manual. Default value is
32528           "640x480".
32529
32530       rate, r
32531           Set frame rate, expressed as number of frames per second. Default
32532           value is "25".
32533
32534       c0, c1, c2, c3, c4, c5, c6, c7
32535           Set 8 colors. Default values for colors is to pick random one.
32536
32537       x0, y0, y0, y1
32538           Set gradient line source and destination points. If negative or out
32539           of range, random ones are picked.
32540
32541       nb_colors, n
32542           Set number of colors to use at once. Allowed range is from 2 to 8.
32543           Default value is 2.
32544
32545       seed
32546           Set seed for picking gradient line points.
32547
32548       duration, d
32549           Set the duration of the sourced video. See the Time duration
32550           section in the ffmpeg-utils(1) manual for the accepted syntax.
32551
32552           If not specified, or the expressed duration is negative, the video
32553           is supposed to be generated forever.
32554
32555       speed
32556           Set speed of gradients rotation.
32557
32558       type, t
32559           Set type of gradients, can be "linear" or "radial" or "circular" or
32560           "spiral".
32561
32562   mandelbrot
32563       Generate a Mandelbrot set fractal, and progressively zoom towards the
32564       point specified with start_x and start_y.
32565
32566       This source accepts the following options:
32567
32568       end_pts
32569           Set the terminal pts value. Default value is 400.
32570
32571       end_scale
32572           Set the terminal scale value.  Must be a floating point value.
32573           Default value is 0.3.
32574
32575       inner
32576           Set the inner coloring mode, that is the algorithm used to draw the
32577           Mandelbrot fractal internal region.
32578
32579           It shall assume one of the following values:
32580
32581           black
32582               Set black mode.
32583
32584           convergence
32585               Show time until convergence.
32586
32587           mincol
32588               Set color based on point closest to the origin of the
32589               iterations.
32590
32591           period
32592               Set period mode.
32593
32594           Default value is mincol.
32595
32596       bailout
32597           Set the bailout value. Default value is 10.0.
32598
32599       maxiter
32600           Set the maximum of iterations performed by the rendering algorithm.
32601           Default value is 7189.
32602
32603       outer
32604           Set outer coloring mode.  It shall assume one of following values:
32605
32606           iteration_count
32607               Set iteration count mode.
32608
32609           normalized_iteration_count
32610               set normalized iteration count mode.
32611
32612           Default value is normalized_iteration_count.
32613
32614       rate, r
32615           Set frame rate, expressed as number of frames per second. Default
32616           value is "25".
32617
32618       size, s
32619           Set frame size. For the syntax of this option, check the "Video
32620           size" section in the ffmpeg-utils manual. Default value is
32621           "640x480".
32622
32623       start_scale
32624           Set the initial scale value. Default value is 3.0.
32625
32626       start_x
32627           Set the initial x position. Must be a floating point value between
32628           -100 and 100. Default value is
32629           -0.743643887037158704752191506114774.
32630
32631       start_y
32632           Set the initial y position. Must be a floating point value between
32633           -100 and 100. Default value is
32634           -0.131825904205311970493132056385139.
32635
32636   mptestsrc
32637       Generate various test patterns, as generated by the MPlayer test
32638       filter.
32639
32640       The size of the generated video is fixed, and is 256x256.  This source
32641       is useful in particular for testing encoding features.
32642
32643       This source accepts the following options:
32644
32645       rate, r
32646           Specify the frame rate of the sourced video, as the number of
32647           frames generated per second. It has to be a string in the format
32648           frame_rate_num/frame_rate_den, an integer number, a floating point
32649           number or a valid video frame rate abbreviation. The default value
32650           is "25".
32651
32652       duration, d
32653           Set the duration of the sourced video. See the Time duration
32654           section in the ffmpeg-utils(1) manual for the accepted syntax.
32655
32656           If not specified, or the expressed duration is negative, the video
32657           is supposed to be generated forever.
32658
32659       test, t
32660           Set the number or the name of the test to perform. Supported tests
32661           are:
32662
32663           dc_luma
32664           dc_chroma
32665           freq_luma
32666           freq_chroma
32667           amp_luma
32668           amp_chroma
32669           cbp
32670           mv
32671           ring1
32672           ring2
32673           all
32674           max_frames, m
32675               Set the maximum number of frames generated for each test,
32676               default value is 30.
32677
32678           Default value is "all", which will cycle through the list of all
32679           tests.
32680
32681       Some examples:
32682
32683               mptestsrc=t=dc_luma
32684
32685       will generate a "dc_luma" test pattern.
32686
32687   frei0r_src
32688       Provide a frei0r source.
32689
32690       To enable compilation of this filter you need to install the frei0r
32691       header and configure FFmpeg with "--enable-frei0r".
32692
32693       This source accepts the following parameters:
32694
32695       size
32696           The size of the video to generate. For the syntax of this option,
32697           check the "Video size" section in the ffmpeg-utils manual.
32698
32699       framerate
32700           The framerate of the generated video. It may be a string of the
32701           form num/den or a frame rate abbreviation.
32702
32703       filter_name
32704           The name to the frei0r source to load. For more information
32705           regarding frei0r and how to set the parameters, read the frei0r
32706           section in the video filters documentation.
32707
32708       filter_params
32709           A '|'-separated list of parameters to pass to the frei0r source.
32710
32711       For example, to generate a frei0r partik0l source with size 200x200 and
32712       frame rate 10 which is overlaid on the overlay filter main input:
32713
32714               frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
32715
32716   life
32717       Generate a life pattern.
32718
32719       This source is based on a generalization of John Conway's life game.
32720
32721       The sourced input represents a life grid, each pixel represents a cell
32722       which can be in one of two possible states, alive or dead. Every cell
32723       interacts with its eight neighbours, which are the cells that are
32724       horizontally, vertically, or diagonally adjacent.
32725
32726       At each interaction the grid evolves according to the adopted rule,
32727       which specifies the number of neighbor alive cells which will make a
32728       cell stay alive or born. The rule option allows one to specify the rule
32729       to adopt.
32730
32731       This source accepts the following options:
32732
32733       filename, f
32734           Set the file from which to read the initial grid state. In the
32735           file, each non-whitespace character is considered an alive cell,
32736           and newline is used to delimit the end of each row.
32737
32738           If this option is not specified, the initial grid is generated
32739           randomly.
32740
32741       rate, r
32742           Set the video rate, that is the number of frames generated per
32743           second.  Default is 25.
32744
32745       random_fill_ratio, ratio
32746           Set the random fill ratio for the initial random grid. It is a
32747           floating point number value ranging from 0 to 1, defaults to 1/PHI.
32748           It is ignored when a file is specified.
32749
32750       random_seed, seed
32751           Set the seed for filling the initial random grid, must be an
32752           integer included between 0 and UINT32_MAX. If not specified, or if
32753           explicitly set to -1, the filter will try to use a good random seed
32754           on a best effort basis.
32755
32756       rule
32757           Set the life rule.
32758
32759           A rule can be specified with a code of the kind "SNS/BNB", where NS
32760           and NB are sequences of numbers in the range 0-8, NS specifies the
32761           number of alive neighbor cells which make a live cell stay alive,
32762           and NB the number of alive neighbor cells which make a dead cell to
32763           become alive (i.e. to "born").  "s" and "b" can be used in place of
32764           "S" and "B", respectively.
32765
32766           Alternatively a rule can be specified by an 18-bits integer. The 9
32767           high order bits are used to encode the next cell state if it is
32768           alive for each number of neighbor alive cells, the low order bits
32769           specify the rule for "borning" new cells. Higher order bits encode
32770           for an higher number of neighbor cells.  For example the number
32771           6153 = "(12<<9)+9" specifies a stay alive rule of 12 and a born
32772           rule of 9, which corresponds to "S23/B03".
32773
32774           Default value is "S23/B3", which is the original Conway's game of
32775           life rule, and will keep a cell alive if it has 2 or 3 neighbor
32776           alive cells, and will born a new cell if there are three alive
32777           cells around a dead cell.
32778
32779       size, s
32780           Set the size of the output video. For the syntax of this option,
32781           check the "Video size" section in the ffmpeg-utils manual.
32782
32783           If filename is specified, the size is set by default to the same
32784           size of the input file. If size is set, it must contain the size
32785           specified in the input file, and the initial grid defined in that
32786           file is centered in the larger resulting area.
32787
32788           If a filename is not specified, the size value defaults to
32789           "320x240" (used for a randomly generated initial grid).
32790
32791       stitch
32792           If set to 1, stitch the left and right grid edges together, and the
32793           top and bottom edges also. Defaults to 1.
32794
32795       mold
32796           Set cell mold speed. If set, a dead cell will go from death_color
32797           to mold_color with a step of mold. mold can have a value from 0 to
32798           255.
32799
32800       life_color
32801           Set the color of living (or new born) cells.
32802
32803       death_color
32804           Set the color of dead cells. If mold is set, this is the first
32805           color used to represent a dead cell.
32806
32807       mold_color
32808           Set mold color, for definitely dead and moldy cells.
32809
32810           For the syntax of these 3 color options, check the "Color" section
32811           in the ffmpeg-utils manual.
32812
32813       Examples
32814
32815       •   Read a grid from pattern, and center it on a grid of size 300x300
32816           pixels:
32817
32818                   life=f=pattern:s=300x300
32819
32820       •   Generate a random grid of size 200x200, with a fill ratio of 2/3:
32821
32822                   life=ratio=2/3:s=200x200
32823
32824       •   Specify a custom rule for evolving a randomly generated grid:
32825
32826                   life=rule=S14/B34
32827
32828       •   Full example with slow death effect (mold) using ffplay:
32829
32830                   ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
32831
32832   allrgb, allyuv, color, colorchart, colorspectrum, haldclutsrc, nullsrc,
32833       pal75bars, pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc,
32834       testsrc2, yuvtestsrc
32835       The "allrgb" source returns frames of size 4096x4096 of all rgb colors.
32836
32837       The "allyuv" source returns frames of size 4096x4096 of all yuv colors.
32838
32839       The "color" source provides an uniformly colored input.
32840
32841       The "colorchart" source provides a colors checker chart.
32842
32843       The "colorspectrum" source provides a color spectrum input.
32844
32845       The "haldclutsrc" source provides an identity Hald CLUT. See also
32846       haldclut filter.
32847
32848       The "nullsrc" source returns unprocessed video frames. It is mainly
32849       useful to be employed in analysis / debugging tools, or as the source
32850       for filters which ignore the input data.
32851
32852       The "pal75bars" source generates a color bars pattern, based on EBU PAL
32853       recommendations with 75% color levels.
32854
32855       The "pal100bars" source generates a color bars pattern, based on EBU
32856       PAL recommendations with 100% color levels.
32857
32858       The "rgbtestsrc" source generates an RGB test pattern useful for
32859       detecting RGB vs BGR issues. You should see a red, green and blue
32860       stripe from top to bottom.
32861
32862       The "smptebars" source generates a color bars pattern, based on the
32863       SMPTE Engineering Guideline EG 1-1990.
32864
32865       The "smptehdbars" source generates a color bars pattern, based on the
32866       SMPTE RP 219-2002.
32867
32868       The "testsrc" source generates a test video pattern, showing a color
32869       pattern, a scrolling gradient and a timestamp. This is mainly intended
32870       for testing purposes.
32871
32872       The "testsrc2" source is similar to testsrc, but supports more pixel
32873       formats instead of just "rgb24". This allows using it as an input for
32874       other tests without requiring a format conversion.
32875
32876       The "yuvtestsrc" source generates an YUV test pattern. You should see a
32877       y, cb and cr stripe from top to bottom.
32878
32879       The sources accept the following parameters:
32880
32881       level
32882           Specify the level of the Hald CLUT, only available in the
32883           "haldclutsrc" source. A level of "N" generates a picture of "N*N*N"
32884           by "N*N*N" pixels to be used as identity matrix for 3D lookup
32885           tables. Each component is coded on a "1/(N*N)" scale.
32886
32887       color, c
32888           Specify the color of the source, only available in the "color"
32889           source. For the syntax of this option, check the "Color" section in
32890           the ffmpeg-utils manual.
32891
32892       size, s
32893           Specify the size of the sourced video. For the syntax of this
32894           option, check the "Video size" section in the ffmpeg-utils manual.
32895           The default value is "320x240".
32896
32897           This option is not available with the "allrgb", "allyuv", and
32898           "haldclutsrc" filters.
32899
32900       rate, r
32901           Specify the frame rate of the sourced video, as the number of
32902           frames generated per second. It has to be a string in the format
32903           frame_rate_num/frame_rate_den, an integer number, a floating point
32904           number or a valid video frame rate abbreviation. The default value
32905           is "25".
32906
32907       duration, d
32908           Set the duration of the sourced video. See the Time duration
32909           section in the ffmpeg-utils(1) manual for the accepted syntax.
32910
32911           If not specified, or the expressed duration is negative, the video
32912           is supposed to be generated forever.
32913
32914           Since the frame rate is used as time base, all frames including the
32915           last one will have their full duration. If the specified duration
32916           is not a multiple of the frame duration, it will be rounded up.
32917
32918       sar Set the sample aspect ratio of the sourced video.
32919
32920       alpha
32921           Specify the alpha (opacity) of the background, only available in
32922           the "testsrc2" source. The value must be between 0 (fully
32923           transparent) and 255 (fully opaque, the default).
32924
32925       decimals, n
32926           Set the number of decimals to show in the timestamp, only available
32927           in the "testsrc" source.
32928
32929           The displayed timestamp value will correspond to the original
32930           timestamp value multiplied by the power of 10 of the specified
32931           value. Default value is 0.
32932
32933       type
32934           Set the type of the color spectrum, only available in the
32935           "colorspectrum" source. Can be one of the following:
32936
32937           black
32938           white
32939           all
32940       patch_size
32941           Set patch size of single color patch, only available in the
32942           "colorchart" source. Default is "64x64".
32943
32944       preset
32945           Set colorchecker colors preset, only available in the "colorchart"
32946           source.
32947
32948           Available values are:
32949
32950           reference
32951           skintones
32952
32953           Default value is "reference".
32954
32955       Examples
32956
32957       •   Generate a video with a duration of 5.3 seconds, with size 176x144
32958           and a frame rate of 10 frames per second:
32959
32960                   testsrc=duration=5.3:size=qcif:rate=10
32961
32962       •   The following graph description will generate a red source with an
32963           opacity of 0.2, with size "qcif" and a frame rate of 10 frames per
32964           second:
32965
32966                   color=c=red@0.2:s=qcif:r=10
32967
32968       •   If the input content is to be ignored, "nullsrc" can be used. The
32969           following command generates noise in the luminance plane by
32970           employing the "geq" filter:
32971
32972                   nullsrc=s=256x256, geq=random(1)*255:128:128
32973
32974       Commands
32975
32976       The "color" source supports the following commands:
32977
32978       c, color
32979           Set the color of the created image. Accepts the same syntax of the
32980           corresponding color option.
32981
32982   openclsrc
32983       Generate video using an OpenCL program.
32984
32985       source
32986           OpenCL program source file.
32987
32988       kernel
32989           Kernel name in program.
32990
32991       size, s
32992           Size of frames to generate.  This must be set.
32993
32994       format
32995           Pixel format to use for the generated frames.  This must be set.
32996
32997       rate, r
32998           Number of frames generated every second.  Default value is '25'.
32999
33000       For details of how the program loading works, see the program_opencl
33001       filter.
33002
33003       Example programs:
33004
33005       •   Generate a colour ramp by setting pixel values from the position of
33006           the pixel in the output image.  (Note that this will work with all
33007           pixel formats, but the generated output will not be the same.)
33008
33009                   __kernel void ramp(__write_only image2d_t dst,
33010                                      unsigned int index)
33011                   {
33012                       int2 loc = (int2)(get_global_id(0), get_global_id(1));
33013
33014                       float4 val;
33015                       val.xy = val.zw = convert_float2(loc) / convert_float2(get_image_dim(dst));
33016
33017                       write_imagef(dst, loc, val);
33018                   }
33019
33020       •   Generate a Sierpinski carpet pattern, panning by a single pixel
33021           each frame.
33022
33023                   __kernel void sierpinski_carpet(__write_only image2d_t dst,
33024                                                   unsigned int index)
33025                   {
33026                       int2 loc = (int2)(get_global_id(0), get_global_id(1));
33027
33028                       float4 value = 0.0f;
33029                       int x = loc.x + index;
33030                       int y = loc.y + index;
33031                       while (x > 0 || y > 0) {
33032                           if (x % 3 == 1 && y % 3 == 1) {
33033                               value = 1.0f;
33034                               break;
33035                           }
33036                           x /= 3;
33037                           y /= 3;
33038                       }
33039
33040                       write_imagef(dst, loc, value);
33041                   }
33042
33043   sierpinski
33044       Generate a Sierpinski carpet/triangle fractal, and randomly pan around.
33045
33046       This source accepts the following options:
33047
33048       size, s
33049           Set frame size. For the syntax of this option, check the "Video
33050           size" section in the ffmpeg-utils manual. Default value is
33051           "640x480".
33052
33053       rate, r
33054           Set frame rate, expressed as number of frames per second. Default
33055           value is "25".
33056
33057       seed
33058           Set seed which is used for random panning.
33059
33060       jump
33061           Set max jump for single pan destination. Allowed range is from 1 to
33062           10000.
33063
33064       type
33065           Set fractal type, can be default "carpet" or "triangle".
33066

VIDEO SINKS

33068       Below is a description of the currently available video sinks.
33069
33070   buffersink
33071       Buffer video frames, and make them available to the end of the filter
33072       graph.
33073
33074       This sink is mainly intended for programmatic use, in particular
33075       through the interface defined in libavfilter/buffersink.h or the
33076       options system.
33077
33078       It accepts a pointer to an AVBufferSinkContext structure, which defines
33079       the incoming buffers' formats, to be passed as the opaque parameter to
33080       "avfilter_init_filter" for initialization.
33081
33082   nullsink
33083       Null video sink: do absolutely nothing with the input video. It is
33084       mainly useful as a template and for use in analysis / debugging tools.
33085

MULTIMEDIA FILTERS

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

MULTIMEDIA SOURCES

35617       Below is a description of the currently available multimedia sources.
35618
35619   amovie
35620       This is the same as movie source, except it selects an audio stream by
35621       default.
35622
35623   avsynctest
35624       Generate an Audio/Video Sync Test.
35625
35626       Generated stream periodically shows flash video frame and emits beep in
35627       audio.  Useful to inspect A/V sync issues.
35628
35629       It accepts the following options:
35630
35631       size, s
35632           Set output video size. Default value is "hd720".
35633
35634       framerate, fr
35635           Set output video frame rate. Default value is 30.
35636
35637       samplerate, sr
35638           Set output audio sample rate. Default value is 44100.
35639
35640       amplitude, a
35641           Set output audio beep amplitude. Default value is 0.7.
35642
35643       period, p
35644           Set output audio beep period in seconds. Default value is 3.
35645
35646       delay, dl
35647           Set output video flash delay in number of frames. Default value is
35648           0.
35649
35650       cycle, c
35651           Enable cycling of video delays, by default is disabled.
35652
35653       duration, d
35654           Set stream output duration. By default duration is unlimited.
35655
35656       fg, bg, ag
35657           Set foreground/background/additional color.
35658
35659   movie
35660       Read audio and/or video stream(s) from a movie container.
35661
35662       It accepts the following parameters:
35663
35664       filename
35665           The name of the resource to read (not necessarily a file; it can
35666           also be a device or a stream accessed through some protocol).
35667
35668       format_name, f
35669           Specifies the format assumed for the movie to read, and can be
35670           either the name of a container or an input device. If not
35671           specified, the format is guessed from movie_name or by probing.
35672
35673       seek_point, sp
35674           Specifies the seek point in seconds. The frames will be output
35675           starting from this seek point. The parameter is evaluated with
35676           "av_strtod", so the numerical value may be suffixed by an IS
35677           postfix. The default value is "0".
35678
35679       streams, s
35680           Specifies the streams to read. Several streams can be specified,
35681           separated by "+". The source will then have as many outputs, in the
35682           same order. The syntax is explained in the "Stream specifiers"
35683           section in the ffmpeg manual. Two special names, "dv" and "da"
35684           specify respectively the default (best suited) video and audio
35685           stream. Default is "dv", or "da" if the filter is called as
35686           "amovie".
35687
35688       stream_index, si
35689           Specifies the index of the video stream to read. If the value is
35690           -1, the most suitable video stream will be automatically selected.
35691           The default value is "-1". Deprecated. If the filter is called
35692           "amovie", it will select audio instead of video.
35693
35694       loop
35695           Specifies how many times to read the stream in sequence.  If the
35696           value is 0, the stream will be looped infinitely.  Default value is
35697           "1".
35698
35699           Note that when the movie is looped the source timestamps are not
35700           changed, so it will generate non monotonically increasing
35701           timestamps.
35702
35703       discontinuity
35704           Specifies the time difference between frames above which the point
35705           is considered a timestamp discontinuity which is removed by
35706           adjusting the later timestamps.
35707
35708       dec_threads
35709           Specifies the number of threads for decoding
35710
35711       format_opts
35712           Specify format options for the opened file. Format options can be
35713           specified as a list of key=value pairs separated by ':'. The
35714           following example shows how to add protocol_whitelist and
35715           protocol_blacklist options:
35716
35717                   ffplay -f lavfi
35718                   "movie=filename='1.sdp':format_opts='protocol_whitelist=file,rtp,udp\:protocol_blacklist=http'"
35719
35720       It allows overlaying a second video on top of the main input of a
35721       filtergraph, as shown in this graph:
35722
35723               input -----------> deltapts0 --> overlay --> output
35724                                                   ^
35725                                                   |
35726               movie --> scale--> deltapts1 -------+
35727
35728       Examples
35729
35730       •   Skip 3.2 seconds from the start of the AVI file in.avi, and overlay
35731           it on top of the input labelled "in":
35732
35733                   movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over];
35734                   [in] setpts=PTS-STARTPTS [main];
35735                   [main][over] overlay=16:16 [out]
35736
35737       •   Read from a video4linux2 device, and overlay it on top of the input
35738           labelled "in":
35739
35740                   movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over];
35741                   [in] setpts=PTS-STARTPTS [main];
35742                   [main][over] overlay=16:16 [out]
35743
35744       •   Read the first video stream and the audio stream with id 0x81 from
35745           dvd.vob; the video is connected to the pad named "video" and the
35746           audio is connected to the pad named "audio":
35747
35748                   movie=dvd.vob:s=v:0+#0x81 [video] [audio]
35749
35750       Commands
35751
35752       Both movie and amovie support the following commands:
35753
35754       seek
35755           Perform seek using "av_seek_frame".  The syntax is: seek
35756           stream_index|timestamp|flags
35757
35758           •   stream_index: If stream_index is -1, a default stream is
35759               selected, and timestamp is automatically converted from
35760               AV_TIME_BASE units to the stream specific time_base.
35761
35762           •   timestamp: Timestamp in AVStream.time_base units or, if no
35763               stream is specified, in AV_TIME_BASE units.
35764
35765           •   flags: Flags which select direction and seeking mode.
35766
35767       get_duration
35768           Get movie duration in AV_TIME_BASE units.
35769

EXTERNAL LIBRARIES

35771       FFmpeg can be hooked up with a number of external libraries to add
35772       support for more formats. None of them are used by default, their use
35773       has to be explicitly requested by passing the appropriate flags to
35774       ./configure.
35775
35776   Alliance for Open Media (AOM)
35777       FFmpeg can make use of the AOM library for AV1 decoding and encoding.
35778
35779       Go to <http://aomedia.org/> and follow the instructions for installing
35780       the library. Then pass "--enable-libaom" to configure to enable it.
35781
35782   AMD AMF/VCE
35783       FFmpeg can use the AMD Advanced Media Framework library for accelerated
35784       H.264 and HEVC(only windows) encoding on hardware with Video Coding
35785       Engine (VCE).
35786
35787       To enable support you must obtain the AMF framework header
35788       files(version 1.4.9+) from
35789       <https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git>.
35790
35791       Create an "AMF/" directory in the system include path.  Copy the
35792       contents of "AMF/amf/public/include/" into that directory.  Then
35793       configure FFmpeg with "--enable-amf".
35794
35795       Initialization of amf encoder occurs in this order: 1) trying to
35796       initialize through dx11(only windows) 2) trying to initialize through
35797       dx9(only windows) 3) trying to initialize through vulkan
35798
35799       To use h.264(AMD VCE) encoder on linux amdgru-pro version 19.20+ and
35800       amf-amdgpu-pro package(amdgru-pro contains, but does not install
35801       automatically) are required.
35802
35803       This driver can be installed using amdgpu-pro-install script in
35804       official amd driver archive.
35805
35806   AviSynth
35807       FFmpeg can read AviSynth scripts as input. To enable support, pass
35808       "--enable-avisynth" to configure after installing the headers provided
35809       by <https://github.com/AviSynth/AviSynthPlus>.  AviSynth+ can be
35810       configured to install only the headers by either passing
35811       "-DHEADERS_ONLY:bool=on" to the normal CMake-based build system, or by
35812       using the supplied "GNUmakefile".
35813
35814       For Windows, supported AviSynth variants are <http://avisynth.nl> for
35815       32-bit builds and <http://avisynth.nl/index.php/AviSynth+> for 32-bit
35816       and 64-bit builds.
35817
35818       For Linux, macOS, and BSD, the only supported AviSynth variant is
35819       <https://github.com/AviSynth/AviSynthPlus>, starting with version 3.5.
35820
35821           In 2016, AviSynth+ added support for building with GCC. However,
35822           due to the eccentricities of Windows' calling conventions, 32-bit
35823           GCC builds of AviSynth+ are not compatible with typical 32-bit
35824           builds of FFmpeg.
35825
35826           By default, FFmpeg assumes compatibility with 32-bit MSVC builds of
35827           AviSynth+ since that is the most widely-used and entrenched build
35828           configuration.  Users can override this and enable support for
35829           32-bit GCC builds of AviSynth+ by passing "-DAVSC_WIN32_GCC32" to
35830           "--extra-cflags" when configuring FFmpeg.
35831
35832           64-bit builds of FFmpeg are not affected, and can use either MSVC
35833           or GCC builds of AviSynth+ without any special flags.
35834
35835           AviSynth(+) is loaded dynamically.  Distributors can build FFmpeg
35836           with "--enable-avisynth", and the binaries will work regardless of
35837           the end user having AviSynth installed.  If/when an end user would
35838           like to use AviSynth scripts, then they can install AviSynth(+) and
35839           FFmpeg will be able to find and use it to open scripts.
35840
35841   Chromaprint
35842       FFmpeg can make use of the Chromaprint library for generating audio
35843       fingerprints.  Pass "--enable-chromaprint" to configure to enable it.
35844       See <https://acoustid.org/chromaprint>.
35845
35846   codec2
35847       FFmpeg can make use of the codec2 library for codec2 decoding and
35848       encoding.  There is currently no native decoder, so libcodec2 must be
35849       used for decoding.
35850
35851       Go to <http://freedv.org/>, download "Codec 2 source archive".  Build
35852       and install using CMake. Debian users can install the libcodec2-dev
35853       package instead.  Once libcodec2 is installed you can pass
35854       "--enable-libcodec2" to configure to enable it.
35855
35856       The easiest way to use codec2 is with .c2 files, since they contain the
35857       mode information required for decoding.  To encode such a file, use a
35858       .c2 file extension and give the libcodec2 encoder the -mode option:
35859       "ffmpeg -i input.wav -mode 700C output.c2".  Playback is as simple as
35860       "ffplay output.c2".  For a list of supported modes, run "ffmpeg -h
35861       encoder=libcodec2".  Raw codec2 files are also supported.  To make
35862       sense of them the mode in use needs to be specified as a format option:
35863       "ffmpeg -f codec2raw -mode 1300 -i input.raw output.wav".
35864
35865   dav1d
35866       FFmpeg can make use of the dav1d library for AV1 video decoding.
35867
35868       Go to <https://code.videolan.org/videolan/dav1d> and follow the
35869       instructions for installing the library. Then pass "--enable-libdav1d"
35870       to configure to enable it.
35871
35872   davs2
35873       FFmpeg can make use of the davs2 library for AVS2-P2/IEEE1857.4 video
35874       decoding.
35875
35876       Go to <https://github.com/pkuvcl/davs2> and follow the instructions for
35877       installing the library. Then pass "--enable-libdavs2" to configure to
35878       enable it.
35879
35880           libdavs2 is under the GNU Public License Version 2 or later (see
35881           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
35882           details), you must upgrade FFmpeg's license to GPL in order to use
35883           it.
35884
35885   uavs3d
35886       FFmpeg can make use of the uavs3d library for AVS3-P2/IEEE1857.10 video
35887       decoding.
35888
35889       Go to <https://github.com/uavs3/uavs3d> and follow the instructions for
35890       installing the library. Then pass "--enable-libuavs3d" to configure to
35891       enable it.
35892
35893   Game Music Emu
35894       FFmpeg can make use of the Game Music Emu library to read audio from
35895       supported video game music file formats. Pass "--enable-libgme" to
35896       configure to enable it. See
35897       <https://bitbucket.org/mpyne/game-music-emu/overview>.
35898
35899   Intel QuickSync Video
35900       FFmpeg can use Intel QuickSync Video (QSV) for accelerated decoding and
35901       encoding of multiple codecs. To use QSV, FFmpeg must be linked against
35902       the "libmfx" dispatcher, which loads the actual decoding libraries.
35903
35904       The dispatcher is open source and can be downloaded from
35905       <https://github.com/lu-zero/mfx_dispatch.git>. FFmpeg needs to be
35906       configured with the "--enable-libmfx" option and "pkg-config" needs to
35907       be able to locate the dispatcher's ".pc" files.
35908
35909   Kvazaar
35910       FFmpeg can make use of the Kvazaar library for HEVC encoding.
35911
35912       Go to <https://github.com/ultravideo/kvazaar> and follow the
35913       instructions for installing the library. Then pass
35914       "--enable-libkvazaar" to configure to enable it.
35915
35916   LAME
35917       FFmpeg can make use of the LAME library for MP3 encoding.
35918
35919       Go to <http://lame.sourceforge.net/> and follow the instructions for
35920       installing the library.  Then pass "--enable-libmp3lame" to configure
35921       to enable it.
35922
35923   libilbc
35924       iLBC is a narrowband speech codec that has been made freely available
35925       by Google as part of the WebRTC project. libilbc is a packaging
35926       friendly copy of the iLBC codec. FFmpeg can make use of the libilbc
35927       library for iLBC decoding and encoding.
35928
35929       Go to <https://github.com/TimothyGu/libilbc> and follow the
35930       instructions for installing the library. Then pass "--enable-libilbc"
35931       to configure to enable it.
35932
35933   libjxl
35934       JPEG XL is an image format intended to fully replace legacy JPEG for an
35935       extended period of life. See <https://jpegxl.info/> for more
35936       information, and see <https://github.com/libjxl/libjxl> for the library
35937       source. You can pass "--enable-libjxl" to configure in order enable the
35938       libjxl wrapper.
35939
35940   libvpx
35941       FFmpeg can make use of the libvpx library for VP8/VP9 decoding and
35942       encoding.
35943
35944       Go to <http://www.webmproject.org/> and follow the instructions for
35945       installing the library. Then pass "--enable-libvpx" to configure to
35946       enable it.
35947
35948   ModPlug
35949       FFmpeg can make use of this library, originating in Modplug-XMMS, to
35950       read from MOD-like music files.  See
35951       <https://github.com/Konstanty/libmodplug>. Pass "--enable-libmodplug"
35952       to configure to enable it.
35953
35954   OpenCORE, VisualOn, and Fraunhofer libraries
35955       Spun off Google Android sources, OpenCore, VisualOn and Fraunhofer
35956       libraries provide encoders for a number of audio codecs.
35957
35958           OpenCORE and VisualOn libraries are under the Apache License 2.0
35959           (see <http://www.apache.org/licenses/LICENSE-2.0> for details),
35960           which is incompatible to the LGPL version 2.1 and GPL version 2.
35961           You have to upgrade FFmpeg's license to LGPL version 3 (or if you
35962           have enabled GPL components, GPL version 3) by passing
35963           "--enable-version3" to configure in order to use it.
35964
35965           The license of the Fraunhofer AAC library is incompatible with the
35966           GPL.  Therefore, for GPL builds, you have to pass
35967           "--enable-nonfree" to configure in order to use it. To the best of
35968           our knowledge, it is compatible with the LGPL.
35969
35970       OpenCORE AMR
35971
35972       FFmpeg can make use of the OpenCORE libraries for AMR-NB
35973       decoding/encoding and AMR-WB decoding.
35974
35975       Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
35976       instructions for installing the libraries.  Then pass
35977       "--enable-libopencore-amrnb" and/or "--enable-libopencore-amrwb" to
35978       configure to enable them.
35979
35980       VisualOn AMR-WB encoder library
35981
35982       FFmpeg can make use of the VisualOn AMR-WBenc library for AMR-WB
35983       encoding.
35984
35985       Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
35986       instructions for installing the library.  Then pass
35987       "--enable-libvo-amrwbenc" to configure to enable it.
35988
35989       Fraunhofer AAC library
35990
35991       FFmpeg can make use of the Fraunhofer AAC library for AAC decoding &
35992       encoding.
35993
35994       Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
35995       instructions for installing the library.  Then pass
35996       "--enable-libfdk-aac" to configure to enable it.
35997
35998   OpenH264
35999       FFmpeg can make use of the OpenH264 library for H.264 decoding and
36000       encoding.
36001
36002       Go to <http://www.openh264.org/> and follow the instructions for
36003       installing the library. Then pass "--enable-libopenh264" to configure
36004       to enable it.
36005
36006       For decoding, this library is much more limited than the built-in
36007       decoder in libavcodec; currently, this library lacks support for
36008       decoding B-frames and some other main/high profile features. (It
36009       currently only supports constrained baseline profile and CABAC.) Using
36010       it is mostly useful for testing and for taking advantage of Cisco's
36011       patent portfolio license
36012       (<http://www.openh264.org/BINARY_LICENSE.txt>).
36013
36014   OpenJPEG
36015       FFmpeg can use the OpenJPEG libraries for decoding/encoding J2K videos.
36016       Go to <http://www.openjpeg.org/> to get the libraries and follow the
36017       installation instructions.  To enable using OpenJPEG in FFmpeg, pass
36018       "--enable-libopenjpeg" to ./configure.
36019
36020   rav1e
36021       FFmpeg can make use of rav1e (Rust AV1 Encoder) via its C bindings to
36022       encode videos.  Go to <https://github.com/xiph/rav1e/> and follow the
36023       instructions to build the C library. To enable using rav1e in FFmpeg,
36024       pass "--enable-librav1e" to ./configure.
36025
36026   SVT-AV1
36027       FFmpeg can make use of the Scalable Video Technology for AV1 library
36028       for AV1 encoding.
36029
36030       Go to <https://gitlab.com/AOMediaCodec/SVT-AV1/> and follow the
36031       instructions for installing the library. Then pass "--enable-libsvtav1"
36032       to configure to enable it.
36033
36034   TwoLAME
36035       FFmpeg can make use of the TwoLAME library for MP2 encoding.
36036
36037       Go to <http://www.twolame.org/> and follow the instructions for
36038       installing the library.  Then pass "--enable-libtwolame" to configure
36039       to enable it.
36040
36041   VapourSynth
36042       FFmpeg can read VapourSynth scripts as input. To enable support, pass
36043       "--enable-vapoursynth" to configure. Vapoursynth is detected via
36044       "pkg-config". Versions 42 or greater supported.  See
36045       <http://www.vapoursynth.com/>.
36046
36047       Due to security concerns, Vapoursynth scripts will not be autodetected
36048       so the input format has to be forced. For ff* CLI tools, add "-f
36049       vapoursynth" before the input "-i yourscript.vpy".
36050
36051   x264
36052       FFmpeg can make use of the x264 library for H.264 encoding.
36053
36054       Go to <http://www.videolan.org/developers/x264.html> and follow the
36055       instructions for installing the library. Then pass "--enable-libx264"
36056       to configure to enable it.
36057
36058           x264 is under the GNU Public License Version 2 or later (see
36059           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
36060           details), you must upgrade FFmpeg's license to GPL in order to use
36061           it.
36062
36063   x265
36064       FFmpeg can make use of the x265 library for HEVC encoding.
36065
36066       Go to <http://x265.org/developers.html> and follow the instructions for
36067       installing the library. Then pass "--enable-libx265" to configure to
36068       enable it.
36069
36070           x265 is under the GNU Public License Version 2 or later (see
36071           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
36072           details), you must upgrade FFmpeg's license to GPL in order to use
36073           it.
36074
36075   xavs
36076       FFmpeg can make use of the xavs library for AVS encoding.
36077
36078       Go to <http://xavs.sf.net/> and follow the instructions for installing
36079       the library. Then pass "--enable-libxavs" to configure to enable it.
36080
36081   xavs2
36082       FFmpeg can make use of the xavs2 library for AVS2-P2/IEEE1857.4 video
36083       encoding.
36084
36085       Go to <https://github.com/pkuvcl/xavs2> and follow the instructions for
36086       installing the library. Then pass "--enable-libxavs2" to configure to
36087       enable it.
36088
36089           libxavs2 is under the GNU Public License Version 2 or later (see
36090           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
36091           details), you must upgrade FFmpeg's license to GPL in order to use
36092           it.
36093
36094   ZVBI
36095       ZVBI is a VBI decoding library which can be used by FFmpeg to decode
36096       DVB teletext pages and DVB teletext subtitles.
36097
36098       Go to <http://sourceforge.net/projects/zapping/> and follow the
36099       instructions for installing the library. Then pass "--enable-libzvbi"
36100       to configure to enable it.
36101

SUPPORTED FILE FORMATS

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

SEE ALSO

37464       ffplay(1), ffmpeg(1), ffprobe(1), ffmpeg-utils(1), ffmpeg-scaler(1),
37465       ffmpeg-resampler(1), ffmpeg-codecs(1), ffmpeg-bitstream-filters(1),
37466       ffmpeg-formats(1), ffmpeg-devices(1), ffmpeg-protocols(1),
37467       ffmpeg-filters(1)
37468

AUTHORS

37470       The FFmpeg developers.
37471
37472       For details about the authorship, see the Git history of the project
37473       (git://source.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
37474       the FFmpeg source directory, or browsing the online repository at
37475       <http://source.ffmpeg.org>.
37476
37477       Maintainers for the specific components are listed in the file
37478       MAINTAINERS in the source code tree.
37479
37480
37481
37482                                                                 FFPLAY-ALL(1)
Impressum