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       -itsoffset offset (input)
909           Set the input time offset.
910
911           offset must be a time duration specification, see the Time duration
912           section in the ffmpeg-utils(1) manual.
913
914           The offset is added to the timestamps of the input files.
915           Specifying a positive offset means that the corresponding streams
916           are delayed by the time duration specified in offset.
917
918       -itsscale scale (input,per-stream)
919           Rescale input timestamps. scale should be a floating point number.
920
921       -timestamp date (output)
922           Set the recording timestamp in the container.
923
924           date must be a date specification, see the Date section in the
925           ffmpeg-utils(1) manual.
926
927       -metadata[:metadata_specifier] key=value (output,per-metadata)
928           Set a metadata key/value pair.
929
930           An optional metadata_specifier may be given to set metadata on
931           streams, chapters or programs. See "-map_metadata" documentation
932           for details.
933
934           This option overrides metadata set with "-map_metadata". It is also
935           possible to delete metadata by using an empty value.
936
937           For example, for setting the title in the output file:
938
939                   ffmpeg -i in.avi -metadata title="my title" out.flv
940
941           To set the language of the first audio stream:
942
943                   ffmpeg -i INPUT -metadata:s:a:0 language=eng OUTPUT
944
945       -disposition[:stream_specifier] value (output,per-stream)
946           Sets the disposition for a stream.
947
948           By default, the disposition is copied from the input stream, unless
949           the output stream this option applies to is fed by a complex
950           filtergraph - in that case the disposition is unset by default.
951
952           value is a sequence of items separated by '+' or '-'. The first
953           item may also be prefixed with '+' or '-', in which case this
954           option modifies the default value. Otherwise (the first item is not
955           prefixed) this options overrides the default value. A '+' prefix
956           adds the given disposition, '-' removes it. It is also possible to
957           clear the disposition by setting it to 0.
958
959           If no "-disposition" options were specified for an output file,
960           ffmpeg will automatically set the 'default' disposition on the
961           first stream of each type, when there are multiple streams of this
962           type in the output file and no stream of that type is already
963           marked as default.
964
965           The "-dispositions" option lists the known dispositions.
966
967           For example, to make the second audio stream the default stream:
968
969                   ffmpeg -i in.mkv -c copy -disposition:a:1 default out.mkv
970
971           To make the second subtitle stream the default stream and remove
972           the default disposition from the first subtitle stream:
973
974                   ffmpeg -i in.mkv -c copy -disposition:s:0 0 -disposition:s:1 default out.mkv
975
976           To add an embedded cover/thumbnail:
977
978                   ffmpeg -i in.mp4 -i IMAGE -map 0 -map 1 -c copy -c:v:1 png -disposition:v:1 attached_pic out.mp4
979
980           Not all muxers support embedded thumbnails, and those who do, only
981           support a few formats, like JPEG or PNG.
982
983       -program
984       [title=title:][program_num=program_num:]st=stream[:st=stream...]
985       (output)
986           Creates a program with the specified title, program_num and adds
987           the specified stream(s) to it.
988
989       -target type (output)
990           Specify target file type ("vcd", "svcd", "dvd", "dv", "dv50"). type
991           may be prefixed with "pal-", "ntsc-" or "film-" to use the
992           corresponding standard. All the format options (bitrate, codecs,
993           buffer sizes) are then set automatically. You can just type:
994
995                   ffmpeg -i myfile.avi -target vcd /tmp/vcd.mpg
996
997           Nevertheless you can specify additional options as long as you know
998           they do not conflict with the standard, as in:
999
1000                   ffmpeg -i myfile.avi -target vcd -bf 2 /tmp/vcd.mpg
1001
1002           The parameters set for each target are as follows.
1003
1004           VCD
1005
1006                   <pal>:
1007                   -f vcd -muxrate 1411200 -muxpreload 0.44 -packetsize 2324
1008                   -s 352x288 -r 25
1009                   -codec:v mpeg1video -g 15 -b:v 1150k -maxrate:v 1150v -minrate:v 1150k -bufsize:v 327680
1010                   -ar 44100 -ac 2
1011                   -codec:a mp2 -b:a 224k
1012
1013                   <ntsc>:
1014                   -f vcd -muxrate 1411200 -muxpreload 0.44 -packetsize 2324
1015                   -s 352x240 -r 30000/1001
1016                   -codec:v mpeg1video -g 18 -b:v 1150k -maxrate:v 1150v -minrate:v 1150k -bufsize:v 327680
1017                   -ar 44100 -ac 2
1018                   -codec:a mp2 -b:a 224k
1019
1020                   <film>:
1021                   -f vcd -muxrate 1411200 -muxpreload 0.44 -packetsize 2324
1022                   -s 352x240 -r 24000/1001
1023                   -codec:v mpeg1video -g 18 -b:v 1150k -maxrate:v 1150v -minrate:v 1150k -bufsize:v 327680
1024                   -ar 44100 -ac 2
1025                   -codec:a mp2 -b:a 224k
1026
1027           SVCD
1028
1029                   <pal>:
1030                   -f svcd -packetsize 2324
1031                   -s 480x576 -pix_fmt yuv420p -r 25
1032                   -codec:v mpeg2video -g 15 -b:v 2040k -maxrate:v 2516k -minrate:v 0 -bufsize:v 1835008 -scan_offset 1
1033                   -ar 44100
1034                   -codec:a mp2 -b:a 224k
1035
1036                   <ntsc>:
1037                   -f svcd -packetsize 2324
1038                   -s 480x480 -pix_fmt yuv420p -r 30000/1001
1039                   -codec:v mpeg2video -g 18 -b:v 2040k -maxrate:v 2516k -minrate:v 0 -bufsize:v 1835008 -scan_offset 1
1040                   -ar 44100
1041                   -codec:a mp2 -b:a 224k
1042
1043                   <film>:
1044                   -f svcd -packetsize 2324
1045                   -s 480x480 -pix_fmt yuv420p -r 24000/1001
1046                   -codec:v mpeg2video -g 18 -b:v 2040k -maxrate:v 2516k -minrate:v 0 -bufsize:v 1835008 -scan_offset 1
1047                   -ar 44100
1048                   -codec:a mp2 -b:a 224k
1049
1050           DVD
1051
1052                   <pal>:
1053                   -f dvd -muxrate 10080k -packetsize 2048
1054                   -s 720x576 -pix_fmt yuv420p -r 25
1055                   -codec:v mpeg2video -g 15 -b:v 6000k -maxrate:v 9000k -minrate:v 0 -bufsize:v 1835008
1056                   -ar 48000
1057                   -codec:a ac3 -b:a 448k
1058
1059                   <ntsc>:
1060                   -f dvd -muxrate 10080k -packetsize 2048
1061                   -s 720x480 -pix_fmt yuv420p -r 30000/1001
1062                   -codec:v mpeg2video -g 18 -b:v 6000k -maxrate:v 9000k -minrate:v 0 -bufsize:v 1835008
1063                   -ar 48000
1064                   -codec:a ac3 -b:a 448k
1065
1066                   <film>:
1067                   -f dvd -muxrate 10080k -packetsize 2048
1068                   -s 720x480 -pix_fmt yuv420p -r 24000/1001
1069                   -codec:v mpeg2video -g 18 -b:v 6000k -maxrate:v 9000k -minrate:v 0 -bufsize:v 1835008
1070                   -ar 48000
1071                   -codec:a ac3 -b:a 448k
1072
1073           DV
1074
1075                   <pal>:
1076                   -f dv
1077                   -s 720x576 -pix_fmt yuv420p -r 25
1078                   -ar 48000 -ac 2
1079
1080                   <ntsc>:
1081                   -f dv
1082                   -s 720x480 -pix_fmt yuv411p -r 30000/1001
1083                   -ar 48000 -ac 2
1084
1085                   <film>:
1086                   -f dv
1087                   -s 720x480 -pix_fmt yuv411p -r 24000/1001
1088                   -ar 48000 -ac 2
1089
1090           The "dv50" target is identical to the "dv" target except that the
1091           pixel format set is "yuv422p" for all three standards.
1092
1093           Any user-set value for a parameter above will override the target
1094           preset value. In that case, the output may not comply with the
1095           target standard.
1096
1097       -dn (input/output)
1098           As an input option, blocks all data streams of a file from being
1099           filtered or being automatically selected or mapped for any output.
1100           See "-discard" option to disable streams individually.
1101
1102           As an output option, disables data recording i.e. automatic
1103           selection or mapping of any data stream. For full manual control
1104           see the "-map" option.
1105
1106       -dframes number (output)
1107           Set the number of data frames to output. This is an obsolete alias
1108           for "-frames:d", which you should use instead.
1109
1110       -frames[:stream_specifier] framecount (output,per-stream)
1111           Stop writing to the stream after framecount frames.
1112
1113       -q[:stream_specifier] q (output,per-stream)
1114       -qscale[:stream_specifier] q (output,per-stream)
1115           Use fixed quality scale (VBR). The meaning of q/qscale is codec-
1116           dependent.  If qscale is used without a stream_specifier then it
1117           applies only to the video stream, this is to maintain compatibility
1118           with previous behavior and as specifying the same codec specific
1119           value to 2 different codecs that is audio and video generally is
1120           not what is intended when no stream_specifier is used.
1121
1122       -filter[:stream_specifier] filtergraph (output,per-stream)
1123           Create the filtergraph specified by filtergraph and use it to
1124           filter the stream.
1125
1126           filtergraph is a description of the filtergraph to apply to the
1127           stream, and must have a single input and a single output of the
1128           same type of the stream. In the filtergraph, the input is
1129           associated to the label "in", and the output to the label "out".
1130           See the ffmpeg-filters manual for more information about the
1131           filtergraph syntax.
1132
1133           See the -filter_complex option if you want to create filtergraphs
1134           with multiple inputs and/or outputs.
1135
1136       -filter_script[:stream_specifier] filename (output,per-stream)
1137           This option is similar to -filter, the only difference is that its
1138           argument is the name of the file from which a filtergraph
1139           description is to be read.
1140
1141       -reinit_filter[:stream_specifier] integer (input,per-stream)
1142           This boolean option determines if the filtergraph(s) to which this
1143           stream is fed gets reinitialized when input frame parameters change
1144           mid-stream. This option is enabled by default as most video and all
1145           audio filters cannot handle deviation in input frame properties.
1146           Upon reinitialization, existing filter state is lost, like e.g. the
1147           frame count "n" reference available in some filters. Any frames
1148           buffered at time of reinitialization are lost.  The properties
1149           where a change triggers reinitialization are, for video, frame
1150           resolution or pixel format; for audio, sample format, sample rate,
1151           channel count or channel layout.
1152
1153       -filter_threads nb_threads (global)
1154           Defines how many threads are used to process a filter pipeline.
1155           Each pipeline will produce a thread pool with this many threads
1156           available for parallel processing.  The default is the number of
1157           available CPUs.
1158
1159       -pre[:stream_specifier] preset_name (output,per-stream)
1160           Specify the preset for matching stream(s).
1161
1162       -stats (global)
1163           Print encoding progress/statistics. It is on by default, to
1164           explicitly disable it you need to specify "-nostats".
1165
1166       -stats_period time (global)
1167           Set period at which encoding progress/statistics are updated.
1168           Default is 0.5 seconds.
1169
1170       -progress url (global)
1171           Send program-friendly progress information to url.
1172
1173           Progress information is written periodically and at the end of the
1174           encoding process. It is made of "key=value" lines. key consists of
1175           only alphanumeric characters. The last key of a sequence of
1176           progress information is always "progress".
1177
1178           The update period is set using "-stats_period".
1179
1180       -stdin
1181           Enable interaction on standard input. On by default unless standard
1182           input is used as an input. To explicitly disable interaction you
1183           need to specify "-nostdin".
1184
1185           Disabling interaction on standard input is useful, for example, if
1186           ffmpeg is in the background process group. Roughly the same result
1187           can be achieved with "ffmpeg ... < /dev/null" but it requires a
1188           shell.
1189
1190       -debug_ts (global)
1191           Print timestamp information. It is off by default. This option is
1192           mostly useful for testing and debugging purposes, and the output
1193           format may change from one version to another, so it should not be
1194           employed by portable scripts.
1195
1196           See also the option "-fdebug ts".
1197
1198       -attach filename (output)
1199           Add an attachment to the output file. This is supported by a few
1200           formats like Matroska for e.g. fonts used in rendering subtitles.
1201           Attachments are implemented as a specific type of stream, so this
1202           option will add a new stream to the file. It is then possible to
1203           use per-stream options on this stream in the usual way. Attachment
1204           streams created with this option will be created after all the
1205           other streams (i.e. those created with "-map" or automatic
1206           mappings).
1207
1208           Note that for Matroska you also have to set the mimetype metadata
1209           tag:
1210
1211                   ffmpeg -i INPUT -attach DejaVuSans.ttf -metadata:s:2 mimetype=application/x-truetype-font out.mkv
1212
1213           (assuming that the attachment stream will be third in the output
1214           file).
1215
1216       -dump_attachment[:stream_specifier] filename (input,per-stream)
1217           Extract the matching attachment stream into a file named filename.
1218           If filename is empty, then the value of the "filename" metadata tag
1219           will be used.
1220
1221           E.g. to extract the first attachment to a file named 'out.ttf':
1222
1223                   ffmpeg -dump_attachment:t:0 out.ttf -i INPUT
1224
1225           To extract all attachments to files determined by the "filename"
1226           tag:
1227
1228                   ffmpeg -dump_attachment:t "" -i INPUT
1229
1230           Technical note -- attachments are implemented as codec extradata,
1231           so this option can actually be used to extract extradata from any
1232           stream, not just attachments.
1233
1234   Video Options
1235       -vframes number (output)
1236           Set the number of video frames to output. This is an obsolete alias
1237           for "-frames:v", which you should use instead.
1238
1239       -r[:stream_specifier] fps (input/output,per-stream)
1240           Set frame rate (Hz value, fraction or abbreviation).
1241
1242           As an input option, ignore any timestamps stored in the file and
1243           instead generate timestamps assuming constant frame rate fps.  This
1244           is not the same as the -framerate option used for some input
1245           formats like image2 or v4l2 (it used to be the same in older
1246           versions of FFmpeg).  If in doubt use -framerate instead of the
1247           input option -r.
1248
1249           As an output option, duplicate or drop input frames to achieve
1250           constant output frame rate fps.
1251
1252       -fpsmax[:stream_specifier] fps (output,per-stream)
1253           Set maximum frame rate (Hz value, fraction or abbreviation).
1254
1255           Clamps output frame rate when output framerate is auto-set and is
1256           higher than this value.  Useful in batch processing or when input
1257           framerate is wrongly detected as very high.  It cannot be set
1258           together with "-r". It is ignored during streamcopy.
1259
1260       -s[:stream_specifier] size (input/output,per-stream)
1261           Set frame size.
1262
1263           As an input option, this is a shortcut for the video_size private
1264           option, recognized by some demuxers for which the frame size is
1265           either not stored in the file or is configurable -- e.g. raw video
1266           or video grabbers.
1267
1268           As an output option, this inserts the "scale" video filter to the
1269           end of the corresponding filtergraph. Please use the "scale" filter
1270           directly to insert it at the beginning or some other place.
1271
1272           The format is wxh (default - same as source).
1273
1274       -aspect[:stream_specifier] aspect (output,per-stream)
1275           Set the video display aspect ratio specified by aspect.
1276
1277           aspect can be a floating point number string, or a string of the
1278           form num:den, where num and den are the numerator and denominator
1279           of the aspect ratio. For example "4:3", "16:9", "1.3333", and
1280           "1.7777" are valid argument values.
1281
1282           If used together with -vcodec copy, it will affect the aspect ratio
1283           stored at container level, but not the aspect ratio stored in
1284           encoded frames, if it exists.
1285
1286       -vn (input/output)
1287           As an input option, blocks all video streams of a file from being
1288           filtered or being automatically selected or mapped for any output.
1289           See "-discard" option to disable streams individually.
1290
1291           As an output option, disables video recording i.e. automatic
1292           selection or mapping of any video stream. For full manual control
1293           see the "-map" option.
1294
1295       -vcodec codec (output)
1296           Set the video codec. This is an alias for "-codec:v".
1297
1298       -pass[:stream_specifier] n (output,per-stream)
1299           Select the pass number (1 or 2). It is used to do two-pass video
1300           encoding. The statistics of the video are recorded in the first
1301           pass into a log file (see also the option -passlogfile), and in the
1302           second pass that log file is used to generate the video at the
1303           exact requested bitrate.  On pass 1, you may just deactivate audio
1304           and set output to null, examples for Windows and Unix:
1305
1306                   ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y NUL
1307                   ffmpeg -i foo.mov -c:v libxvid -pass 1 -an -f rawvideo -y /dev/null
1308
1309       -passlogfile[:stream_specifier] prefix (output,per-stream)
1310           Set two-pass log file name prefix to prefix, the default file name
1311           prefix is ``ffmpeg2pass''. The complete file name will be
1312           PREFIX-N.log, where N is a number specific to the output stream
1313
1314       -vf filtergraph (output)
1315           Create the filtergraph specified by filtergraph and use it to
1316           filter the stream.
1317
1318           This is an alias for "-filter:v", see the -filter option.
1319
1320       -autorotate
1321           Automatically rotate the video according to file metadata. Enabled
1322           by default, use -noautorotate to disable it.
1323
1324       -autoscale
1325           Automatically scale the video according to the resolution of first
1326           frame.  Enabled by default, use -noautoscale to disable it. When
1327           autoscale is disabled, all output frames of filter graph might not
1328           be in the same resolution and may be inadequate for some
1329           encoder/muxer. Therefore, it is not recommended to disable it
1330           unless you really know what you are doing.  Disable autoscale at
1331           your own risk.
1332
1333   Advanced Video options
1334       -pix_fmt[:stream_specifier] format (input/output,per-stream)
1335           Set pixel format. Use "-pix_fmts" to show all the supported pixel
1336           formats.  If the selected pixel format can not be selected, ffmpeg
1337           will print a warning and select the best pixel format supported by
1338           the encoder.  If pix_fmt is prefixed by a "+", ffmpeg will exit
1339           with an error if the requested pixel format can not be selected,
1340           and automatic conversions inside filtergraphs are disabled.  If
1341           pix_fmt is a single "+", ffmpeg selects the same pixel format as
1342           the input (or graph output) and automatic conversions are disabled.
1343
1344       -sws_flags flags (input/output)
1345           Set SwScaler flags.
1346
1347       -rc_override[:stream_specifier] override (output,per-stream)
1348           Rate control override for specific intervals, formatted as
1349           "int,int,int" list separated with slashes. Two first values are the
1350           beginning and end frame numbers, last one is quantizer to use if
1351           positive, or quality factor if negative.
1352
1353       -ilme
1354           Force interlacing support in encoder (MPEG-2 and MPEG-4 only).  Use
1355           this option if your input file is interlaced and you want to keep
1356           the interlaced format for minimum losses.  The alternative is to
1357           deinterlace the input stream by use of a filter such as "yadif" or
1358           "bwdif", but deinterlacing introduces losses.
1359
1360       -psnr
1361           Calculate PSNR of compressed frames.
1362
1363       -vstats
1364           Dump video coding statistics to vstats_HHMMSS.log.
1365
1366       -vstats_file file
1367           Dump video coding statistics to file.
1368
1369       -vstats_version file
1370           Specifies which version of the vstats format to use. Default is 2.
1371
1372           version = 1 :
1373
1374           "frame= %5d q= %2.1f PSNR= %6.2f f_size= %6d s_size= %8.0fkB time=
1375           %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s"
1376
1377           version > 1:
1378
1379           "out= %2d st= %2d frame= %5d q= %2.1f PSNR= %6.2f f_size= %6d
1380           s_size= %8.0fkB time= %0.3f br= %7.1fkbits/s avg_br= %7.1fkbits/s"
1381
1382       -top[:stream_specifier] n (output,per-stream)
1383           top=1/bottom=0/auto=-1 field first
1384
1385       -dc precision
1386           Intra_dc_precision.
1387
1388       -vtag fourcc/tag (output)
1389           Force video tag/fourcc. This is an alias for "-tag:v".
1390
1391       -qphist (global)
1392           Show QP histogram
1393
1394       -vbsf bitstream_filter
1395           Deprecated see -bsf
1396
1397       -force_key_frames[:stream_specifier] time[,time...] (output,per-stream)
1398       -force_key_frames[:stream_specifier] expr:expr (output,per-stream)
1399       -force_key_frames[:stream_specifier] source (output,per-stream)
1400       -force_key_frames[:stream_specifier] source_no_drop (output,per-stream)
1401           force_key_frames can take arguments of the following form:
1402
1403           time[,time...]
1404               If the argument consists of timestamps, ffmpeg will round the
1405               specified times to the nearest output timestamp as per the
1406               encoder time base and force a keyframe at the first frame
1407               having timestamp equal or greater than the computed timestamp.
1408               Note that if the encoder time base is too coarse, then the
1409               keyframes may be forced on frames with timestamps lower than
1410               the specified time.  The default encoder time base is the
1411               inverse of the output framerate but may be set otherwise via
1412               "-enc_time_base".
1413
1414               If one of the times is ""chapters"[delta]", it is expanded into
1415               the time of the beginning of all chapters in the file, shifted
1416               by delta, expressed as a time in seconds.  This option can be
1417               useful to ensure that a seek point is present at a chapter mark
1418               or any other designated place in the output file.
1419
1420               For example, to insert a key frame at 5 minutes, plus key
1421               frames 0.1 second before the beginning of every chapter:
1422
1423                       -force_key_frames 0:05:00,chapters-0.1
1424
1425           expr:expr
1426               If the argument is prefixed with "expr:", the string expr is
1427               interpreted like an expression and is evaluated for each frame.
1428               A key frame is forced in case the evaluation is non-zero.
1429
1430               The expression in expr can contain the following constants:
1431
1432               n   the number of current processed frame, starting from 0
1433
1434               n_forced
1435                   the number of forced frames
1436
1437               prev_forced_n
1438                   the number of the previous forced frame, it is "NAN" when
1439                   no keyframe was forced yet
1440
1441               prev_forced_t
1442                   the time of the previous forced frame, it is "NAN" when no
1443                   keyframe was forced yet
1444
1445               t   the time of the current processed frame
1446
1447               For example to force a key frame every 5 seconds, you can
1448               specify:
1449
1450                       -force_key_frames expr:gte(t,n_forced*5)
1451
1452               To force a key frame 5 seconds after the time of the last
1453               forced one, starting from second 13:
1454
1455                       -force_key_frames expr:if(isnan(prev_forced_t),gte(t,13),gte(t,prev_forced_t+5))
1456
1457           source
1458               If the argument is "source", ffmpeg will force a key frame if
1459               the current frame being encoded is marked as a key frame in its
1460               source.
1461
1462           source_no_drop
1463               If the argument is "source_no_drop", ffmpeg will force a key
1464               frame if the current frame being encoded is marked as a key
1465               frame in its source.  In cases where this particular source
1466               frame has to be dropped, enforce the next available frame to
1467               become a key frame instead.
1468
1469           Note that forcing too many keyframes is very harmful for the
1470           lookahead algorithms of certain encoders: using fixed-GOP options
1471           or similar would be more efficient.
1472
1473       -copyinkf[:stream_specifier] (output,per-stream)
1474           When doing stream copy, copy also non-key frames found at the
1475           beginning.
1476
1477       -init_hw_device type[=name][:device[,key=value...]]
1478           Initialise a new hardware device of type type called name, using
1479           the given device parameters.  If no name is specified it will
1480           receive a default name of the form "type%d".
1481
1482           The meaning of device and the following arguments depends on the
1483           device type:
1484
1485           cuda
1486               device is the number of the CUDA device.
1487
1488               The following options are recognized:
1489
1490               primary_ctx
1491                   If set to 1, uses the primary device context instead of
1492                   creating a new one.
1493
1494               Examples:
1495
1496               -init_hw_device cuda:1
1497                   Choose the second device on the system.
1498
1499               -init_hw_device cuda:0,primary_ctx=1
1500                   Choose the first device and use the primary device context.
1501
1502           dxva2
1503               device is the number of the Direct3D 9 display adapter.
1504
1505           d3d11va
1506               device is the number of the Direct3D 11 display adapter.
1507
1508           vaapi
1509               device is either an X11 display name or a DRM render node.  If
1510               not specified, it will attempt to open the default X11 display
1511               ($DISPLAY) and then the first DRM render node
1512               (/dev/dri/renderD128).
1513
1514           vdpau
1515               device is an X11 display name.  If not specified, it will
1516               attempt to open the default X11 display ($DISPLAY).
1517
1518           qsv device selects a value in MFX_IMPL_*. Allowed values are:
1519
1520               auto
1521               sw
1522               hw
1523               auto_any
1524               hw_any
1525               hw2
1526               hw3
1527               hw4
1528
1529               If not specified, auto_any is used.  (Note that it may be
1530               easier to achieve the desired result for QSV by creating the
1531               platform-appropriate subdevice (dxva2 or d3d11va or vaapi) and
1532               then deriving a QSV device from that.)
1533
1534               Alternatively, child_device_type helps to choose platform-
1535               appropriate subdevice type.  On Windows d3d11va is used as
1536               default subdevice type.
1537
1538               Examples:
1539
1540               -init_hw_device qsv:hw,child_device_type=d3d11va
1541                   Choose the GPU subdevice with type d3d11va and create QSV
1542                   device with MFX_IMPL_HARDWARE.
1543
1544               -init_hw_device qsv:hw,child_device_type=dxva2
1545                   Choose the GPU subdevice with type dxva2 and create QSV
1546                   device with MFX_IMPL_HARDWARE.
1547
1548           opencl
1549               device selects the platform and device as
1550               platform_index.device_index.
1551
1552               The set of devices can also be filtered using the key-value
1553               pairs to find only devices matching particular platform or
1554               device strings.
1555
1556               The strings usable as filters are:
1557
1558               platform_profile
1559               platform_version
1560               platform_name
1561               platform_vendor
1562               platform_extensions
1563               device_name
1564               device_vendor
1565               driver_version
1566               device_version
1567               device_profile
1568               device_extensions
1569               device_type
1570
1571               The indices and filters must together uniquely select a device.
1572
1573               Examples:
1574
1575               -init_hw_device opencl:0.1
1576                   Choose the second device on the first platform.
1577
1578               -init_hw_device opencl:,device_name=Foo9000
1579                   Choose the device with a name containing the string
1580                   Foo9000.
1581
1582               -init_hw_device
1583               opencl:1,device_type=gpu,device_extensions=cl_khr_fp16
1584                   Choose the GPU device on the second platform supporting the
1585                   cl_khr_fp16 extension.
1586
1587           vulkan
1588               If device is an integer, it selects the device by its index in
1589               a system-dependent list of devices.  If device is any other
1590               string, it selects the first device with a name containing that
1591               string as a substring.
1592
1593               The following options are recognized:
1594
1595               debug
1596                   If set to 1, enables the validation layer, if installed.
1597
1598               linear_images
1599                   If set to 1, images allocated by the hwcontext will be
1600                   linear and locally mappable.
1601
1602               instance_extensions
1603                   A plus separated list of additional instance extensions to
1604                   enable.
1605
1606               device_extensions
1607                   A plus separated list of additional device extensions to
1608                   enable.
1609
1610               Examples:
1611
1612               -init_hw_device vulkan:1
1613                   Choose the second device on the system.
1614
1615               -init_hw_device vulkan:RADV
1616                   Choose the first device with a name containing the string
1617                   RADV.
1618
1619               -init_hw_device
1620               vulkan:0,instance_extensions=VK_KHR_wayland_surface+VK_KHR_xcb_surface
1621                   Choose the first device and enable the Wayland and XCB
1622                   instance extensions.
1623
1624       -init_hw_device type[=name]@source
1625           Initialise a new hardware device of type type called name, deriving
1626           it from the existing device with the name source.
1627
1628       -init_hw_device list
1629           List all hardware device types supported in this build of ffmpeg.
1630
1631       -filter_hw_device name
1632           Pass the hardware device called name to all filters in any filter
1633           graph.  This can be used to set the device to upload to with the
1634           "hwupload" filter, or the device to map to with the "hwmap" filter.
1635           Other filters may also make use of this parameter when they require
1636           a hardware device.  Note that this is typically only required when
1637           the input is not already in hardware frames - when it is, filters
1638           will derive the device they require from the context of the frames
1639           they receive as input.
1640
1641           This is a global setting, so all filters will receive the same
1642           device.
1643
1644       -hwaccel[:stream_specifier] hwaccel (input,per-stream)
1645           Use hardware acceleration to decode the matching stream(s). The
1646           allowed values of hwaccel are:
1647
1648           none
1649               Do not use any hardware acceleration (the default).
1650
1651           auto
1652               Automatically select the hardware acceleration method.
1653
1654           vdpau
1655               Use VDPAU (Video Decode and Presentation API for Unix) hardware
1656               acceleration.
1657
1658           dxva2
1659               Use DXVA2 (DirectX Video Acceleration) hardware acceleration.
1660
1661           d3d11va
1662               Use D3D11VA (DirectX Video Acceleration) hardware acceleration.
1663
1664           vaapi
1665               Use VAAPI (Video Acceleration API) hardware acceleration.
1666
1667           qsv Use the Intel QuickSync Video acceleration for video
1668               transcoding.
1669
1670               Unlike most other values, this option does not enable
1671               accelerated decoding (that is used automatically whenever a qsv
1672               decoder is selected), but accelerated transcoding, without
1673               copying the frames into the system memory.
1674
1675               For it to work, both the decoder and the encoder must support
1676               QSV acceleration and no filters must be used.
1677
1678           This option has no effect if the selected hwaccel is not available
1679           or not supported by the chosen decoder.
1680
1681           Note that most acceleration methods are intended for playback and
1682           will not be faster than software decoding on modern CPUs.
1683           Additionally, ffmpeg will usually need to copy the decoded frames
1684           from the GPU memory into the system memory, resulting in further
1685           performance loss. This option is thus mainly useful for testing.
1686
1687       -hwaccel_device[:stream_specifier] hwaccel_device (input,per-stream)
1688           Select a device to use for hardware acceleration.
1689
1690           This option only makes sense when the -hwaccel option is also
1691           specified.  It can either refer to an existing device created with
1692           -init_hw_device by name, or it can create a new device as if
1693           -init_hw_device type:hwaccel_device were called immediately before.
1694
1695       -hwaccels
1696           List all hardware acceleration components enabled in this build of
1697           ffmpeg.  Actual runtime availability depends on the hardware and
1698           its suitable driver being installed.
1699
1700   Audio Options
1701       -aframes number (output)
1702           Set the number of audio frames to output. This is an obsolete alias
1703           for "-frames:a", which you should use instead.
1704
1705       -ar[:stream_specifier] freq (input/output,per-stream)
1706           Set the audio sampling frequency. For output streams it is set by
1707           default to the frequency of the corresponding input stream. For
1708           input streams this option only makes sense for audio grabbing
1709           devices and raw demuxers and is mapped to the corresponding demuxer
1710           options.
1711
1712       -aq q (output)
1713           Set the audio quality (codec-specific, VBR). This is an alias for
1714           -q:a.
1715
1716       -ac[:stream_specifier] channels (input/output,per-stream)
1717           Set the number of audio channels. For output streams it is set by
1718           default to the number of input audio channels. For input streams
1719           this option only makes sense for audio grabbing devices and raw
1720           demuxers and is mapped to the corresponding demuxer options.
1721
1722       -an (input/output)
1723           As an input option, blocks all audio streams of a file from being
1724           filtered or being automatically selected or mapped for any output.
1725           See "-discard" option to disable streams individually.
1726
1727           As an output option, disables audio recording i.e. automatic
1728           selection or mapping of any audio stream. For full manual control
1729           see the "-map" option.
1730
1731       -acodec codec (input/output)
1732           Set the audio codec. This is an alias for "-codec:a".
1733
1734       -sample_fmt[:stream_specifier] sample_fmt (output,per-stream)
1735           Set the audio sample format. Use "-sample_fmts" to get a list of
1736           supported sample formats.
1737
1738       -af filtergraph (output)
1739           Create the filtergraph specified by filtergraph and use it to
1740           filter the stream.
1741
1742           This is an alias for "-filter:a", see the -filter option.
1743
1744   Advanced Audio options
1745       -atag fourcc/tag (output)
1746           Force audio tag/fourcc. This is an alias for "-tag:a".
1747
1748       -absf bitstream_filter
1749           Deprecated, see -bsf
1750
1751       -guess_layout_max channels (input,per-stream)
1752           If some input channel layout is not known, try to guess only if it
1753           corresponds to at most the specified number of channels. For
1754           example, 2 tells to ffmpeg to recognize 1 channel as mono and 2
1755           channels as stereo but not 6 channels as 5.1. The default is to
1756           always try to guess. Use 0 to disable all guessing.
1757
1758   Subtitle options
1759       -scodec codec (input/output)
1760           Set the subtitle codec. This is an alias for "-codec:s".
1761
1762       -sn (input/output)
1763           As an input option, blocks all subtitle streams of a file from
1764           being filtered or being automatically selected or mapped for any
1765           output. See "-discard" option to disable streams individually.
1766
1767           As an output option, disables subtitle recording i.e. automatic
1768           selection or mapping of any subtitle stream. For full manual
1769           control see the "-map" option.
1770
1771       -sbsf bitstream_filter
1772           Deprecated, see -bsf
1773
1774   Advanced Subtitle options
1775       -fix_sub_duration
1776           Fix subtitles durations. For each subtitle, wait for the next
1777           packet in the same stream and adjust the duration of the first to
1778           avoid overlap. This is necessary with some subtitles codecs,
1779           especially DVB subtitles, because the duration in the original
1780           packet is only a rough estimate and the end is actually marked by
1781           an empty subtitle frame. Failing to use this option when necessary
1782           can result in exaggerated durations or muxing failures due to non-
1783           monotonic timestamps.
1784
1785           Note that this option will delay the output of all data until the
1786           next subtitle packet is decoded: it may increase memory consumption
1787           and latency a lot.
1788
1789       -canvas_size size
1790           Set the size of the canvas used to render subtitles.
1791
1792   Advanced options
1793       -map
1794       [-]input_file_id[:stream_specifier][?][,sync_file_id[:stream_specifier]]
1795       | [linklabel] (output)
1796           Designate one or more input streams as a source for the output
1797           file. Each input stream is identified by the input file index
1798           input_file_id and the input stream index input_stream_id within the
1799           input file. Both indices start at 0. If specified,
1800           sync_file_id:stream_specifier sets which input stream is used as a
1801           presentation sync reference.
1802
1803           The first "-map" option on the command line specifies the source
1804           for output stream 0, the second "-map" option specifies the source
1805           for output stream 1, etc.
1806
1807           A "-" character before the stream identifier creates a "negative"
1808           mapping.  It disables matching streams from already created
1809           mappings.
1810
1811           A trailing "?" after the stream index will allow the map to be
1812           optional: if the map matches no streams the map will be ignored
1813           instead of failing. Note the map will still fail if an invalid
1814           input file index is used; such as if the map refers to a non-
1815           existent input.
1816
1817           An alternative [linklabel] form will map outputs from complex
1818           filter graphs (see the -filter_complex option) to the output file.
1819           linklabel must correspond to a defined output link label in the
1820           graph.
1821
1822           For example, to map ALL streams from the first input file to output
1823
1824                   ffmpeg -i INPUT -map 0 output
1825
1826           For example, if you have two audio streams in the first input file,
1827           these streams are identified by "0:0" and "0:1". You can use "-map"
1828           to select which streams to place in an output file. For example:
1829
1830                   ffmpeg -i INPUT -map 0:1 out.wav
1831
1832           will map the input stream in INPUT identified by "0:1" to the
1833           (single) output stream in out.wav.
1834
1835           For example, to select the stream with index 2 from input file
1836           a.mov (specified by the identifier "0:2"), and stream with index 6
1837           from input b.mov (specified by the identifier "1:6"), and copy them
1838           to the output file out.mov:
1839
1840                   ffmpeg -i a.mov -i b.mov -c copy -map 0:2 -map 1:6 out.mov
1841
1842           To select all video and the third audio stream from an input file:
1843
1844                   ffmpeg -i INPUT -map 0:v -map 0:a:2 OUTPUT
1845
1846           To map all the streams except the second audio, use negative
1847           mappings
1848
1849                   ffmpeg -i INPUT -map 0 -map -0:a:1 OUTPUT
1850
1851           To map the video and audio streams from the first input, and using
1852           the trailing "?", ignore the audio mapping if no audio streams
1853           exist in the first input:
1854
1855                   ffmpeg -i INPUT -map 0:v -map 0:a? OUTPUT
1856
1857           To pick the English audio stream:
1858
1859                   ffmpeg -i INPUT -map 0:m:language:eng OUTPUT
1860
1861           Note that using this option disables the default mappings for this
1862           output file.
1863
1864       -ignore_unknown
1865           Ignore input streams with unknown type instead of failing if
1866           copying such streams is attempted.
1867
1868       -copy_unknown
1869           Allow input streams with unknown type to be copied instead of
1870           failing if copying such streams is attempted.
1871
1872       -map_channel
1873       [input_file_id.stream_specifier.channel_id|-1][?][:output_file_id.stream_specifier]
1874           Map an audio channel from a given input to an output. If
1875           output_file_id.stream_specifier is not set, the audio channel will
1876           be mapped on all the audio streams.
1877
1878           Using "-1" instead of input_file_id.stream_specifier.channel_id
1879           will map a muted channel.
1880
1881           A trailing "?" will allow the map_channel to be optional: if the
1882           map_channel matches no channel the map_channel will be ignored
1883           instead of failing.
1884
1885           For example, assuming INPUT is a stereo audio file, you can switch
1886           the two audio channels with the following command:
1887
1888                   ffmpeg -i INPUT -map_channel 0.0.1 -map_channel 0.0.0 OUTPUT
1889
1890           If you want to mute the first channel and keep the second:
1891
1892                   ffmpeg -i INPUT -map_channel -1 -map_channel 0.0.1 OUTPUT
1893
1894           The order of the "-map_channel" option specifies the order of the
1895           channels in the output stream. The output channel layout is guessed
1896           from the number of channels mapped (mono if one "-map_channel",
1897           stereo if two, etc.). Using "-ac" in combination of "-map_channel"
1898           makes the channel gain levels to be updated if input and output
1899           channel layouts don't match (for instance two "-map_channel"
1900           options and "-ac 6").
1901
1902           You can also extract each channel of an input to specific outputs;
1903           the following command extracts two channels of the INPUT audio
1904           stream (file 0, stream 0) to the respective OUTPUT_CH0 and
1905           OUTPUT_CH1 outputs:
1906
1907                   ffmpeg -i INPUT -map_channel 0.0.0 OUTPUT_CH0 -map_channel 0.0.1 OUTPUT_CH1
1908
1909           The following example splits the channels of a stereo input into
1910           two separate streams, which are put into the same output file:
1911
1912                   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
1913
1914           Note that currently each output stream can only contain channels
1915           from a single input stream; you can't for example use
1916           "-map_channel" to pick multiple input audio channels contained in
1917           different streams (from the same or different files) and merge them
1918           into a single output stream. It is therefore not currently
1919           possible, for example, to turn two separate mono streams into a
1920           single stereo stream. However splitting a stereo stream into two
1921           single channel mono streams is possible.
1922
1923           If you need this feature, a possible workaround is to use the
1924           amerge filter. For example, if you need to merge a media (here
1925           input.mkv) with 2 mono audio streams into one single stereo channel
1926           audio stream (and keep the video stream), you can use the following
1927           command:
1928
1929                   ffmpeg -i input.mkv -filter_complex "[0:1] [0:2] amerge" -c:a pcm_s16le -c:v copy output.mkv
1930
1931           To map the first two audio channels from the first input, and using
1932           the trailing "?", ignore the audio channel mapping if the first
1933           input is mono instead of stereo:
1934
1935                   ffmpeg -i INPUT -map_channel 0.0.0 -map_channel 0.0.1? OUTPUT
1936
1937       -map_metadata[:metadata_spec_out] infile[:metadata_spec_in]
1938       (output,per-metadata)
1939           Set metadata information of the next output file from infile. Note
1940           that those are file indices (zero-based), not filenames.  Optional
1941           metadata_spec_in/out parameters specify, which metadata to copy.  A
1942           metadata specifier can have the following forms:
1943
1944           g   global metadata, i.e. metadata that applies to the whole file
1945
1946           s[:stream_spec]
1947               per-stream metadata. stream_spec is a stream specifier as
1948               described in the Stream specifiers chapter. In an input
1949               metadata specifier, the first matching stream is copied from.
1950               In an output metadata specifier, all matching streams are
1951               copied to.
1952
1953           c:chapter_index
1954               per-chapter metadata. chapter_index is the zero-based chapter
1955               index.
1956
1957           p:program_index
1958               per-program metadata. program_index is the zero-based program
1959               index.
1960
1961           If metadata specifier is omitted, it defaults to global.
1962
1963           By default, global metadata is copied from the first input file,
1964           per-stream and per-chapter metadata is copied along with
1965           streams/chapters. These default mappings are disabled by creating
1966           any mapping of the relevant type. A negative file index can be used
1967           to create a dummy mapping that just disables automatic copying.
1968
1969           For example to copy metadata from the first stream of the input
1970           file to global metadata of the output file:
1971
1972                   ffmpeg -i in.ogg -map_metadata 0:s:0 out.mp3
1973
1974           To do the reverse, i.e. copy global metadata to all audio streams:
1975
1976                   ffmpeg -i in.mkv -map_metadata:s:a 0:g out.mkv
1977
1978           Note that simple 0 would work as well in this example, since global
1979           metadata is assumed by default.
1980
1981       -map_chapters input_file_index (output)
1982           Copy chapters from input file with index input_file_index to the
1983           next output file. If no chapter mapping is specified, then chapters
1984           are copied from the first input file with at least one chapter. Use
1985           a negative file index to disable any chapter copying.
1986
1987       -benchmark (global)
1988           Show benchmarking information at the end of an encode.  Shows real,
1989           system and user time used and maximum memory consumption.  Maximum
1990           memory consumption is not supported on all systems, it will usually
1991           display as 0 if not supported.
1992
1993       -benchmark_all (global)
1994           Show benchmarking information during the encode.  Shows real,
1995           system and user time used in various steps (audio/video
1996           encode/decode).
1997
1998       -timelimit duration (global)
1999           Exit after ffmpeg has been running for duration seconds in CPU user
2000           time.
2001
2002       -dump (global)
2003           Dump each input packet to stderr.
2004
2005       -hex (global)
2006           When dumping packets, also dump the payload.
2007
2008       -readrate speed (input)
2009           Limit input read speed.
2010
2011           Its value is a floating-point positive number which represents the
2012           maximum duration of media, in seconds, that should be ingested in
2013           one second of wallclock time.  Default value is zero and represents
2014           no imposed limitation on speed of ingestion.  Value 1 represents
2015           real-time speed and is equivalent to "-re".
2016
2017           Mainly used to simulate a capture device or live input stream (e.g.
2018           when reading from a file).  Should not be used with a low value
2019           when input is an actual capture device or live stream as it may
2020           cause packet loss.
2021
2022           It is useful for when flow speed of output packets is important,
2023           such as live streaming.
2024
2025       -re (input)
2026           Read input at native frame rate. This is equivalent to setting
2027           "-readrate 1".
2028
2029       -vsync parameter
2030           Video sync method.
2031
2032           For compatibility reasons some of the values can be specified as
2033           numbers (shown in parentheses in the following table). This is
2034           deprecated and will stop working in the future.
2035
2036           passthrough (0)
2037               Each frame is passed with its timestamp from the demuxer to the
2038               muxer.
2039
2040           cfr (1)
2041               Frames will be duplicated and dropped to achieve exactly the
2042               requested constant frame rate.
2043
2044           vfr (2)
2045               Frames are passed through with their timestamp or dropped so as
2046               to prevent 2 frames from having the same timestamp.
2047
2048           drop
2049               As passthrough but destroys all timestamps, making the muxer
2050               generate fresh timestamps based on frame-rate.
2051
2052           auto (-1)
2053               Chooses between cfr and vfr depending on muxer capabilities.
2054               This is the default method.
2055
2056           Note that the timestamps may be further modified by the muxer,
2057           after this.  For example, in the case that the format option
2058           avoid_negative_ts is enabled.
2059
2060           With -map you can select from which stream the timestamps should be
2061           taken. You can leave either video or audio unchanged and sync the
2062           remaining stream(s) to the unchanged one.
2063
2064       -frame_drop_threshold parameter
2065           Frame drop threshold, which specifies how much behind video frames
2066           can be before they are dropped. In frame rate units, so 1.0 is one
2067           frame.  The default is -1.1. One possible usecase is to avoid
2068           framedrops in case of noisy timestamps or to increase frame drop
2069           precision in case of exact timestamps.
2070
2071       -async samples_per_second
2072           Audio sync method. "Stretches/squeezes" the audio stream to match
2073           the timestamps, the parameter is the maximum samples per second by
2074           which the audio is changed.  -async 1 is a special case where only
2075           the start of the audio stream is corrected without any later
2076           correction.
2077
2078           Note that the timestamps may be further modified by the muxer,
2079           after this.  For example, in the case that the format option
2080           avoid_negative_ts is enabled.
2081
2082           This option has been deprecated. Use the "aresample" audio filter
2083           instead.
2084
2085       -adrift_threshold time
2086           Set the minimum difference between timestamps and audio data (in
2087           seconds) to trigger adding/dropping samples to make it match the
2088           timestamps. This option effectively is a threshold to select
2089           between hard (add/drop) and soft (squeeze/stretch) compensation.
2090           "-async" must be set to a positive value.
2091
2092       -apad parameters (output,per-stream)
2093           Pad the output audio stream(s). This is the same as applying "-af
2094           apad".  Argument is a string of filter parameters composed the same
2095           as with the "apad" filter.  "-shortest" must be set for this output
2096           for the option to take effect.
2097
2098       -copyts
2099           Do not process input timestamps, but keep their values without
2100           trying to sanitize them. In particular, do not remove the initial
2101           start time offset value.
2102
2103           Note that, depending on the vsync option or on specific muxer
2104           processing (e.g. in case the format option avoid_negative_ts is
2105           enabled) the output timestamps may mismatch with the input
2106           timestamps even when this option is selected.
2107
2108       -start_at_zero
2109           When used with copyts, shift input timestamps so they start at
2110           zero.
2111
2112           This means that using e.g. "-ss 50" will make output timestamps
2113           start at 50 seconds, regardless of what timestamp the input file
2114           started at.
2115
2116       -copytb mode
2117           Specify how to set the encoder timebase when stream copying.  mode
2118           is an integer numeric value, and can assume one of the following
2119           values:
2120
2121           1   Use the demuxer timebase.
2122
2123               The time base is copied to the output encoder from the
2124               corresponding input demuxer. This is sometimes required to
2125               avoid non monotonically increasing timestamps when copying
2126               video streams with variable frame rate.
2127
2128           0   Use the decoder timebase.
2129
2130               The time base is copied to the output encoder from the
2131               corresponding input decoder.
2132
2133           -1  Try to make the choice automatically, in order to generate a
2134               sane output.
2135
2136           Default value is -1.
2137
2138       -enc_time_base[:stream_specifier] timebase (output,per-stream)
2139           Set the encoder timebase. timebase is a floating point number, and
2140           can assume one of the following values:
2141
2142           0   Assign a default value according to the media type.
2143
2144               For video - use 1/framerate, for audio - use 1/samplerate.
2145
2146           -1  Use the input stream timebase when possible.
2147
2148               If an input stream is not available, the default timebase will
2149               be used.
2150
2151           >0  Use the provided number as the timebase.
2152
2153               This field can be provided as a ratio of two integers (e.g.
2154               1:24, 1:48000) or as a floating point number (e.g. 0.04166,
2155               2.0833e-5)
2156
2157           Default value is 0.
2158
2159       -bitexact (input/output)
2160           Enable bitexact mode for (de)muxer and (de/en)coder
2161
2162       -shortest (output)
2163           Finish encoding when the shortest input stream ends.
2164
2165       -dts_delta_threshold
2166           Timestamp discontinuity delta threshold.
2167
2168       -dts_error_threshold seconds
2169           Timestamp error delta threshold. This threshold use to discard
2170           crazy/damaged timestamps and the default is 30 hours which is
2171           arbitrarily picked and quite conservative.
2172
2173       -muxdelay seconds (output)
2174           Set the maximum demux-decode delay.
2175
2176       -muxpreload seconds (output)
2177           Set the initial demux-decode delay.
2178
2179       -streamid output-stream-index:new-value (output)
2180           Assign a new stream-id value to an output stream. This option
2181           should be specified prior to the output filename to which it
2182           applies.  For the situation where multiple output files exist, a
2183           streamid may be reassigned to a different value.
2184
2185           For example, to set the stream 0 PID to 33 and the stream 1 PID to
2186           36 for an output mpegts file:
2187
2188                   ffmpeg -i inurl -streamid 0:33 -streamid 1:36 out.ts
2189
2190       -bsf[:stream_specifier] bitstream_filters (output,per-stream)
2191           Set bitstream filters for matching streams. bitstream_filters is a
2192           comma-separated list of bitstream filters. Use the "-bsfs" option
2193           to get the list of bitstream filters.
2194
2195                   ffmpeg -i h264.mp4 -c:v copy -bsf:v h264_mp4toannexb -an out.h264
2196
2197
2198                   ffmpeg -i file.mov -an -vn -bsf:s mov2textsub -c:s copy -f rawvideo sub.txt
2199
2200       -tag[:stream_specifier] codec_tag (input/output,per-stream)
2201           Force a tag/fourcc for matching streams.
2202
2203       -timecode hh:mm:ssSEPff
2204           Specify Timecode for writing. SEP is ':' for non drop timecode and
2205           ';' (or '.') for drop.
2206
2207                   ffmpeg -i input.mpg -timecode 01:02:03.04 -r 30000/1001 -s ntsc output.mpg
2208
2209       -filter_complex filtergraph (global)
2210           Define a complex filtergraph, i.e. one with arbitrary number of
2211           inputs and/or outputs. For simple graphs -- those with one input
2212           and one output of the same type -- see the -filter options.
2213           filtergraph is a description of the filtergraph, as described in
2214           the ``Filtergraph syntax'' section of the ffmpeg-filters manual.
2215
2216           Input link labels must refer to input streams using the
2217           "[file_index:stream_specifier]" syntax (i.e. the same as -map
2218           uses). If stream_specifier matches multiple streams, the first one
2219           will be used. An unlabeled input will be connected to the first
2220           unused input stream of the matching type.
2221
2222           Output link labels are referred to with -map. Unlabeled outputs are
2223           added to the first output file.
2224
2225           Note that with this option it is possible to use only lavfi sources
2226           without normal input files.
2227
2228           For example, to overlay an image over video
2229
2230                   ffmpeg -i video.mkv -i image.png -filter_complex '[0:v][1:v]overlay[out]' -map
2231                   '[out]' out.mkv
2232
2233           Here "[0:v]" refers to the first video stream in the first input
2234           file, which is linked to the first (main) input of the overlay
2235           filter. Similarly the first video stream in the second input is
2236           linked to the second (overlay) input of overlay.
2237
2238           Assuming there is only one video stream in each input file, we can
2239           omit input labels, so the above is equivalent to
2240
2241                   ffmpeg -i video.mkv -i image.png -filter_complex 'overlay[out]' -map
2242                   '[out]' out.mkv
2243
2244           Furthermore we can omit the output label and the single output from
2245           the filter graph will be added to the output file automatically, so
2246           we can simply write
2247
2248                   ffmpeg -i video.mkv -i image.png -filter_complex 'overlay' out.mkv
2249
2250           As a special exception, you can use a bitmap subtitle stream as
2251           input: it will be converted into a video with the same size as the
2252           largest video in the file, or 720x576 if no video is present. Note
2253           that this is an experimental and temporary solution. It will be
2254           removed once libavfilter has proper support for subtitles.
2255
2256           For example, to hardcode subtitles on top of a DVB-T recording
2257           stored in MPEG-TS format, delaying the subtitles by 1 second:
2258
2259                   ffmpeg -i input.ts -filter_complex \
2260                     '[#0x2ef] setpts=PTS+1/TB [sub] ; [#0x2d0] [sub] overlay' \
2261                     -sn -map '#0x2dc' output.mkv
2262
2263           (0x2d0, 0x2dc and 0x2ef are the MPEG-TS PIDs of respectively the
2264           video, audio and subtitles streams; 0:0, 0:3 and 0:7 would have
2265           worked too)
2266
2267           To generate 5 seconds of pure red video using lavfi "color" source:
2268
2269                   ffmpeg -filter_complex 'color=c=red' -t 5 out.mkv
2270
2271       -filter_complex_threads nb_threads (global)
2272           Defines how many threads are used to process a filter_complex
2273           graph.  Similar to filter_threads but used for "-filter_complex"
2274           graphs only.  The default is the number of available CPUs.
2275
2276       -lavfi filtergraph (global)
2277           Define a complex filtergraph, i.e. one with arbitrary number of
2278           inputs and/or outputs. Equivalent to -filter_complex.
2279
2280       -filter_complex_script filename (global)
2281           This option is similar to -filter_complex, the only difference is
2282           that its argument is the name of the file from which a complex
2283           filtergraph description is to be read.
2284
2285       -accurate_seek (input)
2286           This option enables or disables accurate seeking in input files
2287           with the -ss option. It is enabled by default, so seeking is
2288           accurate when transcoding. Use -noaccurate_seek to disable it,
2289           which may be useful e.g. when copying some streams and transcoding
2290           the others.
2291
2292       -seek_timestamp (input)
2293           This option enables or disables seeking by timestamp in input files
2294           with the -ss option. It is disabled by default. If enabled, the
2295           argument to the -ss option is considered an actual timestamp, and
2296           is not offset by the start time of the file. This matters only for
2297           files which do not start from timestamp 0, such as transport
2298           streams.
2299
2300       -thread_queue_size size (input)
2301           This option sets the maximum number of queued packets when reading
2302           from the file or device. With low latency / high rate live streams,
2303           packets may be discarded if they are not read in a timely manner;
2304           setting this value can force ffmpeg to use a separate input thread
2305           and read packets as soon as they arrive. By default ffmpeg only do
2306           this if multiple inputs are specified.
2307
2308       -sdp_file file (global)
2309           Print sdp information for an output stream to file.  This allows
2310           dumping sdp information when at least one output isn't an rtp
2311           stream. (Requires at least one of the output formats to be rtp).
2312
2313       -discard (input)
2314           Allows discarding specific streams or frames from streams.  Any
2315           input stream can be fully discarded, using value "all" whereas
2316           selective discarding of frames from a stream occurs at the demuxer
2317           and is not supported by all demuxers.
2318
2319           none
2320               Discard no frame.
2321
2322           default
2323               Default, which discards no frames.
2324
2325           noref
2326               Discard all non-reference frames.
2327
2328           bidir
2329               Discard all bidirectional frames.
2330
2331           nokey
2332               Discard all frames excepts keyframes.
2333
2334           all Discard all frames.
2335
2336       -abort_on flags (global)
2337           Stop and abort on various conditions. The following flags are
2338           available:
2339
2340           empty_output
2341               No packets were passed to the muxer, the output is empty.
2342
2343           empty_output_stream
2344               No packets were passed to the muxer in some of the output
2345               streams.
2346
2347       -max_error_rate (global)
2348           Set fraction of decoding frame failures across all inputs which
2349           when crossed ffmpeg will return exit code 69. Crossing this
2350           threshold does not terminate processing. Range is a floating-point
2351           number between 0 to 1. Default is 2/3.
2352
2353       -xerror (global)
2354           Stop and exit on error
2355
2356       -max_muxing_queue_size packets (output,per-stream)
2357           When transcoding audio and/or video streams, ffmpeg will not begin
2358           writing into the output until it has one packet for each such
2359           stream. While waiting for that to happen, packets for other streams
2360           are buffered. This option sets the size of this buffer, in packets,
2361           for the matching output stream.
2362
2363           The default value of this option should be high enough for most
2364           uses, so only touch this option if you are sure that you need it.
2365
2366       -muxing_queue_data_threshold bytes (output,per-stream)
2367           This is a minimum threshold until which the muxing queue size is
2368           not taken into account. Defaults to 50 megabytes per stream, and is
2369           based on the overall size of packets passed to the muxer.
2370
2371       -auto_conversion_filters (global)
2372           Enable automatically inserting format conversion filters in all
2373           filter graphs, including those defined by -vf, -af, -filter_complex
2374           and -lavfi. If filter format negotiation requires a conversion, the
2375           initialization of the filters will fail.  Conversions can still be
2376           performed by inserting the relevant conversion filter (scale,
2377           aresample) in the graph.  On by default, to explicitly disable it
2378           you need to specify "-noauto_conversion_filters".
2379
2380       -bits_per_raw_sample[:stream_specifier] value (output,per-stream)
2381           Declare the number of bits per raw sample in the given output
2382           stream to be value. Note that this option sets the information
2383           provided to the encoder/muxer, it does not change the stream to
2384           conform to this value. Setting values that do not match the stream
2385           properties may result in encoding failures or invalid output files.
2386
2387   Preset files
2388       A preset file contains a sequence of option=value pairs, one for each
2389       line, specifying a sequence of options which would be awkward to
2390       specify on the command line. Lines starting with the hash ('#')
2391       character are ignored and are used to provide comments. Check the
2392       presets directory in the FFmpeg source tree for examples.
2393
2394       There are two types of preset files: ffpreset and avpreset files.
2395
2396       ffpreset files
2397
2398       ffpreset files are specified with the "vpre", "apre", "spre", and
2399       "fpre" options. The "fpre" option takes the filename of the preset
2400       instead of a preset name as input and can be used for any kind of
2401       codec. For the "vpre", "apre", and "spre" options, the options
2402       specified in a preset file are applied to the currently selected codec
2403       of the same type as the preset option.
2404
2405       The argument passed to the "vpre", "apre", and "spre" preset options
2406       identifies the preset file to use according to the following rules:
2407
2408       First ffmpeg searches for a file named arg.ffpreset in the directories
2409       $FFMPEG_DATADIR (if set), and $HOME/.ffmpeg, and in the datadir defined
2410       at configuration time (usually PREFIX/share/ffmpeg) or in a ffpresets
2411       folder along the executable on win32, in that order. For example, if
2412       the argument is "libvpx-1080p", it will search for the file
2413       libvpx-1080p.ffpreset.
2414
2415       If no such file is found, then ffmpeg will search for a file named
2416       codec_name-arg.ffpreset in the above-mentioned directories, where
2417       codec_name is the name of the codec to which the preset file options
2418       will be applied. For example, if you select the video codec with
2419       "-vcodec libvpx" and use "-vpre 1080p", then it will search for the
2420       file libvpx-1080p.ffpreset.
2421
2422       avpreset files
2423
2424       avpreset files are specified with the "pre" option. They work similar
2425       to ffpreset files, but they only allow encoder- specific options.
2426       Therefore, an option=value pair specifying an encoder cannot be used.
2427
2428       When the "pre" option is specified, ffmpeg will look for files with the
2429       suffix .avpreset in the directories $AVCONV_DATADIR (if set), and
2430       $HOME/.avconv, and in the datadir defined at configuration time
2431       (usually PREFIX/share/ffmpeg), in that order.
2432
2433       First ffmpeg searches for a file named codec_name-arg.avpreset in the
2434       above-mentioned directories, where codec_name is the name of the codec
2435       to which the preset file options will be applied. For example, if you
2436       select the video codec with "-vcodec libvpx" and use "-pre 1080p", then
2437       it will search for the file libvpx-1080p.avpreset.
2438
2439       If no such file is found, then ffmpeg will search for a file named
2440       arg.avpreset in the same directories.
2441

EXAMPLES

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

SYNTAX

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

EXPRESSION EVALUATION

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

CODEC OPTIONS

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

DECODERS

4847       Decoders are configured elements in FFmpeg which allow the decoding of
4848       multimedia streams.
4849
4850       When you configure your FFmpeg build, all the supported native decoders
4851       are enabled by default. Decoders requiring an external library must be
4852       enabled manually via the corresponding "--enable-lib" option. You can
4853       list all available decoders using the configure option
4854       "--list-decoders".
4855
4856       You can disable all the decoders with the configure option
4857       "--disable-decoders" and selectively enable / disable single decoders
4858       with the options "--enable-decoder=DECODER" /
4859       "--disable-decoder=DECODER".
4860
4861       The option "-decoders" of the ff* tools will display the list of
4862       enabled decoders.
4863

VIDEO DECODERS

4865       A description of some of the currently available video decoders
4866       follows.
4867
4868   av1
4869       AOMedia Video 1 (AV1) decoder.
4870
4871       Options
4872
4873       operating_point
4874           Select an operating point of a scalable AV1 bitstream (0 - 31).
4875           Default is 0.
4876
4877   rawvideo
4878       Raw video decoder.
4879
4880       This decoder decodes rawvideo streams.
4881
4882       Options
4883
4884       top top_field_first
4885           Specify the assumed field type of the input video.
4886
4887           -1  the video is assumed to be progressive (default)
4888
4889           0   bottom-field-first is assumed
4890
4891           1   top-field-first is assumed
4892
4893   libdav1d
4894       dav1d AV1 decoder.
4895
4896       libdav1d allows libavcodec to decode the AOMedia Video 1 (AV1) codec.
4897       Requires the presence of the libdav1d headers and library during
4898       configuration.  You need to explicitly configure the build with
4899       "--enable-libdav1d".
4900
4901       Options
4902
4903       The following options are supported by the libdav1d wrapper.
4904
4905       framethreads
4906           Set amount of frame threads to use during decoding. The default
4907           value is 0 (autodetect).  This option is deprecated for libdav1d >=
4908           1.0 and will be removed in the future. Use the global option
4909           "threads" instead.
4910
4911       tilethreads
4912           Set amount of tile threads to use during decoding. The default
4913           value is 0 (autodetect).  This option is deprecated for libdav1d >=
4914           1.0 and will be removed in the future. Use the global option
4915           "threads" instead.
4916
4917       filmgrain
4918           Apply film grain to the decoded video if present in the bitstream.
4919           Defaults to the internal default of the library.  This option is
4920           deprecated and will be removed in the future. See the global option
4921           "export_side_data" to export Film Grain parameters instead of
4922           applying it.
4923
4924       oppoint
4925           Select an operating point of a scalable AV1 bitstream (0 - 31).
4926           Defaults to the internal default of the library.
4927
4928       alllayers
4929           Output all spatial layers of a scalable AV1 bitstream. The default
4930           value is false.
4931
4932   libdavs2
4933       AVS2-P2/IEEE1857.4 video decoder wrapper.
4934
4935       This decoder allows libavcodec to decode AVS2 streams with davs2
4936       library.
4937
4938   libuavs3d
4939       AVS3-P2/IEEE1857.10 video decoder.
4940
4941       libuavs3d allows libavcodec to decode AVS3 streams.  Requires the
4942       presence of the libuavs3d headers and library during configuration.
4943       You need to explicitly configure the build with "--enable-libuavs3d".
4944
4945       Options
4946
4947       The following option is supported by the libuavs3d wrapper.
4948
4949       frame_threads
4950           Set amount of frame threads to use during decoding. The default
4951           value is 0 (autodetect).
4952

AUDIO DECODERS

4954       A description of some of the currently available audio decoders
4955       follows.
4956
4957   ac3
4958       AC-3 audio decoder.
4959
4960       This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as
4961       well as the undocumented RealAudio 3 (a.k.a. dnet).
4962
4963       AC-3 Decoder Options
4964
4965       -drc_scale value
4966           Dynamic Range Scale Factor. The factor to apply to dynamic range
4967           values from the AC-3 stream. This factor is applied exponentially.
4968           The default value is 1.  There are 3 notable scale factor ranges:
4969
4970           drc_scale == 0
4971               DRC disabled. Produces full range audio.
4972
4973           0 < drc_scale <= 1
4974               DRC enabled.  Applies a fraction of the stream DRC value.
4975               Audio reproduction is between full range and full compression.
4976
4977           drc_scale > 1
4978               DRC enabled. Applies drc_scale asymmetrically.  Loud sounds are
4979               fully compressed.  Soft sounds are enhanced.
4980
4981   flac
4982       FLAC audio decoder.
4983
4984       This decoder aims to implement the complete FLAC specification from
4985       Xiph.
4986
4987       FLAC Decoder options
4988
4989       -use_buggy_lpc
4990           The lavc FLAC encoder used to produce buggy streams with high lpc
4991           values (like the default value). This option makes it possible to
4992           decode such streams correctly by using lavc's old buggy lpc logic
4993           for decoding.
4994
4995   ffwavesynth
4996       Internal wave synthesizer.
4997
4998       This decoder generates wave patterns according to predefined sequences.
4999       Its use is purely internal and the format of the data it accepts is not
5000       publicly documented.
5001
5002   libcelt
5003       libcelt decoder wrapper.
5004
5005       libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio
5006       codec.  Requires the presence of the libcelt headers and library during
5007       configuration.  You need to explicitly configure the build with
5008       "--enable-libcelt".
5009
5010   libgsm
5011       libgsm decoder wrapper.
5012
5013       libgsm allows libavcodec to decode the GSM full rate audio codec.
5014       Requires the presence of the libgsm headers and library during
5015       configuration. You need to explicitly configure the build with
5016       "--enable-libgsm".
5017
5018       This decoder supports both the ordinary GSM and the Microsoft variant.
5019
5020   libilbc
5021       libilbc decoder wrapper.
5022
5023       libilbc allows libavcodec to decode the Internet Low Bitrate Codec
5024       (iLBC) audio codec. Requires the presence of the libilbc headers and
5025       library during configuration. You need to explicitly configure the
5026       build with "--enable-libilbc".
5027
5028       Options
5029
5030       The following option is supported by the libilbc wrapper.
5031
5032       enhance
5033           Enable the enhancement of the decoded audio when set to 1. The
5034           default value is 0 (disabled).
5035
5036   libopencore-amrnb
5037       libopencore-amrnb decoder wrapper.
5038
5039       libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate
5040       Narrowband audio codec. Using it requires the presence of the
5041       libopencore-amrnb headers and library during configuration. You need to
5042       explicitly configure the build with "--enable-libopencore-amrnb".
5043
5044       An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB
5045       without this library.
5046
5047   libopencore-amrwb
5048       libopencore-amrwb decoder wrapper.
5049
5050       libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate
5051       Wideband audio codec. Using it requires the presence of the
5052       libopencore-amrwb headers and library during configuration. You need to
5053       explicitly configure the build with "--enable-libopencore-amrwb".
5054
5055       An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB
5056       without this library.
5057
5058   libopus
5059       libopus decoder wrapper.
5060
5061       libopus allows libavcodec to decode the Opus Interactive Audio Codec.
5062       Requires the presence of the libopus headers and library during
5063       configuration. You need to explicitly configure the build with
5064       "--enable-libopus".
5065
5066       An FFmpeg native decoder for Opus exists, so users can decode Opus
5067       without this library.
5068

SUBTITLES DECODERS

5070   libaribb24
5071       ARIB STD-B24 caption decoder.
5072
5073       Implements profiles A and C of the ARIB STD-B24 standard.
5074
5075       libaribb24 Decoder Options
5076
5077       -aribb24-base-path path
5078           Sets the base path for the libaribb24 library. This is utilized for
5079           reading of configuration files (for custom unicode conversions),
5080           and for dumping of non-text symbols as images under that location.
5081
5082           Unset by default.
5083
5084       -aribb24-skip-ruby-text boolean
5085           Tells the decoder wrapper to skip text blocks that contain half-
5086           height ruby text.
5087
5088           Enabled by default.
5089
5090   dvbsub
5091       Options
5092
5093       compute_clut
5094           -2  Compute clut once if no matching CLUT is in the stream.
5095
5096           -1  Compute clut if no matching CLUT is in the stream.
5097
5098           0   Never compute CLUT
5099
5100           1   Always compute CLUT and override the one provided in the
5101               stream.
5102
5103       dvb_substream
5104           Selects the dvb substream, or all substreams if -1 which is
5105           default.
5106
5107   dvdsub
5108       This codec decodes the bitmap subtitles used in DVDs; the same
5109       subtitles can also be found in VobSub file pairs and in some Matroska
5110       files.
5111
5112       Options
5113
5114       palette
5115           Specify the global palette used by the bitmaps. When stored in
5116           VobSub, the palette is normally specified in the index file; in
5117           Matroska, the palette is stored in the codec extra-data in the same
5118           format as in VobSub. In DVDs, the palette is stored in the IFO
5119           file, and therefore not available when reading from dumped VOB
5120           files.
5121
5122           The format for this option is a string containing 16 24-bits
5123           hexadecimal numbers (without 0x prefix) separated by commas, for
5124           example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b,
5125           0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c,
5126           7c127b".
5127
5128       ifo_palette
5129           Specify the IFO file from which the global palette is obtained.
5130           (experimental)
5131
5132       forced_subs_only
5133           Only decode subtitle entries marked as forced. Some titles have
5134           forced and non-forced subtitles in the same track. Setting this
5135           flag to 1 will only keep the forced subtitles. Default value is 0.
5136
5137   libzvbi-teletext
5138       Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext
5139       subtitles. Requires the presence of the libzvbi headers and library
5140       during configuration. You need to explicitly configure the build with
5141       "--enable-libzvbi".
5142
5143       Options
5144
5145       txt_page
5146           List of teletext page numbers to decode. Pages that do not match
5147           the specified list are dropped. You may use the special "*" string
5148           to match all pages, or "subtitle" to match all subtitle pages.
5149           Default value is *.
5150
5151       txt_default_region
5152           Set default character set used for decoding, a value between 0 and
5153           87 (see ETS 300 706, Section 15, Table 32). Default value is -1,
5154           which does not override the libzvbi default. This option is needed
5155           for some legacy level 1.0 transmissions which cannot signal the
5156           proper charset.
5157
5158       txt_chop_top
5159           Discards the top teletext line. Default value is 1.
5160
5161       txt_format
5162           Specifies the format of the decoded subtitles.
5163
5164           bitmap
5165               The default format, you should use this for teletext pages,
5166               because certain graphics and colors cannot be expressed in
5167               simple text or even ASS.
5168
5169           text
5170               Simple text based output without formatting.
5171
5172           ass Formatted ASS output, subtitle pages and teletext pages are
5173               returned in different styles, subtitle pages are stripped down
5174               to text, but an effort is made to keep the text alignment and
5175               the formatting.
5176
5177       txt_left
5178           X offset of generated bitmaps, default is 0.
5179
5180       txt_top
5181           Y offset of generated bitmaps, default is 0.
5182
5183       txt_chop_spaces
5184           Chops leading and trailing spaces and removes empty lines from the
5185           generated text. This option is useful for teletext based subtitles
5186           where empty spaces may be present at the start or at the end of the
5187           lines or empty lines may be present between the subtitle lines
5188           because of double-sized teletext characters.  Default value is 1.
5189
5190       txt_duration
5191           Sets the display duration of the decoded teletext pages or
5192           subtitles in milliseconds. Default value is -1 which means infinity
5193           or until the next subtitle event comes.
5194
5195       txt_transparent
5196           Force transparent background of the generated teletext bitmaps.
5197           Default value is 0 which means an opaque background.
5198
5199       txt_opacity
5200           Sets the opacity (0-255) of the teletext background. If
5201           txt_transparent is not set, it only affects characters between a
5202           start box and an end box, typically subtitles. Default value is 0
5203           if txt_transparent is set, 255 otherwise.
5204

ENCODERS

5206       Encoders are configured elements in FFmpeg which allow the encoding of
5207       multimedia streams.
5208
5209       When you configure your FFmpeg build, all the supported native encoders
5210       are enabled by default. Encoders requiring an external library must be
5211       enabled manually via the corresponding "--enable-lib" option. You can
5212       list all available encoders using the configure option
5213       "--list-encoders".
5214
5215       You can disable all the encoders with the configure option
5216       "--disable-encoders" and selectively enable / disable single encoders
5217       with the options "--enable-encoder=ENCODER" /
5218       "--disable-encoder=ENCODER".
5219
5220       The option "-encoders" of the ff* tools will display the list of
5221       enabled encoders.
5222

AUDIO ENCODERS

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

VIDEO ENCODERS

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

SUBTITLES ENCODERS

8422   dvdsub
8423       This codec encodes the bitmap subtitle format that is used in DVDs.
8424       Typically they are stored in VOBSUB file pairs (*.idx + *.sub), and
8425       they can also be used in Matroska files.
8426
8427       Options
8428
8429       palette
8430           Specify the global palette used by the bitmaps.
8431
8432           The format for this option is a string containing 16 24-bits
8433           hexadecimal numbers (without 0x prefix) separated by commas, for
8434           example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b,
8435           0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c,
8436           7c127b".
8437
8438       even_rows_fix
8439           When set to 1, enable a work-around that makes the number of pixel
8440           rows even in all subtitles.  This fixes a problem with some players
8441           that cut off the bottom row if the number is odd.  The work-around
8442           just adds a fully transparent row if needed.  The overhead is low,
8443           typically one byte per subtitle on average.
8444
8445           By default, this work-around is disabled.
8446

BITSTREAM FILTERS

8448       When you configure your FFmpeg build, all the supported bitstream
8449       filters are enabled by default. You can list all available ones using
8450       the configure option "--list-bsfs".
8451
8452       You can disable all the bitstream filters using the configure option
8453       "--disable-bsfs", and selectively enable any bitstream filter using the
8454       option "--enable-bsf=BSF", or you can disable a particular bitstream
8455       filter using the option "--disable-bsf=BSF".
8456
8457       The option "-bsfs" of the ff* tools will display the list of all the
8458       supported bitstream filters included in your build.
8459
8460       The ff* tools have a -bsf option applied per stream, taking a comma-
8461       separated list of filters, whose parameters follow the filter name
8462       after a '='.
8463
8464               ffmpeg -i INPUT -c:v copy -bsf:v filter1[=opt1=str1:opt2=str2][,filter2] OUTPUT
8465
8466       Below is a description of the currently available bitstream filters,
8467       with their parameters, if any.
8468
8469   aac_adtstoasc
8470       Convert MPEG-2/4 AAC ADTS to an MPEG-4 Audio Specific Configuration
8471       bitstream.
8472
8473       This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4 ADTS
8474       header and removes the ADTS header.
8475
8476       This filter is required for example when copying an AAC stream from a
8477       raw ADTS AAC or an MPEG-TS container to MP4A-LATM, to an FLV file, or
8478       to MOV/MP4 files and related formats such as 3GP or M4A. Please note
8479       that it is auto-inserted for MP4A-LATM and MOV/MP4 and related formats.
8480
8481   av1_metadata
8482       Modify metadata embedded in an AV1 stream.
8483
8484       td  Insert or remove temporal delimiter OBUs in all temporal units of
8485           the stream.
8486
8487           insert
8488               Insert a TD at the beginning of every TU which does not already
8489               have one.
8490
8491           remove
8492               Remove the TD from the beginning of every TU which has one.
8493
8494       color_primaries
8495       transfer_characteristics
8496       matrix_coefficients
8497           Set the color description fields in the stream (see AV1 section
8498           6.4.2).
8499
8500       color_range
8501           Set the color range in the stream (see AV1 section 6.4.2; note that
8502           this cannot be set for streams using BT.709 primaries, sRGB
8503           transfer characteristic and identity (RGB) matrix coefficients).
8504
8505           tv  Limited range.
8506
8507           pc  Full range.
8508
8509       chroma_sample_position
8510           Set the chroma sample location in the stream (see AV1 section
8511           6.4.2).  This can only be set for 4:2:0 streams.
8512
8513           vertical
8514               Left position (matching the default in MPEG-2 and H.264).
8515
8516           colocated
8517               Top-left position.
8518
8519       tick_rate
8520           Set the tick rate (time_scale / num_units_in_display_tick) in the
8521           timing info in the sequence header.
8522
8523       num_ticks_per_picture
8524           Set the number of ticks in each picture, to indicate that the
8525           stream has a fixed framerate.  Ignored if tick_rate is not also
8526           set.
8527
8528       delete_padding
8529           Deletes Padding OBUs.
8530
8531   chomp
8532       Remove zero padding at the end of a packet.
8533
8534   dca_core
8535       Extract the core from a DCA/DTS stream, dropping extensions such as
8536       DTS-HD.
8537
8538   dump_extra
8539       Add extradata to the beginning of the filtered packets except when said
8540       packets already exactly begin with the extradata that is intended to be
8541       added.
8542
8543       freq
8544           The additional argument specifies which packets should be filtered.
8545           It accepts the values:
8546
8547           k
8548           keyframe
8549               add extradata to all key packets
8550
8551           e
8552           all add extradata to all packets
8553
8554       If not specified it is assumed k.
8555
8556       For example the following ffmpeg command forces a global header (thus
8557       disabling individual packet headers) in the H.264 packets generated by
8558       the "libx264" encoder, but corrects them by adding the header stored in
8559       extradata to the key packets:
8560
8561               ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
8562
8563   eac3_core
8564       Extract the core from a E-AC-3 stream, dropping extra channels.
8565
8566   extract_extradata
8567       Extract the in-band extradata.
8568
8569       Certain codecs allow the long-term headers (e.g. MPEG-2 sequence
8570       headers, or H.264/HEVC (VPS/)SPS/PPS) to be transmitted either "in-
8571       band" (i.e. as a part of the bitstream containing the coded frames) or
8572       "out of band" (e.g. on the container level). This latter form is called
8573       "extradata" in FFmpeg terminology.
8574
8575       This bitstream filter detects the in-band headers and makes them
8576       available as extradata.
8577
8578       remove
8579           When this option is enabled, the long-term headers are removed from
8580           the bitstream after extraction.
8581
8582   filter_units
8583       Remove units with types in or not in a given set from the stream.
8584
8585       pass_types
8586           List of unit types or ranges of unit types to pass through while
8587           removing all others.  This is specified as a '|'-separated list of
8588           unit type values or ranges of values with '-'.
8589
8590       remove_types
8591           Identical to pass_types, except the units in the given set removed
8592           and all others passed through.
8593
8594       Extradata is unchanged by this transformation, but note that if the
8595       stream contains inline parameter sets then the output may be unusable
8596       if they are removed.
8597
8598       For example, to remove all non-VCL NAL units from an H.264 stream:
8599
8600               ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=pass_types=1-5' OUTPUT
8601
8602       To remove all AUDs, SEI and filler from an H.265 stream:
8603
8604               ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=35|38-40' OUTPUT
8605
8606   hapqa_extract
8607       Extract Rgb or Alpha part of an HAPQA file, without recompression, in
8608       order to create an HAPQ or an HAPAlphaOnly file.
8609
8610       texture
8611           Specifies the texture to keep.
8612
8613           color
8614           alpha
8615
8616       Convert HAPQA to HAPQ
8617
8618               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
8619
8620       Convert HAPQA to HAPAlphaOnly
8621
8622               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
8623
8624   h264_metadata
8625       Modify metadata embedded in an H.264 stream.
8626
8627       aud Insert or remove AUD NAL units in all access units of the stream.
8628
8629           insert
8630           remove
8631       sample_aspect_ratio
8632           Set the sample aspect ratio of the stream in the VUI parameters.
8633
8634       overscan_appropriate_flag
8635           Set whether the stream is suitable for display using overscan or
8636           not (see H.264 section E.2.1).
8637
8638       video_format
8639       video_full_range_flag
8640           Set the video format in the stream (see H.264 section E.2.1 and
8641           table E-2).
8642
8643       colour_primaries
8644       transfer_characteristics
8645       matrix_coefficients
8646           Set the colour description in the stream (see H.264 section E.2.1
8647           and tables E-3, E-4 and E-5).
8648
8649       chroma_sample_loc_type
8650           Set the chroma sample location in the stream (see H.264 section
8651           E.2.1 and figure E-1).
8652
8653       tick_rate
8654           Set the tick rate (time_scale / num_units_in_tick) in the VUI
8655           parameters.  This is the smallest time unit representable in the
8656           stream, and in many cases represents the field rate of the stream
8657           (double the frame rate).
8658
8659       fixed_frame_rate_flag
8660           Set whether the stream has fixed framerate - typically this
8661           indicates that the framerate is exactly half the tick rate, but the
8662           exact meaning is dependent on interlacing and the picture structure
8663           (see H.264 section E.2.1 and table E-6).
8664
8665       zero_new_constraint_set_flags
8666           Zero constraint_set4_flag and constraint_set5_flag in the SPS.
8667           These bits were reserved in a previous version of the H.264 spec,
8668           and thus some hardware decoders require these to be zero. The
8669           result of zeroing this is still a valid bitstream.
8670
8671       crop_left
8672       crop_right
8673       crop_top
8674       crop_bottom
8675           Set the frame cropping offsets in the SPS.  These values will
8676           replace the current ones if the stream is already cropped.
8677
8678           These fields are set in pixels.  Note that some sizes may not be
8679           representable if the chroma is subsampled or the stream is
8680           interlaced (see H.264 section 7.4.2.1.1).
8681
8682       sei_user_data
8683           Insert a string as SEI unregistered user data.  The argument must
8684           be of the form UUID+string, where the UUID is as hex digits
8685           possibly separated by hyphens, and the string can be anything.
8686
8687           For example, 086f3693-b7b3-4f2c-9653-21492feee5b8+hello will insert
8688           the string ``hello'' associated with the given UUID.
8689
8690       delete_filler
8691           Deletes both filler NAL units and filler SEI messages.
8692
8693       level
8694           Set the level in the SPS.  Refer to H.264 section A.3 and tables
8695           A-1 to A-5.
8696
8697           The argument must be the name of a level (for example, 4.2), a
8698           level_idc value (for example, 42), or the special name auto
8699           indicating that the filter should attempt to guess the level from
8700           the input stream properties.
8701
8702   h264_mp4toannexb
8703       Convert an H.264 bitstream from length prefixed mode to start code
8704       prefixed mode (as defined in the Annex B of the ITU-T H.264
8705       specification).
8706
8707       This is required by some streaming formats, typically the MPEG-2
8708       transport stream format (muxer "mpegts").
8709
8710       For example to remux an MP4 file containing an H.264 stream to mpegts
8711       format with ffmpeg, you can use the command:
8712
8713               ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
8714
8715       Please note that this filter is auto-inserted for MPEG-TS (muxer
8716       "mpegts") and raw H.264 (muxer "h264") output formats.
8717
8718   h264_redundant_pps
8719       This applies a specific fixup to some Blu-ray streams which contain
8720       redundant PPSs modifying irrelevant parameters of the stream which
8721       confuse other transformations which require correct extradata.
8722
8723       A new single global PPS is created, and all of the redundant PPSs
8724       within the stream are removed.
8725
8726   hevc_metadata
8727       Modify metadata embedded in an HEVC stream.
8728
8729       aud Insert or remove AUD NAL units in all access units of the stream.
8730
8731           insert
8732           remove
8733       sample_aspect_ratio
8734           Set the sample aspect ratio in the stream in the VUI parameters.
8735
8736       video_format
8737       video_full_range_flag
8738           Set the video format in the stream (see H.265 section E.3.1 and
8739           table E.2).
8740
8741       colour_primaries
8742       transfer_characteristics
8743       matrix_coefficients
8744           Set the colour description in the stream (see H.265 section E.3.1
8745           and tables E.3, E.4 and E.5).
8746
8747       chroma_sample_loc_type
8748           Set the chroma sample location in the stream (see H.265 section
8749           E.3.1 and figure E.1).
8750
8751       tick_rate
8752           Set the tick rate in the VPS and VUI parameters (time_scale /
8753           num_units_in_tick). Combined with num_ticks_poc_diff_one, this can
8754           set a constant framerate in the stream.  Note that it is likely to
8755           be overridden by container parameters when the stream is in a
8756           container.
8757
8758       num_ticks_poc_diff_one
8759           Set poc_proportional_to_timing_flag in VPS and VUI and use this
8760           value to set num_ticks_poc_diff_one_minus1 (see H.265 sections
8761           7.4.3.1 and E.3.1).  Ignored if tick_rate is not also set.
8762
8763       crop_left
8764       crop_right
8765       crop_top
8766       crop_bottom
8767           Set the conformance window cropping offsets in the SPS.  These
8768           values will replace the current ones if the stream is already
8769           cropped.
8770
8771           These fields are set in pixels.  Note that some sizes may not be
8772           representable if the chroma is subsampled (H.265 section
8773           7.4.3.2.1).
8774
8775       level
8776           Set the level in the VPS and SPS.  See H.265 section A.4 and tables
8777           A.6 and A.7.
8778
8779           The argument must be the name of a level (for example, 5.1), a
8780           general_level_idc value (for example, 153 for level 5.1), or the
8781           special name auto indicating that the filter should attempt to
8782           guess the level from the input stream properties.
8783
8784   hevc_mp4toannexb
8785       Convert an HEVC/H.265 bitstream from length prefixed mode to start code
8786       prefixed mode (as defined in the Annex B of the ITU-T H.265
8787       specification).
8788
8789       This is required by some streaming formats, typically the MPEG-2
8790       transport stream format (muxer "mpegts").
8791
8792       For example to remux an MP4 file containing an HEVC stream to mpegts
8793       format with ffmpeg, you can use the command:
8794
8795               ffmpeg -i INPUT.mp4 -codec copy -bsf:v hevc_mp4toannexb OUTPUT.ts
8796
8797       Please note that this filter is auto-inserted for MPEG-TS (muxer
8798       "mpegts") and raw HEVC/H.265 (muxer "h265" or "hevc") output formats.
8799
8800   imxdump
8801       Modifies the bitstream to fit in MOV and to be usable by the Final Cut
8802       Pro decoder. This filter only applies to the mpeg2video codec, and is
8803       likely not needed for Final Cut Pro 7 and newer with the appropriate
8804       -tag:v.
8805
8806       For example, to remux 30 MB/sec NTSC IMX to MOV:
8807
8808               ffmpeg -i input.mxf -c copy -bsf:v imxdump -tag:v mx3n output.mov
8809
8810   mjpeg2jpeg
8811       Convert MJPEG/AVI1 packets to full JPEG/JFIF packets.
8812
8813       MJPEG is a video codec wherein each video frame is essentially a JPEG
8814       image. The individual frames can be extracted without loss, e.g. by
8815
8816               ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg
8817
8818       Unfortunately, these chunks are incomplete JPEG images, because they
8819       lack the DHT segment required for decoding. Quoting from
8820       <http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml>:
8821
8822       Avery Lee, writing in the rec.video.desktop newsgroup in 2001,
8823       commented that "MJPEG, or at least the MJPEG in AVIs having the MJPG
8824       fourcc, is restricted JPEG with a fixed -- and *omitted* -- Huffman
8825       table. The JPEG must be YCbCr colorspace, it must be 4:2:2, and it must
8826       use basic Huffman encoding, not arithmetic or progressive. . . . You
8827       can indeed extract the MJPEG frames and decode them with a regular JPEG
8828       decoder, but you have to prepend the DHT segment to them, or else the
8829       decoder won't have any idea how to decompress the data. The exact table
8830       necessary is given in the OpenDML spec."
8831
8832       This bitstream filter patches the header of frames extracted from an
8833       MJPEG stream (carrying the AVI1 header ID and lacking a DHT segment) to
8834       produce fully qualified JPEG images.
8835
8836               ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
8837               exiftran -i -9 frame*.jpg
8838               ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
8839
8840   mjpegadump
8841       Add an MJPEG A header to the bitstream, to enable decoding by
8842       Quicktime.
8843
8844   mov2textsub
8845       Extract a representable text file from MOV subtitles, stripping the
8846       metadata header from each subtitle packet.
8847
8848       See also the text2movsub filter.
8849
8850   mp3decomp
8851       Decompress non-standard compressed MP3 audio headers.
8852
8853   mpeg2_metadata
8854       Modify metadata embedded in an MPEG-2 stream.
8855
8856       display_aspect_ratio
8857           Set the display aspect ratio in the stream.
8858
8859           The following fixed values are supported:
8860
8861           4/3
8862           16/9
8863           221/100
8864
8865           Any other value will result in square pixels being signalled
8866           instead (see H.262 section 6.3.3 and table 6-3).
8867
8868       frame_rate
8869           Set the frame rate in the stream.  This is constructed from a table
8870           of known values combined with a small multiplier and divisor - if
8871           the supplied value is not exactly representable, the nearest
8872           representable value will be used instead (see H.262 section 6.3.3
8873           and table 6-4).
8874
8875       video_format
8876           Set the video format in the stream (see H.262 section 6.3.6 and
8877           table 6-6).
8878
8879       colour_primaries
8880       transfer_characteristics
8881       matrix_coefficients
8882           Set the colour description in the stream (see H.262 section 6.3.6
8883           and tables 6-7, 6-8 and 6-9).
8884
8885   mpeg4_unpack_bframes
8886       Unpack DivX-style packed B-frames.
8887
8888       DivX-style packed B-frames are not valid MPEG-4 and were only a
8889       workaround for the broken Video for Windows subsystem.  They use more
8890       space, can cause minor AV sync issues, require more CPU power to decode
8891       (unless the player has some decoded picture queue to compensate the
8892       2,0,2,0 frame per packet style) and cause trouble if copied into a
8893       standard container like mp4 or mpeg-ps/ts, because MPEG-4 decoders may
8894       not be able to decode them, since they are not valid MPEG-4.
8895
8896       For example to fix an AVI file containing an MPEG-4 stream with DivX-
8897       style packed B-frames using ffmpeg, you can use the command:
8898
8899               ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi
8900
8901   noise
8902       Damages the contents of packets or simply drops them without damaging
8903       the container. Can be used for fuzzing or testing error
8904       resilience/concealment.
8905
8906       Parameters:
8907
8908       amount
8909           Accepts an expression whose evaluation per-packet determines how
8910           often bytes in that packet will be modified. A value below 0 will
8911           result in a variable frequency.  Default is 0 which results in no
8912           modification. However, if neither amount nor drop is specified,
8913           amount will be set to -1. See below for accepted variables.
8914
8915       drop
8916           Accepts an expression evaluated per-packet whose value determines
8917           whether that packet is dropped.  Evaluation to a positive value
8918           results in the packet being dropped. Evaluation to a negative value
8919           results in a variable chance of it being dropped, roughly inverse
8920           in proportion to the magnitude of the value. Default is 0 which
8921           results in no drops. See below for accepted variables.
8922
8923       dropamount
8924           Accepts a non-negative integer, which assigns a variable chance of
8925           it being dropped, roughly inverse in proportion to the value.
8926           Default is 0 which results in no drops. This option is kept for
8927           backwards compatibility and is equivalent to setting drop to a
8928           negative value with the same magnitude i.e. "dropamount=4" is the
8929           same as "drop=-4". Ignored if drop is also specified.
8930
8931       Both "amount" and "drop" accept expressions containing the following
8932       variables:
8933
8934       n   The index of the packet, starting from zero.
8935
8936       tb  The timebase for packet timestamps.
8937
8938       pts Packet presentation timestamp.
8939
8940       dts Packet decoding timestamp.
8941
8942       nopts
8943           Constant representing AV_NOPTS_VALUE.
8944
8945       startpts
8946           First non-AV_NOPTS_VALUE PTS seen in the stream.
8947
8948       startdts
8949           First non-AV_NOPTS_VALUE DTS seen in the stream.
8950
8951       duration
8952       d   Packet duration, in timebase units.
8953
8954       pos Packet position in input; may be -1 when unknown or not set.
8955
8956       size
8957           Packet size, in bytes.
8958
8959       key Whether packet is marked as a keyframe.
8960
8961       state
8962           A pseudo random integer, primarily derived from the content of
8963           packet payload.
8964
8965       Examples
8966
8967       Apply modification to every byte but don't drop any packets.
8968
8969               ffmpeg -i INPUT -c copy -bsf noise=1 output.mkv
8970
8971       Drop every video packet not marked as a keyframe after timestamp 30s
8972       but do not modify any of the remaining packets.
8973
8974               ffmpeg -i INPUT -c copy -bsf:v noise=drop='gt(t\,30)*not(key)' output.mkv
8975
8976       Drop one second of audio every 10 seconds and add some random noise to
8977       the rest.
8978
8979               ffmpeg -i INPUT -c copy -bsf:a noise=amount=-1:drop='between(mod(t\,10)\,9\,10)' output.mkv
8980
8981   null
8982       This bitstream filter passes the packets through unchanged.
8983
8984   pcm_rechunk
8985       Repacketize PCM audio to a fixed number of samples per packet or a
8986       fixed packet rate per second. This is similar to the asetnsamples audio
8987       filter but works on audio packets instead of audio frames.
8988
8989       nb_out_samples, n
8990           Set the number of samples per each output audio packet. The number
8991           is intended as the number of samples per each channel. Default
8992           value is 1024.
8993
8994       pad, p
8995           If set to 1, the filter will pad the last audio packet with
8996           silence, so that it will contain the same number of samples (or
8997           roughly the same number of samples, see frame_rate) as the previous
8998           ones. Default value is 1.
8999
9000       frame_rate, r
9001           This option makes the filter output a fixed number of packets per
9002           second instead of a fixed number of samples per packet. If the
9003           audio sample rate is not divisible by the frame rate then the
9004           number of samples will not be constant but will vary slightly so
9005           that each packet will start as close to the frame boundary as
9006           possible. Using this option has precedence over nb_out_samples.
9007
9008       You can generate the well known 1602-1601-1602-1601-1602 pattern of
9009       48kHz audio for NTSC frame rate using the frame_rate option.
9010
9011               ffmpeg -f lavfi -i sine=r=48000:d=1 -c pcm_s16le -bsf pcm_rechunk=r=30000/1001 -f framecrc -
9012
9013   prores_metadata
9014       Modify color property metadata embedded in prores stream.
9015
9016       color_primaries
9017           Set the color primaries.  Available values are:
9018
9019           auto
9020               Keep the same color primaries property (default).
9021
9022           unknown
9023           bt709
9024           bt470bg
9025               BT601 625
9026
9027           smpte170m
9028               BT601 525
9029
9030           bt2020
9031           smpte431
9032               DCI P3
9033
9034           smpte432
9035               P3 D65
9036
9037       transfer_characteristics
9038           Set the color transfer.  Available values are:
9039
9040           auto
9041               Keep the same transfer characteristics property (default).
9042
9043           unknown
9044           bt709
9045               BT 601, BT 709, BT 2020
9046
9047           smpte2084
9048               SMPTE ST 2084
9049
9050           arib-std-b67
9051               ARIB STD-B67
9052
9053       matrix_coefficients
9054           Set the matrix coefficient.  Available values are:
9055
9056           auto
9057               Keep the same colorspace property (default).
9058
9059           unknown
9060           bt709
9061           smpte170m
9062               BT 601
9063
9064           bt2020nc
9065
9066       Set Rec709 colorspace for each frame of the file
9067
9068               ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt709:color_trc=bt709:colorspace=bt709 output.mov
9069
9070       Set Hybrid Log-Gamma parameters for each frame of the file
9071
9072               ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt2020:color_trc=arib-std-b67:colorspace=bt2020nc output.mov
9073
9074   remove_extra
9075       Remove extradata from packets.
9076
9077       It accepts the following parameter:
9078
9079       freq
9080           Set which frame types to remove extradata from.
9081
9082           k   Remove extradata from non-keyframes only.
9083
9084           keyframe
9085               Remove extradata from keyframes only.
9086
9087           e, all
9088               Remove extradata from all frames.
9089
9090   setts
9091       Set PTS and DTS in packets.
9092
9093       It accepts the following parameters:
9094
9095       ts
9096       pts
9097       dts Set expressions for PTS, DTS or both.
9098
9099       The expressions are evaluated through the eval API and can contain the
9100       following constants:
9101
9102       N   The count of the input packet. Starting from 0.
9103
9104       TS  The demux timestamp in input in case of "ts" or "dts" option or
9105           presentation timestamp in case of "pts" option.
9106
9107       POS The original position in the file of the packet, or undefined if
9108           undefined for the current packet
9109
9110       DTS The demux timestamp in input.
9111
9112       PTS The presentation timestamp in input.
9113
9114       STARTDTS
9115           The DTS of the first packet.
9116
9117       STARTPTS
9118           The PTS of the first packet.
9119
9120       PREV_INDTS
9121           The previous input DTS.
9122
9123       PREV_INPTS
9124           The previous input PTS.
9125
9126       PREV_OUTDTS
9127           The previous output DTS.
9128
9129       PREV_OUTPTS
9130           The previous output PTS.
9131
9132       TB  The timebase of stream packet belongs.
9133
9134       SR  The sample rate of stream packet belongs.
9135
9136       NOPTS
9137           The AV_NOPTS_VALUE constant.
9138
9139   text2movsub
9140       Convert text subtitles to MOV subtitles (as used by the "mov_text"
9141       codec) with metadata headers.
9142
9143       See also the mov2textsub filter.
9144
9145   trace_headers
9146       Log trace output containing all syntax elements in the coded stream
9147       headers (everything above the level of individual coded blocks).  This
9148       can be useful for debugging low-level stream issues.
9149
9150       Supports AV1, H.264, H.265, (M)JPEG, MPEG-2 and VP9, but depending on
9151       the build only a subset of these may be available.
9152
9153   truehd_core
9154       Extract the core from a TrueHD stream, dropping ATMOS data.
9155
9156   vp9_metadata
9157       Modify metadata embedded in a VP9 stream.
9158
9159       color_space
9160           Set the color space value in the frame header.  Note that any frame
9161           set to RGB will be implicitly set to PC range and that RGB is
9162           incompatible with profiles 0 and 2.
9163
9164           unknown
9165           bt601
9166           bt709
9167           smpte170
9168           smpte240
9169           bt2020
9170           rgb
9171       color_range
9172           Set the color range value in the frame header.  Note that any value
9173           imposed by the color space will take precedence over this value.
9174
9175           tv
9176           pc
9177
9178   vp9_superframe
9179       Merge VP9 invisible (alt-ref) frames back into VP9 superframes. This
9180       fixes merging of split/segmented VP9 streams where the alt-ref frame
9181       was split from its visible counterpart.
9182
9183   vp9_superframe_split
9184       Split VP9 superframes into single frames.
9185
9186   vp9_raw_reorder
9187       Given a VP9 stream with correct timestamps but possibly out of order,
9188       insert additional show-existing-frame packets to correct the ordering.
9189

FORMAT OPTIONS

9191       The libavformat library provides some generic global options, which can
9192       be set on all the muxers and demuxers. In addition each muxer or
9193       demuxer may support so-called private options, which are specific for
9194       that component.
9195
9196       Options may be set by specifying -option value in the FFmpeg tools, or
9197       by setting the value explicitly in the "AVFormatContext" options or
9198       using the libavutil/opt.h API for programmatic use.
9199
9200       The list of supported options follows:
9201
9202       avioflags flags (input/output)
9203           Possible values:
9204
9205           direct
9206               Reduce buffering.
9207
9208       probesize integer (input)
9209           Set probing size in bytes, i.e. the size of the data to analyze to
9210           get stream information. A higher value will enable detecting more
9211           information in case it is dispersed into the stream, but will
9212           increase latency. Must be an integer not lesser than 32. It is
9213           5000000 by default.
9214
9215       max_probe_packets integer (input)
9216           Set the maximum number of buffered packets when probing a codec.
9217           Default is 2500 packets.
9218
9219       packetsize integer (output)
9220           Set packet size.
9221
9222       fflags flags
9223           Set format flags. Some are implemented for a limited number of
9224           formats.
9225
9226           Possible values for input files:
9227
9228           discardcorrupt
9229               Discard corrupted packets.
9230
9231           fastseek
9232               Enable fast, but inaccurate seeks for some formats.
9233
9234           genpts
9235               Generate missing PTS if DTS is present.
9236
9237           igndts
9238               Ignore DTS if PTS is set. Inert when nofillin is set.
9239
9240           ignidx
9241               Ignore index.
9242
9243           nobuffer
9244               Reduce the latency introduced by buffering during initial input
9245               streams analysis.
9246
9247           nofillin
9248               Do not fill in missing values in packet fields that can be
9249               exactly calculated.
9250
9251           noparse
9252               Disable AVParsers, this needs "+nofillin" too.
9253
9254           sortdts
9255               Try to interleave output packets by DTS. At present, available
9256               only for AVIs with an index.
9257
9258           Possible values for output files:
9259
9260           autobsf
9261               Automatically apply bitstream filters as required by the output
9262               format. Enabled by default.
9263
9264           bitexact
9265               Only write platform-, build- and time-independent data.  This
9266               ensures that file and data checksums are reproducible and match
9267               between platforms. Its primary use is for regression testing.
9268
9269           flush_packets
9270               Write out packets immediately.
9271
9272           shortest
9273               Stop muxing at the end of the shortest stream.  It may be
9274               needed to increase max_interleave_delta to avoid flushing the
9275               longer streams before EOF.
9276
9277       seek2any integer (input)
9278           Allow seeking to non-keyframes on demuxer level when supported if
9279           set to 1.  Default is 0.
9280
9281       analyzeduration integer (input)
9282           Specify how many microseconds are analyzed to probe the input. A
9283           higher value will enable detecting more accurate information, but
9284           will increase latency. It defaults to 5,000,000 microseconds = 5
9285           seconds.
9286
9287       cryptokey hexadecimal string (input)
9288           Set decryption key.
9289
9290       indexmem integer (input)
9291           Set max memory used for timestamp index (per stream).
9292
9293       rtbufsize integer (input)
9294           Set max memory used for buffering real-time frames.
9295
9296       fdebug flags (input/output)
9297           Print specific debug info.
9298
9299           Possible values:
9300
9301           ts
9302       max_delay integer (input/output)
9303           Set maximum muxing or demuxing delay in microseconds.
9304
9305       fpsprobesize integer (input)
9306           Set number of frames used to probe fps.
9307
9308       audio_preload integer (output)
9309           Set microseconds by which audio packets should be interleaved
9310           earlier.
9311
9312       chunk_duration integer (output)
9313           Set microseconds for each chunk.
9314
9315       chunk_size integer (output)
9316           Set size in bytes for each chunk.
9317
9318       err_detect, f_err_detect flags (input)
9319           Set error detection flags. "f_err_detect" is deprecated and should
9320           be used only via the ffmpeg tool.
9321
9322           Possible values:
9323
9324           crccheck
9325               Verify embedded CRCs.
9326
9327           bitstream
9328               Detect bitstream specification deviations.
9329
9330           buffer
9331               Detect improper bitstream length.
9332
9333           explode
9334               Abort decoding on minor error detection.
9335
9336           careful
9337               Consider things that violate the spec and have not been seen in
9338               the wild as errors.
9339
9340           compliant
9341               Consider all spec non compliancies as errors.
9342
9343           aggressive
9344               Consider things that a sane encoder should not do as an error.
9345
9346       max_interleave_delta integer (output)
9347           Set maximum buffering duration for interleaving. The duration is
9348           expressed in microseconds, and defaults to 10000000 (10 seconds).
9349
9350           To ensure all the streams are interleaved correctly, libavformat
9351           will wait until it has at least one packet for each stream before
9352           actually writing any packets to the output file. When some streams
9353           are "sparse" (i.e. there are large gaps between successive
9354           packets), this can result in excessive buffering.
9355
9356           This field specifies the maximum difference between the timestamps
9357           of the first and the last packet in the muxing queue, above which
9358           libavformat will output a packet regardless of whether it has
9359           queued a packet for all the streams.
9360
9361           If set to 0, libavformat will continue buffering packets until it
9362           has a packet for each stream, regardless of the maximum timestamp
9363           difference between the buffered packets.
9364
9365       use_wallclock_as_timestamps integer (input)
9366           Use wallclock as timestamps if set to 1. Default is 0.
9367
9368       avoid_negative_ts integer (output)
9369           Possible values:
9370
9371           make_non_negative
9372               Shift timestamps to make them non-negative.  Also note that
9373               this affects only leading negative timestamps, and not non-
9374               monotonic negative timestamps.
9375
9376           make_zero
9377               Shift timestamps so that the first timestamp is 0.
9378
9379           auto (default)
9380               Enables shifting when required by the target format.
9381
9382           disabled
9383               Disables shifting of timestamp.
9384
9385           When shifting is enabled, all output timestamps are shifted by the
9386           same amount. Audio, video, and subtitles desynching and relative
9387           timestamp differences are preserved compared to how they would have
9388           been without shifting.
9389
9390       skip_initial_bytes integer (input)
9391           Set number of bytes to skip before reading header and frames if set
9392           to 1.  Default is 0.
9393
9394       correct_ts_overflow integer (input)
9395           Correct single timestamp overflows if set to 1. Default is 1.
9396
9397       flush_packets integer (output)
9398           Flush the underlying I/O stream after each packet. Default is -1
9399           (auto), which means that the underlying protocol will decide, 1
9400           enables it, and has the effect of reducing the latency, 0 disables
9401           it and may increase IO throughput in some cases.
9402
9403       output_ts_offset offset (output)
9404           Set the output time offset.
9405
9406           offset must be a time duration specification, see the Time duration
9407           section in the ffmpeg-utils(1) manual.
9408
9409           The offset is added by the muxer to the output timestamps.
9410
9411           Specifying a positive offset means that the corresponding streams
9412           are delayed bt the time duration specified in offset. Default value
9413           is 0 (meaning that no offset is applied).
9414
9415       format_whitelist list (input)
9416           "," separated list of allowed demuxers. By default all are allowed.
9417
9418       dump_separator string (input)
9419           Separator used to separate the fields printed on the command line
9420           about the Stream parameters.  For example, to separate the fields
9421           with newlines and indentation:
9422
9423                   ffprobe -dump_separator "
9424                                             "  -i ~/videos/matrixbench_mpeg2.mpg
9425
9426       max_streams integer (input)
9427           Specifies the maximum number of streams. This can be used to reject
9428           files that would require too many resources due to a large number
9429           of streams.
9430
9431       skip_estimate_duration_from_pts bool (input)
9432           Skip estimation of input duration when calculated using PTS.  At
9433           present, applicable for MPEG-PS and MPEG-TS.
9434
9435       strict, f_strict integer (input/output)
9436           Specify how strictly to follow the standards. "f_strict" is
9437           deprecated and should be used only via the ffmpeg tool.
9438
9439           Possible values:
9440
9441           very
9442               strictly conform to an older more strict version of the spec or
9443               reference software
9444
9445           strict
9446               strictly conform to all the things in the spec no matter what
9447               consequences
9448
9449           normal
9450           unofficial
9451               allow unofficial extensions
9452
9453           experimental
9454               allow non standardized experimental things, experimental
9455               (unfinished/work in progress/not well tested) decoders and
9456               encoders.  Note: experimental decoders can pose a security
9457               risk, do not use this for decoding untrusted input.
9458
9459   Format stream specifiers
9460       Format stream specifiers allow selection of one or more streams that
9461       match specific properties.
9462
9463       The exact semantics of stream specifiers is defined by the
9464       "avformat_match_stream_specifier()" function declared in the
9465       libavformat/avformat.h header and documented in the Stream specifiers
9466       section in the ffmpeg(1) manual.
9467

DEMUXERS

9469       Demuxers are configured elements in FFmpeg that can read the multimedia
9470       streams from a particular type of file.
9471
9472       When you configure your FFmpeg build, all the supported demuxers are
9473       enabled by default. You can list all available ones using the configure
9474       option "--list-demuxers".
9475
9476       You can disable all the demuxers using the configure option
9477       "--disable-demuxers", and selectively enable a single demuxer with the
9478       option "--enable-demuxer=DEMUXER", or disable it with the option
9479       "--disable-demuxer=DEMUXER".
9480
9481       The option "-demuxers" of the ff* tools will display the list of
9482       enabled demuxers. Use "-formats" to view a combined list of enabled
9483       demuxers and muxers.
9484
9485       The description of some of the currently available demuxers follows.
9486
9487   aa
9488       Audible Format 2, 3, and 4 demuxer.
9489
9490       This demuxer is used to demux Audible Format 2, 3, and 4 (.aa) files.
9491
9492   aac
9493       Raw Audio Data Transport Stream AAC demuxer.
9494
9495       This demuxer is used to demux an ADTS input containing a single AAC
9496       stream alongwith any ID3v1/2 or APE tags in it.
9497
9498   apng
9499       Animated Portable Network Graphics demuxer.
9500
9501       This demuxer is used to demux APNG files.  All headers, but the PNG
9502       signature, up to (but not including) the first fcTL chunk are
9503       transmitted as extradata.  Frames are then split as being all the
9504       chunks between two fcTL ones, or between the last fcTL and IEND chunks.
9505
9506       -ignore_loop bool
9507           Ignore the loop variable in the file if set. Default is enabled.
9508
9509       -max_fps int
9510           Maximum framerate in frames per second. Default of 0 imposes no
9511           limit.
9512
9513       -default_fps int
9514           Default framerate in frames per second when none is specified in
9515           the file (0 meaning as fast as possible). Default is 15.
9516
9517   asf
9518       Advanced Systems Format demuxer.
9519
9520       This demuxer is used to demux ASF files and MMS network streams.
9521
9522       -no_resync_search bool
9523           Do not try to resynchronize by looking for a certain optional start
9524           code.
9525
9526   concat
9527       Virtual concatenation script demuxer.
9528
9529       This demuxer reads a list of files and other directives from a text
9530       file and demuxes them one after the other, as if all their packets had
9531       been muxed together.
9532
9533       The timestamps in the files are adjusted so that the first file starts
9534       at 0 and each next file starts where the previous one finishes. Note
9535       that it is done globally and may cause gaps if all streams do not have
9536       exactly the same length.
9537
9538       All files must have the same streams (same codecs, same time base,
9539       etc.).
9540
9541       The duration of each file is used to adjust the timestamps of the next
9542       file: if the duration is incorrect (because it was computed using the
9543       bit-rate or because the file is truncated, for example), it can cause
9544       artifacts. The "duration" directive can be used to override the
9545       duration stored in each file.
9546
9547       Syntax
9548
9549       The script is a text file in extended-ASCII, with one directive per
9550       line.  Empty lines, leading spaces and lines starting with '#' are
9551       ignored. The following directive is recognized:
9552
9553       "file path"
9554           Path to a file to read; special characters and spaces must be
9555           escaped with backslash or single quotes.
9556
9557           All subsequent file-related directives apply to that file.
9558
9559       "ffconcat version 1.0"
9560           Identify the script type and version.
9561
9562           To make FFmpeg recognize the format automatically, this directive
9563           must appear exactly as is (no extra space or byte-order-mark) on
9564           the very first line of the script.
9565
9566       "duration dur"
9567           Duration of the file. This information can be specified from the
9568           file; specifying it here may be more efficient or help if the
9569           information from the file is not available or accurate.
9570
9571           If the duration is set for all files, then it is possible to seek
9572           in the whole concatenated video.
9573
9574       "inpoint timestamp"
9575           In point of the file. When the demuxer opens the file it instantly
9576           seeks to the specified timestamp. Seeking is done so that all
9577           streams can be presented successfully at In point.
9578
9579           This directive works best with intra frame codecs, because for non-
9580           intra frame ones you will usually get extra packets before the
9581           actual In point and the decoded content will most likely contain
9582           frames before In point too.
9583
9584           For each file, packets before the file In point will have
9585           timestamps less than the calculated start timestamp of the file
9586           (negative in case of the first file), and the duration of the files
9587           (if not specified by the "duration" directive) will be reduced
9588           based on their specified In point.
9589
9590           Because of potential packets before the specified In point, packet
9591           timestamps may overlap between two concatenated files.
9592
9593       "outpoint timestamp"
9594           Out point of the file. When the demuxer reaches the specified
9595           decoding timestamp in any of the streams, it handles it as an end
9596           of file condition and skips the current and all the remaining
9597           packets from all streams.
9598
9599           Out point is exclusive, which means that the demuxer will not
9600           output packets with a decoding timestamp greater or equal to Out
9601           point.
9602
9603           This directive works best with intra frame codecs and formats where
9604           all streams are tightly interleaved. For non-intra frame codecs you
9605           will usually get additional packets with presentation timestamp
9606           after Out point therefore the decoded content will most likely
9607           contain frames after Out point too. If your streams are not tightly
9608           interleaved you may not get all the packets from all streams before
9609           Out point and you may only will be able to decode the earliest
9610           stream until Out point.
9611
9612           The duration of the files (if not specified by the "duration"
9613           directive) will be reduced based on their specified Out point.
9614
9615       "file_packet_metadata key=value"
9616           Metadata of the packets of the file. The specified metadata will be
9617           set for each file packet. You can specify this directive multiple
9618           times to add multiple metadata entries.  This directive is
9619           deprecated, use "file_packet_meta" instead.
9620
9621       "file_packet_meta key value"
9622           Metadata of the packets of the file. The specified metadata will be
9623           set for each file packet. You can specify this directive multiple
9624           times to add multiple metadata entries.
9625
9626       "option key value"
9627           Option to access, open and probe the file.  Can be present multiple
9628           times.
9629
9630       "stream"
9631           Introduce a stream in the virtual file.  All subsequent stream-
9632           related directives apply to the last introduced stream.  Some
9633           streams properties must be set in order to allow identifying the
9634           matching streams in the subfiles.  If no streams are defined in the
9635           script, the streams from the first file are copied.
9636
9637       "exact_stream_id id"
9638           Set the id of the stream.  If this directive is given, the string
9639           with the corresponding id in the subfiles will be used.  This is
9640           especially useful for MPEG-PS (VOB) files, where the order of the
9641           streams is not reliable.
9642
9643       "stream_meta key value"
9644           Metadata for the stream.  Can be present multiple times.
9645
9646       "stream_codec value"
9647           Codec for the stream.
9648
9649       "stream_extradata hex_string"
9650           Extradata for the string, encoded in hexadecimal.
9651
9652       "chapter id start end"
9653           Add a chapter. id is an unique identifier, possibly small and
9654           consecutive.
9655
9656       Options
9657
9658       This demuxer accepts the following option:
9659
9660       safe
9661           If set to 1, reject unsafe file paths and directives.  A file path
9662           is considered safe if it does not contain a protocol specification
9663           and is relative and all components only contain characters from the
9664           portable character set (letters, digits, period, underscore and
9665           hyphen) and have no period at the beginning of a component.
9666
9667           If set to 0, any file name is accepted.
9668
9669           The default is 1.
9670
9671       auto_convert
9672           If set to 1, try to perform automatic conversions on packet data to
9673           make the streams concatenable.  The default is 1.
9674
9675           Currently, the only conversion is adding the h264_mp4toannexb
9676           bitstream filter to H.264 streams in MP4 format. This is necessary
9677           in particular if there are resolution changes.
9678
9679       segment_time_metadata
9680           If set to 1, every packet will contain the lavf.concat.start_time
9681           and the lavf.concat.duration packet metadata values which are the
9682           start_time and the duration of the respective file segments in the
9683           concatenated output expressed in microseconds. The duration
9684           metadata is only set if it is known based on the concat file.  The
9685           default is 0.
9686
9687       Examples
9688
9689       •   Use absolute filenames and include some comments:
9690
9691                   # my first filename
9692                   file /mnt/share/file-1.wav
9693                   # my second filename including whitespace
9694                   file '/mnt/share/file 2.wav'
9695                   # my third filename including whitespace plus single quote
9696                   file '/mnt/share/file 3'\''.wav'
9697
9698       •   Allow for input format auto-probing, use safe filenames and set the
9699           duration of the first file:
9700
9701                   ffconcat version 1.0
9702
9703                   file file-1.wav
9704                   duration 20.0
9705
9706                   file subdir/file-2.wav
9707
9708   dash
9709       Dynamic Adaptive Streaming over HTTP demuxer.
9710
9711       This demuxer presents all AVStreams found in the manifest.  By setting
9712       the discard flags on AVStreams the caller can decide which streams to
9713       actually receive.  Each stream mirrors the "id" and "bandwidth"
9714       properties from the "<Representation>" as metadata keys named "id" and
9715       "variant_bitrate" respectively.
9716
9717   imf
9718       Interoperable Master Format demuxer.
9719
9720       This demuxer presents audio and video streams found in an IMF
9721       Composition.
9722
9723   flv, live_flv, kux
9724       Adobe Flash Video Format demuxer.
9725
9726       This demuxer is used to demux FLV files and RTMP network streams. In
9727       case of live network streams, if you force format, you may use live_flv
9728       option instead of flv to survive timestamp discontinuities.  KUX is a
9729       flv variant used on the Youku platform.
9730
9731               ffmpeg -f flv -i myfile.flv ...
9732               ffmpeg -f live_flv -i rtmp://<any.server>/anything/key ....
9733
9734       -flv_metadata bool
9735           Allocate the streams according to the onMetaData array content.
9736
9737       -flv_ignore_prevtag bool
9738           Ignore the size of previous tag value.
9739
9740       -flv_full_metadata bool
9741           Output all context of the onMetadata.
9742
9743   gif
9744       Animated GIF demuxer.
9745
9746       It accepts the following options:
9747
9748       min_delay
9749           Set the minimum valid delay between frames in hundredths of
9750           seconds.  Range is 0 to 6000. Default value is 2.
9751
9752       max_gif_delay
9753           Set the maximum valid delay between frames in hundredth of seconds.
9754           Range is 0 to 65535. Default value is 65535 (nearly eleven
9755           minutes), the maximum value allowed by the specification.
9756
9757       default_delay
9758           Set the default delay between frames in hundredths of seconds.
9759           Range is 0 to 6000. Default value is 10.
9760
9761       ignore_loop
9762           GIF files can contain information to loop a certain number of times
9763           (or infinitely). If ignore_loop is set to 1, then the loop setting
9764           from the input will be ignored and looping will not occur. If set
9765           to 0, then looping will occur and will cycle the number of times
9766           according to the GIF. Default value is 1.
9767
9768       For example, with the overlay filter, place an infinitely looping GIF
9769       over another video:
9770
9771               ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex overlay=shortest=1 out.mkv
9772
9773       Note that in the above example the shortest option for overlay filter
9774       is used to end the output video at the length of the shortest input
9775       file, which in this case is input.mp4 as the GIF in this example loops
9776       infinitely.
9777
9778   hls
9779       HLS demuxer
9780
9781       Apple HTTP Live Streaming demuxer.
9782
9783       This demuxer presents all AVStreams from all variant streams.  The id
9784       field is set to the bitrate variant index number. By setting the
9785       discard flags on AVStreams (by pressing 'a' or 'v' in ffplay), the
9786       caller can decide which variant streams to actually receive.  The total
9787       bitrate of the variant that the stream belongs to is available in a
9788       metadata key named "variant_bitrate".
9789
9790       It accepts the following options:
9791
9792       live_start_index
9793           segment index to start live streams at (negative values are from
9794           the end).
9795
9796       allowed_extensions
9797           ',' separated list of file extensions that hls is allowed to
9798           access.
9799
9800       max_reload
9801           Maximum number of times a insufficient list is attempted to be
9802           reloaded.  Default value is 1000.
9803
9804       m3u8_hold_counters
9805           The maximum number of times to load m3u8 when it refreshes without
9806           new segments.  Default value is 1000.
9807
9808       http_persistent
9809           Use persistent HTTP connections. Applicable only for HTTP streams.
9810           Enabled by default.
9811
9812       http_multiple
9813           Use multiple HTTP connections for downloading HTTP segments.
9814           Enabled by default for HTTP/1.1 servers.
9815
9816       http_seekable
9817           Use HTTP partial requests for downloading HTTP segments.  0 =
9818           disable, 1 = enable, -1 = auto, Default is auto.
9819
9820       seg_format_options
9821           Set options for the demuxer of media segments using a list of
9822           key=value pairs separated by ":".
9823
9824   image2
9825       Image file demuxer.
9826
9827       This demuxer reads from a list of image files specified by a pattern.
9828       The syntax and meaning of the pattern is specified by the option
9829       pattern_type.
9830
9831       The pattern may contain a suffix which is used to automatically
9832       determine the format of the images contained in the files.
9833
9834       The size, the pixel format, and the format of each image must be the
9835       same for all the files in the sequence.
9836
9837       This demuxer accepts the following options:
9838
9839       framerate
9840           Set the frame rate for the video stream. It defaults to 25.
9841
9842       loop
9843           If set to 1, loop over the input. Default value is 0.
9844
9845       pattern_type
9846           Select the pattern type used to interpret the provided filename.
9847
9848           pattern_type accepts one of the following values.
9849
9850           none
9851               Disable pattern matching, therefore the video will only contain
9852               the specified image. You should use this option if you do not
9853               want to create sequences from multiple images and your
9854               filenames may contain special pattern characters.
9855
9856           sequence
9857               Select a sequence pattern type, used to specify a sequence of
9858               files indexed by sequential numbers.
9859
9860               A sequence pattern may contain the string "%d" or "%0Nd", which
9861               specifies the position of the characters representing a
9862               sequential number in each filename matched by the pattern. If
9863               the form "%d0Nd" is used, the string representing the number in
9864               each filename is 0-padded and N is the total number of 0-padded
9865               digits representing the number. The literal character '%' can
9866               be specified in the pattern with the string "%%".
9867
9868               If the sequence pattern contains "%d" or "%0Nd", the first
9869               filename of the file list specified by the pattern must contain
9870               a number inclusively contained between start_number and
9871               start_number+start_number_range-1, and all the following
9872               numbers must be sequential.
9873
9874               For example the pattern "img-%03d.bmp" will match a sequence of
9875               filenames of the form img-001.bmp, img-002.bmp, ...,
9876               img-010.bmp, etc.; the pattern "i%%m%%g-%d.jpg" will match a
9877               sequence of filenames of the form i%m%g-1.jpg, i%m%g-2.jpg,
9878               ..., i%m%g-10.jpg, etc.
9879
9880               Note that the pattern must not necessarily contain "%d" or
9881               "%0Nd", for example to convert a single image file img.jpeg you
9882               can employ the command:
9883
9884                       ffmpeg -i img.jpeg img.png
9885
9886           glob
9887               Select a glob wildcard pattern type.
9888
9889               The pattern is interpreted like a "glob()" pattern. This is
9890               only selectable if libavformat was compiled with globbing
9891               support.
9892
9893           glob_sequence (deprecated, will be removed)
9894               Select a mixed glob wildcard/sequence pattern.
9895
9896               If your version of libavformat was compiled with globbing
9897               support, and the provided pattern contains at least one glob
9898               meta character among "%*?[]{}" that is preceded by an unescaped
9899               "%", the pattern is interpreted like a "glob()" pattern,
9900               otherwise it is interpreted like a sequence pattern.
9901
9902               All glob special characters "%*?[]{}" must be prefixed with
9903               "%". To escape a literal "%" you shall use "%%".
9904
9905               For example the pattern "foo-%*.jpeg" will match all the
9906               filenames prefixed by "foo-" and terminating with ".jpeg", and
9907               "foo-%?%?%?.jpeg" will match all the filenames prefixed with
9908               "foo-", followed by a sequence of three characters, and
9909               terminating with ".jpeg".
9910
9911               This pattern type is deprecated in favor of glob and sequence.
9912
9913           Default value is glob_sequence.
9914
9915       pixel_format
9916           Set the pixel format of the images to read. If not specified the
9917           pixel format is guessed from the first image file in the sequence.
9918
9919       start_number
9920           Set the index of the file matched by the image file pattern to
9921           start to read from. Default value is 0.
9922
9923       start_number_range
9924           Set the index interval range to check when looking for the first
9925           image file in the sequence, starting from start_number. Default
9926           value is 5.
9927
9928       ts_from_file
9929           If set to 1, will set frame timestamp to modification time of image
9930           file. Note that monotonity of timestamps is not provided: images go
9931           in the same order as without this option. Default value is 0.  If
9932           set to 2, will set frame timestamp to the modification time of the
9933           image file in nanosecond precision.
9934
9935       video_size
9936           Set the video size of the images to read. If not specified the
9937           video size is guessed from the first image file in the sequence.
9938
9939       export_path_metadata
9940           If set to 1, will add two extra fields to the metadata found in
9941           input, making them also available for other filters (see drawtext
9942           filter for examples). Default value is 0. The extra fields are
9943           described below:
9944
9945           lavf.image2dec.source_path
9946               Corresponds to the full path to the input file being read.
9947
9948           lavf.image2dec.source_basename
9949               Corresponds to the name of the file being read.
9950
9951       Examples
9952
9953       •   Use ffmpeg for creating a video from the images in the file
9954           sequence img-001.jpeg, img-002.jpeg, ..., assuming an input frame
9955           rate of 10 frames per second:
9956
9957                   ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
9958
9959       •   As above, but start by reading from a file with index 100 in the
9960           sequence:
9961
9962                   ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
9963
9964       •   Read images matching the "*.png" glob pattern , that is all the
9965           files terminating with the ".png" suffix:
9966
9967                   ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
9968
9969   libgme
9970       The Game Music Emu library is a collection of video game music file
9971       emulators.
9972
9973       See <https://bitbucket.org/mpyne/game-music-emu/overview> for more
9974       information.
9975
9976       It accepts the following options:
9977
9978       track_index
9979           Set the index of which track to demux. The demuxer can only export
9980           one track.  Track indexes start at 0. Default is to pick the first
9981           track. Number of tracks is exported as tracks metadata entry.
9982
9983       sample_rate
9984           Set the sampling rate of the exported track. Range is 1000 to
9985           999999. Default is 44100.
9986
9987       max_size (bytes)
9988           The demuxer buffers the entire file into memory. Adjust this value
9989           to set the maximum buffer size, which in turn, acts as a ceiling
9990           for the size of files that can be read.  Default is 50 MiB.
9991
9992   libmodplug
9993       ModPlug based module demuxer
9994
9995       See <https://github.com/Konstanty/libmodplug>
9996
9997       It will export one 2-channel 16-bit 44.1 kHz audio stream.  Optionally,
9998       a "pal8" 16-color video stream can be exported with or without printed
9999       metadata.
10000
10001       It accepts the following options:
10002
10003       noise_reduction
10004           Apply a simple low-pass filter. Can be 1 (on) or 0 (off). Default
10005           is 0.
10006
10007       reverb_depth
10008           Set amount of reverb. Range 0-100. Default is 0.
10009
10010       reverb_delay
10011           Set delay in ms, clamped to 40-250 ms. Default is 0.
10012
10013       bass_amount
10014           Apply bass expansion a.k.a. XBass or megabass. Range is 0 (quiet)
10015           to 100 (loud). Default is 0.
10016
10017       bass_range
10018           Set cutoff i.e. upper-bound for bass frequencies. Range is 10-100
10019           Hz. Default is 0.
10020
10021       surround_depth
10022           Apply a Dolby Pro-Logic surround effect. Range is 0 (quiet) to 100
10023           (heavy). Default is 0.
10024
10025       surround_delay
10026           Set surround delay in ms, clamped to 5-40 ms. Default is 0.
10027
10028       max_size
10029           The demuxer buffers the entire file into memory. Adjust this value
10030           to set the maximum buffer size, which in turn, acts as a ceiling
10031           for the size of files that can be read. Range is 0 to 100 MiB.  0
10032           removes buffer size limit (not recommended). Default is 5 MiB.
10033
10034       video_stream_expr
10035           String which is evaluated using the eval API to assign colors to
10036           the generated video stream.  Variables which can be used are "x",
10037           "y", "w", "h", "t", "speed", "tempo", "order", "pattern" and "row".
10038
10039       video_stream
10040           Generate video stream. Can be 1 (on) or 0 (off). Default is 0.
10041
10042       video_stream_w
10043           Set video frame width in 'chars' where one char indicates 8 pixels.
10044           Range is 20-512. Default is 30.
10045
10046       video_stream_h
10047           Set video frame height in 'chars' where one char indicates 8
10048           pixels. Range is 20-512. Default is 30.
10049
10050       video_stream_ptxt
10051           Print metadata on video stream. Includes "speed", "tempo", "order",
10052           "pattern", "row" and "ts" (time in ms). Can be 1 (on) or 0 (off).
10053           Default is 1.
10054
10055   libopenmpt
10056       libopenmpt based module demuxer
10057
10058       See <https://lib.openmpt.org/libopenmpt/> for more information.
10059
10060       Some files have multiple subsongs (tracks) this can be set with the
10061       subsong option.
10062
10063       It accepts the following options:
10064
10065       subsong
10066           Set the subsong index. This can be either  'all', 'auto', or the
10067           index of the subsong. Subsong indexes start at 0. The default is
10068           'auto'.
10069
10070           The default value is to let libopenmpt choose.
10071
10072       layout
10073           Set the channel layout. Valid values are 1, 2, and 4 channel
10074           layouts.  The default value is STEREO.
10075
10076       sample_rate
10077           Set the sample rate for libopenmpt to output.  Range is from 1000
10078           to INT_MAX. The value default is 48000.
10079
10080   mov/mp4/3gp
10081       Demuxer for Quicktime File Format & ISO/IEC Base Media File Format
10082       (ISO/IEC 14496-12 or MPEG-4 Part 12, ISO/IEC 15444-12 or JPEG 2000 Part
10083       12).
10084
10085       Registered extensions: mov, mp4, m4a, 3gp, 3g2, mj2, psp, m4b, ism,
10086       ismv, isma, f4v
10087
10088       Options
10089
10090       This demuxer accepts the following options:
10091
10092       enable_drefs
10093           Enable loading of external tracks, disabled by default.  Enabling
10094           this can theoretically leak information in some use cases.
10095
10096       use_absolute_path
10097           Allows loading of external tracks via absolute paths, disabled by
10098           default.  Enabling this poses a security risk. It should only be
10099           enabled if the source is known to be non-malicious.
10100
10101       seek_streams_individually
10102           When seeking, identify the closest point in each stream
10103           individually and demux packets in that stream from identified
10104           point. This can lead to a different sequence of packets compared to
10105           demuxing linearly from the beginning. Default is true.
10106
10107       ignore_editlist
10108           Ignore any edit list atoms. The demuxer, by default, modifies the
10109           stream index to reflect the timeline described by the edit list.
10110           Default is false.
10111
10112       advanced_editlist
10113           Modify the stream index to reflect the timeline described by the
10114           edit list. "ignore_editlist" must be set to false for this option
10115           to be effective.  If both "ignore_editlist" and this option are set
10116           to false, then only the start of the stream index is modified to
10117           reflect initial dwell time or starting timestamp described by the
10118           edit list. Default is true.
10119
10120       ignore_chapters
10121           Don't parse chapters. This includes GoPro 'HiLight' tags/moments.
10122           Note that chapters are only parsed when input is seekable. Default
10123           is false.
10124
10125       use_mfra_for
10126           For seekable fragmented input, set fragment's starting timestamp
10127           from media fragment random access box, if present.
10128
10129           Following options are available:
10130
10131           auto
10132               Auto-detect whether to set mfra timestamps as PTS or DTS
10133               (default)
10134
10135           dts Set mfra timestamps as DTS
10136
10137           pts Set mfra timestamps as PTS
10138
10139           0   Don't use mfra box to set timestamps
10140
10141       use_tfdt
10142           For fragmented input, set fragment's starting timestamp to
10143           "baseMediaDecodeTime" from the "tfdt" box.  Default is enabled,
10144           which will prefer to use the "tfdt" box to set DTS. Disable to use
10145           the "earliest_presentation_time" from the "sidx" box.  In either
10146           case, the timestamp from the "mfra" box will be used if it's
10147           available and "use_mfra_for" is set to pts or dts.
10148
10149       export_all
10150           Export unrecognized boxes within the udta box as metadata entries.
10151           The first four characters of the box type are set as the key.
10152           Default is false.
10153
10154       export_xmp
10155           Export entire contents of XMP_ box and uuid box as a string with
10156           key "xmp". Note that if "export_all" is set and this option isn't,
10157           the contents of XMP_ box are still exported but with key "XMP_".
10158           Default is false.
10159
10160       activation_bytes
10161           4-byte key required to decrypt Audible AAX and AAX+ files. See
10162           Audible AAX subsection below.
10163
10164       audible_fixed_key
10165           Fixed key used for handling Audible AAX/AAX+ files. It has been
10166           pre-set so should not be necessary to specify.
10167
10168       decryption_key
10169           16-byte key, in hex, to decrypt files encrypted using ISO Common
10170           Encryption (CENC/AES-128 CTR; ISO/IEC 23001-7).
10171
10172       max_stts_delta
10173           Very high sample deltas written in a trak's stts box may
10174           occasionally be intended but usually they are written in error or
10175           used to store a negative value for dts correction when treated as
10176           signed 32-bit integers. This option lets the user set an upper
10177           limit, beyond which the delta is clamped to 1. Values greater than
10178           the limit if negative when cast to int32 are used to adjust onward
10179           dts.
10180
10181           Unit is the track time scale. Range is 0 to UINT_MAX. Default is
10182           "UINT_MAX - 48000*10" which allows upto a 10 second dts correction
10183           for 48 kHz audio streams while accommodating 99.9% of "uint32"
10184           range.
10185
10186       Audible AAX
10187
10188       Audible AAX files are encrypted M4B files, and they can be decrypted by
10189       specifying a 4 byte activation secret.
10190
10191               ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:a copy output.mp4
10192
10193   mpegts
10194       MPEG-2 transport stream demuxer.
10195
10196       This demuxer accepts the following options:
10197
10198       resync_size
10199           Set size limit for looking up a new synchronization. Default value
10200           is 65536.
10201
10202       skip_unknown_pmt
10203           Skip PMTs for programs not defined in the PAT. Default value is 0.
10204
10205       fix_teletext_pts
10206           Override teletext packet PTS and DTS values with the timestamps
10207           calculated from the PCR of the first program which the teletext
10208           stream is part of and is not discarded. Default value is 1, set
10209           this option to 0 if you want your teletext packet PTS and DTS
10210           values untouched.
10211
10212       ts_packetsize
10213           Output option carrying the raw packet size in bytes.  Show the
10214           detected raw packet size, cannot be set by the user.
10215
10216       scan_all_pmts
10217           Scan and combine all PMTs. The value is an integer with value from
10218           -1 to 1 (-1 means automatic setting, 1 means enabled, 0 means
10219           disabled). Default value is -1.
10220
10221       merge_pmt_versions
10222           Re-use existing streams when a PMT's version is updated and
10223           elementary streams move to different PIDs. Default value is 0.
10224
10225   mpjpeg
10226       MJPEG encapsulated in multi-part MIME demuxer.
10227
10228       This demuxer allows reading of MJPEG, where each frame is represented
10229       as a part of multipart/x-mixed-replace stream.
10230
10231       strict_mime_boundary
10232           Default implementation applies a relaxed standard to multi-part
10233           MIME boundary detection, to prevent regression with numerous
10234           existing endpoints not generating a proper MIME MJPEG stream.
10235           Turning this option on by setting it to 1 will result in a stricter
10236           check of the boundary value.
10237
10238   rawvideo
10239       Raw video demuxer.
10240
10241       This demuxer allows one to read raw video data. Since there is no
10242       header specifying the assumed video parameters, the user must specify
10243       them in order to be able to decode the data correctly.
10244
10245       This demuxer accepts the following options:
10246
10247       framerate
10248           Set input video frame rate. Default value is 25.
10249
10250       pixel_format
10251           Set the input video pixel format. Default value is "yuv420p".
10252
10253       video_size
10254           Set the input video size. This value must be specified explicitly.
10255
10256       For example to read a rawvideo file input.raw with ffplay, assuming a
10257       pixel format of "rgb24", a video size of "320x240", and a frame rate of
10258       10 images per second, use the command:
10259
10260               ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
10261
10262   sbg
10263       SBaGen script demuxer.
10264
10265       This demuxer reads the script language used by SBaGen
10266       <http://uazu.net/sbagen/> to generate binaural beats sessions. A SBG
10267       script looks like that:
10268
10269               -SE
10270               a: 300-2.5/3 440+4.5/0
10271               b: 300-2.5/0 440+4.5/3
10272               off: -
10273               NOW      == a
10274               +0:07:00 == b
10275               +0:14:00 == a
10276               +0:21:00 == b
10277               +0:30:00    off
10278
10279       A SBG script can mix absolute and relative timestamps. If the script
10280       uses either only absolute timestamps (including the script start time)
10281       or only relative ones, then its layout is fixed, and the conversion is
10282       straightforward. On the other hand, if the script mixes both kind of
10283       timestamps, then the NOW reference for relative timestamps will be
10284       taken from the current time of day at the time the script is read, and
10285       the script layout will be frozen according to that reference. That
10286       means that if the script is directly played, the actual times will
10287       match the absolute timestamps up to the sound controller's clock
10288       accuracy, but if the user somehow pauses the playback or seeks, all
10289       times will be shifted accordingly.
10290
10291   tedcaptions
10292       JSON captions used for <http://www.ted.com/>.
10293
10294       TED does not provide links to the captions, but they can be guessed
10295       from the page. The file tools/bookmarklets.html from the FFmpeg source
10296       tree contains a bookmarklet to expose them.
10297
10298       This demuxer accepts the following option:
10299
10300       start_time
10301           Set the start time of the TED talk, in milliseconds. The default is
10302           15000 (15s). It is used to sync the captions with the downloadable
10303           videos, because they include a 15s intro.
10304
10305       Example: convert the captions to a format most players understand:
10306
10307               ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
10308
10309   vapoursynth
10310       Vapoursynth wrapper.
10311
10312       Due to security concerns, Vapoursynth scripts will not be autodetected
10313       so the input format has to be forced. For ff* CLI tools, add "-f
10314       vapoursynth" before the input "-i yourscript.vpy".
10315
10316       This demuxer accepts the following option:
10317
10318       max_script_size
10319           The demuxer buffers the entire script into memory. Adjust this
10320           value to set the maximum buffer size, which in turn, acts as a
10321           ceiling for the size of scripts that can be read.  Default is 1
10322           MiB.
10323

MUXERS

10325       Muxers are configured elements in FFmpeg which allow writing multimedia
10326       streams to a particular type of file.
10327
10328       When you configure your FFmpeg build, all the supported muxers are
10329       enabled by default. You can list all available muxers using the
10330       configure option "--list-muxers".
10331
10332       You can disable all the muxers with the configure option
10333       "--disable-muxers" and selectively enable / disable single muxers with
10334       the options "--enable-muxer=MUXER" / "--disable-muxer=MUXER".
10335
10336       The option "-muxers" of the ff* tools will display the list of enabled
10337       muxers. Use "-formats" to view a combined list of enabled demuxers and
10338       muxers.
10339
10340       A description of some of the currently available muxers follows.
10341
10342   a64
10343       A64 muxer for Commodore 64 video. Accepts a single "a64_multi" or
10344       "a64_multi5" codec video stream.
10345
10346   adts
10347       Audio Data Transport Stream muxer. It accepts a single AAC stream.
10348
10349       Options
10350
10351       It accepts the following options:
10352
10353       write_id3v2 bool
10354           Enable to write ID3v2.4 tags at the start of the stream. Default is
10355           disabled.
10356
10357       write_apetag bool
10358           Enable to write APE tags at the end of the stream. Default is
10359           disabled.
10360
10361       write_mpeg2 bool
10362           Enable to set MPEG version bit in the ADTS frame header to 1 which
10363           indicates MPEG-2. Default is 0, which indicates MPEG-4.
10364
10365   aiff
10366       Audio Interchange File Format muxer.
10367
10368       Options
10369
10370       It accepts the following options:
10371
10372       write_id3v2
10373           Enable ID3v2 tags writing when set to 1. Default is 0 (disabled).
10374
10375       id3v2_version
10376           Select ID3v2 version to write. Currently only version 3 and 4 (aka.
10377           ID3v2.3 and ID3v2.4) are supported. The default is version 4.
10378
10379   alp
10380       Muxer for audio of High Voltage Software's Lego Racers game. It accepts
10381       a single ADPCM_IMA_ALP stream with no more than 2 channels nor a sample
10382       rate greater than 44100 Hz.
10383
10384       Extensions: tun, pcm
10385
10386       Options
10387
10388       It accepts the following options:
10389
10390       type type
10391           Set file type.
10392
10393           tun Set file type as music. Must have a sample rate of 22050 Hz.
10394
10395           pcm Set file type as sfx.
10396
10397           auto
10398               Set file type as per output file extension. ".pcm" results in
10399               type "pcm" else type "tun" is set. (default)
10400
10401   asf
10402       Advanced Systems Format muxer.
10403
10404       Note that Windows Media Audio (wma) and Windows Media Video (wmv) use
10405       this muxer too.
10406
10407       Options
10408
10409       It accepts the following options:
10410
10411       packet_size
10412           Set the muxer packet size. By tuning this setting you may reduce
10413           data fragmentation or muxer overhead depending on your source.
10414           Default value is 3200, minimum is 100, maximum is 64k.
10415
10416   avi
10417       Audio Video Interleaved muxer.
10418
10419       Options
10420
10421       It accepts the following options:
10422
10423       reserve_index_space
10424           Reserve the specified amount of bytes for the OpenDML master index
10425           of each stream within the file header. By default additional master
10426           indexes are embedded within the data packets if there is no space
10427           left in the first master index and are linked together as a chain
10428           of indexes. This index structure can cause problems for some use
10429           cases, e.g. third-party software strictly relying on the OpenDML
10430           index specification or when file seeking is slow. Reserving enough
10431           index space in the file header avoids these problems.
10432
10433           The required index space depends on the output file size and should
10434           be about 16 bytes per gigabyte. When this option is omitted or set
10435           to zero the necessary index space is guessed.
10436
10437       write_channel_mask
10438           Write the channel layout mask into the audio stream header.
10439
10440           This option is enabled by default. Disabling the channel mask can
10441           be useful in specific scenarios, e.g. when merging multiple audio
10442           streams into one for compatibility with software that only supports
10443           a single audio stream in AVI (see the "amerge" section in the
10444           ffmpeg-filters manual).
10445
10446       flipped_raw_rgb
10447           If set to true, store positive height for raw RGB bitmaps, which
10448           indicates bitmap is stored bottom-up. Note that this option does
10449           not flip the bitmap which has to be done manually beforehand, e.g.
10450           by using the vflip filter.  Default is false and indicates bitmap
10451           is stored top down.
10452
10453   chromaprint
10454       Chromaprint fingerprinter.
10455
10456       This muxer feeds audio data to the Chromaprint library, which generates
10457       a fingerprint for the provided audio data. See
10458       <https://acoustid.org/chromaprint>
10459
10460       It takes a single signed native-endian 16-bit raw audio stream of at
10461       most 2 channels.
10462
10463       Options
10464
10465       silence_threshold
10466           Threshold for detecting silence. Range is from -1 to 32767, where
10467           -1 disables silence detection. Silence detection can only be used
10468           with version 3 of the algorithm.  Silence detection must be
10469           disabled for use with the AcoustID service. Default is -1.
10470
10471       algorithm
10472           Version of algorithm to fingerprint with. Range is 0 to 4.  Version
10473           3 enables silence detection. Default is 1.
10474
10475       fp_format
10476           Format to output the fingerprint as. Accepts the following options:
10477
10478           raw Binary raw fingerprint
10479
10480           compressed
10481               Binary compressed fingerprint
10482
10483           base64
10484               Base64 compressed fingerprint (default)
10485
10486   crc
10487       CRC (Cyclic Redundancy Check) testing format.
10488
10489       This muxer computes and prints the Adler-32 CRC of all the input audio
10490       and video frames. By default audio frames are converted to signed
10491       16-bit raw audio and video frames to raw video before computing the
10492       CRC.
10493
10494       The output of the muxer consists of a single line of the form:
10495       CRC=0xCRC, where CRC is a hexadecimal number 0-padded to 8 digits
10496       containing the CRC for all the decoded input frames.
10497
10498       See also the framecrc muxer.
10499
10500       Examples
10501
10502       For example to compute the CRC of the input, and store it in the file
10503       out.crc:
10504
10505               ffmpeg -i INPUT -f crc out.crc
10506
10507       You can print the CRC to stdout with the command:
10508
10509               ffmpeg -i INPUT -f crc -
10510
10511       You can select the output format of each frame with ffmpeg by
10512       specifying the audio and video codec and format. For example to compute
10513       the CRC of the input audio converted to PCM unsigned 8-bit and the
10514       input video converted to MPEG-2 video, use the command:
10515
10516               ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f crc -
10517
10518   dash
10519       Dynamic Adaptive Streaming over HTTP (DASH) muxer that creates segments
10520       and manifest files according to the MPEG-DASH standard ISO/IEC
10521       23009-1:2014.
10522
10523       For more information see:
10524
10525       •   ISO DASH Specification:
10526           <http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip>
10527
10528       •   WebM DASH Specification:
10529           <https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification>
10530
10531       It creates a MPD manifest file and segment files for each stream.
10532
10533       The segment filename might contain pre-defined identifiers used with
10534       SegmentTemplate as defined in section 5.3.9.4.4 of the standard.
10535       Available identifiers are "$RepresentationID$", "$Number$",
10536       "$Bandwidth$" and "$Time$".  In addition to the standard identifiers,
10537       an ffmpeg-specific "$ext$" identifier is also supported.  When
10538       specified ffmpeg will replace $ext$ in the file name with muxing
10539       format's extensions such as mp4, webm etc.,
10540
10541               ffmpeg -re -i <input> -map 0 -map 0 -c:a libfdk_aac -c:v libx264 \
10542               -b:v:0 800k -b:v:1 300k -s:v:1 320x170 -profile:v:1 baseline \
10543               -profile:v:0 main -bf 1 -keyint_min 120 -g 120 -sc_threshold 0 \
10544               -b_strategy 0 -ar:a:1 22050 -use_timeline 1 -use_template 1 \
10545               -window_size 5 -adaptation_sets "id=0,streams=v id=1,streams=a" \
10546               -f dash /path/to/out.mpd
10547
10548       seg_duration duration
10549           Set the segment length in seconds (fractional value can be set).
10550           The value is treated as average segment duration when use_template
10551           is enabled and use_timeline is disabled and as minimum segment
10552           duration for all the other use cases.
10553
10554       frag_duration duration
10555           Set the length in seconds of fragments within segments (fractional
10556           value can be set).
10557
10558       frag_type type
10559           Set the type of interval for fragmentation.
10560
10561       window_size size
10562           Set the maximum number of segments kept in the manifest.
10563
10564       extra_window_size size
10565           Set the maximum number of segments kept outside of the manifest
10566           before removing from disk.
10567
10568       remove_at_exit remove
10569           Enable (1) or disable (0) removal of all segments when finished.
10570
10571       use_template template
10572           Enable (1) or disable (0) use of SegmentTemplate instead of
10573           SegmentList.
10574
10575       use_timeline timeline
10576           Enable (1) or disable (0) use of SegmentTimeline in
10577           SegmentTemplate.
10578
10579       single_file single_file
10580           Enable (1) or disable (0) storing all segments in one file,
10581           accessed using byte ranges.
10582
10583       single_file_name file_name
10584           DASH-templated name to be used for baseURL. Implies single_file set
10585           to "1". In the template, "$ext$" is replaced with the file name
10586           extension specific for the segment format.
10587
10588       init_seg_name init_name
10589           DASH-templated name to used for the initialization segment. Default
10590           is "init-stream$RepresentationID$.$ext$". "$ext$" is replaced with
10591           the file name extension specific for the segment format.
10592
10593       media_seg_name segment_name
10594           DASH-templated name to used for the media segments. Default is
10595           "chunk-stream$RepresentationID$-$Number%05d$.$ext$". "$ext$" is
10596           replaced with the file name extension specific for the segment
10597           format.
10598
10599       utc_timing_url utc_url
10600           URL of the page that will return the UTC timestamp in ISO format.
10601           Example: "https://time.akamai.com/?iso"
10602
10603       method method
10604           Use the given HTTP method to create output files. Generally set to
10605           PUT or POST.
10606
10607       http_user_agent user_agent
10608           Override User-Agent field in HTTP header. Applicable only for HTTP
10609           output.
10610
10611       http_persistent http_persistent
10612           Use persistent HTTP connections. Applicable only for HTTP output.
10613
10614       hls_playlist hls_playlist
10615           Generate HLS playlist files as well. The master playlist is
10616           generated with the filename hls_master_name.  One media playlist
10617           file is generated for each stream with filenames media_0.m3u8,
10618           media_1.m3u8, etc.
10619
10620       hls_master_name file_name
10621           HLS master playlist name. Default is "master.m3u8".
10622
10623       streaming streaming
10624           Enable (1) or disable (0) chunk streaming mode of output. In chunk
10625           streaming mode, each frame will be a moof fragment which forms a
10626           chunk.
10627
10628       adaptation_sets adaptation_sets
10629           Assign streams to AdaptationSets. Syntax is "id=x,streams=a,b,c
10630           id=y,streams=d,e" with x and y being the IDs of the adaptation sets
10631           and a,b,c,d and e are the indices of the mapped streams.
10632
10633           To map all video (or audio) streams to an AdaptationSet, "v" (or
10634           "a") can be used as stream identifier instead of IDs.
10635
10636           When no assignment is defined, this defaults to an AdaptationSet
10637           for each stream.
10638
10639           Optional syntax is
10640           "id=x,seg_duration=x,frag_duration=x,frag_type=type,descriptor=descriptor_string,streams=a,b,c
10641           id=y,seg_duration=y,frag_type=type,streams=d,e" and so on,
10642           descriptor is useful to the scheme defined by ISO/IEC
10643           23009-1:2014/Amd.2:2015.  For example, -adaptation_sets
10644           "id=0,descriptor=<SupplementalProperty
10645           schemeIdUri=\"urn:mpeg:dash:srd:2014\"
10646           value=\"0,0,0,1,1,2,2\"/>,streams=v".  Please note that descriptor
10647           string should be a self-closing xml tag.  seg_duration,
10648           frag_duration and frag_type override the global option values for
10649           each adaptation set.  For example, -adaptation_sets
10650           "id=0,seg_duration=2,frag_duration=1,frag_type=duration,streams=v
10651           id=1,seg_duration=2,frag_type=none,streams=a" type_id marks an
10652           adaptation set as containing streams meant to be used for Trick
10653           Mode for the referenced adaptation set.  For example,
10654           -adaptation_sets "id=0,seg_duration=2,frag_type=none,streams=0
10655           id=1,seg_duration=10,frag_type=none,trick_id=0,streams=1"
10656
10657       timeout timeout
10658           Set timeout for socket I/O operations. Applicable only for HTTP
10659           output.
10660
10661       index_correction index_correction
10662           Enable (1) or Disable (0) segment index correction logic.
10663           Applicable only when use_template is enabled and use_timeline is
10664           disabled.
10665
10666           When enabled, the logic monitors the flow of segment indexes. If a
10667           streams's segment index value is not at the expected real time
10668           position, then the logic corrects that index value.
10669
10670           Typically this logic is needed in live streaming use cases. The
10671           network bandwidth fluctuations are common during long run
10672           streaming. Each fluctuation can cause the segment indexes fall
10673           behind the expected real time position.
10674
10675       format_options options_list
10676           Set container format (mp4/webm) options using a ":" separated list
10677           of key=value parameters. Values containing ":" special characters
10678           must be escaped.
10679
10680       global_sidx global_sidx
10681           Write global SIDX atom. Applicable only for single file, mp4
10682           output, non-streaming mode.
10683
10684       dash_segment_type dash_segment_type
10685           Possible values:
10686
10687           auto
10688               If this flag is set, the dash segment files format will be
10689               selected based on the stream codec. This is the default mode.
10690
10691           mp4 If this flag is set, the dash segment files will be in in
10692               ISOBMFF format.
10693
10694           webm
10695               If this flag is set, the dash segment files will be in in WebM
10696               format.
10697
10698       ignore_io_errors ignore_io_errors
10699           Ignore IO errors during open and write. Useful for long-duration
10700           runs with network output.
10701
10702       lhls lhls
10703           Enable Low-latency HLS(LHLS). Adds #EXT-X-PREFETCH tag with current
10704           segment's URI.  hls.js player folks are trying to standardize an
10705           open LHLS spec. The draft spec is available in
10706           https://github.com/video-dev/hlsjs-rfcs/blob/lhls-spec/proposals/0001-lhls.md
10707           This option tries to comply with the above open spec.  It enables
10708           streaming and hls_playlist options automatically.  This is an
10709           experimental feature.
10710
10711           Note: This is not Apple's version LHLS. See
10712           <https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis>
10713
10714       ldash ldash
10715           Enable Low-latency Dash by constraining the presence and values of
10716           some elements.
10717
10718       master_m3u8_publish_rate master_m3u8_publish_rate
10719           Publish master playlist repeatedly every after specified number of
10720           segment intervals.
10721
10722       write_prft write_prft
10723           Write Producer Reference Time elements on supported streams. This
10724           also enables writing prft boxes in the underlying muxer. Applicable
10725           only when the utc_url option is enabled.  It's set to auto by
10726           default, in which case the muxer will attempt to enable it only in
10727           modes that require it.
10728
10729       mpd_profile mpd_profile
10730           Set one or more manifest profiles.
10731
10732       http_opts http_opts
10733           A :-separated list of key=value options to pass to the underlying
10734           HTTP protocol. Applicable only for HTTP output.
10735
10736       target_latency target_latency
10737           Set an intended target latency in seconds (fractional value can be
10738           set) for serving. Applicable only when streaming and write_prft
10739           options are enabled.  This is an informative fields clients can use
10740           to measure the latency of the service.
10741
10742       min_playback_rate min_playback_rate
10743           Set the minimum playback rate indicated as appropriate for the
10744           purposes of automatically adjusting playback latency and buffer
10745           occupancy during normal playback by clients.
10746
10747       max_playback_rate max_playback_rate
10748           Set the maximum playback rate indicated as appropriate for the
10749           purposes of automatically adjusting playback latency and buffer
10750           occupancy during normal playback by clients.
10751
10752       update_period update_period
10753            Set the mpd update period ,for dynamic content.
10754            The unit is second.
10755
10756   fifo
10757       The fifo pseudo-muxer allows the separation of encoding and muxing by
10758       using first-in-first-out queue and running the actual muxer in a
10759       separate thread. This is especially useful in combination with the tee
10760       muxer and can be used to send data to several destinations with
10761       different reliability/writing speed/latency.
10762
10763       API users should be aware that callback functions (interrupt_callback,
10764       io_open and io_close) used within its AVFormatContext must be thread-
10765       safe.
10766
10767       The behavior of the fifo muxer if the queue fills up or if the output
10768       fails is selectable,
10769
10770       •   output can be transparently restarted with configurable delay
10771           between retries based on real time or time of the processed stream.
10772
10773       •   encoding can be blocked during temporary failure, or continue
10774           transparently dropping packets in case fifo queue fills up.
10775
10776       fifo_format
10777           Specify the format name. Useful if it cannot be guessed from the
10778           output name suffix.
10779
10780       queue_size
10781           Specify size of the queue (number of packets). Default value is 60.
10782
10783       format_opts
10784           Specify format options for the underlying muxer. Muxer options can
10785           be specified as a list of key=value pairs separated by ':'.
10786
10787       drop_pkts_on_overflow bool
10788           If set to 1 (true), in case the fifo queue fills up, packets will
10789           be dropped rather than blocking the encoder. This makes it possible
10790           to continue streaming without delaying the input, at the cost of
10791           omitting part of the stream. By default this option is set to 0
10792           (false), so in such cases the encoder will be blocked until the
10793           muxer processes some of the packets and none of them is lost.
10794
10795       attempt_recovery bool
10796           If failure occurs, attempt to recover the output. This is
10797           especially useful when used with network output, since it makes it
10798           possible to restart streaming transparently.  By default this
10799           option is set to 0 (false).
10800
10801       max_recovery_attempts
10802           Sets maximum number of successive unsuccessful recovery attempts
10803           after which the output fails permanently. By default this option is
10804           set to 0 (unlimited).
10805
10806       recovery_wait_time duration
10807           Waiting time before the next recovery attempt after previous
10808           unsuccessful recovery attempt. Default value is 5 seconds.
10809
10810       recovery_wait_streamtime bool
10811           If set to 0 (false), the real time is used when waiting for the
10812           recovery attempt (i.e. the recovery will be attempted after at
10813           least recovery_wait_time seconds).  If set to 1 (true), the time of
10814           the processed stream is taken into account instead (i.e. the
10815           recovery will be attempted after at least recovery_wait_time
10816           seconds of the stream is omitted).  By default, this option is set
10817           to 0 (false).
10818
10819       recover_any_error bool
10820           If set to 1 (true), recovery will be attempted regardless of type
10821           of the error causing the failure. By default this option is set to
10822           0 (false) and in case of certain (usually permanent) errors the
10823           recovery is not attempted even when attempt_recovery is set to 1.
10824
10825       restart_with_keyframe bool
10826           Specify whether to wait for the keyframe after recovering from
10827           queue overflow or failure. This option is set to 0 (false) by
10828           default.
10829
10830       timeshift duration
10831           Buffer the specified amount of packets and delay writing the
10832           output. Note that queue_size must be big enough to store the
10833           packets for timeshift. At the end of the input the fifo buffer is
10834           flushed at realtime speed.
10835
10836       Examples
10837
10838       •   Stream something to rtmp server, continue processing the stream at
10839           real-time rate even in case of temporary failure (network outage)
10840           and attempt to recover streaming every second indefinitely.
10841
10842                   ffmpeg -re -i ... -c:v libx264 -c:a aac -f fifo -fifo_format flv -map 0:v -map 0:a
10843                     -drop_pkts_on_overflow 1 -attempt_recovery 1 -recovery_wait_time 1 rtmp://example.com/live/stream_name
10844
10845   flv
10846       Adobe Flash Video Format muxer.
10847
10848       This muxer accepts the following options:
10849
10850       flvflags flags
10851           Possible values:
10852
10853           aac_seq_header_detect
10854               Place AAC sequence header based on audio stream data.
10855
10856           no_sequence_end
10857               Disable sequence end tag.
10858
10859           no_metadata
10860               Disable metadata tag.
10861
10862           no_duration_filesize
10863               Disable duration and filesize in metadata when they are equal
10864               to zero at the end of stream. (Be used to non-seekable living
10865               stream).
10866
10867           add_keyframe_index
10868               Used to facilitate seeking; particularly for HTTP pseudo
10869               streaming.
10870
10871   framecrc
10872       Per-packet CRC (Cyclic Redundancy Check) testing format.
10873
10874       This muxer computes and prints the Adler-32 CRC for each audio and
10875       video packet. By default audio frames are converted to signed 16-bit
10876       raw audio and video frames to raw video before computing the CRC.
10877
10878       The output of the muxer consists of a line for each audio and video
10879       packet of the form:
10880
10881               <stream_index>, <packet_dts>, <packet_pts>, <packet_duration>, <packet_size>, 0x<CRC>
10882
10883       CRC is a hexadecimal number 0-padded to 8 digits containing the CRC of
10884       the packet.
10885
10886       Examples
10887
10888       For example to compute the CRC of the audio and video frames in INPUT,
10889       converted to raw audio and video packets, and store it in the file
10890       out.crc:
10891
10892               ffmpeg -i INPUT -f framecrc out.crc
10893
10894       To print the information to stdout, use the command:
10895
10896               ffmpeg -i INPUT -f framecrc -
10897
10898       With ffmpeg, you can select the output format to which the audio and
10899       video frames are encoded before computing the CRC for each packet by
10900       specifying the audio and video codec. For example, to compute the CRC
10901       of each decoded input audio frame converted to PCM unsigned 8-bit and
10902       of each decoded input video frame converted to MPEG-2 video, use the
10903       command:
10904
10905               ffmpeg -i INPUT -c:a pcm_u8 -c:v mpeg2video -f framecrc -
10906
10907       See also the crc muxer.
10908
10909   framehash
10910       Per-packet hash testing format.
10911
10912       This muxer computes and prints a cryptographic hash for each audio and
10913       video packet. This can be used for packet-by-packet equality checks
10914       without having to individually do a binary comparison on each.
10915
10916       By default audio frames are converted to signed 16-bit raw audio and
10917       video frames to raw video before computing the hash, but the output of
10918       explicit conversions to other codecs can also be used. It uses the
10919       SHA-256 cryptographic hash function by default, but supports several
10920       other algorithms.
10921
10922       The output of the muxer consists of a line for each audio and video
10923       packet of the form:
10924
10925               <stream_index>, <packet_dts>, <packet_pts>, <packet_duration>, <packet_size>, <hash>
10926
10927       hash is a hexadecimal number representing the computed hash for the
10928       packet.
10929
10930       hash algorithm
10931           Use the cryptographic hash function specified by the string
10932           algorithm.  Supported values include "MD5", "murmur3", "RIPEMD128",
10933           "RIPEMD160", "RIPEMD256", "RIPEMD320", "SHA160", "SHA224", "SHA256"
10934           (default), "SHA512/224", "SHA512/256", "SHA384", "SHA512", "CRC32"
10935           and "adler32".
10936
10937       Examples
10938
10939       To compute the SHA-256 hash of the audio and video frames in INPUT,
10940       converted to raw audio and video packets, and store it in the file
10941       out.sha256:
10942
10943               ffmpeg -i INPUT -f framehash out.sha256
10944
10945       To print the information to stdout, using the MD5 hash function, use
10946       the command:
10947
10948               ffmpeg -i INPUT -f framehash -hash md5 -
10949
10950       See also the hash muxer.
10951
10952   framemd5
10953       Per-packet MD5 testing format.
10954
10955       This is a variant of the framehash muxer. Unlike that muxer, it
10956       defaults to using the MD5 hash function.
10957
10958       Examples
10959
10960       To compute the MD5 hash of the audio and video frames in INPUT,
10961       converted to raw audio and video packets, and store it in the file
10962       out.md5:
10963
10964               ffmpeg -i INPUT -f framemd5 out.md5
10965
10966       To print the information to stdout, use the command:
10967
10968               ffmpeg -i INPUT -f framemd5 -
10969
10970       See also the framehash and md5 muxers.
10971
10972   gif
10973       Animated GIF muxer.
10974
10975       It accepts the following options:
10976
10977       loop
10978           Set the number of times to loop the output. Use "-1" for no loop, 0
10979           for looping indefinitely (default).
10980
10981       final_delay
10982           Force the delay (expressed in centiseconds) after the last frame.
10983           Each frame ends with a delay until the next frame. The default is
10984           "-1", which is a special value to tell the muxer to re-use the
10985           previous delay. In case of a loop, you might want to customize this
10986           value to mark a pause for instance.
10987
10988       For example, to encode a gif looping 10 times, with a 5 seconds delay
10989       between the loops:
10990
10991               ffmpeg -i INPUT -loop 10 -final_delay 500 out.gif
10992
10993       Note 1: if you wish to extract the frames into separate GIF files, you
10994       need to force the image2 muxer:
10995
10996               ffmpeg -i INPUT -c:v gif -f image2 "out%d.gif"
10997
10998       Note 2: the GIF format has a very large time base: the delay between
10999       two frames can therefore not be smaller than one centi second.
11000
11001   hash
11002       Hash testing format.
11003
11004       This muxer computes and prints a cryptographic hash of all the input
11005       audio and video frames. This can be used for equality checks without
11006       having to do a complete binary comparison.
11007
11008       By default audio frames are converted to signed 16-bit raw audio and
11009       video frames to raw video before computing the hash, but the output of
11010       explicit conversions to other codecs can also be used. Timestamps are
11011       ignored. It uses the SHA-256 cryptographic hash function by default,
11012       but supports several other algorithms.
11013
11014       The output of the muxer consists of a single line of the form:
11015       algo=hash, where algo is a short string representing the hash function
11016       used, and hash is a hexadecimal number representing the computed hash.
11017
11018       hash algorithm
11019           Use the cryptographic hash function specified by the string
11020           algorithm.  Supported values include "MD5", "murmur3", "RIPEMD128",
11021           "RIPEMD160", "RIPEMD256", "RIPEMD320", "SHA160", "SHA224", "SHA256"
11022           (default), "SHA512/224", "SHA512/256", "SHA384", "SHA512", "CRC32"
11023           and "adler32".
11024
11025       Examples
11026
11027       To compute the SHA-256 hash of the input converted to raw audio and
11028       video, and store it in the file out.sha256:
11029
11030               ffmpeg -i INPUT -f hash out.sha256
11031
11032       To print an MD5 hash to stdout use the command:
11033
11034               ffmpeg -i INPUT -f hash -hash md5 -
11035
11036       See also the framehash muxer.
11037
11038   hls
11039       Apple HTTP Live Streaming muxer that segments MPEG-TS according to the
11040       HTTP Live Streaming (HLS) specification.
11041
11042       It creates a playlist file, and one or more segment files. The output
11043       filename specifies the playlist filename.
11044
11045       By default, the muxer creates a file for each segment produced. These
11046       files have the same name as the playlist, followed by a sequential
11047       number and a .ts extension.
11048
11049       Make sure to require a closed GOP when encoding and to set the GOP size
11050       to fit your segment time constraint.
11051
11052       For example, to convert an input file with ffmpeg:
11053
11054               ffmpeg -i in.mkv -c:v h264 -flags +cgop -g 30 -hls_time 1 out.m3u8
11055
11056       This example will produce the playlist, out.m3u8, and segment files:
11057       out0.ts, out1.ts, out2.ts, etc.
11058
11059       See also the segment muxer, which provides a more generic and flexible
11060       implementation of a segmenter, and can be used to perform HLS
11061       segmentation.
11062
11063       Options
11064
11065       This muxer supports the following options:
11066
11067       hls_init_time duration
11068           Set the initial target segment length. Default value is 0.
11069
11070           duration must be a time duration specification, see the Time
11071           duration section in the ffmpeg-utils(1) manual.
11072
11073           Segment will be cut on the next key frame after this time has
11074           passed on the first m3u8 list.  After the initial playlist is
11075           filled ffmpeg will cut segments at duration equal to "hls_time"
11076
11077       hls_time duration
11078           Set the target segment length. Default value is 2.
11079
11080           duration must be a time duration specification, see the Time
11081           duration section in the ffmpeg-utils(1) manual.  Segment will be
11082           cut on the next key frame after this time has passed.
11083
11084       hls_list_size size
11085           Set the maximum number of playlist entries. If set to 0 the list
11086           file will contain all the segments. Default value is 5.
11087
11088       hls_delete_threshold size
11089           Set the number of unreferenced segments to keep on disk before
11090           "hls_flags delete_segments" deletes them. Increase this to allow
11091           continue clients to download segments which were recently
11092           referenced in the playlist. Default value is 1, meaning segments
11093           older than "hls_list_size+1" will be deleted.
11094
11095       hls_ts_options options_list
11096           Set output format options using a :-separated list of key=value
11097           parameters. Values containing ":" special characters must be
11098           escaped.  "hls_ts_options" is deprecated, use hls_segment_options
11099           instead of it..
11100
11101       hls_start_number_source
11102           Start the playlist sequence number ("#EXT-X-MEDIA-SEQUENCE")
11103           according to the specified source.  Unless "hls_flags single_file"
11104           is set, it also specifies source of starting sequence numbers of
11105           segment and subtitle filenames. In any case, if "hls_flags
11106           append_list" is set and read playlist sequence number is greater
11107           than the specified start sequence number, then that value will be
11108           used as start value.
11109
11110           It accepts the following values:
11111
11112           generic (default)
11113               Set the starting sequence numbers according to start_number
11114               option value.
11115
11116           epoch
11117               The start number will be the seconds since epoch (1970-01-01
11118               00:00:00)
11119
11120           epoch_us
11121               The start number will be the microseconds since epoch
11122               (1970-01-01 00:00:00)
11123
11124           datetime
11125               The start number will be based on the current date/time as
11126               YYYYmmddHHMMSS. e.g. 20161231235759.
11127
11128       start_number number
11129           Start the playlist sequence number ("#EXT-X-MEDIA-SEQUENCE") from
11130           the specified number when hls_start_number_source value is generic.
11131           (This is the default case.)  Unless "hls_flags single_file" is set,
11132           it also specifies starting sequence numbers of segment and subtitle
11133           filenames.  Default value is 0.
11134
11135       hls_allow_cache allowcache
11136           Explicitly set whether the client MAY (1) or MUST NOT (0) cache
11137           media segments.
11138
11139       hls_base_url baseurl
11140           Append baseurl to every entry in the playlist.  Useful to generate
11141           playlists with absolute paths.
11142
11143           Note that the playlist sequence number must be unique for each
11144           segment and it is not to be confused with the segment filename
11145           sequence number which can be cyclic, for example if the wrap option
11146           is specified.
11147
11148       hls_segment_filename filename
11149           Set the segment filename. Unless "hls_flags single_file" is set,
11150           filename is used as a string format with the segment number:
11151
11152                   ffmpeg -i in.nut -hls_segment_filename 'file%03d.ts' out.m3u8
11153
11154           This example will produce the playlist, out.m3u8, and segment
11155           files: file000.ts, file001.ts, file002.ts, etc.
11156
11157           filename may contain full path or relative path specification, but
11158           only the file name part without any path info will be contained in
11159           the m3u8 segment list.  Should a relative path be specified, the
11160           path of the created segment files will be relative to the current
11161           working directory.  When strftime_mkdir is set, the whole expanded
11162           value of filename will be written into the m3u8 segment list.
11163
11164           When "var_stream_map" is set with two or more variant streams, the
11165           filename pattern must contain the string "%v", this string
11166           specifies the position of variant stream index in the generated
11167           segment file names.
11168
11169                   ffmpeg -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
11170                     -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" \
11171                     -hls_segment_filename 'file_%v_%03d.ts' out_%v.m3u8
11172
11173           This example will produce the playlists segment file sets:
11174           file_0_000.ts, file_0_001.ts, file_0_002.ts, etc. and
11175           file_1_000.ts, file_1_001.ts, file_1_002.ts, etc.
11176
11177           The string "%v" may be present in the filename or in the last
11178           directory name containing the file, but only in one of them.
11179           (Additionally, %v may appear multiple times in the last sub-
11180           directory or filename.) If the string %v is present in the
11181           directory name, then sub-directories are created after expanding
11182           the directory name pattern. This enables creation of segments
11183           corresponding to different variant streams in subdirectories.
11184
11185                   ffmpeg -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
11186                     -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" \
11187                     -hls_segment_filename 'vs%v/file_%03d.ts' vs%v/out.m3u8
11188
11189           This example will produce the playlists segment file sets:
11190           vs0/file_000.ts, vs0/file_001.ts, vs0/file_002.ts, etc. and
11191           vs1/file_000.ts, vs1/file_001.ts, vs1/file_002.ts, etc.
11192
11193       strftime
11194           Use strftime() on filename to expand the segment filename with
11195           localtime.  The segment number is also available in this mode, but
11196           to use it, you need to specify second_level_segment_index hls_flag
11197           and %%d will be the specifier.
11198
11199                   ffmpeg -i in.nut -strftime 1 -hls_segment_filename 'file-%Y%m%d-%s.ts' out.m3u8
11200
11201           This example will produce the playlist, out.m3u8, and segment
11202           files: file-20160215-1455569023.ts, file-20160215-1455569024.ts,
11203           etc.  Note: On some systems/environments, the %s specifier is not
11204           available. See
11205             "strftime()" documentation.
11206
11207                   ffmpeg -i in.nut -strftime 1 -hls_flags second_level_segment_index -hls_segment_filename 'file-%Y%m%d-%%04d.ts' out.m3u8
11208
11209           This example will produce the playlist, out.m3u8, and segment
11210           files: file-20160215-0001.ts, file-20160215-0002.ts, etc.
11211
11212       strftime_mkdir
11213           Used together with -strftime_mkdir, it will create all
11214           subdirectories which is expanded in filename.
11215
11216                   ffmpeg -i in.nut -strftime 1 -strftime_mkdir 1 -hls_segment_filename '%Y%m%d/file-%Y%m%d-%s.ts' out.m3u8
11217
11218           This example will create a directory 201560215 (if it does not
11219           exist), and then produce the playlist, out.m3u8, and segment files:
11220           20160215/file-20160215-1455569023.ts,
11221           20160215/file-20160215-1455569024.ts, etc.
11222
11223                   ffmpeg -i in.nut -strftime 1 -strftime_mkdir 1 -hls_segment_filename '%Y/%m/%d/file-%Y%m%d-%s.ts' out.m3u8
11224
11225           This example will create a directory hierarchy 2016/02/15 (if any
11226           of them do not exist), and then produce the playlist, out.m3u8, and
11227           segment files: 2016/02/15/file-20160215-1455569023.ts,
11228           2016/02/15/file-20160215-1455569024.ts, etc.
11229
11230       hls_segment_options options_list
11231           Set output format options using a :-separated list of key=value
11232           parameters. Values containing ":" special characters must be
11233           escaped.
11234
11235       hls_key_info_file key_info_file
11236           Use the information in key_info_file for segment encryption. The
11237           first line of key_info_file specifies the key URI written to the
11238           playlist. The key URL is used to access the encryption key during
11239           playback. The second line specifies the path to the key file used
11240           to obtain the key during the encryption process. The key file is
11241           read as a single packed array of 16 octets in binary format. The
11242           optional third line specifies the initialization vector (IV) as a
11243           hexadecimal string to be used instead of the segment sequence
11244           number (default) for encryption. Changes to key_info_file will
11245           result in segment encryption with the new key/IV and an entry in
11246           the playlist for the new key URI/IV if "hls_flags periodic_rekey"
11247           is enabled.
11248
11249           Key info file format:
11250
11251                   <key URI>
11252                   <key file path>
11253                   <IV> (optional)
11254
11255           Example key URIs:
11256
11257                   http://server/file.key
11258                   /path/to/file.key
11259                   file.key
11260
11261           Example key file paths:
11262
11263                   file.key
11264                   /path/to/file.key
11265
11266           Example IV:
11267
11268                   0123456789ABCDEF0123456789ABCDEF
11269
11270           Key info file example:
11271
11272                   http://server/file.key
11273                   /path/to/file.key
11274                   0123456789ABCDEF0123456789ABCDEF
11275
11276           Example shell script:
11277
11278                   #!/bin/sh
11279                   BASE_URL=${1:-'.'}
11280                   openssl rand 16 > file.key
11281                   echo $BASE_URL/file.key > file.keyinfo
11282                   echo file.key >> file.keyinfo
11283                   echo $(openssl rand -hex 16) >> file.keyinfo
11284                   ffmpeg -f lavfi -re -i testsrc -c:v h264 -hls_flags delete_segments \
11285                     -hls_key_info_file file.keyinfo out.m3u8
11286
11287       -hls_enc enc
11288           Enable (1) or disable (0) the AES128 encryption.  When enabled
11289           every segment generated is encrypted and the encryption key is
11290           saved as playlist name.key.
11291
11292       -hls_enc_key key
11293           16-octet key to encrypt the segments, by default it is randomly
11294           generated.
11295
11296       -hls_enc_key_url keyurl
11297           If set, keyurl is prepended instead of baseurl to the key filename
11298           in the playlist.
11299
11300       -hls_enc_iv iv
11301           16-octet initialization vector for every segment instead of the
11302           autogenerated ones.
11303
11304       hls_segment_type flags
11305           Possible values:
11306
11307           mpegts
11308               Output segment files in MPEG-2 Transport Stream format. This is
11309               compatible with all HLS versions.
11310
11311           fmp4
11312               Output segment files in fragmented MP4 format, similar to MPEG-
11313               DASH.  fmp4 files may be used in HLS version 7 and above.
11314
11315       hls_fmp4_init_filename filename
11316           Set filename to the fragment files header file, default filename is
11317           init.mp4.
11318
11319           Use "-strftime 1" on filename to expand the segment filename with
11320           localtime.
11321
11322                   ffmpeg -i in.nut  -hls_segment_type fmp4 -strftime 1 -hls_fmp4_init_filename "%s_init.mp4" out.m3u8
11323
11324           This will produce init like this 1602678741_init.mp4
11325
11326       hls_fmp4_init_resend
11327           Resend init file after m3u8 file refresh every time, default is 0.
11328
11329           When "var_stream_map" is set with two or more variant streams, the
11330           filename pattern must contain the string "%v", this string
11331           specifies the position of variant stream index in the generated
11332           init file names.  The string "%v" may be present in the filename or
11333           in the last directory name containing the file. If the string is
11334           present in the directory name, then sub-directories are created
11335           after expanding the directory name pattern. This enables creation
11336           of init files corresponding to different variant streams in
11337           subdirectories.
11338
11339       hls_flags flags
11340           Possible values:
11341
11342           single_file
11343               If this flag is set, the muxer will store all segments in a
11344               single MPEG-TS file, and will use byte ranges in the playlist.
11345               HLS playlists generated with this way will have the version
11346               number 4.  For example:
11347
11348                       ffmpeg -i in.nut -hls_flags single_file out.m3u8
11349
11350               Will produce the playlist, out.m3u8, and a single segment file,
11351               out.ts.
11352
11353           delete_segments
11354               Segment files removed from the playlist are deleted after a
11355               period of time equal to the duration of the segment plus the
11356               duration of the playlist.
11357
11358           append_list
11359               Append new segments into the end of old segment list, and
11360               remove the "#EXT-X-ENDLIST" from the old segment list.
11361
11362           round_durations
11363               Round the duration info in the playlist file segment info to
11364               integer values, instead of using floating point.
11365
11366           discont_start
11367               Add the "#EXT-X-DISCONTINUITY" tag to the playlist, before the
11368               first segment's information.
11369
11370           omit_endlist
11371               Do not append the "EXT-X-ENDLIST" tag at the end of the
11372               playlist.
11373
11374           periodic_rekey
11375               The file specified by "hls_key_info_file" will be checked
11376               periodically and detect updates to the encryption info. Be sure
11377               to replace this file atomically, including the file containing
11378               the AES encryption key.
11379
11380           independent_segments
11381               Add the "#EXT-X-INDEPENDENT-SEGMENTS" to playlists that has
11382               video segments and when all the segments of that playlist are
11383               guaranteed to start with a Key frame.
11384
11385           iframes_only
11386               Add the "#EXT-X-I-FRAMES-ONLY" to playlists that has video
11387               segments and can play only I-frames in the "#EXT-X-BYTERANGE"
11388               mode.
11389
11390           split_by_time
11391               Allow segments to start on frames other than keyframes. This
11392               improves behavior on some players when the time between
11393               keyframes is inconsistent, but may make things worse on others,
11394               and can cause some oddities during seeking. This flag should be
11395               used with the "hls_time" option.
11396
11397           program_date_time
11398               Generate "EXT-X-PROGRAM-DATE-TIME" tags.
11399
11400           second_level_segment_index
11401               Makes it possible to use segment indexes as %%d in
11402               hls_segment_filename expression besides date/time values when
11403               strftime is on.  To get fixed width numbers with trailing
11404               zeroes, %%0xd format is available where x is the required
11405               width.
11406
11407           second_level_segment_size
11408               Makes it possible to use segment sizes (counted in bytes) as
11409               %%s in hls_segment_filename expression besides date/time values
11410               when strftime is on.  To get fixed width numbers with trailing
11411               zeroes, %%0xs format is available where x is the required
11412               width.
11413
11414           second_level_segment_duration
11415               Makes it possible to use segment duration (calculated  in
11416               microseconds) as %%t in hls_segment_filename expression besides
11417               date/time values when strftime is on.  To get fixed width
11418               numbers with trailing zeroes, %%0xt format is available where x
11419               is the required width.
11420
11421                       ffmpeg -i sample.mpeg \
11422                          -f hls -hls_time 3 -hls_list_size 5 \
11423                          -hls_flags second_level_segment_index+second_level_segment_size+second_level_segment_duration \
11424                          -strftime 1 -strftime_mkdir 1 -hls_segment_filename "segment_%Y%m%d%H%M%S_%%04d_%%08s_%%013t.ts" stream.m3u8
11425
11426               This will produce segments like this:
11427               segment_20170102194334_0003_00122200_0000003000000.ts,
11428               segment_20170102194334_0004_00120072_0000003000000.ts etc.
11429
11430           temp_file
11431               Write segment data to filename.tmp and rename to filename only
11432               once the segment is complete. A webserver serving up segments
11433               can be configured to reject requests to *.tmp to prevent access
11434               to in-progress segments before they have been added to the m3u8
11435               playlist. This flag also affects how m3u8 playlist files are
11436               created.  If this flag is set, all playlist files will written
11437               into temporary file and renamed after they are complete,
11438               similarly as segments are handled.  But playlists with "file"
11439               protocol and with type ("hls_playlist_type") other than "vod"
11440               are always written into temporary file regardless of this flag.
11441               Master playlist files ("master_pl_name"), if any, with "file"
11442               protocol, are always written into temporary file regardless of
11443               this flag if "master_pl_publish_rate" value is other than zero.
11444
11445       hls_playlist_type event
11446           Emit "#EXT-X-PLAYLIST-TYPE:EVENT" in the m3u8 header. Forces
11447           hls_list_size to 0; the playlist can only be appended to.
11448
11449       hls_playlist_type vod
11450           Emit "#EXT-X-PLAYLIST-TYPE:VOD" in the m3u8 header. Forces
11451           hls_list_size to 0; the playlist must not change.
11452
11453       method
11454           Use the given HTTP method to create the hls files.
11455
11456                   ffmpeg -re -i in.ts -f hls -method PUT http://example.com/live/out.m3u8
11457
11458           This example will upload all the mpegts segment files to the HTTP
11459           server using the HTTP PUT method, and update the m3u8 files every
11460           "refresh" times using the same method.  Note that the HTTP server
11461           must support the given method for uploading files.
11462
11463       http_user_agent
11464           Override User-Agent field in HTTP header. Applicable only for HTTP
11465           output.
11466
11467       var_stream_map
11468           Map string which specifies how to group the audio, video and
11469           subtitle streams into different variant streams. The variant stream
11470           groups are separated by space.  Expected string format is like this
11471           "a:0,v:0 a:1,v:1 ....". Here a:, v:, s: are the keys to specify
11472           audio, video and subtitle streams respectively.  Allowed values are
11473           0 to 9 (limited just based on practical usage).
11474
11475           When there are two or more variant streams, the output filename
11476           pattern must contain the string "%v", this string specifies the
11477           position of variant stream index in the output media playlist
11478           filenames. The string "%v" may be present in the filename or in the
11479           last directory name containing the file. If the string is present
11480           in the directory name, then sub-directories are created after
11481           expanding the directory name pattern. This enables creation of
11482           variant streams in subdirectories.
11483
11484                   ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
11485                     -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" \
11486                     http://example.com/live/out_%v.m3u8
11487
11488           This example creates two hls variant streams. The first variant
11489           stream will contain video stream of bitrate 1000k and audio stream
11490           of bitrate 64k and the second variant stream will contain video
11491           stream of bitrate 256k and audio stream of bitrate 32k. Here, two
11492           media playlist with file names out_0.m3u8 and out_1.m3u8 will be
11493           created. If you want something meaningful text instead of indexes
11494           in result names, you may specify names for each or some of the
11495           variants as in the following example.
11496
11497                   ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
11498                     -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" \
11499                     http://example.com/live/out_%v.m3u8
11500
11501           This example creates two hls variant streams as in the previous
11502           one.  But here, the two media playlist with file names
11503           out_my_hd.m3u8 and out_my_sd.m3u8 will be created.
11504
11505                   ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k \
11506                     -map 0:v -map 0:a -map 0:v -f hls -var_stream_map "v:0 a:0 v:1" \
11507                     http://example.com/live/out_%v.m3u8
11508
11509           This example creates three hls variant streams. The first variant
11510           stream will be a video only stream with video bitrate 1000k, the
11511           second variant stream will be an audio only stream with bitrate 64k
11512           and the third variant stream will be a video only stream with
11513           bitrate 256k. Here, three media playlist with file names
11514           out_0.m3u8, out_1.m3u8 and out_2.m3u8 will be created.
11515
11516                   ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
11517                     -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" \
11518                     http://example.com/live/vs_%v/out.m3u8
11519
11520           This example creates the variant streams in subdirectories. Here,
11521           the first media playlist is created at
11522           http://example.com/live/vs_0/out.m3u8 and the second one at
11523           http://example.com/live/vs_1/out.m3u8.
11524
11525                   ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k -b:v:1 3000k  \
11526                     -map 0:a -map 0:a -map 0:v -map 0:v -f hls \
11527                     -var_stream_map "a:0,agroup:aud_low a:1,agroup:aud_high v:0,agroup:aud_low v:1,agroup:aud_high" \
11528                     -master_pl_name master.m3u8 \
11529                     http://example.com/live/out_%v.m3u8
11530
11531           This example creates two audio only and two video only variant
11532           streams. In addition to the #EXT-X-STREAM-INF tag for each variant
11533           stream in the master playlist, #EXT-X-MEDIA tag is also added for
11534           the two audio only variant streams and they are mapped to the two
11535           video only variant streams with audio group names 'aud_low' and
11536           'aud_high'.
11537
11538           By default, a single hls variant containing all the encoded streams
11539           is created.
11540
11541                   ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k \
11542                     -map 0:a -map 0:a -map 0:v -f hls \
11543                     -var_stream_map "a:0,agroup:aud_low,default:yes a:1,agroup:aud_low v:0,agroup:aud_low" \
11544                     -master_pl_name master.m3u8 \
11545                     http://example.com/live/out_%v.m3u8
11546
11547           This example creates two audio only and one video only variant
11548           streams. In addition to the #EXT-X-STREAM-INF tag for each variant
11549           stream in the master playlist, #EXT-X-MEDIA tag is also added for
11550           the two audio only variant streams and they are mapped to the one
11551           video only variant streams with audio group name 'aud_low', and the
11552           audio group have default stat is NO or YES.
11553
11554           By default, a single hls variant containing all the encoded streams
11555           is created.
11556
11557                   ffmpeg -re -i in.ts -b:a:0 32k -b:a:1 64k -b:v:0 1000k \
11558                     -map 0:a -map 0:a -map 0:v -f hls \
11559                     -var_stream_map "a:0,agroup:aud_low,default:yes,language:ENG a:1,agroup:aud_low,language:CHN v:0,agroup:aud_low" \
11560                     -master_pl_name master.m3u8 \
11561                     http://example.com/live/out_%v.m3u8
11562
11563           This example creates two audio only and one video only variant
11564           streams. In addition to the #EXT-X-STREAM-INF tag for each variant
11565           stream in the master playlist, #EXT-X-MEDIA tag is also added for
11566           the two audio only variant streams and they are mapped to the one
11567           video only variant streams with audio group name 'aud_low', and the
11568           audio group have default stat is NO or YES, and one audio have and
11569           language is named ENG, the other audio language is named CHN.
11570
11571           By default, a single hls variant containing all the encoded streams
11572           is created.
11573
11574                   ffmpeg -y -i input_with_subtitle.mkv \
11575                    -b:v:0 5250k -c:v h264 -pix_fmt yuv420p -profile:v main -level 4.1 \
11576                    -b:a:0 256k \
11577                    -c:s webvtt -c:a mp2 -ar 48000 -ac 2 -map 0:v -map 0:a:0 -map 0:s:0 \
11578                    -f hls -var_stream_map "v:0,a:0,s:0,sgroup:subtitle" \
11579                    -master_pl_name master.m3u8 -t 300 -hls_time 10 -hls_init_time 4 -hls_list_size \
11580                    10 -master_pl_publish_rate 10  -hls_flags \
11581                    delete_segments+discont_start+split_by_time ./tmp/video.m3u8
11582
11583           This example adds "#EXT-X-MEDIA" tag with "TYPE=SUBTITLES" in the
11584           master playlist with webvtt subtitle group name 'subtitle'. Please
11585           make sure the input file has one text subtitle stream at least.
11586
11587       cc_stream_map
11588           Map string which specifies different closed captions groups and
11589           their attributes. The closed captions stream groups are separated
11590           by space.  Expected string format is like this "ccgroup:<group
11591           name>,instreamid:<INSTREAM-ID>,language:<language code> ....".
11592           'ccgroup' and 'instreamid' are mandatory attributes. 'language' is
11593           an optional attribute.  The closed captions groups configured using
11594           this option are mapped to different variant streams by providing
11595           the same 'ccgroup' name in the "var_stream_map" string. If
11596           "var_stream_map" is not set, then the first available ccgroup in
11597           "cc_stream_map" is mapped to the output variant stream. The
11598           examples for these two use cases are given below.
11599
11600                   ffmpeg -re -i in.ts -b:v 1000k -b:a 64k -a53cc 1 -f hls \
11601                     -cc_stream_map "ccgroup:cc,instreamid:CC1,language:en" \
11602                     -master_pl_name master.m3u8 \
11603                     http://example.com/live/out.m3u8
11604
11605           This example adds "#EXT-X-MEDIA" tag with "TYPE=CLOSED-CAPTIONS" in
11606           the master playlist with group name 'cc', language 'en' (english)
11607           and INSTREAM-ID 'CC1'. Also, it adds "CLOSED-CAPTIONS" attribute
11608           with group name 'cc' for the output variant stream.
11609
11610                   ffmpeg -re -i in.ts -b:v:0 1000k -b:v:1 256k -b:a:0 64k -b:a:1 32k \
11611                     -a53cc:0 1 -a53cc:1 1\
11612                     -map 0:v -map 0:a -map 0:v -map 0:a -f hls \
11613                     -cc_stream_map "ccgroup:cc,instreamid:CC1,language:en ccgroup:cc,instreamid:CC2,language:sp" \
11614                     -var_stream_map "v:0,a:0,ccgroup:cc v:1,a:1,ccgroup:cc" \
11615                     -master_pl_name master.m3u8 \
11616                     http://example.com/live/out_%v.m3u8
11617
11618           This example adds two "#EXT-X-MEDIA" tags with
11619           "TYPE=CLOSED-CAPTIONS" in the master playlist for the INSTREAM-IDs
11620           'CC1' and 'CC2'. Also, it adds "CLOSED-CAPTIONS" attribute with
11621           group name 'cc' for the two output variant streams.
11622
11623       master_pl_name
11624           Create HLS master playlist with the given name.
11625
11626                   ffmpeg -re -i in.ts -f hls -master_pl_name master.m3u8 http://example.com/live/out.m3u8
11627
11628           This example creates HLS master playlist with name master.m3u8 and
11629           it is published at http://example.com/live/
11630
11631       master_pl_publish_rate
11632           Publish master play list repeatedly every after specified number of
11633           segment intervals.
11634
11635                   ffmpeg -re -i in.ts -f hls -master_pl_name master.m3u8 \
11636                   -hls_time 2 -master_pl_publish_rate 30 http://example.com/live/out.m3u8
11637
11638           This example creates HLS master playlist with name master.m3u8 and
11639           keep publishing it repeatedly every after 30 segments i.e. every
11640           after 60s.
11641
11642       http_persistent
11643           Use persistent HTTP connections. Applicable only for HTTP output.
11644
11645       timeout
11646           Set timeout for socket I/O operations. Applicable only for HTTP
11647           output.
11648
11649       -ignore_io_errors
11650           Ignore IO errors during open, write and delete. Useful for long-
11651           duration runs with network output.
11652
11653       headers
11654           Set custom HTTP headers, can override built in default headers.
11655           Applicable only for HTTP output.
11656
11657   ico
11658       ICO file muxer.
11659
11660       Microsoft's icon file format (ICO) has some strict limitations that
11661       should be noted:
11662
11663       •   Size cannot exceed 256 pixels in any dimension
11664
11665       •   Only BMP and PNG images can be stored
11666
11667       •   If a BMP image is used, it must be one of the following pixel
11668           formats:
11669
11670                   BMP Bit Depth      FFmpeg Pixel Format
11671                   1bit               pal8
11672                   4bit               pal8
11673                   8bit               pal8
11674                   16bit              rgb555le
11675                   24bit              bgr24
11676                   32bit              bgra
11677
11678       •   If a BMP image is used, it must use the BITMAPINFOHEADER DIB header
11679
11680       •   If a PNG image is used, it must use the rgba pixel format
11681
11682   image2
11683       Image file muxer.
11684
11685       The image file muxer writes video frames to image files.
11686
11687       The output filenames are specified by a pattern, which can be used to
11688       produce sequentially numbered series of files.  The pattern may contain
11689       the string "%d" or "%0Nd", this string specifies the position of the
11690       characters representing a numbering in the filenames. If the form
11691       "%0Nd" is used, the string representing the number in each filename is
11692       0-padded to N digits. The literal character '%' can be specified in the
11693       pattern with the string "%%".
11694
11695       If the pattern contains "%d" or "%0Nd", the first filename of the file
11696       list specified will contain the number 1, all the following numbers
11697       will be sequential.
11698
11699       The pattern may contain a suffix which is used to automatically
11700       determine the format of the image files to write.
11701
11702       For example the pattern "img-%03d.bmp" will specify a sequence of
11703       filenames of the form img-001.bmp, img-002.bmp, ..., img-010.bmp, etc.
11704       The pattern "img%%-%d.jpg" will specify a sequence of filenames of the
11705       form img%-1.jpg, img%-2.jpg, ..., img%-10.jpg, etc.
11706
11707       The image muxer supports the .Y.U.V image file format. This format is
11708       special in that that each image frame consists of three files, for each
11709       of the YUV420P components. To read or write this image file format,
11710       specify the name of the '.Y' file. The muxer will automatically open
11711       the '.U' and '.V' files as required.
11712
11713       Options
11714
11715       frame_pts
11716           If set to 1, expand the filename with pts from pkt->pts.  Default
11717           value is 0.
11718
11719       start_number
11720           Start the sequence from the specified number. Default value is 1.
11721
11722       update
11723           If set to 1, the filename will always be interpreted as just a
11724           filename, not a pattern, and the corresponding file will be
11725           continuously overwritten with new images. Default value is 0.
11726
11727       strftime
11728           If set to 1, expand the filename with date and time information
11729           from "strftime()". Default value is 0.
11730
11731       atomic_writing
11732           Write output to a temporary file, which is renamed to target
11733           filename once writing is completed. Default is disabled.
11734
11735       protocol_opts options_list
11736           Set protocol options as a :-separated list of key=value parameters.
11737           Values containing the ":" special character must be escaped.
11738
11739       Examples
11740
11741       The following example shows how to use ffmpeg for creating a sequence
11742       of files img-001.jpeg, img-002.jpeg, ..., taking one image every second
11743       from the input video:
11744
11745               ffmpeg -i in.avi -vsync cfr -r 1 -f image2 'img-%03d.jpeg'
11746
11747       Note that with ffmpeg, if the format is not specified with the "-f"
11748       option and the output filename specifies an image file format, the
11749       image2 muxer is automatically selected, so the previous command can be
11750       written as:
11751
11752               ffmpeg -i in.avi -vsync cfr -r 1 'img-%03d.jpeg'
11753
11754       Note also that the pattern must not necessarily contain "%d" or "%0Nd",
11755       for example to create a single image file img.jpeg from the start of
11756       the input video you can employ the command:
11757
11758               ffmpeg -i in.avi -f image2 -frames:v 1 img.jpeg
11759
11760       The strftime option allows you to expand the filename with date and
11761       time information. Check the documentation of the "strftime()" function
11762       for the syntax.
11763
11764       For example to generate image files from the "strftime()"
11765       "%Y-%m-%d_%H-%M-%S" pattern, the following ffmpeg command can be used:
11766
11767               ffmpeg -f v4l2 -r 1 -i /dev/video0 -f image2 -strftime 1 "%Y-%m-%d_%H-%M-%S.jpg"
11768
11769       You can set the file name with current frame's PTS:
11770
11771               ffmpeg -f v4l2 -r 1 -i /dev/video0 -copyts -f image2 -frame_pts true %d.jpg"
11772
11773       A more complex example is to publish contents of your desktop directly
11774       to a WebDAV server every second:
11775
11776               ffmpeg -f x11grab -framerate 1 -i :0.0 -q:v 6 -update 1 -protocol_opts method=PUT http://example.com/desktop.jpg
11777
11778   matroska
11779       Matroska container muxer.
11780
11781       This muxer implements the matroska and webm container specs.
11782
11783       Metadata
11784
11785       The recognized metadata settings in this muxer are:
11786
11787       title
11788           Set title name provided to a single track. This gets mapped to the
11789           FileDescription element for a stream written as attachment.
11790
11791       language
11792           Specify the language of the track in the Matroska languages form.
11793
11794           The language can be either the 3 letters bibliographic ISO-639-2
11795           (ISO 639-2/B) form (like "fre" for French), or a language code
11796           mixed with a country code for specialities in languages (like "fre-
11797           ca" for Canadian French).
11798
11799       stereo_mode
11800           Set stereo 3D video layout of two views in a single video track.
11801
11802           The following values are recognized:
11803
11804           mono
11805               video is not stereo
11806
11807           left_right
11808               Both views are arranged side by side, Left-eye view is on the
11809               left
11810
11811           bottom_top
11812               Both views are arranged in top-bottom orientation, Left-eye
11813               view is at bottom
11814
11815           top_bottom
11816               Both views are arranged in top-bottom orientation, Left-eye
11817               view is on top
11818
11819           checkerboard_rl
11820               Each view is arranged in a checkerboard interleaved pattern,
11821               Left-eye view being first
11822
11823           checkerboard_lr
11824               Each view is arranged in a checkerboard interleaved pattern,
11825               Right-eye view being first
11826
11827           row_interleaved_rl
11828               Each view is constituted by a row based interleaving, Right-eye
11829               view is first row
11830
11831           row_interleaved_lr
11832               Each view is constituted by a row based interleaving, Left-eye
11833               view is first row
11834
11835           col_interleaved_rl
11836               Both views are arranged in a column based interleaving manner,
11837               Right-eye view is first column
11838
11839           col_interleaved_lr
11840               Both views are arranged in a column based interleaving manner,
11841               Left-eye view is first column
11842
11843           anaglyph_cyan_red
11844               All frames are in anaglyph format viewable through red-cyan
11845               filters
11846
11847           right_left
11848               Both views are arranged side by side, Right-eye view is on the
11849               left
11850
11851           anaglyph_green_magenta
11852               All frames are in anaglyph format viewable through green-
11853               magenta filters
11854
11855           block_lr
11856               Both eyes laced in one Block, Left-eye view is first
11857
11858           block_rl
11859               Both eyes laced in one Block, Right-eye view is first
11860
11861       For example a 3D WebM clip can be created using the following command
11862       line:
11863
11864               ffmpeg -i sample_left_right_clip.mpg -an -c:v libvpx -metadata stereo_mode=left_right -y stereo_clip.webm
11865
11866       Options
11867
11868       This muxer supports the following options:
11869
11870       reserve_index_space
11871           By default, this muxer writes the index for seeking (called cues in
11872           Matroska terms) at the end of the file, because it cannot know in
11873           advance how much space to leave for the index at the beginning of
11874           the file. However for some use cases -- e.g.  streaming where
11875           seeking is possible but slow -- it is useful to put the index at
11876           the beginning of the file.
11877
11878           If this option is set to a non-zero value, the muxer will reserve a
11879           given amount of space in the file header and then try to write the
11880           cues there when the muxing finishes. If the reserved space does not
11881           suffice, no Cues will be written, the file will be finalized and
11882           writing the trailer will return an error.  A safe size for most use
11883           cases should be about 50kB per hour of video.
11884
11885           Note that cues are only written if the output is seekable and this
11886           option will have no effect if it is not.
11887
11888       default_mode
11889           This option controls how the FlagDefault of the output tracks will
11890           be set.  It influences which tracks players should play by default.
11891           The default mode is passthrough.
11892
11893           infer
11894               Every track with disposition default will have the FlagDefault
11895               set.  Additionally, for each type of track (audio, video or
11896               subtitle), if no track with disposition default of this type
11897               exists, then the first track of this type will be marked as
11898               default (if existing). This ensures that the default flag is
11899               set in a sensible way even if the input originated from
11900               containers that lack the concept of default tracks.
11901
11902           infer_no_subs
11903               This mode is the same as infer except that if no subtitle track
11904               with disposition default exists, no subtitle track will be
11905               marked as default.
11906
11907           passthrough
11908               In this mode the FlagDefault is set if and only if the
11909               AV_DISPOSITION_DEFAULT flag is set in the disposition of the
11910               corresponding stream.
11911
11912       flipped_raw_rgb
11913           If set to true, store positive height for raw RGB bitmaps, which
11914           indicates bitmap is stored bottom-up. Note that this option does
11915           not flip the bitmap which has to be done manually beforehand, e.g.
11916           by using the vflip filter.  Default is false and indicates bitmap
11917           is stored top down.
11918
11919   md5
11920       MD5 testing format.
11921
11922       This is a variant of the hash muxer. Unlike that muxer, it defaults to
11923       using the MD5 hash function.
11924
11925       Examples
11926
11927       To compute the MD5 hash of the input converted to raw audio and video,
11928       and store it in the file out.md5:
11929
11930               ffmpeg -i INPUT -f md5 out.md5
11931
11932       You can print the MD5 to stdout with the command:
11933
11934               ffmpeg -i INPUT -f md5 -
11935
11936       See also the hash and framemd5 muxers.
11937
11938   mov, mp4, ismv
11939       MOV/MP4/ISMV (Smooth Streaming) muxer.
11940
11941       The mov/mp4/ismv muxer supports fragmentation. Normally, a MOV/MP4 file
11942       has all the metadata about all packets stored in one location (written
11943       at the end of the file, it can be moved to the start for better
11944       playback by adding faststart to the movflags, or using the qt-faststart
11945       tool). A fragmented file consists of a number of fragments, where
11946       packets and metadata about these packets are stored together. Writing a
11947       fragmented file has the advantage that the file is decodable even if
11948       the writing is interrupted (while a normal MOV/MP4 is undecodable if it
11949       is not properly finished), and it requires less memory when writing
11950       very long files (since writing normal MOV/MP4 files stores info about
11951       every single packet in memory until the file is closed). The downside
11952       is that it is less compatible with other applications.
11953
11954       Options
11955
11956       Fragmentation is enabled by setting one of the AVOptions that define
11957       how to cut the file into fragments:
11958
11959       -moov_size bytes
11960           Reserves space for the moov atom at the beginning of the file
11961           instead of placing the moov atom at the end. If the space reserved
11962           is insufficient, muxing will fail.
11963
11964       -movflags frag_keyframe
11965           Start a new fragment at each video keyframe.
11966
11967       -frag_duration duration
11968           Create fragments that are duration microseconds long.
11969
11970       -frag_size size
11971           Create fragments that contain up to size bytes of payload data.
11972
11973       -movflags frag_custom
11974           Allow the caller to manually choose when to cut fragments, by
11975           calling "av_write_frame(ctx, NULL)" to write a fragment with the
11976           packets written so far. (This is only useful with other
11977           applications integrating libavformat, not from ffmpeg.)
11978
11979       -min_frag_duration duration
11980           Don't create fragments that are shorter than duration microseconds
11981           long.
11982
11983       If more than one condition is specified, fragments are cut when one of
11984       the specified conditions is fulfilled. The exception to this is
11985       "-min_frag_duration", which has to be fulfilled for any of the other
11986       conditions to apply.
11987
11988       Additionally, the way the output file is written can be adjusted
11989       through a few other options:
11990
11991       -movflags empty_moov
11992           Write an initial moov atom directly at the start of the file,
11993           without describing any samples in it. Generally, an mdat/moov pair
11994           is written at the start of the file, as a normal MOV/MP4 file,
11995           containing only a short portion of the file. With this option set,
11996           there is no initial mdat atom, and the moov atom only describes the
11997           tracks but has a zero duration.
11998
11999           This option is implicitly set when writing ismv (Smooth Streaming)
12000           files.
12001
12002       -movflags separate_moof
12003           Write a separate moof (movie fragment) atom for each track.
12004           Normally, packets for all tracks are written in a moof atom (which
12005           is slightly more efficient), but with this option set, the muxer
12006           writes one moof/mdat pair for each track, making it easier to
12007           separate tracks.
12008
12009           This option is implicitly set when writing ismv (Smooth Streaming)
12010           files.
12011
12012       -movflags skip_sidx
12013           Skip writing of sidx atom. When bitrate overhead due to sidx atom
12014           is high, this option could be used for cases where sidx atom is not
12015           mandatory.  When global_sidx flag is enabled, this option will be
12016           ignored.
12017
12018       -movflags faststart
12019           Run a second pass moving the index (moov atom) to the beginning of
12020           the file.  This operation can take a while, and will not work in
12021           various situations such as fragmented output, thus it is not
12022           enabled by default.
12023
12024       -movflags rtphint
12025           Add RTP hinting tracks to the output file.
12026
12027       -movflags disable_chpl
12028           Disable Nero chapter markers (chpl atom).  Normally, both Nero
12029           chapters and a QuickTime chapter track are written to the file.
12030           With this option set, only the QuickTime chapter track will be
12031           written. Nero chapters can cause failures when the file is
12032           reprocessed with certain tagging programs, like mp3Tag 2.61a and
12033           iTunes 11.3, most likely other versions are affected as well.
12034
12035       -movflags omit_tfhd_offset
12036           Do not write any absolute base_data_offset in tfhd atoms. This
12037           avoids tying fragments to absolute byte positions in the
12038           file/streams.
12039
12040       -movflags default_base_moof
12041           Similarly to the omit_tfhd_offset, this flag avoids writing the
12042           absolute base_data_offset field in tfhd atoms, but does so by using
12043           the new default-base-is-moof flag instead. This flag is new from
12044           14496-12:2012. This may make the fragments easier to parse in
12045           certain circumstances (avoiding basing track fragment location
12046           calculations on the implicit end of the previous track fragment).
12047
12048       -write_tmcd
12049           Specify "on" to force writing a timecode track, "off" to disable it
12050           and "auto" to write a timecode track only for mov and mp4 output
12051           (default).
12052
12053       -movflags negative_cts_offsets
12054           Enables utilization of version 1 of the CTTS box, in which the CTS
12055           offsets can be negative. This enables the initial sample to have
12056           DTS/CTS of zero, and reduces the need for edit lists for some cases
12057           such as video tracks with B-frames. Additionally, eases conformance
12058           with the DASH-IF interoperability guidelines.
12059
12060           This option is implicitly set when writing ismv (Smooth Streaming)
12061           files.
12062
12063       -write_prft
12064           Write producer time reference box (PRFT) with a specified time
12065           source for the NTP field in the PRFT box. Set value as wallclock to
12066           specify timesource as wallclock time and pts to specify timesource
12067           as input packets' PTS values.
12068
12069           Setting value to pts is applicable only for a live encoding use
12070           case, where PTS values are set as as wallclock time at the source.
12071           For example, an encoding use case with decklink capture source
12072           where video_pts and audio_pts are set to abs_wallclock.
12073
12074       -movie_timescale scale
12075           Set the timescale written in the movie header box ("mvhd").  Range
12076           is 1 to INT_MAX. Default is 1000.
12077
12078       Example
12079
12080       Smooth Streaming content can be pushed in real time to a publishing
12081       point on IIS with this muxer. Example:
12082
12083               ffmpeg -re <<normal input/transcoding options>> -movflags isml+frag_keyframe -f ismv http://server/publishingpoint.isml/Streams(Encoder1)
12084
12085   mp3
12086       The MP3 muxer writes a raw MP3 stream with the following optional
12087       features:
12088
12089       •   An ID3v2 metadata header at the beginning (enabled by default).
12090           Versions 2.3 and 2.4 are supported, the "id3v2_version" private
12091           option controls which one is used (3 or 4). Setting "id3v2_version"
12092           to 0 disables the ID3v2 header completely.
12093
12094           The muxer supports writing attached pictures (APIC frames) to the
12095           ID3v2 header.  The pictures are supplied to the muxer in form of a
12096           video stream with a single packet. There can be any number of those
12097           streams, each will correspond to a single APIC frame.  The stream
12098           metadata tags title and comment map to APIC description and picture
12099           type respectively. See <http://id3.org/id3v2.4.0-frames> for
12100           allowed picture types.
12101
12102           Note that the APIC frames must be written at the beginning, so the
12103           muxer will buffer the audio frames until it gets all the pictures.
12104           It is therefore advised to provide the pictures as soon as possible
12105           to avoid excessive buffering.
12106
12107       •   A Xing/LAME frame right after the ID3v2 header (if present). It is
12108           enabled by default, but will be written only if the output is
12109           seekable. The "write_xing" private option can be used to disable
12110           it.  The frame contains various information that may be useful to
12111           the decoder, like the audio duration or encoder delay.
12112
12113       •   A legacy ID3v1 tag at the end of the file (disabled by default). It
12114           may be enabled with the "write_id3v1" private option, but as its
12115           capabilities are very limited, its usage is not recommended.
12116
12117       Examples:
12118
12119       Write an mp3 with an ID3v2.3 header and an ID3v1 footer:
12120
12121               ffmpeg -i INPUT -id3v2_version 3 -write_id3v1 1 out.mp3
12122
12123       To attach a picture to an mp3 file select both the audio and the
12124       picture stream with "map":
12125
12126               ffmpeg -i input.mp3 -i cover.png -c copy -map 0 -map 1
12127               -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (Front)" out.mp3
12128
12129       Write a "clean" MP3 without any extra features:
12130
12131               ffmpeg -i input.wav -write_xing 0 -id3v2_version 0 out.mp3
12132
12133   mpegts
12134       MPEG transport stream muxer.
12135
12136       This muxer implements ISO 13818-1 and part of ETSI EN 300 468.
12137
12138       The recognized metadata settings in mpegts muxer are "service_provider"
12139       and "service_name". If they are not set the default for
12140       "service_provider" is FFmpeg and the default for "service_name" is
12141       Service01.
12142
12143       Options
12144
12145       The muxer options are:
12146
12147       mpegts_transport_stream_id integer
12148           Set the transport_stream_id. This identifies a transponder in DVB.
12149           Default is 0x0001.
12150
12151       mpegts_original_network_id integer
12152           Set the original_network_id. This is unique identifier of a network
12153           in DVB. Its main use is in the unique identification of a service
12154           through the path Original_Network_ID, Transport_Stream_ID. Default
12155           is 0x0001.
12156
12157       mpegts_service_id integer
12158           Set the service_id, also known as program in DVB. Default is
12159           0x0001.
12160
12161       mpegts_service_type integer
12162           Set the program service_type. Default is "digital_tv".  Accepts the
12163           following options:
12164
12165           hex_value
12166               Any hexadecimal value between 0x01 and 0xff as defined in ETSI
12167               300 468.
12168
12169           digital_tv
12170               Digital TV service.
12171
12172           digital_radio
12173               Digital Radio service.
12174
12175           teletext
12176               Teletext service.
12177
12178           advanced_codec_digital_radio
12179               Advanced Codec Digital Radio service.
12180
12181           mpeg2_digital_hdtv
12182               MPEG2 Digital HDTV service.
12183
12184           advanced_codec_digital_sdtv
12185               Advanced Codec Digital SDTV service.
12186
12187           advanced_codec_digital_hdtv
12188               Advanced Codec Digital HDTV service.
12189
12190       mpegts_pmt_start_pid integer
12191           Set the first PID for PMTs. Default is 0x1000, minimum is 0x0020,
12192           maximum is 0x1ffa. This option has no effect in m2ts mode where the
12193           PMT PID is fixed 0x0100.
12194
12195       mpegts_start_pid integer
12196           Set the first PID for elementary streams. Default is 0x0100,
12197           minimum is 0x0020, maximum is 0x1ffa. This option has no effect in
12198           m2ts mode where the elementary stream PIDs are fixed.
12199
12200       mpegts_m2ts_mode boolean
12201           Enable m2ts mode if set to 1. Default value is "-1" which disables
12202           m2ts mode.
12203
12204       muxrate integer
12205           Set a constant muxrate. Default is VBR.
12206
12207       pes_payload_size integer
12208           Set minimum PES packet payload in bytes. Default is 2930.
12209
12210       mpegts_flags flags
12211           Set mpegts flags. Accepts the following options:
12212
12213           resend_headers
12214               Reemit PAT/PMT before writing the next packet.
12215
12216           latm
12217               Use LATM packetization for AAC.
12218
12219           pat_pmt_at_frames
12220               Reemit PAT and PMT at each video frame.
12221
12222           system_b
12223               Conform to System B (DVB) instead of System A (ATSC).
12224
12225           initial_discontinuity
12226               Mark the initial packet of each stream as discontinuity.
12227
12228           nit Emit NIT table.
12229
12230       mpegts_copyts boolean
12231           Preserve original timestamps, if value is set to 1. Default value
12232           is "-1", which results in shifting timestamps so that they start
12233           from 0.
12234
12235       omit_video_pes_length boolean
12236           Omit the PES packet length for video packets. Default is 1 (true).
12237
12238       pcr_period integer
12239           Override the default PCR retransmission time in milliseconds.
12240           Default is "-1" which means that the PCR interval will be
12241           determined automatically: 20 ms is used for CBR streams, the
12242           highest multiple of the frame duration which is less than 100 ms is
12243           used for VBR streams.
12244
12245       pat_period duration
12246           Maximum time in seconds between PAT/PMT tables. Default is 0.1.
12247
12248       sdt_period duration
12249           Maximum time in seconds between SDT tables. Default is 0.5.
12250
12251       nit_period duration
12252           Maximum time in seconds between NIT tables. Default is 0.5.
12253
12254       tables_version integer
12255           Set PAT, PMT, SDT and NIT version (default 0, valid values are from
12256           0 to 31, inclusively).  This option allows updating stream
12257           structure so that standard consumer may detect the change. To do
12258           so, reopen output "AVFormatContext" (in case of API usage) or
12259           restart ffmpeg instance, cyclically changing tables_version value:
12260
12261                   ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
12262                   ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
12263                   ...
12264                   ffmpeg -i source3.ts -codec copy -f mpegts -tables_version 31 udp://1.1.1.1:1111
12265                   ffmpeg -i source1.ts -codec copy -f mpegts -tables_version 0 udp://1.1.1.1:1111
12266                   ffmpeg -i source2.ts -codec copy -f mpegts -tables_version 1 udp://1.1.1.1:1111
12267                   ...
12268
12269       Example
12270
12271               ffmpeg -i file.mpg -c copy \
12272                    -mpegts_original_network_id 0x1122 \
12273                    -mpegts_transport_stream_id 0x3344 \
12274                    -mpegts_service_id 0x5566 \
12275                    -mpegts_pmt_start_pid 0x1500 \
12276                    -mpegts_start_pid 0x150 \
12277                    -metadata service_provider="Some provider" \
12278                    -metadata service_name="Some Channel" \
12279                    out.ts
12280
12281   mxf, mxf_d10, mxf_opatom
12282       MXF muxer.
12283
12284       Options
12285
12286       The muxer options are:
12287
12288       store_user_comments bool
12289           Set if user comments should be stored if available or never.  IRT
12290           D-10 does not allow user comments. The default is thus to write
12291           them for mxf and mxf_opatom but not for mxf_d10
12292
12293   null
12294       Null muxer.
12295
12296       This muxer does not generate any output file, it is mainly useful for
12297       testing or benchmarking purposes.
12298
12299       For example to benchmark decoding with ffmpeg you can use the command:
12300
12301               ffmpeg -benchmark -i INPUT -f null out.null
12302
12303       Note that the above command does not read or write the out.null file,
12304       but specifying the output file is required by the ffmpeg syntax.
12305
12306       Alternatively you can write the command as:
12307
12308               ffmpeg -benchmark -i INPUT -f null -
12309
12310   nut
12311       -syncpoints flags
12312           Change the syncpoint usage in nut:
12313
12314           default use the normal low-overhead seeking aids.
12315           none do not use the syncpoints at all, reducing the overhead but
12316           making the stream non-seekable;
12317                   Use of this option is not recommended, as the resulting files are very damage
12318                   sensitive and seeking is not possible. Also in general the overhead from
12319                   syncpoints is negligible. Note, -C<write_index> 0 can be used to disable
12320                   all growing data tables, allowing to mux endless streams with limited memory
12321                   and without these disadvantages.
12322
12323           timestamped extend the syncpoint with a wallclock field.
12324
12325           The none and timestamped flags are experimental.
12326
12327       -write_index bool
12328           Write index at the end, the default is to write an index.
12329
12330               ffmpeg -i INPUT -f_strict experimental -syncpoints none - | processor
12331
12332   ogg
12333       Ogg container muxer.
12334
12335       -page_duration duration
12336           Preferred page duration, in microseconds. The muxer will attempt to
12337           create pages that are approximately duration microseconds long.
12338           This allows the user to compromise between seek granularity and
12339           container overhead. The default is 1 second. A value of 0 will fill
12340           all segments, making pages as large as possible. A value of 1 will
12341           effectively use 1 packet-per-page in most situations, giving a
12342           small seek granularity at the cost of additional container
12343           overhead.
12344
12345       -serial_offset value
12346           Serial value from which to set the streams serial number.  Setting
12347           it to different and sufficiently large values ensures that the
12348           produced ogg files can be safely chained.
12349
12350   raw muxers
12351       Raw muxers accept a single stream matching the designated codec. They
12352       do not store timestamps or metadata.  The recognized extension is the
12353       same as the muxer name unless indicated otherwise.
12354
12355       ac3
12356
12357       Dolby Digital, also known as AC-3, audio.
12358
12359       adx
12360
12361       CRI Middleware ADX audio.
12362
12363       This muxer will write out the total sample count near the start of the
12364       first packet when the output is seekable and the count can be stored in
12365       32 bits.
12366
12367       aptx
12368
12369       aptX (Audio Processing Technology for Bluetooth) audio.
12370
12371       aptx_hd
12372
12373       aptX HD (Audio Processing Technology for Bluetooth) audio.
12374
12375       Extensions: aptxhd
12376
12377       avs2
12378
12379       AVS2-P2/IEEE1857.4 video.
12380
12381       Extensions: avs, avs2
12382
12383       cavsvideo
12384
12385       Chinese AVS (Audio Video Standard) video.
12386
12387       Extensions: cavs
12388
12389       codec2raw
12390
12391       Codec 2 audio.
12392
12393       No extension is registered so format name has to be supplied e.g. with
12394       the ffmpeg CLI tool "-f codec2raw".
12395
12396       data
12397
12398       Data muxer accepts a single stream with any codec of any type.  The
12399       input stream has to be selected using the "-map" option with the ffmpeg
12400       CLI tool.
12401
12402       No extension is registered so format name has to be supplied e.g. with
12403       the ffmpeg CLI tool "-f data".
12404
12405       dirac
12406
12407       BBC Dirac video. The Dirac Pro codec is a subset and is standardized as
12408       SMPTE VC-2.
12409
12410       Extensions: drc, vc2
12411
12412       dnxhd
12413
12414       Avid DNxHD video. It is standardized as SMPTE VC-3. Accepts DNxHR
12415       streams.
12416
12417       Extensions: dnxhd, dnxhr
12418
12419       dts
12420
12421       DTS Coherent Acoustics (DCA) audio.
12422
12423       eac3
12424
12425       Dolby Digital Plus, also known as Enhanced AC-3, audio.
12426
12427       g722
12428
12429       ITU-T G.722 audio.
12430
12431       g723_1
12432
12433       ITU-T G.723.1 audio.
12434
12435       Extensions: tco, rco
12436
12437       g726
12438
12439       ITU-T G.726 big-endian ("left-justified") audio.
12440
12441       No extension is registered so format name has to be supplied e.g. with
12442       the ffmpeg CLI tool "-f g726".
12443
12444       g726le
12445
12446       ITU-T G.726 little-endian ("right-justified") audio.
12447
12448       No extension is registered so format name has to be supplied e.g. with
12449       the ffmpeg CLI tool "-f g726le".
12450
12451       gsm
12452
12453       Global System for Mobile Communications audio.
12454
12455       h261
12456
12457       ITU-T H.261 video.
12458
12459       h263
12460
12461       ITU-T H.263 / H.263-1996, H.263+ / H.263-1998 / H.263 version 2 video.
12462
12463       h264
12464
12465       ITU-T H.264 / MPEG-4 Part 10 AVC video. Bitstream shall be converted to
12466       Annex B syntax if it's in length-prefixed mode.
12467
12468       Extensions: h264, 264
12469
12470       hevc
12471
12472       ITU-T H.265 / MPEG-H Part 2 HEVC video. Bitstream shall be converted to
12473       Annex B syntax if it's in length-prefixed mode.
12474
12475       Extensions: hevc, h265, 265
12476
12477       m4v
12478
12479       MPEG-4 Part 2 video.
12480
12481       mjpeg
12482
12483       Motion JPEG video.
12484
12485       Extensions: mjpg, mjpeg
12486
12487       mlp
12488
12489       Meridian Lossless Packing, also known as Packed PCM, audio.
12490
12491       mp2
12492
12493       MPEG-1 Audio Layer II audio.
12494
12495       Extensions: mp2, m2a, mpa
12496
12497       mpeg1video
12498
12499       MPEG-1 Part 2 video.
12500
12501       Extensions: mpg, mpeg, m1v
12502
12503       mpeg2video
12504
12505       ITU-T H.262 / MPEG-2 Part 2 video.
12506
12507       Extensions: m2v
12508
12509       obu
12510
12511       AV1 low overhead Open Bitstream Units muxer. Temporal delimiter OBUs
12512       will be inserted in all temporal units of the stream.
12513
12514       rawvideo
12515
12516       Raw uncompressed video.
12517
12518       Extensions: yuv, rgb
12519
12520       sbc
12521
12522       Bluetooth SIG low-complexity subband codec audio.
12523
12524       Extensions: sbc, msbc
12525
12526       truehd
12527
12528       Dolby TrueHD audio.
12529
12530       Extensions: thd
12531
12532       vc1
12533
12534       SMPTE 421M / VC-1 video.
12535
12536   segment, stream_segment, ssegment
12537       Basic stream segmenter.
12538
12539       This muxer outputs streams to a number of separate files of nearly
12540       fixed duration. Output filename pattern can be set in a fashion similar
12541       to image2, or by using a "strftime" template if the strftime option is
12542       enabled.
12543
12544       "stream_segment" is a variant of the muxer used to write to streaming
12545       output formats, i.e. which do not require global headers, and is
12546       recommended for outputting e.g. to MPEG transport stream segments.
12547       "ssegment" is a shorter alias for "stream_segment".
12548
12549       Every segment starts with a keyframe of the selected reference stream,
12550       which is set through the reference_stream option.
12551
12552       Note that if you want accurate splitting for a video file, you need to
12553       make the input key frames correspond to the exact splitting times
12554       expected by the segmenter, or the segment muxer will start the new
12555       segment with the key frame found next after the specified start time.
12556
12557       The segment muxer works best with a single constant frame rate video.
12558
12559       Optionally it can generate a list of the created segments, by setting
12560       the option segment_list. The list type is specified by the
12561       segment_list_type option. The entry filenames in the segment list are
12562       set by default to the basename of the corresponding segment files.
12563
12564       See also the hls muxer, which provides a more specific implementation
12565       for HLS segmentation.
12566
12567       Options
12568
12569       The segment muxer supports the following options:
12570
12571       increment_tc 1|0
12572           if set to 1, increment timecode between each segment If this is
12573           selected, the input need to have a timecode in the first video
12574           stream. Default value is 0.
12575
12576       reference_stream specifier
12577           Set the reference stream, as specified by the string specifier.  If
12578           specifier is set to "auto", the reference is chosen automatically.
12579           Otherwise it must be a stream specifier (see the ``Stream
12580           specifiers'' chapter in the ffmpeg manual) which specifies the
12581           reference stream. The default value is "auto".
12582
12583       segment_format format
12584           Override the inner container format, by default it is guessed by
12585           the filename extension.
12586
12587       segment_format_options options_list
12588           Set output format options using a :-separated list of key=value
12589           parameters. Values containing the ":" special character must be
12590           escaped.
12591
12592       segment_list name
12593           Generate also a listfile named name. If not specified no listfile
12594           is generated.
12595
12596       segment_list_flags flags
12597           Set flags affecting the segment list generation.
12598
12599           It currently supports the following flags:
12600
12601           cache
12602               Allow caching (only affects M3U8 list files).
12603
12604           live
12605               Allow live-friendly file generation.
12606
12607       segment_list_size size
12608           Update the list file so that it contains at most size segments. If
12609           0 the list file will contain all the segments. Default value is 0.
12610
12611       segment_list_entry_prefix prefix
12612           Prepend prefix to each entry. Useful to generate absolute paths.
12613           By default no prefix is applied.
12614
12615       segment_list_type type
12616           Select the listing format.
12617
12618           The following values are recognized:
12619
12620           flat
12621               Generate a flat list for the created segments, one segment per
12622               line.
12623
12624           csv, ext
12625               Generate a list for the created segments, one segment per line,
12626               each line matching the format (comma-separated values):
12627
12628                       <segment_filename>,<segment_start_time>,<segment_end_time>
12629
12630               segment_filename is the name of the output file generated by
12631               the muxer according to the provided pattern. CSV escaping
12632               (according to RFC4180) is applied if required.
12633
12634               segment_start_time and segment_end_time specify the segment
12635               start and end time expressed in seconds.
12636
12637               A list file with the suffix ".csv" or ".ext" will auto-select
12638               this format.
12639
12640               ext is deprecated in favor or csv.
12641
12642           ffconcat
12643               Generate an ffconcat file for the created segments. The
12644               resulting file can be read using the FFmpeg concat demuxer.
12645
12646               A list file with the suffix ".ffcat" or ".ffconcat" will auto-
12647               select this format.
12648
12649           m3u8
12650               Generate an extended M3U8 file, version 3, compliant with
12651               <http://tools.ietf.org/id/draft-pantos-http-live-streaming>.
12652
12653               A list file with the suffix ".m3u8" will auto-select this
12654               format.
12655
12656           If not specified the type is guessed from the list file name
12657           suffix.
12658
12659       segment_time time
12660           Set segment duration to time, the value must be a duration
12661           specification. Default value is "2". See also the segment_times
12662           option.
12663
12664           Note that splitting may not be accurate, unless you force the
12665           reference stream key-frames at the given time. See the introductory
12666           notice and the examples below.
12667
12668       segment_atclocktime 1|0
12669           If set to "1" split at regular clock time intervals starting from
12670           00:00 o'clock. The time value specified in segment_time is used for
12671           setting the length of the splitting interval.
12672
12673           For example with segment_time set to "900" this makes it possible
12674           to create files at 12:00 o'clock, 12:15, 12:30, etc.
12675
12676           Default value is "0".
12677
12678       segment_clocktime_offset duration
12679           Delay the segment splitting times with the specified duration when
12680           using segment_atclocktime.
12681
12682           For example with segment_time set to "900" and
12683           segment_clocktime_offset set to "300" this makes it possible to
12684           create files at 12:05, 12:20, 12:35, etc.
12685
12686           Default value is "0".
12687
12688       segment_clocktime_wrap_duration duration
12689           Force the segmenter to only start a new segment if a packet reaches
12690           the muxer within the specified duration after the segmenting clock
12691           time. This way you can make the segmenter more resilient to
12692           backward local time jumps, such as leap seconds or transition to
12693           standard time from daylight savings time.
12694
12695           Default is the maximum possible duration which means starting a new
12696           segment regardless of the elapsed time since the last clock time.
12697
12698       segment_time_delta delta
12699           Specify the accuracy time when selecting the start time for a
12700           segment, expressed as a duration specification. Default value is
12701           "0".
12702
12703           When delta is specified a key-frame will start a new segment if its
12704           PTS satisfies the relation:
12705
12706                   PTS >= start_time - time_delta
12707
12708           This option is useful when splitting video content, which is always
12709           split at GOP boundaries, in case a key frame is found just before
12710           the specified split time.
12711
12712           In particular may be used in combination with the ffmpeg option
12713           force_key_frames. The key frame times specified by force_key_frames
12714           may not be set accurately because of rounding issues, with the
12715           consequence that a key frame time may result set just before the
12716           specified time. For constant frame rate videos a value of
12717           1/(2*frame_rate) should address the worst case mismatch between the
12718           specified time and the time set by force_key_frames.
12719
12720       segment_times times
12721           Specify a list of split points. times contains a list of comma
12722           separated duration specifications, in increasing order. See also
12723           the segment_time option.
12724
12725       segment_frames frames
12726           Specify a list of split video frame numbers. frames contains a list
12727           of comma separated integer numbers, in increasing order.
12728
12729           This option specifies to start a new segment whenever a reference
12730           stream key frame is found and the sequential number (starting from
12731           0) of the frame is greater or equal to the next value in the list.
12732
12733       segment_wrap limit
12734           Wrap around segment index once it reaches limit.
12735
12736       segment_start_number number
12737           Set the sequence number of the first segment. Defaults to 0.
12738
12739       strftime 1|0
12740           Use the "strftime" function to define the name of the new segments
12741           to write. If this is selected, the output segment name must contain
12742           a "strftime" function template. Default value is 0.
12743
12744       break_non_keyframes 1|0
12745           If enabled, allow segments to start on frames other than keyframes.
12746           This improves behavior on some players when the time between
12747           keyframes is inconsistent, but may make things worse on others, and
12748           can cause some oddities during seeking. Defaults to 0.
12749
12750       reset_timestamps 1|0
12751           Reset timestamps at the beginning of each segment, so that each
12752           segment will start with near-zero timestamps. It is meant to ease
12753           the playback of the generated segments. May not work with some
12754           combinations of muxers/codecs. It is set to 0 by default.
12755
12756       initial_offset offset
12757           Specify timestamp offset to apply to the output packet timestamps.
12758           The argument must be a time duration specification, and defaults to
12759           0.
12760
12761       write_empty_segments 1|0
12762           If enabled, write an empty segment if there are no packets during
12763           the period a segment would usually span. Otherwise, the segment
12764           will be filled with the next packet written. Defaults to 0.
12765
12766       Make sure to require a closed GOP when encoding and to set the GOP size
12767       to fit your segment time constraint.
12768
12769       Examples
12770
12771       •   Remux the content of file in.mkv to a list of segments out-000.nut,
12772           out-001.nut, etc., and write the list of generated segments to
12773           out.list:
12774
12775                   ffmpeg -i in.mkv -codec hevc -flags +cgop -g 60 -map 0 -f segment -segment_list out.list out%03d.nut
12776
12777       •   Segment input and set output format options for the output
12778           segments:
12779
12780                   ffmpeg -i in.mkv -f segment -segment_time 10 -segment_format_options movflags=+faststart out%03d.mp4
12781
12782       •   Segment the input file according to the split points specified by
12783           the segment_times option:
12784
12785                   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
12786
12787       •   Use the ffmpeg force_key_frames option to force key frames in the
12788           input at the specified location, together with the segment option
12789           segment_time_delta to account for possible roundings operated when
12790           setting key frame times.
12791
12792                   ffmpeg -i in.mkv -force_key_frames 1,2,3,5,8,13,21 -codec:v mpeg4 -codec:a pcm_s16le -map 0 \
12793                   -f segment -segment_list out.csv -segment_times 1,2,3,5,8,13,21 -segment_time_delta 0.05 out%03d.nut
12794
12795           In order to force key frames on the input file, transcoding is
12796           required.
12797
12798       •   Segment the input file by splitting the input file according to the
12799           frame numbers sequence specified with the segment_frames option:
12800
12801                   ffmpeg -i in.mkv -codec copy -map 0 -f segment -segment_list out.csv -segment_frames 100,200,300,500,800 out%03d.nut
12802
12803       •   Convert the in.mkv to TS segments using the "libx264" and "aac"
12804           encoders:
12805
12806                   ffmpeg -i in.mkv -map 0 -codec:v libx264 -codec:a aac -f ssegment -segment_list out.list out%03d.ts
12807
12808       •   Segment the input file, and create an M3U8 live playlist (can be
12809           used as live HLS source):
12810
12811                   ffmpeg -re -i in.mkv -codec copy -map 0 -f segment -segment_list playlist.m3u8 \
12812                   -segment_list_flags +live -segment_time 10 out%03d.mkv
12813
12814   smoothstreaming
12815       Smooth Streaming muxer generates a set of files (Manifest, chunks)
12816       suitable for serving with conventional web server.
12817
12818       window_size
12819           Specify the number of fragments kept in the manifest. Default 0
12820           (keep all).
12821
12822       extra_window_size
12823           Specify the number of fragments kept outside of the manifest before
12824           removing from disk. Default 5.
12825
12826       lookahead_count
12827           Specify the number of lookahead fragments. Default 2.
12828
12829       min_frag_duration
12830           Specify the minimum fragment duration (in microseconds). Default
12831           5000000.
12832
12833       remove_at_exit
12834           Specify whether to remove all fragments when finished. Default 0
12835           (do not remove).
12836
12837   streamhash
12838       Per stream hash testing format.
12839
12840       This muxer computes and prints a cryptographic hash of all the input
12841       frames, on a per-stream basis. This can be used for equality checks
12842       without having to do a complete binary comparison.
12843
12844       By default audio frames are converted to signed 16-bit raw audio and
12845       video frames to raw video before computing the hash, but the output of
12846       explicit conversions to other codecs can also be used. Timestamps are
12847       ignored. It uses the SHA-256 cryptographic hash function by default,
12848       but supports several other algorithms.
12849
12850       The output of the muxer consists of one line per stream of the form:
12851       streamindex,streamtype,algo=hash, where streamindex is the index of the
12852       mapped stream, streamtype is a single character indicating the type of
12853       stream, algo is a short string representing the hash function used, and
12854       hash is a hexadecimal number representing the computed hash.
12855
12856       hash algorithm
12857           Use the cryptographic hash function specified by the string
12858           algorithm.  Supported values include "MD5", "murmur3", "RIPEMD128",
12859           "RIPEMD160", "RIPEMD256", "RIPEMD320", "SHA160", "SHA224", "SHA256"
12860           (default), "SHA512/224", "SHA512/256", "SHA384", "SHA512", "CRC32"
12861           and "adler32".
12862
12863       Examples
12864
12865       To compute the SHA-256 hash of the input converted to raw audio and
12866       video, and store it in the file out.sha256:
12867
12868               ffmpeg -i INPUT -f streamhash out.sha256
12869
12870       To print an MD5 hash to stdout use the command:
12871
12872               ffmpeg -i INPUT -f streamhash -hash md5 -
12873
12874       See also the hash and framehash muxers.
12875
12876   tee
12877       The tee muxer can be used to write the same data to several outputs,
12878       such as files or streams.  It can be used, for example, to stream a
12879       video over a network and save it to disk at the same time.
12880
12881       It is different from specifying several outputs to the ffmpeg command-
12882       line tool. With the tee muxer, the audio and video data will be encoded
12883       only once.  With conventional multiple outputs, multiple encoding
12884       operations in parallel are initiated, which can be a very expensive
12885       process. The tee muxer is not useful when using the libavformat API
12886       directly because it is then possible to feed the same packets to
12887       several muxers directly.
12888
12889       Since the tee muxer does not represent any particular output format,
12890       ffmpeg cannot auto-select output streams. So all streams intended for
12891       output must be specified using "-map". See the examples below.
12892
12893       Some encoders may need different options depending on the output
12894       format; the auto-detection of this can not work with the tee muxer, so
12895       they need to be explicitly specified.  The main example is the
12896       global_header flag.
12897
12898       The slave outputs are specified in the file name given to the muxer,
12899       separated by '|'. If any of the slave name contains the '|' separator,
12900       leading or trailing spaces or any special character, those must be
12901       escaped (see the "Quoting and escaping" section in the ffmpeg-utils(1)
12902       manual).
12903
12904       Options
12905
12906       use_fifo bool
12907           If set to 1, slave outputs will be processed in separate threads
12908           using the fifo muxer. This allows to compensate for different
12909           speed/latency/reliability of outputs and setup transparent
12910           recovery. By default this feature is turned off.
12911
12912       fifo_options
12913           Options to pass to fifo pseudo-muxer instances. See fifo.
12914
12915       Muxer options can be specified for each slave by prepending them as a
12916       list of key=value pairs separated by ':', between square brackets. If
12917       the options values contain a special character or the ':' separator,
12918       they must be escaped; note that this is a second level escaping.
12919
12920       The following special options are also recognized:
12921
12922       f   Specify the format name. Required if it cannot be guessed from the
12923           output URL.
12924
12925       bsfs[/spec]
12926           Specify a list of bitstream filters to apply to the specified
12927           output.
12928
12929           It is possible to specify to which streams a given bitstream filter
12930           applies, by appending a stream specifier to the option separated by
12931           "/". spec must be a stream specifier (see Format stream
12932           specifiers).
12933
12934           If the stream specifier is not specified, the bitstream filters
12935           will be applied to all streams in the output. This will cause that
12936           output operation to fail if the output contains streams to which
12937           the bitstream filter cannot be applied e.g. "h264_mp4toannexb"
12938           being applied to an output containing an audio stream.
12939
12940           Options for a bitstream filter must be specified in the form of
12941           "opt=value".
12942
12943           Several bitstream filters can be specified, separated by ",".
12944
12945       use_fifo bool
12946           This allows to override tee muxer use_fifo option for individual
12947           slave muxer.
12948
12949       fifo_options
12950           This allows to override tee muxer fifo_options for individual slave
12951           muxer.  See fifo.
12952
12953       select
12954           Select the streams that should be mapped to the slave output,
12955           specified by a stream specifier. If not specified, this defaults to
12956           all the mapped streams. This will cause that output operation to
12957           fail if the output format does not accept all mapped streams.
12958
12959           You may use multiple stream specifiers separated by commas (",")
12960           e.g.: "a:0,v"
12961
12962       onfail
12963           Specify behaviour on output failure. This can be set to either
12964           "abort" (which is default) or "ignore". "abort" will cause whole
12965           process to fail in case of failure on this slave output. "ignore"
12966           will ignore failure on this output, so other outputs will continue
12967           without being affected.
12968
12969       Examples
12970
12971       •   Encode something and both archive it in a WebM file and stream it
12972           as MPEG-TS over UDP:
12973
12974                   ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a
12975                     "archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
12976
12977       •   As above, but continue streaming even if output to local file fails
12978           (for example local drive fills up):
12979
12980                   ffmpeg -i ... -c:v libx264 -c:a mp2 -f tee -map 0:v -map 0:a
12981                     "[onfail=ignore]archive-20121107.mkv|[f=mpegts]udp://10.0.1.255:1234/"
12982
12983       •   Use ffmpeg to encode the input, and send the output to three
12984           different destinations. The "dump_extra" bitstream filter is used
12985           to add extradata information to all the output video keyframes
12986           packets, as requested by the MPEG-TS format. The select option is
12987           applied to out.aac in order to make it contain only audio packets.
12988
12989                   ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac
12990                          -f tee "[bsfs/v=dump_extra=freq=keyframe]out.ts|[movflags=+faststart]out.mp4|[select=a]out.aac"
12991
12992       •   As above, but select only stream "a:1" for the audio output. Note
12993           that a second level escaping must be performed, as ":" is a special
12994           character used to separate options.
12995
12996                   ffmpeg -i ... -map 0 -flags +global_header -c:v libx264 -c:a aac
12997                          -f tee "[bsfs/v=dump_extra=freq=keyframe]out.ts|[movflags=+faststart]out.mp4|[select=\'a:1\']out.aac"
12998
12999   webm_chunk
13000       WebM Live Chunk Muxer.
13001
13002       This muxer writes out WebM headers and chunks as separate files which
13003       can be consumed by clients that support WebM Live streams via DASH.
13004
13005       Options
13006
13007       This muxer supports the following options:
13008
13009       chunk_start_index
13010           Index of the first chunk (defaults to 0).
13011
13012       header
13013           Filename of the header where the initialization data will be
13014           written.
13015
13016       audio_chunk_duration
13017           Duration of each audio chunk in milliseconds (defaults to 5000).
13018
13019       Example
13020
13021               ffmpeg -f v4l2 -i /dev/video0 \
13022                      -f alsa -i hw:0 \
13023                      -map 0:0 \
13024                      -c:v libvpx-vp9 \
13025                      -s 640x360 -keyint_min 30 -g 30 \
13026                      -f webm_chunk \
13027                      -header webm_live_video_360.hdr \
13028                      -chunk_start_index 1 \
13029                      webm_live_video_360_%d.chk \
13030                      -map 1:0 \
13031                      -c:a libvorbis \
13032                      -b:a 128k \
13033                      -f webm_chunk \
13034                      -header webm_live_audio_128.hdr \
13035                      -chunk_start_index 1 \
13036                      -audio_chunk_duration 1000 \
13037                      webm_live_audio_128_%d.chk
13038
13039   webm_dash_manifest
13040       WebM DASH Manifest muxer.
13041
13042       This muxer implements the WebM DASH Manifest specification to generate
13043       the DASH manifest XML. It also supports manifest generation for DASH
13044       live streams.
13045
13046       For more information see:
13047
13048       •   WebM DASH Specification:
13049           <https://sites.google.com/a/webmproject.org/wiki/adaptive-streaming/webm-dash-specification>
13050
13051       •   ISO DASH Specification:
13052           <http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip>
13053
13054       Options
13055
13056       This muxer supports the following options:
13057
13058       adaptation_sets
13059           This option has the following syntax: "id=x,streams=a,b,c
13060           id=y,streams=d,e" where x and y are the unique identifiers of the
13061           adaptation sets and a,b,c,d and e are the indices of the
13062           corresponding audio and video streams. Any number of adaptation
13063           sets can be added using this option.
13064
13065       live
13066           Set this to 1 to create a live stream DASH Manifest. Default: 0.
13067
13068       chunk_start_index
13069           Start index of the first chunk. This will go in the startNumber
13070           attribute of the SegmentTemplate element in the manifest. Default:
13071           0.
13072
13073       chunk_duration_ms
13074           Duration of each chunk in milliseconds. This will go in the
13075           duration attribute of the SegmentTemplate element in the manifest.
13076           Default: 1000.
13077
13078       utc_timing_url
13079           URL of the page that will return the UTC timestamp in ISO format.
13080           This will go in the value attribute of the UTCTiming element in the
13081           manifest.  Default: None.
13082
13083       time_shift_buffer_depth
13084           Smallest time (in seconds) shifting buffer for which any
13085           Representation is guaranteed to be available. This will go in the
13086           timeShiftBufferDepth attribute of the MPD element. Default: 60.
13087
13088       minimum_update_period
13089           Minimum update period (in seconds) of the manifest. This will go in
13090           the minimumUpdatePeriod attribute of the MPD element. Default: 0.
13091
13092       Example
13093
13094               ffmpeg -f webm_dash_manifest -i video1.webm \
13095                      -f webm_dash_manifest -i video2.webm \
13096                      -f webm_dash_manifest -i audio1.webm \
13097                      -f webm_dash_manifest -i audio2.webm \
13098                      -map 0 -map 1 -map 2 -map 3 \
13099                      -c copy \
13100                      -f webm_dash_manifest \
13101                      -adaptation_sets "id=0,streams=0,1 id=1,streams=2,3" \
13102                      manifest.xml
13103

METADATA

13105       FFmpeg is able to dump metadata from media files into a simple
13106       UTF-8-encoded INI-like text file and then load it back using the
13107       metadata muxer/demuxer.
13108
13109       The file format is as follows:
13110
13111       1.  A file consists of a header and a number of metadata tags divided
13112           into sections, each on its own line.
13113
13114       2.  The header is a ;FFMETADATA string, followed by a version number
13115           (now 1).
13116
13117       3.  Metadata tags are of the form key=value
13118
13119       4.  Immediately after header follows global metadata
13120
13121       5.  After global metadata there may be sections with
13122           per-stream/per-chapter metadata.
13123
13124       6.  A section starts with the section name in uppercase (i.e. STREAM or
13125           CHAPTER) in brackets ([, ]) and ends with next section or end of
13126           file.
13127
13128       7.  At the beginning of a chapter section there may be an optional
13129           timebase to be used for start/end values. It must be in form
13130           TIMEBASE=num/den, where num and den are integers. If the timebase
13131           is missing then start/end times are assumed to be in nanoseconds.
13132
13133           Next a chapter section must contain chapter start and end times in
13134           form START=num, END=num, where num is a positive integer.
13135
13136       8.  Empty lines and lines starting with ; or # are ignored.
13137
13138       9.  Metadata keys or values containing special characters (=, ;, #, \
13139           and a newline) must be escaped with a backslash \.
13140
13141       10. Note that whitespace in metadata (e.g. foo = bar) is considered to
13142           be a part of the tag (in the example above key is foo , value is
13143            bar).
13144
13145       A ffmetadata file might look like this:
13146
13147               ;FFMETADATA1
13148               title=bike\\shed
13149               ;this is a comment
13150               artist=FFmpeg troll team
13151
13152               [CHAPTER]
13153               TIMEBASE=1/1000
13154               START=0
13155               #chapter ends at 0:01:00
13156               END=60000
13157               title=chapter \#1
13158               [STREAM]
13159               title=multi\
13160               line
13161
13162       By using the ffmetadata muxer and demuxer it is possible to extract
13163       metadata from an input file to an ffmetadata file, and then transcode
13164       the file into an output file with the edited ffmetadata file.
13165
13166       Extracting an ffmetadata file with ffmpeg goes as follows:
13167
13168               ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
13169
13170       Reinserting edited metadata information from the FFMETADATAFILE file
13171       can be done as:
13172
13173               ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
13174

PROTOCOL OPTIONS

13176       The libavformat library provides some generic global options, which can
13177       be set on all the protocols. In addition each protocol may support so-
13178       called private options, which are specific for that component.
13179
13180       Options may be set by specifying -option value in the FFmpeg tools, or
13181       by setting the value explicitly in the "AVFormatContext" options or
13182       using the libavutil/opt.h API for programmatic use.
13183
13184       The list of supported options follows:
13185
13186       protocol_whitelist list (input)
13187           Set a ","-separated list of allowed protocols. "ALL" matches all
13188           protocols. Protocols prefixed by "-" are disabled.  All protocols
13189           are allowed by default but protocols used by an another protocol
13190           (nested protocols) are restricted to a per protocol subset.
13191

PROTOCOLS

13193       Protocols are configured elements in FFmpeg that enable access to
13194       resources that require specific protocols.
13195
13196       When you configure your FFmpeg build, all the supported protocols are
13197       enabled by default. You can list all available ones using the configure
13198       option "--list-protocols".
13199
13200       You can disable all the protocols using the configure option
13201       "--disable-protocols", and selectively enable a protocol using the
13202       option "--enable-protocol=PROTOCOL", or you can disable a particular
13203       protocol using the option "--disable-protocol=PROTOCOL".
13204
13205       The option "-protocols" of the ff* tools will display the list of
13206       supported protocols.
13207
13208       All protocols accept the following options:
13209
13210       rw_timeout
13211           Maximum time to wait for (network) read/write operations to
13212           complete, in microseconds.
13213
13214       A description of the currently available protocols follows.
13215
13216   amqp
13217       Advanced Message Queueing Protocol (AMQP) version 0-9-1 is a broker
13218       based publish-subscribe communication protocol.
13219
13220       FFmpeg must be compiled with --enable-librabbitmq to support AMQP. A
13221       separate AMQP broker must also be run. An example open-source AMQP
13222       broker is RabbitMQ.
13223
13224       After starting the broker, an FFmpeg client may stream data to the
13225       broker using the command:
13226
13227               ffmpeg -re -i input -f mpegts amqp://[[user]:[password]@]hostname[:port][/vhost]
13228
13229       Where hostname and port (default is 5672) is the address of the broker.
13230       The client may also set a user/password for authentication. The default
13231       for both fields is "guest". Name of virtual host on broker can be set
13232       with vhost. The default value is "/".
13233
13234       Muliple subscribers may stream from the broker using the command:
13235
13236               ffplay amqp://[[user]:[password]@]hostname[:port][/vhost]
13237
13238       In RabbitMQ all data published to the broker flows through a specific
13239       exchange, and each subscribing client has an assigned queue/buffer.
13240       When a packet arrives at an exchange, it may be copied to a client's
13241       queue depending on the exchange and routing_key fields.
13242
13243       The following options are supported:
13244
13245       exchange
13246           Sets the exchange to use on the broker. RabbitMQ has several
13247           predefined exchanges: "amq.direct" is the default exchange, where
13248           the publisher and subscriber must have a matching routing_key;
13249           "amq.fanout" is the same as a broadcast operation (i.e. the data is
13250           forwarded to all queues on the fanout exchange independent of the
13251           routing_key); and "amq.topic" is similar to "amq.direct", but
13252           allows for more complex pattern matching (refer to the RabbitMQ
13253           documentation).
13254
13255       routing_key
13256           Sets the routing key. The default value is "amqp". The routing key
13257           is used on the "amq.direct" and "amq.topic" exchanges to decide
13258           whether packets are written to the queue of a subscriber.
13259
13260       pkt_size
13261           Maximum size of each packet sent/received to the broker. Default is
13262           131072.  Minimum is 4096 and max is any large value (representable
13263           by an int). When receiving packets, this sets an internal buffer
13264           size in FFmpeg. It should be equal to or greater than the size of
13265           the published packets to the broker. Otherwise the received message
13266           may be truncated causing decoding errors.
13267
13268       connection_timeout
13269           The timeout in seconds during the initial connection to the broker.
13270           The default value is rw_timeout, or 5 seconds if rw_timeout is not
13271           set.
13272
13273       delivery_mode mode
13274           Sets the delivery mode of each message sent to broker.  The
13275           following values are accepted:
13276
13277           persistent
13278               Delivery mode set to "persistent" (2). This is the default
13279               value.  Messages may be written to the broker's disk depending
13280               on its setup.
13281
13282           non-persistent
13283               Delivery mode set to "non-persistent" (1).  Messages will stay
13284               in broker's memory unless the broker is under memory pressure.
13285
13286   async
13287       Asynchronous data filling wrapper for input stream.
13288
13289       Fill data in a background thread, to decouple I/O operation from demux
13290       thread.
13291
13292               async:<URL>
13293               async:http://host/resource
13294               async:cache:http://host/resource
13295
13296   bluray
13297       Read BluRay playlist.
13298
13299       The accepted options are:
13300
13301       angle
13302           BluRay angle
13303
13304       chapter
13305           Start chapter (1...N)
13306
13307       playlist
13308           Playlist to read (BDMV/PLAYLIST/?????.mpls)
13309
13310       Examples:
13311
13312       Read longest playlist from BluRay mounted to /mnt/bluray:
13313
13314               bluray:/mnt/bluray
13315
13316       Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start
13317       from chapter 2:
13318
13319               -playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray
13320
13321   cache
13322       Caching wrapper for input stream.
13323
13324       Cache the input stream to temporary file. It brings seeking capability
13325       to live streams.
13326
13327       The accepted options are:
13328
13329       read_ahead_limit
13330           Amount in bytes that may be read ahead when seeking isn't
13331           supported. Range is -1 to INT_MAX.  -1 for unlimited. Default is
13332           65536.
13333
13334       URL Syntax is
13335
13336               cache:<URL>
13337
13338   concat
13339       Physical concatenation protocol.
13340
13341       Read and seek from many resources in sequence as if they were a unique
13342       resource.
13343
13344       A URL accepted by this protocol has the syntax:
13345
13346               concat:<URL1>|<URL2>|...|<URLN>
13347
13348       where URL1, URL2, ..., URLN are the urls of the resource to be
13349       concatenated, each one possibly specifying a distinct protocol.
13350
13351       For example to read a sequence of files split1.mpeg, split2.mpeg,
13352       split3.mpeg with ffplay use the command:
13353
13354               ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
13355
13356       Note that you may need to escape the character "|" which is special for
13357       many shells.
13358
13359   concatf
13360       Physical concatenation protocol using a line break delimited list of
13361       resources.
13362
13363       Read and seek from many resources in sequence as if they were a unique
13364       resource.
13365
13366       A URL accepted by this protocol has the syntax:
13367
13368               concatf:<URL>
13369
13370       where URL is the url containing a line break delimited list of
13371       resources to be concatenated, each one possibly specifying a distinct
13372       protocol. Special characters must be escaped with backslash or single
13373       quotes. See the "Quoting and escaping" section in the ffmpeg-utils(1)
13374       manual.
13375
13376       For example to read a sequence of files split1.mpeg, split2.mpeg,
13377       split3.mpeg listed in separate lines within a file split.txt with
13378       ffplay use the command:
13379
13380               ffplay concatf:split.txt
13381
13382       Where split.txt contains the lines:
13383
13384               split1.mpeg
13385               split2.mpeg
13386               split3.mpeg
13387
13388   crypto
13389       AES-encrypted stream reading protocol.
13390
13391       The accepted options are:
13392
13393       key Set the AES decryption key binary block from given hexadecimal
13394           representation.
13395
13396       iv  Set the AES decryption initialization vector binary block from
13397           given hexadecimal representation.
13398
13399       Accepted URL formats:
13400
13401               crypto:<URL>
13402               crypto+<URL>
13403
13404   data
13405       Data in-line in the URI. See
13406       <http://en.wikipedia.org/wiki/Data_URI_scheme>.
13407
13408       For example, to convert a GIF file given inline with ffmpeg:
13409
13410               ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
13411
13412   file
13413       File access protocol.
13414
13415       Read from or write to a file.
13416
13417       A file URL can have the form:
13418
13419               file:<filename>
13420
13421       where filename is the path of the file to read.
13422
13423       An URL that does not have a protocol prefix will be assumed to be a
13424       file URL. Depending on the build, an URL that looks like a Windows path
13425       with the drive letter at the beginning will also be assumed to be a
13426       file URL (usually not the case in builds for unix-like systems).
13427
13428       For example to read from a file input.mpeg with ffmpeg use the command:
13429
13430               ffmpeg -i file:input.mpeg output.mpeg
13431
13432       This protocol accepts the following options:
13433
13434       truncate
13435           Truncate existing files on write, if set to 1. A value of 0
13436           prevents truncating. Default value is 1.
13437
13438       blocksize
13439           Set I/O operation maximum block size, in bytes. Default value is
13440           "INT_MAX", which results in not limiting the requested block size.
13441           Setting this value reasonably low improves user termination request
13442           reaction time, which is valuable for files on slow medium.
13443
13444       follow
13445           If set to 1, the protocol will retry reading at the end of the
13446           file, allowing reading files that still are being written. In order
13447           for this to terminate, you either need to use the rw_timeout
13448           option, or use the interrupt callback (for API users).
13449
13450       seekable
13451           Controls if seekability is advertised on the file. 0 means non-
13452           seekable, -1 means auto (seekable for normal files, non-seekable
13453           for named pipes).
13454
13455           Many demuxers handle seekable and non-seekable resources
13456           differently, overriding this might speed up opening certain files
13457           at the cost of losing some features (e.g. accurate seeking).
13458
13459   ftp
13460       FTP (File Transfer Protocol).
13461
13462       Read from or write to remote resources using FTP protocol.
13463
13464       Following syntax is required.
13465
13466               ftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
13467
13468       This protocol accepts the following options.
13469
13470       timeout
13471           Set timeout in microseconds of socket I/O operations used by the
13472           underlying low level operation. By default it is set to -1, which
13473           means that the timeout is not specified.
13474
13475       ftp-user
13476           Set a user to be used for authenticating to the FTP server. This is
13477           overridden by the user in the FTP URL.
13478
13479       ftp-password
13480           Set a password to be used for authenticating to the FTP server.
13481           This is overridden by the password in the FTP URL, or by ftp-
13482           anonymous-password if no user is set.
13483
13484       ftp-anonymous-password
13485           Password used when login as anonymous user. Typically an e-mail
13486           address should be used.
13487
13488       ftp-write-seekable
13489           Control seekability of connection during encoding. If set to 1 the
13490           resource is supposed to be seekable, if set to 0 it is assumed not
13491           to be seekable. Default value is 0.
13492
13493       NOTE: Protocol can be used as output, but it is recommended to not do
13494       it, unless special care is taken (tests, customized server
13495       configuration etc.). Different FTP servers behave in different way
13496       during seek operation. ff* tools may produce incomplete content due to
13497       server limitations.
13498
13499   gopher
13500       Gopher protocol.
13501
13502   gophers
13503       Gophers protocol.
13504
13505       The Gopher protocol with TLS encapsulation.
13506
13507   hls
13508       Read Apple HTTP Live Streaming compliant segmented stream as a uniform
13509       one. The M3U8 playlists describing the segments can be remote HTTP
13510       resources or local files, accessed using the standard file protocol.
13511       The nested protocol is declared by specifying "+proto" after the hls
13512       URI scheme name, where proto is either "file" or "http".
13513
13514               hls+http://host/path/to/remote/resource.m3u8
13515               hls+file://path/to/local/resource.m3u8
13516
13517       Using this protocol is discouraged - the hls demuxer should work just
13518       as well (if not, please report the issues) and is more complete.  To
13519       use the hls demuxer instead, simply use the direct URLs to the m3u8
13520       files.
13521
13522   http
13523       HTTP (Hyper Text Transfer Protocol).
13524
13525       This protocol accepts the following options:
13526
13527       seekable
13528           Control seekability of connection. If set to 1 the resource is
13529           supposed to be seekable, if set to 0 it is assumed not to be
13530           seekable, if set to -1 it will try to autodetect if it is seekable.
13531           Default value is -1.
13532
13533       chunked_post
13534           If set to 1 use chunked Transfer-Encoding for posts, default is 1.
13535
13536       content_type
13537           Set a specific content type for the POST messages or for listen
13538           mode.
13539
13540       http_proxy
13541           set HTTP proxy to tunnel through e.g. http://example.com:1234
13542
13543       headers
13544           Set custom HTTP headers, can override built in default headers. The
13545           value must be a string encoding the headers.
13546
13547       multiple_requests
13548           Use persistent connections if set to 1, default is 0.
13549
13550       post_data
13551           Set custom HTTP post data.
13552
13553       referer
13554           Set the Referer header. Include 'Referer: URL' header in HTTP
13555           request.
13556
13557       user_agent
13558           Override the User-Agent header. If not specified the protocol will
13559           use a string describing the libavformat build. ("Lavf/<version>")
13560
13561       reconnect_at_eof
13562           If set then eof is treated like an error and causes reconnection,
13563           this is useful for live / endless streams.
13564
13565       reconnect_streamed
13566           If set then even streamed/non seekable streams will be reconnected
13567           on errors.
13568
13569       reconnect_on_network_error
13570           Reconnect automatically in case of TCP/TLS errors during connect.
13571
13572       reconnect_on_http_error
13573           A comma separated list of HTTP status codes to reconnect on. The
13574           list can include specific status codes (e.g. '503') or the strings
13575           '4xx' / '5xx'.
13576
13577       reconnect_delay_max
13578           Sets the maximum delay in seconds after which to give up
13579           reconnecting
13580
13581       mime_type
13582           Export the MIME type.
13583
13584       http_version
13585           Exports the HTTP response version number. Usually "1.0" or "1.1".
13586
13587       icy If set to 1 request ICY (SHOUTcast) metadata from the server. If
13588           the server supports this, the metadata has to be retrieved by the
13589           application by reading the icy_metadata_headers and
13590           icy_metadata_packet options.  The default is 1.
13591
13592       icy_metadata_headers
13593           If the server supports ICY metadata, this contains the ICY-specific
13594           HTTP reply headers, separated by newline characters.
13595
13596       icy_metadata_packet
13597           If the server supports ICY metadata, and icy was set to 1, this
13598           contains the last non-empty metadata packet sent by the server. It
13599           should be polled in regular intervals by applications interested in
13600           mid-stream metadata updates.
13601
13602       cookies
13603           Set the cookies to be sent in future requests. The format of each
13604           cookie is the same as the value of a Set-Cookie HTTP response
13605           field. Multiple cookies can be delimited by a newline character.
13606
13607       offset
13608           Set initial byte offset.
13609
13610       end_offset
13611           Try to limit the request to bytes preceding this offset.
13612
13613       method
13614           When used as a client option it sets the HTTP method for the
13615           request.
13616
13617           When used as a server option it sets the HTTP method that is going
13618           to be expected from the client(s).  If the expected and the
13619           received HTTP method do not match the client will be given a Bad
13620           Request response.  When unset the HTTP method is not checked for
13621           now. This will be replaced by autodetection in the future.
13622
13623       listen
13624           If set to 1 enables experimental HTTP server. This can be used to
13625           send data when used as an output option, or read data from a client
13626           with HTTP POST when used as an input option.  If set to 2 enables
13627           experimental multi-client HTTP server. This is not yet implemented
13628           in ffmpeg.c and thus must not be used as a command line option.
13629
13630                   # Server side (sending):
13631                   ffmpeg -i somefile.ogg -c copy -listen 1 -f ogg http://<server>:<port>
13632
13633                   # Client side (receiving):
13634                   ffmpeg -i http://<server>:<port> -c copy somefile.ogg
13635
13636                   # Client can also be done with wget:
13637                   wget http://<server>:<port> -O somefile.ogg
13638
13639                   # Server side (receiving):
13640                   ffmpeg -listen 1 -i http://<server>:<port> -c copy somefile.ogg
13641
13642                   # Client side (sending):
13643                   ffmpeg -i somefile.ogg -chunked_post 0 -c copy -f ogg http://<server>:<port>
13644
13645                   # Client can also be done with wget:
13646                   wget --post-file=somefile.ogg http://<server>:<port>
13647
13648       send_expect_100
13649           Send an Expect: 100-continue header for POST. If set to 1 it will
13650           send, if set to 0 it won't, if set to -1 it will try to send if it
13651           is applicable. Default value is -1.
13652
13653       auth_type
13654           Set HTTP authentication type. No option for Digest, since this
13655           method requires getting nonce parameters from the server first and
13656           can't be used straight away like Basic.
13657
13658           none
13659               Choose the HTTP authentication type automatically. This is the
13660               default.
13661
13662           basic
13663               Choose the HTTP basic authentication.
13664
13665               Basic authentication sends a Base64-encoded string that
13666               contains a user name and password for the client. Base64 is not
13667               a form of encryption and should be considered the same as
13668               sending the user name and password in clear text (Base64 is a
13669               reversible encoding).  If a resource needs to be protected,
13670               strongly consider using an authentication scheme other than
13671               basic authentication. HTTPS/TLS should be used with basic
13672               authentication.  Without these additional security
13673               enhancements, basic authentication should not be used to
13674               protect sensitive or valuable information.
13675
13676       HTTP Cookies
13677
13678       Some HTTP requests will be denied unless cookie values are passed in
13679       with the request. The cookies option allows these cookies to be
13680       specified. At the very least, each cookie must specify a value along
13681       with a path and domain.  HTTP requests that match both the domain and
13682       path will automatically include the cookie value in the HTTP Cookie
13683       header field. Multiple cookies can be delimited by a newline.
13684
13685       The required syntax to play a stream specifying a cookie is:
13686
13687               ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
13688
13689   Icecast
13690       Icecast protocol (stream to Icecast servers)
13691
13692       This protocol accepts the following options:
13693
13694       ice_genre
13695           Set the stream genre.
13696
13697       ice_name
13698           Set the stream name.
13699
13700       ice_description
13701           Set the stream description.
13702
13703       ice_url
13704           Set the stream website URL.
13705
13706       ice_public
13707           Set if the stream should be public.  The default is 0 (not public).
13708
13709       user_agent
13710           Override the User-Agent header. If not specified a string of the
13711           form "Lavf/<version>" will be used.
13712
13713       password
13714           Set the Icecast mountpoint password.
13715
13716       content_type
13717           Set the stream content type. This must be set if it is different
13718           from audio/mpeg.
13719
13720       legacy_icecast
13721           This enables support for Icecast versions < 2.4.0, that do not
13722           support the HTTP PUT method but the SOURCE method.
13723
13724       tls Establish a TLS (HTTPS) connection to Icecast.
13725
13726               icecast://[<username>[:<password>]@]<server>:<port>/<mountpoint>
13727
13728   mmst
13729       MMS (Microsoft Media Server) protocol over TCP.
13730
13731   mmsh
13732       MMS (Microsoft Media Server) protocol over HTTP.
13733
13734       The required syntax is:
13735
13736               mmsh://<server>[:<port>][/<app>][/<playpath>]
13737
13738   md5
13739       MD5 output protocol.
13740
13741       Computes the MD5 hash of the data to be written, and on close writes
13742       this to the designated output or stdout if none is specified. It can be
13743       used to test muxers without writing an actual file.
13744
13745       Some examples follow.
13746
13747               # Write the MD5 hash of the encoded AVI file to the file output.avi.md5.
13748               ffmpeg -i input.flv -f avi -y md5:output.avi.md5
13749
13750               # Write the MD5 hash of the encoded AVI file to stdout.
13751               ffmpeg -i input.flv -f avi -y md5:
13752
13753       Note that some formats (typically MOV) require the output protocol to
13754       be seekable, so they will fail with the MD5 output protocol.
13755
13756   pipe
13757       UNIX pipe access protocol.
13758
13759       Read and write from UNIX pipes.
13760
13761       The accepted syntax is:
13762
13763               pipe:[<number>]
13764
13765       number is the number corresponding to the file descriptor of the pipe
13766       (e.g. 0 for stdin, 1 for stdout, 2 for stderr).  If number is not
13767       specified, by default the stdout file descriptor will be used for
13768       writing, stdin for reading.
13769
13770       For example to read from stdin with ffmpeg:
13771
13772               cat test.wav | ffmpeg -i pipe:0
13773               # ...this is the same as...
13774               cat test.wav | ffmpeg -i pipe:
13775
13776       For writing to stdout with ffmpeg:
13777
13778               ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi
13779               # ...this is the same as...
13780               ffmpeg -i test.wav -f avi pipe: | cat > test.avi
13781
13782       This protocol accepts the following options:
13783
13784       blocksize
13785           Set I/O operation maximum block size, in bytes. Default value is
13786           "INT_MAX", which results in not limiting the requested block size.
13787           Setting this value reasonably low improves user termination request
13788           reaction time, which is valuable if data transmission is slow.
13789
13790       Note that some formats (typically MOV), require the output protocol to
13791       be seekable, so they will fail with the pipe output protocol.
13792
13793   prompeg
13794       Pro-MPEG Code of Practice #3 Release 2 FEC protocol.
13795
13796       The Pro-MPEG CoP#3 FEC is a 2D parity-check forward error correction
13797       mechanism for MPEG-2 Transport Streams sent over RTP.
13798
13799       This protocol must be used in conjunction with the "rtp_mpegts" muxer
13800       and the "rtp" protocol.
13801
13802       The required syntax is:
13803
13804               -f rtp_mpegts -fec prompeg=<option>=<val>... rtp://<hostname>:<port>
13805
13806       The destination UDP ports are "port + 2" for the column FEC stream and
13807       "port + 4" for the row FEC stream.
13808
13809       This protocol accepts the following options:
13810
13811       l=n The number of columns (4-20, LxD <= 100)
13812
13813       d=n The number of rows (4-20, LxD <= 100)
13814
13815       Example usage:
13816
13817               -f rtp_mpegts -fec prompeg=l=8:d=4 rtp://<hostname>:<port>
13818
13819   rist
13820       Reliable Internet Streaming Transport protocol
13821
13822       The accepted options are:
13823
13824       rist_profile
13825           Supported values:
13826
13827           simple
13828           main
13829               This one is default.
13830
13831           advanced
13832       buffer_size
13833           Set internal RIST buffer size in milliseconds for retransmission of
13834           data.  Default value is 0 which means the librist default (1 sec).
13835           Maximum value is 30 seconds.
13836
13837       pkt_size
13838           Set maximum packet size for sending data. 1316 by default.
13839
13840       log_level
13841           Set loglevel for RIST logging messages. You only need to set this
13842           if you explicitly want to enable debug level messages or packet
13843           loss simulation, otherwise the regular loglevel is respected.
13844
13845       secret
13846           Set override of encryption secret, by default is unset.
13847
13848       encryption
13849           Set encryption type, by default is disabled.  Acceptable values are
13850           128 and 256.
13851
13852   rtmp
13853       Real-Time Messaging Protocol.
13854
13855       The Real-Time Messaging Protocol (RTMP) is used for streaming
13856       multimedia content across a TCP/IP network.
13857
13858       The required syntax is:
13859
13860               rtmp://[<username>:<password>@]<server>[:<port>][/<app>][/<instance>][/<playpath>]
13861
13862       The accepted parameters are:
13863
13864       username
13865           An optional username (mostly for publishing).
13866
13867       password
13868           An optional password (mostly for publishing).
13869
13870       server
13871           The address of the RTMP server.
13872
13873       port
13874           The number of the TCP port to use (by default is 1935).
13875
13876       app It is the name of the application to access. It usually corresponds
13877           to the path where the application is installed on the RTMP server
13878           (e.g. /ondemand/, /flash/live/, etc.). You can override the value
13879           parsed from the URI through the "rtmp_app" option, too.
13880
13881       playpath
13882           It is the path or name of the resource to play with reference to
13883           the application specified in app, may be prefixed by "mp4:". You
13884           can override the value parsed from the URI through the
13885           "rtmp_playpath" option, too.
13886
13887       listen
13888           Act as a server, listening for an incoming connection.
13889
13890       timeout
13891           Maximum time to wait for the incoming connection. Implies listen.
13892
13893       Additionally, the following parameters can be set via command line
13894       options (or in code via "AVOption"s):
13895
13896       rtmp_app
13897           Name of application to connect on the RTMP server. This option
13898           overrides the parameter specified in the URI.
13899
13900       rtmp_buffer
13901           Set the client buffer time in milliseconds. The default is 3000.
13902
13903       rtmp_conn
13904           Extra arbitrary AMF connection parameters, parsed from a string,
13905           e.g. like "B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0".  Each
13906           value is prefixed by a single character denoting the type, B for
13907           Boolean, N for number, S for string, O for object, or Z for null,
13908           followed by a colon. For Booleans the data must be either 0 or 1
13909           for FALSE or TRUE, respectively.  Likewise for Objects the data
13910           must be 0 or 1 to end or begin an object, respectively. Data items
13911           in subobjects may be named, by prefixing the type with 'N' and
13912           specifying the name before the value (i.e. "NB:myFlag:1"). This
13913           option may be used multiple times to construct arbitrary AMF
13914           sequences.
13915
13916       rtmp_flashver
13917           Version of the Flash plugin used to run the SWF player. The default
13918           is LNX 9,0,124,2. (When publishing, the default is FMLE/3.0
13919           (compatible; <libavformat version>).)
13920
13921       rtmp_flush_interval
13922           Number of packets flushed in the same request (RTMPT only). The
13923           default is 10.
13924
13925       rtmp_live
13926           Specify that the media is a live stream. No resuming or seeking in
13927           live streams is possible. The default value is "any", which means
13928           the subscriber first tries to play the live stream specified in the
13929           playpath. If a live stream of that name is not found, it plays the
13930           recorded stream. The other possible values are "live" and
13931           "recorded".
13932
13933       rtmp_pageurl
13934           URL of the web page in which the media was embedded. By default no
13935           value will be sent.
13936
13937       rtmp_playpath
13938           Stream identifier to play or to publish. This option overrides the
13939           parameter specified in the URI.
13940
13941       rtmp_subscribe
13942           Name of live stream to subscribe to. By default no value will be
13943           sent.  It is only sent if the option is specified or if rtmp_live
13944           is set to live.
13945
13946       rtmp_swfhash
13947           SHA256 hash of the decompressed SWF file (32 bytes).
13948
13949       rtmp_swfsize
13950           Size of the decompressed SWF file, required for SWFVerification.
13951
13952       rtmp_swfurl
13953           URL of the SWF player for the media. By default no value will be
13954           sent.
13955
13956       rtmp_swfverify
13957           URL to player swf file, compute hash/size automatically.
13958
13959       rtmp_tcurl
13960           URL of the target stream. Defaults to proto://host[:port]/app.
13961
13962       tcp_nodelay=1|0
13963           Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
13964
13965           Remark: Writing to the socket is currently not optimized to
13966           minimize system calls and reduces the efficiency / effect of
13967           TCP_NODELAY.
13968
13969       For example to read with ffplay a multimedia resource named "sample"
13970       from the application "vod" from an RTMP server "myserver":
13971
13972               ffplay rtmp://myserver/vod/sample
13973
13974       To publish to a password protected server, passing the playpath and app
13975       names separately:
13976
13977               ffmpeg -re -i <input> -f flv -rtmp_playpath some/long/path -rtmp_app long/app/name rtmp://username:password@myserver/
13978
13979   rtmpe
13980       Encrypted Real-Time Messaging Protocol.
13981
13982       The Encrypted Real-Time Messaging Protocol (RTMPE) is used for
13983       streaming multimedia content within standard cryptographic primitives,
13984       consisting of Diffie-Hellman key exchange and HMACSHA256, generating a
13985       pair of RC4 keys.
13986
13987   rtmps
13988       Real-Time Messaging Protocol over a secure SSL connection.
13989
13990       The Real-Time Messaging Protocol (RTMPS) is used for streaming
13991       multimedia content across an encrypted connection.
13992
13993   rtmpt
13994       Real-Time Messaging Protocol tunneled through HTTP.
13995
13996       The Real-Time Messaging Protocol tunneled through HTTP (RTMPT) is used
13997       for streaming multimedia content within HTTP requests to traverse
13998       firewalls.
13999
14000   rtmpte
14001       Encrypted Real-Time Messaging Protocol tunneled through HTTP.
14002
14003       The Encrypted Real-Time Messaging Protocol tunneled through HTTP
14004       (RTMPTE) is used for streaming multimedia content within HTTP requests
14005       to traverse firewalls.
14006
14007   rtmpts
14008       Real-Time Messaging Protocol tunneled through HTTPS.
14009
14010       The Real-Time Messaging Protocol tunneled through HTTPS (RTMPTS) is
14011       used for streaming multimedia content within HTTPS requests to traverse
14012       firewalls.
14013
14014   libsmbclient
14015       libsmbclient permits one to manipulate CIFS/SMB network resources.
14016
14017       Following syntax is required.
14018
14019               smb://[[domain:]user[:password@]]server[/share[/path[/file]]]
14020
14021       This protocol accepts the following options.
14022
14023       timeout
14024           Set timeout in milliseconds of socket I/O operations used by the
14025           underlying low level operation. By default it is set to -1, which
14026           means that the timeout is not specified.
14027
14028       truncate
14029           Truncate existing files on write, if set to 1. A value of 0
14030           prevents truncating. Default value is 1.
14031
14032       workgroup
14033           Set the workgroup used for making connections. By default workgroup
14034           is not specified.
14035
14036       For more information see: <http://www.samba.org/>.
14037
14038   libssh
14039       Secure File Transfer Protocol via libssh
14040
14041       Read from or write to remote resources using SFTP protocol.
14042
14043       Following syntax is required.
14044
14045               sftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
14046
14047       This protocol accepts the following options.
14048
14049       timeout
14050           Set timeout of socket I/O operations used by the underlying low
14051           level operation. By default it is set to -1, which means that the
14052           timeout is not specified.
14053
14054       truncate
14055           Truncate existing files on write, if set to 1. A value of 0
14056           prevents truncating. Default value is 1.
14057
14058       private_key
14059           Specify the path of the file containing private key to use during
14060           authorization.  By default libssh searches for keys in the ~/.ssh/
14061           directory.
14062
14063       Example: Play a file stored on remote server.
14064
14065               ffplay sftp://user:password@server_address:22/home/user/resource.mpeg
14066
14067   librtmp rtmp, rtmpe, rtmps, rtmpt, rtmpte
14068       Real-Time Messaging Protocol and its variants supported through
14069       librtmp.
14070
14071       Requires the presence of the librtmp headers and library during
14072       configuration. You need to explicitly configure the build with
14073       "--enable-librtmp". If enabled this will replace the native RTMP
14074       protocol.
14075
14076       This protocol provides most client functions and a few server functions
14077       needed to support RTMP, RTMP tunneled in HTTP (RTMPT), encrypted RTMP
14078       (RTMPE), RTMP over SSL/TLS (RTMPS) and tunneled variants of these
14079       encrypted types (RTMPTE, RTMPTS).
14080
14081       The required syntax is:
14082
14083               <rtmp_proto>://<server>[:<port>][/<app>][/<playpath>] <options>
14084
14085       where rtmp_proto is one of the strings "rtmp", "rtmpt", "rtmpe",
14086       "rtmps", "rtmpte", "rtmpts" corresponding to each RTMP variant, and
14087       server, port, app and playpath have the same meaning as specified for
14088       the RTMP native protocol.  options contains a list of space-separated
14089       options of the form key=val.
14090
14091       See the librtmp manual page (man 3 librtmp) for more information.
14092
14093       For example, to stream a file in real-time to an RTMP server using
14094       ffmpeg:
14095
14096               ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
14097
14098       To play the same stream using ffplay:
14099
14100               ffplay "rtmp://myserver/live/mystream live=1"
14101
14102   rtp
14103       Real-time Transport Protocol.
14104
14105       The required syntax for an RTP URL is:
14106       rtp://hostname[:port][?option=val...]
14107
14108       port specifies the RTP port to use.
14109
14110       The following URL options are supported:
14111
14112       ttl=n
14113           Set the TTL (Time-To-Live) value (for multicast only).
14114
14115       rtcpport=n
14116           Set the remote RTCP port to n.
14117
14118       localrtpport=n
14119           Set the local RTP port to n.
14120
14121       localrtcpport=n'
14122           Set the local RTCP port to n.
14123
14124       pkt_size=n
14125           Set max packet size (in bytes) to n.
14126
14127       buffer_size=size
14128           Set the maximum UDP socket buffer size in bytes.
14129
14130       connect=0|1
14131           Do a "connect()" on the UDP socket (if set to 1) or not (if set to
14132           0).
14133
14134       sources=ip[,ip]
14135           List allowed source IP addresses.
14136
14137       block=ip[,ip]
14138           List disallowed (blocked) source IP addresses.
14139
14140       write_to_source=0|1
14141           Send packets to the source address of the latest received packet
14142           (if set to 1) or to a default remote address (if set to 0).
14143
14144       localport=n
14145           Set the local RTP port to n.
14146
14147       localaddr=addr
14148           Local IP address of a network interface used for sending packets or
14149           joining multicast groups.
14150
14151       timeout=n
14152           Set timeout (in microseconds) of socket I/O operations to n.
14153
14154           This is a deprecated option. Instead, localrtpport should be used.
14155
14156       Important notes:
14157
14158       1.  If rtcpport is not set the RTCP port will be set to the RTP port
14159           value plus 1.
14160
14161       2.  If localrtpport (the local RTP port) is not set any available port
14162           will be used for the local RTP and RTCP ports.
14163
14164       3.  If localrtcpport (the local RTCP port) is not set it will be set to
14165           the local RTP port value plus 1.
14166
14167   rtsp
14168       Real-Time Streaming Protocol.
14169
14170       RTSP is not technically a protocol handler in libavformat, it is a
14171       demuxer and muxer. The demuxer supports both normal RTSP (with data
14172       transferred over RTP; this is used by e.g. Apple and Microsoft) and
14173       Real-RTSP (with data transferred over RDT).
14174
14175       The muxer can be used to send a stream using RTSP ANNOUNCE to a server
14176       supporting it (currently Darwin Streaming Server and Mischa
14177       Spiegelmock's <https://github.com/revmischa/rtsp-server>).
14178
14179       The required syntax for a RTSP url is:
14180
14181               rtsp://<hostname>[:<port>]/<path>
14182
14183       Options can be set on the ffmpeg/ffplay command line, or set in code
14184       via "AVOption"s or in "avformat_open_input".
14185
14186       The following options are supported.
14187
14188       initial_pause
14189           Do not start playing the stream immediately if set to 1. Default
14190           value is 0.
14191
14192       rtsp_transport
14193           Set RTSP transport protocols.
14194
14195           It accepts the following values:
14196
14197           udp Use UDP as lower transport protocol.
14198
14199           tcp Use TCP (interleaving within the RTSP control channel) as lower
14200               transport protocol.
14201
14202           udp_multicast
14203               Use UDP multicast as lower transport protocol.
14204
14205           http
14206               Use HTTP tunneling as lower transport protocol, which is useful
14207               for passing proxies.
14208
14209           Multiple lower transport protocols may be specified, in that case
14210           they are tried one at a time (if the setup of one fails, the next
14211           one is tried).  For the muxer, only the tcp and udp options are
14212           supported.
14213
14214       rtsp_flags
14215           Set RTSP flags.
14216
14217           The following values are accepted:
14218
14219           filter_src
14220               Accept packets only from negotiated peer address and port.
14221
14222           listen
14223               Act as a server, listening for an incoming connection.
14224
14225           prefer_tcp
14226               Try TCP for RTP transport first, if TCP is available as RTSP
14227               RTP transport.
14228
14229           Default value is none.
14230
14231       allowed_media_types
14232           Set media types to accept from the server.
14233
14234           The following flags are accepted:
14235
14236           video
14237           audio
14238           data
14239
14240           By default it accepts all media types.
14241
14242       min_port
14243           Set minimum local UDP port. Default value is 5000.
14244
14245       max_port
14246           Set maximum local UDP port. Default value is 65000.
14247
14248       listen_timeout
14249           Set maximum timeout (in seconds) to establish an initial
14250           connection. Setting listen_timeout > 0 sets rtsp_flags to listen.
14251           Default is -1 which means an infinite timeout when listen mode is
14252           set.
14253
14254       reorder_queue_size
14255           Set number of packets to buffer for handling of reordered packets.
14256
14257       timeout
14258           Set socket TCP I/O timeout in microseconds.
14259
14260       user_agent
14261           Override User-Agent header. If not specified, it defaults to the
14262           libavformat identifier string.
14263
14264       When receiving data over UDP, the demuxer tries to reorder received
14265       packets (since they may arrive out of order, or packets may get lost
14266       totally). This can be disabled by setting the maximum demuxing delay to
14267       zero (via the "max_delay" field of AVFormatContext).
14268
14269       When watching multi-bitrate Real-RTSP streams with ffplay, the streams
14270       to display can be chosen with "-vst" n and "-ast" n for video and audio
14271       respectively, and can be switched on the fly by pressing "v" and "a".
14272
14273       Examples
14274
14275       The following examples all make use of the ffplay and ffmpeg tools.
14276
14277       •   Watch a stream over UDP, with a max reordering delay of 0.5
14278           seconds:
14279
14280                   ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
14281
14282       •   Watch a stream tunneled over HTTP:
14283
14284                   ffplay -rtsp_transport http rtsp://server/video.mp4
14285
14286       •   Send a stream in realtime to a RTSP server, for others to watch:
14287
14288                   ffmpeg -re -i <input> -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
14289
14290       •   Receive a stream in realtime:
14291
14292                   ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp <output>
14293
14294   sap
14295       Session Announcement Protocol (RFC 2974). This is not technically a
14296       protocol handler in libavformat, it is a muxer and demuxer.  It is used
14297       for signalling of RTP streams, by announcing the SDP for the streams
14298       regularly on a separate port.
14299
14300       Muxer
14301
14302       The syntax for a SAP url given to the muxer is:
14303
14304               sap://<destination>[:<port>][?<options>]
14305
14306       The RTP packets are sent to destination on port port, or to port 5004
14307       if no port is specified.  options is a "&"-separated list. The
14308       following options are supported:
14309
14310       announce_addr=address
14311           Specify the destination IP address for sending the announcements
14312           to.  If omitted, the announcements are sent to the commonly used
14313           SAP announcement multicast address 224.2.127.254 (sap.mcast.net),
14314           or ff0e::2:7ffe if destination is an IPv6 address.
14315
14316       announce_port=port
14317           Specify the port to send the announcements on, defaults to 9875 if
14318           not specified.
14319
14320       ttl=ttl
14321           Specify the time to live value for the announcements and RTP
14322           packets, defaults to 255.
14323
14324       same_port=0|1
14325           If set to 1, send all RTP streams on the same port pair. If zero
14326           (the default), all streams are sent on unique ports, with each
14327           stream on a port 2 numbers higher than the previous.  VLC/Live555
14328           requires this to be set to 1, to be able to receive the stream.
14329           The RTP stack in libavformat for receiving requires all streams to
14330           be sent on unique ports.
14331
14332       Example command lines follow.
14333
14334       To broadcast a stream on the local subnet, for watching in VLC:
14335
14336               ffmpeg -re -i <input> -f sap sap://224.0.0.255?same_port=1
14337
14338       Similarly, for watching in ffplay:
14339
14340               ffmpeg -re -i <input> -f sap sap://224.0.0.255
14341
14342       And for watching in ffplay, over IPv6:
14343
14344               ffmpeg -re -i <input> -f sap sap://[ff0e::1:2:3:4]
14345
14346       Demuxer
14347
14348       The syntax for a SAP url given to the demuxer is:
14349
14350               sap://[<address>][:<port>]
14351
14352       address is the multicast address to listen for announcements on, if
14353       omitted, the default 224.2.127.254 (sap.mcast.net) is used. port is the
14354       port that is listened on, 9875 if omitted.
14355
14356       The demuxers listens for announcements on the given address and port.
14357       Once an announcement is received, it tries to receive that particular
14358       stream.
14359
14360       Example command lines follow.
14361
14362       To play back the first stream announced on the normal SAP multicast
14363       address:
14364
14365               ffplay sap://
14366
14367       To play back the first stream announced on one the default IPv6 SAP
14368       multicast address:
14369
14370               ffplay sap://[ff0e::2:7ffe]
14371
14372   sctp
14373       Stream Control Transmission Protocol.
14374
14375       The accepted URL syntax is:
14376
14377               sctp://<host>:<port>[?<options>]
14378
14379       The protocol accepts the following options:
14380
14381       listen
14382           If set to any value, listen for an incoming connection. Outgoing
14383           connection is done by default.
14384
14385       max_streams
14386           Set the maximum number of streams. By default no limit is set.
14387
14388   srt
14389       Haivision Secure Reliable Transport Protocol via libsrt.
14390
14391       The supported syntax for a SRT URL is:
14392
14393               srt://<hostname>:<port>[?<options>]
14394
14395       options contains a list of &-separated options of the form key=val.
14396
14397       or
14398
14399               <options> srt://<hostname>:<port>
14400
14401       options contains a list of '-key val' options.
14402
14403       This protocol accepts the following options.
14404
14405       connect_timeout=milliseconds
14406           Connection timeout; SRT cannot connect for RTT > 1500 msec (2
14407           handshake exchanges) with the default connect timeout of 3 seconds.
14408           This option applies to the caller and rendezvous connection modes.
14409           The connect timeout is 10 times the value set for the rendezvous
14410           mode (which can be used as a workaround for this connection problem
14411           with earlier versions).
14412
14413       ffs=bytes
14414           Flight Flag Size (Window Size), in bytes. FFS is actually an
14415           internal parameter and you should set it to not less than
14416           recv_buffer_size and mss. The default value is relatively large,
14417           therefore unless you set a very large receiver buffer, you do not
14418           need to change this option. Default value is 25600.
14419
14420       inputbw=bytes/seconds
14421           Sender nominal input rate, in bytes per seconds. Used along with
14422           oheadbw, when maxbw is set to relative (0), to calculate maximum
14423           sending rate when recovery packets are sent along with the main
14424           media stream: inputbw * (100 + oheadbw) / 100 if inputbw is not set
14425           while maxbw is set to relative (0), the actual input rate is
14426           evaluated inside the library. Default value is 0.
14427
14428       iptos=tos
14429           IP Type of Service. Applies to sender only. Default value is 0xB8.
14430
14431       ipttl=ttl
14432           IP Time To Live. Applies to sender only. Default value is 64.
14433
14434       latency=microseconds
14435           Timestamp-based Packet Delivery Delay.  Used to absorb bursts of
14436           missed packet retransmissions.  This flag sets both rcvlatency and
14437           peerlatency to the same value. Note that prior to version 1.3.0
14438           this is the only flag to set the latency, however this is
14439           effectively equivalent to setting peerlatency, when side is sender
14440           and rcvlatency when side is receiver, and the bidirectional stream
14441           sending is not supported.
14442
14443       listen_timeout=microseconds
14444           Set socket listen timeout.
14445
14446       maxbw=bytes/seconds
14447           Maximum sending bandwidth, in bytes per seconds.  -1 infinite
14448           (CSRTCC limit is 30mbps) 0 relative to input rate (see inputbw) >0
14449           absolute limit value Default value is 0 (relative)
14450
14451       mode=caller|listener|rendezvous
14452           Connection mode.  caller opens client connection.  listener starts
14453           server to listen for incoming connections.  rendezvous use Rendez-
14454           Vous connection mode.  Default value is caller.
14455
14456       mss=bytes
14457           Maximum Segment Size, in bytes. Used for buffer allocation and rate
14458           calculation using a packet counter assuming fully filled packets.
14459           The smallest MSS between the peers is used. This is 1500 by default
14460           in the overall internet.  This is the maximum size of the UDP
14461           packet and can be only decreased, unless you have some unusual
14462           dedicated network settings. Default value is 1500.
14463
14464       nakreport=1|0
14465           If set to 1, Receiver will send `UMSG_LOSSREPORT` messages
14466           periodically until a lost packet is retransmitted or intentionally
14467           dropped. Default value is 1.
14468
14469       oheadbw=percents
14470           Recovery bandwidth overhead above input rate, in percents.  See
14471           inputbw. Default value is 25%.
14472
14473       passphrase=string
14474           HaiCrypt Encryption/Decryption Passphrase string, length from 10 to
14475           79 characters. The passphrase is the shared secret between the
14476           sender and the receiver. It is used to generate the Key Encrypting
14477           Key using PBKDF2 (Password-Based Key Derivation Function). It is
14478           used only if pbkeylen is non-zero. It is used on the receiver only
14479           if the received data is encrypted.  The configured passphrase
14480           cannot be recovered (write-only).
14481
14482       enforced_encryption=1|0
14483           If true, both connection parties must have the same password set
14484           (including empty, that is, with no encryption). If the password
14485           doesn't match or only one side is unencrypted, the connection is
14486           rejected. Default is true.
14487
14488       kmrefreshrate=packets
14489           The number of packets to be transmitted after which the encryption
14490           key is switched to a new key. Default is -1.  -1 means auto
14491           (0x1000000 in srt library). The range for this option is integers
14492           in the 0 - "INT_MAX".
14493
14494       kmpreannounce=packets
14495           The interval between when a new encryption key is sent and when
14496           switchover occurs. This value also applies to the subsequent
14497           interval between when switchover occurs and when the old encryption
14498           key is decommissioned. Default is -1.  -1 means auto (0x1000 in srt
14499           library). The range for this option is integers in the 0 -
14500           "INT_MAX".
14501
14502       snddropdelay=microseconds
14503           The sender's extra delay before dropping packets. This delay is
14504           added to the default drop delay time interval value.
14505
14506           Special value -1: Do not drop packets on the sender at all.
14507
14508       payload_size=bytes
14509           Sets the maximum declared size of a packet transferred during the
14510           single call to the sending function in Live mode. Use 0 if this
14511           value isn't used (which is default in file mode).  Default is -1
14512           (automatic), which typically means MPEG-TS; if you are going to use
14513           SRT to send any different kind of payload, such as, for example,
14514           wrapping a live stream in very small frames, then you can use a
14515           bigger maximum frame size, though not greater than 1456 bytes.
14516
14517       pkt_size=bytes
14518           Alias for payload_size.
14519
14520       peerlatency=microseconds
14521           The latency value (as described in rcvlatency) that is set by the
14522           sender side as a minimum value for the receiver.
14523
14524       pbkeylen=bytes
14525           Sender encryption key length, in bytes.  Only can be set to 0, 16,
14526           24 and 32.  Enable sender encryption if not 0.  Not required on
14527           receiver (set to 0), key size obtained from sender in HaiCrypt
14528           handshake.  Default value is 0.
14529
14530       rcvlatency=microseconds
14531           The time that should elapse since the moment when the packet was
14532           sent and the moment when it's delivered to the receiver application
14533           in the receiving function.  This time should be a buffer time large
14534           enough to cover the time spent for sending, unexpectedly extended
14535           RTT time, and the time needed to retransmit the lost UDP packet.
14536           The effective latency value will be the maximum of this options'
14537           value and the value of peerlatency set by the peer side. Before
14538           version 1.3.0 this option is only available as latency.
14539
14540       recv_buffer_size=bytes
14541           Set UDP receive buffer size, expressed in bytes.
14542
14543       send_buffer_size=bytes
14544           Set UDP send buffer size, expressed in bytes.
14545
14546       timeout=microseconds
14547           Set raise error timeouts for read, write and connect operations.
14548           Note that the SRT library has internal timeouts which can be
14549           controlled separately, the value set here is only a cap on those.
14550
14551       tlpktdrop=1|0
14552           Too-late Packet Drop. When enabled on receiver, it skips missing
14553           packets that have not been delivered in time and delivers the
14554           following packets to the application when their time-to-play has
14555           come. It also sends a fake ACK to the sender. When enabled on
14556           sender and enabled on the receiving peer, the sender drops the
14557           older packets that have no chance of being delivered in time. It
14558           was automatically enabled in the sender if the receiver supports
14559           it.
14560
14561       sndbuf=bytes
14562           Set send buffer size, expressed in bytes.
14563
14564       rcvbuf=bytes
14565           Set receive buffer size, expressed in bytes.
14566
14567           Receive buffer must not be greater than ffs.
14568
14569       lossmaxttl=packets
14570           The value up to which the Reorder Tolerance may grow. When Reorder
14571           Tolerance is > 0, then packet loss report is delayed until that
14572           number of packets come in. Reorder Tolerance increases every time a
14573           "belated" packet has come, but it wasn't due to retransmission
14574           (that is, when UDP packets tend to come out of order), with the
14575           difference between the latest sequence and this packet's sequence,
14576           and not more than the value of this option. By default it's 0,
14577           which means that this mechanism is turned off, and the loss report
14578           is always sent immediately upon experiencing a "gap" in sequences.
14579
14580       minversion
14581           The minimum SRT version that is required from the peer. A
14582           connection to a peer that does not satisfy the minimum version
14583           requirement will be rejected.
14584
14585           The version format in hex is 0xXXYYZZ for x.y.z in human readable
14586           form.
14587
14588       streamid=string
14589           A string limited to 512 characters that can be set on the socket
14590           prior to connecting. This stream ID will be able to be retrieved by
14591           the listener side from the socket that is returned from srt_accept
14592           and was connected by a socket with that set stream ID. SRT does not
14593           enforce any special interpretation of the contents of this string.
14594           This option doesnXt make sense in Rendezvous connection; the result
14595           might be that simply one side will override the value from the
14596           other side and itXs the matter of luck which one would win
14597
14598       srt_streamid=string
14599           Alias for streamid to avoid conflict with ffmpeg command line
14600           option.
14601
14602       smoother=live|file
14603           The type of Smoother used for the transmission for that socket,
14604           which is responsible for the transmission and congestion control.
14605           The Smoother type must be exactly the same on both connecting
14606           parties, otherwise the connection is rejected.
14607
14608       messageapi=1|0
14609           When set, this socket uses the Message API, otherwise it uses
14610           Buffer API. Note that in live mode (see transtype) thereXs only
14611           message API available. In File mode you can chose to use one of two
14612           modes:
14613
14614           Stream API (default, when this option is false). In this mode you
14615           may send as many data as you wish with one sending instruction, or
14616           even use dedicated functions that read directly from a file. The
14617           internal facility will take care of any speed and congestion
14618           control. When receiving, you can also receive as many data as
14619           desired, the data not extracted will be waiting for the next call.
14620           There is no boundary between data portions in the Stream mode.
14621
14622           Message API. In this mode your single sending instruction passes
14623           exactly one piece of data that has boundaries (a message). Contrary
14624           to Live mode, this message may span across multiple UDP packets and
14625           the only size limitation is that it shall fit as a whole in the
14626           sending buffer. The receiver shall use as large buffer as necessary
14627           to receive the message, otherwise the message will not be given up.
14628           When the message is not complete (not all packets received or there
14629           was a packet loss) it will not be given up.
14630
14631       transtype=live|file
14632           Sets the transmission type for the socket, in particular, setting
14633           this option sets multiple other parameters to their default values
14634           as required for a particular transmission type.
14635
14636           live: Set options as for live transmission. In this mode, you
14637           should send by one sending instruction only so many data that fit
14638           in one UDP packet, and limited to the value defined first in
14639           payload_size (1316 is default in this mode). There is no speed
14640           control in this mode, only the bandwidth control, if configured, in
14641           order to not exceed the bandwidth with the overhead transmission
14642           (retransmitted and control packets).
14643
14644           file: Set options as for non-live transmission. See messageapi for
14645           further explanations
14646
14647       linger=seconds
14648           The number of seconds that the socket waits for unsent data when
14649           closing.  Default is -1. -1 means auto (off with 0 seconds in live
14650           mode, on with 180 seconds in file mode). The range for this option
14651           is integers in the 0 - "INT_MAX".
14652
14653       tsbpd=1|0
14654           When true, use Timestamp-based Packet Delivery mode. The default
14655           behavior depends on the transmission type: enabled in live mode,
14656           disabled in file mode.
14657
14658       For more information see: <https://github.com/Haivision/srt>.
14659
14660   srtp
14661       Secure Real-time Transport Protocol.
14662
14663       The accepted options are:
14664
14665       srtp_in_suite
14666       srtp_out_suite
14667           Select input and output encoding suites.
14668
14669           Supported values:
14670
14671           AES_CM_128_HMAC_SHA1_80
14672           SRTP_AES128_CM_HMAC_SHA1_80
14673           AES_CM_128_HMAC_SHA1_32
14674           SRTP_AES128_CM_HMAC_SHA1_32
14675       srtp_in_params
14676       srtp_out_params
14677           Set input and output encoding parameters, which are expressed by a
14678           base64-encoded representation of a binary block. The first 16 bytes
14679           of this binary block are used as master key, the following 14 bytes
14680           are used as master salt.
14681
14682   subfile
14683       Virtually extract a segment of a file or another stream.  The
14684       underlying stream must be seekable.
14685
14686       Accepted options:
14687
14688       start
14689           Start offset of the extracted segment, in bytes.
14690
14691       end End offset of the extracted segment, in bytes.  If set to 0,
14692           extract till end of file.
14693
14694       Examples:
14695
14696       Extract a chapter from a DVD VOB file (start and end sectors obtained
14697       externally and multiplied by 2048):
14698
14699               subfile,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
14700
14701       Play an AVI file directly from a TAR archive:
14702
14703               subfile,,start,183241728,end,366490624,,:archive.tar
14704
14705       Play a MPEG-TS file from start offset till end:
14706
14707               subfile,,start,32815239,end,0,,:video.ts
14708
14709   tee
14710       Writes the output to multiple protocols. The individual outputs are
14711       separated by |
14712
14713               tee:file://path/to/local/this.avi|file://path/to/local/that.avi
14714
14715   tcp
14716       Transmission Control Protocol.
14717
14718       The required syntax for a TCP url is:
14719
14720               tcp://<hostname>:<port>[?<options>]
14721
14722       options contains a list of &-separated options of the form key=val.
14723
14724       The list of supported options follows.
14725
14726       listen=2|1|0
14727           Listen for an incoming connection. 0 disables listen, 1 enables
14728           listen in single client mode, 2 enables listen in multi-client
14729           mode. Default value is 0.
14730
14731       timeout=microseconds
14732           Set raise error timeout, expressed in microseconds.
14733
14734           This option is only relevant in read mode: if no data arrived in
14735           more than this time interval, raise error.
14736
14737       listen_timeout=milliseconds
14738           Set listen timeout, expressed in milliseconds.
14739
14740       recv_buffer_size=bytes
14741           Set receive buffer size, expressed bytes.
14742
14743       send_buffer_size=bytes
14744           Set send buffer size, expressed bytes.
14745
14746       tcp_nodelay=1|0
14747           Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
14748
14749           Remark: Writing to the socket is currently not optimized to
14750           minimize system calls and reduces the efficiency / effect of
14751           TCP_NODELAY.
14752
14753       tcp_mss=bytes
14754           Set maximum segment size for outgoing TCP packets, expressed in
14755           bytes.
14756
14757       The following example shows how to setup a listening TCP connection
14758       with ffmpeg, which is then accessed with ffplay:
14759
14760               ffmpeg -i <input> -f <format> tcp://<hostname>:<port>?listen
14761               ffplay tcp://<hostname>:<port>
14762
14763   tls
14764       Transport Layer Security (TLS) / Secure Sockets Layer (SSL)
14765
14766       The required syntax for a TLS/SSL url is:
14767
14768               tls://<hostname>:<port>[?<options>]
14769
14770       The following parameters can be set via command line options (or in
14771       code via "AVOption"s):
14772
14773       ca_file, cafile=filename
14774           A file containing certificate authority (CA) root certificates to
14775           treat as trusted. If the linked TLS library contains a default this
14776           might not need to be specified for verification to work, but not
14777           all libraries and setups have defaults built in.  The file must be
14778           in OpenSSL PEM format.
14779
14780       tls_verify=1|0
14781           If enabled, try to verify the peer that we are communicating with.
14782           Note, if using OpenSSL, this currently only makes sure that the
14783           peer certificate is signed by one of the root certificates in the
14784           CA database, but it does not validate that the certificate actually
14785           matches the host name we are trying to connect to. (With other
14786           backends, the host name is validated as well.)
14787
14788           This is disabled by default since it requires a CA database to be
14789           provided by the caller in many cases.
14790
14791       cert_file, cert=filename
14792           A file containing a certificate to use in the handshake with the
14793           peer.  (When operating as server, in listen mode, this is more
14794           often required by the peer, while client certificates only are
14795           mandated in certain setups.)
14796
14797       key_file, key=filename
14798           A file containing the private key for the certificate.
14799
14800       listen=1|0
14801           If enabled, listen for connections on the provided port, and assume
14802           the server role in the handshake instead of the client role.
14803
14804       http_proxy
14805           The HTTP proxy to tunnel through, e.g. "http://example.com:1234".
14806           The proxy must support the CONNECT method.
14807
14808       Example command lines:
14809
14810       To create a TLS/SSL server that serves an input stream.
14811
14812               ffmpeg -i <input> -f <format> tls://<hostname>:<port>?listen&cert=<server.crt>&key=<server.key>
14813
14814       To play back a stream from the TLS/SSL server using ffplay:
14815
14816               ffplay tls://<hostname>:<port>
14817
14818   udp
14819       User Datagram Protocol.
14820
14821       The required syntax for an UDP URL is:
14822
14823               udp://<hostname>:<port>[?<options>]
14824
14825       options contains a list of &-separated options of the form key=val.
14826
14827       In case threading is enabled on the system, a circular buffer is used
14828       to store the incoming data, which allows one to reduce loss of data due
14829       to UDP socket buffer overruns. The fifo_size and overrun_nonfatal
14830       options are related to this buffer.
14831
14832       The list of supported options follows.
14833
14834       buffer_size=size
14835           Set the UDP maximum socket buffer size in bytes. This is used to
14836           set either the receive or send buffer size, depending on what the
14837           socket is used for.  Default is 32 KB for output, 384 KB for input.
14838           See also fifo_size.
14839
14840       bitrate=bitrate
14841           If set to nonzero, the output will have the specified constant
14842           bitrate if the input has enough packets to sustain it.
14843
14844       burst_bits=bits
14845           When using bitrate this specifies the maximum number of bits in
14846           packet bursts.
14847
14848       localport=port
14849           Override the local UDP port to bind with.
14850
14851       localaddr=addr
14852           Local IP address of a network interface used for sending packets or
14853           joining multicast groups.
14854
14855       pkt_size=size
14856           Set the size in bytes of UDP packets.
14857
14858       reuse=1|0
14859           Explicitly allow or disallow reusing UDP sockets.
14860
14861       ttl=ttl
14862           Set the time to live value (for multicast only).
14863
14864       connect=1|0
14865           Initialize the UDP socket with "connect()". In this case, the
14866           destination address can't be changed with ff_udp_set_remote_url
14867           later.  If the destination address isn't known at the start, this
14868           option can be specified in ff_udp_set_remote_url, too.  This allows
14869           finding out the source address for the packets with getsockname,
14870           and makes writes return with AVERROR(ECONNREFUSED) if "destination
14871           unreachable" is received.  For receiving, this gives the benefit of
14872           only receiving packets from the specified peer address/port.
14873
14874       sources=address[,address]
14875           Only receive packets sent from the specified addresses. In case of
14876           multicast, also subscribe to multicast traffic coming from these
14877           addresses only.
14878
14879       block=address[,address]
14880           Ignore packets sent from the specified addresses. In case of
14881           multicast, also exclude the source addresses in the multicast
14882           subscription.
14883
14884       fifo_size=units
14885           Set the UDP receiving circular buffer size, expressed as a number
14886           of packets with size of 188 bytes. If not specified defaults to
14887           7*4096.
14888
14889       overrun_nonfatal=1|0
14890           Survive in case of UDP receiving circular buffer overrun. Default
14891           value is 0.
14892
14893       timeout=microseconds
14894           Set raise error timeout, expressed in microseconds.
14895
14896           This option is only relevant in read mode: if no data arrived in
14897           more than this time interval, raise error.
14898
14899       broadcast=1|0
14900           Explicitly allow or disallow UDP broadcasting.
14901
14902           Note that broadcasting may not work properly on networks having a
14903           broadcast storm protection.
14904
14905       Examples
14906
14907       •   Use ffmpeg to stream over UDP to a remote endpoint:
14908
14909                   ffmpeg -i <input> -f <format> udp://<hostname>:<port>
14910
14911       •   Use ffmpeg to stream in mpegts format over UDP using 188 sized UDP
14912           packets, using a large input buffer:
14913
14914                   ffmpeg -i <input> -f mpegts udp://<hostname>:<port>?pkt_size=188&buffer_size=65535
14915
14916       •   Use ffmpeg to receive over UDP from a remote endpoint:
14917
14918                   ffmpeg -i udp://[<multicast-address>]:<port> ...
14919
14920   unix
14921       Unix local socket
14922
14923       The required syntax for a Unix socket URL is:
14924
14925               unix://<filepath>
14926
14927       The following parameters can be set via command line options (or in
14928       code via "AVOption"s):
14929
14930       timeout
14931           Timeout in ms.
14932
14933       listen
14934           Create the Unix socket in listening mode.
14935
14936   zmq
14937       ZeroMQ asynchronous messaging using the libzmq library.
14938
14939       This library supports unicast streaming to multiple clients without
14940       relying on an external server.
14941
14942       The required syntax for streaming or connecting to a stream is:
14943
14944               zmq:tcp://ip-address:port
14945
14946       Example: Create a localhost stream on port 5555:
14947
14948               ffmpeg -re -i input -f mpegts zmq:tcp://127.0.0.1:5555
14949
14950       Multiple clients may connect to the stream using:
14951
14952               ffplay zmq:tcp://127.0.0.1:5555
14953
14954       Streaming to multiple clients is implemented using a ZeroMQ Pub-Sub
14955       pattern.  The server side binds to a port and publishes data. Clients
14956       connect to the server (via IP address/port) and subscribe to the
14957       stream. The order in which the server and client start generally does
14958       not matter.
14959
14960       ffmpeg must be compiled with the --enable-libzmq option to support this
14961       protocol.
14962
14963       Options can be set on the ffmpeg/ffplay command line. The following
14964       options are supported:
14965
14966       pkt_size
14967           Forces the maximum packet size for sending/receiving data. The
14968           default value is 131,072 bytes. On the server side, this sets the
14969           maximum size of sent packets via ZeroMQ. On the clients, it sets an
14970           internal buffer size for receiving packets. Note that pkt_size on
14971           the clients should be equal to or greater than pkt_size on the
14972           server. Otherwise the received message may be truncated causing
14973           decoding errors.
14974

DEVICE OPTIONS

14976       The libavdevice library provides the same interface as libavformat.
14977       Namely, an input device is considered like a demuxer, and an output
14978       device like a muxer, and the interface and generic device options are
14979       the same provided by libavformat (see the ffmpeg-formats manual).
14980
14981       In addition each input or output device may support so-called private
14982       options, which are specific for that component.
14983
14984       Options may be set by specifying -option value in the FFmpeg tools, or
14985       by setting the value explicitly in the device "AVFormatContext" options
14986       or using the libavutil/opt.h API for programmatic use.
14987

INPUT DEVICES

14989       Input devices are configured elements in FFmpeg which enable accessing
14990       the data coming from a multimedia device attached to your system.
14991
14992       When you configure your FFmpeg build, all the supported input devices
14993       are enabled by default. You can list all available ones using the
14994       configure option "--list-indevs".
14995
14996       You can disable all the input devices using the configure option
14997       "--disable-indevs", and selectively enable an input device using the
14998       option "--enable-indev=INDEV", or you can disable a particular input
14999       device using the option "--disable-indev=INDEV".
15000
15001       The option "-devices" of the ff* tools will display the list of
15002       supported input devices.
15003
15004       A description of the currently available input devices follows.
15005
15006   alsa
15007       ALSA (Advanced Linux Sound Architecture) input device.
15008
15009       To enable this input device during configuration you need libasound
15010       installed on your system.
15011
15012       This device allows capturing from an ALSA device. The name of the
15013       device to capture has to be an ALSA card identifier.
15014
15015       An ALSA identifier has the syntax:
15016
15017               hw:<CARD>[,<DEV>[,<SUBDEV>]]
15018
15019       where the DEV and SUBDEV components are optional.
15020
15021       The three arguments (in order: CARD,DEV,SUBDEV) specify card number or
15022       identifier, device number and subdevice number (-1 means any).
15023
15024       To see the list of cards currently recognized by your system check the
15025       files /proc/asound/cards and /proc/asound/devices.
15026
15027       For example to capture with ffmpeg from an ALSA device with card id 0,
15028       you may run the command:
15029
15030               ffmpeg -f alsa -i hw:0 alsaout.wav
15031
15032       For more information see:
15033       <http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html>
15034
15035       Options
15036
15037       sample_rate
15038           Set the sample rate in Hz. Default is 48000.
15039
15040       channels
15041           Set the number of channels. Default is 2.
15042
15043   android_camera
15044       Android camera input device.
15045
15046       This input devices uses the Android Camera2 NDK API which is available
15047       on devices with API level 24+. The availability of android_camera is
15048       autodetected during configuration.
15049
15050       This device allows capturing from all cameras on an Android device,
15051       which are integrated into the Camera2 NDK API.
15052
15053       The available cameras are enumerated internally and can be selected
15054       with the camera_index parameter. The input file string is discarded.
15055
15056       Generally the back facing camera has index 0 while the front facing
15057       camera has index 1.
15058
15059       Options
15060
15061       video_size
15062           Set the video size given as a string such as 640x480 or hd720.
15063           Falls back to the first available configuration reported by Android
15064           if requested video size is not available or by default.
15065
15066       framerate
15067           Set the video framerate.  Falls back to the first available
15068           configuration reported by Android if requested framerate is not
15069           available or by default (-1).
15070
15071       camera_index
15072           Set the index of the camera to use. Default is 0.
15073
15074       input_queue_size
15075           Set the maximum number of frames to buffer. Default is 5.
15076
15077   avfoundation
15078       AVFoundation input device.
15079
15080       AVFoundation is the currently recommended framework by Apple for
15081       streamgrabbing on OSX >= 10.7 as well as on iOS.
15082
15083       The input filename has to be given in the following syntax:
15084
15085               -i "[[VIDEO]:[AUDIO]]"
15086
15087       The first entry selects the video input while the latter selects the
15088       audio input.  The stream has to be specified by the device name or the
15089       device index as shown by the device list.  Alternatively, the video
15090       and/or audio input device can be chosen by index using the
15091
15092           B<-video_device_index E<lt>INDEXE<gt>>
15093
15094       and/or
15095
15096           B<-audio_device_index E<lt>INDEXE<gt>>
15097
15098       , overriding any device name or index given in the input filename.
15099
15100       All available devices can be enumerated by using -list_devices true,
15101       listing all device names and corresponding indices.
15102
15103       There are two device name aliases:
15104
15105       "default"
15106           Select the AVFoundation default device of the corresponding type.
15107
15108       "none"
15109           Do not record the corresponding media type.  This is equivalent to
15110           specifying an empty device name or index.
15111
15112       Options
15113
15114       AVFoundation supports the following options:
15115
15116       -list_devices <TRUE|FALSE>
15117           If set to true, a list of all available input devices is given
15118           showing all device names and indices.
15119
15120       -video_device_index <INDEX>
15121           Specify the video device by its index. Overrides anything given in
15122           the input filename.
15123
15124       -audio_device_index <INDEX>
15125           Specify the audio device by its index. Overrides anything given in
15126           the input filename.
15127
15128       -pixel_format <FORMAT>
15129           Request the video device to use a specific pixel format.  If the
15130           specified format is not supported, a list of available formats is
15131           given and the first one in this list is used instead. Available
15132           pixel formats are: "monob, rgb555be, rgb555le, rgb565be, rgb565le,
15133           rgb24, bgr24, 0rgb, bgr0, 0bgr, rgb0,
15134            bgr48be, uyvy422, yuva444p, yuva444p16le, yuv444p, yuv422p16,
15135           yuv422p10, yuv444p10,
15136            yuv420p, nv12, yuyv422, gray"
15137
15138       -framerate
15139           Set the grabbing frame rate. Default is "ntsc", corresponding to a
15140           frame rate of "30000/1001".
15141
15142       -video_size
15143           Set the video frame size.
15144
15145       -capture_cursor
15146           Capture the mouse pointer. Default is 0.
15147
15148       -capture_mouse_clicks
15149           Capture the screen mouse clicks. Default is 0.
15150
15151       -capture_raw_data
15152           Capture the raw device data. Default is 0.  Using this option may
15153           result in receiving the underlying data delivered to the
15154           AVFoundation framework. E.g. for muxed devices that sends raw DV
15155           data to the framework (like tape-based camcorders), setting this
15156           option to false results in extracted video frames captured in the
15157           designated pixel format only. Setting this option to true results
15158           in receiving the raw DV stream untouched.
15159
15160       Examples
15161
15162       •   Print the list of AVFoundation supported devices and exit:
15163
15164                   $ ffmpeg -f avfoundation -list_devices true -i ""
15165
15166       •   Record video from video device 0 and audio from audio device 0 into
15167           out.avi:
15168
15169                   $ ffmpeg -f avfoundation -i "0:0" out.avi
15170
15171       •   Record video from video device 2 and audio from audio device 1 into
15172           out.avi:
15173
15174                   $ ffmpeg -f avfoundation -video_device_index 2 -i ":1" out.avi
15175
15176       •   Record video from the system default video device using the pixel
15177           format bgr0 and do not record any audio into out.avi:
15178
15179                   $ ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi
15180
15181       •   Record raw DV data from a suitable input device and write the
15182           output into out.dv:
15183
15184                   $ ffmpeg -f avfoundation -capture_raw_data true -i "zr100:none" out.dv
15185
15186   bktr
15187       BSD video input device.
15188
15189       Options
15190
15191       framerate
15192           Set the frame rate.
15193
15194       video_size
15195           Set the video frame size. Default is "vga".
15196
15197       standard
15198           Available values are:
15199
15200           pal
15201           ntsc
15202           secam
15203           paln
15204           palm
15205           ntscj
15206
15207   decklink
15208       The decklink input device provides capture capabilities for Blackmagic
15209       DeckLink devices.
15210
15211       To enable this input device, you need the Blackmagic DeckLink SDK and
15212       you need to configure with the appropriate "--extra-cflags" and
15213       "--extra-ldflags".  On Windows, you need to run the IDL files through
15214       widl.
15215
15216       DeckLink is very picky about the formats it supports. Pixel format of
15217       the input can be set with raw_format.  Framerate and video size must be
15218       determined for your device with -list_formats 1. Audio sample rate is
15219       always 48 kHz and the number of channels can be 2, 8 or 16. Note that
15220       all audio channels are bundled in one single audio track.
15221
15222       Options
15223
15224       list_devices
15225           If set to true, print a list of devices and exit.  Defaults to
15226           false. This option is deprecated, please use the "-sources" option
15227           of ffmpeg to list the available input devices.
15228
15229       list_formats
15230           If set to true, print a list of supported formats and exit.
15231           Defaults to false.
15232
15233       format_code <FourCC>
15234           This sets the input video format to the format given by the FourCC.
15235           To see the supported values of your device(s) use list_formats.
15236           Note that there is a FourCC 'pal ' that can also be used as pal (3
15237           letters).  Default behavior is autodetection of the input video
15238           format, if the hardware supports it.
15239
15240       raw_format
15241           Set the pixel format of the captured video.  Available values are:
15242
15243           auto
15244               This is the default which means 8-bit YUV 422 or 8-bit ARGB if
15245               format autodetection is used, 8-bit YUV 422 otherwise.
15246
15247           uyvy422
15248               8-bit YUV 422.
15249
15250           yuv422p10
15251               10-bit YUV 422.
15252
15253           argb
15254               8-bit RGB.
15255
15256           bgra
15257               8-bit RGB.
15258
15259           rgb10
15260               10-bit RGB.
15261
15262       teletext_lines
15263           If set to nonzero, an additional teletext stream will be captured
15264           from the vertical ancillary data. Both SD PAL (576i) and HD (1080i
15265           or 1080p) sources are supported. In case of HD sources, OP47
15266           packets are decoded.
15267
15268           This option is a bitmask of the SD PAL VBI lines captured,
15269           specifically lines 6 to 22, and lines 318 to 335. Line 6 is the LSB
15270           in the mask. Selected lines which do not contain teletext
15271           information will be ignored. You can use the special all constant
15272           to select all possible lines, or standard to skip lines 6, 318 and
15273           319, which are not compatible with all receivers.
15274
15275           For SD sources, ffmpeg needs to be compiled with
15276           "--enable-libzvbi". For HD sources, on older (pre-4K) DeckLink card
15277           models you have to capture in 10 bit mode.
15278
15279       channels
15280           Defines number of audio channels to capture. Must be 2, 8 or 16.
15281           Defaults to 2.
15282
15283       duplex_mode
15284           Sets the decklink device duplex/profile mode. Must be unset, half,
15285           full, one_sub_device_full, one_sub_device_half,
15286           two_sub_device_full, four_sub_device_half Defaults to unset.
15287
15288           Note: DeckLink SDK 11.0 have replaced the duplex property by a
15289           profile property.  For the DeckLink Duo 2 and DeckLink Quad 2, a
15290           profile is shared between any 2 sub-devices that utilize the same
15291           connectors. For the DeckLink 8K Pro, a profile is shared between
15292           all 4 sub-devices. So DeckLink 8K Pro support four profiles.
15293
15294           Valid profile modes for DeckLink 8K Pro(with DeckLink SDK >= 11.0):
15295           one_sub_device_full, one_sub_device_half, two_sub_device_full,
15296           four_sub_device_half
15297
15298           Valid profile modes for DeckLink Quad 2 and DeckLink Duo 2: half,
15299           full
15300
15301       timecode_format
15302           Timecode type to include in the frame and video stream metadata.
15303           Must be none, rp188vitc, rp188vitc2, rp188ltc, rp188hfr, rp188any,
15304           vitc, vitc2, or serial.  Defaults to none (not included).
15305
15306           In order to properly support 50/60 fps timecodes, the ordering of
15307           the queried timecode types for rp188any is HFR, VITC1, VITC2 and
15308           LTC for >30 fps content. Note that this is slightly different to
15309           the ordering used by the DeckLink API, which is HFR, VITC1, LTC,
15310           VITC2.
15311
15312       video_input
15313           Sets the video input source. Must be unset, sdi, hdmi, optical_sdi,
15314           component, composite or s_video.  Defaults to unset.
15315
15316       audio_input
15317           Sets the audio input source. Must be unset, embedded, aes_ebu,
15318           analog, analog_xlr, analog_rca or microphone. Defaults to unset.
15319
15320       video_pts
15321           Sets the video packet timestamp source. Must be video, audio,
15322           reference, wallclock or abs_wallclock.  Defaults to video.
15323
15324       audio_pts
15325           Sets the audio packet timestamp source. Must be video, audio,
15326           reference, wallclock or abs_wallclock.  Defaults to audio.
15327
15328       draw_bars
15329           If set to true, color bars are drawn in the event of a signal loss.
15330           Defaults to true.
15331
15332       queue_size
15333           Sets maximum input buffer size in bytes. If the buffering reaches
15334           this value, incoming frames will be dropped.  Defaults to
15335           1073741824.
15336
15337       audio_depth
15338           Sets the audio sample bit depth. Must be 16 or 32.  Defaults to 16.
15339
15340       decklink_copyts
15341           If set to true, timestamps are forwarded as they are without
15342           removing the initial offset.  Defaults to false.
15343
15344       timestamp_align
15345           Capture start time alignment in seconds. If set to nonzero, input
15346           frames are dropped till the system timestamp aligns with configured
15347           value.  Alignment difference of up to one frame duration is
15348           tolerated.  This is useful for maintaining input synchronization
15349           across N different hardware devices deployed for 'N-way'
15350           redundancy. The system time of different hardware devices should be
15351           synchronized with protocols such as NTP or PTP, before using this
15352           option.  Note that this method is not foolproof. In some border
15353           cases input synchronization may not happen due to thread scheduling
15354           jitters in the OS.  Either sync could go wrong by 1 frame or in a
15355           rarer case timestamp_align seconds.  Defaults to 0.
15356
15357       wait_for_tc (bool)
15358           Drop frames till a frame with timecode is received. Sometimes
15359           serial timecode isn't received with the first input frame. If that
15360           happens, the stored stream timecode will be inaccurate. If this
15361           option is set to true, input frames are dropped till a frame with
15362           timecode is received.  Option timecode_format must be specified.
15363           Defaults to false.
15364
15365       enable_klv(bool)
15366           If set to true, extracts KLV data from VANC and outputs KLV
15367           packets.  KLV VANC packets are joined based on MID and PSC fields
15368           and aggregated into one KLV packet.  Defaults to false.
15369
15370       Examples
15371
15372       •   List input devices:
15373
15374                   ffmpeg -sources decklink
15375
15376       •   List supported formats:
15377
15378                   ffmpeg -f decklink -list_formats 1 -i 'Intensity Pro'
15379
15380       •   Capture video clip at 1080i50:
15381
15382                   ffmpeg -format_code Hi50 -f decklink -i 'Intensity Pro' -c:a copy -c:v copy output.avi
15383
15384       •   Capture video clip at 1080i50 10 bit:
15385
15386                   ffmpeg -raw_format yuv422p10 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
15387
15388       •   Capture video clip at 1080i50 with 16 audio channels:
15389
15390                   ffmpeg -channels 16 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
15391
15392   dshow
15393       Windows DirectShow input device.
15394
15395       DirectShow support is enabled when FFmpeg is built with the mingw-w64
15396       project.  Currently only audio and video devices are supported.
15397
15398       Multiple devices may be opened as separate inputs, but they may also be
15399       opened on the same input, which should improve synchronism between
15400       them.
15401
15402       The input name should be in the format:
15403
15404               <TYPE>=<NAME>[:<TYPE>=<NAME>]
15405
15406       where TYPE can be either audio or video, and NAME is the device's name
15407       or alternative name..
15408
15409       Options
15410
15411       If no options are specified, the device's defaults are used.  If the
15412       device does not support the requested options, it will fail to open.
15413
15414       video_size
15415           Set the video size in the captured video.
15416
15417       framerate
15418           Set the frame rate in the captured video.
15419
15420       sample_rate
15421           Set the sample rate (in Hz) of the captured audio.
15422
15423       sample_size
15424           Set the sample size (in bits) of the captured audio.
15425
15426       channels
15427           Set the number of channels in the captured audio.
15428
15429       list_devices
15430           If set to true, print a list of devices and exit.
15431
15432       list_options
15433           If set to true, print a list of selected device's options and exit.
15434
15435       video_device_number
15436           Set video device number for devices with the same name (starts at
15437           0, defaults to 0).
15438
15439       audio_device_number
15440           Set audio device number for devices with the same name (starts at
15441           0, defaults to 0).
15442
15443       pixel_format
15444           Select pixel format to be used by DirectShow. This may only be set
15445           when the video codec is not set or set to rawvideo.
15446
15447       audio_buffer_size
15448           Set audio device buffer size in milliseconds (which can directly
15449           impact latency, depending on the device).  Defaults to using the
15450           audio device's default buffer size (typically some multiple of
15451           500ms).  Setting this value too low can degrade performance.  See
15452           also
15453           <http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx>
15454
15455       video_pin_name
15456           Select video capture pin to use by name or alternative name.
15457
15458       audio_pin_name
15459           Select audio capture pin to use by name or alternative name.
15460
15461       crossbar_video_input_pin_number
15462           Select video input pin number for crossbar device. This will be
15463           routed to the crossbar device's Video Decoder output pin.  Note
15464           that changing this value can affect future invocations (sets a new
15465           default) until system reboot occurs.
15466
15467       crossbar_audio_input_pin_number
15468           Select audio input pin number for crossbar device. This will be
15469           routed to the crossbar device's Audio Decoder output pin.  Note
15470           that changing this value can affect future invocations (sets a new
15471           default) until system reboot occurs.
15472
15473       show_video_device_dialog
15474           If set to true, before capture starts, popup a display dialog to
15475           the end user, allowing them to change video filter properties and
15476           configurations manually.  Note that for crossbar devices, adjusting
15477           values in this dialog may be needed at times to toggle between PAL
15478           (25 fps) and NTSC (29.97) input frame rates, sizes, interlacing,
15479           etc.  Changing these values can enable different scan rates/frame
15480           rates and avoiding green bars at the bottom, flickering scan lines,
15481           etc.  Note that with some devices, changing these properties can
15482           also affect future invocations (sets new defaults) until system
15483           reboot occurs.
15484
15485       show_audio_device_dialog
15486           If set to true, before capture starts, popup a display dialog to
15487           the end user, allowing them to change audio filter properties and
15488           configurations manually.
15489
15490       show_video_crossbar_connection_dialog
15491           If set to true, before capture starts, popup a display dialog to
15492           the end user, allowing them to manually modify crossbar pin
15493           routings, when it opens a video device.
15494
15495       show_audio_crossbar_connection_dialog
15496           If set to true, before capture starts, popup a display dialog to
15497           the end user, allowing them to manually modify crossbar pin
15498           routings, when it opens an audio device.
15499
15500       show_analog_tv_tuner_dialog
15501           If set to true, before capture starts, popup a display dialog to
15502           the end user, allowing them to manually modify TV channels and
15503           frequencies.
15504
15505       show_analog_tv_tuner_audio_dialog
15506           If set to true, before capture starts, popup a display dialog to
15507           the end user, allowing them to manually modify TV audio (like mono
15508           vs. stereo, Language A,B or C).
15509
15510       audio_device_load
15511           Load an audio capture filter device from file instead of searching
15512           it by name. It may load additional parameters too, if the filter
15513           supports the serialization of its properties to.  To use this an
15514           audio capture source has to be specified, but it can be anything
15515           even fake one.
15516
15517       audio_device_save
15518           Save the currently used audio capture filter device and its
15519           parameters (if the filter supports it) to a file.  If a file with
15520           the same name exists it will be overwritten.
15521
15522       video_device_load
15523           Load a video capture filter device from file instead of searching
15524           it by name. It may load additional parameters too, if the filter
15525           supports the serialization of its properties to.  To use this a
15526           video capture source has to be specified, but it can be anything
15527           even fake one.
15528
15529       video_device_save
15530           Save the currently used video capture filter device and its
15531           parameters (if the filter supports it) to a file.  If a file with
15532           the same name exists it will be overwritten.
15533
15534       use_video_device_timestamps
15535           If set to false, the timestamp for video frames will be derived
15536           from the wallclock instead of the timestamp provided by the capture
15537           device. This allows working around devices that provide unreliable
15538           timestamps.
15539
15540       Examples
15541
15542       •   Print the list of DirectShow supported devices and exit:
15543
15544                   $ ffmpeg -list_devices true -f dshow -i dummy
15545
15546       •   Open video device Camera:
15547
15548                   $ ffmpeg -f dshow -i video="Camera"
15549
15550       •   Open second video device with name Camera:
15551
15552                   $ ffmpeg -f dshow -video_device_number 1 -i video="Camera"
15553
15554       •   Open video device Camera and audio device Microphone:
15555
15556                   $ ffmpeg -f dshow -i video="Camera":audio="Microphone"
15557
15558       •   Print the list of supported options in selected device and exit:
15559
15560                   $ ffmpeg -list_options true -f dshow -i video="Camera"
15561
15562       •   Specify pin names to capture by name or alternative name, specify
15563           alternative device name:
15564
15565                   $ 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"
15566
15567       •   Configure a crossbar device, specifying crossbar pins, allow user
15568           to adjust video capture properties at startup:
15569
15570                   $ ffmpeg -f dshow -show_video_device_dialog true -crossbar_video_input_pin_number 0
15571                        -crossbar_audio_input_pin_number 3 -i video="AVerMedia BDA Analog Capture":audio="AVerMedia BDA Analog Capture"
15572
15573   fbdev
15574       Linux framebuffer input device.
15575
15576       The Linux framebuffer is a graphic hardware-independent abstraction
15577       layer to show graphics on a computer monitor, typically on the console.
15578       It is accessed through a file device node, usually /dev/fb0.
15579
15580       For more detailed information read the file
15581       Documentation/fb/framebuffer.txt included in the Linux source tree.
15582
15583       See also <http://linux-fbdev.sourceforge.net/>, and fbset(1).
15584
15585       To record from the framebuffer device /dev/fb0 with ffmpeg:
15586
15587               ffmpeg -f fbdev -framerate 10 -i /dev/fb0 out.avi
15588
15589       You can take a single screenshot image with the command:
15590
15591               ffmpeg -f fbdev -framerate 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg
15592
15593       Options
15594
15595       framerate
15596           Set the frame rate. Default is 25.
15597
15598   gdigrab
15599       Win32 GDI-based screen capture device.
15600
15601       This device allows you to capture a region of the display on Windows.
15602
15603       There are two options for the input filename:
15604
15605               desktop
15606
15607       or
15608
15609               title=<window_title>
15610
15611       The first option will capture the entire desktop, or a fixed region of
15612       the desktop. The second option will instead capture the contents of a
15613       single window, regardless of its position on the screen.
15614
15615       For example, to grab the entire desktop using ffmpeg:
15616
15617               ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg
15618
15619       Grab a 640x480 region at position "10,20":
15620
15621               ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg
15622
15623       Grab the contents of the window named "Calculator"
15624
15625               ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg
15626
15627       Options
15628
15629       draw_mouse
15630           Specify whether to draw the mouse pointer. Use the value 0 to not
15631           draw the pointer. Default value is 1.
15632
15633       framerate
15634           Set the grabbing frame rate. Default value is "ntsc", corresponding
15635           to a frame rate of "30000/1001".
15636
15637       show_region
15638           Show grabbed region on screen.
15639
15640           If show_region is specified with 1, then the grabbing region will
15641           be indicated on screen. With this option, it is easy to know what
15642           is being grabbed if only a portion of the screen is grabbed.
15643
15644           Note that show_region is incompatible with grabbing the contents of
15645           a single window.
15646
15647           For example:
15648
15649                   ffmpeg -f gdigrab -show_region 1 -framerate 6 -video_size cif -offset_x 10 -offset_y 20 -i desktop out.mpg
15650
15651       video_size
15652           Set the video frame size. The default is to capture the full screen
15653           if desktop is selected, or the full window size if
15654           title=window_title is selected.
15655
15656       offset_x
15657           When capturing a region with video_size, set the distance from the
15658           left edge of the screen or desktop.
15659
15660           Note that the offset calculation is from the top left corner of the
15661           primary monitor on Windows. If you have a monitor positioned to the
15662           left of your primary monitor, you will need to use a negative
15663           offset_x value to move the region to that monitor.
15664
15665       offset_y
15666           When capturing a region with video_size, set the distance from the
15667           top edge of the screen or desktop.
15668
15669           Note that the offset calculation is from the top left corner of the
15670           primary monitor on Windows. If you have a monitor positioned above
15671           your primary monitor, you will need to use a negative offset_y
15672           value to move the region to that monitor.
15673
15674   iec61883
15675       FireWire DV/HDV input device using libiec61883.
15676
15677       To enable this input device, you need libiec61883, libraw1394 and
15678       libavc1394 installed on your system. Use the configure option
15679       "--enable-libiec61883" to compile with the device enabled.
15680
15681       The iec61883 capture device supports capturing from a video device
15682       connected via IEEE1394 (FireWire), using libiec61883 and the new Linux
15683       FireWire stack (juju). This is the default DV/HDV input method in Linux
15684       Kernel 2.6.37 and later, since the old FireWire stack was removed.
15685
15686       Specify the FireWire port to be used as input file, or "auto" to choose
15687       the first port connected.
15688
15689       Options
15690
15691       dvtype
15692           Override autodetection of DV/HDV. This should only be used if auto
15693           detection does not work, or if usage of a different device type
15694           should be prohibited. Treating a DV device as HDV (or vice versa)
15695           will not work and result in undefined behavior.  The values auto,
15696           dv and hdv are supported.
15697
15698       dvbuffer
15699           Set maximum size of buffer for incoming data, in frames. For DV,
15700           this is an exact value. For HDV, it is not frame exact, since HDV
15701           does not have a fixed frame size.
15702
15703       dvguid
15704           Select the capture device by specifying its GUID. Capturing will
15705           only be performed from the specified device and fails if no device
15706           with the given GUID is found. This is useful to select the input if
15707           multiple devices are connected at the same time.  Look at
15708           /sys/bus/firewire/devices to find out the GUIDs.
15709
15710       Examples
15711
15712       •   Grab and show the input of a FireWire DV/HDV device.
15713
15714                   ffplay -f iec61883 -i auto
15715
15716       •   Grab and record the input of a FireWire DV/HDV device, using a
15717           packet buffer of 100000 packets if the source is HDV.
15718
15719                   ffmpeg -f iec61883 -i auto -dvbuffer 100000 out.mpg
15720
15721   jack
15722       JACK input device.
15723
15724       To enable this input device during configuration you need libjack
15725       installed on your system.
15726
15727       A JACK input device creates one or more JACK writable clients, one for
15728       each audio channel, with name client_name:input_N, where client_name is
15729       the name provided by the application, and N is a number which
15730       identifies the channel.  Each writable client will send the acquired
15731       data to the FFmpeg input device.
15732
15733       Once you have created one or more JACK readable clients, you need to
15734       connect them to one or more JACK writable clients.
15735
15736       To connect or disconnect JACK clients you can use the jack_connect and
15737       jack_disconnect programs, or do it through a graphical interface, for
15738       example with qjackctl.
15739
15740       To list the JACK clients and their properties you can invoke the
15741       command jack_lsp.
15742
15743       Follows an example which shows how to capture a JACK readable client
15744       with ffmpeg.
15745
15746               # Create a JACK writable client with name "ffmpeg".
15747               $ ffmpeg -f jack -i ffmpeg -y out.wav
15748
15749               # Start the sample jack_metro readable client.
15750               $ jack_metro -b 120 -d 0.2 -f 4000
15751
15752               # List the current JACK clients.
15753               $ jack_lsp -c
15754               system:capture_1
15755               system:capture_2
15756               system:playback_1
15757               system:playback_2
15758               ffmpeg:input_1
15759               metro:120_bpm
15760
15761               # Connect metro to the ffmpeg writable client.
15762               $ jack_connect metro:120_bpm ffmpeg:input_1
15763
15764       For more information read: <http://jackaudio.org/>
15765
15766       Options
15767
15768       channels
15769           Set the number of channels. Default is 2.
15770
15771   kmsgrab
15772       KMS video input device.
15773
15774       Captures the KMS scanout framebuffer associated with a specified CRTC
15775       or plane as a DRM object that can be passed to other hardware
15776       functions.
15777
15778       Requires either DRM master or CAP_SYS_ADMIN to run.
15779
15780       If you don't understand what all of that means, you probably don't want
15781       this.  Look at x11grab instead.
15782
15783       Options
15784
15785       device
15786           DRM device to capture on.  Defaults to /dev/dri/card0.
15787
15788       format
15789           Pixel format of the framebuffer.  This can be autodetected if you
15790           are running Linux 5.7 or later, but needs to be provided for
15791           earlier versions.  Defaults to bgr0, which is the most common
15792           format used by the Linux console and Xorg X server.
15793
15794       format_modifier
15795           Format modifier to signal on output frames.  This is necessary to
15796           import correctly into some APIs.  It can be autodetected if you are
15797           running Linux 5.7 or later, but will need to be provided explicitly
15798           when needed in earlier versions.  See the libdrm documentation for
15799           possible values.
15800
15801       crtc_id
15802           KMS CRTC ID to define the capture source.  The first active plane
15803           on the given CRTC will be used.
15804
15805       plane_id
15806           KMS plane ID to define the capture source.  Defaults to the first
15807           active plane found if neither crtc_id nor plane_id are specified.
15808
15809       framerate
15810           Framerate to capture at.  This is not synchronised to any page
15811           flipping or framebuffer changes - it just defines the interval at
15812           which the framebuffer is sampled.  Sampling faster than the
15813           framebuffer update rate will generate independent frames with the
15814           same content.  Defaults to 30.
15815
15816       Examples
15817
15818       •   Capture from the first active plane, download the result to normal
15819           frames and encode.  This will only work if the framebuffer is both
15820           linear and mappable - if not, the result may be scrambled or fail
15821           to download.
15822
15823                   ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4
15824
15825       •   Capture from CRTC ID 42 at 60fps, map the result to VAAPI, convert
15826           to NV12 and encode as H.264.
15827
15828                   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
15829
15830       •   To capture only part of a plane the output can be cropped - this
15831           can be used to capture a single window, as long as it has a known
15832           absolute position and size.  For example, to capture and encode the
15833           middle quarter of a 1920x1080 plane:
15834
15835                   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
15836
15837   lavfi
15838       Libavfilter input virtual device.
15839
15840       This input device reads data from the open output pads of a libavfilter
15841       filtergraph.
15842
15843       For each filtergraph open output, the input device will create a
15844       corresponding stream which is mapped to the generated output. Currently
15845       only video data is supported. The filtergraph is specified through the
15846       option graph.
15847
15848       Options
15849
15850       graph
15851           Specify the filtergraph to use as input. Each video open output
15852           must be labelled by a unique string of the form "outN", where N is
15853           a number starting from 0 corresponding to the mapped input stream
15854           generated by the device.  The first unlabelled output is
15855           automatically assigned to the "out0" label, but all the others need
15856           to be specified explicitly.
15857
15858           The suffix "+subcc" can be appended to the output label to create
15859           an extra stream with the closed captions packets attached to that
15860           output (experimental; only for EIA-608 / CEA-708 for now).  The
15861           subcc streams are created after all the normal streams, in the
15862           order of the corresponding stream.  For example, if there is
15863           "out19+subcc", "out7+subcc" and up to "out42", the stream #43 is
15864           subcc for stream #7 and stream #44 is subcc for stream #19.
15865
15866           If not specified defaults to the filename specified for the input
15867           device.
15868
15869       graph_file
15870           Set the filename of the filtergraph to be read and sent to the
15871           other filters. Syntax of the filtergraph is the same as the one
15872           specified by the option graph.
15873
15874       dumpgraph
15875           Dump graph to stderr.
15876
15877       Examples
15878
15879       •   Create a color video stream and play it back with ffplay:
15880
15881                   ffplay -f lavfi -graph "color=c=pink [out0]" dummy
15882
15883       •   As the previous example, but use filename for specifying the graph
15884           description, and omit the "out0" label:
15885
15886                   ffplay -f lavfi color=c=pink
15887
15888       •   Create three different video test filtered sources and play them:
15889
15890                   ffplay -f lavfi -graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
15891
15892       •   Read an audio stream from a file using the amovie source and play
15893           it back with ffplay:
15894
15895                   ffplay -f lavfi "amovie=test.wav"
15896
15897       •   Read an audio stream and a video stream and play it back with
15898           ffplay:
15899
15900                   ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
15901
15902       •   Dump decoded frames to images and closed captions to a file
15903           (experimental):
15904
15905                   ffmpeg -f lavfi -i "movie=test.ts[out0+subcc]" -map v frame%08d.png -map s -c copy -f rawvideo subcc.bin
15906
15907   libcdio
15908       Audio-CD input device based on libcdio.
15909
15910       To enable this input device during configuration you need libcdio
15911       installed on your system. It requires the configure option
15912       "--enable-libcdio".
15913
15914       This device allows playing and grabbing from an Audio-CD.
15915
15916       For example to copy with ffmpeg the entire Audio-CD in /dev/sr0, you
15917       may run the command:
15918
15919               ffmpeg -f libcdio -i /dev/sr0 cd.wav
15920
15921       Options
15922
15923       speed
15924           Set drive reading speed. Default value is 0.
15925
15926           The speed is specified CD-ROM speed units. The speed is set through
15927           the libcdio "cdio_cddap_speed_set" function. On many CD-ROM drives,
15928           specifying a value too large will result in using the fastest
15929           speed.
15930
15931       paranoia_mode
15932           Set paranoia recovery mode flags. It accepts one of the following
15933           values:
15934
15935           disable
15936           verify
15937           overlap
15938           neverskip
15939           full
15940
15941           Default value is disable.
15942
15943           For more information about the available recovery modes, consult
15944           the paranoia project documentation.
15945
15946   libdc1394
15947       IIDC1394 input device, based on libdc1394 and libraw1394.
15948
15949       Requires the configure option "--enable-libdc1394".
15950
15951       Options
15952
15953       framerate
15954           Set the frame rate. Default is "ntsc", corresponding to a frame
15955           rate of "30000/1001".
15956
15957       pixel_format
15958           Select the pixel format. Default is "uyvy422".
15959
15960       video_size
15961           Set the video size given as a string such as "640x480" or "hd720".
15962           Default is "qvga".
15963
15964   openal
15965       The OpenAL input device provides audio capture on all systems with a
15966       working OpenAL 1.1 implementation.
15967
15968       To enable this input device during configuration, you need OpenAL
15969       headers and libraries installed on your system, and need to configure
15970       FFmpeg with "--enable-openal".
15971
15972       OpenAL headers and libraries should be provided as part of your OpenAL
15973       implementation, or as an additional download (an SDK). Depending on
15974       your installation you may need to specify additional flags via the
15975       "--extra-cflags" and "--extra-ldflags" for allowing the build system to
15976       locate the OpenAL headers and libraries.
15977
15978       An incomplete list of OpenAL implementations follows:
15979
15980       Creative
15981           The official Windows implementation, providing hardware
15982           acceleration with supported devices and software fallback.  See
15983           <http://openal.org/>.
15984
15985       OpenAL Soft
15986           Portable, open source (LGPL) software implementation. Includes
15987           backends for the most common sound APIs on the Windows, Linux,
15988           Solaris, and BSD operating systems.  See
15989           <http://kcat.strangesoft.net/openal.html>.
15990
15991       Apple
15992           OpenAL is part of Core Audio, the official Mac OS X Audio
15993           interface.  See
15994           <http://developer.apple.com/technologies/mac/audio-and-video.html>
15995
15996       This device allows one to capture from an audio input device handled
15997       through OpenAL.
15998
15999       You need to specify the name of the device to capture in the provided
16000       filename. If the empty string is provided, the device will
16001       automatically select the default device. You can get the list of the
16002       supported devices by using the option list_devices.
16003
16004       Options
16005
16006       channels
16007           Set the number of channels in the captured audio. Only the values 1
16008           (monaural) and 2 (stereo) are currently supported.  Defaults to 2.
16009
16010       sample_size
16011           Set the sample size (in bits) of the captured audio. Only the
16012           values 8 and 16 are currently supported. Defaults to 16.
16013
16014       sample_rate
16015           Set the sample rate (in Hz) of the captured audio.  Defaults to
16016           44.1k.
16017
16018       list_devices
16019           If set to true, print a list of devices and exit.  Defaults to
16020           false.
16021
16022       Examples
16023
16024       Print the list of OpenAL supported devices and exit:
16025
16026               $ ffmpeg -list_devices true -f openal -i dummy out.ogg
16027
16028       Capture from the OpenAL device DR-BT101 via PulseAudio:
16029
16030               $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out.ogg
16031
16032       Capture from the default device (note the empty string '' as filename):
16033
16034               $ ffmpeg -f openal -i '' out.ogg
16035
16036       Capture from two devices simultaneously, writing to two different
16037       files, within the same ffmpeg command:
16038
16039               $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out1.ogg -f openal -i 'ALSA Default' out2.ogg
16040
16041       Note: not all OpenAL implementations support multiple simultaneous
16042       capture - try the latest OpenAL Soft if the above does not work.
16043
16044   oss
16045       Open Sound System input device.
16046
16047       The filename to provide to the input device is the device node
16048       representing the OSS input device, and is usually set to /dev/dsp.
16049
16050       For example to grab from /dev/dsp using ffmpeg use the command:
16051
16052               ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
16053
16054       For more information about OSS see:
16055       <http://manuals.opensound.com/usersguide/dsp.html>
16056
16057       Options
16058
16059       sample_rate
16060           Set the sample rate in Hz. Default is 48000.
16061
16062       channels
16063           Set the number of channels. Default is 2.
16064
16065   pulse
16066       PulseAudio input device.
16067
16068       To enable this output device you need to configure FFmpeg with
16069       "--enable-libpulse".
16070
16071       The filename to provide to the input device is a source device or the
16072       string "default"
16073
16074       To list the PulseAudio source devices and their properties you can
16075       invoke the command pactl list sources.
16076
16077       More information about PulseAudio can be found on
16078       <http://www.pulseaudio.org>.
16079
16080       Options
16081
16082       server
16083           Connect to a specific PulseAudio server, specified by an IP
16084           address.  Default server is used when not provided.
16085
16086       name
16087           Specify the application name PulseAudio will use when showing
16088           active clients, by default it is the "LIBAVFORMAT_IDENT" string.
16089
16090       stream_name
16091           Specify the stream name PulseAudio will use when showing active
16092           streams, by default it is "record".
16093
16094       sample_rate
16095           Specify the samplerate in Hz, by default 48kHz is used.
16096
16097       channels
16098           Specify the channels in use, by default 2 (stereo) is set.
16099
16100       frame_size
16101           Specify the number of bytes per frame, by default it is set to
16102           1024.
16103
16104       fragment_size
16105           Specify the minimal buffering fragment in PulseAudio, it will
16106           affect the audio latency. By default it is unset.
16107
16108       wallclock
16109           Set the initial PTS using the current time. Default is 1.
16110
16111       Examples
16112
16113       Record a stream from default device:
16114
16115               ffmpeg -f pulse -i default /tmp/pulse.wav
16116
16117   sndio
16118       sndio input device.
16119
16120       To enable this input device during configuration you need libsndio
16121       installed on your system.
16122
16123       The filename to provide to the input device is the device node
16124       representing the sndio input device, and is usually set to /dev/audio0.
16125
16126       For example to grab from /dev/audio0 using ffmpeg use the command:
16127
16128               ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
16129
16130       Options
16131
16132       sample_rate
16133           Set the sample rate in Hz. Default is 48000.
16134
16135       channels
16136           Set the number of channels. Default is 2.
16137
16138   video4linux2, v4l2
16139       Video4Linux2 input video device.
16140
16141       "v4l2" can be used as alias for "video4linux2".
16142
16143       If FFmpeg is built with v4l-utils support (by using the
16144       "--enable-libv4l2" configure option), it is possible to use it with the
16145       "-use_libv4l2" input device option.
16146
16147       The name of the device to grab is a file device node, usually Linux
16148       systems tend to automatically create such nodes when the device (e.g.
16149       an USB webcam) is plugged into the system, and has a name of the kind
16150       /dev/videoN, where N is a number associated to the device.
16151
16152       Video4Linux2 devices usually support a limited set of widthxheight
16153       sizes and frame rates. You can check which are supported using
16154       -list_formats all for Video4Linux2 devices.  Some devices, like TV
16155       cards, support one or more standards. It is possible to list all the
16156       supported standards using -list_standards all.
16157
16158       The time base for the timestamps is 1 microsecond. Depending on the
16159       kernel version and configuration, the timestamps may be derived from
16160       the real time clock (origin at the Unix Epoch) or the monotonic clock
16161       (origin usually at boot time, unaffected by NTP or manual changes to
16162       the clock). The -timestamps abs or -ts abs option can be used to force
16163       conversion into the real time clock.
16164
16165       Some usage examples of the video4linux2 device with ffmpeg and ffplay:
16166
16167       •   List supported formats for a video4linux2 device:
16168
16169                   ffplay -f video4linux2 -list_formats all /dev/video0
16170
16171       •   Grab and show the input of a video4linux2 device:
16172
16173                   ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
16174
16175       •   Grab and record the input of a video4linux2 device, leave the frame
16176           rate and size as previously set:
16177
16178                   ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
16179
16180       For more information about Video4Linux, check <http://linuxtv.org/>.
16181
16182       Options
16183
16184       standard
16185           Set the standard. Must be the name of a supported standard. To get
16186           a list of the supported standards, use the list_standards option.
16187
16188       channel
16189           Set the input channel number. Default to -1, which means using the
16190           previously selected channel.
16191
16192       video_size
16193           Set the video frame size. The argument must be a string in the form
16194           WIDTHxHEIGHT or a valid size abbreviation.
16195
16196       pixel_format
16197           Select the pixel format (only valid for raw video input).
16198
16199       input_format
16200           Set the preferred pixel format (for raw video) or a codec name.
16201           This option allows one to select the input format, when several are
16202           available.
16203
16204       framerate
16205           Set the preferred video frame rate.
16206
16207       list_formats
16208           List available formats (supported pixel formats, codecs, and frame
16209           sizes) and exit.
16210
16211           Available values are:
16212
16213           all Show all available (compressed and non-compressed) formats.
16214
16215           raw Show only raw video (non-compressed) formats.
16216
16217           compressed
16218               Show only compressed formats.
16219
16220       list_standards
16221           List supported standards and exit.
16222
16223           Available values are:
16224
16225           all Show all supported standards.
16226
16227       timestamps, ts
16228           Set type of timestamps for grabbed frames.
16229
16230           Available values are:
16231
16232           default
16233               Use timestamps from the kernel.
16234
16235           abs Use absolute timestamps (wall clock).
16236
16237           mono2abs
16238               Force conversion from monotonic to absolute timestamps.
16239
16240           Default value is "default".
16241
16242       use_libv4l2
16243           Use libv4l2 (v4l-utils) conversion functions. Default is 0.
16244
16245   vfwcap
16246       VfW (Video for Windows) capture input device.
16247
16248       The filename passed as input is the capture driver number, ranging from
16249       0 to 9. You may use "list" as filename to print a list of drivers. Any
16250       other filename will be interpreted as device number 0.
16251
16252       Options
16253
16254       video_size
16255           Set the video frame size.
16256
16257       framerate
16258           Set the grabbing frame rate. Default value is "ntsc", corresponding
16259           to a frame rate of "30000/1001".
16260
16261   x11grab
16262       X11 video input device.
16263
16264       To enable this input device during configuration you need libxcb
16265       installed on your system. It will be automatically detected during
16266       configuration.
16267
16268       This device allows one to capture a region of an X11 display.
16269
16270       The filename passed as input has the syntax:
16271
16272               [<hostname>]:<display_number>.<screen_number>[+<x_offset>,<y_offset>]
16273
16274       hostname:display_number.screen_number specifies the X11 display name of
16275       the screen to grab from. hostname can be omitted, and defaults to
16276       "localhost". The environment variable DISPLAY contains the default
16277       display name.
16278
16279       x_offset and y_offset specify the offsets of the grabbed area with
16280       respect to the top-left border of the X11 screen. They default to 0.
16281
16282       Check the X11 documentation (e.g. man X) for more detailed information.
16283
16284       Use the xdpyinfo program for getting basic information about the
16285       properties of your X11 display (e.g. grep for "name" or "dimensions").
16286
16287       For example to grab from :0.0 using ffmpeg:
16288
16289               ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0 out.mpg
16290
16291       Grab at position "10,20":
16292
16293               ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
16294
16295       Options
16296
16297       select_region
16298           Specify whether to select the grabbing area graphically using the
16299           pointer.  A value of 1 prompts the user to select the grabbing area
16300           graphically by clicking and dragging. A single click with no
16301           dragging will select the whole screen. A region with zero width or
16302           height will also select the whole screen. This option overwrites
16303           the video_size, grab_x, and grab_y options. Default value is 0.
16304
16305       draw_mouse
16306           Specify whether to draw the mouse pointer. A value of 0 specifies
16307           not to draw the pointer. Default value is 1.
16308
16309       follow_mouse
16310           Make the grabbed area follow the mouse. The argument can be
16311           "centered" or a number of pixels PIXELS.
16312
16313           When it is specified with "centered", the grabbing region follows
16314           the mouse pointer and keeps the pointer at the center of region;
16315           otherwise, the region follows only when the mouse pointer reaches
16316           within PIXELS (greater than zero) to the edge of region.
16317
16318           For example:
16319
16320                   ffmpeg -f x11grab -follow_mouse centered -framerate 25 -video_size cif -i :0.0 out.mpg
16321
16322           To follow only when the mouse pointer reaches within 100 pixels to
16323           edge:
16324
16325                   ffmpeg -f x11grab -follow_mouse 100 -framerate 25 -video_size cif -i :0.0 out.mpg
16326
16327       framerate
16328           Set the grabbing frame rate. Default value is "ntsc", corresponding
16329           to a frame rate of "30000/1001".
16330
16331       show_region
16332           Show grabbed region on screen.
16333
16334           If show_region is specified with 1, then the grabbing region will
16335           be indicated on screen. With this option, it is easy to know what
16336           is being grabbed if only a portion of the screen is grabbed.
16337
16338       region_border
16339           Set the region border thickness if -show_region 1 is used.  Range
16340           is 1 to 128 and default is 3 (XCB-based x11grab only).
16341
16342           For example:
16343
16344                   ffmpeg -f x11grab -show_region 1 -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
16345
16346           With follow_mouse:
16347
16348                   ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_size cif -i :0.0 out.mpg
16349
16350       window_id
16351           Grab this window, instead of the whole screen. Default value is 0,
16352           which maps to the whole screen (root window).
16353
16354           The id of a window can be found using the xwininfo program,
16355           possibly with options -tree and -root.
16356
16357           If the window is later enlarged, the new area is not recorded.
16358           Video ends when the window is closed, unmapped (i.e., iconified) or
16359           shrunk beyond the video size (which defaults to the initial window
16360           size).
16361
16362           This option disables options follow_mouse and select_region.
16363
16364       video_size
16365           Set the video frame size. Default is the full desktop or window.
16366
16367       grab_x
16368       grab_y
16369           Set the grabbing region coordinates. They are expressed as offset
16370           from the top left corner of the X11 window and correspond to the
16371           x_offset and y_offset parameters in the device name. The default
16372           value for both options is 0.
16373

OUTPUT DEVICES

16375       Output devices are configured elements in FFmpeg that can write
16376       multimedia data to an output device attached to your system.
16377
16378       When you configure your FFmpeg build, all the supported output devices
16379       are enabled by default. You can list all available ones using the
16380       configure option "--list-outdevs".
16381
16382       You can disable all the output devices using the configure option
16383       "--disable-outdevs", and selectively enable an output device using the
16384       option "--enable-outdev=OUTDEV", or you can disable a particular input
16385       device using the option "--disable-outdev=OUTDEV".
16386
16387       The option "-devices" of the ff* tools will display the list of enabled
16388       output devices.
16389
16390       A description of the currently available output devices follows.
16391
16392   alsa
16393       ALSA (Advanced Linux Sound Architecture) output device.
16394
16395       Examples
16396
16397       •   Play a file on default ALSA device:
16398
16399                   ffmpeg -i INPUT -f alsa default
16400
16401       •   Play a file on soundcard 1, audio device 7:
16402
16403                   ffmpeg -i INPUT -f alsa hw:1,7
16404
16405   AudioToolbox
16406       AudioToolbox output device.
16407
16408       Allows native output to CoreAudio devices on OSX.
16409
16410       The output filename can be empty (or "-") to refer to the default
16411       system output device or a number that refers to the device index as
16412       shown using: "-list_devices true".
16413
16414       Alternatively, the audio input device can be chosen by index using the
16415
16416           B<-audio_device_index E<lt>INDEXE<gt>>
16417
16418       , overriding any device name or index given in the input filename.
16419
16420       All available devices can be enumerated by using -list_devices true,
16421       listing all device names, UIDs and corresponding indices.
16422
16423       Options
16424
16425       AudioToolbox supports the following options:
16426
16427       -audio_device_index <INDEX>
16428           Specify the audio device by its index. Overrides anything given in
16429           the output filename.
16430
16431       Examples
16432
16433       •   Print the list of supported devices and output a sine wave to the
16434           default device:
16435
16436                   $ ffmpeg -f lavfi -i sine=r=44100 -f audiotoolbox -list_devices true -
16437
16438       •   Output a sine wave to the device with the index 2, overriding any
16439           output filename:
16440
16441                   $ ffmpeg -f lavfi -i sine=r=44100 -f audiotoolbox -audio_device_index 2 -
16442
16443   caca
16444       CACA output device.
16445
16446       This output device allows one to show a video stream in CACA window.
16447       Only one CACA window is allowed per application, so you can have only
16448       one instance of this output device in an application.
16449
16450       To enable this output device you need to configure FFmpeg with
16451       "--enable-libcaca".  libcaca is a graphics library that outputs text
16452       instead of pixels.
16453
16454       For more information about libcaca, check:
16455       <http://caca.zoy.org/wiki/libcaca>
16456
16457       Options
16458
16459       window_title
16460           Set the CACA window title, if not specified default to the filename
16461           specified for the output device.
16462
16463       window_size
16464           Set the CACA window size, can be a string of the form widthxheight
16465           or a video size abbreviation.  If not specified it defaults to the
16466           size of the input video.
16467
16468       driver
16469           Set display driver.
16470
16471       algorithm
16472           Set dithering algorithm. Dithering is necessary because the picture
16473           being rendered has usually far more colours than the available
16474           palette.  The accepted values are listed with "-list_dither
16475           algorithms".
16476
16477       antialias
16478           Set antialias method. Antialiasing smoothens the rendered image and
16479           avoids the commonly seen staircase effect.  The accepted values are
16480           listed with "-list_dither antialiases".
16481
16482       charset
16483           Set which characters are going to be used when rendering text.  The
16484           accepted values are listed with "-list_dither charsets".
16485
16486       color
16487           Set color to be used when rendering text.  The accepted values are
16488           listed with "-list_dither colors".
16489
16490       list_drivers
16491           If set to true, print a list of available drivers and exit.
16492
16493       list_dither
16494           List available dither options related to the argument.  The
16495           argument must be one of "algorithms", "antialiases", "charsets",
16496           "colors".
16497
16498       Examples
16499
16500       •   The following command shows the ffmpeg output is an CACA window,
16501           forcing its size to 80x25:
16502
16503                   ffmpeg -i INPUT -c:v rawvideo -pix_fmt rgb24 -window_size 80x25 -f caca -
16504
16505       •   Show the list of available drivers and exit:
16506
16507                   ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_drivers true -
16508
16509       •   Show the list of available dither colors and exit:
16510
16511                   ffmpeg -i INPUT -pix_fmt rgb24 -f caca -list_dither colors -
16512
16513   decklink
16514       The decklink output device provides playback capabilities for
16515       Blackmagic DeckLink devices.
16516
16517       To enable this output device, you need the Blackmagic DeckLink SDK and
16518       you need to configure with the appropriate "--extra-cflags" and
16519       "--extra-ldflags".  On Windows, you need to run the IDL files through
16520       widl.
16521
16522       DeckLink is very picky about the formats it supports. Pixel format is
16523       always uyvy422, framerate, field order and video size must be
16524       determined for your device with -list_formats 1. Audio sample rate is
16525       always 48 kHz.
16526
16527       Options
16528
16529       list_devices
16530           If set to true, print a list of devices and exit.  Defaults to
16531           false. This option is deprecated, please use the "-sinks" option of
16532           ffmpeg to list the available output devices.
16533
16534       list_formats
16535           If set to true, print a list of supported formats and exit.
16536           Defaults to false.
16537
16538       preroll
16539           Amount of time to preroll video in seconds.  Defaults to 0.5.
16540
16541       duplex_mode
16542           Sets the decklink device duplex/profile mode. Must be unset, half,
16543           full, one_sub_device_full, one_sub_device_half,
16544           two_sub_device_full, four_sub_device_half Defaults to unset.
16545
16546           Note: DeckLink SDK 11.0 have replaced the duplex property by a
16547           profile property.  For the DeckLink Duo 2 and DeckLink Quad 2, a
16548           profile is shared between any 2 sub-devices that utilize the same
16549           connectors. For the DeckLink 8K Pro, a profile is shared between
16550           all 4 sub-devices. So DeckLink 8K Pro support four profiles.
16551
16552           Valid profile modes for DeckLink 8K Pro(with DeckLink SDK >= 11.0):
16553           one_sub_device_full, one_sub_device_half, two_sub_device_full,
16554           four_sub_device_half
16555
16556           Valid profile modes for DeckLink Quad 2 and DeckLink Duo 2: half,
16557           full
16558
16559       timing_offset
16560           Sets the genlock timing pixel offset on the used output.  Defaults
16561           to unset.
16562
16563       link
16564           Sets the SDI video link configuration on the used output. Must be
16565           unset, single link SDI, dual link SDI or quad link SDI.  Defaults
16566           to unset.
16567
16568       sqd Enable Square Division Quad Split mode for Quad-link SDI output.
16569           Must be unset, true or false.  Defaults to unset.
16570
16571       level_a
16572           Enable SMPTE Level A mode on the used output.  Must be unset, true
16573           or false.  Defaults to unset.
16574
16575       Examples
16576
16577       •   List output devices:
16578
16579                   ffmpeg -sinks decklink
16580
16581       •   List supported formats:
16582
16583                   ffmpeg -i test.avi -f decklink -list_formats 1 'DeckLink Mini Monitor'
16584
16585       •   Play video clip:
16586
16587                   ffmpeg -i test.avi -f decklink -pix_fmt uyvy422 'DeckLink Mini Monitor'
16588
16589       •   Play video clip with non-standard framerate or video size:
16590
16591                   ffmpeg -i test.avi -f decklink -pix_fmt uyvy422 -s 720x486 -r 24000/1001 'DeckLink Mini Monitor'
16592
16593   fbdev
16594       Linux framebuffer output device.
16595
16596       The Linux framebuffer is a graphic hardware-independent abstraction
16597       layer to show graphics on a computer monitor, typically on the console.
16598       It is accessed through a file device node, usually /dev/fb0.
16599
16600       For more detailed information read the file
16601       Documentation/fb/framebuffer.txt included in the Linux source tree.
16602
16603       Options
16604
16605       xoffset
16606       yoffset
16607           Set x/y coordinate of top left corner. Default is 0.
16608
16609       Examples
16610
16611       Play a file on framebuffer device /dev/fb0.  Required pixel format
16612       depends on current framebuffer settings.
16613
16614               ffmpeg -re -i INPUT -c:v rawvideo -pix_fmt bgra -f fbdev /dev/fb0
16615
16616       See also <http://linux-fbdev.sourceforge.net/>, and fbset(1).
16617
16618   opengl
16619       OpenGL output device.
16620
16621       To enable this output device you need to configure FFmpeg with
16622       "--enable-opengl".
16623
16624       This output device allows one to render to OpenGL context.  Context may
16625       be provided by application or default SDL window is created.
16626
16627       When device renders to external context, application must implement
16628       handlers for following messages: "AV_DEV_TO_APP_CREATE_WINDOW_BUFFER" -
16629       create OpenGL context on current thread.
16630       "AV_DEV_TO_APP_PREPARE_WINDOW_BUFFER" - make OpenGL context current.
16631       "AV_DEV_TO_APP_DISPLAY_WINDOW_BUFFER" - swap buffers.
16632       "AV_DEV_TO_APP_DESTROY_WINDOW_BUFFER" - destroy OpenGL context.
16633       Application is also required to inform a device about current
16634       resolution by sending "AV_APP_TO_DEV_WINDOW_SIZE" message.
16635
16636       Options
16637
16638       background
16639           Set background color. Black is a default.
16640
16641       no_window
16642           Disables default SDL window when set to non-zero value.
16643           Application must provide OpenGL context and both "window_size_cb"
16644           and "window_swap_buffers_cb" callbacks when set.
16645
16646       window_title
16647           Set the SDL window title, if not specified default to the filename
16648           specified for the output device.  Ignored when no_window is set.
16649
16650       window_size
16651           Set preferred window size, can be a string of the form widthxheight
16652           or a video size abbreviation.  If not specified it defaults to the
16653           size of the input video, downscaled according to the aspect ratio.
16654           Mostly usable when no_window is not set.
16655
16656       Examples
16657
16658       Play a file on SDL window using OpenGL rendering:
16659
16660               ffmpeg  -i INPUT -f opengl "window title"
16661
16662   oss
16663       OSS (Open Sound System) output device.
16664
16665   pulse
16666       PulseAudio output device.
16667
16668       To enable this output device you need to configure FFmpeg with
16669       "--enable-libpulse".
16670
16671       More information about PulseAudio can be found on
16672       <http://www.pulseaudio.org>
16673
16674       Options
16675
16676       server
16677           Connect to a specific PulseAudio server, specified by an IP
16678           address.  Default server is used when not provided.
16679
16680       name
16681           Specify the application name PulseAudio will use when showing
16682           active clients, by default it is the "LIBAVFORMAT_IDENT" string.
16683
16684       stream_name
16685           Specify the stream name PulseAudio will use when showing active
16686           streams, by default it is set to the specified output name.
16687
16688       device
16689           Specify the device to use. Default device is used when not
16690           provided.  List of output devices can be obtained with command
16691           pactl list sinks.
16692
16693       buffer_size
16694       buffer_duration
16695           Control the size and duration of the PulseAudio buffer. A small
16696           buffer gives more control, but requires more frequent updates.
16697
16698           buffer_size specifies size in bytes while buffer_duration specifies
16699           duration in milliseconds.
16700
16701           When both options are provided then the highest value is used
16702           (duration is recalculated to bytes using stream parameters). If
16703           they are set to 0 (which is default), the device will use the
16704           default PulseAudio duration value. By default PulseAudio set buffer
16705           duration to around 2 seconds.
16706
16707       prebuf
16708           Specify pre-buffering size in bytes. The server does not start with
16709           playback before at least prebuf bytes are available in the buffer.
16710           By default this option is initialized to the same value as
16711           buffer_size or buffer_duration (whichever is bigger).
16712
16713       minreq
16714           Specify minimum request size in bytes. The server does not request
16715           less than minreq bytes from the client, instead waits until the
16716           buffer is free enough to request more bytes at once. It is
16717           recommended to not set this option, which will initialize this to a
16718           value that is deemed sensible by the server.
16719
16720       Examples
16721
16722       Play a file on default device on default server:
16723
16724               ffmpeg  -i INPUT -f pulse "stream name"
16725
16726   sdl
16727       SDL (Simple DirectMedia Layer) output device.
16728
16729       "sdl2" can be used as alias for "sdl".
16730
16731       This output device allows one to show a video stream in an SDL window.
16732       Only one SDL window is allowed per application, so you can have only
16733       one instance of this output device in an application.
16734
16735       To enable this output device you need libsdl installed on your system
16736       when configuring your build.
16737
16738       For more information about SDL, check: <http://www.libsdl.org/>
16739
16740       Options
16741
16742       window_title
16743           Set the SDL window title, if not specified default to the filename
16744           specified for the output device.
16745
16746       icon_title
16747           Set the name of the iconified SDL window, if not specified it is
16748           set to the same value of window_title.
16749
16750       window_size
16751           Set the SDL window size, can be a string of the form widthxheight
16752           or a video size abbreviation.  If not specified it defaults to the
16753           size of the input video, downscaled according to the aspect ratio.
16754
16755       window_x
16756       window_y
16757           Set the position of the window on the screen.
16758
16759       window_fullscreen
16760           Set fullscreen mode when non-zero value is provided.  Default value
16761           is zero.
16762
16763       window_enable_quit
16764           Enable quit action (using window button or keyboard key) when non-
16765           zero value is provided.  Default value is 1 (enable quit action)
16766
16767       Interactive commands
16768
16769       The window created by the device can be controlled through the
16770       following interactive commands.
16771
16772       q, ESC
16773           Quit the device immediately.
16774
16775       Examples
16776
16777       The following command shows the ffmpeg output is an SDL window, forcing
16778       its size to the qcif format:
16779
16780               ffmpeg -i INPUT -c:v rawvideo -pix_fmt yuv420p -window_size qcif -f sdl "SDL output"
16781
16782   sndio
16783       sndio audio output device.
16784
16785   v4l2
16786       Video4Linux2 output device.
16787
16788   xv
16789       XV (XVideo) output device.
16790
16791       This output device allows one to show a video stream in a X Window
16792       System window.
16793
16794       Options
16795
16796       display_name
16797           Specify the hardware display name, which determines the display and
16798           communications domain to be used.
16799
16800           The display name or DISPLAY environment variable can be a string in
16801           the format hostname[:number[.screen_number]].
16802
16803           hostname specifies the name of the host machine on which the
16804           display is physically attached. number specifies the number of the
16805           display server on that host machine. screen_number specifies the
16806           screen to be used on that server.
16807
16808           If unspecified, it defaults to the value of the DISPLAY environment
16809           variable.
16810
16811           For example, "dual-headed:0.1" would specify screen 1 of display 0
16812           on the machine named ``dual-headed''.
16813
16814           Check the X11 specification for more detailed information about the
16815           display name format.
16816
16817       window_id
16818           When set to non-zero value then device doesn't create new window,
16819           but uses existing one with provided window_id. By default this
16820           options is set to zero and device creates its own window.
16821
16822       window_size
16823           Set the created window size, can be a string of the form
16824           widthxheight or a video size abbreviation. If not specified it
16825           defaults to the size of the input video.  Ignored when window_id is
16826           set.
16827
16828       window_x
16829       window_y
16830           Set the X and Y window offsets for the created window. They are
16831           both set to 0 by default. The values may be ignored by the window
16832           manager.  Ignored when window_id is set.
16833
16834       window_title
16835           Set the window title, if not specified default to the filename
16836           specified for the output device. Ignored when window_id is set.
16837
16838       For more information about XVideo see <http://www.x.org/>.
16839
16840       Examples
16841
16842       •   Decode, display and encode video input with ffmpeg at the same
16843           time:
16844
16845                   ffmpeg -i INPUT OUTPUT -f xv display
16846
16847       •   Decode and display the input video to multiple X11 windows:
16848
16849                   ffmpeg -i INPUT -f xv normal -vf negate -f xv negated
16850

RESAMPLER OPTIONS

16852       The audio resampler supports the following named options.
16853
16854       Options may be set by specifying -option value in the FFmpeg tools,
16855       option=value for the aresample filter, by setting the value explicitly
16856       in the "SwrContext" options or using the libavutil/opt.h API for
16857       programmatic use.
16858
16859       ich, in_channel_count
16860           Set the number of input channels. Default value is 0. Setting this
16861           value is not mandatory if the corresponding channel layout
16862           in_channel_layout is set.
16863
16864       och, out_channel_count
16865           Set the number of output channels. Default value is 0. Setting this
16866           value is not mandatory if the corresponding channel layout
16867           out_channel_layout is set.
16868
16869       uch, used_channel_count
16870           Set the number of used input channels. Default value is 0. This
16871           option is only used for special remapping.
16872
16873       isr, in_sample_rate
16874           Set the input sample rate. Default value is 0.
16875
16876       osr, out_sample_rate
16877           Set the output sample rate. Default value is 0.
16878
16879       isf, in_sample_fmt
16880           Specify the input sample format. It is set by default to "none".
16881
16882       osf, out_sample_fmt
16883           Specify the output sample format. It is set by default to "none".
16884
16885       tsf, internal_sample_fmt
16886           Set the internal sample format. Default value is "none".  This will
16887           automatically be chosen when it is not explicitly set.
16888
16889       icl, in_channel_layout
16890       ocl, out_channel_layout
16891           Set the input/output channel layout.
16892
16893           See the Channel Layout section in the ffmpeg-utils(1) manual for
16894           the required syntax.
16895
16896       clev, center_mix_level
16897           Set the center mix level. It is a value expressed in deciBel, and
16898           must be in the interval [-32,32].
16899
16900       slev, surround_mix_level
16901           Set the surround mix level. It is a value expressed in deciBel, and
16902           must be in the interval [-32,32].
16903
16904       lfe_mix_level
16905           Set LFE mix into non LFE level. It is used when there is a LFE
16906           input but no LFE output. It is a value expressed in deciBel, and
16907           must be in the interval [-32,32].
16908
16909       rmvol, rematrix_volume
16910           Set rematrix volume. Default value is 1.0.
16911
16912       rematrix_maxval
16913           Set maximum output value for rematrixing.  This can be used to
16914           prevent clipping vs. preventing volume reduction.  A value of 1.0
16915           prevents clipping.
16916
16917       flags, swr_flags
16918           Set flags used by the converter. Default value is 0.
16919
16920           It supports the following individual flags:
16921
16922           res force resampling, this flag forces resampling to be used even
16923               when the input and output sample rates match.
16924
16925       dither_scale
16926           Set the dither scale. Default value is 1.
16927
16928       dither_method
16929           Set dither method. Default value is 0.
16930
16931           Supported values:
16932
16933           rectangular
16934               select rectangular dither
16935
16936           triangular
16937               select triangular dither
16938
16939           triangular_hp
16940               select triangular dither with high pass
16941
16942           lipshitz
16943               select Lipshitz noise shaping dither.
16944
16945           shibata
16946               select Shibata noise shaping dither.
16947
16948           low_shibata
16949               select low Shibata noise shaping dither.
16950
16951           high_shibata
16952               select high Shibata noise shaping dither.
16953
16954           f_weighted
16955               select f-weighted noise shaping dither
16956
16957           modified_e_weighted
16958               select modified-e-weighted noise shaping dither
16959
16960           improved_e_weighted
16961               select improved-e-weighted noise shaping dither
16962
16963       resampler
16964           Set resampling engine. Default value is swr.
16965
16966           Supported values:
16967
16968           swr select the native SW Resampler; filter options precision and
16969               cheby are not applicable in this case.
16970
16971           soxr
16972               select the SoX Resampler (where available); compensation, and
16973               filter options filter_size, phase_shift, exact_rational,
16974               filter_type & kaiser_beta, are not applicable in this case.
16975
16976       filter_size
16977           For swr only, set resampling filter size, default value is 32.
16978
16979       phase_shift
16980           For swr only, set resampling phase shift, default value is 10, and
16981           must be in the interval [0,30].
16982
16983       linear_interp
16984           Use linear interpolation when enabled (the default). Disable it if
16985           you want to preserve speed instead of quality when exact_rational
16986           fails.
16987
16988       exact_rational
16989           For swr only, when enabled, try to use exact phase_count based on
16990           input and output sample rate. However, if it is larger than "1 <<
16991           phase_shift", the phase_count will be "1 << phase_shift" as
16992           fallback. Default is enabled.
16993
16994       cutoff
16995           Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must
16996           be a float value between 0 and 1.  Default value is 0.97 with swr,
16997           and 0.91 with soxr (which, with a sample-rate of 44100, preserves
16998           the entire audio band to 20kHz).
16999
17000       precision
17001           For soxr only, the precision in bits to which the resampled signal
17002           will be calculated.  The default value of 20 (which, with suitable
17003           dithering, is appropriate for a destination bit-depth of 16) gives
17004           SoX's 'High Quality'; a value of 28 gives SoX's 'Very High
17005           Quality'.
17006
17007       cheby
17008           For soxr only, selects passband rolloff none (Chebyshev) & higher-
17009           precision approximation for 'irrational' ratios. Default value is
17010           0.
17011
17012       async
17013           For swr only, simple 1 parameter audio sync to timestamps using
17014           stretching, squeezing, filling and trimming. Setting this to 1 will
17015           enable filling and trimming, larger values represent the maximum
17016           amount in samples that the data may be stretched or squeezed for
17017           each second.  Default value is 0, thus no compensation is applied
17018           to make the samples match the audio timestamps.
17019
17020       first_pts
17021           For swr only, assume the first pts should be this value. The time
17022           unit is 1 / sample rate.  This allows for padding/trimming at the
17023           start of stream. By default, no assumption is made about the first
17024           frame's expected pts, so no padding or trimming is done. For
17025           example, this could be set to 0 to pad the beginning with silence
17026           if an audio stream starts after the video stream or to trim any
17027           samples with a negative pts due to encoder delay.
17028
17029       min_comp
17030           For swr only, set the minimum difference between timestamps and
17031           audio data (in seconds) to trigger stretching/squeezing/filling or
17032           trimming of the data to make it match the timestamps. The default
17033           is that stretching/squeezing/filling and trimming is disabled
17034           (min_comp = "FLT_MAX").
17035
17036       min_hard_comp
17037           For swr only, set the minimum difference between timestamps and
17038           audio data (in seconds) to trigger adding/dropping samples to make
17039           it match the timestamps.  This option effectively is a threshold to
17040           select between hard (trim/fill) and soft (squeeze/stretch)
17041           compensation. Note that all compensation is by default disabled
17042           through min_comp.  The default is 0.1.
17043
17044       comp_duration
17045           For swr only, set duration (in seconds) over which data is
17046           stretched/squeezed to make it match the timestamps. Must be a non-
17047           negative double float value, default value is 1.0.
17048
17049       max_soft_comp
17050           For swr only, set maximum factor by which data is
17051           stretched/squeezed to make it match the timestamps. Must be a non-
17052           negative double float value, default value is 0.
17053
17054       matrix_encoding
17055           Select matrixed stereo encoding.
17056
17057           It accepts the following values:
17058
17059           none
17060               select none
17061
17062           dolby
17063               select Dolby
17064
17065           dplii
17066               select Dolby Pro Logic II
17067
17068           Default value is "none".
17069
17070       filter_type
17071           For swr only, select resampling filter type. This only affects
17072           resampling operations.
17073
17074           It accepts the following values:
17075
17076           cubic
17077               select cubic
17078
17079           blackman_nuttall
17080               select Blackman Nuttall windowed sinc
17081
17082           kaiser
17083               select Kaiser windowed sinc
17084
17085       kaiser_beta
17086           For swr only, set Kaiser window beta value. Must be a double float
17087           value in the interval [2,16], default value is 9.
17088
17089       output_sample_bits
17090           For swr only, set number of used output sample bits for dithering.
17091           Must be an integer in the interval [0,64], default value is 0,
17092           which means it's not used.
17093

SCALER OPTIONS

17095       The video scaler supports the following named options.
17096
17097       Options may be set by specifying -option value in the FFmpeg tools,
17098       with a few API-only exceptions noted below.  For programmatic use, they
17099       can be set explicitly in the "SwsContext" options or through the
17100       libavutil/opt.h API.
17101
17102       sws_flags
17103           Set the scaler flags. This is also used to set the scaling
17104           algorithm. Only a single algorithm should be selected. Default
17105           value is bicubic.
17106
17107           It accepts the following values:
17108
17109           fast_bilinear
17110               Select fast bilinear scaling algorithm.
17111
17112           bilinear
17113               Select bilinear scaling algorithm.
17114
17115           bicubic
17116               Select bicubic scaling algorithm.
17117
17118           experimental
17119               Select experimental scaling algorithm.
17120
17121           neighbor
17122               Select nearest neighbor rescaling algorithm.
17123
17124           area
17125               Select averaging area rescaling algorithm.
17126
17127           bicublin
17128               Select bicubic scaling algorithm for the luma component,
17129               bilinear for chroma components.
17130
17131           gauss
17132               Select Gaussian rescaling algorithm.
17133
17134           sinc
17135               Select sinc rescaling algorithm.
17136
17137           lanczos
17138               Select Lanczos rescaling algorithm. The default width (alpha)
17139               is 3 and can be changed by setting "param0".
17140
17141           spline
17142               Select natural bicubic spline rescaling algorithm.
17143
17144           print_info
17145               Enable printing/debug logging.
17146
17147           accurate_rnd
17148               Enable accurate rounding.
17149
17150           full_chroma_int
17151               Enable full chroma interpolation.
17152
17153           full_chroma_inp
17154               Select full chroma input.
17155
17156           bitexact
17157               Enable bitexact output.
17158
17159       srcw (API only)
17160           Set source width.
17161
17162       srch (API only)
17163           Set source height.
17164
17165       dstw (API only)
17166           Set destination width.
17167
17168       dsth (API only)
17169           Set destination height.
17170
17171       src_format (API only)
17172           Set source pixel format (must be expressed as an integer).
17173
17174       dst_format (API only)
17175           Set destination pixel format (must be expressed as an integer).
17176
17177       src_range (boolean)
17178           If value is set to 1, indicates source is full range. Default value
17179           is 0, which indicates source is limited range.
17180
17181       dst_range (boolean)
17182           If value is set to 1, enable full range for destination. Default
17183           value is 0, which enables limited range.
17184
17185       param0, param1
17186           Set scaling algorithm parameters. The specified values are specific
17187           of some scaling algorithms and ignored by others. The specified
17188           values are floating point number values.
17189
17190       sws_dither
17191           Set the dithering algorithm. Accepts one of the following values.
17192           Default value is auto.
17193
17194           auto
17195               automatic choice
17196
17197           none
17198               no dithering
17199
17200           bayer
17201               bayer dither
17202
17203           ed  error diffusion dither
17204
17205           a_dither
17206               arithmetic dither, based using addition
17207
17208           x_dither
17209               arithmetic dither, based using xor (more random/less apparent
17210               patterning that a_dither).
17211
17212       alphablend
17213           Set the alpha blending to use when the input has alpha but the
17214           output does not.  Default value is none.
17215
17216           uniform_color
17217               Blend onto a uniform background color
17218
17219           checkerboard
17220               Blend onto a checkerboard
17221
17222           none
17223               No blending
17224

FILTERING INTRODUCTION

17226       Filtering in FFmpeg is enabled through the libavfilter library.
17227
17228       In libavfilter, a filter can have multiple inputs and multiple outputs.
17229       To illustrate the sorts of things that are possible, we consider the
17230       following filtergraph.
17231
17232                               [main]
17233               input --> split ---------------------> overlay --> output
17234                           |                             ^
17235                           |[tmp]                  [flip]|
17236                           +-----> crop --> vflip -------+
17237
17238       This filtergraph splits the input stream in two streams, then sends one
17239       stream through the crop filter and the vflip filter, before merging it
17240       back with the other stream by overlaying it on top. You can use the
17241       following command to achieve this:
17242
17243               ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
17244
17245       The result will be that the top half of the video is mirrored onto the
17246       bottom half of the output video.
17247
17248       Filters in the same linear chain are separated by commas, and distinct
17249       linear chains of filters are separated by semicolons. In our example,
17250       crop,vflip are in one linear chain, split and overlay are separately in
17251       another. The points where the linear chains join are labelled by names
17252       enclosed in square brackets. In the example, the split filter generates
17253       two outputs that are associated to the labels [main] and [tmp].
17254
17255       The stream sent to the second output of split, labelled as [tmp], is
17256       processed through the crop filter, which crops away the lower half part
17257       of the video, and then vertically flipped. The overlay filter takes in
17258       input the first unchanged output of the split filter (which was
17259       labelled as [main]), and overlay on its lower half the output generated
17260       by the crop,vflip filterchain.
17261
17262       Some filters take in input a list of parameters: they are specified
17263       after the filter name and an equal sign, and are separated from each
17264       other by a colon.
17265
17266       There exist so-called source filters that do not have an audio/video
17267       input, and sink filters that will not have audio/video output.
17268

GRAPH

17270       The graph2dot program included in the FFmpeg tools directory can be
17271       used to parse a filtergraph description and issue a corresponding
17272       textual representation in the dot language.
17273
17274       Invoke the command:
17275
17276               graph2dot -h
17277
17278       to see how to use graph2dot.
17279
17280       You can then pass the dot description to the dot program (from the
17281       graphviz suite of programs) and obtain a graphical representation of
17282       the filtergraph.
17283
17284       For example the sequence of commands:
17285
17286               echo <GRAPH_DESCRIPTION> | \
17287               tools/graph2dot -o graph.tmp && \
17288               dot -Tpng graph.tmp -o graph.png && \
17289               display graph.png
17290
17291       can be used to create and display an image representing the graph
17292       described by the GRAPH_DESCRIPTION string. Note that this string must
17293       be a complete self-contained graph, with its inputs and outputs
17294       explicitly defined.  For example if your command line is of the form:
17295
17296               ffmpeg -i infile -vf scale=640:360 outfile
17297
17298       your GRAPH_DESCRIPTION string will need to be of the form:
17299
17300               nullsrc,scale=640:360,nullsink
17301
17302       you may also need to set the nullsrc parameters and add a format filter
17303       in order to simulate a specific input file.
17304

FILTERGRAPH DESCRIPTION

17306       A filtergraph is a directed graph of connected filters. It can contain
17307       cycles, and there can be multiple links between a pair of filters. Each
17308       link has one input pad on one side connecting it to one filter from
17309       which it takes its input, and one output pad on the other side
17310       connecting it to one filter accepting its output.
17311
17312       Each filter in a filtergraph is an instance of a filter class
17313       registered in the application, which defines the features and the
17314       number of input and output pads of the filter.
17315
17316       A filter with no input pads is called a "source", and a filter with no
17317       output pads is called a "sink".
17318
17319   Filtergraph syntax
17320       A filtergraph has a textual representation, which is recognized by the
17321       -filter/-vf/-af and -filter_complex options in ffmpeg and -vf/-af in
17322       ffplay, and by the "avfilter_graph_parse_ptr()" function defined in
17323       libavfilter/avfilter.h.
17324
17325       A filterchain consists of a sequence of connected filters, each one
17326       connected to the previous one in the sequence. A filterchain is
17327       represented by a list of ","-separated filter descriptions.
17328
17329       A filtergraph consists of a sequence of filterchains. A sequence of
17330       filterchains is represented by a list of ";"-separated filterchain
17331       descriptions.
17332
17333       A filter is represented by a string of the form:
17334       [in_link_1]...[in_link_N]filter_name@id=arguments[out_link_1]...[out_link_M]
17335
17336       filter_name is the name of the filter class of which the described
17337       filter is an instance of, and has to be the name of one of the filter
17338       classes registered in the program optionally followed by "@id".  The
17339       name of the filter class is optionally followed by a string
17340       "=arguments".
17341
17342       arguments is a string which contains the parameters used to initialize
17343       the filter instance. It may have one of two forms:
17344
17345       •   A ':'-separated list of key=value pairs.
17346
17347       •   A ':'-separated list of value. In this case, the keys are assumed
17348           to be the option names in the order they are declared. E.g. the
17349           "fade" filter declares three options in this order -- type,
17350           start_frame and nb_frames. Then the parameter list in:0:30 means
17351           that the value in is assigned to the option type, 0 to start_frame
17352           and 30 to nb_frames.
17353
17354       •   A ':'-separated list of mixed direct value and long key=value
17355           pairs. The direct value must precede the key=value pairs, and
17356           follow the same constraints order of the previous point. The
17357           following key=value pairs can be set in any preferred order.
17358
17359       If the option value itself is a list of items (e.g. the "format" filter
17360       takes a list of pixel formats), the items in the list are usually
17361       separated by |.
17362
17363       The list of arguments can be quoted using the character ' as initial
17364       and ending mark, and the character \ for escaping the characters within
17365       the quoted text; otherwise the argument string is considered terminated
17366       when the next special character (belonging to the set []=;,) is
17367       encountered.
17368
17369       The name and arguments of the filter are optionally preceded and
17370       followed by a list of link labels.  A link label allows one to name a
17371       link and associate it to a filter output or input pad. The preceding
17372       labels in_link_1 ... in_link_N, are associated to the filter input
17373       pads, the following labels out_link_1 ... out_link_M, are associated to
17374       the output pads.
17375
17376       When two link labels with the same name are found in the filtergraph, a
17377       link between the corresponding input and output pad is created.
17378
17379       If an output pad is not labelled, it is linked by default to the first
17380       unlabelled input pad of the next filter in the filterchain.  For
17381       example in the filterchain
17382
17383               nullsrc, split[L1], [L2]overlay, nullsink
17384
17385       the split filter instance has two output pads, and the overlay filter
17386       instance two input pads. The first output pad of split is labelled
17387       "L1", the first input pad of overlay is labelled "L2", and the second
17388       output pad of split is linked to the second input pad of overlay, which
17389       are both unlabelled.
17390
17391       In a filter description, if the input label of the first filter is not
17392       specified, "in" is assumed; if the output label of the last filter is
17393       not specified, "out" is assumed.
17394
17395       In a complete filterchain all the unlabelled filter input and output
17396       pads must be connected. A filtergraph is considered valid if all the
17397       filter input and output pads of all the filterchains are connected.
17398
17399       Libavfilter will automatically insert scale filters where format
17400       conversion is required. It is possible to specify swscale flags for
17401       those automatically inserted scalers by prepending "sws_flags=flags;"
17402       to the filtergraph description.
17403
17404       Here is a BNF description of the filtergraph syntax:
17405
17406               <NAME>             ::= sequence of alphanumeric characters and '_'
17407               <FILTER_NAME>      ::= <NAME>["@"<NAME>]
17408               <LINKLABEL>        ::= "[" <NAME> "]"
17409               <LINKLABELS>       ::= <LINKLABEL> [<LINKLABELS>]
17410               <FILTER_ARGUMENTS> ::= sequence of chars (possibly quoted)
17411               <FILTER>           ::= [<LINKLABELS>] <FILTER_NAME> ["=" <FILTER_ARGUMENTS>] [<LINKLABELS>]
17412               <FILTERCHAIN>      ::= <FILTER> [,<FILTERCHAIN>]
17413               <FILTERGRAPH>      ::= [sws_flags=<flags>;] <FILTERCHAIN> [;<FILTERGRAPH>]
17414
17415   Notes on filtergraph escaping
17416       Filtergraph description composition entails several levels of escaping.
17417       See the "Quoting and escaping" section in the ffmpeg-utils(1) manual
17418       for more information about the employed escaping procedure.
17419
17420       A first level escaping affects the content of each filter option value,
17421       which may contain the special character ":" used to separate values, or
17422       one of the escaping characters "\'".
17423
17424       A second level escaping affects the whole filter description, which may
17425       contain the escaping characters "\'" or the special characters "[],;"
17426       used by the filtergraph description.
17427
17428       Finally, when you specify a filtergraph on a shell commandline, you
17429       need to perform a third level escaping for the shell special characters
17430       contained within it.
17431
17432       For example, consider the following string to be embedded in the
17433       drawtext filter description text value:
17434
17435               this is a 'string': may contain one, or more, special characters
17436
17437       This string contains the "'" special escaping character, and the ":"
17438       special character, so it needs to be escaped in this way:
17439
17440               text=this is a \'string\'\: may contain one, or more, special characters
17441
17442       A second level of escaping is required when embedding the filter
17443       description in a filtergraph description, in order to escape all the
17444       filtergraph special characters. Thus the example above becomes:
17445
17446               drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
17447
17448       (note that in addition to the "\'" escaping special characters, also
17449       "," needs to be escaped).
17450
17451       Finally an additional level of escaping is needed when writing the
17452       filtergraph description in a shell command, which depends on the
17453       escaping rules of the adopted shell. For example, assuming that "\" is
17454       special and needs to be escaped with another "\", the previous string
17455       will finally result in:
17456
17457               -vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
17458

TIMELINE EDITING

17460       Some filters support a generic enable option. For the filters
17461       supporting timeline editing, this option can be set to an expression
17462       which is evaluated before sending a frame to the filter. If the
17463       evaluation is non-zero, the filter will be enabled, otherwise the frame
17464       will be sent unchanged to the next filter in the filtergraph.
17465
17466       The expression accepts the following values:
17467
17468       t   timestamp expressed in seconds, NAN if the input timestamp is
17469           unknown
17470
17471       n   sequential number of the input frame, starting from 0
17472
17473       pos the position in the file of the input frame, NAN if unknown
17474
17475       w
17476       h   width and height of the input frame if video
17477
17478       Additionally, these filters support an enable command that can be used
17479       to re-define the expression.
17480
17481       Like any other filtering option, the enable option follows the same
17482       rules.
17483
17484       For example, to enable a blur filter (smartblur) from 10 seconds to 3
17485       minutes, and a curves filter starting at 3 seconds:
17486
17487               smartblur = enable='between(t,10,3*60)',
17488               curves    = enable='gte(t,3)' : preset=cross_process
17489
17490       See "ffmpeg -filters" to view which filters have timeline support.
17491

CHANGING OPTIONS AT RUNTIME WITH A COMMAND

17493       Some options can be changed during the operation of the filter using a
17494       command. These options are marked 'T' on the output of ffmpeg -h
17495       filter=<name of filter>.  The name of the command is the name of the
17496       option and the argument is the new value.
17497

OPTIONS FOR FILTERS WITH SEVERAL INPUTS

17499       Some filters with several inputs support a common set of options.
17500       These options can only be set by name, not with the short notation.
17501
17502       eof_action
17503           The action to take when EOF is encountered on the secondary input;
17504           it accepts one of the following values:
17505
17506           repeat
17507               Repeat the last frame (the default).
17508
17509           endall
17510               End both streams.
17511
17512           pass
17513               Pass the main input through.
17514
17515       shortest
17516           If set to 1, force the output to terminate when the shortest input
17517           terminates. Default value is 0.
17518
17519       repeatlast
17520           If set to 1, force the filter to extend the last frame of secondary
17521           streams until the end of the primary stream. A value of 0 disables
17522           this behavior.  Default value is 1.
17523

AUDIO FILTERS

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

AUDIO SOURCES

23267       Below is a description of the currently available audio sources.
23268
23269   abuffer
23270       Buffer audio frames, and make them available to the filter chain.
23271
23272       This source is mainly intended for a programmatic use, in particular
23273       through the interface defined in libavfilter/buffersrc.h.
23274
23275       It accepts the following parameters:
23276
23277       time_base
23278           The timebase which will be used for timestamps of submitted frames.
23279           It must be either a floating-point number or in
23280           numerator/denominator form.
23281
23282       sample_rate
23283           The sample rate of the incoming audio buffers.
23284
23285       sample_fmt
23286           The sample format of the incoming audio buffers.  Either a sample
23287           format name or its corresponding integer representation from the
23288           enum AVSampleFormat in libavutil/samplefmt.h
23289
23290       channel_layout
23291           The channel layout of the incoming audio buffers.  Either a channel
23292           layout name from channel_layout_map in libavutil/channel_layout.c
23293           or its corresponding integer representation from the AV_CH_LAYOUT_*
23294           macros in libavutil/channel_layout.h
23295
23296       channels
23297           The number of channels of the incoming audio buffers.  If both
23298           channels and channel_layout are specified, then they must be
23299           consistent.
23300
23301       Examples
23302
23303               abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
23304
23305       will instruct the source to accept planar 16bit signed stereo at
23306       44100Hz.  Since the sample format with name "s16p" corresponds to the
23307       number 6 and the "stereo" channel layout corresponds to the value 0x3,
23308       this is equivalent to:
23309
23310               abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
23311
23312   aevalsrc
23313       Generate an audio signal specified by an expression.
23314
23315       This source accepts in input one or more expressions (one for each
23316       channel), which are evaluated and used to generate a corresponding
23317       audio signal.
23318
23319       This source accepts the following options:
23320
23321       exprs
23322           Set the '|'-separated expressions list for each separate channel.
23323           In case the channel_layout option is not specified, the selected
23324           channel layout depends on the number of provided expressions.
23325           Otherwise the last specified expression is applied to the remaining
23326           output channels.
23327
23328       channel_layout, c
23329           Set the channel layout. The number of channels in the specified
23330           layout must be equal to the number of specified expressions.
23331
23332       duration, d
23333           Set the minimum duration of the sourced audio. See the Time
23334           duration section in the ffmpeg-utils(1) manual for the accepted
23335           syntax.  Note that the resulting duration may be greater than the
23336           specified duration, as the generated audio is always cut at the end
23337           of a complete frame.
23338
23339           If not specified, or the expressed duration is negative, the audio
23340           is supposed to be generated forever.
23341
23342       nb_samples, n
23343           Set the number of samples per channel per each output frame,
23344           default to 1024.
23345
23346       sample_rate, s
23347           Specify the sample rate, default to 44100.
23348
23349       Each expression in exprs can contain the following constants:
23350
23351       n   number of the evaluated sample, starting from 0
23352
23353       t   time of the evaluated sample expressed in seconds, starting from 0
23354
23355       s   sample rate
23356
23357       Examples
23358
23359       •   Generate silence:
23360
23361                   aevalsrc=0
23362
23363       •   Generate a sin signal with frequency of 440 Hz, set sample rate to
23364           8000 Hz:
23365
23366                   aevalsrc="sin(440*2*PI*t):s=8000"
23367
23368       •   Generate a two channels signal, specify the channel layout (Front
23369           Center + Back Center) explicitly:
23370
23371                   aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
23372
23373       •   Generate white noise:
23374
23375                   aevalsrc="-2+random(0)"
23376
23377       •   Generate an amplitude modulated signal:
23378
23379                   aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
23380
23381       •   Generate 2.5 Hz binaural beats on a 360 Hz carrier:
23382
23383                   aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
23384
23385   afirsrc
23386       Generate a FIR coefficients using frequency sampling method.
23387
23388       The resulting stream can be used with afir filter for filtering the
23389       audio signal.
23390
23391       The filter accepts the following options:
23392
23393       taps, t
23394           Set number of filter coefficents in output audio stream.  Default
23395           value is 1025.
23396
23397       frequency, f
23398           Set frequency points from where magnitude and phase are set.  This
23399           must be in non decreasing order, and first element must be 0, while
23400           last element must be 1. Elements are separated by white spaces.
23401
23402       magnitude, m
23403           Set magnitude value for every frequency point set by frequency.
23404           Number of values must be same as number of frequency points.
23405           Values are separated by white spaces.
23406
23407       phase, p
23408           Set phase value for every frequency point set by frequency.  Number
23409           of values must be same as number of frequency points.  Values are
23410           separated by white spaces.
23411
23412       sample_rate, r
23413           Set sample rate, default is 44100.
23414
23415       nb_samples, n
23416           Set number of samples per each frame. Default is 1024.
23417
23418       win_func, w
23419           Set window function. Default is blackman.
23420
23421   anullsrc
23422       The null audio source, return unprocessed audio frames. It is mainly
23423       useful as a template and to be employed in analysis / debugging tools,
23424       or as the source for filters which ignore the input data (for example
23425       the sox synth filter).
23426
23427       This source accepts the following options:
23428
23429       channel_layout, cl
23430           Specifies the channel layout, and can be either an integer or a
23431           string representing a channel layout. The default value of
23432           channel_layout is "stereo".
23433
23434           Check the channel_layout_map definition in
23435           libavutil/channel_layout.c for the mapping between strings and
23436           channel layout values.
23437
23438       sample_rate, r
23439           Specifies the sample rate, and defaults to 44100.
23440
23441       nb_samples, n
23442           Set the number of samples per requested frames.
23443
23444       duration, d
23445           Set the duration of the sourced audio. See the Time duration
23446           section in the ffmpeg-utils(1) manual for the accepted syntax.
23447
23448           If not specified, or the expressed duration is negative, the audio
23449           is supposed to be generated forever.
23450
23451       Examples
23452
23453       •   Set the sample rate to 48000 Hz and the channel layout to
23454           AV_CH_LAYOUT_MONO.
23455
23456                   anullsrc=r=48000:cl=4
23457
23458       •   Do the same operation with a more obvious syntax:
23459
23460                   anullsrc=r=48000:cl=mono
23461
23462       All the parameters need to be explicitly defined.
23463
23464   flite
23465       Synthesize a voice utterance using the libflite library.
23466
23467       To enable compilation of this filter you need to configure FFmpeg with
23468       "--enable-libflite".
23469
23470       Note that versions of the flite library prior to 2.0 are not thread-
23471       safe.
23472
23473       The filter accepts the following options:
23474
23475       list_voices
23476           If set to 1, list the names of the available voices and exit
23477           immediately. Default value is 0.
23478
23479       nb_samples, n
23480           Set the maximum number of samples per frame. Default value is 512.
23481
23482       textfile
23483           Set the filename containing the text to speak.
23484
23485       text
23486           Set the text to speak.
23487
23488       voice, v
23489           Set the voice to use for the speech synthesis. Default value is
23490           "kal". See also the list_voices option.
23491
23492       Examples
23493
23494       •   Read from file speech.txt, and synthesize the text using the
23495           standard flite voice:
23496
23497                   flite=textfile=speech.txt
23498
23499       •   Read the specified text selecting the "slt" voice:
23500
23501                   flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
23502
23503       •   Input text to ffmpeg:
23504
23505                   ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
23506
23507       •   Make ffplay speak the specified text, using "flite" and the "lavfi"
23508           device:
23509
23510                   ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
23511
23512       For more information about libflite, check:
23513       <http://www.festvox.org/flite/>
23514
23515   anoisesrc
23516       Generate a noise audio signal.
23517
23518       The filter accepts the following options:
23519
23520       sample_rate, r
23521           Specify the sample rate. Default value is 48000 Hz.
23522
23523       amplitude, a
23524           Specify the amplitude (0.0 - 1.0) of the generated audio stream.
23525           Default value is 1.0.
23526
23527       duration, d
23528           Specify the duration of the generated audio stream. Not specifying
23529           this option results in noise with an infinite length.
23530
23531       color, colour, c
23532           Specify the color of noise. Available noise colors are white, pink,
23533           brown, blue, violet and velvet. Default color is white.
23534
23535       seed, s
23536           Specify a value used to seed the PRNG.
23537
23538       nb_samples, n
23539           Set the number of samples per each output frame, default is 1024.
23540
23541       Examples
23542
23543       •   Generate 60 seconds of pink noise, with a 44.1 kHz sampling rate
23544           and an amplitude of 0.5:
23545
23546                   anoisesrc=d=60:c=pink:r=44100:a=0.5
23547
23548   hilbert
23549       Generate odd-tap Hilbert transform FIR coefficients.
23550
23551       The resulting stream can be used with afir filter for phase-shifting
23552       the signal by 90 degrees.
23553
23554       This is used in many matrix coding schemes and for analytic signal
23555       generation.  The process is often written as a multiplication by i (or
23556       j), the imaginary unit.
23557
23558       The filter accepts the following options:
23559
23560       sample_rate, s
23561           Set sample rate, default is 44100.
23562
23563       taps, t
23564           Set length of FIR filter, default is 22051.
23565
23566       nb_samples, n
23567           Set number of samples per each frame.
23568
23569       win_func, w
23570           Set window function to be used when generating FIR coefficients.
23571
23572   sinc
23573       Generate a sinc kaiser-windowed low-pass, high-pass, band-pass, or
23574       band-reject FIR coefficients.
23575
23576       The resulting stream can be used with afir filter for filtering the
23577       audio signal.
23578
23579       The filter accepts the following options:
23580
23581       sample_rate, r
23582           Set sample rate, default is 44100.
23583
23584       nb_samples, n
23585           Set number of samples per each frame. Default is 1024.
23586
23587       hp  Set high-pass frequency. Default is 0.
23588
23589       lp  Set low-pass frequency. Default is 0.  If high-pass frequency is
23590           lower than low-pass frequency and low-pass frequency is higher than
23591           0 then filter will create band-pass filter coefficients, otherwise
23592           band-reject filter coefficients.
23593
23594       phase
23595           Set filter phase response. Default is 50. Allowed range is from 0
23596           to 100.
23597
23598       beta
23599           Set Kaiser window beta.
23600
23601       att Set stop-band attenuation. Default is 120dB, allowed range is from
23602           40 to 180 dB.
23603
23604       round
23605           Enable rounding, by default is disabled.
23606
23607       hptaps
23608           Set number of taps for high-pass filter.
23609
23610       lptaps
23611           Set number of taps for low-pass filter.
23612
23613   sine
23614       Generate an audio signal made of a sine wave with amplitude 1/8.
23615
23616       The audio signal is bit-exact.
23617
23618       The filter accepts the following options:
23619
23620       frequency, f
23621           Set the carrier frequency. Default is 440 Hz.
23622
23623       beep_factor, b
23624           Enable a periodic beep every second with frequency beep_factor
23625           times the carrier frequency. Default is 0, meaning the beep is
23626           disabled.
23627
23628       sample_rate, r
23629           Specify the sample rate, default is 44100.
23630
23631       duration, d
23632           Specify the duration of the generated audio stream.
23633
23634       samples_per_frame
23635           Set the number of samples per output frame.
23636
23637           The expression can contain the following constants:
23638
23639           n   The (sequential) number of the output audio frame, starting
23640               from 0.
23641
23642           pts The PTS (Presentation TimeStamp) of the output audio frame,
23643               expressed in TB units.
23644
23645           t   The PTS of the output audio frame, expressed in seconds.
23646
23647           TB  The timebase of the output audio frames.
23648
23649           Default is 1024.
23650
23651       Examples
23652
23653       •   Generate a simple 440 Hz sine wave:
23654
23655                   sine
23656
23657       •   Generate a 220 Hz sine wave with a 880 Hz beep each second, for 5
23658           seconds:
23659
23660                   sine=220:4:d=5
23661                   sine=f=220:b=4:d=5
23662                   sine=frequency=220:beep_factor=4:duration=5
23663
23664       •   Generate a 1 kHz sine wave following "1602,1601,1602,1601,1602"
23665           NTSC pattern:
23666
23667                   sine=1000:samples_per_frame='st(0,mod(n,5)); 1602-not(not(eq(ld(0),1)+eq(ld(0),3)))'
23668

AUDIO SINKS

23670       Below is a description of the currently available audio sinks.
23671
23672   abuffersink
23673       Buffer audio frames, and make them available to the end of filter
23674       chain.
23675
23676       This sink is mainly intended for programmatic use, in particular
23677       through the interface defined in libavfilter/buffersink.h or the
23678       options system.
23679
23680       It accepts a pointer to an AVABufferSinkContext structure, which
23681       defines the incoming buffers' formats, to be passed as the opaque
23682       parameter to "avfilter_init_filter" for initialization.
23683
23684   anullsink
23685       Null audio sink; do absolutely nothing with the input audio. It is
23686       mainly useful as a template and for use in analysis / debugging tools.
23687

VIDEO FILTERS

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

OPENCL VIDEO FILTERS

38235       Below is a description of the currently available OpenCL video filters.
38236
38237       To enable compilation of these filters you need to configure FFmpeg
38238       with "--enable-opencl".
38239
38240       Running OpenCL filters requires you to initialize a hardware device and
38241       to pass that device to all filters in any filter graph.
38242
38243       -init_hw_device opencl[=name][:device[,key=value...]]
38244           Initialise a new hardware device of type opencl called name, using
38245           the given device parameters.
38246
38247       -filter_hw_device name
38248           Pass the hardware device called name to all filters in any filter
38249           graph.
38250
38251       For more detailed information see
38252       <https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options>
38253
38254       •   Example of choosing the first device on the second platform and
38255           running avgblur_opencl filter with default parameters on it.
38256
38257                   -init_hw_device opencl=gpu:1.0 -filter_hw_device gpu -i INPUT -vf "hwupload, avgblur_opencl, hwdownload" OUTPUT
38258
38259       Since OpenCL filters are not able to access frame data in normal
38260       memory, all frame data needs to be uploaded(hwupload) to hardware
38261       surfaces connected to the appropriate device before being used and then
38262       downloaded(hwdownload) back to normal memory. Note that hwupload will
38263       upload to a surface with the same layout as the software frame, so it
38264       may be necessary to add a format filter immediately before to get the
38265       input into the right format and hwdownload does not support all formats
38266       on the output - it may be necessary to insert an additional format
38267       filter immediately following in the graph to get the output in a
38268       supported format.
38269
38270   avgblur_opencl
38271       Apply average blur filter.
38272
38273       The filter accepts the following options:
38274
38275       sizeX
38276           Set horizontal radius size.  Range is "[1, 1024]" and default value
38277           is 1.
38278
38279       planes
38280           Set which planes to filter. Default value is 0xf, by which all
38281           planes are processed.
38282
38283       sizeY
38284           Set vertical radius size. Range is "[1, 1024]" and default value is
38285           0. If zero, "sizeX" value will be used.
38286
38287       Example
38288
38289       •   Apply average blur filter with horizontal and vertical size of 3,
38290           setting each pixel of the output to the average value of the 7x7
38291           region centered on it in the input. For pixels on the edges of the
38292           image, the region does not extend beyond the image boundaries, and
38293           so out-of-range coordinates are not used in the calculations.
38294
38295                   -i INPUT -vf "hwupload, avgblur_opencl=3, hwdownload" OUTPUT
38296
38297   boxblur_opencl
38298       Apply a boxblur algorithm to the input video.
38299
38300       It accepts the following parameters:
38301
38302       luma_radius, lr
38303       luma_power, lp
38304       chroma_radius, cr
38305       chroma_power, cp
38306       alpha_radius, ar
38307       alpha_power, ap
38308
38309       A description of the accepted options follows.
38310
38311       luma_radius, lr
38312       chroma_radius, cr
38313       alpha_radius, ar
38314           Set an expression for the box radius in pixels used for blurring
38315           the corresponding input plane.
38316
38317           The radius value must be a non-negative number, and must not be
38318           greater than the value of the expression "min(w,h)/2" for the luma
38319           and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
38320
38321           Default value for luma_radius is "2". If not specified,
38322           chroma_radius and alpha_radius default to the corresponding value
38323           set for luma_radius.
38324
38325           The expressions can contain the following constants:
38326
38327           w
38328           h   The input width and height in pixels.
38329
38330           cw
38331           ch  The input chroma image width and height in pixels.
38332
38333           hsub
38334           vsub
38335               The horizontal and vertical chroma subsample values. For
38336               example, for the pixel format "yuv422p", hsub is 2 and vsub is
38337               1.
38338
38339       luma_power, lp
38340       chroma_power, cp
38341       alpha_power, ap
38342           Specify how many times the boxblur filter is applied to the
38343           corresponding plane.
38344
38345           Default value for luma_power is 2. If not specified, chroma_power
38346           and alpha_power default to the corresponding value set for
38347           luma_power.
38348
38349           A value of 0 will disable the effect.
38350
38351       Examples
38352
38353       Apply boxblur filter, setting each pixel of the output to the average
38354       value of box-radiuses luma_radius, chroma_radius, alpha_radius for each
38355       plane respectively. The filter will apply luma_power, chroma_power,
38356       alpha_power times onto the corresponding plane. For pixels on the edges
38357       of the image, the radius does not extend beyond the image boundaries,
38358       and so out-of-range coordinates are not used in the calculations.
38359
38360       •   Apply a boxblur filter with the luma, chroma, and alpha radius set
38361           to 2 and luma, chroma, and alpha power set to 3. The filter will
38362           run 3 times with box-radius set to 2 for every plane of the image.
38363
38364                   -i INPUT -vf "hwupload, boxblur_opencl=luma_radius=2:luma_power=3, hwdownload" OUTPUT
38365                   -i INPUT -vf "hwupload, boxblur_opencl=2:3, hwdownload" OUTPUT
38366
38367       •   Apply a boxblur filter with luma radius set to 2, luma_power to 1,
38368           chroma_radius to 4, chroma_power to 5, alpha_radius to 3 and
38369           alpha_power to 7.
38370
38371           For the luma plane, a 2x2 box radius will be run once.
38372
38373           For the chroma plane, a 4x4 box radius will be run 5 times.
38374
38375           For the alpha plane, a 3x3 box radius will be run 7 times.
38376
38377                   -i INPUT -vf "hwupload, boxblur_opencl=2:1:4:5:3:7, hwdownload" OUTPUT
38378
38379   colorkey_opencl
38380       RGB colorspace color keying.
38381
38382       The filter accepts the following options:
38383
38384       color
38385           The color which will be replaced with transparency.
38386
38387       similarity
38388           Similarity percentage with the key color.
38389
38390           0.01 matches only the exact key color, while 1.0 matches
38391           everything.
38392
38393       blend
38394           Blend percentage.
38395
38396           0.0 makes pixels either fully transparent, or not transparent at
38397           all.
38398
38399           Higher values result in semi-transparent pixels, with a higher
38400           transparency the more similar the pixels color is to the key color.
38401
38402       Examples
38403
38404       •   Make every semi-green pixel in the input transparent with some
38405           slight blending:
38406
38407                   -i INPUT -vf "hwupload, colorkey_opencl=green:0.3:0.1, hwdownload" OUTPUT
38408
38409   convolution_opencl
38410       Apply convolution of 3x3, 5x5, 7x7 matrix.
38411
38412       The filter accepts the following options:
38413
38414       0m
38415       1m
38416       2m
38417       3m  Set matrix for each plane.  Matrix is sequence of 9, 25 or 49
38418           signed numbers.  Default value for each plane is "0 0 0 0 1 0 0 0
38419           0".
38420
38421       0rdiv
38422       1rdiv
38423       2rdiv
38424       3rdiv
38425           Set multiplier for calculated value for each plane.  If unset or 0,
38426           it will be sum of all matrix elements.  The option value must be a
38427           float number greater or equal to 0.0. Default value is 1.0.
38428
38429       0bias
38430       1bias
38431       2bias
38432       3bias
38433           Set bias for each plane. This value is added to the result of the
38434           multiplication.  Useful for making the overall image brighter or
38435           darker.  The option value must be a float number greater or equal
38436           to 0.0. Default value is 0.0.
38437
38438       Examples
38439
38440       •   Apply sharpen:
38441
38442                   -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
38443
38444       •   Apply blur:
38445
38446                   -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
38447
38448       •   Apply edge enhance:
38449
38450                   -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
38451
38452       •   Apply edge detect:
38453
38454                   -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
38455
38456       •   Apply laplacian edge detector which includes diagonals:
38457
38458                   -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
38459
38460       •   Apply emboss:
38461
38462                   -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
38463
38464   erosion_opencl
38465       Apply erosion effect to the video.
38466
38467       This filter replaces the pixel by the local(3x3) minimum.
38468
38469       It accepts the following options:
38470
38471       threshold0
38472       threshold1
38473       threshold2
38474       threshold3
38475           Limit the maximum change for each plane. Range is "[0, 65535]" and
38476           default value is 65535.  If 0, plane will remain unchanged.
38477
38478       coordinates
38479           Flag which specifies the pixel to refer to.  Range is "[0, 255]"
38480           and default value is 255, i.e. all eight pixels are used.
38481
38482           Flags to local 3x3 coordinates region centered on "x":
38483
38484               1 2 3
38485
38486               4 x 5
38487
38488               6 7 8
38489
38490       Example
38491
38492       •   Apply erosion filter with threshold0 set to 30, threshold1 set 40,
38493           threshold2 set to 50 and coordinates set to 231, setting each pixel
38494           of the output to the local minimum between pixels: 1, 2, 3, 6, 7, 8
38495           of the 3x3 region centered on it in the input. If the difference
38496           between input pixel and local minimum is more then threshold of the
38497           corresponding plane, output pixel will be set to input pixel -
38498           threshold of corresponding plane.
38499
38500                   -i INPUT -vf "hwupload, erosion_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
38501
38502   deshake_opencl
38503       Feature-point based video stabilization filter.
38504
38505       The filter accepts the following options:
38506
38507       tripod
38508           Simulates a tripod by preventing any camera movement whatsoever
38509           from the original frame. Defaults to 0.
38510
38511       debug
38512           Whether or not additional debug info should be displayed, both in
38513           the processed output and in the console.
38514
38515           Note that in order to see console debug output you will also need
38516           to pass "-v verbose" to ffmpeg.
38517
38518           Viewing point matches in the output video is only supported for RGB
38519           input.
38520
38521           Defaults to 0.
38522
38523       adaptive_crop
38524           Whether or not to do a tiny bit of cropping at the borders to cut
38525           down on the amount of mirrored pixels.
38526
38527           Defaults to 1.
38528
38529       refine_features
38530           Whether or not feature points should be refined at a sub-pixel
38531           level.
38532
38533           This can be turned off for a slight performance gain at the cost of
38534           precision.
38535
38536           Defaults to 1.
38537
38538       smooth_strength
38539           The strength of the smoothing applied to the camera path from 0.0
38540           to 1.0.
38541
38542           1.0 is the maximum smoothing strength while values less than that
38543           result in less smoothing.
38544
38545           0.0 causes the filter to adaptively choose a smoothing strength on
38546           a per-frame basis.
38547
38548           Defaults to 0.0.
38549
38550       smooth_window_multiplier
38551           Controls the size of the smoothing window (the number of frames
38552           buffered to determine motion information from).
38553
38554           The size of the smoothing window is determined by multiplying the
38555           framerate of the video by this number.
38556
38557           Acceptable values range from 0.1 to 10.0.
38558
38559           Larger values increase the amount of motion data available for
38560           determining how to smooth the camera path, potentially improving
38561           smoothness, but also increase latency and memory usage.
38562
38563           Defaults to 2.0.
38564
38565       Examples
38566
38567       •   Stabilize a video with a fixed, medium smoothing strength:
38568
38569                   -i INPUT -vf "hwupload, deshake_opencl=smooth_strength=0.5, hwdownload" OUTPUT
38570
38571       •   Stabilize a video with debugging (both in console and in rendered
38572           video):
38573
38574                   -i INPUT -filter_complex "[0:v]format=rgba, hwupload, deshake_opencl=debug=1, hwdownload, format=rgba, format=yuv420p" -v verbose OUTPUT
38575
38576   dilation_opencl
38577       Apply dilation effect to the video.
38578
38579       This filter replaces the pixel by the local(3x3) maximum.
38580
38581       It accepts the following options:
38582
38583       threshold0
38584       threshold1
38585       threshold2
38586       threshold3
38587           Limit the maximum change for each plane. Range is "[0, 65535]" and
38588           default value is 65535.  If 0, plane will remain unchanged.
38589
38590       coordinates
38591           Flag which specifies the pixel to refer to.  Range is "[0, 255]"
38592           and default value is 255, i.e. all eight pixels are used.
38593
38594           Flags to local 3x3 coordinates region centered on "x":
38595
38596               1 2 3
38597
38598               4 x 5
38599
38600               6 7 8
38601
38602       Example
38603
38604       •   Apply dilation filter with threshold0 set to 30, threshold1 set 40,
38605           threshold2 set to 50 and coordinates set to 231, setting each pixel
38606           of the output to the local maximum between pixels: 1, 2, 3, 6, 7, 8
38607           of the 3x3 region centered on it in the input. If the difference
38608           between input pixel and local maximum is more then threshold of the
38609           corresponding plane, output pixel will be set to input pixel +
38610           threshold of corresponding plane.
38611
38612                   -i INPUT -vf "hwupload, dilation_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
38613
38614   nlmeans_opencl
38615       Non-local Means denoise filter through OpenCL, this filter accepts same
38616       options as nlmeans.
38617
38618   overlay_opencl
38619       Overlay one video on top of another.
38620
38621       It takes two inputs and has one output. The first input is the "main"
38622       video on which the second input is overlaid.  This filter requires same
38623       memory layout for all the inputs. So, format conversion may be needed.
38624
38625       The filter accepts the following options:
38626
38627       x   Set the x coordinate of the overlaid video on the main video.
38628           Default value is 0.
38629
38630       y   Set the y coordinate of the overlaid video on the main video.
38631           Default value is 0.
38632
38633       Examples
38634
38635       •   Overlay an image LOGO at the top-left corner of the INPUT video.
38636           Both inputs are yuv420p format.
38637
38638                   -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
38639
38640       •   The inputs have same memory layout for color channels , the overlay
38641           has additional alpha plane, like INPUT is yuv420p, and the LOGO is
38642           yuva420p.
38643
38644                   -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
38645
38646   pad_opencl
38647       Add paddings to the input image, and place the original input at the
38648       provided x, y coordinates.
38649
38650       It accepts the following options:
38651
38652       width, w
38653       height, h
38654           Specify an expression for the size of the output image with the
38655           paddings added. If the value for width or height is 0, the
38656           corresponding input size is used for the output.
38657
38658           The width expression can reference the value set by the height
38659           expression, and vice versa.
38660
38661           The default value of width and height is 0.
38662
38663       x
38664       y   Specify the offsets to place the input image at within the padded
38665           area, with respect to the top/left border of the output image.
38666
38667           The x expression can reference the value set by the y expression,
38668           and vice versa.
38669
38670           The default value of x and y is 0.
38671
38672           If x or y evaluate to a negative number, they'll be changed so the
38673           input image is centered on the padded area.
38674
38675       color
38676           Specify the color of the padded area. For the syntax of this
38677           option, check the "Color" section in the ffmpeg-utils manual.
38678
38679       aspect
38680           Pad to an aspect instead to a resolution.
38681
38682       The value for the width, height, x, and y options are expressions
38683       containing the following constants:
38684
38685       in_w
38686       in_h
38687           The input video width and height.
38688
38689       iw
38690       ih  These are the same as in_w and in_h.
38691
38692       out_w
38693       out_h
38694           The output width and height (the size of the padded area), as
38695           specified by the width and height expressions.
38696
38697       ow
38698       oh  These are the same as out_w and out_h.
38699
38700       x
38701       y   The x and y offsets as specified by the x and y expressions, or NAN
38702           if not yet specified.
38703
38704       a   same as iw / ih
38705
38706       sar input sample aspect ratio
38707
38708       dar input display aspect ratio, it is the same as (iw / ih) * sar
38709
38710   prewitt_opencl
38711       Apply the Prewitt operator
38712       (<https://en.wikipedia.org/wiki/Prewitt_operator>) to input video
38713       stream.
38714
38715       The filter accepts the following option:
38716
38717       planes
38718           Set which planes to filter. Default value is 0xf, by which all
38719           planes are processed.
38720
38721       scale
38722           Set value which will be multiplied with filtered result.  Range is
38723           "[0.0, 65535]" and default value is 1.0.
38724
38725       delta
38726           Set value which will be added to filtered result.  Range is
38727           "[-65535, 65535]" and default value is 0.0.
38728
38729       Example
38730
38731       •   Apply the Prewitt operator with scale set to 2 and delta set to 10.
38732
38733                   -i INPUT -vf "hwupload, prewitt_opencl=scale=2:delta=10, hwdownload" OUTPUT
38734
38735   program_opencl
38736       Filter video using an OpenCL program.
38737
38738       source
38739           OpenCL program source file.
38740
38741       kernel
38742           Kernel name in program.
38743
38744       inputs
38745           Number of inputs to the filter.  Defaults to 1.
38746
38747       size, s
38748           Size of output frames.  Defaults to the same as the first input.
38749
38750       The "program_opencl" filter also supports the framesync options.
38751
38752       The program source file must contain a kernel function with the given
38753       name, which will be run once for each plane of the output.  Each run on
38754       a plane gets enqueued as a separate 2D global NDRange with one work-
38755       item for each pixel to be generated.  The global ID offset for each
38756       work-item is therefore the coordinates of a pixel in the destination
38757       image.
38758
38759       The kernel function needs to take the following arguments:
38760
38761       •   Destination image, __write_only image2d_t.
38762
38763           This image will become the output; the kernel should write all of
38764           it.
38765
38766       •   Frame index, unsigned int.
38767
38768           This is a counter starting from zero and increasing by one for each
38769           frame.
38770
38771       •   Source images, __read_only image2d_t.
38772
38773           These are the most recent images on each input.  The kernel may
38774           read from them to generate the output, but they can't be written
38775           to.
38776
38777       Example programs:
38778
38779       •   Copy the input to the output (output must be the same size as the
38780           input).
38781
38782                   __kernel void copy(__write_only image2d_t destination,
38783                                      unsigned int index,
38784                                      __read_only  image2d_t source)
38785                   {
38786                       const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE;
38787
38788                       int2 location = (int2)(get_global_id(0), get_global_id(1));
38789
38790                       float4 value = read_imagef(source, sampler, location);
38791
38792                       write_imagef(destination, location, value);
38793                   }
38794
38795       •   Apply a simple transformation, rotating the input by an amount
38796           increasing with the index counter.  Pixel values are linearly
38797           interpolated by the sampler, and the output need not have the same
38798           dimensions as the input.
38799
38800                   __kernel void rotate_image(__write_only image2d_t dst,
38801                                              unsigned int index,
38802                                              __read_only  image2d_t src)
38803                   {
38804                       const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
38805                                                  CLK_FILTER_LINEAR);
38806
38807                       float angle = (float)index / 100.0f;
38808
38809                       float2 dst_dim = convert_float2(get_image_dim(dst));
38810                       float2 src_dim = convert_float2(get_image_dim(src));
38811
38812                       float2 dst_cen = dst_dim / 2.0f;
38813                       float2 src_cen = src_dim / 2.0f;
38814
38815                       int2   dst_loc = (int2)(get_global_id(0), get_global_id(1));
38816
38817                       float2 dst_pos = convert_float2(dst_loc) - dst_cen;
38818                       float2 src_pos = {
38819                           cos(angle) * dst_pos.x - sin(angle) * dst_pos.y,
38820                           sin(angle) * dst_pos.x + cos(angle) * dst_pos.y
38821                       };
38822                       src_pos = src_pos * src_dim / dst_dim;
38823
38824                       float2 src_loc = src_pos + src_cen;
38825
38826                       if (src_loc.x < 0.0f      || src_loc.y < 0.0f ||
38827                           src_loc.x > src_dim.x || src_loc.y > src_dim.y)
38828                           write_imagef(dst, dst_loc, 0.5f);
38829                       else
38830                           write_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc));
38831                   }
38832
38833       •   Blend two inputs together, with the amount of each input used
38834           varying with the index counter.
38835
38836                   __kernel void blend_images(__write_only image2d_t dst,
38837                                              unsigned int index,
38838                                              __read_only  image2d_t src1,
38839                                              __read_only  image2d_t src2)
38840                   {
38841                       const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
38842                                                  CLK_FILTER_LINEAR);
38843
38844                       float blend = (cos((float)index / 50.0f) + 1.0f) / 2.0f;
38845
38846                       int2  dst_loc = (int2)(get_global_id(0), get_global_id(1));
38847                       int2 src1_loc = dst_loc * get_image_dim(src1) / get_image_dim(dst);
38848                       int2 src2_loc = dst_loc * get_image_dim(src2) / get_image_dim(dst);
38849
38850                       float4 val1 = read_imagef(src1, sampler, src1_loc);
38851                       float4 val2 = read_imagef(src2, sampler, src2_loc);
38852
38853                       write_imagef(dst, dst_loc, val1 * blend + val2 * (1.0f - blend));
38854                   }
38855
38856   roberts_opencl
38857       Apply the Roberts cross operator
38858       (<https://en.wikipedia.org/wiki/Roberts_cross>) to input video stream.
38859
38860       The filter accepts the following option:
38861
38862       planes
38863           Set which planes to filter. Default value is 0xf, by which all
38864           planes are processed.
38865
38866       scale
38867           Set value which will be multiplied with filtered result.  Range is
38868           "[0.0, 65535]" and default value is 1.0.
38869
38870       delta
38871           Set value which will be added to filtered result.  Range is
38872           "[-65535, 65535]" and default value is 0.0.
38873
38874       Example
38875
38876       •   Apply the Roberts cross operator with scale set to 2 and delta set
38877           to 10
38878
38879                   -i INPUT -vf "hwupload, roberts_opencl=scale=2:delta=10, hwdownload" OUTPUT
38880
38881   sobel_opencl
38882       Apply the Sobel operator
38883       (<https://en.wikipedia.org/wiki/Sobel_operator>) to input video stream.
38884
38885       The filter accepts the following option:
38886
38887       planes
38888           Set which planes to filter. Default value is 0xf, by which all
38889           planes are processed.
38890
38891       scale
38892           Set value which will be multiplied with filtered result.  Range is
38893           "[0.0, 65535]" and default value is 1.0.
38894
38895       delta
38896           Set value which will be added to filtered result.  Range is
38897           "[-65535, 65535]" and default value is 0.0.
38898
38899       Example
38900
38901       •   Apply sobel operator with scale set to 2 and delta set to 10
38902
38903                   -i INPUT -vf "hwupload, sobel_opencl=scale=2:delta=10, hwdownload" OUTPUT
38904
38905   tonemap_opencl
38906       Perform HDR(PQ/HLG) to SDR conversion with tone-mapping.
38907
38908       It accepts the following parameters:
38909
38910       tonemap
38911           Specify the tone-mapping operator to be used. Same as tonemap
38912           option in tonemap.
38913
38914       param
38915           Tune the tone mapping algorithm. same as param option in tonemap.
38916
38917       desat
38918           Apply desaturation for highlights that exceed this level of
38919           brightness. The higher the parameter, the more color information
38920           will be preserved. This setting helps prevent unnaturally blown-out
38921           colors for super-highlights, by (smoothly) turning into white
38922           instead. This makes images feel more natural, at the cost of
38923           reducing information about out-of-range colors.
38924
38925           The default value is 0.5, and the algorithm here is a little
38926           different from the cpu version tonemap currently. A setting of 0.0
38927           disables this option.
38928
38929       threshold
38930           The tonemapping algorithm parameters is fine-tuned per each scene.
38931           And a threshold is used to detect whether the scene has changed or
38932           not. If the distance between the current frame average brightness
38933           and the current running average exceeds a threshold value, we would
38934           re-calculate scene average and peak brightness.  The default value
38935           is 0.2.
38936
38937       format
38938           Specify the output pixel format.
38939
38940           Currently supported formats are:
38941
38942           p010
38943           nv12
38944       range, r
38945           Set the output color range.
38946
38947           Possible values are:
38948
38949           tv/mpeg
38950           pc/jpeg
38951
38952           Default is same as input.
38953
38954       primaries, p
38955           Set the output color primaries.
38956
38957           Possible values are:
38958
38959           bt709
38960           bt2020
38961
38962           Default is same as input.
38963
38964       transfer, t
38965           Set the output transfer characteristics.
38966
38967           Possible values are:
38968
38969           bt709
38970           bt2020
38971
38972           Default is bt709.
38973
38974       matrix, m
38975           Set the output colorspace matrix.
38976
38977           Possible value are:
38978
38979           bt709
38980           bt2020
38981
38982           Default is same as input.
38983
38984       Example
38985
38986       •   Convert HDR(PQ/HLG) video to bt2020-transfer-characteristic p010
38987           format using linear operator.
38988
38989                   -i INPUT -vf "format=p010,hwupload,tonemap_opencl=t=bt2020:tonemap=linear:format=p010,hwdownload,format=p010" OUTPUT
38990
38991   unsharp_opencl
38992       Sharpen or blur the input video.
38993
38994       It accepts the following parameters:
38995
38996       luma_msize_x, lx
38997           Set the luma matrix horizontal size.  Range is "[1, 23]" and
38998           default value is 5.
38999
39000       luma_msize_y, ly
39001           Set the luma matrix vertical size.  Range is "[1, 23]" and default
39002           value is 5.
39003
39004       luma_amount, la
39005           Set the luma effect strength.  Range is "[-10, 10]" and default
39006           value is 1.0.
39007
39008           Negative values will blur the input video, while positive values
39009           will sharpen it, a value of zero will disable the effect.
39010
39011       chroma_msize_x, cx
39012           Set the chroma matrix horizontal size.  Range is "[1, 23]" and
39013           default value is 5.
39014
39015       chroma_msize_y, cy
39016           Set the chroma matrix vertical size.  Range is "[1, 23]" and
39017           default value is 5.
39018
39019       chroma_amount, ca
39020           Set the chroma effect strength.  Range is "[-10, 10]" and default
39021           value is 0.0.
39022
39023           Negative values will blur the input video, while positive values
39024           will sharpen it, a value of zero will disable the effect.
39025
39026       All parameters are optional and default to the equivalent of the string
39027       '5:5:1.0:5:5:0.0'.
39028
39029       Examples
39030
39031       •   Apply strong luma sharpen effect:
39032
39033                   -i INPUT -vf "hwupload, unsharp_opencl=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5, hwdownload" OUTPUT
39034
39035       •   Apply a strong blur of both luma and chroma parameters:
39036
39037                   -i INPUT -vf "hwupload, unsharp_opencl=7:7:-2:7:7:-2, hwdownload" OUTPUT
39038
39039   xfade_opencl
39040       Cross fade two videos with custom transition effect by using OpenCL.
39041
39042       It accepts the following options:
39043
39044       transition
39045           Set one of possible transition effects.
39046
39047           custom
39048               Select custom transition effect, the actual transition
39049               description will be picked from source and kernel options.
39050
39051           fade
39052           wipeleft
39053           wiperight
39054           wipeup
39055           wipedown
39056           slideleft
39057           slideright
39058           slideup
39059           slidedown
39060               Default transition is fade.
39061
39062       source
39063           OpenCL program source file for custom transition.
39064
39065       kernel
39066           Set name of kernel to use for custom transition from program source
39067           file.
39068
39069       duration
39070           Set duration of video transition.
39071
39072       offset
39073           Set time of start of transition relative to first video.
39074
39075       The program source file must contain a kernel function with the given
39076       name, which will be run once for each plane of the output.  Each run on
39077       a plane gets enqueued as a separate 2D global NDRange with one work-
39078       item for each pixel to be generated.  The global ID offset for each
39079       work-item is therefore the coordinates of a pixel in the destination
39080       image.
39081
39082       The kernel function needs to take the following arguments:
39083
39084       •   Destination image, __write_only image2d_t.
39085
39086           This image will become the output; the kernel should write all of
39087           it.
39088
39089       •   First Source image, __read_only image2d_t.  Second Source image,
39090           __read_only image2d_t.
39091
39092           These are the most recent images on each input.  The kernel may
39093           read from them to generate the output, but they can't be written
39094           to.
39095
39096       •   Transition progress, float. This value is always between 0 and 1
39097           inclusive.
39098
39099       Example programs:
39100
39101       •   Apply dots curtain transition effect:
39102
39103                   __kernel void blend_images(__write_only image2d_t dst,
39104                                              __read_only  image2d_t src1,
39105                                              __read_only  image2d_t src2,
39106                                              float progress)
39107                   {
39108                       const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
39109                                                  CLK_FILTER_LINEAR);
39110                       int2  p = (int2)(get_global_id(0), get_global_id(1));
39111                       float2 rp = (float2)(get_global_id(0), get_global_id(1));
39112                       float2 dim = (float2)(get_image_dim(src1).x, get_image_dim(src1).y);
39113                       rp = rp / dim;
39114
39115                       float2 dots = (float2)(20.0, 20.0);
39116                       float2 center = (float2)(0,0);
39117                       float2 unused;
39118
39119                       float4 val1 = read_imagef(src1, sampler, p);
39120                       float4 val2 = read_imagef(src2, sampler, p);
39121                       bool next = distance(fract(rp * dots, &unused), (float2)(0.5, 0.5)) < (progress / distance(rp, center));
39122
39123                       write_imagef(dst, p, next ? val1 : val2);
39124                   }
39125

VAAPI VIDEO FILTERS

39127       VAAPI Video filters are usually used with VAAPI decoder and VAAPI
39128       encoder. Below is a description of VAAPI video filters.
39129
39130       To enable compilation of these filters you need to configure FFmpeg
39131       with "--enable-vaapi".
39132
39133       To use vaapi filters, you need to setup the vaapi device correctly. For
39134       more information, please read
39135       <https://trac.ffmpeg.org/wiki/Hardware/VAAPI>
39136
39137   tonemap_vaapi
39138       Perform HDR(High Dynamic Range) to SDR(Standard Dynamic Range)
39139       conversion with tone-mapping.  It maps the dynamic range of HDR10
39140       content to the SDR content.  It currently only accepts HDR10 as input.
39141
39142       It accepts the following parameters:
39143
39144       format
39145           Specify the output pixel format.
39146
39147           Currently supported formats are:
39148
39149           p010
39150           nv12
39151
39152           Default is nv12.
39153
39154       primaries, p
39155           Set the output color primaries.
39156
39157           Default is same as input.
39158
39159       transfer, t
39160           Set the output transfer characteristics.
39161
39162           Default is bt709.
39163
39164       matrix, m
39165           Set the output colorspace matrix.
39166
39167           Default is same as input.
39168
39169       Example
39170
39171       •   Convert HDR(HDR10) video to bt2020-transfer-characteristic p010
39172           format
39173
39174                   tonemap_vaapi=format=p010:t=bt2020-10
39175

VIDEO SOURCES

39177       Below is a description of the currently available video sources.
39178
39179   buffer
39180       Buffer video frames, and make them available to the filter chain.
39181
39182       This source is mainly intended for a programmatic use, in particular
39183       through the interface defined in libavfilter/buffersrc.h.
39184
39185       It accepts the following parameters:
39186
39187       video_size
39188           Specify the size (width and height) of the buffered video frames.
39189           For the syntax of this option, check the "Video size" section in
39190           the ffmpeg-utils manual.
39191
39192       width
39193           The input video width.
39194
39195       height
39196           The input video height.
39197
39198       pix_fmt
39199           A string representing the pixel format of the buffered video
39200           frames.  It may be a number corresponding to a pixel format, or a
39201           pixel format name.
39202
39203       time_base
39204           Specify the timebase assumed by the timestamps of the buffered
39205           frames.
39206
39207       frame_rate
39208           Specify the frame rate expected for the video stream.
39209
39210       pixel_aspect, sar
39211           The sample (pixel) aspect ratio of the input video.
39212
39213       sws_param
39214           This option is deprecated and ignored. Prepend "sws_flags=flags;"
39215           to the filtergraph description to specify swscale flags for
39216           automatically inserted scalers. See Filtergraph syntax.
39217
39218       hw_frames_ctx
39219           When using a hardware pixel format, this should be a reference to
39220           an AVHWFramesContext describing input frames.
39221
39222       For example:
39223
39224               buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
39225
39226       will instruct the source to accept video frames with size 320x240 and
39227       with format "yuv410p", assuming 1/24 as the timestamps timebase and
39228       square pixels (1:1 sample aspect ratio).  Since the pixel format with
39229       name "yuv410p" corresponds to the number 6 (check the enum
39230       AVPixelFormat definition in libavutil/pixfmt.h), this example
39231       corresponds to:
39232
39233               buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
39234
39235       Alternatively, the options can be specified as a flat string, but this
39236       syntax is deprecated:
39237
39238       width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den
39239
39240   cellauto
39241       Create a pattern generated by an elementary cellular automaton.
39242
39243       The initial state of the cellular automaton can be defined through the
39244       filename and pattern options. If such options are not specified an
39245       initial state is created randomly.
39246
39247       At each new frame a new row in the video is filled with the result of
39248       the cellular automaton next generation. The behavior when the whole
39249       frame is filled is defined by the scroll option.
39250
39251       This source accepts the following options:
39252
39253       filename, f
39254           Read the initial cellular automaton state, i.e. the starting row,
39255           from the specified file.  In the file, each non-whitespace
39256           character is considered an alive cell, a newline will terminate the
39257           row, and further characters in the file will be ignored.
39258
39259       pattern, p
39260           Read the initial cellular automaton state, i.e. the starting row,
39261           from the specified string.
39262
39263           Each non-whitespace character in the string is considered an alive
39264           cell, a newline will terminate the row, and further characters in
39265           the string will be ignored.
39266
39267       rate, r
39268           Set the video rate, that is the number of frames generated per
39269           second.  Default is 25.
39270
39271       random_fill_ratio, ratio
39272           Set the random fill ratio for the initial cellular automaton row.
39273           It is a floating point number value ranging from 0 to 1, defaults
39274           to 1/PHI.
39275
39276           This option is ignored when a file or a pattern is specified.
39277
39278       random_seed, seed
39279           Set the seed for filling randomly the initial row, must be an
39280           integer included between 0 and UINT32_MAX. If not specified, or if
39281           explicitly set to -1, the filter will try to use a good random seed
39282           on a best effort basis.
39283
39284       rule
39285           Set the cellular automaton rule, it is a number ranging from 0 to
39286           255.  Default value is 110.
39287
39288       size, s
39289           Set the size of the output video. For the syntax of this option,
39290           check the "Video size" section in the ffmpeg-utils manual.
39291
39292           If filename or pattern is specified, the size is set by default to
39293           the width of the specified initial state row, and the height is set
39294           to width * PHI.
39295
39296           If size is set, it must contain the width of the specified pattern
39297           string, and the specified pattern will be centered in the larger
39298           row.
39299
39300           If a filename or a pattern string is not specified, the size value
39301           defaults to "320x518" (used for a randomly generated initial
39302           state).
39303
39304       scroll
39305           If set to 1, scroll the output upward when all the rows in the
39306           output have been already filled. If set to 0, the new generated row
39307           will be written over the top row just after the bottom row is
39308           filled.  Defaults to 1.
39309
39310       start_full, full
39311           If set to 1, completely fill the output with generated rows before
39312           outputting the first frame.  This is the default behavior, for
39313           disabling set the value to 0.
39314
39315       stitch
39316           If set to 1, stitch the left and right row edges together.  This is
39317           the default behavior, for disabling set the value to 0.
39318
39319       Examples
39320
39321       •   Read the initial state from pattern, and specify an output of size
39322           200x400.
39323
39324                   cellauto=f=pattern:s=200x400
39325
39326       •   Generate a random initial row with a width of 200 cells, with a
39327           fill ratio of 2/3:
39328
39329                   cellauto=ratio=2/3:s=200x200
39330
39331       •   Create a pattern generated by rule 18 starting by a single alive
39332           cell centered on an initial row with width 100:
39333
39334                   cellauto=p=@s=100x400:full=0:rule=18
39335
39336       •   Specify a more elaborated initial pattern:
39337
39338                   cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
39339
39340   coreimagesrc
39341       Video source generated on GPU using Apple's CoreImage API on OSX.
39342
39343       This video source is a specialized version of the coreimage video
39344       filter.  Use a core image generator at the beginning of the applied
39345       filterchain to generate the content.
39346
39347       The coreimagesrc video source accepts the following options:
39348
39349       list_generators
39350           List all available generators along with all their respective
39351           options as well as possible minimum and maximum values along with
39352           the default values.
39353
39354                   list_generators=true
39355
39356       size, s
39357           Specify the size of the sourced video. For the syntax of this
39358           option, check the "Video size" section in the ffmpeg-utils manual.
39359           The default value is "320x240".
39360
39361       rate, r
39362           Specify the frame rate of the sourced video, as the number of
39363           frames generated per second. It has to be a string in the format
39364           frame_rate_num/frame_rate_den, an integer number, a floating point
39365           number or a valid video frame rate abbreviation. The default value
39366           is "25".
39367
39368       sar Set the sample aspect ratio of the sourced video.
39369
39370       duration, d
39371           Set the duration of the sourced video. See the Time duration
39372           section in the ffmpeg-utils(1) manual for the accepted syntax.
39373
39374           If not specified, or the expressed duration is negative, the video
39375           is supposed to be generated forever.
39376
39377       Additionally, all options of the coreimage video filter are accepted.
39378       A complete filterchain can be used for further processing of the
39379       generated input without CPU-HOST transfer. See coreimage documentation
39380       and examples for details.
39381
39382       Examples
39383
39384       •   Use CIQRCodeGenerator to create a QR code for the FFmpeg homepage,
39385           given as complete and escaped command-line for Apple's standard
39386           bash shell:
39387
39388                   ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
39389
39390           This example is equivalent to the QRCode example of coreimage
39391           without the need for a nullsrc video source.
39392
39393   gradients
39394       Generate several gradients.
39395
39396       size, s
39397           Set frame size. For the syntax of this option, check the "Video
39398           size" section in the ffmpeg-utils manual. Default value is
39399           "640x480".
39400
39401       rate, r
39402           Set frame rate, expressed as number of frames per second. Default
39403           value is "25".
39404
39405       c0, c1, c2, c3, c4, c5, c6, c7
39406           Set 8 colors. Default values for colors is to pick random one.
39407
39408       x0, y0, y0, y1
39409           Set gradient line source and destination points. If negative or out
39410           of range, random ones are picked.
39411
39412       nb_colors, n
39413           Set number of colors to use at once. Allowed range is from 2 to 8.
39414           Default value is 2.
39415
39416       seed
39417           Set seed for picking gradient line points.
39418
39419       duration, d
39420           Set the duration of the sourced video. See the Time duration
39421           section in the ffmpeg-utils(1) manual for the accepted syntax.
39422
39423           If not specified, or the expressed duration is negative, the video
39424           is supposed to be generated forever.
39425
39426       speed
39427           Set speed of gradients rotation.
39428
39429   mandelbrot
39430       Generate a Mandelbrot set fractal, and progressively zoom towards the
39431       point specified with start_x and start_y.
39432
39433       This source accepts the following options:
39434
39435       end_pts
39436           Set the terminal pts value. Default value is 400.
39437
39438       end_scale
39439           Set the terminal scale value.  Must be a floating point value.
39440           Default value is 0.3.
39441
39442       inner
39443           Set the inner coloring mode, that is the algorithm used to draw the
39444           Mandelbrot fractal internal region.
39445
39446           It shall assume one of the following values:
39447
39448           black
39449               Set black mode.
39450
39451           convergence
39452               Show time until convergence.
39453
39454           mincol
39455               Set color based on point closest to the origin of the
39456               iterations.
39457
39458           period
39459               Set period mode.
39460
39461           Default value is mincol.
39462
39463       bailout
39464           Set the bailout value. Default value is 10.0.
39465
39466       maxiter
39467           Set the maximum of iterations performed by the rendering algorithm.
39468           Default value is 7189.
39469
39470       outer
39471           Set outer coloring mode.  It shall assume one of following values:
39472
39473           iteration_count
39474               Set iteration count mode.
39475
39476           normalized_iteration_count
39477               set normalized iteration count mode.
39478
39479           Default value is normalized_iteration_count.
39480
39481       rate, r
39482           Set frame rate, expressed as number of frames per second. Default
39483           value is "25".
39484
39485       size, s
39486           Set frame size. For the syntax of this option, check the "Video
39487           size" section in the ffmpeg-utils manual. Default value is
39488           "640x480".
39489
39490       start_scale
39491           Set the initial scale value. Default value is 3.0.
39492
39493       start_x
39494           Set the initial x position. Must be a floating point value between
39495           -100 and 100. Default value is
39496           -0.743643887037158704752191506114774.
39497
39498       start_y
39499           Set the initial y position. Must be a floating point value between
39500           -100 and 100. Default value is
39501           -0.131825904205311970493132056385139.
39502
39503   mptestsrc
39504       Generate various test patterns, as generated by the MPlayer test
39505       filter.
39506
39507       The size of the generated video is fixed, and is 256x256.  This source
39508       is useful in particular for testing encoding features.
39509
39510       This source accepts the following options:
39511
39512       rate, r
39513           Specify the frame rate of the sourced video, as the number of
39514           frames generated per second. It has to be a string in the format
39515           frame_rate_num/frame_rate_den, an integer number, a floating point
39516           number or a valid video frame rate abbreviation. The default value
39517           is "25".
39518
39519       duration, d
39520           Set the duration of the sourced video. See the Time duration
39521           section in the ffmpeg-utils(1) manual for the accepted syntax.
39522
39523           If not specified, or the expressed duration is negative, the video
39524           is supposed to be generated forever.
39525
39526       test, t
39527           Set the number or the name of the test to perform. Supported tests
39528           are:
39529
39530           dc_luma
39531           dc_chroma
39532           freq_luma
39533           freq_chroma
39534           amp_luma
39535           amp_chroma
39536           cbp
39537           mv
39538           ring1
39539           ring2
39540           all
39541           max_frames, m
39542               Set the maximum number of frames generated for each test,
39543               default value is 30.
39544
39545           Default value is "all", which will cycle through the list of all
39546           tests.
39547
39548       Some examples:
39549
39550               mptestsrc=t=dc_luma
39551
39552       will generate a "dc_luma" test pattern.
39553
39554   frei0r_src
39555       Provide a frei0r source.
39556
39557       To enable compilation of this filter you need to install the frei0r
39558       header and configure FFmpeg with "--enable-frei0r".
39559
39560       This source accepts the following parameters:
39561
39562       size
39563           The size of the video to generate. For the syntax of this option,
39564           check the "Video size" section in the ffmpeg-utils manual.
39565
39566       framerate
39567           The framerate of the generated video. It may be a string of the
39568           form num/den or a frame rate abbreviation.
39569
39570       filter_name
39571           The name to the frei0r source to load. For more information
39572           regarding frei0r and how to set the parameters, read the frei0r
39573           section in the video filters documentation.
39574
39575       filter_params
39576           A '|'-separated list of parameters to pass to the frei0r source.
39577
39578       For example, to generate a frei0r partik0l source with size 200x200 and
39579       frame rate 10 which is overlaid on the overlay filter main input:
39580
39581               frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
39582
39583   life
39584       Generate a life pattern.
39585
39586       This source is based on a generalization of John Conway's life game.
39587
39588       The sourced input represents a life grid, each pixel represents a cell
39589       which can be in one of two possible states, alive or dead. Every cell
39590       interacts with its eight neighbours, which are the cells that are
39591       horizontally, vertically, or diagonally adjacent.
39592
39593       At each interaction the grid evolves according to the adopted rule,
39594       which specifies the number of neighbor alive cells which will make a
39595       cell stay alive or born. The rule option allows one to specify the rule
39596       to adopt.
39597
39598       This source accepts the following options:
39599
39600       filename, f
39601           Set the file from which to read the initial grid state. In the
39602           file, each non-whitespace character is considered an alive cell,
39603           and newline is used to delimit the end of each row.
39604
39605           If this option is not specified, the initial grid is generated
39606           randomly.
39607
39608       rate, r
39609           Set the video rate, that is the number of frames generated per
39610           second.  Default is 25.
39611
39612       random_fill_ratio, ratio
39613           Set the random fill ratio for the initial random grid. It is a
39614           floating point number value ranging from 0 to 1, defaults to 1/PHI.
39615           It is ignored when a file is specified.
39616
39617       random_seed, seed
39618           Set the seed for filling the initial random grid, must be an
39619           integer included between 0 and UINT32_MAX. If not specified, or if
39620           explicitly set to -1, the filter will try to use a good random seed
39621           on a best effort basis.
39622
39623       rule
39624           Set the life rule.
39625
39626           A rule can be specified with a code of the kind "SNS/BNB", where NS
39627           and NB are sequences of numbers in the range 0-8, NS specifies the
39628           number of alive neighbor cells which make a live cell stay alive,
39629           and NB the number of alive neighbor cells which make a dead cell to
39630           become alive (i.e. to "born").  "s" and "b" can be used in place of
39631           "S" and "B", respectively.
39632
39633           Alternatively a rule can be specified by an 18-bits integer. The 9
39634           high order bits are used to encode the next cell state if it is
39635           alive for each number of neighbor alive cells, the low order bits
39636           specify the rule for "borning" new cells. Higher order bits encode
39637           for an higher number of neighbor cells.  For example the number
39638           6153 = "(12<<9)+9" specifies a stay alive rule of 12 and a born
39639           rule of 9, which corresponds to "S23/B03".
39640
39641           Default value is "S23/B3", which is the original Conway's game of
39642           life rule, and will keep a cell alive if it has 2 or 3 neighbor
39643           alive cells, and will born a new cell if there are three alive
39644           cells around a dead cell.
39645
39646       size, s
39647           Set the size of the output video. For the syntax of this option,
39648           check the "Video size" section in the ffmpeg-utils manual.
39649
39650           If filename is specified, the size is set by default to the same
39651           size of the input file. If size is set, it must contain the size
39652           specified in the input file, and the initial grid defined in that
39653           file is centered in the larger resulting area.
39654
39655           If a filename is not specified, the size value defaults to
39656           "320x240" (used for a randomly generated initial grid).
39657
39658       stitch
39659           If set to 1, stitch the left and right grid edges together, and the
39660           top and bottom edges also. Defaults to 1.
39661
39662       mold
39663           Set cell mold speed. If set, a dead cell will go from death_color
39664           to mold_color with a step of mold. mold can have a value from 0 to
39665           255.
39666
39667       life_color
39668           Set the color of living (or new born) cells.
39669
39670       death_color
39671           Set the color of dead cells. If mold is set, this is the first
39672           color used to represent a dead cell.
39673
39674       mold_color
39675           Set mold color, for definitely dead and moldy cells.
39676
39677           For the syntax of these 3 color options, check the "Color" section
39678           in the ffmpeg-utils manual.
39679
39680       Examples
39681
39682       •   Read a grid from pattern, and center it on a grid of size 300x300
39683           pixels:
39684
39685                   life=f=pattern:s=300x300
39686
39687       •   Generate a random grid of size 200x200, with a fill ratio of 2/3:
39688
39689                   life=ratio=2/3:s=200x200
39690
39691       •   Specify a custom rule for evolving a randomly generated grid:
39692
39693                   life=rule=S14/B34
39694
39695       •   Full example with slow death effect (mold) using ffplay:
39696
39697                   ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
39698
39699   allrgb, allyuv, color, colorspectrum, haldclutsrc, nullsrc, pal75bars,
39700       pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc, testsrc2,
39701       yuvtestsrc
39702       The "allrgb" source returns frames of size 4096x4096 of all rgb colors.
39703
39704       The "allyuv" source returns frames of size 4096x4096 of all yuv colors.
39705
39706       The "color" source provides an uniformly colored input.
39707
39708       The "colorspectrum" source provides a color spectrum input.
39709
39710       The "haldclutsrc" source provides an identity Hald CLUT. See also
39711       haldclut filter.
39712
39713       The "nullsrc" source returns unprocessed video frames. It is mainly
39714       useful to be employed in analysis / debugging tools, or as the source
39715       for filters which ignore the input data.
39716
39717       The "pal75bars" source generates a color bars pattern, based on EBU PAL
39718       recommendations with 75% color levels.
39719
39720       The "pal100bars" source generates a color bars pattern, based on EBU
39721       PAL recommendations with 100% color levels.
39722
39723       The "rgbtestsrc" source generates an RGB test pattern useful for
39724       detecting RGB vs BGR issues. You should see a red, green and blue
39725       stripe from top to bottom.
39726
39727       The "smptebars" source generates a color bars pattern, based on the
39728       SMPTE Engineering Guideline EG 1-1990.
39729
39730       The "smptehdbars" source generates a color bars pattern, based on the
39731       SMPTE RP 219-2002.
39732
39733       The "testsrc" source generates a test video pattern, showing a color
39734       pattern, a scrolling gradient and a timestamp. This is mainly intended
39735       for testing purposes.
39736
39737       The "testsrc2" source is similar to testsrc, but supports more pixel
39738       formats instead of just "rgb24". This allows using it as an input for
39739       other tests without requiring a format conversion.
39740
39741       The "yuvtestsrc" source generates an YUV test pattern. You should see a
39742       y, cb and cr stripe from top to bottom.
39743
39744       The sources accept the following parameters:
39745
39746       level
39747           Specify the level of the Hald CLUT, only available in the
39748           "haldclutsrc" source. A level of "N" generates a picture of "N*N*N"
39749           by "N*N*N" pixels to be used as identity matrix for 3D lookup
39750           tables. Each component is coded on a "1/(N*N)" scale.
39751
39752       color, c
39753           Specify the color of the source, only available in the "color"
39754           source. For the syntax of this option, check the "Color" section in
39755           the ffmpeg-utils manual.
39756
39757       size, s
39758           Specify the size of the sourced video. For the syntax of this
39759           option, check the "Video size" section in the ffmpeg-utils manual.
39760           The default value is "320x240".
39761
39762           This option is not available with the "allrgb", "allyuv", and
39763           "haldclutsrc" filters.
39764
39765       rate, r
39766           Specify the frame rate of the sourced video, as the number of
39767           frames generated per second. It has to be a string in the format
39768           frame_rate_num/frame_rate_den, an integer number, a floating point
39769           number or a valid video frame rate abbreviation. The default value
39770           is "25".
39771
39772       duration, d
39773           Set the duration of the sourced video. See the Time duration
39774           section in the ffmpeg-utils(1) manual for the accepted syntax.
39775
39776           If not specified, or the expressed duration is negative, the video
39777           is supposed to be generated forever.
39778
39779           Since the frame rate is used as time base, all frames including the
39780           last one will have their full duration. If the specified duration
39781           is not a multiple of the frame duration, it will be rounded up.
39782
39783       sar Set the sample aspect ratio of the sourced video.
39784
39785       alpha
39786           Specify the alpha (opacity) of the background, only available in
39787           the "testsrc2" source. The value must be between 0 (fully
39788           transparent) and 255 (fully opaque, the default).
39789
39790       decimals, n
39791           Set the number of decimals to show in the timestamp, only available
39792           in the "testsrc" source.
39793
39794           The displayed timestamp value will correspond to the original
39795           timestamp value multiplied by the power of 10 of the specified
39796           value. Default value is 0.
39797
39798       type
39799           Set the type of the color spectrum, only available in the
39800           "colorspectrum" source. Can be one of the following:
39801
39802           black
39803           white
39804           all
39805
39806       Examples
39807
39808       •   Generate a video with a duration of 5.3 seconds, with size 176x144
39809           and a frame rate of 10 frames per second:
39810
39811                   testsrc=duration=5.3:size=qcif:rate=10
39812
39813       •   The following graph description will generate a red source with an
39814           opacity of 0.2, with size "qcif" and a frame rate of 10 frames per
39815           second:
39816
39817                   color=c=red@0.2:s=qcif:r=10
39818
39819       •   If the input content is to be ignored, "nullsrc" can be used. The
39820           following command generates noise in the luminance plane by
39821           employing the "geq" filter:
39822
39823                   nullsrc=s=256x256, geq=random(1)*255:128:128
39824
39825       Commands
39826
39827       The "color" source supports the following commands:
39828
39829       c, color
39830           Set the color of the created image. Accepts the same syntax of the
39831           corresponding color option.
39832
39833   openclsrc
39834       Generate video using an OpenCL program.
39835
39836       source
39837           OpenCL program source file.
39838
39839       kernel
39840           Kernel name in program.
39841
39842       size, s
39843           Size of frames to generate.  This must be set.
39844
39845       format
39846           Pixel format to use for the generated frames.  This must be set.
39847
39848       rate, r
39849           Number of frames generated every second.  Default value is '25'.
39850
39851       For details of how the program loading works, see the program_opencl
39852       filter.
39853
39854       Example programs:
39855
39856       •   Generate a colour ramp by setting pixel values from the position of
39857           the pixel in the output image.  (Note that this will work with all
39858           pixel formats, but the generated output will not be the same.)
39859
39860                   __kernel void ramp(__write_only image2d_t dst,
39861                                      unsigned int index)
39862                   {
39863                       int2 loc = (int2)(get_global_id(0), get_global_id(1));
39864
39865                       float4 val;
39866                       val.xy = val.zw = convert_float2(loc) / convert_float2(get_image_dim(dst));
39867
39868                       write_imagef(dst, loc, val);
39869                   }
39870
39871       •   Generate a Sierpinski carpet pattern, panning by a single pixel
39872           each frame.
39873
39874                   __kernel void sierpinski_carpet(__write_only image2d_t dst,
39875                                                   unsigned int index)
39876                   {
39877                       int2 loc = (int2)(get_global_id(0), get_global_id(1));
39878
39879                       float4 value = 0.0f;
39880                       int x = loc.x + index;
39881                       int y = loc.y + index;
39882                       while (x > 0 || y > 0) {
39883                           if (x % 3 == 1 && y % 3 == 1) {
39884                               value = 1.0f;
39885                               break;
39886                           }
39887                           x /= 3;
39888                           y /= 3;
39889                       }
39890
39891                       write_imagef(dst, loc, value);
39892                   }
39893
39894   sierpinski
39895       Generate a Sierpinski carpet/triangle fractal, and randomly pan around.
39896
39897       This source accepts the following options:
39898
39899       size, s
39900           Set frame size. For the syntax of this option, check the "Video
39901           size" section in the ffmpeg-utils manual. Default value is
39902           "640x480".
39903
39904       rate, r
39905           Set frame rate, expressed as number of frames per second. Default
39906           value is "25".
39907
39908       seed
39909           Set seed which is used for random panning.
39910
39911       jump
39912           Set max jump for single pan destination. Allowed range is from 1 to
39913           10000.
39914
39915       type
39916           Set fractal type, can be default "carpet" or "triangle".
39917

VIDEO SINKS

39919       Below is a description of the currently available video sinks.
39920
39921   buffersink
39922       Buffer video frames, and make them available to the end of the filter
39923       graph.
39924
39925       This sink is mainly intended for programmatic use, in particular
39926       through the interface defined in libavfilter/buffersink.h or the
39927       options system.
39928
39929       It accepts a pointer to an AVBufferSinkContext structure, which defines
39930       the incoming buffers' formats, to be passed as the opaque parameter to
39931       "avfilter_init_filter" for initialization.
39932
39933   nullsink
39934       Null video sink: do absolutely nothing with the input video. It is
39935       mainly useful as a template and for use in analysis / debugging tools.
39936

MULTIMEDIA FILTERS

39938       Below is a description of the currently available multimedia filters.
39939
39940   abitscope
39941       Convert input audio to a video output, displaying the audio bit scope.
39942
39943       The filter accepts the following options:
39944
39945       rate, r
39946           Set frame rate, expressed as number of frames per second. Default
39947           value is "25".
39948
39949       size, s
39950           Specify the video size for the output. For the syntax of this
39951           option, check the "Video size" section in the ffmpeg-utils manual.
39952           Default value is "1024x256".
39953
39954       colors
39955           Specify list of colors separated by space or by '|' which will be
39956           used to draw channels. Unrecognized or missing colors will be
39957           replaced by white color.
39958
39959   adrawgraph
39960       Draw a graph using input audio metadata.
39961
39962       See drawgraph
39963
39964   agraphmonitor
39965       See graphmonitor.
39966
39967   ahistogram
39968       Convert input audio to a video output, displaying the volume histogram.
39969
39970       The filter accepts the following options:
39971
39972       dmode
39973           Specify how histogram is calculated.
39974
39975           It accepts the following values:
39976
39977           single
39978               Use single histogram for all channels.
39979
39980           separate
39981               Use separate histogram for each channel.
39982
39983           Default is "single".
39984
39985       rate, r
39986           Set frame rate, expressed as number of frames per second. Default
39987           value is "25".
39988
39989       size, s
39990           Specify the video size for the output. For the syntax of this
39991           option, check the "Video size" section in the ffmpeg-utils manual.
39992           Default value is "hd720".
39993
39994       scale
39995           Set display scale.
39996
39997           It accepts the following values:
39998
39999           log logarithmic
40000
40001           sqrt
40002               square root
40003
40004           cbrt
40005               cubic root
40006
40007           lin linear
40008
40009           rlog
40010               reverse logarithmic
40011
40012           Default is "log".
40013
40014       ascale
40015           Set amplitude scale.
40016
40017           It accepts the following values:
40018
40019           log logarithmic
40020
40021           lin linear
40022
40023           Default is "log".
40024
40025       acount
40026           Set how much frames to accumulate in histogram.  Default is 1.
40027           Setting this to -1 accumulates all frames.
40028
40029       rheight
40030           Set histogram ratio of window height.
40031
40032       slide
40033           Set sonogram sliding.
40034
40035           It accepts the following values:
40036
40037           replace
40038               replace old rows with new ones.
40039
40040           scroll
40041               scroll from top to bottom.
40042
40043           Default is "replace".
40044
40045   aphasemeter
40046       Measures phase of input audio, which is exported as metadata
40047       "lavfi.aphasemeter.phase", representing mean phase of current audio
40048       frame. A video output can also be produced and is enabled by default.
40049       The audio is passed through as first output.
40050
40051       Audio will be rematrixed to stereo if it has a different channel
40052       layout. Phase value is in range "[-1, 1]" where "-1" means left and
40053       right channels are completely out of phase and 1 means channels are in
40054       phase.
40055
40056       The filter accepts the following options, all related to its video
40057       output:
40058
40059       rate, r
40060           Set the output frame rate. Default value is 25.
40061
40062       size, s
40063           Set the video size for the output. For the syntax of this option,
40064           check the "Video size" section in the ffmpeg-utils manual.  Default
40065           value is "800x400".
40066
40067       rc
40068       gc
40069       bc  Specify the red, green, blue contrast. Default values are 2, 7 and
40070           1.  Allowed range is "[0, 255]".
40071
40072       mpc Set color which will be used for drawing median phase. If color is
40073           "none" which is default, no median phase value will be drawn.
40074
40075       video
40076           Enable video output. Default is enabled.
40077
40078       phasing detection
40079
40080       The filter also detects out of phase and mono sequences in stereo
40081       streams.  It logs the sequence start, end and duration when it lasts
40082       longer or as long as the minimum set.
40083
40084       The filter accepts the following options for this detection:
40085
40086       phasing
40087           Enable mono and out of phase detection. Default is disabled.
40088
40089       tolerance, t
40090           Set phase tolerance for mono detection, in amplitude ratio. Default
40091           is 0.  Allowed range is "[0, 1]".
40092
40093       angle, a
40094           Set angle threshold for out of phase detection, in degree. Default
40095           is 170.  Allowed range is "[90, 180]".
40096
40097       duration, d
40098           Set mono or out of phase duration until notification, expressed in
40099           seconds. Default is 2.
40100
40101       Examples
40102
40103       •   Complete example with ffmpeg to detect 1 second of mono with 0.001
40104           phase tolerance:
40105
40106                   ffmpeg -i stereo.wav -af aphasemeter=video=0:phasing=1:duration=1:tolerance=0.001 -f null -
40107
40108   avectorscope
40109       Convert input audio to a video output, representing the audio vector
40110       scope.
40111
40112       The filter is used to measure the difference between channels of stereo
40113       audio stream. A monaural signal, consisting of identical left and right
40114       signal, results in straight vertical line. Any stereo separation is
40115       visible as a deviation from this line, creating a Lissajous figure.  If
40116       the straight (or deviation from it) but horizontal line appears this
40117       indicates that the left and right channels are out of phase.
40118
40119       The filter accepts the following options:
40120
40121       mode, m
40122           Set the vectorscope mode.
40123
40124           Available values are:
40125
40126           lissajous
40127               Lissajous rotated by 45 degrees.
40128
40129           lissajous_xy
40130               Same as above but not rotated.
40131
40132           polar
40133               Shape resembling half of circle.
40134
40135           Default value is lissajous.
40136
40137       size, s
40138           Set the video size for the output. For the syntax of this option,
40139           check the "Video size" section in the ffmpeg-utils manual.  Default
40140           value is "400x400".
40141
40142       rate, r
40143           Set the output frame rate. Default value is 25.
40144
40145       rc
40146       gc
40147       bc
40148       ac  Specify the red, green, blue and alpha contrast. Default values are
40149           40, 160, 80 and 255.  Allowed range is "[0, 255]".
40150
40151       rf
40152       gf
40153       bf
40154       af  Specify the red, green, blue and alpha fade. Default values are 15,
40155           10, 5 and 5.  Allowed range is "[0, 255]".
40156
40157       zoom
40158           Set the zoom factor. Default value is 1. Allowed range is "[0,
40159           10]".  Values lower than 1 will auto adjust zoom factor to maximal
40160           possible value.
40161
40162       draw
40163           Set the vectorscope drawing mode.
40164
40165           Available values are:
40166
40167           dot Draw dot for each sample.
40168
40169           line
40170               Draw line between previous and current sample.
40171
40172           Default value is dot.
40173
40174       scale
40175           Specify amplitude scale of audio samples.
40176
40177           Available values are:
40178
40179           lin Linear.
40180
40181           sqrt
40182               Square root.
40183
40184           cbrt
40185               Cubic root.
40186
40187           log Logarithmic.
40188
40189       swap
40190           Swap left channel axis with right channel axis.
40191
40192       mirror
40193           Mirror axis.
40194
40195           none
40196               No mirror.
40197
40198           x   Mirror only x axis.
40199
40200           y   Mirror only y axis.
40201
40202           xy  Mirror both axis.
40203
40204       Examples
40205
40206       •   Complete example using ffplay:
40207
40208                   ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
40209                                [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
40210
40211       Commands
40212
40213       This filter supports the all above options as commands except options
40214       "size" and "rate".
40215
40216   bench, abench
40217       Benchmark part of a filtergraph.
40218
40219       The filter accepts the following options:
40220
40221       action
40222           Start or stop a timer.
40223
40224           Available values are:
40225
40226           start
40227               Get the current time, set it as frame metadata (using the key
40228               "lavfi.bench.start_time"), and forward the frame to the next
40229               filter.
40230
40231           stop
40232               Get the current time and fetch the "lavfi.bench.start_time"
40233               metadata from the input frame metadata to get the time
40234               difference. Time difference, average, maximum and minimum time
40235               (respectively "t", "avg", "max" and "min") are then printed.
40236               The timestamps are expressed in seconds.
40237
40238       Examples
40239
40240       •   Benchmark selectivecolor filter:
40241
40242                   bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
40243
40244   concat
40245       Concatenate audio and video streams, joining them together one after
40246       the other.
40247
40248       The filter works on segments of synchronized video and audio streams.
40249       All segments must have the same number of streams of each type, and
40250       that will also be the number of streams at output.
40251
40252       The filter accepts the following options:
40253
40254       n   Set the number of segments. Default is 2.
40255
40256       v   Set the number of output video streams, that is also the number of
40257           video streams in each segment. Default is 1.
40258
40259       a   Set the number of output audio streams, that is also the number of
40260           audio streams in each segment. Default is 0.
40261
40262       unsafe
40263           Activate unsafe mode: do not fail if segments have a different
40264           format.
40265
40266       The filter has v+a outputs: first v video outputs, then a audio
40267       outputs.
40268
40269       There are nx(v+a) inputs: first the inputs for the first segment, in
40270       the same order as the outputs, then the inputs for the second segment,
40271       etc.
40272
40273       Related streams do not always have exactly the same duration, for
40274       various reasons including codec frame size or sloppy authoring. For
40275       that reason, related synchronized streams (e.g. a video and its audio
40276       track) should be concatenated at once. The concat filter will use the
40277       duration of the longest stream in each segment (except the last one),
40278       and if necessary pad shorter audio streams with silence.
40279
40280       For this filter to work correctly, all segments must start at timestamp
40281       0.
40282
40283       All corresponding streams must have the same parameters in all
40284       segments; the filtering system will automatically select a common pixel
40285       format for video streams, and a common sample format, sample rate and
40286       channel layout for audio streams, but other settings, such as
40287       resolution, must be converted explicitly by the user.
40288
40289       Different frame rates are acceptable but will result in variable frame
40290       rate at output; be sure to configure the output file to handle it.
40291
40292       Examples
40293
40294       •   Concatenate an opening, an episode and an ending, all in bilingual
40295           version (video in stream 0, audio in streams 1 and 2):
40296
40297                   ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \
40298                     '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]
40299                      concat=n=3:v=1:a=2 [v] [a1] [a2]' \
40300                     -map '[v]' -map '[a1]' -map '[a2]' output.mkv
40301
40302       •   Concatenate two parts, handling audio and video separately, using
40303           the (a)movie sources, and adjusting the resolution:
40304
40305                   movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
40306                   movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
40307                   [v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
40308
40309           Note that a desync will happen at the stitch if the audio and video
40310           streams do not have exactly the same duration in the first file.
40311
40312       Commands
40313
40314       This filter supports the following commands:
40315
40316       next
40317           Close the current segment and step to the next one
40318
40319   ebur128
40320       EBU R128 scanner filter. This filter takes an audio stream and analyzes
40321       its loudness level. By default, it logs a message at a frequency of
40322       10Hz with the Momentary loudness (identified by "M"), Short-term
40323       loudness ("S"), Integrated loudness ("I") and Loudness Range ("LRA").
40324
40325       The filter can only analyze streams which have sample format is double-
40326       precision floating point. The input stream will be converted to this
40327       specification, if needed. Users may need to insert aformat and/or
40328       aresample filters after this filter to obtain the original parameters.
40329
40330       The filter also has a video output (see the video option) with a real
40331       time graph to observe the loudness evolution. The graphic contains the
40332       logged message mentioned above, so it is not printed anymore when this
40333       option is set, unless the verbose logging is set. The main graphing
40334       area contains the short-term loudness (3 seconds of analysis), and the
40335       gauge on the right is for the momentary loudness (400 milliseconds),
40336       but can optionally be configured to instead display short-term loudness
40337       (see gauge).
40338
40339       The green area marks a  +/- 1LU target range around the target loudness
40340       (-23LUFS by default, unless modified through target).
40341
40342       More information about the Loudness Recommendation EBU R128 on
40343       <http://tech.ebu.ch/loudness>.
40344
40345       The filter accepts the following options:
40346
40347       video
40348           Activate the video output. The audio stream is passed unchanged
40349           whether this option is set or no. The video stream will be the
40350           first output stream if activated. Default is 0.
40351
40352       size
40353           Set the video size. This option is for video only. For the syntax
40354           of this option, check the "Video size" section in the ffmpeg-utils
40355           manual.  Default and minimum resolution is "640x480".
40356
40357       meter
40358           Set the EBU scale meter. Default is 9. Common values are 9 and 18,
40359           respectively for EBU scale meter +9 and EBU scale meter +18. Any
40360           other integer value between this range is allowed.
40361
40362       metadata
40363           Set metadata injection. If set to 1, the audio input will be
40364           segmented into 100ms output frames, each of them containing various
40365           loudness information in metadata.  All the metadata keys are
40366           prefixed with "lavfi.r128.".
40367
40368           Default is 0.
40369
40370       framelog
40371           Force the frame logging level.
40372
40373           Available values are:
40374
40375           info
40376               information logging level
40377
40378           verbose
40379               verbose logging level
40380
40381           By default, the logging level is set to info. If the video or the
40382           metadata options are set, it switches to verbose.
40383
40384       peak
40385           Set peak mode(s).
40386
40387           Available modes can be cumulated (the option is a "flag" type).
40388           Possible values are:
40389
40390           none
40391               Disable any peak mode (default).
40392
40393           sample
40394               Enable sample-peak mode.
40395
40396               Simple peak mode looking for the higher sample value. It logs a
40397               message for sample-peak (identified by "SPK").
40398
40399           true
40400               Enable true-peak mode.
40401
40402               If enabled, the peak lookup is done on an over-sampled version
40403               of the input stream for better peak accuracy. It logs a message
40404               for true-peak.  (identified by "TPK") and true-peak per frame
40405               (identified by "FTPK").  This mode requires a build with
40406               "libswresample".
40407
40408       dualmono
40409           Treat mono input files as "dual mono". If a mono file is intended
40410           for playback on a stereo system, its EBU R128 measurement will be
40411           perceptually incorrect.  If set to "true", this option will
40412           compensate for this effect.  Multi-channel input files are not
40413           affected by this option.
40414
40415       panlaw
40416           Set a specific pan law to be used for the measurement of dual mono
40417           files.  This parameter is optional, and has a default value of
40418           -3.01dB.
40419
40420       target
40421           Set a specific target level (in LUFS) used as relative zero in the
40422           visualization.  This parameter is optional and has a default value
40423           of -23LUFS as specified by EBU R128. However, material published
40424           online may prefer a level of -16LUFS (e.g. for use with podcasts or
40425           video platforms).
40426
40427       gauge
40428           Set the value displayed by the gauge. Valid values are "momentary"
40429           and s "shortterm". By default the momentary value will be used, but
40430           in certain scenarios it may be more useful to observe the short
40431           term value instead (e.g.  live mixing).
40432
40433       scale
40434           Sets the display scale for the loudness. Valid parameters are
40435           "absolute" (in LUFS) or "relative" (LU) relative to the target.
40436           This only affects the video output, not the summary or continuous
40437           log output.
40438
40439       Examples
40440
40441       •   Real-time graph using ffplay, with a EBU scale meter +18:
40442
40443                   ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
40444
40445       •   Run an analysis with ffmpeg:
40446
40447                   ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
40448
40449   interleave, ainterleave
40450       Temporally interleave frames from several inputs.
40451
40452       "interleave" works with video inputs, "ainterleave" with audio.
40453
40454       These filters read frames from several inputs and send the oldest
40455       queued frame to the output.
40456
40457       Input streams must have well defined, monotonically increasing frame
40458       timestamp values.
40459
40460       In order to submit one frame to output, these filters need to enqueue
40461       at least one frame for each input, so they cannot work in case one
40462       input is not yet terminated and will not receive incoming frames.
40463
40464       For example consider the case when one input is a "select" filter which
40465       always drops input frames. The "interleave" filter will keep reading
40466       from that input, but it will never be able to send new frames to output
40467       until the input sends an end-of-stream signal.
40468
40469       Also, depending on inputs synchronization, the filters will drop frames
40470       in case one input receives more frames than the other ones, and the
40471       queue is already filled.
40472
40473       These filters accept the following options:
40474
40475       nb_inputs, n
40476           Set the number of different inputs, it is 2 by default.
40477
40478       duration
40479           How to determine the end-of-stream.
40480
40481           longest
40482               The duration of the longest input. (default)
40483
40484           shortest
40485               The duration of the shortest input.
40486
40487           first
40488               The duration of the first input.
40489
40490       Examples
40491
40492       •   Interleave frames belonging to different streams using ffmpeg:
40493
40494                   ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
40495
40496       •   Add flickering blur effect:
40497
40498                   select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
40499
40500   latency, alatency
40501       Measure filtering latency.
40502
40503       Report previous filter filtering latency, delay in number of audio
40504       samples for audio filters or number of video frames for video filters.
40505
40506       On end of input stream, filter will report min and max measured latency
40507       for previous running filter in filtergraph.
40508
40509   metadata, ametadata
40510       Manipulate frame metadata.
40511
40512       This filter accepts the following options:
40513
40514       mode
40515           Set mode of operation of the filter.
40516
40517           Can be one of the following:
40518
40519           select
40520               If both "value" and "key" is set, select frames which have such
40521               metadata. If only "key" is set, select every frame that has
40522               such key in metadata.
40523
40524           add Add new metadata "key" and "value". If key is already available
40525               do nothing.
40526
40527           modify
40528               Modify value of already present key.
40529
40530           delete
40531               If "value" is set, delete only keys that have such value.
40532               Otherwise, delete key. If "key" is not set, delete all metadata
40533               values in the frame.
40534
40535           print
40536               Print key and its value if metadata was found. If "key" is not
40537               set print all metadata values available in frame.
40538
40539       key Set key used with all modes. Must be set for all modes except
40540           "print" and "delete".
40541
40542       value
40543           Set metadata value which will be used. This option is mandatory for
40544           "modify" and "add" mode.
40545
40546       function
40547           Which function to use when comparing metadata value and "value".
40548
40549           Can be one of following:
40550
40551           same_str
40552               Values are interpreted as strings, returns true if metadata
40553               value is same as "value".
40554
40555           starts_with
40556               Values are interpreted as strings, returns true if metadata
40557               value starts with the "value" option string.
40558
40559           less
40560               Values are interpreted as floats, returns true if metadata
40561               value is less than "value".
40562
40563           equal
40564               Values are interpreted as floats, returns true if "value" is
40565               equal with metadata value.
40566
40567           greater
40568               Values are interpreted as floats, returns true if metadata
40569               value is greater than "value".
40570
40571           expr
40572               Values are interpreted as floats, returns true if expression
40573               from option "expr" evaluates to true.
40574
40575           ends_with
40576               Values are interpreted as strings, returns true if metadata
40577               value ends with the "value" option string.
40578
40579       expr
40580           Set expression which is used when "function" is set to "expr".  The
40581           expression is evaluated through the eval API and can contain the
40582           following constants:
40583
40584           VALUE1, FRAMEVAL
40585               Float representation of "value" from metadata key.
40586
40587           VALUE2, USERVAL
40588               Float representation of "value" as supplied by user in "value"
40589               option.
40590
40591       file
40592           If specified in "print" mode, output is written to the named file.
40593           Instead of plain filename any writable url can be specified.
40594           Filename ``-'' is a shorthand for standard output. If "file" option
40595           is not set, output is written to the log with AV_LOG_INFO loglevel.
40596
40597       direct
40598           Reduces buffering in print mode when output is written to a URL set
40599           using file.
40600
40601       Examples
40602
40603       •   Print all metadata values for frames with key
40604           "lavfi.signalstats.YDIF" with values between 0 and 1.
40605
40606                   signalstats,metadata=print:key=lavfi.signalstats.YDIF:value=0:function=expr:expr='between(VALUE1,0,1)'
40607
40608       •   Print silencedetect output to file metadata.txt.
40609
40610                   silencedetect,ametadata=mode=print:file=metadata.txt
40611
40612       •   Direct all metadata to a pipe with file descriptor 4.
40613
40614                   metadata=mode=print:file='pipe\:4'
40615
40616   perms, aperms
40617       Set read/write permissions for the output frames.
40618
40619       These filters are mainly aimed at developers to test direct path in the
40620       following filter in the filtergraph.
40621
40622       The filters accept the following options:
40623
40624       mode
40625           Select the permissions mode.
40626
40627           It accepts the following values:
40628
40629           none
40630               Do nothing. This is the default.
40631
40632           ro  Set all the output frames read-only.
40633
40634           rw  Set all the output frames directly writable.
40635
40636           toggle
40637               Make the frame read-only if writable, and writable if read-
40638               only.
40639
40640           random
40641               Set each output frame read-only or writable randomly.
40642
40643       seed
40644           Set the seed for the random mode, must be an integer included
40645           between 0 and "UINT32_MAX". If not specified, or if explicitly set
40646           to "-1", the filter will try to use a good random seed on a best
40647           effort basis.
40648
40649       Note: in case of auto-inserted filter between the permission filter and
40650       the following one, the permission might not be received as expected in
40651       that following filter. Inserting a format or aformat filter before the
40652       perms/aperms filter can avoid this problem.
40653
40654   realtime, arealtime
40655       Slow down filtering to match real time approximately.
40656
40657       These filters will pause the filtering for a variable amount of time to
40658       match the output rate with the input timestamps.  They are similar to
40659       the re option to "ffmpeg".
40660
40661       They accept the following options:
40662
40663       limit
40664           Time limit for the pauses. Any pause longer than that will be
40665           considered a timestamp discontinuity and reset the timer. Default
40666           is 2 seconds.
40667
40668       speed
40669           Speed factor for processing. The value must be a float larger than
40670           zero.  Values larger than 1.0 will result in faster than realtime
40671           processing, smaller will slow processing down. The limit is
40672           automatically adapted accordingly. Default is 1.0.
40673
40674           A processing speed faster than what is possible without these
40675           filters cannot be achieved.
40676
40677   segment, asegment
40678       Split single input stream into multiple streams.
40679
40680       This filter does opposite of concat filters.
40681
40682       "segment" works on video frames, "asegment" on audio samples.
40683
40684       This filter accepts the following options:
40685
40686       timestamps
40687           Timestamps of output segments separated by '|'. The first segment
40688           will run from the beginning of the input stream. The last segment
40689           will run until the end of the input stream
40690
40691       frames, samples
40692           Exact frame/sample count to split the segments.
40693
40694       In all cases, prefixing an each segment with '+' will make it relative
40695       to the previous segment.
40696
40697       Examples
40698
40699       •   Split input audio stream into three output audio streams, starting
40700           at start of input audio stream and storing that in 1st output audio
40701           stream, then following at 60th second and storing than in 2nd
40702           output audio stream, and last after 150th second of input audio
40703           stream store in 3rd output audio stream:
40704
40705                   asegment=timestamps="60|150"
40706
40707   select, aselect
40708       Select frames to pass in output.
40709
40710       This filter accepts the following options:
40711
40712       expr, e
40713           Set expression, which is evaluated for each input frame.
40714
40715           If the expression is evaluated to zero, the frame is discarded.
40716
40717           If the evaluation result is negative or NaN, the frame is sent to
40718           the first output; otherwise it is sent to the output with index
40719           "ceil(val)-1", assuming that the input index starts from 0.
40720
40721           For example a value of 1.2 corresponds to the output with index
40722           "ceil(1.2)-1 = 2-1 = 1", that is the second output.
40723
40724       outputs, n
40725           Set the number of outputs. The output to which to send the selected
40726           frame is based on the result of the evaluation. Default value is 1.
40727
40728       The expression can contain the following constants:
40729
40730       n   The (sequential) number of the filtered frame, starting from 0.
40731
40732       selected_n
40733           The (sequential) number of the selected frame, starting from 0.
40734
40735       prev_selected_n
40736           The sequential number of the last selected frame. It's NAN if
40737           undefined.
40738
40739       TB  The timebase of the input timestamps.
40740
40741       pts The PTS (Presentation TimeStamp) of the filtered frame, expressed
40742           in TB units. It's NAN if undefined.
40743
40744       t   The PTS of the filtered frame, expressed in seconds. It's NAN if
40745           undefined.
40746
40747       prev_pts
40748           The PTS of the previously filtered frame. It's NAN if undefined.
40749
40750       prev_selected_pts
40751           The PTS of the last previously filtered frame. It's NAN if
40752           undefined.
40753
40754       prev_selected_t
40755           The PTS of the last previously selected frame, expressed in
40756           seconds. It's NAN if undefined.
40757
40758       start_pts
40759           The first PTS in the stream which is not NAN. It remains NAN if not
40760           found.
40761
40762       start_t
40763           The first PTS, in seconds, in the stream which is not NAN. It
40764           remains NAN if not found.
40765
40766       pict_type (video only)
40767           The type of the filtered frame. It can assume one of the following
40768           values:
40769
40770           I
40771           P
40772           B
40773           S
40774           SI
40775           SP
40776           BI
40777       interlace_type (video only)
40778           The frame interlace type. It can assume one of the following
40779           values:
40780
40781           PROGRESSIVE
40782               The frame is progressive (not interlaced).
40783
40784           TOPFIRST
40785               The frame is top-field-first.
40786
40787           BOTTOMFIRST
40788               The frame is bottom-field-first.
40789
40790       consumed_sample_n (audio only)
40791           the number of selected samples before the current frame
40792
40793       samples_n (audio only)
40794           the number of samples in the current frame
40795
40796       sample_rate (audio only)
40797           the input sample rate
40798
40799       key This is 1 if the filtered frame is a key-frame, 0 otherwise.
40800
40801       pos the position in the file of the filtered frame, -1 if the
40802           information is not available (e.g. for synthetic video)
40803
40804       scene (video only)
40805           value between 0 and 1 to indicate a new scene; a low value reflects
40806           a low probability for the current frame to introduce a new scene,
40807           while a higher value means the current frame is more likely to be
40808           one (see the example below)
40809
40810       concatdec_select
40811           The concat demuxer can select only part of a concat input file by
40812           setting an inpoint and an outpoint, but the output packets may not
40813           be entirely contained in the selected interval. By using this
40814           variable, it is possible to skip frames generated by the concat
40815           demuxer which are not exactly contained in the selected interval.
40816
40817           This works by comparing the frame pts against the
40818           lavf.concat.start_time and the lavf.concat.duration packet metadata
40819           values which are also present in the decoded frames.
40820
40821           The concatdec_select variable is -1 if the frame pts is at least
40822           start_time and either the duration metadata is missing or the frame
40823           pts is less than start_time + duration, 0 otherwise, and NaN if the
40824           start_time metadata is missing.
40825
40826           That basically means that an input frame is selected if its pts is
40827           within the interval set by the concat demuxer.
40828
40829       The default value of the select expression is "1".
40830
40831       Examples
40832
40833       •   Select all frames in input:
40834
40835                   select
40836
40837           The example above is the same as:
40838
40839                   select=1
40840
40841       •   Skip all frames:
40842
40843                   select=0
40844
40845       •   Select only I-frames:
40846
40847                   select='eq(pict_type\,I)'
40848
40849       •   Select one frame every 100:
40850
40851                   select='not(mod(n\,100))'
40852
40853       •   Select only frames contained in the 10-20 time interval:
40854
40855                   select=between(t\,10\,20)
40856
40857       •   Select only I-frames contained in the 10-20 time interval:
40858
40859                   select=between(t\,10\,20)*eq(pict_type\,I)
40860
40861       •   Select frames with a minimum distance of 10 seconds:
40862
40863                   select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
40864
40865       •   Use aselect to select only audio frames with samples number > 100:
40866
40867                   aselect='gt(samples_n\,100)'
40868
40869       •   Create a mosaic of the first scenes:
40870
40871                   ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
40872
40873           Comparing scene against a value between 0.3 and 0.5 is generally a
40874           sane choice.
40875
40876       •   Send even and odd frames to separate outputs, and compose them:
40877
40878                   select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
40879
40880       •   Select useful frames from an ffconcat file which is using inpoints
40881           and outpoints but where the source files are not intra frame only.
40882
40883                   ffmpeg -copyts -vsync 0 -segment_time_metadata 1 -i input.ffconcat -vf select=concatdec_select -af aselect=concatdec_select output.avi
40884
40885   sendcmd, asendcmd
40886       Send commands to filters in the filtergraph.
40887
40888       These filters read commands to be sent to other filters in the
40889       filtergraph.
40890
40891       "sendcmd" must be inserted between two video filters, "asendcmd" must
40892       be inserted between two audio filters, but apart from that they act the
40893       same way.
40894
40895       The specification of commands can be provided in the filter arguments
40896       with the commands option, or in a file specified by the filename
40897       option.
40898
40899       These filters accept the following options:
40900
40901       commands, c
40902           Set the commands to be read and sent to the other filters.
40903
40904       filename, f
40905           Set the filename of the commands to be read and sent to the other
40906           filters.
40907
40908       Commands syntax
40909
40910       A commands description consists of a sequence of interval
40911       specifications, comprising a list of commands to be executed when a
40912       particular event related to that interval occurs. The occurring event
40913       is typically the current frame time entering or leaving a given time
40914       interval.
40915
40916       An interval is specified by the following syntax:
40917
40918               <START>[-<END>] <COMMANDS>;
40919
40920       The time interval is specified by the START and END times.  END is
40921       optional and defaults to the maximum time.
40922
40923       The current frame time is considered within the specified interval if
40924       it is included in the interval [START, END), that is when the time is
40925       greater or equal to START and is lesser than END.
40926
40927       COMMANDS consists of a sequence of one or more command specifications,
40928       separated by ",", relating to that interval.  The syntax of a command
40929       specification is given by:
40930
40931               [<FLAGS>] <TARGET> <COMMAND> <ARG>
40932
40933       FLAGS is optional and specifies the type of events relating to the time
40934       interval which enable sending the specified command, and must be a non-
40935       null sequence of identifier flags separated by "+" or "|" and enclosed
40936       between "[" and "]".
40937
40938       The following flags are recognized:
40939
40940       enter
40941           The command is sent when the current frame timestamp enters the
40942           specified interval. In other words, the command is sent when the
40943           previous frame timestamp was not in the given interval, and the
40944           current is.
40945
40946       leave
40947           The command is sent when the current frame timestamp leaves the
40948           specified interval. In other words, the command is sent when the
40949           previous frame timestamp was in the given interval, and the current
40950           is not.
40951
40952       expr
40953           The command ARG is interpreted as expression and result of
40954           expression is passed as ARG.
40955
40956           The expression is evaluated through the eval API and can contain
40957           the following constants:
40958
40959           POS Original position in the file of the frame, or undefined if
40960               undefined for the current frame.
40961
40962           PTS The presentation timestamp in input.
40963
40964           N   The count of the input frame for video or audio, starting from
40965               0.
40966
40967           T   The time in seconds of the current frame.
40968
40969           TS  The start time in seconds of the current command interval.
40970
40971           TE  The end time in seconds of the current command interval.
40972
40973           TI  The interpolated time of the current command interval, TI = (T
40974               - TS) / (TE - TS).
40975
40976       If FLAGS is not specified, a default value of "[enter]" is assumed.
40977
40978       TARGET specifies the target of the command, usually the name of the
40979       filter class or a specific filter instance name.
40980
40981       COMMAND specifies the name of the command for the target filter.
40982
40983       ARG is optional and specifies the optional list of argument for the
40984       given COMMAND.
40985
40986       Between one interval specification and another, whitespaces, or
40987       sequences of characters starting with "#" until the end of line, are
40988       ignored and can be used to annotate comments.
40989
40990       A simplified BNF description of the commands specification syntax
40991       follows:
40992
40993               <COMMAND_FLAG>  ::= "enter" | "leave"
40994               <COMMAND_FLAGS> ::= <COMMAND_FLAG> [(+|"|")<COMMAND_FLAG>]
40995               <COMMAND>       ::= ["[" <COMMAND_FLAGS> "]"] <TARGET> <COMMAND> [<ARG>]
40996               <COMMANDS>      ::= <COMMAND> [,<COMMANDS>]
40997               <INTERVAL>      ::= <START>[-<END>] <COMMANDS>
40998               <INTERVALS>     ::= <INTERVAL>[;<INTERVALS>]
40999
41000       Examples
41001
41002       •   Specify audio tempo change at second 4:
41003
41004                   asendcmd=c='4.0 atempo tempo 1.5',atempo
41005
41006       •   Target a specific filter instance:
41007
41008                   asendcmd=c='4.0 atempo@my tempo 1.5',atempo@my
41009
41010       •   Specify a list of drawtext and hue commands in a file.
41011
41012                   # show text in the interval 5-10
41013                   5.0-10.0 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=hello world',
41014                            [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=';
41015
41016                   # desaturate the image in the interval 15-20
41017                   15.0-20.0 [enter] hue s 0,
41018                             [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor',
41019                             [leave] hue s 1,
41020                             [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color';
41021
41022                   # apply an exponential saturation fade-out effect, starting from time 25
41023                   25 [enter] hue s exp(25-t)
41024
41025           A filtergraph allowing to read and process the above command list
41026           stored in a file test.cmd, can be specified with:
41027
41028                   sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
41029
41030   setpts, asetpts
41031       Change the PTS (presentation timestamp) of the input frames.
41032
41033       "setpts" works on video frames, "asetpts" on audio frames.
41034
41035       This filter accepts the following options:
41036
41037       expr
41038           The expression which is evaluated for each frame to construct its
41039           timestamp.
41040
41041       The expression is evaluated through the eval API and can contain the
41042       following constants:
41043
41044       FRAME_RATE, FR
41045           frame rate, only defined for constant frame-rate video
41046
41047       PTS The presentation timestamp in input
41048
41049       N   The count of the input frame for video or the number of consumed
41050           samples, not including the current frame for audio, starting from
41051           0.
41052
41053       NB_CONSUMED_SAMPLES
41054           The number of consumed samples, not including the current frame
41055           (only audio)
41056
41057       NB_SAMPLES, S
41058           The number of samples in the current frame (only audio)
41059
41060       SAMPLE_RATE, SR
41061           The audio sample rate.
41062
41063       STARTPTS
41064           The PTS of the first frame.
41065
41066       STARTT
41067           the time in seconds of the first frame
41068
41069       INTERLACED
41070           State whether the current frame is interlaced.
41071
41072       T   the time in seconds of the current frame
41073
41074       POS original position in the file of the frame, or undefined if
41075           undefined for the current frame
41076
41077       PREV_INPTS
41078           The previous input PTS.
41079
41080       PREV_INT
41081           previous input time in seconds
41082
41083       PREV_OUTPTS
41084           The previous output PTS.
41085
41086       PREV_OUTT
41087           previous output time in seconds
41088
41089       RTCTIME
41090           The wallclock (RTC) time in microseconds. This is deprecated, use
41091           time(0) instead.
41092
41093       RTCSTART
41094           The wallclock (RTC) time at the start of the movie in microseconds.
41095
41096       TB  The timebase of the input timestamps.
41097
41098       Examples
41099
41100       •   Start counting PTS from zero
41101
41102                   setpts=PTS-STARTPTS
41103
41104       •   Apply fast motion effect:
41105
41106                   setpts=0.5*PTS
41107
41108       •   Apply slow motion effect:
41109
41110                   setpts=2.0*PTS
41111
41112       •   Set fixed rate of 25 frames per second:
41113
41114                   setpts=N/(25*TB)
41115
41116       •   Set fixed rate 25 fps with some jitter:
41117
41118                   setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
41119
41120       •   Apply an offset of 10 seconds to the input PTS:
41121
41122                   setpts=PTS+10/TB
41123
41124       •   Generate timestamps from a "live source" and rebase onto the
41125           current timebase:
41126
41127                   setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
41128
41129       •   Generate timestamps by counting samples:
41130
41131                   asetpts=N/SR/TB
41132
41133   setrange
41134       Force color range for the output video frame.
41135
41136       The "setrange" filter marks the color range property for the output
41137       frames. It does not change the input frame, but only sets the
41138       corresponding property, which affects how the frame is treated by
41139       following filters.
41140
41141       The filter accepts the following options:
41142
41143       range
41144           Available values are:
41145
41146           auto
41147               Keep the same color range property.
41148
41149           unspecified, unknown
41150               Set the color range as unspecified.
41151
41152           limited, tv, mpeg
41153               Set the color range as limited.
41154
41155           full, pc, jpeg
41156               Set the color range as full.
41157
41158   settb, asettb
41159       Set the timebase to use for the output frames timestamps.  It is mainly
41160       useful for testing timebase configuration.
41161
41162       It accepts the following parameters:
41163
41164       expr, tb
41165           The expression which is evaluated into the output timebase.
41166
41167       The value for tb is an arithmetic expression representing a rational.
41168       The expression can contain the constants "AVTB" (the default timebase),
41169       "intb" (the input timebase) and "sr" (the sample rate, audio only).
41170       Default value is "intb".
41171
41172       Examples
41173
41174       •   Set the timebase to 1/25:
41175
41176                   settb=expr=1/25
41177
41178       •   Set the timebase to 1/10:
41179
41180                   settb=expr=0.1
41181
41182       •   Set the timebase to 1001/1000:
41183
41184                   settb=1+0.001
41185
41186       •   Set the timebase to 2*intb:
41187
41188                   settb=2*intb
41189
41190       •   Set the default timebase value:
41191
41192                   settb=AVTB
41193
41194   showcqt
41195       Convert input audio to a video output representing frequency spectrum
41196       logarithmically using Brown-Puckette constant Q transform algorithm
41197       with direct frequency domain coefficient calculation (but the transform
41198       itself is not really constant Q, instead the Q factor is actually
41199       variable/clamped), with musical tone scale, from E0 to D#10.
41200
41201       The filter accepts the following options:
41202
41203       size, s
41204           Specify the video size for the output. It must be even. For the
41205           syntax of this option, check the "Video size" section in the
41206           ffmpeg-utils manual.  Default value is "1920x1080".
41207
41208       fps, rate, r
41209           Set the output frame rate. Default value is 25.
41210
41211       bar_h
41212           Set the bargraph height. It must be even. Default value is "-1"
41213           which computes the bargraph height automatically.
41214
41215       axis_h
41216           Set the axis height. It must be even. Default value is "-1" which
41217           computes the axis height automatically.
41218
41219       sono_h
41220           Set the sonogram height. It must be even. Default value is "-1"
41221           which computes the sonogram height automatically.
41222
41223       fullhd
41224           Set the fullhd resolution. This option is deprecated, use size, s
41225           instead. Default value is 1.
41226
41227       sono_v, volume
41228           Specify the sonogram volume expression. It can contain variables:
41229
41230           bar_v
41231               the bar_v evaluated expression
41232
41233           frequency, freq, f
41234               the frequency where it is evaluated
41235
41236           timeclamp, tc
41237               the value of timeclamp option
41238
41239           and functions:
41240
41241           a_weighting(f)
41242               A-weighting of equal loudness
41243
41244           b_weighting(f)
41245               B-weighting of equal loudness
41246
41247           c_weighting(f)
41248               C-weighting of equal loudness.
41249
41250           Default value is 16.
41251
41252       bar_v, volume2
41253           Specify the bargraph volume expression. It can contain variables:
41254
41255           sono_v
41256               the sono_v evaluated expression
41257
41258           frequency, freq, f
41259               the frequency where it is evaluated
41260
41261           timeclamp, tc
41262               the value of timeclamp option
41263
41264           and functions:
41265
41266           a_weighting(f)
41267               A-weighting of equal loudness
41268
41269           b_weighting(f)
41270               B-weighting of equal loudness
41271
41272           c_weighting(f)
41273               C-weighting of equal loudness.
41274
41275           Default value is "sono_v".
41276
41277       sono_g, gamma
41278           Specify the sonogram gamma. Lower gamma makes the spectrum more
41279           contrast, higher gamma makes the spectrum having more range.
41280           Default value is 3.  Acceptable range is "[1, 7]".
41281
41282       bar_g, gamma2
41283           Specify the bargraph gamma. Default value is 1. Acceptable range is
41284           "[1, 7]".
41285
41286       bar_t
41287           Specify the bargraph transparency level. Lower value makes the
41288           bargraph sharper.  Default value is 1. Acceptable range is "[0,
41289           1]".
41290
41291       timeclamp, tc
41292           Specify the transform timeclamp. At low frequency, there is trade-
41293           off between accuracy in time domain and frequency domain. If
41294           timeclamp is lower, event in time domain is represented more
41295           accurately (such as fast bass drum), otherwise event in frequency
41296           domain is represented more accurately (such as bass guitar).
41297           Acceptable range is "[0.002, 1]". Default value is 0.17.
41298
41299       attack
41300           Set attack time in seconds. The default is 0 (disabled). Otherwise,
41301           it limits future samples by applying asymmetric windowing in time
41302           domain, useful when low latency is required. Accepted range is "[0,
41303           1]".
41304
41305       basefreq
41306           Specify the transform base frequency. Default value is
41307           20.01523126408007475, which is frequency 50 cents below E0.
41308           Acceptable range is "[10, 100000]".
41309
41310       endfreq
41311           Specify the transform end frequency. Default value is
41312           20495.59681441799654, which is frequency 50 cents above D#10.
41313           Acceptable range is "[10, 100000]".
41314
41315       coeffclamp
41316           This option is deprecated and ignored.
41317
41318       tlength
41319           Specify the transform length in time domain. Use this option to
41320           control accuracy trade-off between time domain and frequency domain
41321           at every frequency sample.  It can contain variables:
41322
41323           frequency, freq, f
41324               the frequency where it is evaluated
41325
41326           timeclamp, tc
41327               the value of timeclamp option.
41328
41329           Default value is "384*tc/(384+tc*f)".
41330
41331       count
41332           Specify the transform count for every video frame. Default value is
41333           6.  Acceptable range is "[1, 30]".
41334
41335       fcount
41336           Specify the transform count for every single pixel. Default value
41337           is 0, which makes it computed automatically. Acceptable range is
41338           "[0, 10]".
41339
41340       fontfile
41341           Specify font file for use with freetype to draw the axis. If not
41342           specified, use embedded font. Note that drawing with font file or
41343           embedded font is not implemented with custom basefreq and endfreq,
41344           use axisfile option instead.
41345
41346       font
41347           Specify fontconfig pattern. This has lower priority than fontfile.
41348           The ":" in the pattern may be replaced by "|" to avoid unnecessary
41349           escaping.
41350
41351       fontcolor
41352           Specify font color expression. This is arithmetic expression that
41353           should return integer value 0xRRGGBB. It can contain variables:
41354
41355           frequency, freq, f
41356               the frequency where it is evaluated
41357
41358           timeclamp, tc
41359               the value of timeclamp option
41360
41361           and functions:
41362
41363           midi(f)
41364               midi number of frequency f, some midi numbers: E0(16), C1(24),
41365               C2(36), A4(69)
41366
41367           r(x), g(x), b(x)
41368               red, green, and blue value of intensity x.
41369
41370           Default value is "st(0, (midi(f)-59.5)/12); st(1,
41371           if(between(ld(0),0,1), 0.5-0.5*cos(2*PI*ld(0)), 0)); r(1-ld(1)) +
41372           b(ld(1))".
41373
41374       axisfile
41375           Specify image file to draw the axis. This option override fontfile
41376           and fontcolor option.
41377
41378       axis, text
41379           Enable/disable drawing text to the axis. If it is set to 0, drawing
41380           to the axis is disabled, ignoring fontfile and axisfile option.
41381           Default value is 1.
41382
41383       csp Set colorspace. The accepted values are:
41384
41385           unspecified
41386               Unspecified (default)
41387
41388           bt709
41389               BT.709
41390
41391           fcc FCC
41392
41393           bt470bg
41394               BT.470BG or BT.601-6 625
41395
41396           smpte170m
41397               SMPTE-170M or BT.601-6 525
41398
41399           smpte240m
41400               SMPTE-240M
41401
41402           bt2020ncl
41403               BT.2020 with non-constant luminance
41404
41405       cscheme
41406           Set spectrogram color scheme. This is list of floating point values
41407           with format "left_r|left_g|left_b|right_r|right_g|right_b".  The
41408           default is "1|0.5|0|0|0.5|1".
41409
41410       Examples
41411
41412       •   Playing audio while showing the spectrum:
41413
41414                   ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt [out0]'
41415
41416       •   Same as above, but with frame rate 30 fps:
41417
41418                   ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=fps=30:count=5 [out0]'
41419
41420       •   Playing at 1280x720:
41421
41422                   ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=s=1280x720:count=4 [out0]'
41423
41424       •   Disable sonogram display:
41425
41426                   sono_h=0
41427
41428       •   A1 and its harmonics: A1, A2, (near)E3, A3:
41429
41430                   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),
41431                                    asplit[a][out1]; [a] showcqt [out0]'
41432
41433       •   Same as above, but with more accuracy in frequency domain:
41434
41435                   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),
41436                                    asplit[a][out1]; [a] showcqt=timeclamp=0.5 [out0]'
41437
41438       •   Custom volume:
41439
41440                   bar_v=10:sono_v=bar_v*a_weighting(f)
41441
41442       •   Custom gamma, now spectrum is linear to the amplitude.
41443
41444                   bar_g=2:sono_g=2
41445
41446       •   Custom tlength equation:
41447
41448                   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)))'
41449
41450       •   Custom fontcolor and fontfile, C-note is colored green, others are
41451           colored blue:
41452
41453                   fontcolor='if(mod(floor(midi(f)+0.5),12), 0x0000FF, g(1))':fontfile=myfont.ttf
41454
41455       •   Custom font using fontconfig:
41456
41457                   font='Courier New,Monospace,mono|bold'
41458
41459       •   Custom frequency range with custom axis using image file:
41460
41461                   axisfile=myaxis.png:basefreq=40:endfreq=10000
41462
41463   showfreqs
41464       Convert input audio to video output representing the audio power
41465       spectrum.  Audio amplitude is on Y-axis while frequency is on X-axis.
41466
41467       The filter accepts the following options:
41468
41469       size, s
41470           Specify size of video. For the syntax of this option, check the
41471           "Video size" section in the ffmpeg-utils manual.  Default is
41472           "1024x512".
41473
41474       mode
41475           Set display mode.  This set how each frequency bin will be
41476           represented.
41477
41478           It accepts the following values:
41479
41480           line
41481           bar
41482           dot
41483
41484           Default is "bar".
41485
41486       ascale
41487           Set amplitude scale.
41488
41489           It accepts the following values:
41490
41491           lin Linear scale.
41492
41493           sqrt
41494               Square root scale.
41495
41496           cbrt
41497               Cubic root scale.
41498
41499           log Logarithmic scale.
41500
41501           Default is "log".
41502
41503       fscale
41504           Set frequency scale.
41505
41506           It accepts the following values:
41507
41508           lin Linear scale.
41509
41510           log Logarithmic scale.
41511
41512           rlog
41513               Reverse logarithmic scale.
41514
41515           Default is "lin".
41516
41517       win_size
41518           Set window size. Allowed range is from 16 to 65536.
41519
41520           Default is 2048
41521
41522       win_func
41523           Set windowing function.
41524
41525           It accepts the following values:
41526
41527           rect
41528           bartlett
41529           hanning
41530           hamming
41531           blackman
41532           welch
41533           flattop
41534           bharris
41535           bnuttall
41536           bhann
41537           sine
41538           nuttall
41539           lanczos
41540           gauss
41541           tukey
41542           dolph
41543           cauchy
41544           parzen
41545           poisson
41546           bohman
41547
41548           Default is "hanning".
41549
41550       overlap
41551           Set window overlap. In range "[0, 1]". Default is 1, which means
41552           optimal overlap for selected window function will be picked.
41553
41554       averaging
41555           Set time averaging. Setting this to 0 will display current maximal
41556           peaks.  Default is 1, which means time averaging is disabled.
41557
41558       colors
41559           Specify list of colors separated by space or by '|' which will be
41560           used to draw channel frequencies. Unrecognized or missing colors
41561           will be replaced by white color.
41562
41563       cmode
41564           Set channel display mode.
41565
41566           It accepts the following values:
41567
41568           combined
41569           separate
41570
41571           Default is "combined".
41572
41573       minamp
41574           Set minimum amplitude used in "log" amplitude scaler.
41575
41576       data
41577           Set data display mode.
41578
41579           It accepts the following values:
41580
41581           magnitude
41582           phase
41583           delay
41584
41585           Default is "magnitude".
41586
41587   showspatial
41588       Convert stereo input audio to a video output, representing the spatial
41589       relationship between two channels.
41590
41591       The filter accepts the following options:
41592
41593       size, s
41594           Specify the video size for the output. For the syntax of this
41595           option, check the "Video size" section in the ffmpeg-utils manual.
41596           Default value is "512x512".
41597
41598       win_size
41599           Set window size. Allowed range is from 1024 to 65536. Default size
41600           is 4096.
41601
41602       win_func
41603           Set window function.
41604
41605           It accepts the following values:
41606
41607           rect
41608           bartlett
41609           hann
41610           hanning
41611           hamming
41612           blackman
41613           welch
41614           flattop
41615           bharris
41616           bnuttall
41617           bhann
41618           sine
41619           nuttall
41620           lanczos
41621           gauss
41622           tukey
41623           dolph
41624           cauchy
41625           parzen
41626           poisson
41627           bohman
41628
41629           Default value is "hann".
41630
41631       overlap
41632           Set ratio of overlap window. Default value is 0.5.  When value is 1
41633           overlap is set to recommended size for specific window function
41634           currently used.
41635
41636   showspectrum
41637       Convert input audio to a video output, representing the audio frequency
41638       spectrum.
41639
41640       The filter accepts the following options:
41641
41642       size, s
41643           Specify the video size for the output. For the syntax of this
41644           option, check the "Video size" section in the ffmpeg-utils manual.
41645           Default value is "640x512".
41646
41647       slide
41648           Specify how the spectrum should slide along the window.
41649
41650           It accepts the following values:
41651
41652           replace
41653               the samples start again on the left when they reach the right
41654
41655           scroll
41656               the samples scroll from right to left
41657
41658           fullframe
41659               frames are only produced when the samples reach the right
41660
41661           rscroll
41662               the samples scroll from left to right
41663
41664           lreplace
41665               the samples start again on the right when they reach the left
41666
41667           Default value is "replace".
41668
41669       mode
41670           Specify display mode.
41671
41672           It accepts the following values:
41673
41674           combined
41675               all channels are displayed in the same row
41676
41677           separate
41678               all channels are displayed in separate rows
41679
41680           Default value is combined.
41681
41682       color
41683           Specify display color mode.
41684
41685           It accepts the following values:
41686
41687           channel
41688               each channel is displayed in a separate color
41689
41690           intensity
41691               each channel is displayed using the same color scheme
41692
41693           rainbow
41694               each channel is displayed using the rainbow color scheme
41695
41696           moreland
41697               each channel is displayed using the moreland color scheme
41698
41699           nebulae
41700               each channel is displayed using the nebulae color scheme
41701
41702           fire
41703               each channel is displayed using the fire color scheme
41704
41705           fiery
41706               each channel is displayed using the fiery color scheme
41707
41708           fruit
41709               each channel is displayed using the fruit color scheme
41710
41711           cool
41712               each channel is displayed using the cool color scheme
41713
41714           magma
41715               each channel is displayed using the magma color scheme
41716
41717           green
41718               each channel is displayed using the green color scheme
41719
41720           viridis
41721               each channel is displayed using the viridis color scheme
41722
41723           plasma
41724               each channel is displayed using the plasma color scheme
41725
41726           cividis
41727               each channel is displayed using the cividis color scheme
41728
41729           terrain
41730               each channel is displayed using the terrain color scheme
41731
41732           Default value is channel.
41733
41734       scale
41735           Specify scale used for calculating intensity color values.
41736
41737           It accepts the following values:
41738
41739           lin linear
41740
41741           sqrt
41742               square root, default
41743
41744           cbrt
41745               cubic root
41746
41747           log logarithmic
41748
41749           4thrt
41750               4th root
41751
41752           5thrt
41753               5th root
41754
41755           Default value is sqrt.
41756
41757       fscale
41758           Specify frequency scale.
41759
41760           It accepts the following values:
41761
41762           lin linear
41763
41764           log logarithmic
41765
41766           Default value is lin.
41767
41768       saturation
41769           Set saturation modifier for displayed colors. Negative values
41770           provide alternative color scheme. 0 is no saturation at all.
41771           Saturation must be in [-10.0, 10.0] range.  Default value is 1.
41772
41773       win_func
41774           Set window function.
41775
41776           It accepts the following values:
41777
41778           rect
41779           bartlett
41780           hann
41781           hanning
41782           hamming
41783           blackman
41784           welch
41785           flattop
41786           bharris
41787           bnuttall
41788           bhann
41789           sine
41790           nuttall
41791           lanczos
41792           gauss
41793           tukey
41794           dolph
41795           cauchy
41796           parzen
41797           poisson
41798           bohman
41799
41800           Default value is "hann".
41801
41802       orientation
41803           Set orientation of time vs frequency axis. Can be "vertical" or
41804           "horizontal". Default is "vertical".
41805
41806       overlap
41807           Set ratio of overlap window. Default value is 0.  When value is 1
41808           overlap is set to recommended size for specific window function
41809           currently used.
41810
41811       gain
41812           Set scale gain for calculating intensity color values.  Default
41813           value is 1.
41814
41815       data
41816           Set which data to display. Can be "magnitude", default or "phase",
41817           or unwrapped phase: "uphase".
41818
41819       rotation
41820           Set color rotation, must be in [-1.0, 1.0] range.  Default value is
41821           0.
41822
41823       start
41824           Set start frequency from which to display spectrogram. Default is
41825           0.
41826
41827       stop
41828           Set stop frequency to which to display spectrogram. Default is 0.
41829
41830       fps Set upper frame rate limit. Default is "auto", unlimited.
41831
41832       legend
41833           Draw time and frequency axes and legends. Default is disabled.
41834
41835       drange
41836           Set dynamic range used to calculate intensity color values. Default
41837           is 120 dBFS.  Allowed range is from 10 to 200.
41838
41839       limit
41840           Set upper limit of input audio samples volume in dBFS. Default is 0
41841           dBFS.  Allowed range is from -100 to 100.
41842
41843       The usage is very similar to the showwaves filter; see the examples in
41844       that section.
41845
41846       Examples
41847
41848       •   Large window with logarithmic color scaling:
41849
41850                   showspectrum=s=1280x480:scale=log
41851
41852       •   Complete example for a colored and sliding spectrum per channel
41853           using ffplay:
41854
41855                   ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
41856                                [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
41857
41858   showspectrumpic
41859       Convert input audio to a single video frame, representing the audio
41860       frequency spectrum.
41861
41862       The filter accepts the following options:
41863
41864       size, s
41865           Specify the video size for the output. For the syntax of this
41866           option, check the "Video size" section in the ffmpeg-utils manual.
41867           Default value is "4096x2048".
41868
41869       mode
41870           Specify display mode.
41871
41872           It accepts the following values:
41873
41874           combined
41875               all channels are displayed in the same row
41876
41877           separate
41878               all channels are displayed in separate rows
41879
41880           Default value is combined.
41881
41882       color
41883           Specify display color mode.
41884
41885           It accepts the following values:
41886
41887           channel
41888               each channel is displayed in a separate color
41889
41890           intensity
41891               each channel is displayed using the same color scheme
41892
41893           rainbow
41894               each channel is displayed using the rainbow color scheme
41895
41896           moreland
41897               each channel is displayed using the moreland color scheme
41898
41899           nebulae
41900               each channel is displayed using the nebulae color scheme
41901
41902           fire
41903               each channel is displayed using the fire color scheme
41904
41905           fiery
41906               each channel is displayed using the fiery color scheme
41907
41908           fruit
41909               each channel is displayed using the fruit color scheme
41910
41911           cool
41912               each channel is displayed using the cool color scheme
41913
41914           magma
41915               each channel is displayed using the magma color scheme
41916
41917           green
41918               each channel is displayed using the green color scheme
41919
41920           viridis
41921               each channel is displayed using the viridis color scheme
41922
41923           plasma
41924               each channel is displayed using the plasma color scheme
41925
41926           cividis
41927               each channel is displayed using the cividis color scheme
41928
41929           terrain
41930               each channel is displayed using the terrain color scheme
41931
41932           Default value is intensity.
41933
41934       scale
41935           Specify scale used for calculating intensity color values.
41936
41937           It accepts the following values:
41938
41939           lin linear
41940
41941           sqrt
41942               square root, default
41943
41944           cbrt
41945               cubic root
41946
41947           log logarithmic
41948
41949           4thrt
41950               4th root
41951
41952           5thrt
41953               5th root
41954
41955           Default value is log.
41956
41957       fscale
41958           Specify frequency scale.
41959
41960           It accepts the following values:
41961
41962           lin linear
41963
41964           log logarithmic
41965
41966           Default value is lin.
41967
41968       saturation
41969           Set saturation modifier for displayed colors. Negative values
41970           provide alternative color scheme. 0 is no saturation at all.
41971           Saturation must be in [-10.0, 10.0] range.  Default value is 1.
41972
41973       win_func
41974           Set window function.
41975
41976           It accepts the following values:
41977
41978           rect
41979           bartlett
41980           hann
41981           hanning
41982           hamming
41983           blackman
41984           welch
41985           flattop
41986           bharris
41987           bnuttall
41988           bhann
41989           sine
41990           nuttall
41991           lanczos
41992           gauss
41993           tukey
41994           dolph
41995           cauchy
41996           parzen
41997           poisson
41998           bohman
41999
42000           Default value is "hann".
42001
42002       orientation
42003           Set orientation of time vs frequency axis. Can be "vertical" or
42004           "horizontal". Default is "vertical".
42005
42006       gain
42007           Set scale gain for calculating intensity color values.  Default
42008           value is 1.
42009
42010       legend
42011           Draw time and frequency axes and legends. Default is enabled.
42012
42013       rotation
42014           Set color rotation, must be in [-1.0, 1.0] range.  Default value is
42015           0.
42016
42017       start
42018           Set start frequency from which to display spectrogram. Default is
42019           0.
42020
42021       stop
42022           Set stop frequency to which to display spectrogram. Default is 0.
42023
42024       drange
42025           Set dynamic range used to calculate intensity color values. Default
42026           is 120 dBFS.  Allowed range is from 10 to 200.
42027
42028       limit
42029           Set upper limit of input audio samples volume in dBFS. Default is 0
42030           dBFS.  Allowed range is from -100 to 100.
42031
42032       Examples
42033
42034       •   Extract an audio spectrogram of a whole audio track in a 1024x1024
42035           picture using ffmpeg:
42036
42037                   ffmpeg -i audio.flac -lavfi showspectrumpic=s=1024x1024 spectrogram.png
42038
42039   showvolume
42040       Convert input audio volume to a video output.
42041
42042       The filter accepts the following options:
42043
42044       rate, r
42045           Set video rate.
42046
42047       b   Set border width, allowed range is [0, 5]. Default is 1.
42048
42049       w   Set channel width, allowed range is [80, 8192]. Default is 400.
42050
42051       h   Set channel height, allowed range is [1, 900]. Default is 20.
42052
42053       f   Set fade, allowed range is [0, 1]. Default is 0.95.
42054
42055       c   Set volume color expression.
42056
42057           The expression can use the following variables:
42058
42059           VOLUME
42060               Current max volume of channel in dB.
42061
42062           PEAK
42063               Current peak.
42064
42065           CHANNEL
42066               Current channel number, starting from 0.
42067
42068       t   If set, displays channel names. Default is enabled.
42069
42070       v   If set, displays volume values. Default is enabled.
42071
42072       o   Set orientation, can be horizontal: "h" or vertical: "v", default
42073           is "h".
42074
42075       s   Set step size, allowed range is [0, 5]. Default is 0, which means
42076           step is disabled.
42077
42078       p   Set background opacity, allowed range is [0, 1]. Default is 0.
42079
42080       m   Set metering mode, can be peak: "p" or rms: "r", default is "p".
42081
42082       ds  Set display scale, can be linear: "lin" or log: "log", default is
42083           "lin".
42084
42085       dm  In second.  If set to > 0., display a line for the max level in the
42086           previous seconds.  default is disabled: 0.
42087
42088       dmc The color of the max line. Use when "dm" option is set to > 0.
42089           default is: "orange"
42090
42091   showwaves
42092       Convert input audio to a video output, representing the samples waves.
42093
42094       The filter accepts the following options:
42095
42096       size, s
42097           Specify the video size for the output. For the syntax of this
42098           option, check the "Video size" section in the ffmpeg-utils manual.
42099           Default value is "600x240".
42100
42101       mode
42102           Set display mode.
42103
42104           Available values are:
42105
42106           point
42107               Draw a point for each sample.
42108
42109           line
42110               Draw a vertical line for each sample.
42111
42112           p2p Draw a point for each sample and a line between them.
42113
42114           cline
42115               Draw a centered vertical line for each sample.
42116
42117           Default value is "point".
42118
42119       n   Set the number of samples which are printed on the same column. A
42120           larger value will decrease the frame rate. Must be a positive
42121           integer. This option can be set only if the value for rate is not
42122           explicitly specified.
42123
42124       rate, r
42125           Set the (approximate) output frame rate. This is done by setting
42126           the option n. Default value is "25".
42127
42128       split_channels
42129           Set if channels should be drawn separately or overlap. Default
42130           value is 0.
42131
42132       colors
42133           Set colors separated by '|' which are going to be used for drawing
42134           of each channel.
42135
42136       scale
42137           Set amplitude scale.
42138
42139           Available values are:
42140
42141           lin Linear.
42142
42143           log Logarithmic.
42144
42145           sqrt
42146               Square root.
42147
42148           cbrt
42149               Cubic root.
42150
42151           Default is linear.
42152
42153       draw
42154           Set the draw mode. This is mostly useful to set for high n.
42155
42156           Available values are:
42157
42158           scale
42159               Scale pixel values for each drawn sample.
42160
42161           full
42162               Draw every sample directly.
42163
42164           Default value is "scale".
42165
42166       Examples
42167
42168       •   Output the input file audio and the corresponding video
42169           representation at the same time:
42170
42171                   amovie=a.mp3,asplit[out0],showwaves[out1]
42172
42173       •   Create a synthetic signal and show it with showwaves, forcing a
42174           frame rate of 30 frames per second:
42175
42176                   aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
42177
42178   showwavespic
42179       Convert input audio to a single video frame, representing the samples
42180       waves.
42181
42182       The filter accepts the following options:
42183
42184       size, s
42185           Specify the video size for the output. For the syntax of this
42186           option, check the "Video size" section in the ffmpeg-utils manual.
42187           Default value is "600x240".
42188
42189       split_channels
42190           Set if channels should be drawn separately or overlap. Default
42191           value is 0.
42192
42193       colors
42194           Set colors separated by '|' which are going to be used for drawing
42195           of each channel.
42196
42197       scale
42198           Set amplitude scale.
42199
42200           Available values are:
42201
42202           lin Linear.
42203
42204           log Logarithmic.
42205
42206           sqrt
42207               Square root.
42208
42209           cbrt
42210               Cubic root.
42211
42212           Default is linear.
42213
42214       draw
42215           Set the draw mode.
42216
42217           Available values are:
42218
42219           scale
42220               Scale pixel values for each drawn sample.
42221
42222           full
42223               Draw every sample directly.
42224
42225           Default value is "scale".
42226
42227       filter
42228           Set the filter mode.
42229
42230           Available values are:
42231
42232           average
42233               Use average samples values for each drawn sample.
42234
42235           peak
42236               Use peak samples values for each drawn sample.
42237
42238           Default value is "average".
42239
42240       Examples
42241
42242       •   Extract a channel split representation of the wave form of a whole
42243           audio track in a 1024x800 picture using ffmpeg:
42244
42245                   ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
42246
42247   sidedata, asidedata
42248       Delete frame side data, or select frames based on it.
42249
42250       This filter accepts the following options:
42251
42252       mode
42253           Set mode of operation of the filter.
42254
42255           Can be one of the following:
42256
42257           select
42258               Select every frame with side data of "type".
42259
42260           delete
42261               Delete side data of "type". If "type" is not set, delete all
42262               side data in the frame.
42263
42264       type
42265           Set side data type used with all modes. Must be set for "select"
42266           mode. For the list of frame side data types, refer to the
42267           "AVFrameSideDataType" enum in libavutil/frame.h. For example, to
42268           choose "AV_FRAME_DATA_PANSCAN" side data, you must specify
42269           "PANSCAN".
42270
42271   spectrumsynth
42272       Synthesize audio from 2 input video spectrums, first input stream
42273       represents magnitude across time and second represents phase across
42274       time.  The filter will transform from frequency domain as displayed in
42275       videos back to time domain as presented in audio output.
42276
42277       This filter is primarily created for reversing processed showspectrum
42278       filter outputs, but can synthesize sound from other spectrograms too.
42279       But in such case results are going to be poor if the phase data is not
42280       available, because in such cases phase data need to be recreated,
42281       usually it's just recreated from random noise.  For best results use
42282       gray only output ("channel" color mode in showspectrum filter) and
42283       "log" scale for magnitude video and "lin" scale for phase video. To
42284       produce phase, for 2nd video, use "data" option. Inputs videos should
42285       generally use "fullframe" slide mode as that saves resources needed for
42286       decoding video.
42287
42288       The filter accepts the following options:
42289
42290       sample_rate
42291           Specify sample rate of output audio, the sample rate of audio from
42292           which spectrum was generated may differ.
42293
42294       channels
42295           Set number of channels represented in input video spectrums.
42296
42297       scale
42298           Set scale which was used when generating magnitude input spectrum.
42299           Can be "lin" or "log". Default is "log".
42300
42301       slide
42302           Set slide which was used when generating inputs spectrums.  Can be
42303           "replace", "scroll", "fullframe" or "rscroll".  Default is
42304           "fullframe".
42305
42306       win_func
42307           Set window function used for resynthesis.
42308
42309       overlap
42310           Set window overlap. In range "[0, 1]". Default is 1, which means
42311           optimal overlap for selected window function will be picked.
42312
42313       orientation
42314           Set orientation of input videos. Can be "vertical" or "horizontal".
42315           Default is "vertical".
42316
42317       Examples
42318
42319       •   First create magnitude and phase videos from audio, assuming audio
42320           is stereo with 44100 sample rate, then resynthesize videos back to
42321           audio with spectrumsynth:
42322
42323                   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
42324                   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
42325                   ffmpeg -i magnitude.nut -i phase.nut -lavfi spectrumsynth=channels=2:sample_rate=44100:win_func=hann:overlap=0.875:slide=fullframe output.flac
42326
42327   split, asplit
42328       Split input into several identical outputs.
42329
42330       "asplit" works with audio input, "split" with video.
42331
42332       The filter accepts a single parameter which specifies the number of
42333       outputs. If unspecified, it defaults to 2.
42334
42335       Examples
42336
42337       •   Create two separate outputs from the same input:
42338
42339                   [in] split [out0][out1]
42340
42341       •   To create 3 or more outputs, you need to specify the number of
42342           outputs, like in:
42343
42344                   [in] asplit=3 [out0][out1][out2]
42345
42346       •   Create two separate outputs from the same input, one cropped and
42347           one padded:
42348
42349                   [in] split [splitout1][splitout2];
42350                   [splitout1] crop=100:100:0:0    [cropout];
42351                   [splitout2] pad=200:200:100:100 [padout];
42352
42353       •   Create 5 copies of the input audio with ffmpeg:
42354
42355                   ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
42356
42357   zmq, azmq
42358       Receive commands sent through a libzmq client, and forward them to
42359       filters in the filtergraph.
42360
42361       "zmq" and "azmq" work as a pass-through filters. "zmq" must be inserted
42362       between two video filters, "azmq" between two audio filters. Both are
42363       capable to send messages to any filter type.
42364
42365       To enable these filters you need to install the libzmq library and
42366       headers and configure FFmpeg with "--enable-libzmq".
42367
42368       For more information about libzmq see: <http://www.zeromq.org/>
42369
42370       The "zmq" and "azmq" filters work as a libzmq server, which receives
42371       messages sent through a network interface defined by the bind_address
42372       (or the abbreviation "b") option.  Default value of this option is
42373       tcp://localhost:5555. You may want to alter this value to your needs,
42374       but do not forget to escape any ':' signs (see filtergraph escaping).
42375
42376       The received message must be in the form:
42377
42378               <TARGET> <COMMAND> [<ARG>]
42379
42380       TARGET specifies the target of the command, usually the name of the
42381       filter class or a specific filter instance name. The default filter
42382       instance name uses the pattern Parsed_<filter_name>_<index>, but you
42383       can override this by using the filter_name@id syntax (see Filtergraph
42384       syntax).
42385
42386       COMMAND specifies the name of the command for the target filter.
42387
42388       ARG is optional and specifies the optional argument list for the given
42389       COMMAND.
42390
42391       Upon reception, the message is processed and the corresponding command
42392       is injected into the filtergraph. Depending on the result, the filter
42393       will send a reply to the client, adopting the format:
42394
42395               <ERROR_CODE> <ERROR_REASON>
42396               <MESSAGE>
42397
42398       MESSAGE is optional.
42399
42400       Examples
42401
42402       Look at tools/zmqsend for an example of a zmq client which can be used
42403       to send commands processed by these filters.
42404
42405       Consider the following filtergraph generated by ffplay.  In this
42406       example the last overlay filter has an instance name. All other filters
42407       will have default instance names.
42408
42409               ffplay -dumpgraph 1 -f lavfi "
42410               color=s=100x100:c=red  [l];
42411               color=s=100x100:c=blue [r];
42412               nullsrc=s=200x100, zmq [bg];
42413               [bg][l]   overlay     [bg+l];
42414               [bg+l][r] overlay@my=x=100 "
42415
42416       To change the color of the left side of the video, the following
42417       command can be used:
42418
42419               echo Parsed_color_0 c yellow | tools/zmqsend
42420
42421       To change the right side:
42422
42423               echo Parsed_color_1 c pink | tools/zmqsend
42424
42425       To change the position of the right side:
42426
42427               echo overlay@my x 150 | tools/zmqsend
42428

MULTIMEDIA SOURCES

42430       Below is a description of the currently available multimedia sources.
42431
42432   amovie
42433       This is the same as movie source, except it selects an audio stream by
42434       default.
42435
42436   movie
42437       Read audio and/or video stream(s) from a movie container.
42438
42439       It accepts the following parameters:
42440
42441       filename
42442           The name of the resource to read (not necessarily a file; it can
42443           also be a device or a stream accessed through some protocol).
42444
42445       format_name, f
42446           Specifies the format assumed for the movie to read, and can be
42447           either the name of a container or an input device. If not
42448           specified, the format is guessed from movie_name or by probing.
42449
42450       seek_point, sp
42451           Specifies the seek point in seconds. The frames will be output
42452           starting from this seek point. The parameter is evaluated with
42453           "av_strtod", so the numerical value may be suffixed by an IS
42454           postfix. The default value is "0".
42455
42456       streams, s
42457           Specifies the streams to read. Several streams can be specified,
42458           separated by "+". The source will then have as many outputs, in the
42459           same order. The syntax is explained in the "Stream specifiers"
42460           section in the ffmpeg manual. Two special names, "dv" and "da"
42461           specify respectively the default (best suited) video and audio
42462           stream. Default is "dv", or "da" if the filter is called as
42463           "amovie".
42464
42465       stream_index, si
42466           Specifies the index of the video stream to read. If the value is
42467           -1, the most suitable video stream will be automatically selected.
42468           The default value is "-1". Deprecated. If the filter is called
42469           "amovie", it will select audio instead of video.
42470
42471       loop
42472           Specifies how many times to read the stream in sequence.  If the
42473           value is 0, the stream will be looped infinitely.  Default value is
42474           "1".
42475
42476           Note that when the movie is looped the source timestamps are not
42477           changed, so it will generate non monotonically increasing
42478           timestamps.
42479
42480       discontinuity
42481           Specifies the time difference between frames above which the point
42482           is considered a timestamp discontinuity which is removed by
42483           adjusting the later timestamps.
42484
42485       dec_threads
42486           Specifies the number of threads for decoding
42487
42488       format_opts
42489           Specify format options for the opened file. Format options can be
42490           specified as a list of key=value pairs separated by ':'. The
42491           following example shows how to add protocol_whitelist and
42492           protocol_blacklist options:
42493
42494                   ffplay -f lavfi
42495                   "movie=filename='1.sdp':format_opts='protocol_whitelist=file,rtp,udp\:protocol_blacklist=http'"
42496
42497       It allows overlaying a second video on top of the main input of a
42498       filtergraph, as shown in this graph:
42499
42500               input -----------> deltapts0 --> overlay --> output
42501                                                   ^
42502                                                   |
42503               movie --> scale--> deltapts1 -------+
42504
42505       Examples
42506
42507       •   Skip 3.2 seconds from the start of the AVI file in.avi, and overlay
42508           it on top of the input labelled "in":
42509
42510                   movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over];
42511                   [in] setpts=PTS-STARTPTS [main];
42512                   [main][over] overlay=16:16 [out]
42513
42514       •   Read from a video4linux2 device, and overlay it on top of the input
42515           labelled "in":
42516
42517                   movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over];
42518                   [in] setpts=PTS-STARTPTS [main];
42519                   [main][over] overlay=16:16 [out]
42520
42521       •   Read the first video stream and the audio stream with id 0x81 from
42522           dvd.vob; the video is connected to the pad named "video" and the
42523           audio is connected to the pad named "audio":
42524
42525                   movie=dvd.vob:s=v:0+#0x81 [video] [audio]
42526
42527       Commands
42528
42529       Both movie and amovie support the following commands:
42530
42531       seek
42532           Perform seek using "av_seek_frame".  The syntax is: seek
42533           stream_index|timestamp|flags
42534
42535stream_index: If stream_index is -1, a default stream is
42536               selected, and timestamp is automatically converted from
42537               AV_TIME_BASE units to the stream specific time_base.
42538
42539timestamp: Timestamp in AVStream.time_base units or, if no
42540               stream is specified, in AV_TIME_BASE units.
42541
42542flags: Flags which select direction and seeking mode.
42543
42544       get_duration
42545           Get movie duration in AV_TIME_BASE units.
42546

EXTERNAL LIBRARIES

42548       FFmpeg can be hooked up with a number of external libraries to add
42549       support for more formats. None of them are used by default, their use
42550       has to be explicitly requested by passing the appropriate flags to
42551       ./configure.
42552
42553   Alliance for Open Media (AOM)
42554       FFmpeg can make use of the AOM library for AV1 decoding and encoding.
42555
42556       Go to <http://aomedia.org/> and follow the instructions for installing
42557       the library. Then pass "--enable-libaom" to configure to enable it.
42558
42559   AMD AMF/VCE
42560       FFmpeg can use the AMD Advanced Media Framework library for accelerated
42561       H.264 and HEVC(only windows) encoding on hardware with Video Coding
42562       Engine (VCE).
42563
42564       To enable support you must obtain the AMF framework header
42565       files(version 1.4.9+) from
42566       <https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git>.
42567
42568       Create an "AMF/" directory in the system include path.  Copy the
42569       contents of "AMF/amf/public/include/" into that directory.  Then
42570       configure FFmpeg with "--enable-amf".
42571
42572       Initialization of amf encoder occurs in this order: 1) trying to
42573       initialize through dx11(only windows) 2) trying to initialize through
42574       dx9(only windows) 3) trying to initialize through vulkan
42575
42576       To use h.264(AMD VCE) encoder on linux amdgru-pro version 19.20+ and
42577       amf-amdgpu-pro package(amdgru-pro contains, but does not install
42578       automatically) are required.
42579
42580       This driver can be installed using amdgpu-pro-install script in
42581       official amd driver archive.
42582
42583   AviSynth
42584       FFmpeg can read AviSynth scripts as input. To enable support, pass
42585       "--enable-avisynth" to configure after installing the headers provided
42586       by <https://github.com/AviSynth/AviSynthPlus>.  AviSynth+ can be
42587       configured to install only the headers by either passing
42588       "-DHEADERS_ONLY:bool=on" to the normal CMake-based build system, or by
42589       using the supplied "GNUmakefile".
42590
42591       For Windows, supported AviSynth variants are <http://avisynth.nl> for
42592       32-bit builds and <http://avisynth.nl/index.php/AviSynth+> for 32-bit
42593       and 64-bit builds.
42594
42595       For Linux, macOS, and BSD, the only supported AviSynth variant is
42596       <https://github.com/AviSynth/AviSynthPlus>, starting with version 3.5.
42597
42598           In 2016, AviSynth+ added support for building with GCC. However,
42599           due to the eccentricities of Windows' calling conventions, 32-bit
42600           GCC builds of AviSynth+ are not compatible with typical 32-bit
42601           builds of FFmpeg.
42602
42603           By default, FFmpeg assumes compatibility with 32-bit MSVC builds of
42604           AviSynth+ since that is the most widely-used and entrenched build
42605           configuration.  Users can override this and enable support for
42606           32-bit GCC builds of AviSynth+ by passing "-DAVSC_WIN32_GCC32" to
42607           "--extra-cflags" when configuring FFmpeg.
42608
42609           64-bit builds of FFmpeg are not affected, and can use either MSVC
42610           or GCC builds of AviSynth+ without any special flags.
42611
42612           AviSynth(+) is loaded dynamically.  Distributors can build FFmpeg
42613           with "--enable-avisynth", and the binaries will work regardless of
42614           the end user having AviSynth installed.  If/when an end user would
42615           like to use AviSynth scripts, then they can install AviSynth(+) and
42616           FFmpeg will be able to find and use it to open scripts.
42617
42618   Chromaprint
42619       FFmpeg can make use of the Chromaprint library for generating audio
42620       fingerprints.  Pass "--enable-chromaprint" to configure to enable it.
42621       See <https://acoustid.org/chromaprint>.
42622
42623   codec2
42624       FFmpeg can make use of the codec2 library for codec2 decoding and
42625       encoding.  There is currently no native decoder, so libcodec2 must be
42626       used for decoding.
42627
42628       Go to <http://freedv.org/>, download "Codec 2 source archive".  Build
42629       and install using CMake. Debian users can install the libcodec2-dev
42630       package instead.  Once libcodec2 is installed you can pass
42631       "--enable-libcodec2" to configure to enable it.
42632
42633       The easiest way to use codec2 is with .c2 files, since they contain the
42634       mode information required for decoding.  To encode such a file, use a
42635       .c2 file extension and give the libcodec2 encoder the -mode option:
42636       "ffmpeg -i input.wav -mode 700C output.c2".  Playback is as simple as
42637       "ffplay output.c2".  For a list of supported modes, run "ffmpeg -h
42638       encoder=libcodec2".  Raw codec2 files are also supported.  To make
42639       sense of them the mode in use needs to be specified as a format option:
42640       "ffmpeg -f codec2raw -mode 1300 -i input.raw output.wav".
42641
42642   dav1d
42643       FFmpeg can make use of the dav1d library for AV1 video decoding.
42644
42645       Go to <https://code.videolan.org/videolan/dav1d> and follow the
42646       instructions for installing the library. Then pass "--enable-libdav1d"
42647       to configure to enable it.
42648
42649   davs2
42650       FFmpeg can make use of the davs2 library for AVS2-P2/IEEE1857.4 video
42651       decoding.
42652
42653       Go to <https://github.com/pkuvcl/davs2> and follow the instructions for
42654       installing the library. Then pass "--enable-libdavs2" to configure to
42655       enable it.
42656
42657           libdavs2 is under the GNU Public License Version 2 or later (see
42658           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
42659           details), you must upgrade FFmpeg's license to GPL in order to use
42660           it.
42661
42662   uavs3d
42663       FFmpeg can make use of the uavs3d library for AVS3-P2/IEEE1857.10 video
42664       decoding.
42665
42666       Go to <https://github.com/uavs3/uavs3d> and follow the instructions for
42667       installing the library. Then pass "--enable-libuavs3d" to configure to
42668       enable it.
42669
42670   Game Music Emu
42671       FFmpeg can make use of the Game Music Emu library to read audio from
42672       supported video game music file formats. Pass "--enable-libgme" to
42673       configure to enable it. See
42674       <https://bitbucket.org/mpyne/game-music-emu/overview>.
42675
42676   Intel QuickSync Video
42677       FFmpeg can use Intel QuickSync Video (QSV) for accelerated decoding and
42678       encoding of multiple codecs. To use QSV, FFmpeg must be linked against
42679       the "libmfx" dispatcher, which loads the actual decoding libraries.
42680
42681       The dispatcher is open source and can be downloaded from
42682       <https://github.com/lu-zero/mfx_dispatch.git>. FFmpeg needs to be
42683       configured with the "--enable-libmfx" option and "pkg-config" needs to
42684       be able to locate the dispatcher's ".pc" files.
42685
42686   Kvazaar
42687       FFmpeg can make use of the Kvazaar library for HEVC encoding.
42688
42689       Go to <https://github.com/ultravideo/kvazaar> and follow the
42690       instructions for installing the library. Then pass
42691       "--enable-libkvazaar" to configure to enable it.
42692
42693   LAME
42694       FFmpeg can make use of the LAME library for MP3 encoding.
42695
42696       Go to <http://lame.sourceforge.net/> and follow the instructions for
42697       installing the library.  Then pass "--enable-libmp3lame" to configure
42698       to enable it.
42699
42700   libilbc
42701       iLBC is a narrowband speech codec that has been made freely available
42702       by Google as part of the WebRTC project. libilbc is a packaging
42703       friendly copy of the iLBC codec. FFmpeg can make use of the libilbc
42704       library for iLBC decoding and encoding.
42705
42706       Go to <https://github.com/TimothyGu/libilbc> and follow the
42707       instructions for installing the library. Then pass "--enable-libilbc"
42708       to configure to enable it.
42709
42710   libvpx
42711       FFmpeg can make use of the libvpx library for VP8/VP9 decoding and
42712       encoding.
42713
42714       Go to <http://www.webmproject.org/> and follow the instructions for
42715       installing the library. Then pass "--enable-libvpx" to configure to
42716       enable it.
42717
42718   ModPlug
42719       FFmpeg can make use of this library, originating in Modplug-XMMS, to
42720       read from MOD-like music files.  See
42721       <https://github.com/Konstanty/libmodplug>. Pass "--enable-libmodplug"
42722       to configure to enable it.
42723
42724   OpenCORE, VisualOn, and Fraunhofer libraries
42725       Spun off Google Android sources, OpenCore, VisualOn and Fraunhofer
42726       libraries provide encoders for a number of audio codecs.
42727
42728           OpenCORE and VisualOn libraries are under the Apache License 2.0
42729           (see <http://www.apache.org/licenses/LICENSE-2.0> for details),
42730           which is incompatible to the LGPL version 2.1 and GPL version 2.
42731           You have to upgrade FFmpeg's license to LGPL version 3 (or if you
42732           have enabled GPL components, GPL version 3) by passing
42733           "--enable-version3" to configure in order to use it.
42734
42735           The license of the Fraunhofer AAC library is incompatible with the
42736           GPL.  Therefore, for GPL builds, you have to pass
42737           "--enable-nonfree" to configure in order to use it. To the best of
42738           our knowledge, it is compatible with the LGPL.
42739
42740       OpenCORE AMR
42741
42742       FFmpeg can make use of the OpenCORE libraries for AMR-NB
42743       decoding/encoding and AMR-WB decoding.
42744
42745       Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
42746       instructions for installing the libraries.  Then pass
42747       "--enable-libopencore-amrnb" and/or "--enable-libopencore-amrwb" to
42748       configure to enable them.
42749
42750       VisualOn AMR-WB encoder library
42751
42752       FFmpeg can make use of the VisualOn AMR-WBenc library for AMR-WB
42753       encoding.
42754
42755       Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
42756       instructions for installing the library.  Then pass
42757       "--enable-libvo-amrwbenc" to configure to enable it.
42758
42759       Fraunhofer AAC library
42760
42761       FFmpeg can make use of the Fraunhofer AAC library for AAC decoding &
42762       encoding.
42763
42764       Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
42765       instructions for installing the library.  Then pass
42766       "--enable-libfdk-aac" to configure to enable it.
42767
42768   OpenH264
42769       FFmpeg can make use of the OpenH264 library for H.264 decoding and
42770       encoding.
42771
42772       Go to <http://www.openh264.org/> and follow the instructions for
42773       installing the library. Then pass "--enable-libopenh264" to configure
42774       to enable it.
42775
42776       For decoding, this library is much more limited than the built-in
42777       decoder in libavcodec; currently, this library lacks support for
42778       decoding B-frames and some other main/high profile features. (It
42779       currently only supports constrained baseline profile and CABAC.) Using
42780       it is mostly useful for testing and for taking advantage of Cisco's
42781       patent portfolio license
42782       (<http://www.openh264.org/BINARY_LICENSE.txt>).
42783
42784   OpenJPEG
42785       FFmpeg can use the OpenJPEG libraries for decoding/encoding J2K videos.
42786       Go to <http://www.openjpeg.org/> to get the libraries and follow the
42787       installation instructions.  To enable using OpenJPEG in FFmpeg, pass
42788       "--enable-libopenjpeg" to ./configure.
42789
42790   rav1e
42791       FFmpeg can make use of rav1e (Rust AV1 Encoder) via its C bindings to
42792       encode videos.  Go to <https://github.com/xiph/rav1e/> and follow the
42793       instructions to build the C library. To enable using rav1e in FFmpeg,
42794       pass "--enable-librav1e" to ./configure.
42795
42796   SVT-AV1
42797       FFmpeg can make use of the Scalable Video Technology for AV1 library
42798       for AV1 encoding.
42799
42800       Go to <https://gitlab.com/AOMediaCodec/SVT-AV1/> and follow the
42801       instructions for installing the library. Then pass "--enable-libsvtav1"
42802       to configure to enable it.
42803
42804   TwoLAME
42805       FFmpeg can make use of the TwoLAME library for MP2 encoding.
42806
42807       Go to <http://www.twolame.org/> and follow the instructions for
42808       installing the library.  Then pass "--enable-libtwolame" to configure
42809       to enable it.
42810
42811   VapourSynth
42812       FFmpeg can read VapourSynth scripts as input. To enable support, pass
42813       "--enable-vapoursynth" to configure. Vapoursynth is detected via
42814       "pkg-config". Versions 42 or greater supported.  See
42815       <http://www.vapoursynth.com/>.
42816
42817       Due to security concerns, Vapoursynth scripts will not be autodetected
42818       so the input format has to be forced. For ff* CLI tools, add "-f
42819       vapoursynth" before the input "-i yourscript.vpy".
42820
42821   x264
42822       FFmpeg can make use of the x264 library for H.264 encoding.
42823
42824       Go to <http://www.videolan.org/developers/x264.html> and follow the
42825       instructions for installing the library. Then pass "--enable-libx264"
42826       to configure to enable it.
42827
42828           x264 is under the GNU Public License Version 2 or later (see
42829           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
42830           details), you must upgrade FFmpeg's license to GPL in order to use
42831           it.
42832
42833   x265
42834       FFmpeg can make use of the x265 library for HEVC encoding.
42835
42836       Go to <http://x265.org/developers.html> and follow the instructions for
42837       installing the library. Then pass "--enable-libx265" to configure to
42838       enable it.
42839
42840           x265 is under the GNU Public License Version 2 or later (see
42841           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
42842           details), you must upgrade FFmpeg's license to GPL in order to use
42843           it.
42844
42845   xavs
42846       FFmpeg can make use of the xavs library for AVS encoding.
42847
42848       Go to <http://xavs.sf.net/> and follow the instructions for installing
42849       the library. Then pass "--enable-libxavs" to configure to enable it.
42850
42851   xavs2
42852       FFmpeg can make use of the xavs2 library for AVS2-P2/IEEE1857.4 video
42853       encoding.
42854
42855       Go to <https://github.com/pkuvcl/xavs2> and follow the instructions for
42856       installing the library. Then pass "--enable-libxavs2" to configure to
42857       enable it.
42858
42859           libxavs2 is under the GNU Public License Version 2 or later (see
42860           <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
42861           details), you must upgrade FFmpeg's license to GPL in order to use
42862           it.
42863
42864   ZVBI
42865       ZVBI is a VBI decoding library which can be used by FFmpeg to decode
42866       DVB teletext pages and DVB teletext subtitles.
42867
42868       Go to <http://sourceforge.net/projects/zapping/> and follow the
42869       instructions for installing the library. Then pass "--enable-libzvbi"
42870       to configure to enable it.
42871

SUPPORTED FILE FORMATS

42873       You can use the "-formats" and "-codecs" options to have an exhaustive
42874       list.
42875
42876   File Formats
42877       FFmpeg supports the following file formats through the "libavformat"
42878       library:
42879
42880       Name  :  Encoding @tab Decoding @tab Comments
42881       3dostr                     :    @tab X
42882       4xm                        :    @tab X
42883               @tab 4X Technologies format, used in some games.
42884
42885       8088flex TMV               :    @tab X
42886       AAX                        :    @tab X
42887               @tab Audible Enhanced Audio format, used in audiobooks.
42888
42889       AA                         :    @tab X
42890               @tab Audible Format 2, 3, and 4, used in audiobooks.
42891
42892       ACT Voice                  :    @tab X
42893               @tab contains G.729 audio
42894
42895       Adobe Filmstrip            :  X @tab X
42896       Audio IFF (AIFF)           :  X @tab X
42897       American Laser Games MM    :    @tab X
42898               @tab Multimedia format used in games like Mad Dog McCree.
42899
42900       3GPP AMR                   :  X @tab X
42901       Amazing Studio Packed Animation File   :    @tab X
42902               @tab Multimedia format used in game Heart Of Darkness.
42903
42904       Apple HTTP Live Streaming  :    @tab X
42905       Artworx Data Format        :    @tab X
42906       Interplay ACM              :    @tab X
42907               @tab Audio only format used in some Interplay games.
42908
42909       ADP                        :    @tab X
42910               @tab Audio format used on the Nintendo Gamecube.
42911
42912       AFC                        :    @tab X
42913               @tab Audio format used on the Nintendo Gamecube.
42914
42915       ADS/SS2                    :    @tab X
42916               @tab Audio format used on the PS2.
42917
42918       APNG                       :  X @tab X
42919       ASF                        :  X @tab X
42920               @tab Advanced / Active Streaming Format.
42921
42922       AST                        :  X @tab X
42923               @tab Audio format used on the Nintendo Wii.
42924
42925       AVI                        :  X @tab X
42926       AviSynth                   :    @tab X
42927       AVR                        :    @tab X
42928               @tab Audio format used on Mac.
42929
42930       AVS                        :    @tab X
42931               @tab Multimedia format used by the Creature Shock game.
42932
42933       Beam Software SIFF         :    @tab X
42934               @tab Audio and video format used in some games by Beam Software.
42935
42936       Bethesda Softworks VID     :    @tab X
42937               @tab Used in some games from Bethesda Softworks.
42938
42939       Binary text                :    @tab X
42940       Bink                       :    @tab X
42941               @tab Multimedia format used by many games.
42942
42943       Bink Audio                 :    @tab X
42944               @tab Audio only multimedia format used by some games.
42945
42946       Bitmap Brothers JV         :    @tab X
42947               @tab Used in Z and Z95 games.
42948
42949       BRP                        :    @tab X
42950               @tab Argonaut Games format.
42951
42952       Brute Force & Ignorance    :    @tab X
42953               @tab Used in the game Flash Traffic: City of Angels.
42954
42955       BFSTM                      :    @tab X
42956               @tab Audio format used on the Nintendo WiiU (based on BRSTM).
42957
42958       BRSTM                      :    @tab X
42959               @tab Audio format used on the Nintendo Wii.
42960
42961       BW64                       :    @tab X
42962               @tab Broadcast Wave 64bit.
42963
42964       BWF                        :  X @tab X
42965       codec2 (raw)               :  X @tab X
42966               @tab Must be given -mode format option to decode correctly.
42967
42968       codec2 (.c2 files)         :  X @tab X
42969               @tab Contains header with version and mode info, simplifying playback.
42970
42971       CRI ADX                    :  X @tab X
42972               @tab Audio-only format used in console video games.
42973
42974       CRI AIX                    :    @tab X
42975       CRI HCA                    :    @tab X
42976               @tab Audio-only format used in console video games.
42977
42978       Discworld II BMV           :    @tab X
42979       Interplay C93              :    @tab X
42980               @tab Used in the game Cyberia from Interplay.
42981
42982       Delphine Software International CIN  :    @tab X
42983               @tab Multimedia format used by Delphine Software games.
42984
42985       Digital Speech Standard (DSS)  :    @tab X
42986       CD+G                       :    @tab X
42987               @tab Video format used by CD+G karaoke disks
42988
42989       Phantom Cine               :    @tab X
42990       Commodore CDXL             :    @tab X
42991               @tab Amiga CD video format
42992
42993       Core Audio Format          :  X @tab X
42994               @tab Apple Core Audio Format
42995
42996       CRC testing format         :  X @tab
42997       Creative Voice             :  X @tab X
42998               @tab Created for the Sound Blaster Pro.
42999
43000       CRYO APC                   :    @tab X
43001               @tab Audio format used in some games by CRYO Interactive Entertainment.
43002
43003       D-Cinema audio             :  X @tab X
43004       Deluxe Paint Animation     :    @tab X
43005       DCSTR                      :    @tab X
43006       DFA                        :    @tab X
43007               @tab This format is used in Chronomaster game
43008
43009       DirectDraw Surface         :    @tab X
43010       DSD Stream File (DSF)      :    @tab X
43011       DV video                   :  X @tab X
43012       DXA                        :    @tab X
43013               @tab This format is used in the non-Windows version of the Feeble Files
43014                    game and different game cutscenes repacked for use with ScummVM.
43015
43016       Electronic Arts cdata   :     @tab X
43017       Electronic Arts Multimedia   :     @tab X
43018               @tab Used in various EA games; files have extensions like WVE and UV2.
43019
43020       Ensoniq Paris Audio File   :    @tab X
43021       FFM (FFserver live feed)   :  X @tab X
43022       Flash (SWF)                :  X @tab X
43023       Flash 9 (AVM2)             :  X @tab X
43024               @tab Only embedded audio is decoded.
43025
43026       FLI/FLC/FLX animation      :    @tab X
43027               @tab .fli/.flc files
43028
43029       Flash Video (FLV)          :  X @tab X
43030               @tab Macromedia Flash video files
43031
43032       framecrc testing format    :  X @tab
43033       FunCom ISS                 :    @tab X
43034               @tab Audio format used in various games from FunCom like The Longest Journey.
43035
43036       G.723.1                    :  X @tab X
43037       G.726                      :    @tab X @tab Both left- and right-
43038       justified.
43039       G.729 BIT                  :  X @tab X
43040       G.729 raw                  :    @tab X
43041       GENH                       :    @tab X
43042               @tab Audio format for various games.
43043
43044       GIF Animation              :  X @tab X
43045       GXF                        :  X @tab X
43046               @tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley
43047                    playout servers.
43048
43049       HNM  :    @tab X
43050               @tab Only version 4 supported, used in some games from Cryo Interactive
43051
43052       iCEDraw File               :    @tab X
43053       ICO                        :  X @tab X
43054               @tab Microsoft Windows ICO
43055
43056       id Quake II CIN video      :    @tab X
43057       id RoQ                     :  X @tab X
43058               @tab Used in Quake III, Jedi Knight 2 and other computer games.
43059
43060       IEC61937 encapsulation  :  X @tab X
43061       IFF                        :    @tab X
43062               @tab Interchange File Format
43063
43064       IFV                        :    @tab X
43065               @tab A format used by some old CCTV DVRs.
43066
43067       iLBC                       :  X @tab X
43068       Interplay MVE              :    @tab X
43069               @tab Format used in various Interplay computer games.
43070
43071       Iterated Systems ClearVideo  :      @tab  X
43072               @tab I-frames only
43073
43074       IV8                        :    @tab X
43075               @tab A format generated by IndigoVision 8000 video server.
43076
43077       IVF (On2)                  :  X @tab X
43078               @tab A format used by libvpx
43079
43080       Internet Video Recording   :    @tab X
43081       IRCAM                      :  X @tab X
43082       LATM                       :  X @tab X
43083       LMLM4                      :    @tab X
43084               @tab Used by Linux Media Labs MPEG-4 PCI boards
43085
43086       LOAS                       :    @tab X
43087               @tab contains LATM multiplexed AAC audio
43088
43089       LRC                        :  X @tab X
43090       LVF                        :    @tab X
43091       LXF                        :    @tab X
43092               @tab VR native stream format, used by Leitch/Harris' video servers.
43093
43094       Magic Lantern Video (MLV)  :    @tab X
43095       Matroska                   :  X @tab X
43096       Matroska audio             :  X @tab
43097       FFmpeg metadata            :  X @tab X
43098               @tab Metadata in text format.
43099
43100       MAXIS XA                   :    @tab X
43101               @tab Used in Sim City 3000; file extension .xa.
43102
43103       MCA                        :    @tab X
43104               @tab Used in some games from Capcom; file extension .mca.
43105
43106       MD Studio                  :    @tab X
43107       Metal Gear Solid: The Twin Snakes  :  @tab X
43108       Megalux Frame              :    @tab X
43109               @tab Used by Megalux Ultimate Paint
43110
43111       Mobotix .mxg               :    @tab X
43112       Monkey's Audio             :    @tab X
43113       Motion Pixels MVI          :    @tab X
43114       MOV/QuickTime/MP4          :  X @tab X
43115               @tab 3GP, 3GP2, PSP, iPod variants supported
43116
43117       MP2                        :  X @tab X
43118       MP3                        :  X @tab X
43119       MPEG-1 System              :  X @tab X
43120               @tab muxed audio and video, VCD format supported
43121
43122       MPEG-PS (program stream)   :  X @tab X
43123               @tab also known as C<VOB> file, SVCD and DVD format supported
43124
43125       MPEG-TS (transport stream)  :  X @tab X
43126               @tab also known as DVB Transport Stream
43127
43128       MPEG-4                     :  X @tab X
43129               @tab MPEG-4 is a variant of QuickTime.
43130
43131       MSF                        :    @tab X
43132               @tab Audio format used on the PS3.
43133
43134       Mirillis FIC video         :    @tab X
43135               @tab No cursor rendering.
43136
43137       MIDI Sample Dump Standard  :    @tab X
43138       MIME multipart JPEG        :  X @tab
43139       MSN TCP webcam             :    @tab X
43140               @tab Used by MSN Messenger webcam streams.
43141
43142       MTV                        :    @tab X
43143       Musepack                   :    @tab X
43144       Musepack SV8               :    @tab X
43145       Material eXchange Format (MXF)  :  X @tab X
43146               @tab SMPTE 377M, used by D-Cinema, broadcast industry.
43147
43148       Material eXchange Format (MXF), D-10 Mapping  :  X @tab X
43149               @tab SMPTE 386M, D-10/IMX Mapping.
43150
43151       NC camera feed             :    @tab X
43152               @tab NC (AVIP NC4600) camera streams
43153
43154       NIST SPeech HEader REsources  :    @tab X
43155       Computerized Speech Lab NSP  :    @tab X
43156       NTT TwinVQ (VQF)           :    @tab X
43157               @tab Nippon Telegraph and Telephone Corporation TwinVQ.
43158
43159       Nullsoft Streaming Video   :    @tab X
43160       NuppelVideo                :    @tab X
43161       NUT                        :  X @tab X
43162               @tab NUT Open Container Format
43163
43164       Ogg                        :  X @tab X
43165       Playstation Portable PMP   :    @tab X
43166       Portable Voice Format      :    @tab X
43167       TechnoTrend PVA            :    @tab X
43168               @tab Used by TechnoTrend DVB PCI boards.
43169
43170       QCP                        :    @tab X
43171       raw ADTS (AAC)             :  X @tab X
43172       raw AC-3                   :  X @tab X
43173       raw AMR-NB                 :    @tab X
43174       raw AMR-WB                 :    @tab X
43175       raw aptX                   :  X @tab X
43176       raw aptX HD                :  X @tab X
43177       raw Chinese AVS video      :  X @tab X
43178       raw Dirac                  :  X @tab X
43179       raw DNxHD                  :  X @tab X
43180       raw DTS                    :  X @tab X
43181       raw DTS-HD                 :    @tab X
43182       raw E-AC-3                 :  X @tab X
43183       raw FLAC                   :  X @tab X
43184       raw GSM                    :    @tab X
43185       raw H.261                  :  X @tab X
43186       raw H.263                  :  X @tab X
43187       raw H.264                  :  X @tab X
43188       raw HEVC                   :  X @tab X
43189       raw Ingenient MJPEG        :    @tab X
43190       raw MJPEG                  :  X @tab X
43191       raw MLP                    :    @tab X
43192       raw MPEG                   :    @tab X
43193       raw MPEG-1                 :    @tab X
43194       raw MPEG-2                 :    @tab X
43195       raw MPEG-4                 :  X @tab X
43196       raw NULL                   :  X @tab
43197       raw video                  :  X @tab X
43198       raw id RoQ                 :  X @tab
43199       raw OBU                    :  X @tab X
43200       raw SBC                    :  X @tab X
43201       raw Shorten                :    @tab X
43202       raw TAK                    :    @tab X
43203       raw TrueHD                 :  X @tab X
43204       raw VC-1                   :  X @tab X
43205       raw PCM A-law              :  X @tab X
43206       raw PCM mu-law             :  X @tab X
43207       raw PCM Archimedes VIDC    :  X @tab X
43208       raw PCM signed 8 bit       :  X @tab X
43209       raw PCM signed 16 bit big-endian   :  X @tab X
43210       raw PCM signed 16 bit little-endian   :  X @tab X
43211       raw PCM signed 24 bit big-endian   :  X @tab X
43212       raw PCM signed 24 bit little-endian   :  X @tab X
43213       raw PCM signed 32 bit big-endian   :  X @tab X
43214       raw PCM signed 32 bit little-endian   :  X @tab X
43215       raw PCM signed 64 bit big-endian   :  X @tab X
43216       raw PCM signed 64 bit little-endian   :  X @tab X
43217       raw PCM unsigned 8 bit     :  X @tab X
43218       raw PCM unsigned 16 bit big-endian   :  X @tab X
43219       raw PCM unsigned 16 bit little-endian   :  X @tab X
43220       raw PCM unsigned 24 bit big-endian   :  X @tab X
43221       raw PCM unsigned 24 bit little-endian   :  X @tab X
43222       raw PCM unsigned 32 bit big-endian   :  X @tab X
43223       raw PCM unsigned 32 bit little-endian   :  X @tab X
43224       raw PCM 16.8 floating point little-endian  :    @tab X
43225       raw PCM 24.0 floating point little-endian  :    @tab X
43226       raw PCM floating-point 32 bit big-endian   :  X @tab X
43227       raw PCM floating-point 32 bit little-endian   :  X @tab X
43228       raw PCM floating-point 64 bit big-endian   :  X @tab X
43229       raw PCM floating-point 64 bit little-endian   :  X @tab X
43230       RDT                        :    @tab X
43231       REDCODE R3D                :    @tab X
43232               @tab File format used by RED Digital cameras, contains JPEG 2000 frames and PCM audio.
43233
43234       RealMedia                  :  X @tab X
43235       Redirector                 :    @tab X
43236       RedSpark                   :    @tab X
43237       Renderware TeXture Dictionary  :    @tab X
43238       Resolume DXV               :    @tab X
43239       RF64                       :    @tab X
43240       RL2                        :    @tab X
43241               @tab Audio and video format used in some games by Entertainment Software Partners.
43242
43243       RPL/ARMovie                :    @tab X
43244       Lego Mindstorms RSO        :  X @tab X
43245       RSD                        :    @tab X
43246       RTMP                       :  X @tab X
43247               @tab Output is performed by publishing stream to RTMP server
43248
43249       RTP                        :  X @tab X
43250       RTSP                       :  X @tab X
43251       Sample Dump eXchange       :    @tab X
43252       SAP                        :  X @tab X
43253       SBG                        :    @tab X
43254       SDP                        :    @tab X
43255       SER                        :    @tab X
43256       Sega FILM/CPK              :  X @tab X
43257               @tab Used in many Sega Saturn console games.
43258
43259       Silicon Graphics Movie     :    @tab X
43260       Sierra SOL                 :    @tab X
43261               @tab .sol files used in Sierra Online games.
43262
43263       Sierra VMD                 :    @tab X
43264               @tab Used in Sierra CD-ROM games.
43265
43266       Smacker                    :    @tab X
43267               @tab Multimedia format used by many games.
43268
43269       SMJPEG                     :  X @tab X
43270               @tab Used in certain Loki game ports.
43271
43272       SMPTE 337M encapsulation   :    @tab X
43273       Smush                      :    @tab X
43274               @tab Multimedia format used in some LucasArts games.
43275
43276       Sony OpenMG (OMA)          :  X @tab X
43277               @tab Audio format used in Sony Sonic Stage and Sony Vegas.
43278
43279       Sony PlayStation STR       :    @tab X
43280       Sony Wave64 (W64)          :  X @tab X
43281       SoX native format          :  X @tab X
43282       SUN AU format              :  X @tab X
43283       SUP raw PGS subtitles      :  X @tab X
43284       SVAG                       :    @tab X
43285               @tab Audio format used in Konami PS2 games.
43286
43287       TDSC                       :    @tab X
43288       Text files                 :    @tab X
43289       THP                        :    @tab X
43290               @tab Used on the Nintendo GameCube.
43291
43292       Tiertex Limited SEQ        :    @tab X
43293               @tab Tiertex .seq files used in the DOS CD-ROM version of the game Flashback.
43294
43295       True Audio                 :  X @tab X
43296       VAG                        :    @tab X
43297               @tab Audio format used in many Sony PS2 games.
43298
43299       VC-1 test bitstream        :  X @tab X
43300       Vidvox Hap                 :  X @tab X
43301       Vivo                       :    @tab X
43302       VPK                        :    @tab X
43303               @tab Audio format used in Sony PS games.
43304
43305       WAV                        :  X @tab X
43306       WavPack                    :  X @tab X
43307       WebM                       :  X @tab X
43308       Windows Televison (WTV)    :  X @tab X
43309       Wing Commander III movie   :    @tab X
43310               @tab Multimedia format used in Origin's Wing Commander III computer game.
43311
43312       Westwood Studios audio     :  X @tab X
43313               @tab Multimedia format used in Westwood Studios games.
43314
43315       Westwood Studios VQA       :    @tab X
43316               @tab Multimedia format used in Westwood Studios games.
43317
43318       Wideband Single-bit Data (WSD)  :    @tab X
43319       WVE                        :    @tab X
43320       XMV                        :    @tab X
43321               @tab Microsoft video container used in Xbox games.
43322
43323       XVAG                       :    @tab X
43324               @tab Audio format used on the PS3.
43325
43326       xWMA                       :    @tab X
43327               @tab Microsoft audio container used by XAudio 2.
43328
43329       eXtended BINary text (XBIN)  :  @tab X
43330       YUV4MPEG pipe              :  X @tab X
43331       Psygnosis YOP              :    @tab X
43332
43333       "X" means that the feature in that column (encoding / decoding) is
43334       supported.
43335
43336   Image Formats
43337       FFmpeg can read and write images for each frame of a video sequence.
43338       The following image formats are supported:
43339
43340       Name  :  Encoding @tab Decoding @tab Comments
43341       .Y.U.V        :  X @tab X
43342               @tab one raw file per component
43343
43344       Alias PIX     :  X @tab X
43345               @tab Alias/Wavefront PIX image format
43346
43347       animated GIF  :  X @tab X
43348       APNG          :  X @tab X
43349               @tab Animated Portable Network Graphics
43350
43351       BMP           :  X @tab X
43352               @tab Microsoft BMP image
43353
43354       BRender PIX   :    @tab X
43355               @tab Argonaut BRender 3D engine image format.
43356
43357       CRI           :    @tab X
43358               @tab Cintel RAW
43359
43360       DPX           :  X @tab X
43361               @tab Digital Picture Exchange
43362
43363       EXR           :    @tab X
43364               @tab OpenEXR
43365
43366       FITS          :  X @tab X
43367               @tab Flexible Image Transport System
43368
43369       IMG           :    @tab X
43370               @tab GEM Raster image
43371
43372       JPEG          :  X @tab X
43373               @tab Progressive JPEG is not supported.
43374
43375       JPEG 2000     :  X @tab X
43376       JPEG-LS       :  X @tab X
43377       LJPEG         :  X @tab
43378               @tab Lossless JPEG
43379
43380       MSP           :    @tab X
43381               @tab Microsoft Paint image
43382
43383       PAM           :  X @tab X
43384               @tab PAM is a PNM extension with alpha support.
43385
43386       PBM           :  X @tab X
43387               @tab Portable BitMap image
43388
43389       PCD           :    @tab X
43390               @tab PhotoCD
43391
43392       PCX           :  X @tab X
43393               @tab PC Paintbrush
43394
43395       PFM           :  X @tab X
43396               @tab Portable FloatMap image
43397
43398       PGM           :  X @tab X
43399               @tab Portable GrayMap image
43400
43401       PGMYUV        :  X @tab X
43402               @tab PGM with U and V components in YUV 4:2:0
43403
43404       PGX           :    @tab X
43405               @tab PGX file decoder
43406
43407       PIC           :  @tab X
43408               @tab Pictor/PC Paint
43409
43410       PNG           :  X @tab X
43411               @tab Portable Network Graphics image
43412
43413       PPM           :  X @tab X
43414               @tab Portable PixelMap image
43415
43416       PSD           :    @tab X
43417               @tab Photoshop
43418
43419       PTX           :    @tab X
43420               @tab V.Flash PTX format
43421
43422       SGI           :  X @tab X
43423               @tab SGI RGB image format
43424
43425       Sun Rasterfile   :  X @tab X
43426               @tab Sun RAS image format
43427
43428       TIFF          :  X @tab X
43429               @tab YUV, JPEG and some extension is not supported yet.
43430
43431       Truevision Targa   :  X @tab X
43432               @tab Targa (.TGA) image format
43433
43434       WebP          :  E @tab X
43435               @tab WebP image format, encoding supported through external library libwebp
43436
43437       XBM   :  X @tab X
43438               @tab X BitMap image format
43439
43440       XFace  :  X @tab X
43441               @tab X-Face image format
43442
43443       XPM   :    @tab X
43444               @tab X PixMap image format
43445
43446       XWD   :  X @tab X
43447               @tab X Window Dump image format
43448
43449       "X" means that the feature in that column (encoding / decoding) is
43450       supported.
43451
43452       "E" means that support is provided through an external library.
43453
43454   Video Codecs
43455       Name  :  Encoding @tab Decoding @tab Comments
43456       4X Movie                :      @tab  X
43457               @tab Used in certain computer games.
43458
43459       8088flex TMV            :      @tab  X
43460       A64 multicolor          :   X  @tab
43461               @tab Creates video suitable to be played on a commodore 64 (multicolor mode).
43462
43463       Amazing Studio PAF Video  :      @tab  X
43464       American Laser Games MM   :     @tab X
43465               @tab Used in games like Mad Dog McCree.
43466
43467       Amuse Graphics Movie    :      @tab  X
43468       AMV Video               :   X  @tab  X
43469               @tab Used in Chinese MP3 players.
43470
43471       ANSI/ASCII art          :      @tab  X
43472       Apple Intermediate Codec  :      @tab  X
43473       Apple MJPEG-B           :      @tab  X
43474       Apple Pixlet            :      @tab  X
43475       Apple ProRes            :   X  @tab  X
43476               @tab fourcc: apch,apcn,apcs,apco,ap4h,ap4x
43477
43478       Apple QuickDraw         :      @tab  X
43479               @tab fourcc: qdrw
43480
43481       Argonaut Video          :      @tab  X
43482               @tab Used in some Argonaut games.
43483
43484       Asus v1                 :   X  @tab  X
43485               @tab fourcc: ASV1
43486
43487       Asus v2                 :   X  @tab  X
43488               @tab fourcc: ASV2
43489
43490       ATI VCR1                :      @tab  X
43491               @tab fourcc: VCR1
43492
43493       ATI VCR2                :      @tab  X
43494               @tab fourcc: VCR2
43495
43496       Auravision Aura         :      @tab  X
43497       Auravision Aura 2       :      @tab  X
43498       Autodesk Animator Flic video   :      @tab  X
43499       Autodesk RLE            :      @tab  X
43500               @tab fourcc: AASC
43501
43502       AV1                     :   E  @tab  E
43503               @tab Supported through external libraries libaom, libdav1d, librav1e and libsvtav1
43504
43505       Avid 1:1 10-bit RGB Packer   :   X  @tab  X
43506               @tab fourcc: AVrp
43507
43508       AVS (Audio Video Standard) video   :      @tab  X
43509               @tab Video encoding used by the Creature Shock game.
43510
43511       AVS2-P2/IEEE1857.4      :   E  @tab  E
43512               @tab Supported through external libraries libxavs2 and libdavs2
43513
43514       AVS3-P2/IEEE1857.10     :      @tab  E
43515               @tab Supported through external library libuavs3d
43516
43517       AYUV                    :   X  @tab  X
43518               @tab Microsoft uncompressed packed 4:4:4:4
43519
43520       Beam Software VB        :      @tab  X
43521       Bethesda VID video      :      @tab  X
43522               @tab Used in some games from Bethesda Softworks.
43523
43524       Bink Video              :      @tab  X
43525       BitJazz SheerVideo      :      @tab  X
43526       Bitmap Brothers JV video   :    @tab X
43527       y41p Brooktree uncompressed 4:1:1 12-bit      :   X  @tab  X
43528       Brooktree ProSumer Video   :      @tab  X
43529               @tab fourcc: BT20
43530
43531       Brute Force & Ignorance    :    @tab X
43532               @tab Used in the game Flash Traffic: City of Angels.
43533
43534       C93 video               :      @tab  X
43535               @tab Codec used in Cyberia game.
43536
43537       CamStudio               :      @tab  X
43538               @tab fourcc: CSCD
43539
43540       CD+G                    :      @tab  X
43541               @tab Video codec for CD+G karaoke disks
43542
43543       CDXL                    :      @tab  X
43544               @tab Amiga CD video codec
43545
43546       Chinese AVS video       :   E  @tab  X
43547               @tab AVS1-P2, JiZhun profile, encoding through external library libxavs
43548
43549       Delphine Software International CIN video   :      @tab  X
43550               @tab Codec used in Delphine Software International games.
43551
43552       Discworld II BMV Video  :      @tab  X
43553       CineForm HD             :   X  @tab  X
43554       Canopus HQ              :      @tab  X
43555       Canopus HQA             :      @tab  X
43556       Canopus HQX             :      @tab  X
43557       Canopus Lossless Codec  :      @tab  X
43558       CDToons                 :      @tab  X
43559               @tab Codec used in various Broderbund games.
43560
43561       Cinepak                 :      @tab  X
43562       Cirrus Logic AccuPak    :   X  @tab  X
43563               @tab fourcc: CLJR
43564
43565       CPiA Video Format       :      @tab  X
43566       Creative YUV (CYUV)     :      @tab  X
43567       DFA                     :      @tab  X
43568               @tab Codec used in Chronomaster game.
43569
43570       Dirac                   :   E  @tab  X
43571               @tab supported though the native vc2 (Dirac Pro) encoder
43572
43573       Deluxe Paint Animation  :      @tab  X
43574       DNxHD                   :    X @tab  X
43575               @tab aka SMPTE VC3
43576
43577       Duck TrueMotion 1.0    :      @tab  X
43578               @tab fourcc: DUCK
43579
43580       Duck TrueMotion 2.0     :      @tab  X
43581               @tab fourcc: TM20
43582
43583       Duck TrueMotion 2.0 RT  :      @tab  X
43584               @tab fourcc: TR20
43585
43586       DV (Digital Video)      :   X  @tab  X
43587       Dxtory capture format   :      @tab  X
43588       Feeble Files/ScummVM DXA   :      @tab  X
43589               @tab Codec originally used in Feeble Files game.
43590
43591       Electronic Arts CMV video   :      @tab  X
43592               @tab Used in NHL 95 game.
43593
43594       Electronic Arts Madcow video   :      @tab  X
43595       Electronic Arts TGV video   :      @tab  X
43596       Electronic Arts TGQ video   :      @tab  X
43597       Electronic Arts TQI video   :      @tab  X
43598       Escape 124              :      @tab  X
43599       Escape 130              :      @tab  X
43600       FFmpeg video codec #1   :   X  @tab  X
43601               @tab lossless codec (fourcc: FFV1)
43602
43603       Flash Screen Video v1   :   X  @tab  X
43604               @tab fourcc: FSV1
43605
43606       Flash Screen Video v2   :   X  @tab  X
43607       Flash Video (FLV)       :   X  @tab  X
43608               @tab Sorenson H.263 used in Flash
43609
43610       FM Screen Capture Codec   :      @tab  X
43611       Forward Uncompressed    :      @tab  X
43612       Fraps                   :      @tab  X
43613       Go2Meeting              :      @tab  X
43614               @tab fourcc: G2M2, G2M3
43615
43616       Go2Webinar              :      @tab  X
43617               @tab fourcc: G2M4
43618
43619       Gremlin Digital Video   :      @tab  X
43620       H.261                   :   X  @tab  X
43621       H.263 / H.263-1996      :   X  @tab  X
43622       H.263+ / H.263-1998 / H.263 version 2   :   X  @tab  X
43623       H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10   :   E  @tab  X
43624               @tab encoding supported through external library libx264 and OpenH264
43625
43626       HEVC                    :   X  @tab  X
43627               @tab encoding supported through external library libx265 and libkvazaar
43628
43629       HNM version 4           :      @tab  X
43630       HuffYUV                 :   X  @tab  X
43631       HuffYUV FFmpeg variant  :   X  @tab  X
43632       IBM Ultimotion          :      @tab  X
43633               @tab fourcc: ULTI
43634
43635       id Cinematic video      :      @tab  X
43636               @tab Used in Quake II.
43637
43638       id RoQ video            :   X  @tab  X
43639               @tab Used in Quake III, Jedi Knight 2, other computer games.
43640
43641       IFF ILBM                :      @tab  X
43642               @tab IFF interleaved bitmap
43643
43644       IFF ByteRun1            :      @tab  X
43645               @tab IFF run length encoded bitmap
43646
43647       Infinity IMM4           :      @tab  X
43648       Intel H.263             :      @tab  X
43649       Intel Indeo 2           :      @tab  X
43650       Intel Indeo 3           :      @tab  X
43651       Intel Indeo 4           :      @tab  X
43652       Intel Indeo 5           :      @tab  X
43653       Interplay C93           :      @tab  X
43654               @tab Used in the game Cyberia from Interplay.
43655
43656       Interplay MVE video     :      @tab  X
43657               @tab Used in Interplay .MVE files.
43658
43659       J2K  :   X  @tab  X
43660       Karl Morton's video codec   :      @tab  X
43661               @tab Codec used in Worms games.
43662
43663       Kega Game Video (KGV1)  :       @tab  X
43664               @tab Kega emulator screen capture codec.
43665
43666       Lagarith                :      @tab  X
43667       LCL (LossLess Codec Library) MSZH   :      @tab  X
43668       LCL (LossLess Codec Library) ZLIB   :   E  @tab  E
43669       LOCO                    :      @tab  X
43670       LucasArts SANM/Smush    :      @tab  X
43671               @tab Used in LucasArts games / SMUSH animations.
43672
43673       lossless MJPEG          :   X  @tab  X
43674       MagicYUV Video          :   X  @tab  X
43675       Mandsoft Screen Capture Codec   :      @tab  X
43676       Microsoft ATC Screen    :      @tab  X
43677               @tab Also known as Microsoft Screen 3.
43678
43679       Microsoft Expression Encoder Screen   :      @tab  X
43680               @tab Also known as Microsoft Titanium Screen 2.
43681
43682       Microsoft RLE           :      @tab  X
43683       Microsoft Screen 1      :      @tab  X
43684               @tab Also known as Windows Media Video V7 Screen.
43685
43686       Microsoft Screen 2      :      @tab  X
43687               @tab Also known as Windows Media Video V9 Screen.
43688
43689       Microsoft Video 1       :      @tab  X
43690       Mimic                   :      @tab  X
43691               @tab Used in MSN Messenger Webcam streams.
43692
43693       Miro VideoXL            :      @tab  X
43694               @tab fourcc: VIXL
43695
43696       MJPEG (Motion JPEG)     :   X  @tab  X
43697       Mobotix MxPEG video     :      @tab  X
43698       Motion Pixels video     :      @tab  X
43699       MPEG-1 video            :   X  @tab  X
43700       MPEG-2 video            :   X  @tab  X
43701       MPEG-4 part 2           :   X  @tab  X
43702               @tab libxvidcore can be used alternatively for encoding.
43703
43704       MPEG-4 part 2 Microsoft variant version 1   :      @tab  X
43705       MPEG-4 part 2 Microsoft variant version 2   :   X  @tab  X
43706       MPEG-4 part 2 Microsoft variant version 3   :   X  @tab  X
43707       Newtek SpeedHQ                :   X  @tab  X
43708       Nintendo Gamecube THP video   :      @tab  X
43709       NotchLC                 :      @tab  X
43710       NuppelVideo/RTjpeg      :      @tab  X
43711               @tab Video encoding used in NuppelVideo files.
43712
43713       On2 VP3                 :      @tab  X
43714               @tab still experimental
43715
43716       On2 VP4                 :      @tab  X
43717               @tab fourcc: VP40
43718
43719       On2 VP5                 :      @tab  X
43720               @tab fourcc: VP50
43721
43722       On2 VP6                 :      @tab  X
43723               @tab fourcc: VP60,VP61,VP62
43724
43725       On2 VP7                 :      @tab  X
43726               @tab fourcc: VP70,VP71
43727
43728       VP8                     :   E  @tab  X
43729               @tab fourcc: VP80, encoding supported through external library libvpx
43730
43731       VP9                     :   E  @tab  X
43732               @tab encoding supported through external library libvpx
43733
43734       Pinnacle TARGA CineWave YUV16  :      @tab  X
43735               @tab fourcc: Y216
43736
43737       Q-team QPEG             :      @tab  X
43738               @tab fourccs: QPEG, Q1.0, Q1.1
43739
43740       QuickTime 8BPS video    :      @tab  X
43741       QuickTime Animation (RLE) video   :   X  @tab  X
43742               @tab fourcc: 'rle '
43743
43744       QuickTime Graphics (SMC)   :   X  @tab  X
43745               @tab fourcc: 'smc '
43746
43747       QuickTime video (RPZA)  :   X  @tab  X
43748               @tab fourcc: rpza
43749
43750       R10K AJA Kona 10-bit RGB Codec      :   X  @tab  X
43751       R210 Quicktime Uncompressed RGB 10-bit      :   X  @tab  X
43752       Raw Video               :   X  @tab  X
43753       RealVideo 1.0           :   X  @tab  X
43754       RealVideo 2.0           :   X  @tab  X
43755       RealVideo 3.0           :      @tab  X
43756               @tab still far from ideal
43757
43758       RealVideo 4.0           :      @tab  X
43759       Renderware TXD (TeXture Dictionary)   :      @tab  X
43760               @tab Texture dictionaries used by the Renderware Engine.
43761
43762       RL2 video               :      @tab  X
43763               @tab used in some games by Entertainment Software Partners
43764
43765       ScreenPressor           :      @tab  X
43766       Screenpresso            :      @tab  X
43767       Screen Recorder Gold Codec   :      @tab  X
43768       Sierra VMD video        :      @tab  X
43769               @tab Used in Sierra VMD files.
43770
43771       Silicon Graphics Motion Video Compressor 1 (MVC1)   :      @tab  X
43772       Silicon Graphics Motion Video Compressor 2 (MVC2)   :      @tab  X
43773       Silicon Graphics RLE 8-bit video   :      @tab  X
43774       Smacker video           :      @tab  X
43775               @tab Video encoding used in Smacker.
43776
43777       SMPTE VC-1              :      @tab  X
43778       Snow                    :   X  @tab  X
43779               @tab experimental wavelet codec (fourcc: SNOW)
43780
43781       Sony PlayStation MDEC (Motion DECoder)   :      @tab  X
43782       Sorenson Vector Quantizer 1   :   X  @tab  X
43783               @tab fourcc: SVQ1
43784
43785       Sorenson Vector Quantizer 3   :      @tab  X
43786               @tab fourcc: SVQ3
43787
43788       Sunplus JPEG (SP5X)     :      @tab  X
43789               @tab fourcc: SP5X
43790
43791       TechSmith Screen Capture Codec   :      @tab  X
43792               @tab fourcc: TSCC
43793
43794       TechSmith Screen Capture Codec 2   :      @tab  X
43795               @tab fourcc: TSC2
43796
43797       Theora                  :   E  @tab  X
43798               @tab encoding supported through external library libtheora
43799
43800       Tiertex Limited SEQ video   :      @tab  X
43801               @tab Codec used in DOS CD-ROM FlashBack game.
43802
43803       Ut Video                :   X  @tab  X
43804       v210 QuickTime uncompressed 4:2:2 10-bit      :   X  @tab  X
43805       v308 QuickTime uncompressed 4:4:4             :   X  @tab  X
43806       v408 QuickTime uncompressed 4:4:4:4           :   X  @tab  X
43807       v410 QuickTime uncompressed 4:4:4 10-bit      :   X  @tab  X
43808       VBLE Lossless Codec     :      @tab  X
43809       VMware Screen Codec / VMware Video   :      @tab  X
43810               @tab Codec used in videos captured by VMware.
43811
43812       Westwood Studios VQA (Vector Quantized Animation) video   :      @tab
43813       X
43814       Windows Media Image     :      @tab  X
43815       Windows Media Video 7   :   X  @tab  X
43816       Windows Media Video 8   :   X  @tab  X
43817       Windows Media Video 9   :      @tab  X
43818               @tab not completely working
43819
43820       Wing Commander III / Xan   :      @tab  X
43821               @tab Used in Wing Commander III .MVE files.
43822
43823       Wing Commander IV / Xan   :      @tab  X
43824               @tab Used in Wing Commander IV.
43825
43826       Winnov WNV1             :      @tab  X
43827       WMV7                    :   X  @tab  X
43828       YAMAHA SMAF             :   X  @tab  X
43829       Psygnosis YOP Video     :      @tab  X
43830       yuv4                    :   X  @tab  X
43831               @tab libquicktime uncompressed packed 4:2:0
43832
43833       ZeroCodec Lossless Video  :      @tab  X
43834       ZLIB                    :   X  @tab  X
43835               @tab part of LCL, encoder experimental
43836
43837       Zip Motion Blocks Video   :    X @tab  X
43838               @tab Encoder works only in PAL8.
43839
43840       "X" means that the feature in that column (encoding / decoding) is
43841       supported.
43842
43843       "E" means that support is provided through an external library.
43844
43845   Audio Codecs
43846       Name  :  Encoding @tab Decoding @tab Comments
43847       8SVX exponential        :      @tab  X
43848       8SVX fibonacci          :      @tab  X
43849       AAC                     :  EX  @tab  X
43850               @tab encoding supported through internal encoder and external library libfdk-aac
43851
43852       AAC+                    :   E  @tab  IX
43853               @tab encoding supported through external library libfdk-aac
43854
43855       AC-3                    :  IX  @tab  IX
43856       ACELP.KELVIN            :      @tab  X
43857       ADPCM 4X Movie          :      @tab  X
43858       ADPCM Yamaha AICA       :      @tab  X
43859       ADPCM AmuseGraphics Movie  :     @tab  X
43860       ADPCM Argonaut Games    :  X   @tab  X
43861       ADPCM CDROM XA          :      @tab  X
43862       ADPCM Creative Technology  :      @tab  X
43863               @tab 16 -E<gt> 4, 8 -E<gt> 4, 8 -E<gt> 3, 8 -E<gt> 2
43864
43865       ADPCM Electronic Arts   :      @tab  X
43866               @tab Used in various EA titles.
43867
43868       ADPCM Electronic Arts Maxis CDROM XS   :      @tab  X
43869               @tab Used in Sim City 3000.
43870
43871       ADPCM Electronic Arts R1   :      @tab  X
43872       ADPCM Electronic Arts R2   :      @tab  X
43873       ADPCM Electronic Arts R3   :      @tab  X
43874       ADPCM Electronic Arts XAS  :      @tab  X
43875       ADPCM G.722             :   X  @tab  X
43876       ADPCM G.726             :   X  @tab  X
43877       ADPCM IMA Acorn Replay  :      @tab  X
43878       ADPCM IMA AMV           :   X  @tab  X
43879               @tab Used in AMV files
43880
43881       ADPCM IMA Cunning Developments   :      @tab  X
43882       ADPCM IMA Electronic Arts EACS   :      @tab  X
43883       ADPCM IMA Electronic Arts SEAD   :      @tab  X
43884       ADPCM IMA Funcom        :      @tab  X
43885       ADPCM IMA High Voltage Software ALP       :   X  @tab  X
43886       ADPCM IMA QuickTime     :   X  @tab  X
43887       ADPCM IMA Simon & Schuster Interactive    :   X  @tab  X
43888       ADPCM IMA Ubisoft APM   :   X  @tab  X
43889       ADPCM IMA Loki SDL MJPEG   :      @tab  X
43890       ADPCM IMA WAV           :   X  @tab  X
43891       ADPCM IMA Westwood      :      @tab  X
43892       ADPCM ISS IMA           :      @tab  X
43893               @tab Used in FunCom games.
43894
43895       ADPCM IMA Dialogic      :      @tab  X
43896       ADPCM IMA Duck DK3      :      @tab  X
43897               @tab Used in some Sega Saturn console games.
43898
43899       ADPCM IMA Duck DK4      :      @tab  X
43900               @tab Used in some Sega Saturn console games.
43901
43902       ADPCM IMA Radical       :      @tab  X
43903       ADPCM Microsoft         :   X  @tab  X
43904       ADPCM MS IMA            :   X  @tab  X
43905       ADPCM Nintendo Gamecube AFC   :      @tab  X
43906       ADPCM Nintendo Gamecube DTK   :      @tab  X
43907       ADPCM Nintendo THP   :      @tab  X
43908       ADPCM Playstation       :      @tab  X
43909       ADPCM QT IMA            :   X  @tab  X
43910       ADPCM SEGA CRI ADX      :   X  @tab  X
43911               @tab Used in Sega Dreamcast games.
43912
43913       ADPCM Shockwave Flash   :   X  @tab  X
43914       ADPCM Sound Blaster Pro 2-bit   :      @tab  X
43915       ADPCM Sound Blaster Pro 2.6-bit   :      @tab  X
43916       ADPCM Sound Blaster Pro 4-bit   :      @tab  X
43917       ADPCM VIMA              :      @tab  X
43918               @tab Used in LucasArts SMUSH animations.
43919
43920       ADPCM Westwood Studios IMA       :   X @tab  X
43921               @tab Used in Westwood Studios games like Command and Conquer.
43922
43923       ADPCM Yamaha            :   X  @tab  X
43924       ADPCM Zork              :      @tab  X
43925       AMR-NB                  :   E  @tab  X
43926               @tab encoding supported through external library libopencore-amrnb
43927
43928       AMR-WB                  :   E  @tab  X
43929               @tab encoding supported through external library libvo-amrwbenc
43930
43931       Amazing Studio PAF Audio  :      @tab  X
43932       Apple lossless audio    :   X  @tab  X
43933               @tab QuickTime fourcc 'alac'
43934
43935       aptX                    :   X  @tab  X
43936               @tab Used in Bluetooth A2DP
43937
43938       aptX HD                 :   X  @tab  X
43939               @tab Used in Bluetooth A2DP
43940
43941       ATRAC1                  :      @tab  X
43942       ATRAC3                  :      @tab  X
43943       ATRAC3+                 :      @tab  X
43944       ATRAC9                  :      @tab  X
43945       Bink Audio              :      @tab  X
43946               @tab Used in Bink and Smacker files in many games.
43947
43948       CELT                    :      @tab  E
43949               @tab decoding supported through external library libcelt
43950
43951       codec2                  :   E  @tab  E
43952               @tab en/decoding supported through external library libcodec2
43953
43954       CRI HCA                 :      @tab X
43955       Delphine Software International CIN audio   :      @tab  X
43956               @tab Codec used in Delphine Software International games.
43957
43958       Digital Speech Standard - Standard Play mode (DSS SP)  :      @tab  X
43959       Discworld II BMV Audio  :      @tab  X
43960       COOK                    :      @tab  X
43961               @tab All versions except 5.1 are supported.
43962
43963       DCA (DTS Coherent Acoustics)   :   X  @tab  X
43964               @tab supported extensions: XCh, XXCH, X96, XBR, XLL, LBR (partially)
43965
43966       Dolby E   :      @tab  X
43967       DPCM Gremlin            :      @tab  X
43968       DPCM id RoQ             :   X  @tab  X
43969               @tab Used in Quake III, Jedi Knight 2 and other computer games.
43970
43971       DPCM Interplay          :      @tab  X
43972               @tab Used in various Interplay computer games.
43973
43974       DPCM Squareroot-Delta-Exact   :   @tab  X
43975               @tab Used in various games.
43976
43977       DPCM Sierra Online      :      @tab  X
43978               @tab Used in Sierra Online game audio files.
43979
43980       DPCM Sol                :      @tab  X
43981       DPCM Xan                :      @tab  X
43982               @tab Used in Origin's Wing Commander IV AVI files.
43983
43984       DPCM Xilam DERF         :      @tab  X
43985       DSD (Direct Stream Digital), least significant bit first   :   @tab  X
43986       DSD (Direct Stream Digital), most significant bit first    :   @tab  X
43987       DSD (Direct Stream Digital), least significant bit first, planar   :
43988       @tab  X
43989       DSD (Direct Stream Digital), most significant bit first, planar    :
43990       @tab  X
43991       DSP Group TrueSpeech    :      @tab  X
43992       DST (Direct Stream Transfer)  :   @tab  X
43993       DV audio                :      @tab  X
43994       Enhanced AC-3           :   X  @tab  X
43995       EVRC (Enhanced Variable Rate Codec)  :      @tab  X
43996       FLAC (Free Lossless Audio Codec)   :   X  @tab  IX
43997       G.723.1                 :  X   @tab  X
43998       G.729                   :      @tab  X
43999       GSM                     :   E  @tab  X
44000               @tab encoding supported through external library libgsm
44001
44002       GSM Microsoft variant   :   E  @tab  X
44003               @tab encoding supported through external library libgsm
44004
44005       IAC (Indeo Audio Coder)   :      @tab  X
44006       iLBC (Internet Low Bitrate Codec)  :   E  @tab  EX
44007               @tab encoding and decoding supported through external library libilbc
44008
44009       IMC (Intel Music Coder)   :      @tab  X
44010       Interplay ACM             :      @tab  X
44011       MACE (Macintosh Audio Compression/Expansion) 3:1   :      @tab  X
44012       MACE (Macintosh Audio Compression/Expansion) 6:1   :      @tab  X
44013       MLP (Meridian Lossless Packing)   :   X  @tab  X
44014               @tab Used in DVD-Audio discs.
44015
44016       Monkey's Audio          :      @tab  X
44017       MP1 (MPEG audio layer 1)   :      @tab IX
44018       MP2 (MPEG audio layer 2)   :  IX  @tab IX
44019               @tab encoding supported also through external library TwoLAME
44020
44021       MP3 (MPEG audio layer 3)   :   E  @tab IX
44022               @tab encoding supported through external library LAME, ADU MP3 and MP3onMP4 also supported
44023
44024       MPEG-4 Audio Lossless Coding (ALS)   :      @tab  X
44025       Musepack SV7            :      @tab  X
44026       Musepack SV8            :      @tab  X
44027       Nellymoser Asao         :   X  @tab  X
44028       On2 AVC (Audio for Video Codec)  :      @tab  X
44029       Opus                    :   E  @tab  X
44030               @tab encoding supported through external library libopus
44031
44032       PCM A-law               :   X  @tab  X
44033       PCM mu-law              :   X  @tab  X
44034       PCM Archimedes VIDC     :   X  @tab  X
44035       PCM signed 8-bit planar   :   X  @tab  X
44036       PCM signed 16-bit big-endian planar   :   X  @tab  X
44037       PCM signed 16-bit little-endian planar   :   X  @tab  X
44038       PCM signed 24-bit little-endian planar   :   X  @tab  X
44039       PCM signed 32-bit little-endian planar   :   X  @tab  X
44040       PCM 32-bit floating point big-endian   :   X  @tab  X
44041       PCM 32-bit floating point little-endian   :   X  @tab  X
44042       PCM 64-bit floating point big-endian   :   X  @tab  X
44043       PCM 64-bit floating point little-endian   :   X  @tab  X
44044       PCM D-Cinema audio signed 24-bit    :   X  @tab  X
44045       PCM signed 8-bit        :   X  @tab  X
44046       PCM signed 16-bit big-endian   :   X  @tab  X
44047       PCM signed 16-bit little-endian   :   X  @tab  X
44048       PCM signed 24-bit big-endian   :   X  @tab  X
44049       PCM signed 24-bit little-endian   :   X  @tab  X
44050       PCM signed 32-bit big-endian   :   X  @tab  X
44051       PCM signed 32-bit little-endian   :   X  @tab  X
44052       PCM signed 16/20/24-bit big-endian in MPEG-TS   :      @tab  X
44053       PCM unsigned 8-bit      :   X  @tab  X
44054       PCM unsigned 16-bit big-endian   :   X  @tab  X
44055       PCM unsigned 16-bit little-endian   :   X  @tab  X
44056       PCM unsigned 24-bit big-endian   :   X  @tab  X
44057       PCM unsigned 24-bit little-endian   :   X  @tab  X
44058       PCM unsigned 32-bit big-endian   :   X  @tab  X
44059       PCM unsigned 32-bit little-endian   :   X  @tab  X
44060       QCELP / PureVoice       :      @tab  X
44061       QDesign Music Codec 1   :      @tab  X
44062       QDesign Music Codec 2   :      @tab  X
44063               @tab There are still some distortions.
44064
44065       RealAudio 1.0 (14.4K)   :   X  @tab  X
44066               @tab Real 14400 bit/s codec
44067
44068       RealAudio 2.0 (28.8K)   :      @tab  X
44069               @tab Real 28800 bit/s codec
44070
44071       RealAudio 3.0 (dnet)    :  IX  @tab  X
44072               @tab Real low bitrate AC-3 codec
44073
44074       RealAudio Lossless      :      @tab  X
44075       RealAudio SIPR / ACELP.NET  :      @tab  X
44076       SBC (low-complexity subband codec)  :   X  @tab  X
44077               @tab Used in Bluetooth A2DP
44078
44079       Shorten                 :      @tab  X
44080       Sierra VMD audio        :      @tab  X
44081               @tab Used in Sierra VMD files.
44082
44083       Smacker audio           :      @tab  X
44084       SMPTE 302M AES3 audio   :   X  @tab  X
44085       Sonic                   :   X  @tab  X
44086               @tab experimental codec
44087
44088       Sonic lossless          :   X  @tab  X
44089               @tab experimental codec
44090
44091       Speex                   :   E  @tab  EX
44092               @tab supported through external library libspeex
44093
44094       TAK (Tom's lossless Audio Kompressor)   :      @tab  X
44095       True Audio (TTA)        :   X  @tab  X
44096       TrueHD                  :   X  @tab  X
44097               @tab Used in HD-DVD and Blu-Ray discs.
44098
44099       TwinVQ (VQF flavor)     :      @tab  X
44100       VIMA                    :      @tab  X
44101               @tab Used in LucasArts SMUSH animations.
44102
44103       Vorbis                  :   E  @tab  X
44104               @tab A native but very primitive encoder exists.
44105
44106       Voxware MetaSound       :      @tab  X
44107       WavPack                 :   X  @tab  X
44108       Westwood Audio (SND1)   :      @tab  X
44109       Windows Media Audio 1   :   X  @tab  X
44110       Windows Media Audio 2   :   X  @tab  X
44111       Windows Media Audio Lossless  :   @tab  X
44112       Windows Media Audio Pro  :     @tab  X
44113       Windows Media Audio Voice  :   @tab  X
44114       Xbox Media Audio 1      :      @tab  X
44115       Xbox Media Audio 2      :      @tab  X
44116
44117       "X" means that the feature in that column (encoding / decoding) is
44118       supported.
44119
44120       "E" means that support is provided through an external library.
44121
44122       "I" means that an integer-only version is available, too (ensures high
44123       performance on systems without hardware floating point support).
44124
44125   Subtitle Formats
44126       Name  :  Muxing @tab Demuxing @tab Encoding @tab Decoding
44127       3GPP Timed Text   :    @tab   @tab X @tab X
44128       AQTitle           :    @tab X @tab   @tab X
44129       DVB               :  X @tab X @tab X @tab X
44130       DVB teletext      :    @tab X @tab   @tab E
44131       DVD               :  X @tab X @tab X @tab X
44132       JACOsub           :  X @tab X @tab   @tab X
44133       MicroDVD          :  X @tab X @tab   @tab X
44134       MPL2              :    @tab X @tab   @tab X
44135       MPsub (MPlayer)   :    @tab X @tab   @tab X
44136       PGS               :    @tab   @tab   @tab X
44137       PJS (Phoenix)     :    @tab X @tab   @tab X
44138       RealText          :    @tab X @tab   @tab X
44139       SAMI              :    @tab X @tab   @tab X
44140       Spruce format (STL)  :    @tab X @tab   @tab X
44141       SSA/ASS           :  X @tab X @tab X @tab X
44142       SubRip (SRT)      :  X @tab X @tab X @tab X
44143       SubViewer v1      :    @tab X @tab   @tab X
44144       SubViewer         :    @tab X @tab   @tab X
44145       TED Talks captions  :  @tab X @tab   @tab X
44146       TTML              :  X @tab   @tab X @tab
44147       VobSub (IDX+SUB)  :    @tab X @tab   @tab X
44148       VPlayer           :    @tab X @tab   @tab X
44149       WebVTT            :  X @tab X @tab X @tab X
44150       XSUB              :    @tab   @tab X @tab X
44151
44152       "X" means that the feature is supported.
44153
44154       "E" means that support is provided through an external library.
44155
44156   Network Protocols
44157       Name          :  Support
44158       AMQP          :  E
44159       file          :  X
44160       FTP           :  X
44161       Gopher        :  X
44162       Gophers       :  X
44163       HLS           :  X
44164       HTTP          :  X
44165       HTTPS         :  X
44166       Icecast       :  X
44167       MMSH          :  X
44168       MMST          :  X
44169       pipe          :  X
44170       Pro-MPEG FEC  :  X
44171       RTMP          :  X
44172       RTMPE         :  X
44173       RTMPS         :  X
44174       RTMPT         :  X
44175       RTMPTE        :  X
44176       RTMPTS        :  X
44177       RTP           :  X
44178       SAMBA         :  E
44179       SCTP          :  X
44180       SFTP          :  E
44181       TCP           :  X
44182       TLS           :  X
44183       UDP           :  X
44184       ZMQ           :  E
44185
44186       "X" means that the protocol is supported.
44187
44188       "E" means that support is provided through an external library.
44189
44190   Input/Output Devices
44191       Name               :  Input  @tab Output
44192       ALSA               :  X      @tab X
44193       BKTR               :  X      @tab
44194       caca               :         @tab X
44195       DV1394             :  X      @tab
44196       Lavfi virtual device  :  X   @tab
44197       Linux framebuffer  :  X      @tab X
44198       JACK               :  X      @tab
44199       LIBCDIO            :  X
44200       LIBDC1394          :  X      @tab
44201       OpenAL             :  X
44202       OpenGL             :         @tab X
44203       OSS                :  X      @tab X
44204       PulseAudio         :  X      @tab X
44205       SDL                :         @tab X
44206       Video4Linux2       :  X      @tab X
44207       VfW capture        :  X      @tab
44208       X11 grabbing       :  X      @tab
44209       Win32 grabbing     :  X      @tab
44210
44211       "X" means that input/output is supported.
44212
44213   Timecode
44214       Codec/format       :  Read   @tab Write
44215       AVI                :  X      @tab X
44216       DV                 :  X      @tab X
44217       GXF                :  X      @tab X
44218       MOV                :  X      @tab X
44219       MPEG1/2            :  X      @tab X
44220       MXF                :  X      @tab X
44221

SEE ALSO

44223       ffmpeg(1), ffplay(1), ffprobe(1), ffmpeg-utils(1), ffmpeg-scaler(1),
44224       ffmpeg-resampler(1), ffmpeg-codecs(1), ffmpeg-bitstream-filters(1),
44225       ffmpeg-formats(1), ffmpeg-devices(1), ffmpeg-protocols(1),
44226       ffmpeg-filters(1)
44227

AUTHORS

44229       The FFmpeg developers.
44230
44231       For details about the authorship, see the Git history of the project
44232       (git://source.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
44233       the FFmpeg source directory, or browsing the online repository at
44234       <http://source.ffmpeg.org>.
44235
44236       Maintainers for the specific components are listed in the file
44237       MAINTAINERS in the source code tree.
44238
44239
44240
44241                                                                 FFMPEG-ALL(1)
Impressum