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

NAME

6       ffmpeg - ffmpeg video converter
7

SYNOPSIS

9       ffmpeg [global_options] {[input_file_options] -i input_url} ...
10       {[output_file_options] output_url} ...
11

DESCRIPTION

13       ffmpeg is a very fast video and audio converter that can also grab from
14       a live audio/video source. It can also convert between arbitrary sample
15       rates and resize video on the fly with a high quality polyphase filter.
16
17       ffmpeg reads from an arbitrary number of input "files" (which can be
18       regular files, pipes, network streams, grabbing devices, etc.),
19       specified by the "-i" option, and writes to an arbitrary number of
20       output "files", which are specified by a plain output url. Anything
21       found on the command line which cannot be interpreted as an option is
22       considered to be an output url.
23
24       Each input or output url can, in principle, contain any number of
25       streams of different types (video/audio/subtitle/attachment/data). The
26       allowed number and/or types of streams may be limited by the container
27       format. Selecting which streams from which inputs will go into which
28       output is either done automatically or with the "-map" option (see the
29       Stream selection chapter).
30
31       To refer to input files in options, you must use their indices
32       (0-based). E.g.  the first input file is 0, the second is 1, etc.
33       Similarly, streams within a file are referred to by their indices. E.g.
34       "2:3" refers to the fourth stream in the third input file. Also see the
35       Stream specifiers chapter.
36
37       As a general rule, options are applied to the next specified file.
38       Therefore, order is important, and you can have the same option on the
39       command line multiple times. Each occurrence is then applied to the
40       next input or output file.  Exceptions from this rule are the global
41       options (e.g. verbosity level), which should be specified first.
42
43       Do not mix input and output files -- first specify all input files,
44       then all output files. Also do not mix options which belong to
45       different files. All options apply ONLY to the next input or output
46       file and are reset between files.
47
48       •   To set the video bitrate of the output file to 64 kbit/s:
49
50                   ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi
51
52       •   To force the frame rate of the output file to 24 fps:
53
54                   ffmpeg -i input.avi -r 24 output.avi
55
56       •   To force the frame rate of the input file (valid for raw formats
57           only) to 1 fps and the frame rate of the output file to 24 fps:
58
59                   ffmpeg -r 1 -i input.m2v -r 24 output.avi
60
61       The format option may be needed for raw input files.
62

DETAILED DESCRIPTION

64       The transcoding process in ffmpeg for each output can be described by
65       the following diagram:
66
67                _______              ______________
68               |       |            |              |
69               | input |  demuxer   | encoded data |   decoder
70               | file  | ---------> | packets      | -----+
71               |_______|            |______________|      |
72                                                          v
73                                                      _________
74                                                     |         |
75                                                     | decoded |
76                                                     | frames  |
77                                                     |_________|
78                ________             ______________       |
79               |        |           |              |      |
80               | output | <-------- | encoded data | <----+
81               | file   |   muxer   | packets      |   encoder
82               |________|           |______________|
83
84       ffmpeg calls the libavformat library (containing demuxers) to read
85       input files and get packets containing encoded data from them. When
86       there are multiple input files, ffmpeg tries to keep them synchronized
87       by tracking lowest timestamp on any active input stream.
88
89       Encoded packets are then passed to the decoder (unless streamcopy is
90       selected for the stream, see further for a description). The decoder
91       produces uncompressed frames (raw video/PCM audio/...) which can be
92       processed further by filtering (see next section). After filtering, the
93       frames are passed to the encoder, which encodes them and outputs
94       encoded packets. Finally those are passed to the muxer, which writes
95       the encoded packets to the output file.
96
97   Filtering
98       Before encoding, ffmpeg can process raw audio and video frames using
99       filters from the libavfilter library. Several chained filters form a
100       filter graph. ffmpeg distinguishes between two types of filtergraphs:
101       simple and complex.
102
103       Simple filtergraphs
104
105       Simple filtergraphs are those that have exactly one input and output,
106       both of the same type. In the above diagram they can be represented by
107       simply inserting an additional step between decoding and encoding:
108
109                _________                        ______________
110               |         |                      |              |
111               | decoded |                      | encoded data |
112               | frames  |\                   _ | packets      |
113               |_________| \                  /||______________|
114                            \   __________   /
115                 simple     _\||          | /  encoder
116                 filtergraph   | filtered |/
117                               | frames   |
118                               |__________|
119
120       Simple filtergraphs are configured with the per-stream -filter option
121       (with -vf and -af aliases for video and audio respectively).  A simple
122       filtergraph for video can look for example like this:
123
124                _______        _____________        _______        ________
125               |       |      |             |      |       |      |        |
126               | input | ---> | deinterlace | ---> | scale | ---> | output |
127               |_______|      |_____________|      |_______|      |________|
128
129       Note that some filters change frame properties but not frame contents.
130       E.g. the "fps" filter in the example above changes number of frames,
131       but does not touch the frame contents. Another example is the "setpts"
132       filter, which only sets timestamps and otherwise passes the frames
133       unchanged.
134
135       Complex filtergraphs
136
137       Complex filtergraphs are those which cannot be described as simply a
138       linear processing chain applied to one stream. This is the case, for
139       example, when the graph has more than one input and/or output, or when
140       output stream type is different from input. They can be represented
141       with the following diagram:
142
143                _________
144               |         |
145               | input 0 |\                    __________
146               |_________| \                  |          |
147                            \   _________    /| output 0 |
148                             \ |         |  / |__________|
149                _________     \| complex | /
150               |         |     |         |/
151               | input 1 |---->| filter  |\
152               |_________|     |         | \   __________
153                              /| graph   |  \ |          |
154                             / |         |   \| output 1 |
155                _________   /  |_________|    |__________|
156               |         | /
157               | input 2 |/
158               |_________|
159
160       Complex filtergraphs are configured with the -filter_complex option.
161       Note that this option is global, since a complex filtergraph, by its
162       nature, cannot be unambiguously associated with a single stream or
163       file.
164
165       The -lavfi option is equivalent to -filter_complex.
166
167       A trivial example of a complex filtergraph is the "overlay" filter,
168       which has two video inputs and one video output, containing one video
169       overlaid on top of the other. Its audio counterpart is the "amix"
170       filter.
171
172   Stream copy
173       Stream copy is a mode selected by supplying the "copy" parameter to the
174       -codec option. It makes ffmpeg omit the decoding and encoding step for
175       the specified stream, so it does only demuxing and muxing. It is useful
176       for changing the container format or modifying container-level
177       metadata. The diagram above will, in this case, simplify to this:
178
179                _______              ______________            ________
180               |       |            |              |          |        |
181               | input |  demuxer   | encoded data |  muxer   | output |
182               | file  | ---------> | packets      | -------> | file   |
183               |_______|            |______________|          |________|
184
185       Since there is no decoding or encoding, it is very fast and there is no
186       quality loss. However, it might not work in some cases because of many
187       factors. Applying filters is obviously also impossible, since filters
188       work on uncompressed data.
189

STREAM SELECTION

191       ffmpeg provides the "-map" option for manual control of stream
192       selection in each output file. Users can skip "-map" and let ffmpeg
193       perform automatic stream selection as described below. The "-vn / -an /
194       -sn / -dn" options can be used to skip inclusion of video, audio,
195       subtitle and data streams respectively, whether manually mapped or
196       automatically selected, except for those streams which are outputs of
197       complex filtergraphs.
198
199   Description
200       The sub-sections that follow describe the various rules that are
201       involved in stream selection.  The examples that follow next show how
202       these rules are applied in practice.
203
204       While every effort is made to accurately reflect the behavior of the
205       program, FFmpeg is under continuous development and the code may have
206       changed since the time of this writing.
207
208       Automatic stream selection
209
210       In the absence of any map options for a particular output file, ffmpeg
211       inspects the output format to check which type of streams can be
212       included in it, viz. video, audio and/or subtitles. For each acceptable
213       stream type, ffmpeg will pick one stream, when available, from among
214       all the inputs.
215
216       It will select that stream based upon the following criteria:
217
218       •   for video, it is the stream with the highest resolution,
219
220       •   for audio, it is the stream with the most channels,
221
222       •   for subtitles, it is the first subtitle stream found but there's a
223           caveat.  The output format's default subtitle encoder can be either
224           text-based or image-based, and only a subtitle stream of the same
225           type will be chosen.
226
227       In the case where several streams of the same type rate equally, the
228       stream with the lowest index is chosen.
229
230       Data or attachment streams are not automatically selected and can only
231       be included using "-map".
232
233       Manual stream selection
234
235       When "-map" is used, only user-mapped streams are included in that
236       output file, with one possible exception for filtergraph outputs
237       described below.
238
239       Complex filtergraphs
240
241       If there are any complex filtergraph output streams with unlabeled
242       pads, they will be added to the first output file. This will lead to a
243       fatal error if the stream type is not supported by the output format.
244       In the absence of the map option, the inclusion of these streams leads
245       to the automatic stream selection of their types being skipped. If map
246       options are present, these filtergraph streams are included in addition
247       to the mapped streams.
248
249       Complex filtergraph output streams with labeled pads must be mapped
250       once and exactly once.
251
252       Stream handling
253
254       Stream handling is independent of stream selection, with an exception
255       for subtitles described below. Stream handling is set via the "-codec"
256       option addressed to streams within a specific output file. In
257       particular, codec options are applied by ffmpeg after the stream
258       selection process and thus do not influence the latter. If no "-codec"
259       option is specified for a stream type, ffmpeg will select the default
260       encoder registered by the output file muxer.
261
262       An exception exists for subtitles. If a subtitle encoder is specified
263       for an output file, the first subtitle stream found of any type, text
264       or image, will be included. ffmpeg does not validate if the specified
265       encoder can convert the selected stream or if the converted stream is
266       acceptable within the output format. This applies generally as well:
267       when the user sets an encoder manually, the stream selection process
268       cannot check if the encoded stream can be muxed into the output file.
269       If it cannot, ffmpeg will abort and all output files will fail to be
270       processed.
271
272   Examples
273       The following examples illustrate the behavior, quirks and limitations
274       of ffmpeg's stream selection methods.
275
276       They assume the following three input files.
277
278               input file 'A.avi'
279                     stream 0: video 640x360
280                     stream 1: audio 2 channels
281
282               input file 'B.mp4'
283                     stream 0: video 1920x1080
284                     stream 1: audio 2 channels
285                     stream 2: subtitles (text)
286                     stream 3: audio 5.1 channels
287                     stream 4: subtitles (text)
288
289               input file 'C.mkv'
290                     stream 0: video 1280x720
291                     stream 1: audio 2 channels
292                     stream 2: subtitles (image)
293
294       Example: automatic stream selection
295
296               ffmpeg -i A.avi -i B.mp4 out1.mkv out2.wav -map 1:a -c:a copy out3.mov
297
298       There are three output files specified, and for the first two, no
299       "-map" options are set, so ffmpeg will select streams for these two
300       files automatically.
301
302       out1.mkv is a Matroska container file and accepts video, audio and
303       subtitle streams, so ffmpeg will try to select one of each type.For
304       video, it will select "stream 0" from B.mp4, which has the highest
305       resolution among all the input video streams.For audio, it will select
306       "stream 3" from B.mp4, since it has the greatest number of channels.For
307       subtitles, it will select "stream 2" from B.mp4, which is the first
308       subtitle stream from among A.avi and B.mp4.
309
310       out2.wav accepts only audio streams, so only "stream 3" from B.mp4 is
311       selected.
312
313       For out3.mov, since a "-map" option is set, no automatic stream
314       selection will occur. The "-map 1:a" option will select all audio
315       streams from the second input B.mp4. No other streams will be included
316       in this output file.
317
318       For the first two outputs, all included streams will be transcoded. The
319       encoders chosen will be the default ones registered by each output
320       format, which may not match the codec of the selected input streams.
321
322       For the third output, codec option for audio streams has been set to
323       "copy", so no decoding-filtering-encoding operations will occur, or can
324       occur.  Packets of selected streams shall be conveyed from the input
325       file and muxed within the output file.
326
327       Example: automatic subtitles selection
328
329               ffmpeg -i C.mkv out1.mkv -c:s dvdsub -an out2.mkv
330
331       Although out1.mkv is a Matroska container file which accepts subtitle
332       streams, only a video and audio stream shall be selected. The subtitle
333       stream of C.mkv is image-based and the default subtitle encoder of the
334       Matroska muxer is text-based, so a transcode operation for the
335       subtitles is expected to fail and hence the stream isn't selected.
336       However, in out2.mkv, a subtitle encoder is specified in the command
337       and so, the subtitle stream is selected, in addition to the video
338       stream. The presence of "-an" disables audio stream selection for
339       out2.mkv.
340
341       Example: unlabeled filtergraph outputs
342
343               ffmpeg -i A.avi -i C.mkv -i B.mp4 -filter_complex "overlay" out1.mp4 out2.srt
344
345       A filtergraph is setup here using the "-filter_complex" option and
346       consists of a single video filter. The "overlay" filter requires
347       exactly two video inputs, but none are specified, so the first two
348       available video streams are used, those of A.avi and C.mkv. The output
349       pad of the filter has no label and so is sent to the first output file
350       out1.mp4. Due to this, automatic selection of the video stream is
351       skipped, which would have selected the stream in B.mp4. The audio
352       stream with most channels viz. "stream 3" in B.mp4, is chosen
353       automatically. No subtitle stream is chosen however, since the MP4
354       format has no default subtitle encoder registered, and the user hasn't
355       specified a subtitle encoder.
356
357       The 2nd output file, out2.srt, only accepts text-based subtitle
358       streams. So, even though the first subtitle stream available belongs to
359       C.mkv, it is image-based and hence skipped.  The selected stream,
360       "stream 2" in B.mp4, is the first text-based subtitle stream.
361
362       Example: labeled filtergraph outputs
363
364               ffmpeg -i A.avi -i B.mp4 -i C.mkv -filter_complex "[1:v]hue=s=0[outv];overlay;aresample" \
365                      -map '[outv]' -an        out1.mp4 \
366                                               out2.mkv \
367                      -map '[outv]' -map 1:a:0 out3.mkv
368
369       The above command will fail, as the output pad labelled "[outv]" has
370       been mapped twice.  None of the output files shall be processed.
371
372               ffmpeg -i A.avi -i B.mp4 -i C.mkv -filter_complex "[1:v]hue=s=0[outv];overlay;aresample" \
373                      -an        out1.mp4 \
374                                 out2.mkv \
375                      -map 1:a:0 out3.mkv
376
377       This command above will also fail as the hue filter output has a label,
378       "[outv]", and hasn't been mapped anywhere.
379
380       The command should be modified as follows,
381
382               ffmpeg -i A.avi -i B.mp4 -i C.mkv -filter_complex "[1:v]hue=s=0,split=2[outv1][outv2];overlay;aresample" \
383                       -map '[outv1]' -an        out1.mp4 \
384                                                 out2.mkv \
385                       -map '[outv2]' -map 1:a:0 out3.mkv
386
387       The video stream from B.mp4 is sent to the hue filter, whose output is
388       cloned once using the split filter, and both outputs labelled. Then a
389       copy each is mapped to the first and third output files.
390
391       The overlay filter, requiring two video inputs, uses the first two
392       unused video streams. Those are the streams from A.avi and C.mkv. The
393       overlay output isn't labelled, so it is sent to the first output file
394       out1.mp4, regardless of the presence of the "-map" option.
395
396       The aresample filter is sent the first unused audio stream, that of
397       A.avi. Since this filter output is also unlabelled, it too is mapped to
398       the first output file. The presence of "-an" only suppresses automatic
399       or manual stream selection of audio streams, not outputs sent from
400       filtergraphs. Both these mapped streams shall be ordered before the
401       mapped stream in out1.mp4.
402
403       The video, audio and subtitle streams mapped to "out2.mkv" are entirely
404       determined by automatic stream selection.
405
406       out3.mkv consists of the cloned video output from the hue filter and
407       the first audio stream from B.mp4.
408

OPTIONS

410       All the numerical options, if not specified otherwise, accept a string
411       representing a number as input, which may be followed by one of the SI
412       unit prefixes, for example: 'K', 'M', or 'G'.
413
414       If 'i' is appended to the SI unit prefix, the complete prefix will be
415       interpreted as a unit prefix for binary multiples, which are based on
416       powers of 1024 instead of powers of 1000. Appending 'B' to the SI unit
417       prefix multiplies the value by 8. This allows using, for example: 'KB',
418       'MiB', 'G' and 'B' as number suffixes.
419
420       Options which do not take arguments are boolean options, and set the
421       corresponding value to true. They can be set to false by prefixing the
422       option name with "no". For example using "-nofoo" will set the boolean
423       option with name "foo" to false.
424
425   Stream specifiers
426       Some options are applied per-stream, e.g. bitrate or codec. Stream
427       specifiers are used to precisely specify which stream(s) a given option
428       belongs to.
429
430       A stream specifier is a string generally appended to the option name
431       and separated from it by a colon. E.g. "-codec:a:1 ac3" contains the
432       "a:1" stream specifier, which matches the second audio stream.
433       Therefore, it would select the ac3 codec for the second audio stream.
434
435       A stream specifier can match several streams, so that the option is
436       applied to all of them. E.g. the stream specifier in "-b:a 128k"
437       matches all audio streams.
438
439       An empty stream specifier matches all streams. For example, "-codec
440       copy" or "-codec: copy" would copy all the streams without reencoding.
441
442       Possible forms of stream specifiers are:
443
444       stream_index
445           Matches the stream with this index. E.g. "-threads:1 4" would set
446           the thread count for the second stream to 4. If stream_index is
447           used as an additional stream specifier (see below), then it selects
448           stream number stream_index from the matching streams. Stream
449           numbering is based on the order of the streams as detected by
450           libavformat except when a program ID is also specified. In this
451           case it is based on the ordering of the streams in the program.
452
453       stream_type[:additional_stream_specifier]
454           stream_type is one of following: 'v' or 'V' for video, 'a' for
455           audio, 's' for subtitle, 'd' for data, and 't' for attachments. 'v'
456           matches all video streams, 'V' only matches video streams which are
457           not attached pictures, video thumbnails or cover arts. If
458           additional_stream_specifier is used, then it matches streams which
459           both have this type and match the additional_stream_specifier.
460           Otherwise, it matches all streams of the specified type.
461
462       p:program_id[:additional_stream_specifier]
463           Matches streams which are in the program with the id program_id. If
464           additional_stream_specifier is used, then it matches streams which
465           both are part of the program and match the
466           additional_stream_specifier.
467
468       #stream_id or i:stream_id
469           Match the stream by stream id (e.g. PID in MPEG-TS container).
470
471       m:key[:value]
472           Matches streams with the metadata tag key having the specified
473           value. If value is not given, matches streams that contain the
474           given tag with any value.
475
476       u   Matches streams with usable configuration, the codec must be
477           defined and the essential information such as video dimension or
478           audio sample rate must be present.
479
480           Note that in ffmpeg, matching by metadata will only work properly
481           for input files.
482
483   Generic options
484       These options are shared amongst the ff* tools.
485
486       -L  Show license.
487
488       -h, -?, -help, --help [arg]
489           Show help. An optional parameter may be specified to print help
490           about a specific item. If no argument is specified, only basic (non
491           advanced) tool options are shown.
492
493           Possible values of arg are:
494
495           long
496               Print advanced tool options in addition to the basic tool
497               options.
498
499           full
500               Print complete list of options, including shared and private
501               options for encoders, decoders, demuxers, muxers, filters, etc.
502
503           decoder=decoder_name
504               Print detailed information about the decoder named
505               decoder_name. Use the -decoders option to get a list of all
506               decoders.
507
508           encoder=encoder_name
509               Print detailed information about the encoder named
510               encoder_name. Use the -encoders option to get a list of all
511               encoders.
512
513           demuxer=demuxer_name
514               Print detailed information about the demuxer named
515               demuxer_name. Use the -formats option to get a list of all
516               demuxers and muxers.
517
518           muxer=muxer_name
519               Print detailed information about the muxer named muxer_name.
520               Use the -formats option to get a list of all muxers and
521               demuxers.
522
523           filter=filter_name
524               Print detailed information about the filter named filter_name.
525               Use the -filters option to get a list of all filters.
526
527           bsf=bitstream_filter_name
528               Print detailed information about the bitstream filter named
529               bitstream_filter_name.  Use the -bsfs option to get a list of
530               all bitstream filters.
531
532           protocol=protocol_name
533               Print detailed information about the protocol named
534               protocol_name.  Use the -protocols option to get a list of all
535               protocols.
536
537       -version
538           Show version.
539
540       -buildconf
541           Show the build configuration, one option per line.
542
543       -formats
544           Show available formats (including devices).
545
546       -demuxers
547           Show available demuxers.
548
549       -muxers
550           Show available muxers.
551
552       -devices
553           Show available devices.
554
555       -codecs
556           Show all codecs known to libavcodec.
557
558           Note that the term 'codec' is used throughout this documentation as
559           a shortcut for what is more correctly called a media bitstream
560           format.
561
562       -decoders
563           Show available decoders.
564
565       -encoders
566           Show all available encoders.
567
568       -bsfs
569           Show available bitstream filters.
570
571       -protocols
572           Show available protocols.
573
574       -filters
575           Show available libavfilter filters.
576
577       -pix_fmts
578           Show available pixel formats.
579
580       -sample_fmts
581           Show available sample formats.
582
583       -layouts
584           Show channel names and standard channel layouts.
585
586       -dispositions
587           Show stream dispositions.
588
589       -colors
590           Show recognized color names.
591
592       -sources device[,opt1=val1[,opt2=val2]...]
593           Show autodetected sources of the input device.  Some devices may
594           provide system-dependent source names that cannot be autodetected.
595           The returned list cannot be assumed to be always complete.
596
597                   ffmpeg -sources pulse,server=192.168.0.4
598
599       -sinks device[,opt1=val1[,opt2=val2]...]
600           Show autodetected sinks of the output device.  Some devices may
601           provide system-dependent sink names that cannot be autodetected.
602           The returned list cannot be assumed to be always complete.
603
604                   ffmpeg -sinks pulse,server=192.168.0.4
605
606       -loglevel [flags+]loglevel | -v [flags+]loglevel
607           Set logging level and flags used by the library.
608
609           The optional flags prefix can consist of the following values:
610
611           repeat
612               Indicates that repeated log output should not be compressed to
613               the first line and the "Last message repeated n times" line
614               will be omitted.
615
616           level
617               Indicates that log output should add a "[level]" prefix to each
618               message line. This can be used as an alternative to log
619               coloring, e.g. when dumping the log to file.
620
621           Flags can also be used alone by adding a '+'/'-' prefix to
622           set/reset a single flag without affecting other flags or changing
623           loglevel. When setting both flags and loglevel, a '+' separator is
624           expected between the last flags value and before loglevel.
625
626           loglevel is a string or a number containing one of the following
627           values:
628
629           quiet, -8
630               Show nothing at all; be silent.
631
632           panic, 0
633               Only show fatal errors which could lead the process to crash,
634               such as an assertion failure. This is not currently used for
635               anything.
636
637           fatal, 8
638               Only show fatal errors. These are errors after which the
639               process absolutely cannot continue.
640
641           error, 16
642               Show all errors, including ones which can be recovered from.
643
644           warning, 24
645               Show all warnings and errors. Any message related to possibly
646               incorrect or unexpected events will be shown.
647
648           info, 32
649               Show informative messages during processing. This is in
650               addition to warnings and errors. This is the default value.
651
652           verbose, 40
653               Same as "info", except more verbose.
654
655           debug, 48
656               Show everything, including debugging information.
657
658           trace, 56
659
660           For example to enable repeated log output, add the "level" prefix,
661           and set loglevel to "verbose":
662
663                   ffmpeg -loglevel repeat+level+verbose -i input output
664
665           Another example that enables repeated log output without affecting
666           current state of "level" prefix flag or loglevel:
667
668                   ffmpeg [...] -loglevel +repeat
669
670           By default the program logs to stderr. If coloring is supported by
671           the terminal, colors are used to mark errors and warnings. Log
672           coloring can be disabled setting the environment variable
673           AV_LOG_FORCE_NOCOLOR, or can be forced setting the environment
674           variable AV_LOG_FORCE_COLOR.
675
676       -report
677           Dump full command line and log output to a file named
678           "program-YYYYMMDD-HHMMSS.log" in the current directory.  This file
679           can be useful for bug reports.  It also implies "-loglevel debug".
680
681           Setting the environment variable FFREPORT to any value has the same
682           effect. If the value is a ':'-separated key=value sequence, these
683           options will affect the report; option values must be escaped if
684           they contain special characters or the options delimiter ':' (see
685           the ``Quoting and escaping'' section in the ffmpeg-utils manual).
686
687           The following options are recognized:
688
689           file
690               set the file name to use for the report; %p is expanded to the
691               name of the program, %t is expanded to a timestamp, "%%" is
692               expanded to a plain "%"
693
694           level
695               set the log verbosity level using a numerical value (see
696               "-loglevel").
697
698           For example, to output a report to a file named ffreport.log using
699           a log level of 32 (alias for log level "info"):
700
701                   FFREPORT=file=ffreport.log:level=32 ffmpeg -i input output
702
703           Errors in parsing the environment variable are not fatal, and will
704           not appear in the report.
705
706       -hide_banner
707           Suppress printing banner.
708
709           All FFmpeg tools will normally show a copyright notice, build
710           options and library versions. This option can be used to suppress
711           printing this information.
712
713       -cpuflags flags (global)
714           Allows setting and clearing cpu flags. This option is intended for
715           testing. Do not use it unless you know what you're doing.
716
717                   ffmpeg -cpuflags -sse+mmx ...
718                   ffmpeg -cpuflags mmx ...
719                   ffmpeg -cpuflags 0 ...
720
721           Possible flags for this option are:
722
723           x86
724               mmx
725               mmxext
726               sse
727               sse2
728               sse2slow
729               sse3
730               sse3slow
731               ssse3
732               atom
733               sse4.1
734               sse4.2
735               avx
736               avx2
737               xop
738               fma3
739               fma4
740               3dnow
741               3dnowext
742               bmi1
743               bmi2
744               cmov
745           ARM
746               armv5te
747               armv6
748               armv6t2
749               vfp
750               vfpv3
751               neon
752               setend
753           AArch64
754               armv8
755               vfp
756               neon
757           PowerPC
758               altivec
759           Specific Processors
760               pentium2
761               pentium3
762               pentium4
763               k6
764               k62
765               athlon
766               athlonxp
767               k8
768       -cpucount count (global)
769           Override detection of CPU count. This option is intended for
770           testing. Do not use it unless you know what you're doing.
771
772                   ffmpeg -cpucount 2
773
774       -max_alloc bytes
775           Set the maximum size limit for allocating a block on the heap by
776           ffmpeg's family of malloc functions. Exercise extreme caution when
777           using this option. Don't use if you do not understand the full
778           consequence of doing so.  Default is INT_MAX.
779
780   AVOptions
781       These options are provided directly by the libavformat, libavdevice and
782       libavcodec libraries. To see the list of available AVOptions, use the
783       -help option. They are separated into two categories:
784
785       generic
786           These options can be set for any container, codec or device.
787           Generic options are listed under AVFormatContext options for
788           containers/devices and under AVCodecContext options for codecs.
789
790       private
791           These options are specific to the given container, device or codec.
792           Private options are listed under their corresponding
793           containers/devices/codecs.
794
795       For example to write an ID3v2.3 header instead of a default ID3v2.4 to
796       an MP3 file, use the id3v2_version private option of the MP3 muxer:
797
798               ffmpeg -i input.flac -id3v2_version 3 out.mp3
799
800       All codec AVOptions are per-stream, and thus a stream specifier should
801       be attached to them:
802
803               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
804
805       In the above example, a multichannel audio stream is mapped twice for
806       output.  The first instance is encoded with codec ac3 and bitrate 640k.
807       The second instance is downmixed to 2 channels and encoded with codec
808       aac. A bitrate of 128k is specified for it using absolute index of the
809       output stream.
810
811       Note: the -nooption syntax cannot be used for boolean AVOptions, use
812       -option 0/-option 1.
813
814       Note: the old undocumented way of specifying per-stream AVOptions by
815       prepending v/a/s to the options name is now obsolete and will be
816       removed soon.
817
818   Main options
819       -f fmt (input/output)
820           Force input or output file format. The format is normally auto
821           detected for input files and guessed from the file extension for
822           output files, so this option is not needed in most cases.
823
824       -i url (input)
825           input file url
826
827       -y (global)
828           Overwrite output files without asking.
829
830       -n (global)
831           Do not overwrite output files, and exit immediately if a specified
832           output file already exists.
833
834       -stream_loop number (input)
835           Set number of times input stream shall be looped. Loop 0 means no
836           loop, loop -1 means infinite loop.
837
838       -recast_media (global)
839           Allow forcing a decoder of a different media type than the one
840           detected or designated by the demuxer. Useful for decoding media
841           data muxed as data streams.
842
843       -c[:stream_specifier] codec (input/output,per-stream)
844       -codec[:stream_specifier] codec (input/output,per-stream)
845           Select an encoder (when used before an output file) or a decoder
846           (when used before an input file) for one or more streams. codec is
847           the name of a decoder/encoder or a special value "copy" (output
848           only) to indicate that the stream is not to be re-encoded.
849
850           For example
851
852                   ffmpeg -i INPUT -map 0 -c:v libx264 -c:a copy OUTPUT
853
854           encodes all video streams with libx264 and copies all audio
855           streams.
856
857           For each stream, the last matching "c" option is applied, so
858
859                   ffmpeg -i INPUT -map 0 -c copy -c:v:1 libx264 -c:a:137 libvorbis OUTPUT
860
861           will copy all the streams except the second video, which will be
862           encoded with libx264, and the 138th audio, which will be encoded
863           with libvorbis.
864
865       -t duration (input/output)
866           When used as an input option (before "-i"), limit the duration of
867           data read from the input file.
868
869           When used as an output option (before an output url), stop writing
870           the output after its duration reaches duration.
871
872           duration must be a time duration specification, see the Time
873           duration section in the ffmpeg-utils(1) manual.
874
875           -to and -t are mutually exclusive and -t has priority.
876
877       -to position (input/output)
878           Stop writing the output or reading the input at position.  position
879           must be a time duration specification, see the Time duration
880           section in the ffmpeg-utils(1) manual.
881
882           -to and -t are mutually exclusive and -t has priority.
883
884       -fs limit_size (output)
885           Set the file size limit, expressed in bytes. No further chunk of
886           bytes is written after the limit is exceeded. The size of the
887           output file is slightly more than the requested file size.
888
889       -ss position (input/output)
890           When used as an input option (before "-i"), seeks in this input
891           file to position. Note that in most formats it is not possible to
892           seek exactly, so ffmpeg will seek to the closest seek point before
893           position.  When transcoding and -accurate_seek is enabled (the
894           default), this extra segment between the seek point and position
895           will be decoded and discarded. When doing stream copy or when
896           -noaccurate_seek is used, it will be preserved.
897
898           When used as an output option (before an output url), decodes but
899           discards input until the timestamps reach position.
900
901           position must be a time duration specification, see the Time
902           duration section in the ffmpeg-utils(1) manual.
903
904       -sseof position (input)
905           Like the "-ss" option but relative to the "end of file". That is
906           negative values are earlier in the file, 0 is at EOF.
907
908       -isync input_index (input)
909           Assign an input as a sync source.
910
911           This will take the difference between the start times of the target
912           and reference inputs and offset the timestamps of the target file
913           by that difference. The source timestamps of the two inputs should
914           derive from the same clock source for expected results. If "copyts"
915           is set then "start_at_zero" must also be set. If either of the
916           inputs has no starting timestamp then no sync adjustment is made.
917
918           Acceptable values are those that refer to a valid ffmpeg input
919           index. If the sync reference is the target index itself or -1, then
920           no adjustment is made to target timestamps. A sync reference may
921           not itself be synced to any other input.
922
923           Default value is -1.
924
925       -itsoffset offset (input)
926           Set the input time offset.
927
928           offset must be a time duration specification, see the Time duration
929           section in the ffmpeg-utils(1) manual.
930
931           The offset is added to the timestamps of the input files.
932           Specifying a positive offset means that the corresponding streams
933           are delayed by the time duration specified in offset.
934
935       -itsscale scale (input,per-stream)
936           Rescale input timestamps. scale should be a floating point number.
937
938       -timestamp date (output)
939           Set the recording timestamp in the container.
940
941           date must be a date specification, see the Date section in the
942           ffmpeg-utils(1) manual.
943
944       -metadata[:metadata_specifier] key=value (output,per-metadata)
945           Set a metadata key/value pair.
946
947           An optional metadata_specifier may be given to set metadata on
948           streams, chapters or programs. See "-map_metadata" documentation
949           for details.
950
951           This option overrides metadata set with "-map_metadata". It is also
952           possible to delete metadata by using an empty value.
953
954           For example, for setting the title in the output file:
955
956                   ffmpeg -i in.avi -metadata title="my title" out.flv
957
958           To set the language of the first audio stream:
959
960                   ffmpeg -i INPUT -metadata:s:a:0 language=eng OUTPUT
961
962       -disposition[:stream_specifier] value (output,per-stream)
963           Sets the disposition for a stream.
964
965           By default, the disposition is copied from the input stream, unless
966           the output stream this option applies to is fed by a complex
967           filtergraph - in that case the disposition is unset by default.
968
969           value is a sequence of items separated by '+' or '-'. The first
970           item may also be prefixed with '+' or '-', in which case this
971           option modifies the default value. Otherwise (the first item is not
972           prefixed) this options overrides the default value. A '+' prefix
973           adds the given disposition, '-' removes it. It is also possible to
974           clear the disposition by setting it to 0.
975
976           If no "-disposition" options were specified for an output file,
977           ffmpeg will automatically set the 'default' disposition on the
978           first stream of each type, when there are multiple streams of this
979           type in the output file and no stream of that type is already
980           marked as default.
981
982           The "-dispositions" option lists the known dispositions.
983
984           For example, to make the second audio stream the default stream:
985
986                   ffmpeg -i in.mkv -c copy -disposition:a:1 default out.mkv
987
988           To make the second subtitle stream the default stream and remove
989           the default disposition from the first subtitle stream:
990
991                   ffmpeg -i in.mkv -c copy -disposition:s:0 0 -disposition:s:1 default out.mkv
992
993           To add an embedded cover/thumbnail:
994
995                   ffmpeg -i in.mp4 -i IMAGE -map 0 -map 1 -c copy -c:v:1 png -disposition:v:1 attached_pic out.mp4
996
997           Not all muxers support embedded thumbnails, and those who do, only
998           support a few formats, like JPEG or PNG.
999
1000       -program
1001       [title=title:][program_num=program_num:]st=stream[:st=stream...]
1002       (output)
1003           Creates a program with the specified title, program_num and adds
1004           the specified stream(s) to it.
1005
1006       -target type (output)
1007           Specify target file type ("vcd", "svcd", "dvd", "dv", "dv50"). type
1008           may be prefixed with "pal-", "ntsc-" or "film-" to use the
1009           corresponding standard. All the format options (bitrate, codecs,
1010           buffer sizes) are then set automatically. You can just type:
1011
1012                   ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg
1013
1014           Nevertheless you can specify additional options as long as you know
1015           they do not conflict with the standard, as in:
1016
1017                   ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg
1018
1019           The parameters set for each target are as follows.
1020
1021           VCD
1022
1023                   <pal>:
1024                   -f vcd -muxrate 1411200 -muxpreload 0.44 -packetsize 2324
1025                   -s 352x288 -r 25
1026                   -codec:v mpeg1video -g 15 -b:v 1150k -maxrate:v 1150k -minrate:v 1150k -bufsize:v 327680
1027                   -ar 44100 -ac 2
1028                   -codec:a mp2 -b:a 224k
1029
1030                   <ntsc>:
1031                   -f vcd -muxrate 1411200 -muxpreload 0.44 -packetsize 2324
1032                   -s 352x240 -r 30000/1001
1033                   -codec:v mpeg1video -g 18 -b:v 1150k -maxrate:v 1150k -minrate:v 1150k -bufsize:v 327680
1034                   -ar 44100 -ac 2
1035                   -codec:a mp2 -b:a 224k
1036
1037                   <film>:
1038                   -f vcd -muxrate 1411200 -muxpreload 0.44 -packetsize 2324
1039                   -s 352x240 -r 24000/1001
1040                   -codec:v mpeg1video -g 18 -b:v 1150k -maxrate:v 1150k -minrate:v 1150k -bufsize:v 327680
1041                   -ar 44100 -ac 2
1042                   -codec:a mp2 -b:a 224k
1043
1044           SVCD
1045
1046                   <pal>:
1047                   -f svcd -packetsize 2324
1048                   -s 480x576 -pix_fmt yuv420p -r 25
1049                   -codec:v mpeg2video -g 15 -b:v 2040k -maxrate:v 2516k -minrate:v 0 -bufsize:v 1835008 -scan_offset 1
1050                   -ar 44100
1051                   -codec:a mp2 -b:a 224k
1052
1053                   <ntsc>:
1054                   -f svcd -packetsize 2324
1055                   -s 480x480 -pix_fmt yuv420p -r 30000/1001
1056                   -codec:v mpeg2video -g 18 -b:v 2040k -maxrate:v 2516k -minrate:v 0 -bufsize:v 1835008 -scan_offset 1
1057                   -ar 44100
1058                   -codec:a mp2 -b:a 224k
1059
1060                   <film>:
1061                   -f svcd -packetsize 2324
1062                   -s 480x480 -pix_fmt yuv420p -r 24000/1001
1063                   -codec:v mpeg2video -g 18 -b:v 2040k -maxrate:v 2516k -minrate:v 0 -bufsize:v 1835008 -scan_offset 1
1064                   -ar 44100
1065                   -codec:a mp2 -b:a 224k
1066
1067           DVD
1068
1069                   <pal>:
1070                   -f dvd -muxrate 10080k -packetsize 2048
1071                   -s 720x576 -pix_fmt yuv420p -r 25
1072                   -codec:v mpeg2video -g 15 -b:v 6000k -maxrate:v 9000k -minrate:v 0 -bufsize:v 1835008
1073                   -ar 48000
1074                   -codec:a ac3 -b:a 448k
1075
1076                   <ntsc>:
1077                   -f dvd -muxrate 10080k -packetsize 2048
1078                   -s 720x480 -pix_fmt yuv420p -r 30000/1001
1079                   -codec:v mpeg2video -g 18 -b:v 6000k -maxrate:v 9000k -minrate:v 0 -bufsize:v 1835008
1080                   -ar 48000
1081                   -codec:a ac3 -b:a 448k
1082
1083                   <film>:
1084                   -f dvd -muxrate 10080k -packetsize 2048
1085                   -s 720x480 -pix_fmt yuv420p -r 24000/1001
1086                   -codec:v mpeg2video -g 18 -b:v 6000k -maxrate:v 9000k -minrate:v 0 -bufsize:v 1835008
1087                   -ar 48000
1088                   -codec:a ac3 -b:a 448k
1089
1090           DV
1091
1092                   <pal>:
1093                   -f dv
1094                   -s 720x576 -pix_fmt yuv420p -r 25
1095                   -ar 48000 -ac 2
1096
1097                   <ntsc>:
1098                   -f dv
1099                   -s 720x480 -pix_fmt yuv411p -r 30000/1001
1100                   -ar 48000 -ac 2
1101
1102                   <film>:
1103                   -f dv
1104                   -s 720x480 -pix_fmt yuv411p -r 24000/1001
1105                   -ar 48000 -ac 2
1106
1107           The "dv50" target is identical to the "dv" target except that the
1108           pixel format set is "yuv422p" for all three standards.
1109
1110           Any user-set value for a parameter above will override the target
1111           preset value. In that case, the output may not comply with the
1112           target standard.
1113
1114       -dn (input/output)
1115           As an input option, blocks all data streams of a file from being
1116           filtered or being automatically selected or mapped for any output.
1117           See "-discard" option to disable streams individually.
1118
1119           As an output option, disables data recording i.e. automatic
1120           selection or mapping of any data stream. For full manual control
1121           see the "-map" option.
1122
1123       -dframes number (output)
1124           Set the number of data frames to output. This is an obsolete alias
1125           for "-frames:d", which you should use instead.
1126
1127       -frames[:stream_specifier] framecount (output,per-stream)
1128           Stop writing to the stream after framecount frames.
1129
1130       -q[:stream_specifier] q (output,per-stream)
1131       -qscale[:stream_specifier] q (output,per-stream)
1132           Use fixed quality scale (VBR). The meaning of q/qscale is codec-
1133           dependent.  If qscale is used without a stream_specifier then it
1134           applies only to the video stream, this is to maintain compatibility
1135           with previous behavior and as specifying the same codec specific
1136           value to 2 different codecs that is audio and video generally is
1137           not what is intended when no stream_specifier is used.
1138
1139       -filter[:stream_specifier] filtergraph (output,per-stream)
1140           Create the filtergraph specified by filtergraph and use it to
1141           filter the stream.
1142
1143           filtergraph is a description of the filtergraph to apply to the
1144           stream, and must have a single input and a single output of the
1145           same type of the stream. In the filtergraph, the input is
1146           associated to the label "in", and the output to the label "out".
1147           See the ffmpeg-filters manual for more information about the
1148           filtergraph syntax.
1149
1150           See the -filter_complex option if you want to create filtergraphs
1151           with multiple inputs and/or outputs.
1152
1153       -filter_script[:stream_specifier] filename (output,per-stream)
1154           This option is similar to -filter, the only difference is that its
1155           argument is the name of the file from which a filtergraph
1156           description is to be read.
1157
1158       -reinit_filter[:stream_specifier] integer (input,per-stream)
1159           This boolean option determines if the filtergraph(s) to which this
1160           stream is fed gets reinitialized when input frame parameters change
1161           mid-stream. This option is enabled by default as most video and all
1162           audio filters cannot handle deviation in input frame properties.
1163           Upon reinitialization, existing filter state is lost, like e.g. the
1164           frame count "n" reference available in some filters. Any frames
1165           buffered at time of reinitialization are lost.  The properties
1166           where a change triggers reinitialization are, for video, frame
1167           resolution or pixel format; for audio, sample format, sample rate,
1168           channel count or channel layout.
1169
1170       -filter_threads nb_threads (global)
1171           Defines how many threads are used to process a filter pipeline.
1172           Each pipeline will produce a thread pool with this many threads
1173           available for parallel processing.  The default is the number of
1174           available CPUs.
1175
1176       -pre[:stream_specifier] preset_name (output,per-stream)
1177           Specify the preset for matching stream(s).
1178
1179       -stats (global)
1180           Print encoding progress/statistics. It is on by default, to
1181           explicitly disable it you need to specify "-nostats".
1182
1183       -stats_period time (global)
1184           Set period at which encoding progress/statistics are updated.
1185           Default is 0.5 seconds.
1186
1187       -progress url (global)
1188           Send program-friendly progress information to url.
1189
1190           Progress information is written periodically and at the end of the
1191           encoding process. It is made of "key=value" lines. key consists of
1192           only alphanumeric characters. The last key of a sequence of
1193           progress information is always "progress".
1194
1195           The update period is set using "-stats_period".
1196
1197       -stdin
1198           Enable interaction on standard input. On by default unless standard
1199           input is used as an input. To explicitly disable interaction you
1200           need to specify "-nostdin".
1201
1202           Disabling interaction on standard input is useful, for example, if
1203           ffmpeg is in the background process group. Roughly the same result
1204           can be achieved with "ffmpeg ... < /dev/null" but it requires a
1205           shell.
1206
1207       -debug_ts (global)
1208           Print timestamp information. It is off by default. This option is
1209           mostly useful for testing and debugging purposes, and the output
1210           format may change from one version to another, so it should not be
1211           employed by portable scripts.
1212
1213           See also the option "-fdebug ts".
1214
1215       -attach filename (output)
1216           Add an attachment to the output file. This is supported by a few
1217           formats like Matroska for e.g. fonts used in rendering subtitles.
1218           Attachments are implemented as a specific type of stream, so this
1219           option will add a new stream to the file. It is then possible to
1220           use per-stream options on this stream in the usual way. Attachment
1221           streams created with this option will be created after all the
1222           other streams (i.e. those created with "-map" or automatic
1223           mappings).
1224
1225           Note that for Matroska you also have to set the mimetype metadata
1226           tag:
1227
1228                   ffmpeg -i INPUT -attach DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv
1229
1230           (assuming that the attachment stream will be third in the output
1231           file).
1232
1233       -dump_attachment[:stream_specifier] filename (input,per-stream)
1234           Extract the matching attachment stream into a file named filename.
1235           If filename is empty, then the value of the "filename" metadata tag
1236           will be used.
1237
1238           E.g. to extract the first attachment to a file named 'out.ttf':
1239
1240                   ffmpeg -dump_attachment:t:0 out.ttf -i INPUT
1241
1242           To extract all attachments to files determined by the "filename"
1243           tag:
1244
1245                   ffmpeg -dump_attachment:t "" -i INPUT
1246
1247           Technical note -- attachments are implemented as codec extradata,
1248           so this option can actually be used to extract extradata from any
1249           stream, not just attachments.
1250
1251   Video Options
1252       -vframes number (output)
1253           Set the number of video frames to output. This is an obsolete alias
1254           for "-frames:v", which you should use instead.
1255
1256       -r[:stream_specifier] fps (input/output,per-stream)
1257           Set frame rate (Hz value, fraction or abbreviation).
1258
1259           As an input option, ignore any timestamps stored in the file and
1260           instead generate timestamps assuming constant frame rate fps.  This
1261           is not the same as the -framerate option used for some input
1262           formats like image2 or v4l2 (it used to be the same in older
1263           versions of FFmpeg).  If in doubt use -framerate instead of the
1264           input option -r.
1265
1266           As an output option, duplicate or drop input frames to achieve
1267           constant output frame rate fps.
1268
1269       -fpsmax[:stream_specifier] fps (output,per-stream)
1270           Set maximum frame rate (Hz value, fraction or abbreviation).
1271
1272           Clamps output frame rate when output framerate is auto-set and is
1273           higher than this value.  Useful in batch processing or when input
1274           framerate is wrongly detected as very high.  It cannot be set
1275           together with "-r". It is ignored during streamcopy.
1276
1277       -s[:stream_specifier] size (input/output,per-stream)
1278           Set frame size.
1279
1280           As an input option, this is a shortcut for the video_size private
1281           option, recognized by some demuxers for which the frame size is
1282           either not stored in the file or is configurable -- e.g. raw video
1283           or video grabbers.
1284
1285           As an output option, this inserts the "scale" video filter to the
1286           end of the corresponding filtergraph. Please use the "scale" filter
1287           directly to insert it at the beginning or some other place.
1288
1289           The format is wxh (default - same as source).
1290
1291       -aspect[:stream_specifier] aspect (output,per-stream)
1292           Set the video display aspect ratio specified by aspect.
1293
1294           aspect can be a floating point number string, or a string of the
1295           form num:den, where num and den are the numerator and denominator
1296           of the aspect ratio. For example "4:3", "16:9", "1.3333", and
1297           "1.7777" are valid argument values.
1298
1299           If used together with -vcodec copy, it will affect the aspect ratio
1300           stored at container level, but not the aspect ratio stored in
1301           encoded frames, if it exists.
1302
1303       -vn (input/output)
1304           As an input option, blocks all video streams of a file from being
1305           filtered or being automatically selected or mapped for any output.
1306           See "-discard" option to disable streams individually.
1307
1308           As an output option, disables video recording i.e. automatic
1309           selection or mapping of any video stream. For full manual control
1310           see the "-map" option.
1311
1312       -vcodec codec (output)
1313           Set the video codec. This is an alias for "-codec:v".
1314
1315       -pass[:stream_specifier] n (output,per-stream)
1316           Select the pass number (1 or 2). It is used to do two-pass video
1317           encoding. The statistics of the video are recorded in the first
1318           pass into a log file (see also the option -passlogfile), and in the
1319           second pass that log file is used to generate the video at the
1320           exact requested bitrate.  On pass 1, you may just deactivate audio
1321           and set output to null, examples for Windows and Unix:
1322
1323                   ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y NUL
1324                   ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y /dev/null
1325
1326       -passlogfile[:stream_specifier] prefix (output,per-stream)
1327           Set two-pass log file name prefix to prefix, the default file name
1328           prefix is ``ffmpeg2pass''. The complete file name will be
1329           PREFIX-N.log, where N is a number specific to the output stream
1330
1331       -vf filtergraph (output)
1332           Create the filtergraph specified by filtergraph and use it to
1333           filter the stream.
1334
1335           This is an alias for "-filter:v", see the -filter option.
1336
1337       -autorotate
1338           Automatically rotate the video according to file metadata. Enabled
1339           by default, use -noautorotate to disable it.
1340
1341       -autoscale
1342           Automatically scale the video according to the resolution of first
1343           frame.  Enabled by default, use -noautoscale to disable it. When
1344           autoscale is disabled, all output frames of filter graph might not
1345           be in the same resolution and may be inadequate for some
1346           encoder/muxer. Therefore, it is not recommended to disable it
1347           unless you really know what you are doing.  Disable autoscale at
1348           your own risk.
1349
1350   Advanced Video options
1351       -pix_fmt[:stream_specifier] format (input/output,per-stream)
1352           Set pixel format. Use "-pix_fmts" to show all the supported pixel
1353           formats.  If the selected pixel format can not be selected, ffmpeg
1354           will print a warning and select the best pixel format supported by
1355           the encoder.  If pix_fmt is prefixed by a "+", ffmpeg will exit
1356           with an error if the requested pixel format can not be selected,
1357           and automatic conversions inside filtergraphs are disabled.  If
1358           pix_fmt is a single "+", ffmpeg selects the same pixel format as
1359           the input (or graph output) and automatic conversions are disabled.
1360
1361       -sws_flags flags (input/output)
1362           Set SwScaler flags.
1363
1364       -rc_override[:stream_specifier] override (output,per-stream)
1365           Rate control override for specific intervals, formatted as
1366           "int,int,int" list separated with slashes. Two first values are the
1367           beginning and end frame numbers, last one is quantizer to use if
1368           positive, or quality factor if negative.
1369
1370       -ilme
1371           Force interlacing support in encoder (MPEG-2 and MPEG-4 only).  Use
1372           this option if your input file is interlaced and you want to keep
1373           the interlaced format for minimum losses.  The alternative is to
1374           deinterlace the input stream by use of a filter such as "yadif" or
1375           "bwdif", but deinterlacing introduces losses.
1376
1377       -psnr
1378           Calculate PSNR of compressed frames.
1379
1380       -vstats
1381           Dump video coding statistics to vstats_HHMMSS.log.
1382
1383       -vstats_file file
1384           Dump video coding statistics to file.
1385
1386       -vstats_version file
1387           Specifies which version of the vstats format to use. Default is 2.
1388
1389           version = 1 :
1390
1391           "frame= %5d q= %2.1f PSNR= %6.2f f_size= %6d s_size= %8.0fkB time=
1392           %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s"
1393
1394           version > 1:
1395
1396           "out= %2d st= %2d frame= %5d q= %2.1f PSNR= %6.2f f_size= %6d
1397           s_size= %8.0fkB time= %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s"
1398
1399       -top[:stream_specifier] n (output,per-stream)
1400           top=1/bottom=0/auto=-1 field first
1401
1402       -dc precision
1403           Intra_dc_precision.
1404
1405       -vtag fourcc/tag (output)
1406           Force video tag/fourcc. This is an alias for "-tag:v".
1407
1408       -qphist (global)
1409           Show QP histogram
1410
1411       -vbsf bitstream_filter
1412           Deprecated see -bsf
1413
1414       -force_key_frames[:stream_specifier] time[,time...] (output,per-stream)
1415       -force_key_frames[:stream_specifier] expr:expr (output,per-stream)
1416       -force_key_frames[:stream_specifier] source (output,per-stream)
1417       -force_key_frames[:stream_specifier] source_no_drop (output,per-stream)
1418           force_key_frames can take arguments of the following form:
1419
1420           time[,time...]
1421               If the argument consists of timestamps, ffmpeg will round the
1422               specified times to the nearest output timestamp as per the
1423               encoder time base and force a keyframe at the first frame
1424               having timestamp equal or greater than the computed timestamp.
1425               Note that if the encoder time base is too coarse, then the
1426               keyframes may be forced on frames with timestamps lower than
1427               the specified time.  The default encoder time base is the
1428               inverse of the output framerate but may be set otherwise via
1429               "-enc_time_base".
1430
1431               If one of the times is ""chapters"[delta]", it is expanded into
1432               the time of the beginning of all chapters in the file, shifted
1433               by delta, expressed as a time in seconds.  This option can be
1434               useful to ensure that a seek point is present at a chapter mark
1435               or any other designated place in the output file.
1436
1437               For example, to insert a key frame at 5 minutes, plus key
1438               frames 0.1 second before the beginning of every chapter:
1439
1440                       -force_key_frames 0:05:00,chapters-0.1
1441
1442           expr:expr
1443               If the argument is prefixed with "expr:", the string expr is
1444               interpreted like an expression and is evaluated for each frame.
1445               A key frame is forced in case the evaluation is non-zero.
1446
1447               The expression in expr can contain the following constants:
1448
1449               n   the number of current processed frame, starting from 0
1450
1451               n_forced
1452                   the number of forced frames
1453
1454               prev_forced_n
1455                   the number of the previous forced frame, it is "NAN" when
1456                   no keyframe was forced yet
1457
1458               prev_forced_t
1459                   the time of the previous forced frame, it is "NAN" when no
1460                   keyframe was forced yet
1461
1462               t   the time of the current processed frame
1463
1464               For example to force a key frame every 5 seconds, you can
1465               specify:
1466
1467                       -force_key_frames expr:gte(t,n_forced*5)
1468
1469               To force a key frame 5 seconds after the time of the last
1470               forced one, starting from second 13:
1471
1472                       -force_key_frames expr:if(isnan(prev_forced_t),gte(t,13),gte(t,prev_forced_t+5))
1473
1474           source
1475               If the argument is "source", ffmpeg will force a key frame if
1476               the current frame being encoded is marked as a key frame in its
1477               source.
1478
1479           source_no_drop
1480               If the argument is "source_no_drop", ffmpeg will force a key
1481               frame if the current frame being encoded is marked as a key
1482               frame in its source.  In cases where this particular source
1483               frame has to be dropped, enforce the next available frame to
1484               become a key frame instead.
1485
1486           Note that forcing too many keyframes is very harmful for the
1487           lookahead algorithms of certain encoders: using fixed-GOP options
1488           or similar would be more efficient.
1489
1490       -copyinkf[:stream_specifier] (output,per-stream)
1491           When doing stream copy, copy also non-key frames found at the
1492           beginning.
1493
1494       -init_hw_device type[=name][:device[,key=value...]]
1495           Initialise a new hardware device of type type called name, using
1496           the given device parameters.  If no name is specified it will
1497           receive a default name of the form "type%d".
1498
1499           The meaning of device and the following arguments depends on the
1500           device type:
1501
1502           cuda
1503               device is the number of the CUDA device.
1504
1505               The following options are recognized:
1506
1507               primary_ctx
1508                   If set to 1, uses the primary device context instead of
1509                   creating a new one.
1510
1511               Examples:
1512
1513               -init_hw_device cuda:1
1514                   Choose the second device on the system.
1515
1516               -init_hw_device cuda:0,primary_ctx=1
1517                   Choose the first device and use the primary device context.
1518
1519           dxva2
1520               device is the number of the Direct3D 9 display adapter.
1521
1522           d3d11va
1523               device is the number of the Direct3D 11 display adapter.
1524
1525           vaapi
1526               device is either an X11 display name or a DRM render node.  If
1527               not specified, it will attempt to open the default X11 display
1528               ($DISPLAY) and then the first DRM render node
1529               (/dev/dri/renderD128).
1530
1531           vdpau
1532               device is an X11 display name.  If not specified, it will
1533               attempt to open the default X11 display ($DISPLAY).
1534
1535           qsv device selects a value in MFX_IMPL_*. Allowed values are:
1536
1537               auto
1538               sw
1539               hw
1540               auto_any
1541               hw_any
1542               hw2
1543               hw3
1544               hw4
1545
1546               If not specified, auto_any is used.  (Note that it may be
1547               easier to achieve the desired result for QSV by creating the
1548               platform-appropriate subdevice (dxva2 or d3d11va or vaapi) and
1549               then deriving a QSV device from that.)
1550
1551               Alternatively, child_device_type helps to choose platform-
1552               appropriate subdevice type.  On Windows d3d11va is used as
1553               default subdevice type.
1554
1555               Examples:
1556
1557               -init_hw_device qsv:hw,child_device_type=d3d11va
1558                   Choose the GPU subdevice with type d3d11va and create QSV
1559                   device with MFX_IMPL_HARDWARE.
1560
1561               -init_hw_device qsv:hw,child_device_type=dxva2
1562                   Choose the GPU subdevice with type dxva2 and create QSV
1563                   device with MFX_IMPL_HARDWARE.
1564
1565           opencl
1566               device selects the platform and device as
1567               platform_index.device_index.
1568
1569               The set of devices can also be filtered using the key-value
1570               pairs to find only devices matching particular platform or
1571               device strings.
1572
1573               The strings usable as filters are:
1574
1575               platform_profile
1576               platform_version
1577               platform_name
1578               platform_vendor
1579               platform_extensions
1580               device_name
1581               device_vendor
1582               driver_version
1583               device_version
1584               device_profile
1585               device_extensions
1586               device_type
1587
1588               The indices and filters must together uniquely select a device.
1589
1590               Examples:
1591
1592               -init_hw_device opencl:0.1
1593                   Choose the second device on the first platform.
1594
1595               -init_hw_device opencl:,device_name=Foo9000
1596                   Choose the device with a name containing the string
1597                   Foo9000.
1598
1599               -init_hw_device
1600               opencl:1,device_type=gpu,device_extensions=cl_khr_fp16
1601                   Choose the GPU device on the second platform supporting the
1602                   cl_khr_fp16 extension.
1603
1604           vulkan
1605               If device is an integer, it selects the device by its index in
1606               a system-dependent list of devices.  If device is any other
1607               string, it selects the first device with a name containing that
1608               string as a substring.
1609
1610               The following options are recognized:
1611
1612               debug
1613                   If set to 1, enables the validation layer, if installed.
1614
1615               linear_images
1616                   If set to 1, images allocated by the hwcontext will be
1617                   linear and locally mappable.
1618
1619               instance_extensions
1620                   A plus separated list of additional instance extensions to
1621                   enable.
1622
1623               device_extensions
1624                   A plus separated list of additional device extensions to
1625                   enable.
1626
1627               Examples:
1628
1629               -init_hw_device vulkan:1
1630                   Choose the second device on the system.
1631
1632               -init_hw_device vulkan:RADV
1633                   Choose the first device with a name containing the string
1634                   RADV.
1635
1636               -init_hw_device
1637               vulkan:0,instance_extensions=VK_KHR_wayland_surface+VK_KHR_xcb_surface
1638                   Choose the first device and enable the Wayland and XCB
1639                   instance extensions.
1640
1641       -init_hw_device type[=name]@source
1642           Initialise a new hardware device of type type called name, deriving
1643           it from the existing device with the name source.
1644
1645       -init_hw_device list
1646           List all hardware device types supported in this build of ffmpeg.
1647
1648       -filter_hw_device name
1649           Pass the hardware device called name to all filters in any filter
1650           graph.  This can be used to set the device to upload to with the
1651           "hwupload" filter, or the device to map to with the "hwmap" filter.
1652           Other filters may also make use of this parameter when they require
1653           a hardware device.  Note that this is typically only required when
1654           the input is not already in hardware frames - when it is, filters
1655           will derive the device they require from the context of the frames
1656           they receive as input.
1657
1658           This is a global setting, so all filters will receive the same
1659           device.
1660
1661       -hwaccel[:stream_specifier] hwaccel (input,per-stream)
1662           Use hardware acceleration to decode the matching stream(s). The
1663           allowed values of hwaccel are:
1664
1665           none
1666               Do not use any hardware acceleration (the default).
1667
1668           auto
1669               Automatically select the hardware acceleration method.
1670
1671           vdpau
1672               Use VDPAU (Video Decode and Presentation API for Unix) hardware
1673               acceleration.
1674
1675           dxva2
1676               Use DXVA2 (DirectX Video Acceleration) hardware acceleration.
1677
1678           d3d11va
1679               Use D3D11VA (DirectX Video Acceleration) hardware acceleration.
1680
1681           vaapi
1682               Use VAAPI (Video Acceleration API) hardware acceleration.
1683
1684           qsv Use the Intel QuickSync Video acceleration for video
1685               transcoding.
1686
1687               Unlike most other values, this option does not enable
1688               accelerated decoding (that is used automatically whenever a qsv
1689               decoder is selected), but accelerated transcoding, without
1690               copying the frames into the system memory.
1691
1692               For it to work, both the decoder and the encoder must support
1693               QSV acceleration and no filters must be used.
1694
1695           This option has no effect if the selected hwaccel is not available
1696           or not supported by the chosen decoder.
1697
1698           Note that most acceleration methods are intended for playback and
1699           will not be faster than software decoding on modern CPUs.
1700           Additionally, ffmpeg will usually need to copy the decoded frames
1701           from the GPU memory into the system memory, resulting in further
1702           performance loss. This option is thus mainly useful for testing.
1703
1704       -hwaccel_device[:stream_specifier] hwaccel_device (input,per-stream)
1705           Select a device to use for hardware acceleration.
1706
1707           This option only makes sense when the -hwaccel option is also
1708           specified.  It can either refer to an existing device created with
1709           -init_hw_device by name, or it can create a new device as if
1710           -init_hw_device type:hwaccel_device were called immediately before.
1711
1712       -hwaccels
1713           List all hardware acceleration components enabled in this build of
1714           ffmpeg.  Actual runtime availability depends on the hardware and
1715           its suitable driver being installed.
1716
1717   Audio Options
1718       -aframes number (output)
1719           Set the number of audio frames to output. This is an obsolete alias
1720           for "-frames:a", which you should use instead.
1721
1722       -ar[:stream_specifier] freq (input/output,per-stream)
1723           Set the audio sampling frequency. For output streams it is set by
1724           default to the frequency of the corresponding input stream. For
1725           input streams this option only makes sense for audio grabbing
1726           devices and raw demuxers and is mapped to the corresponding demuxer
1727           options.
1728
1729       -aq q (output)
1730           Set the audio quality (codec-specific, VBR). This is an alias for
1731           -q:a.
1732
1733       -ac[:stream_specifier] channels (input/output,per-stream)
1734           Set the number of audio channels. For output streams it is set by
1735           default to the number of input audio channels. For input streams
1736           this option only makes sense for audio grabbing devices and raw
1737           demuxers and is mapped to the corresponding demuxer options.
1738
1739       -an (input/output)
1740           As an input option, blocks all audio streams of a file from being
1741           filtered or being automatically selected or mapped for any output.
1742           See "-discard" option to disable streams individually.
1743
1744           As an output option, disables audio recording i.e. automatic
1745           selection or mapping of any audio stream. For full manual control
1746           see the "-map" option.
1747
1748       -acodec codec (input/output)
1749           Set the audio codec. This is an alias for "-codec:a".
1750
1751       -sample_fmt[:stream_specifier] sample_fmt (output,per-stream)
1752           Set the audio sample format. Use "-sample_fmts" to get a list of
1753           supported sample formats.
1754
1755       -af filtergraph (output)
1756           Create the filtergraph specified by filtergraph and use it to
1757           filter the stream.
1758
1759           This is an alias for "-filter:a", see the -filter option.
1760
1761   Advanced Audio options
1762       -atag fourcc/tag (output)
1763           Force audio tag/fourcc. This is an alias for "-tag:a".
1764
1765       -absf bitstream_filter
1766           Deprecated, see -bsf
1767
1768       -guess_layout_max channels (input,per-stream)
1769           If some input channel layout is not known, try to guess only if it
1770           corresponds to at most the specified number of channels. For
1771           example, 2 tells to ffmpeg to recognize 1 channel as mono and 2
1772           channels as stereo but not 6 channels as 5.1. The default is to
1773           always try to guess. Use 0 to disable all guessing.
1774
1775   Subtitle options
1776       -scodec codec (input/output)
1777           Set the subtitle codec. This is an alias for "-codec:s".
1778
1779       -sn (input/output)
1780           As an input option, blocks all subtitle streams of a file from
1781           being filtered or being automatically selected or mapped for any
1782           output. See "-discard" option to disable streams individually.
1783
1784           As an output option, disables subtitle recording i.e. automatic
1785           selection or mapping of any subtitle stream. For full manual
1786           control see the "-map" option.
1787
1788       -sbsf bitstream_filter
1789           Deprecated, see -bsf
1790
1791   Advanced Subtitle options
1792       -fix_sub_duration
1793           Fix subtitles durations. For each subtitle, wait for the next
1794           packet in the same stream and adjust the duration of the first to
1795           avoid overlap. This is necessary with some subtitles codecs,
1796           especially DVB subtitles, because the duration in the original
1797           packet is only a rough estimate and the end is actually marked by
1798           an empty subtitle frame. Failing to use this option when necessary
1799           can result in exaggerated durations or muxing failures due to non-
1800           monotonic timestamps.
1801
1802           Note that this option will delay the output of all data until the
1803           next subtitle packet is decoded: it may increase memory consumption
1804           and latency a lot.
1805
1806       -canvas_size size
1807           Set the size of the canvas used to render subtitles.
1808
1809   Advanced options
1810       -map
1811       [-]input_file_id[:stream_specifier][?][,sync_file_id[:stream_specifier]]
1812       | [linklabel] (output)
1813           Designate one or more input streams as a source for the output
1814           file. Each input stream is identified by the input file index
1815           input_file_id and the input stream index input_stream_id within the
1816           input file. Both indices start at 0. If specified,
1817           sync_file_id:stream_specifier sets which input stream is used as a
1818           presentation sync reference.
1819
1820           The first "-map" option on the command line specifies the source
1821           for output stream 0, the second "-map" option specifies the source
1822           for output stream 1, etc.
1823
1824           A "-" character before the stream identifier creates a "negative"
1825           mapping.  It disables matching streams from already created
1826           mappings.
1827
1828           A trailing "?" after the stream index will allow the map to be
1829           optional: if the map matches no streams the map will be ignored
1830           instead of failing. Note the map will still fail if an invalid
1831           input file index is used; such as if the map refers to a non-
1832           existent input.
1833
1834           An alternative [linklabel] form will map outputs from complex
1835           filter graphs (see the -filter_complex option) to the output file.
1836           linklabel must correspond to a defined output link label in the
1837           graph.
1838
1839           For example, to map ALL streams from the first input file to output
1840
1841                   ffmpeg -i INPUT -map 0 output
1842
1843           For example, if you have two audio streams in the first input file,
1844           these streams are identified by "0:0" and "0:1". You can use "-map"
1845           to select which streams to place in an output file. For example:
1846
1847                   ffmpeg -i INPUT -map 0:1 out.wav
1848
1849           will map the input stream in INPUT identified by "0:1" to the
1850           (single) output stream in out.wav.
1851
1852           For example, to select the stream with index 2 from input file
1853           a.mov (specified by the identifier "0:2"), and stream with index 6
1854           from input b.mov (specified by the identifier "1:6"), and copy them
1855           to the output file out.mov:
1856
1857                   ffmpeg -i a.mov -i b.mov -c copy -map 0:2 -map 1:6 out.mov
1858
1859           To select all video and the third audio stream from an input file:
1860
1861                   ffmpeg -i INPUT -map 0:v -map 0:a:2 OUTPUT
1862
1863           To map all the streams except the second audio, use negative
1864           mappings
1865
1866                   ffmpeg -i INPUT -map 0 -map -0:a:1 OUTPUT
1867
1868           To map the video and audio streams from the first input, and using
1869           the trailing "?", ignore the audio mapping if no audio streams
1870           exist in the first input:
1871
1872                   ffmpeg -i INPUT -map 0:v -map 0:a? OUTPUT
1873
1874           To pick the English audio stream:
1875
1876                   ffmpeg -i INPUT -map 0:m:language:eng OUTPUT
1877
1878           Note that using this option disables the default mappings for this
1879           output file.
1880
1881       -ignore_unknown
1882           Ignore input streams with unknown type instead of failing if
1883           copying such streams is attempted.
1884
1885       -copy_unknown
1886           Allow input streams with unknown type to be copied instead of
1887           failing if copying such streams is attempted.
1888
1889       -map_channel
1890       [input_file_id.stream_specifier.channel_id|-1][?][:output_file_id.stream_specifier]
1891           Map an audio channel from a given input to an output. If
1892           output_file_id.stream_specifier is not set, the audio channel will
1893           be mapped on all the audio streams.
1894
1895           Using "-1" instead of input_file_id.stream_specifier.channel_id
1896           will map a muted channel.
1897
1898           A trailing "?" will allow the map_channel to be optional: if the
1899           map_channel matches no channel the map_channel will be ignored
1900           instead of failing.
1901
1902           For example, assuming INPUT is a stereo audio file, you can switch
1903           the two audio channels with the following command:
1904
1905                   ffmpeg -i INPUT -map_channel 0.0.1 -map_channel 0.0.0 OUTPUT
1906
1907           If you want to mute the first channel and keep the second:
1908
1909                   ffmpeg -i INPUT -map_channel -1 -map_channel 0.0.1 OUTPUT
1910
1911           The order of the "-map_channel" option specifies the order of the
1912           channels in the output stream. The output channel layout is guessed
1913           from the number of channels mapped (mono if one "-map_channel",
1914           stereo if two, etc.). Using "-ac" in combination of "-map_channel"
1915           makes the channel gain levels to be updated if input and output
1916           channel layouts don't match (for instance two "-map_channel"
1917           options and "-ac 6").
1918
1919           You can also extract each channel of an input to specific outputs;
1920           the following command extracts two channels of the INPUT audio
1921           stream (file 0, stream 0) to the respective OUTPUT_CH0 and
1922           OUTPUT_CH1 outputs:
1923
1924                   ffmpeg -i INPUT -map_channel 0.0.0 OUTPUT_CH0 -map_channel 0.0.1 OUTPUT_CH1
1925
1926           The following example splits the channels of a stereo input into
1927           two separate streams, which are put into the same output file:
1928
1929                   ffmpeg -i stereo.wav -map 0:0 -map 0:0 -map_channel 0.0.0:0.0 -map_channel 0.0.1:0.1 -y out.ogg
1930
1931           Note that currently each output stream can only contain channels
1932           from a single input stream; you can't for example use
1933           "-map_channel" to pick multiple input audio channels contained in
1934           different streams (from the same or different files) and merge them
1935           into a single output stream. It is therefore not currently
1936           possible, for example, to turn two separate mono streams into a
1937           single stereo stream. However splitting a stereo stream into two
1938           single channel mono streams is possible.
1939
1940           If you need this feature, a possible workaround is to use the
1941           amerge filter. For example, if you need to merge a media (here
1942           input.mkv) with 2 mono audio streams into one single stereo channel
1943           audio stream (and keep the video stream), you can use the following
1944           command:
1945
1946                   ffmpeg -i input.mkv -filter_complex "[0:1] [0:2] amerge" -c:a pcm_s16le -c:v copy output.mkv
1947
1948           To map the first two audio channels from the first input, and using
1949           the trailing "?", ignore the audio channel mapping if the first
1950           input is mono instead of stereo:
1951
1952                   ffmpeg -i INPUT -map_channel 0.0.0 -map_channel 0.0.1? OUTPUT
1953
1954       -map_metadata[:metadata_spec_out] infile[:metadata_spec_in]
1955       (output,per-metadata)
1956           Set metadata information of the next output file from infile. Note
1957           that those are file indices (zero-based), not filenames.  Optional
1958           metadata_spec_in/out parameters specify, which metadata to copy.  A
1959           metadata specifier can have the following forms:
1960
1961           g   global metadata, i.e. metadata that applies to the whole file
1962
1963           s[:stream_spec]
1964               per-stream metadata. stream_spec is a stream specifier as
1965               described in the Stream specifiers chapter. In an input
1966               metadata specifier, the first matching stream is copied from.
1967               In an output metadata specifier, all matching streams are
1968               copied to.
1969
1970           c:chapter_index
1971               per-chapter metadata. chapter_index is the zero-based chapter
1972               index.
1973
1974           p:program_index
1975               per-program metadata. program_index is the zero-based program
1976               index.
1977
1978           If metadata specifier is omitted, it defaults to global.
1979
1980           By default, global metadata is copied from the first input file,
1981           per-stream and per-chapter metadata is copied along with
1982           streams/chapters. These default mappings are disabled by creating
1983           any mapping of the relevant type. A negative file index can be used
1984           to create a dummy mapping that just disables automatic copying.
1985
1986           For example to copy metadata from the first stream of the input
1987           file to global metadata of the output file:
1988
1989                   ffmpeg -i in.ogg -map_metadata 0:s:0 out.mp3
1990
1991           To do the reverse, i.e. copy global metadata to all audio streams:
1992
1993                   ffmpeg -i in.mkv -map_metadata:s:a 0:g out.mkv
1994
1995           Note that simple 0 would work as well in this example, since global
1996           metadata is assumed by default.
1997
1998       -map_chapters input_file_index (output)
1999           Copy chapters from input file with index input_file_index to the
2000           next output file. If no chapter mapping is specified, then chapters
2001           are copied from the first input file with at least one chapter. Use
2002           a negative file index to disable any chapter copying.
2003
2004       -benchmark (global)
2005           Show benchmarking information at the end of an encode.  Shows real,
2006           system and user time used and maximum memory consumption.  Maximum
2007           memory consumption is not supported on all systems, it will usually
2008           display as 0 if not supported.
2009
2010       -benchmark_all (global)
2011           Show benchmarking information during the encode.  Shows real,
2012           system and user time used in various steps (audio/video
2013           encode/decode).
2014
2015       -timelimit duration (global)
2016           Exit after ffmpeg has been running for duration seconds in CPU user
2017           time.
2018
2019       -dump (global)
2020           Dump each input packet to stderr.
2021
2022       -hex (global)
2023           When dumping packets, also dump the payload.
2024
2025       -readrate speed (input)
2026           Limit input read speed.
2027
2028           Its value is a floating-point positive number which represents the
2029           maximum duration of media, in seconds, that should be ingested in
2030           one second of wallclock time.  Default value is zero and represents
2031           no imposed limitation on speed of ingestion.  Value 1 represents
2032           real-time speed and is equivalent to "-re".
2033
2034           Mainly used to simulate a capture device or live input stream (e.g.
2035           when reading from a file).  Should not be used with a low value
2036           when input is an actual capture device or live stream as it may
2037           cause packet loss.
2038
2039           It is useful for when flow speed of output packets is important,
2040           such as live streaming.
2041
2042       -re (input)
2043           Read input at native frame rate. This is equivalent to setting
2044           "-readrate 1".
2045
2046       -vsync parameter (global)
2047       -fps_mode[:stream_specifier] parameter (output,per-stream)
2048           Set video sync method / framerate mode. vsync is applied to all
2049           output video streams but can be overridden for a stream by setting
2050           fps_mode. vsync is deprecated and will be removed in the future.
2051
2052           For compatibility reasons some of the values for vsync can be
2053           specified as numbers (shown in parentheses in the following table).
2054
2055           passthrough (0)
2056               Each frame is passed with its timestamp from the demuxer to the
2057               muxer.
2058
2059           cfr (1)
2060               Frames will be duplicated and dropped to achieve exactly the
2061               requested constant frame rate.
2062
2063           vfr (2)
2064               Frames are passed through with their timestamp or dropped so as
2065               to prevent 2 frames from having the same timestamp.
2066
2067           drop
2068               As passthrough but destroys all timestamps, making the muxer
2069               generate fresh timestamps based on frame-rate.
2070
2071           auto (-1)
2072               Chooses between cfr and vfr depending on muxer capabilities.
2073               This is the default method.
2074
2075           Note that the timestamps may be further modified by the muxer,
2076           after this.  For example, in the case that the format option
2077           avoid_negative_ts is enabled.
2078
2079           With -map you can select from which stream the timestamps should be
2080           taken. You can leave either video or audio unchanged and sync the
2081           remaining stream(s) to the unchanged one.
2082
2083       -frame_drop_threshold parameter
2084           Frame drop threshold, which specifies how much behind video frames
2085           can be before they are dropped. In frame rate units, so 1.0 is one
2086           frame.  The default is -1.1. One possible usecase is to avoid
2087           framedrops in case of noisy timestamps or to increase frame drop
2088           precision in case of exact timestamps.
2089
2090       -async samples_per_second
2091           Audio sync method. "Stretches/squeezes" the audio stream to match
2092           the timestamps, the parameter is the maximum samples per second by
2093           which the audio is changed.  -async 1 is a special case where only
2094           the start of the audio stream is corrected without any later
2095           correction.
2096
2097           Note that the timestamps may be further modified by the muxer,
2098           after this.  For example, in the case that the format option
2099           avoid_negative_ts is enabled.
2100
2101           This option has been deprecated. Use the "aresample" audio filter
2102           instead.
2103
2104       -adrift_threshold time
2105           Set the minimum difference between timestamps and audio data (in
2106           seconds) to trigger adding/dropping samples to make it match the
2107           timestamps. This option effectively is a threshold to select
2108           between hard (add/drop) and soft (squeeze/stretch) compensation.
2109           "-async" must be set to a positive value.
2110
2111       -apad parameters (output,per-stream)
2112           Pad the output audio stream(s). This is the same as applying "-af
2113           apad".  Argument is a string of filter parameters composed the same
2114           as with the "apad" filter.  "-shortest" must be set for this output
2115           for the option to take effect.
2116
2117       -copyts
2118           Do not process input timestamps, but keep their values without
2119           trying to sanitize them. In particular, do not remove the initial
2120           start time offset value.
2121
2122           Note that, depending on the vsync option or on specific muxer
2123           processing (e.g. in case the format option avoid_negative_ts is
2124           enabled) the output timestamps may mismatch with the input
2125           timestamps even when this option is selected.
2126
2127       -start_at_zero
2128           When used with copyts, shift input timestamps so they start at
2129           zero.
2130
2131           This means that using e.g. "-ss 50" will make output timestamps
2132           start at 50 seconds, regardless of what timestamp the input file
2133           started at.
2134
2135       -copytb mode
2136           Specify how to set the encoder timebase when stream copying.  mode
2137           is an integer numeric value, and can assume one of the following
2138           values:
2139
2140           1   Use the demuxer timebase.
2141
2142               The time base is copied to the output encoder from the
2143               corresponding input demuxer. This is sometimes required to
2144               avoid non monotonically increasing timestamps when copying
2145               video streams with variable frame rate.
2146
2147           0   Use the decoder timebase.
2148
2149               The time base is copied to the output encoder from the
2150               corresponding input decoder.
2151
2152           -1  Try to make the choice automatically, in order to generate a
2153               sane output.
2154
2155           Default value is -1.
2156
2157       -enc_time_base[:stream_specifier] timebase (output,per-stream)
2158           Set the encoder timebase. timebase is a floating point number, and
2159           can assume one of the following values:
2160
2161           0   Assign a default value according to the media type.
2162
2163               For video - use 1/framerate, for audio - use 1/samplerate.
2164
2165           -1  Use the input stream timebase when possible.
2166
2167               If an input stream is not available, the default timebase will
2168               be used.
2169
2170           >0  Use the provided number as the timebase.
2171
2172               This field can be provided as a ratio of two integers (e.g.
2173               1:24, 1:48000) or as a floating point number (e.g. 0.04166,
2174               2.0833e-5)
2175
2176           Default value is 0.
2177
2178       -bitexact (input/output)
2179           Enable bitexact mode for (de)muxer and (de/en)coder
2180
2181       -shortest (output)
2182           Finish encoding when the shortest output stream ends.
2183
2184       -dts_delta_threshold
2185           Timestamp discontinuity delta threshold.
2186
2187       -dts_error_threshold seconds
2188           Timestamp error delta threshold. This threshold use to discard
2189           crazy/damaged timestamps and the default is 30 hours which is
2190           arbitrarily picked and quite conservative.
2191
2192       -muxdelay seconds (output)
2193           Set the maximum demux-decode delay.
2194
2195       -muxpreload seconds (output)
2196           Set the initial demux-decode delay.
2197
2198       -streamid output-stream-index:new-value (output)
2199           Assign a new stream-id value to an output stream. This option
2200           should be specified prior to the output filename to which it
2201           applies.  For the situation where multiple output files exist, a
2202           streamid may be reassigned to a different value.
2203
2204           For example, to set the stream 0 PID to 33 and the stream 1 PID to
2205           36 for an output mpegts file:
2206
2207                   ffmpeg -i inurl -streamid 0:33 -streamid 1:36 out.ts
2208
2209       -bsf[:stream_specifier] bitstream_filters (output,per-stream)
2210           Set bitstream filters for matching streams. bitstream_filters is a
2211           comma-separated list of bitstream filters. Use the "-bsfs" option
2212           to get the list of bitstream filters.
2213
2214                   ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
2215
2216
2217                   ffmpeg -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt
2218
2219       -tag[:stream_specifier] codec_tag (input/output,per-stream)
2220           Force a tag/fourcc for matching streams.
2221
2222       -timecode hh:mm:ssSEPff
2223           Specify Timecode for writing. SEP is ':' for non drop timecode and
2224           ';' (or '.') for drop.
2225
2226                   ffmpeg -i input.mpg -timecode 01:02:03.04 -r 30000/1001 -s ntsc output.mpg
2227
2228       -filter_complex filtergraph (global)
2229           Define a complex filtergraph, i.e. one with arbitrary number of
2230           inputs and/or outputs. For simple graphs -- those with one input
2231           and one output of the same type -- see the -filter options.
2232           filtergraph is a description of the filtergraph, as described in
2233           the ``Filtergraph syntax'' section of the ffmpeg-filters manual.
2234
2235           Input link labels must refer to input streams using the
2236           "[file_index:stream_specifier]" syntax (i.e. the same as -map
2237           uses). If stream_specifier matches multiple streams, the first one
2238           will be used. An unlabeled input will be connected to the first
2239           unused input stream of the matching type.
2240
2241           Output link labels are referred to with -map. Unlabeled outputs are
2242           added to the first output file.
2243
2244           Note that with this option it is possible to use only lavfi sources
2245           without normal input files.
2246
2247           For example, to overlay an image over video
2248
2249                   ffmpeg -i video.mkv -i image.png -filter_complex '[0:v][1:v]overlay[out]' -map
2250                   '[out]' out.mkv
2251
2252           Here "[0:v]" refers to the first video stream in the first input
2253           file, which is linked to the first (main) input of the overlay
2254           filter. Similarly the first video stream in the second input is
2255           linked to the second (overlay) input of overlay.
2256
2257           Assuming there is only one video stream in each input file, we can
2258           omit input labels, so the above is equivalent to
2259
2260                   ffmpeg -i video.mkv -i image.png -filter_complex 'overlay[out]' -map
2261                   '[out]' out.mkv
2262
2263           Furthermore we can omit the output label and the single output from
2264           the filter graph will be added to the output file automatically, so
2265           we can simply write
2266
2267                   ffmpeg -i video.mkv -i image.png -filter_complex 'overlay' out.mkv
2268
2269           As a special exception, you can use a bitmap subtitle stream as
2270           input: it will be converted into a video with the same size as the
2271           largest video in the file, or 720x576 if no video is present. Note
2272           that this is an experimental and temporary solution. It will be
2273           removed once libavfilter has proper support for subtitles.
2274
2275           For example, to hardcode subtitles on top of a DVB-T recording
2276           stored in MPEG-TS format, delaying the subtitles by 1 second:
2277
2278                   ffmpeg -i input.ts -filter_complex \
2279                     '[#0x2ef] setpts=PTS+1/TB [sub] ; [#0x2d0] [sub] overlay' \
2280                     -sn -map '#0x2dc' output.mkv
2281
2282           (0x2d0, 0x2dc and 0x2ef are the MPEG-TS PIDs of respectively the
2283           video, audio and subtitles streams; 0:0, 0:3 and 0:7 would have
2284           worked too)
2285
2286           To generate 5 seconds of pure red video using lavfi "color" source:
2287
2288                   ffmpeg -filter_complex 'color=c=red' -t 5 out.mkv
2289
2290       -filter_complex_threads nb_threads (global)
2291           Defines how many threads are used to process a filter_complex
2292           graph.  Similar to filter_threads but used for "-filter_complex"
2293           graphs only.  The default is the number of available CPUs.
2294
2295       -lavfi filtergraph (global)
2296           Define a complex filtergraph, i.e. one with arbitrary number of
2297           inputs and/or outputs. Equivalent to -filter_complex.
2298
2299       -filter_complex_script filename (global)
2300           This option is similar to -filter_complex, the only difference is
2301           that its argument is the name of the file from which a complex
2302           filtergraph description is to be read.
2303
2304       -accurate_seek (input)
2305           This option enables or disables accurate seeking in input files
2306           with the -ss option. It is enabled by default, so seeking is
2307           accurate when transcoding. Use -noaccurate_seek to disable it,
2308           which may be useful e.g. when copying some streams and transcoding
2309           the others.
2310
2311       -seek_timestamp (input)
2312           This option enables or disables seeking by timestamp in input files
2313           with the -ss option. It is disabled by default. If enabled, the
2314           argument to the -ss option is considered an actual timestamp, and
2315           is not offset by the start time of the file. This matters only for
2316           files which do not start from timestamp 0, such as transport
2317           streams.
2318
2319       -thread_queue_size size (input)
2320           This option sets the maximum number of queued packets when reading
2321           from the file or device. With low latency / high rate live streams,
2322           packets may be discarded if they are not read in a timely manner;
2323           setting this value can force ffmpeg to use a separate input thread
2324           and read packets as soon as they arrive. By default ffmpeg only
2325           does this if multiple inputs are specified.
2326
2327       -sdp_file file (global)
2328           Print sdp information for an output stream to file.  This allows
2329           dumping sdp information when at least one output isn't an rtp
2330           stream. (Requires at least one of the output formats to be rtp).
2331
2332       -discard (input)
2333           Allows discarding specific streams or frames from streams.  Any
2334           input stream can be fully discarded, using value "all" whereas
2335           selective discarding of frames from a stream occurs at the demuxer
2336           and is not supported by all demuxers.
2337
2338           none
2339               Discard no frame.
2340
2341           default
2342               Default, which discards no frames.
2343
2344           noref
2345               Discard all non-reference frames.
2346
2347           bidir
2348               Discard all bidirectional frames.
2349
2350           nokey
2351               Discard all frames excepts keyframes.
2352
2353           all Discard all frames.
2354
2355       -abort_on flags (global)
2356           Stop and abort on various conditions. The following flags are
2357           available:
2358
2359           empty_output
2360               No packets were passed to the muxer, the output is empty.
2361
2362           empty_output_stream
2363               No packets were passed to the muxer in some of the output
2364               streams.
2365
2366       -max_error_rate (global)
2367           Set fraction of decoding frame failures across all inputs which
2368           when crossed ffmpeg will return exit code 69. Crossing this
2369           threshold does not terminate processing. Range is a floating-point
2370           number between 0 to 1. Default is 2/3.
2371
2372       -xerror (global)
2373           Stop and exit on error
2374
2375       -max_muxing_queue_size packets (output,per-stream)
2376           When transcoding audio and/or video streams, ffmpeg will not begin
2377           writing into the output until it has one packet for each such
2378           stream. While waiting for that to happen, packets for other streams
2379           are buffered. This option sets the size of this buffer, in packets,
2380           for the matching output stream.
2381
2382           The default value of this option should be high enough for most
2383           uses, so only touch this option if you are sure that you need it.
2384
2385       -muxing_queue_data_threshold bytes (output,per-stream)
2386           This is a minimum threshold until which the muxing queue size is
2387           not taken into account. Defaults to 50 megabytes per stream, and is
2388           based on the overall size of packets passed to the muxer.
2389
2390       -auto_conversion_filters (global)
2391           Enable automatically inserting format conversion filters in all
2392           filter graphs, including those defined by -vf, -af, -filter_complex
2393           and -lavfi. If filter format negotiation requires a conversion, the
2394           initialization of the filters will fail.  Conversions can still be
2395           performed by inserting the relevant conversion filter (scale,
2396           aresample) in the graph.  On by default, to explicitly disable it
2397           you need to specify "-noauto_conversion_filters".
2398
2399       -bits_per_raw_sample[:stream_specifier] value (output,per-stream)
2400           Declare the number of bits per raw sample in the given output
2401           stream to be value. Note that this option sets the information
2402           provided to the encoder/muxer, it does not change the stream to
2403           conform to this value. Setting values that do not match the stream
2404           properties may result in encoding failures or invalid output files.
2405
2406   Preset files
2407       A preset file contains a sequence of option=value pairs, one for each
2408       line, specifying a sequence of options which would be awkward to
2409       specify on the command line. Lines starting with the hash ('#')
2410       character are ignored and are used to provide comments. Check the
2411       presets directory in the FFmpeg source tree for examples.
2412
2413       There are two types of preset files: ffpreset and avpreset files.
2414
2415       ffpreset files
2416
2417       ffpreset files are specified with the "vpre", "apre", "spre", and
2418       "fpre" options. The "fpre" option takes the filename of the preset
2419       instead of a preset name as input and can be used for any kind of
2420       codec. For the "vpre", "apre", and "spre" options, the options
2421       specified in a preset file are applied to the currently selected codec
2422       of the same type as the preset option.
2423
2424       The argument passed to the "vpre", "apre", and "spre" preset options
2425       identifies the preset file to use according to the following rules:
2426
2427       First ffmpeg searches for a file named arg.ffpreset in the directories
2428       $FFMPEG_DATADIR (if set), and $HOME/.ffmpeg, and in the datadir defined
2429       at configuration time (usually PREFIX/share/ffmpeg) or in a ffpresets
2430       folder along the executable on win32, in that order. For example, if
2431       the argument is "libvpx-1080p", it will search for the file
2432       libvpx-1080p.ffpreset.
2433
2434       If no such file is found, then ffmpeg will search for a file named
2435       codec_name-arg.ffpreset in the above-mentioned directories, where
2436       codec_name is the name of the codec to which the preset file options
2437       will be applied. For example, if you select the video codec with
2438       "-vcodec libvpx" and use "-vpre 1080p", then it will search for the
2439       file libvpx-1080p.ffpreset.
2440
2441       avpreset files
2442
2443       avpreset files are specified with the "pre" option. They work similar
2444       to ffpreset files, but they only allow encoder- specific options.
2445       Therefore, an option=value pair specifying an encoder cannot be used.
2446
2447       When the "pre" option is specified, ffmpeg will look for files with the
2448       suffix .avpreset in the directories $AVCONV_DATADIR (if set), and
2449       $HOME/.avconv, and in the datadir defined at configuration time
2450       (usually PREFIX/share/ffmpeg), in that order.
2451
2452       First ffmpeg searches for a file named codec_name-arg.avpreset in the
2453       above-mentioned directories, where codec_name is the name of the codec
2454       to which the preset file options will be applied. For example, if you
2455       select the video codec with "-vcodec libvpx" and use "-pre 1080p", then
2456       it will search for the file libvpx-1080p.avpreset.
2457
2458       If no such file is found, then ffmpeg will search for a file named
2459       arg.avpreset in the same directories.
2460

EXAMPLES

2462   Video and Audio grabbing
2463       If you specify the input format and device then ffmpeg can grab video
2464       and audio directly.
2465
2466               ffmpeg -f oss -i /dev/dsp -f video4linux2 -i /dev/video0 /tmp/out.mpg
2467
2468       Or with an ALSA audio source (mono input, card id 1) instead of OSS:
2469
2470               ffmpeg -f alsa -ac 1 -i hw:1 -f video4linux2 -i /dev/video0 /tmp/out.mpg
2471
2472       Note that you must activate the right video source and channel before
2473       launching ffmpeg with any TV viewer such as
2474       <http://linux.bytesex.org/xawtv/> by Gerd Knorr. You also have to set
2475       the audio recording levels correctly with a standard mixer.
2476
2477   X11 grabbing
2478       Grab the X11 display with ffmpeg via
2479
2480               ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0 /tmp/out.mpg
2481
2482       0.0 is display.screen number of your X11 server, same as the DISPLAY
2483       environment variable.
2484
2485               ffmpeg -f x11grab -video_size cif -framerate 25 -i :0.0+10,20 /tmp/out.mpg
2486
2487       0.0 is display.screen number of your X11 server, same as the DISPLAY
2488       environment variable. 10 is the x-offset and 20 the y-offset for the
2489       grabbing.
2490
2491   Video and Audio file format conversion
2492       Any supported file format and protocol can serve as input to ffmpeg:
2493
2494       Examples:
2495
2496       •   You can use YUV files as input:
2497
2498                   ffmpeg -i /tmp/test%d.Y /tmp/out.mpg
2499
2500           It will use the files:
2501
2502                   /tmp/test0.Y, /tmp/test0.U, /tmp/test0.V,
2503                   /tmp/test1.Y, /tmp/test1.U, /tmp/test1.V, etc...
2504
2505           The Y files use twice the resolution of the U and V files. They are
2506           raw files, without header. They can be generated by all decent
2507           video decoders. You must specify the size of the image with the -s
2508           option if ffmpeg cannot guess it.
2509
2510       •   You can input from a raw YUV420P file:
2511
2512                   ffmpeg -i /tmp/test.yuv /tmp/out.avi
2513
2514           test.yuv is a file containing raw YUV planar data. Each frame is
2515           composed of the Y plane followed by the U and V planes at half
2516           vertical and horizontal resolution.
2517
2518       •   You can output to a raw YUV420P file:
2519
2520                   ffmpeg -i mydivx.avi hugefile.yuv
2521
2522       •   You can set several input files and output files:
2523
2524                   ffmpeg -i /tmp/a.wav -s 640x480 -i /tmp/a.yuv /tmp/a.mpg
2525
2526           Converts the audio file a.wav and the raw YUV video file a.yuv to
2527           MPEG file a.mpg.
2528
2529       •   You can also do audio and video conversions at the same time:
2530
2531                   ffmpeg -i /tmp/a.wav -ar 22050 /tmp/a.mp2
2532
2533           Converts a.wav to MPEG audio at 22050 Hz sample rate.
2534
2535       •   You can encode to several formats at the same time and define a
2536           mapping from input stream to output streams:
2537
2538                   ffmpeg -i /tmp/a.wav -map 0:a -b:a 64k /tmp/a.mp2 -map 0:a -b:a 128k /tmp/b.mp2
2539
2540           Converts a.wav to a.mp2 at 64 kbits and to b.mp2 at 128 kbits.
2541           '-map file:index' specifies which input stream is used for each
2542           output stream, in the order of the definition of output streams.
2543
2544       •   You can transcode decrypted VOBs:
2545
2546                   ffmpeg -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.avi
2547
2548           This is a typical DVD ripping example; the input is a VOB file, the
2549           output an AVI file with MPEG-4 video and MP3 audio. Note that in
2550           this command we use B-frames so the MPEG-4 stream is DivX5
2551           compatible, and GOP size is 300 which means one intra frame every
2552           10 seconds for 29.97fps input video. Furthermore, the audio stream
2553           is MP3-encoded so you need to enable LAME support by passing
2554           "--enable-libmp3lame" to configure.  The mapping is particularly
2555           useful for DVD transcoding to get the desired audio language.
2556
2557           NOTE: To see the supported input formats, use "ffmpeg -demuxers".
2558
2559       •   You can extract images from a video, or create a video from many
2560           images:
2561
2562           For extracting images from a video:
2563
2564                   ffmpeg -i foo.avi -r 1 -s WxH -f image2 foo-%03d.jpeg
2565
2566           This will extract one video frame per second from the video and
2567           will output them in files named foo-001.jpeg, foo-002.jpeg, etc.
2568           Images will be rescaled to fit the new WxH values.
2569
2570           If you want to extract just a limited number of frames, you can use
2571           the above command in combination with the "-frames:v" or "-t"
2572           option, or in combination with -ss to start extracting from a
2573           certain point in time.
2574
2575           For creating a video from many images:
2576
2577                   ffmpeg -f image2 -framerate 12 -i foo-%03d.jpeg -s WxH foo.avi
2578
2579           The syntax "foo-%03d.jpeg" specifies to use a decimal number
2580           composed of three digits padded with zeroes to express the sequence
2581           number. It is the same syntax supported by the C printf function,
2582           but only formats accepting a normal integer are suitable.
2583
2584           When importing an image sequence, -i also supports expanding shell-
2585           like wildcard patterns (globbing) internally, by selecting the
2586           image2-specific "-pattern_type glob" option.
2587
2588           For example, for creating a video from filenames matching the glob
2589           pattern "foo-*.jpeg":
2590
2591                   ffmpeg -f image2 -pattern_type glob -framerate 12 -i 'foo-*.jpeg' -s WxH foo.avi
2592
2593       •   You can put many streams of the same type in the output:
2594
2595                   ffmpeg -i test1.avi -i test2.avi -map 1:1 -map 1:0 -map 0:1 -map 0:0 -c copy -y test12.nut
2596
2597           The resulting output file test12.nut will contain the first four
2598           streams from the input files in reverse order.
2599
2600       •   To force CBR video output:
2601
2602                   ffmpeg -i myfile.avi -b 4000k -minrate 4000k -maxrate 4000k -bufsize 1835k out.m2v
2603
2604       •   The four options lmin, lmax, mblmin and mblmax use 'lambda' units,
2605           but you may use the QP2LAMBDA constant to easily convert from 'q'
2606           units:
2607
2608                   ffmpeg -i src.ext -lmax 21*QP2LAMBDA dst.ext
2609

SYNTAX

2611       This section documents the syntax and formats employed by the FFmpeg
2612       libraries and tools.
2613
2614   Quoting and escaping
2615       FFmpeg adopts the following quoting and escaping mechanism, unless
2616       explicitly specified. The following rules are applied:
2617
2618' and \ are special characters (respectively used for quoting and
2619           escaping). In addition to them, there might be other special
2620           characters depending on the specific syntax where the escaping and
2621           quoting are employed.
2622
2623       •   A special character is escaped by prefixing it with a \.
2624
2625       •   All characters enclosed between '' are included literally in the
2626           parsed string. The quote character ' itself cannot be quoted, so
2627           you may need to close the quote and escape it.
2628
2629       •   Leading and trailing whitespaces, unless escaped or quoted, are
2630           removed from the parsed string.
2631
2632       Note that you may need to add a second level of escaping when using the
2633       command line or a script, which depends on the syntax of the adopted
2634       shell language.
2635
2636       The function "av_get_token" defined in libavutil/avstring.h can be used
2637       to parse a token quoted or escaped according to the rules defined
2638       above.
2639
2640       The tool tools/ffescape in the FFmpeg source tree can be used to
2641       automatically quote or escape a string in a script.
2642
2643       Examples
2644
2645       •   Escape the string "Crime d'Amour" containing the "'" special
2646           character:
2647
2648                   Crime d\'Amour
2649
2650       •   The string above contains a quote, so the "'" needs to be escaped
2651           when quoting it:
2652
2653                   'Crime d'\''Amour'
2654
2655       •   Include leading or trailing whitespaces using quoting:
2656
2657                   '  this string starts and ends with whitespaces  '
2658
2659       •   Escaping and quoting can be mixed together:
2660
2661                   ' The string '\'string\'' is a string '
2662
2663       •   To include a literal \ you can use either escaping or quoting:
2664
2665                   'c:\foo' can be written as c:\\foo
2666
2667   Date
2668       The accepted syntax is:
2669
2670               [(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
2671               now
2672
2673       If the value is "now" it takes the current time.
2674
2675       Time is local time unless Z is appended, in which case it is
2676       interpreted as UTC.  If the year-month-day part is not specified it
2677       takes the current year-month-day.
2678
2679   Time duration
2680       There are two accepted syntaxes for expressing time duration.
2681
2682               [-][<HH>:]<MM>:<SS>[.<m>...]
2683
2684       HH expresses the number of hours, MM the number of minutes for a
2685       maximum of 2 digits, and SS the number of seconds for a maximum of 2
2686       digits. The m at the end expresses decimal value for SS.
2687
2688       or
2689
2690               [-]<S>+[.<m>...][s|ms|us]
2691
2692       S expresses the number of seconds, with the optional decimal part m.
2693       The optional literal suffixes s, ms or us indicate to interpret the
2694       value as seconds, milliseconds or microseconds, respectively.
2695
2696       In both expressions, the optional - indicates negative duration.
2697
2698       Examples
2699
2700       The following examples are all valid time duration:
2701
2702       55  55 seconds
2703
2704       0.2 0.2 seconds
2705
2706       200ms
2707           200 milliseconds, that's 0.2s
2708
2709       200000us
2710           200000 microseconds, that's 0.2s
2711
2712       12:03:45
2713           12 hours, 03 minutes and 45 seconds
2714
2715       23.189
2716           23.189 seconds
2717
2718   Video size
2719       Specify the size of the sourced video, it may be a string of the form
2720       widthxheight, or the name of a size abbreviation.
2721
2722       The following abbreviations are recognized:
2723
2724       ntsc
2725           720x480
2726
2727       pal 720x576
2728
2729       qntsc
2730           352x240
2731
2732       qpal
2733           352x288
2734
2735       sntsc
2736           640x480
2737
2738       spal
2739           768x576
2740
2741       film
2742           352x240
2743
2744       ntsc-film
2745           352x240
2746
2747       sqcif
2748           128x96
2749
2750       qcif
2751           176x144
2752
2753       cif 352x288
2754
2755       4cif
2756           704x576
2757
2758       16cif
2759           1408x1152
2760
2761       qqvga
2762           160x120
2763
2764       qvga
2765           320x240
2766
2767       vga 640x480
2768
2769       svga
2770           800x600
2771
2772       xga 1024x768
2773
2774       uxga
2775           1600x1200
2776
2777       qxga
2778           2048x1536
2779
2780       sxga
2781           1280x1024
2782
2783       qsxga
2784           2560x2048
2785
2786       hsxga
2787           5120x4096
2788
2789       wvga
2790           852x480
2791
2792       wxga
2793           1366x768
2794
2795       wsxga
2796           1600x1024
2797
2798       wuxga
2799           1920x1200
2800
2801       woxga
2802           2560x1600
2803
2804       wqsxga
2805           3200x2048
2806
2807       wquxga
2808           3840x2400
2809
2810       whsxga
2811           6400x4096
2812
2813       whuxga
2814           7680x4800
2815
2816       cga 320x200
2817
2818       ega 640x350
2819
2820       hd480
2821           852x480
2822
2823       hd720
2824           1280x720
2825
2826       hd1080
2827           1920x1080
2828
2829       2k  2048x1080
2830
2831       2kflat
2832           1998x1080
2833
2834       2kscope
2835           2048x858
2836
2837       4k  4096x2160
2838
2839       4kflat
2840           3996x2160
2841
2842       4kscope
2843           4096x1716
2844
2845       nhd 640x360
2846
2847       hqvga
2848           240x160
2849
2850       wqvga
2851           400x240
2852
2853       fwqvga
2854           432x240
2855
2856       hvga
2857           480x320
2858
2859       qhd 960x540
2860
2861       2kdci
2862           2048x1080
2863
2864       4kdci
2865           4096x2160
2866
2867       uhd2160
2868           3840x2160
2869
2870       uhd4320
2871           7680x4320
2872
2873   Video rate
2874       Specify the frame rate of a video, expressed as the number of frames
2875       generated per second. It has to be a string in the format
2876       frame_rate_num/frame_rate_den, an integer number, a float number or a
2877       valid video frame rate abbreviation.
2878
2879       The following abbreviations are recognized:
2880
2881       ntsc
2882           30000/1001
2883
2884       pal 25/1
2885
2886       qntsc
2887           30000/1001
2888
2889       qpal
2890           25/1
2891
2892       sntsc
2893           30000/1001
2894
2895       spal
2896           25/1
2897
2898       film
2899           24/1
2900
2901       ntsc-film
2902           24000/1001
2903
2904   Ratio
2905       A ratio can be expressed as an expression, or in the form
2906       numerator:denominator.
2907
2908       Note that a ratio with infinite (1/0) or negative value is considered
2909       valid, so you should check on the returned value if you want to exclude
2910       those values.
2911
2912       The undefined value can be expressed using the "0:0" string.
2913
2914   Color
2915       It can be the name of a color as defined below (case insensitive match)
2916       or a "[0x|#]RRGGBB[AA]" sequence, possibly followed by @ and a string
2917       representing the alpha component.
2918
2919       The alpha component may be a string composed by "0x" followed by an
2920       hexadecimal number or a decimal number between 0.0 and 1.0, which
2921       represents the opacity value (0x00 or 0.0 means completely transparent,
2922       0xff or 1.0 completely opaque). If the alpha component is not specified
2923       then 0xff is assumed.
2924
2925       The string random will result in a random color.
2926
2927       The following names of colors are recognized:
2928
2929       AliceBlue
2930           0xF0F8FF
2931
2932       AntiqueWhite
2933           0xFAEBD7
2934
2935       Aqua
2936           0x00FFFF
2937
2938       Aquamarine
2939           0x7FFFD4
2940
2941       Azure
2942           0xF0FFFF
2943
2944       Beige
2945           0xF5F5DC
2946
2947       Bisque
2948           0xFFE4C4
2949
2950       Black
2951           0x000000
2952
2953       BlanchedAlmond
2954           0xFFEBCD
2955
2956       Blue
2957           0x0000FF
2958
2959       BlueViolet
2960           0x8A2BE2
2961
2962       Brown
2963           0xA52A2A
2964
2965       BurlyWood
2966           0xDEB887
2967
2968       CadetBlue
2969           0x5F9EA0
2970
2971       Chartreuse
2972           0x7FFF00
2973
2974       Chocolate
2975           0xD2691E
2976
2977       Coral
2978           0xFF7F50
2979
2980       CornflowerBlue
2981           0x6495ED
2982
2983       Cornsilk
2984           0xFFF8DC
2985
2986       Crimson
2987           0xDC143C
2988
2989       Cyan
2990           0x00FFFF
2991
2992       DarkBlue
2993           0x00008B
2994
2995       DarkCyan
2996           0x008B8B
2997
2998       DarkGoldenRod
2999           0xB8860B
3000
3001       DarkGray
3002           0xA9A9A9
3003
3004       DarkGreen
3005           0x006400
3006
3007       DarkKhaki
3008           0xBDB76B
3009
3010       DarkMagenta
3011           0x8B008B
3012
3013       DarkOliveGreen
3014           0x556B2F
3015
3016       Darkorange
3017           0xFF8C00
3018
3019       DarkOrchid
3020           0x9932CC
3021
3022       DarkRed
3023           0x8B0000
3024
3025       DarkSalmon
3026           0xE9967A
3027
3028       DarkSeaGreen
3029           0x8FBC8F
3030
3031       DarkSlateBlue
3032           0x483D8B
3033
3034       DarkSlateGray
3035           0x2F4F4F
3036
3037       DarkTurquoise
3038           0x00CED1
3039
3040       DarkViolet
3041           0x9400D3
3042
3043       DeepPink
3044           0xFF1493
3045
3046       DeepSkyBlue
3047           0x00BFFF
3048
3049       DimGray
3050           0x696969
3051
3052       DodgerBlue
3053           0x1E90FF
3054
3055       FireBrick
3056           0xB22222
3057
3058       FloralWhite
3059           0xFFFAF0
3060
3061       ForestGreen
3062           0x228B22
3063
3064       Fuchsia
3065           0xFF00FF
3066
3067       Gainsboro
3068           0xDCDCDC
3069
3070       GhostWhite
3071           0xF8F8FF
3072
3073       Gold
3074           0xFFD700
3075
3076       GoldenRod
3077           0xDAA520
3078
3079       Gray
3080           0x808080
3081
3082       Green
3083           0x008000
3084
3085       GreenYellow
3086           0xADFF2F
3087
3088       HoneyDew
3089           0xF0FFF0
3090
3091       HotPink
3092           0xFF69B4
3093
3094       IndianRed
3095           0xCD5C5C
3096
3097       Indigo
3098           0x4B0082
3099
3100       Ivory
3101           0xFFFFF0
3102
3103       Khaki
3104           0xF0E68C
3105
3106       Lavender
3107           0xE6E6FA
3108
3109       LavenderBlush
3110           0xFFF0F5
3111
3112       LawnGreen
3113           0x7CFC00
3114
3115       LemonChiffon
3116           0xFFFACD
3117
3118       LightBlue
3119           0xADD8E6
3120
3121       LightCoral
3122           0xF08080
3123
3124       LightCyan
3125           0xE0FFFF
3126
3127       LightGoldenRodYellow
3128           0xFAFAD2
3129
3130       LightGreen
3131           0x90EE90
3132
3133       LightGrey
3134           0xD3D3D3
3135
3136       LightPink
3137           0xFFB6C1
3138
3139       LightSalmon
3140           0xFFA07A
3141
3142       LightSeaGreen
3143           0x20B2AA
3144
3145       LightSkyBlue
3146           0x87CEFA
3147
3148       LightSlateGray
3149           0x778899
3150
3151       LightSteelBlue
3152           0xB0C4DE
3153
3154       LightYellow
3155           0xFFFFE0
3156
3157       Lime
3158           0x00FF00
3159
3160       LimeGreen
3161           0x32CD32
3162
3163       Linen
3164           0xFAF0E6
3165
3166       Magenta
3167           0xFF00FF
3168
3169       Maroon
3170           0x800000
3171
3172       MediumAquaMarine
3173           0x66CDAA
3174
3175       MediumBlue
3176           0x0000CD
3177
3178       MediumOrchid
3179           0xBA55D3
3180
3181       MediumPurple
3182           0x9370D8
3183
3184       MediumSeaGreen
3185           0x3CB371
3186
3187       MediumSlateBlue
3188           0x7B68EE
3189
3190       MediumSpringGreen
3191           0x00FA9A
3192
3193       MediumTurquoise
3194           0x48D1CC
3195
3196       MediumVioletRed
3197           0xC71585
3198
3199       MidnightBlue
3200           0x191970
3201
3202       MintCream
3203           0xF5FFFA
3204
3205       MistyRose
3206           0xFFE4E1
3207
3208       Moccasin
3209           0xFFE4B5
3210
3211       NavajoWhite
3212           0xFFDEAD
3213
3214       Navy
3215           0x000080
3216
3217       OldLace
3218           0xFDF5E6
3219
3220       Olive
3221           0x808000
3222
3223       OliveDrab
3224           0x6B8E23
3225
3226       Orange
3227           0xFFA500
3228
3229       OrangeRed
3230           0xFF4500
3231
3232       Orchid
3233           0xDA70D6
3234
3235       PaleGoldenRod
3236           0xEEE8AA
3237
3238       PaleGreen
3239           0x98FB98
3240
3241       PaleTurquoise
3242           0xAFEEEE
3243
3244       PaleVioletRed
3245           0xD87093
3246
3247       PapayaWhip
3248           0xFFEFD5
3249
3250       PeachPuff
3251           0xFFDAB9
3252
3253       Peru
3254           0xCD853F
3255
3256       Pink
3257           0xFFC0CB
3258
3259       Plum
3260           0xDDA0DD
3261
3262       PowderBlue
3263           0xB0E0E6
3264
3265       Purple
3266           0x800080
3267
3268       Red 0xFF0000
3269
3270       RosyBrown
3271           0xBC8F8F
3272
3273       RoyalBlue
3274           0x4169E1
3275
3276       SaddleBrown
3277           0x8B4513
3278
3279       Salmon
3280           0xFA8072
3281
3282       SandyBrown
3283           0xF4A460
3284
3285       SeaGreen
3286           0x2E8B57
3287
3288       SeaShell
3289           0xFFF5EE
3290
3291       Sienna
3292           0xA0522D
3293
3294       Silver
3295           0xC0C0C0
3296
3297       SkyBlue
3298           0x87CEEB
3299
3300       SlateBlue
3301           0x6A5ACD
3302
3303       SlateGray
3304           0x708090
3305
3306       Snow
3307           0xFFFAFA
3308
3309       SpringGreen
3310           0x00FF7F
3311
3312       SteelBlue
3313           0x4682B4
3314
3315       Tan 0xD2B48C
3316
3317       Teal
3318           0x008080
3319
3320       Thistle
3321           0xD8BFD8
3322
3323       Tomato
3324           0xFF6347
3325
3326       Turquoise
3327           0x40E0D0
3328
3329       Violet
3330           0xEE82EE
3331
3332       Wheat
3333           0xF5DEB3
3334
3335       White
3336           0xFFFFFF
3337
3338       WhiteSmoke
3339           0xF5F5F5
3340
3341       Yellow
3342           0xFFFF00
3343
3344       YellowGreen
3345           0x9ACD32
3346
3347   Channel Layout
3348       A channel layout specifies the spatial disposition of the channels in a
3349       multi-channel audio stream. To specify a channel layout, FFmpeg makes
3350       use of a special syntax.
3351
3352       Individual channels are identified by an id, as given by the table
3353       below:
3354
3355       FL  front left
3356
3357       FR  front right
3358
3359       FC  front center
3360
3361       LFE low frequency
3362
3363       BL  back left
3364
3365       BR  back right
3366
3367       FLC front left-of-center
3368
3369       FRC front right-of-center
3370
3371       BC  back center
3372
3373       SL  side left
3374
3375       SR  side right
3376
3377       TC  top center
3378
3379       TFL top front left
3380
3381       TFC top front center
3382
3383       TFR top front right
3384
3385       TBL top back left
3386
3387       TBC top back center
3388
3389       TBR top back right
3390
3391       DL  downmix left
3392
3393       DR  downmix right
3394
3395       WL  wide left
3396
3397       WR  wide right
3398
3399       SDL surround direct left
3400
3401       SDR surround direct right
3402
3403       LFE2
3404           low frequency 2
3405
3406       Standard channel layout compositions can be specified by using the
3407       following identifiers:
3408
3409       mono
3410           FC
3411
3412       stereo
3413           FL+FR
3414
3415       2.1 FL+FR+LFE
3416
3417       3.0 FL+FR+FC
3418
3419       3.0(back)
3420           FL+FR+BC
3421
3422       4.0 FL+FR+FC+BC
3423
3424       quad
3425           FL+FR+BL+BR
3426
3427       quad(side)
3428           FL+FR+SL+SR
3429
3430       3.1 FL+FR+FC+LFE
3431
3432       5.0 FL+FR+FC+BL+BR
3433
3434       5.0(side)
3435           FL+FR+FC+SL+SR
3436
3437       4.1 FL+FR+FC+LFE+BC
3438
3439       5.1 FL+FR+FC+LFE+BL+BR
3440
3441       5.1(side)
3442           FL+FR+FC+LFE+SL+SR
3443
3444       6.0 FL+FR+FC+BC+SL+SR
3445
3446       6.0(front)
3447           FL+FR+FLC+FRC+SL+SR
3448
3449       hexagonal
3450           FL+FR+FC+BL+BR+BC
3451
3452       6.1 FL+FR+FC+LFE+BC+SL+SR
3453
3454       6.1 FL+FR+FC+LFE+BL+BR+BC
3455
3456       6.1(front)
3457           FL+FR+LFE+FLC+FRC+SL+SR
3458
3459       7.0 FL+FR+FC+BL+BR+SL+SR
3460
3461       7.0(front)
3462           FL+FR+FC+FLC+FRC+SL+SR
3463
3464       7.1 FL+FR+FC+LFE+BL+BR+SL+SR
3465
3466       7.1(wide)
3467           FL+FR+FC+LFE+BL+BR+FLC+FRC
3468
3469       7.1(wide-side)
3470           FL+FR+FC+LFE+FLC+FRC+SL+SR
3471
3472       octagonal
3473           FL+FR+FC+BL+BR+BC+SL+SR
3474
3475       hexadecagonal
3476           FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR
3477
3478       downmix
3479           DL+DR
3480
3481       22.2
3482           FL+FR+FC+LFE+BL+BR+FLC+FRC+BC+SL+SR+TC+TFL+TFC+TFR+TBL+TBC+TBR+LFE2+TSL+TSR+BFC+BFL+BFR
3483
3484       A custom channel layout can be specified as a sequence of terms,
3485       separated by '+'.  Each term can be:
3486
3487       •   the name of a single channel (e.g. FL, FR, FC, LFE, etc.), each
3488           optionally containing a custom name after a '@', (e.g. FL@Left,
3489           FR@Right, FC@Center, LFE@Low_Frequency, etc.)
3490
3491       A standard channel layout can be specified by the following:
3492
3493       •   the name of a single channel (e.g. FL, FR, FC, LFE, etc.)
3494
3495       •   the name of a standard channel layout (e.g. mono, stereo, 4.0,
3496           quad, 5.0, etc.)
3497
3498       •   a number of channels, in decimal, followed by 'c', yielding the
3499           default channel layout for that number of channels (see the
3500           function "av_channel_layout_default"). Note that not all channel
3501           counts have a default layout.
3502
3503       •   a number of channels, in decimal, followed by 'C', yielding an
3504           unknown channel layout with the specified number of channels. Note
3505           that not all channel layout specification strings support unknown
3506           channel layouts.
3507
3508       •   a channel layout mask, in hexadecimal starting with "0x" (see the
3509           "AV_CH_*" macros in libavutil/channel_layout.h.
3510
3511       Before libavutil version 53 the trailing character "c" to specify a
3512       number of channels was optional, but now it is required, while a
3513       channel layout mask can also be specified as a decimal number (if and
3514       only if not followed by "c" or "C").
3515
3516       See also the function "av_channel_layout_from_string" defined in
3517       libavutil/channel_layout.h.
3518

EXPRESSION EVALUATION

3520       When evaluating an arithmetic expression, FFmpeg uses an internal
3521       formula evaluator, implemented through the libavutil/eval.h interface.
3522
3523       An expression may contain unary, binary operators, constants, and
3524       functions.
3525
3526       Two expressions expr1 and expr2 can be combined to form another
3527       expression "expr1;expr2".  expr1 and expr2 are evaluated in turn, and
3528       the new expression evaluates to the value of expr2.
3529
3530       The following binary operators are available: "+", "-", "*", "/", "^".
3531
3532       The following unary operators are available: "+", "-".
3533
3534       The following functions are available:
3535
3536       abs(x)
3537           Compute absolute value of x.
3538
3539       acos(x)
3540           Compute arccosine of x.
3541
3542       asin(x)
3543           Compute arcsine of x.
3544
3545       atan(x)
3546           Compute arctangent of x.
3547
3548       atan2(x, y)
3549           Compute principal value of the arc tangent of y/x.
3550
3551       between(x, min, max)
3552           Return 1 if x is greater than or equal to min and lesser than or
3553           equal to max, 0 otherwise.
3554
3555       bitand(x, y)
3556       bitor(x, y)
3557           Compute bitwise and/or operation on x and y.
3558
3559           The results of the evaluation of x and y are converted to integers
3560           before executing the bitwise operation.
3561
3562           Note that both the conversion to integer and the conversion back to
3563           floating point can lose precision. Beware of unexpected results for
3564           large numbers (usually 2^53 and larger).
3565
3566       ceil(expr)
3567           Round the value of expression expr upwards to the nearest integer.
3568           For example, "ceil(1.5)" is "2.0".
3569
3570       clip(x, min, max)
3571           Return the value of x clipped between min and max.
3572
3573       cos(x)
3574           Compute cosine of x.
3575
3576       cosh(x)
3577           Compute hyperbolic cosine of x.
3578
3579       eq(x, y)
3580           Return 1 if x and y are equivalent, 0 otherwise.
3581
3582       exp(x)
3583           Compute exponential of x (with base "e", the Euler's number).
3584
3585       floor(expr)
3586           Round the value of expression expr downwards to the nearest
3587           integer. For example, "floor(-1.5)" is "-2.0".
3588
3589       gauss(x)
3590           Compute Gauss function of x, corresponding to "exp(-x*x/2) /
3591           sqrt(2*PI)".
3592
3593       gcd(x, y)
3594           Return the greatest common divisor of x and y. If both x and y are
3595           0 or either or both are less than zero then behavior is undefined.
3596
3597       gt(x, y)
3598           Return 1 if x is greater than y, 0 otherwise.
3599
3600       gte(x, y)
3601           Return 1 if x is greater than or equal to y, 0 otherwise.
3602
3603       hypot(x, y)
3604           This function is similar to the C function with the same name; it
3605           returns "sqrt(x*x + y*y)", the length of the hypotenuse of a right
3606           triangle with sides of length x and y, or the distance of the point
3607           (x, y) from the origin.
3608
3609       if(x, y)
3610           Evaluate x, and if the result is non-zero return the result of the
3611           evaluation of y, return 0 otherwise.
3612
3613       if(x, y, z)
3614           Evaluate x, and if the result is non-zero return the evaluation
3615           result of y, otherwise the evaluation result of z.
3616
3617       ifnot(x, y)
3618           Evaluate x, and if the result is zero return the result of the
3619           evaluation of y, return 0 otherwise.
3620
3621       ifnot(x, y, z)
3622           Evaluate x, and if the result is zero return the evaluation result
3623           of y, otherwise the evaluation result of z.
3624
3625       isinf(x)
3626           Return 1.0 if x is +/-INFINITY, 0.0 otherwise.
3627
3628       isnan(x)
3629           Return 1.0 if x is NAN, 0.0 otherwise.
3630
3631       ld(var)
3632           Load the value of the internal variable with number var, which was
3633           previously stored with st(var, expr).  The function returns the
3634           loaded value.
3635
3636       lerp(x, y, z)
3637           Return linear interpolation between x and y by amount of z.
3638
3639       log(x)
3640           Compute natural logarithm of x.
3641
3642       lt(x, y)
3643           Return 1 if x is lesser than y, 0 otherwise.
3644
3645       lte(x, y)
3646           Return 1 if x is lesser than or equal to y, 0 otherwise.
3647
3648       max(x, y)
3649           Return the maximum between x and y.
3650
3651       min(x, y)
3652           Return the minimum between x and y.
3653
3654       mod(x, y)
3655           Compute the remainder of division of x by y.
3656
3657       not(expr)
3658           Return 1.0 if expr is zero, 0.0 otherwise.
3659
3660       pow(x, y)
3661           Compute the power of x elevated y, it is equivalent to "(x)^(y)".
3662
3663       print(t)
3664       print(t, l)
3665           Print the value of expression t with loglevel l. If l is not
3666           specified then a default log level is used.  Returns the value of
3667           the expression printed.
3668
3669           Prints t with loglevel l
3670
3671       random(x)
3672           Return a pseudo random value between 0.0 and 1.0. x is the index of
3673           the internal variable which will be used to save the seed/state.
3674
3675       root(expr, max)
3676           Find an input value for which the function represented by expr with
3677           argument ld(0) is 0 in the interval 0..max.
3678
3679           The expression in expr must denote a continuous function or the
3680           result is undefined.
3681
3682           ld(0) is used to represent the function input value, which means
3683           that the given expression will be evaluated multiple times with
3684           various input values that the expression can access through ld(0).
3685           When the expression evaluates to 0 then the corresponding input
3686           value will be returned.
3687
3688       round(expr)
3689           Round the value of expression expr to the nearest integer. For
3690           example, "round(1.5)" is "2.0".
3691
3692       sgn(x)
3693           Compute sign of x.
3694
3695       sin(x)
3696           Compute sine of x.
3697
3698       sinh(x)
3699           Compute hyperbolic sine of x.
3700
3701       sqrt(expr)
3702           Compute the square root of expr. This is equivalent to "(expr)^.5".
3703
3704       squish(x)
3705           Compute expression "1/(1 + exp(4*x))".
3706
3707       st(var, expr)
3708           Store the value of the expression expr in an internal variable. var
3709           specifies the number of the variable where to store the value, and
3710           it is a value ranging from 0 to 9. The function returns the value
3711           stored in the internal variable.  Note, Variables are currently not
3712           shared between expressions.
3713
3714       tan(x)
3715           Compute tangent of x.
3716
3717       tanh(x)
3718           Compute hyperbolic tangent of x.
3719
3720       taylor(expr, x)
3721       taylor(expr, x, id)
3722           Evaluate a Taylor series at x, given an expression representing the
3723           "ld(id)"-th derivative of a function at 0.
3724
3725           When the series does not converge the result is undefined.
3726
3727           ld(id) is used to represent the derivative order in expr, which
3728           means that the given expression will be evaluated multiple times
3729           with various input values that the expression can access through
3730           "ld(id)". If id is not specified then 0 is assumed.
3731
3732           Note, when you have the derivatives at y instead of 0,
3733           "taylor(expr, x-y)" can be used.
3734
3735       time(0)
3736           Return the current (wallclock) time in seconds.
3737
3738       trunc(expr)
3739           Round the value of expression expr towards zero to the nearest
3740           integer. For example, "trunc(-1.5)" is "-1.0".
3741
3742       while(cond, expr)
3743           Evaluate expression expr while the expression cond is non-zero, and
3744           returns the value of the last expr evaluation, or NAN if cond was
3745           always false.
3746
3747       The following constants are available:
3748
3749       PI  area of the unit disc, approximately 3.14
3750
3751       E   exp(1) (Euler's number), approximately 2.718
3752
3753       PHI golden ratio (1+sqrt(5))/2, approximately 1.618
3754
3755       Assuming that an expression is considered "true" if it has a non-zero
3756       value, note that:
3757
3758       "*" works like AND
3759
3760       "+" works like OR
3761
3762       For example the construct:
3763
3764               if (A AND B) then C
3765
3766       is equivalent to:
3767
3768               if(A*B, C)
3769
3770       In your C code, you can extend the list of unary and binary functions,
3771       and define recognized constants, so that they are available for your
3772       expressions.
3773
3774       The evaluator also recognizes the International System unit prefixes.
3775       If 'i' is appended after the prefix, binary prefixes are used, which
3776       are based on powers of 1024 instead of powers of 1000.  The 'B' postfix
3777       multiplies the value by 8, and can be appended after a unit prefix or
3778       used alone. This allows using for example 'KB', 'MiB', 'G' and 'B' as
3779       number postfix.
3780
3781       The list of available International System prefixes follows, with
3782       indication of the corresponding powers of 10 and of 2.
3783
3784       y   10^-24 / 2^-80
3785
3786       z   10^-21 / 2^-70
3787
3788       a   10^-18 / 2^-60
3789
3790       f   10^-15 / 2^-50
3791
3792       p   10^-12 / 2^-40
3793
3794       n   10^-9 / 2^-30
3795
3796       u   10^-6 / 2^-20
3797
3798       m   10^-3 / 2^-10
3799
3800       c   10^-2
3801
3802       d   10^-1
3803
3804       h   10^2
3805
3806       k   10^3 / 2^10
3807
3808       K   10^3 / 2^10
3809
3810       M   10^6 / 2^20
3811
3812       G   10^9 / 2^30
3813
3814       T   10^12 / 2^40
3815
3816       P   10^15 / 2^40
3817
3818       E   10^18 / 2^50
3819
3820       Z   10^21 / 2^60
3821
3822       Y   10^24 / 2^70
3823

CODEC OPTIONS

3825       libavcodec provides some generic global options, which can be set on
3826       all the encoders and decoders. In addition each codec may support so-
3827       called private options, which are specific for a given codec.
3828
3829       Sometimes, a global option may only affect a specific kind of codec,
3830       and may be nonsensical or ignored by another, so you need to be aware
3831       of the meaning of the specified options. Also some options are meant
3832       only for decoding or encoding.
3833
3834       Options may be set by specifying -option value in the FFmpeg tools, or
3835       by setting the value explicitly in the "AVCodecContext" options or
3836       using the libavutil/opt.h API for programmatic use.
3837
3838       The list of supported options follow:
3839
3840       b integer (encoding,audio,video)
3841           Set bitrate in bits/s. Default value is 200K.
3842
3843       ab integer (encoding,audio)
3844           Set audio bitrate (in bits/s). Default value is 128K.
3845
3846       bt integer (encoding,video)
3847           Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
3848           tolerance specifies how far ratecontrol is willing to deviate from
3849           the target average bitrate value. This is not related to min/max
3850           bitrate. Lowering tolerance too much has an adverse effect on
3851           quality.
3852
3853       flags flags (decoding/encoding,audio,video,subtitles)
3854           Set generic flags.
3855
3856           Possible values:
3857
3858           mv4 Use four motion vector by macroblock (mpeg4).
3859
3860           qpel
3861               Use 1/4 pel motion compensation.
3862
3863           loop
3864               Use loop filter.
3865
3866           qscale
3867               Use fixed qscale.
3868
3869           pass1
3870               Use internal 2pass ratecontrol in first pass mode.
3871
3872           pass2
3873               Use internal 2pass ratecontrol in second pass mode.
3874
3875           gray
3876               Only decode/encode grayscale.
3877
3878           psnr
3879               Set error[?] variables during encoding.
3880
3881           truncated
3882               Input bitstream might be randomly truncated.
3883
3884           drop_changed
3885               Don't output frames whose parameters differ from first decoded
3886               frame in stream.  Error AVERROR_INPUT_CHANGED is returned when
3887               a frame is dropped.
3888
3889           ildct
3890               Use interlaced DCT.
3891
3892           low_delay
3893               Force low delay.
3894
3895           global_header
3896               Place global headers in extradata instead of every keyframe.
3897
3898           bitexact
3899               Only write platform-, build- and time-independent data. (except
3900               (I)DCT).  This ensures that file and data checksums are
3901               reproducible and match between platforms. Its primary use is
3902               for regression testing.
3903
3904           aic Apply H263 advanced intra coding / mpeg4 ac prediction.
3905
3906           ilme
3907               Apply interlaced motion estimation.
3908
3909           cgop
3910               Use closed gop.
3911
3912           output_corrupt
3913               Output even potentially corrupted frames.
3914
3915       time_base rational number
3916           Set codec time base.
3917
3918           It is the fundamental unit of time (in seconds) in terms of which
3919           frame timestamps are represented. For fixed-fps content, timebase
3920           should be "1 / frame_rate" and timestamp increments should be
3921           identically 1.
3922
3923       g integer (encoding,video)
3924           Set the group of picture (GOP) size. Default value is 12.
3925
3926       ar integer (decoding/encoding,audio)
3927           Set audio sampling rate (in Hz).
3928
3929       ac integer (decoding/encoding,audio)
3930           Set number of audio channels.
3931
3932       cutoff integer (encoding,audio)
3933           Set cutoff bandwidth. (Supported only by selected encoders, see
3934           their respective documentation sections.)
3935
3936       frame_size integer (encoding,audio)
3937           Set audio frame size.
3938
3939           Each submitted frame except the last must contain exactly
3940           frame_size samples per channel. May be 0 when the codec has
3941           CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is
3942           not restricted. It is set by some decoders to indicate constant
3943           frame size.
3944
3945       frame_number integer
3946           Set the frame number.
3947
3948       delay integer
3949       qcomp float (encoding,video)
3950           Set video quantizer scale compression (VBR). It is used as a
3951           constant in the ratecontrol equation. Recommended range for default
3952           rc_eq: 0.0-1.0.
3953
3954       qblur float (encoding,video)
3955           Set video quantizer scale blur (VBR).
3956
3957       qmin integer (encoding,video)
3958           Set min video quantizer scale (VBR). Must be included between -1
3959           and 69, default value is 2.
3960
3961       qmax integer (encoding,video)
3962           Set max video quantizer scale (VBR). Must be included between -1
3963           and 1024, default value is 31.
3964
3965       qdiff integer (encoding,video)
3966           Set max difference between the quantizer scale (VBR).
3967
3968       bf integer (encoding,video)
3969           Set max number of B frames between non-B-frames.
3970
3971           Must be an integer between -1 and 16. 0 means that B-frames are
3972           disabled. If a value of -1 is used, it will choose an automatic
3973           value depending on the encoder.
3974
3975           Default value is 0.
3976
3977       b_qfactor float (encoding,video)
3978           Set qp factor between P and B frames.
3979
3980       codec_tag integer
3981       bug flags (decoding,video)
3982           Workaround not auto detected encoder bugs.
3983
3984           Possible values:
3985
3986           autodetect
3987           xvid_ilace
3988               Xvid interlacing bug (autodetected if fourcc==XVIX)
3989
3990           ump4
3991               (autodetected if fourcc==UMP4)
3992
3993           no_padding
3994               padding bug (autodetected)
3995
3996           amv
3997           qpel_chroma
3998           std_qpel
3999               old standard qpel (autodetected per fourcc/version)
4000
4001           qpel_chroma2
4002           direct_blocksize
4003               direct-qpel-blocksize bug (autodetected per fourcc/version)
4004
4005           edge
4006               edge padding bug (autodetected per fourcc/version)
4007
4008           hpel_chroma
4009           dc_clip
4010           ms  Workaround various bugs in microsoft broken decoders.
4011
4012           trunc
4013               trancated frames
4014
4015       strict integer (decoding/encoding,audio,video)
4016           Specify how strictly to follow the standards.
4017
4018           Possible values:
4019
4020           very
4021               strictly conform to an older more strict version of the spec or
4022               reference software
4023
4024           strict
4025               strictly conform to all the things in the spec no matter what
4026               consequences
4027
4028           normal
4029           unofficial
4030               allow unofficial extensions
4031
4032           experimental
4033               allow non standardized experimental things, experimental
4034               (unfinished/work in progress/not well tested) decoders and
4035               encoders.  Note: experimental decoders can pose a security
4036               risk, do not use this for decoding untrusted input.
4037
4038       b_qoffset float (encoding,video)
4039           Set QP offset between P and B frames.
4040
4041       err_detect flags (decoding,audio,video)
4042           Set error detection flags.
4043
4044           Possible values:
4045
4046           crccheck
4047               verify embedded CRCs
4048
4049           bitstream
4050               detect bitstream specification deviations
4051
4052           buffer
4053               detect improper bitstream length
4054
4055           explode
4056               abort decoding on minor error detection
4057
4058           ignore_err
4059               ignore decoding errors, and continue decoding.  This is useful
4060               if you want to analyze the content of a video and thus want
4061               everything to be decoded no matter what. This option will not
4062               result in a video that is pleasing to watch in case of errors.
4063
4064           careful
4065               consider things that violate the spec and have not been seen in
4066               the wild as errors
4067
4068           compliant
4069               consider all spec non compliancies as errors
4070
4071           aggressive
4072               consider things that a sane encoder should not do as an error
4073
4074       has_b_frames integer
4075       block_align integer
4076       rc_override_count integer
4077       maxrate integer (encoding,audio,video)
4078           Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
4079
4080       minrate integer (encoding,audio,video)
4081           Set min bitrate tolerance (in bits/s). Most useful in setting up a
4082           CBR encode. It is of little use elsewise.
4083
4084       bufsize integer (encoding,audio,video)
4085           Set ratecontrol buffer size (in bits).
4086
4087       i_qfactor float (encoding,video)
4088           Set QP factor between P and I frames.
4089
4090       i_qoffset float (encoding,video)
4091           Set QP offset between P and I frames.
4092
4093       dct integer (encoding,video)
4094           Set DCT algorithm.
4095
4096           Possible values:
4097
4098           auto
4099               autoselect a good one (default)
4100
4101           fastint
4102               fast integer
4103
4104           int accurate integer
4105
4106           mmx
4107           altivec
4108           faan
4109               floating point AAN DCT
4110
4111       lumi_mask float (encoding,video)
4112           Compress bright areas stronger than medium ones.
4113
4114       tcplx_mask float (encoding,video)
4115           Set temporal complexity masking.
4116
4117       scplx_mask float (encoding,video)
4118           Set spatial complexity masking.
4119
4120       p_mask float (encoding,video)
4121           Set inter masking.
4122
4123       dark_mask float (encoding,video)
4124           Compress dark areas stronger than medium ones.
4125
4126       idct integer (decoding/encoding,video)
4127           Select IDCT implementation.
4128
4129           Possible values:
4130
4131           auto
4132           int
4133           simple
4134           simplemmx
4135           simpleauto
4136               Automatically pick a IDCT compatible with the simple one
4137
4138           arm
4139           altivec
4140           sh4
4141           simplearm
4142           simplearmv5te
4143           simplearmv6
4144           simpleneon
4145           xvid
4146           faani
4147               floating point AAN IDCT
4148
4149       slice_count integer
4150       ec flags (decoding,video)
4151           Set error concealment strategy.
4152
4153           Possible values:
4154
4155           guess_mvs
4156               iterative motion vector (MV) search (slow)
4157
4158           deblock
4159               use strong deblock filter for damaged MBs
4160
4161           favor_inter
4162               favor predicting from the previous frame instead of the current
4163
4164       bits_per_coded_sample integer
4165       aspect rational number (encoding,video)
4166           Set sample aspect ratio.
4167
4168       sar rational number (encoding,video)
4169           Set sample aspect ratio. Alias to aspect.
4170
4171       debug flags (decoding/encoding,audio,video,subtitles)
4172           Print specific debug info.
4173
4174           Possible values:
4175
4176           pict
4177               picture info
4178
4179           rc  rate control
4180
4181           bitstream
4182           mb_type
4183               macroblock (MB) type
4184
4185           qp  per-block quantization parameter (QP)
4186
4187           dct_coeff
4188           green_metadata
4189               display complexity metadata for the upcoming frame, GoP or for
4190               a given duration.
4191
4192           skip
4193           startcode
4194           er  error recognition
4195
4196           mmco
4197               memory management control operations (H.264)
4198
4199           bugs
4200           buffers
4201               picture buffer allocations
4202
4203           thread_ops
4204               threading operations
4205
4206           nomc
4207               skip motion compensation
4208
4209       cmp integer (encoding,video)
4210           Set full pel me compare function.
4211
4212           Possible values:
4213
4214           sad sum of absolute differences, fast (default)
4215
4216           sse sum of squared errors
4217
4218           satd
4219               sum of absolute Hadamard transformed differences
4220
4221           dct sum of absolute DCT transformed differences
4222
4223           psnr
4224               sum of squared quantization errors (avoid, low quality)
4225
4226           bit number of bits needed for the block
4227
4228           rd  rate distortion optimal, slow
4229
4230           zero
4231               0
4232
4233           vsad
4234               sum of absolute vertical differences
4235
4236           vsse
4237               sum of squared vertical differences
4238
4239           nsse
4240               noise preserving sum of squared differences
4241
4242           w53 5/3 wavelet, only used in snow
4243
4244           w97 9/7 wavelet, only used in snow
4245
4246           dctmax
4247           chroma
4248       subcmp integer (encoding,video)
4249           Set sub pel me compare function.
4250
4251           Possible values:
4252
4253           sad sum of absolute differences, fast (default)
4254
4255           sse sum of squared errors
4256
4257           satd
4258               sum of absolute Hadamard transformed differences
4259
4260           dct sum of absolute DCT transformed differences
4261
4262           psnr
4263               sum of squared quantization errors (avoid, low quality)
4264
4265           bit number of bits needed for the block
4266
4267           rd  rate distortion optimal, slow
4268
4269           zero
4270               0
4271
4272           vsad
4273               sum of absolute vertical differences
4274
4275           vsse
4276               sum of squared vertical differences
4277
4278           nsse
4279               noise preserving sum of squared differences
4280
4281           w53 5/3 wavelet, only used in snow
4282
4283           w97 9/7 wavelet, only used in snow
4284
4285           dctmax
4286           chroma
4287       mbcmp integer (encoding,video)
4288           Set macroblock compare function.
4289
4290           Possible values:
4291
4292           sad sum of absolute differences, fast (default)
4293
4294           sse sum of squared errors
4295
4296           satd
4297               sum of absolute Hadamard transformed differences
4298
4299           dct sum of absolute DCT transformed differences
4300
4301           psnr
4302               sum of squared quantization errors (avoid, low quality)
4303
4304           bit number of bits needed for the block
4305
4306           rd  rate distortion optimal, slow
4307
4308           zero
4309               0
4310
4311           vsad
4312               sum of absolute vertical differences
4313
4314           vsse
4315               sum of squared vertical differences
4316
4317           nsse
4318               noise preserving sum of squared differences
4319
4320           w53 5/3 wavelet, only used in snow
4321
4322           w97 9/7 wavelet, only used in snow
4323
4324           dctmax
4325           chroma
4326       ildctcmp integer (encoding,video)
4327           Set interlaced dct compare function.
4328
4329           Possible values:
4330
4331           sad sum of absolute differences, fast (default)
4332
4333           sse sum of squared errors
4334
4335           satd
4336               sum of absolute Hadamard transformed differences
4337
4338           dct sum of absolute DCT transformed differences
4339
4340           psnr
4341               sum of squared quantization errors (avoid, low quality)
4342
4343           bit number of bits needed for the block
4344
4345           rd  rate distortion optimal, slow
4346
4347           zero
4348               0
4349
4350           vsad
4351               sum of absolute vertical differences
4352
4353           vsse
4354               sum of squared vertical differences
4355
4356           nsse
4357               noise preserving sum of squared differences
4358
4359           w53 5/3 wavelet, only used in snow
4360
4361           w97 9/7 wavelet, only used in snow
4362
4363           dctmax
4364           chroma
4365       dia_size integer (encoding,video)
4366           Set diamond type & size for motion estimation.
4367
4368           (1024, INT_MAX)
4369               full motion estimation(slowest)
4370
4371           (768, 1024]
4372               umh motion estimation
4373
4374           (512, 768]
4375               hex motion estimation
4376
4377           (256, 512]
4378               l2s diamond motion estimation
4379
4380           [2,256]
4381               var diamond motion estimation
4382
4383           (-1,  2)
4384               small diamond motion estimation
4385
4386           -1  funny diamond motion estimation
4387
4388           (INT_MIN, -1)
4389               sab diamond motion estimation
4390
4391       last_pred integer (encoding,video)
4392           Set amount of motion predictors from the previous frame.
4393
4394       precmp integer (encoding,video)
4395           Set pre motion estimation compare function.
4396
4397           Possible values:
4398
4399           sad sum of absolute differences, fast (default)
4400
4401           sse sum of squared errors
4402
4403           satd
4404               sum of absolute Hadamard transformed differences
4405
4406           dct sum of absolute DCT transformed differences
4407
4408           psnr
4409               sum of squared quantization errors (avoid, low quality)
4410
4411           bit number of bits needed for the block
4412
4413           rd  rate distortion optimal, slow
4414
4415           zero
4416               0
4417
4418           vsad
4419               sum of absolute vertical differences
4420
4421           vsse
4422               sum of squared vertical differences
4423
4424           nsse
4425               noise preserving sum of squared differences
4426
4427           w53 5/3 wavelet, only used in snow
4428
4429           w97 9/7 wavelet, only used in snow
4430
4431           dctmax
4432           chroma
4433       pre_dia_size integer (encoding,video)
4434           Set diamond type & size for motion estimation pre-pass.
4435
4436       subq integer (encoding,video)
4437           Set sub pel motion estimation quality.
4438
4439       me_range integer (encoding,video)
4440           Set limit motion vectors range (1023 for DivX player).
4441
4442       global_quality integer (encoding,audio,video)
4443       slice_flags integer
4444       mbd integer (encoding,video)
4445           Set macroblock decision algorithm (high quality mode).
4446
4447           Possible values:
4448
4449           simple
4450               use mbcmp (default)
4451
4452           bits
4453               use fewest bits
4454
4455           rd  use best rate distortion
4456
4457       rc_init_occupancy integer (encoding,video)
4458           Set number of bits which should be loaded into the rc buffer before
4459           decoding starts.
4460
4461       flags2 flags (decoding/encoding,audio,video,subtitles)
4462           Possible values:
4463
4464           fast
4465               Allow non spec compliant speedup tricks.
4466
4467           noout
4468               Skip bitstream encoding.
4469
4470           ignorecrop
4471               Ignore cropping information from sps.
4472
4473           local_header
4474               Place global headers at every keyframe instead of in extradata.
4475
4476           chunks
4477               Frame data might be split into multiple chunks.
4478
4479           showall
4480               Show all frames before the first keyframe.
4481
4482           export_mvs
4483               Export motion vectors into frame side-data (see
4484               "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
4485               also doc/examples/export_mvs.c.
4486
4487           skip_manual
4488               Do not skip samples and export skip information as frame side
4489               data.
4490
4491           ass_ro_flush_noop
4492               Do not reset ASS ReadOrder field on flush.
4493
4494       export_side_data flags (decoding/encoding,audio,video,subtitles)
4495           Possible values:
4496
4497           mvs Export motion vectors into frame side-data (see
4498               "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
4499               also doc/examples/export_mvs.c.
4500
4501           prft
4502               Export encoder Producer Reference Time into packet side-data
4503               (see "AV_PKT_DATA_PRFT") for codecs that support it.
4504
4505           venc_params
4506               Export video encoding parameters through frame side data (see
4507               "AV_FRAME_DATA_VIDEO_ENC_PARAMS") for codecs that support it.
4508               At present, those are H.264 and VP9.
4509
4510           film_grain
4511               Export film grain parameters through frame side data (see
4512               "AV_FRAME_DATA_FILM_GRAIN_PARAMS").  Supported at present by
4513               AV1 decoders.
4514
4515       threads integer (decoding/encoding,video)
4516           Set the number of threads to be used, in case the selected codec
4517           implementation supports multi-threading.
4518
4519           Possible values:
4520
4521           auto, 0
4522               automatically select the number of threads to set
4523
4524           Default value is auto.
4525
4526       dc integer (encoding,video)
4527           Set intra_dc_precision.
4528
4529       nssew integer (encoding,video)
4530           Set nsse weight.
4531
4532       skip_top integer (decoding,video)
4533           Set number of macroblock rows at the top which are skipped.
4534
4535       skip_bottom integer (decoding,video)
4536           Set number of macroblock rows at the bottom which are skipped.
4537
4538       profile integer (encoding,audio,video)
4539           Set encoder codec profile. Default value is unknown. Encoder
4540           specific profiles are documented in the relevant encoder
4541           documentation.
4542
4543       level integer (encoding,audio,video)
4544           Possible values:
4545
4546           unknown
4547       lowres integer (decoding,audio,video)
4548           Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
4549
4550       mblmin integer (encoding,video)
4551           Set min macroblock lagrange factor (VBR).
4552
4553       mblmax integer (encoding,video)
4554           Set max macroblock lagrange factor (VBR).
4555
4556       skip_loop_filter integer (decoding,video)
4557       skip_idct        integer (decoding,video)
4558       skip_frame       integer (decoding,video)
4559           Make decoder discard processing depending on the frame type
4560           selected by the option value.
4561
4562           skip_loop_filter skips frame loop filtering, skip_idct skips frame
4563           IDCT/dequantization, skip_frame skips decoding.
4564
4565           Possible values:
4566
4567           none
4568               Discard no frame.
4569
4570           default
4571               Discard useless frames like 0-sized frames.
4572
4573           noref
4574               Discard all non-reference frames.
4575
4576           bidir
4577               Discard all bidirectional frames.
4578
4579           nokey
4580               Discard all frames excepts keyframes.
4581
4582           nointra
4583               Discard all frames except I frames.
4584
4585           all Discard all frames.
4586
4587           Default value is default.
4588
4589       bidir_refine integer (encoding,video)
4590           Refine the two motion vectors used in bidirectional macroblocks.
4591
4592       keyint_min integer (encoding,video)
4593           Set minimum interval between IDR-frames.
4594
4595       refs integer (encoding,video)
4596           Set reference frames to consider for motion compensation.
4597
4598       trellis integer (encoding,audio,video)
4599           Set rate-distortion optimal quantization.
4600
4601       mv0_threshold integer (encoding,video)
4602       compression_level integer (encoding,audio,video)
4603       bits_per_raw_sample integer
4604       channel_layout integer (decoding/encoding,audio)
4605           Possible values:
4606
4607       request_channel_layout integer (decoding,audio)
4608           Possible values:
4609
4610       rc_max_vbv_use float (encoding,video)
4611       rc_min_vbv_use float (encoding,video)
4612       ticks_per_frame integer (decoding/encoding,audio,video)
4613       color_primaries integer (decoding/encoding,video)
4614           Possible values:
4615
4616           bt709
4617               BT.709
4618
4619           bt470m
4620               BT.470 M
4621
4622           bt470bg
4623               BT.470 BG
4624
4625           smpte170m
4626               SMPTE 170 M
4627
4628           smpte240m
4629               SMPTE 240 M
4630
4631           film
4632               Film
4633
4634           bt2020
4635               BT.2020
4636
4637           smpte428
4638           smpte428_1
4639               SMPTE ST 428-1
4640
4641           smpte431
4642               SMPTE 431-2
4643
4644           smpte432
4645               SMPTE 432-1
4646
4647           jedec-p22
4648               JEDEC P22
4649
4650       color_trc integer (decoding/encoding,video)
4651           Possible values:
4652
4653           bt709
4654               BT.709
4655
4656           gamma22
4657               BT.470 M
4658
4659           gamma28
4660               BT.470 BG
4661
4662           smpte170m
4663               SMPTE 170 M
4664
4665           smpte240m
4666               SMPTE 240 M
4667
4668           linear
4669               Linear
4670
4671           log
4672           log100
4673               Log
4674
4675           log_sqrt
4676           log316
4677               Log square root
4678
4679           iec61966_2_4
4680           iec61966-2-4
4681               IEC 61966-2-4
4682
4683           bt1361
4684           bt1361e
4685               BT.1361
4686
4687           iec61966_2_1
4688           iec61966-2-1
4689               IEC 61966-2-1
4690
4691           bt2020_10
4692           bt2020_10bit
4693               BT.2020 - 10 bit
4694
4695           bt2020_12
4696           bt2020_12bit
4697               BT.2020 - 12 bit
4698
4699           smpte2084
4700               SMPTE ST 2084
4701
4702           smpte428
4703           smpte428_1
4704               SMPTE ST 428-1
4705
4706           arib-std-b67
4707               ARIB STD-B67
4708
4709       colorspace integer (decoding/encoding,video)
4710           Possible values:
4711
4712           rgb RGB
4713
4714           bt709
4715               BT.709
4716
4717           fcc FCC
4718
4719           bt470bg
4720               BT.470 BG
4721
4722           smpte170m
4723               SMPTE 170 M
4724
4725           smpte240m
4726               SMPTE 240 M
4727
4728           ycocg
4729               YCOCG
4730
4731           bt2020nc
4732           bt2020_ncl
4733               BT.2020 NCL
4734
4735           bt2020c
4736           bt2020_cl
4737               BT.2020 CL
4738
4739           smpte2085
4740               SMPTE 2085
4741
4742           chroma-derived-nc
4743               Chroma-derived NCL
4744
4745           chroma-derived-c
4746               Chroma-derived CL
4747
4748           ictcp
4749               ICtCp
4750
4751       color_range integer (decoding/encoding,video)
4752           If used as input parameter, it serves as a hint to the decoder,
4753           which color_range the input has.  Possible values:
4754
4755           tv
4756           mpeg
4757               MPEG (219*2^(n-8))
4758
4759           pc
4760           jpeg
4761               JPEG (2^n-1)
4762
4763       chroma_sample_location integer (decoding/encoding,video)
4764           Possible values:
4765
4766           left
4767           center
4768           topleft
4769           top
4770           bottomleft
4771           bottom
4772       log_level_offset integer
4773           Set the log level offset.
4774
4775       slices integer (encoding,video)
4776           Number of slices, used in parallelized encoding.
4777
4778       thread_type flags (decoding/encoding,video)
4779           Select which multithreading methods to use.
4780
4781           Use of frame will increase decoding delay by one frame per thread,
4782           so clients which cannot provide future frames should not use it.
4783
4784           Possible values:
4785
4786           slice
4787               Decode more than one part of a single frame at once.
4788
4789               Multithreading using slices works only when the video was
4790               encoded with slices.
4791
4792           frame
4793               Decode more than one frame at once.
4794
4795           Default value is slice+frame.
4796
4797       audio_service_type integer (encoding,audio)
4798           Set audio service type.
4799
4800           Possible values:
4801
4802           ma  Main Audio Service
4803
4804           ef  Effects
4805
4806           vi  Visually Impaired
4807
4808           hi  Hearing Impaired
4809
4810           di  Dialogue
4811
4812           co  Commentary
4813
4814           em  Emergency
4815
4816           vo  Voice Over
4817
4818           ka  Karaoke
4819
4820       request_sample_fmt sample_fmt (decoding,audio)
4821           Set sample format audio decoders should prefer. Default value is
4822           "none".
4823
4824       pkt_timebase rational number
4825       sub_charenc encoding (decoding,subtitles)
4826           Set the input subtitles character encoding.
4827
4828       field_order  field_order (video)
4829           Set/override the field order of the video.  Possible values:
4830
4831           progressive
4832               Progressive video
4833
4834           tt  Interlaced video, top field coded and displayed first
4835
4836           bb  Interlaced video, bottom field coded and displayed first
4837
4838           tb  Interlaced video, top coded first, bottom displayed first
4839
4840           bt  Interlaced video, bottom coded first, top displayed first
4841
4842       skip_alpha bool (decoding,video)
4843           Set to 1 to disable processing alpha (transparency). This works
4844           like the gray flag in the flags option which skips chroma
4845           information instead of alpha. Default is 0.
4846
4847       codec_whitelist list (input)
4848           "," separated list of allowed decoders. By default all are allowed.
4849
4850       dump_separator string (input)
4851           Separator used to separate the fields printed on the command line
4852           about the Stream parameters.  For example, to separate the fields
4853           with newlines and indentation:
4854
4855                   ffprobe -dump_separator "
4856                                             "  -i ~/videos/matrixbench_mpeg2.mpg
4857
4858       max_pixels integer (decoding/encoding,video)
4859           Maximum number of pixels per image. This value can be used to avoid
4860           out of memory failures due to large images.
4861
4862       apply_cropping bool (decoding,video)
4863           Enable cropping if cropping parameters are multiples of the
4864           required alignment for the left and top parameters. If the
4865           alignment is not met the cropping will be partially applied to
4866           maintain alignment.  Default is 1 (enabled).  Note: The required
4867           alignment depends on if "AV_CODEC_FLAG_UNALIGNED" is set and the
4868           CPU. "AV_CODEC_FLAG_UNALIGNED" cannot be changed from the command
4869           line. Also hardware decoders will not apply left/top Cropping.
4870

DECODERS

4872       Decoders are configured elements in FFmpeg which allow the decoding of
4873       multimedia streams.
4874
4875       When you configure your FFmpeg build, all the supported native decoders
4876       are enabled by default. Decoders requiring an external library must be
4877       enabled manually via the corresponding "--enable-lib" option. You can
4878       list all available decoders using the configure option
4879       "--list-decoders".
4880
4881       You can disable all the decoders with the configure option
4882       "--disable-decoders" and selectively enable / disable single decoders
4883       with the options "--enable-decoder=DECODER" /
4884       "--disable-decoder=DECODER".
4885
4886       The option "-decoders" of the ff* tools will display the list of
4887       enabled decoders.
4888

VIDEO DECODERS

4890       A description of some of the currently available video decoders
4891       follows.
4892
4893   av1
4894       AOMedia Video 1 (AV1) decoder.
4895
4896       Options
4897
4898       operating_point
4899           Select an operating point of a scalable AV1 bitstream (0 - 31).
4900           Default is 0.
4901
4902   rawvideo
4903       Raw video decoder.
4904
4905       This decoder decodes rawvideo streams.
4906
4907       Options
4908
4909       top top_field_first
4910           Specify the assumed field type of the input video.
4911
4912           -1  the video is assumed to be progressive (default)
4913
4914           0   bottom-field-first is assumed
4915
4916           1   top-field-first is assumed
4917
4918   libdav1d
4919       dav1d AV1 decoder.
4920
4921       libdav1d allows libavcodec to decode the AOMedia Video 1 (AV1) codec.
4922       Requires the presence of the libdav1d headers and library during
4923       configuration.  You need to explicitly configure the build with
4924       "--enable-libdav1d".
4925
4926       Options
4927
4928       The following options are supported by the libdav1d wrapper.
4929
4930       framethreads
4931           Set amount of frame threads to use during decoding. The default
4932           value is 0 (autodetect).  This option is deprecated for libdav1d >=
4933           1.0 and will be removed in the future. Use the global option
4934           "threads" instead.
4935
4936       tilethreads
4937           Set amount of tile threads to use during decoding. The default
4938           value is 0 (autodetect).  This option is deprecated for libdav1d >=
4939           1.0 and will be removed in the future. Use the global option
4940           "threads" instead.
4941
4942       filmgrain
4943           Apply film grain to the decoded video if present in the bitstream.
4944           Defaults to the internal default of the library.  This option is
4945           deprecated and will be removed in the future. See the global option
4946           "export_side_data" to export Film Grain parameters instead of
4947           applying it.
4948
4949       oppoint
4950           Select an operating point of a scalable AV1 bitstream (0 - 31).
4951           Defaults to the internal default of the library.
4952
4953       alllayers
4954           Output all spatial layers of a scalable AV1 bitstream. The default
4955           value is false.
4956
4957   libdavs2
4958       AVS2-P2/IEEE1857.4 video decoder wrapper.
4959
4960       This decoder allows libavcodec to decode AVS2 streams with davs2
4961       library.
4962
4963   libuavs3d
4964       AVS3-P2/IEEE1857.10 video decoder.
4965
4966       libuavs3d allows libavcodec to decode AVS3 streams.  Requires the
4967       presence of the libuavs3d headers and library during configuration.
4968       You need to explicitly configure the build with "--enable-libuavs3d".
4969
4970       Options
4971
4972       The following option is supported by the libuavs3d wrapper.
4973
4974       frame_threads
4975           Set amount of frame threads to use during decoding. The default
4976           value is 0 (autodetect).
4977
4978   QSV Decoders
4979       The family of Intel QuickSync Video decoders (VC1, MPEG-2, H.264, HEVC,
4980       JPEG/MJPEG, VP8, VP9, AV1).
4981
4982       Common Options
4983
4984       The following options are supported by all qsv decoders.
4985
4986       async_depth
4987           Internal parallelization depth, the higher the value the higher the
4988           latency.
4989
4990       gpu_copy
4991           A GPU-accelerated copy between video and system memory
4992
4993           default
4994           on
4995           off
4996
4997       HEVC Options
4998
4999       Extra options for hevc_qsv.
5000
5001       load_plugin
5002           A user plugin to load in an internal session
5003
5004           none
5005           hevc_sw
5006           hevc_hw
5007       load_plugins
5008           A :-separate list of hexadecimal plugin UIDs to load in an internal
5009           session
5010
5011   v210
5012       Uncompressed 4:2:2 10-bit decoder.
5013
5014       Options
5015
5016       custom_stride
5017           Set the line size of the v210 data in bytes. The default value is 0
5018           (autodetect). You can use the special -1 value for a strideless
5019           v210 as seen in BOXX files.
5020

AUDIO DECODERS

5022       A description of some of the currently available audio decoders
5023       follows.
5024
5025   ac3
5026       AC-3 audio decoder.
5027
5028       This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as
5029       well as the undocumented RealAudio 3 (a.k.a. dnet).
5030
5031       AC-3 Decoder Options
5032
5033       -drc_scale value
5034           Dynamic Range Scale Factor. The factor to apply to dynamic range
5035           values from the AC-3 stream. This factor is applied exponentially.
5036           The default value is 1.  There are 3 notable scale factor ranges:
5037
5038           drc_scale == 0
5039               DRC disabled. Produces full range audio.
5040
5041           0 < drc_scale <= 1
5042               DRC enabled.  Applies a fraction of the stream DRC value.
5043               Audio reproduction is between full range and full compression.
5044
5045           drc_scale > 1
5046               DRC enabled. Applies drc_scale asymmetrically.  Loud sounds are
5047               fully compressed.  Soft sounds are enhanced.
5048
5049   flac
5050       FLAC audio decoder.
5051
5052       This decoder aims to implement the complete FLAC specification from
5053       Xiph.
5054
5055       FLAC Decoder options
5056
5057       -use_buggy_lpc
5058           The lavc FLAC encoder used to produce buggy streams with high lpc
5059           values (like the default value). This option makes it possible to
5060           decode such streams correctly by using lavc's old buggy lpc logic
5061           for decoding.
5062
5063   ffwavesynth
5064       Internal wave synthesizer.
5065
5066       This decoder generates wave patterns according to predefined sequences.
5067       Its use is purely internal and the format of the data it accepts is not
5068       publicly documented.
5069
5070   libcelt
5071       libcelt decoder wrapper.
5072
5073       libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio
5074       codec.  Requires the presence of the libcelt headers and library during
5075       configuration.  You need to explicitly configure the build with
5076       "--enable-libcelt".
5077
5078   libgsm
5079       libgsm decoder wrapper.
5080
5081       libgsm allows libavcodec to decode the GSM full rate audio codec.
5082       Requires the presence of the libgsm headers and library during
5083       configuration. You need to explicitly configure the build with
5084       "--enable-libgsm".
5085
5086       This decoder supports both the ordinary GSM and the Microsoft variant.
5087
5088   libilbc
5089       libilbc decoder wrapper.
5090
5091       libilbc allows libavcodec to decode the Internet Low Bitrate Codec
5092       (iLBC) audio codec. Requires the presence of the libilbc headers and
5093       library during configuration. You need to explicitly configure the
5094       build with "--enable-libilbc".
5095
5096       Options
5097
5098       The following option is supported by the libilbc wrapper.
5099
5100       enhance
5101           Enable the enhancement of the decoded audio when set to 1. The
5102           default value is 0 (disabled).
5103
5104   libopencore-amrnb
5105       libopencore-amrnb decoder wrapper.
5106
5107       libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate
5108       Narrowband audio codec. Using it requires the presence of the
5109       libopencore-amrnb headers and library during configuration. You need to
5110       explicitly configure the build with "--enable-libopencore-amrnb".
5111
5112       An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB
5113       without this library.
5114
5115   libopencore-amrwb
5116       libopencore-amrwb decoder wrapper.
5117
5118       libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate
5119       Wideband audio codec. Using it requires the presence of the
5120       libopencore-amrwb headers and library during configuration. You need to
5121       explicitly configure the build with "--enable-libopencore-amrwb".
5122
5123       An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB
5124       without this library.
5125
5126   libopus
5127       libopus decoder wrapper.
5128
5129       libopus allows libavcodec to decode the Opus Interactive Audio Codec.
5130       Requires the presence of the libopus headers and library during
5131       configuration. You need to explicitly configure the build with
5132       "--enable-libopus".
5133
5134       An FFmpeg native decoder for Opus exists, so users can decode Opus
5135       without this library.
5136

SUBTITLES DECODERS

5138   libaribb24
5139       ARIB STD-B24 caption decoder.
5140
5141       Implements profiles A and C of the ARIB STD-B24 standard.
5142
5143       libaribb24 Decoder Options
5144
5145       -aribb24-base-path path
5146           Sets the base path for the libaribb24 library. This is utilized for
5147           reading of configuration files (for custom unicode conversions),
5148           and for dumping of non-text symbols as images under that location.
5149
5150           Unset by default.
5151
5152       -aribb24-skip-ruby-text boolean
5153           Tells the decoder wrapper to skip text blocks that contain half-
5154           height ruby text.
5155
5156           Enabled by default.
5157
5158   dvbsub
5159       Options
5160
5161       compute_clut
5162           -2  Compute clut once if no matching CLUT is in the stream.
5163
5164           -1  Compute clut if no matching CLUT is in the stream.
5165
5166           0   Never compute CLUT
5167
5168           1   Always compute CLUT and override the one provided in the
5169               stream.
5170
5171       dvb_substream
5172           Selects the dvb substream, or all substreams if -1 which is
5173           default.
5174
5175   dvdsub
5176       This codec decodes the bitmap subtitles used in DVDs; the same
5177       subtitles can also be found in VobSub file pairs and in some Matroska
5178       files.
5179
5180       Options
5181
5182       palette
5183           Specify the global palette used by the bitmaps. When stored in
5184           VobSub, the palette is normally specified in the index file; in
5185           Matroska, the palette is stored in the codec extra-data in the same
5186           format as in VobSub. In DVDs, the palette is stored in the IFO
5187           file, and therefore not available when reading from dumped VOB
5188           files.
5189
5190           The format for this option is a string containing 16 24-bits
5191           hexadecimal numbers (without 0x prefix) separated by commas, for
5192           example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b,
5193           0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c,
5194           7c127b".
5195
5196       ifo_palette
5197           Specify the IFO file from which the global palette is obtained.
5198           (experimental)
5199
5200       forced_subs_only
5201           Only decode subtitle entries marked as forced. Some titles have
5202           forced and non-forced subtitles in the same track. Setting this
5203           flag to 1 will only keep the forced subtitles. Default value is 0.
5204
5205   libzvbi-teletext
5206       Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext
5207       subtitles. Requires the presence of the libzvbi headers and library
5208       during configuration. You need to explicitly configure the build with
5209       "--enable-libzvbi".
5210
5211       Options
5212
5213       txt_page
5214           List of teletext page numbers to decode. Pages that do not match
5215           the specified list are dropped. You may use the special "*" string
5216           to match all pages, or "subtitle" to match all subtitle pages.
5217           Default value is *.
5218
5219       txt_default_region
5220           Set default character set used for decoding, a value between 0 and
5221           87 (see ETS 300 706, Section 15, Table 32). Default value is -1,
5222           which does not override the libzvbi default. This option is needed
5223           for some legacy level 1.0 transmissions which cannot signal the
5224           proper charset.
5225
5226       txt_chop_top
5227           Discards the top teletext line. Default value is 1.
5228
5229       txt_format
5230           Specifies the format of the decoded subtitles.
5231
5232           bitmap
5233               The default format, you should use this for teletext pages,
5234               because certain graphics and colors cannot be expressed in
5235               simple text or even ASS.
5236
5237           text
5238               Simple text based output without formatting.
5239
5240           ass Formatted ASS output, subtitle pages and teletext pages are
5241               returned in different styles, subtitle pages are stripped down
5242               to text, but an effort is made to keep the text alignment and
5243               the formatting.
5244
5245       txt_left
5246           X offset of generated bitmaps, default is 0.
5247
5248       txt_top
5249           Y offset of generated bitmaps, default is 0.
5250
5251       txt_chop_spaces
5252           Chops leading and trailing spaces and removes empty lines from the
5253           generated text. This option is useful for teletext based subtitles
5254           where empty spaces may be present at the start or at the end of the
5255           lines or empty lines may be present between the subtitle lines
5256           because of double-sized teletext characters.  Default value is 1.
5257
5258       txt_duration
5259           Sets the display duration of the decoded teletext pages or
5260           subtitles in milliseconds. Default value is -1 which means infinity
5261           or until the next subtitle event comes.
5262
5263       txt_transparent
5264           Force transparent background of the generated teletext bitmaps.
5265           Default value is 0 which means an opaque background.
5266
5267       txt_opacity
5268           Sets the opacity (0-255) of the teletext background. If
5269           txt_transparent is not set, it only affects characters between a
5270           start box and an end box, typically subtitles. Default value is 0
5271           if txt_transparent is set, 255 otherwise.
5272

ENCODERS

5274       Encoders are configured elements in FFmpeg which allow the encoding of
5275       multimedia streams.
5276
5277       When you configure your FFmpeg build, all the supported native encoders
5278       are enabled by default. Encoders requiring an external library must be
5279       enabled manually via the corresponding "--enable-lib" option. You can
5280       list all available encoders using the configure option
5281       "--list-encoders".
5282
5283       You can disable all the encoders with the configure option
5284       "--disable-encoders" and selectively enable / disable single encoders
5285       with the options "--enable-encoder=ENCODER" /
5286       "--disable-encoder=ENCODER".
5287
5288       The option "-encoders" of the ff* tools will display the list of
5289       enabled encoders.
5290

AUDIO ENCODERS

5292       A description of some of the currently available audio encoders
5293       follows.
5294
5295   aac
5296       Advanced Audio Coding (AAC) encoder.
5297
5298       This encoder is the default AAC encoder, natively implemented into
5299       FFmpeg.
5300
5301       Options
5302
5303       b   Set bit rate in bits/s. Setting this automatically activates
5304           constant bit rate (CBR) mode. If this option is unspecified it is
5305           set to 128kbps.
5306
5307       q   Set quality for variable bit rate (VBR) mode. This option is valid
5308           only using the ffmpeg command-line tool. For library interface
5309           users, use global_quality.
5310
5311       cutoff
5312           Set cutoff frequency. If unspecified will allow the encoder to
5313           dynamically adjust the cutoff to improve clarity on low bitrates.
5314
5315       aac_coder
5316           Set AAC encoder coding method. Possible values:
5317
5318           twoloop
5319               Two loop searching (TLS) method. This is the default method.
5320
5321               This method first sets quantizers depending on band thresholds
5322               and then tries to find an optimal combination by adding or
5323               subtracting a specific value from all quantizers and adjusting
5324               some individual quantizer a little.  Will tune itself based on
5325               whether aac_is, aac_ms and aac_pns are enabled.
5326
5327           anmr
5328               Average noise to mask ratio (ANMR) trellis-based solution.
5329
5330               This is an experimental coder which currently produces a lower
5331               quality, is more unstable and is slower than the default
5332               twoloop coder but has potential.  Currently has no support for
5333               the aac_is or aac_pns options.  Not currently recommended.
5334
5335           fast
5336               Constant quantizer method.
5337
5338               Uses a cheaper version of twoloop algorithm that doesn't try to
5339               do as many clever adjustments. Worse with low bitrates (less
5340               than 64kbps), but is better and much faster at higher bitrates.
5341
5342       aac_ms
5343           Sets mid/side coding mode. The default value of "auto" will
5344           automatically use M/S with bands which will benefit from such
5345           coding. Can be forced for all bands using the value "enable", which
5346           is mainly useful for debugging or disabled using "disable".
5347
5348       aac_is
5349           Sets intensity stereo coding tool usage. By default, it's enabled
5350           and will automatically toggle IS for similar pairs of stereo bands
5351           if it's beneficial.  Can be disabled for debugging by setting the
5352           value to "disable".
5353
5354       aac_pns
5355           Uses perceptual noise substitution to replace low entropy high
5356           frequency bands with imperceptible white noise during the decoding
5357           process. By default, it's enabled, but can be disabled for
5358           debugging purposes by using "disable".
5359
5360       aac_tns
5361           Enables the use of a multitap FIR filter which spans through the
5362           high frequency bands to hide quantization noise during the encoding
5363           process and is reverted by the decoder. As well as decreasing
5364           unpleasant artifacts in the high range this also reduces the
5365           entropy in the high bands and allows for more bits to be used by
5366           the mid-low bands. By default it's enabled but can be disabled for
5367           debugging by setting the option to "disable".
5368
5369       aac_ltp
5370           Enables the use of the long term prediction extension which
5371           increases coding efficiency in very low bandwidth situations such
5372           as encoding of voice or solo piano music by extending constant
5373           harmonic peaks in bands throughout frames. This option is implied
5374           by profile:a aac_low and is incompatible with aac_pred. Use in
5375           conjunction with -ar to decrease the samplerate.
5376
5377       aac_pred
5378           Enables the use of a more traditional style of prediction where the
5379           spectral coefficients transmitted are replaced by the difference of
5380           the current coefficients minus the previous "predicted"
5381           coefficients. In theory and sometimes in practice this can improve
5382           quality for low to mid bitrate audio.  This option implies the
5383           aac_main profile and is incompatible with aac_ltp.
5384
5385       profile
5386           Sets the encoding profile, possible values:
5387
5388           aac_low
5389               The default, AAC "Low-complexity" profile. Is the most
5390               compatible and produces decent quality.
5391
5392           mpeg2_aac_low
5393               Equivalent to "-profile:a aac_low -aac_pns 0". PNS was
5394               introduced with the MPEG4 specifications.
5395
5396           aac_ltp
5397               Long term prediction profile, is enabled by and will enable the
5398               aac_ltp option. Introduced in MPEG4.
5399
5400           aac_main
5401               Main-type prediction profile, is enabled by and will enable the
5402               aac_pred option. Introduced in MPEG2.
5403
5404           If this option is unspecified it is set to aac_low.
5405
5406   ac3 and ac3_fixed
5407       AC-3 audio encoders.
5408
5409       These encoders implement part of ATSC A/52:2010 and ETSI TS 102 366, as
5410       well as the undocumented RealAudio 3 (a.k.a. dnet).
5411
5412       The ac3 encoder uses floating-point math, while the ac3_fixed encoder
5413       only uses fixed-point integer math. This does not mean that one is
5414       always faster, just that one or the other may be better suited to a
5415       particular system. The ac3_fixed encoder is not the default codec for
5416       any of the output formats, so it must be specified explicitly using the
5417       option "-acodec ac3_fixed" in order to use it.
5418
5419       AC-3 Metadata
5420
5421       The AC-3 metadata options are used to set parameters that describe the
5422       audio, but in most cases do not affect the audio encoding itself. Some
5423       of the options do directly affect or influence the decoding and
5424       playback of the resulting bitstream, while others are just for
5425       informational purposes. A few of the options will add bits to the
5426       output stream that could otherwise be used for audio data, and will
5427       thus affect the quality of the output. Those will be indicated
5428       accordingly with a note in the option list below.
5429
5430       These parameters are described in detail in several publicly-available
5431       documents.
5432
5433       *<<http://www.atsc.org/cms/standards/a_52-2010.pdf>>
5434       *<<http://www.atsc.org/cms/standards/a_54a_with_corr_1.pdf>>
5435       *<<http://www.dolby.com/uploadedFiles/zz-_Shared_Assets/English_PDFs/Professional/18_Metadata.Guide.pdf>>
5436       *<<http://www.dolby.com/uploadedFiles/zz-_Shared_Assets/English_PDFs/Professional/46_DDEncodingGuidelines.pdf>>
5437
5438       Metadata Control Options
5439
5440       -per_frame_metadata boolean
5441           Allow Per-Frame Metadata. Specifies if the encoder should check for
5442           changing metadata for each frame.
5443
5444           0   The metadata values set at initialization will be used for
5445               every frame in the stream. (default)
5446
5447           1   Metadata values can be changed before encoding each frame.
5448
5449       Downmix Levels
5450
5451       -center_mixlev level
5452           Center Mix Level. The amount of gain the decoder should apply to
5453           the center channel when downmixing to stereo. This field will only
5454           be written to the bitstream if a center channel is present. The
5455           value is specified as a scale factor. There are 3 valid values:
5456
5457           0.707
5458               Apply -3dB gain
5459
5460           0.595
5461               Apply -4.5dB gain (default)
5462
5463           0.500
5464               Apply -6dB gain
5465
5466       -surround_mixlev level
5467           Surround Mix Level. The amount of gain the decoder should apply to
5468           the surround channel(s) when downmixing to stereo. This field will
5469           only be written to the bitstream if one or more surround channels
5470           are present. The value is specified as a scale factor.  There are 3
5471           valid values:
5472
5473           0.707
5474               Apply -3dB gain
5475
5476           0.500
5477               Apply -6dB gain (default)
5478
5479           0.000
5480               Silence Surround Channel(s)
5481
5482       Audio Production Information
5483
5484       Audio Production Information is optional information describing the
5485       mixing environment.  Either none or both of the fields are written to
5486       the bitstream.
5487
5488       -mixing_level number
5489           Mixing Level. Specifies peak sound pressure level (SPL) in the
5490           production environment when the mix was mastered. Valid values are
5491           80 to 111, or -1 for unknown or not indicated. The default value is
5492           -1, but that value cannot be used if the Audio Production
5493           Information is written to the bitstream. Therefore, if the
5494           "room_type" option is not the default value, the "mixing_level"
5495           option must not be -1.
5496
5497       -room_type type
5498           Room Type. Describes the equalization used during the final mixing
5499           session at the studio or on the dubbing stage. A large room is a
5500           dubbing stage with the industry standard X-curve equalization; a
5501           small room has flat equalization.  This field will not be written
5502           to the bitstream if both the "mixing_level" option and the
5503           "room_type" option have the default values.
5504
5505           0
5506           notindicated
5507               Not Indicated (default)
5508
5509           1
5510           large
5511               Large Room
5512
5513           2
5514           small
5515               Small Room
5516
5517       Other Metadata Options
5518
5519       -copyright boolean
5520           Copyright Indicator. Specifies whether a copyright exists for this
5521           audio.
5522
5523           0
5524           off No Copyright Exists (default)
5525
5526           1
5527           on  Copyright Exists
5528
5529       -dialnorm value
5530           Dialogue Normalization. Indicates how far the average dialogue
5531           level of the program is below digital 100% full scale (0 dBFS).
5532           This parameter determines a level shift during audio reproduction
5533           that sets the average volume of the dialogue to a preset level. The
5534           goal is to match volume level between program sources. A value of
5535           -31dB will result in no volume level change, relative to the source
5536           volume, during audio reproduction. Valid values are whole numbers
5537           in the range -31 to -1, with -31 being the default.
5538
5539       -dsur_mode mode
5540           Dolby Surround Mode. Specifies whether the stereo signal uses Dolby
5541           Surround (Pro Logic). This field will only be written to the
5542           bitstream if the audio stream is stereo. Using this option does NOT
5543           mean the encoder will actually apply Dolby Surround processing.
5544
5545           0
5546           notindicated
5547               Not Indicated (default)
5548
5549           1
5550           off Not Dolby Surround Encoded
5551
5552           2
5553           on  Dolby Surround Encoded
5554
5555       -original boolean
5556           Original Bit Stream Indicator. Specifies whether this audio is from
5557           the original source and not a copy.
5558
5559           0
5560           off Not Original Source
5561
5562           1
5563           on  Original Source (default)
5564
5565       Extended Bitstream Information
5566
5567       The extended bitstream options are part of the Alternate Bit Stream
5568       Syntax as specified in Annex D of the A/52:2010 standard. It is grouped
5569       into 2 parts.  If any one parameter in a group is specified, all values
5570       in that group will be written to the bitstream.  Default values are
5571       used for those that are written but have not been specified.  If the
5572       mixing levels are written, the decoder will use these values instead of
5573       the ones specified in the "center_mixlev" and "surround_mixlev" options
5574       if it supports the Alternate Bit Stream Syntax.
5575
5576       Extended Bitstream Information - Part 1
5577
5578       -dmix_mode mode
5579           Preferred Stereo Downmix Mode. Allows the user to select either
5580           Lt/Rt (Dolby Surround) or Lo/Ro (normal stereo) as the preferred
5581           stereo downmix mode.
5582
5583           0
5584           notindicated
5585               Not Indicated (default)
5586
5587           1
5588           ltrt
5589               Lt/Rt Downmix Preferred
5590
5591           2
5592           loro
5593               Lo/Ro Downmix Preferred
5594
5595       -ltrt_cmixlev level
5596           Lt/Rt Center Mix Level. The amount of gain the decoder should apply
5597           to the center channel when downmixing to stereo in Lt/Rt mode.
5598
5599           1.414
5600               Apply +3dB gain
5601
5602           1.189
5603               Apply +1.5dB gain
5604
5605           1.000
5606               Apply 0dB gain
5607
5608           0.841
5609               Apply -1.5dB gain
5610
5611           0.707
5612               Apply -3.0dB gain
5613
5614           0.595
5615               Apply -4.5dB gain (default)
5616
5617           0.500
5618               Apply -6.0dB gain
5619
5620           0.000
5621               Silence Center Channel
5622
5623       -ltrt_surmixlev level
5624           Lt/Rt Surround Mix Level. The amount of gain the decoder should
5625           apply to the surround channel(s) when downmixing to stereo in Lt/Rt
5626           mode.
5627
5628           0.841
5629               Apply -1.5dB gain
5630
5631           0.707
5632               Apply -3.0dB gain
5633
5634           0.595
5635               Apply -4.5dB gain
5636
5637           0.500
5638               Apply -6.0dB gain (default)
5639
5640           0.000
5641               Silence Surround Channel(s)
5642
5643       -loro_cmixlev level
5644           Lo/Ro Center Mix Level. The amount of gain the decoder should apply
5645           to the center channel when downmixing to stereo in Lo/Ro mode.
5646
5647           1.414
5648               Apply +3dB gain
5649
5650           1.189
5651               Apply +1.5dB gain
5652
5653           1.000
5654               Apply 0dB gain
5655
5656           0.841
5657               Apply -1.5dB gain
5658
5659           0.707
5660               Apply -3.0dB gain
5661
5662           0.595
5663               Apply -4.5dB gain (default)
5664
5665           0.500
5666               Apply -6.0dB gain
5667
5668           0.000
5669               Silence Center Channel
5670
5671       -loro_surmixlev level
5672           Lo/Ro Surround Mix Level. The amount of gain the decoder should
5673           apply to the surround channel(s) when downmixing to stereo in Lo/Ro
5674           mode.
5675
5676           0.841
5677               Apply -1.5dB gain
5678
5679           0.707
5680               Apply -3.0dB gain
5681
5682           0.595
5683               Apply -4.5dB gain
5684
5685           0.500
5686               Apply -6.0dB gain (default)
5687
5688           0.000
5689               Silence Surround Channel(s)
5690
5691       Extended Bitstream Information - Part 2
5692
5693       -dsurex_mode mode
5694           Dolby Surround EX Mode. Indicates whether the stream uses Dolby
5695           Surround EX (7.1 matrixed to 5.1). Using this option does NOT mean
5696           the encoder will actually apply Dolby Surround EX processing.
5697
5698           0
5699           notindicated
5700               Not Indicated (default)
5701
5702           1
5703           on  Dolby Surround EX Off
5704
5705           2
5706           off Dolby Surround EX On
5707
5708       -dheadphone_mode mode
5709           Dolby Headphone Mode. Indicates whether the stream uses Dolby
5710           Headphone encoding (multi-channel matrixed to 2.0 for use with
5711           headphones). Using this option does NOT mean the encoder will
5712           actually apply Dolby Headphone processing.
5713
5714           0
5715           notindicated
5716               Not Indicated (default)
5717
5718           1
5719           on  Dolby Headphone Off
5720
5721           2
5722           off Dolby Headphone On
5723
5724       -ad_conv_type type
5725           A/D Converter Type. Indicates whether the audio has passed through
5726           HDCD A/D conversion.
5727
5728           0
5729           standard
5730               Standard A/D Converter (default)
5731
5732           1
5733           hdcd
5734               HDCD A/D Converter
5735
5736       Other AC-3 Encoding Options
5737
5738       -stereo_rematrixing boolean
5739           Stereo Rematrixing. Enables/Disables use of rematrixing for stereo
5740           input. This is an optional AC-3 feature that increases quality by
5741           selectively encoding the left/right channels as mid/side. This
5742           option is enabled by default, and it is highly recommended that it
5743           be left as enabled except for testing purposes.
5744
5745       cutoff frequency
5746           Set lowpass cutoff frequency. If unspecified, the encoder selects a
5747           default determined by various other encoding parameters.
5748
5749       Floating-Point-Only AC-3 Encoding Options
5750
5751       These options are only valid for the floating-point encoder and do not
5752       exist for the fixed-point encoder due to the corresponding features not
5753       being implemented in fixed-point.
5754
5755       -channel_coupling boolean
5756           Enables/Disables use of channel coupling, which is an optional AC-3
5757           feature that increases quality by combining high frequency
5758           information from multiple channels into a single channel. The per-
5759           channel high frequency information is sent with less accuracy in
5760           both the frequency and time domains. This allows more bits to be
5761           used for lower frequencies while preserving enough information to
5762           reconstruct the high frequencies. This option is enabled by default
5763           for the floating-point encoder and should generally be left as
5764           enabled except for testing purposes or to increase encoding speed.
5765
5766           -1
5767           auto
5768               Selected by Encoder (default)
5769
5770           0
5771           off Disable Channel Coupling
5772
5773           1
5774           on  Enable Channel Coupling
5775
5776       -cpl_start_band number
5777           Coupling Start Band. Sets the channel coupling start band, from 1
5778           to 15. If a value higher than the bandwidth is used, it will be
5779           reduced to 1 less than the coupling end band. If auto is used, the
5780           start band will be determined by the encoder based on the bit rate,
5781           sample rate, and channel layout. This option has no effect if
5782           channel coupling is disabled.
5783
5784           -1
5785           auto
5786               Selected by Encoder (default)
5787
5788   flac
5789       FLAC (Free Lossless Audio Codec) Encoder
5790
5791       Options
5792
5793       The following options are supported by FFmpeg's flac encoder.
5794
5795       compression_level
5796           Sets the compression level, which chooses defaults for many other
5797           options if they are not set explicitly. Valid values are from 0 to
5798           12, 5 is the default.
5799
5800       frame_size
5801           Sets the size of the frames in samples per channel.
5802
5803       lpc_coeff_precision
5804           Sets the LPC coefficient precision, valid values are from 1 to 15,
5805           15 is the default.
5806
5807       lpc_type
5808           Sets the first stage LPC algorithm
5809
5810           none
5811               LPC is not used
5812
5813           fixed
5814               fixed LPC coefficients
5815
5816           levinson
5817           cholesky
5818       lpc_passes
5819           Number of passes to use for Cholesky factorization during LPC
5820           analysis
5821
5822       min_partition_order
5823           The minimum partition order
5824
5825       max_partition_order
5826           The maximum partition order
5827
5828       prediction_order_method
5829           estimation
5830           2level
5831           4level
5832           8level
5833           search
5834               Bruteforce search
5835
5836           log
5837       ch_mode
5838           Channel mode
5839
5840           auto
5841               The mode is chosen automatically for each frame
5842
5843           indep
5844               Channels are independently coded
5845
5846           left_side
5847           right_side
5848           mid_side
5849       exact_rice_parameters
5850           Chooses if rice parameters are calculated exactly or approximately.
5851           if set to 1 then they are chosen exactly, which slows the code down
5852           slightly and improves compression slightly.
5853
5854       multi_dim_quant
5855           Multi Dimensional Quantization. If set to 1 then a 2nd stage LPC
5856           algorithm is applied after the first stage to finetune the
5857           coefficients. This is quite slow and slightly improves compression.
5858
5859   opus
5860       Opus encoder.
5861
5862       This is a native FFmpeg encoder for the Opus format. Currently its in
5863       development and only implements the CELT part of the codec. Its quality
5864       is usually worse and at best is equal to the libopus encoder.
5865
5866       Options
5867
5868       b   Set bit rate in bits/s. If unspecified it uses the number of
5869           channels and the layout to make a good guess.
5870
5871       opus_delay
5872           Sets the maximum delay in milliseconds. Lower delays than 20ms will
5873           very quickly decrease quality.
5874
5875   libfdk_aac
5876       libfdk-aac AAC (Advanced Audio Coding) encoder wrapper.
5877
5878       The libfdk-aac library is based on the Fraunhofer FDK AAC code from the
5879       Android project.
5880
5881       Requires the presence of the libfdk-aac headers and library during
5882       configuration. You need to explicitly configure the build with
5883       "--enable-libfdk-aac". The library is also incompatible with GPL, so if
5884       you allow the use of GPL, you should configure with "--enable-gpl
5885       --enable-nonfree --enable-libfdk-aac".
5886
5887       This encoder has support for the AAC-HE profiles.
5888
5889       VBR encoding, enabled through the vbr or flags +qscale options, is
5890       experimental and only works with some combinations of parameters.
5891
5892       Support for encoding 7.1 audio is only available with libfdk-aac 0.1.3
5893       or higher.
5894
5895       For more information see the fdk-aac project at
5896       <http://sourceforge.net/p/opencore-amr/fdk-aac/>.
5897
5898       Options
5899
5900       The following options are mapped on the shared FFmpeg codec options.
5901
5902       b   Set bit rate in bits/s. If the bitrate is not explicitly specified,
5903           it is automatically set to a suitable value depending on the
5904           selected profile.
5905
5906           In case VBR mode is enabled the option is ignored.
5907
5908       ar  Set audio sampling rate (in Hz).
5909
5910       channels
5911           Set the number of audio channels.
5912
5913       flags +qscale
5914           Enable fixed quality, VBR (Variable Bit Rate) mode.  Note that VBR
5915           is implicitly enabled when the vbr value is positive.
5916
5917       cutoff
5918           Set cutoff frequency. If not specified (or explicitly set to 0) it
5919           will use a value automatically computed by the library. Default
5920           value is 0.
5921
5922       profile
5923           Set audio profile.
5924
5925           The following profiles are recognized:
5926
5927           aac_low
5928               Low Complexity AAC (LC)
5929
5930           aac_he
5931               High Efficiency AAC (HE-AAC)
5932
5933           aac_he_v2
5934               High Efficiency AAC version 2 (HE-AACv2)
5935
5936           aac_ld
5937               Low Delay AAC (LD)
5938
5939           aac_eld
5940               Enhanced Low Delay AAC (ELD)
5941
5942           If not specified it is set to aac_low.
5943
5944       The following are private options of the libfdk_aac encoder.
5945
5946       afterburner
5947           Enable afterburner feature if set to 1, disabled if set to 0. This
5948           improves the quality but also the required processing power.
5949
5950           Default value is 1.
5951
5952       eld_sbr
5953           Enable SBR (Spectral Band Replication) for ELD if set to 1,
5954           disabled if set to 0.
5955
5956           Default value is 0.
5957
5958       eld_v2
5959           Enable ELDv2 (LD-MPS extension for ELD stereo signals) for ELDv2 if
5960           set to 1, disabled if set to 0.
5961
5962           Note that option is available when fdk-aac version
5963           (AACENCODER_LIB_VL0.AACENCODER_LIB_VL1.AACENCODER_LIB_VL2) >
5964           (4.0.0).
5965
5966           Default value is 0.
5967
5968       signaling
5969           Set SBR/PS signaling style.
5970
5971           It can assume one of the following values:
5972
5973           default
5974               choose signaling implicitly (explicit hierarchical by default,
5975               implicit if global header is disabled)
5976
5977           implicit
5978               implicit backwards compatible signaling
5979
5980           explicit_sbr
5981               explicit SBR, implicit PS signaling
5982
5983           explicit_hierarchical
5984               explicit hierarchical signaling
5985
5986           Default value is default.
5987
5988       latm
5989           Output LATM/LOAS encapsulated data if set to 1, disabled if set to
5990           0.
5991
5992           Default value is 0.
5993
5994       header_period
5995           Set StreamMuxConfig and PCE repetition period (in frames) for
5996           sending in-band configuration buffers within LATM/LOAS transport
5997           layer.
5998
5999           Must be a 16-bits non-negative integer.
6000
6001           Default value is 0.
6002
6003       vbr Set VBR mode, from 1 to 5. 1 is lowest quality (though still pretty
6004           good) and 5 is highest quality. A value of 0 will disable VBR, and
6005           CBR (Constant Bit Rate) is enabled.
6006
6007           Currently only the aac_low profile supports VBR encoding.
6008
6009           VBR modes 1-5 correspond to roughly the following average bit
6010           rates:
6011
6012           1   32 kbps/channel
6013
6014           2   40 kbps/channel
6015
6016           3   48-56 kbps/channel
6017
6018           4   64 kbps/channel
6019
6020           5   about 80-96 kbps/channel
6021
6022           Default value is 0.
6023
6024       Examples
6025
6026       •   Use ffmpeg to convert an audio file to VBR AAC in an M4A (MP4)
6027           container:
6028
6029                   ffmpeg -i input.wav -codec:a libfdk_aac -vbr 3 output.m4a
6030
6031       •   Use ffmpeg to convert an audio file to CBR 64k kbps AAC, using the
6032           High-Efficiency AAC profile:
6033
6034                   ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he -b:a 64k output.m4a
6035
6036   libmp3lame
6037       LAME (Lame Ain't an MP3 Encoder) MP3 encoder wrapper.
6038
6039       Requires the presence of the libmp3lame headers and library during
6040       configuration. You need to explicitly configure the build with
6041       "--enable-libmp3lame".
6042
6043       See libshine for a fixed-point MP3 encoder, although with a lower
6044       quality.
6045
6046       Options
6047
6048       The following options are supported by the libmp3lame wrapper. The
6049       lame-equivalent of the options are listed in parentheses.
6050
6051       b (-b)
6052           Set bitrate expressed in bits/s for CBR or ABR. LAME "bitrate" is
6053           expressed in kilobits/s.
6054
6055       q (-V)
6056           Set constant quality setting for VBR. This option is valid only
6057           using the ffmpeg command-line tool. For library interface users,
6058           use global_quality.
6059
6060       compression_level (-q)
6061           Set algorithm quality. Valid arguments are integers in the 0-9
6062           range, with 0 meaning highest quality but slowest, and 9 meaning
6063           fastest while producing the worst quality.
6064
6065       cutoff (--lowpass)
6066           Set lowpass cutoff frequency. If unspecified, the encoder
6067           dynamically adjusts the cutoff.
6068
6069       reservoir
6070           Enable use of bit reservoir when set to 1. Default value is 1. LAME
6071           has this enabled by default, but can be overridden by use --nores
6072           option.
6073
6074       joint_stereo (-m j)
6075           Enable the encoder to use (on a frame by frame basis) either L/R
6076           stereo or mid/side stereo. Default value is 1.
6077
6078       abr (--abr)
6079           Enable the encoder to use ABR when set to 1. The lame --abr sets
6080           the target bitrate, while this options only tells FFmpeg to use ABR
6081           still relies on b to set bitrate.
6082
6083   libopencore-amrnb
6084       OpenCORE Adaptive Multi-Rate Narrowband encoder.
6085
6086       Requires the presence of the libopencore-amrnb headers and library
6087       during configuration. You need to explicitly configure the build with
6088       "--enable-libopencore-amrnb --enable-version3".
6089
6090       This is a mono-only encoder. Officially it only supports 8000Hz sample
6091       rate, but you can override it by setting strict to unofficial or lower.
6092
6093       Options
6094
6095       b   Set bitrate in bits per second. Only the following bitrates are
6096           supported, otherwise libavcodec will round to the nearest valid
6097           bitrate.
6098
6099           4750
6100           5150
6101           5900
6102           6700
6103           7400
6104           7950
6105           10200
6106           12200
6107       dtx Allow discontinuous transmission (generate comfort noise) when set
6108           to 1. The default value is 0 (disabled).
6109
6110   libopus
6111       libopus Opus Interactive Audio Codec encoder wrapper.
6112
6113       Requires the presence of the libopus headers and library during
6114       configuration. You need to explicitly configure the build with
6115       "--enable-libopus".
6116
6117       Option Mapping
6118
6119       Most libopus options are modelled after the opusenc utility from opus-
6120       tools. The following is an option mapping chart describing options
6121       supported by the libopus wrapper, and their opusenc-equivalent in
6122       parentheses.
6123
6124       b (bitrate)
6125           Set the bit rate in bits/s.  FFmpeg's b option is expressed in
6126           bits/s, while opusenc's bitrate in kilobits/s.
6127
6128       vbr (vbr, hard-cbr, and cvbr)
6129           Set VBR mode. The FFmpeg vbr option has the following valid
6130           arguments, with the opusenc equivalent options in parentheses:
6131
6132           off (hard-cbr)
6133               Use constant bit rate encoding.
6134
6135           on (vbr)
6136               Use variable bit rate encoding (the default).
6137
6138           constrained (cvbr)
6139               Use constrained variable bit rate encoding.
6140
6141       compression_level (comp)
6142           Set encoding algorithm complexity. Valid options are integers in
6143           the 0-10 range. 0 gives the fastest encodes but lower quality,
6144           while 10 gives the highest quality but slowest encoding. The
6145           default is 10.
6146
6147       frame_duration (framesize)
6148           Set maximum frame size, or duration of a frame in milliseconds. The
6149           argument must be exactly the following: 2.5, 5, 10, 20, 40, 60.
6150           Smaller frame sizes achieve lower latency but less quality at a
6151           given bitrate.  Sizes greater than 20ms are only interesting at
6152           fairly low bitrates.  The default is 20ms.
6153
6154       packet_loss (expect-loss)
6155           Set expected packet loss percentage. The default is 0.
6156
6157       fec (n/a)
6158           Enable inband forward error correction. packet_loss must be non-
6159           zero to take advantage - frequency of FEC 'side-data' is
6160           proportional to expected packet loss.  Default is disabled.
6161
6162       application (N.A.)
6163           Set intended application type. Valid options are listed below:
6164
6165           voip
6166               Favor improved speech intelligibility.
6167
6168           audio
6169               Favor faithfulness to the input (the default).
6170
6171           lowdelay
6172               Restrict to only the lowest delay modes.
6173
6174       cutoff (N.A.)
6175           Set cutoff bandwidth in Hz. The argument must be exactly one of the
6176           following: 4000, 6000, 8000, 12000, or 20000, corresponding to
6177           narrowband, mediumband, wideband, super wideband, and fullband
6178           respectively. The default is 0 (cutoff disabled).
6179
6180       mapping_family (mapping_family)
6181           Set channel mapping family to be used by the encoder. The default
6182           value of -1 uses mapping family 0 for mono and stereo inputs, and
6183           mapping family 1 otherwise. The default also disables the surround
6184           masking and LFE bandwidth optimzations in libopus, and requires
6185           that the input contains 8 channels or fewer.
6186
6187           Other values include 0 for mono and stereo, 1 for surround sound
6188           with masking and LFE bandwidth optimizations, and 255 for
6189           independent streams with an unspecified channel layout.
6190
6191       apply_phase_inv (N.A.) (requires libopus >= 1.2)
6192           If set to 0, disables the use of phase inversion for intensity
6193           stereo, improving the quality of mono downmixes, but slightly
6194           reducing normal stereo quality. The default is 1 (phase inversion
6195           enabled).
6196
6197   libshine
6198       Shine Fixed-Point MP3 encoder wrapper.
6199
6200       Shine is a fixed-point MP3 encoder. It has a far better performance on
6201       platforms without an FPU, e.g. armel CPUs, and some phones and tablets.
6202       However, as it is more targeted on performance than quality, it is not
6203       on par with LAME and other production-grade encoders quality-wise.
6204       Also, according to the project's homepage, this encoder may not be free
6205       of bugs as the code was written a long time ago and the project was
6206       dead for at least 5 years.
6207
6208       This encoder only supports stereo and mono input. This is also CBR-
6209       only.
6210
6211       The original project (last updated in early 2007) is at
6212       <http://sourceforge.net/projects/libshine-fxp/>. We only support the
6213       updated fork by the Savonet/Liquidsoap project at
6214       <https://github.com/savonet/shine>.
6215
6216       Requires the presence of the libshine headers and library during
6217       configuration. You need to explicitly configure the build with
6218       "--enable-libshine".
6219
6220       See also libmp3lame.
6221
6222       Options
6223
6224       The following options are supported by the libshine wrapper. The
6225       shineenc-equivalent of the options are listed in parentheses.
6226
6227       b (-b)
6228           Set bitrate expressed in bits/s for CBR. shineenc -b option is
6229           expressed in kilobits/s.
6230
6231   libtwolame
6232       TwoLAME MP2 encoder wrapper.
6233
6234       Requires the presence of the libtwolame headers and library during
6235       configuration. You need to explicitly configure the build with
6236       "--enable-libtwolame".
6237
6238       Options
6239
6240       The following options are supported by the libtwolame wrapper. The
6241       twolame-equivalent options follow the FFmpeg ones and are in
6242       parentheses.
6243
6244       b (-b)
6245           Set bitrate expressed in bits/s for CBR. twolame b option is
6246           expressed in kilobits/s. Default value is 128k.
6247
6248       q (-V)
6249           Set quality for experimental VBR support. Maximum value range is
6250           from -50 to 50, useful range is from -10 to 10. The higher the
6251           value, the better the quality. This option is valid only using the
6252           ffmpeg command-line tool. For library interface users, use
6253           global_quality.
6254
6255       mode (--mode)
6256           Set the mode of the resulting audio. Possible values:
6257
6258           auto
6259               Choose mode automatically based on the input. This is the
6260               default.
6261
6262           stereo
6263               Stereo
6264
6265           joint_stereo
6266               Joint stereo
6267
6268           dual_channel
6269               Dual channel
6270
6271           mono
6272               Mono
6273
6274       psymodel (--psyc-mode)
6275           Set psychoacoustic model to use in encoding. The argument must be
6276           an integer between -1 and 4, inclusive. The higher the value, the
6277           better the quality. The default value is 3.
6278
6279       energy_levels (--energy)
6280           Enable energy levels extensions when set to 1. The default value is
6281           0 (disabled).
6282
6283       error_protection (--protect)
6284           Enable CRC error protection when set to 1. The default value is 0
6285           (disabled).
6286
6287       copyright (--copyright)
6288           Set MPEG audio copyright flag when set to 1. The default value is 0
6289           (disabled).
6290
6291       original (--original)
6292           Set MPEG audio original flag when set to 1. The default value is 0
6293           (disabled).
6294
6295   libvo-amrwbenc
6296       VisualOn Adaptive Multi-Rate Wideband encoder.
6297
6298       Requires the presence of the libvo-amrwbenc headers and library during
6299       configuration. You need to explicitly configure the build with
6300       "--enable-libvo-amrwbenc --enable-version3".
6301
6302       This is a mono-only encoder. Officially it only supports 16000Hz sample
6303       rate, but you can override it by setting strict to unofficial or lower.
6304
6305       Options
6306
6307       b   Set bitrate in bits/s. Only the following bitrates are supported,
6308           otherwise libavcodec will round to the nearest valid bitrate.
6309
6310           6600
6311           8850
6312           12650
6313           14250
6314           15850
6315           18250
6316           19850
6317           23050
6318           23850
6319       dtx Allow discontinuous transmission (generate comfort noise) when set
6320           to 1. The default value is 0 (disabled).
6321
6322   libvorbis
6323       libvorbis encoder wrapper.
6324
6325       Requires the presence of the libvorbisenc headers and library during
6326       configuration. You need to explicitly configure the build with
6327       "--enable-libvorbis".
6328
6329       Options
6330
6331       The following options are supported by the libvorbis wrapper. The
6332       oggenc-equivalent of the options are listed in parentheses.
6333
6334       To get a more accurate and extensive documentation of the libvorbis
6335       options, consult the libvorbisenc's and oggenc's documentations.  See
6336       <http://xiph.org/vorbis/>, <http://wiki.xiph.org/Vorbis-tools>, and
6337       oggenc(1).
6338
6339       b (-b)
6340           Set bitrate expressed in bits/s for ABR. oggenc -b is expressed in
6341           kilobits/s.
6342
6343       q (-q)
6344           Set constant quality setting for VBR. The value should be a float
6345           number in the range of -1.0 to 10.0. The higher the value, the
6346           better the quality. The default value is 3.0.
6347
6348           This option is valid only using the ffmpeg command-line tool.  For
6349           library interface users, use global_quality.
6350
6351       cutoff (--advanced-encode-option lowpass_frequency=N)
6352           Set cutoff bandwidth in Hz, a value of 0 disables cutoff. oggenc's
6353           related option is expressed in kHz. The default value is 0 (cutoff
6354           disabled).
6355
6356       minrate (-m)
6357           Set minimum bitrate expressed in bits/s. oggenc -m is expressed in
6358           kilobits/s.
6359
6360       maxrate (-M)
6361           Set maximum bitrate expressed in bits/s. oggenc -M is expressed in
6362           kilobits/s. This only has effect on ABR mode.
6363
6364       iblock (--advanced-encode-option impulse_noisetune=N)
6365           Set noise floor bias for impulse blocks. The value is a float
6366           number from -15.0 to 0.0. A negative bias instructs the encoder to
6367           pay special attention to the crispness of transients in the encoded
6368           audio. The tradeoff for better transient response is a higher
6369           bitrate.
6370
6371   mjpeg
6372       Motion JPEG encoder.
6373
6374       Options
6375
6376       huffman
6377           Set the huffman encoding strategy. Possible values:
6378
6379           default
6380               Use the default huffman tables. This is the default strategy.
6381
6382           optimal
6383               Compute and use optimal huffman tables.
6384
6385   wavpack
6386       WavPack lossless audio encoder.
6387
6388       Options
6389
6390       The equivalent options for wavpack command line utility are listed in
6391       parentheses.
6392
6393       Shared options
6394
6395       The following shared options are effective for this encoder. Only
6396       special notes about this particular encoder will be documented here.
6397       For the general meaning of the options, see the Codec Options chapter.
6398
6399       frame_size (--blocksize)
6400           For this encoder, the range for this option is between 128 and
6401           131072. Default is automatically decided based on sample rate and
6402           number of channel.
6403
6404           For the complete formula of calculating default, see
6405           libavcodec/wavpackenc.c.
6406
6407       compression_level (-f, -h, -hh, and -x)
6408
6409       Private options
6410
6411       joint_stereo (-j)
6412           Set whether to enable joint stereo. Valid values are:
6413
6414           on (1)
6415               Force mid/side audio encoding.
6416
6417           off (0)
6418               Force left/right audio encoding.
6419
6420           auto
6421               Let the encoder decide automatically.
6422
6423       optimize_mono
6424           Set whether to enable optimization for mono. This option is only
6425           effective for non-mono streams. Available values:
6426
6427           on  enabled
6428
6429           off disabled
6430

VIDEO ENCODERS

6432       A description of some of the currently available video encoders
6433       follows.
6434
6435   a64_multi, a64_multi5
6436       A64 / Commodore 64 multicolor charset encoder. "a64_multi5" is extended
6437       with 5th color (colram).
6438
6439   Cinepak
6440       Cinepak aka CVID encoder.  Compatible with Windows 3.1 and vintage
6441       MacOS.
6442
6443       Options
6444
6445       g integer
6446           Keyframe interval.  A keyframe is inserted at least every "-g"
6447           frames, sometimes sooner.
6448
6449       q:v integer
6450           Quality factor. Lower is better. Higher gives lower bitrate.  The
6451           following table lists bitrates when encoding akiyo_cif.y4m for
6452           various values of "-q:v" with "-g 100":
6453
6454           "-q:v 1" 1918 kb/s
6455           "-q:v 2" 1735 kb/s
6456           "-q:v 4" 1500 kb/s
6457           "-q:v 10" 1041 kb/s
6458           "-q:v 20" 826 kb/s
6459           "-q:v 40" 553 kb/s
6460           "-q:v 100" 394 kb/s
6461           "-q:v 200" 312 kb/s
6462           "-q:v 400" 266 kb/s
6463           "-q:v 1000" 237 kb/s
6464       max_extra_cb_iterations integer
6465           Max extra codebook recalculation passes, more is better and slower.
6466
6467       skip_empty_cb boolean
6468           Avoid wasting bytes, ignore vintage MacOS decoder.
6469
6470       max_strips integer
6471       min_strips integer
6472           The minimum and maximum number of strips to use.  Wider range
6473           sometimes improves quality.  More strips is generally better
6474           quality but costs more bits.  Fewer strips tend to yield more
6475           keyframes.  Vintage compatible is 1..3.
6476
6477       strip_number_adaptivity integer
6478           How much number of strips is allowed to change between frames.
6479           Higher is better but slower.
6480
6481   GIF
6482       GIF image/animation encoder.
6483
6484       Options
6485
6486       gifflags integer
6487           Sets the flags used for GIF encoding.
6488
6489           offsetting
6490               Enables picture offsetting.
6491
6492               Default is enabled.
6493
6494           transdiff
6495               Enables transparency detection between frames.
6496
6497               Default is enabled.
6498
6499       gifimage integer
6500           Enables encoding one full GIF image per frame, rather than an
6501           animated GIF.
6502
6503           Default value is 0.
6504
6505       global_palette integer
6506           Writes a palette to the global GIF header where feasible.
6507
6508           If disabled, every frame will always have a palette written, even
6509           if there is a global palette supplied.
6510
6511           Default value is 1.
6512
6513   Hap
6514       Vidvox Hap video encoder.
6515
6516       Options
6517
6518       format integer
6519           Specifies the Hap format to encode.
6520
6521           hap
6522           hap_alpha
6523           hap_q
6524
6525           Default value is hap.
6526
6527       chunks integer
6528           Specifies the number of chunks to split frames into, between 1 and
6529           64. This permits multithreaded decoding of large frames,
6530           potentially at the cost of data-rate. The encoder may modify this
6531           value to divide frames evenly.
6532
6533           Default value is 1.
6534
6535       compressor integer
6536           Specifies the second-stage compressor to use. If set to none,
6537           chunks will be limited to 1, as chunked uncompressed frames offer
6538           no benefit.
6539
6540           none
6541           snappy
6542
6543           Default value is snappy.
6544
6545   jpeg2000
6546       The native jpeg 2000 encoder is lossy by default, the "-q:v" option can
6547       be used to set the encoding quality. Lossless encoding can be selected
6548       with "-pred 1".
6549
6550       Options
6551
6552       format integer
6553           Can be set to either "j2k" or "jp2" (the default) that makes it
6554           possible to store non-rgb pix_fmts.
6555
6556       tile_width integer
6557           Sets tile width. Range is 1 to 1073741824. Default is 256.
6558
6559       tile_height integer
6560           Sets tile height. Range is 1 to 1073741824. Default is 256.
6561
6562       pred integer
6563           Allows setting the discrete wavelet transform (DWT) type
6564
6565           dwt97int (Lossy)
6566           dwt53 (Lossless)
6567
6568           Default is "dwt97int"
6569
6570       sop boolean
6571           Enable this to add SOP marker at the start of each packet. Disabled
6572           by default.
6573
6574       eph boolean
6575           Enable this to add EPH marker at the end of each packet header.
6576           Disabled by default.
6577
6578       prog integer
6579           Sets the progression order to be used by the encoder.  Possible
6580           values are:
6581
6582           lrcp
6583           rlcp
6584           rpcl
6585           pcrl
6586           cprl
6587
6588           Set to "lrcp" by default.
6589
6590       layer_rates string
6591           By default, when this option is not used, compression is done using
6592           the quality metric.  This option allows for compression using
6593           compression ratio. The compression ratio for each level could be
6594           specified. The compression ratio of a layer "l" species the what
6595           ratio of total file size is contained in the first "l" layers.
6596
6597           Example usage:
6598
6599                   ffmpeg -i input.bmp -c:v jpeg2000 -layer_rates "100,10,1" output.j2k
6600
6601           This would compress the image to contain 3 layers, where the data
6602           contained in the first layer would be compressed by 1000 times,
6603           compressed by 100 in the first two layers, and shall contain all
6604           data while using all 3 layers.
6605
6606   librav1e
6607       rav1e AV1 encoder wrapper.
6608
6609       Requires the presence of the rav1e headers and library during
6610       configuration.  You need to explicitly configure the build with
6611       "--enable-librav1e".
6612
6613       Options
6614
6615       qmax
6616           Sets the maximum quantizer to use when using bitrate mode.
6617
6618       qmin
6619           Sets the minimum quantizer to use when using bitrate mode.
6620
6621       qp  Uses quantizer mode to encode at the given quantizer (0-255).
6622
6623       speed
6624           Selects the speed preset (0-10) to encode with.
6625
6626       tiles
6627           Selects how many tiles to encode with.
6628
6629       tile-rows
6630           Selects how many rows of tiles to encode with.
6631
6632       tile-columns
6633           Selects how many columns of tiles to encode with.
6634
6635       rav1e-params
6636           Set rav1e options using a list of key=value pairs separated by ":".
6637           See rav1e --help for a list of options.
6638
6639           For example to specify librav1e encoding options with
6640           -rav1e-params:
6641
6642                   ffmpeg -i input -c:v librav1e -b:v 500K -rav1e-params speed=5:low_latency=true output.mp4
6643
6644   libaom-av1
6645       libaom AV1 encoder wrapper.
6646
6647       Requires the presence of the libaom headers and library during
6648       configuration.  You need to explicitly configure the build with
6649       "--enable-libaom".
6650
6651       Options
6652
6653       The wrapper supports the following standard libavcodec options:
6654
6655       b   Set bitrate target in bits/second.  By default this will use
6656           variable-bitrate mode.  If maxrate and minrate are also set to the
6657           same value then it will use constant-bitrate mode, otherwise if crf
6658           is set as well then it will use constrained-quality mode.
6659
6660       g keyint_min
6661           Set key frame placement.  The GOP size sets the maximum distance
6662           between key frames; if zero the output stream will be intra-only.
6663           The minimum distance is ignored unless it is the same as the GOP
6664           size, in which case key frames will always appear at a fixed
6665           interval.  Not set by default, so without this option the library
6666           has completely free choice about where to place key frames.
6667
6668       qmin qmax
6669           Set minimum/maximum quantisation values.  Valid range is from 0 to
6670           63 (warning: this does not match the quantiser values actually used
6671           by AV1 - divide by four to map real quantiser values to this
6672           range).  Defaults to min/max (no constraint).
6673
6674       minrate maxrate bufsize rc_init_occupancy
6675           Set rate control buffering parameters.  Not used if not set -
6676           defaults to unconstrained variable bitrate.
6677
6678       threads
6679           Set the number of threads to use while encoding.  This may require
6680           the tiles or row-mt options to also be set to actually use the
6681           specified number of threads fully. Defaults to the number of
6682           hardware threads supported by the host machine.
6683
6684       profile
6685           Set the encoding profile.  Defaults to using the profile which
6686           matches the bit depth and chroma subsampling of the input.
6687
6688       The wrapper also has some specific options:
6689
6690       cpu-used
6691           Set the quality/encoding speed tradeoff.  Valid range is from 0 to
6692           8, higher numbers indicating greater speed and lower quality.  The
6693           default value is 1, which will be slow and high quality.
6694
6695       auto-alt-ref
6696           Enable use of alternate reference frames.  Defaults to the internal
6697           default of the library.
6698
6699       arnr-max-frames (frames)
6700           Set altref noise reduction max frame count. Default is -1.
6701
6702       arnr-strength (strength)
6703           Set altref noise reduction filter strength. Range is -1 to 6.
6704           Default is -1.
6705
6706       aq-mode (aq-mode)
6707           Set adaptive quantization mode. Possible values:
6708
6709           none (0)
6710               Disabled.
6711
6712           variance (1)
6713               Variance-based.
6714
6715           complexity (2)
6716               Complexity-based.
6717
6718           cyclic (3)
6719               Cyclic refresh.
6720
6721       tune (tune)
6722           Set the distortion metric the encoder is tuned with. Default is
6723           "psnr".
6724
6725           psnr (0)
6726           ssim (1)
6727       lag-in-frames
6728           Set the maximum number of frames which the encoder may keep in
6729           flight at any one time for lookahead purposes.  Defaults to the
6730           internal default of the library.
6731
6732       error-resilience
6733           Enable error resilience features:
6734
6735           default
6736               Improve resilience against losses of whole frames.
6737
6738           Not enabled by default.
6739
6740       crf Set the quality/size tradeoff for constant-quality (no bitrate
6741           target) and constrained-quality (with maximum bitrate target)
6742           modes. Valid range is 0 to 63, higher numbers indicating lower
6743           quality and smaller output size.  Only used if set; by default only
6744           the bitrate target is used.
6745
6746       static-thresh
6747           Set a change threshold on blocks below which they will be skipped
6748           by the encoder.  Defined in arbitrary units as a nonnegative
6749           integer, defaulting to zero (no blocks are skipped).
6750
6751       drop-threshold
6752           Set a threshold for dropping frames when close to rate control
6753           bounds.  Defined as a percentage of the target buffer - when the
6754           rate control buffer falls below this percentage, frames will be
6755           dropped until it has refilled above the threshold.  Defaults to
6756           zero (no frames are dropped).
6757
6758       denoise-noise-level (level)
6759           Amount of noise to be removed for grain synthesis. Grain synthesis
6760           is disabled if this option is not set or set to 0.
6761
6762       denoise-block-size (pixels)
6763           Block size used for denoising for grain synthesis. If not set, AV1
6764           codec uses the default value of 32.
6765
6766       undershoot-pct (pct)
6767           Set datarate undershoot (min) percentage of the target bitrate.
6768           Range is -1 to 100.  Default is -1.
6769
6770       overshoot-pct (pct)
6771           Set datarate overshoot (max) percentage of the target bitrate.
6772           Range is -1 to 1000.  Default is -1.
6773
6774       minsection-pct (pct)
6775           Minimum percentage variation of the GOP bitrate from the target
6776           bitrate. If minsection-pct is not set, the libaomenc wrapper
6777           computes it as follows: "(minrate * 100 / bitrate)".  Range is -1
6778           to 100. Default is -1 (unset).
6779
6780       maxsection-pct (pct)
6781           Maximum percentage variation of the GOP bitrate from the target
6782           bitrate. If maxsection-pct is not set, the libaomenc wrapper
6783           computes it as follows: "(maxrate * 100 / bitrate)".  Range is -1
6784           to 5000. Default is -1 (unset).
6785
6786       frame-parallel (boolean)
6787           Enable frame parallel decodability features. Default is true.
6788
6789       tiles
6790           Set the number of tiles to encode the input video with, as columns
6791           x rows.  Larger numbers allow greater parallelism in both encoding
6792           and decoding, but may decrease coding efficiency.  Defaults to the
6793           minimum number of tiles required by the size of the input video
6794           (this is 1x1 (that is, a single tile) for sizes up to and including
6795           4K).
6796
6797       tile-columns tile-rows
6798           Set the number of tiles as log2 of the number of tile rows and
6799           columns.  Provided for compatibility with libvpx/VP9.
6800
6801       row-mt (Requires libaom >= 1.0.0-759-g90a15f4f2)
6802           Enable row based multi-threading. Disabled by default.
6803
6804       enable-cdef (boolean)
6805           Enable Constrained Directional Enhancement Filter. The libaom-av1
6806           encoder enables CDEF by default.
6807
6808       enable-restoration (boolean)
6809           Enable Loop Restoration Filter. Default is true for libaom-av1.
6810
6811       enable-global-motion (boolean)
6812           Enable the use of global motion for block prediction. Default is
6813           true.
6814
6815       enable-intrabc (boolean)
6816           Enable block copy mode for intra block prediction. This mode is
6817           useful for screen content. Default is true.
6818
6819       enable-rect-partitions (boolean) (Requires libaom >= v2.0.0)
6820           Enable rectangular partitions. Default is true.
6821
6822       enable-1to4-partitions (boolean) (Requires libaom >= v2.0.0)
6823           Enable 1:4/4:1 partitions. Default is true.
6824
6825       enable-ab-partitions (boolean) (Requires libaom >= v2.0.0)
6826           Enable AB shape partitions. Default is true.
6827
6828       enable-angle-delta (boolean) (Requires libaom >= v2.0.0)
6829           Enable angle delta intra prediction. Default is true.
6830
6831       enable-cfl-intra (boolean) (Requires libaom >= v2.0.0)
6832           Enable chroma predicted from luma intra prediction. Default is
6833           true.
6834
6835       enable-filter-intra (boolean) (Requires libaom >= v2.0.0)
6836           Enable filter intra predictor. Default is true.
6837
6838       enable-intra-edge-filter (boolean) (Requires libaom >= v2.0.0)
6839           Enable intra edge filter. Default is true.
6840
6841       enable-smooth-intra (boolean) (Requires libaom >= v2.0.0)
6842           Enable smooth intra prediction mode. Default is true.
6843
6844       enable-paeth-intra (boolean) (Requires libaom >= v2.0.0)
6845           Enable paeth predictor in intra prediction. Default is true.
6846
6847       enable-palette (boolean) (Requires libaom >= v2.0.0)
6848           Enable palette prediction mode. Default is true.
6849
6850       enable-flip-idtx (boolean) (Requires libaom >= v2.0.0)
6851           Enable extended transform type, including FLIPADST_DCT,
6852           DCT_FLIPADST, FLIPADST_FLIPADST, ADST_FLIPADST, FLIPADST_ADST,
6853           IDTX, V_DCT, H_DCT, V_ADST, H_ADST, V_FLIPADST, H_FLIPADST. Default
6854           is true.
6855
6856       enable-tx64 (boolean) (Requires libaom >= v2.0.0)
6857           Enable 64-pt transform. Default is true.
6858
6859       reduced-tx-type-set (boolean) (Requires libaom >= v2.0.0)
6860           Use reduced set of transform types. Default is false.
6861
6862       use-intra-dct-only (boolean) (Requires libaom >= v2.0.0)
6863           Use DCT only for INTRA modes. Default is false.
6864
6865       use-inter-dct-only (boolean) (Requires libaom >= v2.0.0)
6866           Use DCT only for INTER modes. Default is false.
6867
6868       use-intra-default-tx-only (boolean) (Requires libaom >= v2.0.0)
6869           Use Default-transform only for INTRA modes. Default is false.
6870
6871       enable-ref-frame-mvs (boolean) (Requires libaom >= v2.0.0)
6872           Enable temporal mv prediction. Default is true.
6873
6874       enable-reduced-reference-set (boolean) (Requires libaom >= v2.0.0)
6875           Use reduced set of single and compound references. Default is
6876           false.
6877
6878       enable-obmc (boolean) (Requires libaom >= v2.0.0)
6879           Enable obmc. Default is true.
6880
6881       enable-dual-filter (boolean) (Requires libaom >= v2.0.0)
6882           Enable dual filter. Default is true.
6883
6884       enable-diff-wtd-comp (boolean) (Requires libaom >= v2.0.0)
6885           Enable difference-weighted compound. Default is true.
6886
6887       enable-dist-wtd-comp (boolean) (Requires libaom >= v2.0.0)
6888           Enable distance-weighted compound. Default is true.
6889
6890       enable-onesided-comp (boolean) (Requires libaom >= v2.0.0)
6891           Enable one sided compound. Default is true.
6892
6893       enable-interinter-wedge (boolean) (Requires libaom >= v2.0.0)
6894           Enable interinter wedge compound. Default is true.
6895
6896       enable-interintra-wedge (boolean) (Requires libaom >= v2.0.0)
6897           Enable interintra wedge compound. Default is true.
6898
6899       enable-masked-comp (boolean) (Requires libaom >= v2.0.0)
6900           Enable masked compound. Default is true.
6901
6902       enable-interintra-comp (boolean) (Requires libaom >= v2.0.0)
6903           Enable interintra compound. Default is true.
6904
6905       enable-smooth-interintra (boolean) (Requires libaom >= v2.0.0)
6906           Enable smooth interintra mode. Default is true.
6907
6908       aom-params
6909           Set libaom options using a list of key=value pairs separated by
6910           ":". For a list of supported options, see aomenc --help under the
6911           section "AV1 Specific Options".
6912
6913           For example to specify libaom encoding options with -aom-params:
6914
6915                   ffmpeg -i input -c:v libaom-av1 -b:v 500K -aom-params tune=psnr:enable-tpl-model=1 output.mp4
6916
6917   libsvtav1
6918       SVT-AV1 encoder wrapper.
6919
6920       Requires the presence of the SVT-AV1 headers and library during
6921       configuration.  You need to explicitly configure the build with
6922       "--enable-libsvtav1".
6923
6924       Options
6925
6926       profile
6927           Set the encoding profile.
6928
6929           main
6930           high
6931           professional
6932       level
6933           Set the operating point level. For example: '4.0'
6934
6935       hielevel
6936           Set the Hierarchical prediction levels.
6937
6938           3level
6939           4level
6940               This is the default.
6941
6942       tier
6943           Set the operating point tier.
6944
6945           main
6946               This is the default.
6947
6948           high
6949       qmax
6950           Set the maximum quantizer to use when using a bitrate mode.
6951
6952       qmin
6953           Set the minimum quantizer to use when using a bitrate mode.
6954
6955       crf Constant rate factor value used in crf rate control mode (0-63).
6956
6957       qp  Set the quantizer used in cqp rate control mode (0-63).
6958
6959       sc_detection
6960           Enable scene change detection.
6961
6962       la_depth
6963           Set number of frames to look ahead (0-120).
6964
6965       preset
6966           Set the quality-speed tradeoff, in the range 0 to 13.  Higher
6967           values are faster but lower quality.
6968
6969       tile_rows
6970           Set log2 of the number of rows of tiles to use (0-6).
6971
6972       tile_columns
6973           Set log2 of the number of columns of tiles to use (0-4).
6974
6975       svtav1-params
6976           Set SVT-AV1 options using a list of key=value pairs separated by
6977           ":". See the SVT-AV1 encoder user guide for a list of accepted
6978           parameters.
6979
6980   libjxl
6981       libjxl JPEG XL encoder wrapper.
6982
6983       Requires the presence of the libjxl headers and library during
6984       configuration. You need to explicitly configure the build with
6985       "--enable-libjxl".
6986
6987       Options
6988
6989       The libjxl wrapper supports the following options:
6990
6991       distance
6992           Set the target Butteraugli distance. This is a quality setting:
6993           lower distance yields higher quality, with distance=1.0 roughly
6994           comparable to libjpeg Quality 90 for photographic content. Setting
6995           distance=0.0 yields true lossless encoding. Valid values range
6996           between 0.0 and 15.0, and sane values rarely exceed 5.0. Setting
6997           distance=0.1 usually attains transparency for most input. The
6998           default is 1.0.
6999
7000       effort
7001           Set the encoding effort used. Higher effort values produce more
7002           consistent quality and usually produces a better quality/bpp curve,
7003           at the cost of more CPU time required. Valid values range from 1 to
7004           9, and the default is 7.
7005
7006       modular
7007           Force the encoder to use Modular mode instead of choosing
7008           automatically. The default is to use VarDCT for lossy encoding and
7009           Modular for lossless. VarDCT is generally superior to Modular for
7010           lossy encoding but does not support lossless encoding.
7011
7012   libkvazaar
7013       Kvazaar H.265/HEVC encoder.
7014
7015       Requires the presence of the libkvazaar headers and library during
7016       configuration. You need to explicitly configure the build with
7017       --enable-libkvazaar.
7018
7019       Options
7020
7021       b   Set target video bitrate in bit/s and enable rate control.
7022
7023       kvazaar-params
7024           Set kvazaar parameters as a list of name=value pairs separated by
7025           commas (,). See kvazaar documentation for a list of options.
7026
7027   libopenh264
7028       Cisco libopenh264 H.264/MPEG-4 AVC encoder wrapper.
7029
7030       This encoder requires the presence of the libopenh264 headers and
7031       library during configuration. You need to explicitly configure the
7032       build with "--enable-libopenh264". The library is detected using pkg-
7033       config.
7034
7035       For more information about the library see <http://www.openh264.org>.
7036
7037       Options
7038
7039       The following FFmpeg global options affect the configurations of the
7040       libopenh264 encoder.
7041
7042       b   Set the bitrate (as a number of bits per second).
7043
7044       g   Set the GOP size.
7045
7046       maxrate
7047           Set the max bitrate (as a number of bits per second).
7048
7049       flags +global_header
7050           Set global header in the bitstream.
7051
7052       slices
7053           Set the number of slices, used in parallelized encoding. Default
7054           value is 0. This is only used when slice_mode is set to fixed.
7055
7056       slice_mode
7057           Set slice mode. Can assume one of the following possible values:
7058
7059           fixed
7060               a fixed number of slices
7061
7062           rowmb
7063               one slice per row of macroblocks
7064
7065           auto
7066               automatic number of slices according to number of threads
7067
7068           dyn dynamic slicing
7069
7070           Default value is auto.
7071
7072       loopfilter
7073           Enable loop filter, if set to 1 (automatically enabled). To disable
7074           set a value of 0.
7075
7076       profile
7077           Set profile restrictions. If set to the value of main enable CABAC
7078           (set the "SEncParamExt.iEntropyCodingModeFlag" flag to 1).
7079
7080       max_nal_size
7081           Set maximum NAL size in bytes.
7082
7083       allow_skip_frames
7084           Allow skipping frames to hit the target bitrate if set to 1.
7085
7086   libtheora
7087       libtheora Theora encoder wrapper.
7088
7089       Requires the presence of the libtheora headers and library during
7090       configuration. You need to explicitly configure the build with
7091       "--enable-libtheora".
7092
7093       For more information about the libtheora project see
7094       <http://www.theora.org/>.
7095
7096       Options
7097
7098       The following global options are mapped to internal libtheora options
7099       which affect the quality and the bitrate of the encoded stream.
7100
7101       b   Set the video bitrate in bit/s for CBR (Constant Bit Rate) mode.
7102           In case VBR (Variable Bit Rate) mode is enabled this option is
7103           ignored.
7104
7105       flags
7106           Used to enable constant quality mode (VBR) encoding through the
7107           qscale flag, and to enable the "pass1" and "pass2" modes.
7108
7109       g   Set the GOP size.
7110
7111       global_quality
7112           Set the global quality as an integer in lambda units.
7113
7114           Only relevant when VBR mode is enabled with "flags +qscale". The
7115           value is converted to QP units by dividing it by "FF_QP2LAMBDA",
7116           clipped in the [0 - 10] range, and then multiplied by 6.3 to get a
7117           value in the native libtheora range [0-63]. A higher value
7118           corresponds to a higher quality.
7119
7120       q   Enable VBR mode when set to a non-negative value, and set constant
7121           quality value as a double floating point value in QP units.
7122
7123           The value is clipped in the [0-10] range, and then multiplied by
7124           6.3 to get a value in the native libtheora range [0-63].
7125
7126           This option is valid only using the ffmpeg command-line tool. For
7127           library interface users, use global_quality.
7128
7129       Examples
7130
7131       •   Set maximum constant quality (VBR) encoding with ffmpeg:
7132
7133                   ffmpeg -i INPUT -codec:v libtheora -q:v 10 OUTPUT.ogg
7134
7135       •   Use ffmpeg to convert a CBR 1000 kbps Theora video stream:
7136
7137                   ffmpeg -i INPUT -codec:v libtheora -b:v 1000k OUTPUT.ogg
7138
7139   libvpx
7140       VP8/VP9 format supported through libvpx.
7141
7142       Requires the presence of the libvpx headers and library during
7143       configuration.  You need to explicitly configure the build with
7144       "--enable-libvpx".
7145
7146       Options
7147
7148       The following options are supported by the libvpx wrapper. The
7149       vpxenc-equivalent options or values are listed in parentheses for easy
7150       migration.
7151
7152       To reduce the duplication of documentation, only the private options
7153       and some others requiring special attention are documented here. For
7154       the documentation of the undocumented generic options, see the Codec
7155       Options chapter.
7156
7157       To get more documentation of the libvpx options, invoke the command
7158       ffmpeg -h encoder=libvpx, ffmpeg -h encoder=libvpx-vp9 or vpxenc
7159       --help. Further information is available in the libvpx API
7160       documentation.
7161
7162       b (target-bitrate)
7163           Set bitrate in bits/s. Note that FFmpeg's b option is expressed in
7164           bits/s, while vpxenc's target-bitrate is in kilobits/s.
7165
7166       g (kf-max-dist)
7167       keyint_min (kf-min-dist)
7168       qmin (min-q)
7169           Minimum (Best Quality) Quantizer.
7170
7171       qmax (max-q)
7172           Maximum (Worst Quality) Quantizer.  Can be changed per-frame.
7173
7174       bufsize (buf-sz, buf-optimal-sz)
7175           Set ratecontrol buffer size (in bits). Note vpxenc's options are
7176           specified in milliseconds, the libvpx wrapper converts this value
7177           as follows: "buf-sz = bufsize * 1000 / bitrate", "buf-optimal-sz =
7178           bufsize * 1000 / bitrate * 5 / 6".
7179
7180       rc_init_occupancy (buf-initial-sz)
7181           Set number of bits which should be loaded into the rc buffer before
7182           decoding starts. Note vpxenc's option is specified in milliseconds,
7183           the libvpx wrapper converts this value as follows:
7184           "rc_init_occupancy * 1000 / bitrate".
7185
7186       undershoot-pct
7187           Set datarate undershoot (min) percentage of the target bitrate.
7188
7189       overshoot-pct
7190           Set datarate overshoot (max) percentage of the target bitrate.
7191
7192       skip_threshold (drop-frame)
7193       qcomp (bias-pct)
7194       maxrate (maxsection-pct)
7195           Set GOP max bitrate in bits/s. Note vpxenc's option is specified as
7196           a percentage of the target bitrate, the libvpx wrapper converts
7197           this value as follows: "(maxrate * 100 / bitrate)".
7198
7199       minrate (minsection-pct)
7200           Set GOP min bitrate in bits/s. Note vpxenc's option is specified as
7201           a percentage of the target bitrate, the libvpx wrapper converts
7202           this value as follows: "(minrate * 100 / bitrate)".
7203
7204       minrate, maxrate, b end-usage=cbr
7205           "(minrate == maxrate == bitrate)".
7206
7207       crf (end-usage=cq, cq-level)
7208       tune (tune)
7209           psnr (psnr)
7210           ssim (ssim)
7211       quality, deadline (deadline)
7212           best
7213               Use best quality deadline. Poorly named and quite slow, this
7214               option should be avoided as it may give worse quality output
7215               than good.
7216
7217           good
7218               Use good quality deadline. This is a good trade-off between
7219               speed and quality when used with the cpu-used option.
7220
7221           realtime
7222               Use realtime quality deadline.
7223
7224       speed, cpu-used (cpu-used)
7225           Set quality/speed ratio modifier. Higher values speed up the encode
7226           at the cost of quality.
7227
7228       nr (noise-sensitivity)
7229       static-thresh
7230           Set a change threshold on blocks below which they will be skipped
7231           by the encoder.
7232
7233       slices (token-parts)
7234           Note that FFmpeg's slices option gives the total number of
7235           partitions, while vpxenc's token-parts is given as
7236           "log2(partitions)".
7237
7238       max-intra-rate
7239           Set maximum I-frame bitrate as a percentage of the target bitrate.
7240           A value of 0 means unlimited.
7241
7242       force_key_frames
7243           "VPX_EFLAG_FORCE_KF"
7244
7245       Alternate reference frame related
7246           auto-alt-ref
7247               Enable use of alternate reference frames (2-pass only).  Values
7248               greater than 1 enable multi-layer alternate reference frames
7249               (VP9 only).
7250
7251           arnr-maxframes
7252               Set altref noise reduction max frame count.
7253
7254           arnr-type
7255               Set altref noise reduction filter type: backward, forward,
7256               centered.
7257
7258           arnr-strength
7259               Set altref noise reduction filter strength.
7260
7261           rc-lookahead, lag-in-frames (lag-in-frames)
7262               Set number of frames to look ahead for frametype and
7263               ratecontrol.
7264
7265       error-resilient
7266           Enable error resiliency features.
7267
7268       sharpness integer
7269           Increase sharpness at the expense of lower PSNR.  The valid range
7270           is [0, 7].
7271
7272       ts-parameters
7273           Sets the temporal scalability configuration using a :-separated
7274           list of key=value pairs. For example, to specify temporal
7275           scalability parameters with "ffmpeg":
7276
7277                   ffmpeg -i INPUT -c:v libvpx -ts-parameters ts_number_layers=3:\
7278                   ts_target_bitrate=250,500,1000:ts_rate_decimator=4,2,1:\
7279                   ts_periodicity=4:ts_layer_id=0,2,1,2:ts_layering_mode=3 OUTPUT
7280
7281           Below is a brief explanation of each of the parameters, please
7282           refer to "struct vpx_codec_enc_cfg" in "vpx/vpx_encoder.h" for more
7283           details.
7284
7285           ts_number_layers
7286               Number of temporal coding layers.
7287
7288           ts_target_bitrate
7289               Target bitrate for each temporal layer (in kbps).  (bitrate
7290               should be inclusive of the lower temporal layer).
7291
7292           ts_rate_decimator
7293               Frame rate decimation factor for each temporal layer.
7294
7295           ts_periodicity
7296               Length of the sequence defining frame temporal layer
7297               membership.
7298
7299           ts_layer_id
7300               Template defining the membership of frames to temporal layers.
7301
7302           ts_layering_mode
7303               (optional) Selecting the temporal structure from a set of pre-
7304               defined temporal layering modes.  Currently supports the
7305               following options.
7306
7307               0   No temporal layering flags are provided internally, relies
7308                   on flags being passed in using "metadata" field in
7309                   "AVFrame" with following keys.
7310
7311                   vp8-flags
7312                       Sets the flags passed into the encoder to indicate the
7313                       referencing scheme for the current frame.  Refer to
7314                       function "vpx_codec_encode" in "vpx/vpx_encoder.h" for
7315                       more details.
7316
7317                   temporal_id
7318                       Explicitly sets the temporal id of the current frame to
7319                       encode.
7320
7321               2   Two temporal layers. 0-1...
7322
7323               3   Three temporal layers. 0-2-1-2...; with single reference
7324                   frame.
7325
7326               4   Same as option "3", except there is a dependency between
7327                   the two temporal layer 2 frames within the temporal period.
7328
7329       VP9-specific options
7330           lossless
7331               Enable lossless mode.
7332
7333           tile-columns
7334               Set number of tile columns to use. Note this is given as
7335               "log2(tile_columns)". For example, 8 tile columns would be
7336               requested by setting the tile-columns option to 3.
7337
7338           tile-rows
7339               Set number of tile rows to use. Note this is given as
7340               "log2(tile_rows)".  For example, 4 tile rows would be requested
7341               by setting the tile-rows option to 2.
7342
7343           frame-parallel
7344               Enable frame parallel decodability features.
7345
7346           aq-mode
7347               Set adaptive quantization mode (0: off (default), 1: variance
7348               2: complexity, 3: cyclic refresh, 4: equator360).
7349
7350           colorspace color-space
7351               Set input color space. The VP9 bitstream supports signaling the
7352               following colorspaces:
7353
7354               rgb sRGB
7355               bt709 bt709
7356               unspecified unknown
7357               bt470bg bt601
7358               smpte170m smpte170
7359               smpte240m smpte240
7360               bt2020_ncl bt2020
7361           row-mt boolean
7362               Enable row based multi-threading.
7363
7364           tune-content
7365               Set content type: default (0), screen (1), film (2).
7366
7367           corpus-complexity
7368               Corpus VBR mode is a variant of standard VBR where the
7369               complexity distribution midpoint is passed in rather than
7370               calculated for a specific clip or chunk.
7371
7372               The valid range is [0, 10000]. 0 (default) uses standard VBR.
7373
7374           enable-tpl boolean
7375               Enable temporal dependency model.
7376
7377           ref-frame-config
7378               Using per-frame metadata, set members of the structure
7379               "vpx_svc_ref_frame_config_t" in "vpx/vp8cx.h" to fine-control
7380               referencing schemes and frame buffer management.  Use a
7381               :-separated list of key=value pairs.  For example,
7382
7383                       av_dict_set(&av_frame->metadata, "ref-frame-config", \
7384                       "rfc_update_buffer_slot=7:rfc_lst_fb_idx=0:rfc_gld_fb_idx=1:rfc_alt_fb_idx=2:rfc_reference_last=0:rfc_reference_golden=0:rfc_reference_alt_ref=0");
7385
7386               rfc_update_buffer_slot
7387                   Indicates the buffer slot number to update
7388
7389               rfc_update_last
7390                   Indicates whether to update the LAST frame
7391
7392               rfc_update_golden
7393                   Indicates whether to update GOLDEN frame
7394
7395               rfc_update_alt_ref
7396                   Indicates whether to update ALT_REF frame
7397
7398               rfc_lst_fb_idx
7399                   LAST frame buffer index
7400
7401               rfc_gld_fb_idx
7402                   GOLDEN frame buffer index
7403
7404               rfc_alt_fb_idx
7405                   ALT_REF frame buffer index
7406
7407               rfc_reference_last
7408                   Indicates whether to reference LAST frame
7409
7410               rfc_reference_golden
7411                   Indicates whether to reference GOLDEN frame
7412
7413               rfc_reference_alt_ref
7414                   Indicates whether to reference ALT_REF frame
7415
7416               rfc_reference_duration
7417                   Indicates frame duration
7418
7419       For more information about libvpx see: <http://www.webmproject.org/>
7420
7421   libwebp
7422       libwebp WebP Image encoder wrapper
7423
7424       libwebp is Google's official encoder for WebP images. It can encode in
7425       either lossy or lossless mode. Lossy images are essentially a wrapper
7426       around a VP8 frame. Lossless images are a separate codec developed by
7427       Google.
7428
7429       Pixel Format
7430
7431       Currently, libwebp only supports YUV420 for lossy and RGB for lossless
7432       due to limitations of the format and libwebp. Alpha is supported for
7433       either mode.  Because of API limitations, if RGB is passed in when
7434       encoding lossy or YUV is passed in for encoding lossless, the pixel
7435       format will automatically be converted using functions from libwebp.
7436       This is not ideal and is done only for convenience.
7437
7438       Options
7439
7440       -lossless boolean
7441           Enables/Disables use of lossless mode. Default is 0.
7442
7443       -compression_level integer
7444           For lossy, this is a quality/speed tradeoff. Higher values give
7445           better quality for a given size at the cost of increased encoding
7446           time. For lossless, this is a size/speed tradeoff. Higher values
7447           give smaller size at the cost of increased encoding time. More
7448           specifically, it controls the number of extra algorithms and
7449           compression tools used, and varies the combination of these tools.
7450           This maps to the method option in libwebp. The valid range is 0 to
7451           6.  Default is 4.
7452
7453       -quality float
7454           For lossy encoding, this controls image quality. For lossless
7455           encoding, this controls the effort and time spent in compression.
7456           Range is 0 to 100. Default is 75.
7457
7458       -preset type
7459           Configuration preset. This does some automatic settings based on
7460           the general type of the image.
7461
7462           none
7463               Do not use a preset.
7464
7465           default
7466               Use the encoder default.
7467
7468           picture
7469               Digital picture, like portrait, inner shot
7470
7471           photo
7472               Outdoor photograph, with natural lighting
7473
7474           drawing
7475               Hand or line drawing, with high-contrast details
7476
7477           icon
7478               Small-sized colorful images
7479
7480           text
7481               Text-like
7482
7483   libx264, libx264rgb
7484       x264 H.264/MPEG-4 AVC encoder wrapper.
7485
7486       This encoder requires the presence of the libx264 headers and library
7487       during configuration. You need to explicitly configure the build with
7488       "--enable-libx264".
7489
7490       libx264 supports an impressive number of features, including 8x8 and
7491       4x4 adaptive spatial transform, adaptive B-frame placement, CAVLC/CABAC
7492       entropy coding, interlacing (MBAFF), lossless mode, psy optimizations
7493       for detail retention (adaptive quantization, psy-RD, psy-trellis).
7494
7495       Many libx264 encoder options are mapped to FFmpeg global codec options,
7496       while unique encoder options are provided through private options.
7497       Additionally the x264opts and x264-params private options allows one to
7498       pass a list of key=value tuples as accepted by the libx264
7499       "x264_param_parse" function.
7500
7501       The x264 project website is at
7502       <http://www.videolan.org/developers/x264.html>.
7503
7504       The libx264rgb encoder is the same as libx264, except it accepts packed
7505       RGB pixel formats as input instead of YUV.
7506
7507       Supported Pixel Formats
7508
7509       x264 supports 8- to 10-bit color spaces. The exact bit depth is
7510       controlled at x264's configure time.
7511
7512       Options
7513
7514       The following options are supported by the libx264 wrapper. The
7515       x264-equivalent options or values are listed in parentheses for easy
7516       migration.
7517
7518       To reduce the duplication of documentation, only the private options
7519       and some others requiring special attention are documented here. For
7520       the documentation of the undocumented generic options, see the Codec
7521       Options chapter.
7522
7523       To get a more accurate and extensive documentation of the libx264
7524       options, invoke the command x264 --fullhelp or consult the libx264
7525       documentation.
7526
7527       b (bitrate)
7528           Set bitrate in bits/s. Note that FFmpeg's b option is expressed in
7529           bits/s, while x264's bitrate is in kilobits/s.
7530
7531       bf (bframes)
7532       g (keyint)
7533       qmin (qpmin)
7534           Minimum quantizer scale.
7535
7536       qmax (qpmax)
7537           Maximum quantizer scale.
7538
7539       qdiff (qpstep)
7540           Maximum difference between quantizer scales.
7541
7542       qblur (qblur)
7543           Quantizer curve blur
7544
7545       qcomp (qcomp)
7546           Quantizer curve compression factor
7547
7548       refs (ref)
7549           Number of reference frames each P-frame can use. The range is from
7550           0-16.
7551
7552       sc_threshold (scenecut)
7553           Sets the threshold for the scene change detection.
7554
7555       trellis (trellis)
7556           Performs Trellis quantization to increase efficiency. Enabled by
7557           default.
7558
7559       nr  (nr)
7560       me_range (merange)
7561           Maximum range of the motion search in pixels.
7562
7563       me_method (me)
7564           Set motion estimation method. Possible values in the decreasing
7565           order of speed:
7566
7567           dia (dia)
7568           epzs (dia)
7569               Diamond search with radius 1 (fastest). epzs is an alias for
7570               dia.
7571
7572           hex (hex)
7573               Hexagonal search with radius 2.
7574
7575           umh (umh)
7576               Uneven multi-hexagon search.
7577
7578           esa (esa)
7579               Exhaustive search.
7580
7581           tesa (tesa)
7582               Hadamard exhaustive search (slowest).
7583
7584       forced-idr
7585           Normally, when forcing a I-frame type, the encoder can select any
7586           type of I-frame. This option forces it to choose an IDR-frame.
7587
7588       subq (subme)
7589           Sub-pixel motion estimation method.
7590
7591       b_strategy (b-adapt)
7592           Adaptive B-frame placement decision algorithm. Use only on first-
7593           pass.
7594
7595       keyint_min (min-keyint)
7596           Minimum GOP size.
7597
7598       coder
7599           Set entropy encoder. Possible values:
7600
7601           ac  Enable CABAC.
7602
7603           vlc Enable CAVLC and disable CABAC. It generates the same effect as
7604               x264's --no-cabac option.
7605
7606       cmp Set full pixel motion estimation comparison algorithm. Possible
7607           values:
7608
7609           chroma
7610               Enable chroma in motion estimation.
7611
7612           sad Ignore chroma in motion estimation. It generates the same
7613               effect as x264's --no-chroma-me option.
7614
7615       threads (threads)
7616           Number of encoding threads.
7617
7618       thread_type
7619           Set multithreading technique. Possible values:
7620
7621           slice
7622               Slice-based multithreading. It generates the same effect as
7623               x264's --sliced-threads option.
7624
7625           frame
7626               Frame-based multithreading.
7627
7628       flags
7629           Set encoding flags. It can be used to disable closed GOP and enable
7630           open GOP by setting it to "-cgop". The result is similar to the
7631           behavior of x264's --open-gop option.
7632
7633       rc_init_occupancy (vbv-init)
7634       preset (preset)
7635           Set the encoding preset.
7636
7637       tune (tune)
7638           Set tuning of the encoding params.
7639
7640       profile (profile)
7641           Set profile restrictions.
7642
7643       fastfirstpass
7644           Enable fast settings when encoding first pass, when set to 1. When
7645           set to 0, it has the same effect of x264's --slow-firstpass option.
7646
7647       crf (crf)
7648           Set the quality for constant quality mode.
7649
7650       crf_max (crf-max)
7651           In CRF mode, prevents VBV from lowering quality beyond this point.
7652
7653       qp (qp)
7654           Set constant quantization rate control method parameter.
7655
7656       aq-mode (aq-mode)
7657           Set AQ method. Possible values:
7658
7659           none (0)
7660               Disabled.
7661
7662           variance (1)
7663               Variance AQ (complexity mask).
7664
7665           autovariance (2)
7666               Auto-variance AQ (experimental).
7667
7668       aq-strength (aq-strength)
7669           Set AQ strength, reduce blocking and blurring in flat and textured
7670           areas.
7671
7672       psy Use psychovisual optimizations when set to 1. When set to 0, it has
7673           the same effect as x264's --no-psy option.
7674
7675       psy-rd  (psy-rd)
7676           Set strength of psychovisual optimization, in psy-rd:psy-trellis
7677           format.
7678
7679       rc-lookahead (rc-lookahead)
7680           Set number of frames to look ahead for frametype and ratecontrol.
7681
7682       weightb
7683           Enable weighted prediction for B-frames when set to 1. When set to
7684           0, it has the same effect as x264's --no-weightb option.
7685
7686       weightp (weightp)
7687           Set weighted prediction method for P-frames. Possible values:
7688
7689           none (0)
7690               Disabled
7691
7692           simple (1)
7693               Enable only weighted refs
7694
7695           smart (2)
7696               Enable both weighted refs and duplicates
7697
7698       ssim (ssim)
7699           Enable calculation and printing SSIM stats after the encoding.
7700
7701       intra-refresh (intra-refresh)
7702           Enable the use of Periodic Intra Refresh instead of IDR frames when
7703           set to 1.
7704
7705       avcintra-class (class)
7706           Configure the encoder to generate AVC-Intra.  Valid values are
7707           50,100 and 200
7708
7709       bluray-compat (bluray-compat)
7710           Configure the encoder to be compatible with the bluray standard.
7711           It is a shorthand for setting "bluray-compat=1 force-cfr=1".
7712
7713       b-bias (b-bias)
7714           Set the influence on how often B-frames are used.
7715
7716       b-pyramid (b-pyramid)
7717           Set method for keeping of some B-frames as references. Possible
7718           values:
7719
7720           none (none)
7721               Disabled.
7722
7723           strict (strict)
7724               Strictly hierarchical pyramid.
7725
7726           normal (normal)
7727               Non-strict (not Blu-ray compatible).
7728
7729       mixed-refs
7730           Enable the use of one reference per partition, as opposed to one
7731           reference per macroblock when set to 1. When set to 0, it has the
7732           same effect as x264's --no-mixed-refs option.
7733
7734       8x8dct
7735           Enable adaptive spatial transform (high profile 8x8 transform) when
7736           set to 1. When set to 0, it has the same effect as x264's
7737           --no-8x8dct option.
7738
7739       fast-pskip
7740           Enable early SKIP detection on P-frames when set to 1. When set to
7741           0, it has the same effect as x264's --no-fast-pskip option.
7742
7743       aud (aud)
7744           Enable use of access unit delimiters when set to 1.
7745
7746       mbtree
7747           Enable use macroblock tree ratecontrol when set to 1. When set to
7748           0, it has the same effect as x264's --no-mbtree option.
7749
7750       deblock (deblock)
7751           Set loop filter parameters, in alpha:beta form.
7752
7753       cplxblur (cplxblur)
7754           Set fluctuations reduction in QP (before curve compression).
7755
7756       partitions (partitions)
7757           Set partitions to consider as a comma-separated list of. Possible
7758           values in the list:
7759
7760           p8x8
7761               8x8 P-frame partition.
7762
7763           p4x4
7764               4x4 P-frame partition.
7765
7766           b8x8
7767               4x4 B-frame partition.
7768
7769           i8x8
7770               8x8 I-frame partition.
7771
7772           i4x4
7773               4x4 I-frame partition.  (Enabling p4x4 requires p8x8 to be
7774               enabled. Enabling i8x8 requires adaptive spatial transform
7775               (8x8dct option) to be enabled.)
7776
7777           none (none)
7778               Do not consider any partitions.
7779
7780           all (all)
7781               Consider every partition.
7782
7783       direct-pred (direct)
7784           Set direct MV prediction mode. Possible values:
7785
7786           none (none)
7787               Disable MV prediction.
7788
7789           spatial (spatial)
7790               Enable spatial predicting.
7791
7792           temporal (temporal)
7793               Enable temporal predicting.
7794
7795           auto (auto)
7796               Automatically decided.
7797
7798       slice-max-size (slice-max-size)
7799           Set the limit of the size of each slice in bytes. If not specified
7800           but RTP payload size (ps) is specified, that is used.
7801
7802       stats (stats)
7803           Set the file name for multi-pass stats.
7804
7805       nal-hrd (nal-hrd)
7806           Set signal HRD information (requires vbv-bufsize to be set).
7807           Possible values:
7808
7809           none (none)
7810               Disable HRD information signaling.
7811
7812           vbr (vbr)
7813               Variable bit rate.
7814
7815           cbr (cbr)
7816               Constant bit rate (not allowed in MP4 container).
7817
7818       x264opts (N.A.)
7819           Set any x264 option, see x264 --fullhelp for a list.
7820
7821           Argument is a list of key=value couples separated by ":". In filter
7822           and psy-rd options that use ":" as a separator themselves, use ","
7823           instead. They accept it as well since long ago but this is kept
7824           undocumented for some reason.
7825
7826           For example to specify libx264 encoding options with ffmpeg:
7827
7828                   ffmpeg -i foo.mpg -c:v libx264 -x264opts keyint=123:min-keyint=20 -an out.mkv
7829
7830       a53cc boolean
7831           Import closed captions (which must be ATSC compatible format) into
7832           output.  Only the mpeg2 and h264 decoders provide these. Default is
7833           1 (on).
7834
7835       udu_sei boolean
7836           Import user data unregistered SEI if available into output. Default
7837           is 0 (off).
7838
7839       x264-params (N.A.)
7840           Override the x264 configuration using a :-separated list of
7841           key=value parameters.
7842
7843           This option is functionally the same as the x264opts, but is
7844           duplicated for compatibility with the Libav fork.
7845
7846           For example to specify libx264 encoding options with ffmpeg:
7847
7848                   ffmpeg -i INPUT -c:v libx264 -x264-params level=30:bframes=0:weightp=0:\
7849                   cabac=0:ref=1:vbv-maxrate=768:vbv-bufsize=2000:analyse=all:me=umh:\
7850                   no-fast-pskip=1:subq=6:8x8dct=0:trellis=0 OUTPUT
7851
7852       Encoding ffpresets for common usages are provided so they can be used
7853       with the general presets system (e.g. passing the pre option).
7854
7855   libx265
7856       x265 H.265/HEVC encoder wrapper.
7857
7858       This encoder requires the presence of the libx265 headers and library
7859       during configuration. You need to explicitly configure the build with
7860       --enable-libx265.
7861
7862       Options
7863
7864       b   Sets target video bitrate.
7865
7866       bf
7867       g   Set the GOP size.
7868
7869       keyint_min
7870           Minimum GOP size.
7871
7872       refs
7873           Number of reference frames each P-frame can use. The range is from
7874           1-16.
7875
7876       preset
7877           Set the x265 preset.
7878
7879       tune
7880           Set the x265 tune parameter.
7881
7882       profile
7883           Set profile restrictions.
7884
7885       crf Set the quality for constant quality mode.
7886
7887       qp  Set constant quantization rate control method parameter.
7888
7889       qmin
7890           Minimum quantizer scale.
7891
7892       qmax
7893           Maximum quantizer scale.
7894
7895       qdiff
7896           Maximum difference between quantizer scales.
7897
7898       qblur
7899           Quantizer curve blur
7900
7901       qcomp
7902           Quantizer curve compression factor
7903
7904       i_qfactor
7905       b_qfactor
7906       forced-idr
7907           Normally, when forcing a I-frame type, the encoder can select any
7908           type of I-frame. This option forces it to choose an IDR-frame.
7909
7910       udu_sei boolean
7911           Import user data unregistered SEI if available into output. Default
7912           is 0 (off).
7913
7914       x265-params
7915           Set x265 options using a list of key=value couples separated by
7916           ":". See x265 --help for a list of options.
7917
7918           For example to specify libx265 encoding options with -x265-params:
7919
7920                   ffmpeg -i input -c:v libx265 -x265-params crf=26:psy-rd=1 output.mp4
7921
7922   libxavs2
7923       xavs2 AVS2-P2/IEEE1857.4 encoder wrapper.
7924
7925       This encoder requires the presence of the libxavs2 headers and library
7926       during configuration. You need to explicitly configure the build with
7927       --enable-libxavs2.
7928
7929       The following standard libavcodec options are used:
7930
7931b / bit_rate
7932
7933g / gop_size
7934
7935bf / max_b_frames
7936
7937       The encoder also has its own specific options:
7938
7939       Options
7940
7941       lcu_row_threads
7942           Set the number of parallel threads for rows from 1 to 8 (default
7943           5).
7944
7945       initial_qp
7946           Set the xavs2 quantization parameter from 1 to 63 (default 34).
7947           This is used to set the initial qp for the first frame.
7948
7949       qp  Set the xavs2 quantization parameter from 1 to 63 (default 34).
7950           This is used to set the qp value under constant-QP mode.
7951
7952       max_qp
7953           Set the max qp for rate control from 1 to 63 (default 55).
7954
7955       min_qp
7956           Set the min qp for rate control from 1 to 63 (default 20).
7957
7958       speed_level
7959           Set the Speed level from 0 to 9 (default 0). Higher is better but
7960           slower.
7961
7962       log_level
7963           Set the log level from -1 to 3 (default 0). -1: none, 0: error, 1:
7964           warning, 2: info, 3: debug.
7965
7966       xavs2-params
7967           Set xavs2 options using a list of key=value couples separated by
7968           ":".
7969
7970           For example to specify libxavs2 encoding options with
7971           -xavs2-params:
7972
7973                   ffmpeg -i input -c:v libxavs2 -xavs2-params RdoqLevel=0 output.avs2
7974
7975   libxvid
7976       Xvid MPEG-4 Part 2 encoder wrapper.
7977
7978       This encoder requires the presence of the libxvidcore headers and
7979       library during configuration. You need to explicitly configure the
7980       build with "--enable-libxvid --enable-gpl".
7981
7982       The native "mpeg4" encoder supports the MPEG-4 Part 2 format, so users
7983       can encode to this format without this library.
7984
7985       Options
7986
7987       The following options are supported by the libxvid wrapper. Some of the
7988       following options are listed but are not documented, and correspond to
7989       shared codec options. See the Codec Options chapter for their
7990       documentation. The other shared options which are not listed have no
7991       effect for the libxvid encoder.
7992
7993       b
7994       g
7995       qmin
7996       qmax
7997       mpeg_quant
7998       threads
7999       bf
8000       b_qfactor
8001       b_qoffset
8002       flags
8003           Set specific encoding flags. Possible values:
8004
8005           mv4 Use four motion vector by macroblock.
8006
8007           aic Enable high quality AC prediction.
8008
8009           gray
8010               Only encode grayscale.
8011
8012           gmc Enable the use of global motion compensation (GMC).
8013
8014           qpel
8015               Enable quarter-pixel motion compensation.
8016
8017           cgop
8018               Enable closed GOP.
8019
8020           global_header
8021               Place global headers in extradata instead of every keyframe.
8022
8023       trellis
8024       me_method
8025           Set motion estimation method. Possible values in decreasing order
8026           of speed and increasing order of quality:
8027
8028           zero
8029               Use no motion estimation (default).
8030
8031           phods
8032           x1
8033           log Enable advanced diamond zonal search for 16x16 blocks and half-
8034               pixel refinement for 16x16 blocks. x1 and log are aliases for
8035               phods.
8036
8037           epzs
8038               Enable all of the things described above, plus advanced diamond
8039               zonal search for 8x8 blocks, half-pixel refinement for 8x8
8040               blocks, and motion estimation on chroma planes.
8041
8042           full
8043               Enable all of the things described above, plus extended 16x16
8044               and 8x8 blocks search.
8045
8046       mbd Set macroblock decision algorithm. Possible values in the
8047           increasing order of quality:
8048
8049           simple
8050               Use macroblock comparing function algorithm (default).
8051
8052           bits
8053               Enable rate distortion-based half pixel and quarter pixel
8054               refinement for 16x16 blocks.
8055
8056           rd  Enable all of the things described above, plus rate distortion-
8057               based half pixel and quarter pixel refinement for 8x8 blocks,
8058               and rate distortion-based search using square pattern.
8059
8060       lumi_aq
8061           Enable lumi masking adaptive quantization when set to 1. Default is
8062           0 (disabled).
8063
8064       variance_aq
8065           Enable variance adaptive quantization when set to 1. Default is 0
8066           (disabled).
8067
8068           When combined with lumi_aq, the resulting quality will not be
8069           better than any of the two specified individually. In other words,
8070           the resulting quality will be the worse one of the two effects.
8071
8072       ssim
8073           Set structural similarity (SSIM) displaying method. Possible
8074           values:
8075
8076           off Disable displaying of SSIM information.
8077
8078           avg Output average SSIM at the end of encoding to stdout. The
8079               format of showing the average SSIM is:
8080
8081                       Average SSIM: %f
8082
8083               For users who are not familiar with C, %f means a float number,
8084               or a decimal (e.g. 0.939232).
8085
8086           frame
8087               Output both per-frame SSIM data during encoding and average
8088               SSIM at the end of encoding to stdout. The format of per-frame
8089               information is:
8090
8091                              SSIM: avg: %1.3f min: %1.3f max: %1.3f
8092
8093               For users who are not familiar with C, %1.3f means a float
8094               number rounded to 3 digits after the dot (e.g. 0.932).
8095
8096       ssim_acc
8097           Set SSIM accuracy. Valid options are integers within the range of
8098           0-4, while 0 gives the most accurate result and 4 computes the
8099           fastest.
8100
8101   MediaFoundation
8102       This provides wrappers to encoders (both audio and video) in the
8103       MediaFoundation framework. It can access both SW and HW encoders.
8104       Video encoders can take input in either of nv12 or yuv420p form (some
8105       encoders support both, some support only either - in practice, nv12 is
8106       the safer choice, especially among HW encoders).
8107
8108   mpeg2
8109       MPEG-2 video encoder.
8110
8111       Options
8112
8113       profile
8114           Select the mpeg2 profile to encode:
8115
8116           422
8117           high
8118           ss  Spatially Scalable
8119
8120           snr SNR Scalable
8121
8122           main
8123           simple
8124       level
8125           Select the mpeg2 level to encode:
8126
8127           high
8128           high1440
8129           main
8130           low
8131       seq_disp_ext integer
8132           Specifies if the encoder should write a sequence_display_extension
8133           to the output.
8134
8135           -1
8136           auto
8137               Decide automatically to write it or not (this is the default)
8138               by checking if the data to be written is different from the
8139               default or unspecified values.
8140
8141           0
8142           never
8143               Never write it.
8144
8145           1
8146           always
8147               Always write it.
8148
8149       video_format integer
8150           Specifies the video_format written into the sequence display
8151           extension indicating the source of the video pictures. The default
8152           is unspecified, can be component, pal, ntsc, secam or mac.  For
8153           maximum compatibility, use component.
8154
8155       a53cc boolean
8156           Import closed captions (which must be ATSC compatible format) into
8157           output.  Default is 1 (on).
8158
8159   png
8160       PNG image encoder.
8161
8162       Private options
8163
8164       dpi integer
8165           Set physical density of pixels, in dots per inch, unset by default
8166
8167       dpm integer
8168           Set physical density of pixels, in dots per meter, unset by default
8169
8170   ProRes
8171       Apple ProRes encoder.
8172
8173       FFmpeg contains 2 ProRes encoders, the prores-aw and prores-ks encoder.
8174       The used encoder can be chosen with the "-vcodec" option.
8175
8176       Private Options for prores-ks
8177
8178       profile integer
8179           Select the ProRes profile to encode
8180
8181           proxy
8182           lt
8183           standard
8184           hq
8185           4444
8186           4444xq
8187       quant_mat integer
8188           Select quantization matrix.
8189
8190           auto
8191           default
8192           proxy
8193           lt
8194           standard
8195           hq
8196
8197           If set to auto, the matrix matching the profile will be picked.  If
8198           not set, the matrix providing the highest quality, default, will be
8199           picked.
8200
8201       bits_per_mb integer
8202           How many bits to allot for coding one macroblock. Different
8203           profiles use between 200 and 2400 bits per macroblock, the maximum
8204           is 8000.
8205
8206       mbs_per_slice integer
8207           Number of macroblocks in each slice (1-8); the default value (8)
8208           should be good in almost all situations.
8209
8210       vendor string
8211           Override the 4-byte vendor ID.  A custom vendor ID like apl0 would
8212           claim the stream was produced by the Apple encoder.
8213
8214       alpha_bits integer
8215           Specify number of bits for alpha component.  Possible values are 0,
8216           8 and 16.  Use 0 to disable alpha plane coding.
8217
8218       Speed considerations
8219
8220       In the default mode of operation the encoder has to honor frame
8221       constraints (i.e. not produce frames with size bigger than requested)
8222       while still making output picture as good as possible.  A frame
8223       containing a lot of small details is harder to compress and the encoder
8224       would spend more time searching for appropriate quantizers for each
8225       slice.
8226
8227       Setting a higher bits_per_mb limit will improve the speed.
8228
8229       For the fastest encoding speed set the qscale parameter (4 is the
8230       recommended value) and do not set a size constraint.
8231
8232   QSV Encoders
8233       The family of Intel QuickSync Video encoders (MPEG-2, H.264, HEVC,
8234       JPEG/MJPEG and VP9)
8235
8236       Ratecontrol Method
8237
8238       The ratecontrol method is selected as follows:
8239
8240       •   When global_quality is specified, a quality-based mode is used.
8241           Specifically this means either
8242
8243           -   CQP - constant quantizer scale, when the qscale codec flag is
8244               also set (the -qscale ffmpeg option).
8245
8246           -   LA_ICQ - intelligent constant quality with lookahead, when the
8247               look_ahead option is also set.
8248
8249           -   ICQ -- intelligent constant quality otherwise. For the ICQ
8250               modes, global quality range is 1 to 51, with 1 being the best
8251               quality.
8252
8253       •   Otherwise, a bitrate-based mode is used. For all of those, you
8254           should specify at least the desired average bitrate with the b
8255           option.
8256
8257           -   LA - VBR with lookahead, when the look_ahead option is
8258               specified.
8259
8260           -   VCM - video conferencing mode, when the vcm option is set.
8261
8262           -   CBR - constant bitrate, when maxrate is specified and equal to
8263               the average bitrate.
8264
8265           -   VBR - variable bitrate, when maxrate is specified, but is
8266               higher than the average bitrate.
8267
8268           -   AVBR - average VBR mode, when maxrate is not specified. This
8269               mode is further configured by the avbr_accuracy and
8270               avbr_convergence options.
8271
8272       Note that depending on your system, a different mode than the one you
8273       specified may be selected by the encoder. Set the verbosity level to
8274       verbose or higher to see the actual settings used by the QSV runtime.
8275
8276       Global Options -> MSDK Options
8277
8278       Additional libavcodec global options are mapped to MSDK options as
8279       follows:
8280
8281g/gop_size -> GopPicSize
8282
8283bf/max_b_frames+1 -> GopRefDist
8284
8285rc_init_occupancy/rc_initial_buffer_occupancy -> InitialDelayInKB
8286
8287slices -> NumSlice
8288
8289refs -> NumRefFrame
8290
8291b_strategy/b_frame_strategy -> BRefType
8292
8293cgop/CLOSED_GOP codec flag -> GopOptFlag
8294
8295       •   For the CQP mode, the i_qfactor/i_qoffset and b_qfactor/b_qoffset
8296           set the difference between QPP and QPI, and QPP and QPB
8297           respectively.
8298
8299       •   Setting the coder option to the value vlc will make the H.264
8300           encoder use CAVLC instead of CABAC.
8301
8302       Common Options
8303
8304       Following options are used by all qsv encoders.
8305
8306       async_depth
8307           Specifies how many asynchronous operations an application performs
8308           before the application explicitly synchronizes the result. If zero,
8309           the value is not specified.
8310
8311       avbr_accuracy
8312           Accuracy of the AVBR ratecontrol (unit of tenth of percent).
8313
8314       avbr_convergence
8315           Convergence of the AVBR ratecontrol (unit of 100 frames)
8316
8317           The parameters avbr_accuracy and avbr_convergence are for the
8318           average variable bitrate control (AVBR) algorithm.  The algorithm
8319           focuses on overall encoding quality while meeting the specified
8320           bitrate, target_bitrate, within the accuracy range avbr_accuracy,
8321           after a avbr_Convergence period. This method does not follow HRD
8322           and the instant bitrate is not capped or padded.
8323
8324       preset
8325           This option itemizes a range of choices from veryfast (best speed)
8326           to veryslow (best quality).
8327
8328           veryfast
8329           faster
8330           fast
8331           medium
8332           slow
8333           slower
8334           veryslow
8335       forced_idr
8336           Forcing I frames as IDR frames.
8337
8338       low_power
8339           For encoders set this flag to ON to reduce power consumption and
8340           GPU usage.
8341
8342       Runtime Options
8343
8344       Following options can be used durning qsv encoding.
8345
8346       qsv_config_qp
8347           Supported in h264_qsv and hevc_qsv.  This option can be set in per-
8348           frame metadata. QP parameter can be dynamically changed when
8349           encoding in CQP mode.
8350
8351       H264 options
8352
8353       These options are used by h264_qsv
8354
8355       extbrc
8356           Extended bitrate control.
8357
8358       recovery_point_sei
8359           Set this flag to insert the recovery point SEI message at the
8360           beginning of every intra refresh cycle.
8361
8362       rdo Enable rate distortion optimization.
8363
8364       max_frame_size
8365           Maximum encoded frame size in bytes.
8366
8367       max_frame_size_i
8368           Maximum encoded frame size for I frames in bytes. If this value is
8369           set as larger than zero, then for I frames the value set by
8370           max_frame_size is ignored.
8371
8372       max_frame_size_p
8373           Maximum encoded frame size for P frames in bytes. If this value is
8374           set as larger than zero, then for P frames the value set by
8375           max_frame_size is ignored.
8376
8377       max_slice_size
8378           Maximum encoded slice size in bytes.
8379
8380       bitrate_limit
8381           Toggle bitrate limitations.  Modifies bitrate to be in the range
8382           imposed by the QSV encoder. Setting this flag off may lead to
8383           violation of HRD conformance. Mind that specifying bitrate below
8384           the QSV encoder range might significantly affect quality. If on
8385           this option takes effect in non CQP modes: if bitrate is not in the
8386           range imposed by the QSV encoder, it will be changed to be in the
8387           range.
8388
8389       mbbrc
8390           Setting this flag enables macroblock level bitrate control that
8391           generally improves subjective visual quality. Enabling this flag
8392           may have negative impact on performance and objective visual
8393           quality metric.
8394
8395       low_delay_brc
8396           Setting this flag turns on or off LowDelayBRC feautre in qsv
8397           plugin, which provides more accurate bitrate control to minimize
8398           the variance of bitstream size frame by frame. Value: -1-default
8399           0-off 1-on
8400
8401       adaptive_i
8402           This flag controls insertion of I frames by the QSV encoder. Turn
8403           ON this flag to allow changing of frame type from P and B to I.
8404
8405       adaptive_b
8406           This flag controls changing of frame type from B to P.
8407
8408       p_strategy
8409           Enable P-pyramid: 0-default 1-simple 2-pyramid(bf need to be set to
8410           0).
8411
8412       b_strategy
8413           This option controls usage of B frames as reference.
8414
8415       dblk_idc
8416           This option disable deblocking. It has value in range 0~2.
8417
8418       cavlc
8419           If set, CAVLC is used; if unset, CABAC is used for encoding.
8420
8421       vcm Video conferencing mode, please see ratecontrol method.
8422
8423       idr_interval
8424           Distance (in I-frames) between IDR frames.
8425
8426       pic_timing_sei
8427           Insert picture timing SEI with pic_struct_syntax element.
8428
8429       single_sei_nal_unit
8430           Put all the SEI messages into one NALU.
8431
8432       max_dec_frame_buffering
8433           Maximum number of frames buffered in the DPB.
8434
8435       look_ahead
8436           Use VBR algorithm with look ahead.
8437
8438       look_ahead_depth
8439           Depth of look ahead in number frames.
8440
8441       look_ahead_downsampling
8442           Downscaling factor for the frames saved for the lookahead analysis.
8443
8444           unknown
8445           auto
8446           off
8447           2x
8448           4x
8449       int_ref_type
8450           Specifies intra refresh type. The major goal of intra refresh is
8451           improvement of error resilience without significant impact on
8452           encoded bitstream size caused by I frames. The SDK encoder achieves
8453           this by encoding part of each frame in refresh cycle using intra
8454           MBs. none means no refresh. vertical means vertical refresh, by
8455           column of MBs. To enable intra refresh, B frame should be set to 0.
8456
8457       int_ref_cycle_size
8458           Specifies number of pictures within refresh cycle starting from 2.
8459           0 and 1 are invalid values.
8460
8461       int_ref_qp_delta
8462           Specifies QP difference for inserted intra MBs. This is signed
8463           value in [-51, 51] range if target encoding bit-depth for luma
8464           samples is 8 and this range is [-63, 63] for 10 bit-depth or [-75,
8465           75] for 12 bit-depth respectively.
8466
8467       int_ref_cycle_dist
8468           Distance between the beginnings of the intra-refresh cycles in
8469           frames.
8470
8471       profile
8472           unknown
8473           baseline
8474           main
8475           high
8476       a53cc
8477           Use A53 Closed Captions (if available).
8478
8479       aud Insert the Access Unit Delimiter NAL.
8480
8481       mfmode
8482           Multi-Frame Mode.
8483
8484           off
8485           auto
8486       repeat_pps
8487           Repeat pps for every frame.
8488
8489       max_qp_i
8490           Maximum video quantizer scale for I frame.
8491
8492       min_qp_i
8493           Minimum video quantizer scale for I frame.
8494
8495       max_qp_p
8496           Maximum video quantizer scale for P frame.
8497
8498       min_qp_p
8499           Minimum video quantizer scale for P frame.
8500
8501       max_qp_b
8502           Maximum video quantizer scale for B frame.
8503
8504       min_qp_b
8505           Minimum video quantizer scale for B frame.
8506
8507       HEVC Options
8508
8509       These options are used by hevc_qsv
8510
8511       extbrc
8512           Extended bitrate control.
8513
8514       recovery_point_sei
8515           Set this flag to insert the recovery point SEI message at the
8516           beginning of every intra refresh cycle.
8517
8518       rdo Enable rate distortion optimization.
8519
8520       max_frame_size
8521           Maximum encoded frame size in bytes.
8522
8523       max_frame_size_i
8524           Maximum encoded frame size for I frames in bytes. If this value is
8525           set as larger than zero, then for I frames the value set by
8526           max_frame_size is ignored.
8527
8528       max_frame_size_p
8529           Maximum encoded frame size for P frames in bytes. If this value is
8530           set as larger than zero, then for P frames the value set by
8531           max_frame_size is ignored.
8532
8533       max_slice_size
8534           Maximum encoded slice size in bytes.
8535
8536       mbbrc
8537           Setting this flag enables macroblock level bitrate control that
8538           generally improves subjective visual quality. Enabling this flag
8539           may have negative impact on performance and objective visual
8540           quality metric.
8541
8542       low_delay_brc
8543           Setting this flag turns on or off LowDelayBRC feautre in qsv
8544           plugin, which provides more accurate bitrate control to minimize
8545           the variance of bitstream size frame by frame. Value: -1-default
8546           0-off 1-on
8547
8548       p_strategy
8549           Enable P-pyramid: 0-default 1-simple 2-pyramid(bf need to be set to
8550           0).
8551
8552       b_strategy
8553           This option controls usage of B frames as reference.
8554
8555       dblk_idc
8556           This option disable deblocking. It has value in range 0~2.
8557
8558       idr_interval
8559           Distance (in I-frames) between IDR frames.
8560
8561           begin_only
8562               Output an IDR-frame only at the beginning of the stream.
8563
8564       load_plugin
8565           A user plugin to load in an internal session.
8566
8567           none
8568           hevc_sw
8569           hevc_hw
8570       load_plugins
8571           A :-separate list of hexadecimal plugin UIDs to load in an internal
8572           session.
8573
8574       look_ahead_depth
8575           Depth of look ahead in number frames, available when extbrc option
8576           is enabled.
8577
8578       profile
8579           Set the encoding profile (scc requires libmfx >= 1.32).
8580
8581           unknown
8582           main
8583           main10
8584           mainsp
8585           rext
8586           scc
8587       gpb 1: GPB (generalized P/B frame)
8588
8589           0: regular P frame.
8590
8591       tile_cols
8592           Number of columns for tiled encoding.
8593
8594       tile_rows
8595           Number of rows for tiled encoding.
8596
8597       aud Insert the Access Unit Delimiter NAL.
8598
8599       pic_timing_sei
8600           Insert picture timing SEI with pic_struct_syntax element.
8601
8602       transform_skip
8603           Turn this option ON to enable transformskip. It is supported on
8604           platform equal or newer than ICL.
8605
8606       int_ref_type
8607           Specifies intra refresh type. The major goal of intra refresh is
8608           improvement of error resilience without significant impact on
8609           encoded bitstream size caused by I frames. The SDK encoder achieves
8610           this by encoding part of each frame in refresh cycle using intra
8611           MBs. none means no refresh. vertical means vertical refresh, by
8612           column of MBs. To enable intra refresh, B frame should be set to 0.
8613
8614       int_ref_cycle_size
8615           Specifies number of pictures within refresh cycle starting from 2.
8616           0 and 1 are invalid values.
8617
8618       int_ref_qp_delta
8619           Specifies QP difference for inserted intra MBs. This is signed
8620           value in [-51, 51] range if target encoding bit-depth for luma
8621           samples is 8 and this range is [-63, 63] for 10 bit-depth or [-75,
8622           75] for 12 bit-depth respectively.
8623
8624       int_ref_cycle_dist
8625           Distance between the beginnings of the intra-refresh cycles in
8626           frames.
8627
8628       max_qp_i
8629           Maximum video quantizer scale for I frame.
8630
8631       min_qp_i
8632           Minimum video quantizer scale for I frame.
8633
8634       max_qp_p
8635           Maximum video quantizer scale for P frame.
8636
8637       min_qp_p
8638           Minimum video quantizer scale for P frame.
8639
8640       max_qp_b
8641           Maximum video quantizer scale for B frame.
8642
8643       min_qp_b
8644           Minimum video quantizer scale for B frame.
8645
8646       MPEG2 Options
8647
8648       These options are used by mpeg2_qsv
8649
8650       profile
8651           unknown
8652           simple
8653           main
8654           high
8655
8656       VP9 Options
8657
8658       These options are used by vp9_qsv
8659
8660       profile
8661           unknown
8662           profile0
8663           profile1
8664           profile2
8665           profile3
8666       tile_cols
8667           Number of columns for tiled encoding (requires libmfx >= 1.29).
8668
8669       tile_rows
8670           Number of rows for tiled encoding (requires libmfx  >= 1.29).
8671
8672   snow
8673       Options
8674
8675       iterative_dia_size
8676           dia size for the iterative motion estimation
8677
8678   VAAPI encoders
8679       Wrappers for hardware encoders accessible via VAAPI.
8680
8681       These encoders only accept input in VAAPI hardware surfaces.  If you
8682       have input in software frames, use the hwupload filter to upload them
8683       to the GPU.
8684
8685       The following standard libavcodec options are used:
8686
8687g / gop_size
8688
8689bf / max_b_frames
8690
8691profile
8692
8693           If not set, this will be determined automatically from the format
8694           of the input frames and the profiles supported by the driver.
8695
8696level
8697
8698b / bit_rate
8699
8700maxrate / rc_max_rate
8701
8702bufsize / rc_buffer_size
8703
8704rc_init_occupancy / rc_initial_buffer_occupancy
8705
8706compression_level
8707
8708           Speed / quality tradeoff: higher values are faster / worse quality.
8709
8710q / global_quality
8711
8712           Size / quality tradeoff: higher values are smaller / worse quality.
8713
8714qmin
8715
8716qmax
8717
8718i_qfactor / i_quant_factor
8719
8720i_qoffset / i_quant_offset
8721
8722b_qfactor / b_quant_factor
8723
8724b_qoffset / b_quant_offset
8725
8726slices
8727
8728       All encoders support the following options:
8729
8730       low_power
8731           Some drivers/platforms offer a second encoder for some codecs
8732           intended to use less power than the default encoder; setting this
8733           option will attempt to use that encoder.  Note that it may support
8734           a reduced feature set, so some other options may not be available
8735           in this mode.
8736
8737       idr_interval
8738           Set the number of normal intra frames between full-refresh (IDR)
8739           frames in open-GOP mode.  The intra frames are still IRAPs, but
8740           will not include global headers and may have non-decodable leading
8741           pictures.
8742
8743       b_depth
8744           Set the B-frame reference depth.  When set to one (the default),
8745           all B-frames will refer only to P- or I-frames.  When set to
8746           greater values multiple layers of B-frames will be present, frames
8747           in each layer only referring to frames in higher layers.
8748
8749       async_depth
8750           Maximum processing parallelism. Increase this to improve single
8751           channel performance. This option doesn't work if driver doesn't
8752           implement vaSyncBuffer function. Please make sure there are enough
8753           hw_frames allocated if a large number of async_depth is used.
8754
8755       max_frame_size
8756           Set the allowed max size in bytes for each frame. If the frame size
8757           exceeds the limitation, encoder will adjust the QP value to control
8758           the frame size.  Invalid in CQP rate control mode.
8759
8760       rc_mode
8761           Set the rate control mode to use.  A given driver may only support
8762           a subset of modes.
8763
8764           Possible modes:
8765
8766           auto
8767               Choose the mode automatically based on driver support and the
8768               other options.  This is the default.
8769
8770           CQP Constant-quality.
8771
8772           CBR Constant-bitrate.
8773
8774           VBR Variable-bitrate.
8775
8776           ICQ Intelligent constant-quality.
8777
8778           QVBR
8779               Quality-defined variable-bitrate.
8780
8781           AVBR
8782               Average variable bitrate.
8783
8784       Each encoder also has its own specific options:
8785
8786       h264_vaapi
8787           profile sets the value of profile_idc and the
8788           constraint_set*_flags.  level sets the value of level_idc.
8789
8790           coder
8791               Set entropy encoder (default is cabac).  Possible values:
8792
8793               ac
8794               cabac
8795                   Use CABAC.
8796
8797               vlc
8798               cavlc
8799                   Use CAVLC.
8800
8801           aud Include access unit delimiters in the stream (not included by
8802               default).
8803
8804           sei Set SEI message types to include.  Some combination of the
8805               following values:
8806
8807               identifier
8808                   Include a user_data_unregistered message containing
8809                   information about the encoder.
8810
8811               timing
8812                   Include picture timing parameters (buffering_period and
8813                   pic_timing messages).
8814
8815               recovery_point
8816                   Include recovery points where appropriate (recovery_point
8817                   messages).
8818
8819       hevc_vaapi
8820           profile and level set the values of general_profile_idc and
8821           general_level_idc respectively.
8822
8823           aud Include access unit delimiters in the stream (not included by
8824               default).
8825
8826           tier
8827               Set general_tier_flag.  This may affect the level chosen for
8828               the stream if it is not explicitly specified.
8829
8830           sei Set SEI message types to include.  Some combination of the
8831               following values:
8832
8833               hdr Include HDR metadata if the input frames have it
8834                   (mastering_display_colour_volume and content_light_level
8835                   messages).
8836
8837           tiles
8838               Set the number of tiles to encode the input video with, as
8839               columns x rows.  Larger numbers allow greater parallelism in
8840               both encoding and decoding, but may decrease coding efficiency.
8841
8842       mjpeg_vaapi
8843           Only baseline DCT encoding is supported.  The encoder always uses
8844           the standard quantisation and huffman tables - global_quality
8845           scales the standard quantisation table (range 1-100).
8846
8847           For YUV, 4:2:0, 4:2:2 and 4:4:4 subsampling modes are supported.
8848           RGB is also supported, and will create an RGB JPEG.
8849
8850           jfif
8851               Include JFIF header in each frame (not included by default).
8852
8853           huffman
8854               Include standard huffman tables (on by default).  Turning this
8855               off will save a few hundred bytes in each output frame, but may
8856               lose compatibility with some JPEG decoders which don't fully
8857               handle MJPEG.
8858
8859       mpeg2_vaapi
8860           profile and level set the value of profile_and_level_indication.
8861
8862       vp8_vaapi
8863           B-frames are not supported.
8864
8865           global_quality sets the q_idx used for non-key frames (range
8866           0-127).
8867
8868           loop_filter_level
8869           loop_filter_sharpness
8870               Manually set the loop filter parameters.
8871
8872       vp9_vaapi
8873           global_quality sets the q_idx used for P-frames (range 0-255).
8874
8875           loop_filter_level
8876           loop_filter_sharpness
8877               Manually set the loop filter parameters.
8878
8879           B-frames are supported, but the output stream is always in encode
8880           order rather than display order.  If B-frames are enabled, it may
8881           be necessary to use the vp9_raw_reorder bitstream filter to modify
8882           the output stream to display frames in the correct order.
8883
8884           Only normal frames are produced - the vp9_superframe bitstream
8885           filter may be required to produce a stream usable with all
8886           decoders.
8887
8888   vbn
8889       Vizrt Binary Image encoder.
8890
8891       This format is used by the broadcast vendor Vizrt for quick texture
8892       streaming.  Advanced features of the format such as LZW compression of
8893       texture data or generation of mipmaps are not supported.
8894
8895       Options
8896
8897       format string
8898           Sets the texture compression used by the VBN file. Can be dxt1,
8899           dxt5 or raw. Default is dxt5.
8900
8901   vc2
8902       SMPTE VC-2 (previously BBC Dirac Pro). This codec was primarily aimed
8903       at professional broadcasting but since it supports yuv420, yuv422 and
8904       yuv444 at 8 (limited range or full range), 10 or 12 bits, this makes it
8905       suitable for other tasks which require low overhead and low compression
8906       (like screen recording).
8907
8908       Options
8909
8910       b   Sets target video bitrate. Usually that's around 1:6 of the
8911           uncompressed video bitrate (e.g. for 1920x1080 50fps yuv422p10
8912           that's around 400Mbps). Higher values (close to the uncompressed
8913           bitrate) turn on lossless compression mode.
8914
8915       field_order
8916           Enables field coding when set (e.g. to tt - top field first) for
8917           interlaced inputs. Should increase compression with interlaced
8918           content as it splits the fields and encodes each separately.
8919
8920       wavelet_depth
8921           Sets the total amount of wavelet transforms to apply, between 1 and
8922           5 (default).  Lower values reduce compression and quality. Less
8923           capable decoders may not be able to handle values of wavelet_depth
8924           over 3.
8925
8926       wavelet_type
8927           Sets the transform type. Currently only 5_3 (LeGall) and 9_7
8928           (Deslauriers-Dubuc) are implemented, with 9_7 being the one with
8929           better compression and thus is the default.
8930
8931       slice_width
8932       slice_height
8933           Sets the slice size for each slice. Larger values result in better
8934           compression.  For compatibility with other more limited decoders
8935           use slice_width of 32 and slice_height of 8.
8936
8937       tolerance
8938           Sets the undershoot tolerance of the rate control system in
8939           percent. This is to prevent an expensive search from being run.
8940
8941       qm  Sets the quantization matrix preset to use by default or when
8942           wavelet_depth is set to 5
8943
8944           -   default Uses the default quantization matrix from the
8945               specifications, extended with values for the fifth level. This
8946               provides a good balance between keeping detail and omitting
8947               artifacts.
8948
8949           -   flat Use a completely zeroed out quantization matrix. This
8950               increases PSNR but might reduce perception. Use in bogus
8951               benchmarks.
8952
8953           -   color Reduces detail but attempts to preserve color at
8954               extremely low bitrates.
8955

SUBTITLES ENCODERS

8957   dvdsub
8958       This codec encodes the bitmap subtitle format that is used in DVDs.
8959       Typically they are stored in VOBSUB file pairs (*.idx + *.sub), and
8960       they can also be used in Matroska files.
8961
8962       Options
8963
8964       palette
8965           Specify the global palette used by the bitmaps.
8966
8967           The format for this option is a string containing 16 24-bits
8968           hexadecimal numbers (without 0x prefix) separated by commas, for
8969           example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b,
8970           0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c,
8971           7c127b".
8972
8973       even_rows_fix
8974           When set to 1, enable a work-around that makes the number of pixel
8975           rows even in all subtitles.  This fixes a problem with some players
8976           that cut off the bottom row if the number is odd.  The work-around
8977           just adds a fully transparent row if needed.  The overhead is low,
8978           typically one byte per subtitle on average.
8979
8980           By default, this work-around is disabled.
8981

BITSTREAM FILTERS

8983       When you configure your FFmpeg build, all the supported bitstream
8984       filters are enabled by default. You can list all available ones using
8985       the configure option "--list-bsfs".
8986
8987       You can disable all the bitstream filters using the configure option
8988       "--disable-bsfs", and selectively enable any bitstream filter using the
8989       option "--enable-bsf=BSF", or you can disable a particular bitstream
8990       filter using the option "--disable-bsf=BSF".
8991
8992       The option "-bsfs" of the ff* tools will display the list of all the
8993       supported bitstream filters included in your build.
8994
8995       The ff* tools have a -bsf option applied per stream, taking a comma-
8996       separated list of filters, whose parameters follow the filter name
8997       after a '='.
8998
8999               ffmpeg -i INPUT -c:v copy -bsf:v filter1[=opt1=str1:opt2=str2][,filter2] OUTPUT
9000
9001       Below is a description of the currently available bitstream filters,
9002       with their parameters, if any.
9003
9004   aac_adtstoasc
9005       Convert MPEG-2/4 AAC ADTS to an MPEG-4 Audio Specific Configuration
9006       bitstream.
9007
9008       This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4 ADTS
9009       header and removes the ADTS header.
9010
9011       This filter is required for example when copying an AAC stream from a
9012       raw ADTS AAC or an MPEG-TS container to MP4A-LATM, to an FLV file, or
9013       to MOV/MP4 files and related formats such as 3GP or M4A. Please note
9014       that it is auto-inserted for MP4A-LATM and MOV/MP4 and related formats.
9015
9016   av1_metadata
9017       Modify metadata embedded in an AV1 stream.
9018
9019       td  Insert or remove temporal delimiter OBUs in all temporal units of
9020           the stream.
9021
9022           insert
9023               Insert a TD at the beginning of every TU which does not already
9024               have one.
9025
9026           remove
9027               Remove the TD from the beginning of every TU which has one.
9028
9029       color_primaries
9030       transfer_characteristics
9031       matrix_coefficients
9032           Set the color description fields in the stream (see AV1 section
9033           6.4.2).
9034
9035       color_range
9036           Set the color range in the stream (see AV1 section 6.4.2; note that
9037           this cannot be set for streams using BT.709 primaries, sRGB
9038           transfer characteristic and identity (RGB) matrix coefficients).
9039
9040           tv  Limited range.
9041
9042           pc  Full range.
9043
9044       chroma_sample_position
9045           Set the chroma sample location in the stream (see AV1 section
9046           6.4.2).  This can only be set for 4:2:0 streams.
9047
9048           vertical
9049               Left position (matching the default in MPEG-2 and H.264).
9050
9051           colocated
9052               Top-left position.
9053
9054       tick_rate
9055           Set the tick rate (time_scale / num_units_in_display_tick) in the
9056           timing info in the sequence header.
9057
9058       num_ticks_per_picture
9059           Set the number of ticks in each picture, to indicate that the
9060           stream has a fixed framerate.  Ignored if tick_rate is not also
9061           set.
9062
9063       delete_padding
9064           Deletes Padding OBUs.
9065
9066   chomp
9067       Remove zero padding at the end of a packet.
9068
9069   dca_core
9070       Extract the core from a DCA/DTS stream, dropping extensions such as
9071       DTS-HD.
9072
9073   dump_extra
9074       Add extradata to the beginning of the filtered packets except when said
9075       packets already exactly begin with the extradata that is intended to be
9076       added.
9077
9078       freq
9079           The additional argument specifies which packets should be filtered.
9080           It accepts the values:
9081
9082           k
9083           keyframe
9084               add extradata to all key packets
9085
9086           e
9087           all add extradata to all packets
9088
9089       If not specified it is assumed k.
9090
9091       For example the following ffmpeg command forces a global header (thus
9092       disabling individual packet headers) in the H.264 packets generated by
9093       the "libx264" encoder, but corrects them by adding the header stored in
9094       extradata to the key packets:
9095
9096               ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
9097
9098   dv_error_marker
9099       Blocks in DV which are marked as damaged are replaced by blocks of the
9100       specified color.
9101
9102       color
9103           The color to replace damaged blocks by
9104
9105       sta A 16 bit mask which specifies which of the 16 possible error status
9106           values are to be replaced by colored blocks. 0xFFFE is the default
9107           which replaces all non 0 error status values.
9108
9109           ok  No error, no concealment
9110
9111           err Error, No concealment
9112
9113           res Reserved
9114
9115           notok
9116               Error or concealment
9117
9118           notres
9119               Not reserved
9120
9121           Aa, Ba, Ca, Ab, Bb, Cb, A, B, C, a, b, erri, erru
9122               The specific error status code
9123
9124           see page 44-46 or section 5.5 of
9125           <http://web.archive.org/web/20060927044735/http://www.smpte.org/smpte_store/standards/pdf/s314m.pdf>
9126
9127   eac3_core
9128       Extract the core from a E-AC-3 stream, dropping extra channels.
9129
9130   extract_extradata
9131       Extract the in-band extradata.
9132
9133       Certain codecs allow the long-term headers (e.g. MPEG-2 sequence
9134       headers, or H.264/HEVC (VPS/)SPS/PPS) to be transmitted either "in-
9135       band" (i.e. as a part of the bitstream containing the coded frames) or
9136       "out of band" (e.g. on the container level). This latter form is called
9137       "extradata" in FFmpeg terminology.
9138
9139       This bitstream filter detects the in-band headers and makes them
9140       available as extradata.
9141
9142       remove
9143           When this option is enabled, the long-term headers are removed from
9144           the bitstream after extraction.
9145
9146   filter_units
9147       Remove units with types in or not in a given set from the stream.
9148
9149       pass_types
9150           List of unit types or ranges of unit types to pass through while
9151           removing all others.  This is specified as a '|'-separated list of
9152           unit type values or ranges of values with '-'.
9153
9154       remove_types
9155           Identical to pass_types, except the units in the given set removed
9156           and all others passed through.
9157
9158       Extradata is unchanged by this transformation, but note that if the
9159       stream contains inline parameter sets then the output may be unusable
9160       if they are removed.
9161
9162       For example, to remove all non-VCL NAL units from an H.264 stream:
9163
9164               ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=pass_types=1-5' OUTPUT
9165
9166       To remove all AUDs, SEI and filler from an H.265 stream:
9167
9168               ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=35|38-40' OUTPUT
9169
9170   hapqa_extract
9171       Extract Rgb or Alpha part of an HAPQA file, without recompression, in
9172       order to create an HAPQ or an HAPAlphaOnly file.
9173
9174       texture
9175           Specifies the texture to keep.
9176
9177           color
9178           alpha
9179
9180       Convert HAPQA to HAPQ
9181
9182               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
9183
9184       Convert HAPQA to HAPAlphaOnly
9185
9186               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
9187
9188   h264_metadata
9189       Modify metadata embedded in an H.264 stream.
9190
9191       aud Insert or remove AUD NAL units in all access units of the stream.
9192
9193           pass
9194           insert
9195           remove
9196
9197           Default is pass.
9198
9199       sample_aspect_ratio
9200           Set the sample aspect ratio of the stream in the VUI parameters.
9201           See H.264 table E-1.
9202
9203       overscan_appropriate_flag
9204           Set whether the stream is suitable for display using overscan or
9205           not (see H.264 section E.2.1).
9206
9207       video_format
9208       video_full_range_flag
9209           Set the video format in the stream (see H.264 section E.2.1 and
9210           table E-2).
9211
9212       colour_primaries
9213       transfer_characteristics
9214       matrix_coefficients
9215           Set the colour description in the stream (see H.264 section E.2.1
9216           and tables E-3, E-4 and E-5).
9217
9218       chroma_sample_loc_type
9219           Set the chroma sample location in the stream (see H.264 section
9220           E.2.1 and figure E-1).
9221
9222       tick_rate
9223           Set the tick rate (time_scale / num_units_in_tick) in the VUI
9224           parameters.  This is the smallest time unit representable in the
9225           stream, and in many cases represents the field rate of the stream
9226           (double the frame rate).
9227
9228       fixed_frame_rate_flag
9229           Set whether the stream has fixed framerate - typically this
9230           indicates that the framerate is exactly half the tick rate, but the
9231           exact meaning is dependent on interlacing and the picture structure
9232           (see H.264 section E.2.1 and table E-6).
9233
9234       zero_new_constraint_set_flags
9235           Zero constraint_set4_flag and constraint_set5_flag in the SPS.
9236           These bits were reserved in a previous version of the H.264 spec,
9237           and thus some hardware decoders require these to be zero. The
9238           result of zeroing this is still a valid bitstream.
9239
9240       crop_left
9241       crop_right
9242       crop_top
9243       crop_bottom
9244           Set the frame cropping offsets in the SPS.  These values will
9245           replace the current ones if the stream is already cropped.
9246
9247           These fields are set in pixels.  Note that some sizes may not be
9248           representable if the chroma is subsampled or the stream is
9249           interlaced (see H.264 section 7.4.2.1.1).
9250
9251       sei_user_data
9252           Insert a string as SEI unregistered user data.  The argument must
9253           be of the form UUID+string, where the UUID is as hex digits
9254           possibly separated by hyphens, and the string can be anything.
9255
9256           For example, 086f3693-b7b3-4f2c-9653-21492feee5b8+hello will insert
9257           the string ``hello'' associated with the given UUID.
9258
9259       delete_filler
9260           Deletes both filler NAL units and filler SEI messages.
9261
9262       display_orientation
9263           Insert, extract or remove Display orientation SEI messages.  See
9264           H.264 section D.1.27 and D.2.27 for syntax and semantics.
9265
9266           pass
9267           insert
9268           remove
9269           extract
9270
9271           Default is pass.
9272
9273           Insert mode works in conjunction with "rotate" and "flip" options.
9274           Any pre-existing Display orientation messages will be removed in
9275           insert or remove mode.  Extract mode attaches the display matrix to
9276           the packet as side data.
9277
9278       rotate
9279           Set rotation in display orientation SEI (anticlockwise angle in
9280           degrees).  Range is -360 to +360. Default is NaN.
9281
9282       flip
9283           Set flip in display orientation SEI.
9284
9285           horizontal
9286           vertical
9287
9288           Default is unset.
9289
9290       level
9291           Set the level in the SPS.  Refer to H.264 section A.3 and tables
9292           A-1 to A-5.
9293
9294           The argument must be the name of a level (for example, 4.2), a
9295           level_idc value (for example, 42), or the special name auto
9296           indicating that the filter should attempt to guess the level from
9297           the input stream properties.
9298
9299   h264_mp4toannexb
9300       Convert an H.264 bitstream from length prefixed mode to start code
9301       prefixed mode (as defined in the Annex B of the ITU-T H.264
9302       specification).
9303
9304       This is required by some streaming formats, typically the MPEG-2
9305       transport stream format (muxer "mpegts").
9306
9307       For example to remux an MP4 file containing an H.264 stream to mpegts
9308       format with ffmpeg, you can use the command:
9309
9310               ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
9311
9312       Please note that this filter is auto-inserted for MPEG-TS (muxer
9313       "mpegts") and raw H.264 (muxer "h264") output formats.
9314
9315   h264_redundant_pps
9316       This applies a specific fixup to some Blu-ray streams which contain
9317       redundant PPSs modifying irrelevant parameters of the stream which
9318       confuse other transformations which require correct extradata.
9319
9320       A new single global PPS is created, and all of the redundant PPSs
9321       within the stream are removed.
9322
9323   hevc_metadata
9324       Modify metadata embedded in an HEVC stream.
9325
9326       aud Insert or remove AUD NAL units in all access units of the stream.
9327
9328           insert
9329           remove
9330       sample_aspect_ratio
9331           Set the sample aspect ratio in the stream in the VUI parameters.
9332
9333       video_format
9334       video_full_range_flag
9335           Set the video format in the stream (see H.265 section E.3.1 and
9336           table E.2).
9337
9338       colour_primaries
9339       transfer_characteristics
9340       matrix_coefficients
9341           Set the colour description in the stream (see H.265 section E.3.1
9342           and tables E.3, E.4 and E.5).
9343
9344       chroma_sample_loc_type
9345           Set the chroma sample location in the stream (see H.265 section
9346           E.3.1 and figure E.1).
9347
9348       tick_rate
9349           Set the tick rate in the VPS and VUI parameters (time_scale /
9350           num_units_in_tick). Combined with num_ticks_poc_diff_one, this can
9351           set a constant framerate in the stream.  Note that it is likely to
9352           be overridden by container parameters when the stream is in a
9353           container.
9354
9355       num_ticks_poc_diff_one
9356           Set poc_proportional_to_timing_flag in VPS and VUI and use this
9357           value to set num_ticks_poc_diff_one_minus1 (see H.265 sections
9358           7.4.3.1 and E.3.1).  Ignored if tick_rate is not also set.
9359
9360       crop_left
9361       crop_right
9362       crop_top
9363       crop_bottom
9364           Set the conformance window cropping offsets in the SPS.  These
9365           values will replace the current ones if the stream is already
9366           cropped.
9367
9368           These fields are set in pixels.  Note that some sizes may not be
9369           representable if the chroma is subsampled (H.265 section
9370           7.4.3.2.1).
9371
9372       level
9373           Set the level in the VPS and SPS.  See H.265 section A.4 and tables
9374           A.6 and A.7.
9375
9376           The argument must be the name of a level (for example, 5.1), a
9377           general_level_idc value (for example, 153 for level 5.1), or the
9378           special name auto indicating that the filter should attempt to
9379           guess the level from the input stream properties.
9380
9381   hevc_mp4toannexb
9382       Convert an HEVC/H.265 bitstream from length prefixed mode to start code
9383       prefixed mode (as defined in the Annex B of the ITU-T H.265
9384       specification).
9385
9386       This is required by some streaming formats, typically the MPEG-2
9387       transport stream format (muxer "mpegts").
9388
9389       For example to remux an MP4 file containing an HEVC stream to mpegts
9390       format with ffmpeg, you can use the command:
9391
9392               ffmpeg -i INPUT.mp4 -codec copy -bsf:v hevc_mp4toannexb OUTPUT.ts
9393
9394       Please note that this filter is auto-inserted for MPEG-TS (muxer
9395       "mpegts") and raw HEVC/H.265 (muxer "h265" or "hevc") output formats.
9396
9397   imxdump
9398       Modifies the bitstream to fit in MOV and to be usable by the Final Cut
9399       Pro decoder. This filter only applies to the mpeg2video codec, and is
9400       likely not needed for Final Cut Pro 7 and newer with the appropriate
9401       -tag:v.
9402
9403       For example, to remux 30 MB/sec NTSC IMX to MOV:
9404
9405               ffmpeg -i input.mxf -c copy -bsf:v imxdump -tag:v mx3n output.mov
9406
9407   mjpeg2jpeg
9408       Convert MJPEG/AVI1 packets to full JPEG/JFIF packets.
9409
9410       MJPEG is a video codec wherein each video frame is essentially a JPEG
9411       image. The individual frames can be extracted without loss, e.g. by
9412
9413               ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg
9414
9415       Unfortunately, these chunks are incomplete JPEG images, because they
9416       lack the DHT segment required for decoding. Quoting from
9417       <http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml>:
9418
9419       Avery Lee, writing in the rec.video.desktop newsgroup in 2001,
9420       commented that "MJPEG, or at least the MJPEG in AVIs having the MJPG
9421       fourcc, is restricted JPEG with a fixed -- and *omitted* -- Huffman
9422       table. The JPEG must be YCbCr colorspace, it must be 4:2:2, and it must
9423       use basic Huffman encoding, not arithmetic or progressive. . . . You
9424       can indeed extract the MJPEG frames and decode them with a regular JPEG
9425       decoder, but you have to prepend the DHT segment to them, or else the
9426       decoder won't have any idea how to decompress the data. The exact table
9427       necessary is given in the OpenDML spec."
9428
9429       This bitstream filter patches the header of frames extracted from an
9430       MJPEG stream (carrying the AVI1 header ID and lacking a DHT segment) to
9431       produce fully qualified JPEG images.
9432
9433               ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
9434               exiftran -i -9 frame*.jpg
9435               ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
9436
9437   mjpegadump
9438       Add an MJPEG A header to the bitstream, to enable decoding by
9439       Quicktime.
9440
9441   mov2textsub
9442       Extract a representable text file from MOV subtitles, stripping the
9443       metadata header from each subtitle packet.
9444
9445       See also the text2movsub filter.
9446
9447   mp3decomp
9448       Decompress non-standard compressed MP3 audio headers.
9449
9450   mpeg2_metadata
9451       Modify metadata embedded in an MPEG-2 stream.
9452
9453       display_aspect_ratio
9454           Set the display aspect ratio in the stream.
9455
9456           The following fixed values are supported:
9457
9458           4/3
9459           16/9
9460           221/100
9461
9462           Any other value will result in square pixels being signalled
9463           instead (see H.262 section 6.3.3 and table 6-3).
9464
9465       frame_rate
9466           Set the frame rate in the stream.  This is constructed from a table
9467           of known values combined with a small multiplier and divisor - if
9468           the supplied value is not exactly representable, the nearest
9469           representable value will be used instead (see H.262 section 6.3.3
9470           and table 6-4).
9471
9472       video_format
9473           Set the video format in the stream (see H.262 section 6.3.6 and
9474           table 6-6).
9475
9476       colour_primaries
9477       transfer_characteristics
9478       matrix_coefficients
9479           Set the colour description in the stream (see H.262 section 6.3.6
9480           and tables 6-7, 6-8 and 6-9).
9481
9482   mpeg4_unpack_bframes
9483       Unpack DivX-style packed B-frames.
9484
9485       DivX-style packed B-frames are not valid MPEG-4 and were only a
9486       workaround for the broken Video for Windows subsystem.  They use more
9487       space, can cause minor AV sync issues, require more CPU power to decode
9488       (unless the player has some decoded picture queue to compensate the
9489       2,0,2,0 frame per packet style) and cause trouble if copied into a
9490       standard container like mp4 or mpeg-ps/ts, because MPEG-4 decoders may
9491       not be able to decode them, since they are not valid MPEG-4.
9492
9493       For example to fix an AVI file containing an MPEG-4 stream with DivX-
9494       style packed B-frames using ffmpeg, you can use the command:
9495
9496               ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi
9497
9498   noise
9499       Damages the contents of packets or simply drops them without damaging
9500       the container. Can be used for fuzzing or testing error
9501       resilience/concealment.
9502
9503       Parameters:
9504
9505       amount
9506           Accepts an expression whose evaluation per-packet determines how
9507           often bytes in that packet will be modified. A value below 0 will
9508           result in a variable frequency.  Default is 0 which results in no
9509           modification. However, if neither amount nor drop is specified,
9510           amount will be set to -1. See below for accepted variables.
9511
9512       drop
9513           Accepts an expression evaluated per-packet whose value determines
9514           whether that packet is dropped.  Evaluation to a positive value
9515           results in the packet being dropped. Evaluation to a negative value
9516           results in a variable chance of it being dropped, roughly inverse
9517           in proportion to the magnitude of the value. Default is 0 which
9518           results in no drops. See below for accepted variables.
9519
9520       dropamount
9521           Accepts a non-negative integer, which assigns a variable chance of
9522           it being dropped, roughly inverse in proportion to the value.
9523           Default is 0 which results in no drops. This option is kept for
9524           backwards compatibility and is equivalent to setting drop to a
9525           negative value with the same magnitude i.e. "dropamount=4" is the
9526           same as "drop=-4". Ignored if drop is also specified.
9527
9528       Both "amount" and "drop" accept expressions containing the following
9529       variables:
9530
9531       n   The index of the packet, starting from zero.
9532
9533       tb  The timebase for packet timestamps.
9534
9535       pts Packet presentation timestamp.
9536
9537       dts Packet decoding timestamp.
9538
9539       nopts
9540           Constant representing AV_NOPTS_VALUE.
9541
9542       startpts
9543           First non-AV_NOPTS_VALUE PTS seen in the stream.
9544
9545       startdts
9546           First non-AV_NOPTS_VALUE DTS seen in the stream.
9547
9548       duration
9549       d   Packet duration, in timebase units.
9550
9551       pos Packet position in input; may be -1 when unknown or not set.
9552
9553       size
9554           Packet size, in bytes.
9555
9556       key Whether packet is marked as a keyframe.
9557
9558       state
9559           A pseudo random integer, primarily derived from the content of
9560           packet payload.
9561
9562       Examples
9563
9564       Apply modification to every byte but don't drop any packets.
9565
9566               ffmpeg -i INPUT -c copy -bsf noise=1 output.mkv
9567
9568       Drop every video packet not marked as a keyframe after timestamp 30s
9569       but do not modify any of the remaining packets.
9570
9571               ffmpeg -i INPUT -c copy -bsf:v noise=drop='gt(t\,30)*not(key)' output.mkv
9572
9573       Drop one second of audio every 10 seconds and add some random noise to
9574       the rest.
9575
9576               ffmpeg -i INPUT -c copy -bsf:a noise=amount=-1:drop='between(mod(t\,10)\,9\,10)' output.mkv
9577
9578   null
9579       This bitstream filter passes the packets through unchanged.
9580
9581   pcm_rechunk
9582       Repacketize PCM audio to a fixed number of samples per packet or a
9583       fixed packet rate per second. This is similar to the asetnsamples audio
9584       filter but works on audio packets instead of audio frames.
9585
9586       nb_out_samples, n
9587           Set the number of samples per each output audio packet. The number
9588           is intended as the number of samples per each channel. Default
9589           value is 1024.
9590
9591       pad, p
9592           If set to 1, the filter will pad the last audio packet with
9593           silence, so that it will contain the same number of samples (or
9594           roughly the same number of samples, see frame_rate) as the previous
9595           ones. Default value is 1.
9596
9597       frame_rate, r
9598           This option makes the filter output a fixed number of packets per
9599           second instead of a fixed number of samples per packet. If the
9600           audio sample rate is not divisible by the frame rate then the
9601           number of samples will not be constant but will vary slightly so
9602           that each packet will start as close to the frame boundary as
9603           possible. Using this option has precedence over nb_out_samples.
9604
9605       You can generate the well known 1602-1601-1602-1601-1602 pattern of
9606       48kHz audio for NTSC frame rate using the frame_rate option.
9607
9608               ffmpeg -f lavfi -i sine=r=48000:d=1 -c pcm_s16le -bsf pcm_rechunk=r=30000/1001 -f framecrc -
9609
9610   pgs_frame_merge
9611       Merge a sequence of PGS Subtitle segments ending with an "end of
9612       display set" segment into a single packet.
9613
9614       This is required by some containers that support PGS subtitles (muxer
9615       "matroska").
9616
9617   prores_metadata
9618       Modify color property metadata embedded in prores stream.
9619
9620       color_primaries
9621           Set the color primaries.  Available values are:
9622
9623           auto
9624               Keep the same color primaries property (default).
9625
9626           unknown
9627           bt709
9628           bt470bg
9629               BT601 625
9630
9631           smpte170m
9632               BT601 525
9633
9634           bt2020
9635           smpte431
9636               DCI P3
9637
9638           smpte432
9639               P3 D65
9640
9641       transfer_characteristics
9642           Set the color transfer.  Available values are:
9643
9644           auto
9645               Keep the same transfer characteristics property (default).
9646
9647           unknown
9648           bt709
9649               BT 601, BT 709, BT 2020
9650
9651           smpte2084
9652               SMPTE ST 2084
9653
9654           arib-std-b67
9655               ARIB STD-B67
9656
9657       matrix_coefficients
9658           Set the matrix coefficient.  Available values are:
9659
9660           auto
9661               Keep the same colorspace property (default).
9662
9663           unknown
9664           bt709
9665           smpte170m
9666               BT 601
9667
9668           bt2020nc
9669
9670       Set Rec709 colorspace for each frame of the file
9671
9672               ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt709:color_trc=bt709:colorspace=bt709 output.mov
9673
9674       Set Hybrid Log-Gamma parameters for each frame of the file
9675
9676               ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt2020:color_trc=arib-std-b67:colorspace=bt2020nc output.mov
9677
9678   remove_extra
9679       Remove extradata from packets.
9680
9681       It accepts the following parameter:
9682
9683       freq
9684           Set which frame types to remove extradata from.
9685
9686           k   Remove extradata from non-keyframes only.
9687
9688           keyframe
9689               Remove extradata from keyframes only.
9690
9691           e, all
9692               Remove extradata from all frames.
9693
9694   setts
9695       Set PTS and DTS in packets.
9696
9697       It accepts the following parameters:
9698
9699       ts
9700       pts
9701       dts Set expressions for PTS, DTS or both.
9702
9703       duration
9704           Set expression for duration.
9705
9706       time_base
9707           Set output time base.
9708
9709       The expressions are evaluated through the eval API and can contain the
9710       following constants:
9711
9712       N   The count of the input packet. Starting from 0.
9713
9714       TS  The demux timestamp in input in case of "ts" or "dts" option or
9715           presentation timestamp in case of "pts" option.
9716
9717       POS The original position in the file of the packet, or undefined if
9718           undefined for the current packet
9719
9720       DTS The demux timestamp in input.
9721
9722       PTS The presentation timestamp in input.
9723
9724       DURATION
9725           The duration in input.
9726
9727       STARTDTS
9728           The DTS of the first packet.
9729
9730       STARTPTS
9731           The PTS of the first packet.
9732
9733       PREV_INDTS
9734           The previous input DTS.
9735
9736       PREV_INPTS
9737           The previous input PTS.
9738
9739       PREV_INDURATION
9740           The previous input duration.
9741
9742       PREV_OUTDTS
9743           The previous output DTS.
9744
9745       PREV_OUTPTS
9746           The previous output PTS.
9747
9748       PREV_OUTDURATION
9749           The previous output duration.
9750
9751       NEXT_DTS
9752           The next input DTS.
9753
9754       NEXT_PTS
9755           The next input PTS.
9756
9757       NEXT_DURATION
9758           The next input duration.
9759
9760       TB  The timebase of stream packet belongs.
9761
9762       TB_OUT
9763           The output timebase.
9764
9765       SR  The sample rate of stream packet belongs.
9766
9767       NOPTS
9768           The AV_NOPTS_VALUE constant.
9769
9770   text2movsub
9771       Convert text subtitles to MOV subtitles (as used by the "mov_text"
9772       codec) with metadata headers.
9773
9774       See also the mov2textsub filter.
9775
9776   trace_headers
9777       Log trace output containing all syntax elements in the coded stream
9778       headers (everything above the level of individual coded blocks).  This
9779       can be useful for debugging low-level stream issues.
9780
9781       Supports AV1, H.264, H.265, (M)JPEG, MPEG-2 and VP9, but depending on
9782       the build only a subset of these may be available.
9783
9784   truehd_core
9785       Extract the core from a TrueHD stream, dropping ATMOS data.
9786
9787   vp9_metadata
9788       Modify metadata embedded in a VP9 stream.
9789
9790       color_space
9791           Set the color space value in the frame header.  Note that any frame
9792           set to RGB will be implicitly set to PC range and that RGB is
9793           incompatible with profiles 0 and 2.
9794
9795           unknown
9796           bt601
9797           bt709
9798           smpte170
9799           smpte240
9800           bt2020
9801           rgb
9802       color_range
9803           Set the color range value in the frame header.  Note that any value
9804           imposed by the color space will take precedence over this value.
9805
9806           tv
9807           pc
9808
9809   vp9_superframe
9810       Merge VP9 invisible (alt-ref) frames back into VP9 superframes. This
9811       fixes merging of split/segmented VP9 streams where the alt-ref frame
9812       was split from its visible counterpart.
9813
9814   vp9_superframe_split
9815       Split VP9 superframes into single frames.
9816
9817   vp9_raw_reorder
9818       Given a VP9 stream with correct timestamps but possibly out of order,
9819       insert additional show-existing-frame packets to correct the ordering.
9820

FORMAT OPTIONS

9822       The libavformat library provides some generic global options, which can
9823       be set on all the muxers and demuxers. In addition each muxer or
9824       demuxer may support so-called private options, which are specific for
9825       that component.
9826
9827       Options may be set by specifying -option value in the FFmpeg tools, or
9828       by setting the value explicitly in the "AVFormatContext" options or
9829       using the libavutil/opt.h API for programmatic use.
9830
9831       The list of supported options follows:
9832
9833       avioflags flags (input/output)
9834           Possible values:
9835
9836           direct
9837               Reduce buffering.
9838
9839       probesize integer (input)
9840           Set probing size in bytes, i.e. the size of the data to analyze to
9841           get stream information. A higher value will enable detecting more
9842           information in case it is dispersed into the stream, but will
9843           increase latency. Must be an integer not lesser than 32. It is
9844           5000000 by default.
9845
9846       max_probe_packets integer (input)
9847           Set the maximum number of buffered packets when probing a codec.
9848           Default is 2500 packets.
9849
9850       packetsize integer (output)
9851           Set packet size.
9852
9853       fflags flags
9854           Set format flags. Some are implemented for a limited number of
9855           formats.
9856
9857           Possible values for input files:
9858
9859           discardcorrupt
9860               Discard corrupted packets.
9861
9862           fastseek
9863               Enable fast, but inaccurate seeks for some formats.
9864
9865           genpts
9866               Generate missing PTS if DTS is present.
9867
9868           igndts
9869               Ignore DTS if PTS is set. Inert when nofillin is set.
9870
9871           ignidx
9872               Ignore index.
9873
9874           nobuffer
9875               Reduce the latency introduced by buffering during initial input
9876               streams analysis.
9877
9878           nofillin
9879               Do not fill in missing values in packet fields that can be
9880               exactly calculated.
9881
9882           noparse
9883               Disable AVParsers, this needs "+nofillin" too.
9884
9885           sortdts
9886               Try to interleave output packets by DTS. At present, available
9887               only for AVIs with an index.
9888
9889           Possible values for output files:
9890
9891           autobsf
9892               Automatically apply bitstream filters as required by the output
9893               format. Enabled by default.
9894
9895           bitexact
9896               Only write platform-, build- and time-independent data.  This
9897               ensures that file and data checksums are reproducible and match
9898               between platforms. Its primary use is for regression testing.
9899
9900           flush_packets
9901               Write out packets immediately.
9902
9903           shortest
9904               Stop muxing at the end of the shortest stream.  It may be
9905               needed to increase max_interleave_delta to avoid flushing the
9906               longer streams before EOF.
9907
9908       seek2any integer (input)
9909           Allow seeking to non-keyframes on demuxer level when supported if
9910           set to 1.  Default is 0.
9911
9912       analyzeduration integer (input)
9913           Specify how many microseconds are analyzed to probe the input. A
9914           higher value will enable detecting more accurate information, but
9915           will increase latency. It defaults to 5,000,000 microseconds = 5
9916           seconds.
9917
9918       cryptokey hexadecimal string (input)
9919           Set decryption key.
9920
9921       indexmem integer (input)
9922           Set max memory used for timestamp index (per stream).
9923
9924       rtbufsize integer (input)
9925           Set max memory used for buffering real-time frames.
9926
9927       fdebug flags (input/output)
9928           Print specific debug info.
9929
9930           Possible values:
9931
9932           ts
9933       max_delay integer (input/output)
9934           Set maximum muxing or demuxing delay in microseconds.
9935
9936       fpsprobesize integer (input)
9937           Set number of frames used to probe fps.
9938
9939       audio_preload integer (output)
9940           Set microseconds by which audio packets should be interleaved
9941           earlier.
9942
9943       chunk_duration integer (output)
9944           Set microseconds for each chunk.
9945
9946       chunk_size integer (output)
9947           Set size in bytes for each chunk.
9948
9949       err_detect, f_err_detect flags (input)
9950           Set error detection flags. "f_err_detect" is deprecated and should
9951           be used only via the ffmpeg tool.
9952
9953           Possible values:
9954
9955           crccheck
9956               Verify embedded CRCs.
9957
9958           bitstream
9959               Detect bitstream specification deviations.
9960
9961           buffer
9962               Detect improper bitstream length.
9963
9964           explode
9965               Abort decoding on minor error detection.
9966
9967           careful
9968               Consider things that violate the spec and have not been seen in
9969               the wild as errors.
9970
9971           compliant
9972               Consider all spec non compliancies as errors.
9973
9974           aggressive
9975               Consider things that a sane encoder should not do as an error.
9976
9977       max_interleave_delta integer (output)
9978           Set maximum buffering duration for interleaving. The duration is
9979           expressed in microseconds, and defaults to 10000000 (10 seconds).
9980
9981           To ensure all the streams are interleaved correctly, libavformat
9982           will wait until it has at least one packet for each stream before
9983           actually writing any packets to the output file. When some streams
9984           are "sparse" (i.e. there are large gaps between successive
9985           packets), this can result in excessive buffering.
9986
9987           This field specifies the maximum difference between the timestamps
9988           of the first and the last packet in the muxing queue, above which
9989           libavformat will output a packet regardless of whether it has
9990           queued a packet for all the streams.
9991
9992           If set to 0, libavformat will continue buffering packets until it
9993           has a packet for each stream, regardless of the maximum timestamp
9994           difference between the buffered packets.
9995
9996       use_wallclock_as_timestamps integer (input)
9997           Use wallclock as timestamps if set to 1. Default is 0.
9998
9999       avoid_negative_ts integer (output)
10000           Possible values:
10001
10002           make_non_negative
10003               Shift timestamps to make them non-negative.  Also note that
10004               this affects only leading negative timestamps, and not non-
10005               monotonic negative timestamps.
10006
10007           make_zero
10008               Shift timestamps so that the first timestamp is 0.
10009
10010           auto (default)
10011               Enables shifting when required by the target format.
10012
10013           disabled
10014               Disables shifting of timestamp.
10015
10016           When shifting is enabled, all output timestamps are shifted by the
10017           same amount. Audio, video, and subtitles desynching and relative
10018           timestamp differences are preserved compared to how they would have
10019           been without shifting.
10020
10021       skip_initial_bytes integer (input)
10022           Set number of bytes to skip before reading header and frames if set
10023           to 1.  Default is 0.
10024
10025       correct_ts_overflow integer (input)
10026           Correct single timestamp overflows if set to 1. Default is 1.
10027
10028       flush_packets integer (output)
10029           Flush the underlying I/O stream after each packet. Default is -1
10030           (auto), which means that the underlying protocol will decide, 1
10031           enables it, and has the effect of reducing the latency, 0 disables
10032           it and may increase IO throughput in some cases.
10033
10034       output_ts_offset offset (output)
10035           Set the output time offset.
10036
10037           offset must be a time duration specification, see the Time duration
10038           section in the ffmpeg-utils(1) manual.
10039
10040           The offset is added by the muxer to the output timestamps.
10041
10042           Specifying a positive offset means that the corresponding streams
10043           are delayed bt the time duration specified in offset. Default value
10044           is 0 (meaning that no offset is applied).
10045
10046       format_whitelist list (input)
10047           "," separated list of allowed demuxers. By default all are allowed.
10048
10049       dump_separator string (input)
10050           Separator used to separate the fields printed on the command line
10051           about the Stream parameters.  For example, to separate the fields
10052           with newlines and indentation:
10053
10054                   ffprobe -dump_separator "
10055                                             "  -i ~/videos/matrixbench_mpeg2.mpg
10056
10057       max_streams integer (input)
10058           Specifies the maximum number of streams. This can be used to reject
10059           files that would require too many resources due to a large number
10060           of streams.
10061
10062       skip_estimate_duration_from_pts bool (input)
10063           Skip estimation of input duration when calculated using PTS.  At
10064           present, applicable for MPEG-PS and MPEG-TS.
10065
10066       strict, f_strict integer (input/output)
10067           Specify how strictly to follow the standards. "f_strict" is
10068           deprecated and should be used only via the ffmpeg tool.
10069
10070           Possible values:
10071
10072           very
10073               strictly conform to an older more strict version of the spec or
10074               reference software
10075
10076           strict
10077               strictly conform to all the things in the spec no matter what
10078               consequences
10079
10080           normal
10081           unofficial
10082               allow unofficial extensions
10083
10084           experimental
10085               allow non standardized experimental things, experimental
10086               (unfinished/work in progress/not well tested) decoders and
10087               encoders.  Note: experimental decoders can pose a security
10088               risk, do not use this for decoding untrusted input.
10089
10090   Format stream specifiers
10091       Format stream specifiers allow selection of one or more streams that
10092       match specific properties.
10093
10094       The exact semantics of stream specifiers is defined by the
10095       "avformat_match_stream_specifier()" function declared in the
10096       libavformat/avformat.h header and documented in the Stream specifiers
10097       section in the ffmpeg(1) manual.
10098

DEMUXERS

10100       Demuxers are configured elements in FFmpeg that can read the multimedia
10101       streams from a particular type of file.
10102
10103       When you configure your FFmpeg build, all the supported demuxers are
10104       enabled by default. You can list all available ones using the configure
10105       option "--list-demuxers".
10106
10107       You can disable all the demuxers using the configure option
10108       "--disable-demuxers", and selectively enable a single demuxer with the
10109       option "--enable-demuxer=DEMUXER", or disable it with the option
10110       "--disable-demuxer=DEMUXER".
10111
10112       The option "-demuxers" of the ff* tools will display the list of
10113       enabled demuxers. Use "-formats" to view a combined list of enabled
10114       demuxers and muxers.
10115
10116       The description of some of the currently available demuxers follows.
10117
10118   aa
10119       Audible Format 2, 3, and 4 demuxer.
10120
10121       This demuxer is used to demux Audible Format 2, 3, and 4 (.aa) files.
10122
10123   aac
10124       Raw Audio Data Transport Stream AAC demuxer.
10125
10126       This demuxer is used to demux an ADTS input containing a single AAC
10127       stream alongwith any ID3v1/2 or APE tags in it.
10128
10129   apng
10130       Animated Portable Network Graphics demuxer.
10131
10132       This demuxer is used to demux APNG files.  All headers, but the PNG
10133       signature, up to (but not including) the first fcTL chunk are
10134       transmitted as extradata.  Frames are then split as being all the
10135       chunks between two fcTL ones, or between the last fcTL and IEND chunks.
10136
10137       -ignore_loop bool
10138           Ignore the loop variable in the file if set. Default is enabled.
10139
10140       -max_fps int
10141           Maximum framerate in frames per second. Default of 0 imposes no
10142           limit.
10143
10144       -default_fps int
10145           Default framerate in frames per second when none is specified in
10146           the file (0 meaning as fast as possible). Default is 15.
10147
10148   asf
10149       Advanced Systems Format demuxer.
10150
10151       This demuxer is used to demux ASF files and MMS network streams.
10152
10153       -no_resync_search bool
10154           Do not try to resynchronize by looking for a certain optional start
10155           code.
10156
10157   concat
10158       Virtual concatenation script demuxer.
10159
10160       This demuxer reads a list of files and other directives from a text
10161       file and demuxes them one after the other, as if all their packets had
10162       been muxed together.
10163
10164       The timestamps in the files are adjusted so that the first file starts
10165       at 0 and each next file starts where the previous one finishes. Note
10166       that it is done globally and may cause gaps if all streams do not have
10167       exactly the same length.
10168
10169       All files must have the same streams (same codecs, same time base,
10170       etc.).
10171
10172       The duration of each file is used to adjust the timestamps of the next
10173       file: if the duration is incorrect (because it was computed using the
10174       bit-rate or because the file is truncated, for example), it can cause
10175       artifacts. The "duration" directive can be used to override the
10176       duration stored in each file.
10177
10178       Syntax
10179
10180       The script is a text file in extended-ASCII, with one directive per
10181       line.  Empty lines, leading spaces and lines starting with '#' are
10182       ignored. The following directive is recognized:
10183
10184       "file path"
10185           Path to a file to read; special characters and spaces must be
10186           escaped with backslash or single quotes.
10187
10188           All subsequent file-related directives apply to that file.
10189
10190       "ffconcat version 1.0"
10191           Identify the script type and version.
10192
10193           To make FFmpeg recognize the format automatically, this directive
10194           must appear exactly as is (no extra space or byte-order-mark) on
10195           the very first line of the script.
10196
10197       "duration dur"
10198           Duration of the file. This information can be specified from the
10199           file; specifying it here may be more efficient or help if the
10200           information from the file is not available or accurate.
10201
10202           If the duration is set for all files, then it is possible to seek
10203           in the whole concatenated video.
10204
10205       "inpoint timestamp"
10206           In point of the file. When the demuxer opens the file it instantly
10207           seeks to the specified timestamp. Seeking is done so that all
10208           streams can be presented successfully at In point.
10209
10210           This directive works best with intra frame codecs, because for non-
10211           intra frame ones you will usually get extra packets before the
10212           actual In point and the decoded content will most likely contain
10213           frames before In point too.
10214
10215           For each file, packets before the file In point will have
10216           timestamps less than the calculated start timestamp of the file
10217           (negative in case of the first file), and the duration of the files
10218           (if not specified by the "duration" directive) will be reduced
10219           based on their specified In point.
10220
10221           Because of potential packets before the specified In point, packet
10222           timestamps may overlap between two concatenated files.
10223
10224       "outpoint timestamp"
10225           Out point of the file. When the demuxer reaches the specified
10226           decoding timestamp in any of the streams, it handles it as an end
10227           of file condition and skips the current and all the remaining
10228           packets from all streams.
10229
10230           Out point is exclusive, which means that the demuxer will not
10231           output packets with a decoding timestamp greater or equal to Out
10232           point.
10233
10234           This directive works best with intra frame codecs and formats where
10235           all streams are tightly interleaved. For non-intra frame codecs you
10236           will usually get additional packets with presentation timestamp
10237           after Out point therefore the decoded content will most likely
10238           contain frames after Out point too. If your streams are not tightly
10239           interleaved you may not get all the packets from all streams before
10240           Out point and you may only will be able to decode the earliest
10241           stream until Out point.
10242
10243           The duration of the files (if not specified by the "duration"
10244           directive) will be reduced based on their specified Out point.
10245
10246       "file_packet_metadata key=value"
10247           Metadata of the packets of the file. The specified metadata will be
10248           set for each file packet. You can specify this directive multiple
10249           times to add multiple metadata entries.  This directive is
10250           deprecated, use "file_packet_meta" instead.
10251
10252       "file_packet_meta key value"
10253           Metadata of the packets of the file. The specified metadata will be
10254           set for each file packet. You can specify this directive multiple
10255           times to add multiple metadata entries.
10256
10257       "option key value"
10258           Option to access, open and probe the file.  Can be present multiple
10259           times.
10260
10261       "stream"
10262           Introduce a stream in the virtual file.  All subsequent stream-
10263           related directives apply to the last introduced stream.  Some
10264           streams properties must be set in order to allow identifying the
10265           matching streams in the subfiles.  If no streams are defined in the
10266           script, the streams from the first file are copied.
10267
10268       "exact_stream_id id"
10269           Set the id of the stream.  If this directive is given, the string
10270           with the corresponding id in the subfiles will be used.  This is
10271           especially useful for MPEG-PS (VOB) files, where the order of the
10272           streams is not reliable.
10273
10274       "stream_meta key value"
10275           Metadata for the stream.  Can be present multiple times.
10276
10277       "stream_codec value"
10278           Codec for the stream.
10279
10280       "stream_extradata hex_string"
10281           Extradata for the string, encoded in hexadecimal.
10282
10283       "chapter id start end"
10284           Add a chapter. id is an unique identifier, possibly small and
10285           consecutive.
10286
10287       Options
10288
10289       This demuxer accepts the following option:
10290
10291       safe
10292           If set to 1, reject unsafe file paths and directives.  A file path
10293           is considered safe if it does not contain a protocol specification
10294           and is relative and all components only contain characters from the
10295           portable character set (letters, digits, period, underscore and
10296           hyphen) and have no period at the beginning of a component.
10297
10298           If set to 0, any file name is accepted.
10299
10300           The default is 1.
10301
10302       auto_convert
10303           If set to 1, try to perform automatic conversions on packet data to
10304           make the streams concatenable.  The default is 1.
10305
10306           Currently, the only conversion is adding the h264_mp4toannexb
10307           bitstream filter to H.264 streams in MP4 format. This is necessary
10308           in particular if there are resolution changes.
10309
10310       segment_time_metadata
10311           If set to 1, every packet will contain the lavf.concat.start_time
10312           and the lavf.concat.duration packet metadata values which are the
10313           start_time and the duration of the respective file segments in the
10314           concatenated output expressed in microseconds. The duration
10315           metadata is only set if it is known based on the concat file.  The
10316           default is 0.
10317
10318       Examples
10319
10320       •   Use absolute filenames and include some comments:
10321
10322                   # my first filename
10323                   file /mnt/share/file-1.wav
10324                   # my second filename including whitespace
10325                   file '/mnt/share/file 2.wav'
10326                   # my third filename including whitespace plus single quote
10327                   file '/mnt/share/file 3'\''.wav'
10328
10329       •   Allow for input format auto-probing, use safe filenames and set the
10330           duration of the first file:
10331
10332                   ffconcat version 1.0
10333
10334                   file file-1.wav
10335                   duration 20.0
10336
10337                   file subdir/file-2.wav
10338
10339   dash
10340       Dynamic Adaptive Streaming over HTTP demuxer.
10341
10342       This demuxer presents all AVStreams found in the manifest.  By setting
10343       the discard flags on AVStreams the caller can decide which streams to
10344       actually receive.  Each stream mirrors the "id" and "bandwidth"
10345       properties from the "<Representation>" as metadata keys named "id" and
10346       "variant_bitrate" respectively.
10347
10348       Options
10349
10350       This demuxer accepts the following option:
10351
10352       cenc_decryption_key
10353           16-byte key, in hex, to decrypt files encrypted using ISO Common
10354           Encryption (CENC/AES-128 CTR; ISO/IEC 23001-7).
10355
10356   imf
10357       Interoperable Master Format demuxer.
10358
10359       This demuxer presents audio and video streams found in an IMF
10360       Composition.
10361
10362   flv, live_flv, kux
10363       Adobe Flash Video Format demuxer.
10364
10365       This demuxer is used to demux FLV files and RTMP network streams. In
10366       case of live network streams, if you force format, you may use live_flv
10367       option instead of flv to survive timestamp discontinuities.  KUX is a
10368       flv variant used on the Youku platform.
10369
10370               ffmpeg -f flv -i myfile.flv ...
10371               ffmpeg -f live_flv -i rtmp://<any.server>/anything/key ....
10372
10373       -flv_metadata bool
10374           Allocate the streams according to the onMetaData array content.
10375
10376       -flv_ignore_prevtag bool
10377           Ignore the size of previous tag value.
10378
10379       -flv_full_metadata bool
10380           Output all context of the onMetadata.
10381
10382   gif
10383       Animated GIF demuxer.
10384
10385       It accepts the following options:
10386
10387       min_delay
10388           Set the minimum valid delay between frames in hundredths of
10389           seconds.  Range is 0 to 6000. Default value is 2.
10390
10391       max_gif_delay
10392           Set the maximum valid delay between frames in hundredth of seconds.
10393           Range is 0 to 65535. Default value is 65535 (nearly eleven
10394           minutes), the maximum value allowed by the specification.
10395
10396       default_delay
10397           Set the default delay between frames in hundredths of seconds.
10398           Range is 0 to 6000. Default value is 10.
10399
10400       ignore_loop
10401           GIF files can contain information to loop a certain number of times
10402           (or infinitely). If ignore_loop is set to 1, then the loop setting
10403           from the input will be ignored and looping will not occur. If set
10404           to 0, then looping will occur and will cycle the number of times
10405           according to the GIF. Default value is 1.
10406
10407       For example, with the overlay filter, place an infinitely looping GIF
10408       over another video:
10409
10410               ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex overlay=shortest=1 out.mkv
10411
10412       Note that in the above example the shortest option for overlay filter
10413       is used to end the output video at the length of the shortest input
10414       file, which in this case is input.mp4 as the GIF in this example loops
10415       infinitely.
10416
10417   hls
10418       HLS demuxer
10419
10420       Apple HTTP Live Streaming demuxer.
10421
10422       This demuxer presents all AVStreams from all variant streams.  The id
10423       field is set to the bitrate variant index number. By setting the
10424       discard flags on AVStreams (by pressing 'a' or 'v' in ffplay), the
10425       caller can decide which variant streams to actually receive.  The total
10426       bitrate of the variant that the stream belongs to is available in a
10427       metadata key named "variant_bitrate".
10428
10429       It accepts the following options:
10430
10431       live_start_index
10432           segment index to start live streams at (negative values are from
10433           the end).
10434
10435       prefer_x_start
10436           prefer to use #EXT-X-START if it's in playlist instead of
10437           live_start_index.
10438
10439       allowed_extensions
10440           ',' separated list of file extensions that hls is allowed to
10441           access.
10442
10443       max_reload
10444           Maximum number of times a insufficient list is attempted to be
10445           reloaded.  Default value is 1000.
10446
10447       m3u8_hold_counters
10448           The maximum number of times to load m3u8 when it refreshes without
10449           new segments.  Default value is 1000.
10450
10451       http_persistent
10452           Use persistent HTTP connections. Applicable only for HTTP streams.
10453           Enabled by default.
10454
10455       http_multiple
10456           Use multiple HTTP connections for downloading HTTP segments.
10457           Enabled by default for HTTP/1.1 servers.
10458
10459       http_seekable
10460           Use HTTP partial requests for downloading HTTP segments.  0 =
10461           disable, 1 = enable, -1 = auto, Default is auto.
10462
10463       seg_format_options
10464           Set options for the demuxer of media segments using a list of
10465           key=value pairs separated by ":".
10466
10467   image2
10468       Image file demuxer.
10469
10470       This demuxer reads from a list of image files specified by a pattern.
10471       The syntax and meaning of the pattern is specified by the option
10472       pattern_type.
10473
10474       The pattern may contain a suffix which is used to automatically
10475       determine the format of the images contained in the files.
10476
10477       The size, the pixel format, and the format of each image must be the
10478       same for all the files in the sequence.
10479
10480       This demuxer accepts the following options:
10481
10482       framerate
10483           Set the frame rate for the video stream. It defaults to 25.
10484
10485       loop
10486           If set to 1, loop over the input. Default value is 0.
10487
10488       pattern_type
10489           Select the pattern type used to interpret the provided filename.
10490
10491           pattern_type accepts one of the following values.
10492
10493           none
10494               Disable pattern matching, therefore the video will only contain
10495               the specified image. You should use this option if you do not
10496               want to create sequences from multiple images and your
10497               filenames may contain special pattern characters.
10498
10499           sequence
10500               Select a sequence pattern type, used to specify a sequence of
10501               files indexed by sequential numbers.
10502
10503               A sequence pattern may contain the string "%d" or "%0Nd", which
10504               specifies the position of the characters representing a
10505               sequential number in each filename matched by the pattern. If
10506               the form "%d0Nd" is used, the string representing the number in
10507               each filename is 0-padded and N is the total number of 0-padded
10508               digits representing the number. The literal character '%' can
10509               be specified in the pattern with the string "%%".
10510
10511               If the sequence pattern contains "%d" or "%0Nd", the first
10512               filename of the file list specified by the pattern must contain
10513               a number inclusively contained between start_number and
10514               start_number+start_number_range-1, and all the following
10515               numbers must be sequential.
10516
10517               For example the pattern "img-%03d.bmp" will match a sequence of
10518               filenames of the form img-001.bmp, img-002.bmp, ...,
10519               img-010.bmp, etc.; the pattern "i%%m%%g-%d.jpg" will match a
10520               sequence of filenames of the form i%m%g-1.jpg, i%m%g-2.jpg,
10521               ..., i%m%g-10.jpg, etc.
10522
10523               Note that the pattern must not necessarily contain "%d" or
10524               "%0Nd", for example to convert a single image file img.jpeg you
10525               can employ the command:
10526
10527                       ffmpeg -i img.jpeg img.png
10528
10529           glob
10530               Select a glob wildcard pattern type.
10531
10532               The pattern is interpreted like a "glob()" pattern. This is
10533               only selectable if libavformat was compiled with globbing
10534               support.
10535
10536           glob_sequence (deprecated, will be removed)
10537               Select a mixed glob wildcard/sequence pattern.
10538
10539               If your version of libavformat was compiled with globbing
10540               support, and the provided pattern contains at least one glob
10541               meta character among "%*?[]{}" that is preceded by an unescaped
10542               "%", the pattern is interpreted like a "glob()" pattern,
10543               otherwise it is interpreted like a sequence pattern.
10544
10545               All glob special characters "%*?[]{}" must be prefixed with
10546               "%". To escape a literal "%" you shall use "%%".
10547
10548               For example the pattern "foo-%*.jpeg" will match all the
10549               filenames prefixed by "foo-" and terminating with ".jpeg", and
10550               "foo-%?%?%?.jpeg" will match all the filenames prefixed with
10551               "foo-", followed by a sequence of three characters, and
10552               terminating with ".jpeg".
10553
10554               This pattern type is deprecated in favor of glob and sequence.
10555
10556           Default value is glob_sequence.
10557
10558       pixel_format
10559           Set the pixel format of the images to read. If not specified the
10560           pixel format is guessed from the first image file in the sequence.
10561
10562       start_number
10563           Set the index of the file matched by the image file pattern to
10564           start to read from. Default value is 0.
10565
10566       start_number_range
10567           Set the index interval range to check when looking for the first
10568           image file in the sequence, starting from start_number. Default
10569           value is 5.
10570
10571       ts_from_file
10572           If set to 1, will set frame timestamp to modification time of image
10573           file. Note that monotonity of timestamps is not provided: images go
10574           in the same order as without this option. Default value is 0.  If
10575           set to 2, will set frame timestamp to the modification time of the
10576           image file in nanosecond precision.
10577
10578       video_size
10579           Set the video size of the images to read. If not specified the
10580           video size is guessed from the first image file in the sequence.
10581
10582       export_path_metadata
10583           If set to 1, will add two extra fields to the metadata found in
10584           input, making them also available for other filters (see drawtext
10585           filter for examples). Default value is 0. The extra fields are
10586           described below:
10587
10588           lavf.image2dec.source_path
10589               Corresponds to the full path to the input file being read.
10590
10591           lavf.image2dec.source_basename
10592               Corresponds to the name of the file being read.
10593
10594       Examples
10595
10596       •   Use ffmpeg for creating a video from the images in the file
10597           sequence img-001.jpeg, img-002.jpeg, ..., assuming an input frame
10598           rate of 10 frames per second:
10599
10600                   ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
10601
10602       •   As above, but start by reading from a file with index 100 in the
10603           sequence:
10604
10605                   ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
10606
10607       •   Read images matching the "*.png" glob pattern , that is all the
10608           files terminating with the ".png" suffix:
10609
10610                   ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
10611
10612   libgme
10613       The Game Music Emu library is a collection of video game music file
10614       emulators.
10615
10616       See <https://bitbucket.org/mpyne/game-music-emu/overview> for more
10617       information.
10618
10619       It accepts the following options:
10620
10621       track_index
10622           Set the index of which track to demux. The demuxer can only export
10623           one track.  Track indexes start at 0. Default is to pick the first
10624           track. Number of tracks is exported as tracks metadata entry.
10625
10626       sample_rate
10627           Set the sampling rate of the exported track. Range is 1000 to
10628           999999. Default is 44100.
10629
10630       max_size (bytes)
10631           The demuxer buffers the entire file into memory. Adjust this value
10632           to set the maximum buffer size, which in turn, acts as a ceiling
10633           for the size of files that can be read.  Default is 50 MiB.
10634
10635   libmodplug
10636       ModPlug based module demuxer
10637
10638       See <https://github.com/Konstanty/libmodplug>
10639
10640       It will export one 2-channel 16-bit 44.1 kHz audio stream.  Optionally,
10641       a "pal8" 16-color video stream can be exported with or without printed
10642       metadata.
10643
10644       It accepts the following options:
10645
10646       noise_reduction
10647           Apply a simple low-pass filter. Can be 1 (on) or 0 (off). Default
10648           is 0.
10649
10650       reverb_depth
10651           Set amount of reverb. Range 0-100. Default is 0.
10652
10653       reverb_delay
10654           Set delay in ms, clamped to 40-250 ms. Default is 0.
10655
10656       bass_amount
10657           Apply bass expansion a.k.a. XBass or megabass. Range is 0 (quiet)
10658           to 100 (loud). Default is 0.
10659
10660       bass_range
10661           Set cutoff i.e. upper-bound for bass frequencies. Range is 10-100
10662           Hz. Default is 0.
10663
10664       surround_depth
10665           Apply a Dolby Pro-Logic surround effect. Range is 0 (quiet) to 100
10666           (heavy). Default is 0.
10667
10668       surround_delay
10669           Set surround delay in ms, clamped to 5-40 ms. Default is 0.
10670
10671       max_size
10672           The demuxer buffers the entire file into memory. Adjust this value
10673           to set the maximum buffer size, which in turn, acts as a ceiling
10674           for the size of files that can be read. Range is 0 to 100 MiB.  0
10675           removes buffer size limit (not recommended). Default is 5 MiB.
10676
10677       video_stream_expr
10678           String which is evaluated using the eval API to assign colors to
10679           the generated video stream.  Variables which can be used are "x",
10680           "y", "w", "h", "t", "speed", "tempo", "order", "pattern" and "row".
10681
10682       video_stream
10683           Generate video stream. Can be 1 (on) or 0 (off). Default is 0.
10684
10685       video_stream_w
10686           Set video frame width in 'chars' where one char indicates 8 pixels.
10687           Range is 20-512. Default is 30.
10688
10689       video_stream_h
10690           Set video frame height in 'chars' where one char indicates 8
10691           pixels. Range is 20-512. Default is 30.
10692
10693       video_stream_ptxt
10694           Print metadata on video stream. Includes "speed", "tempo", "order",
10695           "pattern", "row" and "ts" (time in ms). Can be 1 (on) or 0 (off).
10696           Default is 1.
10697
10698   libopenmpt
10699       libopenmpt based module demuxer
10700
10701       See <https://lib.openmpt.org/libopenmpt/> for more information.
10702
10703       Some files have multiple subsongs (tracks) this can be set with the
10704       subsong option.
10705
10706       It accepts the following options:
10707
10708       subsong
10709           Set the subsong index. This can be either  'all', 'auto', or the
10710           index of the subsong. Subsong indexes start at 0. The default is
10711           'auto'.
10712
10713           The default value is to let libopenmpt choose.
10714
10715       layout
10716           Set the channel layout. Valid values are 1, 2, and 4 channel
10717           layouts.  The default value is STEREO.
10718
10719       sample_rate
10720           Set the sample rate for libopenmpt to output.  Range is from 1000
10721           to INT_MAX. The value default is 48000.
10722
10723   mov/mp4/3gp
10724       Demuxer for Quicktime File Format & ISO/IEC Base Media File Format
10725       (ISO/IEC 14496-12 or MPEG-4 Part 12, ISO/IEC 15444-12 or JPEG 2000 Part
10726       12).
10727
10728       Registered extensions: mov, mp4, m4a, 3gp, 3g2, mj2, psp, m4b, ism,
10729       ismv, isma, f4v
10730
10731       Options
10732
10733       This demuxer accepts the following options:
10734
10735       enable_drefs
10736           Enable loading of external tracks, disabled by default.  Enabling
10737           this can theoretically leak information in some use cases.
10738
10739       use_absolute_path
10740           Allows loading of external tracks via absolute paths, disabled by
10741           default.  Enabling this poses a security risk. It should only be
10742           enabled if the source is known to be non-malicious.
10743
10744       seek_streams_individually
10745           When seeking, identify the closest point in each stream
10746           individually and demux packets in that stream from identified
10747           point. This can lead to a different sequence of packets compared to
10748           demuxing linearly from the beginning. Default is true.
10749
10750       ignore_editlist
10751           Ignore any edit list atoms. The demuxer, by default, modifies the
10752           stream index to reflect the timeline described by the edit list.
10753           Default is false.
10754
10755       advanced_editlist
10756           Modify the stream index to reflect the timeline described by the
10757           edit list. "ignore_editlist" must be set to false for this option
10758           to be effective.  If both "ignore_editlist" and this option are set
10759           to false, then only the start of the stream index is modified to
10760           reflect initial dwell time or starting timestamp described by the
10761           edit list. Default is true.
10762
10763       ignore_chapters
10764           Don't parse chapters. This includes GoPro 'HiLight' tags/moments.
10765           Note that chapters are only parsed when input is seekable. Default
10766           is false.
10767
10768       use_mfra_for
10769           For seekable fragmented input, set fragment's starting timestamp
10770           from media fragment random access box, if present.
10771
10772           Following options are available:
10773
10774           auto
10775               Auto-detect whether to set mfra timestamps as PTS or DTS
10776               (default)
10777
10778           dts Set mfra timestamps as DTS
10779
10780           pts Set mfra timestamps as PTS
10781
10782           0   Don't use mfra box to set timestamps
10783
10784       use_tfdt
10785           For fragmented input, set fragment's starting timestamp to
10786           "baseMediaDecodeTime" from the "tfdt" box.  Default is enabled,
10787           which will prefer to use the "tfdt" box to set DTS. Disable to use
10788           the "earliest_presentation_time" from the "sidx" box.  In either
10789           case, the timestamp from the "mfra" box will be used if it's
10790           available and "use_mfra_for" is set to pts or dts.
10791
10792       export_all
10793           Export unrecognized boxes within the udta box as metadata entries.
10794           The first four characters of the box type are set as the key.
10795           Default is false.
10796
10797       export_xmp
10798           Export entire contents of XMP_ box and uuid box as a string with
10799           key "xmp". Note that if "export_all" is set and this option isn't,
10800           the contents of XMP_ box are still exported but with key "XMP_".
10801           Default is false.
10802
10803       activation_bytes
10804           4-byte key required to decrypt Audible AAX and AAX+ files. See
10805           Audible AAX subsection below.
10806
10807       audible_fixed_key
10808           Fixed key used for handling Audible AAX/AAX+ files. It has been
10809           pre-set so should not be necessary to specify.
10810
10811       decryption_key
10812           16-byte key, in hex, to decrypt files encrypted using ISO Common
10813           Encryption (CENC/AES-128 CTR; ISO/IEC 23001-7).
10814
10815       max_stts_delta
10816           Very high sample deltas written in a trak's stts box may
10817           occasionally be intended but usually they are written in error or
10818           used to store a negative value for dts correction when treated as
10819           signed 32-bit integers. This option lets the user set an upper
10820           limit, beyond which the delta is clamped to 1. Values greater than
10821           the limit if negative when cast to int32 are used to adjust onward
10822           dts.
10823
10824           Unit is the track time scale. Range is 0 to UINT_MAX. Default is
10825           "UINT_MAX - 48000*10" which allows upto a 10 second dts correction
10826           for 48 kHz audio streams while accommodating 99.9% of "uint32"
10827           range.
10828
10829       Audible AAX
10830
10831       Audible AAX files are encrypted M4B files, and they can be decrypted by
10832       specifying a 4 byte activation secret.
10833
10834               ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:a copy output.mp4
10835
10836   mpegts
10837       MPEG-2 transport stream demuxer.
10838
10839       This demuxer accepts the following options:
10840
10841       resync_size
10842           Set size limit for looking up a new synchronization. Default value
10843           is 65536.
10844
10845       skip_unknown_pmt
10846           Skip PMTs for programs not defined in the PAT. Default value is 0.
10847
10848       fix_teletext_pts
10849           Override teletext packet PTS and DTS values with the timestamps
10850           calculated from the PCR of the first program which the teletext
10851           stream is part of and is not discarded. Default value is 1, set
10852           this option to 0 if you want your teletext packet PTS and DTS
10853           values untouched.
10854
10855       ts_packetsize
10856           Output option carrying the raw packet size in bytes.  Show the
10857           detected raw packet size, cannot be set by the user.
10858
10859       scan_all_pmts
10860           Scan and combine all PMTs. The value is an integer with value from
10861           -1 to 1 (-1 means automatic setting, 1 means enabled, 0 means
10862           disabled). Default value is -1.
10863
10864       merge_pmt_versions
10865           Re-use existing streams when a PMT's version is updated and
10866           elementary streams move to different PIDs. Default value is 0.
10867
10868       max_packet_size
10869           Set maximum size, in bytes, of packet emitted by the demuxer.
10870           Payloads above this size are split across multiple packets. Range
10871           is 1 to INT_MAX/2. Default is 204800 bytes.
10872
10873   mpjpeg
10874       MJPEG encapsulated in multi-part MIME demuxer.
10875
10876       This demuxer allows reading of MJPEG, where each frame is represented
10877       as a part of multipart/x-mixed-replace stream.
10878
10879       strict_mime_boundary
10880           Default implementation applies a relaxed standard to multi-part
10881           MIME boundary detection, to prevent regression with numerous
10882           existing endpoints not generating a proper MIME MJPEG stream.
10883           Turning this option on by setting it to 1 will result in a stricter
10884           check of the boundary value.
10885
10886   rawvideo
10887       Raw video demuxer.
10888
10889       This demuxer allows one to read raw video data. Since there is no
10890       header specifying the assumed video parameters, the user must specify
10891       them in order to be able to decode the data correctly.
10892
10893       This demuxer accepts the following options:
10894
10895       framerate
10896           Set input video frame rate. Default value is 25.
10897
10898       pixel_format
10899           Set the input video pixel format. Default value is "yuv420p".
10900
10901       video_size
10902           Set the input video size. This value must be specified explicitly.
10903
10904       For example to read a rawvideo file input.raw with ffplay, assuming a
10905       pixel format of "rgb24", a video size of "320x240", and a frame rate of
10906       10 images per second, use the command:
10907
10908               ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
10909
10910   sbg
10911       SBaGen script demuxer.
10912
10913       This demuxer reads the script language used by SBaGen
10914       <http://uazu.net/sbagen/> to generate binaural beats sessions. A SBG
10915       script looks like that:
10916
10917               -SE
10918               a: 300-2.5/3 440+4.5/0
10919               b: 300-2.5/0 440+4.5/3
10920               off: -
10921               NOW      == a
10922               +0:07:00 == b
10923               +0:14:00 == a
10924               +0:21:00 == b
10925               +0:30:00    off
10926
10927       A SBG script can mix absolute and relative timestamps. If the script
10928       uses either only absolute timestamps (including the script start time)
10929       or only relative ones, then its layout is fixed, and the conversion is
10930       straightforward. On the other hand, if the script mixes both kind of
10931       timestamps, then the NOW reference for relative timestamps will be
10932       taken from the current time of day at the time the script is read, and
10933       the script layout will be frozen according to that reference. That
10934       means that if the script is directly played, the actual times will
10935       match the absolute timestamps up to the sound controller's clock
10936       accuracy, but if the user somehow pauses the playback or seeks, all
10937       times will be shifted accordingly.
10938
10939   tedcaptions
10940       JSON captions used for <http://www.ted.com/>.
10941
10942       TED does not provide links to the captions, but they can be guessed
10943       from the page. The file tools/bookmarklets.html from the FFmpeg source
10944       tree contains a bookmarklet to expose them.
10945
10946       This demuxer accepts the following option:
10947
10948       start_time
10949           Set the start time of the TED talk, in milliseconds. The default is
10950           15000 (15s). It is used to sync the captions with the downloadable
10951           videos, because they include a 15s intro.
10952
10953       Example: convert the captions to a format most players understand:
10954
10955               ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
10956
10957   vapoursynth
10958       Vapoursynth wrapper.
10959
10960       Due to security concerns, Vapoursynth scripts will not be autodetected
10961       so the input format has to be forced. For ff* CLI tools, add "-f
10962       vapoursynth" before the input "-i yourscript.vpy".
10963
10964       This demuxer accepts the following option:
10965
10966       max_script_size
10967           The demuxer buffers the entire script into memory. Adjust this
10968           value to set the maximum buffer size, which in turn, acts as a
10969           ceiling for the size of scripts that can be read.  Default is 1
10970           MiB.
10971

MUXERS

10973       Muxers are configured elements in FFmpeg which allow writing multimedia
10974       streams to a particular type of file.
10975
10976       When you configure your FFmpeg build, all the supported muxers are
10977       enabled by default. You can list all available muxers using the
10978       configure option "--list-muxers".
10979
10980       You can disable all the muxers with the configure option
10981       "--disable-muxers" and selectively enable / disable single muxers with
10982       the options "--enable-muxer=MUXER" / "--disable-muxer=MUXER".
10983
10984       The option "-muxers" of the ff* tools will display the list of enabled
10985       muxers. Use "-formats" to view a combined list of enabled demuxers and
10986       muxers.
10987
10988       A description of some of the currently available muxers follows.
10989
10990   a64
10991       A64 muxer for Commodore 64 video. Accepts a single "a64_multi" or
10992       "a64_multi5" codec video stream.
10993
10994   adts
10995       Audio Data Transport Stream muxer. It accepts a single AAC stream.
10996
10997       Options
10998
10999       It accepts the following options:
11000
11001       write_id3v2 bool
11002           Enable to write ID3v2.4 tags at the start of the stream. Default is
11003           disabled.
11004
11005       write_apetag bool
11006           Enable to write APE tags at the end of the stream. Default is
11007           disabled.
11008
11009       write_mpeg2 bool
11010           Enable to set MPEG version bit in the ADTS frame header to 1 which
11011           indicates MPEG-2. Default is 0, which indicates MPEG-4.
11012
11013   aiff
11014       Audio Interchange File Format muxer.
11015
11016       Options
11017
11018       It accepts the following options:
11019
11020       write_id3v2
11021           Enable ID3v2 tags writing when set to 1. Default is 0 (disabled).
11022
11023       id3v2_version
11024           Select ID3v2 version to write. Currently only version 3 and 4 (aka.
11025           ID3v2.3 and ID3v2.4) are supported. The default is version 4.
11026
11027   alp
11028       Muxer for audio of High Voltage Software's Lego Racers game. It accepts
11029       a single ADPCM_IMA_ALP stream with no more than 2 channels nor a sample
11030       rate greater than 44100 Hz.
11031
11032       Extensions: tun, pcm
11033
11034       Options
11035
11036       It accepts the following options:
11037
11038       type type
11039           Set file type.
11040
11041           tun Set file type as music. Must have a sample rate of 22050 Hz.
11042
11043           pcm Set file type as sfx.
11044
11045           auto
11046               Set file type as per output file extension. ".pcm" results in
11047               type "pcm" else type "tun" is set. (default)
11048
11049   asf
11050       Advanced Systems Format muxer.
11051
11052       Note that Windows Media Audio (wma) and Windows Media Video (wmv) use
11053       this muxer too.
11054
11055       Options
11056
11057       It accepts the following options:
11058
11059       packet_size
11060           Set the muxer packet size. By tuning this setting you may reduce
11061           data fragmentation or muxer overhead depending on your source.
11062           Default value is 3200, minimum is 100, maximum is 64k.
11063
11064   avi
11065       Audio Video Interleaved muxer.
11066
11067       Options
11068
11069       It accepts the following options:
11070
11071       reserve_index_space
11072           Reserve the specified amount of bytes for the OpenDML master index
11073           of each stream within the file header. By default additional master
11074           indexes are embedded within the data packets if there is no space
11075           left in the first master index and are linked together as a chain
11076           of indexes. This index structure can cause problems for some use
11077           cases, e.g. third-party software strictly relying on the OpenDML
11078           index specification or when file seeking is slow. Reserving enough
11079           index space in the file header avoids these problems.
11080
11081           The required index space depends on the output file size and should
11082           be about 16 bytes per gigabyte. When this option is omitted or set
11083           to zero the necessary index space is guessed.
11084
11085       write_channel_mask
11086           Write the channel layout mask into the audio stream header.
11087
11088           This option is enabled by default. Disabling the channel mask can
11089           be useful in specific scenarios, e.g. when merging multiple audio
11090           streams into one for compatibility with software that only supports
11091           a single audio stream in AVI (see the "amerge" section in the
11092           ffmpeg-filters manual).
11093
11094       flipped_raw_rgb
11095           If set to true, store positive height for raw RGB bitmaps, which
11096           indicates bitmap is stored bottom-up. Note that this option does
11097           not flip the bitmap which has to be done manually beforehand, e.g.
11098           by using the vflip filter.  Default is false and indicates bitmap
11099           is stored top down.
11100
11101   chromaprint
11102       Chromaprint fingerprinter.
11103
11104       This muxer feeds audio data to the Chromaprint library, which generates
11105       a fingerprint for the provided audio data. See
11106       <https://acoustid.org/chromaprint>
11107
11108       It takes a single signed native-endian 16-bit raw audio stream of at
11109       most 2 channels.
11110
11111       Options
11112
11113       silence_threshold
11114           Threshold for detecting silence. Range is from -1 to 32767, where
11115           -1 disables silence detection. Silence detection can only be used
11116           with version 3 of the algorithm.  Silence detection must be
11117           disabled for use with the AcoustID service. Default is -1.
11118
11119       algorithm
11120           Version of algorithm to fingerprint with. Range is 0 to 4.  Version
11121           3 enables silence detection. Default is 1.
11122
11123       fp_format
11124           Format to output the fingerprint as. Accepts the following options:
11125
11126           raw Binary raw fingerprint
11127
11128           compressed
11129               Binary compressed fingerprint
11130
11131           base64
11132               Base64 compressed fingerprint (default)
11133
11134   crc
11135       CRC (Cyclic Redundancy Check) testing format.
11136
11137       This muxer computes and prints the Adler-32 CRC of all the input audio
11138       and video frames. By default audio frames are converted to signed
11139       16-bit raw audio and video frames to raw video before computing the
11140       CRC.
11141
11142       The output of the muxer consists of a single line of the form:
11143       CRC=0xCRC, where CRC is a hexadecimal number 0-padded to 8 digits
11144       containing the CRC for all the decoded input frames.
11145
11146       See also the framecrc muxer.
11147
11148       Examples
11149
11150       For example to compute the CRC of the input, and store it in the file
11151       out.crc:
11152
11153               ffmpeg -i INPUT -f crc out.crc
11154
11155       You can print the CRC to stdout with the command:
11156
11157               ffmpeg -i INPUT -f crc -
11158
11159       You can select the output format of each frame with ffmpeg by
11160       specifying the audio and video codec and format. For example to compute
11161       the CRC of the input audio converted to PCM unsigned 8-bit and the
11162       input video converted to MPEG-2 video, use the command:
11163
11164               ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f crc -
11165
11166   dash
11167       Dynamic Adaptive Streaming over HTTP (DASH) muxer that creates segments
11168       and manifest files according to the MPEG-DASH standard ISO/IEC
11169       23009-1:2014.
11170
11171       For more information see:
11172
11173       •   ISO DASH Specification:
11174           <http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip>
11175
11176       •   WebM DASH Specification:
11177           <https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification>
11178
11179       It creates a MPD manifest file and segment files for each stream.
11180
11181       The segment filename might contain pre-defined identifiers used with
11182       SegmentTemplate as defined in section 5.3.9.4.4 of the standard.
11183       Available identifiers are "$RepresentationID$", "$Number$",
11184       "$Bandwidth$" and "$Time$".  In addition to the standard identifiers,
11185       an ffmpeg-specific "$ext$" identifier is also supported.  When
11186       specified ffmpeg will replace $ext$ in the file name with muxing
11187       format's extensions such as mp4, webm etc.,
11188
11189               ffmpeg -re -i <input> -map 0 -map 0 -c:a libfdk_aac -c:v libx264 \
11190               -b:v:0 800k -b:v:1 300k -s:v:1 320x170 -profile:v:1 baseline \
11191               -profile:v:0 main -bf 1 -keyint_min 120 -g 120 -sc_threshold 0 \
11192               -b_strategy 0 -ar:a:1 22050 -use_timeline 1 -use_template 1 \
11193               -window_size 5 -adaptation_sets "id=0,streams=v id=1,streams=a" \
11194               -f dash /path/to/out.mpd
11195
11196       seg_duration duration
11197           Set the segment length in seconds (fractional value can be set).
11198           The value is treated as average segment duration when use_template
11199           is enabled and use_timeline is disabled and as minimum segment
11200           duration for all the other use cases.
11201
11202       frag_duration duration
11203           Set the length in seconds of fragments within segments (fractional
11204           value can be set).
11205
11206       frag_type type
11207           Set the type of interval for fragmentation.
11208
11209       window_size size
11210           Set the maximum number of segments kept in the manifest.
11211
11212       extra_window_size size
11213           Set the maximum number of segments kept outside of the manifest
11214           before removing from disk.
11215
11216       remove_at_exit remove
11217           Enable (1) or disable (0) removal of all segments when finished.
11218
11219       use_template template
11220           Enable (1) or disable (0) use of SegmentTemplate instead of
11221           SegmentList.
11222
11223       use_timeline timeline
11224           Enable (1) or disable (0) use of SegmentTimeline in
11225           SegmentTemplate.
11226
11227       single_file single_file
11228           Enable (1) or disable (0) storing all segments in one file,
11229           accessed using byte ranges.
11230
11231       single_file_name file_name
11232           DASH-templated name to be used for baseURL. Implies single_file set
11233           to "1". In the template, "$ext$" is replaced with the file name
11234           extension specific for the segment format.
11235
11236       init_seg_name init_name
11237           DASH-templated name to used for the initialization segment. Default
11238           is "init-stream$RepresentationID$.$ext$". "$ext$" is replaced with
11239           the file name extension specific for the segment format.
11240
11241       media_seg_name segment_name
11242           DASH-templated name to used for the media segments. Default is
11243           "chunk-stream$RepresentationID$-$Number%05d$.$ext$". "$ext$" is
11244           replaced with the file name extension specific for the segment
11245           format.
11246
11247       utc_timing_url utc_url
11248           URL of the page that will return the UTC timestamp in ISO format.
11249           Example: "https://time.akamai.com/?iso"
11250
11251       method method
11252           Use the given HTTP method to create output files. Generally set to
11253           PUT or POST.
11254
11255       http_user_agent user_agent
11256           Override User-Agent field in HTTP header. Applicable only for HTTP
11257           output.
11258
11259       http_persistent http_persistent
11260           Use persistent HTTP connections. Applicable only for HTTP output.
11261
11262       hls_playlist hls_playlist
11263           Generate HLS playlist files as well. The master playlist is
11264           generated with the filename hls_master_name.  One media playlist
11265           file is generated for each stream with filenames media_0.m3u8,
11266           media_1.m3u8, etc.
11267
11268       hls_master_name file_name
11269           HLS master playlist name. Default is "master.m3u8".
11270
11271       streaming streaming
11272           Enable (1) or disable (0) chunk streaming mode of output. In chunk
11273           streaming mode, each frame will be a moof fragment which forms a
11274           chunk.
11275
11276       adaptation_sets adaptation_sets
11277           Assign streams to AdaptationSets. Syntax is "id=x,streams=a,b,c
11278           id=y,streams=d,e" with x and y being the IDs of the adaptation sets
11279           and a,b,c,d and e are the indices of the mapped streams.
11280
11281           To map all video (or audio) streams to an AdaptationSet, "v" (or
11282           "a") can be used as stream identifier instead of IDs.
11283
11284           When no assignment is defined, this defaults to an AdaptationSet
11285           for each stream.
11286
11287           Optional syntax is
11288           "id=x,seg_duration=x,frag_duration=x,frag_type=type,descriptor=descriptor_string,streams=a,b,c
11289           id=y,seg_duration=y,frag_type=type,streams=d,e" and so on,
11290           descriptor is useful to the scheme defined by ISO/IEC
11291           23009-1:2014/Amd.2:2015.  For example, -adaptation_sets
11292           "id=0,descriptor=<SupplementalProperty
11293           schemeIdUri=\"urn:mpeg:dash:srd:2014\"
11294           value=\"0,0,0,1,1,2,2\"/>,streams=v".  Please note that descriptor
11295           string should be a self-closing xml tag.  seg_duration,
11296           frag_duration and frag_type override the global option values for
11297           each adaptation set.  For example, -adaptation_sets
11298           "id=0,seg_duration=2,frag_duration=1,frag_type=duration,streams=v
11299           id=1,seg_duration=2,frag_type=none,streams=a" type_id marks an
11300           adaptation set as containing streams meant to be used for Trick
11301           Mode for the referenced adaptation set.  For example,
11302           -adaptation_sets "id=0,seg_duration=2,frag_type=none,streams=0
11303           id=1,seg_duration=10,frag_type=none,trick_id=0,streams=1"
11304
11305       timeout timeout
11306           Set timeout for socket I/O operations. Applicable only for HTTP
11307           output.
11308
11309       index_correction index_correction
11310           Enable (1) or Disable (0) segment index correction logic.
11311           Applicable only when use_template is enabled and use_timeline is
11312           disabled.
11313
11314           When enabled, the logic monitors the flow of segment indexes. If a
11315           streams's segment index value is not at the expected real time
11316           position, then the logic corrects that index value.
11317
11318           Typically this logic is needed in live streaming use cases. The
11319           network bandwidth fluctuations are common during long run
11320           streaming. Each fluctuation can cause the segment indexes fall
11321           behind the expected real time position.
11322
11323       format_options options_list
11324           Set container format (mp4/webm) options using a ":" separated list
11325           of key=value parameters. Values containing ":" special characters
11326           must be escaped.
11327
11328       global_sidx global_sidx
11329           Write global SIDX atom. Applicable only for single file, mp4
11330           output, non-streaming mode.
11331
11332       dash_segment_type dash_segment_type
11333           Possible values:
11334
11335           auto
11336               If this flag is set, the dash segment files format will be
11337               selected based on the stream codec. This is the default mode.
11338
11339           mp4 If this flag is set, the dash segment files will be in in
11340               ISOBMFF format.
11341
11342           webm
11343               If this flag is set, the dash segment files will be in in WebM
11344               format.
11345
11346       ignore_io_errors ignore_io_errors
11347           Ignore IO errors during open and write. Useful for long-duration
11348           runs with network output.
11349
11350       lhls lhls
11351           Enable Low-latency HLS(LHLS). Adds #EXT-X-PREFETCH tag with current
11352           segment's URI.  hls.js player folks are trying to standardize an
11353           open LHLS spec. The draft spec is available in
11354           https://github.com/video-dev/hlsjs-rfcs/blob/lhls-spec/proposals/0001-lhls.md
11355           This option tries to comply with the above open spec.  It enables
11356           streaming and hls_playlist options automatically.  This is an
11357           experimental feature.
11358
11359           Note: This is not Apple's version LHLS. See
11360           <https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis>
11361
11362       ldash ldash
11363           Enable Low-latency Dash by constraining the presence and values of
11364           some elements.
11365
11366       master_m3u8_publish_rate master_m3u8_publish_rate
11367           Publish master playlist repeatedly every after specified number of
11368           segment intervals.
11369
11370       write_prft write_prft
11371           Write Producer Reference Time elements on supported streams. This
11372           also enables writing prft boxes in the underlying muxer. Applicable
11373           only when the utc_url option is enabled.  It's set to auto by
11374           default, in which case the muxer will attempt to enable it only in
11375           modes that require it.
11376
11377       mpd_profile mpd_profile
11378           Set one or more manifest profiles.
11379
11380       http_opts http_opts
11381           A :-separated list of key=value options to pass to the underlying
11382           HTTP protocol. Applicable only for HTTP output.
11383
11384       target_latency target_latency
11385           Set an intended target latency in seconds (fractional value can be
11386           set) for serving. Applicable only when streaming and write_prft
11387           options are enabled.  This is an informative fields clients can use
11388           to measure the latency of the service.
11389
11390       min_playback_rate min_playback_rate
11391           Set the minimum playback rate indicated as appropriate for the
11392           purposes of automatically adjusting playback latency and buffer
11393           occupancy during normal playback by clients.
11394
11395       max_playback_rate max_playback_rate
11396           Set the maximum playback rate indicated as appropriate for the
11397           purposes of automatically adjusting playback latency and buffer
11398           occupancy during normal playback by clients.
11399
11400       update_period update_period
11401            Set the mpd update period ,for dynamic content.
11402            The unit is second.
11403
11404   fifo
11405       The fifo pseudo-muxer allows the separation of encoding and muxing by
11406       using first-in-first-out queue and running the actual muxer in a
11407       separate thread. This is especially useful in combination with the tee
11408       muxer and can be used to send data to several destinations with
11409       different reliability/writing speed/latency.
11410
11411       API users should be aware that callback functions (interrupt_callback,
11412       io_open and io_close) used within its AVFormatContext must be thread-
11413       safe.
11414
11415       The behavior of the fifo muxer if the queue fills up or if the output
11416       fails is selectable,
11417
11418       •   output can be transparently restarted with configurable delay
11419           between retries based on real time or time of the processed stream.
11420
11421       •   encoding can be blocked during temporary failure, or continue
11422           transparently dropping packets in case fifo queue fills up.
11423
11424       fifo_format
11425           Specify the format name. Useful if it cannot be guessed from the
11426           output name suffix.
11427
11428       queue_size
11429           Specify size of the queue (number of packets). Default value is 60.
11430
11431       format_opts
11432           Specify format options for the underlying muxer. Muxer options can
11433           be specified as a list of key=value pairs separated by ':'.
11434
11435       drop_pkts_on_overflow bool
11436           If set to 1 (true), in case the fifo queue fills up, packets will
11437           be dropped rather than blocking the encoder. This makes it possible
11438           to continue streaming without delaying the input, at the cost of
11439           omitting part of the stream. By default this option is set to 0
11440           (false), so in such cases the encoder will be blocked until the
11441           muxer processes some of the packets and none of them is lost.
11442
11443       attempt_recovery bool
11444           If failure occurs, attempt to recover the output. This is
11445           especially useful when used with network output, since it makes it
11446           possible to restart streaming transparently.  By default this
11447           option is set to 0 (false).
11448
11449       max_recovery_attempts
11450           Sets maximum number of successive unsuccessful recovery attempts
11451           after which the output fails permanently. By default this option is
11452           set to 0 (unlimited).
11453
11454       recovery_wait_time duration
11455           Waiting time before the next recovery attempt after previous
11456           unsuccessful recovery attempt. Default value is 5 seconds.
11457
11458       recovery_wait_streamtime bool
11459           If set to 0 (false), the real time is used when waiting for the
11460           recovery attempt (i.e. the recovery will be attempted after at
11461           least recovery_wait_time seconds).  If set to 1 (true), the time of
11462           the processed stream is taken into account instead (i.e. the
11463           recovery will be attempted after at least recovery_wait_time
11464           seconds of the stream is omitted).  By default, this option is set
11465           to 0 (false).
11466
11467       recover_any_error bool
11468           If set to 1 (true), recovery will be attempted regardless of type
11469           of the error causing the failure. By default this option is set to
11470           0 (false) and in case of certain (usually permanent) errors the
11471           recovery is not attempted even when attempt_recovery is set to 1.
11472
11473       restart_with_keyframe bool
11474           Specify whether to wait for the keyframe after recovering from
11475           queue overflow or failure. This option is set to 0 (false) by
11476           default.
11477
11478       timeshift duration
11479           Buffer the specified amount of packets and delay writing the
11480           output. Note that queue_size must be big enough to store the
11481           packets for timeshift. At the end of the input the fifo buffer is
11482           flushed at realtime speed.
11483
11484       Examples
11485
11486       •   Stream something to rtmp server, continue processing the stream at
11487           real-time rate even in case of temporary failure (network outage)
11488           and attempt to recover streaming every second indefinitely.
11489
11490                   ffmpeg -re -i ... -c:v libx264 -c:a aac -f fifo -fifo_format flv -map 0:v -map 0:a
11491                     -drop_pkts_on_overflow 1 -attempt_recovery 1 -recovery_wait_time 1 rtmp://example.com/live/stream_name
11492
11493   flv
11494       Adobe Flash Video Format muxer.
11495
11496       This muxer accepts the following options:
11497
11498       flvflags flags
11499           Possible values:
11500
11501           aac_seq_header_detect
11502               Place AAC sequence header based on audio stream data.
11503
11504           no_sequence_end
11505               Disable sequence end tag.
11506
11507           no_metadata
11508               Disable metadata tag.
11509
11510           no_duration_filesize
11511               Disable duration and filesize in metadata when they are equal
11512               to zero at the end of stream. (Be used to non-seekable living
11513               stream).
11514
11515           add_keyframe_index
11516               Used to facilitate seeking; particularly for HTTP pseudo
11517               streaming.
11518
11519   framecrc
11520       Per-packet CRC (Cyclic Redundancy Check) testing format.
11521
11522       This muxer computes and prints the Adler-32 CRC for each audio and
11523       video packet. By default audio frames are converted to signed 16-bit
11524       raw audio and video frames to raw video before computing the CRC.
11525
11526       The output of the muxer consists of a line for each audio and video
11527       packet of the form:
11528
11529               <stream_index>, <packet_dts>, <packet_pts>, <packet_duration>, <packet_size>, 0x<CRC>
11530
11531       CRC is a hexadecimal number 0-padded to 8 digits containing the CRC of
11532       the packet.
11533
11534       Examples
11535
11536       For example to compute the CRC of the audio and video frames in INPUT,
11537       converted to raw audio and video packets, and store it in the file
11538       out.crc:
11539
11540               ffmpeg -i INPUT -f framecrc out.crc
11541
11542       To print the information to stdout, use the command:
11543
11544               ffmpeg -i INPUT -f framecrc -
11545
11546       With ffmpeg, you can select the output format to which the audio and
11547       video frames are encoded before computing the CRC for each packet by
11548       specifying the audio and video codec. For example, to compute the CRC
11549       of each decoded input audio frame converted to PCM unsigned 8-bit and
11550       of each decoded input video frame converted to MPEG-2 video, use the
11551       command:
11552
11553               ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f framecrc -
11554
11555       See also the crc muxer.
11556
11557   framehash
11558       Per-packet hash testing format.
11559
11560       This muxer computes and prints a cryptographic hash for each audio and
11561       video packet. This can be used for packet-by-packet equality checks
11562       without having to individually do a binary comparison on each.
11563
11564       By default audio frames are converted to signed 16-bit raw audio and
11565       video frames to raw video before computing the hash, but the output of
11566       explicit conversions to other codecs can also be used. It uses the
11567       SHA-256 cryptographic hash function by default, but supports several
11568       other algorithms.
11569
11570       The output of the muxer consists of a line for each audio and video
11571       packet of the form:
11572
11573               <stream_index>, <packet_dts>, <packet_pts>, <packet_duration>, <packet_size>, <hash>
11574
11575       hash is a hexadecimal number representing the computed hash for the
11576       packet.
11577
11578       hash algorithm
11579           Use the cryptographic hash function specified by the string
11580           algorithm.  Supported values include "MD5", "murmur3", "RIPEMD128",
11581           "RIPEMD160", "RIPEMD256", "RIPEMD320", "SHA160", "SHA224", "SHA256"
11582           (default), "SHA512/224", "SHA512/256", "SHA384", "SHA512", "CRC32"
11583           and "adler32".
11584
11585       Examples
11586
11587       To compute the SHA-256 hash of the audio and video frames in INPUT,
11588       converted to raw audio and video packets, and store it in the file
11589       out.sha256:
11590
11591               ffmpeg -i INPUT -f framehash out.sha256
11592
11593       To print the information to stdout, using the MD5 hash function, use
11594       the command:
11595
11596               ffmpeg -i INPUT -f framehash -hash md5 -
11597
11598       See also the hash muxer.
11599
11600   framemd5
11601       Per-packet MD5 testing format.
11602
11603       This is a variant of the framehash muxer. Unlike that muxer, it
11604       defaults to using the MD5 hash function.
11605
11606       Examples
11607
11608       To compute the MD5 hash of the audio and video frames in INPUT,
11609       converted to raw audio and video packets, and store it in the file
11610       out.md5:
11611
11612               ffmpeg -i INPUT -f framemd5 out.md5
11613
11614       To print the information to stdout, use the command:
11615
11616               ffmpeg -i INPUT -f framemd5 -
11617
11618       See also the framehash and md5 muxers.
11619
11620   gif
11621       Animated GIF muxer.
11622
11623       It accepts the following options:
11624
11625       loop
11626           Set the number of times to loop the output. Use "-1" for no loop, 0
11627           for looping indefinitely (default).
11628
11629       final_delay
11630           Force the delay (expressed in centiseconds) after the last frame.
11631           Each frame ends with a delay until the next frame. The default is
11632           "-1", which is a special value to tell the muxer to re-use the
11633           previous delay. In case of a loop, you might want to customize this
11634           value to mark a pause for instance.
11635
11636       For example, to encode a gif looping 10 times, with a 5 seconds delay
11637       between the loops:
11638
11639               ffmpeg -i INPUT -loop 10 -final_delay 500 out.gif
11640
11641       Note 1: if you wish to extract the frames into separate GIF files, you
11642       need to force the image2 muxer:
11643
11644               ffmpeg -i INPUT -c:v gif -f image2 "out%d.gif"
11645
11646       Note 2: the GIF format has a very large time base: the delay between
11647       two frames can therefore not be smaller than one centi second.
11648
11649   hash
11650       Hash testing format.
11651
11652       This muxer computes and prints a cryptographic hash of all the input
11653       audio and video frames. This can be used for equality checks without
11654       having to do a complete binary comparison.
11655
11656       By default audio frames are converted to signed 16-bit raw audio and
11657       video frames to raw video before computing the hash, but the output of
11658       explicit conversions to other codecs can also be used. Timestamps are
11659       ignored. It uses the SHA-256 cryptographic hash function by default,
11660       but supports several other algorithms.
11661
11662       The output of the muxer consists of a single line of the form:
11663       algo=hash, where algo is a short string representing the hash function
11664       used, and hash is a hexadecimal number representing the computed hash.
11665
11666       hash algorithm
11667           Use the cryptographic hash function specified by the string
11668           algorithm.  Supported values include "MD5", "murmur3", "RIPEMD128",
11669           "RIPEMD160", "RIPEMD256", "RIPEMD320", "SHA160", "SHA224", "SHA256"
11670           (default), "SHA512/224", "SHA512/256", "SHA384", "SHA512", "CRC32"
11671           and "adler32".
11672
11673       Examples
11674
11675       To compute the SHA-256 hash of the input converted to raw audio and
11676       video, and store it in the file out.sha256:
11677
11678               ffmpeg -i INPUT -f hash out.sha256
11679
11680       To print an MD5 hash to stdout use the command:
11681
11682               ffmpeg -i INPUT -f hash -hash md5 -
11683
11684       See also the framehash muxer.
11685
11686   hls
11687       Apple HTTP Live Streaming muxer that segments MPEG-TS according to the
11688       HTTP Live Streaming (HLS) specification.
11689
11690       It creates a playlist file, and one or more segment files. The output
11691       filename specifies the playlist filename.
11692
11693       By default, the muxer creates a file for each segment produced. These
11694       files have the same name as the playlist, followed by a sequential
11695       number and a .ts extension.
11696
11697       Make sure to require a closed GOP when encoding and to set the GOP size
11698       to fit your segment time constraint.
11699
11700       For example, to convert an input file with ffmpeg:
11701
11702               ffmpeg -i in.mkv -c:v h264 -flags +cgop -g 30 -hls_time 1 out.m3u8
11703
11704       This example will produce the playlist, out.m3u8, and segment files:
11705       out0.ts, out1.ts, out2.ts, etc.
11706
11707       See also the segment muxer, which provides a more generic and flexible
11708       implementation of a segmenter, and can be used to perform HLS
11709       segmentation.
11710
11711       Options
11712
11713       This muxer supports the following options:
11714
11715       hls_init_time duration
11716           Set the initial target segment length. Default value is 0.
11717
11718           duration must be a time duration specification, see the Time
11719           duration section in the ffmpeg-utils(1) manual.
11720
11721           Segment will be cut on the next key frame after this time has
11722           passed on the first m3u8 list.  After the initial playlist is
11723           filled ffmpeg will cut segments at duration equal to "hls_time"
11724
11725       hls_time duration
11726           Set the target segment length. Default value is 2.
11727
11728           duration must be a time duration specification, see the Time
11729           duration section in the ffmpeg-utils(1) manual.  Segment will be
11730           cut on the next key frame after this time has passed.
11731
11732       hls_list_size size
11733           Set the maximum number of playlist entries. If set to 0 the list
11734           file will contain all the segments. Default value is 5.
11735
11736       hls_delete_threshold size
11737           Set the number of unreferenced segments to keep on disk before
11738           "hls_flags delete_segments" deletes them. Increase this to allow
11739           continue clients to download segments which were recently
11740           referenced in the playlist. Default value is 1, meaning segments
11741           older than "hls_list_size+1" will be deleted.
11742
11743       hls_ts_options options_list
11744           Set output format options using a :-separated list of key=value
11745           parameters. Values containing ":" special characters must be
11746           escaped.  "hls_ts_options" is deprecated, use hls_segment_options
11747           instead of it..
11748
11749       hls_start_number_source
11750           Start the playlist sequence number ("#EXT-X-MEDIA-SEQUENCE")
11751           according to the specified source.  Unless "hls_flags single_file"
11752           is set, it also specifies source of starting sequence numbers of
11753           segment and subtitle filenames. In any case, if "hls_flags
11754           append_list" is set and read playlist sequence number is greater
11755           than the specified start sequence number, then that value will be
11756           used as start value.
11757
11758           It accepts the following values:
11759
11760           generic (default)
11761               Set the starting sequence numbers according to start_number
11762               option value.
11763
11764           epoch
11765               The start number will be the seconds since epoch (1970-01-01
11766               00:00:00)
11767
11768           epoch_us
11769               The start number will be the microseconds since epoch
11770               (1970-01-01 00:00:00)
11771
11772           datetime
11773               The start number will be based on the current date/time as
11774               YYYYmmddHHMMSS. e.g. 20161231235759.
11775
11776       start_number number
11777           Start the playlist sequence number ("#EXT-X-MEDIA-SEQUENCE") from
11778           the specified number when hls_start_number_source value is generic.
11779           (This is the default case.)  Unless "hls_flags single_file" is set,
11780           it also specifies starting sequence numbers of segment and subtitle
11781           filenames.  Default value is 0.
11782
11783       hls_allow_cache allowcache
11784           Explicitly set whether the client MAY (1) or MUST NOT (0) cache
11785           media segments.
11786
11787       hls_base_url baseurl
11788           Append baseurl to every entry in the playlist.  Useful to generate
11789           playlists with absolute paths.
11790
11791           Note that the playlist sequence number must be unique for each
11792           segment and it is not to be confused with the segment filename
11793           sequence number which can be cyclic, for example if the wrap option
11794           is specified.
11795
11796       hls_segment_filename filename
11797           Set the segment filename. Unless "hls_flags single_file" is set,
11798           filename is used as a string format with the segment number:
11799
11800                   ffmpeg -i in.nut -hls_segment_filename 'file%03d.ts' out.m3u8
11801
11802           This example will produce the playlist, out.m3u8, and segment
11803           files: file000.ts, file001.ts, file002.ts, etc.
11804
11805           filename may contain full path or relative path specification, but
11806           only the file name part without any path info will be contained in
11807           the m3u8 segment list.  Should a relative path be specified, the
11808           path of the created segment files will be relative to the current
11809           working directory.  When strftime_mkdir is set, the whole expanded
11810           value of filename will be written into the m3u8 segment list.
11811
11812           When "var_stream_map" is set with two or more variant streams, the
11813           filename pattern must contain the string "%v", this string
11814           specifies the position of variant stream index in the generated
11815           segment file names.
11816
11817                   ffmpeg -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
11818                     -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0 v:1,a:1" \
11819                     -hls_segment_filename 'file_%v_%03d.ts' out_%v.m3u8
11820
11821           This example will produce the playlists segment file sets:
11822           file_0_000.ts, file_0_001.ts, file_0_002.ts, etc. and
11823           file_1_000.ts, file_1_001.ts, file_1_002.ts, etc.
11824
11825           The string "%v" may be present in the filename or in the last
11826           directory name containing the file, but only in one of them.
11827           (Additionally, %v may appear multiple times in the last sub-
11828           directory or filename.) If the string %v is present in the
11829           directory name, then sub-directories are created after expanding
11830           the directory name pattern. This enables creation of segments
11831           corresponding to different variant streams in subdirectories.
11832
11833                   ffmpeg -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
11834                     -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0 v:1,a:1" \
11835                     -hls_segment_filename 'vs%v/file_%03d.ts' vs%v/out.m3u8
11836
11837           This example will produce the playlists segment file sets:
11838           vs0/file_000.ts, vs0/file_001.ts, vs0/file_002.ts, etc. and
11839           vs1/file_000.ts, vs1/file_001.ts, vs1/file_002.ts, etc.
11840
11841       strftime
11842           Use strftime() on filename to expand the segment filename with
11843           localtime.  The segment number is also available in this mode, but
11844           to use it, you need to specify second_level_segment_index hls_flag
11845           and %%d will be the specifier.
11846
11847                   ffmpeg -i in.nut -strftime 1 -hls_segment_filename 'file-%Y%m%d-%s.ts' out.m3u8
11848
11849           This example will produce the playlist, out.m3u8, and segment
11850           files: file-20160215-1455569023.ts, file-20160215-1455569024.ts,
11851           etc.  Note: On some systems/environments, the %s specifier is not
11852           available. See
11853             "strftime()" documentation.
11854
11855                   ffmpeg -i in.nut -strftime 1 -hls_flags second_level_segment_index -hls_segment_filename 'file-%Y%m%d-%%04d.ts' out.m3u8
11856
11857           This example will produce the playlist, out.m3u8, and segment
11858           files: file-20160215-0001.ts, file-20160215-0002.ts, etc.
11859
11860       strftime_mkdir
11861           Used together with -strftime_mkdir, it will create all
11862           subdirectories which is expanded in filename.
11863
11864                   ffmpeg -i in.nut -strftime 1 -strftime_mkdir 1 -hls_segment_filename '%Y%m%d/file-%Y%m%d-%s.ts' out.m3u8
11865
11866           This example will create a directory 201560215 (if it does not
11867           exist), and then produce the playlist, out.m3u8, and segment files:
11868           20160215/file-20160215-1455569023.ts,
11869           20160215/file-20160215-1455569024.ts, etc.
11870
11871                   ffmpeg -i in.nut -strftime 1 -strftime_mkdir 1 -hls_segment_filename '%Y/%m/%d/file-%Y%m%d-%s.ts' out.m3u8
11872
11873           This example will create a directory hierarchy 2016/02/15 (if any
11874           of them do not exist), and then produce the playlist, out.m3u8, and
11875           segment files: 2016/02/15/file-20160215-1455569023.ts,
11876           2016/02/15/file-20160215-1455569024.ts, etc.
11877
11878       hls_segment_options options_list
11879           Set output format options using a :-separated list of key=value
11880           parameters. Values containing ":" special characters must be
11881           escaped.
11882
11883       hls_key_info_file key_info_file
11884           Use the information in key_info_file for segment encryption. The
11885           first line of key_info_file specifies the key URI written to the
11886           playlist. The key URL is used to access the encryption key during
11887           playback. The second line specifies the path to the key file used
11888           to obtain the key during the encryption process. The key file is
11889           read as a single packed array of 16 octets in binary format. The
11890           optional third line specifies the initialization vector (IV) as a
11891           hexadecimal string to be used instead of the segment sequence
11892           number (default) for encryption. Changes to key_info_file will
11893           result in segment encryption with the new key/IV and an entry in
11894           the playlist for the new key URI/IV if "hls_flags periodic_rekey"
11895           is enabled.
11896
11897           Key info file format:
11898
11899                   <key URI>
11900                   <key file path>
11901                   <IV> (optional)
11902
11903           Example key URIs:
11904
11905                   http://server/file.key
11906                   /path/to/file.key
11907                   file.key
11908
11909           Example key file paths:
11910
11911                   file.key
11912                   /path/to/file.key
11913
11914           Example IV:
11915
11916                   0123456789ABCDEF0123456789ABCDEF
11917
11918           Key info file example:
11919
11920                   http://server/file.key
11921                   /path/to/file.key
11922                   0123456789ABCDEF0123456789ABCDEF
11923
11924           Example shell script:
11925
11926                   #!/bin/sh
11927                   BASE_URL=${1:-'.'}
11928                   openssl rand 16 > file.key
11929                   echo $BASE_URL/file.key > file.keyinfo
11930                   echo file.key >> file.keyinfo
11931                   echo $(openssl rand -hex 16) >> file.keyinfo
11932                   ffmpeg -f lavfi -re -i testsrc -c:v h264 -hls_flags delete_segments \
11933                     -hls_key_info_file file.keyinfo out.m3u8
11934
11935       -hls_enc enc
11936           Enable (1) or disable (0) the AES128 encryption.  When enabled
11937           every segment generated is encrypted and the encryption key is
11938           saved as playlist name.key.
11939
11940       -hls_enc_key key
11941           16-octet key to encrypt the segments, by default it is randomly
11942           generated.
11943
11944       -hls_enc_key_url keyurl
11945           If set, keyurl is prepended instead of baseurl to the key filename
11946           in the playlist.
11947
11948       -hls_enc_iv iv
11949           16-octet initialization vector for every segment instead of the
11950           autogenerated ones.
11951
11952       hls_segment_type flags
11953           Possible values:
11954
11955           mpegts
11956               Output segment files in MPEG-2 Transport Stream format. This is
11957               compatible with all HLS versions.
11958
11959           fmp4
11960               Output segment files in fragmented MP4 format, similar to MPEG-
11961               DASH.  fmp4 files may be used in HLS version 7 and above.
11962
11963       hls_fmp4_init_filename filename
11964           Set filename to the fragment files header file, default filename is
11965           init.mp4.
11966
11967           Use "-strftime 1" on filename to expand the segment filename with
11968           localtime.
11969
11970                   ffmpeg -i in.nut  -hls_segment_type fmp4 -strftime 1 -hls_fmp4_init_filename "%s_init.mp4" out.m3u8
11971
11972           This will produce init like this 1602678741_init.mp4
11973
11974       hls_fmp4_init_resend
11975           Resend init file after m3u8 file refresh every time, default is 0.
11976
11977           When "var_stream_map" is set with two or more variant streams, the
11978           filename pattern must contain the string "%v", this string
11979           specifies the position of variant stream index in the generated
11980           init file names.  The string "%v" may be present in the filename or
11981           in the last directory name containing the file. If the string is
11982           present in the directory name, then sub-directories are created
11983           after expanding the directory name pattern. This enables creation
11984           of init files corresponding to different variant streams in
11985           subdirectories.
11986
11987       hls_flags flags
11988           Possible values:
11989
11990           single_file
11991               If this flag is set, the muxer will store all segments in a
11992               single MPEG-TS file, and will use byte ranges in the playlist.
11993               HLS playlists generated with this way will have the version
11994               number 4.  For example:
11995
11996                       ffmpeg -i in.nut -hls_flags single_file out.m3u8
11997
11998               Will produce the playlist, out.m3u8, and a single segment file,
11999               out.ts.
12000
12001           delete_segments
12002               Segment files removed from the playlist are deleted after a
12003               period of time equal to the duration of the segment plus the
12004               duration of the playlist.
12005
12006           append_list
12007               Append new segments into the end of old segment list, and
12008               remove the "#EXT-X-ENDLIST" from the old segment list.
12009
12010           round_durations
12011               Round the duration info in the playlist file segment info to
12012               integer values, instead of using floating point.  If there are
12013               no other features requiring higher HLS versions be used, then
12014               this will allow ffmpeg to output a HLS version 2 m3u8.
12015
12016           discont_start
12017               Add the "#EXT-X-DISCONTINUITY" tag to the playlist, before the
12018               first segment's information.
12019
12020           omit_endlist
12021               Do not append the "EXT-X-ENDLIST" tag at the end of the
12022               playlist.
12023
12024           periodic_rekey
12025               The file specified by "hls_key_info_file" will be checked
12026               periodically and detect updates to the encryption info. Be sure
12027               to replace this file atomically, including the file containing
12028               the AES encryption key.
12029
12030           independent_segments
12031               Add the "#EXT-X-INDEPENDENT-SEGMENTS" to playlists that has
12032               video segments and when all the segments of that playlist are
12033               guaranteed to start with a Key frame.
12034
12035           iframes_only
12036               Add the "#EXT-X-I-FRAMES-ONLY" to playlists that has video
12037               segments and can play only I-frames in the "#EXT-X-BYTERANGE"
12038               mode.
12039
12040           split_by_time
12041               Allow segments to start on frames other than keyframes. This
12042               improves behavior on some players when the time between
12043               keyframes is inconsistent, but may make things worse on others,
12044               and can cause some oddities during seeking. This flag should be
12045               used with the "hls_time" option.
12046
12047           program_date_time
12048               Generate "EXT-X-PROGRAM-DATE-TIME" tags.
12049
12050           second_level_segment_index
12051               Makes it possible to use segment indexes as %%d in
12052               hls_segment_filename expression besides date/time values when
12053               strftime is on.  To get fixed width numbers with trailing
12054               zeroes, %%0xd format is available where x is the required
12055               width.
12056
12057           second_level_segment_size
12058               Makes it possible to use segment sizes (counted in bytes) as
12059               %%s in hls_segment_filename expression besides date/time values
12060               when strftime is on.  To get fixed width numbers with trailing
12061               zeroes, %%0xs format is available where x is the required
12062               width.
12063
12064           second_level_segment_duration
12065               Makes it possible to use segment duration (calculated  in
12066               microseconds) as %%t in hls_segment_filename expression besides
12067               date/time values when strftime is on.  To get fixed width
12068               numbers with trailing zeroes, %%0xt format is available where x
12069               is the required width.
12070
12071                       ffmpeg -i sample.mpeg \
12072                          -f hls -hls_time 3 -hls_list_size 5 \
12073                          -hls_flags second_level_segment_index+second_level_segment_size+second_level_segment_duration \
12074                          -strftime 1 -strftime_mkdir 1 -hls_segment_filename "segment_%Y%m%d%H%M%S_%%04d_%%08s_%%013t.ts" stream.m3u8
12075
12076               This will produce segments like this:
12077               segment_20170102194334_0003_00122200_0000003000000.ts,
12078               segment_20170102194334_0004_00120072_0000003000000.ts etc.
12079
12080           temp_file
12081               Write segment data to filename.tmp and rename to filename only
12082               once the segment is complete. A webserver serving up segments
12083               can be configured to reject requests to *.tmp to prevent access
12084               to in-progress segments before they have been added to the m3u8
12085               playlist. This flag also affects how m3u8 playlist files are
12086               created.  If this flag is set, all playlist files will written
12087               into temporary file and renamed after they are complete,
12088               similarly as segments are handled.  But playlists with "file"
12089               protocol and with type ("hls_playlist_type") other than "vod"
12090               are always written into temporary file regardless of this flag.
12091               Master playlist files ("master_pl_name"), if any, with "file"
12092               protocol, are always written into temporary file regardless of
12093               this flag if "master_pl_publish_rate" value is other than zero.
12094
12095       hls_playlist_type event
12096           Emit "#EXT-X-PLAYLIST-TYPE:EVENT" in the m3u8 header. Forces
12097           hls_list_size to 0; the playlist can only be appended to.
12098
12099       hls_playlist_type vod
12100           Emit "#EXT-X-PLAYLIST-TYPE:VOD" in the m3u8 header. Forces
12101           hls_list_size to 0; the playlist must not change.
12102
12103       method
12104           Use the given HTTP method to create the hls files.
12105
12106                   ffmpeg -re -i in.ts -f hls -method PUT http://example.com/live/out.m3u8
12107
12108           This example will upload all the mpegts segment files to the HTTP
12109           server using the HTTP PUT method, and update the m3u8 files every
12110           "refresh" times using the same method.  Note that the HTTP server
12111           must support the given method for uploading files.
12112
12113       http_user_agent
12114           Override User-Agent field in HTTP header. Applicable only for HTTP
12115           output.
12116
12117       var_stream_map
12118           Map string which specifies how to group the audio, video and
12119           subtitle streams into different variant streams. The variant stream
12120           groups are separated by space.  Expected string format is like this
12121           "a:0,v:0 a:1,v:1 ....". Here a:, v:, s: are the keys to specify
12122           audio, video and subtitle streams respectively.  Allowed values are
12123           0 to 9 (limited just based on practical usage).
12124
12125           When there are two or more variant streams, the output filename
12126           pattern must contain the string "%v", this string specifies the
12127           position of variant stream index in the output media playlist
12128           filenames. The string "%v" may be present in the filename or in the
12129           last directory name containing the file. If the string is present
12130           in the directory name, then sub-directories are created after
12131           expanding the directory name pattern. This enables creation of
12132           variant streams in subdirectories.
12133
12134                   ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
12135                     -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0 v:1,a:1" \
12136                     http://example.com/live/out_%v.m3u8
12137
12138           This example creates two hls variant streams. The first variant
12139           stream will contain video stream of bitrate 1000k and audio stream
12140           of bitrate 64k and the second variant stream will contain video
12141           stream of bitrate 256k and audio stream of bitrate 32k. Here, two
12142           media playlist with file names out_0.m3u8 and out_1.m3u8 will be
12143           created. If you want something meaningful text instead of indexes
12144           in result names, you may specify names for each or some of the
12145           variants as in the following example.
12146
12147                   ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
12148                     -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0,name:my_hd v:1,a:1,name:my_sd" \
12149                     http://example.com/live/out_%v.m3u8
12150
12151           This example creates two hls variant streams as in the previous
12152           one.  But here, the two media playlist with file names
12153           out_my_hd.m3u8 and out_my_sd.m3u8 will be created.
12154
12155                   ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k \
12156                     -map 0:v -map 0:a -map 0:v -f hls -var_stream_map "v:0 a:0 v:1" \
12157                     http://example.com/live/out_%v.m3u8
12158
12159           This example creates three hls variant streams. The first variant
12160           stream will be a video only stream with video bitrate 1000k, the
12161           second variant stream will be an audio only stream with bitrate 64k
12162           and the third variant stream will be a video only stream with
12163           bitrate 256k. Here, three media playlist with file names
12164           out_0.m3u8, out_1.m3u8 and out_2.m3u8 will be created.
12165
12166                   ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
12167                     -map 0:v -map 0:a -map 0:v -map 0:a -f hls -var_stream_map "v:0,a:0 v:1,a:1" \
12168                     http://example.com/live/vs_%v/out.m3u8
12169
12170           This example creates the variant streams in subdirectories. Here,
12171           the first media playlist is created at
12172           http://example.com/live/vs_0/out.m3u8 and the second one at
12173           http://example.com/live/vs_1/out.m3u8.
12174
12175                   ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k -b:v:1 3000k  \
12176                     -map 0:a -map 0:a -map 0:v -map 0:v -f hls \
12177                     -var_stream_map "a:0,agroup:aud_low a:1,agroup:aud_high v:0,agroup:aud_low v:1,agroup:aud_high" \
12178                     -master_pl_name master.m3u8 \
12179                     http://example.com/live/out_%v.m3u8
12180
12181           This example creates two audio only and two video only variant
12182           streams. In addition to the #EXT-X-STREAM-INF tag for each variant
12183           stream in the master playlist, #EXT-X-MEDIA tag is also added for
12184           the two audio only variant streams and they are mapped to the two
12185           video only variant streams with audio group names 'aud_low' and
12186           'aud_high'.
12187
12188           By default, a single hls variant containing all the encoded streams
12189           is created.
12190
12191                   ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k \
12192                     -map 0:a -map 0:a -map 0:v -f hls \
12193                     -var_stream_map "a:0,agroup:aud_low,default:yes a:1,agroup:aud_low v:0,agroup:aud_low" \
12194                     -master_pl_name master.m3u8 \
12195                     http://example.com/live/out_%v.m3u8
12196
12197           This example creates two audio only and one video only variant
12198           streams. In addition to the #EXT-X-STREAM-INF tag for each variant
12199           stream in the master playlist, #EXT-X-MEDIA tag is also added for
12200           the two audio only variant streams and they are mapped to the one
12201           video only variant streams with audio group name 'aud_low', and the
12202           audio group have default stat is NO or YES.
12203
12204           By default, a single hls variant containing all the encoded streams
12205           is created.
12206
12207                   ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k \
12208                     -map 0:a -map 0:a -map 0:v -f hls \
12209                     -var_stream_map "a:0,agroup:aud_low,default:yes,language:ENG a:1,agroup:aud_low,language:CHN v:0,agroup:aud_low" \
12210                     -master_pl_name master.m3u8 \
12211                     http://example.com/live/out_%v.m3u8
12212
12213           This example creates two audio only and one video only variant
12214           streams. In addition to the #EXT-X-STREAM-INF tag for each variant
12215           stream in the master playlist, #EXT-X-MEDIA tag is also added for
12216           the two audio only variant streams and they are mapped to the one
12217           video only variant streams with audio group name 'aud_low', and the
12218           audio group have default stat is NO or YES, and one audio have and
12219           language is named ENG, the other audio language is named CHN.
12220
12221           By default, a single hls variant containing all the encoded streams
12222           is created.
12223
12224                   ffmpeg -y -i input_with_subtitle.mkv \
12225                    -b:v:0 5250k -c:v h264 -pix_fmt yuv420p -profile:v main -level 4.1 \
12226                    -b:a:0 256k \
12227                    -c:s webvtt -c:a mp2 -ar 48000 -ac 2 -map 0:v -map 0:a:0 -map 0:s:0 \
12228                    -f hls -var_stream_map "v:0,a:0,s:0,sgroup:subtitle" \
12229                    -master_pl_name master.m3u8 -t 300 -hls_time 10 -hls_init_time 4 -hls_list_size \
12230                    10 -master_pl_publish_rate 10  -hls_flags \
12231                    delete_segments+discont_start+split_by_time ./tmp/video.m3u8
12232
12233           This example adds "#EXT-X-MEDIA" tag with "TYPE=SUBTITLES" in the
12234           master playlist with webvtt subtitle group name 'subtitle'. Please
12235           make sure the input file has one text subtitle stream at least.
12236
12237       cc_stream_map
12238           Map string which specifies different closed captions groups and
12239           their attributes. The closed captions stream groups are separated
12240           by space.  Expected string format is like this "ccgroup:<group
12241           name>,instreamid:<INSTREAM-ID>,language:<language code> ....".
12242           'ccgroup' and 'instreamid' are mandatory attributes. 'language' is
12243           an optional attribute.  The closed captions groups configured using
12244           this option are mapped to different variant streams by providing
12245           the same 'ccgroup' name in the "var_stream_map" string. If
12246           "var_stream_map" is not set, then the first available ccgroup in
12247           "cc_stream_map" is mapped to the output variant stream. The
12248           examples for these two use cases are given below.
12249
12250                   ffmpeg -re -i in.ts -b:v 1000k -b:a 64k -a53cc 1 -f hls \
12251                     -cc_stream_map "ccgroup:cc,instreamid:CC1,language:en" \
12252                     -master_pl_name master.m3u8 \
12253                     http://example.com/live/out.m3u8
12254
12255           This example adds "#EXT-X-MEDIA" tag with "TYPE=CLOSED-CAPTIONS" in
12256           the master playlist with group name 'cc', language 'en' (english)
12257           and INSTREAM-ID 'CC1'. Also, it adds "CLOSED-CAPTIONS" attribute
12258           with group name 'cc' for the output variant stream.
12259
12260                   ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
12261                     -a53cc:0 1 -a53cc:1 1\
12262                     -map 0:v -map 0:a -map 0:v -map 0:a -f hls \
12263                     -cc_stream_map "ccgroup:cc,instreamid:CC1,language:en ccgroup:cc,instreamid:CC2,language:sp" \
12264                     -var_stream_map "v:0,a:0,ccgroup:cc v:1,a:1,ccgroup:cc" \
12265                     -master_pl_name master.m3u8 \
12266                     http://example.com/live/out_%v.m3u8
12267
12268           This example adds two "#EXT-X-MEDIA" tags with
12269           "TYPE=CLOSED-CAPTIONS" in the master playlist for the INSTREAM-IDs
12270           'CC1' and 'CC2'. Also, it adds "CLOSED-CAPTIONS" attribute with
12271           group name 'cc' for the two output variant streams.
12272
12273       master_pl_name
12274           Create HLS master playlist with the given name.
12275
12276                   ffmpeg -re -i in.ts -f hls -master_pl_name master.m3u8 http://example.com/live/out.m3u8
12277
12278           This example creates HLS master playlist with name master.m3u8 and
12279           it is published at http://example.com/live/
12280
12281       master_pl_publish_rate
12282           Publish master play list repeatedly every after specified number of
12283           segment intervals.
12284
12285                   ffmpeg -re -i in.ts -f hls -master_pl_name master.m3u8 \
12286                   -hls_time 2 -master_pl_publish_rate 30 http://example.com/live/out.m3u8
12287
12288           This example creates HLS master playlist with name master.m3u8 and
12289           keep publishing it repeatedly every after 30 segments i.e. every
12290           after 60s.
12291
12292       http_persistent
12293           Use persistent HTTP connections. Applicable only for HTTP output.
12294
12295       timeout
12296           Set timeout for socket I/O operations. Applicable only for HTTP
12297           output.
12298
12299       -ignore_io_errors
12300           Ignore IO errors during open, write and delete. Useful for long-
12301           duration runs with network output.
12302
12303       headers
12304           Set custom HTTP headers, can override built in default headers.
12305           Applicable only for HTTP output.
12306
12307   ico
12308       ICO file muxer.
12309
12310       Microsoft's icon file format (ICO) has some strict limitations that
12311       should be noted:
12312
12313       •   Size cannot exceed 256 pixels in any dimension
12314
12315       •   Only BMP and PNG images can be stored
12316
12317       •   If a BMP image is used, it must be one of the following pixel
12318           formats:
12319
12320                   BMP Bit Depth      FFmpeg Pixel Format
12321                   1bit               pal8
12322                   4bit               pal8
12323                   8bit               pal8
12324                   16bit              rgb555le
12325                   24bit              bgr24
12326                   32bit              bgra
12327
12328       •   If a BMP image is used, it must use the BITMAPINFOHEADER DIB header
12329
12330       •   If a PNG image is used, it must use the rgba pixel format
12331
12332   image2
12333       Image file muxer.
12334
12335       The image file muxer writes video frames to image files.
12336
12337       The output filenames are specified by a pattern, which can be used to
12338       produce sequentially numbered series of files.  The pattern may contain
12339       the string "%d" or "%0Nd", this string specifies the position of the
12340       characters representing a numbering in the filenames. If the form
12341       "%0Nd" is used, the string representing the number in each filename is
12342       0-padded to N digits. The literal character '%' can be specified in the
12343       pattern with the string "%%".
12344
12345       If the pattern contains "%d" or "%0Nd", the first filename of the file
12346       list specified will contain the number 1, all the following numbers
12347       will be sequential.
12348
12349       The pattern may contain a suffix which is used to automatically
12350       determine the format of the image files to write.
12351
12352       For example the pattern "img-%03d.bmp" will specify a sequence of
12353       filenames of the form img-001.bmp, img-002.bmp, ..., img-010.bmp, etc.
12354       The pattern "img%%-%d.jpg" will specify a sequence of filenames of the
12355       form img%-1.jpg, img%-2.jpg, ..., img%-10.jpg, etc.
12356
12357       The image muxer supports the .Y.U.V image file format. This format is
12358       special in that that each image frame consists of three files, for each
12359       of the YUV420P components. To read or write this image file format,
12360       specify the name of the '.Y' file. The muxer will automatically open
12361       the '.U' and '.V' files as required.
12362
12363       Options
12364
12365       frame_pts
12366           If set to 1, expand the filename with pts from pkt->pts.  Default
12367           value is 0.
12368
12369       start_number
12370           Start the sequence from the specified number. Default value is 1.
12371
12372       update
12373           If set to 1, the filename will always be interpreted as just a
12374           filename, not a pattern, and the corresponding file will be
12375           continuously overwritten with new images. Default value is 0.
12376
12377       strftime
12378           If set to 1, expand the filename with date and time information
12379           from "strftime()". Default value is 0.
12380
12381       atomic_writing
12382           Write output to a temporary file, which is renamed to target
12383           filename once writing is completed. Default is disabled.
12384
12385       protocol_opts options_list
12386           Set protocol options as a :-separated list of key=value parameters.
12387           Values containing the ":" special character must be escaped.
12388
12389       Examples
12390
12391       The following example shows how to use ffmpeg for creating a sequence
12392       of files img-001.jpeg, img-002.jpeg, ..., taking one image every second
12393       from the input video:
12394
12395               ffmpeg -i in.avi -vsync cfr -r 1 -f image2 'img-%03d.jpeg'
12396
12397       Note that with ffmpeg, if the format is not specified with the "-f"
12398       option and the output filename specifies an image file format, the
12399       image2 muxer is automatically selected, so the previous command can be
12400       written as:
12401
12402               ffmpeg -i in.avi -vsync cfr -r 1 'img-%03d.jpeg'
12403
12404       Note also that the pattern must not necessarily contain "%d" or "%0Nd",
12405       for example to create a single image file img.jpeg from the start of
12406       the input video you can employ the command:
12407
12408               ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg
12409
12410       The strftime option allows you to expand the filename with date and
12411       time information. Check the documentation of the "strftime()" function
12412       for the syntax.
12413
12414       For example to generate image files from the "strftime()"
12415       "%Y-%m-%d_%H-%M-%S" pattern, the following ffmpeg command can be used:
12416
12417               ffmpeg -f v4l2 -r 1 -i /dev/video0 -f image2 -strftime 1 "%Y-%m-%d_%H-%M-%S.jpg"
12418
12419       You can set the file name with current frame's PTS:
12420
12421               ffmpeg -f v4l2 -r 1 -i /dev/video0 -copyts -f image2 -frame_pts true %d.jpg"
12422
12423       A more complex example is to publish contents of your desktop directly
12424       to a WebDAV server every second:
12425
12426               ffmpeg -f x11grab -framerate 1 -i :0.0 -q:v 6 -update 1 -protocol_opts method=PUT http://example.com/desktop.jpg
12427
12428   matroska
12429       Matroska container muxer.
12430
12431       This muxer implements the matroska and webm container specs.
12432
12433       Metadata
12434
12435       The recognized metadata settings in this muxer are:
12436
12437       title
12438           Set title name provided to a single track. This gets mapped to the
12439           FileDescription element for a stream written as attachment.
12440
12441       language
12442           Specify the language of the track in the Matroska languages form.
12443
12444           The language can be either the 3 letters bibliographic ISO-639-2
12445           (ISO 639-2/B) form (like "fre" for French), or a language code
12446           mixed with a country code for specialities in languages (like "fre-
12447           ca" for Canadian French).
12448
12449       stereo_mode
12450           Set stereo 3D video layout of two views in a single video track.
12451
12452           The following values are recognized:
12453
12454           mono
12455               video is not stereo
12456
12457           left_right
12458               Both views are arranged side by side, Left-eye view is on the
12459               left
12460
12461           bottom_top
12462               Both views are arranged in top-bottom orientation, Left-eye
12463               view is at bottom
12464
12465           top_bottom
12466               Both views are arranged in top-bottom orientation, Left-eye
12467               view is on top
12468
12469           checkerboard_rl
12470               Each view is arranged in a checkerboard interleaved pattern,
12471               Left-eye view being first
12472
12473           checkerboard_lr
12474               Each view is arranged in a checkerboard interleaved pattern,
12475               Right-eye view being first
12476
12477           row_interleaved_rl
12478               Each view is constituted by a row based interleaving, Right-eye
12479               view is first row
12480
12481           row_interleaved_lr
12482               Each view is constituted by a row based interleaving, Left-eye
12483               view is first row
12484
12485           col_interleaved_rl
12486               Both views are arranged in a column based interleaving manner,
12487               Right-eye view is first column
12488
12489           col_interleaved_lr
12490               Both views are arranged in a column based interleaving manner,
12491               Left-eye view is first column
12492
12493           anaglyph_cyan_red
12494               All frames are in anaglyph format viewable through red-cyan
12495               filters
12496
12497           right_left
12498               Both views are arranged side by side, Right-eye view is on the
12499               left
12500
12501           anaglyph_green_magenta
12502               All frames are in anaglyph format viewable through green-
12503               magenta filters
12504
12505           block_lr
12506               Both eyes laced in one Block, Left-eye view is first
12507
12508           block_rl
12509               Both eyes laced in one Block, Right-eye view is first
12510
12511       For example a 3D WebM clip can be created using the following command
12512       line:
12513
12514               ffmpeg -i sample_left_right_clip.mpg -an -c:v libvpx -metadata stereo_mode=left_right -y stereo_clip.webm
12515
12516       Options
12517
12518       This muxer supports the following options:
12519
12520       reserve_index_space
12521           By default, this muxer writes the index for seeking (called cues in
12522           Matroska terms) at the end of the file, because it cannot know in
12523           advance how much space to leave for the index at the beginning of
12524           the file. However for some use cases -- e.g.  streaming where
12525           seeking is possible but slow -- it is useful to put the index at
12526           the beginning of the file.
12527
12528           If this option is set to a non-zero value, the muxer will reserve a
12529           given amount of space in the file header and then try to write the
12530           cues there when the muxing finishes. If the reserved space does not
12531           suffice, no Cues will be written, the file will be finalized and
12532           writing the trailer will return an error.  A safe size for most use
12533           cases should be about 50kB per hour of video.
12534
12535           Note that cues are only written if the output is seekable and this
12536           option will have no effect if it is not.
12537
12538       cues_to_front
12539           If set, the muxer will write the index at the beginning of the file
12540           by shifting the main data if necessary. This can be combined with
12541           reserve_index_space in which case the data is only shifted if the
12542           initially reserved space turns out to be insufficient.
12543
12544           This option is ignored if the output is unseekable.
12545
12546       default_mode
12547           This option controls how the FlagDefault of the output tracks will
12548           be set.  It influences which tracks players should play by default.
12549           The default mode is passthrough.
12550
12551           infer
12552               Every track with disposition default will have the FlagDefault
12553               set.  Additionally, for each type of track (audio, video or
12554               subtitle), if no track with disposition default of this type
12555               exists, then the first track of this type will be marked as
12556               default (if existing). This ensures that the default flag is
12557               set in a sensible way even if the input originated from
12558               containers that lack the concept of default tracks.
12559
12560           infer_no_subs
12561               This mode is the same as infer except that if no subtitle track
12562               with disposition default exists, no subtitle track will be
12563               marked as default.
12564
12565           passthrough
12566               In this mode the FlagDefault is set if and only if the
12567               AV_DISPOSITION_DEFAULT flag is set in the disposition of the
12568               corresponding stream.
12569
12570       flipped_raw_rgb
12571           If set to true, store positive height for raw RGB bitmaps, which
12572           indicates bitmap is stored bottom-up. Note that this option does
12573           not flip the bitmap which has to be done manually beforehand, e.g.
12574           by using the vflip filter.  Default is false and indicates bitmap
12575           is stored top down.
12576
12577   md5
12578       MD5 testing format.
12579
12580       This is a variant of the hash muxer. Unlike that muxer, it defaults to
12581       using the MD5 hash function.
12582
12583       Examples
12584
12585       To compute the MD5 hash of the input converted to raw audio and video,
12586       and store it in the file out.md5:
12587
12588               ffmpeg -i INPUT -f md5 out.md5
12589
12590       You can print the MD5 to stdout with the command:
12591
12592               ffmpeg -i INPUT -f md5 -
12593
12594       See also the hash and framemd5 muxers.
12595
12596   mov, mp4, ismv
12597       MOV/MP4/ISMV (Smooth Streaming) muxer.
12598
12599       The mov/mp4/ismv muxer supports fragmentation. Normally, a MOV/MP4 file
12600       has all the metadata about all packets stored in one location (written
12601       at the end of the file, it can be moved to the start for better
12602       playback by adding faststart to the movflags, or using the qt-faststart
12603       tool). A fragmented file consists of a number of fragments, where
12604       packets and metadata about these packets are stored together. Writing a
12605       fragmented file has the advantage that the file is decodable even if
12606       the writing is interrupted (while a normal MOV/MP4 is undecodable if it
12607       is not properly finished), and it requires less memory when writing
12608       very long files (since writing normal MOV/MP4 files stores info about
12609       every single packet in memory until the file is closed). The downside
12610       is that it is less compatible with other applications.
12611
12612       Options
12613
12614       Fragmentation is enabled by setting one of the AVOptions that define
12615       how to cut the file into fragments:
12616
12617       -moov_size bytes
12618           Reserves space for the moov atom at the beginning of the file
12619           instead of placing the moov atom at the end. If the space reserved
12620           is insufficient, muxing will fail.
12621
12622       -movflags frag_keyframe
12623           Start a new fragment at each video keyframe.
12624
12625       -frag_duration duration
12626           Create fragments that are duration microseconds long.
12627
12628       -frag_size size
12629           Create fragments that contain up to size bytes of payload data.
12630
12631       -movflags frag_custom
12632           Allow the caller to manually choose when to cut fragments, by
12633           calling "av_write_frame(ctx, NULL)" to write a fragment with the
12634           packets written so far. (This is only useful with other
12635           applications integrating libavformat, not from ffmpeg.)
12636
12637       -min_frag_duration duration
12638           Don't create fragments that are shorter than duration microseconds
12639           long.
12640
12641       If more than one condition is specified, fragments are cut when one of
12642       the specified conditions is fulfilled. The exception to this is
12643       "-min_frag_duration", which has to be fulfilled for any of the other
12644       conditions to apply.
12645
12646       Additionally, the way the output file is written can be adjusted
12647       through a few other options:
12648
12649       -movflags empty_moov
12650           Write an initial moov atom directly at the start of the file,
12651           without describing any samples in it. Generally, an mdat/moov pair
12652           is written at the start of the file, as a normal MOV/MP4 file,
12653           containing only a short portion of the file. With this option set,
12654           there is no initial mdat atom, and the moov atom only describes the
12655           tracks but has a zero duration.
12656
12657           This option is implicitly set when writing ismv (Smooth Streaming)
12658           files.
12659
12660       -movflags separate_moof
12661           Write a separate moof (movie fragment) atom for each track.
12662           Normally, packets for all tracks are written in a moof atom (which
12663           is slightly more efficient), but with this option set, the muxer
12664           writes one moof/mdat pair for each track, making it easier to
12665           separate tracks.
12666
12667           This option is implicitly set when writing ismv (Smooth Streaming)
12668           files.
12669
12670       -movflags skip_sidx
12671           Skip writing of sidx atom. When bitrate overhead due to sidx atom
12672           is high, this option could be used for cases where sidx atom is not
12673           mandatory.  When global_sidx flag is enabled, this option will be
12674           ignored.
12675
12676       -movflags faststart
12677           Run a second pass moving the index (moov atom) to the beginning of
12678           the file.  This operation can take a while, and will not work in
12679           various situations such as fragmented output, thus it is not
12680           enabled by default.
12681
12682       -movflags rtphint
12683           Add RTP hinting tracks to the output file.
12684
12685       -movflags disable_chpl
12686           Disable Nero chapter markers (chpl atom).  Normally, both Nero
12687           chapters and a QuickTime chapter track are written to the file.
12688           With this option set, only the QuickTime chapter track will be
12689           written. Nero chapters can cause failures when the file is
12690           reprocessed with certain tagging programs, like mp3Tag 2.61a and
12691           iTunes 11.3, most likely other versions are affected as well.
12692
12693       -movflags omit_tfhd_offset
12694           Do not write any absolute base_data_offset in tfhd atoms. This
12695           avoids tying fragments to absolute byte positions in the
12696           file/streams.
12697
12698       -movflags default_base_moof
12699           Similarly to the omit_tfhd_offset, this flag avoids writing the
12700           absolute base_data_offset field in tfhd atoms, but does so by using
12701           the new default-base-is-moof flag instead. This flag is new from
12702           14496-12:2012. This may make the fragments easier to parse in
12703           certain circumstances (avoiding basing track fragment location
12704           calculations on the implicit end of the previous track fragment).
12705
12706       -write_tmcd
12707           Specify "on" to force writing a timecode track, "off" to disable it
12708           and "auto" to write a timecode track only for mov and mp4 output
12709           (default).
12710
12711       -movflags negative_cts_offsets
12712           Enables utilization of version 1 of the CTTS box, in which the CTS
12713           offsets can be negative. This enables the initial sample to have
12714           DTS/CTS of zero, and reduces the need for edit lists for some cases
12715           such as video tracks with B-frames. Additionally, eases conformance
12716           with the DASH-IF interoperability guidelines.
12717
12718           This option is implicitly set when writing ismv (Smooth Streaming)
12719           files.
12720
12721       -write_btrt bool
12722           Force or disable writing bitrate box inside stsd box of a track.
12723           The box contains decoding buffer size (in bytes), maximum bitrate
12724           and average bitrate for the track. The box will be skipped if none
12725           of these values can be computed.  Default is "-1" or "auto", which
12726           will write the box only in MP4 mode.
12727
12728       -write_prft
12729           Write producer time reference box (PRFT) with a specified time
12730           source for the NTP field in the PRFT box. Set value as wallclock to
12731           specify timesource as wallclock time and pts to specify timesource
12732           as input packets' PTS values.
12733
12734           Setting value to pts is applicable only for a live encoding use
12735           case, where PTS values are set as as wallclock time at the source.
12736           For example, an encoding use case with decklink capture source
12737           where video_pts and audio_pts are set to abs_wallclock.
12738
12739       -empty_hdlr_name bool
12740           Enable to skip writing the name inside a "hdlr" box.  Default is
12741           "false".
12742
12743       -movie_timescale scale
12744           Set the timescale written in the movie header box ("mvhd").  Range
12745           is 1 to INT_MAX. Default is 1000.
12746
12747       -video_track_timescale scale
12748           Set the timescale used for video tracks. Range is 0 to INT_MAX.  If
12749           set to 0, the timescale is automatically set based on the native
12750           stream time base. Default is 0.
12751
12752       Example
12753
12754       Smooth Streaming content can be pushed in real time to a publishing
12755       point on IIS with this muxer. Example:
12756
12757               ffmpeg -re <<normal input/transcoding options>> -movflags isml+frag_keyframe -f ismv http://server/publishingpoint.isml/Streams(Encoder1)
12758
12759   mp3
12760       The MP3 muxer writes a raw MP3 stream with the following optional
12761       features:
12762
12763       •   An ID3v2 metadata header at the beginning (enabled by default).
12764           Versions 2.3 and 2.4 are supported, the "id3v2_version" private
12765           option controls which one is used (3 or 4). Setting "id3v2_version"
12766           to 0 disables the ID3v2 header completely.
12767
12768           The muxer supports writing attached pictures (APIC frames) to the
12769           ID3v2 header.  The pictures are supplied to the muxer in form of a
12770           video stream with a single packet. There can be any number of those
12771           streams, each will correspond to a single APIC frame.  The stream
12772           metadata tags title and comment map to APIC description and picture
12773           type respectively. See <http://id3.org/id3v2.4.0-frames> for
12774           allowed picture types.
12775
12776           Note that the APIC frames must be written at the beginning, so the
12777           muxer will buffer the audio frames until it gets all the pictures.
12778           It is therefore advised to provide the pictures as soon as possible
12779           to avoid excessive buffering.
12780
12781       •   A Xing/LAME frame right after the ID3v2 header (if present). It is
12782           enabled by default, but will be written only if the output is
12783           seekable. The "write_xing" private option can be used to disable
12784           it.  The frame contains various information that may be useful to
12785           the decoder, like the audio duration or encoder delay.
12786
12787       •   A legacy ID3v1 tag at the end of the file (disabled by default). It
12788           may be enabled with the "write_id3v1" private option, but as its
12789           capabilities are very limited, its usage is not recommended.
12790
12791       Examples:
12792
12793       Write an mp3 with an ID3v2.3 header and an ID3v1 footer:
12794
12795               ffmpeg -i INPUT -id3v2_version 3 -write_id3v1 1 out.mp3
12796
12797       To attach a picture to an mp3 file select both the audio and the
12798       picture stream with "map":
12799
12800               ffmpeg -i input.mp3 -i cover.png -c copy -map 0 -map 1
12801               -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" out.mp3
12802
12803       Write a "clean" MP3 without any extra features:
12804
12805               ffmpeg -i input.wav -write_xing 0 -id3v2_version 0 out.mp3
12806
12807   mpegts
12808       MPEG transport stream muxer.
12809
12810       This muxer implements ISO 13818-1 and part of ETSI EN 300 468.
12811
12812       The recognized metadata settings in mpegts muxer are "service_provider"
12813       and "service_name". If they are not set the default for
12814       "service_provider" is FFmpeg and the default for "service_name" is
12815       Service01.
12816
12817       Options
12818
12819       The muxer options are:
12820
12821       mpegts_transport_stream_id integer
12822           Set the transport_stream_id. This identifies a transponder in DVB.
12823           Default is 0x0001.
12824
12825       mpegts_original_network_id integer
12826           Set the original_network_id. This is unique identifier of a network
12827           in DVB. Its main use is in the unique identification of a service
12828           through the path Original_Network_ID, Transport_Stream_ID. Default
12829           is 0x0001.
12830
12831       mpegts_service_id integer
12832           Set the service_id, also known as program in DVB. Default is
12833           0x0001.
12834
12835       mpegts_service_type integer
12836           Set the program service_type. Default is "digital_tv".  Accepts the
12837           following options:
12838
12839           hex_value
12840               Any hexadecimal value between 0x01 and 0xff as defined in ETSI
12841               300 468.
12842
12843           digital_tv
12844               Digital TV service.
12845
12846           digital_radio
12847               Digital Radio service.
12848
12849           teletext
12850               Teletext service.
12851
12852           advanced_codec_digital_radio
12853               Advanced Codec Digital Radio service.
12854
12855           mpeg2_digital_hdtv
12856               MPEG2 Digital HDTV service.
12857
12858           advanced_codec_digital_sdtv
12859               Advanced Codec Digital SDTV service.
12860
12861           advanced_codec_digital_hdtv
12862               Advanced Codec Digital HDTV service.
12863
12864       mpegts_pmt_start_pid integer
12865           Set the first PID for PMTs. Default is 0x1000, minimum is 0x0020,
12866           maximum is 0x1ffa. This option has no effect in m2ts mode where the
12867           PMT PID is fixed 0x0100.
12868
12869       mpegts_start_pid integer
12870           Set the first PID for elementary streams. Default is 0x0100,
12871           minimum is 0x0020, maximum is 0x1ffa. This option has no effect in
12872           m2ts mode where the elementary stream PIDs are fixed.
12873
12874       mpegts_m2ts_mode boolean
12875           Enable m2ts mode if set to 1. Default value is "-1" which disables
12876           m2ts mode.
12877
12878       muxrate integer
12879           Set a constant muxrate. Default is VBR.
12880
12881       pes_payload_size integer
12882           Set minimum PES packet payload in bytes. Default is 2930.
12883
12884       mpegts_flags flags
12885           Set mpegts flags. Accepts the following options:
12886
12887           resend_headers
12888               Reemit PAT/PMT before writing the next packet.
12889
12890           latm
12891               Use LATM packetization for AAC.
12892
12893           pat_pmt_at_frames
12894               Reemit PAT and PMT at each video frame.
12895
12896           system_b
12897               Conform to System B (DVB) instead of System A (ATSC).
12898
12899           initial_discontinuity
12900               Mark the initial packet of each stream as discontinuity.
12901
12902           nit Emit NIT table.
12903
12904       mpegts_copyts boolean
12905           Preserve original timestamps, if value is set to 1. Default value
12906           is "-1", which results in shifting timestamps so that they start
12907           from 0.
12908
12909       omit_video_pes_length boolean
12910           Omit the PES packet length for video packets. Default is 1 (true).
12911
12912       pcr_period integer
12913           Override the default PCR retransmission time in milliseconds.
12914           Default is "-1" which means that the PCR interval will be
12915           determined automatically: 20 ms is used for CBR streams, the
12916           highest multiple of the frame duration which is less than 100 ms is
12917           used for VBR streams.
12918
12919       pat_period duration
12920           Maximum time in seconds between PAT/PMT tables. Default is 0.1.
12921
12922       sdt_period duration
12923           Maximum time in seconds between SDT tables. Default is 0.5.
12924
12925       nit_period duration
12926           Maximum time in seconds between NIT tables. Default is 0.5.
12927
12928       tables_version integer
12929           Set PAT, PMT, SDT and NIT version (default 0, valid values are from
12930           0 to 31, inclusively).  This option allows updating stream
12931           structure so that standard consumer may detect the change. To do
12932           so, reopen output "AVFormatContext" (in case of API usage) or
12933           restart ffmpeg instance, cyclically changing tables_version value:
12934
12935                   ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
12936                   ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
12937                   ...
12938                   ffmpeg -i source3.ts -codec copy -f mpegts -tables_version 31 udp://1.1.1.1:1111
12939                   ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
12940                   ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
12941                   ...
12942
12943       Example
12944
12945               ffmpeg -i file.mpg -c copy \
12946                    -mpegts_original_network_id 0x1122 \
12947                    -mpegts_transport_stream_id 0x3344 \
12948                    -mpegts_service_id 0x5566 \
12949                    -mpegts_pmt_start_pid 0x1500 \
12950                    -mpegts_start_pid 0x150 \
12951                    -metadata service_provider="Some provider" \
12952                    -metadata service_name="Some Channel" \
12953                    out.ts
12954
12955   mxf, mxf_d10, mxf_opatom
12956       MXF muxer.
12957
12958       Options
12959
12960       The muxer options are:
12961
12962       store_user_comments bool
12963           Set if user comments should be stored if available or never.  IRT
12964           D-10 does not allow user comments. The default is thus to write
12965           them for mxf and mxf_opatom but not for mxf_d10
12966
12967   null
12968       Null muxer.
12969
12970       This muxer does not generate any output file, it is mainly useful for
12971       testing or benchmarking purposes.
12972
12973       For example to benchmark decoding with ffmpeg you can use the command:
12974
12975               ffmpeg -benchmark -i INPUT -f null out.null
12976
12977       Note that the above command does not read or write the out.null file,
12978       but specifying the output file is required by the ffmpeg syntax.
12979
12980       Alternatively you can write the command as:
12981
12982               ffmpeg -benchmark -i INPUT -f null -
12983
12984   nut
12985       -syncpoints flags
12986           Change the syncpoint usage in nut:
12987
12988           default use the normal low-overhead seeking aids.
12989           none do not use the syncpoints at all, reducing the overhead but
12990           making the stream non-seekable;
12991                   Use of this option is not recommended, as the resulting files are very damage
12992                   sensitive and seeking is not possible. Also in general the overhead from
12993                   syncpoints is negligible. Note, -C<write_index> 0 can be used to disable
12994                   all growing data tables, allowing to mux endless streams with limited memory
12995                   and without these disadvantages.
12996
12997           timestamped extend the syncpoint with a wallclock field.
12998
12999           The none and timestamped flags are experimental.
13000
13001       -write_index bool
13002           Write index at the end, the default is to write an index.
13003
13004               ffmpeg -i INPUT -f_strict experimental -syncpoints none - | processor
13005
13006   ogg
13007       Ogg container muxer.
13008
13009       -page_duration duration
13010           Preferred page duration, in microseconds. The muxer will attempt to
13011           create pages that are approximately duration microseconds long.
13012           This allows the user to compromise between seek granularity and
13013           container overhead. The default is 1 second. A value of 0 will fill
13014           all segments, making pages as large as possible. A value of 1 will
13015           effectively use 1 packet-per-page in most situations, giving a
13016           small seek granularity at the cost of additional container
13017           overhead.
13018
13019       -serial_offset value
13020           Serial value from which to set the streams serial number.  Setting
13021           it to different and sufficiently large values ensures that the
13022           produced ogg files can be safely chained.
13023
13024   raw muxers
13025       Raw muxers accept a single stream matching the designated codec. They
13026       do not store timestamps or metadata.  The recognized extension is the
13027       same as the muxer name unless indicated otherwise.
13028
13029       ac3
13030
13031       Dolby Digital, also known as AC-3, audio.
13032
13033       adx
13034
13035       CRI Middleware ADX audio.
13036
13037       This muxer will write out the total sample count near the start of the
13038       first packet when the output is seekable and the count can be stored in
13039       32 bits.
13040
13041       aptx
13042
13043       aptX (Audio Processing Technology for Bluetooth) audio.
13044
13045       aptx_hd
13046
13047       aptX HD (Audio Processing Technology for Bluetooth) audio.
13048
13049       Extensions: aptxhd
13050
13051       avs2
13052
13053       AVS2-P2/IEEE1857.4 video.
13054
13055       Extensions: avs, avs2
13056
13057       cavsvideo
13058
13059       Chinese AVS (Audio Video Standard) video.
13060
13061       Extensions: cavs
13062
13063       codec2raw
13064
13065       Codec 2 audio.
13066
13067       No extension is registered so format name has to be supplied e.g. with
13068       the ffmpeg CLI tool "-f codec2raw".
13069
13070       data
13071
13072       Data muxer accepts a single stream with any codec of any type.  The
13073       input stream has to be selected using the "-map" option with the ffmpeg
13074       CLI tool.
13075
13076       No extension is registered so format name has to be supplied e.g. with
13077       the ffmpeg CLI tool "-f data".
13078
13079       dirac
13080
13081       BBC Dirac video. The Dirac Pro codec is a subset and is standardized as
13082       SMPTE VC-2.
13083
13084       Extensions: drc, vc2
13085
13086       dnxhd
13087
13088       Avid DNxHD video. It is standardized as SMPTE VC-3. Accepts DNxHR
13089       streams.
13090
13091       Extensions: dnxhd, dnxhr
13092
13093       dts
13094
13095       DTS Coherent Acoustics (DCA) audio.
13096
13097       eac3
13098
13099       Dolby Digital Plus, also known as Enhanced AC-3, audio.
13100
13101       g722
13102
13103       ITU-T G.722 audio.
13104
13105       g723_1
13106
13107       ITU-T G.723.1 audio.
13108
13109       Extensions: tco, rco
13110
13111       g726
13112
13113       ITU-T G.726 big-endian ("left-justified") audio.
13114
13115       No extension is registered so format name has to be supplied e.g. with
13116       the ffmpeg CLI tool "-f g726".
13117
13118       g726le
13119
13120       ITU-T G.726 little-endian ("right-justified") audio.
13121
13122       No extension is registered so format name has to be supplied e.g. with
13123       the ffmpeg CLI tool "-f g726le".
13124
13125       gsm
13126
13127       Global System for Mobile Communications audio.
13128
13129       h261
13130
13131       ITU-T H.261 video.
13132
13133       h263
13134
13135       ITU-T H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2 video.
13136
13137       h264
13138
13139       ITU-T H.264 / MPEG-4 Part 10 AVC video. Bitstream shall be converted to
13140       Annex B syntax if it's in length-prefixed mode.
13141
13142       Extensions: h264, 264
13143
13144       hevc
13145
13146       ITU-T H.265 / MPEG-H Part 2 HEVC video. Bitstream shall be converted to
13147       Annex B syntax if it's in length-prefixed mode.
13148
13149       Extensions: hevc, h265, 265
13150
13151       m4v
13152
13153       MPEG-4 Part 2 video.
13154
13155       mjpeg
13156
13157       Motion JPEG video.
13158
13159       Extensions: mjpg, mjpeg
13160
13161       mlp
13162
13163       Meridian Lossless Packing, also known as Packed PCM, audio.
13164
13165       mp2
13166
13167       MPEG-1 Audio Layer II audio.
13168
13169       Extensions: mp2, m2a, mpa
13170
13171       mpeg1video
13172
13173       MPEG-1 Part 2 video.
13174
13175       Extensions: mpg, mpeg, m1v
13176
13177       mpeg2video
13178
13179       ITU-T H.262 / MPEG-2 Part 2 video.
13180
13181       Extensions: m2v
13182
13183       obu
13184
13185       AV1 low overhead Open Bitstream Units muxer. Temporal delimiter OBUs
13186       will be inserted in all temporal units of the stream.
13187
13188       rawvideo
13189
13190       Raw uncompressed video.
13191
13192       Extensions: yuv, rgb
13193
13194       sbc
13195
13196       Bluetooth SIG low-complexity subband codec audio.
13197
13198       Extensions: sbc, msbc
13199
13200       truehd
13201
13202       Dolby TrueHD audio.
13203
13204       Extensions: thd
13205
13206       vc1
13207
13208       SMPTE 421M / VC-1 video.
13209
13210   segment, stream_segment, ssegment
13211       Basic stream segmenter.
13212
13213       This muxer outputs streams to a number of separate files of nearly
13214       fixed duration. Output filename pattern can be set in a fashion similar
13215       to image2, or by using a "strftime" template if the strftime option is
13216       enabled.
13217
13218       "stream_segment" is a variant of the muxer used to write to streaming
13219       output formats, i.e. which do not require global headers, and is
13220       recommended for outputting e.g. to MPEG transport stream segments.
13221       "ssegment" is a shorter alias for "stream_segment".
13222
13223       Every segment starts with a keyframe of the selected reference stream,
13224       which is set through the reference_stream option.
13225
13226       Note that if you want accurate splitting for a video file, you need to
13227       make the input key frames correspond to the exact splitting times
13228       expected by the segmenter, or the segment muxer will start the new
13229       segment with the key frame found next after the specified start time.
13230
13231       The segment muxer works best with a single constant frame rate video.
13232
13233       Optionally it can generate a list of the created segments, by setting
13234       the option segment_list. The list type is specified by the
13235       segment_list_type option. The entry filenames in the segment list are
13236       set by default to the basename of the corresponding segment files.
13237
13238       See also the hls muxer, which provides a more specific implementation
13239       for HLS segmentation.
13240
13241       Options
13242
13243       The segment muxer supports the following options:
13244
13245       increment_tc 1|0
13246           if set to 1, increment timecode between each segment If this is
13247           selected, the input need to have a timecode in the first video
13248           stream. Default value is 0.
13249
13250       reference_stream specifier
13251           Set the reference stream, as specified by the string specifier.  If
13252           specifier is set to "auto", the reference is chosen automatically.
13253           Otherwise it must be a stream specifier (see the ``Stream
13254           specifiers'' chapter in the ffmpeg manual) which specifies the
13255           reference stream. The default value is "auto".
13256
13257       segment_format format
13258           Override the inner container format, by default it is guessed by
13259           the filename extension.
13260
13261       segment_format_options options_list
13262           Set output format options using a :-separated list of key=value
13263           parameters. Values containing the ":" special character must be
13264           escaped.
13265
13266       segment_list name
13267           Generate also a listfile named name. If not specified no listfile
13268           is generated.
13269
13270       segment_list_flags flags
13271           Set flags affecting the segment list generation.
13272
13273           It currently supports the following flags:
13274
13275           cache
13276               Allow caching (only affects M3U8 list files).
13277
13278           live
13279               Allow live-friendly file generation.
13280
13281       segment_list_size size
13282           Update the list file so that it contains at most size segments. If
13283           0 the list file will contain all the segments. Default value is 0.
13284
13285       segment_list_entry_prefix prefix
13286           Prepend prefix to each entry. Useful to generate absolute paths.
13287           By default no prefix is applied.
13288
13289       segment_list_type type
13290           Select the listing format.
13291
13292           The following values are recognized:
13293
13294           flat
13295               Generate a flat list for the created segments, one segment per
13296               line.
13297
13298           csv, ext
13299               Generate a list for the created segments, one segment per line,
13300               each line matching the format (comma-separated values):
13301
13302                       <segment_filename>,<segment_start_time>,<segment_end_time>
13303
13304               segment_filename is the name of the output file generated by
13305               the muxer according to the provided pattern. CSV escaping
13306               (according to RFC4180) is applied if required.
13307
13308               segment_start_time and segment_end_time specify the segment
13309               start and end time expressed in seconds.
13310
13311               A list file with the suffix ".csv" or ".ext" will auto-select
13312               this format.
13313
13314               ext is deprecated in favor or csv.
13315
13316           ffconcat
13317               Generate an ffconcat file for the created segments. The
13318               resulting file can be read using the FFmpeg concat demuxer.
13319
13320               A list file with the suffix ".ffcat" or ".ffconcat" will auto-
13321               select this format.
13322
13323           m3u8
13324               Generate an extended M3U8 file, version 3, compliant with
13325               <http://tools.ietf.org/id/draft-pantos-http-live-streaming>.
13326
13327               A list file with the suffix ".m3u8" will auto-select this
13328               format.
13329
13330           If not specified the type is guessed from the list file name
13331           suffix.
13332
13333       segment_time time
13334           Set segment duration to time, the value must be a duration
13335           specification. Default value is "2". See also the segment_times
13336           option.
13337
13338           Note that splitting may not be accurate, unless you force the
13339           reference stream key-frames at the given time. See the introductory
13340           notice and the examples below.
13341
13342       segment_atclocktime 1|0
13343           If set to "1" split at regular clock time intervals starting from
13344           00:00 o'clock. The time value specified in segment_time is used for
13345           setting the length of the splitting interval.
13346
13347           For example with segment_time set to "900" this makes it possible
13348           to create files at 12:00 o'clock, 12:15, 12:30, etc.
13349
13350           Default value is "0".
13351
13352       segment_clocktime_offset duration
13353           Delay the segment splitting times with the specified duration when
13354           using segment_atclocktime.
13355
13356           For example with segment_time set to "900" and
13357           segment_clocktime_offset set to "300" this makes it possible to
13358           create files at 12:05, 12:20, 12:35, etc.
13359
13360           Default value is "0".
13361
13362       segment_clocktime_wrap_duration duration
13363           Force the segmenter to only start a new segment if a packet reaches
13364           the muxer within the specified duration after the segmenting clock
13365           time. This way you can make the segmenter more resilient to
13366           backward local time jumps, such as leap seconds or transition to
13367           standard time from daylight savings time.
13368
13369           Default is the maximum possible duration which means starting a new
13370           segment regardless of the elapsed time since the last clock time.
13371
13372       segment_time_delta delta
13373           Specify the accuracy time when selecting the start time for a
13374           segment, expressed as a duration specification. Default value is
13375           "0".
13376
13377           When delta is specified a key-frame will start a new segment if its
13378           PTS satisfies the relation:
13379
13380                   PTS >= start_time - time_delta
13381
13382           This option is useful when splitting video content, which is always
13383           split at GOP boundaries, in case a key frame is found just before
13384           the specified split time.
13385
13386           In particular may be used in combination with the ffmpeg option
13387           force_key_frames. The key frame times specified by force_key_frames
13388           may not be set accurately because of rounding issues, with the
13389           consequence that a key frame time may result set just before the
13390           specified time. For constant frame rate videos a value of
13391           1/(2*frame_rate) should address the worst case mismatch between the
13392           specified time and the time set by force_key_frames.
13393
13394       segment_times times
13395           Specify a list of split points. times contains a list of comma
13396           separated duration specifications, in increasing order. See also
13397           the segment_time option.
13398
13399       segment_frames frames
13400           Specify a list of split video frame numbers. frames contains a list
13401           of comma separated integer numbers, in increasing order.
13402
13403           This option specifies to start a new segment whenever a reference
13404           stream key frame is found and the sequential number (starting from
13405           0) of the frame is greater or equal to the next value in the list.
13406
13407       segment_wrap limit
13408           Wrap around segment index once it reaches limit.
13409
13410       segment_start_number number
13411           Set the sequence number of the first segment. Defaults to 0.
13412
13413       strftime 1|0
13414           Use the "strftime" function to define the name of the new segments
13415           to write. If this is selected, the output segment name must contain
13416           a "strftime" function template. Default value is 0.
13417
13418       break_non_keyframes 1|0
13419           If enabled, allow segments to start on frames other than keyframes.
13420           This improves behavior on some players when the time between
13421           keyframes is inconsistent, but may make things worse on others, and
13422           can cause some oddities during seeking. Defaults to 0.
13423
13424       reset_timestamps 1|0
13425           Reset timestamps at the beginning of each segment, so that each
13426           segment will start with near-zero timestamps. It is meant to ease
13427           the playback of the generated segments. May not work with some
13428           combinations of muxers/codecs. It is set to 0 by default.
13429
13430       initial_offset offset
13431           Specify timestamp offset to apply to the output packet timestamps.
13432           The argument must be a time duration specification, and defaults to
13433           0.
13434
13435       write_empty_segments 1|0
13436           If enabled, write an empty segment if there are no packets during
13437           the period a segment would usually span. Otherwise, the segment
13438           will be filled with the next packet written. Defaults to 0.
13439
13440       Make sure to require a closed GOP when encoding and to set the GOP size
13441       to fit your segment time constraint.
13442
13443       Examples
13444
13445       •   Remux the content of file in.mkv to a list of segments out-000.nut,
13446           out-001.nut, etc., and write the list of generated segments to
13447           out.list:
13448
13449                   ffmpeg -i in.mkv -codec hevc -flags +cgop -g 60 -map 0 -f segment -segment_list out.list out%03d.nut
13450
13451       •   Segment input and set output format options for the output
13452           segments:
13453
13454                   ffmpeg -i in.mkv -f segment -segment_time 10 -segment_format_options movflags=+faststart out%03d.mp4
13455
13456       •   Segment the input file according to the split points specified by
13457           the segment_times option:
13458
13459                   ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 out%03d.nut
13460
13461       •   Use the ffmpeg force_key_frames option to force key frames in the
13462           input at the specified location, together with the segment option
13463           segment_time_delta to account for possible roundings operated when
13464           setting key frame times.
13465
13466                   ffmpeg -i in.mkv -force_key_frames 1,2,3,5,8,13,21 -codec:v mpeg4 -codec:a pcm_s16le -map 0 \
13467                   -f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 -segment_time_delta 0.05 out%03d.nut
13468
13469           In order to force key frames on the input file, transcoding is
13470           required.
13471
13472       •   Segment the input file by splitting the input file according to the
13473           frame numbers sequence specified with the segment_frames option:
13474
13475                   ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_frames 100,200,300,500,800 out%03d.nut
13476
13477       •   Convert the in.mkv to TS segments using the "libx264" and "aac"
13478           encoders:
13479
13480                   ffmpeg -i in.mkv -map 0 -codec:v libx264 -codec:a aac -f ssegment -segment_list out.list out%03d.ts
13481
13482       •   Segment the input file, and create an M3U8 live playlist (can be
13483           used as live HLS source):
13484
13485                   ffmpeg -re -i in.mkv -codec copy -map 0 -f segment -segment_list playlist.m3u8 \
13486                   -segment_list_flags +live -segment_time 10 out%03d.mkv
13487
13488   smoothstreaming
13489       Smooth Streaming muxer generates a set of files (Manifest, chunks)
13490       suitable for serving with conventional web server.
13491
13492       window_size
13493           Specify the number of fragments kept in the manifest. Default 0
13494           (keep all).
13495
13496       extra_window_size
13497           Specify the number of fragments kept outside of the manifest before
13498           removing from disk. Default 5.
13499
13500       lookahead_count
13501           Specify the number of lookahead fragments. Default 2.
13502
13503       min_frag_duration
13504           Specify the minimum fragment duration (in microseconds). Default
13505           5000000.
13506
13507       remove_at_exit
13508           Specify whether to remove all fragments when finished. Default 0
13509           (do not remove).
13510
13511   streamhash
13512       Per stream hash testing format.
13513
13514       This muxer computes and prints a cryptographic hash of all the input
13515       frames, on a per-stream basis. This can be used for equality checks
13516       without having to do a complete binary comparison.
13517
13518       By default audio frames are converted to signed 16-bit raw audio and
13519       video frames to raw video before computing the hash, but the output of
13520       explicit conversions to other codecs can also be used. Timestamps are
13521       ignored. It uses the SHA-256 cryptographic hash function by default,
13522       but supports several other algorithms.
13523
13524       The output of the muxer consists of one line per stream of the form:
13525       streamindex,streamtype,algo=hash, where streamindex is the index of the
13526       mapped stream, streamtype is a single character indicating the type of
13527       stream, algo is a short string representing the hash function used, and
13528       hash is a hexadecimal number representing the computed hash.
13529
13530       hash algorithm
13531           Use the cryptographic hash function specified by the string
13532           algorithm.  Supported values include "MD5", "murmur3", "RIPEMD128",
13533           "RIPEMD160", "RIPEMD256", "RIPEMD320", "SHA160", "SHA224", "SHA256"
13534           (default), "SHA512/224", "SHA512/256", "SHA384", "SHA512", "CRC32"
13535           and "adler32".
13536
13537       Examples
13538
13539       To compute the SHA-256 hash of the input converted to raw audio and
13540       video, and store it in the file out.sha256:
13541
13542               ffmpeg -i INPUT -f streamhash out.sha256
13543
13544       To print an MD5 hash to stdout use the command:
13545
13546               ffmpeg -i INPUT -f streamhash -hash md5 -
13547
13548       See also the hash and framehash muxers.
13549
13550   tee
13551       The tee muxer can be used to write the same data to several outputs,
13552       such as files or streams.  It can be used, for example, to stream a
13553       video over a network and save it to disk at the same time.
13554
13555       It is different from specifying several outputs to the ffmpeg command-
13556       line tool. With the tee muxer, the audio and video data will be encoded
13557       only once.  With conventional multiple outputs, multiple encoding
13558       operations in parallel are initiated, which can be a very expensive
13559       process. The tee muxer is not useful when using the libavformat API
13560       directly because it is then possible to feed the same packets to
13561       several muxers directly.
13562
13563       Since the tee muxer does not represent any particular output format,
13564       ffmpeg cannot auto-select output streams. So all streams intended for
13565       output must be specified using "-map". See the examples below.
13566
13567       Some encoders may need different options depending on the output
13568       format; the auto-detection of this can not work with the tee muxer, so
13569       they need to be explicitly specified.  The main example is the
13570       global_header flag.
13571
13572       The slave outputs are specified in the file name given to the muxer,
13573       separated by '|'. If any of the slave name contains the '|' separator,
13574       leading or trailing spaces or any special character, those must be
13575       escaped (see the "Quoting and escaping" section in the ffmpeg-utils(1)
13576       manual).
13577
13578       Options
13579
13580       use_fifo bool
13581           If set to 1, slave outputs will be processed in separate threads
13582           using the fifo muxer. This allows to compensate for different
13583           speed/latency/reliability of outputs and setup transparent
13584           recovery. By default this feature is turned off.
13585
13586       fifo_options
13587           Options to pass to fifo pseudo-muxer instances. See fifo.
13588
13589       Muxer options can be specified for each slave by prepending them as a
13590       list of key=value pairs separated by ':', between square brackets. If
13591       the options values contain a special character or the ':' separator,
13592       they must be escaped; note that this is a second level escaping.
13593
13594       The following special options are also recognized:
13595
13596       f   Specify the format name. Required if it cannot be guessed from the
13597           output URL.
13598
13599       bsfs[/spec]
13600           Specify a list of bitstream filters to apply to the specified
13601           output.
13602
13603           It is possible to specify to which streams a given bitstream filter
13604           applies, by appending a stream specifier to the option separated by
13605           "/". spec must be a stream specifier (see Format stream
13606           specifiers).
13607
13608           If the stream specifier is not specified, the bitstream filters
13609           will be applied to all streams in the output. This will cause that
13610           output operation to fail if the output contains streams to which
13611           the bitstream filter cannot be applied e.g. "h264_mp4toannexb"
13612           being applied to an output containing an audio stream.
13613
13614           Options for a bitstream filter must be specified in the form of
13615           "opt=value".
13616
13617           Several bitstream filters can be specified, separated by ",".
13618
13619       use_fifo bool
13620           This allows to override tee muxer use_fifo option for individual
13621           slave muxer.
13622
13623       fifo_options
13624           This allows to override tee muxer fifo_options for individual slave
13625           muxer.  See fifo.
13626
13627       select
13628           Select the streams that should be mapped to the slave output,
13629           specified by a stream specifier. If not specified, this defaults to
13630           all the mapped streams. This will cause that output operation to
13631           fail if the output format does not accept all mapped streams.
13632
13633           You may use multiple stream specifiers separated by commas (",")
13634           e.g.: "a:0,v"
13635
13636       onfail
13637           Specify behaviour on output failure. This can be set to either
13638           "abort" (which is default) or "ignore". "abort" will cause whole
13639           process to fail in case of failure on this slave output. "ignore"
13640           will ignore failure on this output, so other outputs will continue
13641           without being affected.
13642
13643       Examples
13644
13645       •   Encode something and both archive it in a WebM file and stream it
13646           as MPEG-TS over UDP:
13647
13648                   ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a
13649                     "archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
13650
13651       •   As above, but continue streaming even if output to local file fails
13652           (for example local drive fills up):
13653
13654                   ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a
13655                     "[onfail=ignore]archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
13656
13657       •   Use ffmpeg to encode the input, and send the output to three
13658           different destinations. The "dump_extra" bitstream filter is used
13659           to add extradata information to all the output video keyframes
13660           packets, as requested by the MPEG-TS format. The select option is
13661           applied to out.aac in order to make it contain only audio packets.
13662
13663                   ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac
13664                          -f tee "[bsfs/v=dump_extra=freq=keyframe]out.ts|[movflags=+faststart]out.mp4|[select=a]out.aac"
13665
13666       •   As above, but select only stream "a:1" for the audio output. Note
13667           that a second level escaping must be performed, as ":" is a special
13668           character used to separate options.
13669
13670                   ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac
13671                          -f tee "[bsfs/v=dump_extra=freq=keyframe]out.ts|[movflags=+faststart]out.mp4|[select=\'a:1\']out.aac"
13672
13673   webm_chunk
13674       WebM Live Chunk Muxer.
13675
13676       This muxer writes out WebM headers and chunks as separate files which
13677       can be consumed by clients that support WebM Live streams via DASH.
13678
13679       Options
13680
13681       This muxer supports the following options:
13682
13683       chunk_start_index
13684           Index of the first chunk (defaults to 0).
13685
13686       header
13687           Filename of the header where the initialization data will be
13688           written.
13689
13690       audio_chunk_duration
13691           Duration of each audio chunk in milliseconds (defaults to 5000).
13692
13693       Example
13694
13695               ffmpeg -f v4l2 -i /dev/video0 \
13696                      -f alsa -i hw:0 \
13697                      -map 0:0 \
13698                      -c:v libvpx-vp9 \
13699                      -s 640x360 -keyint_min 30 -g 30 \
13700                      -f webm_chunk \
13701                      -header webm_live_video_360.hdr \
13702                      -chunk_start_index 1 \
13703                      webm_live_video_360_%d.chk \
13704                      -map 1:0 \
13705                      -c:a libvorbis \
13706                      -b:a 128k \
13707                      -f webm_chunk \
13708                      -header webm_live_audio_128.hdr \
13709                      -chunk_start_index 1 \
13710                      -audio_chunk_duration 1000 \
13711                      webm_live_audio_128_%d.chk
13712
13713   webm_dash_manifest
13714       WebM DASH Manifest muxer.
13715
13716       This muxer implements the WebM DASH Manifest specification to generate
13717       the DASH manifest XML. It also supports manifest generation for DASH
13718       live streams.
13719
13720       For more information see:
13721
13722       •   WebM DASH Specification:
13723           <https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification>
13724
13725       •   ISO DASH Specification:
13726           <http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip>
13727
13728       Options
13729
13730       This muxer supports the following options:
13731
13732       adaptation_sets
13733           This option has the following syntax: "id=x,streams=a,b,c
13734           id=y,streams=d,e" where x and y are the unique identifiers of the
13735           adaptation sets and a,b,c,d and e are the indices of the
13736           corresponding audio and video streams. Any number of adaptation
13737           sets can be added using this option.
13738
13739       live
13740           Set this to 1 to create a live stream DASH Manifest. Default: 0.
13741
13742       chunk_start_index
13743           Start index of the first chunk. This will go in the startNumber
13744           attribute of the SegmentTemplate element in the manifest. Default:
13745           0.
13746
13747       chunk_duration_ms
13748           Duration of each chunk in milliseconds. This will go in the
13749           duration attribute of the SegmentTemplate element in the manifest.
13750           Default: 1000.
13751
13752       utc_timing_url
13753           URL of the page that will return the UTC timestamp in ISO format.
13754           This will go in the value attribute of the UTCTiming element in the
13755           manifest.  Default: None.
13756
13757       time_shift_buffer_depth
13758           Smallest time (in seconds) shifting buffer for which any
13759           Representation is guaranteed to be available. This will go in the
13760           timeShiftBufferDepth attribute of the MPD element. Default: 60.
13761
13762       minimum_update_period
13763           Minimum update period (in seconds) of the manifest. This will go in
13764           the minimumUpdatePeriod attribute of the MPD element. Default: 0.
13765
13766       Example
13767
13768               ffmpeg -f webm_dash_manifest -i video1.webm \
13769                      -f webm_dash_manifest -i video2.webm \
13770                      -f webm_dash_manifest -i audio1.webm \
13771                      -f webm_dash_manifest -i audio2.webm \
13772                      -map 0 -map 1 -map 2 -map 3 \
13773                      -c copy \
13774                      -f webm_dash_manifest \
13775                      -adaptation_sets "id=0,streams=0,1 id=1,streams=2,3" \
13776                      manifest.xml
13777

METADATA

13779       FFmpeg is able to dump metadata from media files into a simple
13780       UTF-8-encoded INI-like text file and then load it back using the
13781       metadata muxer/demuxer.
13782
13783       The file format is as follows:
13784
13785       1.  A file consists of a header and a number of metadata tags divided
13786           into sections, each on its own line.
13787
13788       2.  The header is a ;FFMETADATA string, followed by a version number
13789           (now 1).
13790
13791       3.  Metadata tags are of the form key=value
13792
13793       4.  Immediately after header follows global metadata
13794
13795       5.  After global metadata there may be sections with
13796           per-stream/per-chapter metadata.
13797
13798       6.  A section starts with the section name in uppercase (i.e. STREAM or
13799           CHAPTER) in brackets ([, ]) and ends with next section or end of
13800           file.
13801
13802       7.  At the beginning of a chapter section there may be an optional
13803           timebase to be used for start/end values. It must be in form
13804           TIMEBASE=num/den, where num and den are integers. If the timebase
13805           is missing then start/end times are assumed to be in nanoseconds.
13806
13807           Next a chapter section must contain chapter start and end times in
13808           form START=num, END=num, where num is a positive integer.
13809
13810       8.  Empty lines and lines starting with ; or # are ignored.
13811
13812       9.  Metadata keys or values containing special characters (=, ;, #, \
13813           and a newline) must be escaped with a backslash \.
13814
13815       10. Note that whitespace in metadata (e.g. foo = bar) is considered to
13816           be a part of the tag (in the example above key is foo , value is
13817            bar).
13818
13819       A ffmetadata file might look like this:
13820
13821               ;FFMETADATA1
13822               title=bike\\shed
13823               ;this is a comment
13824               artist=FFmpeg troll team
13825
13826               [CHAPTER]
13827               TIMEBASE=1/1000
13828               START=0
13829               #chapter ends at 0:01:00
13830               END=60000
13831               title=chapter \#1
13832               [STREAM]
13833               title=multi\
13834               line
13835
13836       By using the ffmetadata muxer and demuxer it is possible to extract
13837       metadata from an input file to an ffmetadata file, and then transcode
13838       the file into an output file with the edited ffmetadata file.
13839
13840       Extracting an ffmetadata file with ffmpeg goes as follows:
13841
13842               ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
13843
13844       Reinserting edited metadata information from the FFMETADATAFILE file
13845       can be done as:
13846
13847               ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
13848

PROTOCOL OPTIONS

13850       The libavformat library provides some generic global options, which can
13851       be set on all the protocols. In addition each protocol may support so-
13852       called private options, which are specific for that component.
13853
13854       Options may be set by specifying -option value in the FFmpeg tools, or
13855       by setting the value explicitly in the "AVFormatContext" options or
13856       using the libavutil/opt.h API for programmatic use.
13857
13858       The list of supported options follows:
13859
13860       protocol_whitelist list (input)
13861           Set a ","-separated list of allowed protocols. "ALL" matches all
13862           protocols. Protocols prefixed by "-" are disabled.  All protocols
13863           are allowed by default but protocols used by an another protocol
13864           (nested protocols) are restricted to a per protocol subset.
13865

PROTOCOLS

13867       Protocols are configured elements in FFmpeg that enable access to
13868       resources that require specific protocols.
13869
13870       When you configure your FFmpeg build, all the supported protocols are
13871       enabled by default. You can list all available ones using the configure
13872       option "--list-protocols".
13873
13874       You can disable all the protocols using the configure option
13875       "--disable-protocols", and selectively enable a protocol using the
13876       option "--enable-protocol=PROTOCOL", or you can disable a particular
13877       protocol using the option "--disable-protocol=PROTOCOL".
13878
13879       The option "-protocols" of the ff* tools will display the list of
13880       supported protocols.
13881
13882       All protocols accept the following options:
13883
13884       rw_timeout
13885           Maximum time to wait for (network) read/write operations to
13886           complete, in microseconds.
13887
13888       A description of the currently available protocols follows.
13889
13890   amqp
13891       Advanced Message Queueing Protocol (AMQP) version 0-9-1 is a broker
13892       based publish-subscribe communication protocol.
13893
13894       FFmpeg must be compiled with --enable-librabbitmq to support AMQP. A
13895       separate AMQP broker must also be run. An example open-source AMQP
13896       broker is RabbitMQ.
13897
13898       After starting the broker, an FFmpeg client may stream data to the
13899       broker using the command:
13900
13901               ffmpeg -re -i input -f mpegts amqp://[[user]:[password]@]hostname[:port][/vhost]
13902
13903       Where hostname and port (default is 5672) is the address of the broker.
13904       The client may also set a user/password for authentication. The default
13905       for both fields is "guest". Name of virtual host on broker can be set
13906       with vhost. The default value is "/".
13907
13908       Muliple subscribers may stream from the broker using the command:
13909
13910               ffplay amqp://[[user]:[password]@]hostname[:port][/vhost]
13911
13912       In RabbitMQ all data published to the broker flows through a specific
13913       exchange, and each subscribing client has an assigned queue/buffer.
13914       When a packet arrives at an exchange, it may be copied to a client's
13915       queue depending on the exchange and routing_key fields.
13916
13917       The following options are supported:
13918
13919       exchange
13920           Sets the exchange to use on the broker. RabbitMQ has several
13921           predefined exchanges: "amq.direct" is the default exchange, where
13922           the publisher and subscriber must have a matching routing_key;
13923           "amq.fanout" is the same as a broadcast operation (i.e. the data is
13924           forwarded to all queues on the fanout exchange independent of the
13925           routing_key); and "amq.topic" is similar to "amq.direct", but
13926           allows for more complex pattern matching (refer to the RabbitMQ
13927           documentation).
13928
13929       routing_key
13930           Sets the routing key. The default value is "amqp". The routing key
13931           is used on the "amq.direct" and "amq.topic" exchanges to decide
13932           whether packets are written to the queue of a subscriber.
13933
13934       pkt_size
13935           Maximum size of each packet sent/received to the broker. Default is
13936           131072.  Minimum is 4096 and max is any large value (representable
13937           by an int). When receiving packets, this sets an internal buffer
13938           size in FFmpeg. It should be equal to or greater than the size of
13939           the published packets to the broker. Otherwise the received message
13940           may be truncated causing decoding errors.
13941
13942       connection_timeout
13943           The timeout in seconds during the initial connection to the broker.
13944           The default value is rw_timeout, or 5 seconds if rw_timeout is not
13945           set.
13946
13947       delivery_mode mode
13948           Sets the delivery mode of each message sent to broker.  The
13949           following values are accepted:
13950
13951           persistent
13952               Delivery mode set to "persistent" (2). This is the default
13953               value.  Messages may be written to the broker's disk depending
13954               on its setup.
13955
13956           non-persistent
13957               Delivery mode set to "non-persistent" (1).  Messages will stay
13958               in broker's memory unless the broker is under memory pressure.
13959
13960   async
13961       Asynchronous data filling wrapper for input stream.
13962
13963       Fill data in a background thread, to decouple I/O operation from demux
13964       thread.
13965
13966               async:<URL>
13967               async:http://host/resource
13968               async:cache:http://host/resource
13969
13970   bluray
13971       Read BluRay playlist.
13972
13973       The accepted options are:
13974
13975       angle
13976           BluRay angle
13977
13978       chapter
13979           Start chapter (1...N)
13980
13981       playlist
13982           Playlist to read (BDMV/PLAYLIST/?????.mpls)
13983
13984       Examples:
13985
13986       Read longest playlist from BluRay mounted to /mnt/bluray:
13987
13988               bluray:/mnt/bluray
13989
13990       Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start
13991       from chapter 2:
13992
13993               -playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray
13994
13995   cache
13996       Caching wrapper for input stream.
13997
13998       Cache the input stream to temporary file. It brings seeking capability
13999       to live streams.
14000
14001       The accepted options are:
14002
14003       read_ahead_limit
14004           Amount in bytes that may be read ahead when seeking isn't
14005           supported. Range is -1 to INT_MAX.  -1 for unlimited. Default is
14006           65536.
14007
14008       URL Syntax is
14009
14010               cache:<URL>
14011
14012   concat
14013       Physical concatenation protocol.
14014
14015       Read and seek from many resources in sequence as if they were a unique
14016       resource.
14017
14018       A URL accepted by this protocol has the syntax:
14019
14020               concat:<URL1>|<URL2>|...|<URLN>
14021
14022       where URL1, URL2, ..., URLN are the urls of the resource to be
14023       concatenated, each one possibly specifying a distinct protocol.
14024
14025       For example to read a sequence of files split1.mpeg, split2.mpeg,
14026       split3.mpeg with ffplay use the command:
14027
14028               ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
14029
14030       Note that you may need to escape the character "|" which is special for
14031       many shells.
14032
14033   concatf
14034       Physical concatenation protocol using a line break delimited list of
14035       resources.
14036
14037       Read and seek from many resources in sequence as if they were a unique
14038       resource.
14039
14040       A URL accepted by this protocol has the syntax:
14041
14042               concatf:<URL>
14043
14044       where URL is the url containing a line break delimited list of
14045       resources to be concatenated, each one possibly specifying a distinct
14046       protocol. Special characters must be escaped with backslash or single
14047       quotes. See the "Quoting and escaping" section in the ffmpeg-utils(1)
14048       manual.
14049
14050       For example to read a sequence of files split1.mpeg, split2.mpeg,
14051       split3.mpeg listed in separate lines within a file split.txt with
14052       ffplay use the command:
14053
14054               ffplay concatf:split.txt
14055
14056       Where split.txt contains the lines:
14057
14058               split1.mpeg
14059               split2.mpeg
14060               split3.mpeg
14061
14062   crypto
14063       AES-encrypted stream reading protocol.
14064
14065       The accepted options are:
14066
14067       key Set the AES decryption key binary block from given hexadecimal
14068           representation.
14069
14070       iv  Set the AES decryption initialization vector binary block from
14071           given hexadecimal representation.
14072
14073       Accepted URL formats:
14074
14075               crypto:<URL>
14076               crypto+<URL>
14077
14078   data
14079       Data in-line in the URI. See
14080       <http://en.wikipedia.org/wiki/Data_URI_scheme>.
14081
14082       For example, to convert a GIF file given inline with ffmpeg:
14083
14084               ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
14085
14086   file
14087       File access protocol.
14088
14089       Read from or write to a file.
14090
14091       A file URL can have the form:
14092
14093               file:<filename>
14094
14095       where filename is the path of the file to read.
14096
14097       An URL that does not have a protocol prefix will be assumed to be a
14098       file URL. Depending on the build, an URL that looks like a Windows path
14099       with the drive letter at the beginning will also be assumed to be a
14100       file URL (usually not the case in builds for unix-like systems).
14101
14102       For example to read from a file input.mpeg with ffmpeg use the command:
14103
14104               ffmpeg -i file:input.mpeg output.mpeg
14105
14106       This protocol accepts the following options:
14107
14108       truncate
14109           Truncate existing files on write, if set to 1. A value of 0
14110           prevents truncating. Default value is 1.
14111
14112       blocksize
14113           Set I/O operation maximum block size, in bytes. Default value is
14114           "INT_MAX", which results in not limiting the requested block size.
14115           Setting this value reasonably low improves user termination request
14116           reaction time, which is valuable for files on slow medium.
14117
14118       follow
14119           If set to 1, the protocol will retry reading at the end of the
14120           file, allowing reading files that still are being written. In order
14121           for this to terminate, you either need to use the rw_timeout
14122           option, or use the interrupt callback (for API users).
14123
14124       seekable
14125           Controls if seekability is advertised on the file. 0 means non-
14126           seekable, -1 means auto (seekable for normal files, non-seekable
14127           for named pipes).
14128
14129           Many demuxers handle seekable and non-seekable resources
14130           differently, overriding this might speed up opening certain files
14131           at the cost of losing some features (e.g. accurate seeking).
14132
14133   ftp
14134       FTP (File Transfer Protocol).
14135
14136       Read from or write to remote resources using FTP protocol.
14137
14138       Following syntax is required.
14139
14140               ftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
14141
14142       This protocol accepts the following options.
14143
14144       timeout
14145           Set timeout in microseconds of socket I/O operations used by the
14146           underlying low level operation. By default it is set to -1, which
14147           means that the timeout is not specified.
14148
14149       ftp-user
14150           Set a user to be used for authenticating to the FTP server. This is
14151           overridden by the user in the FTP URL.
14152
14153       ftp-password
14154           Set a password to be used for authenticating to the FTP server.
14155           This is overridden by the password in the FTP URL, or by ftp-
14156           anonymous-password if no user is set.
14157
14158       ftp-anonymous-password
14159           Password used when login as anonymous user. Typically an e-mail
14160           address should be used.
14161
14162       ftp-write-seekable
14163           Control seekability of connection during encoding. If set to 1 the
14164           resource is supposed to be seekable, if set to 0 it is assumed not
14165           to be seekable. Default value is 0.
14166
14167       NOTE: Protocol can be used as output, but it is recommended to not do
14168       it, unless special care is taken (tests, customized server
14169       configuration etc.). Different FTP servers behave in different way
14170       during seek operation. ff* tools may produce incomplete content due to
14171       server limitations.
14172
14173   gopher
14174       Gopher protocol.
14175
14176   gophers
14177       Gophers protocol.
14178
14179       The Gopher protocol with TLS encapsulation.
14180
14181   hls
14182       Read Apple HTTP Live Streaming compliant segmented stream as a uniform
14183       one. The M3U8 playlists describing the segments can be remote HTTP
14184       resources or local files, accessed using the standard file protocol.
14185       The nested protocol is declared by specifying "+proto" after the hls
14186       URI scheme name, where proto is either "file" or "http".
14187
14188               hls+http://host/path/to/remote/resource.m3u8
14189               hls+file://path/to/local/resource.m3u8
14190
14191       Using this protocol is discouraged - the hls demuxer should work just
14192       as well (if not, please report the issues) and is more complete.  To
14193       use the hls demuxer instead, simply use the direct URLs to the m3u8
14194       files.
14195
14196   http
14197       HTTP (Hyper Text Transfer Protocol).
14198
14199       This protocol accepts the following options:
14200
14201       seekable
14202           Control seekability of connection. If set to 1 the resource is
14203           supposed to be seekable, if set to 0 it is assumed not to be
14204           seekable, if set to -1 it will try to autodetect if it is seekable.
14205           Default value is -1.
14206
14207       chunked_post
14208           If set to 1 use chunked Transfer-Encoding for posts, default is 1.
14209
14210       content_type
14211           Set a specific content type for the POST messages or for listen
14212           mode.
14213
14214       http_proxy
14215           set HTTP proxy to tunnel through e.g. http://example.com:1234
14216
14217       headers
14218           Set custom HTTP headers, can override built in default headers. The
14219           value must be a string encoding the headers.
14220
14221       multiple_requests
14222           Use persistent connections if set to 1, default is 0.
14223
14224       post_data
14225           Set custom HTTP post data.
14226
14227       referer
14228           Set the Referer header. Include 'Referer: URL' header in HTTP
14229           request.
14230
14231       user_agent
14232           Override the User-Agent header. If not specified the protocol will
14233           use a string describing the libavformat build. ("Lavf/<version>")
14234
14235       reconnect_at_eof
14236           If set then eof is treated like an error and causes reconnection,
14237           this is useful for live / endless streams.
14238
14239       reconnect_streamed
14240           If set then even streamed/non seekable streams will be reconnected
14241           on errors.
14242
14243       reconnect_on_network_error
14244           Reconnect automatically in case of TCP/TLS errors during connect.
14245
14246       reconnect_on_http_error
14247           A comma separated list of HTTP status codes to reconnect on. The
14248           list can include specific status codes (e.g. '503') or the strings
14249           '4xx' / '5xx'.
14250
14251       reconnect_delay_max
14252           Sets the maximum delay in seconds after which to give up
14253           reconnecting
14254
14255       mime_type
14256           Export the MIME type.
14257
14258       http_version
14259           Exports the HTTP response version number. Usually "1.0" or "1.1".
14260
14261       icy If set to 1 request ICY (SHOUTcast) metadata from the server. If
14262           the server supports this, the metadata has to be retrieved by the
14263           application by reading the icy_metadata_headers and
14264           icy_metadata_packet options.  The default is 1.
14265
14266       icy_metadata_headers
14267           If the server supports ICY metadata, this contains the ICY-specific
14268           HTTP reply headers, separated by newline characters.
14269
14270       icy_metadata_packet
14271           If the server supports ICY metadata, and icy was set to 1, this
14272           contains the last non-empty metadata packet sent by the server. It
14273           should be polled in regular intervals by applications interested in
14274           mid-stream metadata updates.
14275
14276       cookies
14277           Set the cookies to be sent in future requests. The format of each
14278           cookie is the same as the value of a Set-Cookie HTTP response
14279           field. Multiple cookies can be delimited by a newline character.
14280
14281       offset
14282           Set initial byte offset.
14283
14284       end_offset
14285           Try to limit the request to bytes preceding this offset.
14286
14287       method
14288           When used as a client option it sets the HTTP method for the
14289           request.
14290
14291           When used as a server option it sets the HTTP method that is going
14292           to be expected from the client(s).  If the expected and the
14293           received HTTP method do not match the client will be given a Bad
14294           Request response.  When unset the HTTP method is not checked for
14295           now. This will be replaced by autodetection in the future.
14296
14297       listen
14298           If set to 1 enables experimental HTTP server. This can be used to
14299           send data when used as an output option, or read data from a client
14300           with HTTP POST when used as an input option.  If set to 2 enables
14301           experimental multi-client HTTP server. This is not yet implemented
14302           in ffmpeg.c and thus must not be used as a command line option.
14303
14304                   # Server side (sending):
14305                   ffmpeg -i somefile.ogg -c copy -listen 1 -f ogg http://<server>:<port>
14306
14307                   # Client side (receiving):
14308                   ffmpeg -i http://<server>:<port> -c copy somefile.ogg
14309
14310                   # Client can also be done with wget:
14311                   wget http://<server>:<port> -O somefile.ogg
14312
14313                   # Server side (receiving):
14314                   ffmpeg -listen 1 -i http://<server>:<port> -c copy somefile.ogg
14315
14316                   # Client side (sending):
14317                   ffmpeg -i somefile.ogg -chunked_post 0 -c copy -f ogg http://<server>:<port>
14318
14319                   # Client can also be done with wget:
14320                   wget --post-file=somefile.ogg http://<server>:<port>
14321
14322       send_expect_100
14323           Send an Expect: 100-continue header for POST. If set to 1 it will
14324           send, if set to 0 it won't, if set to -1 it will try to send if it
14325           is applicable. Default value is -1.
14326
14327       auth_type
14328           Set HTTP authentication type. No option for Digest, since this
14329           method requires getting nonce parameters from the server first and
14330           can't be used straight away like Basic.
14331
14332           none
14333               Choose the HTTP authentication type automatically. This is the
14334               default.
14335
14336           basic
14337               Choose the HTTP basic authentication.
14338
14339               Basic authentication sends a Base64-encoded string that
14340               contains a user name and password for the client. Base64 is not
14341               a form of encryption and should be considered the same as
14342               sending the user name and password in clear text (Base64 is a
14343               reversible encoding).  If a resource needs to be protected,
14344               strongly consider using an authentication scheme other than
14345               basic authentication. HTTPS/TLS should be used with basic
14346               authentication.  Without these additional security
14347               enhancements, basic authentication should not be used to
14348               protect sensitive or valuable information.
14349
14350       HTTP Cookies
14351
14352       Some HTTP requests will be denied unless cookie values are passed in
14353       with the request. The cookies option allows these cookies to be
14354       specified. At the very least, each cookie must specify a value along
14355       with a path and domain.  HTTP requests that match both the domain and
14356       path will automatically include the cookie value in the HTTP Cookie
14357       header field. Multiple cookies can be delimited by a newline.
14358
14359       The required syntax to play a stream specifying a cookie is:
14360
14361               ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
14362
14363   Icecast
14364       Icecast protocol (stream to Icecast servers)
14365
14366       This protocol accepts the following options:
14367
14368       ice_genre
14369           Set the stream genre.
14370
14371       ice_name
14372           Set the stream name.
14373
14374       ice_description
14375           Set the stream description.
14376
14377       ice_url
14378           Set the stream website URL.
14379
14380       ice_public
14381           Set if the stream should be public.  The default is 0 (not public).
14382
14383       user_agent
14384           Override the User-Agent header. If not specified a string of the
14385           form "Lavf/<version>" will be used.
14386
14387       password
14388           Set the Icecast mountpoint password.
14389
14390       content_type
14391           Set the stream content type. This must be set if it is different
14392           from audio/mpeg.
14393
14394       legacy_icecast
14395           This enables support for Icecast versions < 2.4.0, that do not
14396           support the HTTP PUT method but the SOURCE method.
14397
14398       tls Establish a TLS (HTTPS) connection to Icecast.
14399
14400               icecast://[<username>[:<password>]@]<server>:<port>/<mountpoint>
14401
14402   ipfs
14403       InterPlanetary File System (IPFS) protocol support. One can access
14404       files stored on the IPFS network through so-called gateways. These are
14405       http(s) endpoints.  This protocol wraps the IPFS native protocols
14406       (ipfs:// and ipns://) to be sent to such a gateway. Users can (and
14407       should) host their own node which means this protocol will use one's
14408       local gateway to access files on the IPFS network.
14409
14410       If a user doesn't have a node of their own then the public gateway
14411       "https://dweb.link" is used by default.
14412
14413       This protocol accepts the following options:
14414
14415       gateway
14416           Defines the gateway to use. When not set, the protocol will first
14417           try locating the local gateway by looking at $IPFS_GATEWAY,
14418           $IPFS_PATH and "$HOME/.ipfs/", in that order. If that fails
14419           "https://dweb.link" will be used.
14420
14421       One can use this protocol in 2 ways. Using IPFS:
14422
14423               ffplay ipfs://QmbGtJg23skhvFmu9mJiePVByhfzu5rwo74MEkVDYAmF5T
14424
14425       Or the IPNS protocol (IPNS is mutable IPFS):
14426
14427               ffplay ipns://QmbGtJg23skhvFmu9mJiePVByhfzu5rwo74MEkVDYAmF5T
14428
14429   mmst
14430       MMS (Microsoft Media Server) protocol over TCP.
14431
14432   mmsh
14433       MMS (Microsoft Media Server) protocol over HTTP.
14434
14435       The required syntax is:
14436
14437               mmsh://<server>[:<port>][/<app>][/<playpath>]
14438
14439   md5
14440       MD5 output protocol.
14441
14442       Computes the MD5 hash of the data to be written, and on close writes
14443       this to the designated output or stdout if none is specified. It can be
14444       used to test muxers without writing an actual file.
14445
14446       Some examples follow.
14447
14448               # Write the MD5 hash of the encoded AVI file to the file output.avi.md5.
14449               ffmpeg -i input.flv -f avi -y md5:output.avi.md5
14450
14451               # Write the MD5 hash of the encoded AVI file to stdout.
14452               ffmpeg -i input.flv -f avi -y md5:
14453
14454       Note that some formats (typically MOV) require the output protocol to
14455       be seekable, so they will fail with the MD5 output protocol.
14456
14457   pipe
14458       UNIX pipe access protocol.
14459
14460       Read and write from UNIX pipes.
14461
14462       The accepted syntax is:
14463
14464               pipe:[<number>]
14465
14466       number is the number corresponding to the file descriptor of the pipe
14467       (e.g. 0 for stdin, 1 for stdout, 2 for stderr).  If number is not
14468       specified, by default the stdout file descriptor will be used for
14469       writing, stdin for reading.
14470
14471       For example to read from stdin with ffmpeg:
14472
14473               cat test.wav | ffmpeg -i pipe:0
14474               # ...this is the same as...
14475               cat test.wav | ffmpeg -i pipe:
14476
14477       For writing to stdout with ffmpeg:
14478
14479               ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi
14480               # ...this is the same as...
14481               ffmpeg -i test.wav -f avi pipe: | cat > test.avi
14482
14483       This protocol accepts the following options:
14484
14485       blocksize
14486           Set I/O operation maximum block size, in bytes. Default value is
14487           "INT_MAX", which results in not limiting the requested block size.
14488           Setting this value reasonably low improves user termination request
14489           reaction time, which is valuable if data transmission is slow.
14490
14491       Note that some formats (typically MOV), require the output protocol to
14492       be seekable, so they will fail with the pipe output protocol.
14493
14494   prompeg
14495       Pro-MPEG Code of Practice #3 Release 2 FEC protocol.
14496
14497       The Pro-MPEG CoP#3 FEC is a 2D parity-check forward error correction
14498       mechanism for MPEG-2 Transport Streams sent over RTP.
14499
14500       This protocol must be used in conjunction with the "rtp_mpegts" muxer
14501       and the "rtp" protocol.
14502
14503       The required syntax is:
14504
14505               -f rtp_mpegts -fec prompeg=<option>=<val>... rtp://<hostname>:<port>
14506
14507       The destination UDP ports are "port + 2" for the column FEC stream and
14508       "port + 4" for the row FEC stream.
14509
14510       This protocol accepts the following options:
14511
14512       l=n The number of columns (4-20, LxD <= 100)
14513
14514       d=n The number of rows (4-20, LxD <= 100)
14515
14516       Example usage:
14517
14518               -f rtp_mpegts -fec prompeg=l=8:d=4 rtp://<hostname>:<port>
14519
14520   rist
14521       Reliable Internet Streaming Transport protocol
14522
14523       The accepted options are:
14524
14525       rist_profile
14526           Supported values:
14527
14528           simple
14529           main
14530               This one is default.
14531
14532           advanced
14533       buffer_size
14534           Set internal RIST buffer size in milliseconds for retransmission of
14535           data.  Default value is 0 which means the librist default (1 sec).
14536           Maximum value is 30 seconds.
14537
14538       fifo_size
14539           Size of the librist receiver output fifo in number of packets. This
14540           must be a power of 2.  Defaults to 8192 (vs the librist default of
14541           1024).
14542
14543       overrun_nonfatal=1|0
14544           Survive in case of librist fifo buffer overrun. Default value is 0.
14545
14546       pkt_size
14547           Set maximum packet size for sending data. 1316 by default.
14548
14549       log_level
14550           Set loglevel for RIST logging messages. You only need to set this
14551           if you explicitly want to enable debug level messages or packet
14552           loss simulation, otherwise the regular loglevel is respected.
14553
14554       secret
14555           Set override of encryption secret, by default is unset.
14556
14557       encryption
14558           Set encryption type, by default is disabled.  Acceptable values are
14559           128 and 256.
14560
14561   rtmp
14562       Real-Time Messaging Protocol.
14563
14564       The Real-Time Messaging Protocol (RTMP) is used for streaming
14565       multimedia content across a TCP/IP network.
14566
14567       The required syntax is:
14568
14569               rtmp://[<username>:<password>@]<server>[:<port>][/<app>][/<instance>][/<playpath>]
14570
14571       The accepted parameters are:
14572
14573       username
14574           An optional username (mostly for publishing).
14575
14576       password
14577           An optional password (mostly for publishing).
14578
14579       server
14580           The address of the RTMP server.
14581
14582       port
14583           The number of the TCP port to use (by default is 1935).
14584
14585       app It is the name of the application to access. It usually corresponds
14586           to the path where the application is installed on the RTMP server
14587           (e.g. /ondemand/, /flash/live/, etc.). You can override the value
14588           parsed from the URI through the "rtmp_app" option, too.
14589
14590       playpath
14591           It is the path or name of the resource to play with reference to
14592           the application specified in app, may be prefixed by "mp4:". You
14593           can override the value parsed from the URI through the
14594           "rtmp_playpath" option, too.
14595
14596       listen
14597           Act as a server, listening for an incoming connection.
14598
14599       timeout
14600           Maximum time to wait for the incoming connection. Implies listen.
14601
14602       Additionally, the following parameters can be set via command line
14603       options (or in code via "AVOption"s):
14604
14605       rtmp_app
14606           Name of application to connect on the RTMP server. This option
14607           overrides the parameter specified in the URI.
14608
14609       rtmp_buffer
14610           Set the client buffer time in milliseconds. The default is 3000.
14611
14612       rtmp_conn
14613           Extra arbitrary AMF connection parameters, parsed from a string,
14614           e.g. like "B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0".  Each
14615           value is prefixed by a single character denoting the type, B for
14616           Boolean, N for number, S for string, O for object, or Z for null,
14617           followed by a colon. For Booleans the data must be either 0 or 1
14618           for FALSE or TRUE, respectively.  Likewise for Objects the data
14619           must be 0 or 1 to end or begin an object, respectively. Data items
14620           in subobjects may be named, by prefixing the type with 'N' and
14621           specifying the name before the value (i.e. "NB:myFlag:1"). This
14622           option may be used multiple times to construct arbitrary AMF
14623           sequences.
14624
14625       rtmp_flashver
14626           Version of the Flash plugin used to run the SWF player. The default
14627           is LNX 9,0,124,2. (When publishing, the default is FMLE/3.0
14628           (compatible; <libavformat version>).)
14629
14630       rtmp_flush_interval
14631           Number of packets flushed in the same request (RTMPT only). The
14632           default is 10.
14633
14634       rtmp_live
14635           Specify that the media is a live stream. No resuming or seeking in
14636           live streams is possible. The default value is "any", which means
14637           the subscriber first tries to play the live stream specified in the
14638           playpath. If a live stream of that name is not found, it plays the
14639           recorded stream. The other possible values are "live" and
14640           "recorded".
14641
14642       rtmp_pageurl
14643           URL of the web page in which the media was embedded. By default no
14644           value will be sent.
14645
14646       rtmp_playpath
14647           Stream identifier to play or to publish. This option overrides the
14648           parameter specified in the URI.
14649
14650       rtmp_subscribe
14651           Name of live stream to subscribe to. By default no value will be
14652           sent.  It is only sent if the option is specified or if rtmp_live
14653           is set to live.
14654
14655       rtmp_swfhash
14656           SHA256 hash of the decompressed SWF file (32 bytes).
14657
14658       rtmp_swfsize
14659           Size of the decompressed SWF file, required for SWFVerification.
14660
14661       rtmp_swfurl
14662           URL of the SWF player for the media. By default no value will be
14663           sent.
14664
14665       rtmp_swfverify
14666           URL to player swf file, compute hash/size automatically.
14667
14668       rtmp_tcurl
14669           URL of the target stream. Defaults to proto://host[:port]/app.
14670
14671       tcp_nodelay=1|0
14672           Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
14673
14674           Remark: Writing to the socket is currently not optimized to
14675           minimize system calls and reduces the efficiency / effect of
14676           TCP_NODELAY.
14677
14678       For example to read with ffplay a multimedia resource named "sample"
14679       from the application "vod" from an RTMP server "myserver":
14680
14681               ffplay rtmp://myserver/vod/sample
14682
14683       To publish to a password protected server, passing the playpath and app
14684       names separately:
14685
14686               ffmpeg -re -i <input> -f flv -rtmp_playpath some/long/path -rtmp_app long/app/name rtmp://username:password@myserver/
14687
14688   rtmpe
14689       Encrypted Real-Time Messaging Protocol.
14690
14691       The Encrypted Real-Time Messaging Protocol (RTMPE) is used for
14692       streaming multimedia content within standard cryptographic primitives,
14693       consisting of Diffie-Hellman key exchange and HMACSHA256, generating a
14694       pair of RC4 keys.
14695
14696   rtmps
14697       Real-Time Messaging Protocol over a secure SSL connection.
14698
14699       The Real-Time Messaging Protocol (RTMPS) is used for streaming
14700       multimedia content across an encrypted connection.
14701
14702   rtmpt
14703       Real-Time Messaging Protocol tunneled through HTTP.
14704
14705       The Real-Time Messaging Protocol tunneled through HTTP (RTMPT) is used
14706       for streaming multimedia content within HTTP requests to traverse
14707       firewalls.
14708
14709   rtmpte
14710       Encrypted Real-Time Messaging Protocol tunneled through HTTP.
14711
14712       The Encrypted Real-Time Messaging Protocol tunneled through HTTP
14713       (RTMPTE) is used for streaming multimedia content within HTTP requests
14714       to traverse firewalls.
14715
14716   rtmpts
14717       Real-Time Messaging Protocol tunneled through HTTPS.
14718
14719       The Real-Time Messaging Protocol tunneled through HTTPS (RTMPTS) is
14720       used for streaming multimedia content within HTTPS requests to traverse
14721       firewalls.
14722
14723   libsmbclient
14724       libsmbclient permits one to manipulate CIFS/SMB network resources.
14725
14726       Following syntax is required.
14727
14728               smb://[[domain:]user[:password@]]server[/share[/path[/file]]]
14729
14730       This protocol accepts the following options.
14731
14732       timeout
14733           Set timeout in milliseconds of socket I/O operations used by the
14734           underlying low level operation. By default it is set to -1, which
14735           means that the timeout is not specified.
14736
14737       truncate
14738           Truncate existing files on write, if set to 1. A value of 0
14739           prevents truncating. Default value is 1.
14740
14741       workgroup
14742           Set the workgroup used for making connections. By default workgroup
14743           is not specified.
14744
14745       For more information see: <http://www.samba.org/>.
14746
14747   libssh
14748       Secure File Transfer Protocol via libssh
14749
14750       Read from or write to remote resources using SFTP protocol.
14751
14752       Following syntax is required.
14753
14754               sftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
14755
14756       This protocol accepts the following options.
14757
14758       timeout
14759           Set timeout of socket I/O operations used by the underlying low
14760           level operation. By default it is set to -1, which means that the
14761           timeout is not specified.
14762
14763       truncate
14764           Truncate existing files on write, if set to 1. A value of 0
14765           prevents truncating. Default value is 1.
14766
14767       private_key
14768           Specify the path of the file containing private key to use during
14769           authorization.  By default libssh searches for keys in the ~/.ssh/
14770           directory.
14771
14772       Example: Play a file stored on remote server.
14773
14774               ffplay sftp://user:password@server_address:22/home/user/resource.mpeg
14775
14776   librtmp rtmp, rtmpe, rtmps, rtmpt, rtmpte
14777       Real-Time Messaging Protocol and its variants supported through
14778       librtmp.
14779
14780       Requires the presence of the librtmp headers and library during
14781       configuration. You need to explicitly configure the build with
14782       "--enable-librtmp". If enabled this will replace the native RTMP
14783       protocol.
14784
14785       This protocol provides most client functions and a few server functions
14786       needed to support RTMP, RTMP tunneled in HTTP (RTMPT), encrypted RTMP
14787       (RTMPE), RTMP over SSL/TLS (RTMPS) and tunneled variants of these
14788       encrypted types (RTMPTE, RTMPTS).
14789
14790       The required syntax is:
14791
14792               <rtmp_proto>://<server>[:<port>][/<app>][/<playpath>] <options>
14793
14794       where rtmp_proto is one of the strings "rtmp", "rtmpt", "rtmpe",
14795       "rtmps", "rtmpte", "rtmpts" corresponding to each RTMP variant, and
14796       server, port, app and playpath have the same meaning as specified for
14797       the RTMP native protocol.  options contains a list of space-separated
14798       options of the form key=val.
14799
14800       See the librtmp manual page (man 3 librtmp) for more information.
14801
14802       For example, to stream a file in real-time to an RTMP server using
14803       ffmpeg:
14804
14805               ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
14806
14807       To play the same stream using ffplay:
14808
14809               ffplay "rtmp://myserver/live/mystream live=1"
14810
14811   rtp
14812       Real-time Transport Protocol.
14813
14814       The required syntax for an RTP URL is:
14815       rtp://hostname[:port][?option=val...]
14816
14817       port specifies the RTP port to use.
14818
14819       The following URL options are supported:
14820
14821       ttl=n
14822           Set the TTL (Time-To-Live) value (for multicast only).
14823
14824       rtcpport=n
14825           Set the remote RTCP port to n.
14826
14827       localrtpport=n
14828           Set the local RTP port to n.
14829
14830       localrtcpport=n'
14831           Set the local RTCP port to n.
14832
14833       pkt_size=n
14834           Set max packet size (in bytes) to n.
14835
14836       buffer_size=size
14837           Set the maximum UDP socket buffer size in bytes.
14838
14839       connect=0|1
14840           Do a "connect()" on the UDP socket (if set to 1) or not (if set to
14841           0).
14842
14843       sources=ip[,ip]
14844           List allowed source IP addresses.
14845
14846       block=ip[,ip]
14847           List disallowed (blocked) source IP addresses.
14848
14849       write_to_source=0|1
14850           Send packets to the source address of the latest received packet
14851           (if set to 1) or to a default remote address (if set to 0).
14852
14853       localport=n
14854           Set the local RTP port to n.
14855
14856       localaddr=addr
14857           Local IP address of a network interface used for sending packets or
14858           joining multicast groups.
14859
14860       timeout=n
14861           Set timeout (in microseconds) of socket I/O operations to n.
14862
14863           This is a deprecated option. Instead, localrtpport should be used.
14864
14865       Important notes:
14866
14867       1.  If rtcpport is not set the RTCP port will be set to the RTP port
14868           value plus 1.
14869
14870       2.  If localrtpport (the local RTP port) is not set any available port
14871           will be used for the local RTP and RTCP ports.
14872
14873       3.  If localrtcpport (the local RTCP port) is not set it will be set to
14874           the local RTP port value plus 1.
14875
14876   rtsp
14877       Real-Time Streaming Protocol.
14878
14879       RTSP is not technically a protocol handler in libavformat, it is a
14880       demuxer and muxer. The demuxer supports both normal RTSP (with data
14881       transferred over RTP; this is used by e.g. Apple and Microsoft) and
14882       Real-RTSP (with data transferred over RDT).
14883
14884       The muxer can be used to send a stream using RTSP ANNOUNCE to a server
14885       supporting it (currently Darwin Streaming Server and Mischa
14886       Spiegelmock's <https://github.com/revmischa/rtsp-server>).
14887
14888       The required syntax for a RTSP url is:
14889
14890               rtsp://<hostname>[:<port>]/<path>
14891
14892       Options can be set on the ffmpeg/ffplay command line, or set in code
14893       via "AVOption"s or in "avformat_open_input".
14894
14895       The following options are supported.
14896
14897       initial_pause
14898           Do not start playing the stream immediately if set to 1. Default
14899           value is 0.
14900
14901       rtsp_transport
14902           Set RTSP transport protocols.
14903
14904           It accepts the following values:
14905
14906           udp Use UDP as lower transport protocol.
14907
14908           tcp Use TCP (interleaving within the RTSP control channel) as lower
14909               transport protocol.
14910
14911           udp_multicast
14912               Use UDP multicast as lower transport protocol.
14913
14914           http
14915               Use HTTP tunneling as lower transport protocol, which is useful
14916               for passing proxies.
14917
14918           Multiple lower transport protocols may be specified, in that case
14919           they are tried one at a time (if the setup of one fails, the next
14920           one is tried).  For the muxer, only the tcp and udp options are
14921           supported.
14922
14923       rtsp_flags
14924           Set RTSP flags.
14925
14926           The following values are accepted:
14927
14928           filter_src
14929               Accept packets only from negotiated peer address and port.
14930
14931           listen
14932               Act as a server, listening for an incoming connection.
14933
14934           prefer_tcp
14935               Try TCP for RTP transport first, if TCP is available as RTSP
14936               RTP transport.
14937
14938           Default value is none.
14939
14940       allowed_media_types
14941           Set media types to accept from the server.
14942
14943           The following flags are accepted:
14944
14945           video
14946           audio
14947           data
14948
14949           By default it accepts all media types.
14950
14951       min_port
14952           Set minimum local UDP port. Default value is 5000.
14953
14954       max_port
14955           Set maximum local UDP port. Default value is 65000.
14956
14957       listen_timeout
14958           Set maximum timeout (in seconds) to establish an initial
14959           connection. Setting listen_timeout > 0 sets rtsp_flags to listen.
14960           Default is -1 which means an infinite timeout when listen mode is
14961           set.
14962
14963       reorder_queue_size
14964           Set number of packets to buffer for handling of reordered packets.
14965
14966       timeout
14967           Set socket TCP I/O timeout in microseconds.
14968
14969       user_agent
14970           Override User-Agent header. If not specified, it defaults to the
14971           libavformat identifier string.
14972
14973       When receiving data over UDP, the demuxer tries to reorder received
14974       packets (since they may arrive out of order, or packets may get lost
14975       totally). This can be disabled by setting the maximum demuxing delay to
14976       zero (via the "max_delay" field of AVFormatContext).
14977
14978       When watching multi-bitrate Real-RTSP streams with ffplay, the streams
14979       to display can be chosen with "-vst" n and "-ast" n for video and audio
14980       respectively, and can be switched on the fly by pressing "v" and "a".
14981
14982       Examples
14983
14984       The following examples all make use of the ffplay and ffmpeg tools.
14985
14986       •   Watch a stream over UDP, with a max reordering delay of 0.5
14987           seconds:
14988
14989                   ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
14990
14991       •   Watch a stream tunneled over HTTP:
14992
14993                   ffplay -rtsp_transport http rtsp://server/video.mp4
14994
14995       •   Send a stream in realtime to a RTSP server, for others to watch:
14996
14997                   ffmpeg -re -i <input> -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
14998
14999       •   Receive a stream in realtime:
15000
15001                   ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp <output>
15002
15003   sap
15004       Session Announcement Protocol (RFC 2974). This is not technically a
15005       protocol handler in libavformat, it is a muxer and demuxer.  It is used
15006       for signalling of RTP streams, by announcing the SDP for the streams
15007       regularly on a separate port.
15008
15009       Muxer
15010
15011       The syntax for a SAP url given to the muxer is:
15012
15013               sap://<destination>[:<port>][?<options>]
15014
15015       The RTP packets are sent to destination on port port, or to port 5004
15016       if no port is specified.  options is a "&"-separated list. The
15017       following options are supported:
15018
15019       announce_addr=address
15020           Specify the destination IP address for sending the announcements
15021           to.  If omitted, the announcements are sent to the commonly used
15022           SAP announcement multicast address 224.2.127.254 (sap.mcast.net),
15023           or ff0e::2:7ffe if destination is an IPv6 address.
15024
15025       announce_port=port
15026           Specify the port to send the announcements on, defaults to 9875 if
15027           not specified.
15028
15029       ttl=ttl
15030           Specify the time to live value for the announcements and RTP
15031           packets, defaults to 255.
15032
15033       same_port=0|1
15034           If set to 1, send all RTP streams on the same port pair. If zero
15035           (the default), all streams are sent on unique ports, with each
15036           stream on a port 2 numbers higher than the previous.  VLC/Live555
15037           requires this to be set to 1, to be able to receive the stream.
15038           The RTP stack in libavformat for receiving requires all streams to
15039           be sent on unique ports.
15040
15041       Example command lines follow.
15042
15043       To broadcast a stream on the local subnet, for watching in VLC:
15044
15045               ffmpeg -re -i <input> -f sap sap://224.0.0.255?same_port=1
15046
15047       Similarly, for watching in ffplay:
15048
15049               ffmpeg -re -i <input> -f sap sap://224.0.0.255
15050
15051       And for watching in ffplay, over IPv6:
15052
15053               ffmpeg -re -i <input> -f sap sap://[ff0e::1:2:3:4]
15054
15055       Demuxer
15056
15057       The syntax for a SAP url given to the demuxer is:
15058
15059               sap://[<address>][:<port>]
15060
15061       address is the multicast address to listen for announcements on, if
15062       omitted, the default 224.2.127.254 (sap.mcast.net) is used. port is the
15063       port that is listened on, 9875 if omitted.
15064
15065       The demuxers listens for announcements on the given address and port.
15066       Once an announcement is received, it tries to receive that particular
15067       stream.
15068
15069       Example command lines follow.
15070
15071       To play back the first stream announced on the normal SAP multicast
15072       address:
15073
15074               ffplay sap://
15075
15076       To play back the first stream announced on one the default IPv6 SAP
15077       multicast address:
15078
15079               ffplay sap://[ff0e::2:7ffe]
15080
15081   sctp
15082       Stream Control Transmission Protocol.
15083
15084       The accepted URL syntax is:
15085
15086               sctp://<host>:<port>[?<options>]
15087
15088       The protocol accepts the following options:
15089
15090       listen
15091           If set to any value, listen for an incoming connection. Outgoing
15092           connection is done by default.
15093
15094       max_streams
15095           Set the maximum number of streams. By default no limit is set.
15096
15097   srt
15098       Haivision Secure Reliable Transport Protocol via libsrt.
15099
15100       The supported syntax for a SRT URL is:
15101
15102               srt://<hostname>:<port>[?<options>]
15103
15104       options contains a list of &-separated options of the form key=val.
15105
15106       or
15107
15108               <options> srt://<hostname>:<port>
15109
15110       options contains a list of '-key val' options.
15111
15112       This protocol accepts the following options.
15113
15114       connect_timeout=milliseconds
15115           Connection timeout; SRT cannot connect for RTT > 1500 msec (2
15116           handshake exchanges) with the default connect timeout of 3 seconds.
15117           This option applies to the caller and rendezvous connection modes.
15118           The connect timeout is 10 times the value set for the rendezvous
15119           mode (which can be used as a workaround for this connection problem
15120           with earlier versions).
15121
15122       ffs=bytes
15123           Flight Flag Size (Window Size), in bytes. FFS is actually an
15124           internal parameter and you should set it to not less than
15125           recv_buffer_size and mss. The default value is relatively large,
15126           therefore unless you set a very large receiver buffer, you do not
15127           need to change this option. Default value is 25600.
15128
15129       inputbw=bytes/seconds
15130           Sender nominal input rate, in bytes per seconds. Used along with
15131           oheadbw, when maxbw is set to relative (0), to calculate maximum
15132           sending rate when recovery packets are sent along with the main
15133           media stream: inputbw * (100 + oheadbw) / 100 if inputbw is not set
15134           while maxbw is set to relative (0), the actual input rate is
15135           evaluated inside the library. Default value is 0.
15136
15137       iptos=tos
15138           IP Type of Service. Applies to sender only. Default value is 0xB8.
15139
15140       ipttl=ttl
15141           IP Time To Live. Applies to sender only. Default value is 64.
15142
15143       latency=microseconds
15144           Timestamp-based Packet Delivery Delay.  Used to absorb bursts of
15145           missed packet retransmissions.  This flag sets both rcvlatency and
15146           peerlatency to the same value. Note that prior to version 1.3.0
15147           this is the only flag to set the latency, however this is
15148           effectively equivalent to setting peerlatency, when side is sender
15149           and rcvlatency when side is receiver, and the bidirectional stream
15150           sending is not supported.
15151
15152       listen_timeout=microseconds
15153           Set socket listen timeout.
15154
15155       maxbw=bytes/seconds
15156           Maximum sending bandwidth, in bytes per seconds.  -1 infinite
15157           (CSRTCC limit is 30mbps) 0 relative to input rate (see inputbw) >0
15158           absolute limit value Default value is 0 (relative)
15159
15160       mode=caller|listener|rendezvous
15161           Connection mode.  caller opens client connection.  listener starts
15162           server to listen for incoming connections.  rendezvous use Rendez-
15163           Vous connection mode.  Default value is caller.
15164
15165       mss=bytes
15166           Maximum Segment Size, in bytes. Used for buffer allocation and rate
15167           calculation using a packet counter assuming fully filled packets.
15168           The smallest MSS between the peers is used. This is 1500 by default
15169           in the overall internet.  This is the maximum size of the UDP
15170           packet and can be only decreased, unless you have some unusual
15171           dedicated network settings. Default value is 1500.
15172
15173       nakreport=1|0
15174           If set to 1, Receiver will send `UMSG_LOSSREPORT` messages
15175           periodically until a lost packet is retransmitted or intentionally
15176           dropped. Default value is 1.
15177
15178       oheadbw=percents
15179           Recovery bandwidth overhead above input rate, in percents.  See
15180           inputbw. Default value is 25%.
15181
15182       passphrase=string
15183           HaiCrypt Encryption/Decryption Passphrase string, length from 10 to
15184           79 characters. The passphrase is the shared secret between the
15185           sender and the receiver. It is used to generate the Key Encrypting
15186           Key using PBKDF2 (Password-Based Key Derivation Function). It is
15187           used only if pbkeylen is non-zero. It is used on the receiver only
15188           if the received data is encrypted.  The configured passphrase
15189           cannot be recovered (write-only).
15190
15191       enforced_encryption=1|0
15192           If true, both connection parties must have the same password set
15193           (including empty, that is, with no encryption). If the password
15194           doesn't match or only one side is unencrypted, the connection is
15195           rejected. Default is true.
15196
15197       kmrefreshrate=packets
15198           The number of packets to be transmitted after which the encryption
15199           key is switched to a new key. Default is -1.  -1 means auto
15200           (0x1000000 in srt library). The range for this option is integers
15201           in the 0 - "INT_MAX".
15202
15203       kmpreannounce=packets
15204           The interval between when a new encryption key is sent and when
15205           switchover occurs. This value also applies to the subsequent
15206           interval between when switchover occurs and when the old encryption
15207           key is decommissioned. Default is -1.  -1 means auto (0x1000 in srt
15208           library). The range for this option is integers in the 0 -
15209           "INT_MAX".
15210
15211       snddropdelay=microseconds
15212           The sender's extra delay before dropping packets. This delay is
15213           added to the default drop delay time interval value.
15214
15215           Special value -1: Do not drop packets on the sender at all.
15216
15217       payload_size=bytes
15218           Sets the maximum declared size of a packet transferred during the
15219           single call to the sending function in Live mode. Use 0 if this
15220           value isn't used (which is default in file mode).  Default is -1
15221           (automatic), which typically means MPEG-TS; if you are going to use
15222           SRT to send any different kind of payload, such as, for example,
15223           wrapping a live stream in very small frames, then you can use a
15224           bigger maximum frame size, though not greater than 1456 bytes.
15225
15226       pkt_size=bytes
15227           Alias for payload_size.
15228
15229       peerlatency=microseconds
15230           The latency value (as described in rcvlatency) that is set by the
15231           sender side as a minimum value for the receiver.
15232
15233       pbkeylen=bytes
15234           Sender encryption key length, in bytes.  Only can be set to 0, 16,
15235           24 and 32.  Enable sender encryption if not 0.  Not required on
15236           receiver (set to 0), key size obtained from sender in HaiCrypt
15237           handshake.  Default value is 0.
15238
15239       rcvlatency=microseconds
15240           The time that should elapse since the moment when the packet was
15241           sent and the moment when it's delivered to the receiver application
15242           in the receiving function.  This time should be a buffer time large
15243           enough to cover the time spent for sending, unexpectedly extended
15244           RTT time, and the time needed to retransmit the lost UDP packet.
15245           The effective latency value will be the maximum of this options'
15246           value and the value of peerlatency set by the peer side. Before
15247           version 1.3.0 this option is only available as latency.
15248
15249       recv_buffer_size=bytes
15250           Set UDP receive buffer size, expressed in bytes.
15251
15252       send_buffer_size=bytes
15253           Set UDP send buffer size, expressed in bytes.
15254
15255       timeout=microseconds
15256           Set raise error timeouts for read, write and connect operations.
15257           Note that the SRT library has internal timeouts which can be
15258           controlled separately, the value set here is only a cap on those.
15259
15260       tlpktdrop=1|0
15261           Too-late Packet Drop. When enabled on receiver, it skips missing
15262           packets that have not been delivered in time and delivers the
15263           following packets to the application when their time-to-play has
15264           come. It also sends a fake ACK to the sender. When enabled on
15265           sender and enabled on the receiving peer, the sender drops the
15266           older packets that have no chance of being delivered in time. It
15267           was automatically enabled in the sender if the receiver supports
15268           it.
15269
15270       sndbuf=bytes
15271           Set send buffer size, expressed in bytes.
15272
15273       rcvbuf=bytes
15274           Set receive buffer size, expressed in bytes.
15275
15276           Receive buffer must not be greater than ffs.
15277
15278       lossmaxttl=packets
15279           The value up to which the Reorder Tolerance may grow. When Reorder
15280           Tolerance is > 0, then packet loss report is delayed until that
15281           number of packets come in. Reorder Tolerance increases every time a
15282           "belated" packet has come, but it wasn't due to retransmission
15283           (that is, when UDP packets tend to come out of order), with the
15284           difference between the latest sequence and this packet's sequence,
15285           and not more than the value of this option. By default it's 0,
15286           which means that this mechanism is turned off, and the loss report
15287           is always sent immediately upon experiencing a "gap" in sequences.
15288
15289       minversion
15290           The minimum SRT version that is required from the peer. A
15291           connection to a peer that does not satisfy the minimum version
15292           requirement will be rejected.
15293
15294           The version format in hex is 0xXXYYZZ for x.y.z in human readable
15295           form.
15296
15297       streamid=string
15298           A string limited to 512 characters that can be set on the socket
15299           prior to connecting. This stream ID will be able to be retrieved by
15300           the listener side from the socket that is returned from srt_accept
15301           and was connected by a socket with that set stream ID. SRT does not
15302           enforce any special interpretation of the contents of this string.
15303           This option doesnXt make sense in Rendezvous connection; the result
15304           might be that simply one side will override the value from the
15305           other side and itXs the matter of luck which one would win
15306
15307       srt_streamid=string
15308           Alias for streamid to avoid conflict with ffmpeg command line
15309           option.
15310
15311       smoother=live|file
15312           The type of Smoother used for the transmission for that socket,
15313           which is responsible for the transmission and congestion control.
15314           The Smoother type must be exactly the same on both connecting
15315           parties, otherwise the connection is rejected.
15316
15317       messageapi=1|0
15318           When set, this socket uses the Message API, otherwise it uses
15319           Buffer API. Note that in live mode (see transtype) thereXs only
15320           message API available. In File mode you can chose to use one of two
15321           modes:
15322
15323           Stream API (default, when this option is false). In this mode you
15324           may send as many data as you wish with one sending instruction, or
15325           even use dedicated functions that read directly from a file. The
15326           internal facility will take care of any speed and congestion
15327           control. When receiving, you can also receive as many data as
15328           desired, the data not extracted will be waiting for the next call.
15329           There is no boundary between data portions in the Stream mode.
15330
15331           Message API. In this mode your single sending instruction passes
15332           exactly one piece of data that has boundaries (a message). Contrary
15333           to Live mode, this message may span across multiple UDP packets and
15334           the only size limitation is that it shall fit as a whole in the
15335           sending buffer. The receiver shall use as large buffer as necessary
15336           to receive the message, otherwise the message will not be given up.
15337           When the message is not complete (not all packets received or there
15338           was a packet loss) it will not be given up.
15339
15340       transtype=live|file
15341           Sets the transmission type for the socket, in particular, setting
15342           this option sets multiple other parameters to their default values
15343           as required for a particular transmission type.
15344
15345           live: Set options as for live transmission. In this mode, you
15346           should send by one sending instruction only so many data that fit
15347           in one UDP packet, and limited to the value defined first in
15348           payload_size (1316 is default in this mode). There is no speed
15349           control in this mode, only the bandwidth control, if configured, in
15350           order to not exceed the bandwidth with the overhead transmission
15351           (retransmitted and control packets).
15352
15353           file: Set options as for non-live transmission. See messageapi for
15354           further explanations
15355
15356       linger=seconds
15357           The number of seconds that the socket waits for unsent data when
15358           closing.  Default is -1. -1 means auto (off with 0 seconds in live
15359           mode, on with 180 seconds in file mode). The range for this option
15360           is integers in the 0 - "INT_MAX".
15361
15362       tsbpd=1|0
15363           When true, use Timestamp-based Packet Delivery mode. The default
15364           behavior depends on the transmission type: enabled in live mode,
15365           disabled in file mode.
15366
15367       For more information see: <https://github.com/Haivision/srt>.
15368
15369   srtp
15370       Secure Real-time Transport Protocol.
15371
15372       The accepted options are:
15373
15374       srtp_in_suite
15375       srtp_out_suite
15376           Select input and output encoding suites.
15377
15378           Supported values:
15379
15380           AES_CM_128_HMAC_SHA1_80
15381           SRTP_AES128_CM_HMAC_SHA1_80
15382           AES_CM_128_HMAC_SHA1_32
15383           SRTP_AES128_CM_HMAC_SHA1_32
15384       srtp_in_params
15385       srtp_out_params
15386           Set input and output encoding parameters, which are expressed by a
15387           base64-encoded representation of a binary block. The first 16 bytes
15388           of this binary block are used as master key, the following 14 bytes
15389           are used as master salt.
15390
15391   subfile
15392       Virtually extract a segment of a file or another stream.  The
15393       underlying stream must be seekable.
15394
15395       Accepted options:
15396
15397       start
15398           Start offset of the extracted segment, in bytes.
15399
15400       end End offset of the extracted segment, in bytes.  If set to 0,
15401           extract till end of file.
15402
15403       Examples:
15404
15405       Extract a chapter from a DVD VOB file (start and end sectors obtained
15406       externally and multiplied by 2048):
15407
15408               subfile,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
15409
15410       Play an AVI file directly from a TAR archive:
15411
15412               subfile,,start,183241728,end,366490624,,:archive.tar
15413
15414       Play a MPEG-TS file from start offset till end:
15415
15416               subfile,,start,32815239,end,0,,:video.ts
15417
15418   tee
15419       Writes the output to multiple protocols. The individual outputs are
15420       separated by |
15421
15422               tee:file://path/to/local/this.avi|file://path/to/local/that.avi
15423
15424   tcp
15425       Transmission Control Protocol.
15426
15427       The required syntax for a TCP url is:
15428
15429               tcp://<hostname>:<port>[?<options>]
15430
15431       options contains a list of &-separated options of the form key=val.
15432
15433       The list of supported options follows.
15434
15435       listen=2|1|0
15436           Listen for an incoming connection. 0 disables listen, 1 enables
15437           listen in single client mode, 2 enables listen in multi-client
15438           mode. Default value is 0.
15439
15440       timeout=microseconds
15441           Set raise error timeout, expressed in microseconds.
15442
15443           This option is only relevant in read mode: if no data arrived in
15444           more than this time interval, raise error.
15445
15446       listen_timeout=milliseconds
15447           Set listen timeout, expressed in milliseconds.
15448
15449       recv_buffer_size=bytes
15450           Set receive buffer size, expressed bytes.
15451
15452       send_buffer_size=bytes
15453           Set send buffer size, expressed bytes.
15454
15455       tcp_nodelay=1|0
15456           Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
15457
15458           Remark: Writing to the socket is currently not optimized to
15459           minimize system calls and reduces the efficiency / effect of
15460           TCP_NODELAY.
15461
15462       tcp_mss=bytes
15463           Set maximum segment size for outgoing TCP packets, expressed in
15464           bytes.
15465
15466       The following example shows how to setup a listening TCP connection
15467       with ffmpeg, which is then accessed with ffplay:
15468
15469               ffmpeg -i <input> -f <format> tcp://<hostname>:<port>?listen
15470               ffplay tcp://<hostname>:<port>
15471
15472   tls
15473       Transport Layer Security (TLS) / Secure Sockets Layer (SSL)
15474
15475       The required syntax for a TLS/SSL url is:
15476
15477               tls://<hostname>:<port>[?<options>]
15478
15479       The following parameters can be set via command line options (or in
15480       code via "AVOption"s):
15481
15482       ca_file, cafile=filename
15483           A file containing certificate authority (CA) root certificates to
15484           treat as trusted. If the linked TLS library contains a default this
15485           might not need to be specified for verification to work, but not
15486           all libraries and setups have defaults built in.  The file must be
15487           in OpenSSL PEM format.
15488
15489       tls_verify=1|0
15490           If enabled, try to verify the peer that we are communicating with.
15491           Note, if using OpenSSL, this currently only makes sure that the
15492           peer certificate is signed by one of the root certificates in the
15493           CA database, but it does not validate that the certificate actually
15494           matches the host name we are trying to connect to. (With other
15495           backends, the host name is validated as well.)
15496
15497           This is disabled by default since it requires a CA database to be
15498           provided by the caller in many cases.
15499
15500       cert_file, cert=filename
15501           A file containing a certificate to use in the handshake with the
15502           peer.  (When operating as server, in listen mode, this is more
15503           often required by the peer, while client certificates only are
15504           mandated in certain setups.)
15505
15506       key_file, key=filename
15507           A file containing the private key for the certificate.
15508
15509       listen=1|0
15510           If enabled, listen for connections on the provided port, and assume
15511           the server role in the handshake instead of the client role.
15512
15513       http_proxy
15514           The HTTP proxy to tunnel through, e.g. "http://example.com:1234".
15515           The proxy must support the CONNECT method.
15516
15517       Example command lines:
15518
15519       To create a TLS/SSL server that serves an input stream.
15520
15521               ffmpeg -i <input> -f <format> tls://<hostname>:<port>?listen&cert=<server.crt>&key=<server.key>
15522
15523       To play back a stream from the TLS/SSL server using ffplay:
15524
15525               ffplay tls://<hostname>:<port>
15526
15527   udp
15528       User Datagram Protocol.
15529
15530       The required syntax for an UDP URL is:
15531
15532               udp://<hostname>:<port>[?<options>]
15533
15534       options contains a list of &-separated options of the form key=val.
15535
15536       In case threading is enabled on the system, a circular buffer is used
15537       to store the incoming data, which allows one to reduce loss of data due
15538       to UDP socket buffer overruns. The fifo_size and overrun_nonfatal
15539       options are related to this buffer.
15540
15541       The list of supported options follows.
15542
15543       buffer_size=size
15544           Set the UDP maximum socket buffer size in bytes. This is used to
15545           set either the receive or send buffer size, depending on what the
15546           socket is used for.  Default is 32 KB for output, 384 KB for input.
15547           See also fifo_size.
15548
15549       bitrate=bitrate
15550           If set to nonzero, the output will have the specified constant
15551           bitrate if the input has enough packets to sustain it.
15552
15553       burst_bits=bits
15554           When using bitrate this specifies the maximum number of bits in
15555           packet bursts.
15556
15557       localport=port
15558           Override the local UDP port to bind with.
15559
15560       localaddr=addr
15561           Local IP address of a network interface used for sending packets or
15562           joining multicast groups.
15563
15564       pkt_size=size
15565           Set the size in bytes of UDP packets.
15566
15567       reuse=1|0
15568           Explicitly allow or disallow reusing UDP sockets.
15569
15570       ttl=ttl
15571           Set the time to live value (for multicast only).
15572
15573       connect=1|0
15574           Initialize the UDP socket with "connect()". In this case, the
15575           destination address can't be changed with ff_udp_set_remote_url
15576           later.  If the destination address isn't known at the start, this
15577           option can be specified in ff_udp_set_remote_url, too.  This allows
15578           finding out the source address for the packets with getsockname,
15579           and makes writes return with AVERROR(ECONNREFUSED) if "destination
15580           unreachable" is received.  For receiving, this gives the benefit of
15581           only receiving packets from the specified peer address/port.
15582
15583       sources=address[,address]
15584           Only receive packets sent from the specified addresses. In case of
15585           multicast, also subscribe to multicast traffic coming from these
15586           addresses only.
15587
15588       block=address[,address]
15589           Ignore packets sent from the specified addresses. In case of
15590           multicast, also exclude the source addresses in the multicast
15591           subscription.
15592
15593       fifo_size=units
15594           Set the UDP receiving circular buffer size, expressed as a number
15595           of packets with size of 188 bytes. If not specified defaults to
15596           7*4096.
15597
15598       overrun_nonfatal=1|0
15599           Survive in case of UDP receiving circular buffer overrun. Default
15600           value is 0.
15601
15602       timeout=microseconds
15603           Set raise error timeout, expressed in microseconds.
15604
15605           This option is only relevant in read mode: if no data arrived in
15606           more than this time interval, raise error.
15607
15608       broadcast=1|0
15609           Explicitly allow or disallow UDP broadcasting.
15610
15611           Note that broadcasting may not work properly on networks having a
15612           broadcast storm protection.
15613
15614       Examples
15615
15616       •   Use ffmpeg to stream over UDP to a remote endpoint:
15617
15618                   ffmpeg -i <input> -f <format> udp://<hostname>:<port>
15619
15620       •   Use ffmpeg to stream in mpegts format over UDP using 188 sized UDP
15621           packets, using a large input buffer:
15622
15623                   ffmpeg -i <input> -f mpegts udp://<hostname>:<port>?pkt_size=188&buffer_size=65535
15624
15625       •   Use ffmpeg to receive over UDP from a remote endpoint:
15626
15627                   ffmpeg -i udp://[<multicast-address>]:<port> ...
15628
15629   unix
15630       Unix local socket
15631
15632       The required syntax for a Unix socket URL is:
15633
15634               unix://<filepath>
15635
15636       The following parameters can be set via command line options (or in
15637       code via "AVOption"s):
15638
15639       timeout
15640           Timeout in ms.
15641
15642       listen
15643           Create the Unix socket in listening mode.
15644
15645   zmq
15646       ZeroMQ asynchronous messaging using the libzmq library.
15647
15648       This library supports unicast streaming to multiple clients without
15649       relying on an external server.
15650
15651       The required syntax for streaming or connecting to a stream is:
15652
15653               zmq:tcp://ip-address:port
15654
15655       Example: Create a localhost stream on port 5555:
15656
15657               ffmpeg -re -i input -f mpegts zmq:tcp://127.0.0.1:5555
15658
15659       Multiple clients may connect to the stream using:
15660
15661               ffplay zmq:tcp://127.0.0.1:5555
15662
15663       Streaming to multiple clients is implemented using a ZeroMQ Pub-Sub
15664       pattern.  The server side binds to a port and publishes data. Clients
15665       connect to the server (via IP address/port) and subscribe to the
15666       stream. The order in which the server and client start generally does
15667       not matter.
15668
15669       ffmpeg must be compiled with the --enable-libzmq option to support this
15670       protocol.
15671
15672       Options can be set on the ffmpeg/ffplay command line. The following
15673       options are supported:
15674
15675       pkt_size
15676           Forces the maximum packet size for sending/receiving data. The
15677           default value is 131,072 bytes. On the server side, this sets the
15678           maximum size of sent packets via ZeroMQ. On the clients, it sets an
15679           internal buffer size for receiving packets. Note that pkt_size on
15680           the clients should be equal to or greater than pkt_size on the
15681           server. Otherwise the received message may be truncated causing
15682           decoding errors.
15683

DEVICE OPTIONS

15685       The libavdevice library provides the same interface as libavformat.
15686       Namely, an input device is considered like a demuxer, and an output
15687       device like a muxer, and the interface and generic device options are
15688       the same provided by libavformat (see the ffmpeg-formats manual).
15689
15690       In addition each input or output device may support so-called private
15691       options, which are specific for that component.
15692
15693       Options may be set by specifying -option value in the FFmpeg tools, or
15694       by setting the value explicitly in the device "AVFormatContext" options
15695       or using the libavutil/opt.h API for programmatic use.
15696

INPUT DEVICES

15698       Input devices are configured elements in FFmpeg which enable accessing
15699       the data coming from a multimedia device attached to your system.
15700
15701       When you configure your FFmpeg build, all the supported input devices
15702       are enabled by default. You can list all available ones using the
15703       configure option "--list-indevs".
15704
15705       You can disable all the input devices using the configure option
15706       "--disable-indevs", and selectively enable an input device using the
15707       option "--enable-indev=INDEV", or you can disable a particular input
15708       device using the option "--disable-indev=INDEV".
15709
15710       The option "-devices" of the ff* tools will display the list of
15711       supported input devices.
15712
15713       A description of the currently available input devices follows.
15714
15715   alsa
15716       ALSA (Advanced Linux Sound Architecture) input device.
15717
15718       To enable this input device during configuration you need libasound
15719       installed on your system.
15720
15721       This device allows capturing from an ALSA device. The name of the
15722       device to capture has to be an ALSA card identifier.
15723
15724       An ALSA identifier has the syntax:
15725
15726               hw:<CARD>[,<DEV>[,<SUBDEV>]]
15727
15728       where the DEV and SUBDEV components are optional.
15729
15730       The three arguments (in order: CARD,DEV,SUBDEV) specify card number or
15731       identifier, device number and subdevice number (-1 means any).
15732
15733       To see the list of cards currently recognized by your system check the
15734       files /proc/asound/cards and /proc/asound/devices.
15735
15736       For example to capture with ffmpeg from an ALSA device with card id 0,
15737       you may run the command:
15738
15739               ffmpeg -f alsa -i hw:0 alsaout.wav
15740
15741       For more information see:
15742       <http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html>
15743
15744       Options
15745
15746       sample_rate
15747           Set the sample rate in Hz. Default is 48000.
15748
15749       channels
15750           Set the number of channels. Default is 2.
15751
15752   android_camera
15753       Android camera input device.
15754
15755       This input devices uses the Android Camera2 NDK API which is available
15756       on devices with API level 24+. The availability of android_camera is
15757       autodetected during configuration.
15758
15759       This device allows capturing from all cameras on an Android device,
15760       which are integrated into the Camera2 NDK API.
15761
15762       The available cameras are enumerated internally and can be selected
15763       with the camera_index parameter. The input file string is discarded.
15764
15765       Generally the back facing camera has index 0 while the front facing
15766       camera has index 1.
15767
15768       Options
15769
15770       video_size
15771           Set the video size given as a string such as 640x480 or hd720.
15772           Falls back to the first available configuration reported by Android
15773           if requested video size is not available or by default.
15774
15775       framerate
15776           Set the video framerate.  Falls back to the first available
15777           configuration reported by Android if requested framerate is not
15778           available or by default (-1).
15779
15780       camera_index
15781           Set the index of the camera to use. Default is 0.
15782
15783       input_queue_size
15784           Set the maximum number of frames to buffer. Default is 5.
15785
15786   avfoundation
15787       AVFoundation input device.
15788
15789       AVFoundation is the currently recommended framework by Apple for
15790       streamgrabbing on OSX >= 10.7 as well as on iOS.
15791
15792       The input filename has to be given in the following syntax:
15793
15794               -i "[[VIDEO]:[AUDIO]]"
15795
15796       The first entry selects the video input while the latter selects the
15797       audio input.  The stream has to be specified by the device name or the
15798       device index as shown by the device list.  Alternatively, the video
15799       and/or audio input device can be chosen by index using the
15800
15801           B<-video_device_index E<lt>INDEXE<gt>>
15802
15803       and/or
15804
15805           B<-audio_device_index E<lt>INDEXE<gt>>
15806
15807       , overriding any device name or index given in the input filename.
15808
15809       All available devices can be enumerated by using -list_devices true,
15810       listing all device names and corresponding indices.
15811
15812       There are two device name aliases:
15813
15814       "default"
15815           Select the AVFoundation default device of the corresponding type.
15816
15817       "none"
15818           Do not record the corresponding media type.  This is equivalent to
15819           specifying an empty device name or index.
15820
15821       Options
15822
15823       AVFoundation supports the following options:
15824
15825       -list_devices <TRUE|FALSE>
15826           If set to true, a list of all available input devices is given
15827           showing all device names and indices.
15828
15829       -video_device_index <INDEX>
15830           Specify the video device by its index. Overrides anything given in
15831           the input filename.
15832
15833       -audio_device_index <INDEX>
15834           Specify the audio device by its index. Overrides anything given in
15835           the input filename.
15836
15837       -pixel_format <FORMAT>
15838           Request the video device to use a specific pixel format.  If the
15839           specified format is not supported, a list of available formats is
15840           given and the first one in this list is used instead. Available
15841           pixel formats are: "monob, rgb555be, rgb555le, rgb565be, rgb565le,
15842           rgb24, bgr24, 0rgb, bgr0, 0bgr, rgb0,
15843            bgr48be, uyvy422, yuva444p, yuva444p16le, yuv444p, yuv422p16,
15844           yuv422p10, yuv444p10,
15845            yuv420p, nv12, yuyv422, gray"
15846
15847       -framerate
15848           Set the grabbing frame rate. Default is "ntsc", corresponding to a
15849           frame rate of "30000/1001".
15850
15851       -video_size
15852           Set the video frame size.
15853
15854       -capture_cursor
15855           Capture the mouse pointer. Default is 0.
15856
15857       -capture_mouse_clicks
15858           Capture the screen mouse clicks. Default is 0.
15859
15860       -capture_raw_data
15861           Capture the raw device data. Default is 0.  Using this option may
15862           result in receiving the underlying data delivered to the
15863           AVFoundation framework. E.g. for muxed devices that sends raw DV
15864           data to the framework (like tape-based camcorders), setting this
15865           option to false results in extracted video frames captured in the
15866           designated pixel format only. Setting this option to true results
15867           in receiving the raw DV stream untouched.
15868
15869       Examples
15870
15871       •   Print the list of AVFoundation supported devices and exit:
15872
15873                   $ ffmpeg -f avfoundation -list_devices true -i ""
15874
15875       •   Record video from video device 0 and audio from audio device 0 into
15876           out.avi:
15877
15878                   $ ffmpeg -f avfoundation -i "0:0" out.avi
15879
15880       •   Record video from video device 2 and audio from audio device 1 into
15881           out.avi:
15882
15883                   $ ffmpeg -f avfoundation -video_device_index 2 -i ":1" out.avi
15884
15885       •   Record video from the system default video device using the pixel
15886           format bgr0 and do not record any audio into out.avi:
15887
15888                   $ ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi
15889
15890       •   Record raw DV data from a suitable input device and write the
15891           output into out.dv:
15892
15893                   $ ffmpeg -f avfoundation -capture_raw_data true -i "zr100:none" out.dv
15894
15895   bktr
15896       BSD video input device.
15897
15898       Options
15899
15900       framerate
15901           Set the frame rate.
15902
15903       video_size
15904           Set the video frame size. Default is "vga".
15905
15906       standard
15907           Available values are:
15908
15909           pal
15910           ntsc
15911           secam
15912           paln
15913           palm
15914           ntscj
15915
15916   decklink
15917       The decklink input device provides capture capabilities for Blackmagic
15918       DeckLink devices.
15919
15920       To enable this input device, you need the Blackmagic DeckLink SDK and
15921       you need to configure with the appropriate "--extra-cflags" and
15922       "--extra-ldflags".  On Windows, you need to run the IDL files through
15923       widl.
15924
15925       DeckLink is very picky about the formats it supports. Pixel format of
15926       the input can be set with raw_format.  Framerate and video size must be
15927       determined for your device with -list_formats 1. Audio sample rate is
15928       always 48 kHz and the number of channels can be 2, 8 or 16. Note that
15929       all audio channels are bundled in one single audio track.
15930
15931       Options
15932
15933       list_devices
15934           If set to true, print a list of devices and exit.  Defaults to
15935           false. This option is deprecated, please use the "-sources" option
15936           of ffmpeg to list the available input devices.
15937
15938       list_formats
15939           If set to true, print a list of supported formats and exit.
15940           Defaults to false.
15941
15942       format_code <FourCC>
15943           This sets the input video format to the format given by the FourCC.
15944           To see the supported values of your device(s) use list_formats.
15945           Note that there is a FourCC 'pal ' that can also be used as pal (3
15946           letters).  Default behavior is autodetection of the input video
15947           format, if the hardware supports it.
15948
15949       raw_format
15950           Set the pixel format of the captured video.  Available values are:
15951
15952           auto
15953               This is the default which means 8-bit YUV 422 or 8-bit ARGB if
15954               format autodetection is used, 8-bit YUV 422 otherwise.
15955
15956           uyvy422
15957               8-bit YUV 422.
15958
15959           yuv422p10
15960               10-bit YUV 422.
15961
15962           argb
15963               8-bit RGB.
15964
15965           bgra
15966               8-bit RGB.
15967
15968           rgb10
15969               10-bit RGB.
15970
15971       teletext_lines
15972           If set to nonzero, an additional teletext stream will be captured
15973           from the vertical ancillary data. Both SD PAL (576i) and HD (1080i
15974           or 1080p) sources are supported. In case of HD sources, OP47
15975           packets are decoded.
15976
15977           This option is a bitmask of the SD PAL VBI lines captured,
15978           specifically lines 6 to 22, and lines 318 to 335. Line 6 is the LSB
15979           in the mask. Selected lines which do not contain teletext
15980           information will be ignored. You can use the special all constant
15981           to select all possible lines, or standard to skip lines 6, 318 and
15982           319, which are not compatible with all receivers.
15983
15984           For SD sources, ffmpeg needs to be compiled with
15985           "--enable-libzvbi". For HD sources, on older (pre-4K) DeckLink card
15986           models you have to capture in 10 bit mode.
15987
15988       channels
15989           Defines number of audio channels to capture. Must be 2, 8 or 16.
15990           Defaults to 2.
15991
15992       duplex_mode
15993           Sets the decklink device duplex/profile mode. Must be unset, half,
15994           full, one_sub_device_full, one_sub_device_half,
15995           two_sub_device_full, four_sub_device_half Defaults to unset.
15996
15997           Note: DeckLink SDK 11.0 have replaced the duplex property by a
15998           profile property.  For the DeckLink Duo 2 and DeckLink Quad 2, a
15999           profile is shared between any 2 sub-devices that utilize the same
16000           connectors. For the DeckLink 8K Pro, a profile is shared between
16001           all 4 sub-devices. So DeckLink 8K Pro support four profiles.
16002
16003           Valid profile modes for DeckLink 8K Pro(with DeckLink SDK >= 11.0):
16004           one_sub_device_full, one_sub_device_half, two_sub_device_full,
16005           four_sub_device_half
16006
16007           Valid profile modes for DeckLink Quad 2 and DeckLink Duo 2: half,
16008           full
16009
16010       timecode_format
16011           Timecode type to include in the frame and video stream metadata.
16012           Must be none, rp188vitc, rp188vitc2, rp188ltc, rp188hfr, rp188any,
16013           vitc, vitc2, or serial.  Defaults to none (not included).
16014
16015           In order to properly support 50/60 fps timecodes, the ordering of
16016           the queried timecode types for rp188any is HFR, VITC1, VITC2 and
16017           LTC for >30 fps content. Note that this is slightly different to
16018           the ordering used by the DeckLink API, which is HFR, VITC1, LTC,
16019           VITC2.
16020
16021       video_input
16022           Sets the video input source. Must be unset, sdi, hdmi, optical_sdi,
16023           component, composite or s_video.  Defaults to unset.
16024
16025       audio_input
16026           Sets the audio input source. Must be unset, embedded, aes_ebu,
16027           analog, analog_xlr, analog_rca or microphone. Defaults to unset.
16028
16029       video_pts
16030           Sets the video packet timestamp source. Must be video, audio,
16031           reference, wallclock or abs_wallclock.  Defaults to video.
16032
16033       audio_pts
16034           Sets the audio packet timestamp source. Must be video, audio,
16035           reference, wallclock or abs_wallclock.  Defaults to audio.
16036
16037       draw_bars
16038           If set to true, color bars are drawn in the event of a signal loss.
16039           Defaults to true.
16040
16041       queue_size
16042           Sets maximum input buffer size in bytes. If the buffering reaches
16043           this value, incoming frames will be dropped.  Defaults to
16044           1073741824.
16045
16046       audio_depth
16047           Sets the audio sample bit depth. Must be 16 or 32.  Defaults to 16.
16048
16049       decklink_copyts
16050           If set to true, timestamps are forwarded as they are without
16051           removing the initial offset.  Defaults to false.
16052
16053       timestamp_align
16054           Capture start time alignment in seconds. If set to nonzero, input
16055           frames are dropped till the system timestamp aligns with configured
16056           value.  Alignment difference of up to one frame duration is
16057           tolerated.  This is useful for maintaining input synchronization
16058           across N different hardware devices deployed for 'N-way'
16059           redundancy. The system time of different hardware devices should be
16060           synchronized with protocols such as NTP or PTP, before using this
16061           option.  Note that this method is not foolproof. In some border
16062           cases input synchronization may not happen due to thread scheduling
16063           jitters in the OS.  Either sync could go wrong by 1 frame or in a
16064           rarer case timestamp_align seconds.  Defaults to 0.
16065
16066       wait_for_tc (bool)
16067           Drop frames till a frame with timecode is received. Sometimes
16068           serial timecode isn't received with the first input frame. If that
16069           happens, the stored stream timecode will be inaccurate. If this
16070           option is set to true, input frames are dropped till a frame with
16071           timecode is received.  Option timecode_format must be specified.
16072           Defaults to false.
16073
16074       enable_klv(bool)
16075           If set to true, extracts KLV data from VANC and outputs KLV
16076           packets.  KLV VANC packets are joined based on MID and PSC fields
16077           and aggregated into one KLV packet.  Defaults to false.
16078
16079       Examples
16080
16081       •   List input devices:
16082
16083                   ffmpeg -sources decklink
16084
16085       •   List supported formats:
16086
16087                   ffmpeg -f decklink -list_formats 1 -i 'Intensity Pro'
16088
16089       •   Capture video clip at 1080i50:
16090
16091                   ffmpeg -format_code Hi50 -f decklink -i 'Intensity Pro' -c:a copy -c:v copy output.avi
16092
16093       •   Capture video clip at 1080i50 10 bit:
16094
16095                   ffmpeg -raw_format yuv422p10 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
16096
16097       •   Capture video clip at 1080i50 with 16 audio channels:
16098
16099                   ffmpeg -channels 16 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
16100
16101   dshow
16102       Windows DirectShow input device.
16103
16104       DirectShow support is enabled when FFmpeg is built with the mingw-w64
16105       project.  Currently only audio and video devices are supported.
16106
16107       Multiple devices may be opened as separate inputs, but they may also be
16108       opened on the same input, which should improve synchronism between
16109       them.
16110
16111       The input name should be in the format:
16112
16113               <TYPE>=<NAME>[:<TYPE>=<NAME>]
16114
16115       where TYPE can be either audio or video, and NAME is the device's name
16116       or alternative name..
16117
16118       Options
16119
16120       If no options are specified, the device's defaults are used.  If the
16121       device does not support the requested options, it will fail to open.
16122
16123       video_size
16124           Set the video size in the captured video.
16125
16126       framerate
16127           Set the frame rate in the captured video.
16128
16129       sample_rate
16130           Set the sample rate (in Hz) of the captured audio.
16131
16132       sample_size
16133           Set the sample size (in bits) of the captured audio.
16134
16135       channels
16136           Set the number of channels in the captured audio.
16137
16138       list_devices
16139           If set to true, print a list of devices and exit.
16140
16141       list_options
16142           If set to true, print a list of selected device's options and exit.
16143
16144       video_device_number
16145           Set video device number for devices with the same name (starts at
16146           0, defaults to 0).
16147
16148       audio_device_number
16149           Set audio device number for devices with the same name (starts at
16150           0, defaults to 0).
16151
16152       pixel_format
16153           Select pixel format to be used by DirectShow. This may only be set
16154           when the video codec is not set or set to rawvideo.
16155
16156       audio_buffer_size
16157           Set audio device buffer size in milliseconds (which can directly
16158           impact latency, depending on the device).  Defaults to using the
16159           audio device's default buffer size (typically some multiple of
16160           500ms).  Setting this value too low can degrade performance.  See
16161           also
16162           <http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx>
16163
16164       video_pin_name
16165           Select video capture pin to use by name or alternative name.
16166
16167       audio_pin_name
16168           Select audio capture pin to use by name or alternative name.
16169
16170       crossbar_video_input_pin_number
16171           Select video input pin number for crossbar device. This will be
16172           routed to the crossbar device's Video Decoder output pin.  Note
16173           that changing this value can affect future invocations (sets a new
16174           default) until system reboot occurs.
16175
16176       crossbar_audio_input_pin_number
16177           Select audio input pin number for crossbar device. This will be
16178           routed to the crossbar device's Audio Decoder output pin.  Note
16179           that changing this value can affect future invocations (sets a new
16180           default) until system reboot occurs.
16181
16182       show_video_device_dialog
16183           If set to true, before capture starts, popup a display dialog to
16184           the end user, allowing them to change video filter properties and
16185           configurations manually.  Note that for crossbar devices, adjusting
16186           values in this dialog may be needed at times to toggle between PAL
16187           (25 fps) and NTSC (29.97) input frame rates, sizes, interlacing,
16188           etc.  Changing these values can enable different scan rates/frame
16189           rates and avoiding green bars at the bottom, flickering scan lines,
16190           etc.  Note that with some devices, changing these properties can
16191           also affect future invocations (sets new defaults) until system
16192           reboot occurs.
16193
16194       show_audio_device_dialog
16195           If set to true, before capture starts, popup a display dialog to
16196           the end user, allowing them to change audio filter properties and
16197           configurations manually.
16198
16199       show_video_crossbar_connection_dialog
16200           If set to true, before capture starts, popup a display dialog to
16201           the end user, allowing them to manually modify crossbar pin
16202           routings, when it opens a video device.
16203
16204       show_audio_crossbar_connection_dialog
16205           If set to true, before capture starts, popup a display dialog to
16206           the end user, allowing them to manually modify crossbar pin
16207           routings, when it opens an audio device.
16208
16209       show_analog_tv_tuner_dialog
16210           If set to true, before capture starts, popup a display dialog to
16211           the end user, allowing them to manually modify TV channels and
16212           frequencies.
16213
16214       show_analog_tv_tuner_audio_dialog
16215           If set to true, before capture starts, popup a display dialog to
16216           the end user, allowing them to manually modify TV audio (like mono
16217           vs. stereo, Language A,B or C).
16218
16219       audio_device_load
16220           Load an audio capture filter device from file instead of searching
16221           it by name. It may load additional parameters too, if the filter
16222           supports the serialization of its properties to.  To use this an
16223           audio capture source has to be specified, but it can be anything
16224           even fake one.
16225
16226       audio_device_save
16227           Save the currently used audio capture filter device and its
16228           parameters (if the filter supports it) to a file.  If a file with
16229           the same name exists it will be overwritten.
16230
16231       video_device_load
16232           Load a video capture filter device from file instead of searching
16233           it by name. It may load additional parameters too, if the filter
16234           supports the serialization of its properties to.  To use this a
16235           video capture source has to be specified, but it can be anything
16236           even fake one.
16237
16238       video_device_save
16239           Save the currently used video capture filter device and its
16240           parameters (if the filter supports it) to a file.  If a file with
16241           the same name exists it will be overwritten.
16242
16243       use_video_device_timestamps
16244           If set to false, the timestamp for video frames will be derived
16245           from the wallclock instead of the timestamp provided by the capture
16246           device. This allows working around devices that provide unreliable
16247           timestamps.
16248
16249       Examples
16250
16251       •   Print the list of DirectShow supported devices and exit:
16252
16253                   $ ffmpeg -list_devices true -f dshow -i dummy
16254
16255       •   Open video device Camera:
16256
16257                   $ ffmpeg -f dshow -i video="Camera"
16258
16259       •   Open second video device with name Camera:
16260
16261                   $ ffmpeg -f dshow -video_device_number 1 -i video="Camera"
16262
16263       •   Open video device Camera and audio device Microphone:
16264
16265                   $ ffmpeg -f dshow -i video="Camera":audio="Microphone"
16266
16267       •   Print the list of supported options in selected device and exit:
16268
16269                   $ ffmpeg -list_options true -f dshow -i video="Camera"
16270
16271       •   Specify pin names to capture by name or alternative name, specify
16272           alternative device name:
16273
16274                   $ 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"
16275
16276       •   Configure a crossbar device, specifying crossbar pins, allow user
16277           to adjust video capture properties at startup:
16278
16279                   $ ffmpeg -f dshow -show_video_device_dialog true -crossbar_video_input_pin_number 0
16280                        -crossbar_audio_input_pin_number 3 -i video="AVerMedia BDA Analog Capture":audio="AVerMedia BDA Analog Capture"
16281
16282   fbdev
16283       Linux framebuffer input device.
16284
16285       The Linux framebuffer is a graphic hardware-independent abstraction
16286       layer to show graphics on a computer monitor, typically on the console.
16287       It is accessed through a file device node, usually /dev/fb0.
16288
16289       For more detailed information read the file
16290       Documentation/fb/framebuffer.txt included in the Linux source tree.
16291
16292       See also <http://linux-fbdev.sourceforge.net/>, and fbset(1).
16293
16294       To record from the framebuffer device /dev/fb0 with ffmpeg:
16295
16296               ffmpeg -f fbdev -framerate 10 -i /dev/fb0 out.avi
16297
16298       You can take a single screenshot image with the command:
16299
16300               ffmpeg -f fbdev -framerate 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg
16301
16302       Options
16303
16304       framerate
16305           Set the frame rate. Default is 25.
16306
16307   gdigrab
16308       Win32 GDI-based screen capture device.
16309
16310       This device allows you to capture a region of the display on Windows.
16311
16312       There are two options for the input filename:
16313
16314               desktop
16315
16316       or
16317
16318               title=<window_title>
16319
16320       The first option will capture the entire desktop, or a fixed region of
16321       the desktop. The second option will instead capture the contents of a
16322       single window, regardless of its position on the screen.
16323
16324       For example, to grab the entire desktop using ffmpeg:
16325
16326               ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg
16327
16328       Grab a 640x480 region at position "10,20":
16329
16330               ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg
16331
16332       Grab the contents of the window named "Calculator"
16333
16334               ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg
16335
16336       Options
16337
16338       draw_mouse
16339           Specify whether to draw the mouse pointer. Use the value 0 to not
16340           draw the pointer. Default value is 1.
16341
16342       framerate
16343           Set the grabbing frame rate. Default value is "ntsc", corresponding
16344           to a frame rate of "30000/1001".
16345
16346       show_region
16347           Show grabbed region on screen.
16348
16349           If show_region is specified with 1, then the grabbing region will
16350           be indicated on screen. With this option, it is easy to know what
16351           is being grabbed if only a portion of the screen is grabbed.
16352
16353           Note that show_region is incompatible with grabbing the contents of
16354           a single window.
16355
16356           For example:
16357
16358                   ffmpeg -f gdigrab -show_region 1 -framerate 6 -video_size cif -offset_x 10 -offset_y 20 -i desktop out.mpg
16359
16360       video_size
16361           Set the video frame size. The default is to capture the full screen
16362           if desktop is selected, or the full window size if
16363           title=window_title is selected.
16364
16365       offset_x
16366           When capturing a region with video_size, set the distance from the
16367           left edge of the screen or desktop.
16368
16369           Note that the offset calculation is from the top left corner of the
16370           primary monitor on Windows. If you have a monitor positioned to the
16371           left of your primary monitor, you will need to use a negative
16372           offset_x value to move the region to that monitor.
16373
16374       offset_y
16375           When capturing a region with video_size, set the distance from the
16376           top edge of the screen or desktop.
16377
16378           Note that the offset calculation is from the top left corner of the
16379           primary monitor on Windows. If you have a monitor positioned above
16380           your primary monitor, you will need to use a negative offset_y
16381           value to move the region to that monitor.
16382
16383   iec61883
16384       FireWire DV/HDV input device using libiec61883.
16385
16386       To enable this input device, you need libiec61883, libraw1394 and
16387       libavc1394 installed on your system. Use the configure option
16388       "--enable-libiec61883" to compile with the device enabled.
16389
16390       The iec61883 capture device supports capturing from a video device
16391       connected via IEEE1394 (FireWire), using libiec61883 and the new Linux
16392       FireWire stack (juju). This is the default DV/HDV input method in Linux
16393       Kernel 2.6.37 and later, since the old FireWire stack was removed.
16394
16395       Specify the FireWire port to be used as input file, or "auto" to choose
16396       the first port connected.
16397
16398       Options
16399
16400       dvtype
16401           Override autodetection of DV/HDV. This should only be used if auto
16402           detection does not work, or if usage of a different device type
16403           should be prohibited. Treating a DV device as HDV (or vice versa)
16404           will not work and result in undefined behavior.  The values auto,
16405           dv and hdv are supported.
16406
16407       dvbuffer
16408           Set maximum size of buffer for incoming data, in frames. For DV,
16409           this is an exact value. For HDV, it is not frame exact, since HDV
16410           does not have a fixed frame size.
16411
16412       dvguid
16413           Select the capture device by specifying its GUID. Capturing will
16414           only be performed from the specified device and fails if no device
16415           with the given GUID is found. This is useful to select the input if
16416           multiple devices are connected at the same time.  Look at
16417           /sys/bus/firewire/devices to find out the GUIDs.
16418
16419       Examples
16420
16421       •   Grab and show the input of a FireWire DV/HDV device.
16422
16423                   ffplay -f iec61883 -i auto
16424
16425       •   Grab and record the input of a FireWire DV/HDV device, using a
16426           packet buffer of 100000 packets if the source is HDV.
16427
16428                   ffmpeg -f iec61883 -i auto -dvbuffer 100000 out.mpg
16429
16430   jack
16431       JACK input device.
16432
16433       To enable this input device during configuration you need libjack
16434       installed on your system.
16435
16436       A JACK input device creates one or more JACK writable clients, one for
16437       each audio channel, with name client_name:input_N, where client_name is
16438       the name provided by the application, and N is a number which
16439       identifies the channel.  Each writable client will send the acquired
16440       data to the FFmpeg input device.
16441
16442       Once you have created one or more JACK readable clients, you need to
16443       connect them to one or more JACK writable clients.
16444
16445       To connect or disconnect JACK clients you can use the jack_connect and
16446       jack_disconnect programs, or do it through a graphical interface, for
16447       example with qjackctl.
16448
16449       To list the JACK clients and their properties you can invoke the
16450       command jack_lsp.
16451
16452       Follows an example which shows how to capture a JACK readable client
16453       with ffmpeg.
16454
16455               # Create a JACK writable client with name "ffmpeg".
16456               $ ffmpeg -f jack -i ffmpeg -y out.wav
16457
16458               # Start the sample jack_metro readable client.
16459               $ jack_metro -b 120 -d 0.2 -f 4000
16460
16461               # List the current JACK clients.
16462               $ jack_lsp -c
16463               system:capture_1
16464               system:capture_2
16465               system:playback_1
16466               system:playback_2
16467               ffmpeg:input_1
16468               metro:120_bpm
16469
16470               # Connect metro to the ffmpeg writable client.
16471               $ jack_connect metro:120_bpm ffmpeg:input_1
16472
16473       For more information read: <http://jackaudio.org/>
16474
16475       Options
16476
16477       channels
16478           Set the number of channels. Default is 2.
16479
16480   kmsgrab
16481       KMS video input device.
16482
16483       Captures the KMS scanout framebuffer associated with a specified CRTC
16484       or plane as a DRM object that can be passed to other hardware
16485       functions.
16486
16487       Requires either DRM master or CAP_SYS_ADMIN to run.
16488
16489       If you don't understand what all of that means, you probably don't want
16490       this.  Look at x11grab instead.
16491
16492       Options
16493
16494       device
16495           DRM device to capture on.  Defaults to /dev/dri/card0.
16496
16497       format
16498           Pixel format of the framebuffer.  This can be autodetected if you
16499           are running Linux 5.7 or later, but needs to be provided for
16500           earlier versions.  Defaults to bgr0, which is the most common
16501           format used by the Linux console and Xorg X server.
16502
16503       format_modifier
16504           Format modifier to signal on output frames.  This is necessary to
16505           import correctly into some APIs.  It can be autodetected if you are
16506           running Linux 5.7 or later, but will need to be provided explicitly
16507           when needed in earlier versions.  See the libdrm documentation for
16508           possible values.
16509
16510       crtc_id
16511           KMS CRTC ID to define the capture source.  The first active plane
16512           on the given CRTC will be used.
16513
16514       plane_id
16515           KMS plane ID to define the capture source.  Defaults to the first
16516           active plane found if neither crtc_id nor plane_id are specified.
16517
16518       framerate
16519           Framerate to capture at.  This is not synchronised to any page
16520           flipping or framebuffer changes - it just defines the interval at
16521           which the framebuffer is sampled.  Sampling faster than the
16522           framebuffer update rate will generate independent frames with the
16523           same content.  Defaults to 30.
16524
16525       Examples
16526
16527       •   Capture from the first active plane, download the result to normal
16528           frames and encode.  This will only work if the framebuffer is both
16529           linear and mappable - if not, the result may be scrambled or fail
16530           to download.
16531
16532                   ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4
16533
16534       •   Capture from CRTC ID 42 at 60fps, map the result to VAAPI, convert
16535           to NV12 and encode as H.264.
16536
16537                   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
16538
16539       •   To capture only part of a plane the output can be cropped - this
16540           can be used to capture a single window, as long as it has a known
16541           absolute position and size.  For example, to capture and encode the
16542           middle quarter of a 1920x1080 plane:
16543
16544                   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
16545
16546   lavfi
16547       Libavfilter input virtual device.
16548
16549       This input device reads data from the open output pads of a libavfilter
16550       filtergraph.
16551
16552       For each filtergraph open output, the input device will create a
16553       corresponding stream which is mapped to the generated output. Currently
16554       only video data is supported. The filtergraph is specified through the
16555       option graph.
16556
16557       Options
16558
16559       graph
16560           Specify the filtergraph to use as input. Each video open output
16561           must be labelled by a unique string of the form "outN", where N is
16562           a number starting from 0 corresponding to the mapped input stream
16563           generated by the device.  The first unlabelled output is
16564           automatically assigned to the "out0" label, but all the others need
16565           to be specified explicitly.
16566
16567           The suffix "+subcc" can be appended to the output label to create
16568           an extra stream with the closed captions packets attached to that
16569           output (experimental; only for EIA-608 / CEA-708 for now).  The
16570           subcc streams are created after all the normal streams, in the
16571           order of the corresponding stream.  For example, if there is
16572           "out19+subcc", "out7+subcc" and up to "out42", the stream #43 is
16573           subcc for stream #7 and stream #44 is subcc for stream #19.
16574
16575           If not specified defaults to the filename specified for the input
16576           device.
16577
16578       graph_file
16579           Set the filename of the filtergraph to be read and sent to the
16580           other filters. Syntax of the filtergraph is the same as the one
16581           specified by the option graph.
16582
16583       dumpgraph
16584           Dump graph to stderr.
16585
16586       Examples
16587
16588       •   Create a color video stream and play it back with ffplay:
16589
16590                   ffplay -f lavfi -graph "color=c=pink [out0]" dummy
16591
16592       •   As the previous example, but use filename for specifying the graph
16593           description, and omit the "out0" label:
16594
16595                   ffplay -f lavfi color=c=pink
16596
16597       •   Create three different video test filtered sources and play them:
16598
16599                   ffplay -f lavfi -graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
16600
16601       •   Read an audio stream from a file using the amovie source and play
16602           it back with ffplay:
16603
16604                   ffplay -f lavfi "amovie=test.wav"
16605
16606       •   Read an audio stream and a video stream and play it back with
16607           ffplay:
16608
16609                   ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
16610
16611       •   Dump decoded frames to images and closed captions to a file
16612           (experimental):
16613
16614                   ffmpeg -f lavfi -i "movie=test.ts[out0+subcc]" -map v frame%08d.png -map s -c copy -f rawvideo subcc.bin
16615
16616   libcdio
16617       Audio-CD input device based on libcdio.
16618
16619       To enable this input device during configuration you need libcdio
16620       installed on your system. It requires the configure option
16621       "--enable-libcdio".
16622
16623       This device allows playing and grabbing from an Audio-CD.
16624
16625       For example to copy with ffmpeg the entire Audio-CD in /dev/sr0, you
16626       may run the command:
16627
16628               ffmpeg -f libcdio -i /dev/sr0 cd.wav
16629
16630       Options
16631
16632       speed
16633           Set drive reading speed. Default value is 0.
16634
16635           The speed is specified CD-ROM speed units. The speed is set through
16636           the libcdio "cdio_cddap_speed_set" function. On many CD-ROM drives,
16637           specifying a value too large will result in using the fastest
16638           speed.
16639
16640       paranoia_mode
16641           Set paranoia recovery mode flags. It accepts one of the following
16642           values:
16643
16644           disable
16645           verify
16646           overlap
16647           neverskip
16648           full
16649
16650           Default value is disable.
16651
16652           For more information about the available recovery modes, consult
16653           the paranoia project documentation.
16654
16655   libdc1394
16656       IIDC1394 input device, based on libdc1394 and libraw1394.
16657
16658       Requires the configure option "--enable-libdc1394".
16659
16660       Options
16661
16662       framerate
16663           Set the frame rate. Default is "ntsc", corresponding to a frame
16664           rate of "30000/1001".
16665
16666       pixel_format
16667           Select the pixel format. Default is "uyvy422".
16668
16669       video_size
16670           Set the video size given as a string such as "640x480" or "hd720".
16671           Default is "qvga".
16672
16673   openal
16674       The OpenAL input device provides audio capture on all systems with a
16675       working OpenAL 1.1 implementation.
16676
16677       To enable this input device during configuration, you need OpenAL
16678       headers and libraries installed on your system, and need to configure
16679       FFmpeg with "--enable-openal".
16680
16681       OpenAL headers and libraries should be provided as part of your OpenAL
16682       implementation, or as an additional download (an SDK). Depending on
16683       your installation you may need to specify additional flags via the
16684       "--extra-cflags" and "--extra-ldflags" for allowing the build system to
16685       locate the OpenAL headers and libraries.
16686
16687       An incomplete list of OpenAL implementations follows:
16688
16689       Creative
16690           The official Windows implementation, providing hardware
16691           acceleration with supported devices and software fallback.  See
16692           <http://openal.org/>.
16693
16694       OpenAL Soft
16695           Portable, open source (LGPL) software implementation. Includes
16696           backends for the most common sound APIs on the Windows, Linux,
16697           Solaris, and BSD operating systems.  See
16698           <http://kcat.strangesoft.net/openal.html>.
16699
16700       Apple
16701           OpenAL is part of Core Audio, the official Mac OS X Audio
16702           interface.  See
16703           <http://developer.apple.com/technologies/mac/audio-and-video.html>
16704
16705       This device allows one to capture from an audio input device handled
16706       through OpenAL.
16707
16708       You need to specify the name of the device to capture in the provided
16709       filename. If the empty string is provided, the device will
16710       automatically select the default device. You can get the list of the
16711       supported devices by using the option list_devices.
16712
16713       Options
16714
16715       channels
16716           Set the number of channels in the captured audio. Only the values 1
16717           (monaural) and 2 (stereo) are currently supported.  Defaults to 2.
16718
16719       sample_size
16720           Set the sample size (in bits) of the captured audio. Only the
16721           values 8 and 16 are currently supported. Defaults to 16.
16722
16723       sample_rate
16724           Set the sample rate (in Hz) of the captured audio.  Defaults to
16725           44.1k.
16726
16727       list_devices
16728           If set to true, print a list of devices and exit.  Defaults to
16729           false.
16730
16731       Examples
16732
16733       Print the list of OpenAL supported devices and exit:
16734
16735               $ ffmpeg -list_devices true -f openal -i dummy out.ogg
16736
16737       Capture from the OpenAL device DR-BT101 via PulseAudio:
16738
16739               $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out.ogg
16740
16741       Capture from the default device (note the empty string '' as filename):
16742
16743               $ ffmpeg -f openal -i '' out.ogg
16744
16745       Capture from two devices simultaneously, writing to two different
16746       files, within the same ffmpeg command:
16747
16748               $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out1.ogg -f openal -i 'ALSA Default' out2.ogg
16749
16750       Note: not all OpenAL implementations support multiple simultaneous
16751       capture - try the latest OpenAL Soft if the above does not work.
16752
16753   oss
16754       Open Sound System input device.
16755
16756       The filename to provide to the input device is the device node
16757       representing the OSS input device, and is usually set to /dev/dsp.
16758
16759       For example to grab from /dev/dsp using ffmpeg use the command:
16760
16761               ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
16762
16763       For more information about OSS see:
16764       <http://manuals.opensound.com/usersguide/dsp.html>
16765
16766       Options
16767
16768       sample_rate
16769           Set the sample rate in Hz. Default is 48000.
16770
16771       channels
16772           Set the number of channels. Default is 2.
16773
16774   pulse
16775       PulseAudio input device.
16776
16777       To enable this output device you need to configure FFmpeg with
16778       "--enable-libpulse".
16779
16780       The filename to provide to the input device is a source device or the
16781       string "default"
16782
16783       To list the PulseAudio source devices and their properties you can
16784       invoke the command pactl list sources.
16785
16786       More information about PulseAudio can be found on
16787       <http://www.pulseaudio.org>.
16788
16789       Options
16790
16791       server
16792           Connect to a specific PulseAudio server, specified by an IP
16793           address.  Default server is used when not provided.
16794
16795       name
16796           Specify the application name PulseAudio will use when showing
16797           active clients, by default it is the "LIBAVFORMAT_IDENT" string.
16798
16799       stream_name
16800           Specify the stream name PulseAudio will use when showing active
16801           streams, by default it is "record".
16802
16803       sample_rate
16804           Specify the samplerate in Hz, by default 48kHz is used.
16805
16806       channels
16807           Specify the channels in use, by default 2 (stereo) is set.
16808
16809       frame_size
16810           This option does nothing and is deprecated.
16811
16812       fragment_size
16813           Specify the size in bytes of the minimal buffering fragment in
16814           PulseAudio, it will affect the audio latency. By default it is set
16815           to 50 ms amount of data.
16816
16817       wallclock
16818           Set the initial PTS using the current time. Default is 1.
16819
16820       Examples
16821
16822       Record a stream from default device:
16823
16824               ffmpeg -f pulse -i default /tmp/pulse.wav
16825
16826   sndio
16827       sndio input device.
16828
16829       To enable this input device during configuration you need libsndio
16830       installed on your system.
16831
16832       The filename to provide to the input device is the device node
16833       representing the sndio input device, and is usually set to /dev/audio0.
16834
16835       For example to grab from /dev/audio0 using ffmpeg use the command:
16836
16837               ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
16838
16839       Options
16840
16841       sample_rate
16842           Set the sample rate in Hz. Default is 48000.
16843
16844       channels
16845           Set the number of channels. Default is 2.
16846
16847   video4linux2, v4l2
16848       Video4Linux2 input video device.
16849
16850       "v4l2" can be used as alias for "video4linux2".
16851
16852       If FFmpeg is built with v4l-utils support (by using the
16853       "--enable-libv4l2" configure option), it is possible to use it with the
16854       "-use_libv4l2" input device option.
16855
16856       The name of the device to grab is a file device node, usually Linux
16857       systems tend to automatically create such nodes when the device (e.g.
16858       an USB webcam) is plugged into the system, and has a name of the kind
16859       /dev/videoN, where N is a number associated to the device.
16860
16861       Video4Linux2 devices usually support a limited set of widthxheight
16862       sizes and frame rates. You can check which are supported using
16863       -list_formats all for Video4Linux2 devices.  Some devices, like TV
16864       cards, support one or more standards. It is possible to list all the
16865       supported standards using -list_standards all.
16866
16867       The time base for the timestamps is 1 microsecond. Depending on the
16868       kernel version and configuration, the timestamps may be derived from
16869       the real time clock (origin at the Unix Epoch) or the monotonic clock
16870       (origin usually at boot time, unaffected by NTP or manual changes to
16871       the clock). The -timestamps abs or -ts abs option can be used to force
16872       conversion into the real time clock.
16873
16874       Some usage examples of the video4linux2 device with ffmpeg and ffplay:
16875
16876       •   List supported formats for a video4linux2 device:
16877
16878                   ffplay -f video4linux2 -list_formats all /dev/video0
16879
16880       •   Grab and show the input of a video4linux2 device:
16881
16882                   ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
16883
16884       •   Grab and record the input of a video4linux2 device, leave the frame
16885           rate and size as previously set:
16886
16887                   ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
16888
16889       For more information about Video4Linux, check <http://linuxtv.org/>.
16890
16891       Options
16892
16893       standard
16894           Set the standard. Must be the name of a supported standard. To get
16895           a list of the supported standards, use the list_standards option.
16896
16897       channel
16898           Set the input channel number. Default to -1, which means using the
16899           previously selected channel.
16900
16901       video_size
16902           Set the video frame size. The argument must be a string in the form
16903           WIDTHxHEIGHT or a valid size abbreviation.
16904
16905       pixel_format
16906           Select the pixel format (only valid for raw video input).
16907
16908       input_format
16909           Set the preferred pixel format (for raw video) or a codec name.
16910           This option allows one to select the input format, when several are
16911           available.
16912
16913       framerate
16914           Set the preferred video frame rate.
16915
16916       list_formats
16917           List available formats (supported pixel formats, codecs, and frame
16918           sizes) and exit.
16919
16920           Available values are:
16921
16922           all Show all available (compressed and non-compressed) formats.
16923
16924           raw Show only raw video (non-compressed) formats.
16925
16926           compressed
16927               Show only compressed formats.
16928
16929       list_standards
16930           List supported standards and exit.
16931
16932           Available values are:
16933
16934           all Show all supported standards.
16935
16936       timestamps, ts
16937           Set type of timestamps for grabbed frames.
16938
16939           Available values are:
16940
16941           default
16942               Use timestamps from the kernel.
16943
16944           abs Use absolute timestamps (wall clock).
16945
16946           mono2abs
16947               Force conversion from monotonic to absolute timestamps.
16948
16949           Default value is "default".
16950
16951       use_libv4l2
16952           Use libv4l2 (v4l-utils) conversion functions. Default is 0.
16953
16954   vfwcap
16955       VfW (Video for Windows) capture input device.
16956
16957       The filename passed as input is the capture driver number, ranging from
16958       0 to 9. You may use "list" as filename to print a list of drivers. Any
16959       other filename will be interpreted as device number 0.
16960
16961       Options
16962
16963       video_size
16964           Set the video frame size.
16965
16966       framerate
16967           Set the grabbing frame rate. Default value is "ntsc", corresponding
16968           to a frame rate of "30000/1001".
16969
16970   x11grab
16971       X11 video input device.
16972
16973       To enable this input device during configuration you need libxcb
16974       installed on your system. It will be automatically detected during
16975       configuration.
16976
16977       This device allows one to capture a region of an X11 display.
16978
16979       The filename passed as input has the syntax:
16980
16981               [<hostname>]:<display_number>.<screen_number>[+<x_offset>,<y_offset>]
16982
16983       hostname:display_number.screen_number specifies the X11 display name of
16984       the screen to grab from. hostname can be omitted, and defaults to
16985       "localhost". The environment variable DISPLAY contains the default
16986       display name.
16987
16988       x_offset and y_offset specify the offsets of the grabbed area with
16989       respect to the top-left border of the X11 screen. They default to 0.
16990
16991       Check the X11 documentation (e.g. man X) for more detailed information.
16992
16993       Use the xdpyinfo program for getting basic information about the
16994       properties of your X11 display (e.g. grep for "name" or "dimensions").
16995
16996       For example to grab from :0.0 using ffmpeg:
16997
16998               ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0 out.mpg
16999
17000       Grab at position "10,20":
17001
17002               ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
17003
17004       Options
17005
17006       select_region
17007           Specify whether to select the grabbing area graphically using the
17008           pointer.  A value of 1 prompts the user to select the grabbing area
17009           graphically by clicking and dragging. A single click with no
17010           dragging will select the whole screen. A region with zero width or
17011           height will also select the whole screen. This option overwrites
17012           the video_size, grab_x, and grab_y options. Default value is 0.
17013
17014       draw_mouse
17015           Specify whether to draw the mouse pointer. A value of 0 specifies
17016           not to draw the pointer. Default value is 1.
17017
17018       follow_mouse
17019           Make the grabbed area follow the mouse. The argument can be
17020           "centered" or a number of pixels PIXELS.
17021
17022           When it is specified with "centered", the grabbing region follows
17023           the mouse pointer and keeps the pointer at the center of region;
17024           otherwise, the region follows only when the mouse pointer reaches
17025           within PIXELS (greater than zero) to the edge of region.
17026
17027           For example:
17028
17029                   ffmpeg -f x11grab -follow_mouse centered -framerate 25 -video_size cif -i :0.0 out.mpg
17030
17031           To follow only when the mouse pointer reaches within 100 pixels to
17032           edge:
17033
17034                   ffmpeg -f x11grab -follow_mouse 100 -framerate 25 -video_size cif -i :0.0 out.mpg
17035
17036       framerate
17037           Set the grabbing frame rate. Default value is "ntsc", corresponding
17038           to a frame rate of "30000/1001".
17039
17040       show_region
17041           Show grabbed region on screen.
17042
17043           If show_region is specified with 1, then the grabbing region will
17044           be indicated on screen. With this option, it is easy to know what
17045           is being grabbed if only a portion of the screen is grabbed.
17046
17047       region_border
17048           Set the region border thickness if -show_region 1 is used.  Range
17049           is 1 to 128 and default is 3 (XCB-based x11grab only).
17050
17051           For example:
17052
17053                   ffmpeg -f x11grab -show_region 1 -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
17054
17055           With follow_mouse:
17056
17057                   ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_size cif -i :0.0 out.mpg
17058
17059       window_id
17060           Grab this window, instead of the whole screen. Default value is 0,
17061           which maps to the whole screen (root window).
17062
17063           The id of a window can be found using the xwininfo program,
17064           possibly with options -tree and -root.
17065
17066           If the window is later enlarged, the new area is not recorded.
17067           Video ends when the window is closed, unmapped (i.e., iconified) or
17068           shrunk beyond the video size (which defaults to the initial window
17069           size).
17070
17071           This option disables options follow_mouse and select_region.
17072
17073       video_size
17074           Set the video frame size. Default is the full desktop or window.
17075
17076       grab_x
17077       grab_y
17078           Set the grabbing region coordinates. They are expressed as offset
17079           from the top left corner of the X11 window and correspond to the
17080           x_offset and y_offset parameters in the device name. The default
17081           value for both options is 0.
17082

OUTPUT DEVICES

17084       Output devices are configured elements in FFmpeg that can write
17085       multimedia data to an output device attached to your system.
17086
17087       When you configure your FFmpeg build, all the supported output devices
17088       are enabled by default. You can list all available ones using the
17089       configure option "--list-outdevs".
17090
17091       You can disable all the output devices using the configure option
17092       "--disable-outdevs", and selectively enable an output device using the
17093       option "--enable-outdev=OUTDEV", or you can disable a particular input
17094       device using the option "--disable-outdev=OUTDEV".
17095
17096       The option "-devices" of the ff* tools will display the list of enabled
17097       output devices.
17098
17099       A description of the currently available output devices follows.
17100
17101   alsa
17102       ALSA (Advanced Linux Sound Architecture) output device.
17103
17104       Examples
17105
17106       •   Play a file on default ALSA device:
17107
17108                   ffmpeg -i INPUT -f alsa default
17109
17110       •   Play a file on soundcard 1, audio device 7:
17111
17112                   ffmpeg -i INPUT -f alsa hw:1,7
17113
17114   AudioToolbox
17115       AudioToolbox output device.
17116
17117       Allows native output to CoreAudio devices on OSX.
17118
17119       The output filename can be empty (or "-") to refer to the default
17120       system output device or a number that refers to the device index as
17121       shown using: "-list_devices true".
17122
17123       Alternatively, the audio input device can be chosen by index using the
17124
17125           B<-audio_device_index E<lt>INDEXE<gt>>
17126
17127       , overriding any device name or index given in the input filename.
17128
17129       All available devices can be enumerated by using -list_devices true,
17130       listing all device names, UIDs and corresponding indices.
17131
17132       Options
17133
17134       AudioToolbox supports the following options:
17135
17136       -audio_device_index <INDEX>
17137           Specify the audio device by its index. Overrides anything given in
17138           the output filename.
17139
17140       Examples
17141
17142       •   Print the list of supported devices and output a sine wave to the
17143           default device:
17144
17145                   $ ffmpeg -f lavfi -i sine=r=44100 -f audiotoolbox -list_devices true -
17146
17147       •   Output a sine wave to the device with the index 2, overriding any
17148           output filename:
17149
17150                   $ ffmpeg -f lavfi -i sine=r=44100 -f audiotoolbox -audio_device_index 2 -
17151
17152   caca
17153       CACA output device.
17154
17155       This output device allows one to show a video stream in CACA window.
17156       Only one CACA window is allowed per application, so you can have only
17157       one instance of this output device in an application.
17158
17159       To enable this output device you need to configure FFmpeg with
17160       "--enable-libcaca".  libcaca is a graphics library that outputs text
17161       instead of pixels.
17162
17163       For more information about libcaca, check:
17164       <http://caca.zoy.org/wiki/libcaca>
17165
17166       Options
17167
17168       window_title
17169           Set the CACA window title, if not specified default to the filename
17170           specified for the output device.
17171
17172       window_size
17173           Set the CACA window size, can be a string of the form widthxheight
17174           or a video size abbreviation.  If not specified it defaults to the
17175           size of the input video.
17176
17177       driver
17178           Set display driver.
17179
17180       algorithm
17181           Set dithering algorithm. Dithering is necessary because the picture
17182           being rendered has usually far more colours than the available
17183           palette.  The accepted values are listed with "-list_dither
17184           algorithms".
17185
17186       antialias
17187           Set antialias method. Antialiasing smoothens the rendered image and
17188           avoids the commonly seen staircase effect.  The accepted values are
17189           listed with "-list_dither antialiases".
17190
17191       charset
17192           Set which characters are going to be used when rendering text.  The
17193           accepted values are listed with "-list_dither charsets".
17194
17195       color
17196           Set color to be used when rendering text.  The accepted values are
17197           listed with "-list_dither colors".
17198
17199       list_drivers
17200           If set to true, print a list of available drivers and exit.
17201
17202       list_dither
17203           List available dither options related to the argument.  The
17204           argument must be one of "algorithms", "antialiases", "charsets",
17205           "colors".
17206
17207       Examples
17208
17209       •   The following command shows the ffmpeg output is an CACA window,
17210           forcing its size to 80x25:
17211
17212                   ffmpeg -i INPUT -c:v rawvideo -pix_fmt rgb24 -window_size 80x25 -f caca -
17213
17214       •   Show the list of available drivers and exit:
17215
17216                   ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_drivers true -
17217
17218       •   Show the list of available dither colors and exit:
17219
17220                   ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_dither colors -
17221
17222   decklink
17223       The decklink output device provides playback capabilities for
17224       Blackmagic DeckLink devices.
17225
17226       To enable this output device, you need the Blackmagic DeckLink SDK and
17227       you need to configure with the appropriate "--extra-cflags" and
17228       "--extra-ldflags".  On Windows, you need to run the IDL files through
17229       widl.
17230
17231       DeckLink is very picky about the formats it supports. Pixel format is
17232       always uyvy422, framerate, field order and video size must be
17233       determined for your device with -list_formats 1. Audio sample rate is
17234       always 48 kHz.
17235
17236       Options
17237
17238       list_devices
17239           If set to true, print a list of devices and exit.  Defaults to
17240           false. This option is deprecated, please use the "-sinks" option of
17241           ffmpeg to list the available output devices.
17242
17243       list_formats
17244           If set to true, print a list of supported formats and exit.
17245           Defaults to false.
17246
17247       preroll
17248           Amount of time to preroll video in seconds.  Defaults to 0.5.
17249
17250       duplex_mode
17251           Sets the decklink device duplex/profile mode. Must be unset, half,
17252           full, one_sub_device_full, one_sub_device_half,
17253           two_sub_device_full, four_sub_device_half Defaults to unset.
17254
17255           Note: DeckLink SDK 11.0 have replaced the duplex property by a
17256           profile property.  For the DeckLink Duo 2 and DeckLink Quad 2, a
17257           profile is shared between any 2 sub-devices that utilize the same
17258           connectors. For the DeckLink 8K Pro, a profile is shared between
17259           all 4 sub-devices. So DeckLink 8K Pro support four profiles.
17260
17261           Valid profile modes for DeckLink 8K Pro(with DeckLink SDK >= 11.0):
17262           one_sub_device_full, one_sub_device_half, two_sub_device_full,
17263           four_sub_device_half
17264
17265           Valid profile modes for DeckLink Quad 2 and DeckLink Duo 2: half,
17266           full
17267
17268       timing_offset
17269           Sets the genlock timing pixel offset on the used output.  Defaults
17270           to unset.
17271
17272       link
17273           Sets the SDI video link configuration on the used output. Must be
17274           unset, single link SDI, dual link SDI or quad link SDI.  Defaults
17275           to unset.
17276
17277       sqd Enable Square Division Quad Split mode for Quad-link SDI output.
17278           Must be unset, true or false.  Defaults to unset.
17279
17280       level_a
17281           Enable SMPTE Level A mode on the used output.  Must be unset, true
17282           or false.  Defaults to unset.
17283
17284       Examples
17285
17286       •   List output devices:
17287
17288                   ffmpeg -sinks decklink
17289
17290       •   List supported formats:
17291
17292                   ffmpeg -i test.avi -f decklink -list_formats 1 'DeckLink Mini Monitor'
17293
17294       •   Play video clip:
17295
17296                   ffmpeg -i test.avi -f decklink -pix_fmt uyvy422 'DeckLink Mini Monitor'
17297
17298       •   Play video clip with non-standard framerate or video size:
17299
17300                   ffmpeg -i test.avi -f decklink -pix_fmt uyvy422 -s 720x486 -r 24000/1001 'DeckLink Mini Monitor'
17301
17302   fbdev
17303       Linux framebuffer output device.
17304
17305       The Linux framebuffer is a graphic hardware-independent abstraction
17306       layer to show graphics on a computer monitor, typically on the console.
17307       It is accessed through a file device node, usually /dev/fb0.
17308
17309       For more detailed information read the file
17310       Documentation/fb/framebuffer.txt included in the Linux source tree.
17311
17312       Options
17313
17314       xoffset
17315       yoffset
17316           Set x/y coordinate of top left corner. Default is 0.
17317
17318       Examples
17319
17320       Play a file on framebuffer device /dev/fb0.  Required pixel format
17321       depends on current framebuffer settings.
17322
17323               ffmpeg -re -i INPUT -c:v rawvideo -pix_fmt bgra -f fbdev /dev/fb0
17324
17325       See also <http://linux-fbdev.sourceforge.net/>, and fbset(1).
17326
17327   opengl
17328       OpenGL output device.
17329
17330       To enable this output device you need to configure FFmpeg with
17331       "--enable-opengl".
17332
17333       This output device allows one to render to OpenGL context.  Context may
17334       be provided by application or default SDL window is created.
17335
17336       When device renders to external context, application must implement
17337       handlers for following messages: "AV_DEV_TO_APP_CREATE_WINDOW_BUFFER" -
17338       create OpenGL context on current thread.
17339       "AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER" - make OpenGL context current.
17340       "AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER" - swap buffers.
17341       "AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER" - destroy OpenGL context.
17342       Application is also required to inform a device about current
17343       resolution by sending "AV_APP_TO_DEV_WINDOW_SIZE" message.
17344
17345       Options
17346
17347       background
17348           Set background color. Black is a default.
17349
17350       no_window
17351           Disables default SDL window when set to non-zero value.
17352           Application must provide OpenGL context and both "window_size_cb"
17353           and "window_swap_buffers_cb" callbacks when set.
17354
17355       window_title
17356           Set the SDL window title, if not specified default to the filename
17357           specified for the output device.  Ignored when no_window is set.
17358
17359       window_size
17360           Set preferred window size, can be a string of the form widthxheight
17361           or a video size abbreviation.  If not specified it defaults to the
17362           size of the input video, downscaled according to the aspect ratio.
17363           Mostly usable when no_window is not set.
17364
17365       Examples
17366
17367       Play a file on SDL window using OpenGL rendering:
17368
17369               ffmpeg  -i INPUT -f opengl "window title"
17370
17371   oss
17372       OSS (Open Sound System) output device.
17373
17374   pulse
17375       PulseAudio output device.
17376
17377       To enable this output device you need to configure FFmpeg with
17378       "--enable-libpulse".
17379
17380       More information about PulseAudio can be found on
17381       <http://www.pulseaudio.org>
17382
17383       Options
17384
17385       server
17386           Connect to a specific PulseAudio server, specified by an IP
17387           address.  Default server is used when not provided.
17388
17389       name
17390           Specify the application name PulseAudio will use when showing
17391           active clients, by default it is the "LIBAVFORMAT_IDENT" string.
17392
17393       stream_name
17394           Specify the stream name PulseAudio will use when showing active
17395           streams, by default it is set to the specified output name.
17396
17397       device
17398           Specify the device to use. Default device is used when not
17399           provided.  List of output devices can be obtained with command
17400           pactl list sinks.
17401
17402       buffer_size
17403       buffer_duration
17404           Control the size and duration of the PulseAudio buffer. A small
17405           buffer gives more control, but requires more frequent updates.
17406
17407           buffer_size specifies size in bytes while buffer_duration specifies
17408           duration in milliseconds.
17409
17410           When both options are provided then the highest value is used
17411           (duration is recalculated to bytes using stream parameters). If
17412           they are set to 0 (which is default), the device will use the
17413           default PulseAudio duration value. By default PulseAudio set buffer
17414           duration to around 2 seconds.
17415
17416       prebuf
17417           Specify pre-buffering size in bytes. The server does not start with
17418           playback before at least prebuf bytes are available in the buffer.
17419           By default this option is initialized to the same value as
17420           buffer_size or buffer_duration (whichever is bigger).
17421
17422       minreq
17423           Specify minimum request size in bytes. The server does not request
17424           less than minreq bytes from the client, instead waits until the
17425           buffer is free enough to request more bytes at once. It is
17426           recommended to not set this option, which will initialize this to a
17427           value that is deemed sensible by the server.
17428
17429       Examples
17430
17431       Play a file on default device on default server:
17432
17433               ffmpeg  -i INPUT -f pulse "stream name"
17434
17435   sdl
17436       SDL (Simple DirectMedia Layer) output device.
17437
17438       "sdl2" can be used as alias for "sdl".
17439
17440       This output device allows one to show a video stream in an SDL window.
17441       Only one SDL window is allowed per application, so you can have only
17442       one instance of this output device in an application.
17443
17444       To enable this output device you need libsdl installed on your system
17445       when configuring your build.
17446
17447       For more information about SDL, check: <http://www.libsdl.org/>
17448
17449       Options
17450
17451       window_title
17452           Set the SDL window title, if not specified default to the filename
17453           specified for the output device.
17454
17455       icon_title
17456           Set the name of the iconified SDL window, if not specified it is
17457           set to the same value of window_title.
17458
17459       window_size
17460           Set the SDL window size, can be a string of the form widthxheight
17461           or a video size abbreviation.  If not specified it defaults to the
17462           size of the input video, downscaled according to the aspect ratio.
17463
17464       window_x
17465       window_y
17466           Set the position of the window on the screen.
17467
17468       window_fullscreen
17469           Set fullscreen mode when non-zero value is provided.  Default value
17470           is zero.
17471
17472       window_enable_quit
17473           Enable quit action (using window button or keyboard key) when non-
17474           zero value is provided.  Default value is 1 (enable quit action)
17475
17476       Interactive commands
17477
17478       The window created by the device can be controlled through the
17479       following interactive commands.
17480
17481       q, ESC
17482           Quit the device immediately.
17483
17484       Examples
17485
17486       The following command shows the ffmpeg output is an SDL window, forcing
17487       its size to the qcif format:
17488
17489               ffmpeg -i INPUT -c:v rawvideo -pix_fmt yuv420p -window_size qcif -f sdl "SDL output"
17490
17491   sndio
17492       sndio audio output device.
17493
17494   v4l2
17495       Video4Linux2 output device.
17496
17497   xv
17498       XV (XVideo) output device.
17499
17500       This output device allows one to show a video stream in a X Window
17501       System window.
17502
17503       Options
17504
17505       display_name
17506           Specify the hardware display name, which determines the display and
17507           communications domain to be used.
17508
17509           The display name or DISPLAY environment variable can be a string in
17510           the format hostname[:number[.screen_number]].
17511
17512           hostname specifies the name of the host machine on which the
17513           display is physically attached. number specifies the number of the
17514           display server on that host machine. screen_number specifies the
17515           screen to be used on that server.
17516
17517           If unspecified, it defaults to the value of the DISPLAY environment
17518           variable.
17519
17520           For example, "dual-headed:0.1" would specify screen 1 of display 0
17521           on the machine named ``dual-headed''.
17522
17523           Check the X11 specification for more detailed information about the
17524           display name format.
17525
17526       window_id
17527           When set to non-zero value then device doesn't create new window,
17528           but uses existing one with provided window_id. By default this
17529           options is set to zero and device creates its own window.
17530
17531       window_size
17532           Set the created window size, can be a string of the form
17533           widthxheight or a video size abbreviation. If not specified it
17534           defaults to the size of the input video.  Ignored when window_id is
17535           set.
17536
17537       window_x
17538       window_y
17539           Set the X and Y window offsets for the created window. They are
17540           both set to 0 by default. The values may be ignored by the window
17541           manager.  Ignored when window_id is set.
17542
17543       window_title
17544           Set the window title, if not specified default to the filename
17545           specified for the output device. Ignored when window_id is set.
17546
17547       For more information about XVideo see <http://www.x.org/>.
17548
17549       Examples
17550
17551       •   Decode, display and encode video input with ffmpeg at the same
17552           time:
17553
17554                   ffmpeg -i INPUT OUTPUT -f xv display
17555
17556       •   Decode and display the input video to multiple X11 windows:
17557
17558                   ffmpeg -i INPUT -f xv normal -vf negate -f xv negated
17559

RESAMPLER OPTIONS

17561       The audio resampler supports the following named options.
17562
17563       Options may be set by specifying -option value in the FFmpeg tools,
17564       option=value for the aresample filter, by setting the value explicitly
17565       in the "SwrContext" options or using the libavutil/opt.h API for
17566       programmatic use.
17567
17568       ich, in_channel_count
17569           Set the number of input channels. Default value is 0. Setting this
17570           value is not mandatory if the corresponding channel layout
17571           in_channel_layout is set.
17572
17573       och, out_channel_count
17574           Set the number of output channels. Default value is 0. Setting this
17575           value is not mandatory if the corresponding channel layout
17576           out_channel_layout is set.
17577
17578       uch, used_channel_count
17579           Set the number of used input channels. Default value is 0. This
17580           option is only used for special remapping.
17581
17582       isr, in_sample_rate
17583           Set the input sample rate. Default value is 0.
17584
17585       osr, out_sample_rate
17586           Set the output sample rate. Default value is 0.
17587
17588       isf, in_sample_fmt
17589           Specify the input sample format. It is set by default to "none".
17590
17591       osf, out_sample_fmt
17592           Specify the output sample format. It is set by default to "none".
17593
17594       tsf, internal_sample_fmt
17595           Set the internal sample format. Default value is "none".  This will
17596           automatically be chosen when it is not explicitly set.
17597
17598       icl, in_channel_layout
17599       ocl, out_channel_layout
17600           Set the input/output channel layout.
17601
17602           See the Channel Layout section in the ffmpeg-utils(1) manual for
17603           the required syntax.
17604
17605       clev, center_mix_level
17606           Set the center mix level. It is a value expressed in deciBel, and
17607           must be in the interval [-32,32].
17608
17609       slev, surround_mix_level
17610           Set the surround mix level. It is a value expressed in deciBel, and
17611           must be in the interval [-32,32].
17612
17613       lfe_mix_level
17614           Set LFE mix into non LFE level. It is used when there is a LFE
17615           input but no LFE output. It is a value expressed in deciBel, and
17616           must be in the interval [-32,32].
17617
17618       rmvol, rematrix_volume
17619           Set rematrix volume. Default value is 1.0.
17620
17621       rematrix_maxval
17622           Set maximum output value for rematrixing.  This can be used to
17623           prevent clipping vs. preventing volume reduction.  A value of 1.0
17624           prevents clipping.
17625
17626       flags, swr_flags
17627           Set flags used by the converter. Default value is 0.
17628
17629           It supports the following individual flags:
17630
17631           res force resampling, this flag forces resampling to be used even
17632               when the input and output sample rates match.
17633
17634       dither_scale
17635           Set the dither scale. Default value is 1.
17636
17637       dither_method
17638           Set dither method. Default value is 0.
17639
17640           Supported values:
17641
17642           rectangular
17643               select rectangular dither
17644
17645           triangular
17646               select triangular dither
17647
17648           triangular_hp
17649               select triangular dither with high pass
17650
17651           lipshitz
17652               select Lipshitz noise shaping dither.
17653
17654           shibata
17655               select Shibata noise shaping dither.
17656
17657           low_shibata
17658               select low Shibata noise shaping dither.
17659
17660           high_shibata
17661               select high Shibata noise shaping dither.
17662
17663           f_weighted
17664               select f-weighted noise shaping dither
17665
17666           modified_e_weighted
17667               select modified-e-weighted noise shaping dither
17668
17669           improved_e_weighted
17670               select improved-e-weighted noise shaping dither
17671
17672       resampler
17673           Set resampling engine. Default value is swr.
17674
17675           Supported values:
17676
17677           swr select the native SW Resampler; filter options precision and
17678               cheby are not applicable in this case.
17679
17680           soxr
17681               select the SoX Resampler (where available); compensation, and
17682               filter options filter_size, phase_shift, exact_rational,
17683               filter_type & kaiser_beta, are not applicable in this case.
17684
17685       filter_size
17686           For swr only, set resampling filter size, default value is 32.
17687
17688       phase_shift
17689           For swr only, set resampling phase shift, default value is 10, and
17690           must be in the interval [0,30].
17691
17692       linear_interp
17693           Use linear interpolation when enabled (the default). Disable it if
17694           you want to preserve speed instead of quality when exact_rational
17695           fails.
17696
17697       exact_rational
17698           For swr only, when enabled, try to use exact phase_count based on
17699           input and output sample rate. However, if it is larger than "1 <<
17700           phase_shift", the phase_count will be "1 << phase_shift" as
17701           fallback. Default is enabled.
17702
17703       cutoff
17704           Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must
17705           be a float value between 0 and 1.  Default value is 0.97 with swr,
17706           and 0.91 with soxr (which, with a sample-rate of 44100, preserves
17707           the entire audio band to 20kHz).
17708
17709       precision
17710           For soxr only, the precision in bits to which the resampled signal
17711           will be calculated.  The default value of 20 (which, with suitable
17712           dithering, is appropriate for a destination bit-depth of 16) gives
17713           SoX's 'High Quality'; a value of 28 gives SoX's 'Very High
17714           Quality'.
17715
17716       cheby
17717           For soxr only, selects passband rolloff none (Chebyshev) & higher-
17718           precision approximation for 'irrational' ratios. Default value is
17719           0.
17720
17721       async
17722           For swr only, simple 1 parameter audio sync to timestamps using
17723           stretching, squeezing, filling and trimming. Setting this to 1 will
17724           enable filling and trimming, larger values represent the maximum
17725           amount in samples that the data may be stretched or squeezed for
17726           each second.  Default value is 0, thus no compensation is applied
17727           to make the samples match the audio timestamps.
17728
17729       first_pts
17730           For swr only, assume the first pts should be this value. The time
17731           unit is 1 / sample rate.  This allows for padding/trimming at the
17732           start of stream. By default, no assumption is made about the first
17733           frame's expected pts, so no padding or trimming is done. For
17734           example, this could be set to 0 to pad the beginning with silence
17735           if an audio stream starts after the video stream or to trim any
17736           samples with a negative pts due to encoder delay.
17737
17738       min_comp
17739           For swr only, set the minimum difference between timestamps and
17740           audio data (in seconds) to trigger stretching/squeezing/filling or
17741           trimming of the data to make it match the timestamps. The default
17742           is that stretching/squeezing/filling and trimming is disabled
17743           (min_comp = "FLT_MAX").
17744
17745       min_hard_comp
17746           For swr only, set the minimum difference between timestamps and
17747           audio data (in seconds) to trigger adding/dropping samples to make
17748           it match the timestamps.  This option effectively is a threshold to
17749           select between hard (trim/fill) and soft (squeeze/stretch)
17750           compensation. Note that all compensation is by default disabled
17751           through min_comp.  The default is 0.1.
17752
17753       comp_duration
17754           For swr only, set duration (in seconds) over which data is
17755           stretched/squeezed to make it match the timestamps. Must be a non-
17756           negative double float value, default value is 1.0.
17757
17758       max_soft_comp
17759           For swr only, set maximum factor by which data is
17760           stretched/squeezed to make it match the timestamps. Must be a non-
17761           negative double float value, default value is 0.
17762
17763       matrix_encoding
17764           Select matrixed stereo encoding.
17765
17766           It accepts the following values:
17767
17768           none
17769               select none
17770
17771           dolby
17772               select Dolby
17773
17774           dplii
17775               select Dolby Pro Logic II
17776
17777           Default value is "none".
17778
17779       filter_type
17780           For swr only, select resampling filter type. This only affects
17781           resampling operations.
17782
17783           It accepts the following values:
17784
17785           cubic
17786               select cubic
17787
17788           blackman_nuttall
17789               select Blackman Nuttall windowed sinc
17790
17791           kaiser
17792               select Kaiser windowed sinc
17793
17794       kaiser_beta
17795           For swr only, set Kaiser window beta value. Must be a double float
17796           value in the interval [2,16], default value is 9.
17797
17798       output_sample_bits
17799           For swr only, set number of used output sample bits for dithering.
17800           Must be an integer in the interval [0,64], default value is 0,
17801           which means it's not used.
17802

SCALER OPTIONS

17804       The video scaler supports the following named options.
17805
17806       Options may be set by specifying -option value in the FFmpeg tools,
17807       with a few API-only exceptions noted below.  For programmatic use, they
17808       can be set explicitly in the "SwsContext" options or through the
17809       libavutil/opt.h API.
17810
17811       sws_flags
17812           Set the scaler flags. This is also used to set the scaling
17813           algorithm. Only a single algorithm should be selected. Default
17814           value is bicubic.
17815
17816           It accepts the following values:
17817
17818           fast_bilinear
17819               Select fast bilinear scaling algorithm.
17820
17821           bilinear
17822               Select bilinear scaling algorithm.
17823
17824           bicubic
17825               Select bicubic scaling algorithm.
17826
17827           experimental
17828               Select experimental scaling algorithm.
17829
17830           neighbor
17831               Select nearest neighbor rescaling algorithm.
17832
17833           area
17834               Select averaging area rescaling algorithm.
17835
17836           bicublin
17837               Select bicubic scaling algorithm for the luma component,
17838               bilinear for chroma components.
17839
17840           gauss
17841               Select Gaussian rescaling algorithm.
17842
17843           sinc
17844               Select sinc rescaling algorithm.
17845
17846           lanczos
17847               Select Lanczos rescaling algorithm. The default width (alpha)
17848               is 3 and can be changed by setting "param0".
17849
17850           spline
17851               Select natural bicubic spline rescaling algorithm.
17852
17853           print_info
17854               Enable printing/debug logging.
17855
17856           accurate_rnd
17857               Enable accurate rounding.
17858
17859           full_chroma_int
17860               Enable full chroma interpolation.
17861
17862           full_chroma_inp
17863               Select full chroma input.
17864
17865           bitexact
17866               Enable bitexact output.
17867
17868       srcw (API only)
17869           Set source width.
17870
17871       srch (API only)
17872           Set source height.
17873
17874       dstw (API only)
17875           Set destination width.
17876
17877       dsth (API only)
17878           Set destination height.
17879
17880       src_format (API only)
17881           Set source pixel format (must be expressed as an integer).
17882
17883       dst_format (API only)
17884           Set destination pixel format (must be expressed as an integer).
17885
17886       src_range (boolean)
17887           If value is set to 1, indicates source is full range. Default value
17888           is 0, which indicates source is limited range.
17889
17890       dst_range (boolean)
17891           If value is set to 1, enable full range for destination. Default
17892           value is 0, which enables limited range.
17893
17894       param0, param1
17895           Set scaling algorithm parameters. The specified values are specific
17896           of some scaling algorithms and ignored by others. The specified
17897           values are floating point number values.
17898
17899       sws_dither
17900           Set the dithering algorithm. Accepts one of the following values.
17901           Default value is auto.
17902
17903           auto
17904               automatic choice
17905
17906           none
17907               no dithering
17908
17909           bayer
17910               bayer dither
17911
17912           ed  error diffusion dither
17913
17914           a_dither
17915               arithmetic dither, based using addition
17916
17917           x_dither
17918               arithmetic dither, based using xor (more random/less apparent
17919               patterning that a_dither).
17920
17921       alphablend
17922           Set the alpha blending to use when the input has alpha but the
17923           output does not.  Default value is none.
17924
17925           uniform_color
17926               Blend onto a uniform background color
17927
17928           checkerboard
17929               Blend onto a checkerboard
17930
17931           none
17932               No blending
17933

FILTERING INTRODUCTION

17935       Filtering in FFmpeg is enabled through the libavfilter library.
17936
17937       In libavfilter, a filter can have multiple inputs and multiple outputs.
17938       To illustrate the sorts of things that are possible, we consider the
17939       following filtergraph.
17940
17941                               [main]
17942               input --> split ---------------------> overlay --> output
17943                           |                             ^
17944                           |[tmp]                  [flip]|
17945                           +-----> crop --> vflip -------+
17946
17947       This filtergraph splits the input stream in two streams, then sends one
17948       stream through the crop filter and the vflip filter, before merging it
17949       back with the other stream by overlaying it on top. You can use the
17950       following command to achieve this:
17951
17952               ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
17953
17954       The result will be that the top half of the video is mirrored onto the
17955       bottom half of the output video.
17956
17957       Filters in the same linear chain are separated by commas, and distinct
17958       linear chains of filters are separated by semicolons. In our example,
17959       crop,vflip are in one linear chain, split and overlay are separately in
17960       another. The points where the linear chains join are labelled by names
17961       enclosed in square brackets. In the example, the split filter generates
17962       two outputs that are associated to the labels [main] and [tmp].
17963
17964       The stream sent to the second output of split, labelled as [tmp], is
17965       processed through the crop filter, which crops away the lower half part
17966       of the video, and then vertically flipped. The overlay filter takes in
17967       input the first unchanged output of the split filter (which was
17968       labelled as [main]), and overlay on its lower half the output generated
17969       by the crop,vflip filterchain.
17970
17971       Some filters take in input a list of parameters: they are specified
17972       after the filter name and an equal sign, and are separated from each
17973       other by a colon.
17974
17975       There exist so-called source filters that do not have an audio/video
17976       input, and sink filters that will not have audio/video output.
17977

GRAPH

17979       The graph2dot program included in the FFmpeg tools directory can be
17980       used to parse a filtergraph description and issue a corresponding
17981       textual representation in the dot language.
17982
17983       Invoke the command:
17984
17985               graph2dot -h
17986
17987       to see how to use graph2dot.
17988
17989       You can then pass the dot description to the dot program (from the
17990       graphviz suite of programs) and obtain a graphical representation of
17991       the filtergraph.
17992
17993       For example the sequence of commands:
17994
17995               echo <GRAPH_DESCRIPTION> | \
17996               tools/graph2dot -o graph.tmp && \
17997               dot -Tpng graph.tmp -o graph.png && \
17998               display graph.png
17999
18000       can be used to create and display an image representing the graph
18001       described by the GRAPH_DESCRIPTION string. Note that this string must
18002       be a complete self-contained graph, with its inputs and outputs
18003       explicitly defined.  For example if your command line is of the form:
18004
18005               ffmpeg -i infile -vf scale=640:360 outfile
18006
18007       your GRAPH_DESCRIPTION string will need to be of the form:
18008
18009               nullsrc,scale=640:360,nullsink
18010
18011       you may also need to set the nullsrc parameters and add a format filter
18012       in order to simulate a specific input file.
18013

FILTERGRAPH DESCRIPTION

18015       A filtergraph is a directed graph of connected filters. It can contain
18016       cycles, and there can be multiple links between a pair of filters. Each
18017       link has one input pad on one side connecting it to one filter from
18018       which it takes its input, and one output pad on the other side
18019       connecting it to one filter accepting its output.
18020
18021       Each filter in a filtergraph is an instance of a filter class
18022       registered in the application, which defines the features and the
18023       number of input and output pads of the filter.
18024
18025       A filter with no input pads is called a "source", and a filter with no
18026       output pads is called a "sink".
18027
18028   Filtergraph syntax
18029       A filtergraph has a textual representation, which is recognized by the
18030       -filter/-vf/-af and -filter_complex options in ffmpeg and -vf/-af in
18031       ffplay, and by the "avfilter_graph_parse_ptr()" function defined in
18032       libavfilter/avfilter.h.
18033
18034       A filterchain consists of a sequence of connected filters, each one
18035       connected to the previous one in the sequence. A filterchain is
18036       represented by a list of ","-separated filter descriptions.
18037
18038       A filtergraph consists of a sequence of filterchains. A sequence of
18039       filterchains is represented by a list of ";"-separated filterchain
18040       descriptions.
18041
18042       A filter is represented by a string of the form:
18043       [in_link_1]...[in_link_N]filter_name@id=arguments[out_link_1]...[out_link_M]
18044
18045       filter_name is the name of the filter class of which the described
18046       filter is an instance of, and has to be the name of one of the filter
18047       classes registered in the program optionally followed by "@id".  The
18048       name of the filter class is optionally followed by a string
18049       "=arguments".
18050
18051       arguments is a string which contains the parameters used to initialize
18052       the filter instance. It may have one of two forms:
18053
18054       •   A ':'-separated list of key=value pairs.
18055
18056       •   A ':'-separated list of value. In this case, the keys are assumed
18057           to be the option names in the order they are declared. E.g. the
18058           "fade" filter declares three options in this order -- type,
18059           start_frame and nb_frames. Then the parameter list in:0:30 means
18060           that the value in is assigned to the option type, 0 to start_frame
18061           and 30 to nb_frames.
18062
18063       •   A ':'-separated list of mixed direct value and long key=value
18064           pairs. The direct value must precede the key=value pairs, and
18065           follow the same constraints order of the previous point. The
18066           following key=value pairs can be set in any preferred order.
18067
18068       If the option value itself is a list of items (e.g. the "format" filter
18069       takes a list of pixel formats), the items in the list are usually
18070       separated by |.
18071
18072       The list of arguments can be quoted using the character ' as initial
18073       and ending mark, and the character \ for escaping the characters within
18074       the quoted text; otherwise the argument string is considered terminated
18075       when the next special character (belonging to the set []=;,) is
18076       encountered.
18077
18078       The name and arguments of the filter are optionally preceded and
18079       followed by a list of link labels.  A link label allows one to name a
18080       link and associate it to a filter output or input pad. The preceding
18081       labels in_link_1 ... in_link_N, are associated to the filter input
18082       pads, the following labels out_link_1 ... out_link_M, are associated to
18083       the output pads.
18084
18085       When two link labels with the same name are found in the filtergraph, a
18086       link between the corresponding input and output pad is created.
18087
18088       If an output pad is not labelled, it is linked by default to the first
18089       unlabelled input pad of the next filter in the filterchain.  For
18090       example in the filterchain
18091
18092               nullsrc, split[L1], [L2]overlay, nullsink
18093
18094       the split filter instance has two output pads, and the overlay filter
18095       instance two input pads. The first output pad of split is labelled
18096       "L1", the first input pad of overlay is labelled "L2", and the second
18097       output pad of split is linked to the second input pad of overlay, which
18098       are both unlabelled.
18099
18100       In a filter description, if the input label of the first filter is not
18101       specified, "in" is assumed; if the output label of the last filter is
18102       not specified, "out" is assumed.
18103
18104       In a complete filterchain all the unlabelled filter input and output
18105       pads must be connected. A filtergraph is considered valid if all the
18106       filter input and output pads of all the filterchains are connected.
18107
18108       Libavfilter will automatically insert scale filters where format
18109       conversion is required. It is possible to specify swscale flags for
18110       those automatically inserted scalers by prepending "sws_flags=flags;"
18111       to the filtergraph description.
18112
18113       Here is a BNF description of the filtergraph syntax:
18114
18115               <NAME>             ::= sequence of alphanumeric characters and '_'
18116               <FILTER_NAME>      ::= <NAME>["@"<NAME>]
18117               <LINKLABEL>        ::= "[" <NAME> "]"
18118               <LINKLABELS>       ::= <LINKLABEL> [<LINKLABELS>]
18119               <FILTER_ARGUMENTS> ::= sequence of chars (possibly quoted)
18120               <FILTER>           ::= [<LINKLABELS>] <FILTER_NAME> ["=" <FILTER_ARGUMENTS>] [<LINKLABELS>]
18121               <FILTERCHAIN>      ::= <FILTER> [,<FILTERCHAIN>]
18122               <FILTERGRAPH>      ::= [sws_flags=<flags>;] <FILTERCHAIN> [;<FILTERGRAPH>]
18123
18124   Notes on filtergraph escaping
18125       Filtergraph description composition entails several levels of escaping.
18126       See the "Quoting and escaping" section in the ffmpeg-utils(1) manual
18127       for more information about the employed escaping procedure.
18128
18129       A first level escaping affects the content of each filter option value,
18130       which may contain the special character ":" used to separate values, or
18131       one of the escaping characters "\'".
18132
18133       A second level escaping affects the whole filter description, which may
18134       contain the escaping characters "\'" or the special characters "[],;"
18135       used by the filtergraph description.
18136
18137       Finally, when you specify a filtergraph on a shell commandline, you
18138       need to perform a third level escaping for the shell special characters
18139       contained within it.
18140
18141       For example, consider the following string to be embedded in the
18142       drawtext filter description text value:
18143
18144               this is a 'string': may contain one, or more, special characters
18145
18146       This string contains the "'" special escaping character, and the ":"
18147       special character, so it needs to be escaped in this way:
18148
18149               text=this is a \'string\'\: may contain one, or more, special characters
18150
18151       A second level of escaping is required when embedding the filter
18152       description in a filtergraph description, in order to escape all the
18153       filtergraph special characters. Thus the example above becomes:
18154
18155               drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
18156
18157       (note that in addition to the "\'" escaping special characters, also
18158       "," needs to be escaped).
18159
18160       Finally an additional level of escaping is needed when writing the
18161       filtergraph description in a shell command, which depends on the
18162       escaping rules of the adopted shell. For example, assuming that "\" is
18163       special and needs to be escaped with another "\", the previous string
18164       will finally result in:
18165
18166               -vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
18167

TIMELINE EDITING

18169       Some filters support a generic enable option. For the filters
18170       supporting timeline editing, this option can be set to an expression
18171       which is evaluated before sending a frame to the filter. If the
18172       evaluation is non-zero, the filter will be enabled, otherwise the frame
18173       will be sent unchanged to the next filter in the filtergraph.
18174
18175       The expression accepts the following values:
18176
18177       t   timestamp expressed in seconds, NAN if the input timestamp is
18178           unknown
18179
18180       n   sequential number of the input frame, starting from 0
18181
18182       pos the position in the file of the input frame, NAN if unknown
18183
18184       w
18185       h   width and height of the input frame if video
18186
18187       Additionally, these filters support an enable command that can be used
18188       to re-define the expression.
18189
18190       Like any other filtering option, the enable option follows the same
18191       rules.
18192
18193       For example, to enable a blur filter (smartblur) from 10 seconds to 3
18194       minutes, and a curves filter starting at 3 seconds:
18195
18196               smartblur = enable='between(t,10,3*60)',
18197               curves    = enable='gte(t,3)' : preset=cross_process
18198
18199       See "ffmpeg -filters" to view which filters have timeline support.
18200

CHANGING OPTIONS AT RUNTIME WITH A COMMAND

18202       Some options can be changed during the operation of the filter using a
18203       command. These options are marked 'T' on the output of ffmpeg -h
18204       filter=<name of filter>.  The name of the command is the name of the
18205       option and the argument is the new value.
18206

OPTIONS FOR FILTERS WITH SEVERAL INPUTS

18208       Some filters with several inputs support a common set of options.
18209       These options can only be set by name, not with the short notation.
18210
18211       eof_action
18212           The action to take when EOF is encountered on the secondary input;
18213           it accepts one of the following values:
18214
18215           repeat
18216               Repeat the last frame (the default).
18217
18218           endall
18219               End both streams.
18220
18221           pass
18222               Pass the main input through.
18223
18224       shortest
18225           If set to 1, force the output to terminate when the shortest input
18226           terminates. Default value is 0.
18227
18228       repeatlast
18229           If set to 1, force the filter to extend the last frame of secondary
18230           streams until the end of the primary stream. A value of 0 disables
18231           this behavior.  Default value is 1.
18232

AUDIO FILTERS

18234       When you configure your FFmpeg build, you can disable any of the
18235       existing filters using "--disable-filters".  The configure output will
18236       show the audio filters included in your build.
18237
18238       Below is a description of the currently available audio filters.
18239
18240   acompressor
18241       A compressor is mainly used to reduce the dynamic range of a signal.
18242       Especially modern music is mostly compressed at a high ratio to improve
18243       the overall loudness. It's done to get the highest attention of a
18244       listener, "fatten" the sound and bring more "power" to the track.  If a
18245       signal is compressed too much it may sound dull or "dead" afterwards or
18246       it may start to "pump" (which could be a powerful effect but can also
18247       destroy a track completely).  The right compression is the key to reach
18248       a professional sound and is the high art of mixing and mastering.
18249       Because of its complex settings it may take a long time to get the
18250       right feeling for this kind of effect.
18251
18252       Compression is done by detecting the volume above a chosen level
18253       "threshold" and dividing it by the factor set with "ratio".  So if you
18254       set the threshold to -12dB and your signal reaches -6dB a ratio of 2:1
18255       will result in a signal at -9dB. Because an exact manipulation of the
18256       signal would cause distortion of the waveform the reduction can be
18257       levelled over the time. This is done by setting "Attack" and "Release".
18258       "attack" determines how long the signal has to rise above the threshold
18259       before any reduction will occur and "release" sets the time the signal
18260       has to fall below the threshold to reduce the reduction again. Shorter
18261       signals than the chosen attack time will be left untouched.  The
18262       overall reduction of the signal can be made up afterwards with the
18263       "makeup" setting. So compressing the peaks of a signal about 6dB and
18264       raising the makeup to this level results in a signal twice as loud than
18265       the source. To gain a softer entry in the compression the "knee"
18266       flattens the hard edge at the threshold in the range of the chosen
18267       decibels.
18268
18269       The filter accepts the following options:
18270
18271       level_in
18272           Set input gain. Default is 1. Range is between 0.015625 and 64.
18273
18274       mode
18275           Set mode of compressor operation. Can be "upward" or "downward".
18276           Default is "downward".
18277
18278       threshold
18279           If a signal of stream rises above this level it will affect the
18280           gain reduction.  By default it is 0.125. Range is between
18281           0.00097563 and 1.
18282
18283       ratio
18284           Set a ratio by which the signal is reduced. 1:2 means that if the
18285           level rose 4dB above the threshold, it will be only 2dB above after
18286           the reduction.  Default is 2. Range is between 1 and 20.
18287
18288       attack
18289           Amount of milliseconds the signal has to rise above the threshold
18290           before gain reduction starts. Default is 20. Range is between 0.01
18291           and 2000.
18292
18293       release
18294           Amount of milliseconds the signal has to fall below the threshold
18295           before reduction is decreased again. Default is 250. Range is
18296           between 0.01 and 9000.
18297
18298       makeup
18299           Set the amount by how much signal will be amplified after
18300           processing.  Default is 1. Range is from 1 to 64.
18301
18302       knee
18303           Curve the sharp knee around the threshold to enter gain reduction
18304           more softly.  Default is 2.82843. Range is between 1 and 8.
18305
18306       link
18307           Choose if the "average" level between all channels of input stream
18308           or the louder("maximum") channel of input stream affects the
18309           reduction. Default is "average".
18310
18311       detection
18312           Should the exact signal be taken in case of "peak" or an RMS one in
18313           case of "rms". Default is "rms" which is mostly smoother.
18314
18315       mix How much to use compressed signal in output. Default is 1.  Range
18316           is between 0 and 1.
18317
18318       Commands
18319
18320       This filter supports the all above options as commands.
18321
18322   acontrast
18323       Simple audio dynamic range compression/expansion filter.
18324
18325       The filter accepts the following options:
18326
18327       contrast
18328           Set contrast. Default is 33. Allowed range is between 0 and 100.
18329
18330   acopy
18331       Copy the input audio source unchanged to the output. This is mainly
18332       useful for testing purposes.
18333
18334   acrossfade
18335       Apply cross fade from one input audio stream to another input audio
18336       stream.  The cross fade is applied for specified duration near the end
18337       of first stream.
18338
18339       The filter accepts the following options:
18340
18341       nb_samples, ns
18342           Specify the number of samples for which the cross fade effect has
18343           to last.  At the end of the cross fade effect the first input audio
18344           will be completely silent. Default is 44100.
18345
18346       duration, d
18347           Specify the duration of the cross fade effect. See the Time
18348           duration section in the ffmpeg-utils(1) manual for the accepted
18349           syntax.  By default the duration is determined by nb_samples.  If
18350           set this option is used instead of nb_samples.
18351
18352       overlap, o
18353           Should first stream end overlap with second stream start. Default
18354           is enabled.
18355
18356       curve1
18357           Set curve for cross fade transition for first stream.
18358
18359       curve2
18360           Set curve for cross fade transition for second stream.
18361
18362           For description of available curve types see afade filter
18363           description.
18364
18365       Examples
18366
18367       •   Cross fade from one input to another:
18368
18369                   ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:c1=exp:c2=exp output.flac
18370
18371       •   Cross fade from one input to another but without overlapping:
18372
18373                   ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:o=0:c1=exp:c2=exp output.flac
18374
18375   acrossover
18376       Split audio stream into several bands.
18377
18378       This filter splits audio stream into two or more frequency ranges.
18379       Summing all streams back will give flat output.
18380
18381       The filter accepts the following options:
18382
18383       split
18384           Set split frequencies. Those must be positive and increasing.
18385
18386       order
18387           Set filter order for each band split. This controls filter roll-off
18388           or steepness of filter transfer function.  Available values are:
18389
18390           2nd 12 dB per octave.
18391
18392           4th 24 dB per octave.
18393
18394           6th 36 dB per octave.
18395
18396           8th 48 dB per octave.
18397
18398           10th
18399               60 dB per octave.
18400
18401           12th
18402               72 dB per octave.
18403
18404           14th
18405               84 dB per octave.
18406
18407           16th
18408               96 dB per octave.
18409
18410           18th
18411               108 dB per octave.
18412
18413           20th
18414               120 dB per octave.
18415
18416           Default is 4th.
18417
18418       level
18419           Set input gain level. Allowed range is from 0 to 1. Default value
18420           is 1.
18421
18422       gains
18423           Set output gain for each band. Default value is 1 for all bands.
18424
18425       precision
18426           Set which precision to use when processing samples.
18427
18428           auto
18429               Auto pick internal sample format depending on other filters.
18430
18431           float
18432               Always use single-floating point precision sample format.
18433
18434           double
18435               Always use double-floating point precision sample format.
18436
18437           Default value is "auto".
18438
18439       Examples
18440
18441       •   Split input audio stream into two bands (low and high) with split
18442           frequency of 1500 Hz, each band will be in separate stream:
18443
18444                   ffmpeg -i in.flac -filter_complex 'acrossover=split=1500[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
18445
18446       •   Same as above, but with higher filter order:
18447
18448                   ffmpeg -i in.flac -filter_complex 'acrossover=split=1500:order=8th[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
18449
18450       •   Same as above, but also with additional middle band (frequencies
18451           between 1500 and 8000):
18452
18453                   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
18454
18455   acrusher
18456       Reduce audio bit resolution.
18457
18458       This filter is bit crusher with enhanced functionality. A bit crusher
18459       is used to audibly reduce number of bits an audio signal is sampled
18460       with. This doesn't change the bit depth at all, it just produces the
18461       effect. Material reduced in bit depth sounds more harsh and "digital".
18462       This filter is able to even round to continuous values instead of
18463       discrete bit depths.  Additionally it has a D/C offset which results in
18464       different crushing of the lower and the upper half of the signal.  An
18465       Anti-Aliasing setting is able to produce "softer" crushing sounds.
18466
18467       Another feature of this filter is the logarithmic mode.  This setting
18468       switches from linear distances between bits to logarithmic ones.  The
18469       result is a much more "natural" sounding crusher which doesn't gate low
18470       signals for example. The human ear has a logarithmic perception, so
18471       this kind of crushing is much more pleasant.  Logarithmic crushing is
18472       also able to get anti-aliased.
18473
18474       The filter accepts the following options:
18475
18476       level_in
18477           Set level in.
18478
18479       level_out
18480           Set level out.
18481
18482       bits
18483           Set bit reduction.
18484
18485       mix Set mixing amount.
18486
18487       mode
18488           Can be linear: "lin" or logarithmic: "log".
18489
18490       dc  Set DC.
18491
18492       aa  Set anti-aliasing.
18493
18494       samples
18495           Set sample reduction.
18496
18497       lfo Enable LFO. By default disabled.
18498
18499       lforange
18500           Set LFO range.
18501
18502       lforate
18503           Set LFO rate.
18504
18505       Commands
18506
18507       This filter supports the all above options as commands.
18508
18509   acue
18510       Delay audio filtering until a given wallclock timestamp. See the cue
18511       filter.
18512
18513   adeclick
18514       Remove impulsive noise from input audio.
18515
18516       Samples detected as impulsive noise are replaced by interpolated
18517       samples using autoregressive modelling.
18518
18519       window, w
18520           Set window size, in milliseconds. Allowed range is from 10 to 100.
18521           Default value is 55 milliseconds.  This sets size of window which
18522           will be processed at once.
18523
18524       overlap, o
18525           Set window overlap, in percentage of window size. Allowed range is
18526           from 50 to 95. Default value is 75 percent.  Setting this to a very
18527           high value increases impulsive noise removal but makes whole
18528           process much slower.
18529
18530       arorder, a
18531           Set autoregression order, in percentage of window size. Allowed
18532           range is from 0 to 25. Default value is 2 percent. This option also
18533           controls quality of interpolated samples using neighbour good
18534           samples.
18535
18536       threshold, t
18537           Set threshold value. Allowed range is from 1 to 100.  Default value
18538           is 2.  This controls the strength of impulsive noise which is going
18539           to be removed.  The lower value, the more samples will be detected
18540           as impulsive noise.
18541
18542       burst, b
18543           Set burst fusion, in percentage of window size. Allowed range is 0
18544           to 10. Default value is 2.  If any two samples detected as noise
18545           are spaced less than this value then any sample between those two
18546           samples will be also detected as noise.
18547
18548       method, m
18549           Set overlap method.
18550
18551           It accepts the following values:
18552
18553           add, a
18554               Select overlap-add method. Even not interpolated samples are
18555               slightly changed with this method.
18556
18557           save, s
18558               Select overlap-save method. Not interpolated samples remain
18559               unchanged.
18560
18561           Default value is "a".
18562
18563   adeclip
18564       Remove clipped samples from input audio.
18565
18566       Samples detected as clipped are replaced by interpolated samples using
18567       autoregressive modelling.
18568
18569       window, w
18570           Set window size, in milliseconds. Allowed range is from 10 to 100.
18571           Default value is 55 milliseconds.  This sets size of window which
18572           will be processed at once.
18573
18574       overlap, o
18575           Set window overlap, in percentage of window size. Allowed range is
18576           from 50 to 95. Default value is 75 percent.
18577
18578       arorder, a
18579           Set autoregression order, in percentage of window size. Allowed
18580           range is from 0 to 25. Default value is 8 percent. This option also
18581           controls quality of interpolated samples using neighbour good
18582           samples.
18583
18584       threshold, t
18585           Set threshold value. Allowed range is from 1 to 100.  Default value
18586           is 10. Higher values make clip detection less aggressive.
18587
18588       hsize, n
18589           Set size of histogram used to detect clips. Allowed range is from
18590           100 to 9999.  Default value is 1000. Higher values make clip
18591           detection less aggressive.
18592
18593       method, m
18594           Set overlap method.
18595
18596           It accepts the following values:
18597
18598           add, a
18599               Select overlap-add method. Even not interpolated samples are
18600               slightly changed with this method.
18601
18602           save, s
18603               Select overlap-save method. Not interpolated samples remain
18604               unchanged.
18605
18606           Default value is "a".
18607
18608   adecorrelate
18609       Apply decorrelation to input audio stream.
18610
18611       The filter accepts the following options:
18612
18613       stages
18614           Set decorrelation stages of filtering. Allowed range is from 1 to
18615           16. Default value is 6.
18616
18617       seed
18618           Set random seed used for setting delay in samples across channels.
18619
18620   adelay
18621       Delay one or more audio channels.
18622
18623       Samples in delayed channel are filled with silence.
18624
18625       The filter accepts the following option:
18626
18627       delays
18628           Set list of delays in milliseconds for each channel separated by
18629           '|'.  Unused delays will be silently ignored. If number of given
18630           delays is smaller than number of channels all remaining channels
18631           will not be delayed.  If you want to delay exact number of samples,
18632           append 'S' to number.  If you want instead to delay in seconds,
18633           append 's' to number.
18634
18635       all Use last set delay for all remaining channels. By default is
18636           disabled.  This option if enabled changes how option "delays" is
18637           interpreted.
18638
18639       Examples
18640
18641       •   Delay first channel by 1.5 seconds, the third channel by 0.5
18642           seconds and leave the second channel (and any other channels that
18643           may be present) unchanged.
18644
18645                   adelay=1500|0|500
18646
18647       •   Delay second channel by 500 samples, the third channel by 700
18648           samples and leave the first channel (and any other channels that
18649           may be present) unchanged.
18650
18651                   adelay=0|500S|700S
18652
18653       •   Delay all channels by same number of samples:
18654
18655                   adelay=delays=64S:all=1
18656
18657   adenorm
18658       Remedy denormals in audio by adding extremely low-level noise.
18659
18660       This filter shall be placed before any filter that can produce
18661       denormals.
18662
18663       A description of the accepted parameters follows.
18664
18665       level
18666           Set level of added noise in dB. Default is "-351".  Allowed range
18667           is from -451 to -90.
18668
18669       type
18670           Set type of added noise.
18671
18672           dc  Add DC signal.
18673
18674           ac  Add AC signal.
18675
18676           square
18677               Add square signal.
18678
18679           pulse
18680               Add pulse signal.
18681
18682           Default is "dc".
18683
18684       Commands
18685
18686       This filter supports the all above options as commands.
18687
18688   aderivative, aintegral
18689       Compute derivative/integral of audio stream.
18690
18691       Applying both filters one after another produces original audio.
18692
18693   adynamicequalizer
18694       Apply dynamic equalization to input audio stream.
18695
18696       A description of the accepted options follows.
18697
18698       threshold
18699           Set the detection threshold used to trigger equalization.
18700           Threshold detection is using bandpass filter.  Default value is 0.
18701           Allowed range is from 0 to 100.
18702
18703       dfrequency
18704           Set the detection frequency in Hz used for bandpass filter used to
18705           trigger equalization.  Default value is 1000 Hz. Allowed range is
18706           between 2 and 1000000 Hz.
18707
18708       dqfactor
18709           Set the detection resonance factor for bandpass filter used to
18710           trigger equalization.  Default value is 1. Allowed range is from
18711           0.001 to 1000.
18712
18713       tfrequency
18714           Set the target frequency of equalization filter.  Default value is
18715           1000 Hz. Allowed range is between 2 and 1000000 Hz.
18716
18717       tqfactor
18718           Set the target resonance factor for target equalization filter.
18719           Default value is 1. Allowed range is from 0.001 to 1000.
18720
18721       attack
18722           Set the amount of milliseconds the signal from detection has to
18723           rise above the detection threshold before equalization starts.
18724           Default is 20. Allowed range is between 1 and 2000.
18725
18726       release
18727           Set the amount of milliseconds the signal from detection has to
18728           fall below the detection threshold before equalization ends.
18729           Default is 200. Allowed range is between 1 and 2000.
18730
18731       knee
18732           Curve the sharp knee around the detection threshold to calculate
18733           equalization gain more softly.  Default is 1. Allowed range is
18734           between 0 and 8.
18735
18736       ratio
18737           Set the ratio by which the equalization gain is raised.  Default is
18738           1. Allowed range is between 1 and 20.
18739
18740       makeup
18741           Set the makeup offset in dB by which the equalization gain is
18742           raised.  Default is 0. Allowed range is between 0 and 30.
18743
18744       range
18745           Set the max allowed cut/boost amount in dB. Default is 0.  Allowed
18746           range is from 0 to 200.
18747
18748       slew
18749           Set the slew factor. Default is 1. Allowed range is from 1 to 200.
18750
18751       mode
18752           Set the mode of filter operation, can be one of the following:
18753
18754           listen
18755               Output only isolated bandpass signal.
18756
18757           cut Cut frequencies above detection threshold.
18758
18759           boost
18760               Boost frequencies bellow detection threshold.
18761
18762           Default mode is cut.
18763
18764       tftype
18765           Set the type of target filter, can be one of the following:
18766
18767           bell
18768           lowshelf
18769           highshelf
18770
18771           Default type is bell.
18772
18773       Commands
18774
18775       This filter supports the all above options as commands.
18776
18777   adynamicsmooth
18778       Apply dynamic smoothing to input audio stream.
18779
18780       A description of the accepted options follows.
18781
18782       sensitivity
18783           Set an amount of sensitivity to frequency fluctations. Default is
18784           2.  Allowed range is from 0 to 1e+06.
18785
18786       basefreq
18787           Set a base frequency for smoothing. Default value is 22050.
18788           Allowed range is from 2 to 1e+06.
18789
18790       Commands
18791
18792       This filter supports the all above options as commands.
18793
18794   aecho
18795       Apply echoing to the input audio.
18796
18797       Echoes are reflected sound and can occur naturally amongst mountains
18798       (and sometimes large buildings) when talking or shouting; digital echo
18799       effects emulate this behaviour and are often used to help fill out the
18800       sound of a single instrument or vocal. The time difference between the
18801       original signal and the reflection is the "delay", and the loudness of
18802       the reflected signal is the "decay".  Multiple echoes can have
18803       different delays and decays.
18804
18805       A description of the accepted parameters follows.
18806
18807       in_gain
18808           Set input gain of reflected signal. Default is 0.6.
18809
18810       out_gain
18811           Set output gain of reflected signal. Default is 0.3.
18812
18813       delays
18814           Set list of time intervals in milliseconds between original signal
18815           and reflections separated by '|'. Allowed range for each "delay" is
18816           "(0 - 90000.0]".  Default is 1000.
18817
18818       decays
18819           Set list of loudness of reflected signals separated by '|'.
18820           Allowed range for each "decay" is "(0 - 1.0]".  Default is 0.5.
18821
18822       Examples
18823
18824       •   Make it sound as if there are twice as many instruments as are
18825           actually playing:
18826
18827                   aecho=0.8:0.88:60:0.4
18828
18829       •   If delay is very short, then it sounds like a (metallic) robot
18830           playing music:
18831
18832                   aecho=0.8:0.88:6:0.4
18833
18834       •   A longer delay will sound like an open air concert in the
18835           mountains:
18836
18837                   aecho=0.8:0.9:1000:0.3
18838
18839       •   Same as above but with one more mountain:
18840
18841                   aecho=0.8:0.9:1000|1800:0.3|0.25
18842
18843   aemphasis
18844       Audio emphasis filter creates or restores material directly taken from
18845       LPs or emphased CDs with different filter curves. E.g. to store music
18846       on vinyl the signal has to be altered by a filter first to even out the
18847       disadvantages of this recording medium.  Once the material is played
18848       back the inverse filter has to be applied to restore the distortion of
18849       the frequency response.
18850
18851       The filter accepts the following options:
18852
18853       level_in
18854           Set input gain.
18855
18856       level_out
18857           Set output gain.
18858
18859       mode
18860           Set filter mode. For restoring material use "reproduction" mode,
18861           otherwise use "production" mode. Default is "reproduction" mode.
18862
18863       type
18864           Set filter type. Selects medium. Can be one of the following:
18865
18866           col select Columbia.
18867
18868           emi select EMI.
18869
18870           bsi select BSI (78RPM).
18871
18872           riaa
18873               select RIAA.
18874
18875           cd  select Compact Disc (CD).
18876
18877           50fm
18878               select 50Xs (FM).
18879
18880           75fm
18881               select 75Xs (FM).
18882
18883           50kf
18884               select 50Xs (FM-KF).
18885
18886           75kf
18887               select 75Xs (FM-KF).
18888
18889       Commands
18890
18891       This filter supports the all above options as commands.
18892
18893   aeval
18894       Modify an audio signal according to the specified expressions.
18895
18896       This filter accepts one or more expressions (one for each channel),
18897       which are evaluated and used to modify a corresponding audio signal.
18898
18899       It accepts the following parameters:
18900
18901       exprs
18902           Set the '|'-separated expressions list for each separate channel.
18903           If the number of input channels is greater than the number of
18904           expressions, the last specified expression is used for the
18905           remaining output channels.
18906
18907       channel_layout, c
18908           Set output channel layout. If not specified, the channel layout is
18909           specified by the number of expressions. If set to same, it will use
18910           by default the same input channel layout.
18911
18912       Each expression in exprs can contain the following constants and
18913       functions:
18914
18915       ch  channel number of the current expression
18916
18917       n   number of the evaluated sample, starting from 0
18918
18919       s   sample rate
18920
18921       t   time of the evaluated sample expressed in seconds
18922
18923       nb_in_channels
18924       nb_out_channels
18925           input and output number of channels
18926
18927       val(CH)
18928           the value of input channel with number CH
18929
18930       Note: this filter is slow. For faster processing you should use a
18931       dedicated filter.
18932
18933       Examples
18934
18935       •   Half volume:
18936
18937                   aeval=val(ch)/2:c=same
18938
18939       •   Invert phase of the second channel:
18940
18941                   aeval=val(0)|-val(1)
18942
18943   aexciter
18944       An exciter is used to produce high sound that is not present in the
18945       original signal. This is done by creating harmonic distortions of the
18946       signal which are restricted in range and added to the original signal.
18947       An Exciter raises the upper end of an audio signal without simply
18948       raising the higher frequencies like an equalizer would do to create a
18949       more "crisp" or "brilliant" sound.
18950
18951       The filter accepts the following options:
18952
18953       level_in
18954           Set input level prior processing of signal.  Allowed range is from
18955           0 to 64.  Default value is 1.
18956
18957       level_out
18958           Set output level after processing of signal.  Allowed range is from
18959           0 to 64.  Default value is 1.
18960
18961       amount
18962           Set the amount of harmonics added to original signal.  Allowed
18963           range is from 0 to 64.  Default value is 1.
18964
18965       drive
18966           Set the amount of newly created harmonics.  Allowed range is from
18967           0.1 to 10.  Default value is 8.5.
18968
18969       blend
18970           Set the octave of newly created harmonics.  Allowed range is from
18971           -10 to 10.  Default value is 0.
18972
18973       freq
18974           Set the lower frequency limit of producing harmonics in Hz.
18975           Allowed range is from 2000 to 12000 Hz.  Default is 7500 Hz.
18976
18977       ceil
18978           Set the upper frequency limit of producing harmonics.  Allowed
18979           range is from 9999 to 20000 Hz.  If value is lower than 10000 Hz no
18980           limit is applied.
18981
18982       listen
18983           Mute the original signal and output only added harmonics.  By
18984           default is disabled.
18985
18986       Commands
18987
18988       This filter supports the all above options as commands.
18989
18990   afade
18991       Apply fade-in/out effect to input audio.
18992
18993       A description of the accepted parameters follows.
18994
18995       type, t
18996           Specify the effect type, can be either "in" for fade-in, or "out"
18997           for a fade-out effect. Default is "in".
18998
18999       start_sample, ss
19000           Specify the number of the start sample for starting to apply the
19001           fade effect. Default is 0.
19002
19003       nb_samples, ns
19004           Specify the number of samples for which the fade effect has to
19005           last. At the end of the fade-in effect the output audio will have
19006           the same volume as the input audio, at the end of the fade-out
19007           transition the output audio will be silence. Default is 44100.
19008
19009       start_time, st
19010           Specify the start time of the fade effect. Default is 0.  The value
19011           must be specified as a time duration; see the Time duration section
19012           in the ffmpeg-utils(1) manual for the accepted syntax.  If set this
19013           option is used instead of start_sample.
19014
19015       duration, d
19016           Specify the duration of the fade effect. See the Time duration
19017           section in the ffmpeg-utils(1) manual for the accepted syntax.  At
19018           the end of the fade-in effect the output audio will have the same
19019           volume as the input audio, at the end of the fade-out transition
19020           the output audio will be silence.  By default the duration is
19021           determined by nb_samples.  If set this option is used instead of
19022           nb_samples.
19023
19024       curve
19025           Set curve for fade transition.
19026
19027           It accepts the following values:
19028
19029           tri select triangular, linear slope (default)
19030
19031           qsin
19032               select quarter of sine wave
19033
19034           hsin
19035               select half of sine wave
19036
19037           esin
19038               select exponential sine wave
19039
19040           log select logarithmic
19041
19042           ipar
19043               select inverted parabola
19044
19045           qua select quadratic
19046
19047           cub select cubic
19048
19049           squ select square root
19050
19051           cbr select cubic root
19052
19053           par select parabola
19054
19055           exp select exponential
19056
19057           iqsin
19058               select inverted quarter of sine wave
19059
19060           ihsin
19061               select inverted half of sine wave
19062
19063           dese
19064               select double-exponential seat
19065
19066           desi
19067               select double-exponential sigmoid
19068
19069           losi
19070               select logistic sigmoid
19071
19072           sinc
19073               select sine cardinal function
19074
19075           isinc
19076               select inverted sine cardinal function
19077
19078           nofade
19079               no fade applied
19080
19081       Commands
19082
19083       This filter supports the all above options as commands.
19084
19085       Examples
19086
19087       •   Fade in first 15 seconds of audio:
19088
19089                   afade=t=in:ss=0:d=15
19090
19091       •   Fade out last 25 seconds of a 900 seconds audio:
19092
19093                   afade=t=out:st=875:d=25
19094
19095   afftdn
19096       Denoise audio samples with FFT.
19097
19098       A description of the accepted parameters follows.
19099
19100       noise_reduction, nr
19101           Set the noise reduction in dB, allowed range is 0.01 to 97.
19102           Default value is 12 dB.
19103
19104       noise_floor, nf
19105           Set the noise floor in dB, allowed range is -80 to -20.  Default
19106           value is -50 dB.
19107
19108       noise_type, nt
19109           Set the noise type.
19110
19111           It accepts the following values:
19112
19113           white, w
19114               Select white noise.
19115
19116           vinyl, v
19117               Select vinyl noise.
19118
19119           shellac, s
19120               Select shellac noise.
19121
19122           custom, c
19123               Select custom noise, defined in "bn" option.
19124
19125               Default value is white noise.
19126
19127       band_noise, bn
19128           Set custom band noise profile for every one of 15 bands.  Bands are
19129           separated by ' ' or '|'.
19130
19131       residual_floor, rf
19132           Set the residual floor in dB, allowed range is -80 to -20.  Default
19133           value is -38 dB.
19134
19135       track_noise, tn
19136           Enable noise floor tracking. By default is disabled.  With this
19137           enabled, noise floor is automatically adjusted.
19138
19139       track_residual, tr
19140           Enable residual tracking. By default is disabled.
19141
19142       output_mode, om
19143           Set the output mode.
19144
19145           It accepts the following values:
19146
19147           input, i
19148               Pass input unchanged.
19149
19150           output, o
19151               Pass noise filtered out.
19152
19153           noise, n
19154               Pass only noise.
19155
19156               Default value is output.
19157
19158       adaptivity, ad
19159           Set the adaptivity factor, used how fast to adapt gains adjustments
19160           per each frequency bin. Value 0 enables instant adaptation, while
19161           higher values react much slower.  Allowed range is from 0 to 1.
19162           Default value is 0.5.
19163
19164       floor_offset, fo
19165           Set the noise floor offset factor. This option is used to adjust
19166           offset applied to measured noise floor. It is only effective when
19167           noise floor tracking is enabled.  Allowed range is from -2.0 to
19168           2.0. Default value is 1.0.
19169
19170       noise_link, nl
19171           Set the noise link used for multichannel audio.
19172
19173           It accepts the following values:
19174
19175           none
19176               Use unchanged channel's noise floor.
19177
19178           min Use measured min noise floor of all channels.
19179
19180           max Use measured max noise floor of all channels.
19181
19182           average
19183               Use measured average noise floor of all channels.
19184
19185               Default value is min.
19186
19187       band_multiplier, bm
19188           Set the band multiplier factor, used how much to spread bands
19189           across frequency bins.  Allowed range is from 0.2 to 5. Default
19190           value is 1.25.
19191
19192       sample_noise, sn
19193           Toggle capturing and measurement of noise profile from input audio.
19194
19195           It accepts the following values:
19196
19197           start, begin
19198               Start sample noise capture.
19199
19200           stop, end
19201               Stop sample noise capture and measure new noise band profile.
19202
19203               Default value is "none".
19204
19205       gain_smooth, gs
19206           Set gain smooth spatial radius, used to smooth gains applied to
19207           each frequency bin.  Useful to reduce random music noise artefacts.
19208           Higher values increases smoothing of gains.  Allowed range is from
19209           0 to 50.  Default value is 0.
19210
19211       Commands
19212
19213       This filter supports the some above mentioned options as commands.
19214
19215       Examples
19216
19217       •   Reduce white noise by 10dB, and use previously measured noise floor
19218           of -40dB:
19219
19220                   afftdn=nr=10:nf=-40
19221
19222       •   Reduce white noise by 10dB, also set initial noise floor to -80dB
19223           and enable automatic tracking of noise floor so noise floor will
19224           gradually change during processing:
19225
19226                   afftdn=nr=10:nf=-80:tn=1
19227
19228       •   Reduce noise by 20dB, using noise floor of -40dB and using commands
19229           to take noise profile of first 0.4 seconds of input audio:
19230
19231                   asendcmd=0.0 afftdn sn start,asendcmd=0.4 afftdn sn stop,afftdn=nr=20:nf=-40
19232
19233   afftfilt
19234       Apply arbitrary expressions to samples in frequency domain.
19235
19236       real
19237           Set frequency domain real expression for each separate channel
19238           separated by '|'. Default is "re".  If the number of input channels
19239           is greater than the number of expressions, the last specified
19240           expression is used for the remaining output channels.
19241
19242       imag
19243           Set frequency domain imaginary expression for each separate channel
19244           separated by '|'. Default is "im".
19245
19246           Each expression in real and imag can contain the following
19247           constants and functions:
19248
19249           sr  sample rate
19250
19251           b   current frequency bin number
19252
19253           nb  number of available bins
19254
19255           ch  channel number of the current expression
19256
19257           chs number of channels
19258
19259           pts current frame pts
19260
19261           re  current real part of frequency bin of current channel
19262
19263           im  current imaginary part of frequency bin of current channel
19264
19265           real(b, ch)
19266               Return the value of real part of frequency bin at location
19267               (bin,channel)
19268
19269           imag(b, ch)
19270               Return the value of imaginary part of frequency bin at location
19271               (bin,channel)
19272
19273       win_size
19274           Set window size. Allowed range is from 16 to 131072.  Default is
19275           4096
19276
19277       win_func
19278           Set window function.
19279
19280           It accepts the following values:
19281
19282           rect
19283           bartlett
19284           hann, hanning
19285           hamming
19286           blackman
19287           welch
19288           flattop
19289           bharris
19290           bnuttall
19291           bhann
19292           sine
19293           nuttall
19294           lanczos
19295           gauss
19296           tukey
19297           dolph
19298           cauchy
19299           parzen
19300           poisson
19301           bohman
19302
19303           Default is "hann".
19304
19305       overlap
19306           Set window overlap. If set to 1, the recommended overlap for
19307           selected window function will be picked. Default is 0.75.
19308
19309       Examples
19310
19311       •   Leave almost only low frequencies in audio:
19312
19313                   afftfilt="'real=re * (1-clip((b/nb)*b,0,1))':imag='im * (1-clip((b/nb)*b,0,1))'"
19314
19315       •   Apply robotize effect:
19316
19317                   afftfilt="real='hypot(re,im)*sin(0)':imag='hypot(re,im)*cos(0)':win_size=512:overlap=0.75"
19318
19319       •   Apply whisper effect:
19320
19321                   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"
19322
19323   afir
19324       Apply an arbitrary Finite Impulse Response filter.
19325
19326       This filter is designed for applying long FIR filters, up to 60 seconds
19327       long.
19328
19329       It can be used as component for digital crossover filters, room
19330       equalization, cross talk cancellation, wavefield synthesis,
19331       auralization, ambiophonics, ambisonics and spatialization.
19332
19333       This filter uses the streams higher than first one as FIR coefficients.
19334       If the non-first stream holds a single channel, it will be used for all
19335       input channels in the first stream, otherwise the number of channels in
19336       the non-first stream must be same as the number of channels in the
19337       first stream.
19338
19339       It accepts the following parameters:
19340
19341       dry Set dry gain. This sets input gain.
19342
19343       wet Set wet gain. This sets final output gain.
19344
19345       length
19346           Set Impulse Response filter length. Default is 1, which means whole
19347           IR is processed.
19348
19349       gtype
19350           Enable applying gain measured from power of IR.
19351
19352           Set which approach to use for auto gain measurement.
19353
19354           none
19355               Do not apply any gain.
19356
19357           peak
19358               select peak gain, very conservative approach. This is default
19359               value.
19360
19361           dc  select DC gain, limited application.
19362
19363           gn  select gain to noise approach, this is most popular one.
19364
19365       irgain
19366           Set gain to be applied to IR coefficients before filtering.
19367           Allowed range is 0 to 1. This gain is applied after any gain
19368           applied with gtype option.
19369
19370       irfmt
19371           Set format of IR stream. Can be "mono" or "input".  Default is
19372           "input".
19373
19374       maxir
19375           Set max allowed Impulse Response filter duration in seconds.
19376           Default is 30 seconds.  Allowed range is 0.1 to 60 seconds.
19377
19378       response
19379           Show IR frequency response, magnitude(magenta), phase(green) and
19380           group delay(yellow) in additional video stream.  By default it is
19381           disabled.
19382
19383       channel
19384           Set for which IR channel to display frequency response. By default
19385           is first channel displayed. This option is used only when response
19386           is enabled.
19387
19388       size
19389           Set video stream size. This option is used only when response is
19390           enabled.
19391
19392       rate
19393           Set video stream frame rate. This option is used only when response
19394           is enabled.
19395
19396       minp
19397           Set minimal partition size used for convolution. Default is 8192.
19398           Allowed range is from 1 to 32768.  Lower values decreases latency
19399           at cost of higher CPU usage.
19400
19401       maxp
19402           Set maximal partition size used for convolution. Default is 8192.
19403           Allowed range is from 8 to 32768.  Lower values may increase CPU
19404           usage.
19405
19406       nbirs
19407           Set number of input impulse responses streams which will be
19408           switchable at runtime.  Allowed range is from 1 to 32. Default is
19409           1.
19410
19411       ir  Set IR stream which will be used for convolution, starting from 0,
19412           should always be lower than supplied value by "nbirs" option.
19413           Default is 0.  This option can be changed at runtime via commands.
19414
19415       precision
19416           Set which precision to use when processing samples.
19417
19418           auto
19419               Auto pick internal sample format depending on other filters.
19420
19421           float
19422               Always use single-floating point precision sample format.
19423
19424           double
19425               Always use double-floating point precision sample format.
19426
19427           Default value is auto.
19428
19429       Examples
19430
19431       •   Apply reverb to stream using mono IR file as second input, complete
19432           command using ffmpeg:
19433
19434                   ffmpeg -i input.wav -i middle_tunnel_1way_mono.wav -lavfi afir output.wav
19435
19436   aformat
19437       Set output format constraints for the input audio. The framework will
19438       negotiate the most appropriate format to minimize conversions.
19439
19440       It accepts the following parameters:
19441
19442       sample_fmts, f
19443           A '|'-separated list of requested sample formats.
19444
19445       sample_rates, r
19446           A '|'-separated list of requested sample rates.
19447
19448       channel_layouts, cl
19449           A '|'-separated list of requested channel layouts.
19450
19451           See the Channel Layout section in the ffmpeg-utils(1) manual for
19452           the required syntax.
19453
19454       If a parameter is omitted, all values are allowed.
19455
19456       Force the output to either unsigned 8-bit or signed 16-bit stereo
19457
19458               aformat=sample_fmts=u8|s16:channel_layouts=stereo
19459
19460   afreqshift
19461       Apply frequency shift to input audio samples.
19462
19463       The filter accepts the following options:
19464
19465       shift
19466           Specify frequency shift. Allowed range is -INT_MAX to INT_MAX.
19467           Default value is 0.0.
19468
19469       level
19470           Set output gain applied to final output. Allowed range is from 0.0
19471           to 1.0.  Default value is 1.0.
19472
19473       order
19474           Set filter order used for filtering. Allowed range is from 1 to 16.
19475           Default value is 8.
19476
19477       Commands
19478
19479       This filter supports the all above options as commands.
19480
19481   afwtdn
19482       Reduce broadband noise from input samples using Wavelets.
19483
19484       A description of the accepted options follows.
19485
19486       sigma
19487           Set the noise sigma, allowed range is from 0 to 1.  Default value
19488           is 0.  This option controls strength of denoising applied to input
19489           samples.  Most useful way to set this option is via decibels, eg.
19490           -45dB.
19491
19492       levels
19493           Set the number of wavelet levels of decomposition.  Allowed range
19494           is from 1 to 12.  Default value is 10.  Setting this too low make
19495           denoising performance very poor.
19496
19497       wavet
19498           Set wavelet type for decomposition of input frame.  They are sorted
19499           by number of coefficients, from lowest to highest.  More
19500           coefficients means worse filtering speed, but overall better
19501           quality.  Available wavelets are:
19502
19503           sym2
19504           sym4
19505           rbior68
19506           deb10
19507           sym10
19508           coif5
19509           bl3
19510       percent
19511           Set percent of full denoising. Allowed range is from 0 to 100
19512           percent.  Default value is 85 percent or partial denoising.
19513
19514       profile
19515           If enabled, first input frame will be used as noise profile.  If
19516           first frame samples contain non-noise performance will be very
19517           poor.
19518
19519       adaptive
19520           If enabled, input frames are analyzed for presence of noise.  If
19521           noise is detected with high possibility then input frame profile
19522           will be used for processing following frames, until new noise frame
19523           is detected.
19524
19525       samples
19526           Set size of single frame in number of samples. Allowed range is
19527           from 512 to 65536. Default frame size is 8192 samples.
19528
19529       softness
19530           Set softness applied inside thresholding function. Allowed range is
19531           from 0 to 10. Default softness is 1.
19532
19533       Commands
19534
19535       This filter supports the all above options as commands.
19536
19537   agate
19538       A gate is mainly used to reduce lower parts of a signal. This kind of
19539       signal processing reduces disturbing noise between useful signals.
19540
19541       Gating is done by detecting the volume below a chosen level threshold
19542       and dividing it by the factor set with ratio. The bottom of the noise
19543       floor is set via range. Because an exact manipulation of the signal
19544       would cause distortion of the waveform the reduction can be levelled
19545       over time. This is done by setting attack and release.
19546
19547       attack determines how long the signal has to fall below the threshold
19548       before any reduction will occur and release sets the time the signal
19549       has to rise above the threshold to reduce the reduction again.  Shorter
19550       signals than the chosen attack time will be left untouched.
19551
19552       level_in
19553           Set input level before filtering.  Default is 1. Allowed range is
19554           from 0.015625 to 64.
19555
19556       mode
19557           Set the mode of operation. Can be "upward" or "downward".  Default
19558           is "downward". If set to "upward" mode, higher parts of signal will
19559           be amplified, expanding dynamic range in upward direction.
19560           Otherwise, in case of "downward" lower parts of signal will be
19561           reduced.
19562
19563       range
19564           Set the level of gain reduction when the signal is below the
19565           threshold.  Default is 0.06125. Allowed range is from 0 to 1.
19566           Setting this to 0 disables reduction and then filter behaves like
19567           expander.
19568
19569       threshold
19570           If a signal rises above this level the gain reduction is released.
19571           Default is 0.125. Allowed range is from 0 to 1.
19572
19573       ratio
19574           Set a ratio by which the signal is reduced.  Default is 2. Allowed
19575           range is from 1 to 9000.
19576
19577       attack
19578           Amount of milliseconds the signal has to rise above the threshold
19579           before gain reduction stops.  Default is 20 milliseconds. Allowed
19580           range is from 0.01 to 9000.
19581
19582       release
19583           Amount of milliseconds the signal has to fall below the threshold
19584           before the reduction is increased again. Default is 250
19585           milliseconds.  Allowed range is from 0.01 to 9000.
19586
19587       makeup
19588           Set amount of amplification of signal after processing.  Default is
19589           1. Allowed range is from 1 to 64.
19590
19591       knee
19592           Curve the sharp knee around the threshold to enter gain reduction
19593           more softly.  Default is 2.828427125. Allowed range is from 1 to 8.
19594
19595       detection
19596           Choose if exact signal should be taken for detection or an RMS like
19597           one.  Default is "rms". Can be "peak" or "rms".
19598
19599       link
19600           Choose if the average level between all channels or the louder
19601           channel affects the reduction.  Default is "average". Can be
19602           "average" or "maximum".
19603
19604       Commands
19605
19606       This filter supports the all above options as commands.
19607
19608   aiir
19609       Apply an arbitrary Infinite Impulse Response filter.
19610
19611       It accepts the following parameters:
19612
19613       zeros, z
19614           Set B/numerator/zeros/reflection coefficients.
19615
19616       poles, p
19617           Set A/denominator/poles/ladder coefficients.
19618
19619       gains, k
19620           Set channels gains.
19621
19622       dry_gain
19623           Set input gain.
19624
19625       wet_gain
19626           Set output gain.
19627
19628       format, f
19629           Set coefficients format.
19630
19631           ll  lattice-ladder function
19632
19633           sf  analog transfer function
19634
19635           tf  digital transfer function
19636
19637           zp  Z-plane zeros/poles, cartesian (default)
19638
19639           pr  Z-plane zeros/poles, polar radians
19640
19641           pd  Z-plane zeros/poles, polar degrees
19642
19643           sp  S-plane zeros/poles
19644
19645       process, r
19646           Set type of processing.
19647
19648           d   direct processing
19649
19650           s   serial processing
19651
19652           p   parallel processing
19653
19654       precision, e
19655           Set filtering precision.
19656
19657           dbl double-precision floating-point (default)
19658
19659           flt single-precision floating-point
19660
19661           i32 32-bit integers
19662
19663           i16 16-bit integers
19664
19665       normalize, n
19666           Normalize filter coefficients, by default is enabled.  Enabling it
19667           will normalize magnitude response at DC to 0dB.
19668
19669       mix How much to use filtered signal in output. Default is 1.  Range is
19670           between 0 and 1.
19671
19672       response
19673           Show IR frequency response, magnitude(magenta), phase(green) and
19674           group delay(yellow) in additional video stream.  By default it is
19675           disabled.
19676
19677       channel
19678           Set for which IR channel to display frequency response. By default
19679           is first channel displayed. This option is used only when response
19680           is enabled.
19681
19682       size
19683           Set video stream size. This option is used only when response is
19684           enabled.
19685
19686       Coefficients in "tf" and "sf" format are separated by spaces and are in
19687       ascending order.
19688
19689       Coefficients in "zp" format are separated by spaces and order of
19690       coefficients doesn't matter. Coefficients in "zp" format are complex
19691       numbers with i imaginary unit.
19692
19693       Different coefficients and gains can be provided for every channel, in
19694       such case use '|' to separate coefficients or gains. Last provided
19695       coefficients will be used for all remaining channels.
19696
19697       Examples
19698
19699       •   Apply 2 pole elliptic notch at around 5000Hz for 48000 Hz sample
19700           rate:
19701
19702                   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
19703
19704       •   Same as above but in "zp" format:
19705
19706                   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
19707
19708       •   Apply 3-rd order analog normalized Butterworth low-pass filter,
19709           using analog transfer function format:
19710
19711                   aiir=z=1.3057 0 0 0:p=1.3057 2.3892 2.1860 1:f=sf:r=d
19712
19713   alimiter
19714       The limiter prevents an input signal from rising over a desired
19715       threshold.  This limiter uses lookahead technology to prevent your
19716       signal from distorting.  It means that there is a small delay after the
19717       signal is processed. Keep in mind that the delay it produces is the
19718       attack time you set.
19719
19720       The filter accepts the following options:
19721
19722       level_in
19723           Set input gain. Default is 1.
19724
19725       level_out
19726           Set output gain. Default is 1.
19727
19728       limit
19729           Don't let signals above this level pass the limiter. Default is 1.
19730
19731       attack
19732           The limiter will reach its attenuation level in this amount of time
19733           in milliseconds. Default is 5 milliseconds.
19734
19735       release
19736           Come back from limiting to attenuation 1.0 in this amount of
19737           milliseconds.  Default is 50 milliseconds.
19738
19739       asc When gain reduction is always needed ASC takes care of releasing to
19740           an average reduction level rather than reaching a reduction of 0 in
19741           the release time.
19742
19743       asc_level
19744           Select how much the release time is affected by ASC, 0 means nearly
19745           no changes in release time while 1 produces higher release times.
19746
19747       level
19748           Auto level output signal. Default is enabled.  This normalizes
19749           audio back to 0dB if enabled.
19750
19751       latency
19752           Compensate the delay introduced by using the lookahead buffer set
19753           with attack parameter. Also flush the valid audio data in the
19754           lookahead buffer when the stream hits EOF.
19755
19756       Depending on picked setting it is recommended to upsample input 2x or
19757       4x times with aresample before applying this filter.
19758
19759   allpass
19760       Apply a two-pole all-pass filter with central frequency (in Hz)
19761       frequency, and filter-width width.  An all-pass filter changes the
19762       audio's frequency to phase relationship without changing its frequency
19763       to amplitude relationship.
19764
19765       The filter accepts the following options:
19766
19767       frequency, f
19768           Set frequency in Hz.
19769
19770       width_type, t
19771           Set method to specify band-width of filter.
19772
19773           h   Hz
19774
19775           q   Q-Factor
19776
19777           o   octave
19778
19779           s   slope
19780
19781           k   kHz
19782
19783       width, w
19784           Specify the band-width of a filter in width_type units.
19785
19786       mix, m
19787           How much to use filtered signal in output. Default is 1.  Range is
19788           between 0 and 1.
19789
19790       channels, c
19791           Specify which channels to filter, by default all available are
19792           filtered.
19793
19794       normalize, n
19795           Normalize biquad coefficients, by default is disabled.  Enabling it
19796           will normalize magnitude response at DC to 0dB.
19797
19798       order, o
19799           Set the filter order, can be 1 or 2. Default is 2.
19800
19801       transform, a
19802           Set transform type of IIR filter.
19803
19804           di
19805           dii
19806           tdi
19807           tdii
19808           latt
19809           svf
19810           zdf
19811       precision, r
19812           Set precison of filtering.
19813
19814           auto
19815               Pick automatic sample format depending on surround filters.
19816
19817           s16 Always use signed 16-bit.
19818
19819           s32 Always use signed 32-bit.
19820
19821           f32 Always use float 32-bit.
19822
19823           f64 Always use float 64-bit.
19824
19825       Commands
19826
19827       This filter supports the following commands:
19828
19829       frequency, f
19830           Change allpass frequency.  Syntax for the command is : "frequency"
19831
19832       width_type, t
19833           Change allpass width_type.  Syntax for the command is :
19834           "width_type"
19835
19836       width, w
19837           Change allpass width.  Syntax for the command is : "width"
19838
19839       mix, m
19840           Change allpass mix.  Syntax for the command is : "mix"
19841
19842   aloop
19843       Loop audio samples.
19844
19845       The filter accepts the following options:
19846
19847       loop
19848           Set the number of loops. Setting this value to -1 will result in
19849           infinite loops.  Default is 0.
19850
19851       size
19852           Set maximal number of samples. Default is 0.
19853
19854       start
19855           Set first sample of loop. Default is 0.
19856
19857   amerge
19858       Merge two or more audio streams into a single multi-channel stream.
19859
19860       The filter accepts the following options:
19861
19862       inputs
19863           Set the number of inputs. Default is 2.
19864
19865       If the channel layouts of the inputs are disjoint, and therefore
19866       compatible, the channel layout of the output will be set accordingly
19867       and the channels will be reordered as necessary. If the channel layouts
19868       of the inputs are not disjoint, the output will have all the channels
19869       of the first input then all the channels of the second input, in that
19870       order, and the channel layout of the output will be the default value
19871       corresponding to the total number of channels.
19872
19873       For example, if the first input is in 2.1 (FL+FR+LF) and the second
19874       input is FC+BL+BR, then the output will be in 5.1, with the channels in
19875       the following order: a1, a2, b1, a3, b2, b3 (a1 is the first channel of
19876       the first input, b1 is the first channel of the second input).
19877
19878       On the other hand, if both input are in stereo, the output channels
19879       will be in the default order: a1, a2, b1, b2, and the channel layout
19880       will be arbitrarily set to 4.0, which may or may not be the expected
19881       value.
19882
19883       All inputs must have the same sample rate, and format.
19884
19885       If inputs do not have the same duration, the output will stop with the
19886       shortest.
19887
19888       Examples
19889
19890       •   Merge two mono files into a stereo stream:
19891
19892                   amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
19893
19894       •   Multiple merges assuming 1 video stream and 6 audio streams in
19895           input.mkv:
19896
19897                   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
19898
19899   amix
19900       Mixes multiple audio inputs into a single output.
19901
19902       Note that this filter only supports float samples (the amerge and pan
19903       audio filters support many formats). If the amix input has integer
19904       samples then aresample will be automatically inserted to perform the
19905       conversion to float samples.
19906
19907       For example
19908
19909               ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
19910
19911       will mix 3 input audio streams to a single output with the same
19912       duration as the first input and a dropout transition time of 3 seconds.
19913
19914       It accepts the following parameters:
19915
19916       inputs
19917           The number of inputs. If unspecified, it defaults to 2.
19918
19919       duration
19920           How to determine the end-of-stream.
19921
19922           longest
19923               The duration of the longest input. (default)
19924
19925           shortest
19926               The duration of the shortest input.
19927
19928           first
19929               The duration of the first input.
19930
19931       dropout_transition
19932           The transition time, in seconds, for volume renormalization when an
19933           input stream ends. The default value is 2 seconds.
19934
19935       weights
19936           Specify weight of each input audio stream as sequence.  Each weight
19937           is separated by space. By default all inputs have same weight.
19938
19939       normalize
19940           Always scale inputs instead of only doing summation of samples.
19941           Beware of heavy clipping if inputs are not normalized prior or
19942           after filtering by this filter if this option is disabled. By
19943           default is enabled.
19944
19945       Commands
19946
19947       This filter supports the following commands:
19948
19949       weights
19950       normalize
19951           Syntax is same as option with same name.
19952
19953   amultiply
19954       Multiply first audio stream with second audio stream and store result
19955       in output audio stream. Multiplication is done by multiplying each
19956       sample from first stream with sample at same position from second
19957       stream.
19958
19959       With this element-wise multiplication one can create amplitude fades
19960       and amplitude modulations.
19961
19962   anequalizer
19963       High-order parametric multiband equalizer for each channel.
19964
19965       It accepts the following parameters:
19966
19967       params
19968           This option string is in format: "cchn f=cf w=w g=g t=f | ..."
19969           Each equalizer band is separated by '|'.
19970
19971           chn Set channel number to which equalization will be applied.  If
19972               input doesn't have that channel the entry is ignored.
19973
19974           f   Set central frequency for band.  If input doesn't have that
19975               frequency the entry is ignored.
19976
19977           w   Set band width in Hertz.
19978
19979           g   Set band gain in dB.
19980
19981           t   Set filter type for band, optional, can be:
19982
19983               0   Butterworth, this is default.
19984
19985               1   Chebyshev type 1.
19986
19987               2   Chebyshev type 2.
19988
19989       curves
19990           With this option activated frequency response of anequalizer is
19991           displayed in video stream.
19992
19993       size
19994           Set video stream size. Only useful if curves option is activated.
19995
19996       mgain
19997           Set max gain that will be displayed. Only useful if curves option
19998           is activated.  Setting this to a reasonable value makes it possible
19999           to display gain which is derived from neighbour bands which are too
20000           close to each other and thus produce higher gain when both are
20001           activated.
20002
20003       fscale
20004           Set frequency scale used to draw frequency response in video
20005           output.  Can be linear or logarithmic. Default is logarithmic.
20006
20007       colors
20008           Set color for each channel curve which is going to be displayed in
20009           video stream.  This is list of color names separated by space or by
20010           '|'.  Unrecognised or missing colors will be replaced by white
20011           color.
20012
20013       Examples
20014
20015       •   Lower gain by 10 of central frequency 200Hz and width 100 Hz for
20016           first 2 channels using Chebyshev type 1 filter:
20017
20018                   anequalizer=c0 f=200 w=100 g=-10 t=1|c1 f=200 w=100 g=-10 t=1
20019
20020       Commands
20021
20022       This filter supports the following commands:
20023
20024       change
20025           Alter existing filter parameters.  Syntax for the commands is :
20026           "fN|f=freq|w=width|g=gain"
20027
20028           fN is existing filter number, starting from 0, if no such filter is
20029           available error is returned.  freq set new frequency parameter.
20030           width set new width parameter in Hertz.  gain set new gain
20031           parameter in dB.
20032
20033           Full filter invocation with asendcmd may look like this:
20034           asendcmd=c='4.0 anequalizer change
20035           0|f=200|w=50|g=1',anequalizer=...
20036
20037   anlmdn
20038       Reduce broadband noise in audio samples using Non-Local Means
20039       algorithm.
20040
20041       Each sample is adjusted by looking for other samples with similar
20042       contexts. This context similarity is defined by comparing their
20043       surrounding patches of size p. Patches are searched in an area of r
20044       around the sample.
20045
20046       The filter accepts the following options:
20047
20048       strength, s
20049           Set denoising strength. Allowed range is from 0.00001 to 10000.
20050           Default value is 0.00001.
20051
20052       patch, p
20053           Set patch radius duration. Allowed range is from 1 to 100
20054           milliseconds.  Default value is 2 milliseconds.
20055
20056       research, r
20057           Set research radius duration. Allowed range is from 2 to 300
20058           milliseconds.  Default value is 6 milliseconds.
20059
20060       output, o
20061           Set the output mode.
20062
20063           It accepts the following values:
20064
20065           i   Pass input unchanged.
20066
20067           o   Pass noise filtered out.
20068
20069           n   Pass only noise.
20070
20071               Default value is o.
20072
20073       smooth, m
20074           Set smooth factor. Default value is 11. Allowed range is from 1 to
20075           1000.
20076
20077       Commands
20078
20079       This filter supports the all above options as commands.
20080
20081   anlmf, anlms
20082       Apply Normalized Least-Mean-(Squares|Fourth) algorithm to the first
20083       audio stream using the second audio stream.
20084
20085       This adaptive filter is used to mimic a desired filter by finding the
20086       filter coefficients that relate to producing the least mean square of
20087       the error signal (difference between the desired, 2nd input audio
20088       stream and the actual signal, the 1st input audio stream).
20089
20090       A description of the accepted options follows.
20091
20092       order
20093           Set filter order.
20094
20095       mu  Set filter mu.
20096
20097       eps Set the filter eps.
20098
20099       leakage
20100           Set the filter leakage.
20101
20102       out_mode
20103           It accepts the following values:
20104
20105           i   Pass the 1st input.
20106
20107           d   Pass the 2nd input.
20108
20109           o   Pass filtered samples.
20110
20111           n   Pass difference between desired and filtered samples.
20112
20113               Default value is o.
20114
20115       Examples
20116
20117       •   One of many usages of this filter is noise reduction, input audio
20118           is filtered with same samples that are delayed by fixed amount, one
20119           such example for stereo audio is:
20120
20121                   asplit[a][b],[a]adelay=32S|32S[a],[b][a]anlms=order=128:leakage=0.0005:mu=.5:out_mode=o
20122
20123       Commands
20124
20125       This filter supports the same commands as options, excluding option
20126       "order".
20127
20128   anull
20129       Pass the audio source unchanged to the output.
20130
20131   apad
20132       Pad the end of an audio stream with silence.
20133
20134       This can be used together with ffmpeg -shortest to extend audio streams
20135       to the same length as the video stream.
20136
20137       A description of the accepted options follows.
20138
20139       packet_size
20140           Set silence packet size. Default value is 4096.
20141
20142       pad_len
20143           Set the number of samples of silence to add to the end. After the
20144           value is reached, the stream is terminated. This option is mutually
20145           exclusive with whole_len.
20146
20147       whole_len
20148           Set the minimum total number of samples in the output audio stream.
20149           If the value is longer than the input audio length, silence is
20150           added to the end, until the value is reached. This option is
20151           mutually exclusive with pad_len.
20152
20153       pad_dur
20154           Specify the duration of samples of silence to add. See the Time
20155           duration section in the ffmpeg-utils(1) manual for the accepted
20156           syntax. Used only if set to non-negative value.
20157
20158       whole_dur
20159           Specify the minimum total duration in the output audio stream. See
20160           the Time duration section in the ffmpeg-utils(1) manual for the
20161           accepted syntax. Used only if set to non-negative value. If the
20162           value is longer than the input audio length, silence is added to
20163           the end, until the value is reached.  This option is mutually
20164           exclusive with pad_dur
20165
20166       If neither the pad_len nor the whole_len nor pad_dur nor whole_dur
20167       option is set, the filter will add silence to the end of the input
20168       stream indefinitely.
20169
20170       Note that for ffmpeg 4.4 and earlier a zero pad_dur or whole_dur also
20171       caused the filter to add silence indefinitely.
20172
20173       Examples
20174
20175       •   Add 1024 samples of silence to the end of the input:
20176
20177                   apad=pad_len=1024
20178
20179       •   Make sure the audio output will contain at least 10000 samples, pad
20180           the input with silence if required:
20181
20182                   apad=whole_len=10000
20183
20184       •   Use ffmpeg to pad the audio input with silence, so that the video
20185           stream will always result the shortest and will be converted until
20186           the end in the output file when using the shortest option:
20187
20188                   ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT
20189
20190   aphaser
20191       Add a phasing effect to the input audio.
20192
20193       A phaser filter creates series of peaks and troughs in the frequency
20194       spectrum.  The position of the peaks and troughs are modulated so that
20195       they vary over time, creating a sweeping effect.
20196
20197       A description of the accepted parameters follows.
20198
20199       in_gain
20200           Set input gain. Default is 0.4.
20201
20202       out_gain
20203           Set output gain. Default is 0.74
20204
20205       delay
20206           Set delay in milliseconds. Default is 3.0.
20207
20208       decay
20209           Set decay. Default is 0.4.
20210
20211       speed
20212           Set modulation speed in Hz. Default is 0.5.
20213
20214       type
20215           Set modulation type. Default is triangular.
20216
20217           It accepts the following values:
20218
20219           triangular, t
20220           sinusoidal, s
20221
20222   aphaseshift
20223       Apply phase shift to input audio samples.
20224
20225       The filter accepts the following options:
20226
20227       shift
20228           Specify phase shift. Allowed range is from -1.0 to 1.0.  Default
20229           value is 0.0.
20230
20231       level
20232           Set output gain applied to final output. Allowed range is from 0.0
20233           to 1.0.  Default value is 1.0.
20234
20235       order
20236           Set filter order used for filtering. Allowed range is from 1 to 16.
20237           Default value is 8.
20238
20239       Commands
20240
20241       This filter supports the all above options as commands.
20242
20243   apsyclip
20244       Apply Psychoacoustic clipper to input audio stream.
20245
20246       The filter accepts the following options:
20247
20248       level_in
20249           Set input gain. By default it is 1. Range is [0.015625 - 64].
20250
20251       level_out
20252           Set output gain. By default it is 1. Range is [0.015625 - 64].
20253
20254       clip
20255           Set the clipping start value. Default value is 0dBFS or 1.
20256
20257       diff
20258           Output only difference samples, useful to hear introduced
20259           distortions.  By default is disabled.
20260
20261       adaptive
20262           Set strength of adaptive distortion applied. Default value is 0.5.
20263           Allowed range is from 0 to 1.
20264
20265       iterations
20266           Set number of iterations of psychoacoustic clipper.  Allowed range
20267           is from 1 to 20. Default value is 10.
20268
20269       level
20270           Auto level output signal. Default is disabled.  This normalizes
20271           audio back to 0dBFS if enabled.
20272
20273       Commands
20274
20275       This filter supports the all above options as commands.
20276
20277   apulsator
20278       Audio pulsator is something between an autopanner and a tremolo.  But
20279       it can produce funny stereo effects as well. Pulsator changes the
20280       volume of the left and right channel based on a LFO (low frequency
20281       oscillator) with different waveforms and shifted phases.  This filter
20282       have the ability to define an offset between left and right channel. An
20283       offset of 0 means that both LFO shapes match each other.  The left and
20284       right channel are altered equally - a conventional tremolo.  An offset
20285       of 50% means that the shape of the right channel is exactly shifted in
20286       phase (or moved backwards about half of the frequency) - pulsator acts
20287       as an autopanner. At 1 both curves match again. Every setting in
20288       between moves the phase shift gapless between all stages and produces
20289       some "bypassing" sounds with sine and triangle waveforms. The more you
20290       set the offset near 1 (starting from the 0.5) the faster the signal
20291       passes from the left to the right speaker.
20292
20293       The filter accepts the following options:
20294
20295       level_in
20296           Set input gain. By default it is 1. Range is [0.015625 - 64].
20297
20298       level_out
20299           Set output gain. By default it is 1. Range is [0.015625 - 64].
20300
20301       mode
20302           Set waveform shape the LFO will use. Can be one of: sine, triangle,
20303           square, sawup or sawdown. Default is sine.
20304
20305       amount
20306           Set modulation. Define how much of original signal is affected by
20307           the LFO.
20308
20309       offset_l
20310           Set left channel offset. Default is 0. Allowed range is [0 - 1].
20311
20312       offset_r
20313           Set right channel offset. Default is 0.5. Allowed range is [0 - 1].
20314
20315       width
20316           Set pulse width. Default is 1. Allowed range is [0 - 2].
20317
20318       timing
20319           Set possible timing mode. Can be one of: bpm, ms or hz. Default is
20320           hz.
20321
20322       bpm Set bpm. Default is 120. Allowed range is [30 - 300]. Only used if
20323           timing is set to bpm.
20324
20325       ms  Set ms. Default is 500. Allowed range is [10 - 2000]. Only used if
20326           timing is set to ms.
20327
20328       hz  Set frequency in Hz. Default is 2. Allowed range is [0.01 - 100].
20329           Only used if timing is set to hz.
20330
20331   aresample
20332       Resample the input audio to the specified parameters, using the
20333       libswresample library. If none are specified then the filter will
20334       automatically convert between its input and output.
20335
20336       This filter is also able to stretch/squeeze the audio data to make it
20337       match the timestamps or to inject silence / cut out audio to make it
20338       match the timestamps, do a combination of both or do neither.
20339
20340       The filter accepts the syntax [sample_rate:]resampler_options, where
20341       sample_rate expresses a sample rate and resampler_options is a list of
20342       key=value pairs, separated by ":". See the "Resampler Options" section
20343       in the ffmpeg-resampler(1) manual for the complete list of supported
20344       options.
20345
20346       Examples
20347
20348       •   Resample the input audio to 44100Hz:
20349
20350                   aresample=44100
20351
20352       •   Stretch/squeeze samples to the given timestamps, with a maximum of
20353           1000 samples per second compensation:
20354
20355                   aresample=async=1000
20356
20357   areverse
20358       Reverse an audio clip.
20359
20360       Warning: This filter requires memory to buffer the entire clip, so
20361       trimming is suggested.
20362
20363       Examples
20364
20365       •   Take the first 5 seconds of a clip, and reverse it.
20366
20367                   atrim=end=5,areverse
20368
20369   arnndn
20370       Reduce noise from speech using Recurrent Neural Networks.
20371
20372       This filter accepts the following options:
20373
20374       model, m
20375           Set train model file to load. This option is always required.
20376
20377       mix Set how much to mix filtered samples into final output.  Allowed
20378           range is from -1 to 1. Default value is 1.  Negative values are
20379           special, they set how much to keep filtered noise in the final
20380           filter output. Set this option to -1 to hear actual noise removed
20381           from input signal.
20382
20383       Commands
20384
20385       This filter supports the all above options as commands.
20386
20387   asdr
20388       Measure Audio Signal-to-Distortion Ratio.
20389
20390       This filter takes two audio streams for input, and outputs first audio
20391       stream.  Results are in dB per channel at end of either input.
20392
20393   asetnsamples
20394       Set the number of samples per each output audio frame.
20395
20396       The last output packet may contain a different number of samples, as
20397       the filter will flush all the remaining samples when the input audio
20398       signals its end.
20399
20400       The filter accepts the following options:
20401
20402       nb_out_samples, n
20403           Set the number of frames per each output audio frame. The number is
20404           intended as the number of samples per each channel.  Default value
20405           is 1024.
20406
20407       pad, p
20408           If set to 1, the filter will pad the last audio frame with zeroes,
20409           so that the last frame will contain the same number of samples as
20410           the previous ones. Default value is 1.
20411
20412       For example, to set the number of per-frame samples to 1234 and disable
20413       padding for the last frame, use:
20414
20415               asetnsamples=n=1234:p=0
20416
20417   asetrate
20418       Set the sample rate without altering the PCM data.  This will result in
20419       a change of speed and pitch.
20420
20421       The filter accepts the following options:
20422
20423       sample_rate, r
20424           Set the output sample rate. Default is 44100 Hz.
20425
20426   ashowinfo
20427       Show a line containing various information for each input audio frame.
20428       The input audio is not modified.
20429
20430       The shown line contains a sequence of key/value pairs of the form
20431       key:value.
20432
20433       The following values are shown in the output:
20434
20435       n   The (sequential) number of the input frame, starting from 0.
20436
20437       pts The presentation timestamp of the input frame, in time base units;
20438           the time base depends on the filter input pad, and is usually
20439           1/sample_rate.
20440
20441       pts_time
20442           The presentation timestamp of the input frame in seconds.
20443
20444       pos position of the frame in the input stream, -1 if this information
20445           in unavailable and/or meaningless (for example in case of synthetic
20446           audio)
20447
20448       fmt The sample format.
20449
20450       chlayout
20451           The channel layout.
20452
20453       rate
20454           The sample rate for the audio frame.
20455
20456       nb_samples
20457           The number of samples (per channel) in the frame.
20458
20459       checksum
20460           The Adler-32 checksum (printed in hexadecimal) of the audio data.
20461           For planar audio, the data is treated as if all the planes were
20462           concatenated.
20463
20464       plane_checksums
20465           A list of Adler-32 checksums for each data plane.
20466
20467   asoftclip
20468       Apply audio soft clipping.
20469
20470       Soft clipping is a type of distortion effect where the amplitude of a
20471       signal is saturated along a smooth curve, rather than the abrupt shape
20472       of hard-clipping.
20473
20474       This filter accepts the following options:
20475
20476       type
20477           Set type of soft-clipping.
20478
20479           It accepts the following values:
20480
20481           hard
20482           tanh
20483           atan
20484           cubic
20485           exp
20486           alg
20487           quintic
20488           sin
20489           erf
20490       threshold
20491           Set threshold from where to start clipping. Default value is 0dB or
20492           1.
20493
20494       output
20495           Set gain applied to output. Default value is 0dB or 1.
20496
20497       param
20498           Set additional parameter which controls sigmoid function.
20499
20500       oversample
20501           Set oversampling factor.
20502
20503       Commands
20504
20505       This filter supports the all above options as commands.
20506
20507   aspectralstats
20508       Display frequency domain statistical information about the audio
20509       channels.  Statistics are calculated and stored as metadata for each
20510       audio channel and for each audio frame.
20511
20512       It accepts the following option:
20513
20514       win_size
20515           Set the window length in samples. Default value is 2048.  Allowed
20516           range is from 32 to 65536.
20517
20518       win_func
20519           Set window function.
20520
20521           It accepts the following values:
20522
20523           rect
20524           bartlett
20525           hann, hanning
20526           hamming
20527           blackman
20528           welch
20529           flattop
20530           bharris
20531           bnuttall
20532           bhann
20533           sine
20534           nuttall
20535           lanczos
20536           gauss
20537           tukey
20538           dolph
20539           cauchy
20540           parzen
20541           poisson
20542           bohman
20543
20544           Default is "hann".
20545
20546       overlap
20547           Set window overlap. Allowed range is from 0 to 1. Default value is
20548           0.5.
20549
20550       A list of each metadata key follows:
20551
20552       mean
20553       variance
20554       centroid
20555       spread
20556       skewness
20557       kurtosis
20558       entropy
20559       flatness
20560       crest
20561       flux
20562       slope
20563       decrease
20564       rolloff
20565
20566   asr
20567       Automatic Speech Recognition
20568
20569       This filter uses PocketSphinx for speech recognition. To enable
20570       compilation of this filter, you need to configure FFmpeg with
20571       "--enable-pocketsphinx".
20572
20573       It accepts the following options:
20574
20575       rate
20576           Set sampling rate of input audio. Defaults is 16000.  This need to
20577           match speech models, otherwise one will get poor results.
20578
20579       hmm Set dictionary containing acoustic model files.
20580
20581       dict
20582           Set pronunciation dictionary.
20583
20584       lm  Set language model file.
20585
20586       lmctl
20587           Set language model set.
20588
20589       lmname
20590           Set which language model to use.
20591
20592       logfn
20593           Set output for log messages.
20594
20595       The filter exports recognized speech as the frame metadata
20596       "lavfi.asr.text".
20597
20598   astats
20599       Display time domain statistical information about the audio channels.
20600       Statistics are calculated and displayed for each audio channel and,
20601       where applicable, an overall figure is also given.
20602
20603       It accepts the following option:
20604
20605       length
20606           Short window length in seconds, used for peak and trough RMS
20607           measurement.  Default is 0.05 (50 milliseconds). Allowed range is
20608           "[0 - 10]".
20609
20610       metadata
20611           Set metadata injection. All the metadata keys are prefixed with
20612           "lavfi.astats.X", where "X" is channel number starting from 1 or
20613           string "Overall". Default is disabled.
20614
20615           Available keys for each channel are: DC_offset Min_level Max_level
20616           Min_difference Max_difference Mean_difference RMS_difference
20617           Peak_level RMS_peak RMS_trough Crest_factor Flat_factor Peak_count
20618           Noise_floor Noise_floor_count Entropy Bit_depth Dynamic_range
20619           Zero_crossings Zero_crossings_rate Number_of_NaNs Number_of_Infs
20620           Number_of_denormals
20621
20622           and for Overall: DC_offset Min_level Max_level Min_difference
20623           Max_difference Mean_difference RMS_difference Peak_level RMS_level
20624           RMS_peak RMS_trough Flat_factor Peak_count Noise_floor
20625           Noise_floor_count Entropy Bit_depth Number_of_samples
20626           Number_of_NaNs Number_of_Infs Number_of_denormals
20627
20628           For example full key look like this "lavfi.astats.1.DC_offset" or
20629           this "lavfi.astats.Overall.Peak_count".
20630
20631           For description what each key means read below.
20632
20633       reset
20634           Set the number of frames over which cumulative stats are calculated
20635           before being reset Default is disabled.
20636
20637       measure_perchannel
20638           Select the parameters which are measured per channel. The metadata
20639           keys can be used as flags, default is all which measures
20640           everything.  none disables all per channel measurement.
20641
20642       measure_overall
20643           Select the parameters which are measured overall. The metadata keys
20644           can be used as flags, default is all which measures everything.
20645           none disables all overall measurement.
20646
20647       A description of each shown parameter follows:
20648
20649       DC offset
20650           Mean amplitude displacement from zero.
20651
20652       Min level
20653           Minimal sample level.
20654
20655       Max level
20656           Maximal sample level.
20657
20658       Min difference
20659           Minimal difference between two consecutive samples.
20660
20661       Max difference
20662           Maximal difference between two consecutive samples.
20663
20664       Mean difference
20665           Mean difference between two consecutive samples.  The average of
20666           each difference between two consecutive samples.
20667
20668       RMS difference
20669           Root Mean Square difference between two consecutive samples.
20670
20671       Peak level dB
20672       RMS level dB
20673           Standard peak and RMS level measured in dBFS.
20674
20675       RMS peak dB
20676       RMS trough dB
20677           Peak and trough values for RMS level measured over a short window.
20678
20679       Crest factor
20680           Standard ratio of peak to RMS level (note: not in dB).
20681
20682       Flat factor
20683           Flatness (i.e. consecutive samples with the same value) of the
20684           signal at its peak levels (i.e. either Min level or Max level).
20685
20686       Peak count
20687           Number of occasions (not the number of samples) that the signal
20688           attained either Min level or Max level.
20689
20690       Noise floor dB
20691           Minimum local peak measured in dBFS over a short window.
20692
20693       Noise floor count
20694           Number of occasions (not the number of samples) that the signal
20695           attained Noise floor.
20696
20697       Entropy
20698           Entropy measured across whole audio. Entropy of value near 1.0 is
20699           typically measured for white noise.
20700
20701       Bit depth
20702           Overall bit depth of audio. Number of bits used for each sample.
20703
20704       Dynamic range
20705           Measured dynamic range of audio in dB.
20706
20707       Zero crossings
20708           Number of points where the waveform crosses the zero level axis.
20709
20710       Zero crossings rate
20711           Rate of Zero crossings and number of audio samples.
20712
20713   asubboost
20714       Boost subwoofer frequencies.
20715
20716       The filter accepts the following options:
20717
20718       dry Set dry gain, how much of original signal is kept. Allowed range is
20719           from 0 to 1.  Default value is 1.0.
20720
20721       wet Set wet gain, how much of filtered signal is kept. Allowed range is
20722           from 0 to 1.  Default value is 1.0.
20723
20724       boost
20725           Set max boost factor. Allowed range is from 1 to 12. Default value
20726           is 2.
20727
20728       decay
20729           Set delay line decay gain value. Allowed range is from 0 to 1.
20730           Default value is 0.0.
20731
20732       feedback
20733           Set delay line feedback gain value. Allowed range is from 0 to 1.
20734           Default value is 0.9.
20735
20736       cutoff
20737           Set cutoff frequency in Hertz. Allowed range is 50 to 900.  Default
20738           value is 100.
20739
20740       slope
20741           Set slope amount for cutoff frequency. Allowed range is 0.0001 to
20742           1.  Default value is 0.5.
20743
20744       delay
20745           Set delay. Allowed range is from 1 to 100.  Default value is 20.
20746
20747       channels
20748           Set the channels to process. Default value is all available.
20749
20750       Commands
20751
20752       This filter supports the all above options as commands.
20753
20754   asubcut
20755       Cut subwoofer frequencies.
20756
20757       This filter allows to set custom, steeper roll off than highpass
20758       filter, and thus is able to more attenuate frequency content in stop-
20759       band.
20760
20761       The filter accepts the following options:
20762
20763       cutoff
20764           Set cutoff frequency in Hertz. Allowed range is 2 to 200.  Default
20765           value is 20.
20766
20767       order
20768           Set filter order. Available values are from 3 to 20.  Default value
20769           is 10.
20770
20771       level
20772           Set input gain level. Allowed range is from 0 to 1. Default value
20773           is 1.
20774
20775       Commands
20776
20777       This filter supports the all above options as commands.
20778
20779   asupercut
20780       Cut super frequencies.
20781
20782       The filter accepts the following options:
20783
20784       cutoff
20785           Set cutoff frequency in Hertz. Allowed range is 20000 to 192000.
20786           Default value is 20000.
20787
20788       order
20789           Set filter order. Available values are from 3 to 20.  Default value
20790           is 10.
20791
20792       level
20793           Set input gain level. Allowed range is from 0 to 1. Default value
20794           is 1.
20795
20796       Commands
20797
20798       This filter supports the all above options as commands.
20799
20800   asuperpass
20801       Apply high order Butterworth band-pass filter.
20802
20803       The filter accepts the following options:
20804
20805       centerf
20806           Set center frequency in Hertz. Allowed range is 2 to 999999.
20807           Default value is 1000.
20808
20809       order
20810           Set filter order. Available values are from 4 to 20.  Default value
20811           is 4.
20812
20813       qfactor
20814           Set Q-factor. Allowed range is from 0.01 to 100. Default value is
20815           1.
20816
20817       level
20818           Set input gain level. Allowed range is from 0 to 2. Default value
20819           is 1.
20820
20821       Commands
20822
20823       This filter supports the all above options as commands.
20824
20825   asuperstop
20826       Apply high order Butterworth band-stop filter.
20827
20828       The filter accepts the following options:
20829
20830       centerf
20831           Set center frequency in Hertz. Allowed range is 2 to 999999.
20832           Default value is 1000.
20833
20834       order
20835           Set filter order. Available values are from 4 to 20.  Default value
20836           is 4.
20837
20838       qfactor
20839           Set Q-factor. Allowed range is from 0.01 to 100. Default value is
20840           1.
20841
20842       level
20843           Set input gain level. Allowed range is from 0 to 2. Default value
20844           is 1.
20845
20846       Commands
20847
20848       This filter supports the all above options as commands.
20849
20850   atempo
20851       Adjust audio tempo.
20852
20853       The filter accepts exactly one parameter, the audio tempo. If not
20854       specified then the filter will assume nominal 1.0 tempo. Tempo must be
20855       in the [0.5, 100.0] range.
20856
20857       Note that tempo greater than 2 will skip some samples rather than blend
20858       them in.  If for any reason this is a concern it is always possible to
20859       daisy-chain several instances of atempo to achieve the desired product
20860       tempo.
20861
20862       Examples
20863
20864       •   Slow down audio to 80% tempo:
20865
20866                   atempo=0.8
20867
20868       •   To speed up audio to 300% tempo:
20869
20870                   atempo=3
20871
20872       •   To speed up audio to 300% tempo by daisy-chaining two atempo
20873           instances:
20874
20875                   atempo=sqrt(3),atempo=sqrt(3)
20876
20877       Commands
20878
20879       This filter supports the following commands:
20880
20881       tempo
20882           Change filter tempo scale factor.  Syntax for the command is :
20883           "tempo"
20884
20885   atilt
20886       Apply spectral tilt filter to audio stream.
20887
20888       This filter apply any spectral roll-off slope over any specified
20889       frequency band.
20890
20891       The filter accepts the following options:
20892
20893       freq
20894           Set central frequency of tilt in Hz. Default is 10000 Hz.
20895
20896       slope
20897           Set slope direction of tilt. Default is 0. Allowed range is from -1
20898           to 1.
20899
20900       width
20901           Set width of tilt. Default is 1000. Allowed range is from 100 to
20902           10000.
20903
20904       order
20905           Set order of tilt filter.
20906
20907       level
20908           Set input volume level. Allowed range is from 0 to 4.  Defalt is 1.
20909
20910       Commands
20911
20912       This filter supports the all above options as commands.
20913
20914   atrim
20915       Trim the input so that the output contains one continuous subpart of
20916       the input.
20917
20918       It accepts the following parameters:
20919
20920       start
20921           Timestamp (in seconds) of the start of the section to keep. I.e.
20922           the audio sample with the timestamp start will be the first sample
20923           in the output.
20924
20925       end Specify time of the first audio sample that will be dropped, i.e.
20926           the audio sample immediately preceding the one with the timestamp
20927           end will be the last sample in the output.
20928
20929       start_pts
20930           Same as start, except this option sets the start timestamp in
20931           samples instead of seconds.
20932
20933       end_pts
20934           Same as end, except this option sets the end timestamp in samples
20935           instead of seconds.
20936
20937       duration
20938           The maximum duration of the output in seconds.
20939
20940       start_sample
20941           The number of the first sample that should be output.
20942
20943       end_sample
20944           The number of the first sample that should be dropped.
20945
20946       start, end, and duration are expressed as time duration specifications;
20947       see the Time duration section in the ffmpeg-utils(1) manual.
20948
20949       Note that the first two sets of the start/end options and the duration
20950       option look at the frame timestamp, while the _sample options simply
20951       count the samples that pass through the filter. So start/end_pts and
20952       start/end_sample will give different results when the timestamps are
20953       wrong, inexact or do not start at zero. Also note that this filter does
20954       not modify the timestamps. If you wish to have the output timestamps
20955       start at zero, insert the asetpts filter after the atrim filter.
20956
20957       If multiple start or end options are set, this filter tries to be
20958       greedy and keep all samples that match at least one of the specified
20959       constraints. To keep only the part that matches all the constraints at
20960       once, chain multiple atrim filters.
20961
20962       The defaults are such that all the input is kept. So it is possible to
20963       set e.g.  just the end values to keep everything before the specified
20964       time.
20965
20966       Examples:
20967
20968       •   Drop everything except the second minute of input:
20969
20970                   ffmpeg -i INPUT -af atrim=60:120
20971
20972       •   Keep only the first 1000 samples:
20973
20974                   ffmpeg -i INPUT -af atrim=end_sample=1000
20975
20976   axcorrelate
20977       Calculate normalized windowed cross-correlation between two input audio
20978       streams.
20979
20980       Resulted samples are always between -1 and 1 inclusive.  If result is 1
20981       it means two input samples are highly correlated in that selected
20982       segment.  Result 0 means they are not correlated at all.  If result is
20983       -1 it means two input samples are out of phase, which means they cancel
20984       each other.
20985
20986       The filter accepts the following options:
20987
20988       size
20989           Set size of segment over which cross-correlation is calculated.
20990           Default is 256. Allowed range is from 2 to 131072.
20991
20992       algo
20993           Set algorithm for cross-correlation. Can be "slow" or "fast".
20994           Default is "slow". Fast algorithm assumes mean values over any
20995           given segment are always zero and thus need much less calculations
20996           to make.  This is generally not true, but is valid for typical
20997           audio streams.
20998
20999       Examples
21000
21001       •   Calculate correlation between channels in stereo audio stream:
21002
21003                   ffmpeg -i stereo.wav -af channelsplit,axcorrelate=size=1024:algo=fast correlation.wav
21004
21005   bandpass
21006       Apply a two-pole Butterworth band-pass filter with central frequency
21007       frequency, and (3dB-point) band-width width.  The csg option selects a
21008       constant skirt gain (peak gain = Q) instead of the default: constant
21009       0dB peak gain.  The filter roll off at 6dB per octave (20dB per
21010       decade).
21011
21012       The filter accepts the following options:
21013
21014       frequency, f
21015           Set the filter's central frequency. Default is 3000.
21016
21017       csg Constant skirt gain if set to 1. Defaults to 0.
21018
21019       width_type, t
21020           Set method to specify band-width of filter.
21021
21022           h   Hz
21023
21024           q   Q-Factor
21025
21026           o   octave
21027
21028           s   slope
21029
21030           k   kHz
21031
21032       width, w
21033           Specify the band-width of a filter in width_type units.
21034
21035       mix, m
21036           How much to use filtered signal in output. Default is 1.  Range is
21037           between 0 and 1.
21038
21039       channels, c
21040           Specify which channels to filter, by default all available are
21041           filtered.
21042
21043       normalize, n
21044           Normalize biquad coefficients, by default is disabled.  Enabling it
21045           will normalize magnitude response at DC to 0dB.
21046
21047       transform, a
21048           Set transform type of IIR filter.
21049
21050           di
21051           dii
21052           tdi
21053           tdii
21054           latt
21055           svf
21056           zdf
21057       precision, r
21058           Set precison of filtering.
21059
21060           auto
21061               Pick automatic sample format depending on surround filters.
21062
21063           s16 Always use signed 16-bit.
21064
21065           s32 Always use signed 32-bit.
21066
21067           f32 Always use float 32-bit.
21068
21069           f64 Always use float 64-bit.
21070
21071       block_size, b
21072           Set block size used for reverse IIR processing. If this value is
21073           set to high enough value (higher than impulse response length
21074           truncated when reaches near zero values) filtering will become
21075           linear phase otherwise if not big enough it will just produce nasty
21076           artifacts.
21077
21078           Note that filter delay will be exactly this many samples when set
21079           to non-zero value.
21080
21081       Commands
21082
21083       This filter supports the following commands:
21084
21085       frequency, f
21086           Change bandpass frequency.  Syntax for the command is : "frequency"
21087
21088       width_type, t
21089           Change bandpass width_type.  Syntax for the command is :
21090           "width_type"
21091
21092       width, w
21093           Change bandpass width.  Syntax for the command is : "width"
21094
21095       mix, m
21096           Change bandpass mix.  Syntax for the command is : "mix"
21097
21098   bandreject
21099       Apply a two-pole Butterworth band-reject filter with central frequency
21100       frequency, and (3dB-point) band-width width.  The filter roll off at
21101       6dB per octave (20dB per decade).
21102
21103       The filter accepts the following options:
21104
21105       frequency, f
21106           Set the filter's central frequency. Default is 3000.
21107
21108       width_type, t
21109           Set method to specify band-width of filter.
21110
21111           h   Hz
21112
21113           q   Q-Factor
21114
21115           o   octave
21116
21117           s   slope
21118
21119           k   kHz
21120
21121       width, w
21122           Specify the band-width of a filter in width_type units.
21123
21124       mix, m
21125           How much to use filtered signal in output. Default is 1.  Range is
21126           between 0 and 1.
21127
21128       channels, c
21129           Specify which channels to filter, by default all available are
21130           filtered.
21131
21132       normalize, n
21133           Normalize biquad coefficients, by default is disabled.  Enabling it
21134           will normalize magnitude response at DC to 0dB.
21135
21136       transform, a
21137           Set transform type of IIR filter.
21138
21139           di
21140           dii
21141           tdi
21142           tdii
21143           latt
21144           svf
21145           zdf
21146       precision, r
21147           Set precison of filtering.
21148
21149           auto
21150               Pick automatic sample format depending on surround filters.
21151
21152           s16 Always use signed 16-bit.
21153
21154           s32 Always use signed 32-bit.
21155
21156           f32 Always use float 32-bit.
21157
21158           f64 Always use float 64-bit.
21159
21160       block_size, b
21161           Set block size used for reverse IIR processing. If this value is
21162           set to high enough value (higher than impulse response length
21163           truncated when reaches near zero values) filtering will become
21164           linear phase otherwise if not big enough it will just produce nasty
21165           artifacts.
21166
21167           Note that filter delay will be exactly this many samples when set
21168           to non-zero value.
21169
21170       Commands
21171
21172       This filter supports the following commands:
21173
21174       frequency, f
21175           Change bandreject frequency.  Syntax for the command is :
21176           "frequency"
21177
21178       width_type, t
21179           Change bandreject width_type.  Syntax for the command is :
21180           "width_type"
21181
21182       width, w
21183           Change bandreject width.  Syntax for the command is : "width"
21184
21185       mix, m
21186           Change bandreject mix.  Syntax for the command is : "mix"
21187
21188   bass, lowshelf
21189       Boost or cut the bass (lower) frequencies of the audio using a two-pole
21190       shelving filter with a response similar to that of a standard hi-fi's
21191       tone-controls. This is also known as shelving equalisation (EQ).
21192
21193       The filter accepts the following options:
21194
21195       gain, g
21196           Give the gain at 0 Hz. Its useful range is about -20 (for a large
21197           cut) to +20 (for a large boost).  Beware of clipping when using a
21198           positive gain.
21199
21200       frequency, f
21201           Set the filter's central frequency and so can be used to extend or
21202           reduce the frequency range to be boosted or cut.  The default value
21203           is 100 Hz.
21204
21205       width_type, t
21206           Set method to specify band-width of filter.
21207
21208           h   Hz
21209
21210           q   Q-Factor
21211
21212           o   octave
21213
21214           s   slope
21215
21216           k   kHz
21217
21218       width, w
21219           Determine how steep is the filter's shelf transition.
21220
21221       poles, p
21222           Set number of poles. Default is 2.
21223
21224       mix, m
21225           How much to use filtered signal in output. Default is 1.  Range is
21226           between 0 and 1.
21227
21228       channels, c
21229           Specify which channels to filter, by default all available are
21230           filtered.
21231
21232       normalize, n
21233           Normalize biquad coefficients, by default is disabled.  Enabling it
21234           will normalize magnitude response at DC to 0dB.
21235
21236       transform, a
21237           Set transform type of IIR filter.
21238
21239           di
21240           dii
21241           tdi
21242           tdii
21243           latt
21244           svf
21245           zdf
21246       precision, r
21247           Set precison of filtering.
21248
21249           auto
21250               Pick automatic sample format depending on surround filters.
21251
21252           s16 Always use signed 16-bit.
21253
21254           s32 Always use signed 32-bit.
21255
21256           f32 Always use float 32-bit.
21257
21258           f64 Always use float 64-bit.
21259
21260       block_size, b
21261           Set block size used for reverse IIR processing. If this value is
21262           set to high enough value (higher than impulse response length
21263           truncated when reaches near zero values) filtering will become
21264           linear phase otherwise if not big enough it will just produce nasty
21265           artifacts.
21266
21267           Note that filter delay will be exactly this many samples when set
21268           to non-zero value.
21269
21270       Commands
21271
21272       This filter supports the following commands:
21273
21274       frequency, f
21275           Change bass frequency.  Syntax for the command is : "frequency"
21276
21277       width_type, t
21278           Change bass width_type.  Syntax for the command is : "width_type"
21279
21280       width, w
21281           Change bass width.  Syntax for the command is : "width"
21282
21283       gain, g
21284           Change bass gain.  Syntax for the command is : "gain"
21285
21286       mix, m
21287           Change bass mix.  Syntax for the command is : "mix"
21288
21289   biquad
21290       Apply a biquad IIR filter with the given coefficients.  Where b0, b1,
21291       b2 and a0, a1, a2 are the numerator and denominator coefficients
21292       respectively.  and channels, c specify which channels to filter, by
21293       default all available are filtered.
21294
21295       Commands
21296
21297       This filter supports the following commands:
21298
21299       a0
21300       a1
21301       a2
21302       b0
21303       b1
21304       b2  Change biquad parameter.  Syntax for the command is : "value"
21305
21306       mix, m
21307           How much to use filtered signal in output. Default is 1.  Range is
21308           between 0 and 1.
21309
21310       channels, c
21311           Specify which channels to filter, by default all available are
21312           filtered.
21313
21314       normalize, n
21315           Normalize biquad coefficients, by default is disabled.  Enabling it
21316           will normalize magnitude response at DC to 0dB.
21317
21318       transform, a
21319           Set transform type of IIR filter.
21320
21321           di
21322           dii
21323           tdi
21324           tdii
21325           latt
21326           svf
21327           zdf
21328       precision, r
21329           Set precison of filtering.
21330
21331           auto
21332               Pick automatic sample format depending on surround filters.
21333
21334           s16 Always use signed 16-bit.
21335
21336           s32 Always use signed 32-bit.
21337
21338           f32 Always use float 32-bit.
21339
21340           f64 Always use float 64-bit.
21341
21342       block_size, b
21343           Set block size used for reverse IIR processing. If this value is
21344           set to high enough value (higher than impulse response length
21345           truncated when reaches near zero values) filtering will become
21346           linear phase otherwise if not big enough it will just produce nasty
21347           artifacts.
21348
21349           Note that filter delay will be exactly this many samples when set
21350           to non-zero value.
21351
21352   bs2b
21353       Bauer stereo to binaural transformation, which improves headphone
21354       listening of stereo audio records.
21355
21356       To enable compilation of this filter you need to configure FFmpeg with
21357       "--enable-libbs2b".
21358
21359       It accepts the following parameters:
21360
21361       profile
21362           Pre-defined crossfeed level.
21363
21364           default
21365               Default level (fcut=700, feed=50).
21366
21367           cmoy
21368               Chu Moy circuit (fcut=700, feed=60).
21369
21370           jmeier
21371               Jan Meier circuit (fcut=650, feed=95).
21372
21373       fcut
21374           Cut frequency (in Hz).
21375
21376       feed
21377           Feed level (in Hz).
21378
21379   channelmap
21380       Remap input channels to new locations.
21381
21382       It accepts the following parameters:
21383
21384       map Map channels from input to output. The argument is a '|'-separated
21385           list of mappings, each in the "in_channel-out_channel" or
21386           in_channel form. in_channel can be either the name of the input
21387           channel (e.g. FL for front left) or its index in the input channel
21388           layout.  out_channel is the name of the output channel or its index
21389           in the output channel layout. If out_channel is not given then it
21390           is implicitly an index, starting with zero and increasing by one
21391           for each mapping.
21392
21393       channel_layout
21394           The channel layout of the output stream.
21395
21396       If no mapping is present, the filter will implicitly map input channels
21397       to output channels, preserving indices.
21398
21399       Examples
21400
21401       •   For example, assuming a 5.1+downmix input MOV file,
21402
21403                   ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
21404
21405           will create an output WAV file tagged as stereo from the downmix
21406           channels of the input.
21407
21408       •   To fix a 5.1 WAV improperly encoded in AAC's native channel order
21409
21410                   ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:5.1' out.wav
21411
21412   channelsplit
21413       Split each channel from an input audio stream into a separate output
21414       stream.
21415
21416       It accepts the following parameters:
21417
21418       channel_layout
21419           The channel layout of the input stream. The default is "stereo".
21420
21421       channels
21422           A channel layout describing the channels to be extracted as
21423           separate output streams or "all" to extract each input channel as a
21424           separate stream. The default is "all".
21425
21426           Choosing channels not present in channel layout in the input will
21427           result in an error.
21428
21429       Examples
21430
21431       •   For example, assuming a stereo input MP3 file,
21432
21433                   ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
21434
21435           will create an output Matroska file with two audio streams, one
21436           containing only the left channel and the other the right channel.
21437
21438       •   Split a 5.1 WAV file into per-channel files:
21439
21440                   ffmpeg -i in.wav -filter_complex
21441                   'channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]'
21442                   -map '[FL]' front_left.wav -map '[FR]' front_right.wav -map '[FC]'
21443                   front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]'
21444                   side_right.wav
21445
21446       •   Extract only LFE from a 5.1 WAV file:
21447
21448                   ffmpeg -i in.wav -filter_complex 'channelsplit=channel_layout=5.1:channels=LFE[LFE]'
21449                   -map '[LFE]' lfe.wav
21450
21451   chorus
21452       Add a chorus effect to the audio.
21453
21454       Can make a single vocal sound like a chorus, but can also be applied to
21455       instrumentation.
21456
21457       Chorus resembles an echo effect with a short delay, but whereas with
21458       echo the delay is constant, with chorus, it is varied using using
21459       sinusoidal or triangular modulation.  The modulation depth defines the
21460       range the modulated delay is played before or after the delay. Hence
21461       the delayed sound will sound slower or faster, that is the delayed
21462       sound tuned around the original one, like in a chorus where some vocals
21463       are slightly off key.
21464
21465       It accepts the following parameters:
21466
21467       in_gain
21468           Set input gain. Default is 0.4.
21469
21470       out_gain
21471           Set output gain. Default is 0.4.
21472
21473       delays
21474           Set delays. A typical delay is around 40ms to 60ms.
21475
21476       decays
21477           Set decays.
21478
21479       speeds
21480           Set speeds.
21481
21482       depths
21483           Set depths.
21484
21485       Examples
21486
21487       •   A single delay:
21488
21489                   chorus=0.7:0.9:55:0.4:0.25:2
21490
21491       •   Two delays:
21492
21493                   chorus=0.6:0.9:50|60:0.4|0.32:0.25|0.4:2|1.3
21494
21495       •   Fuller sounding chorus with three delays:
21496
21497                   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
21498
21499   compand
21500       Compress or expand the audio's dynamic range.
21501
21502       It accepts the following parameters:
21503
21504       attacks
21505       decays
21506           A list of times in seconds for each channel over which the
21507           instantaneous level of the input signal is averaged to determine
21508           its volume. attacks refers to increase of volume and decays refers
21509           to decrease of volume. For most situations, the attack time
21510           (response to the audio getting louder) should be shorter than the
21511           decay time, because the human ear is more sensitive to sudden loud
21512           audio than sudden soft audio. A typical value for attack is 0.3
21513           seconds and a typical value for decay is 0.8 seconds.  If specified
21514           number of attacks & decays is lower than number of channels, the
21515           last set attack/decay will be used for all remaining channels.
21516
21517       points
21518           A list of points for the transfer function, specified in dB
21519           relative to the maximum possible signal amplitude. Each key points
21520           list must be defined using the following syntax:
21521           "x0/y0|x1/y1|x2/y2|...." or "x0/y0 x1/y1 x2/y2 ...."
21522
21523           The input values must be in strictly increasing order but the
21524           transfer function does not have to be monotonically rising. The
21525           point "0/0" is assumed but may be overridden (by "0/out-dBn").
21526           Typical values for the transfer function are "-70/-70|-60/-20|1/0".
21527
21528       soft-knee
21529           Set the curve radius in dB for all joints. It defaults to 0.01.
21530
21531       gain
21532           Set the additional gain in dB to be applied at all points on the
21533           transfer function. This allows for easy adjustment of the overall
21534           gain.  It defaults to 0.
21535
21536       volume
21537           Set an initial volume, in dB, to be assumed for each channel when
21538           filtering starts. This permits the user to supply a nominal level
21539           initially, so that, for example, a very large gain is not applied
21540           to initial signal levels before the companding has begun to
21541           operate. A typical value for audio which is initially quiet is -90
21542           dB. It defaults to 0.
21543
21544       delay
21545           Set a delay, in seconds. The input audio is analyzed immediately,
21546           but audio is delayed before being fed to the volume adjuster.
21547           Specifying a delay approximately equal to the attack/decay times
21548           allows the filter to effectively operate in predictive rather than
21549           reactive mode. It defaults to 0.
21550
21551       Examples
21552
21553       •   Make music with both quiet and loud passages suitable for listening
21554           to in a noisy environment:
21555
21556                   compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
21557
21558           Another example for audio with whisper and explosion parts:
21559
21560                   compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0
21561
21562       •   A noise gate for when the noise is at a lower level than the
21563           signal:
21564
21565                   compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
21566
21567       •   Here is another noise gate, this time for when the noise is at a
21568           higher level than the signal (making it, in some ways, similar to
21569           squelch):
21570
21571                   compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
21572
21573       •   2:1 compression starting at -6dB:
21574
21575                   compand=points=-80/-80|-6/-6|0/-3.8|20/3.5
21576
21577       •   2:1 compression starting at -9dB:
21578
21579                   compand=points=-80/-80|-9/-9|0/-5.3|20/2.9
21580
21581       •   2:1 compression starting at -12dB:
21582
21583                   compand=points=-80/-80|-12/-12|0/-6.8|20/1.9
21584
21585       •   2:1 compression starting at -18dB:
21586
21587                   compand=points=-80/-80|-18/-18|0/-9.8|20/0.7
21588
21589       •   3:1 compression starting at -15dB:
21590
21591                   compand=points=-80/-80|-15/-15|0/-10.8|20/-5.2
21592
21593       •   Compressor/Gate:
21594
21595                   compand=points=-80/-105|-62/-80|-15.4/-15.4|0/-12|20/-7.6
21596
21597       •   Expander:
21598
21599                   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
21600
21601       •   Hard limiter at -6dB:
21602
21603                   compand=attacks=0:points=-80/-80|-6/-6|20/-6
21604
21605       •   Hard limiter at -12dB:
21606
21607                   compand=attacks=0:points=-80/-80|-12/-12|20/-12
21608
21609       •   Hard noise gate at -35 dB:
21610
21611                   compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20
21612
21613       •   Soft limiter:
21614
21615                   compand=attacks=0:points=-80/-80|-12.4/-12.4|-6/-8|0/-6.8|20/-2.8
21616
21617   compensationdelay
21618       Compensation Delay Line is a metric based delay to compensate differing
21619       positions of microphones or speakers.
21620
21621       For example, you have recorded guitar with two microphones placed in
21622       different locations. Because the front of sound wave has fixed speed in
21623       normal conditions, the phasing of microphones can vary and depends on
21624       their location and interposition. The best sound mix can be achieved
21625       when these microphones are in phase (synchronized). Note that a
21626       distance of ~30 cm between microphones makes one microphone capture the
21627       signal in antiphase to the other microphone. That makes the final mix
21628       sound moody.  This filter helps to solve phasing problems by adding
21629       different delays to each microphone track and make them synchronized.
21630
21631       The best result can be reached when you take one track as base and
21632       synchronize other tracks one by one with it.  Remember that
21633       synchronization/delay tolerance depends on sample rate, too.  Higher
21634       sample rates will give more tolerance.
21635
21636       The filter accepts the following parameters:
21637
21638       mm  Set millimeters distance. This is compensation distance for fine
21639           tuning.  Default is 0.
21640
21641       cm  Set cm distance. This is compensation distance for tightening
21642           distance setup.  Default is 0.
21643
21644       m   Set meters distance. This is compensation distance for hard
21645           distance setup.  Default is 0.
21646
21647       dry Set dry amount. Amount of unprocessed (dry) signal.  Default is 0.
21648
21649       wet Set wet amount. Amount of processed (wet) signal.  Default is 1.
21650
21651       temp
21652           Set temperature in degrees Celsius. This is the temperature of the
21653           environment.  Default is 20.
21654
21655       Commands
21656
21657       This filter supports the all above options as commands.
21658
21659   crossfeed
21660       Apply headphone crossfeed filter.
21661
21662       Crossfeed is the process of blending the left and right channels of
21663       stereo audio recording.  It is mainly used to reduce extreme stereo
21664       separation of low frequencies.
21665
21666       The intent is to produce more speaker like sound to the listener.
21667
21668       The filter accepts the following options:
21669
21670       strength
21671           Set strength of crossfeed. Default is 0.2. Allowed range is from 0
21672           to 1.  This sets gain of low shelf filter for side part of stereo
21673           image.  Default is -6dB. Max allowed is -30db when strength is set
21674           to 1.
21675
21676       range
21677           Set soundstage wideness. Default is 0.5. Allowed range is from 0 to
21678           1.  This sets cut off frequency of low shelf filter. Default is cut
21679           off near 1550 Hz. With range set to 1 cut off frequency is set to
21680           2100 Hz.
21681
21682       slope
21683           Set curve slope of low shelf filter. Default is 0.5.  Allowed range
21684           is from 0.01 to 1.
21685
21686       level_in
21687           Set input gain. Default is 0.9.
21688
21689       level_out
21690           Set output gain. Default is 1.
21691
21692       block_size
21693           Set block size used for reverse IIR processing. If this value is
21694           set to high enough value (higher than impulse response length
21695           truncated when reaches near zero values) filtering will become
21696           linear phase otherwise if not big enough it will just produce nasty
21697           artifacts.
21698
21699           Note that filter delay will be exactly this many samples when set
21700           to non-zero value.
21701
21702       Commands
21703
21704       This filter supports the all above options as commands.
21705
21706   crystalizer
21707       Simple algorithm for audio noise sharpening.
21708
21709       This filter linearly increases differences betweeen each audio sample.
21710
21711       The filter accepts the following options:
21712
21713       i   Sets the intensity of effect (default: 2.0). Must be in range
21714           between -10.0 to 0 (unchanged sound) to 10.0 (maximum effect).  To
21715           inverse filtering use negative value.
21716
21717       c   Enable clipping. By default is enabled.
21718
21719       Commands
21720
21721       This filter supports the all above options as commands.
21722
21723   dcshift
21724       Apply a DC shift to the audio.
21725
21726       This can be useful to remove a DC offset (caused perhaps by a hardware
21727       problem in the recording chain) from the audio. The effect of a DC
21728       offset is reduced headroom and hence volume. The astats filter can be
21729       used to determine if a signal has a DC offset.
21730
21731       shift
21732           Set the DC shift, allowed range is [-1, 1]. It indicates the amount
21733           to shift the audio.
21734
21735       limitergain
21736           Optional. It should have a value much less than 1 (e.g. 0.05 or
21737           0.02) and is used to prevent clipping.
21738
21739   deesser
21740       Apply de-essing to the audio samples.
21741
21742       i   Set intensity for triggering de-essing. Allowed range is from 0 to
21743           1.  Default is 0.
21744
21745       m   Set amount of ducking on treble part of sound. Allowed range is
21746           from 0 to 1.  Default is 0.5.
21747
21748       f   How much of original frequency content to keep when de-essing.
21749           Allowed range is from 0 to 1.  Default is 0.5.
21750
21751       s   Set the output mode.
21752
21753           It accepts the following values:
21754
21755           i   Pass input unchanged.
21756
21757           o   Pass ess filtered out.
21758
21759           e   Pass only ess.
21760
21761               Default value is o.
21762
21763   dialoguenhance
21764       Enhance dialogue in stereo audio.
21765
21766       This filter accepts stereo input and produce surround (3.0) channels
21767       output.  The newly produced front center channel have enhanced speech
21768       dialogue originally available in both stereo channels.  This filter
21769       outputs front left and front right channels same as available in stereo
21770       input.
21771
21772       The filter accepts the following options:
21773
21774       original
21775           Set the original center factor to keep in front center channel
21776           output.  Allowed range is from 0 to 1. Default value is 1.
21777
21778       enhance
21779           Set the dialogue enhance factor to put in front center channel
21780           output.  Allowed range is from 0 to 3. Default value is 1.
21781
21782       voice
21783           Set the voice detection factor.  Allowed range is from 2 to 32.
21784           Default value is 2.
21785
21786       Commands
21787
21788       This filter supports the all above options as commands.
21789
21790   drmeter
21791       Measure audio dynamic range.
21792
21793       DR values of 14 and higher is found in very dynamic material. DR of 8
21794       to 13 is found in transition material. And anything less that 8 have
21795       very poor dynamics and is very compressed.
21796
21797       The filter accepts the following options:
21798
21799       length
21800           Set window length in seconds used to split audio into segments of
21801           equal length.  Default is 3 seconds.
21802
21803   dynaudnorm
21804       Dynamic Audio Normalizer.
21805
21806       This filter applies a certain amount of gain to the input audio in
21807       order to bring its peak magnitude to a target level (e.g. 0 dBFS).
21808       However, in contrast to more "simple" normalization algorithms, the
21809       Dynamic Audio Normalizer *dynamically* re-adjusts the gain factor to
21810       the input audio.  This allows for applying extra gain to the "quiet"
21811       sections of the audio while avoiding distortions or clipping the "loud"
21812       sections. In other words: The Dynamic Audio Normalizer will "even out"
21813       the volume of quiet and loud sections, in the sense that the volume of
21814       each section is brought to the same target level. Note, however, that
21815       the Dynamic Audio Normalizer achieves this goal *without* applying
21816       "dynamic range compressing". It will retain 100% of the dynamic range
21817       *within* each section of the audio file.
21818
21819       framelen, f
21820           Set the frame length in milliseconds. In range from 10 to 8000
21821           milliseconds.  Default is 500 milliseconds.  The Dynamic Audio
21822           Normalizer processes the input audio in small chunks, referred to
21823           as frames. This is required, because a peak magnitude has no
21824           meaning for just a single sample value. Instead, we need to
21825           determine the peak magnitude for a contiguous sequence of sample
21826           values. While a "standard" normalizer would simply use the peak
21827           magnitude of the complete file, the Dynamic Audio Normalizer
21828           determines the peak magnitude individually for each frame. The
21829           length of a frame is specified in milliseconds. By default, the
21830           Dynamic Audio Normalizer uses a frame length of 500 milliseconds,
21831           which has been found to give good results with most files.  Note
21832           that the exact frame length, in number of samples, will be
21833           determined automatically, based on the sampling rate of the
21834           individual input audio file.
21835
21836       gausssize, g
21837           Set the Gaussian filter window size. In range from 3 to 301, must
21838           be odd number. Default is 31.  Probably the most important
21839           parameter of the Dynamic Audio Normalizer is the "window size" of
21840           the Gaussian smoothing filter. The filter's window size is
21841           specified in frames, centered around the current frame. For the
21842           sake of simplicity, this must be an odd number. Consequently, the
21843           default value of 31 takes into account the current frame, as well
21844           as the 15 preceding frames and the 15 subsequent frames. Using a
21845           larger window results in a stronger smoothing effect and thus in
21846           less gain variation, i.e. slower gain adaptation. Conversely, using
21847           a smaller window results in a weaker smoothing effect and thus in
21848           more gain variation, i.e. faster gain adaptation.  In other words,
21849           the more you increase this value, the more the Dynamic Audio
21850           Normalizer will behave like a "traditional" normalization filter.
21851           On the contrary, the more you decrease this value, the more the
21852           Dynamic Audio Normalizer will behave like a dynamic range
21853           compressor.
21854
21855       peak, p
21856           Set the target peak value. This specifies the highest permissible
21857           magnitude level for the normalized audio input. This filter will
21858           try to approach the target peak magnitude as closely as possible,
21859           but at the same time it also makes sure that the normalized signal
21860           will never exceed the peak magnitude.  A frame's maximum local gain
21861           factor is imposed directly by the target peak magnitude. The
21862           default value is 0.95 and thus leaves a headroom of 5%*.  It is not
21863           recommended to go above this value.
21864
21865       maxgain, m
21866           Set the maximum gain factor. In range from 1.0 to 100.0. Default is
21867           10.0.  The Dynamic Audio Normalizer determines the maximum possible
21868           (local) gain factor for each input frame, i.e. the maximum gain
21869           factor that does not result in clipping or distortion. The maximum
21870           gain factor is determined by the frame's highest magnitude sample.
21871           However, the Dynamic Audio Normalizer additionally bounds the
21872           frame's maximum gain factor by a predetermined (global) maximum
21873           gain factor. This is done in order to avoid excessive gain factors
21874           in "silent" or almost silent frames. By default, the maximum gain
21875           factor is 10.0, For most inputs the default value should be
21876           sufficient and it usually is not recommended to increase this
21877           value. Though, for input with an extremely low overall volume
21878           level, it may be necessary to allow even higher gain factors. Note,
21879           however, that the Dynamic Audio Normalizer does not simply apply a
21880           "hard" threshold (i.e. cut off values above the threshold).
21881           Instead, a "sigmoid" threshold function will be applied. This way,
21882           the gain factors will smoothly approach the threshold value, but
21883           never exceed that value.
21884
21885       targetrms, r
21886           Set the target RMS. In range from 0.0 to 1.0. Default is 0.0 -
21887           disabled.  By default, the Dynamic Audio Normalizer performs "peak"
21888           normalization.  This means that the maximum local gain factor for
21889           each frame is defined (only) by the frame's highest magnitude
21890           sample. This way, the samples can be amplified as much as possible
21891           without exceeding the maximum signal level, i.e. without clipping.
21892           Optionally, however, the Dynamic Audio Normalizer can also take
21893           into account the frame's root mean square, abbreviated RMS. In
21894           electrical engineering, the RMS is commonly used to determine the
21895           power of a time-varying signal. It is therefore considered that the
21896           RMS is a better approximation of the "perceived loudness" than just
21897           looking at the signal's peak magnitude. Consequently, by adjusting
21898           all frames to a constant RMS value, a uniform "perceived loudness"
21899           can be established. If a target RMS value has been specified, a
21900           frame's local gain factor is defined as the factor that would
21901           result in exactly that RMS value.  Note, however, that the maximum
21902           local gain factor is still restricted by the frame's highest
21903           magnitude sample, in order to prevent clipping.
21904
21905       coupling, n
21906           Enable channels coupling. By default is enabled.  By default, the
21907           Dynamic Audio Normalizer will amplify all channels by the same
21908           amount. This means the same gain factor will be applied to all
21909           channels, i.e.  the maximum possible gain factor is determined by
21910           the "loudest" channel.  However, in some recordings, it may happen
21911           that the volume of the different channels is uneven, e.g. one
21912           channel may be "quieter" than the other one(s).  In this case, this
21913           option can be used to disable the channel coupling. This way, the
21914           gain factor will be determined independently for each channel,
21915           depending only on the individual channel's highest magnitude
21916           sample. This allows for harmonizing the volume of the different
21917           channels.
21918
21919       correctdc, c
21920           Enable DC bias correction. By default is disabled.  An audio signal
21921           (in the time domain) is a sequence of sample values.  In the
21922           Dynamic Audio Normalizer these sample values are represented in the
21923           -1.0 to 1.0 range, regardless of the original input format.
21924           Normally, the audio signal, or "waveform", should be centered
21925           around the zero point.  That means if we calculate the mean value
21926           of all samples in a file, or in a single frame, then the result
21927           should be 0.0 or at least very close to that value. If, however,
21928           there is a significant deviation of the mean value from 0.0, in
21929           either positive or negative direction, this is referred to as a DC
21930           bias or DC offset. Since a DC bias is clearly undesirable, the
21931           Dynamic Audio Normalizer provides optional DC bias correction.
21932           With DC bias correction enabled, the Dynamic Audio Normalizer will
21933           determine the mean value, or "DC correction" offset, of each input
21934           frame and subtract that value from all of the frame's sample values
21935           which ensures those samples are centered around 0.0 again. Also, in
21936           order to avoid "gaps" at the frame boundaries, the DC correction
21937           offset values will be interpolated smoothly between neighbouring
21938           frames.
21939
21940       altboundary, b
21941           Enable alternative boundary mode. By default is disabled.  The
21942           Dynamic Audio Normalizer takes into account a certain neighbourhood
21943           around each frame. This includes the preceding frames as well as
21944           the subsequent frames. However, for the "boundary" frames, located
21945           at the very beginning and at the very end of the audio file, not
21946           all neighbouring frames are available. In particular, for the first
21947           few frames in the audio file, the preceding frames are not known.
21948           And, similarly, for the last few frames in the audio file, the
21949           subsequent frames are not known. Thus, the question arises which
21950           gain factors should be assumed for the missing frames in the
21951           "boundary" region. The Dynamic Audio Normalizer implements two
21952           modes to deal with this situation. The default boundary mode
21953           assumes a gain factor of exactly 1.0 for the missing frames,
21954           resulting in a smooth "fade in" and "fade out" at the beginning and
21955           at the end of the input, respectively.
21956
21957       compress, s
21958           Set the compress factor. In range from 0.0 to 30.0. Default is 0.0.
21959           By default, the Dynamic Audio Normalizer does not apply
21960           "traditional" compression. This means that signal peaks will not be
21961           pruned and thus the full dynamic range will be retained within each
21962           local neighbourhood. However, in some cases it may be desirable to
21963           combine the Dynamic Audio Normalizer's normalization algorithm with
21964           a more "traditional" compression.  For this purpose, the Dynamic
21965           Audio Normalizer provides an optional compression (thresholding)
21966           function. If (and only if) the compression feature is enabled, all
21967           input frames will be processed by a soft knee thresholding function
21968           prior to the actual normalization process. Put simply, the
21969           thresholding function is going to prune all samples whose magnitude
21970           exceeds a certain threshold value.  However, the Dynamic Audio
21971           Normalizer does not simply apply a fixed threshold value. Instead,
21972           the threshold value will be adjusted for each individual frame.  In
21973           general, smaller parameters result in stronger compression, and
21974           vice versa.  Values below 3.0 are not recommended, because audible
21975           distortion may appear.
21976
21977       threshold, t
21978           Set the target threshold value. This specifies the lowest
21979           permissible magnitude level for the audio input which will be
21980           normalized.  If input frame volume is above this value frame will
21981           be normalized.  Otherwise frame may not be normalized at all. The
21982           default value is set to 0, which means all input frames will be
21983           normalized.  This option is mostly useful if digital noise is not
21984           wanted to be amplified.
21985
21986       channels, h
21987           Specify which channels to filter, by default all available channels
21988           are filtered.
21989
21990       overlap, o
21991           Specify overlap for frames. If set to 0 (default) no frame
21992           overlapping is done.  Using >0 and <1 values will make less
21993           conservative gain adjustments, like when framelen option is set to
21994           smaller value, if framelen option value is compensated for non-zero
21995           overlap then gain adjustments will be smoother across time compared
21996           to zero overlap case.
21997
21998       Commands
21999
22000       This filter supports the all above options as commands.
22001
22002   earwax
22003       Make audio easier to listen to on headphones.
22004
22005       This filter adds `cues' to 44.1kHz stereo (i.e. audio CD format) audio
22006       so that when listened to on headphones the stereo image is moved from
22007       inside your head (standard for headphones) to outside and in front of
22008       the listener (standard for speakers).
22009
22010       Ported from SoX.
22011
22012   equalizer
22013       Apply a two-pole peaking equalisation (EQ) filter. With this filter,
22014       the signal-level at and around a selected frequency can be increased or
22015       decreased, whilst (unlike bandpass and bandreject filters) that at all
22016       other frequencies is unchanged.
22017
22018       In order to produce complex equalisation curves, this filter can be
22019       given several times, each with a different central frequency.
22020
22021       The filter accepts the following options:
22022
22023       frequency, f
22024           Set the filter's central frequency in Hz.
22025
22026       width_type, t
22027           Set method to specify band-width of filter.
22028
22029           h   Hz
22030
22031           q   Q-Factor
22032
22033           o   octave
22034
22035           s   slope
22036
22037           k   kHz
22038
22039       width, w
22040           Specify the band-width of a filter in width_type units.
22041
22042       gain, g
22043           Set the required gain or attenuation in dB.  Beware of clipping
22044           when using a positive gain.
22045
22046       mix, m
22047           How much to use filtered signal in output. Default is 1.  Range is
22048           between 0 and 1.
22049
22050       channels, c
22051           Specify which channels to filter, by default all available are
22052           filtered.
22053
22054       normalize, n
22055           Normalize biquad coefficients, by default is disabled.  Enabling it
22056           will normalize magnitude response at DC to 0dB.
22057
22058       transform, a
22059           Set transform type of IIR filter.
22060
22061           di
22062           dii
22063           tdi
22064           tdii
22065           latt
22066           svf
22067           zdf
22068       precision, r
22069           Set precison of filtering.
22070
22071           auto
22072               Pick automatic sample format depending on surround filters.
22073
22074           s16 Always use signed 16-bit.
22075
22076           s32 Always use signed 32-bit.
22077
22078           f32 Always use float 32-bit.
22079
22080           f64 Always use float 64-bit.
22081
22082       block_size, b
22083           Set block size used for reverse IIR processing. If this value is
22084           set to high enough value (higher than impulse response length
22085           truncated when reaches near zero values) filtering will become
22086           linear phase otherwise if not big enough it will just produce nasty
22087           artifacts.
22088
22089           Note that filter delay will be exactly this many samples when set
22090           to non-zero value.
22091
22092       Examples
22093
22094       •   Attenuate 10 dB at 1000 Hz, with a bandwidth of 200 Hz:
22095
22096                   equalizer=f=1000:t=h:width=200:g=-10
22097
22098       •   Apply 2 dB gain at 1000 Hz with Q 1 and attenuate 5 dB at 100 Hz
22099           with Q 2:
22100
22101                   equalizer=f=1000:t=q:w=1:g=2,equalizer=f=100:t=q:w=2:g=-5
22102
22103       Commands
22104
22105       This filter supports the following commands:
22106
22107       frequency, f
22108           Change equalizer frequency.  Syntax for the command is :
22109           "frequency"
22110
22111       width_type, t
22112           Change equalizer width_type.  Syntax for the command is :
22113           "width_type"
22114
22115       width, w
22116           Change equalizer width.  Syntax for the command is : "width"
22117
22118       gain, g
22119           Change equalizer gain.  Syntax for the command is : "gain"
22120
22121       mix, m
22122           Change equalizer mix.  Syntax for the command is : "mix"
22123
22124   extrastereo
22125       Linearly increases the difference between left and right channels which
22126       adds some sort of "live" effect to playback.
22127
22128       The filter accepts the following options:
22129
22130       m   Sets the difference coefficient (default: 2.5). 0.0 means mono
22131           sound (average of both channels), with 1.0 sound will be unchanged,
22132           with -1.0 left and right channels will be swapped.
22133
22134       c   Enable clipping. By default is enabled.
22135
22136       Commands
22137
22138       This filter supports the all above options as commands.
22139
22140   firequalizer
22141       Apply FIR Equalization using arbitrary frequency response.
22142
22143       The filter accepts the following option:
22144
22145       gain
22146           Set gain curve equation (in dB). The expression can contain
22147           variables:
22148
22149           f   the evaluated frequency
22150
22151           sr  sample rate
22152
22153           ch  channel number, set to 0 when multichannels evaluation is
22154               disabled
22155
22156           chid
22157               channel id, see libavutil/channel_layout.h, set to the first
22158               channel id when multichannels evaluation is disabled
22159
22160           chs number of channels
22161
22162           chlayout
22163               channel_layout, see libavutil/channel_layout.h
22164
22165           and functions:
22166
22167           gain_interpolate(f)
22168               interpolate gain on frequency f based on gain_entry
22169
22170           cubic_interpolate(f)
22171               same as gain_interpolate, but smoother
22172
22173           This option is also available as command. Default is
22174           gain_interpolate(f).
22175
22176       gain_entry
22177           Set gain entry for gain_interpolate function. The expression can
22178           contain functions:
22179
22180           entry(f, g)
22181               store gain entry at frequency f with value g
22182
22183           This option is also available as command.
22184
22185       delay
22186           Set filter delay in seconds. Higher value means more accurate.
22187           Default is 0.01.
22188
22189       accuracy
22190           Set filter accuracy in Hz. Lower value means more accurate.
22191           Default is 5.
22192
22193       wfunc
22194           Set window function. Acceptable values are:
22195
22196           rectangular
22197               rectangular window, useful when gain curve is already smooth
22198
22199           hann
22200               hann window (default)
22201
22202           hamming
22203               hamming window
22204
22205           blackman
22206               blackman window
22207
22208           nuttall3
22209               3-terms continuous 1st derivative nuttall window
22210
22211           mnuttall3
22212               minimum 3-terms discontinuous nuttall window
22213
22214           nuttall
22215               4-terms continuous 1st derivative nuttall window
22216
22217           bnuttall
22218               minimum 4-terms discontinuous nuttall (blackman-nuttall) window
22219
22220           bharris
22221               blackman-harris window
22222
22223           tukey
22224               tukey window
22225
22226       fixed
22227           If enabled, use fixed number of audio samples. This improves speed
22228           when filtering with large delay. Default is disabled.
22229
22230       multi
22231           Enable multichannels evaluation on gain. Default is disabled.
22232
22233       zero_phase
22234           Enable zero phase mode by subtracting timestamp to compensate
22235           delay.  Default is disabled.
22236
22237       scale
22238           Set scale used by gain. Acceptable values are:
22239
22240           linlin
22241               linear frequency, linear gain
22242
22243           linlog
22244               linear frequency, logarithmic (in dB) gain (default)
22245
22246           loglin
22247               logarithmic (in octave scale where 20 Hz is 0) frequency,
22248               linear gain
22249
22250           loglog
22251               logarithmic frequency, logarithmic gain
22252
22253       dumpfile
22254           Set file for dumping, suitable for gnuplot.
22255
22256       dumpscale
22257           Set scale for dumpfile. Acceptable values are same with scale
22258           option.  Default is linlog.
22259
22260       fft2
22261           Enable 2-channel convolution using complex FFT. This improves speed
22262           significantly.  Default is disabled.
22263
22264       min_phase
22265           Enable minimum phase impulse response. Default is disabled.
22266
22267       Examples
22268
22269       •   lowpass at 1000 Hz:
22270
22271                   firequalizer=gain='if(lt(f,1000), 0, -INF)'
22272
22273       •   lowpass at 1000 Hz with gain_entry:
22274
22275                   firequalizer=gain_entry='entry(1000,0); entry(1001, -INF)'
22276
22277       •   custom equalization:
22278
22279                   firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6); entry(2000, 0)'
22280
22281       •   higher delay with zero phase to compensate delay:
22282
22283                   firequalizer=delay=0.1:fixed=on:zero_phase=on
22284
22285       •   lowpass on left channel, highpass on right channel:
22286
22287                   firequalizer=gain='if(eq(chid,1), gain_interpolate(f), if(eq(chid,2), gain_interpolate(1e6+f), 0))'
22288                   :gain_entry='entry(1000, 0); entry(1001,-INF); entry(1e6+1000,0)':multi=on
22289
22290   flanger
22291       Apply a flanging effect to the audio.
22292
22293       The filter accepts the following options:
22294
22295       delay
22296           Set base delay in milliseconds. Range from 0 to 30. Default value
22297           is 0.
22298
22299       depth
22300           Set added sweep delay in milliseconds. Range from 0 to 10. Default
22301           value is 2.
22302
22303       regen
22304           Set percentage regeneration (delayed signal feedback). Range from
22305           -95 to 95.  Default value is 0.
22306
22307       width
22308           Set percentage of delayed signal mixed with original. Range from 0
22309           to 100.  Default value is 71.
22310
22311       speed
22312           Set sweeps per second (Hz). Range from 0.1 to 10. Default value is
22313           0.5.
22314
22315       shape
22316           Set swept wave shape, can be triangular or sinusoidal.  Default
22317           value is sinusoidal.
22318
22319       phase
22320           Set swept wave percentage-shift for multi channel. Range from 0 to
22321           100.  Default value is 25.
22322
22323       interp
22324           Set delay-line interpolation, linear or quadratic.  Default is
22325           linear.
22326
22327   haas
22328       Apply Haas effect to audio.
22329
22330       Note that this makes most sense to apply on mono signals.  With this
22331       filter applied to mono signals it give some directionality and
22332       stretches its stereo image.
22333
22334       The filter accepts the following options:
22335
22336       level_in
22337           Set input level. By default is 1, or 0dB
22338
22339       level_out
22340           Set output level. By default is 1, or 0dB.
22341
22342       side_gain
22343           Set gain applied to side part of signal. By default is 1.
22344
22345       middle_source
22346           Set kind of middle source. Can be one of the following:
22347
22348           left
22349               Pick left channel.
22350
22351           right
22352               Pick right channel.
22353
22354           mid Pick middle part signal of stereo image.
22355
22356           side
22357               Pick side part signal of stereo image.
22358
22359       middle_phase
22360           Change middle phase. By default is disabled.
22361
22362       left_delay
22363           Set left channel delay. By default is 2.05 milliseconds.
22364
22365       left_balance
22366           Set left channel balance. By default is -1.
22367
22368       left_gain
22369           Set left channel gain. By default is 1.
22370
22371       left_phase
22372           Change left phase. By default is disabled.
22373
22374       right_delay
22375           Set right channel delay. By defaults is 2.12 milliseconds.
22376
22377       right_balance
22378           Set right channel balance. By default is 1.
22379
22380       right_gain
22381           Set right channel gain. By default is 1.
22382
22383       right_phase
22384           Change right phase. By default is enabled.
22385
22386   hdcd
22387       Decodes High Definition Compatible Digital (HDCD) data. A 16-bit PCM
22388       stream with embedded HDCD codes is expanded into a 20-bit PCM stream.
22389
22390       The filter supports the Peak Extend and Low-level Gain Adjustment
22391       features of HDCD, and detects the Transient Filter flag.
22392
22393               ffmpeg -i HDCD16.flac -af hdcd OUT24.flac
22394
22395       When using the filter with wav, note the default encoding for wav is
22396       16-bit, so the resulting 20-bit stream will be truncated back to
22397       16-bit. Use something like -acodec pcm_s24le after the filter to get
22398       24-bit PCM output.
22399
22400               ffmpeg -i HDCD16.wav -af hdcd OUT16.wav
22401               ffmpeg -i HDCD16.wav -af hdcd -c:a pcm_s24le OUT24.wav
22402
22403       The filter accepts the following options:
22404
22405       disable_autoconvert
22406           Disable any automatic format conversion or resampling in the filter
22407           graph.
22408
22409       process_stereo
22410           Process the stereo channels together. If target_gain does not match
22411           between channels, consider it invalid and use the last valid
22412           target_gain.
22413
22414       cdt_ms
22415           Set the code detect timer period in ms.
22416
22417       force_pe
22418           Always extend peaks above -3dBFS even if PE isn't signaled.
22419
22420       analyze_mode
22421           Replace audio with a solid tone and adjust the amplitude to signal
22422           some specific aspect of the decoding process. The output file can
22423           be loaded in an audio editor alongside the original to aid
22424           analysis.
22425
22426           "analyze_mode=pe:force_pe=true" can be used to see all samples
22427           above the PE level.
22428
22429           Modes are:
22430
22431           0, off
22432               Disabled
22433
22434           1, lle
22435               Gain adjustment level at each sample
22436
22437           2, pe
22438               Samples where peak extend occurs
22439
22440           3, cdt
22441               Samples where the code detect timer is active
22442
22443           4, tgm
22444               Samples where the target gain does not match between channels
22445
22446   headphone
22447       Apply head-related transfer functions (HRTFs) to create virtual
22448       loudspeakers around the user for binaural listening via headphones.
22449       The HRIRs are provided via additional streams, for each channel one
22450       stereo input stream is needed.
22451
22452       The filter accepts the following options:
22453
22454       map Set mapping of input streams for convolution.  The argument is a
22455           '|'-separated list of channel names in order as they are given as
22456           additional stream inputs for filter.  This also specify number of
22457           input streams. Number of input streams must be not less than number
22458           of channels in first stream plus one.
22459
22460       gain
22461           Set gain applied to audio. Value is in dB. Default is 0.
22462
22463       type
22464           Set processing type. Can be time or freq. time is processing audio
22465           in time domain which is slow.  freq is processing audio in
22466           frequency domain which is fast.  Default is freq.
22467
22468       lfe Set custom gain for LFE channels. Value is in dB. Default is 0.
22469
22470       size
22471           Set size of frame in number of samples which will be processed at
22472           once.  Default value is 1024. Allowed range is from 1024 to 96000.
22473
22474       hrir
22475           Set format of hrir stream.  Default value is stereo. Alternative
22476           value is multich.  If value is set to stereo, number of additional
22477           streams should be greater or equal to number of input channels in
22478           first input stream.  Also each additional stream should have stereo
22479           number of channels.  If value is set to multich, number of
22480           additional streams should be exactly one. Also number of input
22481           channels of additional stream should be equal or greater than twice
22482           number of channels of first input stream.
22483
22484       Examples
22485
22486       •   Full example using wav files as coefficients with amovie filters
22487           for 7.1 downmix, each amovie filter use stereo file with IR
22488           coefficients as input.  The files give coefficients for each
22489           position of virtual loudspeaker:
22490
22491                   ffmpeg -i input.wav
22492                   -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"
22493                   output.wav
22494
22495       •   Full example using wav files as coefficients with amovie filters
22496           for 7.1 downmix, but now in multich hrir format.
22497
22498                   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"
22499                   output.wav
22500
22501   highpass
22502       Apply a high-pass filter with 3dB point frequency.  The filter can be
22503       either single-pole, or double-pole (the default).  The filter roll off
22504       at 6dB per pole per octave (20dB per pole per decade).
22505
22506       The filter accepts the following options:
22507
22508       frequency, f
22509           Set frequency in Hz. Default is 3000.
22510
22511       poles, p
22512           Set number of poles. Default is 2.
22513
22514       width_type, t
22515           Set method to specify band-width of filter.
22516
22517           h   Hz
22518
22519           q   Q-Factor
22520
22521           o   octave
22522
22523           s   slope
22524
22525           k   kHz
22526
22527       width, w
22528           Specify the band-width of a filter in width_type units.  Applies
22529           only to double-pole filter.  The default is 0.707q and gives a
22530           Butterworth response.
22531
22532       mix, m
22533           How much to use filtered signal in output. Default is 1.  Range is
22534           between 0 and 1.
22535
22536       channels, c
22537           Specify which channels to filter, by default all available are
22538           filtered.
22539
22540       normalize, n
22541           Normalize biquad coefficients, by default is disabled.  Enabling it
22542           will normalize magnitude response at DC to 0dB.
22543
22544       transform, a
22545           Set transform type of IIR filter.
22546
22547           di
22548           dii
22549           tdi
22550           tdii
22551           latt
22552           svf
22553           zdf
22554       precision, r
22555           Set precison of filtering.
22556
22557           auto
22558               Pick automatic sample format depending on surround filters.
22559
22560           s16 Always use signed 16-bit.
22561
22562           s32 Always use signed 32-bit.
22563
22564           f32 Always use float 32-bit.
22565
22566           f64 Always use float 64-bit.
22567
22568       block_size, b
22569           Set block size used for reverse IIR processing. If this value is
22570           set to high enough value (higher than impulse response length
22571           truncated when reaches near zero values) filtering will become
22572           linear phase otherwise if not big enough it will just produce nasty
22573           artifacts.
22574
22575           Note that filter delay will be exactly this many samples when set
22576           to non-zero value.
22577
22578       Commands
22579
22580       This filter supports the following commands:
22581
22582       frequency, f
22583           Change highpass frequency.  Syntax for the command is : "frequency"
22584
22585       width_type, t
22586           Change highpass width_type.  Syntax for the command is :
22587           "width_type"
22588
22589       width, w
22590           Change highpass width.  Syntax for the command is : "width"
22591
22592       mix, m
22593           Change highpass mix.  Syntax for the command is : "mix"
22594
22595   join
22596       Join multiple input streams into one multi-channel stream.
22597
22598       It accepts the following parameters:
22599
22600       inputs
22601           The number of input streams. It defaults to 2.
22602
22603       channel_layout
22604           The desired output channel layout. It defaults to stereo.
22605
22606       map Map channels from inputs to output. The argument is a '|'-separated
22607           list of mappings, each in the "input_idx.in_channel-out_channel"
22608           form. input_idx is the 0-based index of the input stream.
22609           in_channel can be either the name of the input channel (e.g. FL for
22610           front left) or its index in the specified input stream. out_channel
22611           is the name of the output channel.
22612
22613       The filter will attempt to guess the mappings when they are not
22614       specified explicitly. It does so by first trying to find an unused
22615       matching input channel and if that fails it picks the first unused
22616       input channel.
22617
22618       Join 3 inputs (with properly set channel layouts):
22619
22620               ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
22621
22622       Build a 5.1 output from 6 single-channel streams:
22623
22624               ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex
22625               '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'
22626               out
22627
22628   ladspa
22629       Load a LADSPA (Linux Audio Developer's Simple Plugin API) plugin.
22630
22631       To enable compilation of this filter you need to configure FFmpeg with
22632       "--enable-ladspa".
22633
22634       file, f
22635           Specifies the name of LADSPA plugin library to load. If the
22636           environment variable LADSPA_PATH is defined, the LADSPA plugin is
22637           searched in each one of the directories specified by the colon
22638           separated list in LADSPA_PATH, otherwise in the standard LADSPA
22639           paths, which are in this order: HOME/.ladspa/lib/,
22640           /usr/local/lib/ladspa/, /usr/lib/ladspa/.
22641
22642       plugin, p
22643           Specifies the plugin within the library. Some libraries contain
22644           only one plugin, but others contain many of them. If this is not
22645           set filter will list all available plugins within the specified
22646           library.
22647
22648       controls, c
22649           Set the '|' separated list of controls which are zero or more
22650           floating point values that determine the behavior of the loaded
22651           plugin (for example delay, threshold or gain).  Controls need to be
22652           defined using the following syntax:
22653           c0=value0|c1=value1|c2=value2|..., where valuei is the value set on
22654           the i-th control.  Alternatively they can be also defined using the
22655           following syntax: value0|value1|value2|..., where valuei is the
22656           value set on the i-th control.  If controls is set to "help", all
22657           available controls and their valid ranges are printed.
22658
22659       sample_rate, s
22660           Specify the sample rate, default to 44100. Only used if plugin have
22661           zero inputs.
22662
22663       nb_samples, n
22664           Set the number of samples per channel per each output frame,
22665           default is 1024. Only used if plugin have zero inputs.
22666
22667       duration, d
22668           Set the minimum duration of the sourced audio. See the Time
22669           duration section in the ffmpeg-utils(1) manual for the accepted
22670           syntax.  Note that the resulting duration may be greater than the
22671           specified duration, as the generated audio is always cut at the end
22672           of a complete frame.  If not specified, or the expressed duration
22673           is negative, the audio is supposed to be generated forever.  Only
22674           used if plugin have zero inputs.
22675
22676       latency, l
22677           Enable latency compensation, by default is disabled.  Only used if
22678           plugin have inputs.
22679
22680       Examples
22681
22682       •   List all available plugins within amp (LADSPA example plugin)
22683           library:
22684
22685                   ladspa=file=amp
22686
22687       •   List all available controls and their valid ranges for "vcf_notch"
22688           plugin from "VCF" library:
22689
22690                   ladspa=f=vcf:p=vcf_notch:c=help
22691
22692       •   Simulate low quality audio equipment using "Computer Music Toolkit"
22693           (CMT) plugin library:
22694
22695                   ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
22696
22697       •   Add reverberation to the audio using TAP-plugins (Tom's Audio
22698           Processing plugins):
22699
22700                   ladspa=file=tap_reverb:tap_reverb
22701
22702       •   Generate white noise, with 0.2 amplitude:
22703
22704                   ladspa=file=cmt:noise_source_white:c=c0=.2
22705
22706       •   Generate 20 bpm clicks using plugin "C* Click - Metronome" from the
22707           "C* Audio Plugin Suite" (CAPS) library:
22708
22709                   ladspa=file=caps:Click:c=c1=20'
22710
22711       •   Apply "C* Eq10X2 - Stereo 10-band equaliser" effect:
22712
22713                   ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
22714
22715       •   Increase volume by 20dB using fast lookahead limiter from Steve
22716           Harris "SWH Plugins" collection:
22717
22718                   ladspa=fast_lookahead_limiter_1913:fastLookaheadLimiter:20|0|2
22719
22720       •   Attenuate low frequencies using Multiband EQ from Steve Harris "SWH
22721           Plugins" collection:
22722
22723                   ladspa=mbeq_1197:mbeq:-24|-24|-24|0|0|0|0|0|0|0|0|0|0|0|0
22724
22725       •   Reduce stereo image using "Narrower" from the "C* Audio Plugin
22726           Suite" (CAPS) library:
22727
22728                   ladspa=caps:Narrower
22729
22730       •   Another white noise, now using "C* Audio Plugin Suite" (CAPS)
22731           library:
22732
22733                   ladspa=caps:White:.2
22734
22735       •   Some fractal noise, using "C* Audio Plugin Suite" (CAPS) library:
22736
22737                   ladspa=caps:Fractal:c=c1=1
22738
22739       •   Dynamic volume normalization using "VLevel" plugin:
22740
22741                   ladspa=vlevel-ladspa:vlevel_mono
22742
22743       Commands
22744
22745       This filter supports the following commands:
22746
22747       cN  Modify the N-th control value.
22748
22749           If the specified value is not valid, it is ignored and prior one is
22750           kept.
22751
22752   loudnorm
22753       EBU R128 loudness normalization. Includes both dynamic and linear
22754       normalization modes.  Support for both single pass (livestreams, files)
22755       and double pass (files) modes.  This algorithm can target IL, LRA, and
22756       maximum true peak. In dynamic mode, to accurately detect true peaks,
22757       the audio stream will be upsampled to 192 kHz.  Use the "-ar" option or
22758       "aresample" filter to explicitly set an output sample rate.
22759
22760       The filter accepts the following options:
22761
22762       I, i
22763           Set integrated loudness target.  Range is -70.0 - -5.0. Default
22764           value is -24.0.
22765
22766       LRA, lra
22767           Set loudness range target.  Range is 1.0 - 50.0. Default value is
22768           7.0.
22769
22770       TP, tp
22771           Set maximum true peak.  Range is -9.0 - +0.0. Default value is
22772           -2.0.
22773
22774       measured_I, measured_i
22775           Measured IL of input file.  Range is -99.0 - +0.0.
22776
22777       measured_LRA, measured_lra
22778           Measured LRA of input file.  Range is  0.0 - 99.0.
22779
22780       measured_TP, measured_tp
22781           Measured true peak of input file.  Range is  -99.0 - +99.0.
22782
22783       measured_thresh
22784           Measured threshold of input file.  Range is -99.0 - +0.0.
22785
22786       offset
22787           Set offset gain. Gain is applied before the true-peak limiter.
22788           Range is  -99.0 - +99.0. Default is +0.0.
22789
22790       linear
22791           Normalize by linearly scaling the source audio.  "measured_I",
22792           "measured_LRA", "measured_TP", and "measured_thresh" must all be
22793           specified. Target LRA shouldn't be lower than source LRA and the
22794           change in integrated loudness shouldn't result in a true peak which
22795           exceeds the target TP. If any of these conditions aren't met,
22796           normalization mode will revert to dynamic.  Options are "true" or
22797           "false". Default is "true".
22798
22799       dual_mono
22800           Treat mono input files as "dual-mono". If a mono file is intended
22801           for playback on a stereo system, its EBU R128 measurement will be
22802           perceptually incorrect.  If set to "true", this option will
22803           compensate for this effect.  Multi-channel input files are not
22804           affected by this option.  Options are true or false. Default is
22805           false.
22806
22807       print_format
22808           Set print format for stats. Options are summary, json, or none.
22809           Default value is none.
22810
22811   lowpass
22812       Apply a low-pass filter with 3dB point frequency.  The filter can be
22813       either single-pole or double-pole (the default).  The filter roll off
22814       at 6dB per pole per octave (20dB per pole per decade).
22815
22816       The filter accepts the following options:
22817
22818       frequency, f
22819           Set frequency in Hz. Default is 500.
22820
22821       poles, p
22822           Set number of poles. Default is 2.
22823
22824       width_type, t
22825           Set method to specify band-width of filter.
22826
22827           h   Hz
22828
22829           q   Q-Factor
22830
22831           o   octave
22832
22833           s   slope
22834
22835           k   kHz
22836
22837       width, w
22838           Specify the band-width of a filter in width_type units.  Applies
22839           only to double-pole filter.  The default is 0.707q and gives a
22840           Butterworth response.
22841
22842       mix, m
22843           How much to use filtered signal in output. Default is 1.  Range is
22844           between 0 and 1.
22845
22846       channels, c
22847           Specify which channels to filter, by default all available are
22848           filtered.
22849
22850       normalize, n
22851           Normalize biquad coefficients, by default is disabled.  Enabling it
22852           will normalize magnitude response at DC to 0dB.
22853
22854       transform, a
22855           Set transform type of IIR filter.
22856
22857           di
22858           dii
22859           tdi
22860           tdii
22861           latt
22862           svf
22863           zdf
22864       precision, r
22865           Set precison of filtering.
22866
22867           auto
22868               Pick automatic sample format depending on surround filters.
22869
22870           s16 Always use signed 16-bit.
22871
22872           s32 Always use signed 32-bit.
22873
22874           f32 Always use float 32-bit.
22875
22876           f64 Always use float 64-bit.
22877
22878       block_size, b
22879           Set block size used for reverse IIR processing. If this value is
22880           set to high enough value (higher than impulse response length
22881           truncated when reaches near zero values) filtering will become
22882           linear phase otherwise if not big enough it will just produce nasty
22883           artifacts.
22884
22885           Note that filter delay will be exactly this many samples when set
22886           to non-zero value.
22887
22888       Examples
22889
22890       •   Lowpass only LFE channel, it LFE is not present it does nothing:
22891
22892                   lowpass=c=LFE
22893
22894       Commands
22895
22896       This filter supports the following commands:
22897
22898       frequency, f
22899           Change lowpass frequency.  Syntax for the command is : "frequency"
22900
22901       width_type, t
22902           Change lowpass width_type.  Syntax for the command is :
22903           "width_type"
22904
22905       width, w
22906           Change lowpass width.  Syntax for the command is : "width"
22907
22908       mix, m
22909           Change lowpass mix.  Syntax for the command is : "mix"
22910
22911   lv2
22912       Load a LV2 (LADSPA Version 2) plugin.
22913
22914       To enable compilation of this filter you need to configure FFmpeg with
22915       "--enable-lv2".
22916
22917       plugin, p
22918           Specifies the plugin URI. You may need to escape ':'.
22919
22920       controls, c
22921           Set the '|' separated list of controls which are zero or more
22922           floating point values that determine the behavior of the loaded
22923           plugin (for example delay, threshold or gain).  If controls is set
22924           to "help", all available controls and their valid ranges are
22925           printed.
22926
22927       sample_rate, s
22928           Specify the sample rate, default to 44100. Only used if plugin have
22929           zero inputs.
22930
22931       nb_samples, n
22932           Set the number of samples per channel per each output frame,
22933           default is 1024. Only used if plugin have zero inputs.
22934
22935       duration, d
22936           Set the minimum duration of the sourced audio. See the Time
22937           duration section in the ffmpeg-utils(1) manual for the accepted
22938           syntax.  Note that the resulting duration may be greater than the
22939           specified duration, as the generated audio is always cut at the end
22940           of a complete frame.  If not specified, or the expressed duration
22941           is negative, the audio is supposed to be generated forever.  Only
22942           used if plugin have zero inputs.
22943
22944       Examples
22945
22946       •   Apply bass enhancer plugin from Calf:
22947
22948                   lv2=p=http\\\\://calf.sourceforge.net/plugins/BassEnhancer:c=amount=2
22949
22950       •   Apply vinyl plugin from Calf:
22951
22952                   lv2=p=http\\\\://calf.sourceforge.net/plugins/Vinyl:c=drone=0.2|aging=0.5
22953
22954       •   Apply bit crusher plugin from ArtyFX:
22955
22956                   lv2=p=http\\\\://www.openavproductions.com/artyfx#bitta:c=crush=0.3
22957
22958       Commands
22959
22960       This filter supports all options that are exported by plugin as
22961       commands.
22962
22963   mcompand
22964       Multiband Compress or expand the audio's dynamic range.
22965
22966       The input audio is divided into bands using 4th order Linkwitz-Riley
22967       IIRs.  This is akin to the crossover of a loudspeaker, and results in
22968       flat frequency response when absent compander action.
22969
22970       It accepts the following parameters:
22971
22972       args
22973           This option syntax is: attack,decay,[attack,decay..] soft-knee
22974           points crossover_frequency [delay [initial_volume [gain]]] |
22975           attack,decay ...  For explanation of each item refer to compand
22976           filter documentation.
22977
22978   pan
22979       Mix channels with specific gain levels. The filter accepts the output
22980       channel layout followed by a set of channels definitions.
22981
22982       This filter is also designed to efficiently remap the channels of an
22983       audio stream.
22984
22985       The filter accepts parameters of the form: "l|outdef|outdef|..."
22986
22987       l   output channel layout or number of channels
22988
22989       outdef
22990           output channel specification, of the form:
22991           "out_name=[gain*]in_name[(+-)[gain*]in_name...]"
22992
22993       out_name
22994           output channel to define, either a channel name (FL, FR, etc.) or a
22995           channel number (c0, c1, etc.)
22996
22997       gain
22998           multiplicative coefficient for the channel, 1 leaving the volume
22999           unchanged
23000
23001       in_name
23002           input channel to use, see out_name for details; it is not possible
23003           to mix named and numbered input channels
23004
23005       If the `=' in a channel specification is replaced by `<', then the
23006       gains for that specification will be renormalized so that the total is
23007       1, thus avoiding clipping noise.
23008
23009       Mixing examples
23010
23011       For example, if you want to down-mix from stereo to mono, but with a
23012       bigger factor for the left channel:
23013
23014               pan=1c|c0=0.9*c0+0.1*c1
23015
23016       A customized down-mix to stereo that works automatically for 3-, 4-, 5-
23017       and 7-channels surround:
23018
23019               pan=stereo| FL < FL + 0.5*FC + 0.6*BL + 0.6*SL | FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
23020
23021       Note that ffmpeg integrates a default down-mix (and up-mix) system that
23022       should be preferred (see "-ac" option) unless you have very specific
23023       needs.
23024
23025       Remapping examples
23026
23027       The channel remapping will be effective if, and only if:
23028
23029       *<gain coefficients are zeroes or ones,>
23030       *<only one input per channel output,>
23031
23032       If all these conditions are satisfied, the filter will notify the user
23033       ("Pure channel mapping detected"), and use an optimized and lossless
23034       method to do the remapping.
23035
23036       For example, if you have a 5.1 source and want a stereo audio stream by
23037       dropping the extra channels:
23038
23039               pan="stereo| c0=FL | c1=FR"
23040
23041       Given the same source, you can also switch front left and front right
23042       channels and keep the input channel layout:
23043
23044               pan="5.1| c0=c1 | c1=c0 | c2=c2 | c3=c3 | c4=c4 | c5=c5"
23045
23046       If the input is a stereo audio stream, you can mute the front left
23047       channel (and still keep the stereo channel layout) with:
23048
23049               pan="stereo|c1=c1"
23050
23051       Still with a stereo audio stream input, you can copy the right channel
23052       in both front left and right:
23053
23054               pan="stereo| c0=FR | c1=FR"
23055
23056   replaygain
23057       ReplayGain scanner filter. This filter takes an audio stream as an
23058       input and outputs it unchanged.  At end of filtering it displays
23059       "track_gain" and "track_peak".
23060
23061   resample
23062       Convert the audio sample format, sample rate and channel layout. It is
23063       not meant to be used directly.
23064
23065   rubberband
23066       Apply time-stretching and pitch-shifting with librubberband.
23067
23068       To enable compilation of this filter, you need to configure FFmpeg with
23069       "--enable-librubberband".
23070
23071       The filter accepts the following options:
23072
23073       tempo
23074           Set tempo scale factor.
23075
23076       pitch
23077           Set pitch scale factor.
23078
23079       transients
23080           Set transients detector.  Possible values are:
23081
23082           crisp
23083           mixed
23084           smooth
23085       detector
23086           Set detector.  Possible values are:
23087
23088           compound
23089           percussive
23090           soft
23091       phase
23092           Set phase.  Possible values are:
23093
23094           laminar
23095           independent
23096       window
23097           Set processing window size.  Possible values are:
23098
23099           standard
23100           short
23101           long
23102       smoothing
23103           Set smoothing.  Possible values are:
23104
23105           off
23106           on
23107       formant
23108           Enable formant preservation when shift pitching.  Possible values
23109           are:
23110
23111           shifted
23112           preserved
23113       pitchq
23114           Set pitch quality.  Possible values are:
23115
23116           quality
23117           speed
23118           consistency
23119       channels
23120           Set channels.  Possible values are:
23121
23122           apart
23123           together
23124
23125       Commands
23126
23127       This filter supports the following commands:
23128
23129       tempo
23130           Change filter tempo scale factor.  Syntax for the command is :
23131           "tempo"
23132
23133       pitch
23134           Change filter pitch scale factor.  Syntax for the command is :
23135           "pitch"
23136
23137   sidechaincompress
23138       This filter acts like normal compressor but has the ability to compress
23139       detected signal using second input signal.  It needs two input streams
23140       and returns one output stream.  First input stream will be processed
23141       depending on second stream signal.  The filtered signal then can be
23142       filtered with other filters in later stages of processing. See pan and
23143       amerge filter.
23144
23145       The filter accepts the following options:
23146
23147       level_in
23148           Set input gain. Default is 1. Range is between 0.015625 and 64.
23149
23150       mode
23151           Set mode of compressor operation. Can be "upward" or "downward".
23152           Default is "downward".
23153
23154       threshold
23155           If a signal of second stream raises above this level it will affect
23156           the gain reduction of first stream.  By default is 0.125. Range is
23157           between 0.00097563 and 1.
23158
23159       ratio
23160           Set a ratio about which the signal is reduced. 1:2 means that if
23161           the level raised 4dB above the threshold, it will be only 2dB above
23162           after the reduction.  Default is 2. Range is between 1 and 20.
23163
23164       attack
23165           Amount of milliseconds the signal has to rise above the threshold
23166           before gain reduction starts. Default is 20. Range is between 0.01
23167           and 2000.
23168
23169       release
23170           Amount of milliseconds the signal has to fall below the threshold
23171           before reduction is decreased again. Default is 250. Range is
23172           between 0.01 and 9000.
23173
23174       makeup
23175           Set the amount by how much signal will be amplified after
23176           processing.  Default is 1. Range is from 1 to 64.
23177
23178       knee
23179           Curve the sharp knee around the threshold to enter gain reduction
23180           more softly.  Default is 2.82843. Range is between 1 and 8.
23181
23182       link
23183           Choose if the "average" level between all channels of side-chain
23184           stream or the louder("maximum") channel of side-chain stream
23185           affects the reduction. Default is "average".
23186
23187       detection
23188           Should the exact signal be taken in case of "peak" or an RMS one in
23189           case of "rms". Default is "rms" which is mainly smoother.
23190
23191       level_sc
23192           Set sidechain gain. Default is 1. Range is between 0.015625 and 64.
23193
23194       mix How much to use compressed signal in output. Default is 1.  Range
23195           is between 0 and 1.
23196
23197       Commands
23198
23199       This filter supports the all above options as commands.
23200
23201       Examples
23202
23203       •   Full ffmpeg example taking 2 audio inputs, 1st input to be
23204           compressed depending on the signal of 2nd input and later
23205           compressed signal to be merged with 2nd input:
23206
23207                   ffmpeg -i main.flac -i sidechain.flac -filter_complex "[1:a]asplit=2[sc][mix];[0:a][sc]sidechaincompress[compr];[compr][mix]amerge"
23208
23209   sidechaingate
23210       A sidechain gate acts like a normal (wideband) gate but has the ability
23211       to filter the detected signal before sending it to the gain reduction
23212       stage.  Normally a gate uses the full range signal to detect a level
23213       above the threshold.  For example: If you cut all lower frequencies
23214       from your sidechain signal the gate will decrease the volume of your
23215       track only if not enough highs appear. With this technique you are able
23216       to reduce the resonation of a natural drum or remove "rumbling" of
23217       muted strokes from a heavily distorted guitar.  It needs two input
23218       streams and returns one output stream.  First input stream will be
23219       processed depending on second stream signal.
23220
23221       The filter accepts the following options:
23222
23223       level_in
23224           Set input level before filtering.  Default is 1. Allowed range is
23225           from 0.015625 to 64.
23226
23227       mode
23228           Set the mode of operation. Can be "upward" or "downward".  Default
23229           is "downward". If set to "upward" mode, higher parts of signal will
23230           be amplified, expanding dynamic range in upward direction.
23231           Otherwise, in case of "downward" lower parts of signal will be
23232           reduced.
23233
23234       range
23235           Set the level of gain reduction when the signal is below the
23236           threshold.  Default is 0.06125. Allowed range is from 0 to 1.
23237           Setting this to 0 disables reduction and then filter behaves like
23238           expander.
23239
23240       threshold
23241           If a signal rises above this level the gain reduction is released.
23242           Default is 0.125. Allowed range is from 0 to 1.
23243
23244       ratio
23245           Set a ratio about which the signal is reduced.  Default is 2.
23246           Allowed range is from 1 to 9000.
23247
23248       attack
23249           Amount of milliseconds the signal has to rise above the threshold
23250           before gain reduction stops.  Default is 20 milliseconds. Allowed
23251           range is from 0.01 to 9000.
23252
23253       release
23254           Amount of milliseconds the signal has to fall below the threshold
23255           before the reduction is increased again. Default is 250
23256           milliseconds.  Allowed range is from 0.01 to 9000.
23257
23258       makeup
23259           Set amount of amplification of signal after processing.  Default is
23260           1. Allowed range is from 1 to 64.
23261
23262       knee
23263           Curve the sharp knee around the threshold to enter gain reduction
23264           more softly.  Default is 2.828427125. Allowed range is from 1 to 8.
23265
23266       detection
23267           Choose if exact signal should be taken for detection or an RMS like
23268           one.  Default is rms. Can be peak or rms.
23269
23270       link
23271           Choose if the average level between all channels or the louder
23272           channel affects the reduction.  Default is average. Can be average
23273           or maximum.
23274
23275       level_sc
23276           Set sidechain gain. Default is 1. Range is from 0.015625 to 64.
23277
23278       Commands
23279
23280       This filter supports the all above options as commands.
23281
23282   silencedetect
23283       Detect silence in an audio stream.
23284
23285       This filter logs a message when it detects that the input audio volume
23286       is less or equal to a noise tolerance value for a duration greater or
23287       equal to the minimum detected noise duration.
23288
23289       The printed times and duration are expressed in seconds. The
23290       "lavfi.silence_start" or "lavfi.silence_start.X" metadata key is set on
23291       the first frame whose timestamp equals or exceeds the detection
23292       duration and it contains the timestamp of the first frame of the
23293       silence.
23294
23295       The "lavfi.silence_duration" or "lavfi.silence_duration.X" and
23296       "lavfi.silence_end" or "lavfi.silence_end.X" metadata keys are set on
23297       the first frame after the silence. If mono is enabled, and each channel
23298       is evaluated separately, the ".X" suffixed keys are used, and "X"
23299       corresponds to the channel number.
23300
23301       The filter accepts the following options:
23302
23303       noise, n
23304           Set noise tolerance. Can be specified in dB (in case "dB" is
23305           appended to the specified value) or amplitude ratio. Default is
23306           -60dB, or 0.001.
23307
23308       duration, d
23309           Set silence duration until notification (default is 2 seconds). See
23310           the Time duration section in the ffmpeg-utils(1) manual for the
23311           accepted syntax.
23312
23313       mono, m
23314           Process each channel separately, instead of combined. By default is
23315           disabled.
23316
23317       Examples
23318
23319       •   Detect 5 seconds of silence with -50dB noise tolerance:
23320
23321                   silencedetect=n=-50dB:d=5
23322
23323       •   Complete example with ffmpeg to detect silence with 0.0001 noise
23324           tolerance in silence.mp3:
23325
23326                   ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
23327
23328   silenceremove
23329       Remove silence from the beginning, middle or end of the audio.
23330
23331       The filter accepts the following options:
23332
23333       start_periods
23334           This value is used to indicate if audio should be trimmed at
23335           beginning of the audio. A value of zero indicates no silence should
23336           be trimmed from the beginning. When specifying a non-zero value, it
23337           trims audio up until it finds non-silence. Normally, when trimming
23338           silence from beginning of audio the start_periods will be 1 but it
23339           can be increased to higher values to trim all audio up to specific
23340           count of non-silence periods.  Default value is 0.
23341
23342       start_duration
23343           Specify the amount of time that non-silence must be detected before
23344           it stops trimming audio. By increasing the duration, bursts of
23345           noises can be treated as silence and trimmed off. Default value is
23346           0.
23347
23348       start_threshold
23349           This indicates what sample value should be treated as silence. For
23350           digital audio, a value of 0 may be fine but for audio recorded from
23351           analog, you may wish to increase the value to account for
23352           background noise.  Can be specified in dB (in case "dB" is appended
23353           to the specified value) or amplitude ratio. Default value is 0.
23354
23355       start_silence
23356           Specify max duration of silence at beginning that will be kept
23357           after trimming. Default is 0, which is equal to trimming all
23358           samples detected as silence.
23359
23360       start_mode
23361           Specify mode of detection of silence end in start of multi-channel
23362           audio.  Can be any or all. Default is any.  With any, any sample
23363           that is detected as non-silence will cause stopped trimming of
23364           silence.  With all, only if all channels are detected as non-
23365           silence will cause stopped trimming of silence.
23366
23367       stop_periods
23368           Set the count for trimming silence from the end of audio.  To
23369           remove silence from the middle of a file, specify a stop_periods
23370           that is negative. This value is then treated as a positive value
23371           and is used to indicate the effect should restart processing as
23372           specified by start_periods, making it suitable for removing periods
23373           of silence in the middle of the audio.  Default value is 0.
23374
23375       stop_duration
23376           Specify a duration of silence that must exist before audio is not
23377           copied any more. By specifying a higher duration, silence that is
23378           wanted can be left in the audio.  Default value is 0.
23379
23380       stop_threshold
23381           This is the same as start_threshold but for trimming silence from
23382           the end of audio.  Can be specified in dB (in case "dB" is appended
23383           to the specified value) or amplitude ratio. Default value is 0.
23384
23385       stop_silence
23386           Specify max duration of silence at end that will be kept after
23387           trimming. Default is 0, which is equal to trimming all samples
23388           detected as silence.
23389
23390       stop_mode
23391           Specify mode of detection of silence start in end of multi-channel
23392           audio.  Can be any or all. Default is any.  With any, any sample
23393           that is detected as non-silence will cause stopped trimming of
23394           silence.  With all, only if all channels are detected as non-
23395           silence will cause stopped trimming of silence.
23396
23397       detection
23398           Set how is silence detected. Can be "rms" or "peak". Second is
23399           faster and works better with digital silence which is exactly 0.
23400           Default value is "rms".
23401
23402       window
23403           Set duration in number of seconds used to calculate size of window
23404           in number of samples for detecting silence.  Default value is 0.02.
23405           Allowed range is from 0 to 10.
23406
23407       Examples
23408
23409       •   The following example shows how this filter can be used to start a
23410           recording that does not contain the delay at the start which
23411           usually occurs between pressing the record button and the start of
23412           the performance:
23413
23414                   silenceremove=start_periods=1:start_duration=5:start_threshold=0.02
23415
23416       •   Trim all silence encountered from beginning to end where there is
23417           more than 1 second of silence in audio:
23418
23419                   silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-90dB
23420
23421       •   Trim all digital silence samples, using peak detection, from
23422           beginning to end where there is more than 0 samples of digital
23423           silence in audio and digital silence is detected in all channels at
23424           same positions in stream:
23425
23426                   silenceremove=window=0:detection=peak:stop_mode=all:start_mode=all:stop_periods=-1:stop_threshold=0
23427
23428   sofalizer
23429       SOFAlizer uses head-related transfer functions (HRTFs) to create
23430       virtual loudspeakers around the user for binaural listening via
23431       headphones (audio formats up to 9 channels supported).  The HRTFs are
23432       stored in SOFA files (see <http://www.sofacoustics.org/> for a
23433       database).  SOFAlizer is developed at the Acoustics Research Institute
23434       (ARI) of the Austrian Academy of Sciences.
23435
23436       To enable compilation of this filter you need to configure FFmpeg with
23437       "--enable-libmysofa".
23438
23439       The filter accepts the following options:
23440
23441       sofa
23442           Set the SOFA file used for rendering.
23443
23444       gain
23445           Set gain applied to audio. Value is in dB. Default is 0.
23446
23447       rotation
23448           Set rotation of virtual loudspeakers in deg. Default is 0.
23449
23450       elevation
23451           Set elevation of virtual speakers in deg. Default is 0.
23452
23453       radius
23454           Set distance in meters between loudspeakers and the listener with
23455           near-field HRTFs. Default is 1.
23456
23457       type
23458           Set processing type. Can be time or freq. time is processing audio
23459           in time domain which is slow.  freq is processing audio in
23460           frequency domain which is fast.  Default is freq.
23461
23462       speakers
23463           Set custom positions of virtual loudspeakers. Syntax for this
23464           option is: <CH> <AZIM> <ELEV>[|<CH> <AZIM> <ELEV>|...].  Each
23465           virtual loudspeaker is described with short channel name following
23466           with azimuth and elevation in degrees.  Each virtual loudspeaker
23467           description is separated by '|'.  For example to override front
23468           left and front right channel positions use: 'speakers=FL 45 15|FR
23469           345 15'.  Descriptions with unrecognised channel names are ignored.
23470
23471       lfegain
23472           Set custom gain for LFE channels. Value is in dB. Default is 0.
23473
23474       framesize
23475           Set custom frame size in number of samples. Default is 1024.
23476           Allowed range is from 1024 to 96000. Only used if option type is
23477           set to freq.
23478
23479       normalize
23480           Should all IRs be normalized upon importing SOFA file.  By default
23481           is enabled.
23482
23483       interpolate
23484           Should nearest IRs be interpolated with neighbor IRs if exact
23485           position does not match. By default is disabled.
23486
23487       minphase
23488           Minphase all IRs upon loading of SOFA file. By default is disabled.
23489
23490       anglestep
23491           Set neighbor search angle step. Only used if option interpolate is
23492           enabled.
23493
23494       radstep
23495           Set neighbor search radius step. Only used if option interpolate is
23496           enabled.
23497
23498       Examples
23499
23500       •   Using ClubFritz6 sofa file:
23501
23502                   sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=1
23503
23504       •   Using ClubFritz12 sofa file and bigger radius with small rotation:
23505
23506                   sofalizer=sofa=/path/to/ClubFritz12.sofa:type=freq:radius=2:rotation=5
23507
23508       •   Similar as above but with custom speaker positions for front left,
23509           front right, back left and back right and also with custom gain:
23510
23511                   "sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=2:speakers=FL 45|FR 315|BL 135|BR 225:gain=28"
23512
23513   speechnorm
23514       Speech Normalizer.
23515
23516       This filter expands or compresses each half-cycle of audio samples
23517       (local set of samples all above or all below zero and between two
23518       nearest zero crossings) depending on threshold value, so audio reaches
23519       target peak value under conditions controlled by below options.
23520
23521       The filter accepts the following options:
23522
23523       peak, p
23524           Set the expansion target peak value. This specifies the highest
23525           allowed absolute amplitude level for the normalized audio input.
23526           Default value is 0.95. Allowed range is from 0.0 to 1.0.
23527
23528       expansion, e
23529           Set the maximum expansion factor. Allowed range is from 1.0 to
23530           50.0. Default value is 2.0.  This option controls maximum local
23531           half-cycle of samples expansion. The maximum expansion would be
23532           such that local peak value reaches target peak value but never to
23533           surpass it and that ratio between new and previous peak value does
23534           not surpass this option value.
23535
23536       compression, c
23537           Set the maximum compression factor. Allowed range is from 1.0 to
23538           50.0. Default value is 2.0.  This option controls maximum local
23539           half-cycle of samples compression. This option is used only if
23540           threshold option is set to value greater than 0.0, then in such
23541           cases when local peak is lower or same as value set by threshold
23542           all samples belonging to that peak's half-cycle will be compressed
23543           by current compression factor.
23544
23545       threshold, t
23546           Set the threshold value. Default value is 0.0. Allowed range is
23547           from 0.0 to 1.0.  This option specifies which half-cycles of
23548           samples will be compressed and which will be expanded.  Any half-
23549           cycle samples with their local peak value below or same as this
23550           option value will be compressed by current compression factor,
23551           otherwise, if greater than threshold value they will be expanded
23552           with expansion factor so that it could reach peak target value but
23553           never surpass it.
23554
23555       raise, r
23556           Set the expansion raising amount per each half-cycle of samples.
23557           Default value is 0.001.  Allowed range is from 0.0 to 1.0. This
23558           controls how fast expansion factor is raised per each new half-
23559           cycle until it reaches expansion value.  Setting this options too
23560           high may lead to distortions.
23561
23562       fall, f
23563           Set the compression raising amount per each half-cycle of samples.
23564           Default value is 0.001.  Allowed range is from 0.0 to 1.0. This
23565           controls how fast compression factor is raised per each new half-
23566           cycle until it reaches compression value.
23567
23568       channels, h
23569           Specify which channels to filter, by default all available channels
23570           are filtered.
23571
23572       invert, i
23573           Enable inverted filtering, by default is disabled. This inverts
23574           interpretation of threshold option. When enabled any half-cycle of
23575           samples with their local peak value below or same as threshold
23576           option will be expanded otherwise it will be compressed.
23577
23578       link, l
23579           Link channels when calculating gain applied to each filtered
23580           channel sample, by default is disabled.  When disabled each
23581           filtered channel gain calculation is independent, otherwise when
23582           this option is enabled the minimum of all possible gains for each
23583           filtered channel is used.
23584
23585       Commands
23586
23587       This filter supports the all above options as commands.
23588
23589   stereotools
23590       This filter has some handy utilities to manage stereo signals, for
23591       converting M/S stereo recordings to L/R signal while having control
23592       over the parameters or spreading the stereo image of master track.
23593
23594       The filter accepts the following options:
23595
23596       level_in
23597           Set input level before filtering for both channels. Defaults is 1.
23598           Allowed range is from 0.015625 to 64.
23599
23600       level_out
23601           Set output level after filtering for both channels. Defaults is 1.
23602           Allowed range is from 0.015625 to 64.
23603
23604       balance_in
23605           Set input balance between both channels. Default is 0.  Allowed
23606           range is from -1 to 1.
23607
23608       balance_out
23609           Set output balance between both channels. Default is 0.  Allowed
23610           range is from -1 to 1.
23611
23612       softclip
23613           Enable softclipping. Results in analog distortion instead of harsh
23614           digital 0dB clipping. Disabled by default.
23615
23616       mutel
23617           Mute the left channel. Disabled by default.
23618
23619       muter
23620           Mute the right channel. Disabled by default.
23621
23622       phasel
23623           Change the phase of the left channel. Disabled by default.
23624
23625       phaser
23626           Change the phase of the right channel. Disabled by default.
23627
23628       mode
23629           Set stereo mode. Available values are:
23630
23631           lr>lr
23632               Left/Right to Left/Right, this is default.
23633
23634           lr>ms
23635               Left/Right to Mid/Side.
23636
23637           ms>lr
23638               Mid/Side to Left/Right.
23639
23640           lr>ll
23641               Left/Right to Left/Left.
23642
23643           lr>rr
23644               Left/Right to Right/Right.
23645
23646           lr>l+r
23647               Left/Right to Left + Right.
23648
23649           lr>rl
23650               Left/Right to Right/Left.
23651
23652           ms>ll
23653               Mid/Side to Left/Left.
23654
23655           ms>rr
23656               Mid/Side to Right/Right.
23657
23658           ms>rl
23659               Mid/Side to Right/Left.
23660
23661           lr>l-r
23662               Left/Right to Left - Right.
23663
23664       slev
23665           Set level of side signal. Default is 1.  Allowed range is from
23666           0.015625 to 64.
23667
23668       sbal
23669           Set balance of side signal. Default is 0.  Allowed range is from -1
23670           to 1.
23671
23672       mlev
23673           Set level of the middle signal. Default is 1.  Allowed range is
23674           from 0.015625 to 64.
23675
23676       mpan
23677           Set middle signal pan. Default is 0. Allowed range is from -1 to 1.
23678
23679       base
23680           Set stereo base between mono and inversed channels. Default is 0.
23681           Allowed range is from -1 to 1.
23682
23683       delay
23684           Set delay in milliseconds how much to delay left from right channel
23685           and vice versa. Default is 0. Allowed range is from -20 to 20.
23686
23687       sclevel
23688           Set S/C level. Default is 1. Allowed range is from 1 to 100.
23689
23690       phase
23691           Set the stereo phase in degrees. Default is 0. Allowed range is
23692           from 0 to 360.
23693
23694       bmode_in, bmode_out
23695           Set balance mode for balance_in/balance_out option.
23696
23697           Can be one of the following:
23698
23699           balance
23700               Classic balance mode. Attenuate one channel at time.  Gain is
23701               raised up to 1.
23702
23703           amplitude
23704               Similar as classic mode above but gain is raised up to 2.
23705
23706           power
23707               Equal power distribution, from -6dB to +6dB range.
23708
23709       Commands
23710
23711       This filter supports the all above options as commands.
23712
23713       Examples
23714
23715       •   Apply karaoke like effect:
23716
23717                   stereotools=mlev=0.015625
23718
23719       •   Convert M/S signal to L/R:
23720
23721                   "stereotools=mode=ms>lr"
23722
23723   stereowiden
23724       This filter enhance the stereo effect by suppressing signal common to
23725       both channels and by delaying the signal of left into right and vice
23726       versa, thereby widening the stereo effect.
23727
23728       The filter accepts the following options:
23729
23730       delay
23731           Time in milliseconds of the delay of left signal into right and
23732           vice versa.  Default is 20 milliseconds.
23733
23734       feedback
23735           Amount of gain in delayed signal into right and vice versa. Gives a
23736           delay effect of left signal in right output and vice versa which
23737           gives widening effect. Default is 0.3.
23738
23739       crossfeed
23740           Cross feed of left into right with inverted phase. This helps in
23741           suppressing the mono. If the value is 1 it will cancel all the
23742           signal common to both channels. Default is 0.3.
23743
23744       drymix
23745           Set level of input signal of original channel. Default is 0.8.
23746
23747       Commands
23748
23749       This filter supports the all above options except "delay" as commands.
23750
23751   superequalizer
23752       Apply 18 band equalizer.
23753
23754       The filter accepts the following options:
23755
23756       1b  Set 65Hz band gain.
23757
23758       2b  Set 92Hz band gain.
23759
23760       3b  Set 131Hz band gain.
23761
23762       4b  Set 185Hz band gain.
23763
23764       5b  Set 262Hz band gain.
23765
23766       6b  Set 370Hz band gain.
23767
23768       7b  Set 523Hz band gain.
23769
23770       8b  Set 740Hz band gain.
23771
23772       9b  Set 1047Hz band gain.
23773
23774       10b Set 1480Hz band gain.
23775
23776       11b Set 2093Hz band gain.
23777
23778       12b Set 2960Hz band gain.
23779
23780       13b Set 4186Hz band gain.
23781
23782       14b Set 5920Hz band gain.
23783
23784       15b Set 8372Hz band gain.
23785
23786       16b Set 11840Hz band gain.
23787
23788       17b Set 16744Hz band gain.
23789
23790       18b Set 20000Hz band gain.
23791
23792   surround
23793       Apply audio surround upmix filter.
23794
23795       This filter allows to produce multichannel output from audio stream.
23796
23797       The filter accepts the following options:
23798
23799       chl_out
23800           Set output channel layout. By default, this is 5.1.
23801
23802           See the Channel Layout section in the ffmpeg-utils(1) manual for
23803           the required syntax.
23804
23805       chl_in
23806           Set input channel layout. By default, this is stereo.
23807
23808           See the Channel Layout section in the ffmpeg-utils(1) manual for
23809           the required syntax.
23810
23811       level_in
23812           Set input volume level. By default, this is 1.
23813
23814       level_out
23815           Set output volume level. By default, this is 1.
23816
23817       lfe Enable LFE channel output if output channel layout has it. By
23818           default, this is enabled.
23819
23820       lfe_low
23821           Set LFE low cut off frequency. By default, this is 128 Hz.
23822
23823       lfe_high
23824           Set LFE high cut off frequency. By default, this is 256 Hz.
23825
23826       lfe_mode
23827           Set LFE mode, can be add or sub. Default is add.  In add mode, LFE
23828           channel is created from input audio and added to output.  In sub
23829           mode, LFE channel is created from input audio and added to output
23830           but also all non-LFE output channels are subtracted with output LFE
23831           channel.
23832
23833       angle
23834           Set angle of stereo surround transform, Allowed range is from 0 to
23835           360.  Default is 90.
23836
23837       fc_in
23838           Set front center input volume. By default, this is 1.
23839
23840       fc_out
23841           Set front center output volume. By default, this is 1.
23842
23843       fl_in
23844           Set front left input volume. By default, this is 1.
23845
23846       fl_out
23847           Set front left output volume. By default, this is 1.
23848
23849       fr_in
23850           Set front right input volume. By default, this is 1.
23851
23852       fr_out
23853           Set front right output volume. By default, this is 1.
23854
23855       sl_in
23856           Set side left input volume. By default, this is 1.
23857
23858       sl_out
23859           Set side left output volume. By default, this is 1.
23860
23861       sr_in
23862           Set side right input volume. By default, this is 1.
23863
23864       sr_out
23865           Set side right output volume. By default, this is 1.
23866
23867       bl_in
23868           Set back left input volume. By default, this is 1.
23869
23870       bl_out
23871           Set back left output volume. By default, this is 1.
23872
23873       br_in
23874           Set back right input volume. By default, this is 1.
23875
23876       br_out
23877           Set back right output volume. By default, this is 1.
23878
23879       bc_in
23880           Set back center input volume. By default, this is 1.
23881
23882       bc_out
23883           Set back center output volume. By default, this is 1.
23884
23885       lfe_in
23886           Set LFE input volume. By default, this is 1.
23887
23888       lfe_out
23889           Set LFE output volume. By default, this is 1.
23890
23891       allx
23892           Set spread usage of stereo image across X axis for all channels.
23893           Allowed range is from -1 to 15.  By default this value is negative
23894           -1, and thus unused.
23895
23896       ally
23897           Set spread usage of stereo image across Y axis for all channels.
23898           Allowed range is from -1 to 15.  By default this value is negative
23899           -1, and thus unused.
23900
23901       fcx, flx, frx, blx, brx, slx, srx, bcx
23902           Set spread usage of stereo image across X axis for each channel.
23903           Allowed range is from 0.06 to 15.  By default this value is 0.5.
23904
23905       fcy, fly, fry, bly, bry, sly, sry, bcy
23906           Set spread usage of stereo image across Y axis for each channel.
23907           Allowed range is from 0.06 to 15.  By default this value is 0.5.
23908
23909       win_size
23910           Set window size. Allowed range is from 1024 to 65536. Default size
23911           is 4096.
23912
23913       win_func
23914           Set window function.
23915
23916           It accepts the following values:
23917
23918           rect
23919           bartlett
23920           hann, hanning
23921           hamming
23922           blackman
23923           welch
23924           flattop
23925           bharris
23926           bnuttall
23927           bhann
23928           sine
23929           nuttall
23930           lanczos
23931           gauss
23932           tukey
23933           dolph
23934           cauchy
23935           parzen
23936           poisson
23937           bohman
23938
23939           Default is "hann".
23940
23941       overlap
23942           Set window overlap. If set to 1, the recommended overlap for
23943           selected window function will be picked. Default is 0.5.
23944
23945   tiltshelf
23946       Boost or cut the lower frequencies and cut or boost higher frequencies
23947       of the audio using a two-pole shelving filter with a response similar
23948       to that of a standard hi-fi's tone-controls.  This is also known as
23949       shelving equalisation (EQ).
23950
23951       The filter accepts the following options:
23952
23953       gain, g
23954           Give the gain at 0 Hz. Its useful range is about -20 (for a large
23955           cut) to +20 (for a large boost).  Beware of clipping when using a
23956           positive gain.
23957
23958       frequency, f
23959           Set the filter's central frequency and so can be used to extend or
23960           reduce the frequency range to be boosted or cut.  The default value
23961           is 3000 Hz.
23962
23963       width_type, t
23964           Set method to specify band-width of filter.
23965
23966           h   Hz
23967
23968           q   Q-Factor
23969
23970           o   octave
23971
23972           s   slope
23973
23974           k   kHz
23975
23976       width, w
23977           Determine how steep is the filter's shelf transition.
23978
23979       poles, p
23980           Set number of poles. Default is 2.
23981
23982       mix, m
23983           How much to use filtered signal in output. Default is 1.  Range is
23984           between 0 and 1.
23985
23986       channels, c
23987           Specify which channels to filter, by default all available are
23988           filtered.
23989
23990       normalize, n
23991           Normalize biquad coefficients, by default is disabled.  Enabling it
23992           will normalize magnitude response at DC to 0dB.
23993
23994       transform, a
23995           Set transform type of IIR filter.
23996
23997           di
23998           dii
23999           tdi
24000           tdii
24001           latt
24002           svf
24003           zdf
24004       precision, r
24005           Set precison of filtering.
24006
24007           auto
24008               Pick automatic sample format depending on surround filters.
24009
24010           s16 Always use signed 16-bit.
24011
24012           s32 Always use signed 32-bit.
24013
24014           f32 Always use float 32-bit.
24015
24016           f64 Always use float 64-bit.
24017
24018       block_size, b
24019           Set block size used for reverse IIR processing. If this value is
24020           set to high enough value (higher than impulse response length
24021           truncated when reaches near zero values) filtering will become
24022           linear phase otherwise if not big enough it will just produce nasty
24023           artifacts.
24024
24025           Note that filter delay will be exactly this many samples when set
24026           to non-zero value.
24027
24028       Commands
24029
24030       This filter supports some options as commands.
24031
24032   treble, highshelf
24033       Boost or cut treble (upper) frequencies of the audio using a two-pole
24034       shelving filter with a response similar to that of a standard hi-fi's
24035       tone-controls. This is also known as shelving equalisation (EQ).
24036
24037       The filter accepts the following options:
24038
24039       gain, g
24040           Give the gain at whichever is the lower of ~22 kHz and the Nyquist
24041           frequency. Its useful range is about -20 (for a large cut) to +20
24042           (for a large boost). Beware of clipping when using a positive gain.
24043
24044       frequency, f
24045           Set the filter's central frequency and so can be used to extend or
24046           reduce the frequency range to be boosted or cut.  The default value
24047           is 3000 Hz.
24048
24049       width_type, t
24050           Set method to specify band-width of filter.
24051
24052           h   Hz
24053
24054           q   Q-Factor
24055
24056           o   octave
24057
24058           s   slope
24059
24060           k   kHz
24061
24062       width, w
24063           Determine how steep is the filter's shelf transition.
24064
24065       poles, p
24066           Set number of poles. Default is 2.
24067
24068       mix, m
24069           How much to use filtered signal in output. Default is 1.  Range is
24070           between 0 and 1.
24071
24072       channels, c
24073           Specify which channels to filter, by default all available are
24074           filtered.
24075
24076       normalize, n
24077           Normalize biquad coefficients, by default is disabled.  Enabling it
24078           will normalize magnitude response at DC to 0dB.
24079
24080       transform, a
24081           Set transform type of IIR filter.
24082
24083           di
24084           dii
24085           tdi
24086           tdii
24087           latt
24088           svf
24089           zdf
24090       precision, r
24091           Set precison of filtering.
24092
24093           auto
24094               Pick automatic sample format depending on surround filters.
24095
24096           s16 Always use signed 16-bit.
24097
24098           s32 Always use signed 32-bit.
24099
24100           f32 Always use float 32-bit.
24101
24102           f64 Always use float 64-bit.
24103
24104       block_size, b
24105           Set block size used for reverse IIR processing. If this value is
24106           set to high enough value (higher than impulse response length
24107           truncated when reaches near zero values) filtering will become
24108           linear phase otherwise if not big enough it will just produce nasty
24109           artifacts.
24110
24111           Note that filter delay will be exactly this many samples when set
24112           to non-zero value.
24113
24114       Commands
24115
24116       This filter supports the following commands:
24117
24118       frequency, f
24119           Change treble frequency.  Syntax for the command is : "frequency"
24120
24121       width_type, t
24122           Change treble width_type.  Syntax for the command is : "width_type"
24123
24124       width, w
24125           Change treble width.  Syntax for the command is : "width"
24126
24127       gain, g
24128           Change treble gain.  Syntax for the command is : "gain"
24129
24130       mix, m
24131           Change treble mix.  Syntax for the command is : "mix"
24132
24133   tremolo
24134       Sinusoidal amplitude modulation.
24135
24136       The filter accepts the following options:
24137
24138       f   Modulation frequency in Hertz. Modulation frequencies in the
24139           subharmonic range (20 Hz or lower) will result in a tremolo effect.
24140           This filter may also be used as a ring modulator by specifying a
24141           modulation frequency higher than 20 Hz.  Range is 0.1 - 20000.0.
24142           Default value is 5.0 Hz.
24143
24144       d   Depth of modulation as a percentage. Range is 0.0 - 1.0.  Default
24145           value is 0.5.
24146
24147   vibrato
24148       Sinusoidal phase modulation.
24149
24150       The filter accepts the following options:
24151
24152       f   Modulation frequency in Hertz.  Range is 0.1 - 20000.0. Default
24153           value is 5.0 Hz.
24154
24155       d   Depth of modulation as a percentage. Range is 0.0 - 1.0.  Default
24156           value is 0.5.
24157
24158   virtualbass
24159       Apply audio Virtual Bass filter.
24160
24161       This filter accepts stereo input and produce stereo with LFE (2.1)
24162       channels output.  The newly produced LFE channel have enhanced virtual
24163       bass originally obtained from both stereo channels.  This filter
24164       outputs front left and front right channels unchanged as available in
24165       stereo input.
24166
24167       The filter accepts the following options:
24168
24169       cutoff
24170           Set the virtual bass cutoff frequency. Default value is 250 Hz.
24171           Allowed range is from 100 to 500 Hz.
24172
24173       strength
24174           Set the virtual bass strength. Allowed range is from 0.5 to 3.
24175           Default value is 3.
24176
24177   volume
24178       Adjust the input audio volume.
24179
24180       It accepts the following parameters:
24181
24182       volume
24183           Set audio volume expression.
24184
24185           Output values are clipped to the maximum value.
24186
24187           The output audio volume is given by the relation:
24188
24189                   <output_volume> = <volume> * <input_volume>
24190
24191           The default value for volume is "1.0".
24192
24193       precision
24194           This parameter represents the mathematical precision.
24195
24196           It determines which input sample formats will be allowed, which
24197           affects the precision of the volume scaling.
24198
24199           fixed
24200               8-bit fixed-point; this limits input sample format to U8, S16,
24201               and S32.
24202
24203           float
24204               32-bit floating-point; this limits input sample format to FLT.
24205               (default)
24206
24207           double
24208               64-bit floating-point; this limits input sample format to DBL.
24209
24210       replaygain
24211           Choose the behaviour on encountering ReplayGain side data in input
24212           frames.
24213
24214           drop
24215               Remove ReplayGain side data, ignoring its contents (the
24216               default).
24217
24218           ignore
24219               Ignore ReplayGain side data, but leave it in the frame.
24220
24221           track
24222               Prefer the track gain, if present.
24223
24224           album
24225               Prefer the album gain, if present.
24226
24227       replaygain_preamp
24228           Pre-amplification gain in dB to apply to the selected replaygain
24229           gain.
24230
24231           Default value for replaygain_preamp is 0.0.
24232
24233       replaygain_noclip
24234           Prevent clipping by limiting the gain applied.
24235
24236           Default value for replaygain_noclip is 1.
24237
24238       eval
24239           Set when the volume expression is evaluated.
24240
24241           It accepts the following values:
24242
24243           once
24244               only evaluate expression once during the filter initialization,
24245               or when the volume command is sent
24246
24247           frame
24248               evaluate expression for each incoming frame
24249
24250           Default value is once.
24251
24252       The volume expression can contain the following parameters.
24253
24254       n   frame number (starting at zero)
24255
24256       nb_channels
24257           number of channels
24258
24259       nb_consumed_samples
24260           number of samples consumed by the filter
24261
24262       nb_samples
24263           number of samples in the current frame
24264
24265       pos original frame position in the file
24266
24267       pts frame PTS
24268
24269       sample_rate
24270           sample rate
24271
24272       startpts
24273           PTS at start of stream
24274
24275       startt
24276           time at start of stream
24277
24278       t   frame time
24279
24280       tb  timestamp timebase
24281
24282       volume
24283           last set volume value
24284
24285       Note that when eval is set to once only the sample_rate and tb
24286       variables are available, all other variables will evaluate to NAN.
24287
24288       Commands
24289
24290       This filter supports the following commands:
24291
24292       volume
24293           Modify the volume expression.  The command accepts the same syntax
24294           of the corresponding option.
24295
24296           If the specified expression is not valid, it is kept at its current
24297           value.
24298
24299       Examples
24300
24301       •   Halve the input audio volume:
24302
24303                   volume=volume=0.5
24304                   volume=volume=1/2
24305                   volume=volume=-6.0206dB
24306
24307           In all the above example the named key for volume can be omitted,
24308           for example like in:
24309
24310                   volume=0.5
24311
24312       •   Increase input audio power by 6 decibels using fixed-point
24313           precision:
24314
24315                   volume=volume=6dB:precision=fixed
24316
24317       •   Fade volume after time 10 with an annihilation period of 5 seconds:
24318
24319                   volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
24320
24321   volumedetect
24322       Detect the volume of the input video.
24323
24324       The filter has no parameters. It supports only 16-bit signed integer
24325       samples, so the input will be converted when needed. Statistics about
24326       the volume will be printed in the log when the input stream end is
24327       reached.
24328
24329       In particular it will show the mean volume (root mean square), maximum
24330       volume (on a per-sample basis), and the beginning of a histogram of the
24331       registered volume values (from the maximum value to a cumulated 1/1000
24332       of the samples).
24333
24334       All volumes are in decibels relative to the maximum PCM value.
24335
24336       Examples
24337
24338       Here is an excerpt of the output:
24339
24340               [Parsed_volumedetect_0  0xa23120] mean_volume: -27 dB
24341               [Parsed_volumedetect_0  0xa23120] max_volume: -4 dB
24342               [Parsed_volumedetect_0  0xa23120] histogram_4db: 6
24343               [Parsed_volumedetect_0  0xa23120] histogram_5db: 62
24344               [Parsed_volumedetect_0  0xa23120] histogram_6db: 286
24345               [Parsed_volumedetect_0  0xa23120] histogram_7db: 1042
24346               [Parsed_volumedetect_0  0xa23120] histogram_8db: 2551
24347               [Parsed_volumedetect_0  0xa23120] histogram_9db: 4609
24348               [Parsed_volumedetect_0  0xa23120] histogram_10db: 8409
24349
24350       It means that:
24351
24352       •   The mean square energy is approximately -27 dB, or 10^-2.7.
24353
24354       •   The largest sample is at -4 dB, or more precisely between -4 dB and
24355           -5 dB.
24356
24357       •   There are 6 samples at -4 dB, 62 at -5 dB, 286 at -6 dB, etc.
24358
24359       In other words, raising the volume by +4 dB does not cause any
24360       clipping, raising it by +5 dB causes clipping for 6 samples, etc.
24361

AUDIO SOURCES

24363       Below is a description of the currently available audio sources.
24364
24365   abuffer
24366       Buffer audio frames, and make them available to the filter chain.
24367
24368       This source is mainly intended for a programmatic use, in particular
24369       through the interface defined in libavfilter/buffersrc.h.
24370
24371       It accepts the following parameters:
24372
24373       time_base
24374           The timebase which will be used for timestamps of submitted frames.
24375           It must be either a floating-point number or in
24376           numerator/denominator form.
24377
24378       sample_rate
24379           The sample rate of the incoming audio buffers.
24380
24381       sample_fmt
24382           The sample format of the incoming audio buffers.  Either a sample
24383           format name or its corresponding integer representation from the
24384           enum AVSampleFormat in libavutil/samplefmt.h
24385
24386       channel_layout
24387           The channel layout of the incoming audio buffers.  Either a channel
24388           layout name from channel_layout_map in libavutil/channel_layout.c
24389           or its corresponding integer representation from the AV_CH_LAYOUT_*
24390           macros in libavutil/channel_layout.h
24391
24392       channels
24393           The number of channels of the incoming audio buffers.  If both
24394           channels and channel_layout are specified, then they must be
24395           consistent.
24396
24397       Examples
24398
24399               abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
24400
24401       will instruct the source to accept planar 16bit signed stereo at
24402       44100Hz.  Since the sample format with name "s16p" corresponds to the
24403       number 6 and the "stereo" channel layout corresponds to the value 0x3,
24404       this is equivalent to:
24405
24406               abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
24407
24408   aevalsrc
24409       Generate an audio signal specified by an expression.
24410
24411       This source accepts in input one or more expressions (one for each
24412       channel), which are evaluated and used to generate a corresponding
24413       audio signal.
24414
24415       This source accepts the following options:
24416
24417       exprs
24418           Set the '|'-separated expressions list for each separate channel.
24419           In case the channel_layout option is not specified, the selected
24420           channel layout depends on the number of provided expressions.
24421           Otherwise the last specified expression is applied to the remaining
24422           output channels.
24423
24424       channel_layout, c
24425           Set the channel layout. The number of channels in the specified
24426           layout must be equal to the number of specified expressions.
24427
24428       duration, d
24429           Set the minimum duration of the sourced audio. See the Time
24430           duration section in the ffmpeg-utils(1) manual for the accepted
24431           syntax.  Note that the resulting duration may be greater than the
24432           specified duration, as the generated audio is always cut at the end
24433           of a complete frame.
24434
24435           If not specified, or the expressed duration is negative, the audio
24436           is supposed to be generated forever.
24437
24438       nb_samples, n
24439           Set the number of samples per channel per each output frame,
24440           default to 1024.
24441
24442       sample_rate, s
24443           Specify the sample rate, default to 44100.
24444
24445       Each expression in exprs can contain the following constants:
24446
24447       n   number of the evaluated sample, starting from 0
24448
24449       t   time of the evaluated sample expressed in seconds, starting from 0
24450
24451       s   sample rate
24452
24453       Examples
24454
24455       •   Generate silence:
24456
24457                   aevalsrc=0
24458
24459       •   Generate a sin signal with frequency of 440 Hz, set sample rate to
24460           8000 Hz:
24461
24462                   aevalsrc="sin(440*2*PI*t):s=8000"
24463
24464       •   Generate a two channels signal, specify the channel layout (Front
24465           Center + Back Center) explicitly:
24466
24467                   aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
24468
24469       •   Generate white noise:
24470
24471                   aevalsrc="-2+random(0)"
24472
24473       •   Generate an amplitude modulated signal:
24474
24475                   aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
24476
24477       •   Generate 2.5 Hz binaural beats on a 360 Hz carrier:
24478
24479                   aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
24480
24481   afirsrc
24482       Generate a FIR coefficients using frequency sampling method.
24483
24484       The resulting stream can be used with afir filter for filtering the
24485       audio signal.
24486
24487       The filter accepts the following options:
24488
24489       taps, t
24490           Set number of filter coefficents in output audio stream.  Default
24491           value is 1025.
24492
24493       frequency, f
24494           Set frequency points from where magnitude and phase are set.  This
24495           must be in non decreasing order, and first element must be 0, while
24496           last element must be 1. Elements are separated by white spaces.
24497
24498       magnitude, m
24499           Set magnitude value for every frequency point set by frequency.
24500           Number of values must be same as number of frequency points.
24501           Values are separated by white spaces.
24502
24503       phase, p
24504           Set phase value for every frequency point set by frequency.  Number
24505           of values must be same as number of frequency points.  Values are
24506           separated by white spaces.
24507
24508       sample_rate, r
24509           Set sample rate, default is 44100.
24510
24511       nb_samples, n
24512           Set number of samples per each frame. Default is 1024.
24513
24514       win_func, w
24515           Set window function. Default is blackman.
24516
24517   anullsrc
24518       The null audio source, return unprocessed audio frames. It is mainly
24519       useful as a template and to be employed in analysis / debugging tools,
24520       or as the source for filters which ignore the input data (for example
24521       the sox synth filter).
24522
24523       This source accepts the following options:
24524
24525       channel_layout, cl
24526           Specifies the channel layout, and can be either an integer or a
24527           string representing a channel layout. The default value of
24528           channel_layout is "stereo".
24529
24530           Check the channel_layout_map definition in
24531           libavutil/channel_layout.c for the mapping between strings and
24532           channel layout values.
24533
24534       sample_rate, r
24535           Specifies the sample rate, and defaults to 44100.
24536
24537       nb_samples, n
24538           Set the number of samples per requested frames.
24539
24540       duration, d
24541           Set the duration of the sourced audio. See the Time duration
24542           section in the ffmpeg-utils(1) manual for the accepted syntax.
24543
24544           If not specified, or the expressed duration is negative, the audio
24545           is supposed to be generated forever.
24546
24547       Examples
24548
24549       •   Set the sample rate to 48000 Hz and the channel layout to
24550           AV_CH_LAYOUT_MONO.
24551
24552                   anullsrc=r=48000:cl=4
24553
24554       •   Do the same operation with a more obvious syntax:
24555
24556                   anullsrc=r=48000:cl=mono
24557
24558       All the parameters need to be explicitly defined.
24559
24560   flite
24561       Synthesize a voice utterance using the libflite library.
24562
24563       To enable compilation of this filter you need to configure FFmpeg with
24564       "--enable-libflite".
24565
24566       Note that versions of the flite library prior to 2.0 are not thread-
24567       safe.
24568
24569       The filter accepts the following options:
24570
24571       list_voices
24572           If set to 1, list the names of the available voices and exit
24573           immediately. Default value is 0.
24574
24575       nb_samples, n
24576           Set the maximum number of samples per frame. Default value is 512.
24577
24578       textfile
24579           Set the filename containing the text to speak.
24580
24581       text
24582           Set the text to speak.
24583
24584       voice, v
24585           Set the voice to use for the speech synthesis. Default value is
24586           "kal". See also the list_voices option.
24587
24588       Examples
24589
24590       •   Read from file speech.txt, and synthesize the text using the
24591           standard flite voice:
24592
24593                   flite=textfile=speech.txt
24594
24595       •   Read the specified text selecting the "slt" voice:
24596
24597                   flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
24598
24599       •   Input text to ffmpeg:
24600
24601                   ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
24602
24603       •   Make ffplay speak the specified text, using "flite" and the "lavfi"
24604           device:
24605
24606                   ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
24607
24608       For more information about libflite, check:
24609       <http://www.festvox.org/flite/>
24610
24611   anoisesrc
24612       Generate a noise audio signal.
24613
24614       The filter accepts the following options:
24615
24616       sample_rate, r
24617           Specify the sample rate. Default value is 48000 Hz.
24618
24619       amplitude, a
24620           Specify the amplitude (0.0 - 1.0) of the generated audio stream.
24621           Default value is 1.0.
24622
24623       duration, d
24624           Specify the duration of the generated audio stream. Not specifying
24625           this option results in noise with an infinite length.
24626
24627       color, colour, c
24628           Specify the color of noise. Available noise colors are white, pink,
24629           brown, blue, violet and velvet. Default color is white.
24630
24631       seed, s
24632           Specify a value used to seed the PRNG.
24633
24634       nb_samples, n
24635           Set the number of samples per each output frame, default is 1024.
24636
24637       Examples
24638
24639       •   Generate 60 seconds of pink noise, with a 44.1 kHz sampling rate
24640           and an amplitude of 0.5:
24641
24642                   anoisesrc=d=60:c=pink:r=44100:a=0.5
24643
24644   hilbert
24645       Generate odd-tap Hilbert transform FIR coefficients.
24646
24647       The resulting stream can be used with afir filter for phase-shifting
24648       the signal by 90 degrees.
24649
24650       This is used in many matrix coding schemes and for analytic signal
24651       generation.  The process is often written as a multiplication by i (or
24652       j), the imaginary unit.
24653
24654       The filter accepts the following options:
24655
24656       sample_rate, s
24657           Set sample rate, default is 44100.
24658
24659       taps, t
24660           Set length of FIR filter, default is 22051.
24661
24662       nb_samples, n
24663           Set number of samples per each frame.
24664
24665       win_func, w
24666           Set window function to be used when generating FIR coefficients.
24667
24668   sinc
24669       Generate a sinc kaiser-windowed low-pass, high-pass, band-pass, or
24670       band-reject FIR coefficients.
24671
24672       The resulting stream can be used with afir filter for filtering the
24673       audio signal.
24674
24675       The filter accepts the following options:
24676
24677       sample_rate, r
24678           Set sample rate, default is 44100.
24679
24680       nb_samples, n
24681           Set number of samples per each frame. Default is 1024.
24682
24683       hp  Set high-pass frequency. Default is 0.
24684
24685       lp  Set low-pass frequency. Default is 0.  If high-pass frequency is
24686           lower than low-pass frequency and low-pass frequency is higher than
24687           0 then filter will create band-pass filter coefficients, otherwise
24688           band-reject filter coefficients.
24689
24690       phase
24691           Set filter phase response. Default is 50. Allowed range is from 0
24692           to 100.
24693
24694       beta
24695           Set Kaiser window beta.
24696
24697       att Set stop-band attenuation. Default is 120dB, allowed range is from
24698           40 to 180 dB.
24699
24700       round
24701           Enable rounding, by default is disabled.
24702
24703       hptaps
24704           Set number of taps for high-pass filter.
24705
24706       lptaps
24707           Set number of taps for low-pass filter.
24708
24709   sine
24710       Generate an audio signal made of a sine wave with amplitude 1/8.
24711
24712       The audio signal is bit-exact.
24713
24714       The filter accepts the following options:
24715
24716       frequency, f
24717           Set the carrier frequency. Default is 440 Hz.
24718
24719       beep_factor, b
24720           Enable a periodic beep every second with frequency beep_factor
24721           times the carrier frequency. Default is 0, meaning the beep is
24722           disabled.
24723
24724       sample_rate, r
24725           Specify the sample rate, default is 44100.
24726
24727       duration, d
24728           Specify the duration of the generated audio stream.
24729
24730       samples_per_frame
24731           Set the number of samples per output frame.
24732
24733           The expression can contain the following constants:
24734
24735           n   The (sequential) number of the output audio frame, starting
24736               from 0.
24737
24738           pts The PTS (Presentation TimeStamp) of the output audio frame,
24739               expressed in TB units.
24740
24741           t   The PTS of the output audio frame, expressed in seconds.
24742
24743           TB  The timebase of the output audio frames.
24744
24745           Default is 1024.
24746
24747       Examples
24748
24749       •   Generate a simple 440 Hz sine wave:
24750
24751                   sine
24752
24753       •   Generate a 220 Hz sine wave with a 880 Hz beep each second, for 5
24754           seconds:
24755
24756                   sine=220:4:d=5
24757                   sine=f=220:b=4:d=5
24758                   sine=frequency=220:beep_factor=4:duration=5
24759
24760       •   Generate a 1 kHz sine wave following "1602,1601,1602,1601,1602"
24761           NTSC pattern:
24762
24763                   sine=1000:samples_per_frame='st(0,mod(n,5)); 1602-not(not(eq(ld(0),1)+eq(ld(0),3)))'
24764

AUDIO SINKS

24766       Below is a description of the currently available audio sinks.
24767
24768   abuffersink
24769       Buffer audio frames, and make them available to the end of filter
24770       chain.
24771
24772       This sink is mainly intended for programmatic use, in particular
24773       through the interface defined in libavfilter/buffersink.h or the
24774       options system.
24775
24776       It accepts a pointer to an AVABufferSinkContext structure, which
24777       defines the incoming buffers' formats, to be passed as the opaque
24778       parameter to "avfilter_init_filter" for initialization.
24779
24780   anullsink
24781       Null audio sink; do absolutely nothing with the input audio. It is
24782       mainly useful as a template and for use in analysis / debugging tools.
24783

VIDEO FILTERS

24785       When you configure your FFmpeg build, you can disable any of the
24786       existing filters using "--disable-filters".  The configure output will
24787       show the video filters included in your build.
24788
24789       Below is a description of the currently available video filters.
24790
24791   addroi
24792       Mark a region of interest in a video frame.
24793
24794       The frame data is passed through unchanged, but metadata is attached to
24795       the frame indicating regions of interest which can affect the behaviour
24796       of later encoding.  Multiple regions can be marked by applying the
24797       filter multiple times.
24798
24799       x   Region distance in pixels from the left edge of the frame.
24800
24801       y   Region distance in pixels from the top edge of the frame.
24802
24803       w   Region width in pixels.
24804
24805       h   Region height in pixels.
24806
24807           The parameters x, y, w and h are expressions, and may contain the
24808           following variables:
24809
24810           iw  Width of the input frame.
24811
24812           ih  Height of the input frame.
24813
24814       qoffset
24815           Quantisation offset to apply within the region.
24816
24817           This must be a real value in the range -1 to +1.  A value of zero
24818           indicates no quality change.  A negative value asks for better
24819           quality (less quantisation), while a positive value asks for worse
24820           quality (greater quantisation).
24821
24822           The range is calibrated so that the extreme values indicate the
24823           largest possible offset - if the rest of the frame is encoded with
24824           the worst possible quality, an offset of -1 indicates that this
24825           region should be encoded with the best possible quality anyway.
24826           Intermediate values are then interpolated in some codec-dependent
24827           way.
24828
24829           For example, in 10-bit H.264 the quantisation parameter varies
24830           between -12 and 51.  A typical qoffset value of -1/10 therefore
24831           indicates that this region should be encoded with a QP around one-
24832           tenth of the full range better than the rest of the frame.  So, if
24833           most of the frame were to be encoded with a QP of around 30, this
24834           region would get a QP of around 24 (an offset of approximately
24835           -1/10 * (51 - -12) = -6.3).  An extreme value of -1 would indicate
24836           that this region should be encoded with the best possible quality
24837           regardless of the treatment of the rest of the frame - that is,
24838           should be encoded at a QP of -12.
24839
24840       clear
24841           If set to true, remove any existing regions of interest marked on
24842           the frame before adding the new one.
24843
24844       Examples
24845
24846       •   Mark the centre quarter of the frame as interesting.
24847
24848                   addroi=iw/4:ih/4:iw/2:ih/2:-1/10
24849
24850       •   Mark the 100-pixel-wide region on the left edge of the frame as
24851           very uninteresting (to be encoded at much lower quality than the
24852           rest of the frame).
24853
24854                   addroi=0:0:100:ih:+1/5
24855
24856   alphaextract
24857       Extract the alpha component from the input as a grayscale video. This
24858       is especially useful with the alphamerge filter.
24859
24860   alphamerge
24861       Add or replace the alpha component of the primary input with the
24862       grayscale value of a second input. This is intended for use with
24863       alphaextract to allow the transmission or storage of frame sequences
24864       that have alpha in a format that doesn't support an alpha channel.
24865
24866       For example, to reconstruct full frames from a normal YUV-encoded video
24867       and a separate video created with alphaextract, you might use:
24868
24869               movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
24870
24871   amplify
24872       Amplify differences between current pixel and pixels of adjacent frames
24873       in same pixel location.
24874
24875       This filter accepts the following options:
24876
24877       radius
24878           Set frame radius. Default is 2. Allowed range is from 1 to 63.  For
24879           example radius of 3 will instruct filter to calculate average of 7
24880           frames.
24881
24882       factor
24883           Set factor to amplify difference. Default is 2. Allowed range is
24884           from 0 to 65535.
24885
24886       threshold
24887           Set threshold for difference amplification. Any difference greater
24888           or equal to this value will not alter source pixel. Default is 10.
24889           Allowed range is from 0 to 65535.
24890
24891       tolerance
24892           Set tolerance for difference amplification. Any difference lower to
24893           this value will not alter source pixel. Default is 0.  Allowed
24894           range is from 0 to 65535.
24895
24896       low Set lower limit for changing source pixel. Default is 65535.
24897           Allowed range is from 0 to 65535.  This option controls maximum
24898           possible value that will decrease source pixel value.
24899
24900       high
24901           Set high limit for changing source pixel. Default is 65535. Allowed
24902           range is from 0 to 65535.  This option controls maximum possible
24903           value that will increase source pixel value.
24904
24905       planes
24906           Set which planes to filter. Default is all. Allowed range is from 0
24907           to 15.
24908
24909       Commands
24910
24911       This filter supports the following commands that corresponds to option
24912       of same name:
24913
24914       factor
24915       threshold
24916       tolerance
24917       low
24918       high
24919       planes
24920
24921   ass
24922       Same as the subtitles filter, except that it doesn't require libavcodec
24923       and libavformat to work. On the other hand, it is limited to ASS
24924       (Advanced Substation Alpha) subtitles files.
24925
24926       This filter accepts the following option in addition to the common
24927       options from the subtitles filter:
24928
24929       shaping
24930           Set the shaping engine
24931
24932           Available values are:
24933
24934           auto
24935               The default libass shaping engine, which is the best available.
24936
24937           simple
24938               Fast, font-agnostic shaper that can do only substitutions
24939
24940           complex
24941               Slower shaper using OpenType for substitutions and positioning
24942
24943           The default is "auto".
24944
24945   atadenoise
24946       Apply an Adaptive Temporal Averaging Denoiser to the video input.
24947
24948       The filter accepts the following options:
24949
24950       0a  Set threshold A for 1st plane. Default is 0.02.  Valid range is 0
24951           to 0.3.
24952
24953       0b  Set threshold B for 1st plane. Default is 0.04.  Valid range is 0
24954           to 5.
24955
24956       1a  Set threshold A for 2nd plane. Default is 0.02.  Valid range is 0
24957           to 0.3.
24958
24959       1b  Set threshold B for 2nd plane. Default is 0.04.  Valid range is 0
24960           to 5.
24961
24962       2a  Set threshold A for 3rd plane. Default is 0.02.  Valid range is 0
24963           to 0.3.
24964
24965       2b  Set threshold B for 3rd plane. Default is 0.04.  Valid range is 0
24966           to 5.
24967
24968           Threshold A is designed to react on abrupt changes in the input
24969           signal and threshold B is designed to react on continuous changes
24970           in the input signal.
24971
24972       s   Set number of frames filter will use for averaging. Default is 9.
24973           Must be odd number in range [5, 129].
24974
24975       p   Set what planes of frame filter will use for averaging. Default is
24976           all.
24977
24978       a   Set what variant of algorithm filter will use for averaging.
24979           Default is "p" parallel.  Alternatively can be set to "s" serial.
24980
24981           Parallel can be faster then serial, while other way around is never
24982           true.  Parallel will abort early on first change being greater then
24983           thresholds, while serial will continue processing other side of
24984           frames if they are equal or below thresholds.
24985
24986       0s
24987       1s
24988       2s  Set sigma for 1st plane, 2nd plane or 3rd plane. Default is 32767.
24989           Valid range is from 0 to 32767.  This options controls weight for
24990           each pixel in radius defined by size.  Default value means every
24991           pixel have same weight.  Setting this option to 0 effectively
24992           disables filtering.
24993
24994       Commands
24995
24996       This filter supports same commands as options except option "s".  The
24997       command accepts the same syntax of the corresponding option.
24998
24999   avgblur
25000       Apply average blur filter.
25001
25002       The filter accepts the following options:
25003
25004       sizeX
25005           Set horizontal radius size.
25006
25007       planes
25008           Set which planes to filter. By default all planes are filtered.
25009
25010       sizeY
25011           Set vertical radius size, if zero it will be same as "sizeX".
25012           Default is 0.
25013
25014       Commands
25015
25016       This filter supports same commands as options.  The command accepts the
25017       same syntax of the corresponding option.
25018
25019       If the specified expression is not valid, it is kept at its current
25020       value.
25021
25022   bbox
25023       Compute the bounding box for the non-black pixels in the input frame
25024       luminance plane.
25025
25026       This filter computes the bounding box containing all the pixels with a
25027       luminance value greater than the minimum allowed value.  The parameters
25028       describing the bounding box are printed on the filter log.
25029
25030       The filter accepts the following option:
25031
25032       min_val
25033           Set the minimal luminance value. Default is 16.
25034
25035       Commands
25036
25037       This filter supports the all above options as commands.
25038
25039   bilateral
25040       Apply bilateral filter, spatial smoothing while preserving edges.
25041
25042       The filter accepts the following options:
25043
25044       sigmaS
25045           Set sigma of gaussian function to calculate spatial weight.
25046           Allowed range is 0 to 512. Default is 0.1.
25047
25048       sigmaR
25049           Set sigma of gaussian function to calculate range weight.  Allowed
25050           range is 0 to 1. Default is 0.1.
25051
25052       planes
25053           Set planes to filter. Default is first only.
25054
25055       Commands
25056
25057       This filter supports the all above options as commands.
25058
25059   bitplanenoise
25060       Show and measure bit plane noise.
25061
25062       The filter accepts the following options:
25063
25064       bitplane
25065           Set which plane to analyze. Default is 1.
25066
25067       filter
25068           Filter out noisy pixels from "bitplane" set above.  Default is
25069           disabled.
25070
25071   blackdetect
25072       Detect video intervals that are (almost) completely black. Can be
25073       useful to detect chapter transitions, commercials, or invalid
25074       recordings.
25075
25076       The filter outputs its detection analysis to both the log as well as
25077       frame metadata. If a black segment of at least the specified minimum
25078       duration is found, a line with the start and end timestamps as well as
25079       duration is printed to the log with level "info". In addition, a log
25080       line with level "debug" is printed per frame showing the black amount
25081       detected for that frame.
25082
25083       The filter also attaches metadata to the first frame of a black segment
25084       with key "lavfi.black_start" and to the first frame after the black
25085       segment ends with key "lavfi.black_end". The value is the frame's
25086       timestamp. This metadata is added regardless of the minimum duration
25087       specified.
25088
25089       The filter accepts the following options:
25090
25091       black_min_duration, d
25092           Set the minimum detected black duration expressed in seconds. It
25093           must be a non-negative floating point number.
25094
25095           Default value is 2.0.
25096
25097       picture_black_ratio_th, pic_th
25098           Set the threshold for considering a picture "black".  Express the
25099           minimum value for the ratio:
25100
25101                   <nb_black_pixels> / <nb_pixels>
25102
25103           for which a picture is considered black.  Default value is 0.98.
25104
25105       pixel_black_th, pix_th
25106           Set the threshold for considering a pixel "black".
25107
25108           The threshold expresses the maximum pixel luminance value for which
25109           a pixel is considered "black". The provided value is scaled
25110           according to the following equation:
25111
25112                   <absolute_threshold> = <luminance_minimum_value> + <pixel_black_th> * <luminance_range_size>
25113
25114           luminance_range_size and luminance_minimum_value depend on the
25115           input video format, the range is [0-255] for YUV full-range formats
25116           and [16-235] for YUV non full-range formats.
25117
25118           Default value is 0.10.
25119
25120       The following example sets the maximum pixel threshold to the minimum
25121       value, and detects only black intervals of 2 or more seconds:
25122
25123               blackdetect=d=2:pix_th=0.00
25124
25125   blackframe
25126       Detect frames that are (almost) completely black. Can be useful to
25127       detect chapter transitions or commercials. Output lines consist of the
25128       frame number of the detected frame, the percentage of blackness, the
25129       position in the file if known or -1 and the timestamp in seconds.
25130
25131       In order to display the output lines, you need to set the loglevel at
25132       least to the AV_LOG_INFO value.
25133
25134       This filter exports frame metadata "lavfi.blackframe.pblack".  The
25135       value represents the percentage of pixels in the picture that are below
25136       the threshold value.
25137
25138       It accepts the following parameters:
25139
25140       amount
25141           The percentage of the pixels that have to be below the threshold;
25142           it defaults to 98.
25143
25144       threshold, thresh
25145           The threshold below which a pixel value is considered black; it
25146           defaults to 32.
25147
25148   blend
25149       Blend two video frames into each other.
25150
25151       The "blend" filter takes two input streams and outputs one stream, the
25152       first input is the "top" layer and second input is "bottom" layer.  By
25153       default, the output terminates when the longest input terminates.
25154
25155       The "tblend" (time blend) filter takes two consecutive frames from one
25156       single stream, and outputs the result obtained by blending the new
25157       frame on top of the old frame.
25158
25159       A description of the accepted options follows.
25160
25161       c0_mode
25162       c1_mode
25163       c2_mode
25164       c3_mode
25165       all_mode
25166           Set blend mode for specific pixel component or all pixel components
25167           in case of all_mode. Default value is "normal".
25168
25169           Available values for component modes are:
25170
25171           addition
25172           and
25173           average
25174           bleach
25175           burn
25176           darken
25177           difference
25178           divide
25179           dodge
25180           exclusion
25181           extremity
25182           freeze
25183           geometric
25184           glow
25185           grainextract
25186           grainmerge
25187           hardlight
25188           hardmix
25189           hardoverlay
25190           harmonic
25191           heat
25192           interpolate
25193           lighten
25194           linearlight
25195           multiply
25196           multiply128
25197           negation
25198           normal
25199           or
25200           overlay
25201           phoenix
25202           pinlight
25203           reflect
25204           screen
25205           softdifference
25206           softlight
25207           stain
25208           subtract
25209           vividlight
25210           xor
25211       c0_opacity
25212       c1_opacity
25213       c2_opacity
25214       c3_opacity
25215       all_opacity
25216           Set blend opacity for specific pixel component or all pixel
25217           components in case of all_opacity. Only used in combination with
25218           pixel component blend modes.
25219
25220       c0_expr
25221       c1_expr
25222       c2_expr
25223       c3_expr
25224       all_expr
25225           Set blend expression for specific pixel component or all pixel
25226           components in case of all_expr. Note that related mode options will
25227           be ignored if those are set.
25228
25229           The expressions can use the following variables:
25230
25231           N   The sequential number of the filtered frame, starting from 0.
25232
25233           X
25234           Y   the coordinates of the current sample
25235
25236           W
25237           H   the width and height of currently filtered plane
25238
25239           SW
25240           SH  Width and height scale for the plane being filtered. It is the
25241               ratio between the dimensions of the current plane to the luma
25242               plane, e.g. for a "yuv420p" frame, the values are "1,1" for the
25243               luma plane and "0.5,0.5" for the chroma planes.
25244
25245           T   Time of the current frame, expressed in seconds.
25246
25247           TOP, A
25248               Value of pixel component at current location for first video
25249               frame (top layer).
25250
25251           BOTTOM, B
25252               Value of pixel component at current location for second video
25253               frame (bottom layer).
25254
25255       The "blend" filter also supports the framesync options.
25256
25257       Examples
25258
25259       •   Apply transition from bottom layer to top layer in first 10
25260           seconds:
25261
25262                   blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
25263
25264       •   Apply linear horizontal transition from top layer to bottom layer:
25265
25266                   blend=all_expr='A*(X/W)+B*(1-X/W)'
25267
25268       •   Apply 1x1 checkerboard effect:
25269
25270                   blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
25271
25272       •   Apply uncover left effect:
25273
25274                   blend=all_expr='if(gte(N*SW+X,W),A,B)'
25275
25276       •   Apply uncover down effect:
25277
25278                   blend=all_expr='if(gte(Y-N*SH,0),A,B)'
25279
25280       •   Apply uncover up-left effect:
25281
25282                   blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
25283
25284       •   Split diagonally video and shows top and bottom layer on each side:
25285
25286                   blend=all_expr='if(gt(X,Y*(W/H)),A,B)'
25287
25288       •   Display differences between the current and the previous frame:
25289
25290                   tblend=all_mode=grainextract
25291
25292       Commands
25293
25294       This filter supports same commands as options.
25295
25296   blockdetect
25297       Determines blockiness of frames without altering the input frames.
25298
25299       Based on Remco Muijs and Ihor Kirenko: "A no-reference blocking
25300       artifact measure for adaptive video processing." 2005 13th European
25301       signal processing conference.
25302
25303       The filter accepts the following options:
25304
25305       period_min
25306       period_max
25307           Set minimum and maximum values for determining pixel grids
25308           (periods).  Default values are [3,24].
25309
25310       planes
25311           Set planes to filter. Default is first only.
25312
25313       Examples
25314
25315       •   Determine blockiness for the first plane and search for periods
25316           within [8,32]:
25317
25318                   blockdetect=period_min=8:period_max=32:planes=1
25319
25320   blurdetect
25321       Determines blurriness of frames without altering the input frames.
25322
25323       Based on Marziliano, Pina, et al. "A no-reference perceptual blur
25324       metric."  Allows for a block-based abbreviation.
25325
25326       The filter accepts the following options:
25327
25328       low
25329       high
25330           Set low and high threshold values used by the Canny thresholding
25331           algorithm.
25332
25333           The high threshold selects the "strong" edge pixels, which are then
25334           connected through 8-connectivity with the "weak" edge pixels
25335           selected by the low threshold.
25336
25337           low and high threshold values must be chosen in the range [0,1],
25338           and low should be lesser or equal to high.
25339
25340           Default value for low is "20/255", and default value for high is
25341           "50/255".
25342
25343       radius
25344           Define the radius to search around an edge pixel for local maxima.
25345
25346       block_pct
25347           Determine blurriness only for the most significant blocks, given in
25348           percentage.
25349
25350       block_width
25351           Determine blurriness for blocks of width block_width. If set to any
25352           value smaller 1, no blocks are used and the whole image is
25353           processed as one no matter of block_height.
25354
25355       block_height
25356           Determine blurriness for blocks of height block_height. If set to
25357           any value smaller 1, no blocks are used and the whole image is
25358           processed as one no matter of block_width.
25359
25360       planes
25361           Set planes to filter. Default is first only.
25362
25363       Examples
25364
25365       •   Determine blur for 80% of most significant 32x32 blocks:
25366
25367                   blurdetect=block_width=32:block_height=32:block_pct=80
25368
25369   bm3d
25370       Denoise frames using Block-Matching 3D algorithm.
25371
25372       The filter accepts the following options.
25373
25374       sigma
25375           Set denoising strength. Default value is 1.  Allowed range is from
25376           0 to 999.9.  The denoising algorithm is very sensitive to sigma, so
25377           adjust it according to the source.
25378
25379       block
25380           Set local patch size. This sets dimensions in 2D.
25381
25382       bstep
25383           Set sliding step for processing blocks. Default value is 4.
25384           Allowed range is from 1 to 64.  Smaller values allows processing
25385           more reference blocks and is slower.
25386
25387       group
25388           Set maximal number of similar blocks for 3rd dimension. Default
25389           value is 1.  When set to 1, no block matching is done. Larger
25390           values allows more blocks in single group.  Allowed range is from 1
25391           to 256.
25392
25393       range
25394           Set radius for search block matching. Default is 9.  Allowed range
25395           is from 1 to INT32_MAX.
25396
25397       mstep
25398           Set step between two search locations for block matching. Default
25399           is 1.  Allowed range is from 1 to 64. Smaller is slower.
25400
25401       thmse
25402           Set threshold of mean square error for block matching. Valid range
25403           is 0 to INT32_MAX.
25404
25405       hdthr
25406           Set thresholding parameter for hard thresholding in 3D transformed
25407           domain.  Larger values results in stronger hard-thresholding
25408           filtering in frequency domain.
25409
25410       estim
25411           Set filtering estimation mode. Can be "basic" or "final".  Default
25412           is "basic".
25413
25414       ref If enabled, filter will use 2nd stream for block matching.  Default
25415           is disabled for "basic" value of estim option, and always enabled
25416           if value of estim is "final".
25417
25418       planes
25419           Set planes to filter. Default is all available except alpha.
25420
25421       Examples
25422
25423       •   Basic filtering with bm3d:
25424
25425                   bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic
25426
25427       •   Same as above, but filtering only luma:
25428
25429                   bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic:planes=1
25430
25431       •   Same as above, but with both estimation modes:
25432
25433                   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
25434
25435       •   Same as above, but prefilter with nlmeans filter instead:
25436
25437                   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
25438
25439   boxblur
25440       Apply a boxblur algorithm to the input video.
25441
25442       It accepts the following parameters:
25443
25444       luma_radius, lr
25445       luma_power, lp
25446       chroma_radius, cr
25447       chroma_power, cp
25448       alpha_radius, ar
25449       alpha_power, ap
25450
25451       A description of the accepted options follows.
25452
25453       luma_radius, lr
25454       chroma_radius, cr
25455       alpha_radius, ar
25456           Set an expression for the box radius in pixels used for blurring
25457           the corresponding input plane.
25458
25459           The radius value must be a non-negative number, and must not be
25460           greater than the value of the expression "min(w,h)/2" for the luma
25461           and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
25462
25463           Default value for luma_radius is "2". If not specified,
25464           chroma_radius and alpha_radius default to the corresponding value
25465           set for luma_radius.
25466
25467           The expressions can contain the following constants:
25468
25469           w
25470           h   The input width and height in pixels.
25471
25472           cw
25473           ch  The input chroma image width and height in pixels.
25474
25475           hsub
25476           vsub
25477               The horizontal and vertical chroma subsample values. For
25478               example, for the pixel format "yuv422p", hsub is 2 and vsub is
25479               1.
25480
25481       luma_power, lp
25482       chroma_power, cp
25483       alpha_power, ap
25484           Specify how many times the boxblur filter is applied to the
25485           corresponding plane.
25486
25487           Default value for luma_power is 2. If not specified, chroma_power
25488           and alpha_power default to the corresponding value set for
25489           luma_power.
25490
25491           A value of 0 will disable the effect.
25492
25493       Examples
25494
25495       •   Apply a boxblur filter with the luma, chroma, and alpha radii set
25496           to 2:
25497
25498                   boxblur=luma_radius=2:luma_power=1
25499                   boxblur=2:1
25500
25501       •   Set the luma radius to 2, and alpha and chroma radius to 0:
25502
25503                   boxblur=2:1:cr=0:ar=0
25504
25505       •   Set the luma and chroma radii to a fraction of the video dimension:
25506
25507                   boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
25508
25509   bwdif
25510       Deinterlace the input video ("bwdif" stands for "Bob Weaver
25511       Deinterlacing Filter").
25512
25513       Motion adaptive deinterlacing based on yadif with the use of w3fdif and
25514       cubic interpolation algorithms.  It accepts the following parameters:
25515
25516       mode
25517           The interlacing mode to adopt. It accepts one of the following
25518           values:
25519
25520           0, send_frame
25521               Output one frame for each frame.
25522
25523           1, send_field
25524               Output one frame for each field.
25525
25526           The default value is "send_field".
25527
25528       parity
25529           The picture field parity assumed for the input interlaced video. It
25530           accepts one of the following values:
25531
25532           0, tff
25533               Assume the top field is first.
25534
25535           1, bff
25536               Assume the bottom field is first.
25537
25538           -1, auto
25539               Enable automatic detection of field parity.
25540
25541           The default value is "auto".  If the interlacing is unknown or the
25542           decoder does not export this information, top field first will be
25543           assumed.
25544
25545       deint
25546           Specify which frames to deinterlace. Accepts one of the following
25547           values:
25548
25549           0, all
25550               Deinterlace all frames.
25551
25552           1, interlaced
25553               Only deinterlace frames marked as interlaced.
25554
25555           The default value is "all".
25556
25557   cas
25558       Apply Contrast Adaptive Sharpen filter to video stream.
25559
25560       The filter accepts the following options:
25561
25562       strength
25563           Set the sharpening strength. Default value is 0.
25564
25565       planes
25566           Set planes to filter. Default value is to filter all planes except
25567           alpha plane.
25568
25569       Commands
25570
25571       This filter supports same commands as options.
25572
25573   chromahold
25574       Remove all color information for all colors except for certain one.
25575
25576       The filter accepts the following options:
25577
25578       color
25579           The color which will not be replaced with neutral chroma.
25580
25581       similarity
25582           Similarity percentage with the above color.  0.01 matches only the
25583           exact key color, while 1.0 matches everything.
25584
25585       blend
25586           Blend percentage.  0.0 makes pixels either fully gray, or not gray
25587           at all.  Higher values result in more preserved color.
25588
25589       yuv Signals that the color passed is already in YUV instead of RGB.
25590
25591           Literal colors like "green" or "red" don't make sense with this
25592           enabled anymore.  This can be used to pass exact YUV values as
25593           hexadecimal numbers.
25594
25595       Commands
25596
25597       This filter supports same commands as options.  The command accepts the
25598       same syntax of the corresponding option.
25599
25600       If the specified expression is not valid, it is kept at its current
25601       value.
25602
25603   chromakey
25604       YUV colorspace color/chroma keying.
25605
25606       The filter accepts the following options:
25607
25608       color
25609           The color which will be replaced with transparency.
25610
25611       similarity
25612           Similarity percentage with the key color.
25613
25614           0.01 matches only the exact key color, while 1.0 matches
25615           everything.
25616
25617       blend
25618           Blend percentage.
25619
25620           0.0 makes pixels either fully transparent, or not transparent at
25621           all.
25622
25623           Higher values result in semi-transparent pixels, with a higher
25624           transparency the more similar the pixels color is to the key color.
25625
25626       yuv Signals that the color passed is already in YUV instead of RGB.
25627
25628           Literal colors like "green" or "red" don't make sense with this
25629           enabled anymore.  This can be used to pass exact YUV values as
25630           hexadecimal numbers.
25631
25632       Commands
25633
25634       This filter supports same commands as options.  The command accepts the
25635       same syntax of the corresponding option.
25636
25637       If the specified expression is not valid, it is kept at its current
25638       value.
25639
25640       Examples
25641
25642       •   Make every green pixel in the input image transparent:
25643
25644                   ffmpeg -i input.png -vf chromakey=green out.png
25645
25646       •   Overlay a greenscreen-video on top of a static black background.
25647
25648                   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
25649
25650   chromakey_cuda
25651       CUDA accelerated YUV colorspace color/chroma keying.
25652
25653       This filter works like normal chromakey filter but operates on CUDA
25654       frames.  for more details and parameters see chromakey.
25655
25656       Examples
25657
25658       •   Make all the green pixels in the input video transparent and use it
25659           as an overlay for another video:
25660
25661                   ./ffmpeg \
25662                       -hwaccel cuda -hwaccel_output_format cuda -i input_green.mp4  \
25663                       -hwaccel cuda -hwaccel_output_format cuda -i base_video.mp4 \
25664                       -init_hw_device cuda \
25665                       -filter_complex \
25666                       " \
25667                           [0:v]chromakey_cuda=0x25302D:0.1:0.12:1[overlay_video]; \
25668                           [1:v]scale_cuda=format=yuv420p[base]; \
25669                           [base][overlay_video]overlay_cuda" \
25670                       -an -sn -c:v h264_nvenc -cq 20 output.mp4
25671
25672       •   Process two software sources, explicitly uploading the frames:
25673
25674                   ./ffmpeg -init_hw_device cuda=cuda -filter_hw_device cuda \
25675                       -f lavfi -i color=size=800x600:color=white,format=yuv420p \
25676                       -f lavfi -i yuvtestsrc=size=200x200,format=yuv420p \
25677                       -filter_complex \
25678                       " \
25679                           [0]hwupload[under]; \
25680                           [1]hwupload,chromakey_cuda=green:0.1:0.12[over]; \
25681                           [under][over]overlay_cuda" \
25682                       -c:v hevc_nvenc -cq 18 -preset slow output.mp4
25683
25684   chromanr
25685       Reduce chrominance noise.
25686
25687       The filter accepts the following options:
25688
25689       thres
25690           Set threshold for averaging chrominance values.  Sum of absolute
25691           difference of Y, U and V pixel components of current pixel and
25692           neighbour pixels lower than this threshold will be used in
25693           averaging. Luma component is left unchanged and is copied to
25694           output.  Default value is 30. Allowed range is from 1 to 200.
25695
25696       sizew
25697           Set horizontal radius of rectangle used for averaging.  Allowed
25698           range is from 1 to 100. Default value is 5.
25699
25700       sizeh
25701           Set vertical radius of rectangle used for averaging.  Allowed range
25702           is from 1 to 100. Default value is 5.
25703
25704       stepw
25705           Set horizontal step when averaging. Default value is 1.  Allowed
25706           range is from 1 to 50.  Mostly useful to speed-up filtering.
25707
25708       steph
25709           Set vertical step when averaging. Default value is 1.  Allowed
25710           range is from 1 to 50.  Mostly useful to speed-up filtering.
25711
25712       threy
25713           Set Y threshold for averaging chrominance values.  Set finer
25714           control for max allowed difference between Y components of current
25715           pixel and neigbour pixels.  Default value is 200. Allowed range is
25716           from 1 to 200.
25717
25718       threu
25719           Set U threshold for averaging chrominance values.  Set finer
25720           control for max allowed difference between U components of current
25721           pixel and neigbour pixels.  Default value is 200. Allowed range is
25722           from 1 to 200.
25723
25724       threv
25725           Set V threshold for averaging chrominance values.  Set finer
25726           control for max allowed difference between V components of current
25727           pixel and neigbour pixels.  Default value is 200. Allowed range is
25728           from 1 to 200.
25729
25730       distance
25731           Set distance type used in calculations.
25732
25733           manhattan
25734               Absolute difference.
25735
25736           euclidean
25737               Difference squared.
25738
25739           Default distance type is manhattan.
25740
25741       Commands
25742
25743       This filter supports same commands as options.  The command accepts the
25744       same syntax of the corresponding option.
25745
25746   chromashift
25747       Shift chroma pixels horizontally and/or vertically.
25748
25749       The filter accepts the following options:
25750
25751       cbh Set amount to shift chroma-blue horizontally.
25752
25753       cbv Set amount to shift chroma-blue vertically.
25754
25755       crh Set amount to shift chroma-red horizontally.
25756
25757       crv Set amount to shift chroma-red vertically.
25758
25759       edge
25760           Set edge mode, can be smear, default, or warp.
25761
25762       Commands
25763
25764       This filter supports the all above options as commands.
25765
25766   ciescope
25767       Display CIE color diagram with pixels overlaid onto it.
25768
25769       The filter accepts the following options:
25770
25771       system
25772           Set color system.
25773
25774           ntsc, 470m
25775           ebu, 470bg
25776           smpte
25777           240m
25778           apple
25779           widergb
25780           cie1931
25781           rec709, hdtv
25782           uhdtv, rec2020
25783           dcip3
25784       cie Set CIE system.
25785
25786           xyy
25787           ucs
25788           luv
25789       gamuts
25790           Set what gamuts to draw.
25791
25792           See "system" option for available values.
25793
25794       size, s
25795           Set ciescope size, by default set to 512.
25796
25797       intensity, i
25798           Set intensity used to map input pixel values to CIE diagram.
25799
25800       contrast
25801           Set contrast used to draw tongue colors that are out of active
25802           color system gamut.
25803
25804       corrgamma
25805           Correct gamma displayed on scope, by default enabled.
25806
25807       showwhite
25808           Show white point on CIE diagram, by default disabled.
25809
25810       gamma
25811           Set input gamma. Used only with XYZ input color space.
25812
25813       fill
25814           Fill with CIE colors. By default is enabled.
25815
25816   codecview
25817       Visualize information exported by some codecs.
25818
25819       Some codecs can export information through frames using side-data or
25820       other means. For example, some MPEG based codecs export motion vectors
25821       through the export_mvs flag in the codec flags2 option.
25822
25823       The filter accepts the following option:
25824
25825       block
25826           Display block partition structure using the luma plane.
25827
25828       mv  Set motion vectors to visualize.
25829
25830           Available flags for mv are:
25831
25832           pf  forward predicted MVs of P-frames
25833
25834           bf  forward predicted MVs of B-frames
25835
25836           bb  backward predicted MVs of B-frames
25837
25838       qp  Display quantization parameters using the chroma planes.
25839
25840       mv_type, mvt
25841           Set motion vectors type to visualize. Includes MVs from all frames
25842           unless specified by frame_type option.
25843
25844           Available flags for mv_type are:
25845
25846           fp  forward predicted MVs
25847
25848           bp  backward predicted MVs
25849
25850       frame_type, ft
25851           Set frame type to visualize motion vectors of.
25852
25853           Available flags for frame_type are:
25854
25855           if  intra-coded frames (I-frames)
25856
25857           pf  predicted frames (P-frames)
25858
25859           bf  bi-directionally predicted frames (B-frames)
25860
25861       Examples
25862
25863       •   Visualize forward predicted MVs of all frames using ffplay:
25864
25865                   ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp
25866
25867       •   Visualize multi-directionals MVs of P and B-Frames using ffplay:
25868
25869                   ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
25870
25871   colorbalance
25872       Modify intensity of primary colors (red, green and blue) of input
25873       frames.
25874
25875       The filter allows an input frame to be adjusted in the shadows,
25876       midtones or highlights regions for the red-cyan, green-magenta or blue-
25877       yellow balance.
25878
25879       A positive adjustment value shifts the balance towards the primary
25880       color, a negative value towards the complementary color.
25881
25882       The filter accepts the following options:
25883
25884       rs
25885       gs
25886       bs  Adjust red, green and blue shadows (darkest pixels).
25887
25888       rm
25889       gm
25890       bm  Adjust red, green and blue midtones (medium pixels).
25891
25892       rh
25893       gh
25894       bh  Adjust red, green and blue highlights (brightest pixels).
25895
25896           Allowed ranges for options are "[-1.0, 1.0]". Defaults are 0.
25897
25898       pl  Preserve lightness when changing color balance. Default is
25899           disabled.
25900
25901       Examples
25902
25903       •   Add red color cast to shadows:
25904
25905                   colorbalance=rs=.3
25906
25907       Commands
25908
25909       This filter supports the all above options as commands.
25910
25911   colorcontrast
25912       Adjust color contrast between RGB components.
25913
25914       The filter accepts the following options:
25915
25916       rc  Set the red-cyan contrast. Defaults is 0.0. Allowed range is from
25917           -1.0 to 1.0.
25918
25919       gm  Set the green-magenta contrast. Defaults is 0.0. Allowed range is
25920           from -1.0 to 1.0.
25921
25922       by  Set the blue-yellow contrast. Defaults is 0.0. Allowed range is
25923           from -1.0 to 1.0.
25924
25925       rcw
25926       gmw
25927       byw Set the weight of each "rc", "gm", "by" option value. Default value
25928           is 0.0.  Allowed range is from 0.0 to 1.0. If all weights are 0.0
25929           filtering is disabled.
25930
25931       pl  Set the amount of preserving lightness. Default value is 0.0.
25932           Allowed range is from 0.0 to 1.0.
25933
25934       Commands
25935
25936       This filter supports the all above options as commands.
25937
25938   colorcorrect
25939       Adjust color white balance selectively for blacks and whites.  This
25940       filter operates in YUV colorspace.
25941
25942       The filter accepts the following options:
25943
25944       rl  Set the red shadow spot. Allowed range is from -1.0 to 1.0.
25945           Default value is 0.
25946
25947       bl  Set the blue shadow spot. Allowed range is from -1.0 to 1.0.
25948           Default value is 0.
25949
25950       rh  Set the red highlight spot. Allowed range is from -1.0 to 1.0.
25951           Default value is 0.
25952
25953       bh  Set the red highlight spot. Allowed range is from -1.0 to 1.0.
25954           Default value is 0.
25955
25956       saturation
25957           Set the amount of saturation. Allowed range is from -3.0 to 3.0.
25958           Default value is 1.
25959
25960       analyze
25961           If set to anything other than "manual" it will analyze every frame
25962           and use derived parameters for filtering output frame.
25963
25964           Possible values are:
25965
25966           manual
25967           average
25968           minmax
25969           median
25970
25971           Default value is "manual".
25972
25973       Commands
25974
25975       This filter supports the all above options as commands.
25976
25977   colorchannelmixer
25978       Adjust video input frames by re-mixing color channels.
25979
25980       This filter modifies a color channel by adding the values associated to
25981       the other channels of the same pixels. For example if the value to
25982       modify is red, the output value will be:
25983
25984               <red>=<red>*<rr> + <blue>*<rb> + <green>*<rg> + <alpha>*<ra>
25985
25986       The filter accepts the following options:
25987
25988       rr
25989       rg
25990       rb
25991       ra  Adjust contribution of input red, green, blue and alpha channels
25992           for output red channel.  Default is 1 for rr, and 0 for rg, rb and
25993           ra.
25994
25995       gr
25996       gg
25997       gb
25998       ga  Adjust contribution of input red, green, blue and alpha channels
25999           for output green channel.  Default is 1 for gg, and 0 for gr, gb
26000           and ga.
26001
26002       br
26003       bg
26004       bb
26005       ba  Adjust contribution of input red, green, blue and alpha channels
26006           for output blue channel.  Default is 1 for bb, and 0 for br, bg and
26007           ba.
26008
26009       ar
26010       ag
26011       ab
26012       aa  Adjust contribution of input red, green, blue and alpha channels
26013           for output alpha channel.  Default is 1 for aa, and 0 for ar, ag
26014           and ab.
26015
26016           Allowed ranges for options are "[-2.0, 2.0]".
26017
26018       pc  Set preserve color mode. The accepted values are:
26019
26020           none
26021               Disable color preserving, this is default.
26022
26023           lum Preserve luminance.
26024
26025           max Preserve max value of RGB triplet.
26026
26027           avg Preserve average value of RGB triplet.
26028
26029           sum Preserve sum value of RGB triplet.
26030
26031           nrm Preserve normalized value of RGB triplet.
26032
26033           pwr Preserve power value of RGB triplet.
26034
26035       pa  Set the preserve color amount when changing colors. Allowed range
26036           is from "[0.0, 1.0]".  Default is 0.0, thus disabled.
26037
26038       Examples
26039
26040       •   Convert source to grayscale:
26041
26042                   colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
26043
26044       •   Simulate sepia tones:
26045
26046                   colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
26047
26048       Commands
26049
26050       This filter supports the all above options as commands.
26051
26052   colorize
26053       Overlay a solid color on the video stream.
26054
26055       The filter accepts the following options:
26056
26057       hue Set the color hue. Allowed range is from 0 to 360.  Default value
26058           is 0.
26059
26060       saturation
26061           Set the color saturation. Allowed range is from 0 to 1.  Default
26062           value is 0.5.
26063
26064       lightness
26065           Set the color lightness. Allowed range is from 0 to 1.  Default
26066           value is 0.5.
26067
26068       mix Set the mix of source lightness. By default is set to 1.0.  Allowed
26069           range is from 0.0 to 1.0.
26070
26071       Commands
26072
26073       This filter supports the all above options as commands.
26074
26075   colorkey
26076       RGB colorspace color keying.  This filter operates on 8-bit RGB format
26077       frames by setting the alpha component of each pixel which falls within
26078       the similarity radius of the key color to 0. The alpha value for pixels
26079       outside the similarity radius depends on the value of the blend option.
26080
26081       The filter accepts the following options:
26082
26083       color
26084           Set the color for which alpha will be set to 0 (full transparency).
26085           See "Color" section in the ffmpeg-utils manual.  Default is
26086           "black".
26087
26088       similarity
26089           Set the radius from the key color within which other colors also
26090           have full transparency.  The computed distance is related to the
26091           unit fractional distance in 3D space between the RGB values of the
26092           key color and the pixel's color. Range is 0.01 to 1.0. 0.01 matches
26093           within a very small radius around the exact key color, while 1.0
26094           matches everything.  Default is 0.01.
26095
26096       blend
26097           Set how the alpha value for pixels that fall outside the similarity
26098           radius is computed.  0.0 makes pixels either fully transparent or
26099           fully opaque.  Higher values result in semi-transparent pixels,
26100           with greater transparency the more similar the pixel color is to
26101           the key color.  Range is 0.0 to 1.0. Default is 0.0.
26102
26103       Examples
26104
26105       •   Make every green pixel in the input image transparent:
26106
26107                   ffmpeg -i input.png -vf colorkey=green out.png
26108
26109       •   Overlay a greenscreen-video on top of a static background image.
26110
26111                   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
26112
26113       Commands
26114
26115       This filter supports same commands as options.  The command accepts the
26116       same syntax of the corresponding option.
26117
26118       If the specified expression is not valid, it is kept at its current
26119       value.
26120
26121   colorhold
26122       Remove all color information for all RGB colors except for certain one.
26123
26124       The filter accepts the following options:
26125
26126       color
26127           The color which will not be replaced with neutral gray.
26128
26129       similarity
26130           Similarity percentage with the above color.  0.01 matches only the
26131           exact key color, while 1.0 matches everything.
26132
26133       blend
26134           Blend percentage. 0.0 makes pixels fully gray.  Higher values
26135           result in more preserved color.
26136
26137       Commands
26138
26139       This filter supports same commands as options.  The command accepts the
26140       same syntax of the corresponding option.
26141
26142       If the specified expression is not valid, it is kept at its current
26143       value.
26144
26145   colorlevels
26146       Adjust video input frames using levels.
26147
26148       The filter accepts the following options:
26149
26150       rimin
26151       gimin
26152       bimin
26153       aimin
26154           Adjust red, green, blue and alpha input black point.  Allowed
26155           ranges for options are "[-1.0, 1.0]". Defaults are 0.
26156
26157       rimax
26158       gimax
26159       bimax
26160       aimax
26161           Adjust red, green, blue and alpha input white point.  Allowed
26162           ranges for options are "[-1.0, 1.0]". Defaults are 1.
26163
26164           Input levels are used to lighten highlights (bright tones), darken
26165           shadows (dark tones), change the balance of bright and dark tones.
26166
26167       romin
26168       gomin
26169       bomin
26170       aomin
26171           Adjust red, green, blue and alpha output black point.  Allowed
26172           ranges for options are "[0, 1.0]". Defaults are 0.
26173
26174       romax
26175       gomax
26176       bomax
26177       aomax
26178           Adjust red, green, blue and alpha output white point.  Allowed
26179           ranges for options are "[0, 1.0]". Defaults are 1.
26180
26181           Output levels allows manual selection of a constrained output level
26182           range.
26183
26184       preserve
26185           Set preserve color mode. The accepted values are:
26186
26187           none
26188               Disable color preserving, this is default.
26189
26190           lum Preserve luminance.
26191
26192           max Preserve max value of RGB triplet.
26193
26194           avg Preserve average value of RGB triplet.
26195
26196           sum Preserve sum value of RGB triplet.
26197
26198           nrm Preserve normalized value of RGB triplet.
26199
26200           pwr Preserve power value of RGB triplet.
26201
26202       Examples
26203
26204       •   Make video output darker:
26205
26206                   colorlevels=rimin=0.058:gimin=0.058:bimin=0.058
26207
26208       •   Increase contrast:
26209
26210                   colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.96:gimax=0.96:bimax=0.96
26211
26212       •   Make video output lighter:
26213
26214                   colorlevels=rimax=0.902:gimax=0.902:bimax=0.902
26215
26216       •   Increase brightness:
26217
26218                   colorlevels=romin=0.5:gomin=0.5:bomin=0.5
26219
26220       Commands
26221
26222       This filter supports the all above options as commands.
26223
26224   colormap
26225       Apply custom color maps to video stream.
26226
26227       This filter needs three input video streams.  First stream is video
26228       stream that is going to be filtered out.  Second and third video stream
26229       specify color patches for source color to target color mapping.
26230
26231       The filter accepts the following options:
26232
26233       patch_size
26234           Set the source and target video stream patch size in pixels.
26235
26236       nb_patches
26237           Set the max number of used patches from source and target video
26238           stream.  Default value is number of patches available in additional
26239           video streams.  Max allowed number of patches is 64.
26240
26241       type
26242           Set the adjustments used for target colors. Can be "relative" or
26243           "absolute".  Defaults is "absolute".
26244
26245       kernel
26246           Set the kernel used to measure color differences between mapped
26247           colors.
26248
26249           The accepted values are:
26250
26251           euclidean
26252           weuclidean
26253
26254           Default is "euclidean".
26255
26256   colormatrix
26257       Convert color matrix.
26258
26259       The filter accepts the following options:
26260
26261       src
26262       dst Specify the source and destination color matrix. Both values must
26263           be specified.
26264
26265           The accepted values are:
26266
26267           bt709
26268               BT.709
26269
26270           fcc FCC
26271
26272           bt601
26273               BT.601
26274
26275           bt470
26276               BT.470
26277
26278           bt470bg
26279               BT.470BG
26280
26281           smpte170m
26282               SMPTE-170M
26283
26284           smpte240m
26285               SMPTE-240M
26286
26287           bt2020
26288               BT.2020
26289
26290       For example to convert from BT.601 to SMPTE-240M, use the command:
26291
26292               colormatrix=bt601:smpte240m
26293
26294   colorspace
26295       Convert colorspace, transfer characteristics or color primaries.  Input
26296       video needs to have an even size.
26297
26298       The filter accepts the following options:
26299
26300       all Specify all color properties at once.
26301
26302           The accepted values are:
26303
26304           bt470m
26305               BT.470M
26306
26307           bt470bg
26308               BT.470BG
26309
26310           bt601-6-525
26311               BT.601-6 525
26312
26313           bt601-6-625
26314               BT.601-6 625
26315
26316           bt709
26317               BT.709
26318
26319           smpte170m
26320               SMPTE-170M
26321
26322           smpte240m
26323               SMPTE-240M
26324
26325           bt2020
26326               BT.2020
26327
26328       space
26329           Specify output colorspace.
26330
26331           The accepted values are:
26332
26333           bt709
26334               BT.709
26335
26336           fcc FCC
26337
26338           bt470bg
26339               BT.470BG or BT.601-6 625
26340
26341           smpte170m
26342               SMPTE-170M or BT.601-6 525
26343
26344           smpte240m
26345               SMPTE-240M
26346
26347           ycgco
26348               YCgCo
26349
26350           bt2020ncl
26351               BT.2020 with non-constant luminance
26352
26353       trc Specify output transfer characteristics.
26354
26355           The accepted values are:
26356
26357           bt709
26358               BT.709
26359
26360           bt470m
26361               BT.470M
26362
26363           bt470bg
26364               BT.470BG
26365
26366           gamma22
26367               Constant gamma of 2.2
26368
26369           gamma28
26370               Constant gamma of 2.8
26371
26372           smpte170m
26373               SMPTE-170M, BT.601-6 625 or BT.601-6 525
26374
26375           smpte240m
26376               SMPTE-240M
26377
26378           srgb
26379               SRGB
26380
26381           iec61966-2-1
26382               iec61966-2-1
26383
26384           iec61966-2-4
26385               iec61966-2-4
26386
26387           xvycc
26388               xvycc
26389
26390           bt2020-10
26391               BT.2020 for 10-bits content
26392
26393           bt2020-12
26394               BT.2020 for 12-bits content
26395
26396       primaries
26397           Specify output color primaries.
26398
26399           The accepted values are:
26400
26401           bt709
26402               BT.709
26403
26404           bt470m
26405               BT.470M
26406
26407           bt470bg
26408               BT.470BG or BT.601-6 625
26409
26410           smpte170m
26411               SMPTE-170M or BT.601-6 525
26412
26413           smpte240m
26414               SMPTE-240M
26415
26416           film
26417               film
26418
26419           smpte431
26420               SMPTE-431
26421
26422           smpte432
26423               SMPTE-432
26424
26425           bt2020
26426               BT.2020
26427
26428           jedec-p22
26429               JEDEC P22 phosphors
26430
26431       range
26432           Specify output color range.
26433
26434           The accepted values are:
26435
26436           tv  TV (restricted) range
26437
26438           mpeg
26439               MPEG (restricted) range
26440
26441           pc  PC (full) range
26442
26443           jpeg
26444               JPEG (full) range
26445
26446       format
26447           Specify output color format.
26448
26449           The accepted values are:
26450
26451           yuv420p
26452               YUV 4:2:0 planar 8-bits
26453
26454           yuv420p10
26455               YUV 4:2:0 planar 10-bits
26456
26457           yuv420p12
26458               YUV 4:2:0 planar 12-bits
26459
26460           yuv422p
26461               YUV 4:2:2 planar 8-bits
26462
26463           yuv422p10
26464               YUV 4:2:2 planar 10-bits
26465
26466           yuv422p12
26467               YUV 4:2:2 planar 12-bits
26468
26469           yuv444p
26470               YUV 4:4:4 planar 8-bits
26471
26472           yuv444p10
26473               YUV 4:4:4 planar 10-bits
26474
26475           yuv444p12
26476               YUV 4:4:4 planar 12-bits
26477
26478       fast
26479           Do a fast conversion, which skips gamma/primary correction. This
26480           will take significantly less CPU, but will be mathematically
26481           incorrect. To get output compatible with that produced by the
26482           colormatrix filter, use fast=1.
26483
26484       dither
26485           Specify dithering mode.
26486
26487           The accepted values are:
26488
26489           none
26490               No dithering
26491
26492           fsb Floyd-Steinberg dithering
26493
26494       wpadapt
26495           Whitepoint adaptation mode.
26496
26497           The accepted values are:
26498
26499           bradford
26500               Bradford whitepoint adaptation
26501
26502           vonkries
26503               von Kries whitepoint adaptation
26504
26505           identity
26506               identity whitepoint adaptation (i.e. no whitepoint adaptation)
26507
26508       iall
26509           Override all input properties at once. Same accepted values as all.
26510
26511       ispace
26512           Override input colorspace. Same accepted values as space.
26513
26514       iprimaries
26515           Override input color primaries. Same accepted values as primaries.
26516
26517       itrc
26518           Override input transfer characteristics. Same accepted values as
26519           trc.
26520
26521       irange
26522           Override input color range. Same accepted values as range.
26523
26524       The filter converts the transfer characteristics, color space and color
26525       primaries to the specified user values. The output value, if not
26526       specified, is set to a default value based on the "all" property. If
26527       that property is also not specified, the filter will log an error. The
26528       output color range and format default to the same value as the input
26529       color range and format. The input transfer characteristics, color
26530       space, color primaries and color range should be set on the input data.
26531       If any of these are missing, the filter will log an error and no
26532       conversion will take place.
26533
26534       For example to convert the input to SMPTE-240M, use the command:
26535
26536               colorspace=smpte240m
26537
26538   colortemperature
26539       Adjust color temperature in video to simulate variations in ambient
26540       color temperature.
26541
26542       The filter accepts the following options:
26543
26544       temperature
26545           Set the temperature in Kelvin. Allowed range is from 1000 to 40000.
26546           Default value is 6500 K.
26547
26548       mix Set mixing with filtered output. Allowed range is from 0 to 1.
26549           Default value is 1.
26550
26551       pl  Set the amount of preserving lightness. Allowed range is from 0 to
26552           1.  Default value is 0.
26553
26554       Commands
26555
26556       This filter supports same commands as options.
26557
26558   convolution
26559       Apply convolution of 3x3, 5x5, 7x7 or horizontal/vertical up to 49
26560       elements.
26561
26562       The filter accepts the following options:
26563
26564       0m
26565       1m
26566       2m
26567       3m  Set matrix for each plane.  Matrix is sequence of 9, 25 or 49
26568           signed integers in square mode, and from 1 to 49 odd number of
26569           signed integers in row mode.
26570
26571       0rdiv
26572       1rdiv
26573       2rdiv
26574       3rdiv
26575           Set multiplier for calculated value for each plane.  If unset or 0,
26576           it will be sum of all matrix elements.
26577
26578       0bias
26579       1bias
26580       2bias
26581       3bias
26582           Set bias for each plane. This value is added to the result of the
26583           multiplication.  Useful for making the overall image brighter or
26584           darker. Default is 0.0.
26585
26586       0mode
26587       1mode
26588       2mode
26589       3mode
26590           Set matrix mode for each plane. Can be square, row or column.
26591           Default is square.
26592
26593       Commands
26594
26595       This filter supports the all above options as commands.
26596
26597       Examples
26598
26599       •   Apply sharpen:
26600
26601                   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"
26602
26603       •   Apply blur:
26604
26605                   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"
26606
26607       •   Apply edge enhance:
26608
26609                   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"
26610
26611       •   Apply edge detect:
26612
26613                   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"
26614
26615       •   Apply laplacian edge detector which includes diagonals:
26616
26617                   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"
26618
26619       •   Apply emboss:
26620
26621                   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"
26622
26623   convolve
26624       Apply 2D convolution of video stream in frequency domain using second
26625       stream as impulse.
26626
26627       The filter accepts the following options:
26628
26629       planes
26630           Set which planes to process.
26631
26632       impulse
26633           Set which impulse video frames will be processed, can be first or
26634           all. Default is all.
26635
26636       The "convolve" filter also supports the framesync options.
26637
26638   copy
26639       Copy the input video source unchanged to the output. This is mainly
26640       useful for testing purposes.
26641
26642   coreimage
26643       Video filtering on GPU using Apple's CoreImage API on OSX.
26644
26645       Hardware acceleration is based on an OpenGL context. Usually, this
26646       means it is processed by video hardware. However, software-based OpenGL
26647       implementations exist which means there is no guarantee for hardware
26648       processing. It depends on the respective OSX.
26649
26650       There are many filters and image generators provided by Apple that come
26651       with a large variety of options. The filter has to be referenced by its
26652       name along with its options.
26653
26654       The coreimage filter accepts the following options:
26655
26656       list_filters
26657           List all available filters and generators along with all their
26658           respective options as well as possible minimum and maximum values
26659           along with the default values.
26660
26661                   list_filters=true
26662
26663       filter
26664           Specify all filters by their respective name and options.  Use
26665           list_filters to determine all valid filter names and options.
26666           Numerical options are specified by a float value and are
26667           automatically clamped to their respective value range.  Vector and
26668           color options have to be specified by a list of space separated
26669           float values. Character escaping has to be done.  A special option
26670           name "default" is available to use default options for a filter.
26671
26672           It is required to specify either "default" or at least one of the
26673           filter options.  All omitted options are used with their default
26674           values.  The syntax of the filter string is as follows:
26675
26676                   filter=<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...][#<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...]][#...]
26677
26678       output_rect
26679           Specify a rectangle where the output of the filter chain is copied
26680           into the input image. It is given by a list of space separated
26681           float values:
26682
26683                   output_rect=x\ y\ width\ height
26684
26685           If not given, the output rectangle equals the dimensions of the
26686           input image.  The output rectangle is automatically cropped at the
26687           borders of the input image. Negative values are valid for each
26688           component.
26689
26690                   output_rect=25\ 25\ 100\ 100
26691
26692       Several filters can be chained for successive processing without GPU-
26693       HOST transfers allowing for fast processing of complex filter chains.
26694       Currently, only filters with zero (generators) or exactly one (filters)
26695       input image and one output image are supported. Also, transition
26696       filters are not yet usable as intended.
26697
26698       Some filters generate output images with additional padding depending
26699       on the respective filter kernel. The padding is automatically removed
26700       to ensure the filter output has the same size as the input image.
26701
26702       For image generators, the size of the output image is determined by the
26703       previous output image of the filter chain or the input image of the
26704       whole filterchain, respectively. The generators do not use the pixel
26705       information of this image to generate their output. However, the
26706       generated output is blended onto this image, resulting in partial or
26707       complete coverage of the output image.
26708
26709       The coreimagesrc video source can be used for generating input images
26710       which are directly fed into the filter chain. By using it, providing
26711       input images by another video source or an input video is not required.
26712
26713       Examples
26714
26715       •   List all filters available:
26716
26717                   coreimage=list_filters=true
26718
26719       •   Use the CIBoxBlur filter with default options to blur an image:
26720
26721                   coreimage=filter=CIBoxBlur@default
26722
26723       •   Use a filter chain with CISepiaTone at default values and
26724           CIVignetteEffect with its center at 100x100 and a radius of 50
26725           pixels:
26726
26727                   coreimage=filter=CIBoxBlur@default#CIVignetteEffect@inputCenter=100\ 100@inputRadius=50
26728
26729       •   Use nullsrc and CIQRCodeGenerator to create a QR code for the
26730           FFmpeg homepage, given as complete and escaped command-line for
26731           Apple's standard bash shell:
26732
26733                   ffmpeg -f lavfi -i nullsrc=s=100x100,coreimage=filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
26734
26735   cover_rect
26736       Cover a rectangular object
26737
26738       It accepts the following options:
26739
26740       cover
26741           Filepath of the optional cover image, needs to be in yuv420.
26742
26743       mode
26744           Set covering mode.
26745
26746           It accepts the following values:
26747
26748           cover
26749               cover it by the supplied image
26750
26751           blur
26752               cover it by interpolating the surrounding pixels
26753
26754           Default value is blur.
26755
26756       Examples
26757
26758       •   Cover a rectangular object by the supplied image of a given video
26759           using ffmpeg:
26760
26761                   ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
26762
26763   crop
26764       Crop the input video to given dimensions.
26765
26766       It accepts the following parameters:
26767
26768       w, out_w
26769           The width of the output video. It defaults to "iw".  This
26770           expression is evaluated only once during the filter configuration,
26771           or when the w or out_w command is sent.
26772
26773       h, out_h
26774           The height of the output video. It defaults to "ih".  This
26775           expression is evaluated only once during the filter configuration,
26776           or when the h or out_h command is sent.
26777
26778       x   The horizontal position, in the input video, of the left edge of
26779           the output video. It defaults to "(in_w-out_w)/2".  This expression
26780           is evaluated per-frame.
26781
26782       y   The vertical position, in the input video, of the top edge of the
26783           output video.  It defaults to "(in_h-out_h)/2".  This expression is
26784           evaluated per-frame.
26785
26786       keep_aspect
26787           If set to 1 will force the output display aspect ratio to be the
26788           same of the input, by changing the output sample aspect ratio. It
26789           defaults to 0.
26790
26791       exact
26792           Enable exact cropping. If enabled, subsampled videos will be
26793           cropped at exact width/height/x/y as specified and will not be
26794           rounded to nearest smaller value.  It defaults to 0.
26795
26796       The out_w, out_h, x, y parameters are expressions containing the
26797       following constants:
26798
26799       x
26800       y   The computed values for x and y. They are evaluated for each new
26801           frame.
26802
26803       in_w
26804       in_h
26805           The input width and height.
26806
26807       iw
26808       ih  These are the same as in_w and in_h.
26809
26810       out_w
26811       out_h
26812           The output (cropped) width and height.
26813
26814       ow
26815       oh  These are the same as out_w and out_h.
26816
26817       a   same as iw / ih
26818
26819       sar input sample aspect ratio
26820
26821       dar input display aspect ratio, it is the same as (iw / ih) * sar
26822
26823       hsub
26824       vsub
26825           horizontal and vertical chroma subsample values. For example for
26826           the pixel format "yuv422p" hsub is 2 and vsub is 1.
26827
26828       n   The number of the input frame, starting from 0.
26829
26830       pos the position in the file of the input frame, NAN if unknown
26831
26832       t   The timestamp expressed in seconds. It's NAN if the input timestamp
26833           is unknown.
26834
26835       The expression for out_w may depend on the value of out_h, and the
26836       expression for out_h may depend on out_w, but they cannot depend on x
26837       and y, as x and y are evaluated after out_w and out_h.
26838
26839       The x and y parameters specify the expressions for the position of the
26840       top-left corner of the output (non-cropped) area. They are evaluated
26841       for each frame. If the evaluated value is not valid, it is approximated
26842       to the nearest valid value.
26843
26844       The expression for x may depend on y, and the expression for y may
26845       depend on x.
26846
26847       Examples
26848
26849       •   Crop area with size 100x100 at position (12,34).
26850
26851                   crop=100:100:12:34
26852
26853           Using named options, the example above becomes:
26854
26855                   crop=w=100:h=100:x=12:y=34
26856
26857       •   Crop the central input area with size 100x100:
26858
26859                   crop=100:100
26860
26861       •   Crop the central input area with size 2/3 of the input video:
26862
26863                   crop=2/3*in_w:2/3*in_h
26864
26865       •   Crop the input video central square:
26866
26867                   crop=out_w=in_h
26868                   crop=in_h
26869
26870       •   Delimit the rectangle with the top-left corner placed at position
26871           100:100 and the right-bottom corner corresponding to the right-
26872           bottom corner of the input image.
26873
26874                   crop=in_w-100:in_h-100:100:100
26875
26876       •   Crop 10 pixels from the left and right borders, and 20 pixels from
26877           the top and bottom borders
26878
26879                   crop=in_w-2*10:in_h-2*20
26880
26881       •   Keep only the bottom right quarter of the input image:
26882
26883                   crop=in_w/2:in_h/2:in_w/2:in_h/2
26884
26885       •   Crop height for getting Greek harmony:
26886
26887                   crop=in_w:1/PHI*in_w
26888
26889       •   Apply trembling effect:
26890
26891                   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)
26892
26893       •   Apply erratic camera effect depending on timestamp:
26894
26895                   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)"
26896
26897       •   Set x depending on the value of y:
26898
26899                   crop=in_w/2:in_h/2:y:10+10*sin(n/10)
26900
26901       Commands
26902
26903       This filter supports the following commands:
26904
26905       w, out_w
26906       h, out_h
26907       x
26908       y   Set width/height of the output video and the horizontal/vertical
26909           position in the input video.  The command accepts the same syntax
26910           of the corresponding option.
26911
26912           If the specified expression is not valid, it is kept at its current
26913           value.
26914
26915   cropdetect
26916       Auto-detect the crop size.
26917
26918       It calculates the necessary cropping parameters and prints the
26919       recommended parameters via the logging system. The detected dimensions
26920       correspond to the non-black area of the input video.
26921
26922       It accepts the following parameters:
26923
26924       limit
26925           Set higher black value threshold, which can be optionally specified
26926           from nothing (0) to everything (255 for 8-bit based formats). An
26927           intensity value greater to the set value is considered non-black.
26928           It defaults to 24.  You can also specify a value between 0.0 and
26929           1.0 which will be scaled depending on the bitdepth of the pixel
26930           format.
26931
26932       round
26933           The value which the width/height should be divisible by. It
26934           defaults to 16. The offset is automatically adjusted to center the
26935           video. Use 2 to get only even dimensions (needed for 4:2:2 video).
26936           16 is best when encoding to most video codecs.
26937
26938       skip
26939           Set the number of initial frames for which evaluation is skipped.
26940           Default is 2. Range is 0 to INT_MAX.
26941
26942       reset_count, reset
26943           Set the counter that determines after how many frames cropdetect
26944           will reset the previously detected largest video area and start
26945           over to detect the current optimal crop area. Default value is 0.
26946
26947           This can be useful when channel logos distort the video area. 0
26948           indicates 'never reset', and returns the largest area encountered
26949           during playback.
26950
26951   cue
26952       Delay video filtering until a given wallclock timestamp. The filter
26953       first passes on preroll amount of frames, then it buffers at most
26954       buffer amount of frames and waits for the cue. After reaching the cue
26955       it forwards the buffered frames and also any subsequent frames coming
26956       in its input.
26957
26958       The filter can be used synchronize the output of multiple ffmpeg
26959       processes for realtime output devices like decklink. By putting the
26960       delay in the filtering chain and pre-buffering frames the process can
26961       pass on data to output almost immediately after the target wallclock
26962       timestamp is reached.
26963
26964       Perfect frame accuracy cannot be guaranteed, but the result is good
26965       enough for some use cases.
26966
26967       cue The cue timestamp expressed in a UNIX timestamp in microseconds.
26968           Default is 0.
26969
26970       preroll
26971           The duration of content to pass on as preroll expressed in seconds.
26972           Default is 0.
26973
26974       buffer
26975           The maximum duration of content to buffer before waiting for the
26976           cue expressed in seconds. Default is 0.
26977
26978   curves
26979       Apply color adjustments using curves.
26980
26981       This filter is similar to the Adobe Photoshop and GIMP curves tools.
26982       Each component (red, green and blue) has its values defined by N key
26983       points tied from each other using a smooth curve. The x-axis represents
26984       the pixel values from the input frame, and the y-axis the new pixel
26985       values to be set for the output frame.
26986
26987       By default, a component curve is defined by the two points (0;0) and
26988       (1;1). This creates a straight line where each original pixel value is
26989       "adjusted" to its own value, which means no change to the image.
26990
26991       The filter allows you to redefine these two points and add some more. A
26992       new curve (using a natural cubic spline interpolation) will be define
26993       to pass smoothly through all these new coordinates. The new defined
26994       points needs to be strictly increasing over the x-axis, and their x and
26995       y values must be in the [0;1] interval.  If the computed curves
26996       happened to go outside the vector spaces, the values will be clipped
26997       accordingly.
26998
26999       The filter accepts the following options:
27000
27001       preset
27002           Select one of the available color presets. This option can be used
27003           in addition to the r, g, b parameters; in this case, the later
27004           options takes priority on the preset values.  Available presets
27005           are:
27006
27007           none
27008           color_negative
27009           cross_process
27010           darker
27011           increase_contrast
27012           lighter
27013           linear_contrast
27014           medium_contrast
27015           negative
27016           strong_contrast
27017           vintage
27018
27019           Default is "none".
27020
27021       master, m
27022           Set the master key points. These points will define a second pass
27023           mapping. It is sometimes called a "luminance" or "value" mapping.
27024           It can be used with r, g, b or all since it acts like a post-
27025           processing LUT.
27026
27027       red, r
27028           Set the key points for the red component.
27029
27030       green, g
27031           Set the key points for the green component.
27032
27033       blue, b
27034           Set the key points for the blue component.
27035
27036       all Set the key points for all components (not including master).  Can
27037           be used in addition to the other key points component options. In
27038           this case, the unset component(s) will fallback on this all
27039           setting.
27040
27041       psfile
27042           Specify a Photoshop curves file (".acv") to import the settings
27043           from.
27044
27045       plot
27046           Save Gnuplot script of the curves in specified file.
27047
27048       To avoid some filtergraph syntax conflicts, each key points list need
27049       to be defined using the following syntax: "x0/y0 x1/y1 x2/y2 ...".
27050
27051       Commands
27052
27053       This filter supports same commands as options.
27054
27055       Examples
27056
27057       •   Increase slightly the middle level of blue:
27058
27059                   curves=blue='0/0 0.5/0.58 1/1'
27060
27061       •   Vintage effect:
27062
27063                   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'
27064
27065           Here we obtain the following coordinates for each components:
27066
27067           red "(0;0.11) (0.42;0.51) (1;0.95)"
27068
27069           green
27070               "(0;0) (0.50;0.48) (1;1)"
27071
27072           blue
27073               "(0;0.22) (0.49;0.44) (1;0.80)"
27074
27075       •   The previous example can also be achieved with the associated
27076           built-in preset:
27077
27078                   curves=preset=vintage
27079
27080       •   Or simply:
27081
27082                   curves=vintage
27083
27084       •   Use a Photoshop preset and redefine the points of the green
27085           component:
27086
27087                   curves=psfile='MyCurvesPresets/purple.acv':green='0/0 0.45/0.53 1/1'
27088
27089       •   Check out the curves of the "cross_process" profile using ffmpeg
27090           and gnuplot:
27091
27092                   ffmpeg -f lavfi -i color -vf curves=cross_process:plot=/tmp/curves.plt -frames:v 1 -f null -
27093                   gnuplot -p /tmp/curves.plt
27094
27095   datascope
27096       Video data analysis filter.
27097
27098       This filter shows hexadecimal pixel values of part of video.
27099
27100       The filter accepts the following options:
27101
27102       size, s
27103           Set output video size.
27104
27105       x   Set x offset from where to pick pixels.
27106
27107       y   Set y offset from where to pick pixels.
27108
27109       mode
27110           Set scope mode, can be one of the following:
27111
27112           mono
27113               Draw hexadecimal pixel values with white color on black
27114               background.
27115
27116           color
27117               Draw hexadecimal pixel values with input video pixel color on
27118               black background.
27119
27120           color2
27121               Draw hexadecimal pixel values on color background picked from
27122               input video, the text color is picked in such way so its always
27123               visible.
27124
27125       axis
27126           Draw rows and columns numbers on left and top of video.
27127
27128       opacity
27129           Set background opacity.
27130
27131       format
27132           Set display number format. Can be "hex", or "dec". Default is
27133           "hex".
27134
27135       components
27136           Set pixel components to display. By default all pixel components
27137           are displayed.
27138
27139       Commands
27140
27141       This filter supports same commands as options excluding "size" option.
27142
27143   dblur
27144       Apply Directional blur filter.
27145
27146       The filter accepts the following options:
27147
27148       angle
27149           Set angle of directional blur. Default is 45.
27150
27151       radius
27152           Set radius of directional blur. Default is 5.
27153
27154       planes
27155           Set which planes to filter. By default all planes are filtered.
27156
27157       Commands
27158
27159       This filter supports same commands as options.  The command accepts the
27160       same syntax of the corresponding option.
27161
27162       If the specified expression is not valid, it is kept at its current
27163       value.
27164
27165   dctdnoiz
27166       Denoise frames using 2D DCT (frequency domain filtering).
27167
27168       This filter is not designed for real time.
27169
27170       The filter accepts the following options:
27171
27172       sigma, s
27173           Set the noise sigma constant.
27174
27175           This sigma defines a hard threshold of "3 * sigma"; every DCT
27176           coefficient (absolute value) below this threshold with be dropped.
27177
27178           If you need a more advanced filtering, see expr.
27179
27180           Default is 0.
27181
27182       overlap
27183           Set number overlapping pixels for each block. Since the filter can
27184           be slow, you may want to reduce this value, at the cost of a less
27185           effective filter and the risk of various artefacts.
27186
27187           If the overlapping value doesn't permit processing the whole input
27188           width or height, a warning will be displayed and according borders
27189           won't be denoised.
27190
27191           Default value is blocksize-1, which is the best possible setting.
27192
27193       expr, e
27194           Set the coefficient factor expression.
27195
27196           For each coefficient of a DCT block, this expression will be
27197           evaluated as a multiplier value for the coefficient.
27198
27199           If this is option is set, the sigma option will be ignored.
27200
27201           The absolute value of the coefficient can be accessed through the c
27202           variable.
27203
27204       n   Set the blocksize using the number of bits. "1<<n" defines the
27205           blocksize, which is the width and height of the processed blocks.
27206
27207           The default value is 3 (8x8) and can be raised to 4 for a blocksize
27208           of 16x16. Note that changing this setting has huge consequences on
27209           the speed processing. Also, a larger block size does not
27210           necessarily means a better de-noising.
27211
27212       Examples
27213
27214       Apply a denoise with a sigma of 4.5:
27215
27216               dctdnoiz=4.5
27217
27218       The same operation can be achieved using the expression system:
27219
27220               dctdnoiz=e='gte(c, 4.5*3)'
27221
27222       Violent denoise using a block size of "16x16":
27223
27224               dctdnoiz=15:n=4
27225
27226   deband
27227       Remove banding artifacts from input video.  It works by replacing
27228       banded pixels with average value of referenced pixels.
27229
27230       The filter accepts the following options:
27231
27232       1thr
27233       2thr
27234       3thr
27235       4thr
27236           Set banding detection threshold for each plane. Default is 0.02.
27237           Valid range is 0.00003 to 0.5.  If difference between current pixel
27238           and reference pixel is less than threshold, it will be considered
27239           as banded.
27240
27241       range, r
27242           Banding detection range in pixels. Default is 16. If positive,
27243           random number in range 0 to set value will be used. If negative,
27244           exact absolute value will be used.  The range defines square of
27245           four pixels around current pixel.
27246
27247       direction, d
27248           Set direction in radians from which four pixel will be compared. If
27249           positive, random direction from 0 to set direction will be picked.
27250           If negative, exact of absolute value will be picked. For example
27251           direction 0, -PI or -2*PI radians will pick only pixels on same row
27252           and -PI/2 will pick only pixels on same column.
27253
27254       blur, b
27255           If enabled, current pixel is compared with average value of all
27256           four surrounding pixels. The default is enabled. If disabled
27257           current pixel is compared with all four surrounding pixels. The
27258           pixel is considered banded if only all four differences with
27259           surrounding pixels are less than threshold.
27260
27261       coupling, c
27262           If enabled, current pixel is changed if and only if all pixel
27263           components are banded, e.g. banding detection threshold is
27264           triggered for all color components.  The default is disabled.
27265
27266       Commands
27267
27268       This filter supports the all above options as commands.
27269
27270   deblock
27271       Remove blocking artifacts from input video.
27272
27273       The filter accepts the following options:
27274
27275       filter
27276           Set filter type, can be weak or strong. Default is strong.  This
27277           controls what kind of deblocking is applied.
27278
27279       block
27280           Set size of block, allowed range is from 4 to 512. Default is 8.
27281
27282       alpha
27283       beta
27284       gamma
27285       delta
27286           Set blocking detection thresholds. Allowed range is 0 to 1.
27287           Defaults are: 0.098 for alpha and 0.05 for the rest.  Using higher
27288           threshold gives more deblocking strength.  Setting alpha controls
27289           threshold detection at exact edge of block.  Remaining options
27290           controls threshold detection near the edge. Each one for
27291           below/above or left/right. Setting any of those to 0 disables
27292           deblocking.
27293
27294       planes
27295           Set planes to filter. Default is to filter all available planes.
27296
27297       Examples
27298
27299       •   Deblock using weak filter and block size of 4 pixels.
27300
27301                   deblock=filter=weak:block=4
27302
27303       •   Deblock using strong filter, block size of 4 pixels and custom
27304           thresholds for deblocking more edges.
27305
27306                   deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05
27307
27308       •   Similar as above, but filter only first plane.
27309
27310                   deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=1
27311
27312       •   Similar as above, but filter only second and third plane.
27313
27314                   deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=6
27315
27316       Commands
27317
27318       This filter supports the all above options as commands.
27319
27320   decimate
27321       Drop duplicated frames at regular intervals.
27322
27323       The filter accepts the following options:
27324
27325       cycle
27326           Set the number of frames from which one will be dropped. Setting
27327           this to N means one frame in every batch of N frames will be
27328           dropped.  Default is 5.
27329
27330       dupthresh
27331           Set the threshold for duplicate detection. If the difference metric
27332           for a frame is less than or equal to this value, then it is
27333           declared as duplicate. Default is 1.1
27334
27335       scthresh
27336           Set scene change threshold. Default is 15.
27337
27338       blockx
27339       blocky
27340           Set the size of the x and y-axis blocks used during metric
27341           calculations.  Larger blocks give better noise suppression, but
27342           also give worse detection of small movements. Must be a power of
27343           two. Default is 32.
27344
27345       ppsrc
27346           Mark main input as a pre-processed input and activate clean source
27347           input stream. This allows the input to be pre-processed with
27348           various filters to help the metrics calculation while keeping the
27349           frame selection lossless. When set to 1, the first stream is for
27350           the pre-processed input, and the second stream is the clean source
27351           from where the kept frames are chosen. Default is 0.
27352
27353       chroma
27354           Set whether or not chroma is considered in the metric calculations.
27355           Default is 1.
27356
27357   deconvolve
27358       Apply 2D deconvolution of video stream in frequency domain using second
27359       stream as impulse.
27360
27361       The filter accepts the following options:
27362
27363       planes
27364           Set which planes to process.
27365
27366       impulse
27367           Set which impulse video frames will be processed, can be first or
27368           all. Default is all.
27369
27370       noise
27371           Set noise when doing divisions. Default is 0.0000001. Useful when
27372           width and height are not same and not power of 2 or if stream prior
27373           to convolving had noise.
27374
27375       The "deconvolve" filter also supports the framesync options.
27376
27377   dedot
27378       Reduce cross-luminance (dot-crawl) and cross-color (rainbows) from
27379       video.
27380
27381       It accepts the following options:
27382
27383       m   Set mode of operation. Can be combination of dotcrawl for cross-
27384           luminance reduction and/or rainbows for cross-color reduction.
27385
27386       lt  Set spatial luma threshold. Lower values increases reduction of
27387           cross-luminance.
27388
27389       tl  Set tolerance for temporal luma. Higher values increases reduction
27390           of cross-luminance.
27391
27392       tc  Set tolerance for chroma temporal variation. Higher values
27393           increases reduction of cross-color.
27394
27395       ct  Set temporal chroma threshold. Lower values increases reduction of
27396           cross-color.
27397
27398   deflate
27399       Apply deflate effect to the video.
27400
27401       This filter replaces the pixel by the local(3x3) average by taking into
27402       account only values lower than the pixel.
27403
27404       It accepts the following options:
27405
27406       threshold0
27407       threshold1
27408       threshold2
27409       threshold3
27410           Limit the maximum change for each plane, default is 65535.  If 0,
27411           plane will remain unchanged.
27412
27413       Commands
27414
27415       This filter supports the all above options as commands.
27416
27417   deflicker
27418       Remove temporal frame luminance variations.
27419
27420       It accepts the following options:
27421
27422       size, s
27423           Set moving-average filter size in frames. Default is 5. Allowed
27424           range is 2 - 129.
27425
27426       mode, m
27427           Set averaging mode to smooth temporal luminance variations.
27428
27429           Available values are:
27430
27431           am  Arithmetic mean
27432
27433           gm  Geometric mean
27434
27435           hm  Harmonic mean
27436
27437           qm  Quadratic mean
27438
27439           cm  Cubic mean
27440
27441           pm  Power mean
27442
27443           median
27444               Median
27445
27446       bypass
27447           Do not actually modify frame. Useful when one only wants metadata.
27448
27449   dejudder
27450       Remove judder produced by partially interlaced telecined content.
27451
27452       Judder can be introduced, for instance, by pullup filter. If the
27453       original source was partially telecined content then the output of
27454       "pullup,dejudder" will have a variable frame rate. May change the
27455       recorded frame rate of the container. Aside from that change, this
27456       filter will not affect constant frame rate video.
27457
27458       The option available in this filter is:
27459
27460       cycle
27461           Specify the length of the window over which the judder repeats.
27462
27463           Accepts any integer greater than 1. Useful values are:
27464
27465           4   If the original was telecined from 24 to 30 fps (Film to NTSC).
27466
27467           5   If the original was telecined from 25 to 30 fps (PAL to NTSC).
27468
27469           20  If a mixture of the two.
27470
27471           The default is 4.
27472
27473   delogo
27474       Suppress a TV station logo by a simple interpolation of the surrounding
27475       pixels. Just set a rectangle covering the logo and watch it disappear
27476       (and sometimes something even uglier appear - your mileage may vary).
27477
27478       It accepts the following parameters:
27479
27480       x
27481       y   Specify the top left corner coordinates of the logo. They must be
27482           specified.
27483
27484       w
27485       h   Specify the width and height of the logo to clear. They must be
27486           specified.
27487
27488       show
27489           When set to 1, a green rectangle is drawn on the screen to simplify
27490           finding the right x, y, w, and h parameters.  The default value is
27491           0.
27492
27493           The rectangle is drawn on the outermost pixels which will be
27494           (partly) replaced with interpolated values. The values of the next
27495           pixels immediately outside this rectangle in each direction will be
27496           used to compute the interpolated pixel values inside the rectangle.
27497
27498       Examples
27499
27500       •   Set a rectangle covering the area with top left corner coordinates
27501           0,0 and size 100x77:
27502
27503                   delogo=x=0:y=0:w=100:h=77
27504
27505   derain
27506       Remove the rain in the input image/video by applying the derain methods
27507       based on convolutional neural networks. Supported models:
27508
27509       •   Recurrent Squeeze-and-Excitation Context Aggregation Net (RESCAN).
27510           See
27511           <http://openaccess.thecvf.com/content_ECCV_2018/papers/Xia_Li_Recurrent_Squeeze-and-Excitation_Context_ECCV_2018_paper.pdf>.
27512
27513       Training as well as model generation scripts are provided in the
27514       repository at <https://github.com/XueweiMeng/derain_filter.git>.
27515
27516       Native model files (.model) can be generated from TensorFlow model
27517       files (.pb) by using tools/python/convert.py
27518
27519       The filter accepts the following options:
27520
27521       filter_type
27522           Specify which filter to use. This option accepts the following
27523           values:
27524
27525           derain
27526               Derain filter. To conduct derain filter, you need to use a
27527               derain model.
27528
27529           dehaze
27530               Dehaze filter. To conduct dehaze filter, you need to use a
27531               dehaze model.
27532
27533           Default value is derain.
27534
27535       dnn_backend
27536           Specify which DNN backend to use for model loading and execution.
27537           This option accepts the following values:
27538
27539           native
27540               Native implementation of DNN loading and execution.
27541
27542           tensorflow
27543               TensorFlow backend. To enable this backend you need to install
27544               the TensorFlow for C library (see
27545               <https://www.tensorflow.org/install/lang_c>) and configure
27546               FFmpeg with "--enable-libtensorflow"
27547
27548           Default value is native.
27549
27550       model
27551           Set path to model file specifying network architecture and its
27552           parameters.  Note that different backends use different file
27553           formats. TensorFlow and native backend can load files for only its
27554           format.
27555
27556       To get full functionality (such as async execution), please use the
27557       dnn_processing filter.
27558
27559   deshake
27560       Attempt to fix small changes in horizontal and/or vertical shift. This
27561       filter helps remove camera shake from hand-holding a camera, bumping a
27562       tripod, moving on a vehicle, etc.
27563
27564       The filter accepts the following options:
27565
27566       x
27567       y
27568       w
27569       h   Specify a rectangular area where to limit the search for motion
27570           vectors.  If desired the search for motion vectors can be limited
27571           to a rectangular area of the frame defined by its top left corner,
27572           width and height. These parameters have the same meaning as the
27573           drawbox filter which can be used to visualise the position of the
27574           bounding box.
27575
27576           This is useful when simultaneous movement of subjects within the
27577           frame might be confused for camera motion by the motion vector
27578           search.
27579
27580           If any or all of x, y, w and h are set to -1 then the full frame is
27581           used. This allows later options to be set without specifying the
27582           bounding box for the motion vector search.
27583
27584           Default - search the whole frame.
27585
27586       rx
27587       ry  Specify the maximum extent of movement in x and y directions in the
27588           range 0-64 pixels. Default 16.
27589
27590       edge
27591           Specify how to generate pixels to fill blanks at the edge of the
27592           frame. Available values are:
27593
27594           blank, 0
27595               Fill zeroes at blank locations
27596
27597           original, 1
27598               Original image at blank locations
27599
27600           clamp, 2
27601               Extruded edge value at blank locations
27602
27603           mirror, 3
27604               Mirrored edge at blank locations
27605
27606           Default value is mirror.
27607
27608       blocksize
27609           Specify the blocksize to use for motion search. Range 4-128 pixels,
27610           default 8.
27611
27612       contrast
27613           Specify the contrast threshold for blocks. Only blocks with more
27614           than the specified contrast (difference between darkest and
27615           lightest pixels) will be considered. Range 1-255, default 125.
27616
27617       search
27618           Specify the search strategy. Available values are:
27619
27620           exhaustive, 0
27621               Set exhaustive search
27622
27623           less, 1
27624               Set less exhaustive search.
27625
27626           Default value is exhaustive.
27627
27628       filename
27629           If set then a detailed log of the motion search is written to the
27630           specified file.
27631
27632   despill
27633       Remove unwanted contamination of foreground colors, caused by reflected
27634       color of greenscreen or bluescreen.
27635
27636       This filter accepts the following options:
27637
27638       type
27639           Set what type of despill to use.
27640
27641       mix Set how spillmap will be generated.
27642
27643       expand
27644           Set how much to get rid of still remaining spill.
27645
27646       red Controls amount of red in spill area.
27647
27648       green
27649           Controls amount of green in spill area.  Should be -1 for
27650           greenscreen.
27651
27652       blue
27653           Controls amount of blue in spill area.  Should be -1 for
27654           bluescreen.
27655
27656       brightness
27657           Controls brightness of spill area, preserving colors.
27658
27659       alpha
27660           Modify alpha from generated spillmap.
27661
27662       Commands
27663
27664       This filter supports the all above options as commands.
27665
27666   detelecine
27667       Apply an exact inverse of the telecine operation. It requires a
27668       predefined pattern specified using the pattern option which must be the
27669       same as that passed to the telecine filter.
27670
27671       This filter accepts the following options:
27672
27673       first_field
27674           top, t
27675               top field first
27676
27677           bottom, b
27678               bottom field first The default value is "top".
27679
27680       pattern
27681           A string of numbers representing the pulldown pattern you wish to
27682           apply.  The default value is 23.
27683
27684       start_frame
27685           A number representing position of the first frame with respect to
27686           the telecine pattern. This is to be used if the stream is cut. The
27687           default value is 0.
27688
27689   dilation
27690       Apply dilation effect to the video.
27691
27692       This filter replaces the pixel by the local(3x3) maximum.
27693
27694       It accepts the following options:
27695
27696       threshold0
27697       threshold1
27698       threshold2
27699       threshold3
27700           Limit the maximum change for each plane, default is 65535.  If 0,
27701           plane will remain unchanged.
27702
27703       coordinates
27704           Flag which specifies the pixel to refer to. Default is 255 i.e. all
27705           eight pixels are used.
27706
27707           Flags to local 3x3 coordinates maps like this:
27708
27709               1 2 3
27710               4   5
27711               6 7 8
27712
27713       Commands
27714
27715       This filter supports the all above options as commands.
27716
27717   displace
27718       Displace pixels as indicated by second and third input stream.
27719
27720       It takes three input streams and outputs one stream, the first input is
27721       the source, and second and third input are displacement maps.
27722
27723       The second input specifies how much to displace pixels along the
27724       x-axis, while the third input specifies how much to displace pixels
27725       along the y-axis.  If one of displacement map streams terminates, last
27726       frame from that displacement map will be used.
27727
27728       Note that once generated, displacements maps can be reused over and
27729       over again.
27730
27731       A description of the accepted options follows.
27732
27733       edge
27734           Set displace behavior for pixels that are out of range.
27735
27736           Available values are:
27737
27738           blank
27739               Missing pixels are replaced by black pixels.
27740
27741           smear
27742               Adjacent pixels will spread out to replace missing pixels.
27743
27744           wrap
27745               Out of range pixels are wrapped so they point to pixels of
27746               other side.
27747
27748           mirror
27749               Out of range pixels will be replaced with mirrored pixels.
27750
27751           Default is smear.
27752
27753       Examples
27754
27755       •   Add ripple effect to rgb input of video size hd720:
27756
27757                   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
27758
27759       •   Add wave effect to rgb input of video size hd720:
27760
27761                   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
27762
27763   dnn_classify
27764       Do classification with deep neural networks based on bounding boxes.
27765
27766       The filter accepts the following options:
27767
27768       dnn_backend
27769           Specify which DNN backend to use for model loading and execution.
27770           This option accepts only openvino now, tensorflow backends will be
27771           added.
27772
27773       model
27774           Set path to model file specifying network architecture and its
27775           parameters.  Note that different backends use different file
27776           formats.
27777
27778       input
27779           Set the input name of the dnn network.
27780
27781       output
27782           Set the output name of the dnn network.
27783
27784       confidence
27785           Set the confidence threshold (default: 0.5).
27786
27787       labels
27788           Set path to label file specifying the mapping between label id and
27789           name.  Each label name is written in one line, tailing spaces and
27790           empty lines are skipped.  The first line is the name of label id 0,
27791           and the second line is the name of label id 1, etc.  The label id
27792           is considered as name if the label file is not provided.
27793
27794       backend_configs
27795           Set the configs to be passed into backend
27796
27797           For tensorflow backend, you can set its configs with sess_config
27798           options, please use tools/python/tf_sess_config.py to get the
27799           configs for your system.
27800
27801   dnn_detect
27802       Do object detection with deep neural networks.
27803
27804       The filter accepts the following options:
27805
27806       dnn_backend
27807           Specify which DNN backend to use for model loading and execution.
27808           This option accepts only openvino now, tensorflow backends will be
27809           added.
27810
27811       model
27812           Set path to model file specifying network architecture and its
27813           parameters.  Note that different backends use different file
27814           formats.
27815
27816       input
27817           Set the input name of the dnn network.
27818
27819       output
27820           Set the output name of the dnn network.
27821
27822       confidence
27823           Set the confidence threshold (default: 0.5).
27824
27825       labels
27826           Set path to label file specifying the mapping between label id and
27827           name.  Each label name is written in one line, tailing spaces and
27828           empty lines are skipped.  The first line is the name of label id 0
27829           (usually it is 'background'), and the second line is the name of
27830           label id 1, etc.  The label id is considered as name if the label
27831           file is not provided.
27832
27833       backend_configs
27834           Set the configs to be passed into backend. To use async execution,
27835           set async (default: set).  Roll back to sync execution if the
27836           backend does not support async.
27837
27838   dnn_processing
27839       Do image processing with deep neural networks. It works together with
27840       another filter which converts the pixel format of the Frame to what the
27841       dnn network requires.
27842
27843       The filter accepts the following options:
27844
27845       dnn_backend
27846           Specify which DNN backend to use for model loading and execution.
27847           This option accepts the following values:
27848
27849           native
27850               Native implementation of DNN loading and execution.
27851
27852           tensorflow
27853               TensorFlow backend. To enable this backend you need to install
27854               the TensorFlow for C library (see
27855               <https://www.tensorflow.org/install/lang_c>) and configure
27856               FFmpeg with "--enable-libtensorflow"
27857
27858           openvino
27859               OpenVINO backend. To enable this backend you need to build and
27860               install the OpenVINO for C library (see
27861               <https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md>)
27862               and configure FFmpeg with "--enable-libopenvino"
27863               (--extra-cflags=-I... --extra-ldflags=-L... might be needed if
27864               the header files and libraries are not installed into system
27865               path)
27866
27867           Default value is native.
27868
27869       model
27870           Set path to model file specifying network architecture and its
27871           parameters.  Note that different backends use different file
27872           formats. TensorFlow, OpenVINO and native backend can load files for
27873           only its format.
27874
27875           Native model file (.model) can be generated from TensorFlow model
27876           file (.pb) by using tools/python/convert.py
27877
27878       input
27879           Set the input name of the dnn network.
27880
27881       output
27882           Set the output name of the dnn network.
27883
27884       backend_configs
27885           Set the configs to be passed into backend. To use async execution,
27886           set async (default: set).  Roll back to sync execution if the
27887           backend does not support async.
27888
27889           For tensorflow backend, you can set its configs with sess_config
27890           options, please use tools/python/tf_sess_config.py to get the
27891           configs of TensorFlow backend for your system.
27892
27893       Examples
27894
27895       •   Remove rain in rgb24 frame with can.pb (see derain filter):
27896
27897                   ./ffmpeg -i rain.jpg -vf format=rgb24,dnn_processing=dnn_backend=tensorflow:model=can.pb:input=x:output=y derain.jpg
27898
27899       •   Halve the pixel value of the frame with format gray32f:
27900
27901                   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
27902
27903       •   Handle the Y channel with srcnn.pb (see sr filter) for frame with
27904           yuv420p (planar YUV formats supported):
27905
27906                   ./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
27907
27908       •   Handle the Y channel with espcn.pb (see sr filter), which changes
27909           frame size, for format yuv420p (planar YUV formats supported),
27910           please use tools/python/tf_sess_config.py to get the configs of
27911           TensorFlow backend for your system.
27912
27913                   ./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
27914
27915   drawbox
27916       Draw a colored box on the input image.
27917
27918       It accepts the following parameters:
27919
27920       x
27921       y   The expressions which specify the top left corner coordinates of
27922           the box. It defaults to 0.
27923
27924       width, w
27925       height, h
27926           The expressions which specify the width and height of the box; if 0
27927           they are interpreted as the input width and height. It defaults to
27928           0.
27929
27930       color, c
27931           Specify the color of the box to write. For the general syntax of
27932           this option, check the "Color" section in the ffmpeg-utils manual.
27933           If the special value "invert" is used, the box edge color is the
27934           same as the video with inverted luma.
27935
27936       thickness, t
27937           The expression which sets the thickness of the box edge.  A value
27938           of "fill" will create a filled box. Default value is 3.
27939
27940           See below for the list of accepted constants.
27941
27942       replace
27943           Applicable if the input has alpha. With value 1, the pixels of the
27944           painted box will overwrite the video's color and alpha pixels.
27945           Default is 0, which composites the box onto the input, leaving the
27946           video's alpha intact.
27947
27948       The parameters for x, y, w and h and t are expressions containing the
27949       following constants:
27950
27951       dar The input display aspect ratio, it is the same as (w / h) * sar.
27952
27953       hsub
27954       vsub
27955           horizontal and vertical chroma subsample values. For example for
27956           the pixel format "yuv422p" hsub is 2 and vsub is 1.
27957
27958       in_h, ih
27959       in_w, iw
27960           The input width and height.
27961
27962       sar The input sample aspect ratio.
27963
27964       x
27965       y   The x and y offset coordinates where the box is drawn.
27966
27967       w
27968       h   The width and height of the drawn box.
27969
27970       box_source
27971           Box source can be set as side_data_detection_bboxes if you want to
27972           use box data in detection bboxes of side data.
27973
27974           If box_source is set, the x, y, width and height will be ignored
27975           and still use box data in detection bboxes of side data. So please
27976           do not use this parameter if you were not sure about the box
27977           source.
27978
27979       t   The thickness of the drawn box.
27980
27981           These constants allow the x, y, w, h and t expressions to refer to
27982           each other, so you may for example specify "y=x/dar" or "h=w/dar".
27983
27984       Examples
27985
27986       •   Draw a black box around the edge of the input image:
27987
27988                   drawbox
27989
27990       •   Draw a box with color red and an opacity of 50%:
27991
27992                   drawbox=10:20:200:60:red@0.5
27993
27994           The previous example can be specified as:
27995
27996                   drawbox=x=10:y=20:w=200:h=60:color=red@0.5
27997
27998       •   Fill the box with pink color:
27999
28000                   drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill
28001
28002       •   Draw a 2-pixel red 2.40:1 mask:
28003
28004                   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
28005
28006       Commands
28007
28008       This filter supports same commands as options.  The command accepts the
28009       same syntax of the corresponding option.
28010
28011       If the specified expression is not valid, it is kept at its current
28012       value.
28013
28014   drawgraph
28015       Draw a graph using input video metadata.
28016
28017       It accepts the following parameters:
28018
28019       m1  Set 1st frame metadata key from which metadata values will be used
28020           to draw a graph.
28021
28022       fg1 Set 1st foreground color expression.
28023
28024       m2  Set 2nd frame metadata key from which metadata values will be used
28025           to draw a graph.
28026
28027       fg2 Set 2nd foreground color expression.
28028
28029       m3  Set 3rd frame metadata key from which metadata values will be used
28030           to draw a graph.
28031
28032       fg3 Set 3rd foreground color expression.
28033
28034       m4  Set 4th frame metadata key from which metadata values will be used
28035           to draw a graph.
28036
28037       fg4 Set 4th foreground color expression.
28038
28039       min Set minimal value of metadata value.
28040
28041       max Set maximal value of metadata value.
28042
28043       bg  Set graph background color. Default is white.
28044
28045       mode
28046           Set graph mode.
28047
28048           Available values for mode is:
28049
28050           bar
28051           dot
28052           line
28053
28054           Default is "line".
28055
28056       slide
28057           Set slide mode.
28058
28059           Available values for slide is:
28060
28061           frame
28062               Draw new frame when right border is reached.
28063
28064           replace
28065               Replace old columns with new ones.
28066
28067           scroll
28068               Scroll from right to left.
28069
28070           rscroll
28071               Scroll from left to right.
28072
28073           picture
28074               Draw single picture.
28075
28076           Default is "frame".
28077
28078       size
28079           Set size of graph video. For the syntax of this option, check the
28080           "Video size" section in the ffmpeg-utils manual.  The default value
28081           is "900x256".
28082
28083       rate, r
28084           Set the output frame rate. Default value is 25.
28085
28086           The foreground color expressions can use the following variables:
28087
28088           MIN Minimal value of metadata value.
28089
28090           MAX Maximal value of metadata value.
28091
28092           VAL Current metadata key value.
28093
28094           The color is defined as 0xAABBGGRR.
28095
28096       Example using metadata from signalstats filter:
28097
28098               signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255
28099
28100       Example using metadata from ebur128 filter:
28101
28102               ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5
28103
28104   drawgrid
28105       Draw a grid on the input image.
28106
28107       It accepts the following parameters:
28108
28109       x
28110       y   The expressions which specify the coordinates of some point of grid
28111           intersection (meant to configure offset). Both default to 0.
28112
28113       width, w
28114       height, h
28115           The expressions which specify the width and height of the grid
28116           cell, if 0 they are interpreted as the input width and height,
28117           respectively, minus "thickness", so image gets framed. Default to
28118           0.
28119
28120       color, c
28121           Specify the color of the grid. For the general syntax of this
28122           option, check the "Color" section in the ffmpeg-utils manual. If
28123           the special value "invert" is used, the grid color is the same as
28124           the video with inverted luma.
28125
28126       thickness, t
28127           The expression which sets the thickness of the grid line. Default
28128           value is 1.
28129
28130           See below for the list of accepted constants.
28131
28132       replace
28133           Applicable if the input has alpha. With 1 the pixels of the painted
28134           grid will overwrite the video's color and alpha pixels.  Default is
28135           0, which composites the grid onto the input, leaving the video's
28136           alpha intact.
28137
28138       The parameters for x, y, w and h and t are expressions containing the
28139       following constants:
28140
28141       dar The input display aspect ratio, it is the same as (w / h) * sar.
28142
28143       hsub
28144       vsub
28145           horizontal and vertical chroma subsample values. For example for
28146           the pixel format "yuv422p" hsub is 2 and vsub is 1.
28147
28148       in_h, ih
28149       in_w, iw
28150           The input grid cell width and height.
28151
28152       sar The input sample aspect ratio.
28153
28154       x
28155       y   The x and y coordinates of some point of grid intersection (meant
28156           to configure offset).
28157
28158       w
28159       h   The width and height of the drawn cell.
28160
28161       t   The thickness of the drawn cell.
28162
28163           These constants allow the x, y, w, h and t expressions to refer to
28164           each other, so you may for example specify "y=x/dar" or "h=w/dar".
28165
28166       Examples
28167
28168       •   Draw a grid with cell 100x100 pixels, thickness 2 pixels, with
28169           color red and an opacity of 50%:
28170
28171                   drawgrid=width=100:height=100:thickness=2:color=red@0.5
28172
28173       •   Draw a white 3x3 grid with an opacity of 50%:
28174
28175                   drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
28176
28177       Commands
28178
28179       This filter supports same commands as options.  The command accepts the
28180       same syntax of the corresponding option.
28181
28182       If the specified expression is not valid, it is kept at its current
28183       value.
28184
28185   drawtext
28186       Draw a text string or text from a specified file on top of a video,
28187       using the libfreetype library.
28188
28189       To enable compilation of this filter, you need to configure FFmpeg with
28190       "--enable-libfreetype".  To enable default font fallback and the font
28191       option you need to configure FFmpeg with "--enable-libfontconfig".  To
28192       enable the text_shaping option, you need to configure FFmpeg with
28193       "--enable-libfribidi".
28194
28195       Syntax
28196
28197       It accepts the following parameters:
28198
28199       box Used to draw a box around text using the background color.  The
28200           value must be either 1 (enable) or 0 (disable).  The default value
28201           of box is 0.
28202
28203       boxborderw
28204           Set the width of the border to be drawn around the box using
28205           boxcolor.  The default value of boxborderw is 0.
28206
28207       boxcolor
28208           The color to be used for drawing box around text. For the syntax of
28209           this option, check the "Color" section in the ffmpeg-utils manual.
28210
28211           The default value of boxcolor is "white".
28212
28213       line_spacing
28214           Set the line spacing in pixels of the border to be drawn around the
28215           box using box.  The default value of line_spacing is 0.
28216
28217       borderw
28218           Set the width of the border to be drawn around the text using
28219           bordercolor.  The default value of borderw is 0.
28220
28221       bordercolor
28222           Set the color to be used for drawing border around text. For the
28223           syntax of this option, check the "Color" section in the ffmpeg-
28224           utils manual.
28225
28226           The default value of bordercolor is "black".
28227
28228       expansion
28229           Select how the text is expanded. Can be either "none", "strftime"
28230           (deprecated) or "normal" (default). See the drawtext_expansion,
28231           Text expansion section below for details.
28232
28233       basetime
28234           Set a start time for the count. Value is in microseconds. Only
28235           applied in the deprecated strftime expansion mode. To emulate in
28236           normal expansion mode use the "pts" function, supplying the start
28237           time (in seconds) as the second argument.
28238
28239       fix_bounds
28240           If true, check and fix text coords to avoid clipping.
28241
28242       fontcolor
28243           The color to be used for drawing fonts. For the syntax of this
28244           option, check the "Color" section in the ffmpeg-utils manual.
28245
28246           The default value of fontcolor is "black".
28247
28248       fontcolor_expr
28249           String which is expanded the same way as text to obtain dynamic
28250           fontcolor value. By default this option has empty value and is not
28251           processed. When this option is set, it overrides fontcolor option.
28252
28253       font
28254           The font family to be used for drawing text. By default Sans.
28255
28256       fontfile
28257           The font file to be used for drawing text. The path must be
28258           included.  This parameter is mandatory if the fontconfig support is
28259           disabled.
28260
28261       alpha
28262           Draw the text applying alpha blending. The value can be a number
28263           between 0.0 and 1.0.  The expression accepts the same variables x,
28264           y as well.  The default value is 1.  Please see fontcolor_expr.
28265
28266       fontsize
28267           The font size to be used for drawing text.  The default value of
28268           fontsize is 16.
28269
28270       text_shaping
28271           If set to 1, attempt to shape the text (for example, reverse the
28272           order of right-to-left text and join Arabic characters) before
28273           drawing it.  Otherwise, just draw the text exactly as given.  By
28274           default 1 (if supported).
28275
28276       ft_load_flags
28277           The flags to be used for loading the fonts.
28278
28279           The flags map the corresponding flags supported by libfreetype, and
28280           are a combination of the following values:
28281
28282           default
28283           no_scale
28284           no_hinting
28285           render
28286           no_bitmap
28287           vertical_layout
28288           force_autohint
28289           crop_bitmap
28290           pedantic
28291           ignore_global_advance_width
28292           no_recurse
28293           ignore_transform
28294           monochrome
28295           linear_design
28296           no_autohint
28297
28298           Default value is "default".
28299
28300           For more information consult the documentation for the FT_LOAD_*
28301           libfreetype flags.
28302
28303       shadowcolor
28304           The color to be used for drawing a shadow behind the drawn text.
28305           For the syntax of this option, check the "Color" section in the
28306           ffmpeg-utils manual.
28307
28308           The default value of shadowcolor is "black".
28309
28310       shadowx
28311       shadowy
28312           The x and y offsets for the text shadow position with respect to
28313           the position of the text. They can be either positive or negative
28314           values. The default value for both is "0".
28315
28316       start_number
28317           The starting frame number for the n/frame_num variable. The default
28318           value is "0".
28319
28320       tabsize
28321           The size in number of spaces to use for rendering the tab.  Default
28322           value is 4.
28323
28324       timecode
28325           Set the initial timecode representation in "hh:mm:ss[:;.]ff"
28326           format. It can be used with or without text parameter.
28327           timecode_rate option must be specified.
28328
28329       timecode_rate, rate, r
28330           Set the timecode frame rate (timecode only). Value will be rounded
28331           to nearest integer. Minimum value is "1".  Drop-frame timecode is
28332           supported for frame rates 30 & 60.
28333
28334       tc24hmax
28335           If set to 1, the output of the timecode option will wrap around at
28336           24 hours.  Default is 0 (disabled).
28337
28338       text
28339           The text string to be drawn. The text must be a sequence of UTF-8
28340           encoded characters.  This parameter is mandatory if no file is
28341           specified with the parameter textfile.
28342
28343       textfile
28344           A text file containing text to be drawn. The text must be a
28345           sequence of UTF-8 encoded characters.
28346
28347           This parameter is mandatory if no text string is specified with the
28348           parameter text.
28349
28350           If both text and textfile are specified, an error is thrown.
28351
28352       text_source
28353           Text source should be set as side_data_detection_bboxes if you want
28354           to use text data in detection bboxes of side data.
28355
28356           If text source is set, text and textfile will be ignored and still
28357           use text data in detection bboxes of side data. So please do not
28358           use this parameter if you are not sure about the text source.
28359
28360       reload
28361           The textfile will be reloaded at specified frame interval.  Be sure
28362           to update textfile atomically, or it may be read partially, or even
28363           fail.  Range is 0 to INT_MAX. Default is 0.
28364
28365       x
28366       y   The expressions which specify the offsets where text will be drawn
28367           within the video frame. They are relative to the top/left border of
28368           the output image.
28369
28370           The default value of x and y is "0".
28371
28372           See below for the list of accepted constants and functions.
28373
28374       The parameters for x and y are expressions containing the following
28375       constants and functions:
28376
28377       dar input display aspect ratio, it is the same as (w / h) * sar
28378
28379       hsub
28380       vsub
28381           horizontal and vertical chroma subsample values. For example for
28382           the pixel format "yuv422p" hsub is 2 and vsub is 1.
28383
28384       line_h, lh
28385           the height of each text line
28386
28387       main_h, h, H
28388           the input height
28389
28390       main_w, w, W
28391           the input width
28392
28393       max_glyph_a, ascent
28394           the maximum distance from the baseline to the highest/upper grid
28395           coordinate used to place a glyph outline point, for all the
28396           rendered glyphs.  It is a positive value, due to the grid's
28397           orientation with the Y axis upwards.
28398
28399       max_glyph_d, descent
28400           the maximum distance from the baseline to the lowest grid
28401           coordinate used to place a glyph outline point, for all the
28402           rendered glyphs.  This is a negative value, due to the grid's
28403           orientation, with the Y axis upwards.
28404
28405       max_glyph_h
28406           maximum glyph height, that is the maximum height for all the glyphs
28407           contained in the rendered text, it is equivalent to ascent -
28408           descent.
28409
28410       max_glyph_w
28411           maximum glyph width, that is the maximum width for all the glyphs
28412           contained in the rendered text
28413
28414       n   the number of input frame, starting from 0
28415
28416       rand(min, max)
28417           return a random number included between min and max
28418
28419       sar The input sample aspect ratio.
28420
28421       t   timestamp expressed in seconds, NAN if the input timestamp is
28422           unknown
28423
28424       text_h, th
28425           the height of the rendered text
28426
28427       text_w, tw
28428           the width of the rendered text
28429
28430       x
28431       y   the x and y offset coordinates where the text is drawn.
28432
28433           These parameters allow the x and y expressions to refer to each
28434           other, so you can for example specify "y=x/dar".
28435
28436       pict_type
28437           A one character description of the current frame's picture type.
28438
28439       pkt_pos
28440           The current packet's position in the input file or stream (in
28441           bytes, from the start of the input). A value of -1 indicates this
28442           info is not available.
28443
28444       pkt_duration
28445           The current packet's duration, in seconds.
28446
28447       pkt_size
28448           The current packet's size (in bytes).
28449
28450       Text expansion
28451
28452       If expansion is set to "strftime", the filter recognizes strftime()
28453       sequences in the provided text and expands them accordingly. Check the
28454       documentation of strftime(). This feature is deprecated.
28455
28456       If expansion is set to "none", the text is printed verbatim.
28457
28458       If expansion is set to "normal" (which is the default), the following
28459       expansion mechanism is used.
28460
28461       The backslash character \, followed by any character, always expands to
28462       the second character.
28463
28464       Sequences of the form "%{...}" are expanded. The text between the
28465       braces is a function name, possibly followed by arguments separated by
28466       ':'.  If the arguments contain special characters or delimiters (':' or
28467       '}'), they should be escaped.
28468
28469       Note that they probably must also be escaped as the value for the text
28470       option in the filter argument string and as the filter argument in the
28471       filtergraph description, and possibly also for the shell, that makes up
28472       to four levels of escaping; using a text file avoids these problems.
28473
28474       The following functions are available:
28475
28476       expr, e
28477           The expression evaluation result.
28478
28479           It must take one argument specifying the expression to be
28480           evaluated, which accepts the same constants and functions as the x
28481           and y values. Note that not all constants should be used, for
28482           example the text size is not known when evaluating the expression,
28483           so the constants text_w and text_h will have an undefined value.
28484
28485       expr_int_format, eif
28486           Evaluate the expression's value and output as formatted integer.
28487
28488           The first argument is the expression to be evaluated, just as for
28489           the expr function.  The second argument specifies the output
28490           format. Allowed values are x, X, d and u. They are treated exactly
28491           as in the "printf" function.  The third parameter is optional and
28492           sets the number of positions taken by the output.  It can be used
28493           to add padding with zeros from the left.
28494
28495       gmtime
28496           The time at which the filter is running, expressed in UTC.  It can
28497           accept an argument: a strftime() format string.  The format string
28498           is extended to support the variable %[1-6]N which prints fractions
28499           of the second with optionally specified number of digits.
28500
28501       localtime
28502           The time at which the filter is running, expressed in the local
28503           time zone.  It can accept an argument: a strftime() format string.
28504           The format string is extended to support the variable %[1-6]N which
28505           prints fractions of the second with optionally specified number of
28506           digits.
28507
28508       metadata
28509           Frame metadata. Takes one or two arguments.
28510
28511           The first argument is mandatory and specifies the metadata key.
28512
28513           The second argument is optional and specifies a default value, used
28514           when the metadata key is not found or empty.
28515
28516           Available metadata can be identified by inspecting entries starting
28517           with TAG included within each frame section printed by running
28518           "ffprobe -show_frames".
28519
28520           String metadata generated in filters leading to the drawtext filter
28521           are also available.
28522
28523       n, frame_num
28524           The frame number, starting from 0.
28525
28526       pict_type
28527           A one character description of the current picture type.
28528
28529       pts The timestamp of the current frame.  It can take up to three
28530           arguments.
28531
28532           The first argument is the format of the timestamp; it defaults to
28533           "flt" for seconds as a decimal number with microsecond accuracy;
28534           "hms" stands for a formatted [-]HH:MM:SS.mmm timestamp with
28535           millisecond accuracy.  "gmtime" stands for the timestamp of the
28536           frame formatted as UTC time; "localtime" stands for the timestamp
28537           of the frame formatted as local time zone time.
28538
28539           The second argument is an offset added to the timestamp.
28540
28541           If the format is set to "hms", a third argument "24HH" may be
28542           supplied to present the hour part of the formatted timestamp in 24h
28543           format (00-23).
28544
28545           If the format is set to "localtime" or "gmtime", a third argument
28546           may be supplied: a strftime() format string.  By default, YYYY-MM-
28547           DD HH:MM:SS format will be used.
28548
28549       Commands
28550
28551       This filter supports altering parameters via commands:
28552
28553       reinit
28554           Alter existing filter parameters.
28555
28556           Syntax for the argument is the same as for filter invocation, e.g.
28557
28558                   fontsize=56:fontcolor=green:text='Hello World'
28559
28560           Full filter invocation with sendcmd would look like this:
28561
28562                   sendcmd=c='56.0 drawtext reinit fontsize=56\:fontcolor=green\:text=Hello\\ World'
28563
28564       If the entire argument can't be parsed or applied as valid values then
28565       the filter will continue with its existing parameters.
28566
28567       Examples
28568
28569       •   Draw "Test Text" with font FreeSerif, using the default values for
28570           the optional parameters.
28571
28572                   drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
28573
28574       •   Draw 'Test Text' with font FreeSerif of size 24 at position x=100
28575           and y=50 (counting from the top-left corner of the screen), text is
28576           yellow with a red box around it. Both the text and the box have an
28577           opacity of 20%.
28578
28579                   drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\
28580                             x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
28581
28582           Note that the double quotes are not necessary if spaces are not
28583           used within the parameter list.
28584
28585       •   Show the text at the center of the video frame:
28586
28587                   drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2"
28588
28589       •   Show the text at a random position, switching to a new position
28590           every 30 seconds:
28591
28592                   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)"
28593
28594       •   Show a text line sliding from right to left in the last row of the
28595           video frame. The file LONG_LINE is assumed to contain a single line
28596           with no newlines.
28597
28598                   drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
28599
28600       •   Show the content of file CREDITS off the bottom of the frame and
28601           scroll up.
28602
28603                   drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
28604
28605       •   Draw a single green letter "g", at the center of the input video.
28606           The glyph baseline is placed at half screen height.
28607
28608                   drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
28609
28610       •   Show text for 1 second every 3 seconds:
28611
28612                   drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
28613
28614       •   Use fontconfig to set the font. Note that the colons need to be
28615           escaped.
28616
28617                   drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
28618
28619       •   Draw "Test Text" with font size dependent on height of the video.
28620
28621                   drawtext="text='Test Text': fontsize=h/30: x=(w-text_w)/2: y=(h-text_h*2)"
28622
28623       •   Print the date of a real-time encoding (see strftime(3)):
28624
28625                   drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}'
28626
28627       •   Show text fading in and out (appearing/disappearing):
28628
28629                   #!/bin/sh
28630                   DS=1.0 # display start
28631                   DE=10.0 # display end
28632                   FID=1.5 # fade in duration
28633                   FOD=5 # fade out duration
28634                   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 }"
28635
28636       •   Horizontally align multiple separate texts. Note that max_glyph_a
28637           and the fontsize value are included in the y offset.
28638
28639                   drawtext=fontfile=FreeSans.ttf:text=DOG:fontsize=24:x=10:y=20+24-max_glyph_a,
28640                   drawtext=fontfile=FreeSans.ttf:text=cow:fontsize=24:x=80:y=20+24-max_glyph_a
28641
28642       •   Plot special lavf.image2dec.source_basename metadata onto each
28643           frame if such metadata exists. Otherwise, plot the string "NA".
28644           Note that image2 demuxer must have option -export_path_metadata 1
28645           for the special metadata fields to be available for filters.
28646
28647                   drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=10:y=10"
28648
28649       For more information about libfreetype, check:
28650       <http://www.freetype.org/>.
28651
28652       For more information about fontconfig, check:
28653       <http://freedesktop.org/software/fontconfig/fontconfig-user.html>.
28654
28655       For more information about libfribidi, check: <http://fribidi.org/>.
28656
28657   edgedetect
28658       Detect and draw edges. The filter uses the Canny Edge Detection
28659       algorithm.
28660
28661       The filter accepts the following options:
28662
28663       low
28664       high
28665           Set low and high threshold values used by the Canny thresholding
28666           algorithm.
28667
28668           The high threshold selects the "strong" edge pixels, which are then
28669           connected through 8-connectivity with the "weak" edge pixels
28670           selected by the low threshold.
28671
28672           low and high threshold values must be chosen in the range [0,1],
28673           and low should be lesser or equal to high.
28674
28675           Default value for low is "20/255", and default value for high is
28676           "50/255".
28677
28678       mode
28679           Define the drawing mode.
28680
28681           wires
28682               Draw white/gray wires on black background.
28683
28684           colormix
28685               Mix the colors to create a paint/cartoon effect.
28686
28687           canny
28688               Apply Canny edge detector on all selected planes.
28689
28690           Default value is wires.
28691
28692       planes
28693           Select planes for filtering. By default all available planes are
28694           filtered.
28695
28696       Examples
28697
28698       •   Standard edge detection with custom values for the hysteresis
28699           thresholding:
28700
28701                   edgedetect=low=0.1:high=0.4
28702
28703       •   Painting effect without thresholding:
28704
28705                   edgedetect=mode=colormix:high=0
28706
28707   elbg
28708       Apply a posterize effect using the ELBG (Enhanced LBG) algorithm.
28709
28710       For each input image, the filter will compute the optimal mapping from
28711       the input to the output given the codebook length, that is the number
28712       of distinct output colors.
28713
28714       This filter accepts the following options.
28715
28716       codebook_length, l
28717           Set codebook length. The value must be a positive integer, and
28718           represents the number of distinct output colors. Default value is
28719           256.
28720
28721       nb_steps, n
28722           Set the maximum number of iterations to apply for computing the
28723           optimal mapping. The higher the value the better the result and the
28724           higher the computation time. Default value is 1.
28725
28726       seed, s
28727           Set a random seed, must be an integer included between 0 and
28728           UINT32_MAX. If not specified, or if explicitly set to -1, the
28729           filter will try to use a good random seed on a best effort basis.
28730
28731       pal8
28732           Set pal8 output pixel format. This option does not work with
28733           codebook length greater than 256. Default is disabled.
28734
28735       use_alpha
28736           Include alpha values in the quantization calculation. Allows
28737           creating palettized output images (e.g. PNG8) with multiple alpha
28738           smooth blending.
28739
28740   entropy
28741       Measure graylevel entropy in histogram of color channels of video
28742       frames.
28743
28744       It accepts the following parameters:
28745
28746       mode
28747           Can be either normal or diff. Default is normal.
28748
28749           diff mode measures entropy of histogram delta values, absolute
28750           differences between neighbour histogram values.
28751
28752   epx
28753       Apply the EPX magnification filter which is designed for pixel art.
28754
28755       It accepts the following option:
28756
28757       n   Set the scaling dimension: 2 for "2xEPX", 3 for "3xEPX".  Default
28758           is 3.
28759
28760   eq
28761       Set brightness, contrast, saturation and approximate gamma adjustment.
28762
28763       The filter accepts the following options:
28764
28765       contrast
28766           Set the contrast expression. The value must be a float value in
28767           range "-1000.0" to 1000.0. The default value is "1".
28768
28769       brightness
28770           Set the brightness expression. The value must be a float value in
28771           range "-1.0" to 1.0. The default value is "0".
28772
28773       saturation
28774           Set the saturation expression. The value must be a float in range
28775           0.0 to 3.0. The default value is "1".
28776
28777       gamma
28778           Set the gamma expression. The value must be a float in range 0.1 to
28779           10.0.  The default value is "1".
28780
28781       gamma_r
28782           Set the gamma expression for red. The value must be a float in
28783           range 0.1 to 10.0. The default value is "1".
28784
28785       gamma_g
28786           Set the gamma expression for green. The value must be a float in
28787           range 0.1 to 10.0. The default value is "1".
28788
28789       gamma_b
28790           Set the gamma expression for blue. The value must be a float in
28791           range 0.1 to 10.0. The default value is "1".
28792
28793       gamma_weight
28794           Set the gamma weight expression. It can be used to reduce the
28795           effect of a high gamma value on bright image areas, e.g. keep them
28796           from getting overamplified and just plain white. The value must be
28797           a float in range 0.0 to 1.0. A value of 0.0 turns the gamma
28798           correction all the way down while 1.0 leaves it at its full
28799           strength. Default is "1".
28800
28801       eval
28802           Set when the expressions for brightness, contrast, saturation and
28803           gamma expressions are evaluated.
28804
28805           It accepts the following values:
28806
28807           init
28808               only evaluate expressions once during the filter initialization
28809               or when a command is processed
28810
28811           frame
28812               evaluate expressions for each incoming frame
28813
28814           Default value is init.
28815
28816       The expressions accept the following parameters:
28817
28818       n   frame count of the input frame starting from 0
28819
28820       pos byte position of the corresponding packet in the input file, NAN if
28821           unspecified
28822
28823       r   frame rate of the input video, NAN if the input frame rate is
28824           unknown
28825
28826       t   timestamp expressed in seconds, NAN if the input timestamp is
28827           unknown
28828
28829       Commands
28830
28831       The filter supports the following commands:
28832
28833       contrast
28834           Set the contrast expression.
28835
28836       brightness
28837           Set the brightness expression.
28838
28839       saturation
28840           Set the saturation expression.
28841
28842       gamma
28843           Set the gamma expression.
28844
28845       gamma_r
28846           Set the gamma_r expression.
28847
28848       gamma_g
28849           Set gamma_g expression.
28850
28851       gamma_b
28852           Set gamma_b expression.
28853
28854       gamma_weight
28855           Set gamma_weight expression.
28856
28857           The command accepts the same syntax of the corresponding option.
28858
28859           If the specified expression is not valid, it is kept at its current
28860           value.
28861
28862   erosion
28863       Apply erosion effect to the video.
28864
28865       This filter replaces the pixel by the local(3x3) minimum.
28866
28867       It accepts the following options:
28868
28869       threshold0
28870       threshold1
28871       threshold2
28872       threshold3
28873           Limit the maximum change for each plane, default is 65535.  If 0,
28874           plane will remain unchanged.
28875
28876       coordinates
28877           Flag which specifies the pixel to refer to. Default is 255 i.e. all
28878           eight pixels are used.
28879
28880           Flags to local 3x3 coordinates maps like this:
28881
28882               1 2 3
28883               4   5
28884               6 7 8
28885
28886       Commands
28887
28888       This filter supports the all above options as commands.
28889
28890   estdif
28891       Deinterlace the input video ("estdif" stands for "Edge Slope Tracing
28892       Deinterlacing Filter").
28893
28894       Spatial only filter that uses edge slope tracing algorithm to
28895       interpolate missing lines.  It accepts the following parameters:
28896
28897       mode
28898           The interlacing mode to adopt. It accepts one of the following
28899           values:
28900
28901           frame
28902               Output one frame for each frame.
28903
28904           field
28905               Output one frame for each field.
28906
28907           The default value is "field".
28908
28909       parity
28910           The picture field parity assumed for the input interlaced video. It
28911           accepts one of the following values:
28912
28913           tff Assume the top field is first.
28914
28915           bff Assume the bottom field is first.
28916
28917           auto
28918               Enable automatic detection of field parity.
28919
28920           The default value is "auto".  If the interlacing is unknown or the
28921           decoder does not export this information, top field first will be
28922           assumed.
28923
28924       deint
28925           Specify which frames to deinterlace. Accepts one of the following
28926           values:
28927
28928           all Deinterlace all frames.
28929
28930           interlaced
28931               Only deinterlace frames marked as interlaced.
28932
28933           The default value is "all".
28934
28935       rslope
28936           Specify the search radius for edge slope tracing. Default value is
28937           1.  Allowed range is from 1 to 15.
28938
28939       redge
28940           Specify the search radius for best edge matching. Default value is
28941           2.  Allowed range is from 0 to 15.
28942
28943       ecost
28944           Specify the edge cost for edge matching. Default value is 1.0.
28945           Allowed range is from 0 to 9.
28946
28947       mcost
28948           Specify the middle cost for edge matching. Default value is 0.5.
28949           Allowed range is from 0 to 1.
28950
28951       dcost
28952           Specify the distance cost for edge matching. Default value is 0.5.
28953           Allowed range is from 0 to 1.
28954
28955       interp
28956           Specify the interpolation used. Default is 4-point interpolation.
28957           It accepts one of the following values:
28958
28959           2p  Two-point interpolation.
28960
28961           4p  Four-point interpolation.
28962
28963           6p  Six-point interpolation.
28964
28965       Commands
28966
28967       This filter supports same commands as options.
28968
28969   exposure
28970       Adjust exposure of the video stream.
28971
28972       The filter accepts the following options:
28973
28974       exposure
28975           Set the exposure correction in EV. Allowed range is from -3.0 to
28976           3.0 EV Default value is 0 EV.
28977
28978       black
28979           Set the black level correction. Allowed range is from -1.0 to 1.0.
28980           Default value is 0.
28981
28982       Commands
28983
28984       This filter supports same commands as options.
28985
28986   extractplanes
28987       Extract color channel components from input video stream into separate
28988       grayscale video streams.
28989
28990       The filter accepts the following option:
28991
28992       planes
28993           Set plane(s) to extract.
28994
28995           Available values for planes are:
28996
28997           y
28998           u
28999           v
29000           a
29001           r
29002           g
29003           b
29004
29005           Choosing planes not available in the input will result in an error.
29006           That means you cannot select "r", "g", "b" planes with "y", "u",
29007           "v" planes at same time.
29008
29009       Examples
29010
29011       •   Extract luma, u and v color channel component from input video
29012           frame into 3 grayscale outputs:
29013
29014                   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
29015
29016   fade
29017       Apply a fade-in/out effect to the input video.
29018
29019       It accepts the following parameters:
29020
29021       type, t
29022           The effect type can be either "in" for a fade-in, or "out" for a
29023           fade-out effect.  Default is "in".
29024
29025       start_frame, s
29026           Specify the number of the frame to start applying the fade effect
29027           at. Default is 0.
29028
29029       nb_frames, n
29030           The number of frames that the fade effect lasts. At the end of the
29031           fade-in effect, the output video will have the same intensity as
29032           the input video.  At the end of the fade-out transition, the output
29033           video will be filled with the selected color.  Default is 25.
29034
29035       alpha
29036           If set to 1, fade only alpha channel, if one exists on the input.
29037           Default value is 0.
29038
29039       start_time, st
29040           Specify the timestamp (in seconds) of the frame to start to apply
29041           the fade effect. If both start_frame and start_time are specified,
29042           the fade will start at whichever comes last.  Default is 0.
29043
29044       duration, d
29045           The number of seconds for which the fade effect has to last. At the
29046           end of the fade-in effect the output video will have the same
29047           intensity as the input video, at the end of the fade-out transition
29048           the output video will be filled with the selected color.  If both
29049           duration and nb_frames are specified, duration is used. Default is
29050           0 (nb_frames is used by default).
29051
29052       color, c
29053           Specify the color of the fade. Default is "black".
29054
29055       Examples
29056
29057       •   Fade in the first 30 frames of video:
29058
29059                   fade=in:0:30
29060
29061           The command above is equivalent to:
29062
29063                   fade=t=in:s=0:n=30
29064
29065       •   Fade out the last 45 frames of a 200-frame video:
29066
29067                   fade=out:155:45
29068                   fade=type=out:start_frame=155:nb_frames=45
29069
29070       •   Fade in the first 25 frames and fade out the last 25 frames of a
29071           1000-frame video:
29072
29073                   fade=in:0:25, fade=out:975:25
29074
29075       •   Make the first 5 frames yellow, then fade in from frame 5-24:
29076
29077                   fade=in:5:20:color=yellow
29078
29079       •   Fade in alpha over first 25 frames of video:
29080
29081                   fade=in:0:25:alpha=1
29082
29083       •   Make the first 5.5 seconds black, then fade in for 0.5 seconds:
29084
29085                   fade=t=in:st=5.5:d=0.5
29086
29087   feedback
29088       Apply feedback video filter.
29089
29090       This filter pass cropped input frames to 2nd output.  From there it can
29091       be filtered with other video filters.  After filter receives frame from
29092       2nd input, that frame is combined on top of original frame from 1st
29093       input and passed to 1st output.
29094
29095       The typical usage is filter only part of frame.
29096
29097       The filter accepts the following options:
29098
29099       x
29100       y   Set the top left crop position.
29101
29102       w
29103       h   Set the crop size.
29104
29105       Examples
29106
29107       •   Blur only top left rectangular part of video frame size 100x100
29108           with gblur filter.
29109
29110                   [in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]gblur=8[blurin]
29111
29112       •   Draw black box on top left part of video frame of size 100x100 with
29113           drawbox filter.
29114
29115                   [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]
29116
29117   fftdnoiz
29118       Denoise frames using 3D FFT (frequency domain filtering).
29119
29120       The filter accepts the following options:
29121
29122       sigma
29123           Set the noise sigma constant. This sets denoising strength.
29124           Default value is 1. Allowed range is from 0 to 30.  Using very high
29125           sigma with low overlap may give blocking artifacts.
29126
29127       amount
29128           Set amount of denoising. By default all detected noise is reduced.
29129           Default value is 1. Allowed range is from 0 to 1.
29130
29131       block
29132           Set size of block in pixels, Default is 32, can be 8 to 256.
29133
29134       overlap
29135           Set block overlap. Default is 0.5. Allowed range is from 0.2 to
29136           0.8.
29137
29138       method
29139           Set denoising method. Default is "wiener", can also be "hard".
29140
29141       prev
29142           Set number of previous frames to use for denoising. By default is
29143           set to 0.
29144
29145       next
29146           Set number of next frames to to use for denoising. By default is
29147           set to 0.
29148
29149       planes
29150           Set planes which will be filtered, by default are all available
29151           filtered except alpha.
29152
29153   fftfilt
29154       Apply arbitrary expressions to samples in frequency domain
29155
29156       dc_Y
29157           Adjust the dc value (gain) of the luma plane of the image. The
29158           filter accepts an integer value in range 0 to 1000. The default
29159           value is set to 0.
29160
29161       dc_U
29162           Adjust the dc value (gain) of the 1st chroma plane of the image.
29163           The filter accepts an integer value in range 0 to 1000. The default
29164           value is set to 0.
29165
29166       dc_V
29167           Adjust the dc value (gain) of the 2nd chroma plane of the image.
29168           The filter accepts an integer value in range 0 to 1000. The default
29169           value is set to 0.
29170
29171       weight_Y
29172           Set the frequency domain weight expression for the luma plane.
29173
29174       weight_U
29175           Set the frequency domain weight expression for the 1st chroma
29176           plane.
29177
29178       weight_V
29179           Set the frequency domain weight expression for the 2nd chroma
29180           plane.
29181
29182       eval
29183           Set when the expressions are evaluated.
29184
29185           It accepts the following values:
29186
29187           init
29188               Only evaluate expressions once during the filter
29189               initialization.
29190
29191           frame
29192               Evaluate expressions for each incoming frame.
29193
29194           Default value is init.
29195
29196           The filter accepts the following variables:
29197
29198       X
29199       Y   The coordinates of the current sample.
29200
29201       W
29202       H   The width and height of the image.
29203
29204       N   The number of input frame, starting from 0.
29205
29206       WS
29207       HS  The size of FFT array for horizontal and vertical processing.
29208
29209       Examples
29210
29211       •   High-pass:
29212
29213                   fftfilt=dc_Y=128:weight_Y='squish(1-(Y+X)/100)'
29214
29215       •   Low-pass:
29216
29217                   fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)'
29218
29219       •   Sharpen:
29220
29221                   fftfilt=dc_Y=0:weight_Y='1+squish(1-(Y+X)/100)'
29222
29223       •   Blur:
29224
29225                   fftfilt=dc_Y=0:weight_Y='exp(-4 * ((Y+X)/(W+H)))'
29226
29227   field
29228       Extract a single field from an interlaced image using stride arithmetic
29229       to avoid wasting CPU time. The output frames are marked as non-
29230       interlaced.
29231
29232       The filter accepts the following options:
29233
29234       type
29235           Specify whether to extract the top (if the value is 0 or "top") or
29236           the bottom field (if the value is 1 or "bottom").
29237
29238   fieldhint
29239       Create new frames by copying the top and bottom fields from surrounding
29240       frames supplied as numbers by the hint file.
29241
29242       hint
29243           Set file containing hints: absolute/relative frame numbers.
29244
29245           There must be one line for each frame in a clip. Each line must
29246           contain two numbers separated by the comma, optionally followed by
29247           "-" or "+".  Numbers supplied on each line of file can not be out
29248           of [N-1,N+1] where N is current frame number for "absolute" mode or
29249           out of [-1, 1] range for "relative" mode. First number tells from
29250           which frame to pick up top field and second number tells from which
29251           frame to pick up bottom field.
29252
29253           If optionally followed by "+" output frame will be marked as
29254           interlaced, else if followed by "-" output frame will be marked as
29255           progressive, else it will be marked same as input frame.  If
29256           optionally followed by "t" output frame will use only top field, or
29257           in case of "b" it will use only bottom field.  If line starts with
29258           "#" or ";" that line is skipped.
29259
29260       mode
29261           Can be item "absolute" or "relative" or "pattern". Default is
29262           "absolute".  The "pattern" mode is same as "relative" mode, except
29263           at last entry of file if there are more frames to process than
29264           "hint" file is seek back to start.
29265
29266       Example of first several lines of "hint" file for "relative" mode:
29267
29268               0,0 - # first frame
29269               1,0 - # second frame, use third's frame top field and second's frame bottom field
29270               1,0 - # third frame, use fourth's frame top field and third's frame bottom field
29271               1,0 -
29272               0,0 -
29273               0,0 -
29274               1,0 -
29275               1,0 -
29276               1,0 -
29277               0,0 -
29278               0,0 -
29279               1,0 -
29280               1,0 -
29281               1,0 -
29282               0,0 -
29283
29284   fieldmatch
29285       Field matching filter for inverse telecine. It is meant to reconstruct
29286       the progressive frames from a telecined stream. The filter does not
29287       drop duplicated frames, so to achieve a complete inverse telecine
29288       "fieldmatch" needs to be followed by a decimation filter such as
29289       decimate in the filtergraph.
29290
29291       The separation of the field matching and the decimation is notably
29292       motivated by the possibility of inserting a de-interlacing filter
29293       fallback between the two.  If the source has mixed telecined and real
29294       interlaced content, "fieldmatch" will not be able to match fields for
29295       the interlaced parts.  But these remaining combed frames will be marked
29296       as interlaced, and thus can be de-interlaced by a later filter such as
29297       yadif before decimation.
29298
29299       In addition to the various configuration options, "fieldmatch" can take
29300       an optional second stream, activated through the ppsrc option. If
29301       enabled, the frames reconstruction will be based on the fields and
29302       frames from this second stream. This allows the first input to be pre-
29303       processed in order to help the various algorithms of the filter, while
29304       keeping the output lossless (assuming the fields are matched properly).
29305       Typically, a field-aware denoiser, or brightness/contrast adjustments
29306       can help.
29307
29308       Note that this filter uses the same algorithms as TIVTC/TFM (AviSynth
29309       project) and VIVTC/VFM (VapourSynth project). The later is a light
29310       clone of TFM from which "fieldmatch" is based on. While the semantic
29311       and usage are very close, some behaviour and options names can differ.
29312
29313       The decimate filter currently only works for constant frame rate input.
29314       If your input has mixed telecined (30fps) and progressive content with
29315       a lower framerate like 24fps use the following filterchain to produce
29316       the necessary cfr stream:
29317       "dejudder,fps=30000/1001,fieldmatch,decimate".
29318
29319       The filter accepts the following options:
29320
29321       order
29322           Specify the assumed field order of the input stream. Available
29323           values are:
29324
29325           auto
29326               Auto detect parity (use FFmpeg's internal parity value).
29327
29328           bff Assume bottom field first.
29329
29330           tff Assume top field first.
29331
29332           Note that it is sometimes recommended not to trust the parity
29333           announced by the stream.
29334
29335           Default value is auto.
29336
29337       mode
29338           Set the matching mode or strategy to use. pc mode is the safest in
29339           the sense that it won't risk creating jerkiness due to duplicate
29340           frames when possible, but if there are bad edits or blended fields
29341           it will end up outputting combed frames when a good match might
29342           actually exist. On the other hand, pcn_ub mode is the most risky in
29343           terms of creating jerkiness, but will almost always find a good
29344           frame if there is one. The other values are all somewhere in
29345           between pc and pcn_ub in terms of risking jerkiness and creating
29346           duplicate frames versus finding good matches in sections with bad
29347           edits, orphaned fields, blended fields, etc.
29348
29349           More details about p/c/n/u/b are available in p/c/n/u/b meaning
29350           section.
29351
29352           Available values are:
29353
29354           pc  2-way matching (p/c)
29355
29356           pc_n
29357               2-way matching, and trying 3rd match if still combed (p/c + n)
29358
29359           pc_u
29360               2-way matching, and trying 3rd match (same order) if still
29361               combed (p/c + u)
29362
29363           pc_n_ub
29364               2-way matching, trying 3rd match if still combed, and trying
29365               4th/5th matches if still combed (p/c + n + u/b)
29366
29367           pcn 3-way matching (p/c/n)
29368
29369           pcn_ub
29370               3-way matching, and trying 4th/5th matches if all 3 of the
29371               original matches are detected as combed (p/c/n + u/b)
29372
29373           The parenthesis at the end indicate the matches that would be used
29374           for that mode assuming order=tff (and field on auto or top).
29375
29376           In terms of speed pc mode is by far the fastest and pcn_ub is the
29377           slowest.
29378
29379           Default value is pc_n.
29380
29381       ppsrc
29382           Mark the main input stream as a pre-processed input, and enable the
29383           secondary input stream as the clean source to pick the fields from.
29384           See the filter introduction for more details. It is similar to the
29385           clip2 feature from VFM/TFM.
29386
29387           Default value is 0 (disabled).
29388
29389       field
29390           Set the field to match from. It is recommended to set this to the
29391           same value as order unless you experience matching failures with
29392           that setting. In certain circumstances changing the field that is
29393           used to match from can have a large impact on matching performance.
29394           Available values are:
29395
29396           auto
29397               Automatic (same value as order).
29398
29399           bottom
29400               Match from the bottom field.
29401
29402           top Match from the top field.
29403
29404           Default value is auto.
29405
29406       mchroma
29407           Set whether or not chroma is included during the match comparisons.
29408           In most cases it is recommended to leave this enabled. You should
29409           set this to 0 only if your clip has bad chroma problems such as
29410           heavy rainbowing or other artifacts. Setting this to 0 could also
29411           be used to speed things up at the cost of some accuracy.
29412
29413           Default value is 1.
29414
29415       y0
29416       y1  These define an exclusion band which excludes the lines between y0
29417           and y1 from being included in the field matching decision. An
29418           exclusion band can be used to ignore subtitles, a logo, or other
29419           things that may interfere with the matching. y0 sets the starting
29420           scan line and y1 sets the ending line; all lines in between y0 and
29421           y1 (including y0 and y1) will be ignored. Setting y0 and y1 to the
29422           same value will disable the feature.  y0 and y1 defaults to 0.
29423
29424       scthresh
29425           Set the scene change detection threshold as a percentage of maximum
29426           change on the luma plane. Good values are in the "[8.0, 14.0]"
29427           range. Scene change detection is only relevant in case
29428           combmatch=sc.  The range for scthresh is "[0.0, 100.0]".
29429
29430           Default value is 12.0.
29431
29432       combmatch
29433           When combatch is not none, "fieldmatch" will take into account the
29434           combed scores of matches when deciding what match to use as the
29435           final match. Available values are:
29436
29437           none
29438               No final matching based on combed scores.
29439
29440           sc  Combed scores are only used when a scene change is detected.
29441
29442           full
29443               Use combed scores all the time.
29444
29445           Default is sc.
29446
29447       combdbg
29448           Force "fieldmatch" to calculate the combed metrics for certain
29449           matches and print them. This setting is known as micout in TFM/VFM
29450           vocabulary.  Available values are:
29451
29452           none
29453               No forced calculation.
29454
29455           pcn Force p/c/n calculations.
29456
29457           pcnub
29458               Force p/c/n/u/b calculations.
29459
29460           Default value is none.
29461
29462       cthresh
29463           This is the area combing threshold used for combed frame detection.
29464           This essentially controls how "strong" or "visible" combing must be
29465           to be detected.  Larger values mean combing must be more visible
29466           and smaller values mean combing can be less visible or strong and
29467           still be detected. Valid settings are from "-1" (every pixel will
29468           be detected as combed) to 255 (no pixel will be detected as
29469           combed). This is basically a pixel difference value. A good range
29470           is "[8, 12]".
29471
29472           Default value is 9.
29473
29474       chroma
29475           Sets whether or not chroma is considered in the combed frame
29476           decision.  Only disable this if your source has chroma problems
29477           (rainbowing, etc.) that are causing problems for the combed frame
29478           detection with chroma enabled. Actually, using chroma=0 is usually
29479           more reliable, except for the case where there is chroma only
29480           combing in the source.
29481
29482           Default value is 0.
29483
29484       blockx
29485       blocky
29486           Respectively set the x-axis and y-axis size of the window used
29487           during combed frame detection. This has to do with the size of the
29488           area in which combpel pixels are required to be detected as combed
29489           for a frame to be declared combed. See the combpel parameter
29490           description for more info.  Possible values are any number that is
29491           a power of 2 starting at 4 and going up to 512.
29492
29493           Default value is 16.
29494
29495       combpel
29496           The number of combed pixels inside any of the blocky by blockx size
29497           blocks on the frame for the frame to be detected as combed. While
29498           cthresh controls how "visible" the combing must be, this setting
29499           controls "how much" combing there must be in any localized area (a
29500           window defined by the blockx and blocky settings) on the frame.
29501           Minimum value is 0 and maximum is "blocky x blockx" (at which point
29502           no frames will ever be detected as combed). This setting is known
29503           as MI in TFM/VFM vocabulary.
29504
29505           Default value is 80.
29506
29507       p/c/n/u/b meaning
29508
29509       p/c/n
29510
29511       We assume the following telecined stream:
29512
29513               Top fields:     1 2 2 3 4
29514               Bottom fields:  1 2 3 4 4
29515
29516       The numbers correspond to the progressive frame the fields relate to.
29517       Here, the first two frames are progressive, the 3rd and 4th are combed,
29518       and so on.
29519
29520       When "fieldmatch" is configured to run a matching from bottom
29521       (field=bottom) this is how this input stream get transformed:
29522
29523               Input stream:
29524                               T     1 2 2 3 4
29525                               B     1 2 3 4 4   <-- matching reference
29526
29527               Matches:              c c n n c
29528
29529               Output stream:
29530                               T     1 2 3 4 4
29531                               B     1 2 3 4 4
29532
29533       As a result of the field matching, we can see that some frames get
29534       duplicated.  To perform a complete inverse telecine, you need to rely
29535       on a decimation filter after this operation. See for instance the
29536       decimate filter.
29537
29538       The same operation now matching from top fields (field=top) looks like
29539       this:
29540
29541               Input stream:
29542                               T     1 2 2 3 4   <-- matching reference
29543                               B     1 2 3 4 4
29544
29545               Matches:              c c p p c
29546
29547               Output stream:
29548                               T     1 2 2 3 4
29549                               B     1 2 2 3 4
29550
29551       In these examples, we can see what p, c and n mean; basically, they
29552       refer to the frame and field of the opposite parity:
29553
29554       *<p matches the field of the opposite parity in the previous frame>
29555       *<c matches the field of the opposite parity in the current frame>
29556       *<n matches the field of the opposite parity in the next frame>
29557
29558       u/b
29559
29560       The u and b matching are a bit special in the sense that they match
29561       from the opposite parity flag. In the following examples, we assume
29562       that we are currently matching the 2nd frame (Top:2, bottom:2).
29563       According to the match, a 'x' is placed above and below each matched
29564       fields.
29565
29566       With bottom matching (field=bottom):
29567
29568               Match:           c         p           n          b          u
29569
29570                                x       x               x        x          x
29571                 Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
29572                 Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
29573                                x         x           x        x              x
29574
29575               Output frames:
29576                                2          1          2          2          2
29577                                2          2          2          1          3
29578
29579       With top matching (field=top):
29580
29581               Match:           c         p           n          b          u
29582
29583                                x         x           x        x              x
29584                 Top          1 2 2     1 2 2       1 2 2      1 2 2      1 2 2
29585                 Bottom       1 2 3     1 2 3       1 2 3      1 2 3      1 2 3
29586                                x       x               x        x          x
29587
29588               Output frames:
29589                                2          2          2          1          2
29590                                2          1          3          2          2
29591
29592       Examples
29593
29594       Simple IVTC of a top field first telecined stream:
29595
29596               fieldmatch=order=tff:combmatch=none, decimate
29597
29598       Advanced IVTC, with fallback on yadif for still combed frames:
29599
29600               fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
29601
29602   fieldorder
29603       Transform the field order of the input video.
29604
29605       It accepts the following parameters:
29606
29607       order
29608           The output field order. Valid values are tff for top field first or
29609           bff for bottom field first.
29610
29611       The default value is tff.
29612
29613       The transformation is done by shifting the picture content up or down
29614       by one line, and filling the remaining line with appropriate picture
29615       content.  This method is consistent with most broadcast field order
29616       converters.
29617
29618       If the input video is not flagged as being interlaced, or it is already
29619       flagged as being of the required output field order, then this filter
29620       does not alter the incoming video.
29621
29622       It is very useful when converting to or from PAL DV material, which is
29623       bottom field first.
29624
29625       For example:
29626
29627               ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
29628
29629   fifo, afifo
29630       Buffer input images and send them when they are requested.
29631
29632       It is mainly useful when auto-inserted by the libavfilter framework.
29633
29634       It does not take parameters.
29635
29636   fillborders
29637       Fill borders of the input video, without changing video stream
29638       dimensions.  Sometimes video can have garbage at the four edges and you
29639       may not want to crop video input to keep size multiple of some number.
29640
29641       This filter accepts the following options:
29642
29643       left
29644           Number of pixels to fill from left border.
29645
29646       right
29647           Number of pixels to fill from right border.
29648
29649       top Number of pixels to fill from top border.
29650
29651       bottom
29652           Number of pixels to fill from bottom border.
29653
29654       mode
29655           Set fill mode.
29656
29657           It accepts the following values:
29658
29659           smear
29660               fill pixels using outermost pixels
29661
29662           mirror
29663               fill pixels using mirroring (half sample symmetric)
29664
29665           fixed
29666               fill pixels with constant value
29667
29668           reflect
29669               fill pixels using reflecting (whole sample symmetric)
29670
29671           wrap
29672               fill pixels using wrapping
29673
29674           fade
29675               fade pixels to constant value
29676
29677           margins
29678               fill pixels at top and bottom with weighted averages pixels
29679               near borders
29680
29681           Default is smear.
29682
29683       color
29684           Set color for pixels in fixed or fade mode. Default is black.
29685
29686       Commands
29687
29688       This filter supports same commands as options.  The command accepts the
29689       same syntax of the corresponding option.
29690
29691       If the specified expression is not valid, it is kept at its current
29692       value.
29693
29694   find_rect
29695       Find a rectangular object
29696
29697       It accepts the following options:
29698
29699       object
29700           Filepath of the object image, needs to be in gray8.
29701
29702       threshold
29703           Detection threshold, default is 0.5.
29704
29705       mipmaps
29706           Number of mipmaps, default is 3.
29707
29708       xmin, ymin, xmax, ymax
29709           Specifies the rectangle in which to search.
29710
29711       discard
29712           Discard frames where object is not detected. Default is disabled.
29713
29714       Examples
29715
29716       •   Cover a rectangular object by the supplied image of a given video
29717           using ffmpeg:
29718
29719                   ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
29720
29721   floodfill
29722       Flood area with values of same pixel components with another values.
29723
29724       It accepts the following options:
29725
29726       x   Set pixel x coordinate.
29727
29728       y   Set pixel y coordinate.
29729
29730       s0  Set source #0 component value.
29731
29732       s1  Set source #1 component value.
29733
29734       s2  Set source #2 component value.
29735
29736       s3  Set source #3 component value.
29737
29738       d0  Set destination #0 component value.
29739
29740       d1  Set destination #1 component value.
29741
29742       d2  Set destination #2 component value.
29743
29744       d3  Set destination #3 component value.
29745
29746   format
29747       Convert the input video to one of the specified pixel formats.
29748       Libavfilter will try to pick one that is suitable as input to the next
29749       filter.
29750
29751       It accepts the following parameters:
29752
29753       pix_fmts
29754           A '|'-separated list of pixel format names, such as
29755           "pix_fmts=yuv420p|monow|rgb24".
29756
29757       Examples
29758
29759       •   Convert the input video to the yuv420p format
29760
29761                   format=pix_fmts=yuv420p
29762
29763           Convert the input video to any of the formats in the list
29764
29765                   format=pix_fmts=yuv420p|yuv444p|yuv410p
29766
29767   fps
29768       Convert the video to specified constant frame rate by duplicating or
29769       dropping frames as necessary.
29770
29771       It accepts the following parameters:
29772
29773       fps The desired output frame rate. It accepts expressions containing
29774           the following constants:
29775
29776           source_fps
29777               The input's frame rate
29778
29779           ntsc
29780               NTSC frame rate of "30000/1001"
29781
29782           pal PAL frame rate of 25.0
29783
29784           film
29785               Film frame rate of 24.0
29786
29787           ntsc_film
29788               NTSC-film frame rate of "24000/1001"
29789
29790           The default is 25.
29791
29792       start_time
29793           Assume the first PTS should be the given value, in seconds. This
29794           allows for padding/trimming at the start of stream. By default, no
29795           assumption is made about the first frame's expected PTS, so no
29796           padding or trimming is done.  For example, this could be set to 0
29797           to pad the beginning with duplicates of the first frame if a video
29798           stream starts after the audio stream or to trim any frames with a
29799           negative PTS.
29800
29801       round
29802           Timestamp (PTS) rounding method.
29803
29804           Possible values are:
29805
29806           zero
29807               round towards 0
29808
29809           inf round away from 0
29810
29811           down
29812               round towards -infinity
29813
29814           up  round towards +infinity
29815
29816           near
29817               round to nearest
29818
29819           The default is "near".
29820
29821       eof_action
29822           Action performed when reading the last frame.
29823
29824           Possible values are:
29825
29826           round
29827               Use same timestamp rounding method as used for other frames.
29828
29829           pass
29830               Pass through last frame if input duration has not been reached
29831               yet.
29832
29833           The default is "round".
29834
29835       Alternatively, the options can be specified as a flat string:
29836       fps[:start_time[:round]].
29837
29838       See also the setpts filter.
29839
29840       Examples
29841
29842       •   A typical usage in order to set the fps to 25:
29843
29844                   fps=fps=25
29845
29846       •   Sets the fps to 24, using abbreviation and rounding method to round
29847           to nearest:
29848
29849                   fps=fps=film:round=near
29850
29851   framepack
29852       Pack two different video streams into a stereoscopic video, setting
29853       proper metadata on supported codecs. The two views should have the same
29854       size and framerate and processing will stop when the shorter video
29855       ends. Please note that you may conveniently adjust view properties with
29856       the scale and fps filters.
29857
29858       It accepts the following parameters:
29859
29860       format
29861           The desired packing format. Supported values are:
29862
29863           sbs The views are next to each other (default).
29864
29865           tab The views are on top of each other.
29866
29867           lines
29868               The views are packed by line.
29869
29870           columns
29871               The views are packed by column.
29872
29873           frameseq
29874               The views are temporally interleaved.
29875
29876       Some examples:
29877
29878               # Convert left and right views into a frame-sequential video
29879               ffmpeg -i LEFT -i RIGHT -filter_complex framepack=frameseq OUTPUT
29880
29881               # Convert views into a side-by-side video with the same output resolution as the input
29882               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
29883
29884   framerate
29885       Change the frame rate by interpolating new video output frames from the
29886       source frames.
29887
29888       This filter is not designed to function correctly with interlaced
29889       media. If you wish to change the frame rate of interlaced media then
29890       you are required to deinterlace before this filter and re-interlace
29891       after this filter.
29892
29893       A description of the accepted options follows.
29894
29895       fps Specify the output frames per second. This option can also be
29896           specified as a value alone. The default is 50.
29897
29898       interp_start
29899           Specify the start of a range where the output frame will be created
29900           as a linear interpolation of two frames. The range is [0-255], the
29901           default is 15.
29902
29903       interp_end
29904           Specify the end of a range where the output frame will be created
29905           as a linear interpolation of two frames. The range is [0-255], the
29906           default is 240.
29907
29908       scene
29909           Specify the level at which a scene change is detected as a value
29910           between 0 and 100 to indicate a new scene; a low value reflects a
29911           low probability for the current frame to introduce a new scene,
29912           while a higher value means the current frame is more likely to be
29913           one.  The default is 8.2.
29914
29915       flags
29916           Specify flags influencing the filter process.
29917
29918           Available value for flags is:
29919
29920           scene_change_detect, scd
29921               Enable scene change detection using the value of the option
29922               scene.  This flag is enabled by default.
29923
29924   framestep
29925       Select one frame every N-th frame.
29926
29927       This filter accepts the following option:
29928
29929       step
29930           Select frame after every "step" frames.  Allowed values are
29931           positive integers higher than 0. Default value is 1.
29932
29933   freezedetect
29934       Detect frozen video.
29935
29936       This filter logs a message and sets frame metadata when it detects that
29937       the input video has no significant change in content during a specified
29938       duration.  Video freeze detection calculates the mean average absolute
29939       difference of all the components of video frames and compares it to a
29940       noise floor.
29941
29942       The printed times and duration are expressed in seconds. The
29943       "lavfi.freezedetect.freeze_start" metadata key is set on the first
29944       frame whose timestamp equals or exceeds the detection duration and it
29945       contains the timestamp of the first frame of the freeze. The
29946       "lavfi.freezedetect.freeze_duration" and
29947       "lavfi.freezedetect.freeze_end" metadata keys are set on the first
29948       frame after the freeze.
29949
29950       The filter accepts the following options:
29951
29952       noise, n
29953           Set noise tolerance. Can be specified in dB (in case "dB" is
29954           appended to the specified value) or as a difference ratio between 0
29955           and 1. Default is -60dB, or 0.001.
29956
29957       duration, d
29958           Set freeze duration until notification (default is 2 seconds).
29959
29960   freezeframes
29961       Freeze video frames.
29962
29963       This filter freezes video frames using frame from 2nd input.
29964
29965       The filter accepts the following options:
29966
29967       first
29968           Set number of first frame from which to start freeze.
29969
29970       last
29971           Set number of last frame from which to end freeze.
29972
29973       replace
29974           Set number of frame from 2nd input which will be used instead of
29975           replaced frames.
29976
29977   frei0r
29978       Apply a frei0r effect to the input video.
29979
29980       To enable the compilation of this filter, you need to install the
29981       frei0r header and configure FFmpeg with "--enable-frei0r".
29982
29983       It accepts the following parameters:
29984
29985       filter_name
29986           The name of the frei0r effect to load. If the environment variable
29987           FREI0R_PATH is defined, the frei0r effect is searched for in each
29988           of the directories specified by the colon-separated list in
29989           FREI0R_PATH.  Otherwise, the standard frei0r paths are searched, in
29990           this order: HOME/.frei0r-1/lib/, /usr/local/lib/frei0r-1/,
29991           /usr/lib/frei0r-1/.
29992
29993       filter_params
29994           A '|'-separated list of parameters to pass to the frei0r effect.
29995
29996       A frei0r effect parameter can be a boolean (its value is either "y" or
29997       "n"), a double, a color (specified as R/G/B, where R, G, and B are
29998       floating point numbers between 0.0 and 1.0, inclusive) or a color
29999       description as specified in the "Color" section in the ffmpeg-utils
30000       manual, a position (specified as X/Y, where X and Y are floating point
30001       numbers) and/or a string.
30002
30003       The number and types of parameters depend on the loaded effect. If an
30004       effect parameter is not specified, the default value is set.
30005
30006       Examples
30007
30008       •   Apply the distort0r effect, setting the first two double
30009           parameters:
30010
30011                   frei0r=filter_name=distort0r:filter_params=0.5|0.01
30012
30013       •   Apply the colordistance effect, taking a color as the first
30014           parameter:
30015
30016                   frei0r=colordistance:0.2/0.3/0.4
30017                   frei0r=colordistance:violet
30018                   frei0r=colordistance:0x112233
30019
30020       •   Apply the perspective effect, specifying the top left and top right
30021           image positions:
30022
30023                   frei0r=perspective:0.2/0.2|0.8/0.2
30024
30025       For more information, see <http://frei0r.dyne.org>
30026
30027       Commands
30028
30029       This filter supports the filter_params option as commands.
30030
30031   fspp
30032       Apply fast and simple postprocessing. It is a faster version of spp.
30033
30034       It splits (I)DCT into horizontal/vertical passes. Unlike the simple
30035       post- processing filter, one of them is performed once per block, not
30036       per pixel.  This allows for much higher speed.
30037
30038       The filter accepts the following options:
30039
30040       quality
30041           Set quality. This option defines the number of levels for
30042           averaging. It accepts an integer in the range 4-5. Default value is
30043           4.
30044
30045       qp  Force a constant quantization parameter. It accepts an integer in
30046           range 0-63.  If not set, the filter will use the QP from the video
30047           stream (if available).
30048
30049       strength
30050           Set filter strength. It accepts an integer in range -15 to 32.
30051           Lower values mean more details but also more artifacts, while
30052           higher values make the image smoother but also blurrier. Default
30053           value is 0 X PSNR optimal.
30054
30055       use_bframe_qp
30056           Enable the use of the QP from the B-Frames if set to 1. Using this
30057           option may cause flicker since the B-Frames have often larger QP.
30058           Default is 0 (not enabled).
30059
30060   gblur
30061       Apply Gaussian blur filter.
30062
30063       The filter accepts the following options:
30064
30065       sigma
30066           Set horizontal sigma, standard deviation of Gaussian blur. Default
30067           is 0.5.
30068
30069       steps
30070           Set number of steps for Gaussian approximation. Default is 1.
30071
30072       planes
30073           Set which planes to filter. By default all planes are filtered.
30074
30075       sigmaV
30076           Set vertical sigma, if negative it will be same as "sigma".
30077           Default is "-1".
30078
30079       Commands
30080
30081       This filter supports same commands as options.  The command accepts the
30082       same syntax of the corresponding option.
30083
30084       If the specified expression is not valid, it is kept at its current
30085       value.
30086
30087   geq
30088       Apply generic equation to each pixel.
30089
30090       The filter accepts the following options:
30091
30092       lum_expr, lum
30093           Set the luminance expression.
30094
30095       cb_expr, cb
30096           Set the chrominance blue expression.
30097
30098       cr_expr, cr
30099           Set the chrominance red expression.
30100
30101       alpha_expr, a
30102           Set the alpha expression.
30103
30104       red_expr, r
30105           Set the red expression.
30106
30107       green_expr, g
30108           Set the green expression.
30109
30110       blue_expr, b
30111           Set the blue expression.
30112
30113       The colorspace is selected according to the specified options. If one
30114       of the lum_expr, cb_expr, or cr_expr options is specified, the filter
30115       will automatically select a YCbCr colorspace. If one of the red_expr,
30116       green_expr, or blue_expr options is specified, it will select an RGB
30117       colorspace.
30118
30119       If one of the chrominance expression is not defined, it falls back on
30120       the other one. If no alpha expression is specified it will evaluate to
30121       opaque value.  If none of chrominance expressions are specified, they
30122       will evaluate to the luminance expression.
30123
30124       The expressions can use the following variables and functions:
30125
30126       N   The sequential number of the filtered frame, starting from 0.
30127
30128       X
30129       Y   The coordinates of the current sample.
30130
30131       W
30132       H   The width and height of the image.
30133
30134       SW
30135       SH  Width and height scale depending on the currently filtered plane.
30136           It is the ratio between the corresponding luma plane number of
30137           pixels and the current plane ones. E.g. for YUV4:2:0 the values are
30138           "1,1" for the luma plane, and "0.5,0.5" for chroma planes.
30139
30140       T   Time of the current frame, expressed in seconds.
30141
30142       p(x, y)
30143           Return the value of the pixel at location (x,y) of the current
30144           plane.
30145
30146       lum(x, y)
30147           Return the value of the pixel at location (x,y) of the luminance
30148           plane.
30149
30150       cb(x, y)
30151           Return the value of the pixel at location (x,y) of the blue-
30152           difference chroma plane. Return 0 if there is no such plane.
30153
30154       cr(x, y)
30155           Return the value of the pixel at location (x,y) of the red-
30156           difference chroma plane. Return 0 if there is no such plane.
30157
30158       r(x, y)
30159       g(x, y)
30160       b(x, y)
30161           Return the value of the pixel at location (x,y) of the
30162           red/green/blue component. Return 0 if there is no such component.
30163
30164       alpha(x, y)
30165           Return the value of the pixel at location (x,y) of the alpha plane.
30166           Return 0 if there is no such plane.
30167
30168       psum(x,y), lumsum(x, y), cbsum(x,y), crsum(x,y), rsum(x,y), gsum(x,y),
30169       bsum(x,y), alphasum(x,y)
30170           Sum of sample values in the rectangle from (0,0) to (x,y), this
30171           allows obtaining sums of samples within a rectangle. See the
30172           functions without the sum postfix.
30173
30174       interpolation
30175           Set one of interpolation methods:
30176
30177           nearest, n
30178           bilinear, b
30179
30180           Default is bilinear.
30181
30182       For functions, if x and y are outside the area, the value will be
30183       automatically clipped to the closer edge.
30184
30185       Please note that this filter can use multiple threads in which case
30186       each slice will have its own expression state. If you want to use only
30187       a single expression state because your expressions depend on previous
30188       state then you should limit the number of filter threads to 1.
30189
30190       Examples
30191
30192       •   Flip the image horizontally:
30193
30194                   geq=p(W-X\,Y)
30195
30196       •   Generate a bidimensional sine wave, with angle "PI/3" and a
30197           wavelength of 100 pixels:
30198
30199                   geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
30200
30201       •   Generate a fancy enigmatic moving light:
30202
30203                   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
30204
30205       •   Generate a quick emboss effect:
30206
30207                   format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
30208
30209       •   Modify RGB components depending on pixel position:
30210
30211                   geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
30212
30213       •   Create a radial gradient that is the same size as the input (also
30214           see the vignette filter):
30215
30216                   geq=lum=255*gauss((X/W-0.5)*3)*gauss((Y/H-0.5)*3)/gauss(0)/gauss(0),format=gray
30217
30218   gradfun
30219       Fix the banding artifacts that are sometimes introduced into nearly
30220       flat regions by truncation to 8-bit color depth.  Interpolate the
30221       gradients that should go where the bands are, and dither them.
30222
30223       It is designed for playback only.  Do not use it prior to lossy
30224       compression, because compression tends to lose the dither and bring
30225       back the bands.
30226
30227       It accepts the following parameters:
30228
30229       strength
30230           The maximum amount by which the filter will change any one pixel.
30231           This is also the threshold for detecting nearly flat regions.
30232           Acceptable values range from .51 to 64; the default value is 1.2.
30233           Out-of-range values will be clipped to the valid range.
30234
30235       radius
30236           The neighborhood to fit the gradient to. A larger radius makes for
30237           smoother gradients, but also prevents the filter from modifying the
30238           pixels near detailed regions. Acceptable values are 8-32; the
30239           default value is 16. Out-of-range values will be clipped to the
30240           valid range.
30241
30242       Alternatively, the options can be specified as a flat string:
30243       strength[:radius]
30244
30245       Examples
30246
30247       •   Apply the filter with a 3.5 strength and radius of 8:
30248
30249                   gradfun=3.5:8
30250
30251       •   Specify radius, omitting the strength (which will fall-back to the
30252           default value):
30253
30254                   gradfun=radius=8
30255
30256   graphmonitor
30257       Show various filtergraph stats.
30258
30259       With this filter one can debug complete filtergraph.  Especially issues
30260       with links filling with queued frames.
30261
30262       The filter accepts the following options:
30263
30264       size, s
30265           Set video output size. Default is hd720.
30266
30267       opacity, o
30268           Set video opacity. Default is 0.9. Allowed range is from 0 to 1.
30269
30270       mode, m
30271           Set output mode, can be fulll or compact.  In compact mode only
30272           filters with some queued frames have displayed stats.
30273
30274       flags, f
30275           Set flags which enable which stats are shown in video.
30276
30277           Available values for flags are:
30278
30279           queue
30280               Display number of queued frames in each link.
30281
30282           frame_count_in
30283               Display number of frames taken from filter.
30284
30285           frame_count_out
30286               Display number of frames given out from filter.
30287
30288           frame_count_delta
30289               Display delta number of frames between above two values.
30290
30291           pts Display current filtered frame pts.
30292
30293           pts_delta
30294               Display pts delta between current and previous frame.
30295
30296           time
30297               Display current filtered frame time.
30298
30299           time_delta
30300               Display time delta between current and previous frame.
30301
30302           timebase
30303               Display time base for filter link.
30304
30305           format
30306               Display used format for filter link.
30307
30308           size
30309               Display video size or number of audio channels in case of audio
30310               used by filter link.
30311
30312           rate
30313               Display video frame rate or sample rate in case of audio used
30314               by filter link.
30315
30316           eof Display link output status.
30317
30318           sample_count_in
30319               Display number of samples taken from filter.
30320
30321           sample_count_out
30322               Display number of samples given out from filter.
30323
30324           sample_count_delta
30325               Display delta number of samples between above two values.
30326
30327       rate, r
30328           Set upper limit for video rate of output stream, Default value is
30329           25.  This guarantee that output video frame rate will not be higher
30330           than this value.
30331
30332   grayworld
30333       A color constancy filter that applies color correction based on the
30334       grayworld assumption
30335
30336       See:
30337       <https://www.researchgate.net/publication/275213614_A_New_Color_Correction_Method_for_Underwater_Imaging>
30338
30339       The algorithm  uses linear light, so input data should be linearized
30340       beforehand (and possibly correctly tagged).
30341
30342               ffmpeg -i INPUT -vf zscale=transfer=linear,grayworld,zscale=transfer=bt709,format=yuv420p OUTPUT
30343
30344   greyedge
30345       A color constancy variation filter which estimates scene illumination
30346       via grey edge algorithm and corrects the scene colors accordingly.
30347
30348       See: <https://staff.science.uva.nl/th.gevers/pub/GeversTIP07.pdf>
30349
30350       The filter accepts the following options:
30351
30352       difford
30353           The order of differentiation to be applied on the scene. Must be
30354           chosen in the range [0,2] and default value is 1.
30355
30356       minknorm
30357           The Minkowski parameter to be used for calculating the Minkowski
30358           distance. Must be chosen in the range [0,20] and default value is
30359           1. Set to 0 for getting max value instead of calculating Minkowski
30360           distance.
30361
30362       sigma
30363           The standard deviation of Gaussian blur to be applied on the scene.
30364           Must be chosen in the range [0,1024.0] and default value = 1.
30365           floor( sigma * break_off_sigma(3) ) can't be equal to 0 if difford
30366           is greater than 0.
30367
30368       Examples
30369
30370       •   Grey Edge:
30371
30372                   greyedge=difford=1:minknorm=5:sigma=2
30373
30374       •   Max Edge:
30375
30376                   greyedge=difford=1:minknorm=0:sigma=2
30377
30378   guided
30379       Apply guided filter for edge-preserving smoothing, dehazing and so on.
30380
30381       The filter accepts the following options:
30382
30383       radius
30384           Set the box radius in pixels.  Allowed range is 1 to 20. Default is
30385           3.
30386
30387       eps Set regularization parameter (with square).  Allowed range is 0 to
30388           1. Default is 0.01.
30389
30390       mode
30391           Set filter mode. Can be "basic" or "fast".  Default is "basic".
30392
30393       sub Set subsampling ratio for "fast" mode.  Range is 2 to 64. Default
30394           is 4.  No subsampling occurs in "basic" mode.
30395
30396       guidance
30397           Set guidance mode. Can be "off" or "on". Default is "off".  If
30398           "off", single input is required.  If "on", two inputs of the same
30399           resolution and pixel format are required.  The second input serves
30400           as the guidance.
30401
30402       planes
30403           Set planes to filter. Default is first only.
30404
30405       Commands
30406
30407       This filter supports the all above options as commands.
30408
30409       Examples
30410
30411       •   Edge-preserving smoothing with guided filter:
30412
30413                   ffmpeg -i in.png -vf guided out.png
30414
30415       •   Dehazing, structure-transferring filtering, detail enhancement with
30416           guided filter.  For the generation of guidance image, refer to
30417           paper "Guided Image Filtering".  See:
30418           <http://kaiminghe.com/publications/pami12guidedfilter.pdf>.
30419
30420                   ffmpeg -i in.png -i guidance.png -filter_complex guided=guidance=on out.png
30421
30422   haldclut
30423       Apply a Hald CLUT to a video stream.
30424
30425       First input is the video stream to process, and second one is the Hald
30426       CLUT.  The Hald CLUT input can be a simple picture or a complete video
30427       stream.
30428
30429       The filter accepts the following options:
30430
30431       clut
30432           Set which CLUT video frames will be processed from second input
30433           stream, can be first or all. Default is all.
30434
30435       shortest
30436           Force termination when the shortest input terminates. Default is 0.
30437
30438       repeatlast
30439           Continue applying the last CLUT after the end of the stream. A
30440           value of 0 disable the filter after the last frame of the CLUT is
30441           reached.  Default is 1.
30442
30443       "haldclut" also has the same interpolation options as lut3d (both
30444       filters share the same internals).
30445
30446       This filter also supports the framesync options.
30447
30448       More information about the Hald CLUT can be found on Eskil Steenberg's
30449       website (Hald CLUT author) at
30450       <http://www.quelsolaar.com/technology/clut.html>.
30451
30452       Commands
30453
30454       This filter supports the "interp" option as commands.
30455
30456       Workflow examples
30457
30458       Hald CLUT video stream
30459
30460       Generate an identity Hald CLUT stream altered with various effects:
30461
30462               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
30463
30464       Note: make sure you use a lossless codec.
30465
30466       Then use it with "haldclut" to apply it on some random stream:
30467
30468               ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
30469
30470       The Hald CLUT will be applied to the 10 first seconds (duration of
30471       clut.nut), then the latest picture of that CLUT stream will be applied
30472       to the remaining frames of the "mandelbrot" stream.
30473
30474       Hald CLUT with preview
30475
30476       A Hald CLUT is supposed to be a squared image of "Level*Level*Level" by
30477       "Level*Level*Level" pixels. For a given Hald CLUT, FFmpeg will select
30478       the biggest possible square starting at the top left of the picture.
30479       The remaining padding pixels (bottom or right) will be ignored. This
30480       area can be used to add a preview of the Hald CLUT.
30481
30482       Typically, the following generated Hald CLUT will be supported by the
30483       "haldclut" filter:
30484
30485               ffmpeg -f lavfi -i B<haldclutsrc>=8 -vf "
30486                  pad=iw+320 [padded_clut];
30487                  smptebars=s=320x256, split [a][b];
30488                  [padded_clut][a] overlay=W-320:h, curves=color_negative [main];
30489                  [main][b] overlay=W-320" -frames:v 1 clut.png
30490
30491       It contains the original and a preview of the effect of the CLUT: SMPTE
30492       color bars are displayed on the right-top, and below the same color
30493       bars processed by the color changes.
30494
30495       Then, the effect of this Hald CLUT can be visualized with:
30496
30497               ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
30498
30499   hflip
30500       Flip the input video horizontally.
30501
30502       For example, to horizontally flip the input video with ffmpeg:
30503
30504               ffmpeg -i in.avi -vf "hflip" out.avi
30505
30506   histeq
30507       This filter applies a global color histogram equalization on a per-
30508       frame basis.
30509
30510       It can be used to correct video that has a compressed range of pixel
30511       intensities.  The filter redistributes the pixel intensities to
30512       equalize their distribution across the intensity range. It may be
30513       viewed as an "automatically adjusting contrast filter". This filter is
30514       useful only for correcting degraded or poorly captured source video.
30515
30516       The filter accepts the following options:
30517
30518       strength
30519           Determine the amount of equalization to be applied.  As the
30520           strength is reduced, the distribution of pixel intensities more-
30521           and-more approaches that of the input frame. The value must be a
30522           float number in the range [0,1] and defaults to 0.200.
30523
30524       intensity
30525           Set the maximum intensity that can generated and scale the output
30526           values appropriately.  The strength should be set as desired and
30527           then the intensity can be limited if needed to avoid washing-out.
30528           The value must be a float number in the range [0,1] and defaults to
30529           0.210.
30530
30531       antibanding
30532           Set the antibanding level. If enabled the filter will randomly vary
30533           the luminance of output pixels by a small amount to avoid banding
30534           of the histogram. Possible values are "none", "weak" or "strong".
30535           It defaults to "none".
30536
30537   histogram
30538       Compute and draw a color distribution histogram for the input video.
30539
30540       The computed histogram is a representation of the color component
30541       distribution in an image.
30542
30543       Standard histogram displays the color components distribution in an
30544       image.  Displays color graph for each color component. Shows
30545       distribution of the Y, U, V, A or R, G, B components, depending on
30546       input format, in the current frame. Below each graph a color component
30547       scale meter is shown.
30548
30549       The filter accepts the following options:
30550
30551       level_height
30552           Set height of level. Default value is 200.  Allowed range is [50,
30553           2048].
30554
30555       scale_height
30556           Set height of color scale. Default value is 12.  Allowed range is
30557           [0, 40].
30558
30559       display_mode
30560           Set display mode.  It accepts the following values:
30561
30562           stack
30563               Per color component graphs are placed below each other.
30564
30565           parade
30566               Per color component graphs are placed side by side.
30567
30568           overlay
30569               Presents information identical to that in the "parade", except
30570               that the graphs representing color components are superimposed
30571               directly over one another.
30572
30573           Default is "stack".
30574
30575       levels_mode
30576           Set mode. Can be either "linear", or "logarithmic".  Default is
30577           "linear".
30578
30579       components
30580           Set what color components to display.  Default is 7.
30581
30582       fgopacity
30583           Set foreground opacity. Default is 0.7.
30584
30585       bgopacity
30586           Set background opacity. Default is 0.5.
30587
30588       colors_mode
30589           Set colors mode.  It accepts the following values:
30590
30591           whiteonblack
30592           blackonwhite
30593           whiteongray
30594           blackongray
30595           coloronblack
30596           coloronwhite
30597           colorongray
30598           blackoncolor
30599           whiteoncolor
30600           grayoncolor
30601
30602           Default is "whiteonblack".
30603
30604       Examples
30605
30606       •   Calculate and draw histogram:
30607
30608                   ffplay -i input -vf histogram
30609
30610   hqdn3d
30611       This is a high precision/quality 3d denoise filter. It aims to reduce
30612       image noise, producing smooth images and making still images really
30613       still. It should enhance compressibility.
30614
30615       It accepts the following optional parameters:
30616
30617       luma_spatial
30618           A non-negative floating point number which specifies spatial luma
30619           strength.  It defaults to 4.0.
30620
30621       chroma_spatial
30622           A non-negative floating point number which specifies spatial chroma
30623           strength.  It defaults to 3.0*luma_spatial/4.0.
30624
30625       luma_tmp
30626           A floating point number which specifies luma temporal strength. It
30627           defaults to 6.0*luma_spatial/4.0.
30628
30629       chroma_tmp
30630           A floating point number which specifies chroma temporal strength.
30631           It defaults to luma_tmp*chroma_spatial/luma_spatial.
30632
30633       Commands
30634
30635       This filter supports same commands as options.  The command accepts the
30636       same syntax of the corresponding option.
30637
30638       If the specified expression is not valid, it is kept at its current
30639       value.
30640
30641   hwdownload
30642       Download hardware frames to system memory.
30643
30644       The input must be in hardware frames, and the output a non-hardware
30645       format.  Not all formats will be supported on the output - it may be
30646       necessary to insert an additional format filter immediately following
30647       in the graph to get the output in a supported format.
30648
30649   hwmap
30650       Map hardware frames to system memory or to another device.
30651
30652       This filter has several different modes of operation; which one is used
30653       depends on the input and output formats:
30654
30655       •   Hardware frame input, normal frame output
30656
30657           Map the input frames to system memory and pass them to the output.
30658           If the original hardware frame is later required (for example,
30659           after overlaying something else on part of it), the hwmap filter
30660           can be used again in the next mode to retrieve it.
30661
30662       •   Normal frame input, hardware frame output
30663
30664           If the input is actually a software-mapped hardware frame, then
30665           unmap it - that is, return the original hardware frame.
30666
30667           Otherwise, a device must be provided.  Create new hardware surfaces
30668           on that device for the output, then map them back to the software
30669           format at the input and give those frames to the preceding filter.
30670           This will then act like the hwupload filter, but may be able to
30671           avoid an additional copy when the input is already in a compatible
30672           format.
30673
30674       •   Hardware frame input and output
30675
30676           A device must be supplied for the output, either directly or with
30677           the derive_device option.  The input and output devices must be of
30678           different types and compatible - the exact meaning of this is
30679           system-dependent, but typically it means that they must refer to
30680           the same underlying hardware context (for example, refer to the
30681           same graphics card).
30682
30683           If the input frames were originally created on the output device,
30684           then unmap to retrieve the original frames.
30685
30686           Otherwise, map the frames to the output device - create new
30687           hardware frames on the output corresponding to the frames on the
30688           input.
30689
30690       The following additional parameters are accepted:
30691
30692       mode
30693           Set the frame mapping mode.  Some combination of:
30694
30695           read
30696               The mapped frame should be readable.
30697
30698           write
30699               The mapped frame should be writeable.
30700
30701           overwrite
30702               The mapping will always overwrite the entire frame.
30703
30704               This may improve performance in some cases, as the original
30705               contents of the frame need not be loaded.
30706
30707           direct
30708               The mapping must not involve any copying.
30709
30710               Indirect mappings to copies of frames are created in some cases
30711               where either direct mapping is not possible or it would have
30712               unexpected properties.  Setting this flag ensures that the
30713               mapping is direct and will fail if that is not possible.
30714
30715           Defaults to read+write if not specified.
30716
30717       derive_device type
30718           Rather than using the device supplied at initialisation, instead
30719           derive a new device of type type from the device the input frames
30720           exist on.
30721
30722       reverse
30723           In a hardware to hardware mapping, map in reverse - create frames
30724           in the sink and map them back to the source.  This may be necessary
30725           in some cases where a mapping in one direction is required but only
30726           the opposite direction is supported by the devices being used.
30727
30728           This option is dangerous - it may break the preceding filter in
30729           undefined ways if there are any additional constraints on that
30730           filter's output.  Do not use it without fully understanding the
30731           implications of its use.
30732
30733   hwupload
30734       Upload system memory frames to hardware surfaces.
30735
30736       The device to upload to must be supplied when the filter is
30737       initialised.  If using ffmpeg, select the appropriate device with the
30738       -filter_hw_device option or with the derive_device option.  The input
30739       and output devices must be of different types and compatible - the
30740       exact meaning of this is system-dependent, but typically it means that
30741       they must refer to the same underlying hardware context (for example,
30742       refer to the same graphics card).
30743
30744       The following additional parameters are accepted:
30745
30746       derive_device type
30747           Rather than using the device supplied at initialisation, instead
30748           derive a new device of type type from the device the input frames
30749           exist on.
30750
30751   hwupload_cuda
30752       Upload system memory frames to a CUDA device.
30753
30754       It accepts the following optional parameters:
30755
30756       device
30757           The number of the CUDA device to use
30758
30759   hqx
30760       Apply a high-quality magnification filter designed for pixel art. This
30761       filter was originally created by Maxim Stepin.
30762
30763       It accepts the following option:
30764
30765       n   Set the scaling dimension: 2 for "hq2x", 3 for "hq3x" and 4 for
30766           "hq4x".  Default is 3.
30767
30768   hstack
30769       Stack input videos horizontally.
30770
30771       All streams must be of same pixel format and of same height.
30772
30773       Note that this filter is faster than using overlay and pad filter to
30774       create same output.
30775
30776       The filter accepts the following option:
30777
30778       inputs
30779           Set number of input streams. Default is 2.
30780
30781       shortest
30782           If set to 1, force the output to terminate when the shortest input
30783           terminates. Default value is 0.
30784
30785   hsvhold
30786       Turns a certain HSV range into gray values.
30787
30788       This filter measures color difference between set HSV color in options
30789       and ones measured in video stream. Depending on options, output colors
30790       can be changed to be gray or not.
30791
30792       The filter accepts the following options:
30793
30794       hue Set the hue value which will be used in color difference
30795           calculation.  Allowed range is from -360 to 360. Default value is
30796           0.
30797
30798       sat Set the saturation value which will be used in color difference
30799           calculation.  Allowed range is from -1 to 1. Default value is 0.
30800
30801       val Set the value which will be used in color difference calculation.
30802           Allowed range is from -1 to 1. Default value is 0.
30803
30804       similarity
30805           Set similarity percentage with the key color.  Allowed range is
30806           from 0 to 1. Default value is 0.01.
30807
30808           0.00001 matches only the exact key color, while 1.0 matches
30809           everything.
30810
30811       blend
30812           Blend percentage.  Allowed range is from 0 to 1. Default value is
30813           0.
30814
30815           0.0 makes pixels either fully gray, or not gray at all.
30816
30817           Higher values result in more gray pixels, with a higher gray pixel
30818           the more similar the pixels color is to the key color.
30819
30820   hsvkey
30821       Turns a certain HSV range into transparency.
30822
30823       This filter measures color difference between set HSV color in options
30824       and ones measured in video stream. Depending on options, output colors
30825       can be changed to transparent by adding alpha channel.
30826
30827       The filter accepts the following options:
30828
30829       hue Set the hue value which will be used in color difference
30830           calculation.  Allowed range is from -360 to 360. Default value is
30831           0.
30832
30833       sat Set the saturation value which will be used in color difference
30834           calculation.  Allowed range is from -1 to 1. Default value is 0.
30835
30836       val Set the value which will be used in color difference calculation.
30837           Allowed range is from -1 to 1. Default value is 0.
30838
30839       similarity
30840           Set similarity percentage with the key color.  Allowed range is
30841           from 0 to 1. Default value is 0.01.
30842
30843           0.00001 matches only the exact key color, while 1.0 matches
30844           everything.
30845
30846       blend
30847           Blend percentage.  Allowed range is from 0 to 1. Default value is
30848           0.
30849
30850           0.0 makes pixels either fully transparent, or not transparent at
30851           all.
30852
30853           Higher values result in semi-transparent pixels, with a higher
30854           transparency the more similar the pixels color is to the key color.
30855
30856   hue
30857       Modify the hue and/or the saturation of the input.
30858
30859       It accepts the following parameters:
30860
30861       h   Specify the hue angle as a number of degrees. It accepts an
30862           expression, and defaults to "0".
30863
30864       s   Specify the saturation in the [-10,10] range. It accepts an
30865           expression and defaults to "1".
30866
30867       H   Specify the hue angle as a number of radians. It accepts an
30868           expression, and defaults to "0".
30869
30870       b   Specify the brightness in the [-10,10] range. It accepts an
30871           expression and defaults to "0".
30872
30873       h and H are mutually exclusive, and can't be specified at the same
30874       time.
30875
30876       The b, h, H and s option values are expressions containing the
30877       following constants:
30878
30879       n   frame count of the input frame starting from 0
30880
30881       pts presentation timestamp of the input frame expressed in time base
30882           units
30883
30884       r   frame rate of the input video, NAN if the input frame rate is
30885           unknown
30886
30887       t   timestamp expressed in seconds, NAN if the input timestamp is
30888           unknown
30889
30890       tb  time base of the input video
30891
30892       Examples
30893
30894       •   Set the hue to 90 degrees and the saturation to 1.0:
30895
30896                   hue=h=90:s=1
30897
30898       •   Same command but expressing the hue in radians:
30899
30900                   hue=H=PI/2:s=1
30901
30902       •   Rotate hue and make the saturation swing between 0 and 2 over a
30903           period of 1 second:
30904
30905                   hue="H=2*PI*t: s=sin(2*PI*t)+1"
30906
30907       •   Apply a 3 seconds saturation fade-in effect starting at 0:
30908
30909                   hue="s=min(t/3\,1)"
30910
30911           The general fade-in expression can be written as:
30912
30913                   hue="s=min(0\, max((t-START)/DURATION\, 1))"
30914
30915       •   Apply a 3 seconds saturation fade-out effect starting at 5 seconds:
30916
30917                   hue="s=max(0\, min(1\, (8-t)/3))"
30918
30919           The general fade-out expression can be written as:
30920
30921                   hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
30922
30923       Commands
30924
30925       This filter supports the following commands:
30926
30927       b
30928       s
30929       h
30930       H   Modify the hue and/or the saturation and/or brightness of the input
30931           video.  The command accepts the same syntax of the corresponding
30932           option.
30933
30934           If the specified expression is not valid, it is kept at its current
30935           value.
30936
30937   huesaturation
30938       Apply hue-saturation-intensity adjustments to input video stream.
30939
30940       This filter operates in RGB colorspace.
30941
30942       This filter accepts the following options:
30943
30944       hue Set the hue shift in degrees to apply. Default is 0.  Allowed range
30945           is from -180 to 180.
30946
30947       saturation
30948           Set the saturation shift. Default is 0.  Allowed range is from -1
30949           to 1.
30950
30951       intensity
30952           Set the intensity shift. Default is 0.  Allowed range is from -1 to
30953           1.
30954
30955       colors
30956           Set which primary and complementary colors are going to be
30957           adjusted.  This options is set by providing one or multiple values.
30958           This can select multiple colors at once. By default all colors are
30959           selected.
30960
30961           r   Adjust reds.
30962
30963           y   Adjust yellows.
30964
30965           g   Adjust greens.
30966
30967           c   Adjust cyans.
30968
30969           b   Adjust blues.
30970
30971           m   Adjust magentas.
30972
30973           a   Adjust all colors.
30974
30975       strength
30976           Set strength of filtering. Allowed range is from 0 to 100.  Default
30977           value is 1.
30978
30979       rw, gw, bw
30980           Set weight for each RGB component. Allowed range is from 0 to 1.
30981           By default is set to 0.333, 0.334, 0.333.  Those options are used
30982           in saturation and lightess processing.
30983
30984       lightness
30985           Set preserving lightness, by default is disabled.  Adjusting hues
30986           can change lightness from original RGB triplet, with this option
30987           enabled lightness is kept at same value.
30988
30989   hysteresis
30990       Grow first stream into second stream by connecting components.  This
30991       makes it possible to build more robust edge masks.
30992
30993       This filter accepts the following options:
30994
30995       planes
30996           Set which planes will be processed as bitmap, unprocessed planes
30997           will be copied from first stream.  By default value 0xf, all planes
30998           will be processed.
30999
31000       threshold
31001           Set threshold which is used in filtering. If pixel component value
31002           is higher than this value filter algorithm for connecting
31003           components is activated.  By default value is 0.
31004
31005       The "hysteresis" filter also supports the framesync options.
31006
31007   iccdetect
31008       Detect the colorspace  from an embedded ICC profile (if present), and
31009       update the frame's tags accordingly.
31010
31011       This filter accepts the following options:
31012
31013       force
31014           If true, the frame's existing colorspace tags will always be
31015           overridden by values detected from an ICC profile. Otherwise, they
31016           will only be assigned if they contain "unknown". Enabled by
31017           default.
31018
31019   iccgen
31020       Generate ICC profiles and attach them to frames.
31021
31022       This filter accepts the following options:
31023
31024       color_primaries
31025       color_trc
31026           Configure the colorspace that the ICC profile will be generated
31027           for. The default value of "auto" infers the value from the input
31028           frame's metadata, defaulting to BT.709/sRGB as appropriate.
31029
31030           See the setparams filter for a list of possible values, but note
31031           that "unknown" are not valid values for this filter.
31032
31033       force
31034           If true, an ICC profile will be generated even if it would
31035           overwrite an already existing ICC profile. Disabled by default.
31036
31037   identity
31038       Obtain the identity score between two input videos.
31039
31040       This filter takes two input videos.
31041
31042       Both input videos must have the same resolution and pixel format for
31043       this filter to work correctly. Also it assumes that both inputs have
31044       the same number of frames, which are compared one by one.
31045
31046       The obtained per component, average, min and max identity score is
31047       printed through the logging system.
31048
31049       The filter stores the calculated identity scores of each frame in frame
31050       metadata.
31051
31052       In the below example the input file main.mpg being processed is
31053       compared with the reference file ref.mpg.
31054
31055               ffmpeg -i main.mpg -i ref.mpg -lavfi identity -f null -
31056
31057   idet
31058       Detect video interlacing type.
31059
31060       This filter tries to detect if the input frames are interlaced,
31061       progressive, top or bottom field first. It will also try to detect
31062       fields that are repeated between adjacent frames (a sign of telecine).
31063
31064       Single frame detection considers only immediately adjacent frames when
31065       classifying each frame.  Multiple frame detection incorporates the
31066       classification history of previous frames.
31067
31068       The filter will log these metadata values:
31069
31070       single.current_frame
31071           Detected type of current frame using single-frame detection. One
31072           of: ``tff'' (top field first), ``bff'' (bottom field first),
31073           ``progressive'', or ``undetermined''
31074
31075       single.tff
31076           Cumulative number of frames detected as top field first using
31077           single-frame detection.
31078
31079       multiple.tff
31080           Cumulative number of frames detected as top field first using
31081           multiple-frame detection.
31082
31083       single.bff
31084           Cumulative number of frames detected as bottom field first using
31085           single-frame detection.
31086
31087       multiple.current_frame
31088           Detected type of current frame using multiple-frame detection. One
31089           of: ``tff'' (top field first), ``bff'' (bottom field first),
31090           ``progressive'', or ``undetermined''
31091
31092       multiple.bff
31093           Cumulative number of frames detected as bottom field first using
31094           multiple-frame detection.
31095
31096       single.progressive
31097           Cumulative number of frames detected as progressive using single-
31098           frame detection.
31099
31100       multiple.progressive
31101           Cumulative number of frames detected as progressive using multiple-
31102           frame detection.
31103
31104       single.undetermined
31105           Cumulative number of frames that could not be classified using
31106           single-frame detection.
31107
31108       multiple.undetermined
31109           Cumulative number of frames that could not be classified using
31110           multiple-frame detection.
31111
31112       repeated.current_frame
31113           Which field in the current frame is repeated from the last. One of
31114           ``neither'', ``top'', or ``bottom''.
31115
31116       repeated.neither
31117           Cumulative number of frames with no repeated field.
31118
31119       repeated.top
31120           Cumulative number of frames with the top field repeated from the
31121           previous frame's top field.
31122
31123       repeated.bottom
31124           Cumulative number of frames with the bottom field repeated from the
31125           previous frame's bottom field.
31126
31127       The filter accepts the following options:
31128
31129       intl_thres
31130           Set interlacing threshold.
31131
31132       prog_thres
31133           Set progressive threshold.
31134
31135       rep_thres
31136           Threshold for repeated field detection.
31137
31138       half_life
31139           Number of frames after which a given frame's contribution to the
31140           statistics is halved (i.e., it contributes only 0.5 to its
31141           classification). The default of 0 means that all frames seen are
31142           given full weight of 1.0 forever.
31143
31144       analyze_interlaced_flag
31145           When this is not 0 then idet will use the specified number of
31146           frames to determine if the interlaced flag is accurate, it will not
31147           count undetermined frames.  If the flag is found to be accurate it
31148           will be used without any further computations, if it is found to be
31149           inaccurate it will be cleared without any further computations.
31150           This allows inserting the idet filter as a low computational method
31151           to clean up the interlaced flag
31152
31153   il
31154       Deinterleave or interleave fields.
31155
31156       This filter allows one to process interlaced images fields without
31157       deinterlacing them. Deinterleaving splits the input frame into 2 fields
31158       (so called half pictures). Odd lines are moved to the top half of the
31159       output image, even lines to the bottom half.  You can process (filter)
31160       them independently and then re-interleave them.
31161
31162       The filter accepts the following options:
31163
31164       luma_mode, l
31165       chroma_mode, c
31166       alpha_mode, a
31167           Available values for luma_mode, chroma_mode and alpha_mode are:
31168
31169           none
31170               Do nothing.
31171
31172           deinterleave, d
31173               Deinterleave fields, placing one above the other.
31174
31175           interleave, i
31176               Interleave fields. Reverse the effect of deinterleaving.
31177
31178           Default value is "none".
31179
31180       luma_swap, ls
31181       chroma_swap, cs
31182       alpha_swap, as
31183           Swap luma/chroma/alpha fields. Exchange even & odd lines. Default
31184           value is 0.
31185
31186       Commands
31187
31188       This filter supports the all above options as commands.
31189
31190   inflate
31191       Apply inflate effect to the video.
31192
31193       This filter replaces the pixel by the local(3x3) average by taking into
31194       account only values higher than the pixel.
31195
31196       It accepts the following options:
31197
31198       threshold0
31199       threshold1
31200       threshold2
31201       threshold3
31202           Limit the maximum change for each plane, default is 65535.  If 0,
31203           plane will remain unchanged.
31204
31205       Commands
31206
31207       This filter supports the all above options as commands.
31208
31209   interlace
31210       Simple interlacing filter from progressive contents. This interleaves
31211       upper (or lower) lines from odd frames with lower (or upper) lines from
31212       even frames, halving the frame rate and preserving image height.
31213
31214                  Original        Original             New Frame
31215                  Frame 'j'      Frame 'j+1'             (tff)
31216                 ==========      ===========       ==================
31217                   Line 0  -------------------->    Frame 'j' Line 0
31218                   Line 1          Line 1  ---->   Frame 'j+1' Line 1
31219                   Line 2 --------------------->    Frame 'j' Line 2
31220                   Line 3          Line 3  ---->   Frame 'j+1' Line 3
31221                    ...             ...                   ...
31222               New Frame + 1 will be generated by Frame 'j+2' and Frame 'j+3' and so on
31223
31224       It accepts the following optional parameters:
31225
31226       scan
31227           This determines whether the interlaced frame is taken from the even
31228           (tff - default) or odd (bff) lines of the progressive frame.
31229
31230       lowpass
31231           Vertical lowpass filter to avoid twitter interlacing and reduce
31232           moire patterns.
31233
31234           0, off
31235               Disable vertical lowpass filter
31236
31237           1, linear
31238               Enable linear filter (default)
31239
31240           2, complex
31241               Enable complex filter. This will slightly less reduce twitter
31242               and moire but better retain detail and subjective sharpness
31243               impression.
31244
31245   kerndeint
31246       Deinterlace input video by applying Donald Graft's adaptive kernel
31247       deinterling. Work on interlaced parts of a video to produce progressive
31248       frames.
31249
31250       The description of the accepted parameters follows.
31251
31252       thresh
31253           Set the threshold which affects the filter's tolerance when
31254           determining if a pixel line must be processed. It must be an
31255           integer in the range [0,255] and defaults to 10. A value of 0 will
31256           result in applying the process on every pixels.
31257
31258       map Paint pixels exceeding the threshold value to white if set to 1.
31259           Default is 0.
31260
31261       order
31262           Set the fields order. Swap fields if set to 1, leave fields alone
31263           if 0. Default is 0.
31264
31265       sharp
31266           Enable additional sharpening if set to 1. Default is 0.
31267
31268       twoway
31269           Enable twoway sharpening if set to 1. Default is 0.
31270
31271       Examples
31272
31273       •   Apply default values:
31274
31275                   kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
31276
31277       •   Enable additional sharpening:
31278
31279                   kerndeint=sharp=1
31280
31281       •   Paint processed pixels in white:
31282
31283                   kerndeint=map=1
31284
31285   kirsch
31286       Apply kirsch operator to input video stream.
31287
31288       The filter accepts the following option:
31289
31290       planes
31291           Set which planes will be processed, unprocessed planes will be
31292           copied.  By default value 0xf, all planes will be processed.
31293
31294       scale
31295           Set value which will be multiplied with filtered result.
31296
31297       delta
31298           Set value which will be added to filtered result.
31299
31300       Commands
31301
31302       This filter supports the all above options as commands.
31303
31304   lagfun
31305       Slowly update darker pixels.
31306
31307       This filter makes short flashes of light appear longer.  This filter
31308       accepts the following options:
31309
31310       decay
31311           Set factor for decaying. Default is .95. Allowed range is from 0 to
31312           1.
31313
31314       planes
31315           Set which planes to filter. Default is all. Allowed range is from 0
31316           to 15.
31317
31318       Commands
31319
31320       This filter supports the all above options as commands.
31321
31322   lenscorrection
31323       Correct radial lens distortion
31324
31325       This filter can be used to correct for radial distortion as can result
31326       from the use of wide angle lenses, and thereby re-rectify the image. To
31327       find the right parameters one can use tools available for example as
31328       part of opencv or simply trial-and-error.  To use opencv use the
31329       calibration sample (under samples/cpp) from the opencv sources and
31330       extract the k1 and k2 coefficients from the resulting matrix.
31331
31332       Note that effectively the same filter is available in the open-source
31333       tools Krita and Digikam from the KDE project.
31334
31335       In contrast to the vignette filter, which can also be used to
31336       compensate lens errors, this filter corrects the distortion of the
31337       image, whereas vignette corrects the brightness distribution, so you
31338       may want to use both filters together in certain cases, though you will
31339       have to take care of ordering, i.e. whether vignetting should be
31340       applied before or after lens correction.
31341
31342       Options
31343
31344       The filter accepts the following options:
31345
31346       cx  Relative x-coordinate of the focal point of the image, and thereby
31347           the center of the distortion. This value has a range [0,1] and is
31348           expressed as fractions of the image width. Default is 0.5.
31349
31350       cy  Relative y-coordinate of the focal point of the image, and thereby
31351           the center of the distortion. This value has a range [0,1] and is
31352           expressed as fractions of the image height. Default is 0.5.
31353
31354       k1  Coefficient of the quadratic correction term. This value has a
31355           range [-1,1]. 0 means no correction. Default is 0.
31356
31357       k2  Coefficient of the double quadratic correction term. This value has
31358           a range [-1,1].  0 means no correction. Default is 0.
31359
31360       i   Set interpolation type. Can be "nearest" or "bilinear".  Default is
31361           "nearest".
31362
31363       fc  Specify the color of the unmapped pixels. For the syntax of this
31364           option, check the "Color" section in the ffmpeg-utils manual.
31365           Default color is "black@0".
31366
31367       The formula that generates the correction is:
31368
31369       r_src = r_tgt * (1 + k1 * (r_tgt / r_0)^2 + k2 * (r_tgt / r_0)^4)
31370
31371       where r_0 is halve of the image diagonal and r_src and r_tgt are the
31372       distances from the focal point in the source and target images,
31373       respectively.
31374
31375       Commands
31376
31377       This filter supports the all above options as commands.
31378
31379   lensfun
31380       Apply lens correction via the lensfun library
31381       (<http://lensfun.sourceforge.net/>).
31382
31383       The "lensfun" filter requires the camera make, camera model, and lens
31384       model to apply the lens correction. The filter will load the lensfun
31385       database and query it to find the corresponding camera and lens entries
31386       in the database. As long as these entries can be found with the given
31387       options, the filter can perform corrections on frames. Note that
31388       incomplete strings will result in the filter choosing the best match
31389       with the given options, and the filter will output the chosen camera
31390       and lens models (logged with level "info"). You must provide the make,
31391       camera model, and lens model as they are required.
31392
31393       To obtain a list of available makes and models, leave out one or both
31394       of "make" and "model" options. The filter will send the full list to
31395       the log with level "INFO".  The first column is the make and the second
31396       column is the model.  To obtain a list of available lenses, set any
31397       values for make and model and leave out the "lens_model" option. The
31398       filter will send the full list of lenses in the log with level "INFO".
31399       The ffmpeg tool will exit after the list is printed.
31400
31401       The filter accepts the following options:
31402
31403       make
31404           The make of the camera (for example, "Canon"). This option is
31405           required.
31406
31407       model
31408           The model of the camera (for example, "Canon EOS 100D"). This
31409           option is required.
31410
31411       lens_model
31412           The model of the lens (for example, "Canon EF-S 18-55mm f/3.5-5.6
31413           IS STM"). This option is required.
31414
31415       db_path
31416           The full path to the lens database folder. If not set, the filter
31417           will attempt to load the database from the install path when the
31418           library was built. Default is unset.
31419
31420       mode
31421           The type of correction to apply. The following values are valid
31422           options:
31423
31424           vignetting
31425               Enables fixing lens vignetting.
31426
31427           geometry
31428               Enables fixing lens geometry. This is the default.
31429
31430           subpixel
31431               Enables fixing chromatic aberrations.
31432
31433           vig_geo
31434               Enables fixing lens vignetting and lens geometry.
31435
31436           vig_subpixel
31437               Enables fixing lens vignetting and chromatic aberrations.
31438
31439           distortion
31440               Enables fixing both lens geometry and chromatic aberrations.
31441
31442           all Enables all possible corrections.
31443
31444       focal_length
31445           The focal length of the image/video (zoom; expected constant for
31446           video). For example, a 18--55mm lens has focal length range of
31447           [18--55], so a value in that range should be chosen when using that
31448           lens. Default 18.
31449
31450       aperture
31451           The aperture of the image/video (expected constant for video). Note
31452           that aperture is only used for vignetting correction. Default 3.5.
31453
31454       focus_distance
31455           The focus distance of the image/video (expected constant for
31456           video). Note that focus distance is only used for vignetting and
31457           only slightly affects the vignetting correction process. If
31458           unknown, leave it at the default value (which is 1000).
31459
31460       scale
31461           The scale factor which is applied after transformation. After
31462           correction the video is no longer necessarily rectangular. This
31463           parameter controls how much of the resulting image is visible. The
31464           value 0 means that a value will be chosen automatically such that
31465           there is little or no unmapped area in the output image. 1.0 means
31466           that no additional scaling is done. Lower values may result in more
31467           of the corrected image being visible, while higher values may avoid
31468           unmapped areas in the output.
31469
31470       target_geometry
31471           The target geometry of the output image/video. The following values
31472           are valid options:
31473
31474           rectilinear (default)
31475           fisheye
31476           panoramic
31477           equirectangular
31478           fisheye_orthographic
31479           fisheye_stereographic
31480           fisheye_equisolid
31481           fisheye_thoby
31482       reverse
31483           Apply the reverse of image correction (instead of correcting
31484           distortion, apply it).
31485
31486       interpolation
31487           The type of interpolation used when correcting distortion. The
31488           following values are valid options:
31489
31490           nearest
31491           linear (default)
31492           lanczos
31493
31494       Examples
31495
31496       •   Apply lens correction with make "Canon", camera model "Canon EOS
31497           100D", and lens model "Canon EF-S 18-55mm f/3.5-5.6 IS STM" with
31498           focal length of "18" and aperture of "8.0".
31499
31500                   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
31501
31502       •   Apply the same as before, but only for the first 5 seconds of
31503           video.
31504
31505                   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
31506
31507   libplacebo
31508       Flexible GPU-accelerated processing filter based on libplacebo
31509       (<https://code.videolan.org/videolan/libplacebo>). Note that this
31510       filter currently only accepts Vulkan input frames.
31511
31512       Options
31513
31514       The options for this filter are divided into the following sections:
31515
31516       Output mode
31517
31518       These options control the overall output mode. By default, libplacebo
31519       will try to preserve the source colorimetry and size as best as it can,
31520       but it will apply any embedded film grain, dolby vision metadata or
31521       anamorphic SAR present in source frames.
31522
31523       w
31524       h   Set the output video dimension expression. Default value is the
31525           input dimension.
31526
31527           Allows for the same expressions as the scale filter.
31528
31529       format
31530           Set the output format override. If unset (the default), frames will
31531           be output in the same format as the respective input frames.
31532           Otherwise, format conversion will be performed.
31533
31534       force_original_aspect_ratio
31535       force_divisible_by
31536           Work the same as the identical scale filter options.
31537
31538       normalize_sar
31539           If enabled (the default), output frames will always have a pixel
31540           aspect ratio of 1:1. If disabled, any aspect ratio mismatches,
31541           including those from e.g.  anamorphic video sources, are forwarded
31542           to the output pixel aspect ratio.
31543
31544       pad_crop_ratio
31545           Specifies a ratio (between 0.0 and 1.0) between padding and
31546           cropping when the input aspect ratio does not match the output
31547           aspect ratio and normalize_sar is in effect. The default of 0.0
31548           always pads the content with black borders, while a value of 1.0
31549           always crops off parts of the content. Intermediate values are
31550           possible, leading to a mix of the two approaches.
31551
31552       colorspace
31553       color_primaries
31554       color_trc
31555       range
31556           Configure the colorspace that output frames will be delivered in.
31557           The default value of "auto" outputs frames in the same format as
31558           the input frames, leading to no change. For any other value,
31559           conversion will be performed.
31560
31561           See the setparams filter for a list of possible values.
31562
31563       apply_filmgrain
31564           Apply film grain (e.g. AV1 or H.274) if present in source frames,
31565           and strip it from the output. Enabled by default.
31566
31567       apply_dolbyvision
31568           Apply Dolby Vision RPU metadata if present in source frames, and
31569           strip it from the output. Enabled by default. Note that Dolby
31570           Vision will always output BT.2020+PQ, overriding the usual input
31571           frame metadata. These will also be picked as the values of "auto"
31572           for the respective frame output options.
31573
31574       Scaling
31575
31576       The options in this section control how libplacebo performs upscaling
31577       and (if necessary) downscaling. Note that libplacebo will always
31578       internally operate on 4:4:4 content, so any sub-sampled chroma formats
31579       such as "yuv420p" will necessarily be upsampled and downsampled as part
31580       of the rendering process. That means scaling might be in effect even if
31581       the source and destination resolution are the same.
31582
31583       upscaler
31584       downscaler
31585           Configure the filter kernel used for upscaling and downscaling. The
31586           respective defaults are "spline36" and "mitchell". For a full list
31587           of possible values, pass "help" to these options. The most
31588           important values are:
31589
31590           none
31591               Forces the use of built-in GPU texture sampling (typically
31592               bilinear). Extremely fast but poor quality, especially when
31593               downscaling.
31594
31595           bilinear
31596               Bilinear interpolation. Can generally be done for free on GPUs,
31597               except when doing so would lead to aliasing. Fast and low
31598               quality.
31599
31600           nearest
31601               Nearest-neighbour interpolation. Sharp but highly aliasing.
31602
31603           oversample
31604               Algorithm that looks visually similar to nearest-neighbour
31605               interpolation but tries to preserve pixel aspect ratio. Good
31606               for pixel art, since it results in minimal distortion of the
31607               artistic appearance.
31608
31609           lanczos
31610               Standard sinc-sinc interpolation kernel.
31611
31612           spline36
31613               Cubic spline approximation of lanczos. No difference in
31614               performance, but has very slightly less ringing.
31615
31616           ewa_lanczos
31617               Elliptically weighted average version of lanczos, based on a
31618               jinc-sinc kernel.  This is also popularly referred to as just
31619               "Jinc scaling". Slow but very high quality.
31620
31621           gaussian
31622               Gaussian kernel. Has certain ideal mathematical properties, but
31623               subjectively very blurry.
31624
31625           mitchell
31626               Cubic BC spline with parameters recommended by Mitchell and
31627               Netravali. Very little ringing.
31628
31629       lut_entries
31630           Configures the size of scaler LUTs, ranging from 1 to 256. The
31631           default of 0 will pick libplacebo's internal default, typically 64.
31632
31633       antiringing
31634           Enables anti-ringing (for non-EWA filters). The value (between 0.0
31635           and 1.0) configures the strength of the anti-ringing algorithm. May
31636           increase aliasing if set too high. Disabled by default.
31637
31638       sigmoid
31639           Enable sigmoidal compression during upscaling. Reduces ringing
31640           slightly.  Enabled by default.
31641
31642       Debanding
31643
31644       Libplacebo comes with a built-in debanding filter that is good at
31645       counteracting many common sources of banding and blocking. Turning this
31646       on is highly recommended whenever quality is desired.
31647
31648       deband
31649           Enable (fast) debanding algorithm. Disabled by default.
31650
31651       deband_iterations
31652           Number of deband iterations of the debanding algorithm. Each
31653           iteration is performed with progressively increased radius (and
31654           diminished threshold).  Recommended values are in the range 1 to 4.
31655           Defaults to 1.
31656
31657       deband_threshold
31658           Debanding filter strength. Higher numbers lead to more aggressive
31659           debanding.  Defaults to 4.0.
31660
31661       deband_radius
31662           Debanding filter radius. A higher radius is better for slow
31663           gradients, while a lower radius is better for steep gradients.
31664           Defaults to 16.0.
31665
31666       deband_grain
31667           Amount of extra output grain to add. Helps hide imperfections.
31668           Defaults to 6.0.
31669
31670       Color adjustment
31671
31672       A collection of subjective color controls. Not very rigorous, so the
31673       exact effect will vary somewhat depending on the input primaries and
31674       colorspace.
31675
31676       brightness
31677           Brightness boost, between "-1.0" and 1.0. Defaults to 0.0.
31678
31679       contrast
31680           Contrast gain, between 0.0 and 16.0. Defaults to 1.0.
31681
31682       saturation
31683           Saturation gain, between 0.0 and 16.0. Defaults to 1.0.
31684
31685       hue Hue shift in radians, between "-3.14" and 3.14. Defaults to 0.0.
31686           This will rotate the UV subvector, defaulting to BT.709
31687           coefficients for RGB inputs.
31688
31689       gamma
31690           Gamma adjustment, between 0.0 and 16.0. Defaults to 1.0.
31691
31692       cones
31693           Cone model to use for color blindness simulation. Accepts any
31694           combination of "l", "m" and "s". Here are some examples:
31695
31696           m   Deuteranomaly / deuteranopia (affecting 3%-4% of the
31697               population)
31698
31699           l   Protanomaly / protanopia (affecting 1%-2% of the population)
31700
31701           l+m Monochromacy (very rare)
31702
31703           l+m+s
31704               Achromatopsy (complete loss of daytime vision, extremely rare)
31705
31706       cone-strength
31707           Gain factor for the cones specified by "cones", between 0.0 and
31708           10.0. A value of 1.0 results in no change to color vision. A value
31709           of 0.0 (the default) simulates complete loss of those cones. Values
31710           above 1.0 result in exaggerating the differences between cones,
31711           which may help compensate for reduced color vision.
31712
31713       Peak detection
31714
31715       To help deal with sources that only have static HDR10 metadata (or no
31716       tagging whatsoever), libplacebo uses its own internal frame analysis
31717       compute shader to analyze source frames and adapt the tone mapping
31718       function in realtime. If this is too slow, or if exactly reproducible
31719       frame-perfect results are needed, it's recommended to turn this feature
31720       off.
31721
31722       peak_detect
31723           Enable HDR peak detection. Ignores static MaxCLL/MaxFALL values in
31724           favor of dynamic detection from the input. Note that the detected
31725           values do not get written back to the output frames, they merely
31726           guide the internal tone mapping process. Enabled by default.
31727
31728       smoothing_period
31729           Peak detection smoothing period, between 0.0 and 1000.0. Higher
31730           values result in peak detection becoming less responsive to changes
31731           in the input. Defaults to 100.0.
31732
31733       minimum_peak
31734           Lower bound on the detected peak (relative to SDR white), between
31735           0.0 and 100.0. Defaults to 1.0.
31736
31737       scene_threshold_low
31738       scene_threshold_high
31739           Lower and upper thresholds for scene change detection. Expressed in
31740           a logarithmic scale between 0.0 and 100.0. Default to 5.5 and 10.0,
31741           respectively. Setting either to a negative value disables this
31742           functionality.
31743
31744       overshoot
31745           Peak smoothing overshoot margin, between 0.0 and 1.0. Provides a
31746           safety margin to prevent clipping as a result of peak smoothing.
31747           Defaults to 0.05, corresponding to a margin of 5%.
31748
31749       Tone mapping
31750
31751       The options in this section control how libplacebo performs tone-
31752       mapping and gamut-mapping when dealing with mismatches between wide-
31753       gamut or HDR content.  In general, libplacebo relies on accurate source
31754       tagging and mastering display gamut information to produce the best
31755       results.
31756
31757       intent
31758           Rendering intent to use when adapting between different primary
31759           color gamuts (after tone-mapping).
31760
31761           perceptual
31762               Perceptual gamut mapping. Currently equivalent to relative
31763               colorimetric.
31764
31765           relative
31766               Relative colorimetric. This is the default.
31767
31768           absolute
31769               Absolute colorimetric.
31770
31771           saturation
31772               Saturation mapping. Forcibly stretches the source gamut to the
31773               target gamut.
31774
31775       gamut_mode
31776           How to handle out-of-gamut colors that can occur as a result of
31777           colorimetric gamut mapping.
31778
31779           clip
31780               Do nothing, simply clip out-of-range colors to the RGB volume.
31781               This is the default.
31782
31783           warn
31784               Highlight out-of-gamut pixels (by coloring them pink).
31785
31786           darken
31787               Linearly reduces content brightness to preserves saturated
31788               details, followed by clipping the remaining out-of-gamut
31789               colors. As the name implies, this makes everything darker, but
31790               provides a good balance between preserving details and colors.
31791
31792           desaturate
31793               Hard-desaturates out-of-gamut colors towards white, while
31794               preserving the luminance. Has a tendency to shift colors.
31795
31796       tonemapping
31797           Tone-mapping algorithm to use. Available values are:
31798
31799           auto
31800               Automatic selection based on internal heuristics. This is the
31801               default.
31802
31803           clip
31804               Performs no tone-mapping, just clips out-of-range colors.
31805               Retains perfect color accuracy for in-range colors but
31806               completely destroys out-of-range information.  Does not perform
31807               any black point adaptation. Not configurable.
31808
31809           bt.2390
31810               EETF from the ITU-R Report BT.2390, a hermite spline roll-off
31811               with linear segment. The knee point offset is configurable.
31812               Note that this parameter defaults to 1.0, rather than the value
31813               of 0.5 from the ITU-R spec.
31814
31815           bt.2446a
31816               EETF from ITU-R Report BT.2446, method A. Designed for well-
31817               mastered HDR sources. Can be used for both forward and inverse
31818               tone mapping. Not configurable.
31819
31820           spline
31821               Simple spline consisting of two polynomials, joined by a single
31822               pivot point.  The parameter gives the pivot point (in PQ
31823               space), defaulting to 0.30.  Can be used for both forward and
31824               inverse tone mapping.
31825
31826           reinhard
31827               Simple non-linear, global tone mapping algorithm. The parameter
31828               specifies the local contrast coefficient at the display peak.
31829               Essentially, a parameter of 0.5 implies that the reference
31830               white will be about half as bright as when clipping. Defaults
31831               to 0.5, which results in the simplest formulation of this
31832               function.
31833
31834           mobius
31835               Generalization of the reinhard tone mapping algorithm to
31836               support an additional linear slope near black. The tone mapping
31837               parameter indicates the trade-off between the linear section
31838               and the non-linear section. Essentially, for a given parameter
31839               x, every color value below x will be mapped linearly, while
31840               higher values get non-linearly tone-mapped. Values near 1.0
31841               make this curve behave like "clip", while values near 0.0 make
31842               this curve behave like "reinhard". The default value is 0.3,
31843               which provides a good balance between colorimetric accuracy and
31844               preserving out-of-gamut details.
31845
31846           hable
31847               Piece-wise, filmic tone-mapping algorithm developed by John
31848               Hable for use in Uncharted 2, inspired by a similar tone-
31849               mapping algorithm used by Kodak.  Popularized by its use in
31850               video games with HDR rendering. Preserves both dark and bright
31851               details very well, but comes with the drawback of changing the
31852               average brightness quite significantly. This is sort of similar
31853               to "reinhard" with parameter 0.24.
31854
31855           gamma
31856               Fits a gamma (power) function to transfer between the source
31857               and target color spaces, effectively resulting in a perceptual
31858               hard-knee joining two roughly linear sections. This preserves
31859               details at all scales fairly accurately, but can result in an
31860               image with a muted or dull appearance. The parameter is used as
31861               the cutoff point, defaulting to 0.5.
31862
31863           linear
31864               Linearly stretches the input range to the output range, in PQ
31865               space. This will preserve all details accurately, but results
31866               in a significantly different average brightness. Can be used
31867               for inverse tone-mapping in addition to regular tone-mapping.
31868               The parameter can be used as an additional linear gain
31869               coefficient (defaulting to 1.0).
31870
31871       tonemapping_param
31872           For tunable tone mapping functions, this parameter can be used to
31873           fine-tune the curve behavior. Refer to the documentation of
31874           "tonemapping". The default value of 0.0 is replaced by the curve's
31875           preferred default setting.
31876
31877       tonemapping_mode
31878           This option determines how the tone mapping function specified by
31879           "tonemapping" is applied to the colors in a scene. Possible values
31880           are:
31881
31882           auto
31883               Automatic selection based on internal heuristics. This is the
31884               default.
31885
31886           rgb Apply the function per-channel in the RGB colorspace.  Per-
31887               channel tone-mapping in RGB. Guarantees no clipping and heavily
31888               desaturates the output, but distorts the colors quite
31889               significantly. Very similar to the "Hollywood" look and feel.
31890
31891           max Tone-mapping is performed on the brightest component found in
31892               the signal. Good at preserving details in highlights, but has a
31893               tendency to crush blacks.
31894
31895           hybrid
31896               Tone-map per-channel for highlights and linearly (luma-based)
31897               for midtones/shadows, based on a fixed gamma 2.4 coefficient
31898               curve.
31899
31900           luma
31901               Tone-map linearly on the luma component (CIE Y), and adjust
31902               (desaturate) the chromaticities to compensate using a simple
31903               constant factor. This is essentially the mode used in ITU-R
31904               BT.2446 method A.
31905
31906       inverse_tonemapping
31907           If enabled, this filter will also attempt stretching SDR signals to
31908           fill HDR output color volumes. Disabled by default.
31909
31910       tonemapping_crosstalk
31911           Extra tone-mapping crosstalk factor, between 0.0 and 0.3. This can
31912           help reduce issues tone-mapping certain bright spectral colors.
31913           Defaults to 0.04.
31914
31915       tonemapping_lut_size
31916           Size of the tone-mapping LUT, between 2 and 1024. Defaults to 256.
31917           Note that this figure is squared when combined with "peak_detect".
31918
31919       Dithering
31920
31921       By default, libplacebo will dither whenever necessary, which includes
31922       rendering to any integer format below 16-bit precision. It's
31923       recommended to always leave this on, since not doing so may result in
31924       visible banding in the output, even if the "debanding" filter is
31925       enabled. If maximum performance is needed, use "ordered_fixed" instead
31926       of disabling dithering.
31927
31928       dithering
31929           Dithering method to use. Accepts the following values:
31930
31931           none
31932               Disables dithering completely. May result in visible banding.
31933
31934           blue
31935               Dither with pseudo-blue noise. This is the default.
31936
31937           ordered
31938               Tunable ordered dither pattern.
31939
31940           ordered_fixed
31941               Faster ordered dither with a fixed size of 6. Texture-less.
31942
31943           white
31944               Dither with white noise. Texture-less.
31945
31946       dither_lut_size
31947           Dither LUT size, as log base2 between 1 and 8. Defaults to 6,
31948           corresponding to a LUT size of "64x64".
31949
31950       dither_temporal
31951           Enables temporal dithering. Disabled by default.
31952
31953       Custom shaders
31954
31955       libplacebo supports a number of custom shaders based on the mpv .hook
31956       GLSL syntax. A collection of such shaders can be found here:
31957       <https://github.com/mpv-player/mpv/wiki/User-Scripts#user-shaders>
31958
31959       A full description of the mpv shader format is beyond the scope of this
31960       section, but a summary can be found here:
31961       <https://mpv.io/manual/master/#options-glsl-shader>
31962
31963       custom_shader_path
31964           Specifies a path to a custom shader file to load at runtime.
31965
31966       custom_shader_bin
31967           Specifies a complete custom shader as a raw string.
31968
31969       Debugging / performance
31970
31971       All of the options in this section default off. They may be of
31972       assistance when attempting to squeeze the maximum performance at the
31973       cost of quality.
31974
31975       skip_aa
31976           Disable anti-aliasing when downscaling.
31977
31978       polar_cutoff
31979           Truncate polar (EWA) scaler kernels below this absolute magnitude,
31980           between 0.0 and 1.0.
31981
31982       disable_linear
31983           Disable linear light scaling.
31984
31985       disable_builtin
31986           Disable built-in GPU sampling (forces LUT).
31987
31988       force_icc_lut
31989           Force the use of a full ICC 3DLUT for gamut mapping.
31990
31991       disable_fbos
31992           Forcibly disable FBOs, resulting in loss of almost all
31993           functionality, but offering the maximum possible speed.
31994
31995       Commands
31996
31997       This filter supports almost all of the above options as commands.
31998
31999       Examples
32000
32001       •   Complete example for how to initialize the Vulkan device, upload
32002           frames to the GPU, perform filter conversion to yuv420p, and
32003           download frames back to the CPU for output. Note that in specific
32004           cases you can get around the need to perform format conversion by
32005           specifying the correct "format" filter option corresponding to the
32006           input frames.
32007
32008                   ffmpeg -i $INPUT -init_hw_device vulkan -vf hwupload,libplacebo=format=yuv420p,hwdownload,format=yuv420p $OUTPUT
32009
32010       •   Tone-map input to standard gamut BT.709 output:
32011
32012                   libplacebo=colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv
32013
32014       •   Rescale input to fit into standard 1080p, with high quality
32015           scaling:
32016
32017                   libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos
32018
32019       •   Convert input to standard sRGB JPEG:
32020
32021                   libplacebo=format=yuv420p:colorspace=bt470bg:color_primaries=bt709:color_trc=iec61966-2-1:range=pc
32022
32023       •   Use higher quality debanding settings:
32024
32025                   libplacebo=deband=true:deband_iterations=3:deband_radius=8:deband_threshold=6
32026
32027       •   Run this filter on the CPU, on systems with Mesa installed (and
32028           with the most expensive options disabled):
32029
32030                   ffmpeg ... -init_hw_device vulkan:llvmpipe ... -vf libplacebo=upscaler=none:downscaler=none:peak_detect=false
32031
32032       •   Suppress CPU-based AV1/H.274 film grain application in the decoder,
32033           in favor of doing it with this filter. Note that this is only a
32034           gain if the frames are either already on the GPU, or if you're
32035           using libplacebo for other purposes, since otherwise the VRAM
32036           roundtrip will more than offset any expected speedup.
32037
32038                   ffmpeg -export_side_data +film_grain ... -vf libplacebo=apply_filmgrain=true
32039
32040   libvmaf
32041       Calulate the VMAF (Video Multi-Method Assessment Fusion) score for a
32042       reference/distorted pair of input videos.
32043
32044       The first input is the distorted video, and the second input is the
32045       reference video.
32046
32047       The obtained VMAF score is printed through the logging system.
32048
32049       It requires Netflix's vmaf library (libvmaf) as a pre-requisite.  After
32050       installing the library it can be enabled using: "./configure
32051       --enable-libvmaf".
32052
32053       The filter has following options:
32054
32055       model
32056           A `|` delimited list of vmaf models. Each model can be configured
32057           with a number of parameters.  Default value: "version=vmaf_v0.6.1"
32058
32059       model_path
32060           Deprecated, use model='path=...'.
32061
32062       enable_transform
32063           Deprecated, use model='enable_transform=true'.
32064
32065       phone_model
32066           Deprecated, use model='enable_transform=true'.
32067
32068       enable_conf_interval
32069           Deprecated, use model='enable_conf_interval=true'.
32070
32071       feature
32072           A `|` delimited list of features. Each feature can be configured
32073           with a number of parameters.
32074
32075       psnr
32076           Deprecated, use feature='name=psnr'.
32077
32078       ssim
32079           Deprecated, use feature='name=ssim'.
32080
32081       ms_ssim
32082           Deprecated, use feature='name=ms_ssim'.
32083
32084       log_path
32085           Set the file path to be used to store log files.
32086
32087       log_fmt
32088           Set the format of the log file (xml, json, csv, or sub).
32089
32090       n_threads
32091           Set number of threads to be used when initializing libvmaf.
32092           Default value: 0, no threads.
32093
32094       n_subsample
32095           Set frame subsampling interval to be used.
32096
32097       This filter also supports the framesync options.
32098
32099       Examples
32100
32101       •   In the examples below, a distorted video distorted.mpg is compared
32102           with a reference file reference.mpg.
32103
32104       •   Basic usage:
32105
32106                   ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf=log_path=output.xml -f null -
32107
32108       •   Example with multiple models:
32109
32110                   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 -
32111
32112       •   Example with multiple addtional features:
32113
32114                   ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='feature=name=psnr|name=ciede' -f null -
32115
32116       •   Example with options and different containers:
32117
32118                   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 -
32119
32120   limitdiff
32121       Apply limited difference filter using second and optionally third video
32122       stream.
32123
32124       The filter accepts the following options:
32125
32126       threshold
32127           Set the threshold to use when allowing certain differences between
32128           video streams.  Any absolute difference value lower or exact than
32129           this threshold will pick pixel components from first video stream.
32130
32131       elasticity
32132           Set the elasticity of soft thresholding when processing video
32133           streams.  This value multiplied with first one sets second
32134           threshold.  Any absolute difference value greater or exact than
32135           second threshold will pick pixel components from second video
32136           stream. For values between those two threshold linear interpolation
32137           between first and second video stream will be used.
32138
32139       reference
32140           Enable the reference (third) video stream processing. By default is
32141           disabled.  If set, this video stream will be used for calculating
32142           absolute difference with first video stream.
32143
32144       planes
32145           Specify which planes will be processed. Defaults to all available.
32146
32147       Commands
32148
32149       This filter supports the all above options as commands except option
32150       reference.
32151
32152   limiter
32153       Limits the pixel components values to the specified range [min, max].
32154
32155       The filter accepts the following options:
32156
32157       min Lower bound. Defaults to the lowest allowed value for the input.
32158
32159       max Upper bound. Defaults to the highest allowed value for the input.
32160
32161       planes
32162           Specify which planes will be processed. Defaults to all available.
32163
32164       Commands
32165
32166       This filter supports the all above options as commands.
32167
32168   loop
32169       Loop video frames.
32170
32171       The filter accepts the following options:
32172
32173       loop
32174           Set the number of loops. Setting this value to -1 will result in
32175           infinite loops.  Default is 0.
32176
32177       size
32178           Set maximal size in number of frames. Default is 0.
32179
32180       start
32181           Set first frame of loop. Default is 0.
32182
32183       Examples
32184
32185       •   Loop single first frame infinitely:
32186
32187                   loop=loop=-1:size=1:start=0
32188
32189       •   Loop single first frame 10 times:
32190
32191                   loop=loop=10:size=1:start=0
32192
32193       •   Loop 10 first frames 5 times:
32194
32195                   loop=loop=5:size=10:start=0
32196
32197   lut1d
32198       Apply a 1D LUT to an input video.
32199
32200       The filter accepts the following options:
32201
32202       file
32203           Set the 1D LUT file name.
32204
32205           Currently supported formats:
32206
32207           cube
32208               Iridas
32209
32210           csp cineSpace
32211
32212       interp
32213           Select interpolation mode.
32214
32215           Available values are:
32216
32217           nearest
32218               Use values from the nearest defined point.
32219
32220           linear
32221               Interpolate values using the linear interpolation.
32222
32223           cosine
32224               Interpolate values using the cosine interpolation.
32225
32226           cubic
32227               Interpolate values using the cubic interpolation.
32228
32229           spline
32230               Interpolate values using the spline interpolation.
32231
32232       Commands
32233
32234       This filter supports the all above options as commands.
32235
32236   lut3d
32237       Apply a 3D LUT to an input video.
32238
32239       The filter accepts the following options:
32240
32241       file
32242           Set the 3D LUT file name.
32243
32244           Currently supported formats:
32245
32246           3dl AfterEffects
32247
32248           cube
32249               Iridas
32250
32251           dat DaVinci
32252
32253           m3d Pandora
32254
32255           csp cineSpace
32256
32257       interp
32258           Select interpolation mode.
32259
32260           Available values are:
32261
32262           nearest
32263               Use values from the nearest defined point.
32264
32265           trilinear
32266               Interpolate values using the 8 points defining a cube.
32267
32268           tetrahedral
32269               Interpolate values using a tetrahedron.
32270
32271           pyramid
32272               Interpolate values using a pyramid.
32273
32274           prism
32275               Interpolate values using a prism.
32276
32277       Commands
32278
32279       This filter supports the "interp" option as commands.
32280
32281   lumakey
32282       Turn certain luma values into transparency.
32283
32284       The filter accepts the following options:
32285
32286       threshold
32287           Set the luma which will be used as base for transparency.  Default
32288           value is 0.
32289
32290       tolerance
32291           Set the range of luma values to be keyed out.  Default value is
32292           0.01.
32293
32294       softness
32295           Set the range of softness. Default value is 0.  Use this to control
32296           gradual transition from zero to full transparency.
32297
32298       Commands
32299
32300       This filter supports same commands as options.  The command accepts the
32301       same syntax of the corresponding option.
32302
32303       If the specified expression is not valid, it is kept at its current
32304       value.
32305
32306   lut, lutrgb, lutyuv
32307       Compute a look-up table for binding each pixel component input value to
32308       an output value, and apply it to the input video.
32309
32310       lutyuv applies a lookup table to a YUV input video, lutrgb to an RGB
32311       input video.
32312
32313       These filters accept the following parameters:
32314
32315       c0  set first pixel component expression
32316
32317       c1  set second pixel component expression
32318
32319       c2  set third pixel component expression
32320
32321       c3  set fourth pixel component expression, corresponds to the alpha
32322           component
32323
32324       r   set red component expression
32325
32326       g   set green component expression
32327
32328       b   set blue component expression
32329
32330       a   alpha component expression
32331
32332       y   set Y/luminance component expression
32333
32334       u   set U/Cb component expression
32335
32336       v   set V/Cr component expression
32337
32338       Each of them specifies the expression to use for computing the lookup
32339       table for the corresponding pixel component values.
32340
32341       The exact component associated to each of the c* options depends on the
32342       format in input.
32343
32344       The lut filter requires either YUV or RGB pixel formats in input,
32345       lutrgb requires RGB pixel formats in input, and lutyuv requires YUV.
32346
32347       The expressions can contain the following constants and functions:
32348
32349       w
32350       h   The input width and height.
32351
32352       val The input value for the pixel component.
32353
32354       clipval
32355           The input value, clipped to the minval-maxval range.
32356
32357       maxval
32358           The maximum value for the pixel component.
32359
32360       minval
32361           The minimum value for the pixel component.
32362
32363       negval
32364           The negated value for the pixel component value, clipped to the
32365           minval-maxval range; it corresponds to the expression
32366           "maxval-clipval+minval".
32367
32368       clip(val)
32369           The computed value in val, clipped to the minval-maxval range.
32370
32371       gammaval(gamma)
32372           The computed gamma correction value of the pixel component value,
32373           clipped to the minval-maxval range. It corresponds to the
32374           expression
32375           "pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+minval"
32376
32377       All expressions default to "clipval".
32378
32379       Commands
32380
32381       This filter supports same commands as options.
32382
32383       Examples
32384
32385       •   Negate input video:
32386
32387                   lutrgb="r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val"
32388                   lutyuv="y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val"
32389
32390           The above is the same as:
32391
32392                   lutrgb="r=negval:g=negval:b=negval"
32393                   lutyuv="y=negval:u=negval:v=negval"
32394
32395       •   Negate luminance:
32396
32397                   lutyuv=y=negval
32398
32399       •   Remove chroma components, turning the video into a graytone image:
32400
32401                   lutyuv="u=128:v=128"
32402
32403       •   Apply a luma burning effect:
32404
32405                   lutyuv="y=2*val"
32406
32407       •   Remove green and blue components:
32408
32409                   lutrgb="g=0:b=0"
32410
32411       •   Set a constant alpha channel value on input:
32412
32413                   format=rgba,lutrgb=a="maxval-minval/2"
32414
32415       •   Correct luminance gamma by a factor of 0.5:
32416
32417                   lutyuv=y=gammaval(0.5)
32418
32419       •   Discard least significant bits of luma:
32420
32421                   lutyuv=y='bitand(val, 128+64+32)'
32422
32423       •   Technicolor like effect:
32424
32425                   lutyuv=u='(val-maxval/2)*2+maxval/2':v='(val-maxval/2)*2+maxval/2'
32426
32427   lut2, tlut2
32428       The "lut2" filter takes two input streams and outputs one stream.
32429
32430       The "tlut2" (time lut2) filter takes two consecutive frames from one
32431       single stream.
32432
32433       This filter accepts the following parameters:
32434
32435       c0  set first pixel component expression
32436
32437       c1  set second pixel component expression
32438
32439       c2  set third pixel component expression
32440
32441       c3  set fourth pixel component expression, corresponds to the alpha
32442           component
32443
32444       d   set output bit depth, only available for "lut2" filter. By default
32445           is 0, which means bit depth is automatically picked from first
32446           input format.
32447
32448       The "lut2" filter also supports the framesync options.
32449
32450       Each of them specifies the expression to use for computing the lookup
32451       table for the corresponding pixel component values.
32452
32453       The exact component associated to each of the c* options depends on the
32454       format in inputs.
32455
32456       The expressions can contain the following constants:
32457
32458       w
32459       h   The input width and height.
32460
32461       x   The first input value for the pixel component.
32462
32463       y   The second input value for the pixel component.
32464
32465       bdx The first input video bit depth.
32466
32467       bdy The second input video bit depth.
32468
32469       All expressions default to "x".
32470
32471       Commands
32472
32473       This filter supports the all above options as commands except option
32474       "d".
32475
32476       Examples
32477
32478       •   Highlight differences between two RGB video streams:
32479
32480                   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)'
32481
32482       •   Highlight differences between two YUV video streams:
32483
32484                   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)'
32485
32486       •   Show max difference between two video streams:
32487
32488                   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)))'
32489
32490   maskedclamp
32491       Clamp the first input stream with the second input and third input
32492       stream.
32493
32494       Returns the value of first stream to be between second input stream -
32495       "undershoot" and third input stream + "overshoot".
32496
32497       This filter accepts the following options:
32498
32499       undershoot
32500           Default value is 0.
32501
32502       overshoot
32503           Default value is 0.
32504
32505       planes
32506           Set which planes will be processed as bitmap, unprocessed planes
32507           will be copied from first stream.  By default value 0xf, all planes
32508           will be processed.
32509
32510       Commands
32511
32512       This filter supports the all above options as commands.
32513
32514   maskedmax
32515       Merge the second and third input stream into output stream using
32516       absolute differences between second input stream and first input stream
32517       and absolute difference between third input stream and first input
32518       stream. The picked value will be from second input stream if second
32519       absolute difference is greater than first one or from third input
32520       stream otherwise.
32521
32522       This filter accepts the following options:
32523
32524       planes
32525           Set which planes will be processed as bitmap, unprocessed planes
32526           will be copied from first stream.  By default value 0xf, all planes
32527           will be processed.
32528
32529       Commands
32530
32531       This filter supports the all above options as commands.
32532
32533   maskedmerge
32534       Merge the first input stream with the second input stream using per
32535       pixel weights in the third input stream.
32536
32537       A value of 0 in the third stream pixel component means that pixel
32538       component from first stream is returned unchanged, while maximum value
32539       (eg. 255 for 8-bit videos) means that pixel component from second
32540       stream is returned unchanged. Intermediate values define the amount of
32541       merging between both input stream's pixel components.
32542
32543       This filter accepts the following options:
32544
32545       planes
32546           Set which planes will be processed as bitmap, unprocessed planes
32547           will be copied from first stream.  By default value 0xf, all planes
32548           will be processed.
32549
32550       Commands
32551
32552       This filter supports the all above options as commands.
32553
32554   maskedmin
32555       Merge the second and third input stream into output stream using
32556       absolute differences between second input stream and first input stream
32557       and absolute difference between third input stream and first input
32558       stream. The picked value will be from second input stream if second
32559       absolute difference is less than first one or from third input stream
32560       otherwise.
32561
32562       This filter accepts the following options:
32563
32564       planes
32565           Set which planes will be processed as bitmap, unprocessed planes
32566           will be copied from first stream.  By default value 0xf, all planes
32567           will be processed.
32568
32569       Commands
32570
32571       This filter supports the all above options as commands.
32572
32573   maskedthreshold
32574       Pick pixels comparing absolute difference of two video streams with
32575       fixed threshold.
32576
32577       If absolute difference between pixel component of first and second
32578       video stream is equal or lower than user supplied threshold than pixel
32579       component from first video stream is picked, otherwise pixel component
32580       from second video stream is picked.
32581
32582       This filter accepts the following options:
32583
32584       threshold
32585           Set threshold used when picking pixels from absolute difference
32586           from two input video streams.
32587
32588       planes
32589           Set which planes will be processed as bitmap, unprocessed planes
32590           will be copied from second stream.  By default value 0xf, all
32591           planes will be processed.
32592
32593       Commands
32594
32595       This filter supports the all above options as commands.
32596
32597   maskfun
32598       Create mask from input video.
32599
32600       For example it is useful to create motion masks after "tblend" filter.
32601
32602       This filter accepts the following options:
32603
32604       low Set low threshold. Any pixel component lower or exact than this
32605           value will be set to 0.
32606
32607       high
32608           Set high threshold. Any pixel component higher than this value will
32609           be set to max value allowed for current pixel format.
32610
32611       planes
32612           Set planes to filter, by default all available planes are filtered.
32613
32614       fill
32615           Fill all frame pixels with this value.
32616
32617       sum Set max average pixel value for frame. If sum of all pixel
32618           components is higher that this average, output frame will be
32619           completely filled with value set by fill option.  Typically useful
32620           for scene changes when used in combination with "tblend" filter.
32621
32622       Commands
32623
32624       This filter supports the all above options as commands.
32625
32626   mcdeint
32627       Apply motion-compensation deinterlacing.
32628
32629       It needs one field per frame as input and must thus be used together
32630       with yadif=1/3 or equivalent.
32631
32632       This filter is only available in ffmpeg version 4.4 or earlier.
32633
32634       This filter accepts the following options:
32635
32636       mode
32637           Set the deinterlacing mode.
32638
32639           It accepts one of the following values:
32640
32641           fast
32642           medium
32643           slow
32644               use iterative motion estimation
32645
32646           extra_slow
32647               like slow, but use multiple reference frames.
32648
32649           Default value is fast.
32650
32651       parity
32652           Set the picture field parity assumed for the input video. It must
32653           be one of the following values:
32654
32655           0, tff
32656               assume top field first
32657
32658           1, bff
32659               assume bottom field first
32660
32661           Default value is bff.
32662
32663       qp  Set per-block quantization parameter (QP) used by the internal
32664           encoder.
32665
32666           Higher values should result in a smoother motion vector field but
32667           less optimal individual vectors. Default value is 1.
32668
32669   median
32670       Pick median pixel from certain rectangle defined by radius.
32671
32672       This filter accepts the following options:
32673
32674       radius
32675           Set horizontal radius size. Default value is 1.  Allowed range is
32676           integer from 1 to 127.
32677
32678       planes
32679           Set which planes to process. Default is 15, which is all available
32680           planes.
32681
32682       radiusV
32683           Set vertical radius size. Default value is 0.  Allowed range is
32684           integer from 0 to 127.  If it is 0, value will be picked from
32685           horizontal "radius" option.
32686
32687       percentile
32688           Set median percentile. Default value is 0.5.  Default value of 0.5
32689           will pick always median values, while 0 will pick minimum values,
32690           and 1 maximum values.
32691
32692       Commands
32693
32694       This filter supports same commands as options.  The command accepts the
32695       same syntax of the corresponding option.
32696
32697       If the specified expression is not valid, it is kept at its current
32698       value.
32699
32700   mergeplanes
32701       Merge color channel components from several video streams.
32702
32703       The filter accepts up to 4 input streams, and merge selected input
32704       planes to the output video.
32705
32706       This filter accepts the following options:
32707
32708       mapping
32709           Set input to output plane mapping. Default is 0.
32710
32711           The mappings is specified as a bitmap. It should be specified as a
32712           hexadecimal number in the form 0xAa[Bb[Cc[Dd]]]. 'Aa' describes the
32713           mapping for the first plane of the output stream. 'A' sets the
32714           number of the input stream to use (from 0 to 3), and 'a' the plane
32715           number of the corresponding input to use (from 0 to 3). The rest of
32716           the mappings is similar, 'Bb' describes the mapping for the output
32717           stream second plane, 'Cc' describes the mapping for the output
32718           stream third plane and 'Dd' describes the mapping for the output
32719           stream fourth plane.
32720
32721       format
32722           Set output pixel format. Default is "yuva444p".
32723
32724       map0s
32725       map1s
32726       map2s
32727       map3s
32728           Set input to output stream mapping for output Nth plane. Default is
32729           0.
32730
32731       map0p
32732       map1p
32733       map2p
32734       map3p
32735           Set input to output plane mapping for output Nth plane. Default is
32736           0.
32737
32738       Examples
32739
32740       •   Merge three gray video streams of same width and height into single
32741           video stream:
32742
32743                   [a0][a1][a2]mergeplanes=0x001020:yuv444p
32744
32745       •   Merge 1st yuv444p stream and 2nd gray video stream into yuva444p
32746           video stream:
32747
32748                   [a0][a1]mergeplanes=0x00010210:yuva444p
32749
32750       •   Swap Y and A plane in yuva444p stream:
32751
32752                   format=yuva444p,mergeplanes=0x03010200:yuva444p
32753
32754       •   Swap U and V plane in yuv420p stream:
32755
32756                   format=yuv420p,mergeplanes=0x000201:yuv420p
32757
32758       •   Cast a rgb24 clip to yuv444p:
32759
32760                   format=rgb24,mergeplanes=0x000102:yuv444p
32761
32762   mestimate
32763       Estimate and export motion vectors using block matching algorithms.
32764       Motion vectors are stored in frame side data to be used by other
32765       filters.
32766
32767       This filter accepts the following options:
32768
32769       method
32770           Specify the motion estimation method. Accepts one of the following
32771           values:
32772
32773           esa Exhaustive search algorithm.
32774
32775           tss Three step search algorithm.
32776
32777           tdls
32778               Two dimensional logarithmic search algorithm.
32779
32780           ntss
32781               New three step search algorithm.
32782
32783           fss Four step search algorithm.
32784
32785           ds  Diamond search algorithm.
32786
32787           hexbs
32788               Hexagon-based search algorithm.
32789
32790           epzs
32791               Enhanced predictive zonal search algorithm.
32792
32793           umh Uneven multi-hexagon search algorithm.
32794
32795           Default value is esa.
32796
32797       mb_size
32798           Macroblock size. Default 16.
32799
32800       search_param
32801           Search parameter. Default 7.
32802
32803   midequalizer
32804       Apply Midway Image Equalization effect using two video streams.
32805
32806       Midway Image Equalization adjusts a pair of images to have the same
32807       histogram, while maintaining their dynamics as much as possible. It's
32808       useful for e.g. matching exposures from a pair of stereo cameras.
32809
32810       This filter has two inputs and one output, which must be of same pixel
32811       format, but may be of different sizes. The output of filter is first
32812       input adjusted with midway histogram of both inputs.
32813
32814       This filter accepts the following option:
32815
32816       planes
32817           Set which planes to process. Default is 15, which is all available
32818           planes.
32819
32820   minterpolate
32821       Convert the video to specified frame rate using motion interpolation.
32822
32823       This filter accepts the following options:
32824
32825       fps Specify the output frame rate. This can be rational e.g.
32826           "60000/1001". Frames are dropped if fps is lower than source fps.
32827           Default 60.
32828
32829       mi_mode
32830           Motion interpolation mode. Following values are accepted:
32831
32832           dup Duplicate previous or next frame for interpolating new ones.
32833
32834           blend
32835               Blend source frames. Interpolated frame is mean of previous and
32836               next frames.
32837
32838           mci Motion compensated interpolation. Following options are
32839               effective when this mode is selected:
32840
32841               mc_mode
32842                   Motion compensation mode. Following values are accepted:
32843
32844                   obmc
32845                       Overlapped block motion compensation.
32846
32847                   aobmc
32848                       Adaptive overlapped block motion compensation. Window
32849                       weighting coefficients are controlled adaptively
32850                       according to the reliabilities of the neighboring
32851                       motion vectors to reduce oversmoothing.
32852
32853                   Default mode is obmc.
32854
32855               me_mode
32856                   Motion estimation mode. Following values are accepted:
32857
32858                   bidir
32859                       Bidirectional motion estimation. Motion vectors are
32860                       estimated for each source frame in both forward and
32861                       backward directions.
32862
32863                   bilat
32864                       Bilateral motion estimation. Motion vectors are
32865                       estimated directly for interpolated frame.
32866
32867                   Default mode is bilat.
32868
32869               me  The algorithm to be used for motion estimation. Following
32870                   values are accepted:
32871
32872                   esa Exhaustive search algorithm.
32873
32874                   tss Three step search algorithm.
32875
32876                   tdls
32877                       Two dimensional logarithmic search algorithm.
32878
32879                   ntss
32880                       New three step search algorithm.
32881
32882                   fss Four step search algorithm.
32883
32884                   ds  Diamond search algorithm.
32885
32886                   hexbs
32887                       Hexagon-based search algorithm.
32888
32889                   epzs
32890                       Enhanced predictive zonal search algorithm.
32891
32892                   umh Uneven multi-hexagon search algorithm.
32893
32894                   Default algorithm is epzs.
32895
32896               mb_size
32897                   Macroblock size. Default 16.
32898
32899               search_param
32900                   Motion estimation search parameter. Default 32.
32901
32902               vsbmc
32903                   Enable variable-size block motion compensation. Motion
32904                   estimation is applied with smaller block sizes at object
32905                   boundaries in order to make the them less blur. Default is
32906                   0 (disabled).
32907
32908       scd Scene change detection method. Scene change leads motion vectors to
32909           be in random direction. Scene change detection replace interpolated
32910           frames by duplicate ones. May not be needed for other modes.
32911           Following values are accepted:
32912
32913           none
32914               Disable scene change detection.
32915
32916           fdiff
32917               Frame difference. Corresponding pixel values are compared and
32918               if it satisfies scd_threshold scene change is detected.
32919
32920           Default method is fdiff.
32921
32922       scd_threshold
32923           Scene change detection threshold. Default is 10..
32924
32925   mix
32926       Mix several video input streams into one video stream.
32927
32928       A description of the accepted options follows.
32929
32930       inputs
32931           The number of inputs. If unspecified, it defaults to 2.
32932
32933       weights
32934           Specify weight of each input video stream as sequence.  Each weight
32935           is separated by space. If number of weights is smaller than number
32936           of frames last specified weight will be used for all remaining
32937           unset weights.
32938
32939       scale
32940           Specify scale, if it is set it will be multiplied with sum of each
32941           weight multiplied with pixel values to give final destination pixel
32942           value. By default scale is auto scaled to sum of weights.
32943
32944       planes
32945           Set which planes to filter. Default is all. Allowed range is from 0
32946           to 15.
32947
32948       duration
32949           Specify how end of stream is determined.
32950
32951           longest
32952               The duration of the longest input. (default)
32953
32954           shortest
32955               The duration of the shortest input.
32956
32957           first
32958               The duration of the first input.
32959
32960       Commands
32961
32962       This filter supports the following commands:
32963
32964       weights
32965       scale
32966       planes
32967           Syntax is same as option with same name.
32968
32969   monochrome
32970       Convert video to gray using custom color filter.
32971
32972       A description of the accepted options follows.
32973
32974       cb  Set the chroma blue spot. Allowed range is from -1 to 1.  Default
32975           value is 0.
32976
32977       cr  Set the chroma red spot. Allowed range is from -1 to 1.  Default
32978           value is 0.
32979
32980       size
32981           Set the color filter size. Allowed range is from .1 to 10.  Default
32982           value is 1.
32983
32984       high
32985           Set the highlights strength. Allowed range is from 0 to 1.  Default
32986           value is 0.
32987
32988       Commands
32989
32990       This filter supports the all above options as commands.
32991
32992   morpho
32993       This filter allows to apply main morphological grayscale transforms,
32994       erode and dilate with arbitrary structures set in second input stream.
32995
32996       Unlike naive implementation and much slower performance in erosion and
32997       dilation filters, when speed is critical "morpho" filter should be used
32998       instead.
32999
33000       A description of accepted options follows,
33001
33002       mode
33003           Set morphological transform to apply, can be:
33004
33005           erode
33006           dilate
33007           open
33008           close
33009           gradient
33010           tophat
33011           blackhat
33012
33013           Default is "erode".
33014
33015       planes
33016           Set planes to filter, by default all planes except alpha are
33017           filtered.
33018
33019       structure
33020           Set which structure video frames will be processed from second
33021           input stream, can be first or all. Default is all.
33022
33023       The "morpho" filter also supports the framesync options.
33024
33025       Commands
33026
33027       This filter supports same commands as options.
33028
33029   mpdecimate
33030       Drop frames that do not differ greatly from the previous frame in order
33031       to reduce frame rate.
33032
33033       The main use of this filter is for very-low-bitrate encoding (e.g.
33034       streaming over dialup modem), but it could in theory be used for fixing
33035       movies that were inverse-telecined incorrectly.
33036
33037       A description of the accepted options follows.
33038
33039       max Set the maximum number of consecutive frames which can be dropped
33040           (if positive), or the minimum interval between dropped frames (if
33041           negative). If the value is 0, the frame is dropped disregarding the
33042           number of previous sequentially dropped frames.
33043
33044           Default value is 0.
33045
33046       hi
33047       lo
33048       frac
33049           Set the dropping threshold values.
33050
33051           Values for hi and lo are for 8x8 pixel blocks and represent actual
33052           pixel value differences, so a threshold of 64 corresponds to 1 unit
33053           of difference for each pixel, or the same spread out differently
33054           over the block.
33055
33056           A frame is a candidate for dropping if no 8x8 blocks differ by more
33057           than a threshold of hi, and if no more than frac blocks (1 meaning
33058           the whole image) differ by more than a threshold of lo.
33059
33060           Default value for hi is 64*12, default value for lo is 64*5, and
33061           default value for frac is 0.33.
33062
33063   msad
33064       Obtain the MSAD (Mean Sum of Absolute Differences) between two input
33065       videos.
33066
33067       This filter takes two input videos.
33068
33069       Both input videos must have the same resolution and pixel format for
33070       this filter to work correctly. Also it assumes that both inputs have
33071       the same number of frames, which are compared one by one.
33072
33073       The obtained per component, average, min and max MSAD is printed
33074       through the logging system.
33075
33076       The filter stores the calculated MSAD of each frame in frame metadata.
33077
33078       In the below example the input file main.mpg being processed is
33079       compared with the reference file ref.mpg.
33080
33081               ffmpeg -i main.mpg -i ref.mpg -lavfi msad -f null -
33082
33083   multiply
33084       Multiply first video stream pixels values with second video stream
33085       pixels values.
33086
33087       The filter accepts the following options:
33088
33089       scale
33090           Set the scale applied to second video stream. By default is 1.
33091           Allowed range is from 0 to 9.
33092
33093       offset
33094           Set the offset applied to second video stream. By default is 0.5.
33095           Allowed range is from "-1" to 1.
33096
33097       planes
33098           Specify planes from input video stream that will be processed.  By
33099           default all planes are processed.
33100
33101       Commands
33102
33103       This filter supports same commands as options.
33104
33105   negate
33106       Negate (invert) the input video.
33107
33108       It accepts the following option:
33109
33110       components
33111           Set components to negate.
33112
33113           Available values for components are:
33114
33115           y
33116           u
33117           v
33118           a
33119           r
33120           g
33121           b
33122       negate_alpha
33123           With value 1, it negates the alpha component, if present. Default
33124           value is 0.
33125
33126       Commands
33127
33128       This filter supports same commands as options.
33129
33130   nlmeans
33131       Denoise frames using Non-Local Means algorithm.
33132
33133       Each pixel is adjusted by looking for other pixels with similar
33134       contexts. This context similarity is defined by comparing their
33135       surrounding patches of size pxp. Patches are searched in an area of rxr
33136       around the pixel.
33137
33138       Note that the research area defines centers for patches, which means
33139       some patches will be made of pixels outside that research area.
33140
33141       The filter accepts the following options.
33142
33143       s   Set denoising strength. Default is 1.0. Must be in range [1.0,
33144           30.0].
33145
33146       p   Set patch size. Default is 7. Must be odd number in range [0, 99].
33147
33148       pc  Same as p but for chroma planes.
33149
33150           The default value is 0 and means automatic.
33151
33152       r   Set research size. Default is 15. Must be odd number in range [0,
33153           99].
33154
33155       rc  Same as r but for chroma planes.
33156
33157           The default value is 0 and means automatic.
33158
33159   nnedi
33160       Deinterlace video using neural network edge directed interpolation.
33161
33162       This filter accepts the following options:
33163
33164       weights
33165           Mandatory option, without binary file filter can not work.
33166           Currently file can be found here:
33167           https://github.com/dubhater/vapoursynth-nnedi3/blob/master/src/nnedi3_weights.bin
33168
33169       deint
33170           Set which frames to deinterlace, by default it is "all".  Can be
33171           "all" or "interlaced".
33172
33173       field
33174           Set mode of operation.
33175
33176           Can be one of the following:
33177
33178           af  Use frame flags, both fields.
33179
33180           a   Use frame flags, single field.
33181
33182           t   Use top field only.
33183
33184           b   Use bottom field only.
33185
33186           tf  Use both fields, top first.
33187
33188           bf  Use both fields, bottom first.
33189
33190       planes
33191           Set which planes to process, by default filter process all frames.
33192
33193       nsize
33194           Set size of local neighborhood around each pixel, used by the
33195           predictor neural network.
33196
33197           Can be one of the following:
33198
33199           s8x6
33200           s16x6
33201           s32x6
33202           s48x6
33203           s8x4
33204           s16x4
33205           s32x4
33206       nns Set the number of neurons in predictor neural network.  Can be one
33207           of the following:
33208
33209           n16
33210           n32
33211           n64
33212           n128
33213           n256
33214       qual
33215           Controls the number of different neural network predictions that
33216           are blended together to compute the final output value. Can be
33217           "fast", default or "slow".
33218
33219       etype
33220           Set which set of weights to use in the predictor.  Can be one of
33221           the following:
33222
33223           a, abs
33224               weights trained to minimize absolute error
33225
33226           s, mse
33227               weights trained to minimize squared error
33228
33229       pscrn
33230           Controls whether or not the prescreener neural network is used to
33231           decide which pixels should be processed by the predictor neural
33232           network and which can be handled by simple cubic interpolation.
33233           The prescreener is trained to know whether cubic interpolation will
33234           be sufficient for a pixel or whether it should be predicted by the
33235           predictor nn.  The computational complexity of the prescreener nn
33236           is much less than that of the predictor nn. Since most pixels can
33237           be handled by cubic interpolation, using the prescreener generally
33238           results in much faster processing.  The prescreener is pretty
33239           accurate, so the difference between using it and not using it is
33240           almost always unnoticeable.
33241
33242           Can be one of the following:
33243
33244           none
33245           original
33246           new
33247           new2
33248           new3
33249
33250           Default is "new".
33251
33252       Commands
33253
33254       This filter supports same commands as options, excluding weights
33255       option.
33256
33257   noformat
33258       Force libavfilter not to use any of the specified pixel formats for the
33259       input to the next filter.
33260
33261       It accepts the following parameters:
33262
33263       pix_fmts
33264           A '|'-separated list of pixel format names, such as
33265           pix_fmts=yuv420p|monow|rgb24".
33266
33267       Examples
33268
33269       •   Force libavfilter to use a format different from yuv420p for the
33270           input to the vflip filter:
33271
33272                   noformat=pix_fmts=yuv420p,vflip
33273
33274       •   Convert the input video to any of the formats not contained in the
33275           list:
33276
33277                   noformat=yuv420p|yuv444p|yuv410p
33278
33279   noise
33280       Add noise on video input frame.
33281
33282       The filter accepts the following options:
33283
33284       all_seed
33285       c0_seed
33286       c1_seed
33287       c2_seed
33288       c3_seed
33289           Set noise seed for specific pixel component or all pixel components
33290           in case of all_seed. Default value is 123457.
33291
33292       all_strength, alls
33293       c0_strength, c0s
33294       c1_strength, c1s
33295       c2_strength, c2s
33296       c3_strength, c3s
33297           Set noise strength for specific pixel component or all pixel
33298           components in case all_strength. Default value is 0. Allowed range
33299           is [0, 100].
33300
33301       all_flags, allf
33302       c0_flags, c0f
33303       c1_flags, c1f
33304       c2_flags, c2f
33305       c3_flags, c3f
33306           Set pixel component flags or set flags for all components if
33307           all_flags.  Available values for component flags are:
33308
33309           a   averaged temporal noise (smoother)
33310
33311           p   mix random noise with a (semi)regular pattern
33312
33313           t   temporal noise (noise pattern changes between frames)
33314
33315           u   uniform noise (gaussian otherwise)
33316
33317       Examples
33318
33319       Add temporal and uniform noise to input video:
33320
33321               noise=alls=20:allf=t+u
33322
33323   normalize
33324       Normalize RGB video (aka histogram stretching, contrast stretching).
33325       See: https://en.wikipedia.org/wiki/Normalization_(image_processing)
33326
33327       For each channel of each frame, the filter computes the input range and
33328       maps it linearly to the user-specified output range. The output range
33329       defaults to the full dynamic range from pure black to pure white.
33330
33331       Temporal smoothing can be used on the input range to reduce flickering
33332       (rapid changes in brightness) caused when small dark or bright objects
33333       enter or leave the scene. This is similar to the auto-exposure
33334       (automatic gain control) on a video camera, and, like a video camera,
33335       it may cause a period of over- or under-exposure of the video.
33336
33337       The R,G,B channels can be normalized independently, which may cause
33338       some color shifting, or linked together as a single channel, which
33339       prevents color shifting. Linked normalization preserves hue.
33340       Independent normalization does not, so it can be used to remove some
33341       color casts. Independent and linked normalization can be combined in
33342       any ratio.
33343
33344       The normalize filter accepts the following options:
33345
33346       blackpt
33347       whitept
33348           Colors which define the output range. The minimum input value is
33349           mapped to the blackpt. The maximum input value is mapped to the
33350           whitept.  The defaults are black and white respectively. Specifying
33351           white for blackpt and black for whitept will give color-inverted,
33352           normalized video. Shades of grey can be used to reduce the dynamic
33353           range (contrast). Specifying saturated colors here can create some
33354           interesting effects.
33355
33356       smoothing
33357           The number of previous frames to use for temporal smoothing. The
33358           input range of each channel is smoothed using a rolling average
33359           over the current frame and the smoothing previous frames. The
33360           default is 0 (no temporal smoothing).
33361
33362       independence
33363           Controls the ratio of independent (color shifting) channel
33364           normalization to linked (color preserving) normalization. 0.0 is
33365           fully linked, 1.0 is fully independent. Defaults to 1.0 (fully
33366           independent).
33367
33368       strength
33369           Overall strength of the filter. 1.0 is full strength. 0.0 is a
33370           rather expensive no-op. Defaults to 1.0 (full strength).
33371
33372       Commands
33373
33374       This filter supports same commands as options, excluding smoothing
33375       option.  The command accepts the same syntax of the corresponding
33376       option.
33377
33378       If the specified expression is not valid, it is kept at its current
33379       value.
33380
33381       Examples
33382
33383       Stretch video contrast to use the full dynamic range, with no temporal
33384       smoothing; may flicker depending on the source content:
33385
33386               normalize=blackpt=black:whitept=white:smoothing=0
33387
33388       As above, but with 50 frames of temporal smoothing; flicker should be
33389       reduced, depending on the source content:
33390
33391               normalize=blackpt=black:whitept=white:smoothing=50
33392
33393       As above, but with hue-preserving linked channel normalization:
33394
33395               normalize=blackpt=black:whitept=white:smoothing=50:independence=0
33396
33397       As above, but with half strength:
33398
33399               normalize=blackpt=black:whitept=white:smoothing=50:independence=0:strength=0.5
33400
33401       Map the darkest input color to red, the brightest input color to cyan:
33402
33403               normalize=blackpt=red:whitept=cyan
33404
33405   null
33406       Pass the video source unchanged to the output.
33407
33408   ocr
33409       Optical Character Recognition
33410
33411       This filter uses Tesseract for optical character recognition. To enable
33412       compilation of this filter, you need to configure FFmpeg with
33413       "--enable-libtesseract".
33414
33415       It accepts the following options:
33416
33417       datapath
33418           Set datapath to tesseract data. Default is to use whatever was set
33419           at installation.
33420
33421       language
33422           Set language, default is "eng".
33423
33424       whitelist
33425           Set character whitelist.
33426
33427       blacklist
33428           Set character blacklist.
33429
33430       The filter exports recognized text as the frame metadata
33431       "lavfi.ocr.text".  The filter exports confidence of recognized words as
33432       the frame metadata "lavfi.ocr.confidence".
33433
33434   ocv
33435       Apply a video transform using libopencv.
33436
33437       To enable this filter, install the libopencv library and headers and
33438       configure FFmpeg with "--enable-libopencv".
33439
33440       It accepts the following parameters:
33441
33442       filter_name
33443           The name of the libopencv filter to apply.
33444
33445       filter_params
33446           The parameters to pass to the libopencv filter. If not specified,
33447           the default values are assumed.
33448
33449       Refer to the official libopencv documentation for more precise
33450       information:
33451       <http://docs.opencv.org/master/modules/imgproc/doc/filtering.html>
33452
33453       Several libopencv filters are supported; see the following subsections.
33454
33455       dilate
33456
33457       Dilate an image by using a specific structuring element.  It
33458       corresponds to the libopencv function "cvDilate".
33459
33460       It accepts the parameters: struct_el|nb_iterations.
33461
33462       struct_el represents a structuring element, and has the syntax:
33463       colsxrows+anchor_xxanchor_y/shape
33464
33465       cols and rows represent the number of columns and rows of the
33466       structuring element, anchor_x and anchor_y the anchor point, and shape
33467       the shape for the structuring element. shape must be "rect", "cross",
33468       "ellipse", or "custom".
33469
33470       If the value for shape is "custom", it must be followed by a string of
33471       the form "=filename". The file with name filename is assumed to
33472       represent a binary image, with each printable character corresponding
33473       to a bright pixel. When a custom shape is used, cols and rows are
33474       ignored, the number or columns and rows of the read file are assumed
33475       instead.
33476
33477       The default value for struct_el is "3x3+0x0/rect".
33478
33479       nb_iterations specifies the number of times the transform is applied to
33480       the image, and defaults to 1.
33481
33482       Some examples:
33483
33484               # Use the default values
33485               ocv=dilate
33486
33487               # Dilate using a structuring element with a 5x5 cross, iterating two times
33488               ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2
33489
33490               # Read the shape from the file diamond.shape, iterating two times.
33491               # The file diamond.shape may contain a pattern of characters like this
33492               #   *
33493               #  ***
33494               # *****
33495               #  ***
33496               #   *
33497               # The specified columns and rows are ignored
33498               # but the anchor point coordinates are not
33499               ocv=dilate:0x0+2x2/custom=diamond.shape|2
33500
33501       erode
33502
33503       Erode an image by using a specific structuring element.  It corresponds
33504       to the libopencv function "cvErode".
33505
33506       It accepts the parameters: struct_el:nb_iterations, with the same
33507       syntax and semantics as the dilate filter.
33508
33509       smooth
33510
33511       Smooth the input video.
33512
33513       The filter takes the following parameters:
33514       type|param1|param2|param3|param4.
33515
33516       type is the type of smooth filter to apply, and must be one of the
33517       following values: "blur", "blur_no_scale", "median", "gaussian", or
33518       "bilateral". The default value is "gaussian".
33519
33520       The meaning of param1, param2, param3, and param4 depends on the smooth
33521       type. param1 and param2 accept integer positive values or 0. param3 and
33522       param4 accept floating point values.
33523
33524       The default value for param1 is 3. The default value for the other
33525       parameters is 0.
33526
33527       These parameters correspond to the parameters assigned to the libopencv
33528       function "cvSmooth".
33529
33530   oscilloscope
33531       2D Video Oscilloscope.
33532
33533       Useful to measure spatial impulse, step responses, chroma delays, etc.
33534
33535       It accepts the following parameters:
33536
33537       x   Set scope center x position.
33538
33539       y   Set scope center y position.
33540
33541       s   Set scope size, relative to frame diagonal.
33542
33543       t   Set scope tilt/rotation.
33544
33545       o   Set trace opacity.
33546
33547       tx  Set trace center x position.
33548
33549       ty  Set trace center y position.
33550
33551       tw  Set trace width, relative to width of frame.
33552
33553       th  Set trace height, relative to height of frame.
33554
33555       c   Set which components to trace. By default it traces first three
33556           components.
33557
33558       g   Draw trace grid. By default is enabled.
33559
33560       st  Draw some statistics. By default is enabled.
33561
33562       sc  Draw scope. By default is enabled.
33563
33564       Commands
33565
33566       This filter supports same commands as options.  The command accepts the
33567       same syntax of the corresponding option.
33568
33569       If the specified expression is not valid, it is kept at its current
33570       value.
33571
33572       Examples
33573
33574       •   Inspect full first row of video frame.
33575
33576                   oscilloscope=x=0.5:y=0:s=1
33577
33578       •   Inspect full last row of video frame.
33579
33580                   oscilloscope=x=0.5:y=1:s=1
33581
33582       •   Inspect full 5th line of video frame of height 1080.
33583
33584                   oscilloscope=x=0.5:y=5/1080:s=1
33585
33586       •   Inspect full last column of video frame.
33587
33588                   oscilloscope=x=1:y=0.5:s=1:t=1
33589
33590   overlay
33591       Overlay one video on top of another.
33592
33593       It takes two inputs and has one output. The first input is the "main"
33594       video on which the second input is overlaid.
33595
33596       It accepts the following parameters:
33597
33598       A description of the accepted options follows.
33599
33600       x
33601       y   Set the expression for the x and y coordinates of the overlaid
33602           video on the main video. Default value is "0" for both expressions.
33603           In case the expression is invalid, it is set to a huge value
33604           (meaning that the overlay will not be displayed within the output
33605           visible area).
33606
33607       eof_action
33608           See framesync.
33609
33610       eval
33611           Set when the expressions for x, and y are evaluated.
33612
33613           It accepts the following values:
33614
33615           init
33616               only evaluate expressions once during the filter initialization
33617               or when a command is processed
33618
33619           frame
33620               evaluate expressions for each incoming frame
33621
33622           Default value is frame.
33623
33624       shortest
33625           See framesync.
33626
33627       format
33628           Set the format for the output video.
33629
33630           It accepts the following values:
33631
33632           yuv420
33633               force YUV420 output
33634
33635           yuv420p10
33636               force YUV420p10 output
33637
33638           yuv422
33639               force YUV422 output
33640
33641           yuv422p10
33642               force YUV422p10 output
33643
33644           yuv444
33645               force YUV444 output
33646
33647           rgb force packed RGB output
33648
33649           gbrp
33650               force planar RGB output
33651
33652           auto
33653               automatically pick format
33654
33655           Default value is yuv420.
33656
33657       repeatlast
33658           See framesync.
33659
33660       alpha
33661           Set format of alpha of the overlaid video, it can be straight or
33662           premultiplied. Default is straight.
33663
33664       The x, and y expressions can contain the following parameters.
33665
33666       main_w, W
33667       main_h, H
33668           The main input width and height.
33669
33670       overlay_w, w
33671       overlay_h, h
33672           The overlay input width and height.
33673
33674       x
33675       y   The computed values for x and y. They are evaluated for each new
33676           frame.
33677
33678       hsub
33679       vsub
33680           horizontal and vertical chroma subsample values of the output
33681           format. For example for the pixel format "yuv422p" hsub is 2 and
33682           vsub is 1.
33683
33684       n   the number of input frame, starting from 0
33685
33686       pos the position in the file of the input frame, NAN if unknown
33687
33688       t   The timestamp, expressed in seconds. It's NAN if the input
33689           timestamp is unknown.
33690
33691       This filter also supports the framesync options.
33692
33693       Note that the n, pos, t variables are available only when evaluation is
33694       done per frame, and will evaluate to NAN when eval is set to init.
33695
33696       Be aware that frames are taken from each input video in timestamp
33697       order, hence, if their initial timestamps differ, it is a good idea to
33698       pass the two inputs through a setpts=PTS-STARTPTS filter to have them
33699       begin in the same zero timestamp, as the example for the movie filter
33700       does.
33701
33702       You can chain together more overlays but you should test the efficiency
33703       of such approach.
33704
33705       Commands
33706
33707       This filter supports the following commands:
33708
33709       x
33710       y   Modify the x and y of the overlay input.  The command accepts the
33711           same syntax of the corresponding option.
33712
33713           If the specified expression is not valid, it is kept at its current
33714           value.
33715
33716       Examples
33717
33718       •   Draw the overlay at 10 pixels from the bottom right corner of the
33719           main video:
33720
33721                   overlay=main_w-overlay_w-10:main_h-overlay_h-10
33722
33723           Using named options the example above becomes:
33724
33725                   overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
33726
33727       •   Insert a transparent PNG logo in the bottom left corner of the
33728           input, using the ffmpeg tool with the "-filter_complex" option:
33729
33730                   ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
33731
33732       •   Insert 2 different transparent PNG logos (second logo on bottom
33733           right corner) using the ffmpeg tool:
33734
33735                   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
33736
33737       •   Add a transparent color layer on top of the main video; "WxH" must
33738           specify the size of the main input to the overlay filter:
33739
33740                   color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
33741
33742       •   Play an original video and a filtered version (here with the
33743           deshake filter) side by side using the ffplay tool:
33744
33745                   ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
33746
33747           The above command is the same as:
33748
33749                   ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
33750
33751       •   Make a sliding overlay appearing from the left to the right top
33752           part of the screen starting since time 2:
33753
33754                   overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
33755
33756       •   Compose output by putting two input videos side to side:
33757
33758                   ffmpeg -i left.avi -i right.avi -filter_complex "
33759                   nullsrc=size=200x100 [background];
33760                   [0:v] setpts=PTS-STARTPTS, scale=100x100 [left];
33761                   [1:v] setpts=PTS-STARTPTS, scale=100x100 [right];
33762                   [background][left]       overlay=shortest=1       [background+left];
33763                   [background+left][right] overlay=shortest=1:x=100 [left+right]
33764                   "
33765
33766       •   Mask 10-20 seconds of a video by applying the delogo filter to a
33767           section
33768
33769                   ffmpeg -i test.avi -codec:v:0 wmv2 -ar 11025 -b:v 9000k
33770                   -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]'
33771                   masked.avi
33772
33773       •   Chain several overlays in cascade:
33774
33775                   nullsrc=s=200x200 [bg];
33776                   testsrc=s=100x100, split=4 [in0][in1][in2][in3];
33777                   [in0] lutrgb=r=0, [bg]   overlay=0:0     [mid0];
33778                   [in1] lutrgb=g=0, [mid0] overlay=100:0   [mid1];
33779                   [in2] lutrgb=b=0, [mid1] overlay=0:100   [mid2];
33780                   [in3] null,       [mid2] overlay=100:100 [out0]
33781
33782   overlay_cuda
33783       Overlay one video on top of another.
33784
33785       This is the CUDA variant of the overlay filter.  It only accepts CUDA
33786       frames. The underlying input pixel formats have to match.
33787
33788       It takes two inputs and has one output. The first input is the "main"
33789       video on which the second input is overlaid.
33790
33791       It accepts the following parameters:
33792
33793       x
33794       y   Set expressions for the x and y coordinates of the overlaid video
33795           on the main video.
33796
33797           They can contain the following parameters:
33798
33799           main_w, W
33800           main_h, H
33801               The main input width and height.
33802
33803           overlay_w, w
33804           overlay_h, h
33805               The overlay input width and height.
33806
33807           x
33808           y   The computed values for x and y. They are evaluated for each
33809               new frame.
33810
33811           n   The ordinal index of the main input frame, starting from 0.
33812
33813           pos The byte offset position in the file of the main input frame,
33814               NAN if unknown.
33815
33816           t   The timestamp of the main input frame, expressed in seconds,
33817               NAN if unknown.
33818
33819           Default value is "0" for both expressions.
33820
33821       eval
33822           Set when the expressions for x and y are evaluated.
33823
33824           It accepts the following values:
33825
33826           init
33827               Evaluate expressions once during filter initialization or when
33828               a command is processed.
33829
33830           frame
33831               Evaluate expressions for each incoming frame
33832
33833           Default value is frame.
33834
33835       eof_action
33836           See framesync.
33837
33838       shortest
33839           See framesync.
33840
33841       repeatlast
33842           See framesync.
33843
33844       This filter also supports the framesync options.
33845
33846   owdenoise
33847       Apply Overcomplete Wavelet denoiser.
33848
33849       The filter accepts the following options:
33850
33851       depth
33852           Set depth.
33853
33854           Larger depth values will denoise lower frequency components more,
33855           but slow down filtering.
33856
33857           Must be an int in the range 8-16, default is 8.
33858
33859       luma_strength, ls
33860           Set luma strength.
33861
33862           Must be a double value in the range 0-1000, default is 1.0.
33863
33864       chroma_strength, cs
33865           Set chroma strength.
33866
33867           Must be a double value in the range 0-1000, default is 1.0.
33868
33869   pad
33870       Add paddings to the input image, and place the original input at the
33871       provided x, y coordinates.
33872
33873       It accepts the following parameters:
33874
33875       width, w
33876       height, h
33877           Specify an expression for the size of the output image with the
33878           paddings added. If the value for width or height is 0, the
33879           corresponding input size is used for the output.
33880
33881           The width expression can reference the value set by the height
33882           expression, and vice versa.
33883
33884           The default value of width and height is 0.
33885
33886       x
33887       y   Specify the offsets to place the input image at within the padded
33888           area, with respect to the top/left border of the output image.
33889
33890           The x expression can reference the value set by the y expression,
33891           and vice versa.
33892
33893           The default value of x and y is 0.
33894
33895           If x or y evaluate to a negative number, they'll be changed so the
33896           input image is centered on the padded area.
33897
33898       color
33899           Specify the color of the padded area. For the syntax of this
33900           option, check the "Color" section in the ffmpeg-utils manual.
33901
33902           The default value of color is "black".
33903
33904       eval
33905           Specify when to evaluate  width, height, x and y expression.
33906
33907           It accepts the following values:
33908
33909           init
33910               Only evaluate expressions once during the filter initialization
33911               or when a command is processed.
33912
33913           frame
33914               Evaluate expressions for each incoming frame.
33915
33916           Default value is init.
33917
33918       aspect
33919           Pad to aspect instead to a resolution.
33920
33921       The value for the width, height, x, and y options are expressions
33922       containing the following constants:
33923
33924       in_w
33925       in_h
33926           The input video width and height.
33927
33928       iw
33929       ih  These are the same as in_w and in_h.
33930
33931       out_w
33932       out_h
33933           The output width and height (the size of the padded area), as
33934           specified by the width and height expressions.
33935
33936       ow
33937       oh  These are the same as out_w and out_h.
33938
33939       x
33940       y   The x and y offsets as specified by the x and y expressions, or NAN
33941           if not yet specified.
33942
33943       a   same as iw / ih
33944
33945       sar input sample aspect ratio
33946
33947       dar input display aspect ratio, it is the same as (iw / ih) * sar
33948
33949       hsub
33950       vsub
33951           The horizontal and vertical chroma subsample values. For example
33952           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
33953
33954       Examples
33955
33956       •   Add paddings with the color "violet" to the input video. The output
33957           video size is 640x480, and the top-left corner of the input video
33958           is placed at column 0, row 40
33959
33960                   pad=640:480:0:40:violet
33961
33962           The example above is equivalent to the following command:
33963
33964                   pad=width=640:height=480:x=0:y=40:color=violet
33965
33966       •   Pad the input to get an output with dimensions increased by 3/2,
33967           and put the input video at the center of the padded area:
33968
33969                   pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
33970
33971       •   Pad the input to get a squared output with size equal to the
33972           maximum value between the input width and height, and put the input
33973           video at the center of the padded area:
33974
33975                   pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
33976
33977       •   Pad the input to get a final w/h ratio of 16:9:
33978
33979                   pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
33980
33981       •   In case of anamorphic video, in order to set the output display
33982           aspect correctly, it is necessary to use sar in the expression,
33983           according to the relation:
33984
33985                   (ih * X / ih) * sar = output_dar
33986                   X = output_dar / sar
33987
33988           Thus the previous example needs to be modified to:
33989
33990                   pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
33991
33992       •   Double the output size and put the input video in the bottom-right
33993           corner of the output padded area:
33994
33995                   pad="2*iw:2*ih:ow-iw:oh-ih"
33996
33997   palettegen
33998       Generate one palette for a whole video stream.
33999
34000       It accepts the following options:
34001
34002       max_colors
34003           Set the maximum number of colors to quantize in the palette.  Note:
34004           the palette will still contain 256 colors; the unused palette
34005           entries will be black.
34006
34007       reserve_transparent
34008           Create a palette of 255 colors maximum and reserve the last one for
34009           transparency. Reserving the transparency color is useful for GIF
34010           optimization.  If not set, the maximum of colors in the palette
34011           will be 256. You probably want to disable this option for a
34012           standalone image.  Set by default.
34013
34014       transparency_color
34015           Set the color that will be used as background for transparency.
34016
34017       stats_mode
34018           Set statistics mode.
34019
34020           It accepts the following values:
34021
34022           full
34023               Compute full frame histograms.
34024
34025           diff
34026               Compute histograms only for the part that differs from previous
34027               frame. This might be relevant to give more importance to the
34028               moving part of your input if the background is static.
34029
34030           single
34031               Compute new histogram for each frame.
34032
34033           Default value is full.
34034
34035       use_alpha
34036           Create a palette of colors with alpha components.  Setting this,
34037           will automatically disable 'reserve_transparent'.
34038
34039       The filter also exports the frame metadata "lavfi.color_quant_ratio"
34040       ("nb_color_in / nb_color_out") which you can use to evaluate the degree
34041       of color quantization of the palette. This information is also visible
34042       at info logging level.
34043
34044       Examples
34045
34046       •   Generate a representative palette of a given video using ffmpeg:
34047
34048                   ffmpeg -i input.mkv -vf palettegen palette.png
34049
34050   paletteuse
34051       Use a palette to downsample an input video stream.
34052
34053       The filter takes two inputs: one video stream and a palette. The
34054       palette must be a 256 pixels image.
34055
34056       It accepts the following options:
34057
34058       dither
34059           Select dithering mode. Available algorithms are:
34060
34061           bayer
34062               Ordered 8x8 bayer dithering (deterministic)
34063
34064           heckbert
34065               Dithering as defined by Paul Heckbert in 1982 (simple error
34066               diffusion).  Note: this dithering is sometimes considered
34067               "wrong" and is included as a reference.
34068
34069           floyd_steinberg
34070               Floyd and Steingberg dithering (error diffusion)
34071
34072           sierra2
34073               Frankie Sierra dithering v2 (error diffusion)
34074
34075           sierra2_4a
34076               Frankie Sierra dithering v2 "Lite" (error diffusion)
34077
34078           Default is sierra2_4a.
34079
34080       bayer_scale
34081           When bayer dithering is selected, this option defines the scale of
34082           the pattern (how much the crosshatch pattern is visible). A low
34083           value means more visible pattern for less banding, and higher value
34084           means less visible pattern at the cost of more banding.
34085
34086           The option must be an integer value in the range [0,5]. Default is
34087           2.
34088
34089       diff_mode
34090           If set, define the zone to process
34091
34092           rectangle
34093               Only the changing rectangle will be reprocessed. This is
34094               similar to GIF cropping/offsetting compression mechanism. This
34095               option can be useful for speed if only a part of the image is
34096               changing, and has use cases such as limiting the scope of the
34097               error diffusal dither to the rectangle that bounds the moving
34098               scene (it leads to more deterministic output if the scene
34099               doesn't change much, and as a result less moving noise and
34100               better GIF compression).
34101
34102           Default is none.
34103
34104       new Take new palette for each output frame.
34105
34106       alpha_threshold
34107           Sets the alpha threshold for transparency. Alpha values above this
34108           threshold will be treated as completely opaque, and values below
34109           this threshold will be treated as completely transparent.
34110
34111           The option must be an integer value in the range [0,255]. Default
34112           is 128.
34113
34114       use_alpha
34115           Apply the palette by taking alpha values into account. Only useful
34116           with palettes that are containing multiple colors with alpha
34117           components.  Setting this will automatically disable
34118           'alpha_treshold'.
34119
34120       Examples
34121
34122       •   Use a palette (generated for example with palettegen) to encode a
34123           GIF using ffmpeg:
34124
34125                   ffmpeg -i input.mkv -i palette.png -lavfi paletteuse output.gif
34126
34127   perspective
34128       Correct perspective of video not recorded perpendicular to the screen.
34129
34130       A description of the accepted parameters follows.
34131
34132       x0
34133       y0
34134       x1
34135       y1
34136       x2
34137       y2
34138       x3
34139       y3  Set coordinates expression for top left, top right, bottom left and
34140           bottom right corners.  Default values are "0:0:W:0:0:H:W:H" with
34141           which perspective will remain unchanged.  If the "sense" option is
34142           set to "source", then the specified points will be sent to the
34143           corners of the destination. If the "sense" option is set to
34144           "destination", then the corners of the source will be sent to the
34145           specified coordinates.
34146
34147           The expressions can use the following variables:
34148
34149           W
34150           H   the width and height of video frame.
34151
34152           in  Input frame count.
34153
34154           on  Output frame count.
34155
34156       interpolation
34157           Set interpolation for perspective correction.
34158
34159           It accepts the following values:
34160
34161           linear
34162           cubic
34163
34164           Default value is linear.
34165
34166       sense
34167           Set interpretation of coordinate options.
34168
34169           It accepts the following values:
34170
34171           0, source
34172               Send point in the source specified by the given coordinates to
34173               the corners of the destination.
34174
34175           1, destination
34176               Send the corners of the source to the point in the destination
34177               specified by the given coordinates.
34178
34179               Default value is source.
34180
34181       eval
34182           Set when the expressions for coordinates x0,y0,...x3,y3 are
34183           evaluated.
34184
34185           It accepts the following values:
34186
34187           init
34188               only evaluate expressions once during the filter initialization
34189               or when a command is processed
34190
34191           frame
34192               evaluate expressions for each incoming frame
34193
34194           Default value is init.
34195
34196   phase
34197       Delay interlaced video by one field time so that the field order
34198       changes.
34199
34200       The intended use is to fix PAL movies that have been captured with the
34201       opposite field order to the film-to-video transfer.
34202
34203       A description of the accepted parameters follows.
34204
34205       mode
34206           Set phase mode.
34207
34208           It accepts the following values:
34209
34210           t   Capture field order top-first, transfer bottom-first.  Filter
34211               will delay the bottom field.
34212
34213           b   Capture field order bottom-first, transfer top-first.  Filter
34214               will delay the top field.
34215
34216           p   Capture and transfer with the same field order. This mode only
34217               exists for the documentation of the other options to refer to,
34218               but if you actually select it, the filter will faithfully do
34219               nothing.
34220
34221           a   Capture field order determined automatically by field flags,
34222               transfer opposite.  Filter selects among t and b modes on a
34223               frame by frame basis using field flags. If no field information
34224               is available, then this works just like u.
34225
34226           u   Capture unknown or varying, transfer opposite.  Filter selects
34227               among t and b on a frame by frame basis by analyzing the images
34228               and selecting the alternative that produces best match between
34229               the fields.
34230
34231           T   Capture top-first, transfer unknown or varying.  Filter selects
34232               among t and p using image analysis.
34233
34234           B   Capture bottom-first, transfer unknown or varying.  Filter
34235               selects among b and p using image analysis.
34236
34237           A   Capture determined by field flags, transfer unknown or varying.
34238               Filter selects among t, b and p using field flags and image
34239               analysis. If no field information is available, then this works
34240               just like U. This is the default mode.
34241
34242           U   Both capture and transfer unknown or varying.  Filter selects
34243               among t, b and p using image analysis only.
34244
34245       Commands
34246
34247       This filter supports the all above options as commands.
34248
34249   photosensitivity
34250       Reduce various flashes in video, so to help users with epilepsy.
34251
34252       It accepts the following options:
34253
34254       frames, f
34255           Set how many frames to use when filtering. Default is 30.
34256
34257       threshold, t
34258           Set detection threshold factor. Default is 1.  Lower is stricter.
34259
34260       skip
34261           Set how many pixels to skip when sampling frames. Default is 1.
34262           Allowed range is from 1 to 1024.
34263
34264       bypass
34265           Leave frames unchanged. Default is disabled.
34266
34267   pixdesctest
34268       Pixel format descriptor test filter, mainly useful for internal
34269       testing. The output video should be equal to the input video.
34270
34271       For example:
34272
34273               format=monow, pixdesctest
34274
34275       can be used to test the monowhite pixel format descriptor definition.
34276
34277   pixelize
34278       Apply pixelization to video stream.
34279
34280       The filter accepts the following options:
34281
34282       width, w
34283       height, h
34284           Set block dimensions that will be used for pixelization.  Default
34285           value is 16.
34286
34287       mode, m
34288           Set the mode of pixelization used.
34289
34290           Possible values are:
34291
34292           avg
34293           min
34294           max
34295
34296           Default value is "avg".
34297
34298       planes, p
34299           Set what planes to filter. Default is to filter all planes.
34300
34301       Commands
34302
34303       This filter supports all options as commands.
34304
34305   pixscope
34306       Display sample values of color channels. Mainly useful for checking
34307       color and levels. Minimum supported resolution is 640x480.
34308
34309       The filters accept the following options:
34310
34311       x   Set scope X position, relative offset on X axis.
34312
34313       y   Set scope Y position, relative offset on Y axis.
34314
34315       w   Set scope width.
34316
34317       h   Set scope height.
34318
34319       o   Set window opacity. This window also holds statistics about pixel
34320           area.
34321
34322       wx  Set window X position, relative offset on X axis.
34323
34324       wy  Set window Y position, relative offset on Y axis.
34325
34326       Commands
34327
34328       This filter supports same commands as options.
34329
34330   pp
34331       Enable the specified chain of postprocessing subfilters using
34332       libpostproc. This library should be automatically selected with a GPL
34333       build ("--enable-gpl").  Subfilters must be separated by '/' and can be
34334       disabled by prepending a '-'.  Each subfilter and some options have a
34335       short and a long name that can be used interchangeably, i.e. dr/dering
34336       are the same.
34337
34338       The filters accept the following options:
34339
34340       subfilters
34341           Set postprocessing subfilters string.
34342
34343       All subfilters share common options to determine their scope:
34344
34345       a/autoq
34346           Honor the quality commands for this subfilter.
34347
34348       c/chrom
34349           Do chrominance filtering, too (default).
34350
34351       y/nochrom
34352           Do luminance filtering only (no chrominance).
34353
34354       n/noluma
34355           Do chrominance filtering only (no luminance).
34356
34357       These options can be appended after the subfilter name, separated by a
34358       '|'.
34359
34360       Available subfilters are:
34361
34362       hb/hdeblock[|difference[|flatness]]
34363           Horizontal deblocking filter
34364
34365           difference
34366               Difference factor where higher values mean more deblocking
34367               (default: 32).
34368
34369           flatness
34370               Flatness threshold where lower values mean more deblocking
34371               (default: 39).
34372
34373       vb/vdeblock[|difference[|flatness]]
34374           Vertical deblocking filter
34375
34376           difference
34377               Difference factor where higher values mean more deblocking
34378               (default: 32).
34379
34380           flatness
34381               Flatness threshold where lower values mean more deblocking
34382               (default: 39).
34383
34384       ha/hadeblock[|difference[|flatness]]
34385           Accurate horizontal deblocking filter
34386
34387           difference
34388               Difference factor where higher values mean more deblocking
34389               (default: 32).
34390
34391           flatness
34392               Flatness threshold where lower values mean more deblocking
34393               (default: 39).
34394
34395       va/vadeblock[|difference[|flatness]]
34396           Accurate vertical deblocking filter
34397
34398           difference
34399               Difference factor where higher values mean more deblocking
34400               (default: 32).
34401
34402           flatness
34403               Flatness threshold where lower values mean more deblocking
34404               (default: 39).
34405
34406       The horizontal and vertical deblocking filters share the difference and
34407       flatness values so you cannot set different horizontal and vertical
34408       thresholds.
34409
34410       h1/x1hdeblock
34411           Experimental horizontal deblocking filter
34412
34413       v1/x1vdeblock
34414           Experimental vertical deblocking filter
34415
34416       dr/dering
34417           Deringing filter
34418
34419       tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise
34420       reducer
34421           threshold1
34422               larger -> stronger filtering
34423
34424           threshold2
34425               larger -> stronger filtering
34426
34427           threshold3
34428               larger -> stronger filtering
34429
34430       al/autolevels[:f/fullyrange], automatic brightness / contrast
34431       correction
34432           f/fullyrange
34433               Stretch luminance to "0-255".
34434
34435       lb/linblenddeint
34436           Linear blend deinterlacing filter that deinterlaces the given block
34437           by filtering all lines with a "(1 2 1)" filter.
34438
34439       li/linipoldeint
34440           Linear interpolating deinterlacing filter that deinterlaces the
34441           given block by linearly interpolating every second line.
34442
34443       ci/cubicipoldeint
34444           Cubic interpolating deinterlacing filter deinterlaces the given
34445           block by cubically interpolating every second line.
34446
34447       md/mediandeint
34448           Median deinterlacing filter that deinterlaces the given block by
34449           applying a median filter to every second line.
34450
34451       fd/ffmpegdeint
34452           FFmpeg deinterlacing filter that deinterlaces the given block by
34453           filtering every second line with a "(-1 4 2 4 -1)" filter.
34454
34455       l5/lowpass5
34456           Vertically applied FIR lowpass deinterlacing filter that
34457           deinterlaces the given block by filtering all lines with a "(-1 2 6
34458           2 -1)" filter.
34459
34460       fq/forceQuant[|quantizer]
34461           Overrides the quantizer table from the input with the constant
34462           quantizer you specify.
34463
34464           quantizer
34465               Quantizer to use
34466
34467       de/default
34468           Default pp filter combination ("hb|a,vb|a,dr|a")
34469
34470       fa/fast
34471           Fast pp filter combination ("h1|a,v1|a,dr|a")
34472
34473       ac  High quality pp filter combination ("ha|a|128|7,va|a,dr|a")
34474
34475       Examples
34476
34477       •   Apply horizontal and vertical deblocking, deringing and automatic
34478           brightness/contrast:
34479
34480                   pp=hb/vb/dr/al
34481
34482       •   Apply default filters without brightness/contrast correction:
34483
34484                   pp=de/-al
34485
34486       •   Apply default filters and temporal denoiser:
34487
34488                   pp=default/tmpnoise|1|2|3
34489
34490       •   Apply deblocking on luminance only, and switch vertical deblocking
34491           on or off automatically depending on available CPU time:
34492
34493                   pp=hb|y/vb|a
34494
34495   pp7
34496       Apply Postprocessing filter 7. It is variant of the spp filter, similar
34497       to spp = 6 with 7 point DCT, where only the center sample is used after
34498       IDCT.
34499
34500       The filter accepts the following options:
34501
34502       qp  Force a constant quantization parameter. It accepts an integer in
34503           range 0 to 63. If not set, the filter will use the QP from the
34504           video stream (if available).
34505
34506       mode
34507           Set thresholding mode. Available modes are:
34508
34509           hard
34510               Set hard thresholding.
34511
34512           soft
34513               Set soft thresholding (better de-ringing effect, but likely
34514               blurrier).
34515
34516           medium
34517               Set medium thresholding (good results, default).
34518
34519   premultiply
34520       Apply alpha premultiply effect to input video stream using first plane
34521       of second stream as alpha.
34522
34523       Both streams must have same dimensions and same pixel format.
34524
34525       The filter accepts the following option:
34526
34527       planes
34528           Set which planes will be processed, unprocessed planes will be
34529           copied.  By default value 0xf, all planes will be processed.
34530
34531       inplace
34532           Do not require 2nd input for processing, instead use alpha plane
34533           from input stream.
34534
34535   prewitt
34536       Apply prewitt operator to input video stream.
34537
34538       The filter accepts the following option:
34539
34540       planes
34541           Set which planes will be processed, unprocessed planes will be
34542           copied.  By default value 0xf, all planes will be processed.
34543
34544       scale
34545           Set value which will be multiplied with filtered result.
34546
34547       delta
34548           Set value which will be added to filtered result.
34549
34550       Commands
34551
34552       This filter supports the all above options as commands.
34553
34554   pseudocolor
34555       Alter frame colors in video with pseudocolors.
34556
34557       This filter accepts the following options:
34558
34559       c0  set pixel first component expression
34560
34561       c1  set pixel second component expression
34562
34563       c2  set pixel third component expression
34564
34565       c3  set pixel fourth component expression, corresponds to the alpha
34566           component
34567
34568       index, i
34569           set component to use as base for altering colors
34570
34571       preset, p
34572           Pick one of built-in LUTs. By default is set to none.
34573
34574           Available LUTs:
34575
34576           magma
34577           inferno
34578           plasma
34579           viridis
34580           turbo
34581           cividis
34582           range1
34583           range2
34584           shadows
34585           highlights
34586           solar
34587           nominal
34588           preferred
34589           total
34590       opacity
34591           Set opacity of output colors. Allowed range is from 0 to 1.
34592           Default value is set to 1.
34593
34594       Each of the expression options specifies the expression to use for
34595       computing the lookup table for the corresponding pixel component
34596       values.
34597
34598       The expressions can contain the following constants and functions:
34599
34600       w
34601       h   The input width and height.
34602
34603       val The input value for the pixel component.
34604
34605       ymin, umin, vmin, amin
34606           The minimum allowed component value.
34607
34608       ymax, umax, vmax, amax
34609           The maximum allowed component value.
34610
34611       All expressions default to "val".
34612
34613       Commands
34614
34615       This filter supports the all above options as commands.
34616
34617       Examples
34618
34619       •   Change too high luma values to gradient:
34620
34621                   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'"
34622
34623   psnr
34624       Obtain the average, maximum and minimum PSNR (Peak Signal to Noise
34625       Ratio) between two input videos.
34626
34627       This filter takes in input two input videos, the first input is
34628       considered the "main" source and is passed unchanged to the output. The
34629       second input is used as a "reference" video for computing the PSNR.
34630
34631       Both video inputs must have the same resolution and pixel format for
34632       this filter to work correctly. Also it assumes that both inputs have
34633       the same number of frames, which are compared one by one.
34634
34635       The obtained average PSNR is printed through the logging system.
34636
34637       The filter stores the accumulated MSE (mean squared error) of each
34638       frame, and at the end of the processing it is averaged across all
34639       frames equally, and the following formula is applied to obtain the
34640       PSNR:
34641
34642               PSNR = 10*log10(MAX^2/MSE)
34643
34644       Where MAX is the average of the maximum values of each component of the
34645       image.
34646
34647       The description of the accepted parameters follows.
34648
34649       stats_file, f
34650           If specified the filter will use the named file to save the PSNR of
34651           each individual frame. When filename equals "-" the data is sent to
34652           standard output.
34653
34654       stats_version
34655           Specifies which version of the stats file format to use. Details of
34656           each format are written below.  Default value is 1.
34657
34658       stats_add_max
34659           Determines whether the max value is output to the stats log.
34660           Default value is 0.  Requires stats_version >= 2. If this is set
34661           and stats_version < 2, the filter will return an error.
34662
34663       This filter also supports the framesync options.
34664
34665       The file printed if stats_file is selected, contains a sequence of
34666       key/value pairs of the form key:value for each compared couple of
34667       frames.
34668
34669       If a stats_version greater than 1 is specified, a header line precedes
34670       the list of per-frame-pair stats, with key value pairs following the
34671       frame format with the following parameters:
34672
34673       psnr_log_version
34674           The version of the log file format. Will match stats_version.
34675
34676       fields
34677           A comma separated list of the per-frame-pair parameters included in
34678           the log.
34679
34680       A description of each shown per-frame-pair parameter follows:
34681
34682       n   sequential number of the input frame, starting from 1
34683
34684       mse_avg
34685           Mean Square Error pixel-by-pixel average difference of the compared
34686           frames, averaged over all the image components.
34687
34688       mse_y, mse_u, mse_v, mse_r, mse_g, mse_b, mse_a
34689           Mean Square Error pixel-by-pixel average difference of the compared
34690           frames for the component specified by the suffix.
34691
34692       psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
34693           Peak Signal to Noise ratio of the compared frames for the component
34694           specified by the suffix.
34695
34696       max_avg, max_y, max_u, max_v
34697           Maximum allowed value for each channel, and average over all
34698           channels.
34699
34700       Examples
34701
34702       •   For example:
34703
34704                   movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
34705                   [main][ref] psnr="stats_file=stats.log" [out]
34706
34707           On this example the input file being processed is compared with the
34708           reference file ref_movie.mpg. The PSNR of each individual frame is
34709           stored in stats.log.
34710
34711       •   Another example with different containers:
34712
34713                   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 -
34714
34715   pullup
34716       Pulldown reversal (inverse telecine) filter, capable of handling mixed
34717       hard-telecine, 24000/1001 fps progressive, and 30000/1001 fps
34718       progressive content.
34719
34720       The pullup filter is designed to take advantage of future context in
34721       making its decisions. This filter is stateless in the sense that it
34722       does not lock onto a pattern to follow, but it instead looks forward to
34723       the following fields in order to identify matches and rebuild
34724       progressive frames.
34725
34726       To produce content with an even framerate, insert the fps filter after
34727       pullup, use "fps=24000/1001" if the input frame rate is 29.97fps,
34728       "fps=24" for 30fps and the (rare) telecined 25fps input.
34729
34730       The filter accepts the following options:
34731
34732       jl
34733       jr
34734       jt
34735       jb  These options set the amount of "junk" to ignore at the left,
34736           right, top, and bottom of the image, respectively. Left and right
34737           are in units of 8 pixels, while top and bottom are in units of 2
34738           lines.  The default is 8 pixels on each side.
34739
34740       sb  Set the strict breaks. Setting this option to 1 will reduce the
34741           chances of filter generating an occasional mismatched frame, but it
34742           may also cause an excessive number of frames to be dropped during
34743           high motion sequences.  Conversely, setting it to -1 will make
34744           filter match fields more easily.  This may help processing of video
34745           where there is slight blurring between the fields, but may also
34746           cause there to be interlaced frames in the output.  Default value
34747           is 0.
34748
34749       mp  Set the metric plane to use. It accepts the following values:
34750
34751           l   Use luma plane.
34752
34753           u   Use chroma blue plane.
34754
34755           v   Use chroma red plane.
34756
34757           This option may be set to use chroma plane instead of the default
34758           luma plane for doing filter's computations. This may improve
34759           accuracy on very clean source material, but more likely will
34760           decrease accuracy, especially if there is chroma noise (rainbow
34761           effect) or any grayscale video.  The main purpose of setting mp to
34762           a chroma plane is to reduce CPU load and make pullup usable in
34763           realtime on slow machines.
34764
34765       For best results (without duplicated frames in the output file) it is
34766       necessary to change the output frame rate. For example, to inverse
34767       telecine NTSC input:
34768
34769               ffmpeg -i input -vf pullup -r 24000/1001 ...
34770
34771   qp
34772       Change video quantization parameters (QP).
34773
34774       The filter accepts the following option:
34775
34776       qp  Set expression for quantization parameter.
34777
34778       The expression is evaluated through the eval API and can contain, among
34779       others, the following constants:
34780
34781       known
34782           1 if index is not 129, 0 otherwise.
34783
34784       qp  Sequential index starting from -129 to 128.
34785
34786       Examples
34787
34788       •   Some equation like:
34789
34790                   qp=2+2*sin(PI*qp)
34791
34792   random
34793       Flush video frames from internal cache of frames into a random order.
34794       No frame is discarded.  Inspired by frei0r nervous filter.
34795
34796       frames
34797           Set size in number of frames of internal cache, in range from 2 to
34798           512. Default is 30.
34799
34800       seed
34801           Set seed for random number generator, must be an integer included
34802           between 0 and "UINT32_MAX". If not specified, or if explicitly set
34803           to less than 0, the filter will try to use a good random seed on a
34804           best effort basis.
34805
34806   readeia608
34807       Read closed captioning (EIA-608) information from the top lines of a
34808       video frame.
34809
34810       This filter adds frame metadata for "lavfi.readeia608.X.cc" and
34811       "lavfi.readeia608.X.line", where "X" is the number of the identified
34812       line with EIA-608 data (starting from 0). A description of each
34813       metadata value follows:
34814
34815       lavfi.readeia608.X.cc
34816           The two bytes stored as EIA-608 data (printed in hexadecimal).
34817
34818       lavfi.readeia608.X.line
34819           The number of the line on which the EIA-608 data was identified and
34820           read.
34821
34822       This filter accepts the following options:
34823
34824       scan_min
34825           Set the line to start scanning for EIA-608 data. Default is 0.
34826
34827       scan_max
34828           Set the line to end scanning for EIA-608 data. Default is 29.
34829
34830       spw Set the ratio of width reserved for sync code detection.  Default
34831           is 0.27. Allowed range is "[0.1 - 0.7]".
34832
34833       chp Enable checking the parity bit. In the event of a parity error, the
34834           filter will output 0x00 for that character. Default is false.
34835
34836       lp  Lowpass lines prior to further processing. Default is enabled.
34837
34838       Commands
34839
34840       This filter supports the all above options as commands.
34841
34842       Examples
34843
34844       •   Output a csv with presentation time and the first two lines of
34845           identified EIA-608 captioning data.
34846
34847                   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
34848
34849   readvitc
34850       Read vertical interval timecode (VITC) information from the top lines
34851       of a video frame.
34852
34853       The filter adds frame metadata key "lavfi.readvitc.tc_str" with the
34854       timecode value, if a valid timecode has been detected. Further metadata
34855       key "lavfi.readvitc.found" is set to 0/1 depending on whether timecode
34856       data has been found or not.
34857
34858       This filter accepts the following options:
34859
34860       scan_max
34861           Set the maximum number of lines to scan for VITC data. If the value
34862           is set to "-1" the full video frame is scanned. Default is 45.
34863
34864       thr_b
34865           Set the luma threshold for black. Accepts float numbers in the
34866           range [0.0,1.0], default value is 0.2. The value must be equal or
34867           less than "thr_w".
34868
34869       thr_w
34870           Set the luma threshold for white. Accepts float numbers in the
34871           range [0.0,1.0], default value is 0.6. The value must be equal or
34872           greater than "thr_b".
34873
34874       Examples
34875
34876       •   Detect and draw VITC data onto the video frame; if no valid VITC is
34877           detected, draw "--:--:--:--" as a placeholder:
34878
34879                   ffmpeg -i input.avi -filter:v 'readvitc,drawtext=fontfile=FreeMono.ttf:text=%{metadata\\:lavfi.readvitc.tc_str\\:--\\\\\\:--\\\\\\:--\\\\\\:--}:x=(w-tw)/2:y=400-ascent'
34880
34881   remap
34882       Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
34883
34884       Destination pixel at position (X, Y) will be picked from source (x, y)
34885       position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
34886       out of range, zero value for pixel will be used for destination pixel.
34887
34888       Xmap and Ymap input video streams must be of same dimensions. Output
34889       video stream will have Xmap/Ymap video stream dimensions.  Xmap and
34890       Ymap input video streams are 16bit depth, single channel.
34891
34892       format
34893           Specify pixel format of output from this filter. Can be "color" or
34894           "gray".  Default is "color".
34895
34896       fill
34897           Specify the color of the unmapped pixels. For the syntax of this
34898           option, check the "Color" section in the ffmpeg-utils manual.
34899           Default color is "black".
34900
34901   removegrain
34902       The removegrain filter is a spatial denoiser for progressive video.
34903
34904       m0  Set mode for the first plane.
34905
34906       m1  Set mode for the second plane.
34907
34908       m2  Set mode for the third plane.
34909
34910       m3  Set mode for the fourth plane.
34911
34912       Range of mode is from 0 to 24. Description of each mode follows:
34913
34914       0   Leave input plane unchanged. Default.
34915
34916       1   Clips the pixel with the minimum and maximum of the 8 neighbour
34917           pixels.
34918
34919       2   Clips the pixel with the second minimum and maximum of the 8
34920           neighbour pixels.
34921
34922       3   Clips the pixel with the third minimum and maximum of the 8
34923           neighbour pixels.
34924
34925       4   Clips the pixel with the fourth minimum and maximum of the 8
34926           neighbour pixels.  This is equivalent to a median filter.
34927
34928       5   Line-sensitive clipping giving the minimal change.
34929
34930       6   Line-sensitive clipping, intermediate.
34931
34932       7   Line-sensitive clipping, intermediate.
34933
34934       8   Line-sensitive clipping, intermediate.
34935
34936       9   Line-sensitive clipping on a line where the neighbours pixels are
34937           the closest.
34938
34939       10  Replaces the target pixel with the closest neighbour.
34940
34941       11  [1 2 1] horizontal and vertical kernel blur.
34942
34943       12  Same as mode 11.
34944
34945       13  Bob mode, interpolates top field from the line where the neighbours
34946           pixels are the closest.
34947
34948       14  Bob mode, interpolates bottom field from the line where the
34949           neighbours pixels are the closest.
34950
34951       15  Bob mode, interpolates top field. Same as 13 but with a more
34952           complicated interpolation formula.
34953
34954       16  Bob mode, interpolates bottom field. Same as 14 but with a more
34955           complicated interpolation formula.
34956
34957       17  Clips the pixel with the minimum and maximum of respectively the
34958           maximum and minimum of each pair of opposite neighbour pixels.
34959
34960       18  Line-sensitive clipping using opposite neighbours whose greatest
34961           distance from the current pixel is minimal.
34962
34963       19  Replaces the pixel with the average of its 8 neighbours.
34964
34965       20  Averages the 9 pixels ([1 1 1] horizontal and vertical blur).
34966
34967       21  Clips pixels using the averages of opposite neighbour.
34968
34969       22  Same as mode 21 but simpler and faster.
34970
34971       23  Small edge and halo removal, but reputed useless.
34972
34973       24  Similar as 23.
34974
34975   removelogo
34976       Suppress a TV station logo, using an image file to determine which
34977       pixels comprise the logo. It works by filling in the pixels that
34978       comprise the logo with neighboring pixels.
34979
34980       The filter accepts the following options:
34981
34982       filename, f
34983           Set the filter bitmap file, which can be any image format supported
34984           by libavformat. The width and height of the image file must match
34985           those of the video stream being processed.
34986
34987       Pixels in the provided bitmap image with a value of zero are not
34988       considered part of the logo, non-zero pixels are considered part of the
34989       logo. If you use white (255) for the logo and black (0) for the rest,
34990       you will be safe. For making the filter bitmap, it is recommended to
34991       take a screen capture of a black frame with the logo visible, and then
34992       using a threshold filter followed by the erode filter once or twice.
34993
34994       If needed, little splotches can be fixed manually. Remember that if
34995       logo pixels are not covered, the filter quality will be much reduced.
34996       Marking too many pixels as part of the logo does not hurt as much, but
34997       it will increase the amount of blurring needed to cover over the image
34998       and will destroy more information than necessary, and extra pixels will
34999       slow things down on a large logo.
35000
35001   repeatfields
35002       This filter uses the repeat_field flag from the Video ES headers and
35003       hard repeats fields based on its value.
35004
35005   reverse
35006       Reverse a video clip.
35007
35008       Warning: This filter requires memory to buffer the entire clip, so
35009       trimming is suggested.
35010
35011       Examples
35012
35013       •   Take the first 5 seconds of a clip, and reverse it.
35014
35015                   trim=end=5,reverse
35016
35017   rgbashift
35018       Shift R/G/B/A pixels horizontally and/or vertically.
35019
35020       The filter accepts the following options:
35021
35022       rh  Set amount to shift red horizontally.
35023
35024       rv  Set amount to shift red vertically.
35025
35026       gh  Set amount to shift green horizontally.
35027
35028       gv  Set amount to shift green vertically.
35029
35030       bh  Set amount to shift blue horizontally.
35031
35032       bv  Set amount to shift blue vertically.
35033
35034       ah  Set amount to shift alpha horizontally.
35035
35036       av  Set amount to shift alpha vertically.
35037
35038       edge
35039           Set edge mode, can be smear, default, or warp.
35040
35041       Commands
35042
35043       This filter supports the all above options as commands.
35044
35045   roberts
35046       Apply roberts cross operator to input video stream.
35047
35048       The filter accepts the following option:
35049
35050       planes
35051           Set which planes will be processed, unprocessed planes will be
35052           copied.  By default value 0xf, all planes will be processed.
35053
35054       scale
35055           Set value which will be multiplied with filtered result.
35056
35057       delta
35058           Set value which will be added to filtered result.
35059
35060       Commands
35061
35062       This filter supports the all above options as commands.
35063
35064   rotate
35065       Rotate video by an arbitrary angle expressed in radians.
35066
35067       The filter accepts the following options:
35068
35069       A description of the optional parameters follows.
35070
35071       angle, a
35072           Set an expression for the angle by which to rotate the input video
35073           clockwise, expressed as a number of radians. A negative value will
35074           result in a counter-clockwise rotation. By default it is set to
35075           "0".
35076
35077           This expression is evaluated for each frame.
35078
35079       out_w, ow
35080           Set the output width expression, default value is "iw".  This
35081           expression is evaluated just once during configuration.
35082
35083       out_h, oh
35084           Set the output height expression, default value is "ih".  This
35085           expression is evaluated just once during configuration.
35086
35087       bilinear
35088           Enable bilinear interpolation if set to 1, a value of 0 disables
35089           it. Default value is 1.
35090
35091       fillcolor, c
35092           Set the color used to fill the output area not covered by the
35093           rotated image. For the general syntax of this option, check the
35094           "Color" section in the ffmpeg-utils manual.  If the special value
35095           "none" is selected then no background is printed (useful for
35096           example if the background is never shown).
35097
35098           Default value is "black".
35099
35100       The expressions for the angle and the output size can contain the
35101       following constants and functions:
35102
35103       n   sequential number of the input frame, starting from 0. It is always
35104           NAN before the first frame is filtered.
35105
35106       t   time in seconds of the input frame, it is set to 0 when the filter
35107           is configured. It is always NAN before the first frame is filtered.
35108
35109       hsub
35110       vsub
35111           horizontal and vertical chroma subsample values. For example for
35112           the pixel format "yuv422p" hsub is 2 and vsub is 1.
35113
35114       in_w, iw
35115       in_h, ih
35116           the input video width and height
35117
35118       out_w, ow
35119       out_h, oh
35120           the output width and height, that is the size of the padded area as
35121           specified by the width and height expressions
35122
35123       rotw(a)
35124       roth(a)
35125           the minimal width/height required for completely containing the
35126           input video rotated by a radians.
35127
35128           These are only available when computing the out_w and out_h
35129           expressions.
35130
35131       Examples
35132
35133       •   Rotate the input by PI/6 radians clockwise:
35134
35135                   rotate=PI/6
35136
35137       •   Rotate the input by PI/6 radians counter-clockwise:
35138
35139                   rotate=-PI/6
35140
35141       •   Rotate the input by 45 degrees clockwise:
35142
35143                   rotate=45*PI/180
35144
35145       •   Apply a constant rotation with period T, starting from an angle of
35146           PI/3:
35147
35148                   rotate=PI/3+2*PI*t/T
35149
35150       •   Make the input video rotation oscillating with a period of T
35151           seconds and an amplitude of A radians:
35152
35153                   rotate=A*sin(2*PI/T*t)
35154
35155       •   Rotate the video, output size is chosen so that the whole rotating
35156           input video is always completely contained in the output:
35157
35158                   rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
35159
35160       •   Rotate the video, reduce the output size so that no background is
35161           ever shown:
35162
35163                   rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
35164
35165       Commands
35166
35167       The filter supports the following commands:
35168
35169       a, angle
35170           Set the angle expression.  The command accepts the same syntax of
35171           the corresponding option.
35172
35173           If the specified expression is not valid, it is kept at its current
35174           value.
35175
35176   sab
35177       Apply Shape Adaptive Blur.
35178
35179       The filter accepts the following options:
35180
35181       luma_radius, lr
35182           Set luma blur filter strength, must be a value in range 0.1-4.0,
35183           default value is 1.0. A greater value will result in a more blurred
35184           image, and in slower processing.
35185
35186       luma_pre_filter_radius, lpfr
35187           Set luma pre-filter radius, must be a value in the 0.1-2.0 range,
35188           default value is 1.0.
35189
35190       luma_strength, ls
35191           Set luma maximum difference between pixels to still be considered,
35192           must be a value in the 0.1-100.0 range, default value is 1.0.
35193
35194       chroma_radius, cr
35195           Set chroma blur filter strength, must be a value in range -0.9-4.0.
35196           A greater value will result in a more blurred image, and in slower
35197           processing.
35198
35199       chroma_pre_filter_radius, cpfr
35200           Set chroma pre-filter radius, must be a value in the -0.9-2.0
35201           range.
35202
35203       chroma_strength, cs
35204           Set chroma maximum difference between pixels to still be
35205           considered, must be a value in the -0.9-100.0 range.
35206
35207       Each chroma option value, if not explicitly specified, is set to the
35208       corresponding luma option value.
35209
35210   scale
35211       Scale (resize) the input video, using the libswscale library.
35212
35213       The scale filter forces the output display aspect ratio to be the same
35214       of the input, by changing the output sample aspect ratio.
35215
35216       If the input image format is different from the format requested by the
35217       next filter, the scale filter will convert the input to the requested
35218       format.
35219
35220       Options
35221
35222       The filter accepts the following options, or any of the options
35223       supported by the libswscale scaler.
35224
35225       See the ffmpeg-scaler manual for the complete list of scaler options.
35226
35227       width, w
35228       height, h
35229           Set the output video dimension expression. Default value is the
35230           input dimension.
35231
35232           If the width or w value is 0, the input width is used for the
35233           output. If the height or h value is 0, the input height is used for
35234           the output.
35235
35236           If one and only one of the values is -n with n >= 1, the scale
35237           filter will use a value that maintains the aspect ratio of the
35238           input image, calculated from the other specified dimension. After
35239           that it will, however, make sure that the calculated dimension is
35240           divisible by n and adjust the value if necessary.
35241
35242           If both values are -n with n >= 1, the behavior will be identical
35243           to both values being set to 0 as previously detailed.
35244
35245           See below for the list of accepted constants for use in the
35246           dimension expression.
35247
35248       eval
35249           Specify when to evaluate width and height expression. It accepts
35250           the following values:
35251
35252           init
35253               Only evaluate expressions once during the filter initialization
35254               or when a command is processed.
35255
35256           frame
35257               Evaluate expressions for each incoming frame.
35258
35259           Default value is init.
35260
35261       interl
35262           Set the interlacing mode. It accepts the following values:
35263
35264           1   Force interlaced aware scaling.
35265
35266           0   Do not apply interlaced scaling.
35267
35268           -1  Select interlaced aware scaling depending on whether the source
35269               frames are flagged as interlaced or not.
35270
35271           Default value is 0.
35272
35273       flags
35274           Set libswscale scaling flags. See the ffmpeg-scaler manual for the
35275           complete list of values. If not explicitly specified the filter
35276           applies the default flags.
35277
35278       param0, param1
35279           Set libswscale input parameters for scaling algorithms that need
35280           them. See the ffmpeg-scaler manual for the complete documentation.
35281           If not explicitly specified the filter applies empty parameters.
35282
35283       size, s
35284           Set the video size. For the syntax of this option, check the "Video
35285           size" section in the ffmpeg-utils manual.
35286
35287       in_color_matrix
35288       out_color_matrix
35289           Set in/output YCbCr color space type.
35290
35291           This allows the autodetected value to be overridden as well as
35292           allows forcing a specific value used for the output and encoder.
35293
35294           If not specified, the color space type depends on the pixel format.
35295
35296           Possible values:
35297
35298           auto
35299               Choose automatically.
35300
35301           bt709
35302               Format conforming to International Telecommunication Union
35303               (ITU) Recommendation BT.709.
35304
35305           fcc Set color space conforming to the United States Federal
35306               Communications Commission (FCC) Code of Federal Regulations
35307               (CFR) Title 47 (2003) 73.682 (a).
35308
35309           bt601
35310           bt470
35311           smpte170m
35312               Set color space conforming to:
35313
35314               •   ITU Radiocommunication Sector (ITU-R) Recommendation BT.601
35315
35316               •   ITU-R Rec. BT.470-6 (1998) Systems B, B1, and G
35317
35318               •   Society of Motion Picture and Television Engineers (SMPTE)
35319                   ST 170:2004
35320
35321           smpte240m
35322               Set color space conforming to SMPTE ST 240:1999.
35323
35324           bt2020
35325               Set color space conforming to ITU-R BT.2020 non-constant
35326               luminance system.
35327
35328       in_range
35329       out_range
35330           Set in/output YCbCr sample range.
35331
35332           This allows the autodetected value to be overridden as well as
35333           allows forcing a specific value used for the output and encoder. If
35334           not specified, the range depends on the pixel format. Possible
35335           values:
35336
35337           auto/unknown
35338               Choose automatically.
35339
35340           jpeg/full/pc
35341               Set full range (0-255 in case of 8-bit luma).
35342
35343           mpeg/limited/tv
35344               Set "MPEG" range (16-235 in case of 8-bit luma).
35345
35346       force_original_aspect_ratio
35347           Enable decreasing or increasing output video width or height if
35348           necessary to keep the original aspect ratio. Possible values:
35349
35350           disable
35351               Scale the video as specified and disable this feature.
35352
35353           decrease
35354               The output video dimensions will automatically be decreased if
35355               needed.
35356
35357           increase
35358               The output video dimensions will automatically be increased if
35359               needed.
35360
35361           One useful instance of this option is that when you know a specific
35362           device's maximum allowed resolution, you can use this to limit the
35363           output video to that, while retaining the aspect ratio. For
35364           example, device A allows 1280x720 playback, and your video is
35365           1920x800. Using this option (set it to decrease) and specifying
35366           1280x720 to the command line makes the output 1280x533.
35367
35368           Please note that this is a different thing than specifying -1 for w
35369           or h, you still need to specify the output resolution for this
35370           option to work.
35371
35372       force_divisible_by
35373           Ensures that both the output dimensions, width and height, are
35374           divisible by the given integer when used together with
35375           force_original_aspect_ratio. This works similar to using "-n" in
35376           the w and h options.
35377
35378           This option respects the value set for force_original_aspect_ratio,
35379           increasing or decreasing the resolution accordingly. The video's
35380           aspect ratio may be slightly modified.
35381
35382           This option can be handy if you need to have a video fit within or
35383           exceed a defined resolution using force_original_aspect_ratio but
35384           also have encoder restrictions on width or height divisibility.
35385
35386       The values of the w and h options are expressions containing the
35387       following constants:
35388
35389       in_w
35390       in_h
35391           The input width and height
35392
35393       iw
35394       ih  These are the same as in_w and in_h.
35395
35396       out_w
35397       out_h
35398           The output (scaled) width and height
35399
35400       ow
35401       oh  These are the same as out_w and out_h
35402
35403       a   The same as iw / ih
35404
35405       sar input sample aspect ratio
35406
35407       dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
35408
35409       hsub
35410       vsub
35411           horizontal and vertical input chroma subsample values. For example
35412           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
35413
35414       ohsub
35415       ovsub
35416           horizontal and vertical output chroma subsample values. For example
35417           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
35418
35419       n   The (sequential) number of the input frame, starting from 0.  Only
35420           available with "eval=frame".
35421
35422       t   The presentation timestamp of the input frame, expressed as a
35423           number of seconds. Only available with "eval=frame".
35424
35425       pos The position (byte offset) of the frame in the input stream, or NaN
35426           if this information is unavailable and/or meaningless (for example
35427           in case of synthetic video).  Only available with "eval=frame".
35428
35429       Examples
35430
35431       •   Scale the input video to a size of 200x100
35432
35433                   scale=w=200:h=100
35434
35435           This is equivalent to:
35436
35437                   scale=200:100
35438
35439           or:
35440
35441                   scale=200x100
35442
35443       •   Specify a size abbreviation for the output size:
35444
35445                   scale=qcif
35446
35447           which can also be written as:
35448
35449                   scale=size=qcif
35450
35451       •   Scale the input to 2x:
35452
35453                   scale=w=2*iw:h=2*ih
35454
35455       •   The above is the same as:
35456
35457                   scale=2*in_w:2*in_h
35458
35459       •   Scale the input to 2x with forced interlaced scaling:
35460
35461                   scale=2*iw:2*ih:interl=1
35462
35463       •   Scale the input to half size:
35464
35465                   scale=w=iw/2:h=ih/2
35466
35467       •   Increase the width, and set the height to the same size:
35468
35469                   scale=3/2*iw:ow
35470
35471       •   Seek Greek harmony:
35472
35473                   scale=iw:1/PHI*iw
35474                   scale=ih*PHI:ih
35475
35476       •   Increase the height, and set the width to 3/2 of the height:
35477
35478                   scale=w=3/2*oh:h=3/5*ih
35479
35480       •   Increase the size, making the size a multiple of the chroma
35481           subsample values:
35482
35483                   scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
35484
35485       •   Increase the width to a maximum of 500 pixels, keeping the same
35486           aspect ratio as the input:
35487
35488                   scale=w='min(500\, iw*3/2):h=-1'
35489
35490       •   Make pixels square by combining scale and setsar:
35491
35492                   scale='trunc(ih*dar):ih',setsar=1/1
35493
35494       •   Make pixels square by combining scale and setsar, making sure the
35495           resulting resolution is even (required by some codecs):
35496
35497                   scale='trunc(ih*dar/2)*2:trunc(ih/2)*2',setsar=1/1
35498
35499       Commands
35500
35501       This filter supports the following commands:
35502
35503       width, w
35504       height, h
35505           Set the output video dimension expression.  The command accepts the
35506           same syntax of the corresponding option.
35507
35508           If the specified expression is not valid, it is kept at its current
35509           value.
35510
35511   scale_cuda
35512       Scale (resize) and convert (pixel format) the input video, using
35513       accelerated CUDA kernels.  Setting the output width and height works in
35514       the same way as for the scale filter.
35515
35516       The filter accepts the following options:
35517
35518       w
35519       h   Set the output video dimension expression. Default value is the
35520           input dimension.
35521
35522           Allows for the same expressions as the scale filter.
35523
35524       interp_algo
35525           Sets the algorithm used for scaling:
35526
35527           nearest
35528               Nearest neighbour
35529
35530               Used by default if input parameters match the desired output.
35531
35532           bilinear
35533               Bilinear
35534
35535           bicubic
35536               Bicubic
35537
35538               This is the default.
35539
35540           lanczos
35541               Lanczos
35542
35543       format
35544           Controls the output pixel format. By default, or if none is
35545           specified, the input pixel format is used.
35546
35547           The filter does not support converting between YUV and RGB pixel
35548           formats.
35549
35550       passthrough
35551           If set to 0, every frame is processed, even if no conversion is
35552           neccesary.  This mode can be useful to use the filter as a buffer
35553           for a downstream frame-consumer that exhausts the limited decoder
35554           frame pool.
35555
35556           If set to 1, frames are passed through as-is if they match the
35557           desired output parameters. This is the default behaviour.
35558
35559       param
35560           Algorithm-Specific parameter.
35561
35562           Affects the curves of the bicubic algorithm.
35563
35564       force_original_aspect_ratio
35565       force_divisible_by
35566           Work the same as the identical scale filter options.
35567
35568       Examples
35569
35570       •   Scale input to 720p, keeping aspect ratio and ensuring the output
35571           is yuv420p.
35572
35573                   scale_cuda=-2:720:format=yuv420p
35574
35575       •   Upscale to 4K using nearest neighbour algorithm.
35576
35577                   scale_cuda=4096:2160:interp_algo=nearest
35578
35579       •   Don't do any conversion or scaling, but copy all input frames into
35580           newly allocated ones.  This can be useful to deal with a filter and
35581           encode chain that otherwise exhausts the decoders frame pool.
35582
35583                   scale_cuda=passthrough=0
35584
35585   scale_npp
35586       Use the NVIDIA Performance Primitives (libnpp) to perform scaling
35587       and/or pixel format conversion on CUDA video frames. Setting the output
35588       width and height works in the same way as for the scale filter.
35589
35590       The following additional options are accepted:
35591
35592       format
35593           The pixel format of the output CUDA frames. If set to the string
35594           "same" (the default), the input format will be kept. Note that
35595           automatic format negotiation and conversion is not yet supported
35596           for hardware frames
35597
35598       interp_algo
35599           The interpolation algorithm used for resizing. One of the
35600           following:
35601
35602           nn  Nearest neighbour.
35603
35604           linear
35605           cubic
35606           cubic2p_bspline
35607               2-parameter cubic (B=1, C=0)
35608
35609           cubic2p_catmullrom
35610               2-parameter cubic (B=0, C=1/2)
35611
35612           cubic2p_b05c03
35613               2-parameter cubic (B=1/2, C=3/10)
35614
35615           super
35616               Supersampling
35617
35618           lanczos
35619       force_original_aspect_ratio
35620           Enable decreasing or increasing output video width or height if
35621           necessary to keep the original aspect ratio. Possible values:
35622
35623           disable
35624               Scale the video as specified and disable this feature.
35625
35626           decrease
35627               The output video dimensions will automatically be decreased if
35628               needed.
35629
35630           increase
35631               The output video dimensions will automatically be increased if
35632               needed.
35633
35634           One useful instance of this option is that when you know a specific
35635           device's maximum allowed resolution, you can use this to limit the
35636           output video to that, while retaining the aspect ratio. For
35637           example, device A allows 1280x720 playback, and your video is
35638           1920x800. Using this option (set it to decrease) and specifying
35639           1280x720 to the command line makes the output 1280x533.
35640
35641           Please note that this is a different thing than specifying -1 for w
35642           or h, you still need to specify the output resolution for this
35643           option to work.
35644
35645       force_divisible_by
35646           Ensures that both the output dimensions, width and height, are
35647           divisible by the given integer when used together with
35648           force_original_aspect_ratio. This works similar to using "-n" in
35649           the w and h options.
35650
35651           This option respects the value set for force_original_aspect_ratio,
35652           increasing or decreasing the resolution accordingly. The video's
35653           aspect ratio may be slightly modified.
35654
35655           This option can be handy if you need to have a video fit within or
35656           exceed a defined resolution using force_original_aspect_ratio but
35657           also have encoder restrictions on width or height divisibility.
35658
35659       eval
35660           Specify when to evaluate width and height expression. It accepts
35661           the following values:
35662
35663           init
35664               Only evaluate expressions once during the filter initialization
35665               or when a command is processed.
35666
35667           frame
35668               Evaluate expressions for each incoming frame.
35669
35670       The values of the w and h options are expressions containing the
35671       following constants:
35672
35673       in_w
35674       in_h
35675           The input width and height
35676
35677       iw
35678       ih  These are the same as in_w and in_h.
35679
35680       out_w
35681       out_h
35682           The output (scaled) width and height
35683
35684       ow
35685       oh  These are the same as out_w and out_h
35686
35687       a   The same as iw / ih
35688
35689       sar input sample aspect ratio
35690
35691       dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
35692
35693       n   The (sequential) number of the input frame, starting from 0.  Only
35694           available with "eval=frame".
35695
35696       t   The presentation timestamp of the input frame, expressed as a
35697           number of seconds. Only available with "eval=frame".
35698
35699       pos The position (byte offset) of the frame in the input stream, or NaN
35700           if this information is unavailable and/or meaningless (for example
35701           in case of synthetic video).  Only available with "eval=frame".
35702
35703   scale2ref
35704       Scale (resize) the input video, based on a reference video.
35705
35706       See the scale filter for available options, scale2ref supports the same
35707       but uses the reference video instead of the main input as basis.
35708       scale2ref also supports the following additional constants for the w
35709       and h options:
35710
35711       main_w
35712       main_h
35713           The main input video's width and height
35714
35715       main_a
35716           The same as main_w / main_h
35717
35718       main_sar
35719           The main input video's sample aspect ratio
35720
35721       main_dar, mdar
35722           The main input video's display aspect ratio. Calculated from
35723           "(main_w / main_h) * main_sar".
35724
35725       main_hsub
35726       main_vsub
35727           The main input video's horizontal and vertical chroma subsample
35728           values.  For example for the pixel format "yuv422p" hsub is 2 and
35729           vsub is 1.
35730
35731       main_n
35732           The (sequential) number of the main input frame, starting from 0.
35733           Only available with "eval=frame".
35734
35735       main_t
35736           The presentation timestamp of the main input frame, expressed as a
35737           number of seconds. Only available with "eval=frame".
35738
35739       main_pos
35740           The position (byte offset) of the frame in the main input stream,
35741           or NaN if this information is unavailable and/or meaningless (for
35742           example in case of synthetic video).  Only available with
35743           "eval=frame".
35744
35745       Examples
35746
35747       •   Scale a subtitle stream (b) to match the main video (a) in size
35748           before overlaying
35749
35750                   'scale2ref[b][a];[a][b]overlay'
35751
35752       •   Scale a logo to 1/10th the height of a video, while preserving its
35753           display aspect ratio.
35754
35755                   [logo-in][video-in]scale2ref=w=oh*mdar:h=ih/10[logo-out][video-out]
35756
35757       Commands
35758
35759       This filter supports the following commands:
35760
35761       width, w
35762       height, h
35763           Set the output video dimension expression.  The command accepts the
35764           same syntax of the corresponding option.
35765
35766           If the specified expression is not valid, it is kept at its current
35767           value.
35768
35769   scale2ref_npp
35770       Use the NVIDIA Performance Primitives (libnpp) to scale (resize) the
35771       input video, based on a reference video.
35772
35773       See the scale_npp filter for available options, scale2ref_npp supports
35774       the same but uses the reference video instead of the main input as
35775       basis. scale2ref_npp also supports the following additional constants
35776       for the w and h options:
35777
35778       main_w
35779       main_h
35780           The main input video's width and height
35781
35782       main_a
35783           The same as main_w / main_h
35784
35785       main_sar
35786           The main input video's sample aspect ratio
35787
35788       main_dar, mdar
35789           The main input video's display aspect ratio. Calculated from
35790           "(main_w / main_h) * main_sar".
35791
35792       main_n
35793           The (sequential) number of the main input frame, starting from 0.
35794           Only available with "eval=frame".
35795
35796       main_t
35797           The presentation timestamp of the main input frame, expressed as a
35798           number of seconds. Only available with "eval=frame".
35799
35800       main_pos
35801           The position (byte offset) of the frame in the main input stream,
35802           or NaN if this information is unavailable and/or meaningless (for
35803           example in case of synthetic video).  Only available with
35804           "eval=frame".
35805
35806       Examples
35807
35808       •   Scale a subtitle stream (b) to match the main video (a) in size
35809           before overlaying
35810
35811                   'scale2ref_npp[b][a];[a][b]overlay_cuda'
35812
35813       •   Scale a logo to 1/10th the height of a video, while preserving its
35814           display aspect ratio.
35815
35816                   [logo-in][video-in]scale2ref_npp=w=oh*mdar:h=ih/10[logo-out][video-out]
35817
35818   scharr
35819       Apply scharr operator to input video stream.
35820
35821       The filter accepts the following option:
35822
35823       planes
35824           Set which planes will be processed, unprocessed planes will be
35825           copied.  By default value 0xf, all planes will be processed.
35826
35827       scale
35828           Set value which will be multiplied with filtered result.
35829
35830       delta
35831           Set value which will be added to filtered result.
35832
35833       Commands
35834
35835       This filter supports the all above options as commands.
35836
35837   scroll
35838       Scroll input video horizontally and/or vertically by constant speed.
35839
35840       The filter accepts the following options:
35841
35842       horizontal, h
35843           Set the horizontal scrolling speed. Default is 0. Allowed range is
35844           from -1 to 1.  Negative values changes scrolling direction.
35845
35846       vertical, v
35847           Set the vertical scrolling speed. Default is 0. Allowed range is
35848           from -1 to 1.  Negative values changes scrolling direction.
35849
35850       hpos
35851           Set the initial horizontal scrolling position. Default is 0.
35852           Allowed range is from 0 to 1.
35853
35854       vpos
35855           Set the initial vertical scrolling position. Default is 0. Allowed
35856           range is from 0 to 1.
35857
35858       Commands
35859
35860       This filter supports the following commands:
35861
35862       horizontal, h
35863           Set the horizontal scrolling speed.
35864
35865       vertical, v
35866           Set the vertical scrolling speed.
35867
35868   scdet
35869       Detect video scene change.
35870
35871       This filter sets frame metadata with mafd between frame, the scene
35872       score, and forward the frame to the next filter, so they can use these
35873       metadata to detect scene change or others.
35874
35875       In addition, this filter logs a message and sets frame metadata when it
35876       detects a scene change by threshold.
35877
35878       "lavfi.scd.mafd" metadata keys are set with mafd for every frame.
35879
35880       "lavfi.scd.score" metadata keys are set with scene change score for
35881       every frame to detect scene change.
35882
35883       "lavfi.scd.time" metadata keys are set with current filtered frame time
35884       which detect scene change with threshold.
35885
35886       The filter accepts the following options:
35887
35888       threshold, t
35889           Set the scene change detection threshold as a percentage of maximum
35890           change. Good values are in the "[8.0, 14.0]" range. The range for
35891           threshold is "[0., 100.]".
35892
35893           Default value is 10..
35894
35895       sc_pass, s
35896           Set the flag to pass scene change frames to the next filter.
35897           Default value is 0 You can enable it if you want to get snapshot of
35898           scene change frames only.
35899
35900   selectivecolor
35901       Adjust cyan, magenta, yellow and black (CMYK) to certain ranges of
35902       colors (such as "reds", "yellows", "greens", "cyans", ...). The
35903       adjustment range is defined by the "purity" of the color (that is, how
35904       saturated it already is).
35905
35906       This filter is similar to the Adobe Photoshop Selective Color tool.
35907
35908       The filter accepts the following options:
35909
35910       correction_method
35911           Select color correction method.
35912
35913           Available values are:
35914
35915           absolute
35916               Specified adjustments are applied "as-is" (added/subtracted to
35917               original pixel component value).
35918
35919           relative
35920               Specified adjustments are relative to the original component
35921               value.
35922
35923           Default is "absolute".
35924
35925       reds
35926           Adjustments for red pixels (pixels where the red component is the
35927           maximum)
35928
35929       yellows
35930           Adjustments for yellow pixels (pixels where the blue component is
35931           the minimum)
35932
35933       greens
35934           Adjustments for green pixels (pixels where the green component is
35935           the maximum)
35936
35937       cyans
35938           Adjustments for cyan pixels (pixels where the red component is the
35939           minimum)
35940
35941       blues
35942           Adjustments for blue pixels (pixels where the blue component is the
35943           maximum)
35944
35945       magentas
35946           Adjustments for magenta pixels (pixels where the green component is
35947           the minimum)
35948
35949       whites
35950           Adjustments for white pixels (pixels where all components are
35951           greater than 128)
35952
35953       neutrals
35954           Adjustments for all pixels except pure black and pure white
35955
35956       blacks
35957           Adjustments for black pixels (pixels where all components are
35958           lesser than 128)
35959
35960       psfile
35961           Specify a Photoshop selective color file (".asv") to import the
35962           settings from.
35963
35964       All the adjustment settings (reds, yellows, ...) accept up to 4 space
35965       separated floating point adjustment values in the [-1,1] range,
35966       respectively to adjust the amount of cyan, magenta, yellow and black
35967       for the pixels of its range.
35968
35969       Examples
35970
35971       •   Increase cyan by 50% and reduce yellow by 33% in every green areas,
35972           and increase magenta by 27% in blue areas:
35973
35974                   selectivecolor=greens=.5 0 -.33 0:blues=0 .27
35975
35976       •   Use a Photoshop selective color preset:
35977
35978                   selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
35979
35980   separatefields
35981       The "separatefields" takes a frame-based video input and splits each
35982       frame into its components fields, producing a new half height clip with
35983       twice the frame rate and twice the frame count.
35984
35985       This filter use field-dominance information in frame to decide which of
35986       each pair of fields to place first in the output.  If it gets it wrong
35987       use setfield filter before "separatefields" filter.
35988
35989   setdar, setsar
35990       The "setdar" filter sets the Display Aspect Ratio for the filter output
35991       video.
35992
35993       This is done by changing the specified Sample (aka Pixel) Aspect Ratio,
35994       according to the following equation:
35995
35996               <DAR> = <HORIZONTAL_RESOLUTION> / <VERTICAL_RESOLUTION> * <SAR>
35997
35998       Keep in mind that the "setdar" filter does not modify the pixel
35999       dimensions of the video frame. Also, the display aspect ratio set by
36000       this filter may be changed by later filters in the filterchain, e.g. in
36001       case of scaling or if another "setdar" or a "setsar" filter is applied.
36002
36003       The "setsar" filter sets the Sample (aka Pixel) Aspect Ratio for the
36004       filter output video.
36005
36006       Note that as a consequence of the application of this filter, the
36007       output display aspect ratio will change according to the equation
36008       above.
36009
36010       Keep in mind that the sample aspect ratio set by the "setsar" filter
36011       may be changed by later filters in the filterchain, e.g. if another
36012       "setsar" or a "setdar" filter is applied.
36013
36014       It accepts the following parameters:
36015
36016       r, ratio, dar ("setdar" only), sar ("setsar" only)
36017           Set the aspect ratio used by the filter.
36018
36019           The parameter can be a floating point number string, an expression,
36020           or a string of the form num:den, where num and den are the
36021           numerator and denominator of the aspect ratio. If the parameter is
36022           not specified, it is assumed the value "0".  In case the form
36023           "num:den" is used, the ":" character should be escaped.
36024
36025       max Set the maximum integer value to use for expressing numerator and
36026           denominator when reducing the expressed aspect ratio to a rational.
36027           Default value is 100.
36028
36029       The parameter sar is an expression containing the following constants:
36030
36031       E, PI, PHI
36032           These are approximated values for the mathematical constants e
36033           (Euler's number), pi (Greek pi), and phi (the golden ratio).
36034
36035       w, h
36036           The input width and height.
36037
36038       a   These are the same as w / h.
36039
36040       sar The input sample aspect ratio.
36041
36042       dar The input display aspect ratio. It is the same as (w / h) * sar.
36043
36044       hsub, vsub
36045           Horizontal and vertical chroma subsample values. For example, for
36046           the pixel format "yuv422p" hsub is 2 and vsub is 1.
36047
36048       Examples
36049
36050       •   To change the display aspect ratio to 16:9, specify one of the
36051           following:
36052
36053                   setdar=dar=1.77777
36054                   setdar=dar=16/9
36055
36056       •   To change the sample aspect ratio to 10:11, specify:
36057
36058                   setsar=sar=10/11
36059
36060       •   To set a display aspect ratio of 16:9, and specify a maximum
36061           integer value of 1000 in the aspect ratio reduction, use the
36062           command:
36063
36064                   setdar=ratio=16/9:max=1000
36065
36066   setfield
36067       Force field for the output video frame.
36068
36069       The "setfield" filter marks the interlace type field for the output
36070       frames. It does not change the input frame, but only sets the
36071       corresponding property, which affects how the frame is treated by
36072       following filters (e.g. "fieldorder" or "yadif").
36073
36074       The filter accepts the following options:
36075
36076       mode
36077           Available values are:
36078
36079           auto
36080               Keep the same field property.
36081
36082           bff Mark the frame as bottom-field-first.
36083
36084           tff Mark the frame as top-field-first.
36085
36086           prog
36087               Mark the frame as progressive.
36088
36089   setparams
36090       Force frame parameter for the output video frame.
36091
36092       The "setparams" filter marks interlace and color range for the output
36093       frames. It does not change the input frame, but only sets the
36094       corresponding property, which affects how the frame is treated by
36095       filters/encoders.
36096
36097       field_mode
36098           Available values are:
36099
36100           auto
36101               Keep the same field property (default).
36102
36103           bff Mark the frame as bottom-field-first.
36104
36105           tff Mark the frame as top-field-first.
36106
36107           prog
36108               Mark the frame as progressive.
36109
36110       range
36111           Available values are:
36112
36113           auto
36114               Keep the same color range property (default).
36115
36116           unspecified, unknown
36117               Mark the frame as unspecified color range.
36118
36119           limited, tv, mpeg
36120               Mark the frame as limited range.
36121
36122           full, pc, jpeg
36123               Mark the frame as full range.
36124
36125       color_primaries
36126           Set the color primaries.  Available values are:
36127
36128           auto
36129               Keep the same color primaries property (default).
36130
36131           bt709
36132           unknown
36133           bt470m
36134           bt470bg
36135           smpte170m
36136           smpte240m
36137           film
36138           bt2020
36139           smpte428
36140           smpte431
36141           smpte432
36142           jedec-p22
36143       color_trc
36144           Set the color transfer.  Available values are:
36145
36146           auto
36147               Keep the same color trc property (default).
36148
36149           bt709
36150           unknown
36151           bt470m
36152           bt470bg
36153           smpte170m
36154           smpte240m
36155           linear
36156           log100
36157           log316
36158           iec61966-2-4
36159           bt1361e
36160           iec61966-2-1
36161           bt2020-10
36162           bt2020-12
36163           smpte2084
36164           smpte428
36165           arib-std-b67
36166       colorspace
36167           Set the colorspace.  Available values are:
36168
36169           auto
36170               Keep the same colorspace property (default).
36171
36172           gbr
36173           bt709
36174           unknown
36175           fcc
36176           bt470bg
36177           smpte170m
36178           smpte240m
36179           ycgco
36180           bt2020nc
36181           bt2020c
36182           smpte2085
36183           chroma-derived-nc
36184           chroma-derived-c
36185           ictcp
36186
36187   sharpen_npp
36188       Use the NVIDIA Performance Primitives (libnpp) to perform image
36189       sharpening with border control.
36190
36191       The following additional options are accepted:
36192
36193       border_type
36194           Type of sampling to be used ad frame borders. One of the following:
36195
36196           replicate
36197               Replicate pixel values.
36198
36199   shear
36200       Apply shear transform to input video.
36201
36202       This filter supports the following options:
36203
36204       shx Shear factor in X-direction. Default value is 0.  Allowed range is
36205           from -2 to 2.
36206
36207       shy Shear factor in Y-direction. Default value is 0.  Allowed range is
36208           from -2 to 2.
36209
36210       fillcolor, c
36211           Set the color used to fill the output area not covered by the
36212           transformed video. For the general syntax of this option, check the
36213           "Color" section in the ffmpeg-utils manual.  If the special value
36214           "none" is selected then no background is printed (useful for
36215           example if the background is never shown).
36216
36217           Default value is "black".
36218
36219       interp
36220           Set interpolation type. Can be "bilinear" or "nearest". Default is
36221           "bilinear".
36222
36223       Commands
36224
36225       This filter supports the all above options as commands.
36226
36227   showinfo
36228       Show a line containing various information for each input video frame.
36229       The input video is not modified.
36230
36231       This filter supports the following options:
36232
36233       checksum
36234           Calculate checksums of each plane. By default enabled.
36235
36236       The shown line contains a sequence of key/value pairs of the form
36237       key:value.
36238
36239       The following values are shown in the output:
36240
36241       n   The (sequential) number of the input frame, starting from 0.
36242
36243       pts The Presentation TimeStamp of the input frame, expressed as a
36244           number of time base units. The time base unit depends on the filter
36245           input pad.
36246
36247       pts_time
36248           The Presentation TimeStamp of the input frame, expressed as a
36249           number of seconds.
36250
36251       pos The position of the frame in the input stream, or -1 if this
36252           information is unavailable and/or meaningless (for example in case
36253           of synthetic video).
36254
36255       fmt The pixel format name.
36256
36257       sar The sample aspect ratio of the input frame, expressed in the form
36258           num/den.
36259
36260       s   The size of the input frame. For the syntax of this option, check
36261           the "Video size" section in the ffmpeg-utils manual.
36262
36263       i   The type of interlaced mode ("P" for "progressive", "T" for top
36264           field first, "B" for bottom field first).
36265
36266       iskey
36267           This is 1 if the frame is a key frame, 0 otherwise.
36268
36269       type
36270           The picture type of the input frame ("I" for an I-frame, "P" for a
36271           P-frame, "B" for a B-frame, or "?" for an unknown type).  Also
36272           refer to the documentation of the "AVPictureType" enum and of the
36273           "av_get_picture_type_char" function defined in libavutil/avutil.h.
36274
36275       checksum
36276           The Adler-32 checksum (printed in hexadecimal) of all the planes of
36277           the input frame.
36278
36279       plane_checksum
36280           The Adler-32 checksum (printed in hexadecimal) of each plane of the
36281           input frame, expressed in the form "[c0 c1 c2 c3]".
36282
36283       mean
36284           The mean value of pixels in each plane of the input frame,
36285           expressed in the form "[mean0 mean1 mean2 mean3]".
36286
36287       stdev
36288           The standard deviation of pixel values in each plane of the input
36289           frame, expressed in the form "[stdev0 stdev1 stdev2 stdev3]".
36290
36291   showpalette
36292       Displays the 256 colors palette of each frame. This filter is only
36293       relevant for pal8 pixel format frames.
36294
36295       It accepts the following option:
36296
36297       s   Set the size of the box used to represent one palette color entry.
36298           Default is 30 (for a "30x30" pixel box).
36299
36300   shuffleframes
36301       Reorder and/or duplicate and/or drop video frames.
36302
36303       It accepts the following parameters:
36304
36305       mapping
36306           Set the destination indexes of input frames.  This is space or '|'
36307           separated list of indexes that maps input frames to output frames.
36308           Number of indexes also sets maximal value that each index may have.
36309           '-1' index have special meaning and that is to drop frame.
36310
36311       The first frame has the index 0. The default is to keep the input
36312       unchanged.
36313
36314       Examples
36315
36316       •   Swap second and third frame of every three frames of the input:
36317
36318                   ffmpeg -i INPUT -vf "shuffleframes=0 2 1" OUTPUT
36319
36320       •   Swap 10th and 1st frame of every ten frames of the input:
36321
36322                   ffmpeg -i INPUT -vf "shuffleframes=9 1 2 3 4 5 6 7 8 0" OUTPUT
36323
36324   shufflepixels
36325       Reorder pixels in video frames.
36326
36327       This filter accepts the following options:
36328
36329       direction, d
36330           Set shuffle direction. Can be forward or inverse direction.
36331           Default direction is forward.
36332
36333       mode, m
36334           Set shuffle mode. Can be horizontal, vertical or block mode.
36335
36336       width, w
36337       height, h
36338           Set shuffle block_size. In case of horizontal shuffle mode only
36339           width part of size is used, and in case of vertical shuffle mode
36340           only height part of size is used.
36341
36342       seed, s
36343           Set random seed used with shuffling pixels. Mainly useful to set to
36344           be able to reverse filtering process to get original input.  For
36345           example, to reverse forward shuffle you need to use same parameters
36346           and exact same seed and to set direction to inverse.
36347
36348   shuffleplanes
36349       Reorder and/or duplicate video planes.
36350
36351       It accepts the following parameters:
36352
36353       map0
36354           The index of the input plane to be used as the first output plane.
36355
36356       map1
36357           The index of the input plane to be used as the second output plane.
36358
36359       map2
36360           The index of the input plane to be used as the third output plane.
36361
36362       map3
36363           The index of the input plane to be used as the fourth output plane.
36364
36365       The first plane has the index 0. The default is to keep the input
36366       unchanged.
36367
36368       Examples
36369
36370       •   Swap the second and third planes of the input:
36371
36372                   ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
36373
36374   signalstats
36375       Evaluate various visual metrics that assist in determining issues
36376       associated with the digitization of analog video media.
36377
36378       By default the filter will log these metadata values:
36379
36380       YMIN
36381           Display the minimal Y value contained within the input frame.
36382           Expressed in range of [0-255].
36383
36384       YLOW
36385           Display the Y value at the 10% percentile within the input frame.
36386           Expressed in range of [0-255].
36387
36388       YAVG
36389           Display the average Y value within the input frame. Expressed in
36390           range of [0-255].
36391
36392       YHIGH
36393           Display the Y value at the 90% percentile within the input frame.
36394           Expressed in range of [0-255].
36395
36396       YMAX
36397           Display the maximum Y value contained within the input frame.
36398           Expressed in range of [0-255].
36399
36400       UMIN
36401           Display the minimal U value contained within the input frame.
36402           Expressed in range of [0-255].
36403
36404       ULOW
36405           Display the U value at the 10% percentile within the input frame.
36406           Expressed in range of [0-255].
36407
36408       UAVG
36409           Display the average U value within the input frame. Expressed in
36410           range of [0-255].
36411
36412       UHIGH
36413           Display the U value at the 90% percentile within the input frame.
36414           Expressed in range of [0-255].
36415
36416       UMAX
36417           Display the maximum U value contained within the input frame.
36418           Expressed in range of [0-255].
36419
36420       VMIN
36421           Display the minimal V value contained within the input frame.
36422           Expressed in range of [0-255].
36423
36424       VLOW
36425           Display the V value at the 10% percentile within the input frame.
36426           Expressed in range of [0-255].
36427
36428       VAVG
36429           Display the average V value within the input frame. Expressed in
36430           range of [0-255].
36431
36432       VHIGH
36433           Display the V value at the 90% percentile within the input frame.
36434           Expressed in range of [0-255].
36435
36436       VMAX
36437           Display the maximum V value contained within the input frame.
36438           Expressed in range of [0-255].
36439
36440       SATMIN
36441           Display the minimal saturation value contained within the input
36442           frame.  Expressed in range of [0-~181.02].
36443
36444       SATLOW
36445           Display the saturation value at the 10% percentile within the input
36446           frame.  Expressed in range of [0-~181.02].
36447
36448       SATAVG
36449           Display the average saturation value within the input frame.
36450           Expressed in range of [0-~181.02].
36451
36452       SATHIGH
36453           Display the saturation value at the 90% percentile within the input
36454           frame.  Expressed in range of [0-~181.02].
36455
36456       SATMAX
36457           Display the maximum saturation value contained within the input
36458           frame.  Expressed in range of [0-~181.02].
36459
36460       HUEMED
36461           Display the median value for hue within the input frame. Expressed
36462           in range of [0-360].
36463
36464       HUEAVG
36465           Display the average value for hue within the input frame. Expressed
36466           in range of [0-360].
36467
36468       YDIF
36469           Display the average of sample value difference between all values
36470           of the Y plane in the current frame and corresponding values of the
36471           previous input frame.  Expressed in range of [0-255].
36472
36473       UDIF
36474           Display the average of sample value difference between all values
36475           of the U plane in the current frame and corresponding values of the
36476           previous input frame.  Expressed in range of [0-255].
36477
36478       VDIF
36479           Display the average of sample value difference between all values
36480           of the V plane in the current frame and corresponding values of the
36481           previous input frame.  Expressed in range of [0-255].
36482
36483       YBITDEPTH
36484           Display bit depth of Y plane in current frame.  Expressed in range
36485           of [0-16].
36486
36487       UBITDEPTH
36488           Display bit depth of U plane in current frame.  Expressed in range
36489           of [0-16].
36490
36491       VBITDEPTH
36492           Display bit depth of V plane in current frame.  Expressed in range
36493           of [0-16].
36494
36495       The filter accepts the following options:
36496
36497       stat
36498       out stat specify an additional form of image analysis.  out output
36499           video with the specified type of pixel highlighted.
36500
36501           Both options accept the following values:
36502
36503           tout
36504               Identify temporal outliers pixels. A temporal outlier is a
36505               pixel unlike the neighboring pixels of the same field. Examples
36506               of temporal outliers include the results of video dropouts,
36507               head clogs, or tape tracking issues.
36508
36509           vrep
36510               Identify vertical line repetition. Vertical line repetition
36511               includes similar rows of pixels within a frame. In born-digital
36512               video vertical line repetition is common, but this pattern is
36513               uncommon in video digitized from an analog source. When it
36514               occurs in video that results from the digitization of an analog
36515               source it can indicate concealment from a dropout compensator.
36516
36517           brng
36518               Identify pixels that fall outside of legal broadcast range.
36519
36520       color, c
36521           Set the highlight color for the out option. The default color is
36522           yellow.
36523
36524       Examples
36525
36526       •   Output data of various video metrics:
36527
36528                   ffprobe -f lavfi movie=example.mov,signalstats="stat=tout+vrep+brng" -show_frames
36529
36530       •   Output specific data about the minimum and maximum values of the Y
36531           plane per frame:
36532
36533                   ffprobe -f lavfi movie=example.mov,signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN
36534
36535       •   Playback video while highlighting pixels that are outside of
36536           broadcast range in red.
36537
36538                   ffplay example.mov -vf signalstats="out=brng:color=red"
36539
36540       •   Playback video with signalstats metadata drawn over the frame.
36541
36542                   ffplay example.mov -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=FreeSerif.ttf:textfile=signalstat_drawtext.txt
36543
36544           The contents of signalstat_drawtext.txt used in the command are:
36545
36546                   time %{pts:hms}
36547                   Y (%{metadata:lavfi.signalstats.YMIN}-%{metadata:lavfi.signalstats.YMAX})
36548                   U (%{metadata:lavfi.signalstats.UMIN}-%{metadata:lavfi.signalstats.UMAX})
36549                   V (%{metadata:lavfi.signalstats.VMIN}-%{metadata:lavfi.signalstats.VMAX})
36550                   saturation maximum: %{metadata:lavfi.signalstats.SATMAX}
36551
36552   signature
36553       Calculates the MPEG-7 Video Signature. The filter can handle more than
36554       one input. In this case the matching between the inputs can be
36555       calculated additionally.  The filter always passes through the first
36556       input. The signature of each stream can be written into a file.
36557
36558       It accepts the following options:
36559
36560       detectmode
36561           Enable or disable the matching process.
36562
36563           Available values are:
36564
36565           off Disable the calculation of a matching (default).
36566
36567           full
36568               Calculate the matching for the whole video and output whether
36569               the whole video matches or only parts.
36570
36571           fast
36572               Calculate only until a matching is found or the video ends.
36573               Should be faster in some cases.
36574
36575       nb_inputs
36576           Set the number of inputs. The option value must be a non negative
36577           integer.  Default value is 1.
36578
36579       filename
36580           Set the path to which the output is written. If there is more than
36581           one input, the path must be a prototype, i.e. must contain %d or
36582           %0nd (where n is a positive integer), that will be replaced with
36583           the input number. If no filename is specified, no output will be
36584           written. This is the default.
36585
36586       format
36587           Choose the output format.
36588
36589           Available values are:
36590
36591           binary
36592               Use the specified binary representation (default).
36593
36594           xml Use the specified xml representation.
36595
36596       th_d
36597           Set threshold to detect one word as similar. The option value must
36598           be an integer greater than zero. The default value is 9000.
36599
36600       th_dc
36601           Set threshold to detect all words as similar. The option value must
36602           be an integer greater than zero. The default value is 60000.
36603
36604       th_xh
36605           Set threshold to detect frames as similar. The option value must be
36606           an integer greater than zero. The default value is 116.
36607
36608       th_di
36609           Set the minimum length of a sequence in frames to recognize it as
36610           matching sequence. The option value must be a non negative integer
36611           value.  The default value is 0.
36612
36613       th_it
36614           Set the minimum relation, that matching frames to all frames must
36615           have.  The option value must be a double value between 0 and 1. The
36616           default value is 0.5.
36617
36618       Examples
36619
36620       •   To calculate the signature of an input video and store it in
36621           signature.bin:
36622
36623                   ffmpeg -i input.mkv -vf signature=filename=signature.bin -map 0:v -f null -
36624
36625       •   To detect whether two videos match and store the signatures in XML
36626           format in signature0.xml and signature1.xml:
36627
36628                   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 -
36629
36630   siti
36631       Calculate Spatial Info (SI) and Temporal Info (TI) scores for a video,
36632       as defined in ITU-T P.910: Subjective video quality assessment methods
36633       for multimedia applications. Available PDF at
36634       <https://www.itu.int/rec/T-REC-P.910-199909-S/en >.
36635
36636       It accepts the following option:
36637
36638       print_summary
36639           If set to 1, Summary statistics will be printed to the console.
36640           Default 0.
36641
36642       Examples
36643
36644       •   To calculate SI/TI metrics and print summary:
36645
36646                   ffmpeg -i input.mp4 -vf siti=print_summary=1 -f null -
36647
36648   smartblur
36649       Blur the input video without impacting the outlines.
36650
36651       It accepts the following options:
36652
36653       luma_radius, lr
36654           Set the luma radius. The option value must be a float number in the
36655           range [0.1,5.0] that specifies the variance of the gaussian filter
36656           used to blur the image (slower if larger). Default value is 1.0.
36657
36658       luma_strength, ls
36659           Set the luma strength. The option value must be a float number in
36660           the range [-1.0,1.0] that configures the blurring. A value included
36661           in [0.0,1.0] will blur the image whereas a value included in
36662           [-1.0,0.0] will sharpen the image. Default value is 1.0.
36663
36664       luma_threshold, lt
36665           Set the luma threshold used as a coefficient to determine whether a
36666           pixel should be blurred or not. The option value must be an integer
36667           in the range [-30,30]. A value of 0 will filter all the image, a
36668           value included in [0,30] will filter flat areas and a value
36669           included in [-30,0] will filter edges. Default value is 0.
36670
36671       chroma_radius, cr
36672           Set the chroma radius. The option value must be a float number in
36673           the range [0.1,5.0] that specifies the variance of the gaussian
36674           filter used to blur the image (slower if larger). Default value is
36675           luma_radius.
36676
36677       chroma_strength, cs
36678           Set the chroma strength. The option value must be a float number in
36679           the range [-1.0,1.0] that configures the blurring. A value included
36680           in [0.0,1.0] will blur the image whereas a value included in
36681           [-1.0,0.0] will sharpen the image. Default value is luma_strength.
36682
36683       chroma_threshold, ct
36684           Set the chroma threshold used as a coefficient to determine whether
36685           a pixel should be blurred or not. The option value must be an
36686           integer in the range [-30,30]. A value of 0 will filter all the
36687           image, a value included in [0,30] will filter flat areas and a
36688           value included in [-30,0] will filter edges. Default value is
36689           luma_threshold.
36690
36691       If a chroma option is not explicitly set, the corresponding luma value
36692       is set.
36693
36694   sobel
36695       Apply sobel operator to input video stream.
36696
36697       The filter accepts the following option:
36698
36699       planes
36700           Set which planes will be processed, unprocessed planes will be
36701           copied.  By default value 0xf, all planes will be processed.
36702
36703       scale
36704           Set value which will be multiplied with filtered result.
36705
36706       delta
36707           Set value which will be added to filtered result.
36708
36709       Commands
36710
36711       This filter supports the all above options as commands.
36712
36713   spp
36714       Apply a simple postprocessing filter that compresses and decompresses
36715       the image at several (or - in the case of quality level 6 - all) shifts
36716       and average the results.
36717
36718       The filter accepts the following options:
36719
36720       quality
36721           Set quality. This option defines the number of levels for
36722           averaging. It accepts an integer in the range 0-6. If set to 0, the
36723           filter will have no effect. A value of 6 means the higher quality.
36724           For each increment of that value the speed drops by a factor of
36725           approximately 2.  Default value is 3.
36726
36727       qp  Force a constant quantization parameter. If not set, the filter
36728           will use the QP from the video stream (if available).
36729
36730       mode
36731           Set thresholding mode. Available modes are:
36732
36733           hard
36734               Set hard thresholding (default).
36735
36736           soft
36737               Set soft thresholding (better de-ringing effect, but likely
36738               blurrier).
36739
36740       use_bframe_qp
36741           Enable the use of the QP from the B-Frames if set to 1. Using this
36742           option may cause flicker since the B-Frames have often larger QP.
36743           Default is 0 (not enabled).
36744
36745       Commands
36746
36747       This filter supports the following commands:
36748
36749       quality, level
36750           Set quality level. The value "max" can be used to set the maximum
36751           level, currently 6.
36752
36753   sr
36754       Scale the input by applying one of the super-resolution methods based
36755       on convolutional neural networks. Supported models:
36756
36757       •   Super-Resolution Convolutional Neural Network model (SRCNN).  See
36758           <https://arxiv.org/abs/1501.00092>.
36759
36760       •   Efficient Sub-Pixel Convolutional Neural Network model (ESPCN).
36761           See <https://arxiv.org/abs/1609.05158>.
36762
36763       Training scripts as well as scripts for model file (.pb) saving can be
36764       found at <https://github.com/XueweiMeng/sr/tree/sr_dnn_native>.
36765       Original repository is at
36766       <https://github.com/HighVoltageRocknRoll/sr.git>.
36767
36768       Native model files (.model) can be generated from TensorFlow model
36769       files (.pb) by using tools/python/convert.py
36770
36771       The filter accepts the following options:
36772
36773       dnn_backend
36774           Specify which DNN backend to use for model loading and execution.
36775           This option accepts the following values:
36776
36777           native
36778               Native implementation of DNN loading and execution.
36779
36780           tensorflow
36781               TensorFlow backend. To enable this backend you need to install
36782               the TensorFlow for C library (see
36783               <https://www.tensorflow.org/install/lang_c>) and configure
36784               FFmpeg with "--enable-libtensorflow"
36785
36786           Default value is native.
36787
36788       model
36789           Set path to model file specifying network architecture and its
36790           parameters.  Note that different backends use different file
36791           formats. TensorFlow backend can load files for both formats, while
36792           native backend can load files for only its format.
36793
36794       scale_factor
36795           Set scale factor for SRCNN model. Allowed values are 2, 3 and 4.
36796           Default value is 2. Scale factor is necessary for SRCNN model,
36797           because it accepts input upscaled using bicubic upscaling with
36798           proper scale factor.
36799
36800       To get full functionality (such as async execution), please use the
36801       dnn_processing filter.
36802
36803   ssim
36804       Obtain the SSIM (Structural SImilarity Metric) between two input
36805       videos.
36806
36807       This filter takes in input two input videos, the first input is
36808       considered the "main" source and is passed unchanged to the output. The
36809       second input is used as a "reference" video for computing the SSIM.
36810
36811       Both video inputs must have the same resolution and pixel format for
36812       this filter to work correctly. Also it assumes that both inputs have
36813       the same number of frames, which are compared one by one.
36814
36815       The filter stores the calculated SSIM of each frame.
36816
36817       The description of the accepted parameters follows.
36818
36819       stats_file, f
36820           If specified the filter will use the named file to save the SSIM of
36821           each individual frame. When filename equals "-" the data is sent to
36822           standard output.
36823
36824       The file printed if stats_file is selected, contains a sequence of
36825       key/value pairs of the form key:value for each compared couple of
36826       frames.
36827
36828       A description of each shown parameter follows:
36829
36830       n   sequential number of the input frame, starting from 1
36831
36832       Y, U, V, R, G, B
36833           SSIM of the compared frames for the component specified by the
36834           suffix.
36835
36836       All SSIM of the compared frames for the whole frame.
36837
36838       dB  Same as above but in dB representation.
36839
36840       This filter also supports the framesync options.
36841
36842       Examples
36843
36844       •   For example:
36845
36846                   movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
36847                   [main][ref] ssim="stats_file=stats.log" [out]
36848
36849           On this example the input file being processed is compared with the
36850           reference file ref_movie.mpg. The SSIM of each individual frame is
36851           stored in stats.log.
36852
36853       •   Another example with both psnr and ssim at same time:
36854
36855                   ffmpeg -i main.mpg -i ref.mpg -lavfi  "ssim;[0:v][1:v]psnr" -f null -
36856
36857       •   Another example with different containers:
36858
36859                   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 -
36860
36861   stereo3d
36862       Convert between different stereoscopic image formats.
36863
36864       The filters accept the following options:
36865
36866       in  Set stereoscopic image format of input.
36867
36868           Available values for input image formats are:
36869
36870           sbsl
36871               side by side parallel (left eye left, right eye right)
36872
36873           sbsr
36874               side by side crosseye (right eye left, left eye right)
36875
36876           sbs2l
36877               side by side parallel with half width resolution (left eye
36878               left, right eye right)
36879
36880           sbs2r
36881               side by side crosseye with half width resolution (right eye
36882               left, left eye right)
36883
36884           abl
36885           tbl above-below (left eye above, right eye below)
36886
36887           abr
36888           tbr above-below (right eye above, left eye below)
36889
36890           ab2l
36891           tb2l
36892               above-below with half height resolution (left eye above, right
36893               eye below)
36894
36895           ab2r
36896           tb2r
36897               above-below with half height resolution (right eye above, left
36898               eye below)
36899
36900           al  alternating frames (left eye first, right eye second)
36901
36902           ar  alternating frames (right eye first, left eye second)
36903
36904           irl interleaved rows (left eye has top row, right eye starts on
36905               next row)
36906
36907           irr interleaved rows (right eye has top row, left eye starts on
36908               next row)
36909
36910           icl interleaved columns, left eye first
36911
36912           icr interleaved columns, right eye first
36913
36914               Default value is sbsl.
36915
36916       out Set stereoscopic image format of output.
36917
36918           sbsl
36919               side by side parallel (left eye left, right eye right)
36920
36921           sbsr
36922               side by side crosseye (right eye left, left eye right)
36923
36924           sbs2l
36925               side by side parallel with half width resolution (left eye
36926               left, right eye right)
36927
36928           sbs2r
36929               side by side crosseye with half width resolution (right eye
36930               left, left eye right)
36931
36932           abl
36933           tbl above-below (left eye above, right eye below)
36934
36935           abr
36936           tbr above-below (right eye above, left eye below)
36937
36938           ab2l
36939           tb2l
36940               above-below with half height resolution (left eye above, right
36941               eye below)
36942
36943           ab2r
36944           tb2r
36945               above-below with half height resolution (right eye above, left
36946               eye below)
36947
36948           al  alternating frames (left eye first, right eye second)
36949
36950           ar  alternating frames (right eye first, left eye second)
36951
36952           irl interleaved rows (left eye has top row, right eye starts on
36953               next row)
36954
36955           irr interleaved rows (right eye has top row, left eye starts on
36956               next row)
36957
36958           arbg
36959               anaglyph red/blue gray (red filter on left eye, blue filter on
36960               right eye)
36961
36962           argg
36963               anaglyph red/green gray (red filter on left eye, green filter
36964               on right eye)
36965
36966           arcg
36967               anaglyph red/cyan gray (red filter on left eye, cyan filter on
36968               right eye)
36969
36970           arch
36971               anaglyph red/cyan half colored (red filter on left eye, cyan
36972               filter on right eye)
36973
36974           arcc
36975               anaglyph red/cyan color (red filter on left eye, cyan filter on
36976               right eye)
36977
36978           arcd
36979               anaglyph red/cyan color optimized with the least squares
36980               projection of dubois (red filter on left eye, cyan filter on
36981               right eye)
36982
36983           agmg
36984               anaglyph green/magenta gray (green filter on left eye, magenta
36985               filter on right eye)
36986
36987           agmh
36988               anaglyph green/magenta half colored (green filter on left eye,
36989               magenta filter on right eye)
36990
36991           agmc
36992               anaglyph green/magenta colored (green filter on left eye,
36993               magenta filter on right eye)
36994
36995           agmd
36996               anaglyph green/magenta color optimized with the least squares
36997               projection of dubois (green filter on left eye, magenta filter
36998               on right eye)
36999
37000           aybg
37001               anaglyph yellow/blue gray (yellow filter on left eye, blue
37002               filter on right eye)
37003
37004           aybh
37005               anaglyph yellow/blue half colored (yellow filter on left eye,
37006               blue filter on right eye)
37007
37008           aybc
37009               anaglyph yellow/blue colored (yellow filter on left eye, blue
37010               filter on right eye)
37011
37012           aybd
37013               anaglyph yellow/blue color optimized with the least squares
37014               projection of dubois (yellow filter on left eye, blue filter on
37015               right eye)
37016
37017           ml  mono output (left eye only)
37018
37019           mr  mono output (right eye only)
37020
37021           chl checkerboard, left eye first
37022
37023           chr checkerboard, right eye first
37024
37025           icl interleaved columns, left eye first
37026
37027           icr interleaved columns, right eye first
37028
37029           hdmi
37030               HDMI frame pack
37031
37032           Default value is arcd.
37033
37034       Examples
37035
37036       •   Convert input video from side by side parallel to anaglyph
37037           yellow/blue dubois:
37038
37039                   stereo3d=sbsl:aybd
37040
37041       •   Convert input video from above below (left eye above, right eye
37042           below) to side by side crosseye.
37043
37044                   stereo3d=abl:sbsr
37045
37046   streamselect, astreamselect
37047       Select video or audio streams.
37048
37049       The filter accepts the following options:
37050
37051       inputs
37052           Set number of inputs. Default is 2.
37053
37054       map Set input indexes to remap to outputs.
37055
37056       Commands
37057
37058       The "streamselect" and "astreamselect" filter supports the following
37059       commands:
37060
37061       map Set input indexes to remap to outputs.
37062
37063       Examples
37064
37065       •   Select first 5 seconds 1st stream and rest of time 2nd stream:
37066
37067                   sendcmd='5.0 streamselect map 1',streamselect=inputs=2:map=0
37068
37069       •   Same as above, but for audio:
37070
37071                   asendcmd='5.0 astreamselect map 1',astreamselect=inputs=2:map=0
37072
37073   subtitles
37074       Draw subtitles on top of input video using the libass library.
37075
37076       To enable compilation of this filter you need to configure FFmpeg with
37077       "--enable-libass". This filter also requires a build with libavcodec
37078       and libavformat to convert the passed subtitles file to ASS (Advanced
37079       Substation Alpha) subtitles format.
37080
37081       The filter accepts the following options:
37082
37083       filename, f
37084           Set the filename of the subtitle file to read. It must be
37085           specified.
37086
37087       original_size
37088           Specify the size of the original video, the video for which the ASS
37089           file was composed. For the syntax of this option, check the "Video
37090           size" section in the ffmpeg-utils manual.  Due to a misdesign in
37091           ASS aspect ratio arithmetic, this is necessary to correctly scale
37092           the fonts if the aspect ratio has been changed.
37093
37094       fontsdir
37095           Set a directory path containing fonts that can be used by the
37096           filter.  These fonts will be used in addition to whatever the font
37097           provider uses.
37098
37099       alpha
37100           Process alpha channel, by default alpha channel is untouched.
37101
37102       charenc
37103           Set subtitles input character encoding. "subtitles" filter only.
37104           Only useful if not UTF-8.
37105
37106       stream_index, si
37107           Set subtitles stream index. "subtitles" filter only.
37108
37109       force_style
37110           Override default style or script info parameters of the subtitles.
37111           It accepts a string containing ASS style format "KEY=VALUE" couples
37112           separated by ",".
37113
37114       If the first key is not specified, it is assumed that the first value
37115       specifies the filename.
37116
37117       For example, to render the file sub.srt on top of the input video, use
37118       the command:
37119
37120               subtitles=sub.srt
37121
37122       which is equivalent to:
37123
37124               subtitles=filename=sub.srt
37125
37126       To render the default subtitles stream from file video.mkv, use:
37127
37128               subtitles=video.mkv
37129
37130       To render the second subtitles stream from that file, use:
37131
37132               subtitles=video.mkv:si=1
37133
37134       To make the subtitles stream from sub.srt appear in 80% transparent
37135       blue "DejaVu Serif", use:
37136
37137               subtitles=sub.srt:force_style='Fontname=DejaVu Serif,PrimaryColour=&HCCFF0000'
37138
37139   super2xsai
37140       Scale the input by 2x and smooth using the Super2xSaI (Scale and
37141       Interpolate) pixel art scaling algorithm.
37142
37143       Useful for enlarging pixel art images without reducing sharpness.
37144
37145   swaprect
37146       Swap two rectangular objects in video.
37147
37148       This filter accepts the following options:
37149
37150       w   Set object width.
37151
37152       h   Set object height.
37153
37154       x1  Set 1st rect x coordinate.
37155
37156       y1  Set 1st rect y coordinate.
37157
37158       x2  Set 2nd rect x coordinate.
37159
37160       y2  Set 2nd rect y coordinate.
37161
37162           All expressions are evaluated once for each frame.
37163
37164       The all options are expressions containing the following constants:
37165
37166       w
37167       h   The input width and height.
37168
37169       a   same as w / h
37170
37171       sar input sample aspect ratio
37172
37173       dar input display aspect ratio, it is the same as (w / h) * sar
37174
37175       n   The number of the input frame, starting from 0.
37176
37177       t   The timestamp expressed in seconds. It's NAN if the input timestamp
37178           is unknown.
37179
37180       pos the position in the file of the input frame, NAN if unknown
37181
37182       Commands
37183
37184       This filter supports the all above options as commands.
37185
37186   swapuv
37187       Swap U & V plane.
37188
37189   tblend
37190       Blend successive video frames.
37191
37192       See blend
37193
37194   telecine
37195       Apply telecine process to the video.
37196
37197       This filter accepts the following options:
37198
37199       first_field
37200           top, t
37201               top field first
37202
37203           bottom, b
37204               bottom field first The default value is "top".
37205
37206       pattern
37207           A string of numbers representing the pulldown pattern you wish to
37208           apply.  The default value is 23.
37209
37210               Some typical patterns:
37211
37212               NTSC output (30i):
37213               27.5p: 32222
37214               24p: 23 (classic)
37215               24p: 2332 (preferred)
37216               20p: 33
37217               18p: 334
37218               16p: 3444
37219
37220               PAL output (25i):
37221               27.5p: 12222
37222               24p: 222222222223 ("Euro pulldown")
37223               16.67p: 33
37224               16p: 33333334
37225
37226   thistogram
37227       Compute and draw a color distribution histogram for the input video
37228       across time.
37229
37230       Unlike histogram video filter which only shows histogram of single
37231       input frame at certain time, this filter shows also past histograms of
37232       number of frames defined by "width" option.
37233
37234       The computed histogram is a representation of the color component
37235       distribution in an image.
37236
37237       The filter accepts the following options:
37238
37239       width, w
37240           Set width of single color component output. Default value is 0.
37241           Value of 0 means width will be picked from input video.  This also
37242           set number of passed histograms to keep.  Allowed range is [0,
37243           8192].
37244
37245       display_mode, d
37246           Set display mode.  It accepts the following values:
37247
37248           stack
37249               Per color component graphs are placed below each other.
37250
37251           parade
37252               Per color component graphs are placed side by side.
37253
37254           overlay
37255               Presents information identical to that in the "parade", except
37256               that the graphs representing color components are superimposed
37257               directly over one another.
37258
37259           Default is "stack".
37260
37261       levels_mode, m
37262           Set mode. Can be either "linear", or "logarithmic".  Default is
37263           "linear".
37264
37265       components, c
37266           Set what color components to display.  Default is 7.
37267
37268       bgopacity, b
37269           Set background opacity. Default is 0.9.
37270
37271       envelope, e
37272           Show envelope. Default is disabled.
37273
37274       ecolor, ec
37275           Set envelope color. Default is "gold".
37276
37277       slide
37278           Set slide mode.
37279
37280           Available values for slide is:
37281
37282           frame
37283               Draw new frame when right border is reached.
37284
37285           replace
37286               Replace old columns with new ones.
37287
37288           scroll
37289               Scroll from right to left.
37290
37291           rscroll
37292               Scroll from left to right.
37293
37294           picture
37295               Draw single picture.
37296
37297           Default is "replace".
37298
37299   threshold
37300       Apply threshold effect to video stream.
37301
37302       This filter needs four video streams to perform thresholding.  First
37303       stream is stream we are filtering.  Second stream is holding threshold
37304       values, third stream is holding min values, and last, fourth stream is
37305       holding max values.
37306
37307       The filter accepts the following option:
37308
37309       planes
37310           Set which planes will be processed, unprocessed planes will be
37311           copied.  By default value 0xf, all planes will be processed.
37312
37313       For example if first stream pixel's component value is less then
37314       threshold value of pixel component from 2nd threshold stream, third
37315       stream value will picked, otherwise fourth stream pixel component value
37316       will be picked.
37317
37318       Using color source filter one can perform various types of
37319       thresholding:
37320
37321       Commands
37322
37323       This filter supports the all options as commands.
37324
37325       Examples
37326
37327       •   Binary threshold, using gray color as threshold:
37328
37329                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=black -f lavfi -i color=white -lavfi threshold output.avi
37330
37331       •   Inverted binary threshold, using gray color as threshold:
37332
37333                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -f lavfi -i color=black -lavfi threshold output.avi
37334
37335       •   Truncate binary threshold, using gray color as threshold:
37336
37337                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=gray -lavfi threshold output.avi
37338
37339       •   Threshold to zero, using gray color as threshold:
37340
37341                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -i 320x240.avi -lavfi threshold output.avi
37342
37343       •   Inverted threshold to zero, using gray color as threshold:
37344
37345                   ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=white -lavfi threshold output.avi
37346
37347   thumbnail
37348       Select the most representative frame in a given sequence of consecutive
37349       frames.
37350
37351       The filter accepts the following options:
37352
37353       n   Set the frames batch size to analyze; in a set of n frames, the
37354           filter will pick one of them, and then handle the next batch of n
37355           frames until the end. Default is 100.
37356
37357       Since the filter keeps track of the whole frames sequence, a bigger n
37358       value will result in a higher memory usage, so a high value is not
37359       recommended.
37360
37361       Examples
37362
37363       •   Extract one picture each 50 frames:
37364
37365                   thumbnail=50
37366
37367       •   Complete example of a thumbnail creation with ffmpeg:
37368
37369                   ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
37370
37371   tile
37372       Tile several successive frames together.
37373
37374       The untile filter can do the reverse.
37375
37376       The filter accepts the following options:
37377
37378       layout
37379           Set the grid size in the form "COLUMNSxROWS". Range is upto
37380           UINT_MAX cells.  Default is "6x5".
37381
37382       nb_frames
37383           Set the maximum number of frames to render in the given area. It
37384           must be less than or equal to wxh. The default value is 0, meaning
37385           all the area will be used.
37386
37387       margin
37388           Set the outer border margin in pixels. Range is 0 to 1024. Default
37389           is 0.
37390
37391       padding
37392           Set the inner border thickness (i.e. the number of pixels between
37393           frames). For more advanced padding options (such as having
37394           different values for the edges), refer to the pad video filter.
37395           Range is 0 to 1024. Default is 0.
37396
37397       color
37398           Specify the color of the unused area. For the syntax of this
37399           option, check the "Color" section in the ffmpeg-utils manual.  The
37400           default value of color is "black".
37401
37402       overlap
37403           Set the number of frames to overlap when tiling several successive
37404           frames together.  The value must be between 0 and nb_frames - 1.
37405           Default is 0.
37406
37407       init_padding
37408           Set the number of frames to initially be empty before displaying
37409           first output frame.  This controls how soon will one get first
37410           output frame.  The value must be between 0 and nb_frames - 1.
37411           Default is 0.
37412
37413       Examples
37414
37415       •   Produce 8x8 PNG tiles of all keyframes (-skip_frame nokey) in a
37416           movie:
37417
37418                   ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
37419
37420           The -vsync 0 is necessary to prevent ffmpeg from duplicating each
37421           output frame to accommodate the originally detected frame rate.
37422
37423       •   Display 5 pictures in an area of "3x2" frames, with 7 pixels
37424           between them, and 2 pixels of initial margin, using mixed flat and
37425           named options:
37426
37427                   tile=3x2:nb_frames=5:padding=7:margin=2
37428
37429   tinterlace
37430       Perform various types of temporal field interlacing.
37431
37432       Frames are counted starting from 1, so the first input frame is
37433       considered odd.
37434
37435       The filter accepts the following options:
37436
37437       mode
37438           Specify the mode of the interlacing. This option can also be
37439           specified as a value alone. See below for a list of values for this
37440           option.
37441
37442           Available values are:
37443
37444           merge, 0
37445               Move odd frames into the upper field, even into the lower
37446               field, generating a double height frame at half frame rate.
37447
37448                        ------> time
37449                       Input:
37450                       Frame 1         Frame 2         Frame 3         Frame 4
37451
37452                       11111           22222           33333           44444
37453                       11111           22222           33333           44444
37454                       11111           22222           33333           44444
37455                       11111           22222           33333           44444
37456
37457                       Output:
37458                       11111                           33333
37459                       22222                           44444
37460                       11111                           33333
37461                       22222                           44444
37462                       11111                           33333
37463                       22222                           44444
37464                       11111                           33333
37465                       22222                           44444
37466
37467           drop_even, 1
37468               Only output odd frames, even frames are dropped, generating a
37469               frame with unchanged height at half frame rate.
37470
37471                        ------> time
37472                       Input:
37473                       Frame 1         Frame 2         Frame 3         Frame 4
37474
37475                       11111           22222           33333           44444
37476                       11111           22222           33333           44444
37477                       11111           22222           33333           44444
37478                       11111           22222           33333           44444
37479
37480                       Output:
37481                       11111                           33333
37482                       11111                           33333
37483                       11111                           33333
37484                       11111                           33333
37485
37486           drop_odd, 2
37487               Only output even frames, odd frames are dropped, generating a
37488               frame with unchanged height at half frame rate.
37489
37490                        ------> time
37491                       Input:
37492                       Frame 1         Frame 2         Frame 3         Frame 4
37493
37494                       11111           22222           33333           44444
37495                       11111           22222           33333           44444
37496                       11111           22222           33333           44444
37497                       11111           22222           33333           44444
37498
37499                       Output:
37500                                       22222                           44444
37501                                       22222                           44444
37502                                       22222                           44444
37503                                       22222                           44444
37504
37505           pad, 3
37506               Expand each frame to full height, but pad alternate lines with
37507               black, generating a frame with double height at the same input
37508               frame rate.
37509
37510                        ------> time
37511                       Input:
37512                       Frame 1         Frame 2         Frame 3         Frame 4
37513
37514                       11111           22222           33333           44444
37515                       11111           22222           33333           44444
37516                       11111           22222           33333           44444
37517                       11111           22222           33333           44444
37518
37519                       Output:
37520                       11111           .....           33333           .....
37521                       .....           22222           .....           44444
37522                       11111           .....           33333           .....
37523                       .....           22222           .....           44444
37524                       11111           .....           33333           .....
37525                       .....           22222           .....           44444
37526                       11111           .....           33333           .....
37527                       .....           22222           .....           44444
37528
37529           interleave_top, 4
37530               Interleave the upper field from odd frames with the lower field
37531               from even frames, generating a frame with unchanged height at
37532               half frame rate.
37533
37534                        ------> time
37535                       Input:
37536                       Frame 1         Frame 2         Frame 3         Frame 4
37537
37538                       11111<-         22222           33333<-         44444
37539                       11111           22222<-         33333           44444<-
37540                       11111<-         22222           33333<-         44444
37541                       11111           22222<-         33333           44444<-
37542
37543                       Output:
37544                       11111                           33333
37545                       22222                           44444
37546                       11111                           33333
37547                       22222                           44444
37548
37549           interleave_bottom, 5
37550               Interleave the lower field from odd frames with the upper field
37551               from even frames, generating a frame with unchanged height at
37552               half frame rate.
37553
37554                        ------> time
37555                       Input:
37556                       Frame 1         Frame 2         Frame 3         Frame 4
37557
37558                       11111           22222<-         33333           44444<-
37559                       11111<-         22222           33333<-         44444
37560                       11111           22222<-         33333           44444<-
37561                       11111<-         22222           33333<-         44444
37562
37563                       Output:
37564                       22222                           44444
37565                       11111                           33333
37566                       22222                           44444
37567                       11111                           33333
37568
37569           interlacex2, 6
37570               Double frame rate with unchanged height. Frames are inserted
37571               each containing the second temporal field from the previous
37572               input frame and the first temporal field from the next input
37573               frame. This mode relies on the top_field_first flag. Useful for
37574               interlaced video displays with no field synchronisation.
37575
37576                        ------> time
37577                       Input:
37578                       Frame 1         Frame 2         Frame 3         Frame 4
37579
37580                       11111           22222           33333           44444
37581                        11111           22222           33333           44444
37582                       11111           22222           33333           44444
37583                        11111           22222           33333           44444
37584
37585                       Output:
37586                       11111   22222   22222   33333   33333   44444   44444
37587                        11111   11111   22222   22222   33333   33333   44444
37588                       11111   22222   22222   33333   33333   44444   44444
37589                        11111   11111   22222   22222   33333   33333   44444
37590
37591           mergex2, 7
37592               Move odd frames into the upper field, even into the lower
37593               field, generating a double height frame at same frame rate.
37594
37595                        ------> time
37596                       Input:
37597                       Frame 1         Frame 2         Frame 3         Frame 4
37598
37599                       11111           22222           33333           44444
37600                       11111           22222           33333           44444
37601                       11111           22222           33333           44444
37602                       11111           22222           33333           44444
37603
37604                       Output:
37605                       11111           33333           33333           55555
37606                       22222           22222           44444           44444
37607                       11111           33333           33333           55555
37608                       22222           22222           44444           44444
37609                       11111           33333           33333           55555
37610                       22222           22222           44444           44444
37611                       11111           33333           33333           55555
37612                       22222           22222           44444           44444
37613
37614           Numeric values are deprecated but are accepted for backward
37615           compatibility reasons.
37616
37617           Default mode is "merge".
37618
37619       flags
37620           Specify flags influencing the filter process.
37621
37622           Available value for flags is:
37623
37624           low_pass_filter, vlpf
37625               Enable linear vertical low-pass filtering in the filter.
37626               Vertical low-pass filtering is required when creating an
37627               interlaced destination from a progressive source which contains
37628               high-frequency vertical detail. Filtering will reduce interlace
37629               'twitter' and Moire patterning.
37630
37631           complex_filter, cvlpf
37632               Enable complex vertical low-pass filtering.  This will slightly
37633               less reduce interlace 'twitter' and Moire patterning but better
37634               retain detail and subjective sharpness impression.
37635
37636           bypass_il
37637               Bypass already interlaced frames, only adjust the frame rate.
37638
37639           Vertical low-pass filtering and bypassing already interlaced frames
37640           can only be enabled for mode interleave_top and interleave_bottom.
37641
37642   tmedian
37643       Pick median pixels from several successive input video frames.
37644
37645       The filter accepts the following options:
37646
37647       radius
37648           Set radius of median filter.  Default is 1. Allowed range is from 1
37649           to 127.
37650
37651       planes
37652           Set which planes to filter. Default value is 15, by which all
37653           planes are processed.
37654
37655       percentile
37656           Set median percentile. Default value is 0.5.  Default value of 0.5
37657           will pick always median values, while 0 will pick minimum values,
37658           and 1 maximum values.
37659
37660       Commands
37661
37662       This filter supports all above options as commands, excluding option
37663       "radius".
37664
37665   tmidequalizer
37666       Apply Temporal Midway Video Equalization effect.
37667
37668       Midway Video Equalization adjusts a sequence of video frames to have
37669       the same histograms, while maintaining their dynamics as much as
37670       possible. It's useful for e.g. matching exposures from a video frames
37671       sequence.
37672
37673       This filter accepts the following option:
37674
37675       radius
37676           Set filtering radius. Default is 5. Allowed range is from 1 to 127.
37677
37678       sigma
37679           Set filtering sigma. Default is 0.5. This controls strength of
37680           filtering.  Setting this option to 0 effectively does nothing.
37681
37682       planes
37683           Set which planes to process. Default is 15, which is all available
37684           planes.
37685
37686   tmix
37687       Mix successive video frames.
37688
37689       A description of the accepted options follows.
37690
37691       frames
37692           The number of successive frames to mix. If unspecified, it defaults
37693           to 3.
37694
37695       weights
37696           Specify weight of each input video frame.  Each weight is separated
37697           by space. If number of weights is smaller than number of frames
37698           last specified weight will be used for all remaining unset weights.
37699
37700       scale
37701           Specify scale, if it is set it will be multiplied with sum of each
37702           weight multiplied with pixel values to give final destination pixel
37703           value. By default scale is auto scaled to sum of weights.
37704
37705       planes
37706           Set which planes to filter. Default is all. Allowed range is from 0
37707           to 15.
37708
37709       Examples
37710
37711       •   Average 7 successive frames:
37712
37713                   tmix=frames=7:weights="1 1 1 1 1 1 1"
37714
37715       •   Apply simple temporal convolution:
37716
37717                   tmix=frames=3:weights="-1 3 -1"
37718
37719       •   Similar as above but only showing temporal differences:
37720
37721                   tmix=frames=3:weights="-1 2 -1":scale=1
37722
37723       Commands
37724
37725       This filter supports the following commands:
37726
37727       weights
37728       scale
37729       planes
37730           Syntax is same as option with same name.
37731
37732   tonemap
37733       Tone map colors from different dynamic ranges.
37734
37735       This filter expects data in single precision floating point, as it
37736       needs to operate on (and can output) out-of-range values. Another
37737       filter, such as zscale, is needed to convert the resulting frame to a
37738       usable format.
37739
37740       The tonemapping algorithms implemented only work on linear light, so
37741       input data should be linearized beforehand (and possibly correctly
37742       tagged).
37743
37744               ffmpeg -i INPUT -vf zscale=transfer=linear,tonemap=clip,zscale=transfer=bt709,format=yuv420p OUTPUT
37745
37746       Options
37747
37748       The filter accepts the following options.
37749
37750       tonemap
37751           Set the tone map algorithm to use.
37752
37753           Possible values are:
37754
37755           none
37756               Do not apply any tone map, only desaturate overbright pixels.
37757
37758           clip
37759               Hard-clip any out-of-range values. Use it for perfect color
37760               accuracy for in-range values, while distorting out-of-range
37761               values.
37762
37763           linear
37764               Stretch the entire reference gamut to a linear multiple of the
37765               display.
37766
37767           gamma
37768               Fit a logarithmic transfer between the tone curves.
37769
37770           reinhard
37771               Preserve overall image brightness with a simple curve, using
37772               nonlinear contrast, which results in flattening details and
37773               degrading color accuracy.
37774
37775           hable
37776               Preserve both dark and bright details better than reinhard, at
37777               the cost of slightly darkening everything. Use it when detail
37778               preservation is more important than color and brightness
37779               accuracy.
37780
37781           mobius
37782               Smoothly map out-of-range values, while retaining contrast and
37783               colors for in-range material as much as possible. Use it when
37784               color accuracy is more important than detail preservation.
37785
37786           Default is none.
37787
37788       param
37789           Tune the tone mapping algorithm.
37790
37791           This affects the following algorithms:
37792
37793           none
37794               Ignored.
37795
37796           linear
37797               Specifies the scale factor to use while stretching.  Default to
37798               1.0.
37799
37800           gamma
37801               Specifies the exponent of the function.  Default to 1.8.
37802
37803           clip
37804               Specify an extra linear coefficient to multiply into the signal
37805               before clipping.  Default to 1.0.
37806
37807           reinhard
37808               Specify the local contrast coefficient at the display peak.
37809               Default to 0.5, which means that in-gamut values will be about
37810               half as bright as when clipping.
37811
37812           hable
37813               Ignored.
37814
37815           mobius
37816               Specify the transition point from linear to mobius transform.
37817               Every value below this point is guaranteed to be mapped 1:1.
37818               The higher the value, the more accurate the result will be, at
37819               the cost of losing bright details.  Default to 0.3, which due
37820               to the steep initial slope still preserves in-range colors
37821               fairly accurately.
37822
37823       desat
37824           Apply desaturation for highlights that exceed this level of
37825           brightness. The higher the parameter, the more color information
37826           will be preserved. This setting helps prevent unnaturally blown-out
37827           colors for super-highlights, by (smoothly) turning into white
37828           instead. This makes images feel more natural, at the cost of
37829           reducing information about out-of-range colors.
37830
37831           The default of 2.0 is somewhat conservative and will mostly just
37832           apply to skies or directly sunlit surfaces. A setting of 0.0
37833           disables this option.
37834
37835           This option works only if the input frame has a supported color
37836           tag.
37837
37838       peak
37839           Override signal/nominal/reference peak with this value. Useful when
37840           the embedded peak information in display metadata is not reliable
37841           or when tone mapping from a lower range to a higher range.
37842
37843   tpad
37844       Temporarily pad video frames.
37845
37846       The filter accepts the following options:
37847
37848       start
37849           Specify number of delay frames before input video stream. Default
37850           is 0.
37851
37852       stop
37853           Specify number of padding frames after input video stream.  Set to
37854           -1 to pad indefinitely. Default is 0.
37855
37856       start_mode
37857           Set kind of frames added to beginning of stream.  Can be either add
37858           or clone.  With add frames of solid-color are added.  With clone
37859           frames are clones of first frame.  Default is add.
37860
37861       stop_mode
37862           Set kind of frames added to end of stream.  Can be either add or
37863           clone.  With add frames of solid-color are added.  With clone
37864           frames are clones of last frame.  Default is add.
37865
37866       start_duration, stop_duration
37867           Specify the duration of the start/stop delay. See the Time duration
37868           section in the ffmpeg-utils(1) manual for the accepted syntax.
37869           These options override start and stop. Default is 0.
37870
37871       color
37872           Specify the color of the padded area. For the syntax of this
37873           option, check the "Color" section in the ffmpeg-utils manual.
37874
37875           The default value of color is "black".
37876
37877   transpose
37878       Transpose rows with columns in the input video and optionally flip it.
37879
37880       It accepts the following parameters:
37881
37882       dir Specify the transposition direction.
37883
37884           Can assume the following values:
37885
37886           0, 4, cclock_flip
37887               Rotate by 90 degrees counterclockwise and vertically flip
37888               (default), that is:
37889
37890                       L.R     L.l
37891                       . . ->  . .
37892                       l.r     R.r
37893
37894           1, 5, clock
37895               Rotate by 90 degrees clockwise, that is:
37896
37897                       L.R     l.L
37898                       . . ->  . .
37899                       l.r     r.R
37900
37901           2, 6, cclock
37902               Rotate by 90 degrees counterclockwise, that is:
37903
37904                       L.R     R.r
37905                       . . ->  . .
37906                       l.r     L.l
37907
37908           3, 7, clock_flip
37909               Rotate by 90 degrees clockwise and vertically flip, that is:
37910
37911                       L.R     r.R
37912                       . . ->  . .
37913                       l.r     l.L
37914
37915           For values between 4-7, the transposition is only done if the input
37916           video geometry is portrait and not landscape. These values are
37917           deprecated, the "passthrough" option should be used instead.
37918
37919           Numerical values are deprecated, and should be dropped in favor of
37920           symbolic constants.
37921
37922       passthrough
37923           Do not apply the transposition if the input geometry matches the
37924           one specified by the specified value. It accepts the following
37925           values:
37926
37927           none
37928               Always apply transposition.
37929
37930           portrait
37931               Preserve portrait geometry (when height >= width).
37932
37933           landscape
37934               Preserve landscape geometry (when width >= height).
37935
37936           Default value is "none".
37937
37938       For example to rotate by 90 degrees clockwise and preserve portrait
37939       layout:
37940
37941               transpose=dir=1:passthrough=portrait
37942
37943       The command above can also be specified as:
37944
37945               transpose=1:portrait
37946
37947   transpose_npp
37948       Transpose rows with columns in the input video and optionally flip it.
37949       For more in depth examples see the transpose video filter, which shares
37950       mostly the same options.
37951
37952       It accepts the following parameters:
37953
37954       dir Specify the transposition direction.
37955
37956           Can assume the following values:
37957
37958           cclock_flip
37959               Rotate by 90 degrees counterclockwise and vertically flip.
37960               (default)
37961
37962           clock
37963               Rotate by 90 degrees clockwise.
37964
37965           cclock
37966               Rotate by 90 degrees counterclockwise.
37967
37968           clock_flip
37969               Rotate by 90 degrees clockwise and vertically flip.
37970
37971       passthrough
37972           Do not apply the transposition if the input geometry matches the
37973           one specified by the specified value. It accepts the following
37974           values:
37975
37976           none
37977               Always apply transposition. (default)
37978
37979           portrait
37980               Preserve portrait geometry (when height >= width).
37981
37982           landscape
37983               Preserve landscape geometry (when width >= height).
37984
37985   trim
37986       Trim the input so that the output contains one continuous subpart of
37987       the input.
37988
37989       It accepts the following parameters:
37990
37991       start
37992           Specify the time of the start of the kept section, i.e. the frame
37993           with the timestamp start will be the first frame in the output.
37994
37995       end Specify the time of the first frame that will be dropped, i.e. the
37996           frame immediately preceding the one with the timestamp end will be
37997           the last frame in the output.
37998
37999       start_pts
38000           This is the same as start, except this option sets the start
38001           timestamp in timebase units instead of seconds.
38002
38003       end_pts
38004           This is the same as end, except this option sets the end timestamp
38005           in timebase units instead of seconds.
38006
38007       duration
38008           The maximum duration of the output in seconds.
38009
38010       start_frame
38011           The number of the first frame that should be passed to the output.
38012
38013       end_frame
38014           The number of the first frame that should be dropped.
38015
38016       start, end, and duration are expressed as time duration specifications;
38017       see the Time duration section in the ffmpeg-utils(1) manual for the
38018       accepted syntax.
38019
38020       Note that the first two sets of the start/end options and the duration
38021       option look at the frame timestamp, while the _frame variants simply
38022       count the frames that pass through the filter. Also note that this
38023       filter does not modify the timestamps. If you wish for the output
38024       timestamps to start at zero, insert a setpts filter after the trim
38025       filter.
38026
38027       If multiple start or end options are set, this filter tries to be
38028       greedy and keep all the frames that match at least one of the specified
38029       constraints. To keep only the part that matches all the constraints at
38030       once, chain multiple trim filters.
38031
38032       The defaults are such that all the input is kept. So it is possible to
38033       set e.g.  just the end values to keep everything before the specified
38034       time.
38035
38036       Examples:
38037
38038       •   Drop everything except the second minute of input:
38039
38040                   ffmpeg -i INPUT -vf trim=60:120
38041
38042       •   Keep only the first second:
38043
38044                   ffmpeg -i INPUT -vf trim=duration=1
38045
38046   unpremultiply
38047       Apply alpha unpremultiply effect to input video stream using first
38048       plane of second stream as alpha.
38049
38050       Both streams must have same dimensions and same pixel format.
38051
38052       The filter accepts the following option:
38053
38054       planes
38055           Set which planes will be processed, unprocessed planes will be
38056           copied.  By default value 0xf, all planes will be processed.
38057
38058           If the format has 1 or 2 components, then luma is bit 0.  If the
38059           format has 3 or 4 components: for RGB formats bit 0 is green, bit 1
38060           is blue and bit 2 is red; for YUV formats bit 0 is luma, bit 1 is
38061           chroma-U and bit 2 is chroma-V.  If present, the alpha channel is
38062           always the last bit.
38063
38064       inplace
38065           Do not require 2nd input for processing, instead use alpha plane
38066           from input stream.
38067
38068   unsharp
38069       Sharpen or blur the input video.
38070
38071       It accepts the following parameters:
38072
38073       luma_msize_x, lx
38074           Set the luma matrix horizontal size. It must be an odd integer
38075           between 3 and 23. The default value is 5.
38076
38077       luma_msize_y, ly
38078           Set the luma matrix vertical size. It must be an odd integer
38079           between 3 and 23. The default value is 5.
38080
38081       luma_amount, la
38082           Set the luma effect strength. It must be a floating point number,
38083           reasonable values lay between -1.5 and 1.5.
38084
38085           Negative values will blur the input video, while positive values
38086           will sharpen it, a value of zero will disable the effect.
38087
38088           Default value is 1.0.
38089
38090       chroma_msize_x, cx
38091           Set the chroma matrix horizontal size. It must be an odd integer
38092           between 3 and 23. The default value is 5.
38093
38094       chroma_msize_y, cy
38095           Set the chroma matrix vertical size. It must be an odd integer
38096           between 3 and 23. The default value is 5.
38097
38098       chroma_amount, ca
38099           Set the chroma effect strength. It must be a floating point number,
38100           reasonable values lay between -1.5 and 1.5.
38101
38102           Negative values will blur the input video, while positive values
38103           will sharpen it, a value of zero will disable the effect.
38104
38105           Default value is 0.0.
38106
38107       alpha_msize_x, ax
38108           Set the alpha matrix horizontal size. It must be an odd integer
38109           between 3 and 23. The default value is 5.
38110
38111       alpha_msize_y, ay
38112           Set the alpha matrix vertical size. It must be an odd integer
38113           between 3 and 23. The default value is 5.
38114
38115       alpha_amount, aa
38116           Set the alpha effect strength. It must be a floating point number,
38117           reasonable values lay between -1.5 and 1.5.
38118
38119           Negative values will blur the input video, while positive values
38120           will sharpen it, a value of zero will disable the effect.
38121
38122           Default value is 0.0.
38123
38124       All parameters are optional and default to the equivalent of the string
38125       '5:5:1.0:5:5:0.0'.
38126
38127       Examples
38128
38129       •   Apply strong luma sharpen effect:
38130
38131                   unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
38132
38133       •   Apply a strong blur of both luma and chroma parameters:
38134
38135                   unsharp=7:7:-2:7:7:-2
38136
38137   untile
38138       Decompose a video made of tiled images into the individual images.
38139
38140       The frame rate of the output video is the frame rate of the input video
38141       multiplied by the number of tiles.
38142
38143       This filter does the reverse of tile.
38144
38145       The filter accepts the following options:
38146
38147       layout
38148           Set the grid size (i.e. the number of lines and columns). For the
38149           syntax of this option, check the "Video size" section in the
38150           ffmpeg-utils manual.
38151
38152       Examples
38153
38154       •   Produce a 1-second video from a still image file made of 25 frames
38155           stacked vertically, like an analogic film reel:
38156
38157                   ffmpeg -r 1 -i image.jpg -vf untile=1x25 movie.mkv
38158
38159   uspp
38160       Apply ultra slow/simple postprocessing filter that compresses and
38161       decompresses the image at several (or - in the case of quality level 8
38162       - all) shifts and average the results.
38163
38164       The way this differs from the behavior of spp is that uspp actually
38165       encodes & decodes each case with libavcodec Snow, whereas spp uses a
38166       simplified intra only 8x8 DCT similar to MJPEG.
38167
38168       This filter is only available in ffmpeg version 4.4 or earlier.
38169
38170       The filter accepts the following options:
38171
38172       quality
38173           Set quality. This option defines the number of levels for
38174           averaging. It accepts an integer in the range 0-8. If set to 0, the
38175           filter will have no effect. A value of 8 means the higher quality.
38176           For each increment of that value the speed drops by a factor of
38177           approximately 2.  Default value is 3.
38178
38179       qp  Force a constant quantization parameter. If not set, the filter
38180           will use the QP from the video stream (if available).
38181
38182   v360
38183       Convert 360 videos between various formats.
38184
38185       The filter accepts the following options:
38186
38187       input
38188       output
38189           Set format of the input/output video.
38190
38191           Available formats:
38192
38193           e
38194           equirect
38195               Equirectangular projection.
38196
38197           c3x2
38198           c6x1
38199           c1x6
38200               Cubemap with 3x2/6x1/1x6 layout.
38201
38202               Format specific options:
38203
38204               in_pad
38205               out_pad
38206                   Set padding proportion for the input/output cubemap. Values
38207                   in decimals.
38208
38209                   Example values:
38210
38211                   0   No padding.
38212
38213                   0.01
38214                       1% of face is padding. For example, with 1920x1280
38215                       resolution face size would be 640x640 and padding would
38216                       be 3 pixels from each side. (640 * 0.01 = 6 pixels)
38217
38218                   Default value is @samp{0}.  Maximum value is @samp{0.1}.
38219
38220               fin_pad
38221               fout_pad
38222                   Set fixed padding for the input/output cubemap. Values in
38223                   pixels.
38224
38225                   Default value is @samp{0}. If greater than zero it
38226                   overrides other padding options.
38227
38228               in_forder
38229               out_forder
38230                   Set order of faces for the input/output cubemap. Choose one
38231                   direction for each position.
38232
38233                   Designation of directions:
38234
38235                   r   right
38236
38237                   l   left
38238
38239                   u   up
38240
38241                   d   down
38242
38243                   f   forward
38244
38245                   b   back
38246
38247                   Default value is @samp{rludfb}.
38248
38249               in_frot
38250               out_frot
38251                   Set rotation of faces for the input/output cubemap. Choose
38252                   one angle for each position.
38253
38254                   Designation of angles:
38255
38256                   0   0 degrees clockwise
38257
38258                   1   90 degrees clockwise
38259
38260                   2   180 degrees clockwise
38261
38262                   3   270 degrees clockwise
38263
38264                   Default value is @samp{000000}.
38265
38266           eac Equi-Angular Cubemap.
38267
38268           flat
38269           gnomonic
38270           rectilinear
38271               Regular video.
38272
38273               Format specific options:
38274
38275               h_fov
38276               v_fov
38277               d_fov
38278                   Set output horizontal/vertical/diagonal field of view.
38279                   Values in degrees.
38280
38281                   If diagonal field of view is set it overrides horizontal
38282                   and vertical field of view.
38283
38284               ih_fov
38285               iv_fov
38286               id_fov
38287                   Set input horizontal/vertical/diagonal field of view.
38288                   Values in degrees.
38289
38290                   If diagonal field of view is set it overrides horizontal
38291                   and vertical field of view.
38292
38293           dfisheye
38294               Dual fisheye.
38295
38296               Format specific options:
38297
38298               h_fov
38299               v_fov
38300               d_fov
38301                   Set output horizontal/vertical/diagonal field of view.
38302                   Values in degrees.
38303
38304                   If diagonal field of view is set it overrides horizontal
38305                   and vertical field of view.
38306
38307               ih_fov
38308               iv_fov
38309               id_fov
38310                   Set input horizontal/vertical/diagonal field of view.
38311                   Values in degrees.
38312
38313                   If diagonal field of view is set it overrides horizontal
38314                   and vertical field of view.
38315
38316           barrel
38317           fb
38318           barrelsplit
38319               Facebook's 360 formats.
38320
38321           sg  Stereographic format.
38322
38323               Format specific options:
38324
38325               h_fov
38326               v_fov
38327               d_fov
38328                   Set output horizontal/vertical/diagonal field of view.
38329                   Values in degrees.
38330
38331                   If diagonal field of view is set it overrides horizontal
38332                   and vertical field of view.
38333
38334               ih_fov
38335               iv_fov
38336               id_fov
38337                   Set input horizontal/vertical/diagonal field of view.
38338                   Values in degrees.
38339
38340                   If diagonal field of view is set it overrides horizontal
38341                   and vertical field of view.
38342
38343           mercator
38344               Mercator format.
38345
38346           ball
38347               Ball format, gives significant distortion toward the back.
38348
38349           hammer
38350               Hammer-Aitoff map projection format.
38351
38352           sinusoidal
38353               Sinusoidal map projection format.
38354
38355           fisheye
38356               Fisheye projection.
38357
38358               Format specific options:
38359
38360               h_fov
38361               v_fov
38362               d_fov
38363                   Set output horizontal/vertical/diagonal field of view.
38364                   Values in degrees.
38365
38366                   If diagonal field of view is set it overrides horizontal
38367                   and vertical field of view.
38368
38369               ih_fov
38370               iv_fov
38371               id_fov
38372                   Set input horizontal/vertical/diagonal field of view.
38373                   Values in degrees.
38374
38375                   If diagonal field of view is set it overrides horizontal
38376                   and vertical field of view.
38377
38378           pannini
38379               Pannini projection.
38380
38381               Format specific options:
38382
38383               h_fov
38384                   Set output pannini parameter.
38385
38386               ih_fov
38387                   Set input pannini parameter.
38388
38389           cylindrical
38390               Cylindrical projection.
38391
38392               Format specific options:
38393
38394               h_fov
38395               v_fov
38396               d_fov
38397                   Set output horizontal/vertical/diagonal field of view.
38398                   Values in degrees.
38399
38400                   If diagonal field of view is set it overrides horizontal
38401                   and vertical field of view.
38402
38403               ih_fov
38404               iv_fov
38405               id_fov
38406                   Set input horizontal/vertical/diagonal field of view.
38407                   Values in degrees.
38408
38409                   If diagonal field of view is set it overrides horizontal
38410                   and vertical field of view.
38411
38412           perspective
38413               Perspective projection. (output only)
38414
38415               Format specific options:
38416
38417               v_fov
38418                   Set perspective parameter.
38419
38420           tetrahedron
38421               Tetrahedron projection.
38422
38423           tsp Truncated square pyramid projection.
38424
38425           he
38426           hequirect
38427               Half equirectangular projection.
38428
38429           equisolid
38430               Equisolid format.
38431
38432               Format specific options:
38433
38434               h_fov
38435               v_fov
38436               d_fov
38437                   Set output horizontal/vertical/diagonal field of view.
38438                   Values in degrees.
38439
38440                   If diagonal field of view is set it overrides horizontal
38441                   and vertical field of view.
38442
38443               ih_fov
38444               iv_fov
38445               id_fov
38446                   Set input horizontal/vertical/diagonal field of view.
38447                   Values in degrees.
38448
38449                   If diagonal field of view is set it overrides horizontal
38450                   and vertical field of view.
38451
38452           og  Orthographic format.
38453
38454               Format specific options:
38455
38456               h_fov
38457               v_fov
38458               d_fov
38459                   Set output horizontal/vertical/diagonal field of view.
38460                   Values in degrees.
38461
38462                   If diagonal field of view is set it overrides horizontal
38463                   and vertical field of view.
38464
38465               ih_fov
38466               iv_fov
38467               id_fov
38468                   Set input horizontal/vertical/diagonal field of view.
38469                   Values in degrees.
38470
38471                   If diagonal field of view is set it overrides horizontal
38472                   and vertical field of view.
38473
38474           octahedron
38475               Octahedron projection.
38476
38477           cylindricalea
38478               Cylindrical Equal Area projection.
38479
38480       interp
38481           Set interpolation method.Note: more complex interpolation methods
38482           require much more memory to run.
38483
38484           Available methods:
38485
38486           near
38487           nearest
38488               Nearest neighbour.
38489
38490           line
38491           linear
38492               Bilinear interpolation.
38493
38494           lagrange9
38495               Lagrange9 interpolation.
38496
38497           cube
38498           cubic
38499               Bicubic interpolation.
38500
38501           lanc
38502           lanczos
38503               Lanczos interpolation.
38504
38505           sp16
38506           spline16
38507               Spline16 interpolation.
38508
38509           gauss
38510           gaussian
38511               Gaussian interpolation.
38512
38513           mitchell
38514               Mitchell interpolation.
38515
38516           Default value is @samp{line}.
38517
38518       w
38519       h   Set the output video resolution.
38520
38521           Default resolution depends on formats.
38522
38523       in_stereo
38524       out_stereo
38525           Set the input/output stereo format.
38526
38527           2d  2D mono
38528
38529           sbs Side by side
38530
38531           tb  Top bottom
38532
38533           Default value is @samp{2d} for input and output format.
38534
38535       yaw
38536       pitch
38537       roll
38538           Set rotation for the output video. Values in degrees.
38539
38540       rorder
38541           Set rotation order for the output video. Choose one item for each
38542           position.
38543
38544           y, Y
38545               yaw
38546
38547           p, P
38548               pitch
38549
38550           r, R
38551               roll
38552
38553           Default value is @samp{ypr}.
38554
38555       h_flip
38556       v_flip
38557       d_flip
38558           Flip the output video horizontally(swaps
38559           left-right)/vertically(swaps up-down)/in-depth(swaps back-forward).
38560           Boolean values.
38561
38562       ih_flip
38563       iv_flip
38564           Set if input video is flipped horizontally/vertically. Boolean
38565           values.
38566
38567       in_trans
38568           Set if input video is transposed. Boolean value, by default
38569           disabled.
38570
38571       out_trans
38572           Set if output video needs to be transposed. Boolean value, by
38573           default disabled.
38574
38575       h_offset
38576       v_offset
38577           Set output horizontal/vertical off-axis offset. Default is set to
38578           0.  Allowed range is from -1 to 1.
38579
38580       alpha_mask
38581           Build mask in alpha plane for all unmapped pixels by marking them
38582           fully transparent. Boolean value, by default disabled.
38583
38584       reset_rot
38585           Reset rotation of output video. Boolean value, by default disabled.
38586
38587       Examples
38588
38589       •   Convert equirectangular video to cubemap with 3x2 layout and 1%
38590           padding using bicubic interpolation:
38591
38592                   ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_pad=0.01 output.mkv
38593
38594       •   Extract back view of Equi-Angular Cubemap:
38595
38596                   ffmpeg -i input.mkv -vf v360=eac:flat:yaw=180 output.mkv
38597
38598       •   Convert transposed and horizontally flipped Equi-Angular Cubemap in
38599           side-by-side stereo format to equirectangular top-bottom stereo
38600           format:
38601
38602                   v360=eac:equirect:in_stereo=sbs:in_trans=1:ih_flip=1:out_stereo=tb
38603
38604       Commands
38605
38606       This filter supports subset of above options as commands.
38607
38608   vaguedenoiser
38609       Apply a wavelet based denoiser.
38610
38611       It transforms each frame from the video input into the wavelet domain,
38612       using Cohen-Daubechies-Feauveau 9/7. Then it applies some filtering to
38613       the obtained coefficients. It does an inverse wavelet transform after.
38614       Due to wavelet properties, it should give a nice smoothed result, and
38615       reduced noise, without blurring picture features.
38616
38617       This filter accepts the following options:
38618
38619       threshold
38620           The filtering strength. The higher, the more filtered the video
38621           will be.  Hard thresholding can use a higher threshold than soft
38622           thresholding before the video looks overfiltered. Default value is
38623           2.
38624
38625       method
38626           The filtering method the filter will use.
38627
38628           It accepts the following values:
38629
38630           hard
38631               All values under the threshold will be zeroed.
38632
38633           soft
38634               All values under the threshold will be zeroed. All values above
38635               will be reduced by the threshold.
38636
38637           garrote
38638               Scales or nullifies coefficients - intermediary between (more)
38639               soft and (less) hard thresholding.
38640
38641           Default is garrote.
38642
38643       nsteps
38644           Number of times, the wavelet will decompose the picture. Picture
38645           can't be decomposed beyond a particular point (typically, 8 for a
38646           640x480 frame - as 2^9 = 512 > 480). Valid values are integers
38647           between 1 and 32. Default value is 6.
38648
38649       percent
38650           Partial of full denoising (limited coefficients shrinking), from 0
38651           to 100. Default value is 85.
38652
38653       planes
38654           A list of the planes to process. By default all planes are
38655           processed.
38656
38657       type
38658           The threshold type the filter will use.
38659
38660           It accepts the following values:
38661
38662           universal
38663               Threshold used is same for all decompositions.
38664
38665           bayes
38666               Threshold used depends also on each decomposition coefficients.
38667
38668           Default is universal.
38669
38670   varblur
38671       Apply variable blur filter by using 2nd video stream to set blur
38672       radius.  The 2nd stream must have the same dimensions.
38673
38674       This filter accepts the following options:
38675
38676       min_r
38677           Set min allowed radius. Allowed range is from 0 to 254. Default is
38678           0.
38679
38680       max_r
38681           Set max allowed radius. Allowed range is from 1 to 255. Default is
38682           8.
38683
38684       planes
38685           Set which planes to process. By default, all are used.
38686
38687       The "varblur" filter also supports the framesync options.
38688
38689       Commands
38690
38691       This filter supports all the above options as commands.
38692
38693   vectorscope
38694       Display 2 color component values in the two dimensional graph (which is
38695       called a vectorscope).
38696
38697       This filter accepts the following options:
38698
38699       mode, m
38700           Set vectorscope mode.
38701
38702           It accepts the following values:
38703
38704           gray
38705           tint
38706               Gray values are displayed on graph, higher brightness means
38707               more pixels have same component color value on location in
38708               graph. This is the default mode.
38709
38710           color
38711               Gray values are displayed on graph. Surrounding pixels values
38712               which are not present in video frame are drawn in gradient of 2
38713               color components which are set by option "x" and "y". The 3rd
38714               color component is static.
38715
38716           color2
38717               Actual color components values present in video frame are
38718               displayed on graph.
38719
38720           color3
38721               Similar as color2 but higher frequency of same values "x" and
38722               "y" on graph increases value of another color component, which
38723               is luminance by default values of "x" and "y".
38724
38725           color4
38726               Actual colors present in video frame are displayed on graph. If
38727               two different colors map to same position on graph then color
38728               with higher value of component not present in graph is picked.
38729
38730           color5
38731               Gray values are displayed on graph. Similar to "color" but with
38732               3rd color component picked from radial gradient.
38733
38734       x   Set which color component will be represented on X-axis. Default is
38735           1.
38736
38737       y   Set which color component will be represented on Y-axis. Default is
38738           2.
38739
38740       intensity, i
38741           Set intensity, used by modes: gray, color, color3 and color5 for
38742           increasing brightness of color component which represents frequency
38743           of (X, Y) location in graph.
38744
38745       envelope, e
38746           none
38747               No envelope, this is default.
38748
38749           instant
38750               Instant envelope, even darkest single pixel will be clearly
38751               highlighted.
38752
38753           peak
38754               Hold maximum and minimum values presented in graph over time.
38755               This way you can still spot out of range values without
38756               constantly looking at vectorscope.
38757
38758           peak+instant
38759               Peak and instant envelope combined together.
38760
38761       graticule, g
38762           Set what kind of graticule to draw.
38763
38764           none
38765           green
38766           color
38767           invert
38768       opacity, o
38769           Set graticule opacity.
38770
38771       flags, f
38772           Set graticule flags.
38773
38774           white
38775               Draw graticule for white point.
38776
38777           black
38778               Draw graticule for black point.
38779
38780           name
38781               Draw color points short names.
38782
38783       bgopacity, b
38784           Set background opacity.
38785
38786       lthreshold, l
38787           Set low threshold for color component not represented on X or Y
38788           axis.  Values lower than this value will be ignored. Default is 0.
38789           Note this value is multiplied with actual max possible value one
38790           pixel component can have. So for 8-bit input and low threshold
38791           value of 0.1 actual threshold is 0.1 * 255 = 25.
38792
38793       hthreshold, h
38794           Set high threshold for color component not represented on X or Y
38795           axis.  Values higher than this value will be ignored. Default is 1.
38796           Note this value is multiplied with actual max possible value one
38797           pixel component can have. So for 8-bit input and high threshold
38798           value of 0.9 actual threshold is 0.9 * 255 = 230.
38799
38800       colorspace, c
38801           Set what kind of colorspace to use when drawing graticule.
38802
38803           auto
38804           601
38805           709
38806
38807           Default is auto.
38808
38809       tint0, t0
38810       tint1, t1
38811           Set color tint for gray/tint vectorscope mode. By default both
38812           options are zero.  This means no tint, and output will remain gray.
38813
38814   vidstabdetect
38815       Analyze video stabilization/deshaking. Perform pass 1 of 2, see
38816       vidstabtransform for pass 2.
38817
38818       This filter generates a file with relative translation and rotation
38819       transform information about subsequent frames, which is then used by
38820       the vidstabtransform filter.
38821
38822       To enable compilation of this filter you need to configure FFmpeg with
38823       "--enable-libvidstab".
38824
38825       This filter accepts the following options:
38826
38827       result
38828           Set the path to the file used to write the transforms information.
38829           Default value is transforms.trf.
38830
38831       shakiness
38832           Set how shaky the video is and how quick the camera is. It accepts
38833           an integer in the range 1-10, a value of 1 means little shakiness,
38834           a value of 10 means strong shakiness. Default value is 5.
38835
38836       accuracy
38837           Set the accuracy of the detection process. It must be a value in
38838           the range 1-15. A value of 1 means low accuracy, a value of 15
38839           means high accuracy. Default value is 15.
38840
38841       stepsize
38842           Set stepsize of the search process. The region around minimum is
38843           scanned with 1 pixel resolution. Default value is 6.
38844
38845       mincontrast
38846           Set minimum contrast. Below this value a local measurement field is
38847           discarded. Must be a floating point value in the range 0-1. Default
38848           value is 0.3.
38849
38850       tripod
38851           Set reference frame number for tripod mode.
38852
38853           If enabled, the motion of the frames is compared to a reference
38854           frame in the filtered stream, identified by the specified number.
38855           The idea is to compensate all movements in a more-or-less static
38856           scene and keep the camera view absolutely still.
38857
38858           If set to 0, it is disabled. The frames are counted starting from
38859           1.
38860
38861       show
38862           Show fields and transforms in the resulting frames. It accepts an
38863           integer in the range 0-2. Default value is 0, which disables any
38864           visualization.
38865
38866       Examples
38867
38868       •   Use default values:
38869
38870                   vidstabdetect
38871
38872       •   Analyze strongly shaky movie and put the results in file
38873           mytransforms.trf:
38874
38875                   vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
38876
38877       •   Visualize the result of internal transformations in the resulting
38878           video:
38879
38880                   vidstabdetect=show=1
38881
38882       •   Analyze a video with medium shakiness using ffmpeg:
38883
38884                   ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
38885
38886   vidstabtransform
38887       Video stabilization/deshaking: pass 2 of 2, see vidstabdetect for pass
38888       1.
38889
38890       Read a file with transform information for each frame and
38891       apply/compensate them. Together with the vidstabdetect filter this can
38892       be used to deshake videos. See also
38893       <http://public.hronopik.de/vid.stab>. It is important to also use the
38894       unsharp filter, see below.
38895
38896       To enable compilation of this filter you need to configure FFmpeg with
38897       "--enable-libvidstab".
38898
38899       Options
38900
38901       input
38902           Set path to the file used to read the transforms. Default value is
38903           transforms.trf.
38904
38905       smoothing
38906           Set the number of frames (value*2 + 1) used for lowpass filtering
38907           the camera movements. Default value is 10.
38908
38909           For example a number of 10 means that 21 frames are used (10 in the
38910           past and 10 in the future) to smoothen the motion in the video. A
38911           larger value leads to a smoother video, but limits the acceleration
38912           of the camera (pan/tilt movements). 0 is a special case where a
38913           static camera is simulated.
38914
38915       optalgo
38916           Set the camera path optimization algorithm.
38917
38918           Accepted values are:
38919
38920           gauss
38921               gaussian kernel low-pass filter on camera motion (default)
38922
38923           avg averaging on transformations
38924
38925       maxshift
38926           Set maximal number of pixels to translate frames. Default value is
38927           -1, meaning no limit.
38928
38929       maxangle
38930           Set maximal angle in radians (degree*PI/180) to rotate frames.
38931           Default value is -1, meaning no limit.
38932
38933       crop
38934           Specify how to deal with borders that may be visible due to
38935           movement compensation.
38936
38937           Available values are:
38938
38939           keep
38940               keep image information from previous frame (default)
38941
38942           black
38943               fill the border black
38944
38945       invert
38946           Invert transforms if set to 1. Default value is 0.
38947
38948       relative
38949           Consider transforms as relative to previous frame if set to 1,
38950           absolute if set to 0. Default value is 0.
38951
38952       zoom
38953           Set percentage to zoom. A positive value will result in a zoom-in
38954           effect, a negative value in a zoom-out effect. Default value is 0
38955           (no zoom).
38956
38957       optzoom
38958           Set optimal zooming to avoid borders.
38959
38960           Accepted values are:
38961
38962           0   disabled
38963
38964           1   optimal static zoom value is determined (only very strong
38965               movements will lead to visible borders) (default)
38966
38967           2   optimal adaptive zoom value is determined (no borders will be
38968               visible), see zoomspeed
38969
38970           Note that the value given at zoom is added to the one calculated
38971           here.
38972
38973       zoomspeed
38974           Set percent to zoom maximally each frame (enabled when optzoom is
38975           set to 2). Range is from 0 to 5, default value is 0.25.
38976
38977       interpol
38978           Specify type of interpolation.
38979
38980           Available values are:
38981
38982           no  no interpolation
38983
38984           linear
38985               linear only horizontal
38986
38987           bilinear
38988               linear in both directions (default)
38989
38990           bicubic
38991               cubic in both directions (slow)
38992
38993       tripod
38994           Enable virtual tripod mode if set to 1, which is equivalent to
38995           "relative=0:smoothing=0". Default value is 0.
38996
38997           Use also "tripod" option of vidstabdetect.
38998
38999       debug
39000           Increase log verbosity if set to 1. Also the detected global
39001           motions are written to the temporary file global_motions.trf.
39002           Default value is 0.
39003
39004       Examples
39005
39006       •   Use ffmpeg for a typical stabilization with default values:
39007
39008                   ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
39009
39010           Note the use of the unsharp filter which is always recommended.
39011
39012       •   Zoom in a bit more and load transform data from a given file:
39013
39014                   vidstabtransform=zoom=5:input="mytransforms.trf"
39015
39016       •   Smoothen the video even more:
39017
39018                   vidstabtransform=smoothing=30
39019
39020   vflip
39021       Flip the input video vertically.
39022
39023       For example, to vertically flip a video with ffmpeg:
39024
39025               ffmpeg -i in.avi -vf "vflip" out.avi
39026
39027   vfrdet
39028       Detect variable frame rate video.
39029
39030       This filter tries to detect if the input is variable or constant frame
39031       rate.
39032
39033       At end it will output number of frames detected as having variable
39034       delta pts, and ones with constant delta pts.  If there was frames with
39035       variable delta, than it will also show min, max and average delta
39036       encountered.
39037
39038   vibrance
39039       Boost or alter saturation.
39040
39041       The filter accepts the following options:
39042
39043       intensity
39044           Set strength of boost if positive value or strength of alter if
39045           negative value.  Default is 0. Allowed range is from -2 to 2.
39046
39047       rbal
39048           Set the red balance. Default is 1. Allowed range is from -10 to 10.
39049
39050       gbal
39051           Set the green balance. Default is 1. Allowed range is from -10 to
39052           10.
39053
39054       bbal
39055           Set the blue balance. Default is 1. Allowed range is from -10 to
39056           10.
39057
39058       rlum
39059           Set the red luma coefficient.
39060
39061       glum
39062           Set the green luma coefficient.
39063
39064       blum
39065           Set the blue luma coefficient.
39066
39067       alternate
39068           If "intensity" is negative and this is set to 1, colors will
39069           change, otherwise colors will be less saturated, more towards gray.
39070
39071       Commands
39072
39073       This filter supports the all above options as commands.
39074
39075   vif
39076       Obtain the average VIF (Visual Information Fidelity) between two input
39077       videos.
39078
39079       This filter takes two input videos.
39080
39081       Both input videos must have the same resolution and pixel format for
39082       this filter to work correctly. Also it assumes that both inputs have
39083       the same number of frames, which are compared one by one.
39084
39085       The obtained average VIF score is printed through the logging system.
39086
39087       The filter stores the calculated VIF score of each frame.
39088
39089       In the below example the input file main.mpg being processed is
39090       compared with the reference file ref.mpg.
39091
39092               ffmpeg -i main.mpg -i ref.mpg -lavfi vif -f null -
39093
39094   vignette
39095       Make or reverse a natural vignetting effect.
39096
39097       The filter accepts the following options:
39098
39099       angle, a
39100           Set lens angle expression as a number of radians.
39101
39102           The value is clipped in the "[0,PI/2]" range.
39103
39104           Default value: "PI/5"
39105
39106       x0
39107       y0  Set center coordinates expressions. Respectively "w/2" and "h/2" by
39108           default.
39109
39110       mode
39111           Set forward/backward mode.
39112
39113           Available modes are:
39114
39115           forward
39116               The larger the distance from the central point, the darker the
39117               image becomes.
39118
39119           backward
39120               The larger the distance from the central point, the brighter
39121               the image becomes.  This can be used to reverse a vignette
39122               effect, though there is no automatic detection to extract the
39123               lens angle and other settings (yet). It can also be used to
39124               create a burning effect.
39125
39126           Default value is forward.
39127
39128       eval
39129           Set evaluation mode for the expressions (angle, x0, y0).
39130
39131           It accepts the following values:
39132
39133           init
39134               Evaluate expressions only once during the filter
39135               initialization.
39136
39137           frame
39138               Evaluate expressions for each incoming frame. This is way
39139               slower than the init mode since it requires all the scalers to
39140               be re-computed, but it allows advanced dynamic expressions.
39141
39142           Default value is init.
39143
39144       dither
39145           Set dithering to reduce the circular banding effects. Default is 1
39146           (enabled).
39147
39148       aspect
39149           Set vignette aspect. This setting allows one to adjust the shape of
39150           the vignette.  Setting this value to the SAR of the input will make
39151           a rectangular vignetting following the dimensions of the video.
39152
39153           Default is "1/1".
39154
39155       Expressions
39156
39157       The alpha, x0 and y0 expressions can contain the following parameters.
39158
39159       w
39160       h   input width and height
39161
39162       n   the number of input frame, starting from 0
39163
39164       pts the PTS (Presentation TimeStamp) time of the filtered video frame,
39165           expressed in TB units, NAN if undefined
39166
39167       r   frame rate of the input video, NAN if the input frame rate is
39168           unknown
39169
39170       t   the PTS (Presentation TimeStamp) of the filtered video frame,
39171           expressed in seconds, NAN if undefined
39172
39173       tb  time base of the input video
39174
39175       Examples
39176
39177       •   Apply simple strong vignetting effect:
39178
39179                   vignette=PI/4
39180
39181       •   Make a flickering vignetting:
39182
39183                   vignette='PI/4+random(1)*PI/50':eval=frame
39184
39185   vmafmotion
39186       Obtain the average VMAF motion score of a video.  It is one of the
39187       component metrics of VMAF.
39188
39189       The obtained average motion score is printed through the logging
39190       system.
39191
39192       The filter accepts the following options:
39193
39194       stats_file
39195           If specified, the filter will use the named file to save the motion
39196           score of each frame with respect to the previous frame.  When
39197           filename equals "-" the data is sent to standard output.
39198
39199       Example:
39200
39201               ffmpeg -i ref.mpg -vf vmafmotion -f null -
39202
39203   vstack
39204       Stack input videos vertically.
39205
39206       All streams must be of same pixel format and of same width.
39207
39208       Note that this filter is faster than using overlay and pad filter to
39209       create same output.
39210
39211       The filter accepts the following options:
39212
39213       inputs
39214           Set number of input streams. Default is 2.
39215
39216       shortest
39217           If set to 1, force the output to terminate when the shortest input
39218           terminates. Default value is 0.
39219
39220   w3fdif
39221       Deinterlace the input video ("w3fdif" stands for "Weston 3 Field
39222       Deinterlacing Filter").
39223
39224       Based on the process described by Martin Weston for BBC R&D, and
39225       implemented based on the de-interlace algorithm written by Jim
39226       Easterbrook for BBC R&D, the Weston 3 field deinterlacing filter uses
39227       filter coefficients calculated by BBC R&D.
39228
39229       This filter uses field-dominance information in frame to decide which
39230       of each pair of fields to place first in the output.  If it gets it
39231       wrong use setfield filter before "w3fdif" filter.
39232
39233       There are two sets of filter coefficients, so called "simple" and
39234       "complex". Which set of filter coefficients is used can be set by
39235       passing an optional parameter:
39236
39237       filter
39238           Set the interlacing filter coefficients. Accepts one of the
39239           following values:
39240
39241           simple
39242               Simple filter coefficient set.
39243
39244           complex
39245               More-complex filter coefficient set.
39246
39247           Default value is complex.
39248
39249       mode
39250           The interlacing mode to adopt. It accepts one of the following
39251           values:
39252
39253           frame
39254               Output one frame for each frame.
39255
39256           field
39257               Output one frame for each field.
39258
39259           The default value is "field".
39260
39261       parity
39262           The picture field parity assumed for the input interlaced video. It
39263           accepts one of the following values:
39264
39265           tff Assume the top field is first.
39266
39267           bff Assume the bottom field is first.
39268
39269           auto
39270               Enable automatic detection of field parity.
39271
39272           The default value is "auto".  If the interlacing is unknown or the
39273           decoder does not export this information, top field first will be
39274           assumed.
39275
39276       deint
39277           Specify which frames to deinterlace. Accepts one of the following
39278           values:
39279
39280           all Deinterlace all frames,
39281
39282           interlaced
39283               Only deinterlace frames marked as interlaced.
39284
39285           Default value is all.
39286
39287       Commands
39288
39289       This filter supports same commands as options.
39290
39291   waveform
39292       Video waveform monitor.
39293
39294       The waveform monitor plots color component intensity. By default
39295       luminance only. Each column of the waveform corresponds to a column of
39296       pixels in the source video.
39297
39298       It accepts the following options:
39299
39300       mode, m
39301           Can be either "row", or "column". Default is "column".  In row
39302           mode, the graph on the left side represents color component value 0
39303           and the right side represents value = 255. In column mode, the top
39304           side represents color component value = 0 and bottom side
39305           represents value = 255.
39306
39307       intensity, i
39308           Set intensity. Smaller values are useful to find out how many
39309           values of the same luminance are distributed across input
39310           rows/columns.  Default value is 0.04. Allowed range is [0, 1].
39311
39312       mirror, r
39313           Set mirroring mode. 0 means unmirrored, 1 means mirrored.  In
39314           mirrored mode, higher values will be represented on the left side
39315           for "row" mode and at the top for "column" mode. Default is 1
39316           (mirrored).
39317
39318       display, d
39319           Set display mode.  It accepts the following values:
39320
39321           overlay
39322               Presents information identical to that in the "parade", except
39323               that the graphs representing color components are superimposed
39324               directly over one another.
39325
39326               This display mode makes it easier to spot relative differences
39327               or similarities in overlapping areas of the color components
39328               that are supposed to be identical, such as neutral whites,
39329               grays, or blacks.
39330
39331           stack
39332               Display separate graph for the color components side by side in
39333               "row" mode or one below the other in "column" mode.
39334
39335           parade
39336               Display separate graph for the color components side by side in
39337               "column" mode or one below the other in "row" mode.
39338
39339               Using this display mode makes it easy to spot color casts in
39340               the highlights and shadows of an image, by comparing the
39341               contours of the top and the bottom graphs of each waveform.
39342               Since whites, grays, and blacks are characterized by exactly
39343               equal amounts of red, green, and blue, neutral areas of the
39344               picture should display three waveforms of roughly equal
39345               width/height. If not, the correction is easy to perform by
39346               making level adjustments the three waveforms.
39347
39348           Default is "stack".
39349
39350       components, c
39351           Set which color components to display. Default is 1, which means
39352           only luminance or red color component if input is in RGB
39353           colorspace. If is set for example to 7 it will display all 3 (if)
39354           available color components.
39355
39356       envelope, e
39357           none
39358               No envelope, this is default.
39359
39360           instant
39361               Instant envelope, minimum and maximum values presented in graph
39362               will be easily visible even with small "step" value.
39363
39364           peak
39365               Hold minimum and maximum values presented in graph across time.
39366               This way you can still spot out of range values without
39367               constantly looking at waveforms.
39368
39369           peak+instant
39370               Peak and instant envelope combined together.
39371
39372       filter, f
39373           lowpass
39374               No filtering, this is default.
39375
39376           flat
39377               Luma and chroma combined together.
39378
39379           aflat
39380               Similar as above, but shows difference between blue and red
39381               chroma.
39382
39383           xflat
39384               Similar as above, but use different colors.
39385
39386           yflat
39387               Similar as above, but again with different colors.
39388
39389           chroma
39390               Displays only chroma.
39391
39392           color
39393               Displays actual color value on waveform.
39394
39395           acolor
39396               Similar as above, but with luma showing frequency of chroma
39397               values.
39398
39399       graticule, g
39400           Set which graticule to display.
39401
39402           none
39403               Do not display graticule.
39404
39405           green
39406               Display green graticule showing legal broadcast ranges.
39407
39408           orange
39409               Display orange graticule showing legal broadcast ranges.
39410
39411           invert
39412               Display invert graticule showing legal broadcast ranges.
39413
39414       opacity, o
39415           Set graticule opacity.
39416
39417       flags, fl
39418           Set graticule flags.
39419
39420           numbers
39421               Draw numbers above lines. By default enabled.
39422
39423           dots
39424               Draw dots instead of lines.
39425
39426       scale, s
39427           Set scale used for displaying graticule.
39428
39429           digital
39430           millivolts
39431           ire
39432
39433           Default is digital.
39434
39435       bgopacity, b
39436           Set background opacity.
39437
39438       tint0, t0
39439       tint1, t1
39440           Set tint for output.  Only used with lowpass filter and when
39441           display is not overlay and input pixel formats are not RGB.
39442
39443       fitmode, fm
39444           Set sample aspect ratio of video output frames.  Can be used to
39445           configure waveform so it is not streched too much in one of
39446           directions.
39447
39448           none
39449               Set sample aspect ration to 1/1.
39450
39451           size
39452               Set sample aspect ratio to match input size of video
39453
39454           Default is none.
39455
39456   weave, doubleweave
39457       The "weave" takes a field-based video input and join each two
39458       sequential fields into single frame, producing a new double height clip
39459       with half the frame rate and half the frame count.
39460
39461       The "doubleweave" works same as "weave" but without halving frame rate
39462       and frame count.
39463
39464       It accepts the following option:
39465
39466       first_field
39467           Set first field. Available values are:
39468
39469           top, t
39470               Set the frame as top-field-first.
39471
39472           bottom, b
39473               Set the frame as bottom-field-first.
39474
39475       Examples
39476
39477       •   Interlace video using select and separatefields filter:
39478
39479                   separatefields,select=eq(mod(n,4),0)+eq(mod(n,4),3),weave
39480
39481   xbr
39482       Apply the xBR high-quality magnification filter which is designed for
39483       pixel art. It follows a set of edge-detection rules, see
39484       <https://forums.libretro.com/t/xbr-algorithm-tutorial/123>.
39485
39486       It accepts the following option:
39487
39488       n   Set the scaling dimension: 2 for "2xBR", 3 for "3xBR" and 4 for
39489           "4xBR".  Default is 3.
39490
39491   xcorrelate
39492       Apply normalized cross-correlation between first and second input video
39493       stream.
39494
39495       Second input video stream dimensions must be lower than first input
39496       video stream.
39497
39498       The filter accepts the following options:
39499
39500       planes
39501           Set which planes to process.
39502
39503       secondary
39504           Set which secondary video frames will be processed from second
39505           input video stream, can be first or all. Default is all.
39506
39507       The "xcorrelate" filter also supports the framesync options.
39508
39509   xfade
39510       Apply cross fade from one input video stream to another input video
39511       stream.  The cross fade is applied for specified duration.
39512
39513       Both inputs must be constant frame-rate and have the same resolution,
39514       pixel format, frame rate and timebase.
39515
39516       The filter accepts the following options:
39517
39518       transition
39519           Set one of available transition effects:
39520
39521           custom
39522           fade
39523           wipeleft
39524           wiperight
39525           wipeup
39526           wipedown
39527           slideleft
39528           slideright
39529           slideup
39530           slidedown
39531           circlecrop
39532           rectcrop
39533           distance
39534           fadeblack
39535           fadewhite
39536           radial
39537           smoothleft
39538           smoothright
39539           smoothup
39540           smoothdown
39541           circleopen
39542           circleclose
39543           vertopen
39544           vertclose
39545           horzopen
39546           horzclose
39547           dissolve
39548           pixelize
39549           diagtl
39550           diagtr
39551           diagbl
39552           diagbr
39553           hlslice
39554           hrslice
39555           vuslice
39556           vdslice
39557           hblur
39558           fadegrays
39559           wipetl
39560           wipetr
39561           wipebl
39562           wipebr
39563           squeezeh
39564           squeezev
39565           zoomin
39566           fadefast
39567           fadeslow
39568
39569           Default transition effect is fade.
39570
39571       duration
39572           Set cross fade duration in seconds.  Range is 0 to 60 seconds.
39573           Default duration is 1 second.
39574
39575       offset
39576           Set cross fade start relative to first input stream in seconds.
39577           Default offset is 0.
39578
39579       expr
39580           Set expression for custom transition effect.
39581
39582           The expressions can use the following variables and functions:
39583
39584           X
39585           Y   The coordinates of the current sample.
39586
39587           W
39588           H   The width and height of the image.
39589
39590           P   Progress of transition effect.
39591
39592           PLANE
39593               Currently processed plane.
39594
39595           A   Return value of first input at current location and plane.
39596
39597           B   Return value of second input at current location and plane.
39598
39599           a0(x, y)
39600           a1(x, y)
39601           a2(x, y)
39602           a3(x, y)
39603               Return the value of the pixel at location (x,y) of the
39604               first/second/third/fourth component of first input.
39605
39606           b0(x, y)
39607           b1(x, y)
39608           b2(x, y)
39609           b3(x, y)
39610               Return the value of the pixel at location (x,y) of the
39611               first/second/third/fourth component of second input.
39612
39613       Examples
39614
39615       •   Cross fade from one input video to another input video, with fade
39616           transition and duration of transition of 2 seconds starting at
39617           offset of 5 seconds:
39618
39619                   ffmpeg -i first.mp4 -i second.mp4 -filter_complex xfade=transition=fade:duration=2:offset=5 output.mp4
39620
39621   xmedian
39622       Pick median pixels from several input videos.
39623
39624       The filter accepts the following options:
39625
39626       inputs
39627           Set number of inputs.  Default is 3. Allowed range is from 3 to
39628           255.  If number of inputs is even number, than result will be mean
39629           value between two median values.
39630
39631       planes
39632           Set which planes to filter. Default value is 15, by which all
39633           planes are processed.
39634
39635       percentile
39636           Set median percentile. Default value is 0.5.  Default value of 0.5
39637           will pick always median values, while 0 will pick minimum values,
39638           and 1 maximum values.
39639
39640       Commands
39641
39642       This filter supports all above options as commands, excluding option
39643       "inputs".
39644
39645   xstack
39646       Stack video inputs into custom layout.
39647
39648       All streams must be of same pixel format.
39649
39650       The filter accepts the following options:
39651
39652       inputs
39653           Set number of input streams. Default is 2.
39654
39655       layout
39656           Specify layout of inputs.  This option requires the desired layout
39657           configuration to be explicitly set by the user.  This sets position
39658           of each video input in output. Each input is separated by '|'.  The
39659           first number represents the column, and the second number
39660           represents the row.  Numbers start at 0 and are separated by '_'.
39661           Optionally one can use wX and hX, where X is video input from which
39662           to take width or height.  Multiple values can be used when
39663           separated by '+'. In such case values are summed together.
39664
39665           Note that if inputs are of different sizes gaps may appear, as not
39666           all of the output video frame will be filled. Similarly, videos can
39667           overlap each other if their position doesn't leave enough space for
39668           the full frame of adjoining videos.
39669
39670           For 2 inputs, a default layout of "0_0|w0_0" (equivalent to
39671           "grid=2x1") is set. In all other cases, a layout or a grid must be
39672           set by the user. Either "grid" or "layout" can be specified at a
39673           time.  Specifying both will result in an error.
39674
39675       grid
39676           Specify a fixed size grid of inputs.  This option is used to create
39677           a fixed size grid of the input streams. Set the grid size in the
39678           form "COLUMNSxROWS". There must be "ROWS * COLUMNS" input streams
39679           and they will be arranged as a grid with "ROWS" rows and "COLUMNS"
39680           columns. When using this option, each input stream within a row
39681           must have the same height and all the rows must have the same
39682           width.
39683
39684           If "grid" is set, then "inputs" option is ignored and is implicitly
39685           set to "ROWS * COLUMNS".
39686
39687           For 2 inputs, a default grid of "2x1" (equivalent to
39688           "layout=0_0|w0_0") is set. In all other cases, a layout or a grid
39689           must be set by the user. Either "grid" or "layout" can be specified
39690           at a time.  Specifying both will result in an error.
39691
39692       shortest
39693           If set to 1, force the output to terminate when the shortest input
39694           terminates. Default value is 0.
39695
39696       fill
39697           If set to valid color, all unused pixels will be filled with that
39698           color.  By default fill is set to none, so it is disabled.
39699
39700       Examples
39701
39702       •   Display 4 inputs into 2x2 grid.
39703
39704           Layout:
39705
39706                   input1(0, 0)  | input3(w0, 0)
39707                   input2(0, h0) | input4(w0, h0)
39708
39709
39710
39711                   xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0
39712
39713           Note that if inputs are of different sizes, gaps or overlaps may
39714           occur.
39715
39716       •   Display 4 inputs into 1x4 grid.
39717
39718           Layout:
39719
39720                   input1(0, 0)
39721                   input2(0, h0)
39722                   input3(0, h0+h1)
39723                   input4(0, h0+h1+h2)
39724
39725
39726
39727                   xstack=inputs=4:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2
39728
39729           Note that if inputs are of different widths, unused space will
39730           appear.
39731
39732       •   Display 9 inputs into 3x3 grid.
39733
39734           Layout:
39735
39736                   input1(0, 0)       | input4(w0, 0)      | input7(w0+w3, 0)
39737                   input2(0, h0)      | input5(w0, h0)     | input8(w0+w3, h0)
39738                   input3(0, h0+h1)   | input6(w0, h0+h1)  | input9(w0+w3, h0+h1)
39739
39740
39741
39742                   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
39743
39744           Note that if inputs are of different sizes, gaps or overlaps may
39745           occur.
39746
39747       •   Display 16 inputs into 4x4 grid.
39748
39749           Layout:
39750
39751                   input1(0, 0)       | input5(w0, 0)       | input9 (w0+w4, 0)       | input13(w0+w4+w8, 0)
39752                   input2(0, h0)      | input6(w0, h0)      | input10(w0+w4, h0)      | input14(w0+w4+w8, h0)
39753                   input3(0, h0+h1)   | input7(w0, h0+h1)   | input11(w0+w4, h0+h1)   | input15(w0+w4+w8, h0+h1)
39754                   input4(0, h0+h1+h2)| input8(w0, h0+h1+h2)| input12(w0+w4, h0+h1+h2)| input16(w0+w4+w8, h0+h1+h2)
39755
39756
39757
39758                   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|
39759                   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
39760
39761           Note that if inputs are of different sizes, gaps or overlaps may
39762           occur.
39763
39764   yadif
39765       Deinterlace the input video ("yadif" means "yet another deinterlacing
39766       filter").
39767
39768       It accepts the following parameters:
39769
39770       mode
39771           The interlacing mode to adopt. It accepts one of the following
39772           values:
39773
39774           0, send_frame
39775               Output one frame for each frame.
39776
39777           1, send_field
39778               Output one frame for each field.
39779
39780           2, send_frame_nospatial
39781               Like "send_frame", but it skips the spatial interlacing check.
39782
39783           3, send_field_nospatial
39784               Like "send_field", but it skips the spatial interlacing check.
39785
39786           The default value is "send_frame".
39787
39788       parity
39789           The picture field parity assumed for the input interlaced video. It
39790           accepts one of the following values:
39791
39792           0, tff
39793               Assume the top field is first.
39794
39795           1, bff
39796               Assume the bottom field is first.
39797
39798           -1, auto
39799               Enable automatic detection of field parity.
39800
39801           The default value is "auto".  If the interlacing is unknown or the
39802           decoder does not export this information, top field first will be
39803           assumed.
39804
39805       deint
39806           Specify which frames to deinterlace. Accepts one of the following
39807           values:
39808
39809           0, all
39810               Deinterlace all frames.
39811
39812           1, interlaced
39813               Only deinterlace frames marked as interlaced.
39814
39815           The default value is "all".
39816
39817   yadif_cuda
39818       Deinterlace the input video using the yadif algorithm, but implemented
39819       in CUDA so that it can work as part of a GPU accelerated pipeline with
39820       nvdec and/or nvenc.
39821
39822       It accepts the following parameters:
39823
39824       mode
39825           The interlacing mode to adopt. It accepts one of the following
39826           values:
39827
39828           0, send_frame
39829               Output one frame for each frame.
39830
39831           1, send_field
39832               Output one frame for each field.
39833
39834           2, send_frame_nospatial
39835               Like "send_frame", but it skips the spatial interlacing check.
39836
39837           3, send_field_nospatial
39838               Like "send_field", but it skips the spatial interlacing check.
39839
39840           The default value is "send_frame".
39841
39842       parity
39843           The picture field parity assumed for the input interlaced video. It
39844           accepts one of the following values:
39845
39846           0, tff
39847               Assume the top field is first.
39848
39849           1, bff
39850               Assume the bottom field is first.
39851
39852           -1, auto
39853               Enable automatic detection of field parity.
39854
39855           The default value is "auto".  If the interlacing is unknown or the
39856           decoder does not export this information, top field first will be
39857           assumed.
39858
39859       deint
39860           Specify which frames to deinterlace. Accepts one of the following
39861           values:
39862
39863           0, all
39864               Deinterlace all frames.
39865
39866           1, interlaced
39867               Only deinterlace frames marked as interlaced.
39868
39869           The default value is "all".
39870
39871   yaepblur
39872       Apply blur filter while preserving edges ("yaepblur" means "yet another
39873       edge preserving blur filter").  The algorithm is described in "J. S.
39874       Lee, Digital image enhancement and noise filtering by use of local
39875       statistics, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-2, 1980."
39876
39877       It accepts the following parameters:
39878
39879       radius, r
39880           Set the window radius. Default value is 3.
39881
39882       planes, p
39883           Set which planes to filter. Default is only the first plane.
39884
39885       sigma, s
39886           Set blur strength. Default value is 128.
39887
39888       Commands
39889
39890       This filter supports same commands as options.
39891
39892   zoompan
39893       Apply Zoom & Pan effect.
39894
39895       This filter accepts the following options:
39896
39897       zoom, z
39898           Set the zoom expression. Range is 1-10. Default is 1.
39899
39900       x
39901       y   Set the x and y expression. Default is 0.
39902
39903       d   Set the duration expression in number of frames.  This sets for how
39904           many number of frames effect will last for single input image.
39905           Default is 90.
39906
39907       s   Set the output image size, default is 'hd720'.
39908
39909       fps Set the output frame rate, default is '25'.
39910
39911       Each expression can contain the following constants:
39912
39913       in_w, iw
39914           Input width.
39915
39916       in_h, ih
39917           Input height.
39918
39919       out_w, ow
39920           Output width.
39921
39922       out_h, oh
39923           Output height.
39924
39925       in  Input frame count.
39926
39927       on  Output frame count.
39928
39929       in_time, it
39930           The input timestamp expressed in seconds. It's NAN if the input
39931           timestamp is unknown.
39932
39933       out_time, time, ot
39934           The output timestamp expressed in seconds.
39935
39936       x
39937       y   Last calculated 'x' and 'y' position from 'x' and 'y' expression
39938           for current input frame.
39939
39940       px
39941       py  'x' and 'y' of last output frame of previous input frame or 0 when
39942           there was not yet such frame (first input frame).
39943
39944       zoom
39945           Last calculated zoom from 'z' expression for current input frame.
39946
39947       pzoom
39948           Last calculated zoom of last output frame of previous input frame.
39949
39950       duration
39951           Number of output frames for current input frame. Calculated from
39952           'd' expression for each input frame.
39953
39954       pduration
39955           number of output frames created for previous input frame
39956
39957       a   Rational number: input width / input height
39958
39959       sar sample aspect ratio
39960
39961       dar display aspect ratio
39962
39963       Examples
39964
39965       •   Zoom in up to 1.5x and pan at same time to some spot near center of
39966           picture:
39967
39968                   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
39969
39970       •   Zoom in up to 1.5x and pan always at center of picture:
39971
39972                   zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
39973
39974       •   Same as above but without pausing:
39975
39976                   zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
39977
39978       •   Zoom in 2x into center of picture only for the first second of the
39979           input video:
39980
39981                   zoompan=z='if(between(in_time,0,1),2,1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
39982
39983   zscale
39984       Scale (resize) the input video, using the z.lib library:
39985       <https://github.com/sekrit-twc/zimg>. To enable compilation of this
39986       filter, you need to configure FFmpeg with "--enable-libzimg".
39987
39988       The zscale filter forces the output display aspect ratio to be the same
39989       as the input, by changing the output sample aspect ratio.
39990
39991       If the input image format is different from the format requested by the
39992       next filter, the zscale filter will convert the input to the requested
39993       format.
39994
39995       Options
39996
39997       The filter accepts the following options.
39998
39999       width, w
40000       height, h
40001           Set the output video dimension expression. Default value is the
40002           input dimension.
40003
40004           If the width or w value is 0, the input width is used for the
40005           output. If the height or h value is 0, the input height is used for
40006           the output.
40007
40008           If one and only one of the values is -n with n >= 1, the zscale
40009           filter will use a value that maintains the aspect ratio of the
40010           input image, calculated from the other specified dimension. After
40011           that it will, however, make sure that the calculated dimension is
40012           divisible by n and adjust the value if necessary.
40013
40014           If both values are -n with n >= 1, the behavior will be identical
40015           to both values being set to 0 as previously detailed.
40016
40017           See below for the list of accepted constants for use in the
40018           dimension expression.
40019
40020       size, s
40021           Set the video size. For the syntax of this option, check the "Video
40022           size" section in the ffmpeg-utils manual.
40023
40024       dither, d
40025           Set the dither type.
40026
40027           Possible values are:
40028
40029           none
40030           ordered
40031           random
40032           error_diffusion
40033
40034           Default is none.
40035
40036       filter, f
40037           Set the resize filter type.
40038
40039           Possible values are:
40040
40041           point
40042           bilinear
40043           bicubic
40044           spline16
40045           spline36
40046           lanczos
40047
40048           Default is bilinear.
40049
40050       range, r
40051           Set the color range.
40052
40053           Possible values are:
40054
40055           input
40056           limited
40057           full
40058
40059           Default is same as input.
40060
40061       primaries, p
40062           Set the color primaries.
40063
40064           Possible values are:
40065
40066           input
40067           709
40068           unspecified
40069           170m
40070           240m
40071           2020
40072
40073           Default is same as input.
40074
40075       transfer, t
40076           Set the transfer characteristics.
40077
40078           Possible values are:
40079
40080           input
40081           709
40082           unspecified
40083           601
40084           linear
40085           2020_10
40086           2020_12
40087           smpte2084
40088           iec61966-2-1
40089           arib-std-b67
40090
40091           Default is same as input.
40092
40093       matrix, m
40094           Set the colorspace matrix.
40095
40096           Possible value are:
40097
40098           input
40099           709
40100           unspecified
40101           470bg
40102           170m
40103           2020_ncl
40104           2020_cl
40105
40106           Default is same as input.
40107
40108       rangein, rin
40109           Set the input color range.
40110
40111           Possible values are:
40112
40113           input
40114           limited
40115           full
40116
40117           Default is same as input.
40118
40119       primariesin, pin
40120           Set the input color primaries.
40121
40122           Possible values are:
40123
40124           input
40125           709
40126           unspecified
40127           170m
40128           240m
40129           2020
40130
40131           Default is same as input.
40132
40133       transferin, tin
40134           Set the input transfer characteristics.
40135
40136           Possible values are:
40137
40138           input
40139           709
40140           unspecified
40141           601
40142           linear
40143           2020_10
40144           2020_12
40145
40146           Default is same as input.
40147
40148       matrixin, min
40149           Set the input colorspace matrix.
40150
40151           Possible value are:
40152
40153           input
40154           709
40155           unspecified
40156           470bg
40157           170m
40158           2020_ncl
40159           2020_cl
40160       chromal, c
40161           Set the output chroma location.
40162
40163           Possible values are:
40164
40165           input
40166           left
40167           center
40168           topleft
40169           top
40170           bottomleft
40171           bottom
40172       chromalin, cin
40173           Set the input chroma location.
40174
40175           Possible values are:
40176
40177           input
40178           left
40179           center
40180           topleft
40181           top
40182           bottomleft
40183           bottom
40184       npl Set the nominal peak luminance.
40185
40186       param_a
40187           Parameter A for scaling filters. Parameter "b" for bicubic, and the
40188           number of filter taps for lanczos.
40189
40190       param_b
40191           Parameter B for scaling filters. Parameter "c" for bicubic.
40192
40193       The values of the w and h options are expressions containing the
40194       following constants:
40195
40196       in_w
40197       in_h
40198           The input width and height
40199
40200       iw
40201       ih  These are the same as in_w and in_h.
40202
40203       out_w
40204       out_h
40205           The output (scaled) width and height
40206
40207       ow
40208       oh  These are the same as out_w and out_h
40209
40210       a   The same as iw / ih
40211
40212       sar input sample aspect ratio
40213
40214       dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
40215
40216       hsub
40217       vsub
40218           horizontal and vertical input chroma subsample values. For example
40219           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
40220
40221       ohsub
40222       ovsub
40223           horizontal and vertical output chroma subsample values. For example
40224           for the pixel format "yuv422p" hsub is 2 and vsub is 1.
40225
40226       Commands
40227
40228       This filter supports the following commands:
40229
40230       width, w
40231       height, h
40232           Set the output video dimension expression.  The command accepts the
40233           same syntax of the corresponding option.
40234
40235           If the specified expression is not valid, it is kept at its current
40236           value.
40237

OPENCL VIDEO FILTERS

40239       Below is a description of the currently available OpenCL video filters.
40240
40241       To enable compilation of these filters you need to configure FFmpeg
40242       with "--enable-opencl".
40243
40244       Running OpenCL filters requires you to initialize a hardware device and
40245       to pass that device to all filters in any filter graph.
40246
40247       -init_hw_device opencl[=name][:device[,key=value...]]
40248           Initialise a new hardware device of type opencl called name, using
40249           the given device parameters.
40250
40251       -filter_hw_device name
40252           Pass the hardware device called name to all filters in any filter
40253           graph.
40254
40255       For more detailed information see
40256       <https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options>
40257
40258       •   Example of choosing the first device on the second platform and
40259           running avgblur_opencl filter with default parameters on it.
40260
40261                   -init_hw_device opencl=gpu:1.0 -filter_hw_device gpu -i INPUT -vf "hwupload, avgblur_opencl, hwdownload" OUTPUT
40262
40263       Since OpenCL filters are not able to access frame data in normal
40264       memory, all frame data needs to be uploaded(hwupload) to hardware
40265       surfaces connected to the appropriate device before being used and then
40266       downloaded(hwdownload) back to normal memory. Note that hwupload will
40267       upload to a surface with the same layout as the software frame, so it
40268       may be necessary to add a format filter immediately before to get the
40269       input into the right format and hwdownload does not support all formats
40270       on the output - it may be necessary to insert an additional format
40271       filter immediately following in the graph to get the output in a
40272       supported format.
40273
40274   avgblur_opencl
40275       Apply average blur filter.
40276
40277       The filter accepts the following options:
40278
40279       sizeX
40280           Set horizontal radius size.  Range is "[1, 1024]" and default value
40281           is 1.
40282
40283       planes
40284           Set which planes to filter. Default value is 0xf, by which all
40285           planes are processed.
40286
40287       sizeY
40288           Set vertical radius size. Range is "[1, 1024]" and default value is
40289           0. If zero, "sizeX" value will be used.
40290
40291       Example
40292
40293       •   Apply average blur filter with horizontal and vertical size of 3,
40294           setting each pixel of the output to the average value of the 7x7
40295           region centered on it in the input. For pixels on the edges of the
40296           image, the region does not extend beyond the image boundaries, and
40297           so out-of-range coordinates are not used in the calculations.
40298
40299                   -i INPUT -vf "hwupload, avgblur_opencl=3, hwdownload" OUTPUT
40300
40301   boxblur_opencl
40302       Apply a boxblur algorithm to the input video.
40303
40304       It accepts the following parameters:
40305
40306       luma_radius, lr
40307       luma_power, lp
40308       chroma_radius, cr
40309       chroma_power, cp
40310       alpha_radius, ar
40311       alpha_power, ap
40312
40313       A description of the accepted options follows.
40314
40315       luma_radius, lr
40316       chroma_radius, cr
40317       alpha_radius, ar
40318           Set an expression for the box radius in pixels used for blurring
40319           the corresponding input plane.
40320
40321           The radius value must be a non-negative number, and must not be
40322           greater than the value of the expression "min(w,h)/2" for the luma
40323           and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
40324
40325           Default value for luma_radius is "2". If not specified,
40326           chroma_radius and alpha_radius default to the corresponding value
40327           set for luma_radius.
40328
40329           The expressions can contain the following constants:
40330
40331           w
40332           h   The input width and height in pixels.
40333
40334           cw
40335           ch  The input chroma image width and height in pixels.
40336
40337           hsub
40338           vsub
40339               The horizontal and vertical chroma subsample values. For
40340               example, for the pixel format "yuv422p", hsub is 2 and vsub is
40341               1.
40342
40343       luma_power, lp
40344       chroma_power, cp
40345       alpha_power, ap
40346           Specify how many times the boxblur filter is applied to the
40347           corresponding plane.
40348
40349           Default value for luma_power is 2. If not specified, chroma_power
40350           and alpha_power default to the corresponding value set for
40351           luma_power.
40352
40353           A value of 0 will disable the effect.
40354
40355       Examples
40356
40357       Apply boxblur filter, setting each pixel of the output to the average
40358       value of box-radiuses luma_radius, chroma_radius, alpha_radius for each
40359       plane respectively. The filter will apply luma_power, chroma_power,
40360       alpha_power times onto the corresponding plane. For pixels on the edges
40361       of the image, the radius does not extend beyond the image boundaries,
40362       and so out-of-range coordinates are not used in the calculations.
40363
40364       •   Apply a boxblur filter with the luma, chroma, and alpha radius set
40365           to 2 and luma, chroma, and alpha power set to 3. The filter will
40366           run 3 times with box-radius set to 2 for every plane of the image.
40367
40368                   -i INPUT -vf "hwupload, boxblur_opencl=luma_radius=2:luma_power=3, hwdownload" OUTPUT
40369                   -i INPUT -vf "hwupload, boxblur_opencl=2:3, hwdownload" OUTPUT
40370
40371       •   Apply a boxblur filter with luma radius set to 2, luma_power to 1,
40372           chroma_radius to 4, chroma_power to 5, alpha_radius to 3 and
40373           alpha_power to 7.
40374
40375           For the luma plane, a 2x2 box radius will be run once.
40376
40377           For the chroma plane, a 4x4 box radius will be run 5 times.
40378
40379           For the alpha plane, a 3x3 box radius will be run 7 times.
40380
40381                   -i INPUT -vf "hwupload, boxblur_opencl=2:1:4:5:3:7, hwdownload" OUTPUT
40382
40383   colorkey_opencl
40384       RGB colorspace color keying.
40385
40386       The filter accepts the following options:
40387
40388       color
40389           The color which will be replaced with transparency.
40390
40391       similarity
40392           Similarity percentage with the key color.
40393
40394           0.01 matches only the exact key color, while 1.0 matches
40395           everything.
40396
40397       blend
40398           Blend percentage.
40399
40400           0.0 makes pixels either fully transparent, or not transparent at
40401           all.
40402
40403           Higher values result in semi-transparent pixels, with a higher
40404           transparency the more similar the pixels color is to the key color.
40405
40406       Examples
40407
40408       •   Make every semi-green pixel in the input transparent with some
40409           slight blending:
40410
40411                   -i INPUT -vf "hwupload, colorkey_opencl=green:0.3:0.1, hwdownload" OUTPUT
40412
40413   convolution_opencl
40414       Apply convolution of 3x3, 5x5, 7x7 matrix.
40415
40416       The filter accepts the following options:
40417
40418       0m
40419       1m
40420       2m
40421       3m  Set matrix for each plane.  Matrix is sequence of 9, 25 or 49
40422           signed numbers.  Default value for each plane is "0 0 0 0 1 0 0 0
40423           0".
40424
40425       0rdiv
40426       1rdiv
40427       2rdiv
40428       3rdiv
40429           Set multiplier for calculated value for each plane.  If unset or 0,
40430           it will be sum of all matrix elements.  The option value must be a
40431           float number greater or equal to 0.0. Default value is 1.0.
40432
40433       0bias
40434       1bias
40435       2bias
40436       3bias
40437           Set bias for each plane. This value is added to the result of the
40438           multiplication.  Useful for making the overall image brighter or
40439           darker.  The option value must be a float number greater or equal
40440           to 0.0. Default value is 0.0.
40441
40442       Examples
40443
40444       •   Apply sharpen:
40445
40446                   -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
40447
40448       •   Apply blur:
40449
40450                   -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
40451
40452       •   Apply edge enhance:
40453
40454                   -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
40455
40456       •   Apply edge detect:
40457
40458                   -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
40459
40460       •   Apply laplacian edge detector which includes diagonals:
40461
40462                   -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
40463
40464       •   Apply emboss:
40465
40466                   -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
40467
40468   erosion_opencl
40469       Apply erosion effect to the video.
40470
40471       This filter replaces the pixel by the local(3x3) minimum.
40472
40473       It accepts the following options:
40474
40475       threshold0
40476       threshold1
40477       threshold2
40478       threshold3
40479           Limit the maximum change for each plane. Range is "[0, 65535]" and
40480           default value is 65535.  If 0, plane will remain unchanged.
40481
40482       coordinates
40483           Flag which specifies the pixel to refer to.  Range is "[0, 255]"
40484           and default value is 255, i.e. all eight pixels are used.
40485
40486           Flags to local 3x3 coordinates region centered on "x":
40487
40488               1 2 3
40489
40490               4 x 5
40491
40492               6 7 8
40493
40494       Example
40495
40496       •   Apply erosion filter with threshold0 set to 30, threshold1 set 40,
40497           threshold2 set to 50 and coordinates set to 231, setting each pixel
40498           of the output to the local minimum between pixels: 1, 2, 3, 6, 7, 8
40499           of the 3x3 region centered on it in the input. If the difference
40500           between input pixel and local minimum is more then threshold of the
40501           corresponding plane, output pixel will be set to input pixel -
40502           threshold of corresponding plane.
40503
40504                   -i INPUT -vf "hwupload, erosion_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
40505
40506   deshake_opencl
40507       Feature-point based video stabilization filter.
40508
40509       The filter accepts the following options:
40510
40511       tripod
40512           Simulates a tripod by preventing any camera movement whatsoever
40513           from the original frame. Defaults to 0.
40514
40515       debug
40516           Whether or not additional debug info should be displayed, both in
40517           the processed output and in the console.
40518
40519           Note that in order to see console debug output you will also need
40520           to pass "-v verbose" to ffmpeg.
40521
40522           Viewing point matches in the output video is only supported for RGB
40523           input.
40524
40525           Defaults to 0.
40526
40527       adaptive_crop
40528           Whether or not to do a tiny bit of cropping at the borders to cut
40529           down on the amount of mirrored pixels.
40530
40531           Defaults to 1.
40532
40533       refine_features
40534           Whether or not feature points should be refined at a sub-pixel
40535           level.
40536
40537           This can be turned off for a slight performance gain at the cost of
40538           precision.
40539
40540           Defaults to 1.
40541
40542       smooth_strength
40543           The strength of the smoothing applied to the camera path from 0.0
40544           to 1.0.
40545
40546           1.0 is the maximum smoothing strength while values less than that
40547           result in less smoothing.
40548
40549           0.0 causes the filter to adaptively choose a smoothing strength on
40550           a per-frame basis.
40551
40552           Defaults to 0.0.
40553
40554       smooth_window_multiplier
40555           Controls the size of the smoothing window (the number of frames
40556           buffered to determine motion information from).
40557
40558           The size of the smoothing window is determined by multiplying the
40559           framerate of the video by this number.
40560
40561           Acceptable values range from 0.1 to 10.0.
40562
40563           Larger values increase the amount of motion data available for
40564           determining how to smooth the camera path, potentially improving
40565           smoothness, but also increase latency and memory usage.
40566
40567           Defaults to 2.0.
40568
40569       Examples
40570
40571       •   Stabilize a video with a fixed, medium smoothing strength:
40572
40573                   -i INPUT -vf "hwupload, deshake_opencl=smooth_strength=0.5, hwdownload" OUTPUT
40574
40575       •   Stabilize a video with debugging (both in console and in rendered
40576           video):
40577
40578                   -i INPUT -filter_complex "[0:v]format=rgba, hwupload, deshake_opencl=debug=1, hwdownload, format=rgba, format=yuv420p" -v verbose OUTPUT
40579
40580   dilation_opencl
40581       Apply dilation effect to the video.
40582
40583       This filter replaces the pixel by the local(3x3) maximum.
40584
40585       It accepts the following options:
40586
40587       threshold0
40588       threshold1
40589       threshold2
40590       threshold3
40591           Limit the maximum change for each plane. Range is "[0, 65535]" and
40592           default value is 65535.  If 0, plane will remain unchanged.
40593
40594       coordinates
40595           Flag which specifies the pixel to refer to.  Range is "[0, 255]"
40596           and default value is 255, i.e. all eight pixels are used.
40597
40598           Flags to local 3x3 coordinates region centered on "x":
40599
40600               1 2 3
40601
40602               4 x 5
40603
40604               6 7 8
40605
40606       Example
40607
40608       •   Apply dilation filter with threshold0 set to 30, threshold1 set 40,
40609           threshold2 set to 50 and coordinates set to 231, setting each pixel
40610           of the output to the local maximum between pixels: 1, 2, 3, 6, 7, 8
40611           of the 3x3 region centered on it in the input. If the difference
40612           between input pixel and local maximum is more then threshold of the
40613           corresponding plane, output pixel will be set to input pixel +
40614           threshold of corresponding plane.
40615
40616                   -i INPUT -vf "hwupload, dilation_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
40617
40618   nlmeans_opencl
40619       Non-local Means denoise filter through OpenCL, this filter accepts same
40620       options as nlmeans.
40621
40622   overlay_opencl
40623       Overlay one video on top of another.
40624
40625       It takes two inputs and has one output. The first input is the "main"
40626       video on which the second input is overlaid.  This filter requires same
40627       memory layout for all the inputs. So, format conversion may be needed.
40628
40629       The filter accepts the following options:
40630
40631       x   Set the x coordinate of the overlaid video on the main video.
40632           Default value is 0.
40633
40634       y   Set the y coordinate of the overlaid video on the main video.
40635           Default value is 0.
40636
40637       Examples
40638
40639       •   Overlay an image LOGO at the top-left corner of the INPUT video.
40640           Both inputs are yuv420p format.
40641
40642                   -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
40643
40644       •   The inputs have same memory layout for color channels , the overlay
40645           has additional alpha plane, like INPUT is yuv420p, and the LOGO is
40646           yuva420p.
40647
40648                   -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
40649
40650   pad_opencl
40651       Add paddings to the input image, and place the original input at the
40652       provided x, y coordinates.
40653
40654       It accepts the following options:
40655
40656       width, w
40657       height, h
40658           Specify an expression for the size of the output image with the
40659           paddings added. If the value for width or height is 0, the
40660           corresponding input size is used for the output.
40661
40662           The width expression can reference the value set by the height
40663           expression, and vice versa.
40664
40665           The default value of width and height is 0.
40666
40667       x
40668       y   Specify the offsets to place the input image at within the padded
40669           area, with respect to the top/left border of the output image.
40670
40671           The x expression can reference the value set by the y expression,
40672           and vice versa.
40673
40674           The default value of x and y is 0.
40675
40676           If x or y evaluate to a negative number, they'll be changed so the
40677           input image is centered on the padded area.
40678
40679       color
40680           Specify the color of the padded area. For the syntax of this
40681           option, check the "Color" section in the ffmpeg-utils manual.
40682
40683       aspect
40684           Pad to an aspect instead to a resolution.
40685
40686       The value for the width, height, x, and y options are expressions
40687       containing the following constants:
40688
40689       in_w
40690       in_h
40691           The input video width and height.
40692
40693       iw
40694       ih  These are the same as in_w and in_h.
40695
40696       out_w
40697       out_h
40698           The output width and height (the size of the padded area), as
40699           specified by the width and height expressions.
40700
40701       ow
40702       oh  These are the same as out_w and out_h.
40703
40704       x
40705       y   The x and y offsets as specified by the x and y expressions, or NAN
40706           if not yet specified.
40707
40708       a   same as iw / ih
40709
40710       sar input sample aspect ratio
40711
40712       dar input display aspect ratio, it is the same as (iw / ih) * sar
40713
40714   prewitt_opencl
40715       Apply the Prewitt operator
40716       (<https://en.wikipedia.org/wiki/Prewitt_operator>) to input video
40717       stream.
40718
40719       The filter accepts the following option:
40720
40721       planes
40722           Set which planes to filter. Default value is 0xf, by which all
40723           planes are processed.
40724
40725       scale
40726           Set value which will be multiplied with filtered result.  Range is
40727           "[0.0, 65535]" and default value is 1.0.
40728
40729       delta
40730           Set value which will be added to filtered result.  Range is
40731           "[-65535, 65535]" and default value is 0.0.
40732
40733       Example
40734
40735       •   Apply the Prewitt operator with scale set to 2 and delta set to 10.
40736
40737                   -i INPUT -vf "hwupload, prewitt_opencl=scale=2:delta=10, hwdownload" OUTPUT
40738
40739   program_opencl
40740       Filter video using an OpenCL program.
40741
40742       source
40743           OpenCL program source file.
40744
40745       kernel
40746           Kernel name in program.
40747
40748       inputs
40749           Number of inputs to the filter.  Defaults to 1.
40750
40751       size, s
40752           Size of output frames.  Defaults to the same as the first input.
40753
40754       The "program_opencl" filter also supports the framesync options.
40755
40756       The program source file must contain a kernel function with the given
40757       name, which will be run once for each plane of the output.  Each run on
40758       a plane gets enqueued as a separate 2D global NDRange with one work-
40759       item for each pixel to be generated.  The global ID offset for each
40760       work-item is therefore the coordinates of a pixel in the destination
40761       image.
40762
40763       The kernel function needs to take the following arguments:
40764
40765       •   Destination image, __write_only image2d_t.
40766
40767           This image will become the output; the kernel should write all of
40768           it.
40769
40770       •   Frame index, unsigned int.
40771
40772           This is a counter starting from zero and increasing by one for each
40773           frame.
40774
40775       •   Source images, __read_only image2d_t.
40776
40777           These are the most recent images on each input.  The kernel may
40778           read from them to generate the output, but they can't be written
40779           to.
40780
40781       Example programs:
40782
40783       •   Copy the input to the output (output must be the same size as the
40784           input).
40785
40786                   __kernel void copy(__write_only image2d_t destination,
40787                                      unsigned int index,
40788                                      __read_only  image2d_t source)
40789                   {
40790                       const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE;
40791
40792                       int2 location = (int2)(get_global_id(0), get_global_id(1));
40793
40794                       float4 value = read_imagef(source, sampler, location);
40795
40796                       write_imagef(destination, location, value);
40797                   }
40798
40799       •   Apply a simple transformation, rotating the input by an amount
40800           increasing with the index counter.  Pixel values are linearly
40801           interpolated by the sampler, and the output need not have the same
40802           dimensions as the input.
40803
40804                   __kernel void rotate_image(__write_only image2d_t dst,
40805                                              unsigned int index,
40806                                              __read_only  image2d_t src)
40807                   {
40808                       const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
40809                                                  CLK_FILTER_LINEAR);
40810
40811                       float angle = (float)index / 100.0f;
40812
40813                       float2 dst_dim = convert_float2(get_image_dim(dst));
40814                       float2 src_dim = convert_float2(get_image_dim(src));
40815
40816                       float2 dst_cen = dst_dim / 2.0f;
40817                       float2 src_cen = src_dim / 2.0f;
40818
40819                       int2   dst_loc = (int2)(get_global_id(0), get_global_id(1));
40820
40821                       float2 dst_pos = convert_float2(dst_loc) - dst_cen;
40822                       float2 src_pos = {
40823                           cos(angle) * dst_pos.x - sin(angle) * dst_pos.y,
40824                           sin(angle) * dst_pos.x + cos(angle) * dst_pos.y
40825                       };
40826                       src_pos = src_pos * src_dim / dst_dim;
40827
40828                       float2 src_loc = src_pos + src_cen;
40829
40830                       if (src_loc.x < 0.0f      || src_loc.y < 0.0f ||
40831                           src_loc.x > src_dim.x || src_loc.y > src_dim.y)
40832                           write_imagef(dst, dst_loc, 0.5f);
40833                       else
40834                           write_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc));
40835                   }
40836
40837       •   Blend two inputs together, with the amount of each input used
40838           varying with the index counter.
40839
40840                   __kernel void blend_images(__write_only image2d_t dst,
40841                                              unsigned int index,
40842                                              __read_only  image2d_t src1,
40843                                              __read_only  image2d_t src2)
40844                   {
40845                       const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
40846                                                  CLK_FILTER_LINEAR);
40847
40848                       float blend = (cos((float)index / 50.0f) + 1.0f) / 2.0f;
40849
40850                       int2  dst_loc = (int2)(get_global_id(0), get_global_id(1));
40851                       int2 src1_loc = dst_loc * get_image_dim(src1) / get_image_dim(dst);
40852                       int2 src2_loc = dst_loc * get_image_dim(src2) / get_image_dim(dst);
40853
40854                       float4 val1 = read_imagef(src1, sampler, src1_loc);
40855                       float4 val2 = read_imagef(src2, sampler, src2_loc);
40856
40857                       write_imagef(dst, dst_loc, val1 * blend + val2 * (1.0f - blend));
40858                   }
40859
40860   remap_opencl
40861       Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
40862
40863       Destination pixel at position (X, Y) will be picked from source (x, y)
40864       position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
40865       out of range, zero value for pixel will be used for destination pixel.
40866
40867       Xmap and Ymap input video streams must be of same dimensions. Output
40868       video stream will have Xmap/Ymap video stream dimensions.  Xmap and
40869       Ymap input video streams are 32bit float pixel format, single channel.
40870
40871       interp
40872           Specify interpolation used for remapping of pixels.  Allowed values
40873           are "near" and "linear".  Default value is "linear".
40874
40875       fill
40876           Specify the color of the unmapped pixels. For the syntax of this
40877           option, check the "Color" section in the ffmpeg-utils manual.
40878           Default color is "black".
40879
40880   roberts_opencl
40881       Apply the Roberts cross operator
40882       (<https://en.wikipedia.org/wiki/Roberts_cross>) to input video stream.
40883
40884       The filter accepts the following option:
40885
40886       planes
40887           Set which planes to filter. Default value is 0xf, by which all
40888           planes are processed.
40889
40890       scale
40891           Set value which will be multiplied with filtered result.  Range is
40892           "[0.0, 65535]" and default value is 1.0.
40893
40894       delta
40895           Set value which will be added to filtered result.  Range is
40896           "[-65535, 65535]" and default value is 0.0.
40897
40898       Example
40899
40900       •   Apply the Roberts cross operator with scale set to 2 and delta set
40901           to 10
40902
40903                   -i INPUT -vf "hwupload, roberts_opencl=scale=2:delta=10, hwdownload" OUTPUT
40904
40905   sobel_opencl
40906       Apply the Sobel operator
40907       (<https://en.wikipedia.org/wiki/Sobel_operator>) to input video stream.
40908
40909       The filter accepts the following option:
40910
40911       planes
40912           Set which planes to filter. Default value is 0xf, by which all
40913           planes are processed.
40914
40915       scale
40916           Set value which will be multiplied with filtered result.  Range is
40917           "[0.0, 65535]" and default value is 1.0.
40918
40919       delta
40920           Set value which will be added to filtered result.  Range is
40921           "[-65535, 65535]" and default value is 0.0.
40922
40923       Example
40924
40925       •   Apply sobel operator with scale set to 2 and delta set to 10
40926
40927                   -i INPUT -vf "hwupload, sobel_opencl=scale=2:delta=10, hwdownload" OUTPUT
40928
40929   tonemap_opencl
40930       Perform HDR(PQ/HLG) to SDR conversion with tone-mapping.
40931
40932       It accepts the following parameters:
40933
40934       tonemap
40935           Specify the tone-mapping operator to be used. Same as tonemap
40936           option in tonemap.
40937
40938       param
40939           Tune the tone mapping algorithm. same as param option in tonemap.
40940
40941       desat
40942           Apply desaturation for highlights that exceed this level of
40943           brightness. The higher the parameter, the more color information
40944           will be preserved. This setting helps prevent unnaturally blown-out
40945           colors for super-highlights, by (smoothly) turning into white
40946           instead. This makes images feel more natural, at the cost of
40947           reducing information about out-of-range colors.
40948
40949           The default value is 0.5, and the algorithm here is a little
40950           different from the cpu version tonemap currently. A setting of 0.0
40951           disables this option.
40952
40953       threshold
40954           The tonemapping algorithm parameters is fine-tuned per each scene.
40955           And a threshold is used to detect whether the scene has changed or
40956           not. If the distance between the current frame average brightness
40957           and the current running average exceeds a threshold value, we would
40958           re-calculate scene average and peak brightness.  The default value
40959           is 0.2.
40960
40961       format
40962           Specify the output pixel format.
40963
40964           Currently supported formats are:
40965
40966           p010
40967           nv12
40968       range, r
40969           Set the output color range.
40970
40971           Possible values are:
40972
40973           tv/mpeg
40974           pc/jpeg
40975
40976           Default is same as input.
40977
40978       primaries, p
40979           Set the output color primaries.
40980
40981           Possible values are:
40982
40983           bt709
40984           bt2020
40985
40986           Default is same as input.
40987
40988       transfer, t
40989           Set the output transfer characteristics.
40990
40991           Possible values are:
40992
40993           bt709
40994           bt2020
40995
40996           Default is bt709.
40997
40998       matrix, m
40999           Set the output colorspace matrix.
41000
41001           Possible value are:
41002
41003           bt709
41004           bt2020
41005
41006           Default is same as input.
41007
41008       Example
41009
41010       •   Convert HDR(PQ/HLG) video to bt2020-transfer-characteristic p010
41011           format using linear operator.
41012
41013                   -i INPUT -vf "format=p010,hwupload,tonemap_opencl=t=bt2020:tonemap=linear:format=p010,hwdownload,format=p010" OUTPUT
41014
41015   unsharp_opencl
41016       Sharpen or blur the input video.
41017
41018       It accepts the following parameters:
41019
41020       luma_msize_x, lx
41021           Set the luma matrix horizontal size.  Range is "[1, 23]" and
41022           default value is 5.
41023
41024       luma_msize_y, ly
41025           Set the luma matrix vertical size.  Range is "[1, 23]" and default
41026           value is 5.
41027
41028       luma_amount, la
41029           Set the luma effect strength.  Range is "[-10, 10]" and default
41030           value is 1.0.
41031
41032           Negative values will blur the input video, while positive values
41033           will sharpen it, a value of zero will disable the effect.
41034
41035       chroma_msize_x, cx
41036           Set the chroma matrix horizontal size.  Range is "[1, 23]" and
41037           default value is 5.
41038
41039       chroma_msize_y, cy
41040           Set the chroma matrix vertical size.  Range is "[1, 23]" and
41041           default value is 5.
41042
41043       chroma_amount, ca
41044           Set the chroma effect strength.  Range is "[-10, 10]" and default
41045           value is 0.0.
41046
41047           Negative values will blur the input video, while positive values
41048           will sharpen it, a value of zero will disable the effect.
41049
41050       All parameters are optional and default to the equivalent of the string
41051       '5:5:1.0:5:5:0.0'.
41052
41053       Examples
41054
41055       •   Apply strong luma sharpen effect:
41056
41057                   -i INPUT -vf "hwupload, unsharp_opencl=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5, hwdownload" OUTPUT
41058
41059       •   Apply a strong blur of both luma and chroma parameters:
41060
41061                   -i INPUT -vf "hwupload, unsharp_opencl=7:7:-2:7:7:-2, hwdownload" OUTPUT
41062
41063   xfade_opencl
41064       Cross fade two videos with custom transition effect by using OpenCL.
41065
41066       It accepts the following options:
41067
41068       transition
41069           Set one of possible transition effects.
41070
41071           custom
41072               Select custom transition effect, the actual transition
41073               description will be picked from source and kernel options.
41074
41075           fade
41076           wipeleft
41077           wiperight
41078           wipeup
41079           wipedown
41080           slideleft
41081           slideright
41082           slideup
41083           slidedown
41084               Default transition is fade.
41085
41086       source
41087           OpenCL program source file for custom transition.
41088
41089       kernel
41090           Set name of kernel to use for custom transition from program source
41091           file.
41092
41093       duration
41094           Set duration of video transition.
41095
41096       offset
41097           Set time of start of transition relative to first video.
41098
41099       The program source file must contain a kernel function with the given
41100       name, which will be run once for each plane of the output.  Each run on
41101       a plane gets enqueued as a separate 2D global NDRange with one work-
41102       item for each pixel to be generated.  The global ID offset for each
41103       work-item is therefore the coordinates of a pixel in the destination
41104       image.
41105
41106       The kernel function needs to take the following arguments:
41107
41108       •   Destination image, __write_only image2d_t.
41109
41110           This image will become the output; the kernel should write all of
41111           it.
41112
41113       •   First Source image, __read_only image2d_t.  Second Source image,
41114           __read_only image2d_t.
41115
41116           These are the most recent images on each input.  The kernel may
41117           read from them to generate the output, but they can't be written
41118           to.
41119
41120       •   Transition progress, float. This value is always between 0 and 1
41121           inclusive.
41122
41123       Example programs:
41124
41125       •   Apply dots curtain transition effect:
41126
41127                   __kernel void blend_images(__write_only image2d_t dst,
41128                                              __read_only  image2d_t src1,
41129                                              __read_only  image2d_t src2,
41130                                              float progress)
41131                   {
41132                       const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
41133                                                  CLK_FILTER_LINEAR);
41134                       int2  p = (int2)(get_global_id(0), get_global_id(1));
41135                       float2 rp = (float2)(get_global_id(0), get_global_id(1));
41136                       float2 dim = (float2)(get_image_dim(src1).x, get_image_dim(src1).y);
41137                       rp = rp / dim;
41138
41139                       float2 dots = (float2)(20.0, 20.0);
41140                       float2 center = (float2)(0,0);
41141                       float2 unused;
41142
41143                       float4 val1 = read_imagef(src1, sampler, p);
41144                       float4 val2 = read_imagef(src2, sampler, p);
41145                       bool next = distance(fract(rp * dots, &unused), (float2)(0.5, 0.5)) < (progress / distance(rp, center));
41146
41147                       write_imagef(dst, p, next ? val1 : val2);
41148                   }
41149

VAAPI VIDEO FILTERS

41151       VAAPI Video filters are usually used with VAAPI decoder and VAAPI
41152       encoder. Below is a description of VAAPI video filters.
41153
41154       To enable compilation of these filters you need to configure FFmpeg
41155       with "--enable-vaapi".
41156
41157       To use vaapi filters, you need to setup the vaapi device correctly. For
41158       more information, please read
41159       <https://trac.ffmpeg.org/wiki/Hardware/VAAPI>
41160
41161   overlay_vaapi
41162       Overlay one video on the top of another.
41163
41164       It takes two inputs and has one output. The first input is the "main"
41165       video on which the second input is overlaid.  This filter requires same
41166       memory layout for all the inputs. So, format conversion may be needed.
41167
41168       The filter accepts the following options:
41169
41170       x   Set the x coordinate of the overlaid video on the main video.
41171           Default value is 0.
41172
41173       y   Set the y coordinate of the overlaid video on the main video.
41174           Default value is 0.
41175
41176       w   Set the width of the overlaid video on the main video.  Default
41177           value is the width of input overlay video.
41178
41179       h   Set the height of the overlaid video on the main video.  Default
41180           value is the height of input overlay video.
41181
41182       alpha
41183           Set blocking detection thresholds. Allowed range is 0.0 to 1.0, it
41184           requires an input video with alpha channel.  Default value is 0.0.
41185
41186       Examples
41187
41188       •   Overlay an image LOGO at the top-left corner of the INPUT video.
41189           Both inputs for this filter are yuv420p format.
41190
41191                   -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_vaapi" OUTPUT
41192
41193       •   Overlay an image LOGO at the offset (200, 100) from the top-left
41194           corner of the INPUT video.  The inputs have same memory layout for
41195           color channels, the overlay has additional alpha plane, like INPUT
41196           is yuv420p, and the LOGO is yuva420p.
41197
41198                   -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
41199
41200   tonemap_vaapi
41201       Perform HDR(High Dynamic Range) to SDR(Standard Dynamic Range)
41202       conversion with tone-mapping.  It maps the dynamic range of HDR10
41203       content to the SDR content.  It currently only accepts HDR10 as input.
41204
41205       It accepts the following parameters:
41206
41207       format
41208           Specify the output pixel format.
41209
41210           Currently supported formats are:
41211
41212           p010
41213           nv12
41214
41215           Default is nv12.
41216
41217       primaries, p
41218           Set the output color primaries.
41219
41220           Default is same as input.
41221
41222       transfer, t
41223           Set the output transfer characteristics.
41224
41225           Default is bt709.
41226
41227       matrix, m
41228           Set the output colorspace matrix.
41229
41230           Default is same as input.
41231
41232       Example
41233
41234       •   Convert HDR(HDR10) video to bt2020-transfer-characteristic p010
41235           format
41236
41237                   tonemap_vaapi=format=p010:t=bt2020-10
41238

VIDEO SOURCES

41240       Below is a description of the currently available video sources.
41241
41242   buffer
41243       Buffer video frames, and make them available to the filter chain.
41244
41245       This source is mainly intended for a programmatic use, in particular
41246       through the interface defined in libavfilter/buffersrc.h.
41247
41248       It accepts the following parameters:
41249
41250       video_size
41251           Specify the size (width and height) of the buffered video frames.
41252           For the syntax of this option, check the "Video size" section in
41253           the ffmpeg-utils manual.
41254
41255       width
41256           The input video width.
41257
41258       height
41259           The input video height.
41260
41261       pix_fmt
41262           A string representing the pixel format of the buffered video
41263           frames.  It may be a number corresponding to a pixel format, or a
41264           pixel format name.
41265
41266       time_base
41267           Specify the timebase assumed by the timestamps of the buffered
41268           frames.
41269
41270       frame_rate
41271           Specify the frame rate expected for the video stream.
41272
41273       pixel_aspect, sar
41274           The sample (pixel) aspect ratio of the input video.
41275
41276       sws_param
41277           This option is deprecated and ignored. Prepend "sws_flags=flags;"
41278           to the filtergraph description to specify swscale flags for
41279           automatically inserted scalers. See Filtergraph syntax.
41280
41281       hw_frames_ctx
41282           When using a hardware pixel format, this should be a reference to
41283           an AVHWFramesContext describing input frames.
41284
41285       For example:
41286
41287               buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
41288
41289       will instruct the source to accept video frames with size 320x240 and
41290       with format "yuv410p", assuming 1/24 as the timestamps timebase and
41291       square pixels (1:1 sample aspect ratio).  Since the pixel format with
41292       name "yuv410p" corresponds to the number 6 (check the enum
41293       AVPixelFormat definition in libavutil/pixfmt.h), this example
41294       corresponds to:
41295
41296               buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
41297
41298       Alternatively, the options can be specified as a flat string, but this
41299       syntax is deprecated:
41300
41301       width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den
41302
41303   cellauto
41304       Create a pattern generated by an elementary cellular automaton.
41305
41306       The initial state of the cellular automaton can be defined through the
41307       filename and pattern options. If such options are not specified an
41308       initial state is created randomly.
41309
41310       At each new frame a new row in the video is filled with the result of
41311       the cellular automaton next generation. The behavior when the whole
41312       frame is filled is defined by the scroll option.
41313
41314       This source accepts the following options:
41315
41316       filename, f
41317           Read the initial cellular automaton state, i.e. the starting row,
41318           from the specified file.  In the file, each non-whitespace
41319           character is considered an alive cell, a newline will terminate the
41320           row, and further characters in the file will be ignored.
41321
41322       pattern, p
41323           Read the initial cellular automaton state, i.e. the starting row,
41324           from the specified string.
41325
41326           Each non-whitespace character in the string is considered an alive
41327           cell, a newline will terminate the row, and further characters in
41328           the string will be ignored.
41329
41330       rate, r
41331           Set the video rate, that is the number of frames generated per
41332           second.  Default is 25.
41333
41334       random_fill_ratio, ratio
41335           Set the random fill ratio for the initial cellular automaton row.
41336           It is a floating point number value ranging from 0 to 1, defaults
41337           to 1/PHI.
41338
41339           This option is ignored when a file or a pattern is specified.
41340
41341       random_seed, seed
41342           Set the seed for filling randomly the initial row, must be an
41343           integer included between 0 and UINT32_MAX. If not specified, or if
41344           explicitly set to -1, the filter will try to use a good random seed
41345           on a best effort basis.
41346
41347       rule
41348           Set the cellular automaton rule, it is a number ranging from 0 to
41349           255.  Default value is 110.
41350
41351       size, s
41352           Set the size of the output video. For the syntax of this option,
41353           check the "Video size" section in the ffmpeg-utils manual.
41354
41355           If filename or pattern is specified, the size is set by default to
41356           the width of the specified initial state row, and the height is set
41357           to width * PHI.
41358
41359           If size is set, it must contain the width of the specified pattern
41360           string, and the specified pattern will be centered in the larger
41361           row.
41362
41363           If a filename or a pattern string is not specified, the size value
41364           defaults to "320x518" (used for a randomly generated initial
41365           state).
41366
41367       scroll
41368           If set to 1, scroll the output upward when all the rows in the
41369           output have been already filled. If set to 0, the new generated row
41370           will be written over the top row just after the bottom row is
41371           filled.  Defaults to 1.
41372
41373       start_full, full
41374           If set to 1, completely fill the output with generated rows before
41375           outputting the first frame.  This is the default behavior, for
41376           disabling set the value to 0.
41377
41378       stitch
41379           If set to 1, stitch the left and right row edges together.  This is
41380           the default behavior, for disabling set the value to 0.
41381
41382       Examples
41383
41384       •   Read the initial state from pattern, and specify an output of size
41385           200x400.
41386
41387                   cellauto=f=pattern:s=200x400
41388
41389       •   Generate a random initial row with a width of 200 cells, with a
41390           fill ratio of 2/3:
41391
41392                   cellauto=ratio=2/3:s=200x200
41393
41394       •   Create a pattern generated by rule 18 starting by a single alive
41395           cell centered on an initial row with width 100:
41396
41397                   cellauto=p=@s=100x400:full=0:rule=18
41398
41399       •   Specify a more elaborated initial pattern:
41400
41401                   cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
41402
41403   coreimagesrc
41404       Video source generated on GPU using Apple's CoreImage API on OSX.
41405
41406       This video source is a specialized version of the coreimage video
41407       filter.  Use a core image generator at the beginning of the applied
41408       filterchain to generate the content.
41409
41410       The coreimagesrc video source accepts the following options:
41411
41412       list_generators
41413           List all available generators along with all their respective
41414           options as well as possible minimum and maximum values along with
41415           the default values.
41416
41417                   list_generators=true
41418
41419       size, s
41420           Specify the size of the sourced video. For the syntax of this
41421           option, check the "Video size" section in the ffmpeg-utils manual.
41422           The default value is "320x240".
41423
41424       rate, r
41425           Specify the frame rate of the sourced video, as the number of
41426           frames generated per second. It has to be a string in the format
41427           frame_rate_num/frame_rate_den, an integer number, a floating point
41428           number or a valid video frame rate abbreviation. The default value
41429           is "25".
41430
41431       sar Set the sample aspect ratio of the sourced video.
41432
41433       duration, d
41434           Set the duration of the sourced video. See the Time duration
41435           section in the ffmpeg-utils(1) manual for the accepted syntax.
41436
41437           If not specified, or the expressed duration is negative, the video
41438           is supposed to be generated forever.
41439
41440       Additionally, all options of the coreimage video filter are accepted.
41441       A complete filterchain can be used for further processing of the
41442       generated input without CPU-HOST transfer. See coreimage documentation
41443       and examples for details.
41444
41445       Examples
41446
41447       •   Use CIQRCodeGenerator to create a QR code for the FFmpeg homepage,
41448           given as complete and escaped command-line for Apple's standard
41449           bash shell:
41450
41451                   ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
41452
41453           This example is equivalent to the QRCode example of coreimage
41454           without the need for a nullsrc video source.
41455
41456   gradients
41457       Generate several gradients.
41458
41459       size, s
41460           Set frame size. For the syntax of this option, check the "Video
41461           size" section in the ffmpeg-utils manual. Default value is
41462           "640x480".
41463
41464       rate, r
41465           Set frame rate, expressed as number of frames per second. Default
41466           value is "25".
41467
41468       c0, c1, c2, c3, c4, c5, c6, c7
41469           Set 8 colors. Default values for colors is to pick random one.
41470
41471       x0, y0, y0, y1
41472           Set gradient line source and destination points. If negative or out
41473           of range, random ones are picked.
41474
41475       nb_colors, n
41476           Set number of colors to use at once. Allowed range is from 2 to 8.
41477           Default value is 2.
41478
41479       seed
41480           Set seed for picking gradient line points.
41481
41482       duration, d
41483           Set the duration of the sourced video. See the Time duration
41484           section in the ffmpeg-utils(1) manual for the accepted syntax.
41485
41486           If not specified, or the expressed duration is negative, the video
41487           is supposed to be generated forever.
41488
41489       speed
41490           Set speed of gradients rotation.
41491
41492       type, t
41493           Set type of gradients, can be "linear" or "radial" or "circular" or
41494           "spiral".
41495
41496   mandelbrot
41497       Generate a Mandelbrot set fractal, and progressively zoom towards the
41498       point specified with start_x and start_y.
41499
41500       This source accepts the following options:
41501
41502       end_pts
41503           Set the terminal pts value. Default value is 400.
41504
41505       end_scale
41506           Set the terminal scale value.  Must be a floating point value.
41507           Default value is 0.3.
41508
41509       inner
41510           Set the inner coloring mode, that is the algorithm used to draw the
41511           Mandelbrot fractal internal region.
41512
41513           It shall assume one of the following values:
41514
41515           black
41516               Set black mode.
41517
41518           convergence
41519               Show time until convergence.
41520
41521           mincol
41522               Set color based on point closest to the origin of the
41523               iterations.
41524
41525           period
41526               Set period mode.
41527
41528           Default value is mincol.
41529
41530       bailout
41531           Set the bailout value. Default value is 10.0.
41532
41533       maxiter
41534           Set the maximum of iterations performed by the rendering algorithm.
41535           Default value is 7189.
41536
41537       outer
41538           Set outer coloring mode.  It shall assume one of following values:
41539
41540           iteration_count
41541               Set iteration count mode.
41542
41543           normalized_iteration_count
41544               set normalized iteration count mode.
41545
41546           Default value is normalized_iteration_count.
41547
41548       rate, r
41549           Set frame rate, expressed as number of frames per second. Default
41550           value is "25".
41551
41552       size, s
41553           Set frame size. For the syntax of this option, check the "Video
41554           size" section in the ffmpeg-utils manual. Default value is
41555           "640x480".
41556
41557       start_scale
41558           Set the initial scale value. Default value is 3.0.
41559
41560       start_x
41561           Set the initial x position. Must be a floating point value between
41562           -100 and 100. Default value is
41563           -0.743643887037158704752191506114774.
41564
41565       start_y
41566           Set the initial y position. Must be a floating point value between
41567           -100 and 100. Default value is
41568           -0.131825904205311970493132056385139.
41569
41570   mptestsrc
41571       Generate various test patterns, as generated by the MPlayer test
41572       filter.
41573
41574       The size of the generated video is fixed, and is 256x256.  This source
41575       is useful in particular for testing encoding features.
41576
41577       This source accepts the following options:
41578
41579       rate, r
41580           Specify the frame rate of the sourced video, as the number of
41581           frames generated per second. It has to be a string in the format
41582           frame_rate_num/frame_rate_den, an integer number, a floating point
41583           number or a valid video frame rate abbreviation. The default value
41584           is "25".
41585
41586       duration, d
41587           Set the duration of the sourced video. See the Time duration
41588           section in the ffmpeg-utils(1) manual for the accepted syntax.
41589
41590           If not specified, or the expressed duration is negative, the video
41591           is supposed to be generated forever.
41592
41593       test, t
41594           Set the number or the name of the test to perform. Supported tests
41595           are:
41596
41597           dc_luma
41598           dc_chroma
41599           freq_luma
41600           freq_chroma
41601           amp_luma
41602           amp_chroma
41603           cbp
41604           mv
41605           ring1
41606           ring2
41607           all
41608           max_frames, m
41609               Set the maximum number of frames generated for each test,
41610               default value is 30.
41611
41612           Default value is "all", which will cycle through the list of all
41613           tests.
41614
41615       Some examples:
41616
41617               mptestsrc=t=dc_luma
41618
41619       will generate a "dc_luma" test pattern.
41620
41621   frei0r_src
41622       Provide a frei0r source.
41623
41624       To enable compilation of this filter you need to install the frei0r
41625       header and configure FFmpeg with "--enable-frei0r".
41626
41627       This source accepts the following parameters:
41628
41629       size
41630           The size of the video to generate. For the syntax of this option,
41631           check the "Video size" section in the ffmpeg-utils manual.
41632
41633       framerate
41634           The framerate of the generated video. It may be a string of the
41635           form num/den or a frame rate abbreviation.
41636
41637       filter_name
41638           The name to the frei0r source to load. For more information
41639           regarding frei0r and how to set the parameters, read the frei0r
41640           section in the video filters documentation.
41641
41642       filter_params
41643           A '|'-separated list of parameters to pass to the frei0r source.
41644
41645       For example, to generate a frei0r partik0l source with size 200x200 and
41646       frame rate 10 which is overlaid on the overlay filter main input:
41647
41648               frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
41649
41650   life
41651       Generate a life pattern.
41652
41653       This source is based on a generalization of John Conway's life game.
41654
41655       The sourced input represents a life grid, each pixel represents a cell
41656       which can be in one of two possible states, alive or dead. Every cell
41657       interacts with its eight neighbours, which are the cells that are
41658       horizontally, vertically, or diagonally adjacent.
41659
41660       At each interaction the grid evolves according to the adopted rule,
41661       which specifies the number of neighbor alive cells which will make a
41662       cell stay alive or born. The rule option allows one to specify the rule
41663       to adopt.
41664
41665       This source accepts the following options:
41666
41667       filename, f
41668           Set the file from which to read the initial grid state. In the
41669           file, each non-whitespace character is considered an alive cell,
41670           and newline is used to delimit the end of each row.
41671
41672           If this option is not specified, the initial grid is generated
41673           randomly.
41674
41675       rate, r
41676           Set the video rate, that is the number of frames generated per
41677           second.  Default is 25.
41678
41679       random_fill_ratio, ratio
41680           Set the random fill ratio for the initial random grid. It is a
41681           floating point number value ranging from 0 to 1, defaults to 1/PHI.
41682           It is ignored when a file is specified.
41683
41684       random_seed, seed
41685           Set the seed for filling the initial random grid, must be an
41686           integer included between 0 and UINT32_MAX. If not specified, or if
41687           explicitly set to -1, the filter will try to use a good random seed
41688           on a best effort basis.
41689
41690       rule
41691           Set the life rule.
41692
41693           A rule can be specified with a code of the kind "SNS/BNB", where NS
41694           and NB are sequences of numbers in the range 0-8, NS specifies the
41695           number of alive neighbor cells which make a live cell stay alive,
41696           and NB the number of alive neighbor cells which make a dead cell to
41697           become alive (i.e. to "born").  "s" and "b" can be used in place of
41698           "S" and "B", respectively.
41699
41700           Alternatively a rule can be specified by an 18-bits integer. The 9
41701           high order bits are used to encode the next cell state if it is
41702           alive for each number of neighbor alive cells, the low order bits
41703           specify the rule for "borning" new cells. Higher order bits encode
41704           for an higher number of neighbor cells.  For example the number
41705           6153 = "(12<<9)+9" specifies a stay alive rule of 12 and a born
41706           rule of 9, which corresponds to "S23/B03".
41707
41708           Default value is "S23/B3", which is the original Conway's game of
41709           life rule, and will keep a cell alive if it has 2 or 3 neighbor
41710           alive cells, and will born a new cell if there are three alive
41711           cells around a dead cell.
41712
41713       size, s
41714           Set the size of the output video. For the syntax of this option,
41715           check the "Video size" section in the ffmpeg-utils manual.
41716
41717           If filename is specified, the size is set by default to the same
41718           size of the input file. If size is set, it must contain the size
41719           specified in the input file, and the initial grid defined in that
41720           file is centered in the larger resulting area.
41721
41722           If a filename is not specified, the size value defaults to
41723           "320x240" (used for a randomly generated initial grid).
41724
41725       stitch
41726           If set to 1, stitch the left and right grid edges together, and the
41727           top and bottom edges also. Defaults to 1.
41728
41729       mold
41730           Set cell mold speed. If set, a dead cell will go from death_color
41731           to mold_color with a step of mold. mold can have a value from 0 to
41732           255.
41733
41734       life_color
41735           Set the color of living (or new born) cells.
41736
41737       death_color
41738           Set the color of dead cells. If mold is set, this is the first
41739           color used to represent a dead cell.
41740
41741       mold_color
41742           Set mold color, for definitely dead and moldy cells.
41743
41744           For the syntax of these 3 color options, check the "Color" section
41745           in the ffmpeg-utils manual.
41746
41747       Examples
41748
41749       •   Read a grid from pattern, and center it on a grid of size 300x300
41750           pixels:
41751
41752                   life=f=pattern:s=300x300
41753
41754       •   Generate a random grid of size 200x200, with a fill ratio of 2/3:
41755
41756                   life=ratio=2/3:s=200x200
41757
41758       •   Specify a custom rule for evolving a randomly generated grid:
41759
41760                   life=rule=S14/B34
41761
41762       •   Full example with slow death effect (mold) using ffplay:
41763
41764                   ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
41765
41766   allrgb, allyuv, color, colorchart, colorspectrum, haldclutsrc, nullsrc,
41767       pal75bars, pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc,
41768       testsrc2, yuvtestsrc
41769       The "allrgb" source returns frames of size 4096x4096 of all rgb colors.
41770
41771       The "allyuv" source returns frames of size 4096x4096 of all yuv colors.
41772
41773       The "color" source provides an uniformly colored input.
41774
41775       The "colorchart" source provides a colors checker chart.
41776
41777       The "colorspectrum" source provides a color spectrum input.
41778
41779       The "haldclutsrc" source provides an identity Hald CLUT. See also
41780       haldclut filter.
41781
41782       The "nullsrc" source returns unprocessed video frames. It is mainly
41783       useful to be employed in analysis / debugging tools, or as the source
41784       for filters which ignore the input data.
41785
41786       The "pal75bars" source generates a color bars pattern, based on EBU PAL
41787       recommendations with 75% color levels.
41788
41789       The "pal100bars" source generates a color bars pattern, based on EBU
41790       PAL recommendations with 100% color levels.
41791
41792       The "rgbtestsrc" source generates an RGB test pattern useful for
41793       detecting RGB vs BGR issues. You should see a red, green and blue
41794       stripe from top to bottom.
41795
41796       The "smptebars" source generates a color bars pattern, based on the
41797       SMPTE Engineering Guideline EG 1-1990.
41798
41799       The "smptehdbars" source generates a color bars pattern, based on the
41800       SMPTE RP 219-2002.
41801
41802       The "testsrc" source generates a test video pattern, showing a color
41803       pattern, a scrolling gradient and a timestamp. This is mainly intended
41804       for testing purposes.
41805
41806       The "testsrc2" source is similar to testsrc, but supports more pixel
41807       formats instead of just "rgb24". This allows using it as an input for
41808       other tests without requiring a format conversion.
41809
41810       The "yuvtestsrc" source generates an YUV test pattern. You should see a
41811       y, cb and cr stripe from top to bottom.
41812
41813       The sources accept the following parameters:
41814
41815       level
41816           Specify the level of the Hald CLUT, only available in the
41817           "haldclutsrc" source. A level of "N" generates a picture of "N*N*N"
41818           by "N*N*N" pixels to be used as identity matrix for 3D lookup
41819           tables. Each component is coded on a "1/(N*N)" scale.
41820
41821       color, c
41822           Specify the color of the source, only available in the "color"
41823           source. For the syntax of this option, check the "Color" section in
41824           the ffmpeg-utils manual.
41825
41826       size, s
41827           Specify the size of the sourced video. For the syntax of this
41828           option, check the "Video size" section in the ffmpeg-utils manual.
41829           The default value is "320x240".
41830
41831           This option is not available with the "allrgb", "allyuv", and
41832           "haldclutsrc" filters.
41833
41834       rate, r
41835           Specify the frame rate of the sourced video, as the number of
41836           frames generated per second. It has to be a string in the format
41837           frame_rate_num/frame_rate_den, an integer number, a floating point
41838           number or a valid video frame rate abbreviation. The default value
41839           is "25".
41840
41841       duration, d
41842           Set the duration of the sourced video. See the Time duration
41843           section in the ffmpeg-utils(1) manual for the accepted syntax.
41844
41845           If not specified, or the expressed duration is negative, the video
41846           is supposed to be generated forever.
41847
41848           Since the frame rate is used as time base, all frames including the
41849           last one will have their full duration. If the specified duration
41850           is not a multiple of the frame duration, it will be rounded up.
41851
41852       sar Set the sample aspect ratio of the sourced video.
41853
41854       alpha
41855           Specify the alpha (opacity) of the background, only available in
41856           the "testsrc2" source. The value must be between 0 (fully
41857           transparent) and 255 (fully opaque, the default).
41858
41859       decimals, n
41860           Set the number of decimals to show in the timestamp, only available
41861           in the "testsrc" source.
41862
41863           The displayed timestamp value will correspond to the original
41864           timestamp value multiplied by the power of 10 of the specified
41865           value. Default value is 0.
41866
41867       type
41868           Set the type of the color spectrum, only available in the
41869           "colorspectrum" source. Can be one of the following:
41870
41871           black
41872           white
41873           all
41874       patch_size
41875           Set patch size of single color patch, only available in the
41876           "colorchart" source. Default is "64x64".
41877
41878       preset
41879           Set colorchecker colors preset, only available in the "colorchart"
41880           source.
41881
41882           Available values are:
41883
41884           reference
41885           skintones
41886
41887           Default value is "reference".
41888
41889       Examples
41890
41891       •   Generate a video with a duration of 5.3 seconds, with size 176x144
41892           and a frame rate of 10 frames per second:
41893
41894                   testsrc=duration=5.3:size=qcif:rate=10
41895
41896       •   The following graph description will generate a red source with an
41897           opacity of 0.2, with size "qcif" and a frame rate of 10 frames per
41898           second:
41899
41900                   color=c=red@0.2:s=qcif:r=10
41901
41902       •   If the input content is to be ignored, "nullsrc" can be used. The
41903           following command generates noise in the luminance plane by
41904           employing the "geq" filter:
41905
41906                   nullsrc=s=256x256, geq=random(1)*255:128:128
41907
41908       Commands
41909
41910       The "color" source supports the following commands:
41911
41912       c, color
41913           Set the color of the created image. Accepts the same syntax of the
41914           corresponding color option.
41915
41916   openclsrc
41917       Generate video using an OpenCL program.
41918
41919       source
41920           OpenCL program source file.
41921
41922       kernel
41923           Kernel name in program.
41924
41925       size, s
41926           Size of frames to generate.  This must be set.
41927
41928       format
41929           Pixel format to use for the generated frames.  This must be set.
41930
41931       rate, r
41932           Number of frames generated every second.  Default value is '25'.
41933
41934       For details of how the program loading works, see the program_opencl
41935       filter.
41936
41937       Example programs:
41938
41939       •   Generate a colour ramp by setting pixel values from the position of
41940           the pixel in the output image.  (Note that this will work with all
41941           pixel formats, but the generated output will not be the same.)
41942
41943                   __kernel void ramp(__write_only image2d_t dst,
41944                                      unsigned int index)
41945                   {
41946                       int2 loc = (int2)(get_global_id(0), get_global_id(1));
41947
41948                       float4 val;
41949                       val.xy = val.zw = convert_float2(loc) / convert_float2(get_image_dim(dst));
41950
41951                       write_imagef(dst, loc, val);
41952                   }
41953
41954       •   Generate a Sierpinski carpet pattern, panning by a single pixel
41955           each frame.
41956
41957                   __kernel void sierpinski_carpet(__write_only image2d_t dst,
41958                                                   unsigned int index)
41959                   {
41960                       int2 loc = (int2)(get_global_id(0), get_global_id(1));
41961
41962                       float4 value = 0.0f;
41963                       int x = loc.x + index;
41964                       int y = loc.y + index;
41965                       while (x > 0 || y > 0) {
41966                           if (x % 3 == 1 && y % 3 == 1) {
41967                               value = 1.0f;
41968                               break;
41969                           }
41970                           x /= 3;
41971                           y /= 3;
41972                       }
41973
41974                       write_imagef(dst, loc, value);
41975                   }
41976
41977   sierpinski
41978       Generate a Sierpinski carpet/triangle fractal, and randomly pan around.
41979
41980       This source accepts the following options:
41981
41982       size, s
41983           Set frame size. For the syntax of this option, check the "Video
41984           size" section in the ffmpeg-utils manual. Default value is
41985           "640x480".
41986
41987       rate, r
41988           Set frame rate, expressed as number of frames per second. Default
41989           value is "25".
41990
41991       seed
41992           Set seed which is used for random panning.
41993
41994       jump
41995           Set max jump for single pan destination. Allowed range is from 1 to
41996           10000.
41997
41998       type
41999           Set fractal type, can be default "carpet" or "triangle".
42000

VIDEO SINKS

42002       Below is a description of the currently available video sinks.
42003
42004   buffersink
42005       Buffer video frames, and make them available to the end of the filter
42006       graph.
42007
42008       This sink is mainly intended for programmatic use, in particular
42009       through the interface defined in libavfilter/buffersink.h or the
42010       options system.
42011
42012       It accepts a pointer to an AVBufferSinkContext structure, which defines
42013       the incoming buffers' formats, to be passed as the opaque parameter to
42014       "avfilter_init_filter" for initialization.
42015
42016   nullsink
42017       Null video sink: do absolutely nothing with the input video. It is
42018       mainly useful as a template and for use in analysis / debugging tools.
42019

MULTIMEDIA FILTERS

42021       Below is a description of the currently available multimedia filters.
42022
42023   abitscope
42024       Convert input audio to a video output, displaying the audio bit scope.
42025
42026       The filter accepts the following options:
42027
42028       rate, r
42029           Set frame rate, expressed as number of frames per second. Default
42030           value is "25".
42031
42032       size, s
42033           Specify the video size for the output. For the syntax of this
42034           option, check the "Video size" section in the ffmpeg-utils manual.
42035           Default value is "1024x256".
42036
42037       colors
42038           Specify list of colors separated by space or by '|' which will be
42039           used to draw channels. Unrecognized or missing colors will be
42040           replaced by white color.
42041
42042       mode, m
42043           Set output mode. Can be "bars" or "trace". Default is "bars".
42044
42045   adrawgraph
42046       Draw a graph using input audio metadata.
42047
42048       See drawgraph
42049
42050   agraphmonitor
42051       See graphmonitor.
42052
42053   ahistogram
42054       Convert input audio to a video output, displaying the volume histogram.
42055
42056       The filter accepts the following options:
42057
42058       dmode
42059           Specify how histogram is calculated.
42060
42061           It accepts the following values:
42062
42063           single
42064               Use single histogram for all channels.
42065
42066           separate
42067               Use separate histogram for each channel.
42068
42069           Default is "single".
42070
42071       rate, r
42072           Set frame rate, expressed as number of frames per second. Default
42073           value is "25".
42074
42075       size, s
42076           Specify the video size for the output. For the syntax of this
42077           option, check the "Video size" section in the ffmpeg-utils manual.
42078           Default value is "hd720".
42079
42080       scale
42081           Set display scale.
42082
42083           It accepts the following values:
42084
42085           log logarithmic
42086
42087           sqrt
42088               square root
42089
42090           cbrt
42091               cubic root
42092
42093           lin linear
42094
42095           rlog
42096               reverse logarithmic
42097
42098           Default is "log".
42099
42100       ascale
42101           Set amplitude scale.
42102
42103           It accepts the following values:
42104
42105           log logarithmic
42106
42107           lin linear
42108
42109           Default is "log".
42110
42111       acount
42112           Set how much frames to accumulate in histogram.  Default is 1.
42113           Setting this to -1 accumulates all frames.
42114
42115       rheight
42116           Set histogram ratio of window height.
42117
42118       slide
42119           Set sonogram sliding.
42120
42121           It accepts the following values:
42122
42123           replace
42124               replace old rows with new ones.
42125
42126           scroll
42127               scroll from top to bottom.
42128
42129           Default is "replace".
42130
42131       hmode
42132           Set histogram mode.
42133
42134           It accepts the following values:
42135
42136           abs Use absolute values of samples.
42137
42138           sign
42139               Use untouched values of samples.
42140
42141           Default is "abs".
42142
42143   aphasemeter
42144       Measures phase of input audio, which is exported as metadata
42145       "lavfi.aphasemeter.phase", representing mean phase of current audio
42146       frame. A video output can also be produced and is enabled by default.
42147       The audio is passed through as first output.
42148
42149       Audio will be rematrixed to stereo if it has a different channel
42150       layout. Phase value is in range "[-1, 1]" where "-1" means left and
42151       right channels are completely out of phase and 1 means channels are in
42152       phase.
42153
42154       The filter accepts the following options, all related to its video
42155       output:
42156
42157       rate, r
42158           Set the output frame rate. Default value is 25.
42159
42160       size, s
42161           Set the video size for the output. For the syntax of this option,
42162           check the "Video size" section in the ffmpeg-utils manual.  Default
42163           value is "800x400".
42164
42165       rc
42166       gc
42167       bc  Specify the red, green, blue contrast. Default values are 2, 7 and
42168           1.  Allowed range is "[0, 255]".
42169
42170       mpc Set color which will be used for drawing median phase. If color is
42171           "none" which is default, no median phase value will be drawn.
42172
42173       video
42174           Enable video output. Default is enabled.
42175
42176       phasing detection
42177
42178       The filter also detects out of phase and mono sequences in stereo
42179       streams.  It logs the sequence start, end and duration when it lasts
42180       longer or as long as the minimum set.
42181
42182       The filter accepts the following options for this detection:
42183
42184       phasing
42185           Enable mono and out of phase detection. Default is disabled.
42186
42187       tolerance, t
42188           Set phase tolerance for mono detection, in amplitude ratio. Default
42189           is 0.  Allowed range is "[0, 1]".
42190
42191       angle, a
42192           Set angle threshold for out of phase detection, in degree. Default
42193           is 170.  Allowed range is "[90, 180]".
42194
42195       duration, d
42196           Set mono or out of phase duration until notification, expressed in
42197           seconds. Default is 2.
42198
42199       Examples
42200
42201       •   Complete example with ffmpeg to detect 1 second of mono with 0.001
42202           phase tolerance:
42203
42204                   ffmpeg -i stereo.wav -af aphasemeter=video=0:phasing=1:duration=1:tolerance=0.001 -f null -
42205
42206   avectorscope
42207       Convert input audio to a video output, representing the audio vector
42208       scope.
42209
42210       The filter is used to measure the difference between channels of stereo
42211       audio stream. A monaural signal, consisting of identical left and right
42212       signal, results in straight vertical line. Any stereo separation is
42213       visible as a deviation from this line, creating a Lissajous figure.  If
42214       the straight (or deviation from it) but horizontal line appears this
42215       indicates that the left and right channels are out of phase.
42216
42217       The filter accepts the following options:
42218
42219       mode, m
42220           Set the vectorscope mode.
42221
42222           Available values are:
42223
42224           lissajous
42225               Lissajous rotated by 45 degrees.
42226
42227           lissajous_xy
42228               Same as above but not rotated.
42229
42230           polar
42231               Shape resembling half of circle.
42232
42233           Default value is lissajous.
42234
42235       size, s
42236           Set the video size for the output. For the syntax of this option,
42237           check the "Video size" section in the ffmpeg-utils manual.  Default
42238           value is "400x400".
42239
42240       rate, r
42241           Set the output frame rate. Default value is 25.
42242
42243       rc
42244       gc
42245       bc
42246       ac  Specify the red, green, blue and alpha contrast. Default values are
42247           40, 160, 80 and 255.  Allowed range is "[0, 255]".
42248
42249       rf
42250       gf
42251       bf
42252       af  Specify the red, green, blue and alpha fade. Default values are 15,
42253           10, 5 and 5.  Allowed range is "[0, 255]".
42254
42255       zoom
42256           Set the zoom factor. Default value is 1. Allowed range is "[0,
42257           10]".  Values lower than 1 will auto adjust zoom factor to maximal
42258           possible value.
42259
42260       draw
42261           Set the vectorscope drawing mode.
42262
42263           Available values are:
42264
42265           dot Draw dot for each sample.
42266
42267           line
42268               Draw line between previous and current sample.
42269
42270           Default value is dot.
42271
42272       scale
42273           Specify amplitude scale of audio samples.
42274
42275           Available values are:
42276
42277           lin Linear.
42278
42279           sqrt
42280               Square root.
42281
42282           cbrt
42283               Cubic root.
42284
42285           log Logarithmic.
42286
42287       swap
42288           Swap left channel axis with right channel axis.
42289
42290       mirror
42291           Mirror axis.
42292
42293           none
42294               No mirror.
42295
42296           x   Mirror only x axis.
42297
42298           y   Mirror only y axis.
42299
42300           xy  Mirror both axis.
42301
42302       Examples
42303
42304       •   Complete example using ffplay:
42305
42306                   ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
42307                                [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
42308
42309       Commands
42310
42311       This filter supports the all above options as commands except options
42312       "size" and "rate".
42313
42314   bench, abench
42315       Benchmark part of a filtergraph.
42316
42317       The filter accepts the following options:
42318
42319       action
42320           Start or stop a timer.
42321
42322           Available values are:
42323
42324           start
42325               Get the current time, set it as frame metadata (using the key
42326               "lavfi.bench.start_time"), and forward the frame to the next
42327               filter.
42328
42329           stop
42330               Get the current time and fetch the "lavfi.bench.start_time"
42331               metadata from the input frame metadata to get the time
42332               difference. Time difference, average, maximum and minimum time
42333               (respectively "t", "avg", "max" and "min") are then printed.
42334               The timestamps are expressed in seconds.
42335
42336       Examples
42337
42338       •   Benchmark selectivecolor filter:
42339
42340                   bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
42341
42342   concat
42343       Concatenate audio and video streams, joining them together one after
42344       the other.
42345
42346       The filter works on segments of synchronized video and audio streams.
42347       All segments must have the same number of streams of each type, and
42348       that will also be the number of streams at output.
42349
42350       The filter accepts the following options:
42351
42352       n   Set the number of segments. Default is 2.
42353
42354       v   Set the number of output video streams, that is also the number of
42355           video streams in each segment. Default is 1.
42356
42357       a   Set the number of output audio streams, that is also the number of
42358           audio streams in each segment. Default is 0.
42359
42360       unsafe
42361           Activate unsafe mode: do not fail if segments have a different
42362           format.
42363
42364       The filter has v+a outputs: first v video outputs, then a audio
42365       outputs.
42366
42367       There are nx(v+a) inputs: first the inputs for the first segment, in
42368       the same order as the outputs, then the inputs for the second segment,
42369       etc.
42370
42371       Related streams do not always have exactly the same duration, for
42372       various reasons including codec frame size or sloppy authoring. For
42373       that reason, related synchronized streams (e.g. a video and its audio
42374       track) should be concatenated at once. The concat filter will use the
42375       duration of the longest stream in each segment (except the last one),
42376       and if necessary pad shorter audio streams with silence.
42377
42378       For this filter to work correctly, all segments must start at timestamp
42379       0.
42380
42381       All corresponding streams must have the same parameters in all
42382       segments; the filtering system will automatically select a common pixel
42383       format for video streams, and a common sample format, sample rate and
42384       channel layout for audio streams, but other settings, such as
42385       resolution, must be converted explicitly by the user.
42386
42387       Different frame rates are acceptable but will result in variable frame
42388       rate at output; be sure to configure the output file to handle it.
42389
42390       Examples
42391
42392       •   Concatenate an opening, an episode and an ending, all in bilingual
42393           version (video in stream 0, audio in streams 1 and 2):
42394
42395                   ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \
42396                     '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]
42397                      concat=n=3:v=1:a=2 [v] [a1] [a2]' \
42398                     -map '[v]' -map '[a1]' -map '[a2]' output.mkv
42399
42400       •   Concatenate two parts, handling audio and video separately, using
42401           the (a)movie sources, and adjusting the resolution:
42402
42403                   movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
42404                   movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
42405                   [v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
42406
42407           Note that a desync will happen at the stitch if the audio and video
42408           streams do not have exactly the same duration in the first file.
42409
42410       Commands
42411
42412       This filter supports the following commands:
42413
42414       next
42415           Close the current segment and step to the next one
42416
42417   ebur128
42418       EBU R128 scanner filter. This filter takes an audio stream and analyzes
42419       its loudness level. By default, it logs a message at a frequency of
42420       10Hz with the Momentary loudness (identified by "M"), Short-term
42421       loudness ("S"), Integrated loudness ("I") and Loudness Range ("LRA").
42422
42423       The filter can only analyze streams which have sample format is double-
42424       precision floating point. The input stream will be converted to this
42425       specification, if needed. Users may need to insert aformat and/or
42426       aresample filters after this filter to obtain the original parameters.
42427
42428       The filter also has a video output (see the video option) with a real
42429       time graph to observe the loudness evolution. The graphic contains the
42430       logged message mentioned above, so it is not printed anymore when this
42431       option is set, unless the verbose logging is set. The main graphing
42432       area contains the short-term loudness (3 seconds of analysis), and the
42433       gauge on the right is for the momentary loudness (400 milliseconds),
42434       but can optionally be configured to instead display short-term loudness
42435       (see gauge).
42436
42437       The green area marks a  +/- 1LU target range around the target loudness
42438       (-23LUFS by default, unless modified through target).
42439
42440       More information about the Loudness Recommendation EBU R128 on
42441       <http://tech.ebu.ch/loudness>.
42442
42443       The filter accepts the following options:
42444
42445       video
42446           Activate the video output. The audio stream is passed unchanged
42447           whether this option is set or no. The video stream will be the
42448           first output stream if activated. Default is 0.
42449
42450       size
42451           Set the video size. This option is for video only. For the syntax
42452           of this option, check the "Video size" section in the ffmpeg-utils
42453           manual.  Default and minimum resolution is "640x480".
42454
42455       meter
42456           Set the EBU scale meter. Default is 9. Common values are 9 and 18,
42457           respectively for EBU scale meter +9 and EBU scale meter +18. Any
42458           other integer value between this range is allowed.
42459
42460       metadata
42461           Set metadata injection. If set to 1, the audio input will be
42462           segmented into 100ms output frames, each of them containing various
42463           loudness information in metadata.  All the metadata keys are
42464           prefixed with "lavfi.r128.".
42465
42466           Default is 0.
42467
42468       framelog
42469           Force the frame logging level.
42470
42471           Available values are:
42472
42473           info
42474               information logging level
42475
42476           verbose
42477               verbose logging level
42478
42479           By default, the logging level is set to info. If the video or the
42480           metadata options are set, it switches to verbose.
42481
42482       peak
42483           Set peak mode(s).
42484
42485           Available modes can be cumulated (the option is a "flag" type).
42486           Possible values are:
42487
42488           none
42489               Disable any peak mode (default).
42490
42491           sample
42492               Enable sample-peak mode.
42493
42494               Simple peak mode looking for the higher sample value. It logs a
42495               message for sample-peak (identified by "SPK").
42496
42497           true
42498               Enable true-peak mode.
42499
42500               If enabled, the peak lookup is done on an over-sampled version
42501               of the input stream for better peak accuracy. It logs a message
42502               for true-peak.  (identified by "TPK") and true-peak per frame
42503               (identified by "FTPK").  This mode requires a build with
42504               "libswresample".
42505
42506       dualmono
42507           Treat mono input files as "dual mono". If a mono file is intended
42508           for playback on a stereo system, its EBU R128 measurement will be
42509           perceptually incorrect.  If set to "true", this option will
42510           compensate for this effect.  Multi-channel input files are not
42511           affected by this option.
42512
42513       panlaw
42514           Set a specific pan law to be used for the measurement of dual mono
42515           files.  This parameter is optional, and has a default value of
42516           -3.01dB.
42517
42518       target
42519           Set a specific target level (in LUFS) used as relative zero in the
42520           visualization.  This parameter is optional and has a default value
42521           of -23LUFS as specified by EBU R128. However, material published
42522           online may prefer a level of -16LUFS (e.g. for use with podcasts or
42523           video platforms).
42524
42525       gauge
42526           Set the value displayed by the gauge. Valid values are "momentary"
42527           and s "shortterm". By default the momentary value will be used, but
42528           in certain scenarios it may be more useful to observe the short
42529           term value instead (e.g.  live mixing).
42530
42531       scale
42532           Sets the display scale for the loudness. Valid parameters are
42533           "absolute" (in LUFS) or "relative" (LU) relative to the target.
42534           This only affects the video output, not the summary or continuous
42535           log output.
42536
42537       Examples
42538
42539       •   Real-time graph using ffplay, with a EBU scale meter +18:
42540
42541                   ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
42542
42543       •   Run an analysis with ffmpeg:
42544
42545                   ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
42546
42547   interleave, ainterleave
42548       Temporally interleave frames from several inputs.
42549
42550       "interleave" works with video inputs, "ainterleave" with audio.
42551
42552       These filters read frames from several inputs and send the oldest
42553       queued frame to the output.
42554
42555       Input streams must have well defined, monotonically increasing frame
42556       timestamp values.
42557
42558       In order to submit one frame to output, these filters need to enqueue
42559       at least one frame for each input, so they cannot work in case one
42560       input is not yet terminated and will not receive incoming frames.
42561
42562       For example consider the case when one input is a "select" filter which
42563       always drops input frames. The "interleave" filter will keep reading
42564       from that input, but it will never be able to send new frames to output
42565       until the input sends an end-of-stream signal.
42566
42567       Also, depending on inputs synchronization, the filters will drop frames
42568       in case one input receives more frames than the other ones, and the
42569       queue is already filled.
42570
42571       These filters accept the following options:
42572
42573       nb_inputs, n
42574           Set the number of different inputs, it is 2 by default.
42575
42576       duration
42577           How to determine the end-of-stream.
42578
42579           longest
42580               The duration of the longest input. (default)
42581
42582           shortest
42583               The duration of the shortest input.
42584
42585           first
42586               The duration of the first input.
42587
42588       Examples
42589
42590       •   Interleave frames belonging to different streams using ffmpeg:
42591
42592                   ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
42593
42594       •   Add flickering blur effect:
42595
42596                   select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
42597
42598   latency, alatency
42599       Measure filtering latency.
42600
42601       Report previous filter filtering latency, delay in number of audio
42602       samples for audio filters or number of video frames for video filters.
42603
42604       On end of input stream, filter will report min and max measured latency
42605       for previous running filter in filtergraph.
42606
42607   metadata, ametadata
42608       Manipulate frame metadata.
42609
42610       This filter accepts the following options:
42611
42612       mode
42613           Set mode of operation of the filter.
42614
42615           Can be one of the following:
42616
42617           select
42618               If both "value" and "key" is set, select frames which have such
42619               metadata. If only "key" is set, select every frame that has
42620               such key in metadata.
42621
42622           add Add new metadata "key" and "value". If key is already available
42623               do nothing.
42624
42625           modify
42626               Modify value of already present key.
42627
42628           delete
42629               If "value" is set, delete only keys that have such value.
42630               Otherwise, delete key. If "key" is not set, delete all metadata
42631               values in the frame.
42632
42633           print
42634               Print key and its value if metadata was found. If "key" is not
42635               set print all metadata values available in frame.
42636
42637       key Set key used with all modes. Must be set for all modes except
42638           "print" and "delete".
42639
42640       value
42641           Set metadata value which will be used. This option is mandatory for
42642           "modify" and "add" mode.
42643
42644       function
42645           Which function to use when comparing metadata value and "value".
42646
42647           Can be one of following:
42648
42649           same_str
42650               Values are interpreted as strings, returns true if metadata
42651               value is same as "value".
42652
42653           starts_with
42654               Values are interpreted as strings, returns true if metadata
42655               value starts with the "value" option string.
42656
42657           less
42658               Values are interpreted as floats, returns true if metadata
42659               value is less than "value".
42660
42661           equal
42662               Values are interpreted as floats, returns true if "value" is
42663               equal with metadata value.
42664
42665           greater
42666               Values are interpreted as floats, returns true if metadata
42667               value is greater than "value".
42668
42669           expr
42670               Values are interpreted as floats, returns true if expression
42671               from option "expr" evaluates to true.
42672
42673           ends_with
42674               Values are interpreted as strings, returns true if metadata
42675               value ends with the "value" option string.
42676
42677       expr
42678           Set expression which is used when "function" is set to "expr".  The
42679           expression is evaluated through the eval API and can contain the
42680           following constants:
42681
42682           VALUE1, FRAMEVAL
42683               Float representation of "value" from metadata key.
42684
42685           VALUE2, USERVAL
42686               Float representation of "value" as supplied by user in "value"
42687               option.
42688
42689       file
42690           If specified in "print" mode, output is written to the named file.
42691           Instead of plain filename any writable url can be specified.
42692           Filename ``-'' is a shorthand for standard output. If "file" option
42693           is not set, output is written to the log with AV_LOG_INFO loglevel.
42694
42695       direct
42696           Reduces buffering in print mode when output is written to a URL set
42697           using file.
42698
42699       Examples
42700
42701       •   Print all metadata values for frames with key
42702           "lavfi.signalstats.YDIF" with values between 0 and 1.
42703
42704                   signalstats,metadata=print:key=lavfi.signalstats.YDIF:value=0:function=expr:expr='between(VALUE1,0,1)'
42705
42706       •   Print silencedetect output to file metadata.txt.
42707
42708                   silencedetect,ametadata=mode=print:file=metadata.txt
42709
42710       •   Direct all metadata to a pipe with file descriptor 4.
42711
42712                   metadata=mode=print:file='pipe\:4'
42713
42714   perms, aperms
42715       Set read/write permissions for the output frames.
42716
42717       These filters are mainly aimed at developers to test direct path in the
42718       following filter in the filtergraph.
42719
42720       The filters accept the following options:
42721
42722       mode
42723           Select the permissions mode.
42724
42725           It accepts the following values:
42726
42727           none
42728               Do nothing. This is the default.
42729
42730           ro  Set all the output frames read-only.
42731
42732           rw  Set all the output frames directly writable.
42733
42734           toggle
42735               Make the frame read-only if writable, and writable if read-
42736               only.
42737
42738           random
42739               Set each output frame read-only or writable randomly.
42740
42741       seed
42742           Set the seed for the random mode, must be an integer included
42743           between 0 and "UINT32_MAX". If not specified, or if explicitly set
42744           to "-1", the filter will try to use a good random seed on a best
42745           effort basis.
42746
42747       Note: in case of auto-inserted filter between the permission filter and
42748       the following one, the permission might not be received as expected in
42749       that following filter. Inserting a format or aformat filter before the
42750       perms/aperms filter can avoid this problem.
42751
42752   realtime, arealtime
42753       Slow down filtering to match real time approximately.
42754
42755       These filters will pause the filtering for a variable amount of time to
42756       match the output rate with the input timestamps.  They are similar to
42757       the re option to "ffmpeg".
42758
42759       They accept the following options:
42760
42761       limit
42762           Time limit for the pauses. Any pause longer than that will be
42763           considered a timestamp discontinuity and reset the timer. Default
42764           is 2 seconds.
42765
42766       speed
42767           Speed factor for processing. The value must be a float larger than
42768           zero.  Values larger than 1.0 will result in faster than realtime
42769           processing, smaller will slow processing down. The limit is
42770           automatically adapted accordingly. Default is 1.0.
42771
42772           A processing speed faster than what is possible without these
42773           filters cannot be achieved.
42774
42775       Commands
42776
42777       Both filters supports the all above options as commands.
42778
42779   segment, asegment
42780       Split single input stream into multiple streams.
42781
42782       This filter does opposite of concat filters.
42783
42784       "segment" works on video frames, "asegment" on audio samples.
42785
42786       This filter accepts the following options:
42787
42788       timestamps
42789           Timestamps of output segments separated by '|'. The first segment
42790           will run from the beginning of the input stream. The last segment
42791           will run until the end of the input stream
42792
42793       frames, samples
42794           Exact frame/sample count to split the segments.
42795
42796       In all cases, prefixing an each segment with '+' will make it relative
42797       to the previous segment.
42798
42799       Examples
42800
42801       •   Split input audio stream into three output audio streams, starting
42802           at start of input audio stream and storing that in 1st output audio
42803           stream, then following at 60th second and storing than in 2nd
42804           output audio stream, and last after 150th second of input audio
42805           stream store in 3rd output audio stream:
42806
42807                   asegment=timestamps="60|150"
42808
42809   select, aselect
42810       Select frames to pass in output.
42811
42812       This filter accepts the following options:
42813
42814       expr, e
42815           Set expression, which is evaluated for each input frame.
42816
42817           If the expression is evaluated to zero, the frame is discarded.
42818
42819           If the evaluation result is negative or NaN, the frame is sent to
42820           the first output; otherwise it is sent to the output with index
42821           "ceil(val)-1", assuming that the input index starts from 0.
42822
42823           For example a value of 1.2 corresponds to the output with index
42824           "ceil(1.2)-1 = 2-1 = 1", that is the second output.
42825
42826       outputs, n
42827           Set the number of outputs. The output to which to send the selected
42828           frame is based on the result of the evaluation. Default value is 1.
42829
42830       The expression can contain the following constants:
42831
42832       n   The (sequential) number of the filtered frame, starting from 0.
42833
42834       selected_n
42835           The (sequential) number of the selected frame, starting from 0.
42836
42837       prev_selected_n
42838           The sequential number of the last selected frame. It's NAN if
42839           undefined.
42840
42841       TB  The timebase of the input timestamps.
42842
42843       pts The PTS (Presentation TimeStamp) of the filtered frame, expressed
42844           in TB units. It's NAN if undefined.
42845
42846       t   The PTS of the filtered frame, expressed in seconds. It's NAN if
42847           undefined.
42848
42849       prev_pts
42850           The PTS of the previously filtered frame. It's NAN if undefined.
42851
42852       prev_selected_pts
42853           The PTS of the last previously filtered frame. It's NAN if
42854           undefined.
42855
42856       prev_selected_t
42857           The PTS of the last previously selected frame, expressed in
42858           seconds. It's NAN if undefined.
42859
42860       start_pts
42861           The first PTS in the stream which is not NAN. It remains NAN if not
42862           found.
42863
42864       start_t
42865           The first PTS, in seconds, in the stream which is not NAN. It
42866           remains NAN if not found.
42867
42868       pict_type (video only)
42869           The type of the filtered frame. It can assume one of the following
42870           values:
42871
42872           I
42873           P
42874           B
42875           S
42876           SI
42877           SP
42878           BI
42879       interlace_type (video only)
42880           The frame interlace type. It can assume one of the following
42881           values:
42882
42883           PROGRESSIVE
42884               The frame is progressive (not interlaced).
42885
42886           TOPFIRST
42887               The frame is top-field-first.
42888
42889           BOTTOMFIRST
42890               The frame is bottom-field-first.
42891
42892       consumed_sample_n (audio only)
42893           the number of selected samples before the current frame
42894
42895       samples_n (audio only)
42896           the number of samples in the current frame
42897
42898       sample_rate (audio only)
42899           the input sample rate
42900
42901       key This is 1 if the filtered frame is a key-frame, 0 otherwise.
42902
42903       pos the position in the file of the filtered frame, -1 if the
42904           information is not available (e.g. for synthetic video)
42905
42906       scene (video only)
42907           value between 0 and 1 to indicate a new scene; a low value reflects
42908           a low probability for the current frame to introduce a new scene,
42909           while a higher value means the current frame is more likely to be
42910           one (see the example below)
42911
42912       concatdec_select
42913           The concat demuxer can select only part of a concat input file by
42914           setting an inpoint and an outpoint, but the output packets may not
42915           be entirely contained in the selected interval. By using this
42916           variable, it is possible to skip frames generated by the concat
42917           demuxer which are not exactly contained in the selected interval.
42918
42919           This works by comparing the frame pts against the
42920           lavf.concat.start_time and the lavf.concat.duration packet metadata
42921           values which are also present in the decoded frames.
42922
42923           The concatdec_select variable is -1 if the frame pts is at least
42924           start_time and either the duration metadata is missing or the frame
42925           pts is less than start_time + duration, 0 otherwise, and NaN if the
42926           start_time metadata is missing.
42927
42928           That basically means that an input frame is selected if its pts is
42929           within the interval set by the concat demuxer.
42930
42931       The default value of the select expression is "1".
42932
42933       Examples
42934
42935       •   Select all frames in input:
42936
42937                   select
42938
42939           The example above is the same as:
42940
42941                   select=1
42942
42943       •   Skip all frames:
42944
42945                   select=0
42946
42947       •   Select only I-frames:
42948
42949                   select='eq(pict_type\,I)'
42950
42951       •   Select one frame every 100:
42952
42953                   select='not(mod(n\,100))'
42954
42955       •   Select only frames contained in the 10-20 time interval:
42956
42957                   select=between(t\,10\,20)
42958
42959       •   Select only I-frames contained in the 10-20 time interval:
42960
42961                   select=between(t\,10\,20)*eq(pict_type\,I)
42962
42963       •   Select frames with a minimum distance of 10 seconds:
42964
42965                   select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
42966
42967       •   Use aselect to select only audio frames with samples number > 100:
42968
42969                   aselect='gt(samples_n\,100)'
42970
42971       •   Create a mosaic of the first scenes:
42972
42973                   ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
42974
42975           Comparing scene against a value between 0.3 and 0.5 is generally a
42976           sane choice.
42977
42978       •   Send even and odd frames to separate outputs, and compose them:
42979
42980                   select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
42981
42982       •   Select useful frames from an ffconcat file which is using inpoints
42983           and outpoints but where the source files are not intra frame only.
42984
42985                   ffmpeg -copyts -vsync 0 -segment_time_metadata 1 -i input.ffconcat -vf select=concatdec_select -af aselect=concatdec_select output.avi
42986
42987   sendcmd, asendcmd
42988       Send commands to filters in the filtergraph.
42989
42990       These filters read commands to be sent to other filters in the
42991       filtergraph.
42992
42993       "sendcmd" must be inserted between two video filters, "asendcmd" must
42994       be inserted between two audio filters, but apart from that they act the
42995       same way.
42996
42997       The specification of commands can be provided in the filter arguments
42998       with the commands option, or in a file specified by the filename
42999       option.
43000
43001       These filters accept the following options:
43002
43003       commands, c
43004           Set the commands to be read and sent to the other filters.
43005
43006       filename, f
43007           Set the filename of the commands to be read and sent to the other
43008           filters.
43009
43010       Commands syntax
43011
43012       A commands description consists of a sequence of interval
43013       specifications, comprising a list of commands to be executed when a
43014       particular event related to that interval occurs. The occurring event
43015       is typically the current frame time entering or leaving a given time
43016       interval.
43017
43018       An interval is specified by the following syntax:
43019
43020               <START>[-<END>] <COMMANDS>;
43021
43022       The time interval is specified by the START and END times.  END is
43023       optional and defaults to the maximum time.
43024
43025       The current frame time is considered within the specified interval if
43026       it is included in the interval [START, END), that is when the time is
43027       greater or equal to START and is lesser than END.
43028
43029       COMMANDS consists of a sequence of one or more command specifications,
43030       separated by ",", relating to that interval.  The syntax of a command
43031       specification is given by:
43032
43033               [<FLAGS>] <TARGET> <COMMAND> <ARG>
43034
43035       FLAGS is optional and specifies the type of events relating to the time
43036       interval which enable sending the specified command, and must be a non-
43037       null sequence of identifier flags separated by "+" or "|" and enclosed
43038       between "[" and "]".
43039
43040       The following flags are recognized:
43041
43042       enter
43043           The command is sent when the current frame timestamp enters the
43044           specified interval. In other words, the command is sent when the
43045           previous frame timestamp was not in the given interval, and the
43046           current is.
43047
43048       leave
43049           The command is sent when the current frame timestamp leaves the
43050           specified interval. In other words, the command is sent when the
43051           previous frame timestamp was in the given interval, and the current
43052           is not.
43053
43054       expr
43055           The command ARG is interpreted as expression and result of
43056           expression is passed as ARG.
43057
43058           The expression is evaluated through the eval API and can contain
43059           the following constants:
43060
43061           POS Original position in the file of the frame, or undefined if
43062               undefined for the current frame.
43063
43064           PTS The presentation timestamp in input.
43065
43066           N   The count of the input frame for video or audio, starting from
43067               0.
43068
43069           T   The time in seconds of the current frame.
43070
43071           TS  The start time in seconds of the current command interval.
43072
43073           TE  The end time in seconds of the current command interval.
43074
43075           TI  The interpolated time of the current command interval, TI = (T
43076               - TS) / (TE - TS).
43077
43078           W   The video frame width.
43079
43080           H   The video frame height.
43081
43082       If FLAGS is not specified, a default value of "[enter]" is assumed.
43083
43084       TARGET specifies the target of the command, usually the name of the
43085       filter class or a specific filter instance name.
43086
43087       COMMAND specifies the name of the command for the target filter.
43088
43089       ARG is optional and specifies the optional list of argument for the
43090       given COMMAND.
43091
43092       Between one interval specification and another, whitespaces, or
43093       sequences of characters starting with "#" until the end of line, are
43094       ignored and can be used to annotate comments.
43095
43096       A simplified BNF description of the commands specification syntax
43097       follows:
43098
43099               <COMMAND_FLAG>  ::= "enter" | "leave"
43100               <COMMAND_FLAGS> ::= <COMMAND_FLAG> [(+|"|")<COMMAND_FLAG>]
43101               <COMMAND>       ::= ["[" <COMMAND_FLAGS> "]"] <TARGET> <COMMAND> [<ARG>]
43102               <COMMANDS>      ::= <COMMAND> [,<COMMANDS>]
43103               <INTERVAL>      ::= <START>[-<END>] <COMMANDS>
43104               <INTERVALS>     ::= <INTERVAL>[;<INTERVALS>]
43105
43106       Examples
43107
43108       •   Specify audio tempo change at second 4:
43109
43110                   asendcmd=c='4.0 atempo tempo 1.5',atempo
43111
43112       •   Target a specific filter instance:
43113
43114                   asendcmd=c='4.0 atempo@my tempo 1.5',atempo@my
43115
43116       •   Specify a list of drawtext and hue commands in a file.
43117
43118                   # show text in the interval 5-10
43119                   5.0-10.0 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=hello world',
43120                            [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=';
43121
43122                   # desaturate the image in the interval 15-20
43123                   15.0-20.0 [enter] hue s 0,
43124                             [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor',
43125                             [leave] hue s 1,
43126                             [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color';
43127
43128                   # apply an exponential saturation fade-out effect, starting from time 25
43129                   25 [enter] hue s exp(25-t)
43130
43131           A filtergraph allowing to read and process the above command list
43132           stored in a file test.cmd, can be specified with:
43133
43134                   sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
43135
43136   setpts, asetpts
43137       Change the PTS (presentation timestamp) of the input frames.
43138
43139       "setpts" works on video frames, "asetpts" on audio frames.
43140
43141       This filter accepts the following options:
43142
43143       expr
43144           The expression which is evaluated for each frame to construct its
43145           timestamp.
43146
43147       The expression is evaluated through the eval API and can contain the
43148       following constants:
43149
43150       FRAME_RATE, FR
43151           frame rate, only defined for constant frame-rate video
43152
43153       PTS The presentation timestamp in input
43154
43155       N   The count of the input frame for video or the number of consumed
43156           samples, not including the current frame for audio, starting from
43157           0.
43158
43159       NB_CONSUMED_SAMPLES
43160           The number of consumed samples, not including the current frame
43161           (only audio)
43162
43163       NB_SAMPLES, S
43164           The number of samples in the current frame (only audio)
43165
43166       SAMPLE_RATE, SR
43167           The audio sample rate.
43168
43169       STARTPTS
43170           The PTS of the first frame.
43171
43172       STARTT
43173           the time in seconds of the first frame
43174
43175       INTERLACED
43176           State whether the current frame is interlaced.
43177
43178       T   the time in seconds of the current frame
43179
43180       POS original position in the file of the frame, or undefined if
43181           undefined for the current frame
43182
43183       PREV_INPTS
43184           The previous input PTS.
43185
43186       PREV_INT
43187           previous input time in seconds
43188
43189       PREV_OUTPTS
43190           The previous output PTS.
43191
43192       PREV_OUTT
43193           previous output time in seconds
43194
43195       RTCTIME
43196           The wallclock (RTC) time in microseconds. This is deprecated, use
43197           time(0) instead.
43198
43199       RTCSTART
43200           The wallclock (RTC) time at the start of the movie in microseconds.
43201
43202       TB  The timebase of the input timestamps.
43203
43204       Examples
43205
43206       •   Start counting PTS from zero
43207
43208                   setpts=PTS-STARTPTS
43209
43210       •   Apply fast motion effect:
43211
43212                   setpts=0.5*PTS
43213
43214       •   Apply slow motion effect:
43215
43216                   setpts=2.0*PTS
43217
43218       •   Set fixed rate of 25 frames per second:
43219
43220                   setpts=N/(25*TB)
43221
43222       •   Set fixed rate 25 fps with some jitter:
43223
43224                   setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
43225
43226       •   Apply an offset of 10 seconds to the input PTS:
43227
43228                   setpts=PTS+10/TB
43229
43230       •   Generate timestamps from a "live source" and rebase onto the
43231           current timebase:
43232
43233                   setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
43234
43235       •   Generate timestamps by counting samples:
43236
43237                   asetpts=N/SR/TB
43238
43239   setrange
43240       Force color range for the output video frame.
43241
43242       The "setrange" filter marks the color range property for the output
43243       frames. It does not change the input frame, but only sets the
43244       corresponding property, which affects how the frame is treated by
43245       following filters.
43246
43247       The filter accepts the following options:
43248
43249       range
43250           Available values are:
43251
43252           auto
43253               Keep the same color range property.
43254
43255           unspecified, unknown
43256               Set the color range as unspecified.
43257
43258           limited, tv, mpeg
43259               Set the color range as limited.
43260
43261           full, pc, jpeg
43262               Set the color range as full.
43263
43264   settb, asettb
43265       Set the timebase to use for the output frames timestamps.  It is mainly
43266       useful for testing timebase configuration.
43267
43268       It accepts the following parameters:
43269
43270       expr, tb
43271           The expression which is evaluated into the output timebase.
43272
43273       The value for tb is an arithmetic expression representing a rational.
43274       The expression can contain the constants "AVTB" (the default timebase),
43275       "intb" (the input timebase) and "sr" (the sample rate, audio only).
43276       Default value is "intb".
43277
43278       Examples
43279
43280       •   Set the timebase to 1/25:
43281
43282                   settb=expr=1/25
43283
43284       •   Set the timebase to 1/10:
43285
43286                   settb=expr=0.1
43287
43288       •   Set the timebase to 1001/1000:
43289
43290                   settb=1+0.001
43291
43292       •   Set the timebase to 2*intb:
43293
43294                   settb=2*intb
43295
43296       •   Set the default timebase value:
43297
43298                   settb=AVTB
43299
43300   showcqt
43301       Convert input audio to a video output representing frequency spectrum
43302       logarithmically using Brown-Puckette constant Q transform algorithm
43303       with direct frequency domain coefficient calculation (but the transform
43304       itself is not really constant Q, instead the Q factor is actually
43305       variable/clamped), with musical tone scale, from E0 to D#10.
43306
43307       The filter accepts the following options:
43308
43309       size, s
43310           Specify the video size for the output. It must be even. For the
43311           syntax of this option, check the "Video size" section in the
43312           ffmpeg-utils manual.  Default value is "1920x1080".
43313
43314       fps, rate, r
43315           Set the output frame rate. Default value is 25.
43316
43317       bar_h
43318           Set the bargraph height. It must be even. Default value is "-1"
43319           which computes the bargraph height automatically.
43320
43321       axis_h
43322           Set the axis height. It must be even. Default value is "-1" which
43323           computes the axis height automatically.
43324
43325       sono_h
43326           Set the sonogram height. It must be even. Default value is "-1"
43327           which computes the sonogram height automatically.
43328
43329       fullhd
43330           Set the fullhd resolution. This option is deprecated, use size, s
43331           instead. Default value is 1.
43332
43333       sono_v, volume
43334           Specify the sonogram volume expression. It can contain variables:
43335
43336           bar_v
43337               the bar_v evaluated expression
43338
43339           frequency, freq, f
43340               the frequency where it is evaluated
43341
43342           timeclamp, tc
43343               the value of timeclamp option
43344
43345           and functions:
43346
43347           a_weighting(f)
43348               A-weighting of equal loudness
43349
43350           b_weighting(f)
43351               B-weighting of equal loudness
43352
43353           c_weighting(f)
43354               C-weighting of equal loudness.
43355
43356           Default value is 16.
43357
43358       bar_v, volume2
43359           Specify the bargraph volume expression. It can contain variables:
43360
43361           sono_v
43362               the sono_v evaluated expression
43363
43364           frequency, freq, f
43365               the frequency where it is evaluated
43366
43367           timeclamp, tc
43368               the value of timeclamp option
43369
43370           and functions:
43371
43372           a_weighting(f)
43373               A-weighting of equal loudness
43374
43375           b_weighting(f)
43376               B-weighting of equal loudness
43377
43378           c_weighting(f)
43379               C-weighting of equal loudness.
43380
43381           Default value is "sono_v".
43382
43383       sono_g, gamma
43384           Specify the sonogram gamma. Lower gamma makes the spectrum more
43385           contrast, higher gamma makes the spectrum having more range.
43386           Default value is 3.  Acceptable range is "[1, 7]".
43387
43388       bar_g, gamma2
43389           Specify the bargraph gamma. Default value is 1. Acceptable range is
43390           "[1, 7]".
43391
43392       bar_t
43393           Specify the bargraph transparency level. Lower value makes the
43394           bargraph sharper.  Default value is 1. Acceptable range is "[0,
43395           1]".
43396
43397       timeclamp, tc
43398           Specify the transform timeclamp. At low frequency, there is trade-
43399           off between accuracy in time domain and frequency domain. If
43400           timeclamp is lower, event in time domain is represented more
43401           accurately (such as fast bass drum), otherwise event in frequency
43402           domain is represented more accurately (such as bass guitar).
43403           Acceptable range is "[0.002, 1]". Default value is 0.17.
43404
43405       attack
43406           Set attack time in seconds. The default is 0 (disabled). Otherwise,
43407           it limits future samples by applying asymmetric windowing in time
43408           domain, useful when low latency is required. Accepted range is "[0,
43409           1]".
43410
43411       basefreq
43412           Specify the transform base frequency. Default value is
43413           20.01523126408007475, which is frequency 50 cents below E0.
43414           Acceptable range is "[10, 100000]".
43415
43416       endfreq
43417           Specify the transform end frequency. Default value is
43418           20495.59681441799654, which is frequency 50 cents above D#10.
43419           Acceptable range is "[10, 100000]".
43420
43421       coeffclamp
43422           This option is deprecated and ignored.
43423
43424       tlength
43425           Specify the transform length in time domain. Use this option to
43426           control accuracy trade-off between time domain and frequency domain
43427           at every frequency sample.  It can contain variables:
43428
43429           frequency, freq, f
43430               the frequency where it is evaluated
43431
43432           timeclamp, tc
43433               the value of timeclamp option.
43434
43435           Default value is "384*tc/(384+tc*f)".
43436
43437       count
43438           Specify the transform count for every video frame. Default value is
43439           6.  Acceptable range is "[1, 30]".
43440
43441       fcount
43442           Specify the transform count for every single pixel. Default value
43443           is 0, which makes it computed automatically. Acceptable range is
43444           "[0, 10]".
43445
43446       fontfile
43447           Specify font file for use with freetype to draw the axis. If not
43448           specified, use embedded font. Note that drawing with font file or
43449           embedded font is not implemented with custom basefreq and endfreq,
43450           use axisfile option instead.
43451
43452       font
43453           Specify fontconfig pattern. This has lower priority than fontfile.
43454           The ":" in the pattern may be replaced by "|" to avoid unnecessary
43455           escaping.
43456
43457       fontcolor
43458           Specify font color expression. This is arithmetic expression that
43459           should return integer value 0xRRGGBB. It can contain variables:
43460
43461           frequency, freq, f
43462               the frequency where it is evaluated
43463
43464           timeclamp, tc
43465               the value of timeclamp option
43466
43467           and functions:
43468
43469           midi(f)
43470               midi number of frequency f, some midi numbers: E0(16), C1(24),
43471               C2(36), A4(69)
43472
43473           r(x), g(x), b(x)
43474               red, green, and blue value of intensity x.
43475
43476           Default value is "st(0, (midi(f)-59.5)/12); st(1,
43477           if(between(ld(0),0,1), 0.5-0.5*cos(2*PI*ld(0)), 0)); r(1-ld(1)) +
43478           b(ld(1))".
43479
43480       axisfile
43481           Specify image file to draw the axis. This option override fontfile
43482           and fontcolor option.
43483
43484       axis, text
43485           Enable/disable drawing text to the axis. If it is set to 0, drawing
43486           to the axis is disabled, ignoring fontfile and axisfile option.
43487           Default value is 1.
43488
43489       csp Set colorspace. The accepted values are:
43490
43491           unspecified
43492               Unspecified (default)
43493
43494           bt709
43495               BT.709
43496
43497           fcc FCC
43498
43499           bt470bg
43500               BT.470BG or BT.601-6 625
43501
43502           smpte170m
43503               SMPTE-170M or BT.601-6 525
43504
43505           smpte240m
43506               SMPTE-240M
43507
43508           bt2020ncl
43509               BT.2020 with non-constant luminance
43510
43511       cscheme
43512           Set spectrogram color scheme. This is list of floating point values
43513           with format "left_r|left_g|left_b|right_r|right_g|right_b".  The
43514           default is "1|0.5|0|0|0.5|1".
43515
43516       Examples
43517
43518       •   Playing audio while showing the spectrum:
43519
43520                   ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt [out0]'
43521
43522       •   Same as above, but with frame rate 30 fps:
43523
43524                   ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=fps=30:count=5 [out0]'
43525
43526       •   Playing at 1280x720:
43527
43528                   ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=s=1280x720:count=4 [out0]'
43529
43530       •   Disable sonogram display:
43531
43532                   sono_h=0
43533
43534       •   A1 and its harmonics: A1, A2, (near)E3, A3:
43535
43536                   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),
43537                                    asplit[a][out1]; [a] showcqt [out0]'
43538
43539       •   Same as above, but with more accuracy in frequency domain:
43540
43541                   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),
43542                                    asplit[a][out1]; [a] showcqt=timeclamp=0.5 [out0]'
43543
43544       •   Custom volume:
43545
43546                   bar_v=10:sono_v=bar_v*a_weighting(f)
43547
43548       •   Custom gamma, now spectrum is linear to the amplitude.
43549
43550                   bar_g=2:sono_g=2
43551
43552       •   Custom tlength equation:
43553
43554                   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)))'
43555
43556       •   Custom fontcolor and fontfile, C-note is colored green, others are
43557           colored blue:
43558
43559                   fontcolor='if(mod(floor(midi(f)+0.5),12), 0x0000FF, g(1))':fontfile=myfont.ttf
43560
43561       •   Custom font using fontconfig:
43562
43563                   font='Courier New,Monospace,mono|bold'
43564
43565       •   Custom frequency range with custom axis using image file:
43566
43567                   axisfile=myaxis.png:basefreq=40:endfreq=10000
43568
43569   showfreqs
43570       Convert input audio to video output representing the audio power
43571       spectrum.  Audio amplitude is on Y-axis while frequency is on X-axis.
43572
43573       The filter accepts the following options:
43574
43575       size, s
43576           Specify size of video. For the syntax of this option, check the
43577           "Video size" section in the ffmpeg-utils manual.  Default is
43578           "1024x512".
43579
43580       rate, r
43581           Set video rate. Default is 25.
43582
43583       mode
43584           Set display mode.  This set how each frequency bin will be
43585           represented.
43586
43587           It accepts the following values:
43588
43589           line
43590           bar
43591           dot
43592
43593           Default is "bar".
43594
43595       ascale
43596           Set amplitude scale.
43597
43598           It accepts the following values:
43599
43600           lin Linear scale.
43601
43602           sqrt
43603               Square root scale.
43604
43605           cbrt
43606               Cubic root scale.
43607
43608           log Logarithmic scale.
43609
43610           Default is "log".
43611
43612       fscale
43613           Set frequency scale.
43614
43615           It accepts the following values:
43616
43617           lin Linear scale.
43618
43619           log Logarithmic scale.
43620
43621           rlog
43622               Reverse logarithmic scale.
43623
43624           Default is "lin".
43625
43626       win_size
43627           Set window size. Allowed range is from 16 to 65536.
43628
43629           Default is 2048
43630
43631       win_func
43632           Set windowing function.
43633
43634           It accepts the following values:
43635
43636           rect
43637           bartlett
43638           hanning
43639           hamming
43640           blackman
43641           welch
43642           flattop
43643           bharris
43644           bnuttall
43645           bhann
43646           sine
43647           nuttall
43648           lanczos
43649           gauss
43650           tukey
43651           dolph
43652           cauchy
43653           parzen
43654           poisson
43655           bohman
43656
43657           Default is "hanning".
43658
43659       overlap
43660           Set window overlap. In range "[0, 1]". Default is 1, which means
43661           optimal overlap for selected window function will be picked.
43662
43663       averaging
43664           Set time averaging. Setting this to 0 will display current maximal
43665           peaks.  Default is 1, which means time averaging is disabled.
43666
43667       colors
43668           Specify list of colors separated by space or by '|' which will be
43669           used to draw channel frequencies. Unrecognized or missing colors
43670           will be replaced by white color.
43671
43672       cmode
43673           Set channel display mode.
43674
43675           It accepts the following values:
43676
43677           combined
43678           separate
43679
43680           Default is "combined".
43681
43682       minamp
43683           Set minimum amplitude used in "log" amplitude scaler.
43684
43685       data
43686           Set data display mode.
43687
43688           It accepts the following values:
43689
43690           magnitude
43691           phase
43692           delay
43693
43694           Default is "magnitude".
43695
43696       channels
43697           Set channels to use when processing audio. By default all are
43698           processed.
43699
43700   showspatial
43701       Convert stereo input audio to a video output, representing the spatial
43702       relationship between two channels.
43703
43704       The filter accepts the following options:
43705
43706       size, s
43707           Specify the video size for the output. For the syntax of this
43708           option, check the "Video size" section in the ffmpeg-utils manual.
43709           Default value is "512x512".
43710
43711       win_size
43712           Set window size. Allowed range is from 1024 to 65536. Default size
43713           is 4096.
43714
43715       win_func
43716           Set window function.
43717
43718           It accepts the following values:
43719
43720           rect
43721           bartlett
43722           hann
43723           hanning
43724           hamming
43725           blackman
43726           welch
43727           flattop
43728           bharris
43729           bnuttall
43730           bhann
43731           sine
43732           nuttall
43733           lanczos
43734           gauss
43735           tukey
43736           dolph
43737           cauchy
43738           parzen
43739           poisson
43740           bohman
43741
43742           Default value is "hann".
43743
43744       overlap
43745           Set ratio of overlap window. Default value is 0.5.  When value is 1
43746           overlap is set to recommended size for specific window function
43747           currently used.
43748
43749   showspectrum
43750       Convert input audio to a video output, representing the audio frequency
43751       spectrum.
43752
43753       The filter accepts the following options:
43754
43755       size, s
43756           Specify the video size for the output. For the syntax of this
43757           option, check the "Video size" section in the ffmpeg-utils manual.
43758           Default value is "640x512".
43759
43760       slide
43761           Specify how the spectrum should slide along the window.
43762
43763           It accepts the following values:
43764
43765           replace
43766               the samples start again on the left when they reach the right
43767
43768           scroll
43769               the samples scroll from right to left
43770
43771           fullframe
43772               frames are only produced when the samples reach the right
43773
43774           rscroll
43775               the samples scroll from left to right
43776
43777           lreplace
43778               the samples start again on the right when they reach the left
43779
43780           Default value is "replace".
43781
43782       mode
43783           Specify display mode.
43784
43785           It accepts the following values:
43786
43787           combined
43788               all channels are displayed in the same row
43789
43790           separate
43791               all channels are displayed in separate rows
43792
43793           Default value is combined.
43794
43795       color
43796           Specify display color mode.
43797
43798           It accepts the following values:
43799
43800           channel
43801               each channel is displayed in a separate color
43802
43803           intensity
43804               each channel is displayed using the same color scheme
43805
43806           rainbow
43807               each channel is displayed using the rainbow color scheme
43808
43809           moreland
43810               each channel is displayed using the moreland color scheme
43811
43812           nebulae
43813               each channel is displayed using the nebulae color scheme
43814
43815           fire
43816               each channel is displayed using the fire color scheme
43817
43818           fiery
43819               each channel is displayed using the fiery color scheme
43820
43821           fruit
43822               each channel is displayed using the fruit color scheme
43823
43824           cool
43825               each channel is displayed using the cool color scheme
43826
43827           magma
43828               each channel is displayed using the magma color scheme
43829
43830           green
43831               each channel is displayed using the green color scheme
43832
43833           viridis
43834               each channel is displayed using the viridis color scheme
43835
43836           plasma
43837               each channel is displayed using the plasma color scheme
43838
43839           cividis
43840               each channel is displayed using the cividis color scheme
43841
43842           terrain
43843               each channel is displayed using the terrain color scheme
43844
43845           Default value is channel.
43846
43847       scale
43848           Specify scale used for calculating intensity color values.
43849
43850           It accepts the following values:
43851
43852           lin linear
43853
43854           sqrt
43855               square root, default
43856
43857           cbrt
43858               cubic root
43859
43860           log logarithmic
43861
43862           4thrt
43863               4th root
43864
43865           5thrt
43866               5th root
43867
43868           Default value is sqrt.
43869
43870       fscale
43871           Specify frequency scale.
43872
43873           It accepts the following values:
43874
43875           lin linear
43876
43877           log logarithmic
43878
43879           Default value is lin.
43880
43881       saturation
43882           Set saturation modifier for displayed colors. Negative values
43883           provide alternative color scheme. 0 is no saturation at all.
43884           Saturation must be in [-10.0, 10.0] range.  Default value is 1.
43885
43886       win_func
43887           Set window function.
43888
43889           It accepts the following values:
43890
43891           rect
43892           bartlett
43893           hann
43894           hanning
43895           hamming
43896           blackman
43897           welch
43898           flattop
43899           bharris
43900           bnuttall
43901           bhann
43902           sine
43903           nuttall
43904           lanczos
43905           gauss
43906           tukey
43907           dolph
43908           cauchy
43909           parzen
43910           poisson
43911           bohman
43912
43913           Default value is "hann".
43914
43915       orientation
43916           Set orientation of time vs frequency axis. Can be "vertical" or
43917           "horizontal". Default is "vertical".
43918
43919       overlap
43920           Set ratio of overlap window. Default value is 0.  When value is 1
43921           overlap is set to recommended size for specific window function
43922           currently used.
43923
43924       gain
43925           Set scale gain for calculating intensity color values.  Default
43926           value is 1.
43927
43928       data
43929           Set which data to display. Can be "magnitude", default or "phase",
43930           or unwrapped phase: "uphase".
43931
43932       rotation
43933           Set color rotation, must be in [-1.0, 1.0] range.  Default value is
43934           0.
43935
43936       start
43937           Set start frequency from which to display spectrogram. Default is
43938           0.
43939
43940       stop
43941           Set stop frequency to which to display spectrogram. Default is 0.
43942
43943       fps Set upper frame rate limit. Default is "auto", unlimited.
43944
43945       legend
43946           Draw time and frequency axes and legends. Default is disabled.
43947
43948       drange
43949           Set dynamic range used to calculate intensity color values. Default
43950           is 120 dBFS.  Allowed range is from 10 to 200.
43951
43952       limit
43953           Set upper limit of input audio samples volume in dBFS. Default is 0
43954           dBFS.  Allowed range is from -100 to 100.
43955
43956       opacity
43957           Set opacity strength when using pixel format output with alpha
43958           component.
43959
43960       The usage is very similar to the showwaves filter; see the examples in
43961       that section.
43962
43963       Examples
43964
43965       •   Large window with logarithmic color scaling:
43966
43967                   showspectrum=s=1280x480:scale=log
43968
43969       •   Complete example for a colored and sliding spectrum per channel
43970           using ffplay:
43971
43972                   ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
43973                                [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
43974
43975   showspectrumpic
43976       Convert input audio to a single video frame, representing the audio
43977       frequency spectrum.
43978
43979       The filter accepts the following options:
43980
43981       size, s
43982           Specify the video size for the output. For the syntax of this
43983           option, check the "Video size" section in the ffmpeg-utils manual.
43984           Default value is "4096x2048".
43985
43986       mode
43987           Specify display mode.
43988
43989           It accepts the following values:
43990
43991           combined
43992               all channels are displayed in the same row
43993
43994           separate
43995               all channels are displayed in separate rows
43996
43997           Default value is combined.
43998
43999       color
44000           Specify display color mode.
44001
44002           It accepts the following values:
44003
44004           channel
44005               each channel is displayed in a separate color
44006
44007           intensity
44008               each channel is displayed using the same color scheme
44009
44010           rainbow
44011               each channel is displayed using the rainbow color scheme
44012
44013           moreland
44014               each channel is displayed using the moreland color scheme
44015
44016           nebulae
44017               each channel is displayed using the nebulae color scheme
44018
44019           fire
44020               each channel is displayed using the fire color scheme
44021
44022           fiery
44023               each channel is displayed using the fiery color scheme
44024
44025           fruit
44026               each channel is displayed using the fruit color scheme
44027
44028           cool
44029               each channel is displayed using the cool color scheme
44030
44031           magma
44032               each channel is displayed using the magma color scheme
44033
44034           green
44035               each channel is displayed using the green color scheme
44036
44037           viridis
44038               each channel is displayed using the viridis color scheme
44039
44040           plasma
44041               each channel is displayed using the plasma color scheme
44042
44043           cividis
44044               each channel is displayed using the cividis color scheme
44045
44046           terrain
44047               each channel is displayed using the terrain color scheme
44048
44049           Default value is intensity.
44050
44051       scale
44052           Specify scale used for calculating intensity color values.
44053
44054           It accepts the following values:
44055
44056           lin linear
44057
44058           sqrt
44059               square root, default
44060
44061           cbrt
44062               cubic root
44063
44064           log logarithmic
44065
44066           4thrt
44067               4th root
44068
44069           5thrt
44070               5th root
44071
44072           Default value is log.
44073
44074       fscale
44075           Specify frequency scale.
44076
44077           It accepts the following values:
44078
44079           lin linear
44080
44081           log logarithmic
44082
44083           Default value is lin.
44084
44085       saturation
44086           Set saturation modifier for displayed colors. Negative values
44087           provide alternative color scheme. 0 is no saturation at all.
44088           Saturation must be in [-10.0, 10.0] range.  Default value is 1.
44089
44090       win_func
44091           Set window function.
44092
44093           It accepts the following values:
44094
44095           rect
44096           bartlett
44097           hann
44098           hanning
44099           hamming
44100           blackman
44101           welch
44102           flattop
44103           bharris
44104           bnuttall
44105           bhann
44106           sine
44107           nuttall
44108           lanczos
44109           gauss
44110           tukey
44111           dolph
44112           cauchy
44113           parzen
44114           poisson
44115           bohman
44116
44117           Default value is "hann".
44118
44119       orientation
44120           Set orientation of time vs frequency axis. Can be "vertical" or
44121           "horizontal". Default is "vertical".
44122
44123       gain
44124           Set scale gain for calculating intensity color values.  Default
44125           value is 1.
44126
44127       legend
44128           Draw time and frequency axes and legends. Default is enabled.
44129
44130       rotation
44131           Set color rotation, must be in [-1.0, 1.0] range.  Default value is
44132           0.
44133
44134       start
44135           Set start frequency from which to display spectrogram. Default is
44136           0.
44137
44138       stop
44139           Set stop frequency to which to display spectrogram. Default is 0.
44140
44141       drange
44142           Set dynamic range used to calculate intensity color values. Default
44143           is 120 dBFS.  Allowed range is from 10 to 200.
44144
44145       limit
44146           Set upper limit of input audio samples volume in dBFS. Default is 0
44147           dBFS.  Allowed range is from -100 to 100.
44148
44149       opacity
44150           Set opacity strength when using pixel format output with alpha
44151           component.
44152
44153       Examples
44154
44155       •   Extract an audio spectrogram of a whole audio track in a 1024x1024
44156           picture using ffmpeg:
44157
44158                   ffmpeg -i audio.flac -lavfi showspectrumpic=s=1024x1024 spectrogram.png
44159
44160   showvolume
44161       Convert input audio volume to a video output.
44162
44163       The filter accepts the following options:
44164
44165       rate, r
44166           Set video rate.
44167
44168       b   Set border width, allowed range is [0, 5]. Default is 1.
44169
44170       w   Set channel width, allowed range is [80, 8192]. Default is 400.
44171
44172       h   Set channel height, allowed range is [1, 900]. Default is 20.
44173
44174       f   Set fade, allowed range is [0, 1]. Default is 0.95.
44175
44176       c   Set volume color expression.
44177
44178           The expression can use the following variables:
44179
44180           VOLUME
44181               Current max volume of channel in dB.
44182
44183           PEAK
44184               Current peak.
44185
44186           CHANNEL
44187               Current channel number, starting from 0.
44188
44189       t   If set, displays channel names. Default is enabled.
44190
44191       v   If set, displays volume values. Default is enabled.
44192
44193       o   Set orientation, can be horizontal: "h" or vertical: "v", default
44194           is "h".
44195
44196       s   Set step size, allowed range is [0, 5]. Default is 0, which means
44197           step is disabled.
44198
44199       p   Set background opacity, allowed range is [0, 1]. Default is 0.
44200
44201       m   Set metering mode, can be peak: "p" or rms: "r", default is "p".
44202
44203       ds  Set display scale, can be linear: "lin" or log: "log", default is
44204           "lin".
44205
44206       dm  In second.  If set to > 0., display a line for the max level in the
44207           previous seconds.  default is disabled: 0.
44208
44209       dmc The color of the max line. Use when "dm" option is set to > 0.
44210           default is: "orange"
44211
44212   showwaves
44213       Convert input audio to a video output, representing the samples waves.
44214
44215       The filter accepts the following options:
44216
44217       size, s
44218           Specify the video size for the output. For the syntax of this
44219           option, check the "Video size" section in the ffmpeg-utils manual.
44220           Default value is "600x240".
44221
44222       mode
44223           Set display mode.
44224
44225           Available values are:
44226
44227           point
44228               Draw a point for each sample.
44229
44230           line
44231               Draw a vertical line for each sample.
44232
44233           p2p Draw a point for each sample and a line between them.
44234
44235           cline
44236               Draw a centered vertical line for each sample.
44237
44238           Default value is "point".
44239
44240       n   Set the number of samples which are printed on the same column. A
44241           larger value will decrease the frame rate. Must be a positive
44242           integer. This option can be set only if the value for rate is not
44243           explicitly specified.
44244
44245       rate, r
44246           Set the (approximate) output frame rate. This is done by setting
44247           the option n. Default value is "25".
44248
44249       split_channels
44250           Set if channels should be drawn separately or overlap. Default
44251           value is 0.
44252
44253       colors
44254           Set colors separated by '|' which are going to be used for drawing
44255           of each channel.
44256
44257       scale
44258           Set amplitude scale.
44259
44260           Available values are:
44261
44262           lin Linear.
44263
44264           log Logarithmic.
44265
44266           sqrt
44267               Square root.
44268
44269           cbrt
44270               Cubic root.
44271
44272           Default is linear.
44273
44274       draw
44275           Set the draw mode. This is mostly useful to set for high n.
44276
44277           Available values are:
44278
44279           scale
44280               Scale pixel values for each drawn sample.
44281
44282           full
44283               Draw every sample directly.
44284
44285           Default value is "scale".
44286
44287       Examples
44288
44289       •   Output the input file audio and the corresponding video
44290           representation at the same time:
44291
44292                   amovie=a.mp3,asplit[out0],showwaves[out1]
44293
44294       •   Create a synthetic signal and show it with showwaves, forcing a
44295           frame rate of 30 frames per second:
44296
44297                   aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
44298
44299   showwavespic
44300       Convert input audio to a single video frame, representing the samples
44301       waves.
44302
44303       The filter accepts the following options:
44304
44305       size, s
44306           Specify the video size for the output. For the syntax of this
44307           option, check the "Video size" section in the ffmpeg-utils manual.
44308           Default value is "600x240".
44309
44310       split_channels
44311           Set if channels should be drawn separately or overlap. Default
44312           value is 0.
44313
44314       colors
44315           Set colors separated by '|' which are going to be used for drawing
44316           of each channel.
44317
44318       scale
44319           Set amplitude scale.
44320
44321           Available values are:
44322
44323           lin Linear.
44324
44325           log Logarithmic.
44326
44327           sqrt
44328               Square root.
44329
44330           cbrt
44331               Cubic root.
44332
44333           Default is linear.
44334
44335       draw
44336           Set the draw mode.
44337
44338           Available values are:
44339
44340           scale
44341               Scale pixel values for each drawn sample.
44342
44343           full
44344               Draw every sample directly.
44345
44346           Default value is "scale".
44347
44348       filter
44349           Set the filter mode.
44350
44351           Available values are:
44352
44353           average
44354               Use average samples values for each drawn sample.
44355
44356           peak
44357               Use peak samples values for each drawn sample.
44358
44359           Default value is "average".
44360
44361       Examples
44362
44363       •   Extract a channel split representation of the wave form of a whole
44364           audio track in a 1024x800 picture using ffmpeg:
44365
44366                   ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
44367
44368   sidedata, asidedata
44369       Delete frame side data, or select frames based on it.
44370
44371       This filter accepts the following options:
44372
44373       mode
44374           Set mode of operation of the filter.
44375
44376           Can be one of the following:
44377
44378           select
44379               Select every frame with side data of "type".
44380
44381           delete
44382               Delete side data of "type". If "type" is not set, delete all
44383               side data in the frame.
44384
44385       type
44386           Set side data type used with all modes. Must be set for "select"
44387           mode. For the list of frame side data types, refer to the
44388           "AVFrameSideDataType" enum in libavutil/frame.h. For example, to
44389           choose "AV_FRAME_DATA_PANSCAN" side data, you must specify
44390           "PANSCAN".
44391
44392   spectrumsynth
44393       Synthesize audio from 2 input video spectrums, first input stream
44394       represents magnitude across time and second represents phase across
44395       time.  The filter will transform from frequency domain as displayed in
44396       videos back to time domain as presented in audio output.
44397
44398       This filter is primarily created for reversing processed showspectrum
44399       filter outputs, but can synthesize sound from other spectrograms too.
44400       But in such case results are going to be poor if the phase data is not
44401       available, because in such cases phase data need to be recreated,
44402       usually it's just recreated from random noise.  For best results use
44403       gray only output ("channel" color mode in showspectrum filter) and
44404       "log" scale for magnitude video and "lin" scale for phase video. To
44405       produce phase, for 2nd video, use "data" option. Inputs videos should
44406       generally use "fullframe" slide mode as that saves resources needed for
44407       decoding video.
44408
44409       The filter accepts the following options:
44410
44411       sample_rate
44412           Specify sample rate of output audio, the sample rate of audio from
44413           which spectrum was generated may differ.
44414
44415       channels
44416           Set number of channels represented in input video spectrums.
44417
44418       scale
44419           Set scale which was used when generating magnitude input spectrum.
44420           Can be "lin" or "log". Default is "log".
44421
44422       slide
44423           Set slide which was used when generating inputs spectrums.  Can be
44424           "replace", "scroll", "fullframe" or "rscroll".  Default is
44425           "fullframe".
44426
44427       win_func
44428           Set window function used for resynthesis.
44429
44430       overlap
44431           Set window overlap. In range "[0, 1]". Default is 1, which means
44432           optimal overlap for selected window function will be picked.
44433
44434       orientation
44435           Set orientation of input videos. Can be "vertical" or "horizontal".
44436           Default is "vertical".
44437
44438       Examples
44439
44440       •   First create magnitude and phase videos from audio, assuming audio
44441           is stereo with 44100 sample rate, then resynthesize videos back to
44442           audio with spectrumsynth:
44443
44444                   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
44445                   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
44446                   ffmpeg -i magnitude.nut -i phase.nut -lavfi spectrumsynth=channels=2:sample_rate=44100:win_func=hann:overlap=0.875:slide=fullframe output.flac
44447
44448   split, asplit
44449       Split input into several identical outputs.
44450
44451       "asplit" works with audio input, "split" with video.
44452
44453       The filter accepts a single parameter which specifies the number of
44454       outputs. If unspecified, it defaults to 2.
44455
44456       Examples
44457
44458       •   Create two separate outputs from the same input:
44459
44460                   [in] split [out0][out1]
44461
44462       •   To create 3 or more outputs, you need to specify the number of
44463           outputs, like in:
44464
44465                   [in] asplit=3 [out0][out1][out2]
44466
44467       •   Create two separate outputs from the same input, one cropped and
44468           one padded:
44469
44470                   [in] split [splitout1][splitout2];
44471                   [splitout1] crop=100:100:0:0    [cropout];
44472                   [splitout2] pad=200:200:100:100 [padout];
44473
44474       •   Create 5 copies of the input audio with ffmpeg:
44475
44476                   ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
44477
44478   zmq, azmq
44479       Receive commands sent through a libzmq client, and forward them to
44480       filters in the filtergraph.
44481
44482       "zmq" and "azmq" work as a pass-through filters. "zmq" must be inserted
44483       between two video filters, "azmq" between two audio filters. Both are
44484       capable to send messages to any filter type.
44485
44486       To enable these filters you need to install the libzmq library and
44487       headers and configure FFmpeg with "--enable-libzmq".
44488
44489       For more information about libzmq see: <http://www.zeromq.org/>
44490
44491       The "zmq" and "azmq" filters work as a libzmq server, which receives
44492       messages sent through a network interface defined by the bind_address
44493       (or the abbreviation "b") option.  Default value of this option is
44494       tcp://localhost:5555. You may want to alter this value to your needs,
44495       but do not forget to escape any ':' signs (see filtergraph escaping).
44496
44497       The received message must be in the form:
44498
44499               <TARGET> <COMMAND> [<ARG>]
44500
44501       TARGET specifies the target of the command, usually the name of the
44502       filter class or a specific filter instance name. The default filter
44503       instance name uses the pattern Parsed_<filter_name>_<index>, but you
44504       can override this by using the filter_name@id syntax (see Filtergraph
44505       syntax).
44506
44507       COMMAND specifies the name of the command for the target filter.
44508
44509       ARG is optional and specifies the optional argument list for the given
44510       COMMAND.
44511
44512       Upon reception, the message is processed and the corresponding command
44513       is injected into the filtergraph. Depending on the result, the filter
44514       will send a reply to the client, adopting the format:
44515
44516               <ERROR_CODE> <ERROR_REASON>
44517               <MESSAGE>
44518
44519       MESSAGE is optional.
44520
44521       Examples
44522
44523       Look at tools/zmqsend for an example of a zmq client which can be used
44524       to send commands processed by these filters.
44525
44526       Consider the following filtergraph generated by ffplay.  In this
44527       example the last overlay filter has an instance name. All other filters
44528       will have default instance names.
44529
44530               ffplay -dumpgraph 1 -f lavfi "
44531               color=s=100x100:c=red  [l];
44532               color=s=100x100:c=blue [r];
44533               nullsrc=s=200x100, zmq [bg];
44534               [bg][l]   overlay     [bg+l];
44535               [bg+l][r] overlay@my=x=100 "
44536
44537       To change the color of the left side of the video, the following
44538       command can be used:
44539
44540               echo Parsed_color_0 c yellow | tools/zmqsend
44541
44542       To change the right side:
44543
44544               echo Parsed_color_1 c pink | tools/zmqsend
44545
44546       To change the position of the right side:
44547
44548               echo overlay@my x 150 | tools/zmqsend
44549

MULTIMEDIA SOURCES

44551       Below is a description of the currently available multimedia sources.
44552
44553   amovie
44554       This is the same as movie source, except it selects an audio stream by
44555       default.
44556
44557   avsynctest
44558       Generate an Audio/Video Sync Test.
44559
44560       Generated stream periodically shows flash video frame and emits beep in
44561       audio.  Useful to inspect A/V sync issues.
44562
44563       It accepts the following options:
44564
44565       size, s
44566           Set output video size. Default value is "hd720".
44567
44568       framerate, fr
44569           Set output video frame rate. Default value is 30.
44570
44571       samplerate, sr
44572           Set output audio sample rate. Default value is 44100.
44573
44574       amplitude, a
44575           Set output audio beep amplitude. Default value is 0.7.
44576
44577       period, p
44578           Set output audio beep period in seconds. Default value is 3.
44579
44580       delay, dl
44581           Set output video flash delay in number of frames. Default value is
44582           0.
44583
44584       cycle, c
44585           Enable cycling of video delays, by default is disabled.
44586
44587       duration, d
44588           Set stream output duration. By default duration is unlimited.
44589
44590       fg, bg, ag
44591           Set foreground/background/additional color.
44592
44593   movie
44594       Read audio and/or video stream(s) from a movie container.
44595
44596       It accepts the following parameters:
44597
44598       filename
44599           The name of the resource to read (not necessarily a file; it can
44600           also be a device or a stream accessed through some protocol).
44601
44602       format_name, f
44603           Specifies the format assumed for the movie to read, and can be
44604           either the name of a container or an input device. If not
44605           specified, the format is guessed from movie_name or by probing.
44606
44607       seek_point, sp
44608           Specifies the seek point in seconds. The frames will be output
44609           starting from this seek point. The parameter is evaluated with
44610           "av_strtod", so the numerical value may be suffixed by an IS
44611           postfix. The default value is "0".
44612
44613       streams, s
44614           Specifies the streams to read. Several streams can be specified,
44615           separated by "+". The source will then have as many outputs, in the
44616           same order. The syntax is explained in the "Stream specifiers"
44617           section in the ffmpeg manual. Two special names, "dv" and "da"
44618           specify respectively the default (best suited) video and audio
44619           stream. Default is "dv", or "da" if the filter is called as
44620           "amovie".
44621
44622       stream_index, si
44623           Specifies the index of the video stream to read. If the value is
44624           -1, the most suitable video stream will be automatically selected.
44625           The default value is "-1". Deprecated. If the filter is called
44626           "amovie", it will select audio instead of video.
44627
44628       loop
44629           Specifies how many times to read the stream in sequence.  If the
44630           value is 0, the stream will be looped infinitely.  Default value is
44631           "1".
44632
44633           Note that when the movie is looped the source timestamps are not
44634           changed, so it will generate non monotonically increasing
44635           timestamps.
44636
44637       discontinuity
44638           Specifies the time difference between frames above which the point
44639           is considered a timestamp discontinuity which is removed by
44640           adjusting the later timestamps.
44641
44642       dec_threads
44643           Specifies the number of threads for decoding
44644
44645       format_opts
44646           Specify format options for the opened file. Format options can be
44647           specified as a list of key=value pairs separated by ':'. The
44648           following example shows how to add protocol_whitelist and
44649           protocol_blacklist options:
44650
44651                   ffplay -f lavfi
44652                   "movie=filename='1.sdp':format_opts='protocol_whitelist=file,rtp,udp\:protocol_blacklist=http'"
44653
44654       It allows overlaying a second video on top of the main input of a
44655       filtergraph, as shown in this graph:
44656
44657               input -----------> deltapts0 --> overlay --> output
44658                                                   ^
44659                                                   |
44660               movie --> scale--> deltapts1 -------+
44661
44662       Examples
44663
44664       •   Skip 3.2 seconds from the start of the AVI file in.avi, and overlay
44665           it on top of the input labelled "in":
44666
44667                   movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over];
44668                   [in] setpts=PTS-STARTPTS [main];
44669                   [main][over] overlay=16:16 [out]
44670
44671       •   Read from a video4linux2 device, and overlay it on top of the input
44672           labelled "in":
44673
44674                   movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over];
44675                   [in] setpts=PTS-STARTPTS [main];
44676                   [main][over] overlay=16:16 [out]
44677
44678       •   Read the first video stream and the audio stream with id 0x81 from
44679           dvd.vob; the video is connected to the pad named "video" and the
44680           audio is connected to the pad named "audio":
44681
44682                   movie=dvd.vob:s=v:0+#0x81 [video] [audio]
44683
44684       Commands
44685
44686       Both movie and amovie support the following commands:
44687
44688       seek
44689           Perform seek using "av_seek_frame".  The syntax is: seek
44690           stream_index|timestamp|flags
44691
44692stream_index: If stream_index is -1, a default stream is
44693               selected, and timestamp is automatically converted from
44694               AV_TIME_BASE units to the stream specific time_base.
44695
44696timestamp: Timestamp in AVStream.time_base units or, if no
44697               stream is specified, in AV_TIME_BASE units.
44698
44699flags: Flags which select direction and seeking mode.
44700
44701       get_duration
44702           Get movie duration in AV_TIME_BASE units.
44703

EXTERNAL LIBRARIES

44705       FFmpeg can be hooked up with a number of external libraries to add
44706       support for more formats. None of them are used by default, their use
44707       has to be explicitly requested by passing the appropriate flags to
44708       ./configure.
44709
44710   Alliance for Open Media (AOM)
44711       FFmpeg can make use of the AOM library for AV1 decoding and encoding.
44712
44713       Go to <http://aomedia.org/> and follow the instructions for installing
44714       the library. Then pass "--enable-libaom" to configure to enable it.
44715
44716   AMD AMF/VCE
44717       FFmpeg can use the AMD Advanced Media Framework library for accelerated
44718       H.264 and HEVC(only windows) encoding on hardware with Video Coding
44719       Engine (VCE).
44720
44721       To enable support you must obtain the AMF framework header
44722       files(version 1.4.9+) from
44723       <https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git>.
44724
44725       Create an "AMF/" directory in the system include path.  Copy the
44726       contents of "AMF/amf/public/include/" into that directory.  Then
44727       configure FFmpeg with "--enable-amf".
44728
44729       Initialization of amf encoder occurs in this order: 1) trying to
44730       initialize through dx11(only windows) 2) trying to initialize through
44731       dx9(only windows) 3) trying to initialize through vulkan
44732
44733       To use h.264(AMD VCE) encoder on linux amdgru-pro version 19.20+ and
44734       amf-amdgpu-pro package(amdgru-pro contains, but does not install
44735       automatically) are required.
44736
44737       This driver can be installed using amdgpu-pro-install script in
44738       official amd driver archive.
44739
44740   AviSynth
44741       FFmpeg can read AviSynth scripts as input. To enable support, pass
44742       "--enable-avisynth" to configure after installing the headers provided
44743       by <https://github.com/AviSynth/AviSynthPlus>.  AviSynth+ can be
44744       configured to install only the headers by either passing
44745       "-DHEADERS_ONLY:bool=on" to the normal CMake-based build system, or by
44746       using the supplied "GNUmakefile".
44747
44748       For Windows, supported AviSynth variants are <http://avisynth.nl> for
44749       32-bit builds and <http://avisynth.nl/index.php/AviSynth+> for 32-bit
44750       and 64-bit builds.
44751
44752       For Linux, macOS, and BSD, the only supported AviSynth variant is
44753       <https://github.com/AviSynth/AviSynthPlus>, starting with version 3.5.
44754
44755           In 2016, AviSynth+ added support for building with GCC. However,
44756           due to the eccentricities of Windows' calling conventions, 32-bit
44757           GCC builds of AviSynth+ are not compatible with typical 32-bit
44758           builds of FFmpeg.
44759
44760           By default, FFmpeg assumes compatibility with 32-bit MSVC builds of
44761           AviSynth+ since that is the most widely-used and entrenched build
44762           configuration.  Users can override this and enable support for
44763           32-bit GCC builds of AviSynth+ by passing "-DAVSC_WIN32_GCC32" to
44764           "--extra-cflags" when configuring FFmpeg.
44765
44766           64-bit builds of FFmpeg are not affected, and can use either MSVC
44767           or GCC builds of AviSynth+ without any special flags.
44768
44769           AviSynth(+) is loaded dynamically.  Distributors can build FFmpeg
44770           with "--enable-avisynth", and the binaries will work regardless of
44771           the end user having AviSynth installed.  If/when an end user would
44772           like to use AviSynth scripts, then they can install AviSynth(+) and
44773           FFmpeg will be able to find and use it to open scripts.
44774
44775   Chromaprint
44776       FFmpeg can make use of the Chromaprint library for generating audio
44777       fingerprints.  Pass "--enable-chromaprint" to configure to enable it.
44778       See <https://acoustid.org/chromaprint>.
44779
44780   codec2
44781       FFmpeg can make use of the codec2 library for codec2 decoding and
44782       encoding.  There is currently no native decoder, so libcodec2 must be
44783       used for decoding.
44784
44785       Go to <http://freedv.org/>, download "Codec 2 source archive".  Build
44786       and install using CMake. Debian users can install the libcodec2-dev
44787       package instead.  Once libcodec2 is installed you can pass
44788       "--enable-libcodec2" to configure to enable it.
44789
44790       The easiest way to use codec2 is with .c2 files, since they contain the
44791       mode information required for decoding.  To encode such a file, use a
44792       .c2 file extension and give the libcodec2 encoder the -mode option:
44793       "ffmpeg -i input.wav -mode 700C output.c2".  Playback is as simple as
44794       "ffplay output.c2".  For a list of supported modes, run "ffmpeg -h
44795       encoder=libcodec2".  Raw codec2 files are also supported.  To make
44796       sense of them the mode in use needs to be specified as a format option:
44797       "ffmpeg -f codec2raw -mode 1300 -i input.raw output.wav".
44798
44799   dav1d
44800       FFmpeg can make use of the dav1d library for AV1 video decoding.
44801
44802       Go to <https://code.videolan.org/videolan/dav1d> and follow the
44803       instructions for installing the library. Then pass "--enable-libdav1d"
44804       to configure to enable it.
44805
44806   davs2
44807       FFmpeg can make use of the davs2 library for AVS2-P2/IEEE1857.4 video
44808       decoding.
44809
44810       Go to <https://github.com/pkuvcl/davs2> and follow the instructions for
44811       installing the library. Then pass "--enable-libdavs2" to configure to
44812       enable it.
44813
44814           libdavs2 is under the GNU Public License Version 2 or later (see
44815           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
44816           details), you must upgrade FFmpeg's license to GPL in order to use
44817           it.
44818
44819   uavs3d
44820       FFmpeg can make use of the uavs3d library for AVS3-P2/IEEE1857.10 video
44821       decoding.
44822
44823       Go to <https://github.com/uavs3/uavs3d> and follow the instructions for
44824       installing the library. Then pass "--enable-libuavs3d" to configure to
44825       enable it.
44826
44827   Game Music Emu
44828       FFmpeg can make use of the Game Music Emu library to read audio from
44829       supported video game music file formats. Pass "--enable-libgme" to
44830       configure to enable it. See
44831       <https://bitbucket.org/mpyne/game-music-emu/overview>.
44832
44833   Intel QuickSync Video
44834       FFmpeg can use Intel QuickSync Video (QSV) for accelerated decoding and
44835       encoding of multiple codecs. To use QSV, FFmpeg must be linked against
44836       the "libmfx" dispatcher, which loads the actual decoding libraries.
44837
44838       The dispatcher is open source and can be downloaded from
44839       <https://github.com/lu-zero/mfx_dispatch.git>. FFmpeg needs to be
44840       configured with the "--enable-libmfx" option and "pkg-config" needs to
44841       be able to locate the dispatcher's ".pc" files.
44842
44843   Kvazaar
44844       FFmpeg can make use of the Kvazaar library for HEVC encoding.
44845
44846       Go to <https://github.com/ultravideo/kvazaar> and follow the
44847       instructions for installing the library. Then pass
44848       "--enable-libkvazaar" to configure to enable it.
44849
44850   LAME
44851       FFmpeg can make use of the LAME library for MP3 encoding.
44852
44853       Go to <http://lame.sourceforge.net/> and follow the instructions for
44854       installing the library.  Then pass "--enable-libmp3lame" to configure
44855       to enable it.
44856
44857   libilbc
44858       iLBC is a narrowband speech codec that has been made freely available
44859       by Google as part of the WebRTC project. libilbc is a packaging
44860       friendly copy of the iLBC codec. FFmpeg can make use of the libilbc
44861       library for iLBC decoding and encoding.
44862
44863       Go to <https://github.com/TimothyGu/libilbc> and follow the
44864       instructions for installing the library. Then pass "--enable-libilbc"
44865       to configure to enable it.
44866
44867   libjxl
44868       JPEG XL is an image format intended to fully replace legacy JPEG for an
44869       extended period of life. See <https://jpegxl.info/> for more
44870       information, and see <https://github.com/libjxl/libjxl> for the library
44871       source. You can pass "--enable-libjxl" to configure in order enable the
44872       libjxl wrapper.
44873
44874   libvpx
44875       FFmpeg can make use of the libvpx library for VP8/VP9 decoding and
44876       encoding.
44877
44878       Go to <http://www.webmproject.org/> and follow the instructions for
44879       installing the library. Then pass "--enable-libvpx" to configure to
44880       enable it.
44881
44882   ModPlug
44883       FFmpeg can make use of this library, originating in Modplug-XMMS, to
44884       read from MOD-like music files.  See
44885       <https://github.com/Konstanty/libmodplug>. Pass "--enable-libmodplug"
44886       to configure to enable it.
44887
44888   OpenCORE, VisualOn, and Fraunhofer libraries
44889       Spun off Google Android sources, OpenCore, VisualOn and Fraunhofer
44890       libraries provide encoders for a number of audio codecs.
44891
44892           OpenCORE and VisualOn libraries are under the Apache License 2.0
44893           (see <http://www.apache.org/licenses/LICENSE-2.0> for details),
44894           which is incompatible to the LGPL version 2.1 and GPL version 2.
44895           You have to upgrade FFmpeg's license to LGPL version 3 (or if you
44896           have enabled GPL components, GPL version 3) by passing
44897           "--enable-version3" to configure in order to use it.
44898
44899           The license of the Fraunhofer AAC library is incompatible with the
44900           GPL.  Therefore, for GPL builds, you have to pass
44901           "--enable-nonfree" to configure in order to use it. To the best of
44902           our knowledge, it is compatible with the LGPL.
44903
44904       OpenCORE AMR
44905
44906       FFmpeg can make use of the OpenCORE libraries for AMR-NB
44907       decoding/encoding and AMR-WB decoding.
44908
44909       Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
44910       instructions for installing the libraries.  Then pass
44911       "--enable-libopencore-amrnb" and/or "--enable-libopencore-amrwb" to
44912       configure to enable them.
44913
44914       VisualOn AMR-WB encoder library
44915
44916       FFmpeg can make use of the VisualOn AMR-WBenc library for AMR-WB
44917       encoding.
44918
44919       Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
44920       instructions for installing the library.  Then pass
44921       "--enable-libvo-amrwbenc" to configure to enable it.
44922
44923       Fraunhofer AAC library
44924
44925       FFmpeg can make use of the Fraunhofer AAC library for AAC decoding &
44926       encoding.
44927
44928       Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
44929       instructions for installing the library.  Then pass
44930       "--enable-libfdk-aac" to configure to enable it.
44931
44932   OpenH264
44933       FFmpeg can make use of the OpenH264 library for H.264 decoding and
44934       encoding.
44935
44936       Go to <http://www.openh264.org/> and follow the instructions for
44937       installing the library. Then pass "--enable-libopenh264" to configure
44938       to enable it.
44939
44940       For decoding, this library is much more limited than the built-in
44941       decoder in libavcodec; currently, this library lacks support for
44942       decoding B-frames and some other main/high profile features. (It
44943       currently only supports constrained baseline profile and CABAC.) Using
44944       it is mostly useful for testing and for taking advantage of Cisco's
44945       patent portfolio license
44946       (<http://www.openh264.org/BINARY_LICENSE.txt>).
44947
44948   OpenJPEG
44949       FFmpeg can use the OpenJPEG libraries for decoding/encoding J2K videos.
44950       Go to <http://www.openjpeg.org/> to get the libraries and follow the
44951       installation instructions.  To enable using OpenJPEG in FFmpeg, pass
44952       "--enable-libopenjpeg" to ./configure.
44953
44954   rav1e
44955       FFmpeg can make use of rav1e (Rust AV1 Encoder) via its C bindings to
44956       encode videos.  Go to <https://github.com/xiph/rav1e/> and follow the
44957       instructions to build the C library. To enable using rav1e in FFmpeg,
44958       pass "--enable-librav1e" to ./configure.
44959
44960   SVT-AV1
44961       FFmpeg can make use of the Scalable Video Technology for AV1 library
44962       for AV1 encoding.
44963
44964       Go to <https://gitlab.com/AOMediaCodec/SVT-AV1/> and follow the
44965       instructions for installing the library. Then pass "--enable-libsvtav1"
44966       to configure to enable it.
44967
44968   TwoLAME
44969       FFmpeg can make use of the TwoLAME library for MP2 encoding.
44970
44971       Go to <http://www.twolame.org/> and follow the instructions for
44972       installing the library.  Then pass "--enable-libtwolame" to configure
44973       to enable it.
44974
44975   VapourSynth
44976       FFmpeg can read VapourSynth scripts as input. To enable support, pass
44977       "--enable-vapoursynth" to configure. Vapoursynth is detected via
44978       "pkg-config". Versions 42 or greater supported.  See
44979       <http://www.vapoursynth.com/>.
44980
44981       Due to security concerns, Vapoursynth scripts will not be autodetected
44982       so the input format has to be forced. For ff* CLI tools, add "-f
44983       vapoursynth" before the input "-i yourscript.vpy".
44984
44985   x264
44986       FFmpeg can make use of the x264 library for H.264 encoding.
44987
44988       Go to <http://www.videolan.org/developers/x264.html> and follow the
44989       instructions for installing the library. Then pass "--enable-libx264"
44990       to configure to enable it.
44991
44992           x264 is under the GNU Public License Version 2 or later (see
44993           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
44994           details), you must upgrade FFmpeg's license to GPL in order to use
44995           it.
44996
44997   x265
44998       FFmpeg can make use of the x265 library for HEVC encoding.
44999
45000       Go to <http://x265.org/developers.html> and follow the instructions for
45001       installing the library. Then pass "--enable-libx265" to configure to
45002       enable it.
45003
45004           x265 is under the GNU Public License Version 2 or later (see
45005           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
45006           details), you must upgrade FFmpeg's license to GPL in order to use
45007           it.
45008
45009   xavs
45010       FFmpeg can make use of the xavs library for AVS encoding.
45011
45012       Go to <http://xavs.sf.net/> and follow the instructions for installing
45013       the library. Then pass "--enable-libxavs" to configure to enable it.
45014
45015   xavs2
45016       FFmpeg can make use of the xavs2 library for AVS2-P2/IEEE1857.4 video
45017       encoding.
45018
45019       Go to <https://github.com/pkuvcl/xavs2> and follow the instructions for
45020       installing the library. Then pass "--enable-libxavs2" to configure to
45021       enable it.
45022
45023           libxavs2 is under the GNU Public License Version 2 or later (see
45024           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
45025           details), you must upgrade FFmpeg's license to GPL in order to use
45026           it.
45027
45028   ZVBI
45029       ZVBI is a VBI decoding library which can be used by FFmpeg to decode
45030       DVB teletext pages and DVB teletext subtitles.
45031
45032       Go to <http://sourceforge.net/projects/zapping/> and follow the
45033       instructions for installing the library. Then pass "--enable-libzvbi"
45034       to configure to enable it.
45035

SUPPORTED FILE FORMATS

45037       You can use the "-formats" and "-codecs" options to have an exhaustive
45038       list.
45039
45040   File Formats
45041       FFmpeg supports the following file formats through the "libavformat"
45042       library:
45043
45044       Name  :  Encoding @tab Decoding @tab Comments
45045       3dostr                     :    @tab X
45046       4xm                        :    @tab X
45047               @tab 4X Technologies format, used in some games.
45048
45049       8088flex TMV               :    @tab X
45050       AAX                        :    @tab X
45051               @tab Audible Enhanced Audio format, used in audiobooks.
45052
45053       AA                         :    @tab X
45054               @tab Audible Format 2, 3, and 4, used in audiobooks.
45055
45056       ACT Voice                  :    @tab X
45057               @tab contains G.729 audio
45058
45059       Adobe Filmstrip            :  X @tab X
45060       Audio IFF (AIFF)           :  X @tab X
45061       American Laser Games MM    :    @tab X
45062               @tab Multimedia format used in games like Mad Dog McCree.
45063
45064       3GPP AMR                   :  X @tab X
45065       Amazing Studio Packed Animation File   :    @tab X
45066               @tab Multimedia format used in game Heart Of Darkness.
45067
45068       Apple HTTP Live Streaming  :    @tab X
45069       Artworx Data Format        :    @tab X
45070       Interplay ACM              :    @tab X
45071               @tab Audio only format used in some Interplay games.
45072
45073       ADP                        :    @tab X
45074               @tab Audio format used on the Nintendo Gamecube.
45075
45076       AFC                        :    @tab X
45077               @tab Audio format used on the Nintendo Gamecube.
45078
45079       ADS/SS2                    :    @tab X
45080               @tab Audio format used on the PS2.
45081
45082       APNG                       :  X @tab X
45083       ASF                        :  X @tab X
45084               @tab Advanced / Active Streaming Format.
45085
45086       AST                        :  X @tab X
45087               @tab Audio format used on the Nintendo Wii.
45088
45089       AVI                        :  X @tab X
45090       AviSynth                   :    @tab X
45091       AVR                        :    @tab X
45092               @tab Audio format used on Mac.
45093
45094       AVS                        :    @tab X
45095               @tab Multimedia format used by the Creature Shock game.
45096
45097       Beam Software SIFF         :    @tab X
45098               @tab Audio and video format used in some games by Beam Software.
45099
45100       Bethesda Softworks VID     :    @tab X
45101               @tab Used in some games from Bethesda Softworks.
45102
45103       Binary text                :    @tab X
45104       Bink                       :    @tab X
45105               @tab Multimedia format used by many games.
45106
45107       Bink Audio                 :    @tab X
45108               @tab Audio only multimedia format used by some games.
45109
45110       Bitmap Brothers JV         :    @tab X
45111               @tab Used in Z and Z95 games.
45112
45113       BRP                        :    @tab X
45114               @tab Argonaut Games format.
45115
45116       Brute Force & Ignorance    :    @tab X
45117               @tab Used in the game Flash Traffic: City of Angels.
45118
45119       BFSTM                      :    @tab X
45120               @tab Audio format used on the Nintendo WiiU (based on BRSTM).
45121
45122       BRSTM                      :    @tab X
45123               @tab Audio format used on the Nintendo Wii.
45124
45125       BW64                       :    @tab X
45126               @tab Broadcast Wave 64bit.
45127
45128       BWF                        :  X @tab X
45129       codec2 (raw)               :  X @tab X
45130               @tab Must be given -mode format option to decode correctly.
45131
45132       codec2 (.c2 files)         :  X @tab X
45133               @tab Contains header with version and mode info, simplifying playback.
45134
45135       CRI ADX                    :  X @tab X
45136               @tab Audio-only format used in console video games.
45137
45138       CRI AIX                    :    @tab X
45139       CRI HCA                    :    @tab X
45140               @tab Audio-only format used in console video games.
45141
45142       Discworld II BMV           :    @tab X
45143       Interplay C93              :    @tab X
45144               @tab Used in the game Cyberia from Interplay.
45145
45146       Delphine Software International CIN  :    @tab X
45147               @tab Multimedia format used by Delphine Software games.
45148
45149       Digital Speech Standard (DSS)  :    @tab X
45150       CD+G                       :    @tab X
45151               @tab Video format used by CD+G karaoke disks
45152
45153       Phantom Cine               :    @tab X
45154       Commodore CDXL             :    @tab X
45155               @tab Amiga CD video format
45156
45157       Core Audio Format          :  X @tab X
45158               @tab Apple Core Audio Format
45159
45160       CRC testing format         :  X @tab
45161       Creative Voice             :  X @tab X
45162               @tab Created for the Sound Blaster Pro.
45163
45164       CRYO APC                   :    @tab X
45165               @tab Audio format used in some games by CRYO Interactive Entertainment.
45166
45167       D-Cinema audio             :  X @tab X
45168       Deluxe Paint Animation     :    @tab X
45169       DCSTR                      :    @tab X
45170       DFA                        :    @tab X
45171               @tab This format is used in Chronomaster game
45172
45173       DirectDraw Surface         :    @tab X
45174       DSD Stream File (DSF)      :    @tab X
45175       DV video                   :  X @tab X
45176       DXA                        :    @tab X
45177               @tab This format is used in the non-Windows version of the Feeble Files
45178                    game and different game cutscenes repacked for use with ScummVM.
45179
45180       Electronic Arts cdata   :     @tab X
45181       Electronic Arts Multimedia   :     @tab X
45182               @tab Used in various EA games; files have extensions like WVE and UV2.
45183
45184       Ensoniq Paris Audio File   :    @tab X
45185       FFM (FFserver live feed)   :  X @tab X
45186       Flash (SWF)                :  X @tab X
45187       Flash 9 (AVM2)             :  X @tab X
45188               @tab Only embedded audio is decoded.
45189
45190       FLI/FLC/FLX animation      :    @tab X
45191               @tab .fli/.flc files
45192
45193       Flash Video (FLV)          :  X @tab X
45194               @tab Macromedia Flash video files
45195
45196       framecrc testing format    :  X @tab
45197       FunCom ISS                 :    @tab X
45198               @tab Audio format used in various games from FunCom like The Longest Journey.
45199
45200       G.723.1                    :  X @tab X
45201       G.726                      :    @tab X @tab Both left- and right-
45202       justified.
45203       G.729 BIT                  :  X @tab X
45204       G.729 raw                  :    @tab X
45205       GENH                       :    @tab X
45206               @tab Audio format for various games.
45207
45208       GIF Animation              :  X @tab X
45209       GXF                        :  X @tab X
45210               @tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley
45211                    playout servers.
45212
45213       HNM  :    @tab X
45214               @tab Only version 4 supported, used in some games from Cryo Interactive
45215
45216       iCEDraw File               :    @tab X
45217       ICO                        :  X @tab X
45218               @tab Microsoft Windows ICO
45219
45220       id Quake II CIN video      :    @tab X
45221       id RoQ                     :  X @tab X
45222               @tab Used in Quake III, Jedi Knight 2 and other computer games.
45223
45224       IEC61937 encapsulation  :  X @tab X
45225       IFF                        :    @tab X
45226               @tab Interchange File Format
45227
45228       IFV                        :    @tab X
45229               @tab A format used by some old CCTV DVRs.
45230
45231       iLBC                       :  X @tab X
45232       Interplay MVE              :    @tab X
45233               @tab Format used in various Interplay computer games.
45234
45235       Iterated Systems ClearVideo  :      @tab  X
45236               @tab I-frames only
45237
45238       IV8                        :    @tab X
45239               @tab A format generated by IndigoVision 8000 video server.
45240
45241       IVF (On2)                  :  X @tab X
45242               @tab A format used by libvpx
45243
45244       Internet Video Recording   :    @tab X
45245       IRCAM                      :  X @tab X
45246       LATM                       :  X @tab X
45247       LMLM4                      :    @tab X
45248               @tab Used by Linux Media Labs MPEG-4 PCI boards
45249
45250       LOAS                       :    @tab X
45251               @tab contains LATM multiplexed AAC audio
45252
45253       LRC                        :  X @tab X
45254       LVF                        :    @tab X
45255       LXF                        :    @tab X
45256               @tab VR native stream format, used by Leitch/Harris' video servers.
45257
45258       Magic Lantern Video (MLV)  :    @tab X
45259       Matroska                   :  X @tab X
45260       Matroska audio             :  X @tab
45261       FFmpeg metadata            :  X @tab X
45262               @tab Metadata in text format.
45263
45264       MAXIS XA                   :    @tab X
45265               @tab Used in Sim City 3000; file extension .xa.
45266
45267       MCA                        :    @tab X
45268               @tab Used in some games from Capcom; file extension .mca.
45269
45270       MD Studio                  :    @tab X
45271       Metal Gear Solid: The Twin Snakes  :  @tab X
45272       Megalux Frame              :    @tab X
45273               @tab Used by Megalux Ultimate Paint
45274
45275       Mobotix .mxg               :    @tab X
45276       Monkey's Audio             :    @tab X
45277       Motion Pixels MVI          :    @tab X
45278       MOV/QuickTime/MP4          :  X @tab X
45279               @tab 3GP, 3GP2, PSP, iPod variants supported
45280
45281       MP2                        :  X @tab X
45282       MP3                        :  X @tab X
45283       MPEG-1 System              :  X @tab X
45284               @tab muxed audio and video, VCD format supported
45285
45286       MPEG-PS (program stream)   :  X @tab X
45287               @tab also known as C<VOB> file, SVCD and DVD format supported
45288
45289       MPEG-TS (transport stream)  :  X @tab X
45290               @tab also known as DVB Transport Stream
45291
45292       MPEG-4                     :  X @tab X
45293               @tab MPEG-4 is a variant of QuickTime.
45294
45295       MSF                        :    @tab X
45296               @tab Audio format used on the PS3.
45297
45298       Mirillis FIC video         :    @tab X
45299               @tab No cursor rendering.
45300
45301       MIDI Sample Dump Standard  :    @tab X
45302       MIME multipart JPEG        :  X @tab
45303       MSN TCP webcam             :    @tab X
45304               @tab Used by MSN Messenger webcam streams.
45305
45306       MTV                        :    @tab X
45307       Musepack                   :    @tab X
45308       Musepack SV8               :    @tab X
45309       Material eXchange Format (MXF)  :  X @tab X
45310               @tab SMPTE 377M, used by D-Cinema, broadcast industry.
45311
45312       Material eXchange Format (MXF), D-10 Mapping  :  X @tab X
45313               @tab SMPTE 386M, D-10/IMX Mapping.
45314
45315       NC camera feed             :    @tab X
45316               @tab NC (AVIP NC4600) camera streams
45317
45318       NIST SPeech HEader REsources  :    @tab X
45319       Computerized Speech Lab NSP  :    @tab X
45320       NTT TwinVQ (VQF)           :    @tab X
45321               @tab Nippon Telegraph and Telephone Corporation TwinVQ.
45322
45323       Nullsoft Streaming Video   :    @tab X
45324       NuppelVideo                :    @tab X
45325       NUT                        :  X @tab X
45326               @tab NUT Open Container Format
45327
45328       Ogg                        :  X @tab X
45329       Playstation Portable PMP   :    @tab X
45330       Portable Voice Format      :    @tab X
45331       TechnoTrend PVA            :    @tab X
45332               @tab Used by TechnoTrend DVB PCI boards.
45333
45334       QCP                        :    @tab X
45335       raw ADTS (AAC)             :  X @tab X
45336       raw AC-3                   :  X @tab X
45337       raw AMR-NB                 :    @tab X
45338       raw AMR-WB                 :    @tab X
45339       raw aptX                   :  X @tab X
45340       raw aptX HD                :  X @tab X
45341       raw Chinese AVS video      :  X @tab X
45342       raw DFPWM                  :  X @tab X
45343       raw Dirac                  :  X @tab X
45344       raw DNxHD                  :  X @tab X
45345       raw DTS                    :  X @tab X
45346       raw DTS-HD                 :    @tab X
45347       raw E-AC-3                 :  X @tab X
45348       raw FLAC                   :  X @tab X
45349       raw GSM                    :    @tab X
45350       raw H.261                  :  X @tab X
45351       raw H.263                  :  X @tab X
45352       raw H.264                  :  X @tab X
45353       raw HEVC                   :  X @tab X
45354       raw Ingenient MJPEG        :    @tab X
45355       raw MJPEG                  :  X @tab X
45356       raw MLP                    :    @tab X
45357       raw MPEG                   :    @tab X
45358       raw MPEG-1                 :    @tab X
45359       raw MPEG-2                 :    @tab X
45360       raw MPEG-4                 :  X @tab X
45361       raw NULL                   :  X @tab
45362       raw video                  :  X @tab X
45363       raw id RoQ                 :  X @tab
45364       raw OBU                    :  X @tab X
45365       raw SBC                    :  X @tab X
45366       raw Shorten                :    @tab X
45367       raw TAK                    :    @tab X
45368       raw TrueHD                 :  X @tab X
45369       raw VC-1                   :  X @tab X
45370       raw PCM A-law              :  X @tab X
45371       raw PCM mu-law             :  X @tab X
45372       raw PCM Archimedes VIDC    :  X @tab X
45373       raw PCM signed 8 bit       :  X @tab X
45374       raw PCM signed 16 bit big-endian   :  X @tab X
45375       raw PCM signed 16 bit little-endian   :  X @tab X
45376       raw PCM signed 24 bit big-endian   :  X @tab X
45377       raw PCM signed 24 bit little-endian   :  X @tab X
45378       raw PCM signed 32 bit big-endian   :  X @tab X
45379       raw PCM signed 32 bit little-endian   :  X @tab X
45380       raw PCM signed 64 bit big-endian   :  X @tab X
45381       raw PCM signed 64 bit little-endian   :  X @tab X
45382       raw PCM unsigned 8 bit     :  X @tab X
45383       raw PCM unsigned 16 bit big-endian   :  X @tab X
45384       raw PCM unsigned 16 bit little-endian   :  X @tab X
45385       raw PCM unsigned 24 bit big-endian   :  X @tab X
45386       raw PCM unsigned 24 bit little-endian   :  X @tab X
45387       raw PCM unsigned 32 bit big-endian   :  X @tab X
45388       raw PCM unsigned 32 bit little-endian   :  X @tab X
45389       raw PCM 16.8 floating point little-endian  :    @tab X
45390       raw PCM 24.0 floating point little-endian  :    @tab X
45391       raw PCM floating-point 32 bit big-endian   :  X @tab X
45392       raw PCM floating-point 32 bit little-endian   :  X @tab X
45393       raw PCM floating-point 64 bit big-endian   :  X @tab X
45394       raw PCM floating-point 64 bit little-endian   :  X @tab X
45395       RDT                        :    @tab X
45396       REDCODE R3D                :    @tab X
45397               @tab File format used by RED Digital cameras, contains JPEG 2000 frames and PCM audio.
45398
45399       RealMedia                  :  X @tab X
45400       Redirector                 :    @tab X
45401       RedSpark                   :    @tab X
45402       Renderware TeXture Dictionary  :    @tab X
45403       Resolume DXV               :    @tab X
45404       RF64                       :    @tab X
45405       RL2                        :    @tab X
45406               @tab Audio and video format used in some games by Entertainment Software Partners.
45407
45408       RPL/ARMovie                :    @tab X
45409       Lego Mindstorms RSO        :  X @tab X
45410       RSD                        :    @tab X
45411       RTMP                       :  X @tab X
45412               @tab Output is performed by publishing stream to RTMP server
45413
45414       RTP                        :  X @tab X
45415       RTSP                       :  X @tab X
45416       Sample Dump eXchange       :    @tab X
45417       SAP                        :  X @tab X
45418       SBG                        :    @tab X
45419       SDP                        :    @tab X
45420       SER                        :    @tab X
45421       Sega FILM/CPK              :  X @tab X
45422               @tab Used in many Sega Saturn console games.
45423
45424       Silicon Graphics Movie     :    @tab X
45425       Sierra SOL                 :    @tab X
45426               @tab .sol files used in Sierra Online games.
45427
45428       Sierra VMD                 :    @tab X
45429               @tab Used in Sierra CD-ROM games.
45430
45431       Smacker                    :    @tab X
45432               @tab Multimedia format used by many games.
45433
45434       SMJPEG                     :  X @tab X
45435               @tab Used in certain Loki game ports.
45436
45437       SMPTE 337M encapsulation   :    @tab X
45438       Smush                      :    @tab X
45439               @tab Multimedia format used in some LucasArts games.
45440
45441       Sony OpenMG (OMA)          :  X @tab X
45442               @tab Audio format used in Sony Sonic Stage and Sony Vegas.
45443
45444       Sony PlayStation STR       :    @tab X
45445       Sony Wave64 (W64)          :  X @tab X
45446       SoX native format          :  X @tab X
45447       SUN AU format              :  X @tab X
45448       SUP raw PGS subtitles      :  X @tab X
45449       SVAG                       :    @tab X
45450               @tab Audio format used in Konami PS2 games.
45451
45452       TDSC                       :    @tab X
45453       Text files                 :    @tab X
45454       THP                        :    @tab X
45455               @tab Used on the Nintendo GameCube.
45456
45457       Tiertex Limited SEQ        :    @tab X
45458               @tab Tiertex .seq files used in the DOS CD-ROM version of the game Flashback.
45459
45460       True Audio                 :  X @tab X
45461       VAG                        :    @tab X
45462               @tab Audio format used in many Sony PS2 games.
45463
45464       VC-1 test bitstream        :  X @tab X
45465       Vidvox Hap                 :  X @tab X
45466       Vivo                       :    @tab X
45467       VPK                        :    @tab X
45468               @tab Audio format used in Sony PS games.
45469
45470       WAV                        :  X @tab X
45471       WavPack                    :  X @tab X
45472       WebM                       :  X @tab X
45473       Windows Televison (WTV)    :  X @tab X
45474       Wing Commander III movie   :    @tab X
45475               @tab Multimedia format used in Origin's Wing Commander III computer game.
45476
45477       Westwood Studios audio     :  X @tab X
45478               @tab Multimedia format used in Westwood Studios games.
45479
45480       Westwood Studios VQA       :    @tab X
45481               @tab Multimedia format used in Westwood Studios games.
45482
45483       Wideband Single-bit Data (WSD)  :    @tab X
45484       WVE                        :    @tab X
45485       XMV                        :    @tab X
45486               @tab Microsoft video container used in Xbox games.
45487
45488       XVAG                       :    @tab X
45489               @tab Audio format used on the PS3.
45490
45491       xWMA                       :    @tab X
45492               @tab Microsoft audio container used by XAudio 2.
45493
45494       eXtended BINary text (XBIN)  :  @tab X
45495       YUV4MPEG pipe              :  X @tab X
45496       Psygnosis YOP              :    @tab X
45497
45498       "X" means that the feature in that column (encoding / decoding) is
45499       supported.
45500
45501   Image Formats
45502       FFmpeg can read and write images for each frame of a video sequence.
45503       The following image formats are supported:
45504
45505       Name  :  Encoding @tab Decoding @tab Comments
45506       .Y.U.V        :  X @tab X
45507               @tab one raw file per component
45508
45509       Alias PIX     :  X @tab X
45510               @tab Alias/Wavefront PIX image format
45511
45512       animated GIF  :  X @tab X
45513       APNG          :  X @tab X
45514               @tab Animated Portable Network Graphics
45515
45516       BMP           :  X @tab X
45517               @tab Microsoft BMP image
45518
45519       BRender PIX   :    @tab X
45520               @tab Argonaut BRender 3D engine image format.
45521
45522       CRI           :    @tab X
45523               @tab Cintel RAW
45524
45525       DPX           :  X @tab X
45526               @tab Digital Picture Exchange
45527
45528       EXR           :    @tab X
45529               @tab OpenEXR
45530
45531       FITS          :  X @tab X
45532               @tab Flexible Image Transport System
45533
45534       IMG           :    @tab X
45535               @tab GEM Raster image
45536
45537       JPEG          :  X @tab X
45538               @tab Progressive JPEG is not supported.
45539
45540       JPEG 2000     :  X @tab X
45541       JPEG-LS       :  X @tab X
45542       LJPEG         :  X @tab
45543               @tab Lossless JPEG
45544
45545       MSP           :    @tab X
45546               @tab Microsoft Paint image
45547
45548       PAM           :  X @tab X
45549               @tab PAM is a PNM extension with alpha support.
45550
45551       PBM           :  X @tab X
45552               @tab Portable BitMap image
45553
45554       PCD           :    @tab X
45555               @tab PhotoCD
45556
45557       PCX           :  X @tab X
45558               @tab PC Paintbrush
45559
45560       PFM           :  X @tab X
45561               @tab Portable FloatMap image
45562
45563       PGM           :  X @tab X
45564               @tab Portable GrayMap image
45565
45566       PGMYUV        :  X @tab X
45567               @tab PGM with U and V components in YUV 4:2:0
45568
45569       PGX           :    @tab X
45570               @tab PGX file decoder
45571
45572       PHM           :  X @tab X
45573               @tab Portable HalfFloatMap image
45574
45575       PIC           :  @tab X
45576               @tab Pictor/PC Paint
45577
45578       PNG           :  X @tab X
45579               @tab Portable Network Graphics image
45580
45581       PPM           :  X @tab X
45582               @tab Portable PixelMap image
45583
45584       PSD           :    @tab X
45585               @tab Photoshop
45586
45587       PTX           :    @tab X
45588               @tab V.Flash PTX format
45589
45590       QOI           :  X @tab X
45591               @tab Quite OK Image format
45592
45593       SGI           :  X @tab X
45594               @tab SGI RGB image format
45595
45596       Sun Rasterfile   :  X @tab X
45597               @tab Sun RAS image format
45598
45599       TIFF          :  X @tab X
45600               @tab YUV, JPEG and some extension is not supported yet.
45601
45602       Truevision Targa   :  X @tab X
45603               @tab Targa (.TGA) image format
45604
45605       VBN   :  X @tab X
45606               @tab Vizrt Binary Image format
45607
45608       WebP          :  E @tab X
45609               @tab WebP image format, encoding supported through external library libwebp
45610
45611       XBM   :  X @tab X
45612               @tab X BitMap image format
45613
45614       XFace  :  X @tab X
45615               @tab X-Face image format
45616
45617       XPM   :    @tab X
45618               @tab X PixMap image format
45619
45620       XWD   :  X @tab X
45621               @tab X Window Dump image format
45622
45623       "X" means that the feature in that column (encoding / decoding) is
45624       supported.
45625
45626       "E" means that support is provided through an external library.
45627
45628   Video Codecs
45629       Name  :  Encoding @tab Decoding @tab Comments
45630       4X Movie                :      @tab  X
45631               @tab Used in certain computer games.
45632
45633       8088flex TMV            :      @tab  X
45634       A64 multicolor          :   X  @tab
45635               @tab Creates video suitable to be played on a commodore 64 (multicolor mode).
45636
45637       Amazing Studio PAF Video  :      @tab  X
45638       American Laser Games MM   :     @tab X
45639               @tab Used in games like Mad Dog McCree.
45640
45641       Amuse Graphics Movie    :      @tab  X
45642       AMV Video               :   X  @tab  X
45643               @tab Used in Chinese MP3 players.
45644
45645       ANSI/ASCII art          :      @tab  X
45646       Apple Intermediate Codec  :      @tab  X
45647       Apple MJPEG-B           :      @tab  X
45648       Apple Pixlet            :      @tab  X
45649       Apple ProRes            :   X  @tab  X
45650               @tab fourcc: apch,apcn,apcs,apco,ap4h,ap4x
45651
45652       Apple QuickDraw         :      @tab  X
45653               @tab fourcc: qdrw
45654
45655       Argonaut Video          :      @tab  X
45656               @tab Used in some Argonaut games.
45657
45658       Asus v1                 :   X  @tab  X
45659               @tab fourcc: ASV1
45660
45661       Asus v2                 :   X  @tab  X
45662               @tab fourcc: ASV2
45663
45664       ATI VCR1                :      @tab  X
45665               @tab fourcc: VCR1
45666
45667       ATI VCR2                :      @tab  X
45668               @tab fourcc: VCR2
45669
45670       Auravision Aura         :      @tab  X
45671       Auravision Aura 2       :      @tab  X
45672       Autodesk Animator Flic video   :      @tab  X
45673       Autodesk RLE            :      @tab  X
45674               @tab fourcc: AASC
45675
45676       AV1                     :   E  @tab  E
45677               @tab Supported through external libraries libaom, libdav1d, librav1e and libsvtav1
45678
45679       Avid 1:1 10-bit RGB Packer   :   X  @tab  X
45680               @tab fourcc: AVrp
45681
45682       AVS (Audio Video Standard) video   :      @tab  X
45683               @tab Video encoding used by the Creature Shock game.
45684
45685       AVS2-P2/IEEE1857.4      :   E  @tab  E
45686               @tab Supported through external libraries libxavs2 and libdavs2
45687
45688       AVS3-P2/IEEE1857.10     :      @tab  E
45689               @tab Supported through external library libuavs3d
45690
45691       AYUV                    :   X  @tab  X
45692               @tab Microsoft uncompressed packed 4:4:4:4
45693
45694       Beam Software VB        :      @tab  X
45695       Bethesda VID video      :      @tab  X
45696               @tab Used in some games from Bethesda Softworks.
45697
45698       Bink Video              :      @tab  X
45699       BitJazz SheerVideo      :      @tab  X
45700       Bitmap Brothers JV video   :    @tab X
45701       y41p Brooktree uncompressed 4:1:1 12-bit      :   X  @tab  X
45702       Brooktree ProSumer Video   :      @tab  X
45703               @tab fourcc: BT20
45704
45705       Brute Force & Ignorance    :    @tab X
45706               @tab Used in the game Flash Traffic: City of Angels.
45707
45708       C93 video               :      @tab  X
45709               @tab Codec used in Cyberia game.
45710
45711       CamStudio               :      @tab  X
45712               @tab fourcc: CSCD
45713
45714       CD+G                    :      @tab  X
45715               @tab Video codec for CD+G karaoke disks
45716
45717       CDXL                    :      @tab  X
45718               @tab Amiga CD video codec
45719
45720       Chinese AVS video       :   E  @tab  X
45721               @tab AVS1-P2, JiZhun profile, encoding through external library libxavs
45722
45723       Delphine Software International CIN video   :      @tab  X
45724               @tab Codec used in Delphine Software International games.
45725
45726       Discworld II BMV Video  :      @tab  X
45727       CineForm HD             :   X  @tab  X
45728       Canopus HQ              :      @tab  X
45729       Canopus HQA             :      @tab  X
45730       Canopus HQX             :      @tab  X
45731       Canopus Lossless Codec  :      @tab  X
45732       CDToons                 :      @tab  X
45733               @tab Codec used in various Broderbund games.
45734
45735       Cinepak                 :      @tab  X
45736       Cirrus Logic AccuPak    :   X  @tab  X
45737               @tab fourcc: CLJR
45738
45739       CPiA Video Format       :      @tab  X
45740       Creative YUV (CYUV)     :      @tab  X
45741       DFA                     :      @tab  X
45742               @tab Codec used in Chronomaster game.
45743
45744       Dirac                   :   E  @tab  X
45745               @tab supported though the native vc2 (Dirac Pro) encoder
45746
45747       Deluxe Paint Animation  :      @tab  X
45748       DNxHD                   :    X @tab  X
45749               @tab aka SMPTE VC3
45750
45751       Duck TrueMotion 1.0    :      @tab  X
45752               @tab fourcc: DUCK
45753
45754       Duck TrueMotion 2.0     :      @tab  X
45755               @tab fourcc: TM20
45756
45757       Duck TrueMotion 2.0 RT  :      @tab  X
45758               @tab fourcc: TR20
45759
45760       DV (Digital Video)      :   X  @tab  X
45761       Dxtory capture format   :      @tab  X
45762       Feeble Files/ScummVM DXA   :      @tab  X
45763               @tab Codec originally used in Feeble Files game.
45764
45765       Electronic Arts CMV video   :      @tab  X
45766               @tab Used in NHL 95 game.
45767
45768       Electronic Arts Madcow video   :      @tab  X
45769       Electronic Arts TGV video   :      @tab  X
45770       Electronic Arts TGQ video   :      @tab  X
45771       Electronic Arts TQI video   :      @tab  X
45772       Escape 124              :      @tab  X
45773       Escape 130              :      @tab  X
45774       FFmpeg video codec #1   :   X  @tab  X
45775               @tab lossless codec (fourcc: FFV1)
45776
45777       Flash Screen Video v1   :   X  @tab  X
45778               @tab fourcc: FSV1
45779
45780       Flash Screen Video v2   :   X  @tab  X
45781       Flash Video (FLV)       :   X  @tab  X
45782               @tab Sorenson H.263 used in Flash
45783
45784       FM Screen Capture Codec   :      @tab  X
45785       Forward Uncompressed    :      @tab  X
45786       Fraps                   :      @tab  X
45787       Go2Meeting              :      @tab  X
45788               @tab fourcc: G2M2, G2M3
45789
45790       Go2Webinar              :      @tab  X
45791               @tab fourcc: G2M4
45792
45793       Gremlin Digital Video   :      @tab  X
45794       H.261                   :   X  @tab  X
45795       H.263 / H.263-1996      :   X  @tab  X
45796       H.263+ / H.263-1998 / H.263 version 2   :   X  @tab  X
45797       H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10   :   E  @tab  X
45798               @tab encoding supported through external library libx264 and OpenH264
45799
45800       HEVC                    :   X  @tab  X
45801               @tab encoding supported through external library libx265 and libkvazaar
45802
45803       HNM version 4           :      @tab  X
45804       HuffYUV                 :   X  @tab  X
45805       HuffYUV FFmpeg variant  :   X  @tab  X
45806       IBM Ultimotion          :      @tab  X
45807               @tab fourcc: ULTI
45808
45809       id Cinematic video      :      @tab  X
45810               @tab Used in Quake II.
45811
45812       id RoQ video            :   X  @tab  X
45813               @tab Used in Quake III, Jedi Knight 2, other computer games.
45814
45815       IFF ILBM                :      @tab  X
45816               @tab IFF interleaved bitmap
45817
45818       IFF ByteRun1            :      @tab  X
45819               @tab IFF run length encoded bitmap
45820
45821       Infinity IMM4           :      @tab  X
45822       Intel H.263             :      @tab  X
45823       Intel Indeo 2           :      @tab  X
45824       Intel Indeo 3           :      @tab  X
45825       Intel Indeo 4           :      @tab  X
45826       Intel Indeo 5           :      @tab  X
45827       Interplay C93           :      @tab  X
45828               @tab Used in the game Cyberia from Interplay.
45829
45830       Interplay MVE video     :      @tab  X
45831               @tab Used in Interplay .MVE files.
45832
45833       J2K  :   X  @tab  X
45834       Karl Morton's video codec   :      @tab  X
45835               @tab Codec used in Worms games.
45836
45837       Kega Game Video (KGV1)  :       @tab  X
45838               @tab Kega emulator screen capture codec.
45839
45840       Lagarith                :      @tab  X
45841       LCL (LossLess Codec Library) MSZH   :      @tab  X
45842       LCL (LossLess Codec Library) ZLIB   :   E  @tab  E
45843       LOCO                    :      @tab  X
45844       LucasArts SANM/Smush    :      @tab  X
45845               @tab Used in LucasArts games / SMUSH animations.
45846
45847       lossless MJPEG          :   X  @tab  X
45848       MagicYUV Video          :   X  @tab  X
45849       Mandsoft Screen Capture Codec   :      @tab  X
45850       Microsoft ATC Screen    :      @tab  X
45851               @tab Also known as Microsoft Screen 3.
45852
45853       Microsoft Expression Encoder Screen   :      @tab  X
45854               @tab Also known as Microsoft Titanium Screen 2.
45855
45856       Microsoft RLE           :      @tab  X
45857       Microsoft Screen 1      :      @tab  X
45858               @tab Also known as Windows Media Video V7 Screen.
45859
45860       Microsoft Screen 2      :      @tab  X
45861               @tab Also known as Windows Media Video V9 Screen.
45862
45863       Microsoft Video 1       :      @tab  X
45864       Mimic                   :      @tab  X
45865               @tab Used in MSN Messenger Webcam streams.
45866
45867       Miro VideoXL            :      @tab  X
45868               @tab fourcc: VIXL
45869
45870       MJPEG (Motion JPEG)     :   X  @tab  X
45871       Mobotix MxPEG video     :      @tab  X
45872       Motion Pixels video     :      @tab  X
45873       MPEG-1 video            :   X  @tab  X
45874       MPEG-2 video            :   X  @tab  X
45875       MPEG-4 part 2           :   X  @tab  X
45876               @tab libxvidcore can be used alternatively for encoding.
45877
45878       MPEG-4 part 2 Microsoft variant version 1   :      @tab  X
45879       MPEG-4 part 2 Microsoft variant version 2   :   X  @tab  X
45880       MPEG-4 part 2 Microsoft variant version 3   :   X  @tab  X
45881       Newtek SpeedHQ                :   X  @tab  X
45882       Nintendo Gamecube THP video   :      @tab  X
45883       NotchLC                 :      @tab  X
45884       NuppelVideo/RTjpeg      :      @tab  X
45885               @tab Video encoding used in NuppelVideo files.
45886
45887       On2 VP3                 :      @tab  X
45888               @tab still experimental
45889
45890       On2 VP4                 :      @tab  X
45891               @tab fourcc: VP40
45892
45893       On2 VP5                 :      @tab  X
45894               @tab fourcc: VP50
45895
45896       On2 VP6                 :      @tab  X
45897               @tab fourcc: VP60,VP61,VP62
45898
45899       On2 VP7                 :      @tab  X
45900               @tab fourcc: VP70,VP71
45901
45902       VP8                     :   E  @tab  X
45903               @tab fourcc: VP80, encoding supported through external library libvpx
45904
45905       VP9                     :   E  @tab  X
45906               @tab encoding supported through external library libvpx
45907
45908       Pinnacle TARGA CineWave YUV16  :      @tab  X
45909               @tab fourcc: Y216
45910
45911       Q-team QPEG             :      @tab  X
45912               @tab fourccs: QPEG, Q1.0, Q1.1
45913
45914       QuickTime 8BPS video    :      @tab  X
45915       QuickTime Animation (RLE) video   :   X  @tab  X
45916               @tab fourcc: 'rle '
45917
45918       QuickTime Graphics (SMC)   :   X  @tab  X
45919               @tab fourcc: 'smc '
45920
45921       QuickTime video (RPZA)  :   X  @tab  X
45922               @tab fourcc: rpza
45923
45924       R10K AJA Kona 10-bit RGB Codec      :   X  @tab  X
45925       R210 Quicktime Uncompressed RGB 10-bit      :   X  @tab  X
45926       Raw Video               :   X  @tab  X
45927       RealVideo 1.0           :   X  @tab  X
45928       RealVideo 2.0           :   X  @tab  X
45929       RealVideo 3.0           :      @tab  X
45930               @tab still far from ideal
45931
45932       RealVideo 4.0           :      @tab  X
45933       Renderware TXD (TeXture Dictionary)   :      @tab  X
45934               @tab Texture dictionaries used by the Renderware Engine.
45935
45936       RL2 video               :      @tab  X
45937               @tab used in some games by Entertainment Software Partners
45938
45939       ScreenPressor           :      @tab  X
45940       Screenpresso            :      @tab  X
45941       Screen Recorder Gold Codec   :      @tab  X
45942       Sierra VMD video        :      @tab  X
45943               @tab Used in Sierra VMD files.
45944
45945       Silicon Graphics Motion Video Compressor 1 (MVC1)   :      @tab  X
45946       Silicon Graphics Motion Video Compressor 2 (MVC2)   :      @tab  X
45947       Silicon Graphics RLE 8-bit video   :      @tab  X
45948       Smacker video           :      @tab  X
45949               @tab Video encoding used in Smacker.
45950
45951       SMPTE VC-1              :      @tab  X
45952       Snow                    :   X  @tab  X
45953               @tab experimental wavelet codec (fourcc: SNOW)
45954
45955       Sony PlayStation MDEC (Motion DECoder)   :      @tab  X
45956       Sorenson Vector Quantizer 1   :   X  @tab  X
45957               @tab fourcc: SVQ1
45958
45959       Sorenson Vector Quantizer 3   :      @tab  X
45960               @tab fourcc: SVQ3
45961
45962       Sunplus JPEG (SP5X)     :      @tab  X
45963               @tab fourcc: SP5X
45964
45965       TechSmith Screen Capture Codec   :      @tab  X
45966               @tab fourcc: TSCC
45967
45968       TechSmith Screen Capture Codec 2   :      @tab  X
45969               @tab fourcc: TSC2
45970
45971       Theora                  :   E  @tab  X
45972               @tab encoding supported through external library libtheora
45973
45974       Tiertex Limited SEQ video   :      @tab  X
45975               @tab Codec used in DOS CD-ROM FlashBack game.
45976
45977       Ut Video                :   X  @tab  X
45978       v210 QuickTime uncompressed 4:2:2 10-bit      :   X  @tab  X
45979       v308 QuickTime uncompressed 4:4:4             :   X  @tab  X
45980       v408 QuickTime uncompressed 4:4:4:4           :   X  @tab  X
45981       v410 QuickTime uncompressed 4:4:4 10-bit      :   X  @tab  X
45982       VBLE Lossless Codec     :      @tab  X
45983       VMware Screen Codec / VMware Video   :      @tab  X
45984               @tab Codec used in videos captured by VMware.
45985
45986       Westwood Studios VQA (Vector Quantized Animation) video   :      @tab
45987       X
45988       Windows Media Image     :      @tab  X
45989       Windows Media Video 7   :   X  @tab  X
45990       Windows Media Video 8   :   X  @tab  X
45991       Windows Media Video 9   :      @tab  X
45992               @tab not completely working
45993
45994       Wing Commander III / Xan   :      @tab  X
45995               @tab Used in Wing Commander III .MVE files.
45996
45997       Wing Commander IV / Xan   :      @tab  X
45998               @tab Used in Wing Commander IV.
45999
46000       Winnov WNV1             :      @tab  X
46001       WMV7                    :   X  @tab  X
46002       YAMAHA SMAF             :   X  @tab  X
46003       Psygnosis YOP Video     :      @tab  X
46004       yuv4                    :   X  @tab  X
46005               @tab libquicktime uncompressed packed 4:2:0
46006
46007       ZeroCodec Lossless Video  :      @tab  X
46008       ZLIB                    :   X  @tab  X
46009               @tab part of LCL, encoder experimental
46010
46011       Zip Motion Blocks Video   :    X @tab  X
46012               @tab Encoder works only in PAL8.
46013
46014       "X" means that the feature in that column (encoding / decoding) is
46015       supported.
46016
46017       "E" means that support is provided through an external library.
46018
46019   Audio Codecs
46020       Name  :  Encoding @tab Decoding @tab Comments
46021       8SVX exponential        :      @tab  X
46022       8SVX fibonacci          :      @tab  X
46023       AAC                     :  EX  @tab  X
46024               @tab encoding supported through internal encoder and external library libfdk-aac
46025
46026       AAC+                    :   E  @tab  IX
46027               @tab encoding supported through external library libfdk-aac
46028
46029       AC-3                    :  IX  @tab  IX
46030       ACELP.KELVIN            :      @tab  X
46031       ADPCM 4X Movie          :      @tab  X
46032       ADPCM Yamaha AICA       :      @tab  X
46033       ADPCM AmuseGraphics Movie  :     @tab  X
46034       ADPCM Argonaut Games    :  X   @tab  X
46035       ADPCM CDROM XA          :      @tab  X
46036       ADPCM Creative Technology  :      @tab  X
46037               @tab 16 -E<gt> 4, 8 -E<gt> 4, 8 -E<gt> 3, 8 -E<gt> 2
46038
46039       ADPCM Electronic Arts   :      @tab  X
46040               @tab Used in various EA titles.
46041
46042       ADPCM Electronic Arts Maxis CDROM XS   :      @tab  X
46043               @tab Used in Sim City 3000.
46044
46045       ADPCM Electronic Arts R1   :      @tab  X
46046       ADPCM Electronic Arts R2   :      @tab  X
46047       ADPCM Electronic Arts R3   :      @tab  X
46048       ADPCM Electronic Arts XAS  :      @tab  X
46049       ADPCM G.722             :   X  @tab  X
46050       ADPCM G.726             :   X  @tab  X
46051       ADPCM IMA Acorn Replay  :      @tab  X
46052       ADPCM IMA AMV           :   X  @tab  X
46053               @tab Used in AMV files
46054
46055       ADPCM IMA Cunning Developments   :      @tab  X
46056       ADPCM IMA Electronic Arts EACS   :      @tab  X
46057       ADPCM IMA Electronic Arts SEAD   :      @tab  X
46058       ADPCM IMA Funcom        :      @tab  X
46059       ADPCM IMA High Voltage Software ALP       :   X  @tab  X
46060       ADPCM IMA QuickTime     :   X  @tab  X
46061       ADPCM IMA Simon & Schuster Interactive    :   X  @tab  X
46062       ADPCM IMA Ubisoft APM   :   X  @tab  X
46063       ADPCM IMA Loki SDL MJPEG   :      @tab  X
46064       ADPCM IMA WAV           :   X  @tab  X
46065       ADPCM IMA Westwood      :      @tab  X
46066       ADPCM ISS IMA           :      @tab  X
46067               @tab Used in FunCom games.
46068
46069       ADPCM IMA Dialogic      :      @tab  X
46070       ADPCM IMA Duck DK3      :      @tab  X
46071               @tab Used in some Sega Saturn console games.
46072
46073       ADPCM IMA Duck DK4      :      @tab  X
46074               @tab Used in some Sega Saturn console games.
46075
46076       ADPCM IMA Radical       :      @tab  X
46077       ADPCM Microsoft         :   X  @tab  X
46078       ADPCM MS IMA            :   X  @tab  X
46079       ADPCM Nintendo Gamecube AFC   :      @tab  X
46080       ADPCM Nintendo Gamecube DTK   :      @tab  X
46081       ADPCM Nintendo THP   :      @tab  X
46082       ADPCM Playstation       :      @tab  X
46083       ADPCM QT IMA            :   X  @tab  X
46084       ADPCM SEGA CRI ADX      :   X  @tab  X
46085               @tab Used in Sega Dreamcast games.
46086
46087       ADPCM Shockwave Flash   :   X  @tab  X
46088       ADPCM Sound Blaster Pro 2-bit   :      @tab  X
46089       ADPCM Sound Blaster Pro 2.6-bit   :      @tab  X
46090       ADPCM Sound Blaster Pro 4-bit   :      @tab  X
46091       ADPCM VIMA              :      @tab  X
46092               @tab Used in LucasArts SMUSH animations.
46093
46094       ADPCM Westwood Studios IMA       :   X @tab  X
46095               @tab Used in Westwood Studios games like Command and Conquer.
46096
46097       ADPCM Yamaha            :   X  @tab  X
46098       ADPCM Zork              :      @tab  X
46099       AMR-NB                  :   E  @tab  X
46100               @tab encoding supported through external library libopencore-amrnb
46101
46102       AMR-WB                  :   E  @tab  X
46103               @tab encoding supported through external library libvo-amrwbenc
46104
46105       Amazing Studio PAF Audio  :      @tab  X
46106       Apple lossless audio    :   X  @tab  X
46107               @tab QuickTime fourcc 'alac'
46108
46109       aptX                    :   X  @tab  X
46110               @tab Used in Bluetooth A2DP
46111
46112       aptX HD                 :   X  @tab  X
46113               @tab Used in Bluetooth A2DP
46114
46115       ATRAC1                  :      @tab  X
46116       ATRAC3                  :      @tab  X
46117       ATRAC3+                 :      @tab  X
46118       ATRAC9                  :      @tab  X
46119       Bink Audio              :      @tab  X
46120               @tab Used in Bink and Smacker files in many games.
46121
46122       CELT                    :      @tab  E
46123               @tab decoding supported through external library libcelt
46124
46125       codec2                  :   E  @tab  E
46126               @tab en/decoding supported through external library libcodec2
46127
46128       CRI HCA                 :      @tab X
46129       Delphine Software International CIN audio   :      @tab  X
46130               @tab Codec used in Delphine Software International games.
46131
46132       DFPWM                   :   X  @tab  X
46133       Digital Speech Standard - Standard Play mode (DSS SP)  :      @tab  X
46134       Discworld II BMV Audio  :      @tab  X
46135       COOK                    :      @tab  X
46136               @tab All versions except 5.1 are supported.
46137
46138       DCA (DTS Coherent Acoustics)   :   X  @tab  X
46139               @tab supported extensions: XCh, XXCH, X96, XBR, XLL, LBR (partially)
46140
46141       Dolby E   :      @tab  X
46142       DPCM Gremlin            :      @tab  X
46143       DPCM id RoQ             :   X  @tab  X
46144               @tab Used in Quake III, Jedi Knight 2 and other computer games.
46145
46146       DPCM Interplay          :      @tab  X
46147               @tab Used in various Interplay computer games.
46148
46149       DPCM Squareroot-Delta-Exact   :   @tab  X
46150               @tab Used in various games.
46151
46152       DPCM Sierra Online      :      @tab  X
46153               @tab Used in Sierra Online game audio files.
46154
46155       DPCM Sol                :      @tab  X
46156       DPCM Xan                :      @tab  X
46157               @tab Used in Origin's Wing Commander IV AVI files.
46158
46159       DPCM Xilam DERF         :      @tab  X
46160       DSD (Direct Stream Digital), least significant bit first   :   @tab  X
46161       DSD (Direct Stream Digital), most significant bit first    :   @tab  X
46162       DSD (Direct Stream Digital), least significant bit first, planar   :
46163       @tab  X
46164       DSD (Direct Stream Digital), most significant bit first, planar    :
46165       @tab  X
46166       DSP Group TrueSpeech    :      @tab  X
46167       DST (Direct Stream Transfer)  :   @tab  X
46168       DV audio                :      @tab  X
46169       Enhanced AC-3           :   X  @tab  X
46170       EVRC (Enhanced Variable Rate Codec)  :      @tab  X
46171       FLAC (Free Lossless Audio Codec)   :   X  @tab  IX
46172       G.723.1                 :  X   @tab  X
46173       G.729                   :      @tab  X
46174       GSM                     :   E  @tab  X
46175               @tab encoding supported through external library libgsm
46176
46177       GSM Microsoft variant   :   E  @tab  X
46178               @tab encoding supported through external library libgsm
46179
46180       IAC (Indeo Audio Coder)   :      @tab  X
46181       iLBC (Internet Low Bitrate Codec)  :   E  @tab  EX
46182               @tab encoding and decoding supported through external library libilbc
46183
46184       IMC (Intel Music Coder)   :      @tab  X
46185       Interplay ACM             :      @tab  X
46186       MACE (Macintosh Audio Compression/Expansion) 3:1   :      @tab  X
46187       MACE (Macintosh Audio Compression/Expansion) 6:1   :      @tab  X
46188       MLP (Meridian Lossless Packing)   :   X  @tab  X
46189               @tab Used in DVD-Audio discs.
46190
46191       Monkey's Audio          :      @tab  X
46192       MP1 (MPEG audio layer 1)   :      @tab IX
46193       MP2 (MPEG audio layer 2)   :  IX  @tab IX
46194               @tab encoding supported also through external library TwoLAME
46195
46196       MP3 (MPEG audio layer 3)   :   E  @tab IX
46197               @tab encoding supported through external library LAME, ADU MP3 and MP3onMP4 also supported
46198
46199       MPEG-4 Audio Lossless Coding (ALS)   :      @tab  X
46200       Musepack SV7            :      @tab  X
46201       Musepack SV8            :      @tab  X
46202       Nellymoser Asao         :   X  @tab  X
46203       On2 AVC (Audio for Video Codec)  :      @tab  X
46204       Opus                    :   E  @tab  X
46205               @tab encoding supported through external library libopus
46206
46207       PCM A-law               :   X  @tab  X
46208       PCM mu-law              :   X  @tab  X
46209       PCM Archimedes VIDC     :   X  @tab  X
46210       PCM signed 8-bit planar   :   X  @tab  X
46211       PCM signed 16-bit big-endian planar   :   X  @tab  X
46212       PCM signed 16-bit little-endian planar   :   X  @tab  X
46213       PCM signed 24-bit little-endian planar   :   X  @tab  X
46214       PCM signed 32-bit little-endian planar   :   X  @tab  X
46215       PCM 32-bit floating point big-endian   :   X  @tab  X
46216       PCM 32-bit floating point little-endian   :   X  @tab  X
46217       PCM 64-bit floating point big-endian   :   X  @tab  X
46218       PCM 64-bit floating point little-endian   :   X  @tab  X
46219       PCM D-Cinema audio signed 24-bit    :   X  @tab  X
46220       PCM signed 8-bit        :   X  @tab  X
46221       PCM signed 16-bit big-endian   :   X  @tab  X
46222       PCM signed 16-bit little-endian   :   X  @tab  X
46223       PCM signed 24-bit big-endian   :   X  @tab  X
46224       PCM signed 24-bit little-endian   :   X  @tab  X
46225       PCM signed 32-bit big-endian   :   X  @tab  X
46226       PCM signed 32-bit little-endian   :   X  @tab  X
46227       PCM signed 16/20/24-bit big-endian in MPEG-TS   :      @tab  X
46228       PCM unsigned 8-bit      :   X  @tab  X
46229       PCM unsigned 16-bit big-endian   :   X  @tab  X
46230       PCM unsigned 16-bit little-endian   :   X  @tab  X
46231       PCM unsigned 24-bit big-endian   :   X  @tab  X
46232       PCM unsigned 24-bit little-endian   :   X  @tab  X
46233       PCM unsigned 32-bit big-endian   :   X  @tab  X
46234       PCM unsigned 32-bit little-endian   :   X  @tab  X
46235       QCELP / PureVoice       :      @tab  X
46236       QDesign Music Codec 1   :      @tab  X
46237       QDesign Music Codec 2   :      @tab  X
46238               @tab There are still some distortions.
46239
46240       RealAudio 1.0 (14.4K)   :   X  @tab  X
46241               @tab Real 14400 bit/s codec
46242
46243       RealAudio 2.0 (28.8K)   :      @tab  X
46244               @tab Real 28800 bit/s codec
46245
46246       RealAudio 3.0 (dnet)    :  IX  @tab  X
46247               @tab Real low bitrate AC-3 codec
46248
46249       RealAudio Lossless      :      @tab  X
46250       RealAudio SIPR / ACELP.NET  :      @tab  X
46251       SBC (low-complexity subband codec)  :   X  @tab  X
46252               @tab Used in Bluetooth A2DP
46253
46254       Shorten                 :      @tab  X
46255       Sierra VMD audio        :      @tab  X
46256               @tab Used in Sierra VMD files.
46257
46258       Smacker audio           :      @tab  X
46259       SMPTE 302M AES3 audio   :   X  @tab  X
46260       Sonic                   :   X  @tab  X
46261               @tab experimental codec
46262
46263       Sonic lossless          :   X  @tab  X
46264               @tab experimental codec
46265
46266       Speex                   :   E  @tab  EX
46267               @tab supported through external library libspeex
46268
46269       TAK (Tom's lossless Audio Kompressor)   :      @tab  X
46270       True Audio (TTA)        :   X  @tab  X
46271       TrueHD                  :   X  @tab  X
46272               @tab Used in HD-DVD and Blu-Ray discs.
46273
46274       TwinVQ (VQF flavor)     :      @tab  X
46275       VIMA                    :      @tab  X
46276               @tab Used in LucasArts SMUSH animations.
46277
46278       Vorbis                  :   E  @tab  X
46279               @tab A native but very primitive encoder exists.
46280
46281       Voxware MetaSound       :      @tab  X
46282       WavPack                 :   X  @tab  X
46283       Westwood Audio (SND1)   :      @tab  X
46284       Windows Media Audio 1   :   X  @tab  X
46285       Windows Media Audio 2   :   X  @tab  X
46286       Windows Media Audio Lossless  :   @tab  X
46287       Windows Media Audio Pro  :     @tab  X
46288       Windows Media Audio Voice  :   @tab  X
46289       Xbox Media Audio 1      :      @tab  X
46290       Xbox Media Audio 2      :      @tab  X
46291
46292       "X" means that the feature in that column (encoding / decoding) is
46293       supported.
46294
46295       "E" means that support is provided through an external library.
46296
46297       "I" means that an integer-only version is available, too (ensures high
46298       performance on systems without hardware floating point support).
46299
46300   Subtitle Formats
46301       Name  :  Muxing @tab Demuxing @tab Encoding @tab Decoding
46302       3GPP Timed Text   :    @tab   @tab X @tab X
46303       AQTitle           :    @tab X @tab   @tab X
46304       DVB               :  X @tab X @tab X @tab X
46305       DVB teletext      :    @tab X @tab   @tab E
46306       DVD               :  X @tab X @tab X @tab X
46307       JACOsub           :  X @tab X @tab   @tab X
46308       MicroDVD          :  X @tab X @tab   @tab X
46309       MPL2              :    @tab X @tab   @tab X
46310       MPsub (MPlayer)   :    @tab X @tab   @tab X
46311       PGS               :    @tab   @tab   @tab X
46312       PJS (Phoenix)     :    @tab X @tab   @tab X
46313       RealText          :    @tab X @tab   @tab X
46314       SAMI              :    @tab X @tab   @tab X
46315       Spruce format (STL)  :    @tab X @tab   @tab X
46316       SSA/ASS           :  X @tab X @tab X @tab X
46317       SubRip (SRT)      :  X @tab X @tab X @tab X
46318       SubViewer v1      :    @tab X @tab   @tab X
46319       SubViewer         :    @tab X @tab   @tab X
46320       TED Talks captions  :  @tab X @tab   @tab X
46321       TTML              :  X @tab   @tab X @tab
46322       VobSub (IDX+SUB)  :    @tab X @tab   @tab X
46323       VPlayer           :    @tab X @tab   @tab X
46324       WebVTT            :  X @tab X @tab X @tab X
46325       XSUB              :    @tab   @tab X @tab X
46326
46327       "X" means that the feature is supported.
46328
46329       "E" means that support is provided through an external library.
46330
46331   Network Protocols
46332       Name          :  Support
46333       AMQP          :  E
46334       file          :  X
46335       FTP           :  X
46336       Gopher        :  X
46337       Gophers       :  X
46338       HLS           :  X
46339       HTTP          :  X
46340       HTTPS         :  X
46341       Icecast       :  X
46342       MMSH          :  X
46343       MMST          :  X
46344       pipe          :  X
46345       Pro-MPEG FEC  :  X
46346       RTMP          :  X
46347       RTMPE         :  X
46348       RTMPS         :  X
46349       RTMPT         :  X
46350       RTMPTE        :  X
46351       RTMPTS        :  X
46352       RTP           :  X
46353       SAMBA         :  E
46354       SCTP          :  X
46355       SFTP          :  E
46356       TCP           :  X
46357       TLS           :  X
46358       UDP           :  X
46359       ZMQ           :  E
46360
46361       "X" means that the protocol is supported.
46362
46363       "E" means that support is provided through an external library.
46364
46365   Input/Output Devices
46366       Name               :  Input  @tab Output
46367       ALSA               :  X      @tab X
46368       BKTR               :  X      @tab
46369       caca               :         @tab X
46370       DV1394             :  X      @tab
46371       Lavfi virtual device  :  X   @tab
46372       Linux framebuffer  :  X      @tab X
46373       JACK               :  X      @tab
46374       LIBCDIO            :  X
46375       LIBDC1394          :  X      @tab
46376       OpenAL             :  X
46377       OpenGL             :         @tab X
46378       OSS                :  X      @tab X
46379       PulseAudio         :  X      @tab X
46380       SDL                :         @tab X
46381       Video4Linux2       :  X      @tab X
46382       VfW capture        :  X      @tab
46383       X11 grabbing       :  X      @tab
46384       Win32 grabbing     :  X      @tab
46385
46386       "X" means that input/output is supported.
46387
46388   Timecode
46389       Codec/format       :  Read   @tab Write
46390       AVI                :  X      @tab X
46391       DV                 :  X      @tab X
46392       GXF                :  X      @tab X
46393       MOV                :  X      @tab X
46394       MPEG1/2            :  X      @tab X
46395       MXF                :  X      @tab X
46396

SEE ALSO

46398       ffmpeg(1), ffplay(1), ffprobe(1), ffmpeg-utils(1), ffmpeg-scaler(1),
46399       ffmpeg-resampler(1), ffmpeg-codecs(1), ffmpeg-bitstream-filters(1),
46400       ffmpeg-formats(1), ffmpeg-devices(1), ffmpeg-protocols(1),
46401       ffmpeg-filters(1)
46402

AUTHORS

46404       The FFmpeg developers.
46405
46406       For details about the authorship, see the Git history of the project
46407       (git://source.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
46408       the FFmpeg source directory, or browsing the online repository at
46409       <http://source.ffmpeg.org>.
46410
46411       Maintainers for the specific components are listed in the file
46412       MAINTAINERS in the source code tree.
46413
46414
46415
46416                                                                 FFMPEG-ALL(1)
Impressum