1FFPROBE-ALL(1) FFPROBE-ALL(1)
2
3
4
6 ffprobe - ffprobe media prober
7
9 ffprobe [options] input_url
10
12 ffprobe gathers information from multimedia streams and prints it in
13 human- and machine-readable fashion.
14
15 For example it can be used to check the format of the container used by
16 a multimedia stream and the format and type of each media stream
17 contained in it.
18
19 If a url is specified in input, ffprobe will try to open and probe the
20 url content. If the url cannot be opened or recognized as a multimedia
21 file, a positive exit code is returned.
22
23 If no output is specified as output with o ffprobe will write to
24 stdout.
25
26 ffprobe may be employed both as a standalone application or in
27 combination with a textual filter, which may perform more sophisticated
28 processing, e.g. statistical processing or plotting.
29
30 Options are used to list some of the formats supported by ffprobe or
31 for specifying which information to display, and for setting how
32 ffprobe will show it.
33
34 ffprobe output is designed to be easily parsable by a textual filter,
35 and consists of one or more sections of a form defined by the selected
36 writer, which is specified by the print_format option.
37
38 Sections may contain other nested sections, and are identified by a
39 name (which may be shared by other sections), and an unique name. See
40 the output of sections.
41
42 Metadata tags stored in the container or in the streams are recognized
43 and printed in the corresponding "FORMAT", "STREAM" or "PROGRAM_STREAM"
44 section.
45
47 All the numerical options, if not specified otherwise, accept a string
48 representing a number as input, which may be followed by one of the SI
49 unit prefixes, for example: 'K', 'M', or 'G'.
50
51 If 'i' is appended to the SI unit prefix, the complete prefix will be
52 interpreted as a unit prefix for binary multiples, which are based on
53 powers of 1024 instead of powers of 1000. Appending 'B' to the SI unit
54 prefix multiplies the value by 8. This allows using, for example: 'KB',
55 'MiB', 'G' and 'B' as number suffixes.
56
57 Options which do not take arguments are boolean options, and set the
58 corresponding value to true. They can be set to false by prefixing the
59 option name with "no". For example using "-nofoo" will set the boolean
60 option with name "foo" to false.
61
62 Stream specifiers
63 Some options are applied per-stream, e.g. bitrate or codec. Stream
64 specifiers are used to precisely specify which stream(s) a given option
65 belongs to.
66
67 A stream specifier is a string generally appended to the option name
68 and separated from it by a colon. E.g. "-codec:a:1 ac3" contains the
69 "a:1" stream specifier, which matches the second audio stream.
70 Therefore, it would select the ac3 codec for the second audio stream.
71
72 A stream specifier can match several streams, so that the option is
73 applied to all of them. E.g. the stream specifier in "-b:a 128k"
74 matches all audio streams.
75
76 An empty stream specifier matches all streams. For example, "-codec
77 copy" or "-codec: copy" would copy all the streams without reencoding.
78
79 Possible forms of stream specifiers are:
80
81 stream_index
82 Matches the stream with this index. E.g. "-threads:1 4" would set
83 the thread count for the second stream to 4. If stream_index is
84 used as an additional stream specifier (see below), then it selects
85 stream number stream_index from the matching streams. Stream
86 numbering is based on the order of the streams as detected by
87 libavformat except when a program ID is also specified. In this
88 case it is based on the ordering of the streams in the program.
89
90 stream_type[:additional_stream_specifier]
91 stream_type is one of following: 'v' or 'V' for video, 'a' for
92 audio, 's' for subtitle, 'd' for data, and 't' for attachments. 'v'
93 matches all video streams, 'V' only matches video streams which are
94 not attached pictures, video thumbnails or cover arts. If
95 additional_stream_specifier is used, then it matches streams which
96 both have this type and match the additional_stream_specifier.
97 Otherwise, it matches all streams of the specified type.
98
99 p:program_id[:additional_stream_specifier]
100 Matches streams which are in the program with the id program_id. If
101 additional_stream_specifier is used, then it matches streams which
102 both are part of the program and match the
103 additional_stream_specifier.
104
105 #stream_id or i:stream_id
106 Match the stream by stream id (e.g. PID in MPEG-TS container).
107
108 m:key[:value]
109 Matches streams with the metadata tag key having the specified
110 value. If value is not given, matches streams that contain the
111 given tag with any value.
112
113 u Matches streams with usable configuration, the codec must be
114 defined and the essential information such as video dimension or
115 audio sample rate must be present.
116
117 Note that in ffmpeg, matching by metadata will only work properly
118 for input files.
119
120 Generic options
121 These options are shared amongst the ff* tools.
122
123 -L Show license.
124
125 -h, -?, -help, --help [arg]
126 Show help. An optional parameter may be specified to print help
127 about a specific item. If no argument is specified, only basic (non
128 advanced) tool options are shown.
129
130 Possible values of arg are:
131
132 long
133 Print advanced tool options in addition to the basic tool
134 options.
135
136 full
137 Print complete list of options, including shared and private
138 options for encoders, decoders, demuxers, muxers, filters, etc.
139
140 decoder=decoder_name
141 Print detailed information about the decoder named
142 decoder_name. Use the -decoders option to get a list of all
143 decoders.
144
145 encoder=encoder_name
146 Print detailed information about the encoder named
147 encoder_name. Use the -encoders option to get a list of all
148 encoders.
149
150 demuxer=demuxer_name
151 Print detailed information about the demuxer named
152 demuxer_name. Use the -formats option to get a list of all
153 demuxers and muxers.
154
155 muxer=muxer_name
156 Print detailed information about the muxer named muxer_name.
157 Use the -formats option to get a list of all muxers and
158 demuxers.
159
160 filter=filter_name
161 Print detailed information about the filter named filter_name.
162 Use the -filters option to get a list of all filters.
163
164 bsf=bitstream_filter_name
165 Print detailed information about the bitstream filter named
166 bitstream_filter_name. Use the -bsfs option to get a list of
167 all bitstream filters.
168
169 protocol=protocol_name
170 Print detailed information about the protocol named
171 protocol_name. Use the -protocols option to get a list of all
172 protocols.
173
174 -version
175 Show version.
176
177 -buildconf
178 Show the build configuration, one option per line.
179
180 -formats
181 Show available formats (including devices).
182
183 -demuxers
184 Show available demuxers.
185
186 -muxers
187 Show available muxers.
188
189 -devices
190 Show available devices.
191
192 -codecs
193 Show all codecs known to libavcodec.
194
195 Note that the term 'codec' is used throughout this documentation as
196 a shortcut for what is more correctly called a media bitstream
197 format.
198
199 -decoders
200 Show available decoders.
201
202 -encoders
203 Show all available encoders.
204
205 -bsfs
206 Show available bitstream filters.
207
208 -protocols
209 Show available protocols.
210
211 -filters
212 Show available libavfilter filters.
213
214 -pix_fmts
215 Show available pixel formats.
216
217 -sample_fmts
218 Show available sample formats.
219
220 -layouts
221 Show channel names and standard channel layouts.
222
223 -dispositions
224 Show stream dispositions.
225
226 -colors
227 Show recognized color names.
228
229 -sources device[,opt1=val1[,opt2=val2]...]
230 Show autodetected sources of the input device. Some devices may
231 provide system-dependent source names that cannot be autodetected.
232 The returned list cannot be assumed to be always complete.
233
234 ffmpeg -sources pulse,server=192.168.0.4
235
236 -sinks device[,opt1=val1[,opt2=val2]...]
237 Show autodetected sinks of the output device. Some devices may
238 provide system-dependent sink names that cannot be autodetected.
239 The returned list cannot be assumed to be always complete.
240
241 ffmpeg -sinks pulse,server=192.168.0.4
242
243 -loglevel [flags+]loglevel | -v [flags+]loglevel
244 Set logging level and flags used by the library.
245
246 The optional flags prefix can consist of the following values:
247
248 repeat
249 Indicates that repeated log output should not be compressed to
250 the first line and the "Last message repeated n times" line
251 will be omitted.
252
253 level
254 Indicates that log output should add a "[level]" prefix to each
255 message line. This can be used as an alternative to log
256 coloring, e.g. when dumping the log to file.
257
258 Flags can also be used alone by adding a '+'/'-' prefix to
259 set/reset a single flag without affecting other flags or changing
260 loglevel. When setting both flags and loglevel, a '+' separator is
261 expected between the last flags value and before loglevel.
262
263 loglevel is a string or a number containing one of the following
264 values:
265
266 quiet, -8
267 Show nothing at all; be silent.
268
269 panic, 0
270 Only show fatal errors which could lead the process to crash,
271 such as an assertion failure. This is not currently used for
272 anything.
273
274 fatal, 8
275 Only show fatal errors. These are errors after which the
276 process absolutely cannot continue.
277
278 error, 16
279 Show all errors, including ones which can be recovered from.
280
281 warning, 24
282 Show all warnings and errors. Any message related to possibly
283 incorrect or unexpected events will be shown.
284
285 info, 32
286 Show informative messages during processing. This is in
287 addition to warnings and errors. This is the default value.
288
289 verbose, 40
290 Same as "info", except more verbose.
291
292 debug, 48
293 Show everything, including debugging information.
294
295 trace, 56
296
297 For example to enable repeated log output, add the "level" prefix,
298 and set loglevel to "verbose":
299
300 ffmpeg -loglevel repeat+level+verbose -i input output
301
302 Another example that enables repeated log output without affecting
303 current state of "level" prefix flag or loglevel:
304
305 ffmpeg [...] -loglevel +repeat
306
307 By default the program logs to stderr. If coloring is supported by
308 the terminal, colors are used to mark errors and warnings. Log
309 coloring can be disabled setting the environment variable
310 AV_LOG_FORCE_NOCOLOR, or can be forced setting the environment
311 variable AV_LOG_FORCE_COLOR.
312
313 -report
314 Dump full command line and log output to a file named
315 "program-YYYYMMDD-HHMMSS.log" in the current directory. This file
316 can be useful for bug reports. It also implies "-loglevel debug".
317
318 Setting the environment variable FFREPORT to any value has the same
319 effect. If the value is a ':'-separated key=value sequence, these
320 options will affect the report; option values must be escaped if
321 they contain special characters or the options delimiter ':' (see
322 the ``Quoting and escaping'' section in the ffmpeg-utils manual).
323
324 The following options are recognized:
325
326 file
327 set the file name to use for the report; %p is expanded to the
328 name of the program, %t is expanded to a timestamp, "%%" is
329 expanded to a plain "%"
330
331 level
332 set the log verbosity level using a numerical value (see
333 "-loglevel").
334
335 For example, to output a report to a file named ffreport.log using
336 a log level of 32 (alias for log level "info"):
337
338 FFREPORT=file=ffreport.log:level=32 ffmpeg -i input output
339
340 Errors in parsing the environment variable are not fatal, and will
341 not appear in the report.
342
343 -hide_banner
344 Suppress printing banner.
345
346 All FFmpeg tools will normally show a copyright notice, build
347 options and library versions. This option can be used to suppress
348 printing this information.
349
350 -cpuflags flags (global)
351 Allows setting and clearing cpu flags. This option is intended for
352 testing. Do not use it unless you know what you're doing.
353
354 ffmpeg -cpuflags -sse+mmx ...
355 ffmpeg -cpuflags mmx ...
356 ffmpeg -cpuflags 0 ...
357
358 Possible flags for this option are:
359
360 x86
361 mmx
362 mmxext
363 sse
364 sse2
365 sse2slow
366 sse3
367 sse3slow
368 ssse3
369 atom
370 sse4.1
371 sse4.2
372 avx
373 avx2
374 xop
375 fma3
376 fma4
377 3dnow
378 3dnowext
379 bmi1
380 bmi2
381 cmov
382 ARM
383 armv5te
384 armv6
385 armv6t2
386 vfp
387 vfpv3
388 neon
389 setend
390 AArch64
391 armv8
392 vfp
393 neon
394 PowerPC
395 altivec
396 Specific Processors
397 pentium2
398 pentium3
399 pentium4
400 k6
401 k62
402 athlon
403 athlonxp
404 k8
405 -cpucount count (global)
406 Override detection of CPU count. This option is intended for
407 testing. Do not use it unless you know what you're doing.
408
409 ffmpeg -cpucount 2
410
411 -max_alloc bytes
412 Set the maximum size limit for allocating a block on the heap by
413 ffmpeg's family of malloc functions. Exercise extreme caution when
414 using this option. Don't use if you do not understand the full
415 consequence of doing so. Default is INT_MAX.
416
417 AVOptions
418 These options are provided directly by the libavformat, libavdevice and
419 libavcodec libraries. To see the list of available AVOptions, use the
420 -help option. They are separated into two categories:
421
422 generic
423 These options can be set for any container, codec or device.
424 Generic options are listed under AVFormatContext options for
425 containers/devices and under AVCodecContext options for codecs.
426
427 private
428 These options are specific to the given container, device or codec.
429 Private options are listed under their corresponding
430 containers/devices/codecs.
431
432 For example to write an ID3v2.3 header instead of a default ID3v2.4 to
433 an MP3 file, use the id3v2_version private option of the MP3 muxer:
434
435 ffmpeg -i input.flac -id3v2_version 3 out.mp3
436
437 All codec AVOptions are per-stream, and thus a stream specifier should
438 be attached to them:
439
440 ffmpeg -i multichannel.mxf -map 0:v:0 -map 0:a:0 -map 0:a:0 -c:a:0 ac3 -b:a:0 640k -ac:a:1 2 -c:a:1 aac -b:2 128k out.mp4
441
442 In the above example, a multichannel audio stream is mapped twice for
443 output. The first instance is encoded with codec ac3 and bitrate 640k.
444 The second instance is downmixed to 2 channels and encoded with codec
445 aac. A bitrate of 128k is specified for it using absolute index of the
446 output stream.
447
448 Note: the -nooption syntax cannot be used for boolean AVOptions, use
449 -option 0/-option 1.
450
451 Note: the old undocumented way of specifying per-stream AVOptions by
452 prepending v/a/s to the options name is now obsolete and will be
453 removed soon.
454
455 Main options
456 -f format
457 Force format to use.
458
459 -unit
460 Show the unit of the displayed values.
461
462 -prefix
463 Use SI prefixes for the displayed values. Unless the
464 "-byte_binary_prefix" option is used all the prefixes are decimal.
465
466 -byte_binary_prefix
467 Force the use of binary prefixes for byte values.
468
469 -sexagesimal
470 Use sexagesimal format HH:MM:SS.MICROSECONDS for time values.
471
472 -pretty
473 Prettify the format of the displayed values, it corresponds to the
474 options "-unit -prefix -byte_binary_prefix -sexagesimal".
475
476 -of, -print_format writer_name[=writer_options]
477 Set the output printing format.
478
479 writer_name specifies the name of the writer, and writer_options
480 specifies the options to be passed to the writer.
481
482 For example for printing the output in JSON format, specify:
483
484 -print_format json
485
486 For more details on the available output printing formats, see the
487 Writers section below.
488
489 -sections
490 Print sections structure and section information, and exit. The
491 output is not meant to be parsed by a machine.
492
493 -select_streams stream_specifier
494 Select only the streams specified by stream_specifier. This option
495 affects only the options related to streams (e.g. "show_streams",
496 "show_packets", etc.).
497
498 For example to show only audio streams, you can use the command:
499
500 ffprobe -show_streams -select_streams a INPUT
501
502 To show only video packets belonging to the video stream with index
503 1:
504
505 ffprobe -show_packets -select_streams v:1 INPUT
506
507 -show_data
508 Show payload data, as a hexadecimal and ASCII dump. Coupled with
509 -show_packets, it will dump the packets' data. Coupled with
510 -show_streams, it will dump the codec extradata.
511
512 The dump is printed as the "data" field. It may contain newlines.
513
514 -show_data_hash algorithm
515 Show a hash of payload data, for packets with -show_packets and for
516 codec extradata with -show_streams.
517
518 -show_error
519 Show information about the error found when trying to probe the
520 input.
521
522 The error information is printed within a section with name
523 "ERROR".
524
525 -show_format
526 Show information about the container format of the input multimedia
527 stream.
528
529 All the container format information is printed within a section
530 with name "FORMAT".
531
532 -show_format_entry name
533 Like -show_format, but only prints the specified entry of the
534 container format information, rather than all. This option may be
535 given more than once, then all specified entries will be shown.
536
537 This option is deprecated, use "show_entries" instead.
538
539 -show_entries section_entries
540 Set list of entries to show.
541
542 Entries are specified according to the following syntax.
543 section_entries contains a list of section entries separated by
544 ":". Each section entry is composed by a section name (or unique
545 name), optionally followed by a list of entries local to that
546 section, separated by ",".
547
548 If section name is specified but is followed by no "=", all entries
549 are printed to output, together with all the contained sections.
550 Otherwise only the entries specified in the local section entries
551 list are printed. In particular, if "=" is specified but the list
552 of local entries is empty, then no entries will be shown for that
553 section.
554
555 Note that the order of specification of the local section entries
556 is not honored in the output, and the usual display order will be
557 retained.
558
559 The formal syntax is given by:
560
561 <LOCAL_SECTION_ENTRIES> ::= <SECTION_ENTRY_NAME>[,<LOCAL_SECTION_ENTRIES>]
562 <SECTION_ENTRY> ::= <SECTION_NAME>[=[<LOCAL_SECTION_ENTRIES>]]
563 <SECTION_ENTRIES> ::= <SECTION_ENTRY>[:<SECTION_ENTRIES>]
564
565 For example, to show only the index and type of each stream, and
566 the PTS time, duration time, and stream index of the packets, you
567 can specify the argument:
568
569 packet=pts_time,duration_time,stream_index : stream=index,codec_type
570
571 To show all the entries in the section "format", but only the codec
572 type in the section "stream", specify the argument:
573
574 format : stream=codec_type
575
576 To show all the tags in the stream and format sections:
577
578 stream_tags : format_tags
579
580 To show only the "title" tag (if available) in the stream sections:
581
582 stream_tags=title
583
584 -show_packets
585 Show information about each packet contained in the input
586 multimedia stream.
587
588 The information for each single packet is printed within a
589 dedicated section with name "PACKET".
590
591 -show_frames
592 Show information about each frame and subtitle contained in the
593 input multimedia stream.
594
595 The information for each single frame is printed within a dedicated
596 section with name "FRAME" or "SUBTITLE".
597
598 -show_log loglevel
599 Show logging information from the decoder about each frame
600 according to the value set in loglevel, (see "-loglevel"). This
601 option requires "-show_frames".
602
603 The information for each log message is printed within a dedicated
604 section with name "LOG".
605
606 -show_streams
607 Show information about each media stream contained in the input
608 multimedia stream.
609
610 Each media stream information is printed within a dedicated section
611 with name "STREAM".
612
613 -show_programs
614 Show information about programs and their streams contained in the
615 input multimedia stream.
616
617 Each media stream information is printed within a dedicated section
618 with name "PROGRAM_STREAM".
619
620 -show_chapters
621 Show information about chapters stored in the format.
622
623 Each chapter is printed within a dedicated section with name
624 "CHAPTER".
625
626 -count_frames
627 Count the number of frames per stream and report it in the
628 corresponding stream section.
629
630 -count_packets
631 Count the number of packets per stream and report it in the
632 corresponding stream section.
633
634 -read_intervals read_intervals
635 Read only the specified intervals. read_intervals must be a
636 sequence of interval specifications separated by ",". ffprobe will
637 seek to the interval starting point, and will continue reading from
638 that.
639
640 Each interval is specified by two optional parts, separated by "%".
641
642 The first part specifies the interval start position. It is
643 interpreted as an absolute position, or as a relative offset from
644 the current position if it is preceded by the "+" character. If
645 this first part is not specified, no seeking will be performed when
646 reading this interval.
647
648 The second part specifies the interval end position. It is
649 interpreted as an absolute position, or as a relative offset from
650 the current position if it is preceded by the "+" character. If the
651 offset specification starts with "#", it is interpreted as the
652 number of packets to read (not including the flushing packets) from
653 the interval start. If no second part is specified, the program
654 will read until the end of the input.
655
656 Note that seeking is not accurate, thus the actual interval start
657 point may be different from the specified position. Also, when an
658 interval duration is specified, the absolute end time will be
659 computed by adding the duration to the interval start point found
660 by seeking the file, rather than to the specified start value.
661
662 The formal syntax is given by:
663
664 <INTERVAL> ::= [<START>|+<START_OFFSET>][%[<END>|+<END_OFFSET>]]
665 <INTERVALS> ::= <INTERVAL>[,<INTERVALS>]
666
667 A few examples follow.
668
669 • Seek to time 10, read packets until 20 seconds after the found
670 seek point, then seek to position "01:30" (1 minute and thirty
671 seconds) and read packets until position "01:45".
672
673 10%+20,01:30%01:45
674
675 • Read only 42 packets after seeking to position "01:23":
676
677 01:23%+#42
678
679 • Read only the first 20 seconds from the start:
680
681 %+20
682
683 • Read from the start until position "02:30":
684
685 %02:30
686
687 -show_private_data, -private
688 Show private data, that is data depending on the format of the
689 particular shown element. This option is enabled by default, but
690 you may need to disable it for specific uses, for example when
691 creating XSD-compliant XML output.
692
693 -show_program_version
694 Show information related to program version.
695
696 Version information is printed within a section with name
697 "PROGRAM_VERSION".
698
699 -show_library_versions
700 Show information related to library versions.
701
702 Version information for each library is printed within a section
703 with name "LIBRARY_VERSION".
704
705 -show_versions
706 Show information related to program and library versions. This is
707 the equivalent of setting both -show_program_version and
708 -show_library_versions options.
709
710 -show_pixel_formats
711 Show information about all pixel formats supported by FFmpeg.
712
713 Pixel format information for each format is printed within a
714 section with name "PIXEL_FORMAT".
715
716 -show_optional_fields value
717 Some writers viz. JSON and XML, omit the printing of fields with
718 invalid or non-applicable values, while other writers always print
719 them. This option enables one to control this behaviour. Valid
720 values are "always"/1, "never"/0 and "auto"/"-1". Default is auto.
721
722 -bitexact
723 Force bitexact output, useful to produce output which is not
724 dependent on the specific build.
725
726 -i input_url
727 Read input_url.
728
729 -o output_url
730 Write output to output_url. If not specified, the output is sent to
731 stdout.
732
734 A writer defines the output format adopted by ffprobe, and will be used
735 for printing all the parts of the output.
736
737 A writer may accept one or more arguments, which specify the options to
738 adopt. The options are specified as a list of key=value pairs,
739 separated by ":".
740
741 All writers support the following options:
742
743 string_validation, sv
744 Set string validation mode.
745
746 The following values are accepted.
747
748 fail
749 The writer will fail immediately in case an invalid string
750 (UTF-8) sequence or code point is found in the input. This is
751 especially useful to validate input metadata.
752
753 ignore
754 Any validation error will be ignored. This will result in
755 possibly broken output, especially with the json or xml writer.
756
757 replace
758 The writer will substitute invalid UTF-8 sequences or code
759 points with the string specified with the
760 string_validation_replacement.
761
762 Default value is replace.
763
764 string_validation_replacement, svr
765 Set replacement string to use in case string_validation is set to
766 replace.
767
768 In case the option is not specified, the writer will assume the
769 empty string, that is it will remove the invalid sequences from the
770 input strings.
771
772 A description of the currently available writers follows.
773
774 default
775 Default format.
776
777 Print each section in the form:
778
779 [SECTION]
780 key1=val1
781 ...
782 keyN=valN
783 [/SECTION]
784
785 Metadata tags are printed as a line in the corresponding FORMAT, STREAM
786 or PROGRAM_STREAM section, and are prefixed by the string "TAG:".
787
788 A description of the accepted options follows.
789
790 nokey, nk
791 If set to 1 specify not to print the key of each field. Default
792 value is 0.
793
794 noprint_wrappers, nw
795 If set to 1 specify not to print the section header and footer.
796 Default value is 0.
797
798 compact, csv
799 Compact and CSV format.
800
801 The "csv" writer is equivalent to "compact", but supports different
802 defaults.
803
804 Each section is printed on a single line. If no option is specified,
805 the output has the form:
806
807 section|key1=val1| ... |keyN=valN
808
809 Metadata tags are printed in the corresponding "format" or "stream"
810 section. A metadata tag key, if printed, is prefixed by the string
811 "tag:".
812
813 The description of the accepted options follows.
814
815 item_sep, s
816 Specify the character to use for separating fields in the output
817 line. It must be a single printable character, it is "|" by
818 default ("," for the "csv" writer).
819
820 nokey, nk
821 If set to 1 specify not to print the key of each field. Its default
822 value is 0 (1 for the "csv" writer).
823
824 escape, e
825 Set the escape mode to use, default to "c" ("csv" for the "csv"
826 writer).
827
828 It can assume one of the following values:
829
830 c Perform C-like escaping. Strings containing a newline (\n),
831 carriage return (\r), a tab (\t), a form feed (\f), the
832 escaping character (\) or the item separator character SEP are
833 escaped using C-like fashioned escaping, so that a newline is
834 converted to the sequence \n, a carriage return to \r, \ to \\
835 and the separator SEP is converted to \SEP.
836
837 csv Perform CSV-like escaping, as described in RFC4180. Strings
838 containing a newline (\n), a carriage return (\r), a double
839 quote ("), or SEP are enclosed in double-quotes.
840
841 none
842 Perform no escaping.
843
844 print_section, p
845 Print the section name at the beginning of each line if the value
846 is 1, disable it with value set to 0. Default value is 1.
847
848 flat
849 Flat format.
850
851 A free-form output where each line contains an explicit key=value, such
852 as "streams.stream.3.tags.foo=bar". The output is shell escaped, so it
853 can be directly embedded in sh scripts as long as the separator
854 character is an alphanumeric character or an underscore (see sep_char
855 option).
856
857 The description of the accepted options follows.
858
859 sep_char, s
860 Separator character used to separate the chapter, the section name,
861 IDs and potential tags in the printed field key.
862
863 Default value is ..
864
865 hierarchical, h
866 Specify if the section name specification should be hierarchical.
867 If set to 1, and if there is more than one section in the current
868 chapter, the section name will be prefixed by the name of the
869 chapter. A value of 0 will disable this behavior.
870
871 Default value is 1.
872
873 ini
874 INI format output.
875
876 Print output in an INI based format.
877
878 The following conventions are adopted:
879
880 • all key and values are UTF-8
881
882 • . is the subgroup separator
883
884 • newline, \t, \f, \b and the following characters are escaped
885
886 • \ is the escape character
887
888 • # is the comment indicator
889
890 • = is the key/value separator
891
892 • : is not used but usually parsed as key/value separator
893
894 This writer accepts options as a list of key=value pairs, separated by
895 :.
896
897 The description of the accepted options follows.
898
899 hierarchical, h
900 Specify if the section name specification should be hierarchical.
901 If set to 1, and if there is more than one section in the current
902 chapter, the section name will be prefixed by the name of the
903 chapter. A value of 0 will disable this behavior.
904
905 Default value is 1.
906
907 json
908 JSON based format.
909
910 Each section is printed using JSON notation.
911
912 The description of the accepted options follows.
913
914 compact, c
915 If set to 1 enable compact output, that is each section will be
916 printed on a single line. Default value is 0.
917
918 For more information about JSON, see <http://www.json.org/>.
919
920 xml
921 XML based format.
922
923 The XML output is described in the XML schema description file
924 ffprobe.xsd installed in the FFmpeg datadir.
925
926 An updated version of the schema can be retrieved at the url
927 <http://www.ffmpeg.org/schema/ffprobe.xsd>, which redirects to the
928 latest schema committed into the FFmpeg development source code tree.
929
930 Note that the output issued will be compliant to the ffprobe.xsd schema
931 only when no special global output options (unit, prefix,
932 byte_binary_prefix, sexagesimal etc.) are specified.
933
934 The description of the accepted options follows.
935
936 fully_qualified, q
937 If set to 1 specify if the output should be fully qualified.
938 Default value is 0. This is required for generating an XML file
939 which can be validated through an XSD file.
940
941 xsd_strict, x
942 If set to 1 perform more checks for ensuring that the output is XSD
943 compliant. Default value is 0. This option automatically sets
944 fully_qualified to 1.
945
946 For more information about the XML format, see
947 <https://www.w3.org/XML/>.
948
950 ffprobe supports Timecode extraction:
951
952 • MPEG1/2 timecode is extracted from the GOP, and is available in the
953 video stream details (-show_streams, see timecode).
954
955 • MOV timecode is extracted from tmcd track, so is available in the
956 tmcd stream metadata (-show_streams, see TAG:timecode).
957
958 • DV, GXF and AVI timecodes are available in format metadata
959 (-show_format, see TAG:timecode).
960
962 This section documents the syntax and formats employed by the FFmpeg
963 libraries and tools.
964
965 Quoting and escaping
966 FFmpeg adopts the following quoting and escaping mechanism, unless
967 explicitly specified. The following rules are applied:
968
969 • ' and \ are special characters (respectively used for quoting and
970 escaping). In addition to them, there might be other special
971 characters depending on the specific syntax where the escaping and
972 quoting are employed.
973
974 • A special character is escaped by prefixing it with a \.
975
976 • All characters enclosed between '' are included literally in the
977 parsed string. The quote character ' itself cannot be quoted, so
978 you may need to close the quote and escape it.
979
980 • Leading and trailing whitespaces, unless escaped or quoted, are
981 removed from the parsed string.
982
983 Note that you may need to add a second level of escaping when using the
984 command line or a script, which depends on the syntax of the adopted
985 shell language.
986
987 The function "av_get_token" defined in libavutil/avstring.h can be used
988 to parse a token quoted or escaped according to the rules defined
989 above.
990
991 The tool tools/ffescape in the FFmpeg source tree can be used to
992 automatically quote or escape a string in a script.
993
994 Examples
995
996 • Escape the string "Crime d'Amour" containing the "'" special
997 character:
998
999 Crime d\'Amour
1000
1001 • The string above contains a quote, so the "'" needs to be escaped
1002 when quoting it:
1003
1004 'Crime d'\''Amour'
1005
1006 • Include leading or trailing whitespaces using quoting:
1007
1008 ' this string starts and ends with whitespaces '
1009
1010 • Escaping and quoting can be mixed together:
1011
1012 ' The string '\'string\'' is a string '
1013
1014 • To include a literal \ you can use either escaping or quoting:
1015
1016 'c:\foo' can be written as c:\\foo
1017
1018 Date
1019 The accepted syntax is:
1020
1021 [(YYYY-MM-DD|YYYYMMDD)[T|t| ]]((HH:MM:SS[.m...]]])|(HHMMSS[.m...]]]))[Z]
1022 now
1023
1024 If the value is "now" it takes the current time.
1025
1026 Time is local time unless Z is appended, in which case it is
1027 interpreted as UTC. If the year-month-day part is not specified it
1028 takes the current year-month-day.
1029
1030 Time duration
1031 There are two accepted syntaxes for expressing time duration.
1032
1033 [-][<HH>:]<MM>:<SS>[.<m>...]
1034
1035 HH expresses the number of hours, MM the number of minutes for a
1036 maximum of 2 digits, and SS the number of seconds for a maximum of 2
1037 digits. The m at the end expresses decimal value for SS.
1038
1039 or
1040
1041 [-]<S>+[.<m>...][s|ms|us]
1042
1043 S expresses the number of seconds, with the optional decimal part m.
1044 The optional literal suffixes s, ms or us indicate to interpret the
1045 value as seconds, milliseconds or microseconds, respectively.
1046
1047 In both expressions, the optional - indicates negative duration.
1048
1049 Examples
1050
1051 The following examples are all valid time duration:
1052
1053 55 55 seconds
1054
1055 0.2 0.2 seconds
1056
1057 200ms
1058 200 milliseconds, that's 0.2s
1059
1060 200000us
1061 200000 microseconds, that's 0.2s
1062
1063 12:03:45
1064 12 hours, 03 minutes and 45 seconds
1065
1066 23.189
1067 23.189 seconds
1068
1069 Video size
1070 Specify the size of the sourced video, it may be a string of the form
1071 widthxheight, or the name of a size abbreviation.
1072
1073 The following abbreviations are recognized:
1074
1075 ntsc
1076 720x480
1077
1078 pal 720x576
1079
1080 qntsc
1081 352x240
1082
1083 qpal
1084 352x288
1085
1086 sntsc
1087 640x480
1088
1089 spal
1090 768x576
1091
1092 film
1093 352x240
1094
1095 ntsc-film
1096 352x240
1097
1098 sqcif
1099 128x96
1100
1101 qcif
1102 176x144
1103
1104 cif 352x288
1105
1106 4cif
1107 704x576
1108
1109 16cif
1110 1408x1152
1111
1112 qqvga
1113 160x120
1114
1115 qvga
1116 320x240
1117
1118 vga 640x480
1119
1120 svga
1121 800x600
1122
1123 xga 1024x768
1124
1125 uxga
1126 1600x1200
1127
1128 qxga
1129 2048x1536
1130
1131 sxga
1132 1280x1024
1133
1134 qsxga
1135 2560x2048
1136
1137 hsxga
1138 5120x4096
1139
1140 wvga
1141 852x480
1142
1143 wxga
1144 1366x768
1145
1146 wsxga
1147 1600x1024
1148
1149 wuxga
1150 1920x1200
1151
1152 woxga
1153 2560x1600
1154
1155 wqsxga
1156 3200x2048
1157
1158 wquxga
1159 3840x2400
1160
1161 whsxga
1162 6400x4096
1163
1164 whuxga
1165 7680x4800
1166
1167 cga 320x200
1168
1169 ega 640x350
1170
1171 hd480
1172 852x480
1173
1174 hd720
1175 1280x720
1176
1177 hd1080
1178 1920x1080
1179
1180 2k 2048x1080
1181
1182 2kflat
1183 1998x1080
1184
1185 2kscope
1186 2048x858
1187
1188 4k 4096x2160
1189
1190 4kflat
1191 3996x2160
1192
1193 4kscope
1194 4096x1716
1195
1196 nhd 640x360
1197
1198 hqvga
1199 240x160
1200
1201 wqvga
1202 400x240
1203
1204 fwqvga
1205 432x240
1206
1207 hvga
1208 480x320
1209
1210 qhd 960x540
1211
1212 2kdci
1213 2048x1080
1214
1215 4kdci
1216 4096x2160
1217
1218 uhd2160
1219 3840x2160
1220
1221 uhd4320
1222 7680x4320
1223
1224 Video rate
1225 Specify the frame rate of a video, expressed as the number of frames
1226 generated per second. It has to be a string in the format
1227 frame_rate_num/frame_rate_den, an integer number, a float number or a
1228 valid video frame rate abbreviation.
1229
1230 The following abbreviations are recognized:
1231
1232 ntsc
1233 30000/1001
1234
1235 pal 25/1
1236
1237 qntsc
1238 30000/1001
1239
1240 qpal
1241 25/1
1242
1243 sntsc
1244 30000/1001
1245
1246 spal
1247 25/1
1248
1249 film
1250 24/1
1251
1252 ntsc-film
1253 24000/1001
1254
1255 Ratio
1256 A ratio can be expressed as an expression, or in the form
1257 numerator:denominator.
1258
1259 Note that a ratio with infinite (1/0) or negative value is considered
1260 valid, so you should check on the returned value if you want to exclude
1261 those values.
1262
1263 The undefined value can be expressed using the "0:0" string.
1264
1265 Color
1266 It can be the name of a color as defined below (case insensitive match)
1267 or a "[0x|#]RRGGBB[AA]" sequence, possibly followed by @ and a string
1268 representing the alpha component.
1269
1270 The alpha component may be a string composed by "0x" followed by an
1271 hexadecimal number or a decimal number between 0.0 and 1.0, which
1272 represents the opacity value (0x00 or 0.0 means completely transparent,
1273 0xff or 1.0 completely opaque). If the alpha component is not specified
1274 then 0xff is assumed.
1275
1276 The string random will result in a random color.
1277
1278 The following names of colors are recognized:
1279
1280 AliceBlue
1281 0xF0F8FF
1282
1283 AntiqueWhite
1284 0xFAEBD7
1285
1286 Aqua
1287 0x00FFFF
1288
1289 Aquamarine
1290 0x7FFFD4
1291
1292 Azure
1293 0xF0FFFF
1294
1295 Beige
1296 0xF5F5DC
1297
1298 Bisque
1299 0xFFE4C4
1300
1301 Black
1302 0x000000
1303
1304 BlanchedAlmond
1305 0xFFEBCD
1306
1307 Blue
1308 0x0000FF
1309
1310 BlueViolet
1311 0x8A2BE2
1312
1313 Brown
1314 0xA52A2A
1315
1316 BurlyWood
1317 0xDEB887
1318
1319 CadetBlue
1320 0x5F9EA0
1321
1322 Chartreuse
1323 0x7FFF00
1324
1325 Chocolate
1326 0xD2691E
1327
1328 Coral
1329 0xFF7F50
1330
1331 CornflowerBlue
1332 0x6495ED
1333
1334 Cornsilk
1335 0xFFF8DC
1336
1337 Crimson
1338 0xDC143C
1339
1340 Cyan
1341 0x00FFFF
1342
1343 DarkBlue
1344 0x00008B
1345
1346 DarkCyan
1347 0x008B8B
1348
1349 DarkGoldenRod
1350 0xB8860B
1351
1352 DarkGray
1353 0xA9A9A9
1354
1355 DarkGreen
1356 0x006400
1357
1358 DarkKhaki
1359 0xBDB76B
1360
1361 DarkMagenta
1362 0x8B008B
1363
1364 DarkOliveGreen
1365 0x556B2F
1366
1367 Darkorange
1368 0xFF8C00
1369
1370 DarkOrchid
1371 0x9932CC
1372
1373 DarkRed
1374 0x8B0000
1375
1376 DarkSalmon
1377 0xE9967A
1378
1379 DarkSeaGreen
1380 0x8FBC8F
1381
1382 DarkSlateBlue
1383 0x483D8B
1384
1385 DarkSlateGray
1386 0x2F4F4F
1387
1388 DarkTurquoise
1389 0x00CED1
1390
1391 DarkViolet
1392 0x9400D3
1393
1394 DeepPink
1395 0xFF1493
1396
1397 DeepSkyBlue
1398 0x00BFFF
1399
1400 DimGray
1401 0x696969
1402
1403 DodgerBlue
1404 0x1E90FF
1405
1406 FireBrick
1407 0xB22222
1408
1409 FloralWhite
1410 0xFFFAF0
1411
1412 ForestGreen
1413 0x228B22
1414
1415 Fuchsia
1416 0xFF00FF
1417
1418 Gainsboro
1419 0xDCDCDC
1420
1421 GhostWhite
1422 0xF8F8FF
1423
1424 Gold
1425 0xFFD700
1426
1427 GoldenRod
1428 0xDAA520
1429
1430 Gray
1431 0x808080
1432
1433 Green
1434 0x008000
1435
1436 GreenYellow
1437 0xADFF2F
1438
1439 HoneyDew
1440 0xF0FFF0
1441
1442 HotPink
1443 0xFF69B4
1444
1445 IndianRed
1446 0xCD5C5C
1447
1448 Indigo
1449 0x4B0082
1450
1451 Ivory
1452 0xFFFFF0
1453
1454 Khaki
1455 0xF0E68C
1456
1457 Lavender
1458 0xE6E6FA
1459
1460 LavenderBlush
1461 0xFFF0F5
1462
1463 LawnGreen
1464 0x7CFC00
1465
1466 LemonChiffon
1467 0xFFFACD
1468
1469 LightBlue
1470 0xADD8E6
1471
1472 LightCoral
1473 0xF08080
1474
1475 LightCyan
1476 0xE0FFFF
1477
1478 LightGoldenRodYellow
1479 0xFAFAD2
1480
1481 LightGreen
1482 0x90EE90
1483
1484 LightGrey
1485 0xD3D3D3
1486
1487 LightPink
1488 0xFFB6C1
1489
1490 LightSalmon
1491 0xFFA07A
1492
1493 LightSeaGreen
1494 0x20B2AA
1495
1496 LightSkyBlue
1497 0x87CEFA
1498
1499 LightSlateGray
1500 0x778899
1501
1502 LightSteelBlue
1503 0xB0C4DE
1504
1505 LightYellow
1506 0xFFFFE0
1507
1508 Lime
1509 0x00FF00
1510
1511 LimeGreen
1512 0x32CD32
1513
1514 Linen
1515 0xFAF0E6
1516
1517 Magenta
1518 0xFF00FF
1519
1520 Maroon
1521 0x800000
1522
1523 MediumAquaMarine
1524 0x66CDAA
1525
1526 MediumBlue
1527 0x0000CD
1528
1529 MediumOrchid
1530 0xBA55D3
1531
1532 MediumPurple
1533 0x9370D8
1534
1535 MediumSeaGreen
1536 0x3CB371
1537
1538 MediumSlateBlue
1539 0x7B68EE
1540
1541 MediumSpringGreen
1542 0x00FA9A
1543
1544 MediumTurquoise
1545 0x48D1CC
1546
1547 MediumVioletRed
1548 0xC71585
1549
1550 MidnightBlue
1551 0x191970
1552
1553 MintCream
1554 0xF5FFFA
1555
1556 MistyRose
1557 0xFFE4E1
1558
1559 Moccasin
1560 0xFFE4B5
1561
1562 NavajoWhite
1563 0xFFDEAD
1564
1565 Navy
1566 0x000080
1567
1568 OldLace
1569 0xFDF5E6
1570
1571 Olive
1572 0x808000
1573
1574 OliveDrab
1575 0x6B8E23
1576
1577 Orange
1578 0xFFA500
1579
1580 OrangeRed
1581 0xFF4500
1582
1583 Orchid
1584 0xDA70D6
1585
1586 PaleGoldenRod
1587 0xEEE8AA
1588
1589 PaleGreen
1590 0x98FB98
1591
1592 PaleTurquoise
1593 0xAFEEEE
1594
1595 PaleVioletRed
1596 0xD87093
1597
1598 PapayaWhip
1599 0xFFEFD5
1600
1601 PeachPuff
1602 0xFFDAB9
1603
1604 Peru
1605 0xCD853F
1606
1607 Pink
1608 0xFFC0CB
1609
1610 Plum
1611 0xDDA0DD
1612
1613 PowderBlue
1614 0xB0E0E6
1615
1616 Purple
1617 0x800080
1618
1619 Red 0xFF0000
1620
1621 RosyBrown
1622 0xBC8F8F
1623
1624 RoyalBlue
1625 0x4169E1
1626
1627 SaddleBrown
1628 0x8B4513
1629
1630 Salmon
1631 0xFA8072
1632
1633 SandyBrown
1634 0xF4A460
1635
1636 SeaGreen
1637 0x2E8B57
1638
1639 SeaShell
1640 0xFFF5EE
1641
1642 Sienna
1643 0xA0522D
1644
1645 Silver
1646 0xC0C0C0
1647
1648 SkyBlue
1649 0x87CEEB
1650
1651 SlateBlue
1652 0x6A5ACD
1653
1654 SlateGray
1655 0x708090
1656
1657 Snow
1658 0xFFFAFA
1659
1660 SpringGreen
1661 0x00FF7F
1662
1663 SteelBlue
1664 0x4682B4
1665
1666 Tan 0xD2B48C
1667
1668 Teal
1669 0x008080
1670
1671 Thistle
1672 0xD8BFD8
1673
1674 Tomato
1675 0xFF6347
1676
1677 Turquoise
1678 0x40E0D0
1679
1680 Violet
1681 0xEE82EE
1682
1683 Wheat
1684 0xF5DEB3
1685
1686 White
1687 0xFFFFFF
1688
1689 WhiteSmoke
1690 0xF5F5F5
1691
1692 Yellow
1693 0xFFFF00
1694
1695 YellowGreen
1696 0x9ACD32
1697
1698 Channel Layout
1699 A channel layout specifies the spatial disposition of the channels in a
1700 multi-channel audio stream. To specify a channel layout, FFmpeg makes
1701 use of a special syntax.
1702
1703 Individual channels are identified by an id, as given by the table
1704 below:
1705
1706 FL front left
1707
1708 FR front right
1709
1710 FC front center
1711
1712 LFE low frequency
1713
1714 BL back left
1715
1716 BR back right
1717
1718 FLC front left-of-center
1719
1720 FRC front right-of-center
1721
1722 BC back center
1723
1724 SL side left
1725
1726 SR side right
1727
1728 TC top center
1729
1730 TFL top front left
1731
1732 TFC top front center
1733
1734 TFR top front right
1735
1736 TBL top back left
1737
1738 TBC top back center
1739
1740 TBR top back right
1741
1742 DL downmix left
1743
1744 DR downmix right
1745
1746 WL wide left
1747
1748 WR wide right
1749
1750 SDL surround direct left
1751
1752 SDR surround direct right
1753
1754 LFE2
1755 low frequency 2
1756
1757 Standard channel layout compositions can be specified by using the
1758 following identifiers:
1759
1760 mono
1761 FC
1762
1763 stereo
1764 FL+FR
1765
1766 2.1 FL+FR+LFE
1767
1768 3.0 FL+FR+FC
1769
1770 3.0(back)
1771 FL+FR+BC
1772
1773 4.0 FL+FR+FC+BC
1774
1775 quad
1776 FL+FR+BL+BR
1777
1778 quad(side)
1779 FL+FR+SL+SR
1780
1781 3.1 FL+FR+FC+LFE
1782
1783 5.0 FL+FR+FC+BL+BR
1784
1785 5.0(side)
1786 FL+FR+FC+SL+SR
1787
1788 4.1 FL+FR+FC+LFE+BC
1789
1790 5.1 FL+FR+FC+LFE+BL+BR
1791
1792 5.1(side)
1793 FL+FR+FC+LFE+SL+SR
1794
1795 6.0 FL+FR+FC+BC+SL+SR
1796
1797 6.0(front)
1798 FL+FR+FLC+FRC+SL+SR
1799
1800 hexagonal
1801 FL+FR+FC+BL+BR+BC
1802
1803 6.1 FL+FR+FC+LFE+BC+SL+SR
1804
1805 6.1 FL+FR+FC+LFE+BL+BR+BC
1806
1807 6.1(front)
1808 FL+FR+LFE+FLC+FRC+SL+SR
1809
1810 7.0 FL+FR+FC+BL+BR+SL+SR
1811
1812 7.0(front)
1813 FL+FR+FC+FLC+FRC+SL+SR
1814
1815 7.1 FL+FR+FC+LFE+BL+BR+SL+SR
1816
1817 7.1(wide)
1818 FL+FR+FC+LFE+BL+BR+FLC+FRC
1819
1820 7.1(wide-side)
1821 FL+FR+FC+LFE+FLC+FRC+SL+SR
1822
1823 octagonal
1824 FL+FR+FC+BL+BR+BC+SL+SR
1825
1826 hexadecagonal
1827 FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR
1828
1829 downmix
1830 DL+DR
1831
1832 22.2
1833 FL+FR+FC+LFE+BL+BR+FLC+FRC+BC+SL+SR+TC+TFL+TFC+TFR+TBL+TBC+TBR+LFE2+TSL+TSR+BFC+BFL+BFR
1834
1835 A custom channel layout can be specified as a sequence of terms,
1836 separated by '+'. Each term can be:
1837
1838 • the name of a single channel (e.g. FL, FR, FC, LFE, etc.), each
1839 optionally containing a custom name after a '@', (e.g. FL@Left,
1840 FR@Right, FC@Center, LFE@Low_Frequency, etc.)
1841
1842 A standard channel layout can be specified by the following:
1843
1844 • the name of a single channel (e.g. FL, FR, FC, LFE, etc.)
1845
1846 • the name of a standard channel layout (e.g. mono, stereo, 4.0,
1847 quad, 5.0, etc.)
1848
1849 • a number of channels, in decimal, followed by 'c', yielding the
1850 default channel layout for that number of channels (see the
1851 function "av_channel_layout_default"). Note that not all channel
1852 counts have a default layout.
1853
1854 • a number of channels, in decimal, followed by 'C', yielding an
1855 unknown channel layout with the specified number of channels. Note
1856 that not all channel layout specification strings support unknown
1857 channel layouts.
1858
1859 • a channel layout mask, in hexadecimal starting with "0x" (see the
1860 "AV_CH_*" macros in libavutil/channel_layout.h.
1861
1862 Before libavutil version 53 the trailing character "c" to specify a
1863 number of channels was optional, but now it is required, while a
1864 channel layout mask can also be specified as a decimal number (if and
1865 only if not followed by "c" or "C").
1866
1867 See also the function "av_channel_layout_from_string" defined in
1868 libavutil/channel_layout.h.
1869
1871 When evaluating an arithmetic expression, FFmpeg uses an internal
1872 formula evaluator, implemented through the libavutil/eval.h interface.
1873
1874 An expression may contain unary, binary operators, constants, and
1875 functions.
1876
1877 Two expressions expr1 and expr2 can be combined to form another
1878 expression "expr1;expr2". expr1 and expr2 are evaluated in turn, and
1879 the new expression evaluates to the value of expr2.
1880
1881 The following binary operators are available: "+", "-", "*", "/", "^".
1882
1883 The following unary operators are available: "+", "-".
1884
1885 The following functions are available:
1886
1887 abs(x)
1888 Compute absolute value of x.
1889
1890 acos(x)
1891 Compute arccosine of x.
1892
1893 asin(x)
1894 Compute arcsine of x.
1895
1896 atan(x)
1897 Compute arctangent of x.
1898
1899 atan2(x, y)
1900 Compute principal value of the arc tangent of y/x.
1901
1902 between(x, min, max)
1903 Return 1 if x is greater than or equal to min and lesser than or
1904 equal to max, 0 otherwise.
1905
1906 bitand(x, y)
1907 bitor(x, y)
1908 Compute bitwise and/or operation on x and y.
1909
1910 The results of the evaluation of x and y are converted to integers
1911 before executing the bitwise operation.
1912
1913 Note that both the conversion to integer and the conversion back to
1914 floating point can lose precision. Beware of unexpected results for
1915 large numbers (usually 2^53 and larger).
1916
1917 ceil(expr)
1918 Round the value of expression expr upwards to the nearest integer.
1919 For example, "ceil(1.5)" is "2.0".
1920
1921 clip(x, min, max)
1922 Return the value of x clipped between min and max.
1923
1924 cos(x)
1925 Compute cosine of x.
1926
1927 cosh(x)
1928 Compute hyperbolic cosine of x.
1929
1930 eq(x, y)
1931 Return 1 if x and y are equivalent, 0 otherwise.
1932
1933 exp(x)
1934 Compute exponential of x (with base "e", the Euler's number).
1935
1936 floor(expr)
1937 Round the value of expression expr downwards to the nearest
1938 integer. For example, "floor(-1.5)" is "-2.0".
1939
1940 gauss(x)
1941 Compute Gauss function of x, corresponding to "exp(-x*x/2) /
1942 sqrt(2*PI)".
1943
1944 gcd(x, y)
1945 Return the greatest common divisor of x and y. If both x and y are
1946 0 or either or both are less than zero then behavior is undefined.
1947
1948 gt(x, y)
1949 Return 1 if x is greater than y, 0 otherwise.
1950
1951 gte(x, y)
1952 Return 1 if x is greater than or equal to y, 0 otherwise.
1953
1954 hypot(x, y)
1955 This function is similar to the C function with the same name; it
1956 returns "sqrt(x*x + y*y)", the length of the hypotenuse of a right
1957 triangle with sides of length x and y, or the distance of the point
1958 (x, y) from the origin.
1959
1960 if(x, y)
1961 Evaluate x, and if the result is non-zero return the result of the
1962 evaluation of y, return 0 otherwise.
1963
1964 if(x, y, z)
1965 Evaluate x, and if the result is non-zero return the evaluation
1966 result of y, otherwise the evaluation result of z.
1967
1968 ifnot(x, y)
1969 Evaluate x, and if the result is zero return the result of the
1970 evaluation of y, return 0 otherwise.
1971
1972 ifnot(x, y, z)
1973 Evaluate x, and if the result is zero return the evaluation result
1974 of y, otherwise the evaluation result of z.
1975
1976 isinf(x)
1977 Return 1.0 if x is +/-INFINITY, 0.0 otherwise.
1978
1979 isnan(x)
1980 Return 1.0 if x is NAN, 0.0 otherwise.
1981
1982 ld(var)
1983 Load the value of the internal variable with number var, which was
1984 previously stored with st(var, expr). The function returns the
1985 loaded value.
1986
1987 lerp(x, y, z)
1988 Return linear interpolation between x and y by amount of z.
1989
1990 log(x)
1991 Compute natural logarithm of x.
1992
1993 lt(x, y)
1994 Return 1 if x is lesser than y, 0 otherwise.
1995
1996 lte(x, y)
1997 Return 1 if x is lesser than or equal to y, 0 otherwise.
1998
1999 max(x, y)
2000 Return the maximum between x and y.
2001
2002 min(x, y)
2003 Return the minimum between x and y.
2004
2005 mod(x, y)
2006 Compute the remainder of division of x by y.
2007
2008 not(expr)
2009 Return 1.0 if expr is zero, 0.0 otherwise.
2010
2011 pow(x, y)
2012 Compute the power of x elevated y, it is equivalent to "(x)^(y)".
2013
2014 print(t)
2015 print(t, l)
2016 Print the value of expression t with loglevel l. If l is not
2017 specified then a default log level is used. Returns the value of
2018 the expression printed.
2019
2020 Prints t with loglevel l
2021
2022 random(x)
2023 Return a pseudo random value between 0.0 and 1.0. x is the index of
2024 the internal variable which will be used to save the seed/state.
2025
2026 root(expr, max)
2027 Find an input value for which the function represented by expr with
2028 argument ld(0) is 0 in the interval 0..max.
2029
2030 The expression in expr must denote a continuous function or the
2031 result is undefined.
2032
2033 ld(0) is used to represent the function input value, which means
2034 that the given expression will be evaluated multiple times with
2035 various input values that the expression can access through ld(0).
2036 When the expression evaluates to 0 then the corresponding input
2037 value will be returned.
2038
2039 round(expr)
2040 Round the value of expression expr to the nearest integer. For
2041 example, "round(1.5)" is "2.0".
2042
2043 sgn(x)
2044 Compute sign of x.
2045
2046 sin(x)
2047 Compute sine of x.
2048
2049 sinh(x)
2050 Compute hyperbolic sine of x.
2051
2052 sqrt(expr)
2053 Compute the square root of expr. This is equivalent to "(expr)^.5".
2054
2055 squish(x)
2056 Compute expression "1/(1 + exp(4*x))".
2057
2058 st(var, expr)
2059 Store the value of the expression expr in an internal variable. var
2060 specifies the number of the variable where to store the value, and
2061 it is a value ranging from 0 to 9. The function returns the value
2062 stored in the internal variable. Note, Variables are currently not
2063 shared between expressions.
2064
2065 tan(x)
2066 Compute tangent of x.
2067
2068 tanh(x)
2069 Compute hyperbolic tangent of x.
2070
2071 taylor(expr, x)
2072 taylor(expr, x, id)
2073 Evaluate a Taylor series at x, given an expression representing the
2074 "ld(id)"-th derivative of a function at 0.
2075
2076 When the series does not converge the result is undefined.
2077
2078 ld(id) is used to represent the derivative order in expr, which
2079 means that the given expression will be evaluated multiple times
2080 with various input values that the expression can access through
2081 "ld(id)". If id is not specified then 0 is assumed.
2082
2083 Note, when you have the derivatives at y instead of 0,
2084 "taylor(expr, x-y)" can be used.
2085
2086 time(0)
2087 Return the current (wallclock) time in seconds.
2088
2089 trunc(expr)
2090 Round the value of expression expr towards zero to the nearest
2091 integer. For example, "trunc(-1.5)" is "-1.0".
2092
2093 while(cond, expr)
2094 Evaluate expression expr while the expression cond is non-zero, and
2095 returns the value of the last expr evaluation, or NAN if cond was
2096 always false.
2097
2098 The following constants are available:
2099
2100 PI area of the unit disc, approximately 3.14
2101
2102 E exp(1) (Euler's number), approximately 2.718
2103
2104 PHI golden ratio (1+sqrt(5))/2, approximately 1.618
2105
2106 Assuming that an expression is considered "true" if it has a non-zero
2107 value, note that:
2108
2109 "*" works like AND
2110
2111 "+" works like OR
2112
2113 For example the construct:
2114
2115 if (A AND B) then C
2116
2117 is equivalent to:
2118
2119 if(A*B, C)
2120
2121 In your C code, you can extend the list of unary and binary functions,
2122 and define recognized constants, so that they are available for your
2123 expressions.
2124
2125 The evaluator also recognizes the International System unit prefixes.
2126 If 'i' is appended after the prefix, binary prefixes are used, which
2127 are based on powers of 1024 instead of powers of 1000. The 'B' postfix
2128 multiplies the value by 8, and can be appended after a unit prefix or
2129 used alone. This allows using for example 'KB', 'MiB', 'G' and 'B' as
2130 number postfix.
2131
2132 The list of available International System prefixes follows, with
2133 indication of the corresponding powers of 10 and of 2.
2134
2135 y 10^-24 / 2^-80
2136
2137 z 10^-21 / 2^-70
2138
2139 a 10^-18 / 2^-60
2140
2141 f 10^-15 / 2^-50
2142
2143 p 10^-12 / 2^-40
2144
2145 n 10^-9 / 2^-30
2146
2147 u 10^-6 / 2^-20
2148
2149 m 10^-3 / 2^-10
2150
2151 c 10^-2
2152
2153 d 10^-1
2154
2155 h 10^2
2156
2157 k 10^3 / 2^10
2158
2159 K 10^3 / 2^10
2160
2161 M 10^6 / 2^20
2162
2163 G 10^9 / 2^30
2164
2165 T 10^12 / 2^40
2166
2167 P 10^15 / 2^40
2168
2169 E 10^18 / 2^50
2170
2171 Z 10^21 / 2^60
2172
2173 Y 10^24 / 2^70
2174
2176 libavcodec provides some generic global options, which can be set on
2177 all the encoders and decoders. In addition each codec may support so-
2178 called private options, which are specific for a given codec.
2179
2180 Sometimes, a global option may only affect a specific kind of codec,
2181 and may be nonsensical or ignored by another, so you need to be aware
2182 of the meaning of the specified options. Also some options are meant
2183 only for decoding or encoding.
2184
2185 Options may be set by specifying -option value in the FFmpeg tools, or
2186 by setting the value explicitly in the "AVCodecContext" options or
2187 using the libavutil/opt.h API for programmatic use.
2188
2189 The list of supported options follow:
2190
2191 b integer (encoding,audio,video)
2192 Set bitrate in bits/s. Default value is 200K.
2193
2194 ab integer (encoding,audio)
2195 Set audio bitrate (in bits/s). Default value is 128K.
2196
2197 bt integer (encoding,video)
2198 Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
2199 tolerance specifies how far ratecontrol is willing to deviate from
2200 the target average bitrate value. This is not related to min/max
2201 bitrate. Lowering tolerance too much has an adverse effect on
2202 quality.
2203
2204 flags flags (decoding/encoding,audio,video,subtitles)
2205 Set generic flags.
2206
2207 Possible values:
2208
2209 mv4 Use four motion vector by macroblock (mpeg4).
2210
2211 qpel
2212 Use 1/4 pel motion compensation.
2213
2214 loop
2215 Use loop filter.
2216
2217 qscale
2218 Use fixed qscale.
2219
2220 pass1
2221 Use internal 2pass ratecontrol in first pass mode.
2222
2223 pass2
2224 Use internal 2pass ratecontrol in second pass mode.
2225
2226 gray
2227 Only decode/encode grayscale.
2228
2229 psnr
2230 Set error[?] variables during encoding.
2231
2232 truncated
2233 Input bitstream might be randomly truncated.
2234
2235 drop_changed
2236 Don't output frames whose parameters differ from first decoded
2237 frame in stream. Error AVERROR_INPUT_CHANGED is returned when
2238 a frame is dropped.
2239
2240 ildct
2241 Use interlaced DCT.
2242
2243 low_delay
2244 Force low delay.
2245
2246 global_header
2247 Place global headers in extradata instead of every keyframe.
2248
2249 bitexact
2250 Only write platform-, build- and time-independent data. (except
2251 (I)DCT). This ensures that file and data checksums are
2252 reproducible and match between platforms. Its primary use is
2253 for regression testing.
2254
2255 aic Apply H263 advanced intra coding / mpeg4 ac prediction.
2256
2257 ilme
2258 Apply interlaced motion estimation.
2259
2260 cgop
2261 Use closed gop.
2262
2263 output_corrupt
2264 Output even potentially corrupted frames.
2265
2266 time_base rational number
2267 Set codec time base.
2268
2269 It is the fundamental unit of time (in seconds) in terms of which
2270 frame timestamps are represented. For fixed-fps content, timebase
2271 should be "1 / frame_rate" and timestamp increments should be
2272 identically 1.
2273
2274 g integer (encoding,video)
2275 Set the group of picture (GOP) size. Default value is 12.
2276
2277 ar integer (decoding/encoding,audio)
2278 Set audio sampling rate (in Hz).
2279
2280 ac integer (decoding/encoding,audio)
2281 Set number of audio channels.
2282
2283 cutoff integer (encoding,audio)
2284 Set cutoff bandwidth. (Supported only by selected encoders, see
2285 their respective documentation sections.)
2286
2287 frame_size integer (encoding,audio)
2288 Set audio frame size.
2289
2290 Each submitted frame except the last must contain exactly
2291 frame_size samples per channel. May be 0 when the codec has
2292 CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is
2293 not restricted. It is set by some decoders to indicate constant
2294 frame size.
2295
2296 frame_number integer
2297 Set the frame number.
2298
2299 delay integer
2300 qcomp float (encoding,video)
2301 Set video quantizer scale compression (VBR). It is used as a
2302 constant in the ratecontrol equation. Recommended range for default
2303 rc_eq: 0.0-1.0.
2304
2305 qblur float (encoding,video)
2306 Set video quantizer scale blur (VBR).
2307
2308 qmin integer (encoding,video)
2309 Set min video quantizer scale (VBR). Must be included between -1
2310 and 69, default value is 2.
2311
2312 qmax integer (encoding,video)
2313 Set max video quantizer scale (VBR). Must be included between -1
2314 and 1024, default value is 31.
2315
2316 qdiff integer (encoding,video)
2317 Set max difference between the quantizer scale (VBR).
2318
2319 bf integer (encoding,video)
2320 Set max number of B frames between non-B-frames.
2321
2322 Must be an integer between -1 and 16. 0 means that B-frames are
2323 disabled. If a value of -1 is used, it will choose an automatic
2324 value depending on the encoder.
2325
2326 Default value is 0.
2327
2328 b_qfactor float (encoding,video)
2329 Set qp factor between P and B frames.
2330
2331 codec_tag integer
2332 bug flags (decoding,video)
2333 Workaround not auto detected encoder bugs.
2334
2335 Possible values:
2336
2337 autodetect
2338 xvid_ilace
2339 Xvid interlacing bug (autodetected if fourcc==XVIX)
2340
2341 ump4
2342 (autodetected if fourcc==UMP4)
2343
2344 no_padding
2345 padding bug (autodetected)
2346
2347 amv
2348 qpel_chroma
2349 std_qpel
2350 old standard qpel (autodetected per fourcc/version)
2351
2352 qpel_chroma2
2353 direct_blocksize
2354 direct-qpel-blocksize bug (autodetected per fourcc/version)
2355
2356 edge
2357 edge padding bug (autodetected per fourcc/version)
2358
2359 hpel_chroma
2360 dc_clip
2361 ms Workaround various bugs in microsoft broken decoders.
2362
2363 trunc
2364 trancated frames
2365
2366 strict integer (decoding/encoding,audio,video)
2367 Specify how strictly to follow the standards.
2368
2369 Possible values:
2370
2371 very
2372 strictly conform to an older more strict version of the spec or
2373 reference software
2374
2375 strict
2376 strictly conform to all the things in the spec no matter what
2377 consequences
2378
2379 normal
2380 unofficial
2381 allow unofficial extensions
2382
2383 experimental
2384 allow non standardized experimental things, experimental
2385 (unfinished/work in progress/not well tested) decoders and
2386 encoders. Note: experimental decoders can pose a security
2387 risk, do not use this for decoding untrusted input.
2388
2389 b_qoffset float (encoding,video)
2390 Set QP offset between P and B frames.
2391
2392 err_detect flags (decoding,audio,video)
2393 Set error detection flags.
2394
2395 Possible values:
2396
2397 crccheck
2398 verify embedded CRCs
2399
2400 bitstream
2401 detect bitstream specification deviations
2402
2403 buffer
2404 detect improper bitstream length
2405
2406 explode
2407 abort decoding on minor error detection
2408
2409 ignore_err
2410 ignore decoding errors, and continue decoding. This is useful
2411 if you want to analyze the content of a video and thus want
2412 everything to be decoded no matter what. This option will not
2413 result in a video that is pleasing to watch in case of errors.
2414
2415 careful
2416 consider things that violate the spec and have not been seen in
2417 the wild as errors
2418
2419 compliant
2420 consider all spec non compliancies as errors
2421
2422 aggressive
2423 consider things that a sane encoder should not do as an error
2424
2425 has_b_frames integer
2426 block_align integer
2427 rc_override_count integer
2428 maxrate integer (encoding,audio,video)
2429 Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
2430
2431 minrate integer (encoding,audio,video)
2432 Set min bitrate tolerance (in bits/s). Most useful in setting up a
2433 CBR encode. It is of little use elsewise.
2434
2435 bufsize integer (encoding,audio,video)
2436 Set ratecontrol buffer size (in bits).
2437
2438 i_qfactor float (encoding,video)
2439 Set QP factor between P and I frames.
2440
2441 i_qoffset float (encoding,video)
2442 Set QP offset between P and I frames.
2443
2444 dct integer (encoding,video)
2445 Set DCT algorithm.
2446
2447 Possible values:
2448
2449 auto
2450 autoselect a good one (default)
2451
2452 fastint
2453 fast integer
2454
2455 int accurate integer
2456
2457 mmx
2458 altivec
2459 faan
2460 floating point AAN DCT
2461
2462 lumi_mask float (encoding,video)
2463 Compress bright areas stronger than medium ones.
2464
2465 tcplx_mask float (encoding,video)
2466 Set temporal complexity masking.
2467
2468 scplx_mask float (encoding,video)
2469 Set spatial complexity masking.
2470
2471 p_mask float (encoding,video)
2472 Set inter masking.
2473
2474 dark_mask float (encoding,video)
2475 Compress dark areas stronger than medium ones.
2476
2477 idct integer (decoding/encoding,video)
2478 Select IDCT implementation.
2479
2480 Possible values:
2481
2482 auto
2483 int
2484 simple
2485 simplemmx
2486 simpleauto
2487 Automatically pick a IDCT compatible with the simple one
2488
2489 arm
2490 altivec
2491 sh4
2492 simplearm
2493 simplearmv5te
2494 simplearmv6
2495 simpleneon
2496 xvid
2497 faani
2498 floating point AAN IDCT
2499
2500 slice_count integer
2501 ec flags (decoding,video)
2502 Set error concealment strategy.
2503
2504 Possible values:
2505
2506 guess_mvs
2507 iterative motion vector (MV) search (slow)
2508
2509 deblock
2510 use strong deblock filter for damaged MBs
2511
2512 favor_inter
2513 favor predicting from the previous frame instead of the current
2514
2515 bits_per_coded_sample integer
2516 aspect rational number (encoding,video)
2517 Set sample aspect ratio.
2518
2519 sar rational number (encoding,video)
2520 Set sample aspect ratio. Alias to aspect.
2521
2522 debug flags (decoding/encoding,audio,video,subtitles)
2523 Print specific debug info.
2524
2525 Possible values:
2526
2527 pict
2528 picture info
2529
2530 rc rate control
2531
2532 bitstream
2533 mb_type
2534 macroblock (MB) type
2535
2536 qp per-block quantization parameter (QP)
2537
2538 dct_coeff
2539 green_metadata
2540 display complexity metadata for the upcoming frame, GoP or for
2541 a given duration.
2542
2543 skip
2544 startcode
2545 er error recognition
2546
2547 mmco
2548 memory management control operations (H.264)
2549
2550 bugs
2551 buffers
2552 picture buffer allocations
2553
2554 thread_ops
2555 threading operations
2556
2557 nomc
2558 skip motion compensation
2559
2560 cmp integer (encoding,video)
2561 Set full pel me compare function.
2562
2563 Possible values:
2564
2565 sad sum of absolute differences, fast (default)
2566
2567 sse sum of squared errors
2568
2569 satd
2570 sum of absolute Hadamard transformed differences
2571
2572 dct sum of absolute DCT transformed differences
2573
2574 psnr
2575 sum of squared quantization errors (avoid, low quality)
2576
2577 bit number of bits needed for the block
2578
2579 rd rate distortion optimal, slow
2580
2581 zero
2582 0
2583
2584 vsad
2585 sum of absolute vertical differences
2586
2587 vsse
2588 sum of squared vertical differences
2589
2590 nsse
2591 noise preserving sum of squared differences
2592
2593 w53 5/3 wavelet, only used in snow
2594
2595 w97 9/7 wavelet, only used in snow
2596
2597 dctmax
2598 chroma
2599 subcmp integer (encoding,video)
2600 Set sub pel me compare function.
2601
2602 Possible values:
2603
2604 sad sum of absolute differences, fast (default)
2605
2606 sse sum of squared errors
2607
2608 satd
2609 sum of absolute Hadamard transformed differences
2610
2611 dct sum of absolute DCT transformed differences
2612
2613 psnr
2614 sum of squared quantization errors (avoid, low quality)
2615
2616 bit number of bits needed for the block
2617
2618 rd rate distortion optimal, slow
2619
2620 zero
2621 0
2622
2623 vsad
2624 sum of absolute vertical differences
2625
2626 vsse
2627 sum of squared vertical differences
2628
2629 nsse
2630 noise preserving sum of squared differences
2631
2632 w53 5/3 wavelet, only used in snow
2633
2634 w97 9/7 wavelet, only used in snow
2635
2636 dctmax
2637 chroma
2638 mbcmp integer (encoding,video)
2639 Set macroblock compare function.
2640
2641 Possible values:
2642
2643 sad sum of absolute differences, fast (default)
2644
2645 sse sum of squared errors
2646
2647 satd
2648 sum of absolute Hadamard transformed differences
2649
2650 dct sum of absolute DCT transformed differences
2651
2652 psnr
2653 sum of squared quantization errors (avoid, low quality)
2654
2655 bit number of bits needed for the block
2656
2657 rd rate distortion optimal, slow
2658
2659 zero
2660 0
2661
2662 vsad
2663 sum of absolute vertical differences
2664
2665 vsse
2666 sum of squared vertical differences
2667
2668 nsse
2669 noise preserving sum of squared differences
2670
2671 w53 5/3 wavelet, only used in snow
2672
2673 w97 9/7 wavelet, only used in snow
2674
2675 dctmax
2676 chroma
2677 ildctcmp integer (encoding,video)
2678 Set interlaced dct compare function.
2679
2680 Possible values:
2681
2682 sad sum of absolute differences, fast (default)
2683
2684 sse sum of squared errors
2685
2686 satd
2687 sum of absolute Hadamard transformed differences
2688
2689 dct sum of absolute DCT transformed differences
2690
2691 psnr
2692 sum of squared quantization errors (avoid, low quality)
2693
2694 bit number of bits needed for the block
2695
2696 rd rate distortion optimal, slow
2697
2698 zero
2699 0
2700
2701 vsad
2702 sum of absolute vertical differences
2703
2704 vsse
2705 sum of squared vertical differences
2706
2707 nsse
2708 noise preserving sum of squared differences
2709
2710 w53 5/3 wavelet, only used in snow
2711
2712 w97 9/7 wavelet, only used in snow
2713
2714 dctmax
2715 chroma
2716 dia_size integer (encoding,video)
2717 Set diamond type & size for motion estimation.
2718
2719 (1024, INT_MAX)
2720 full motion estimation(slowest)
2721
2722 (768, 1024]
2723 umh motion estimation
2724
2725 (512, 768]
2726 hex motion estimation
2727
2728 (256, 512]
2729 l2s diamond motion estimation
2730
2731 [2,256]
2732 var diamond motion estimation
2733
2734 (-1, 2)
2735 small diamond motion estimation
2736
2737 -1 funny diamond motion estimation
2738
2739 (INT_MIN, -1)
2740 sab diamond motion estimation
2741
2742 last_pred integer (encoding,video)
2743 Set amount of motion predictors from the previous frame.
2744
2745 precmp integer (encoding,video)
2746 Set pre motion estimation compare function.
2747
2748 Possible values:
2749
2750 sad sum of absolute differences, fast (default)
2751
2752 sse sum of squared errors
2753
2754 satd
2755 sum of absolute Hadamard transformed differences
2756
2757 dct sum of absolute DCT transformed differences
2758
2759 psnr
2760 sum of squared quantization errors (avoid, low quality)
2761
2762 bit number of bits needed for the block
2763
2764 rd rate distortion optimal, slow
2765
2766 zero
2767 0
2768
2769 vsad
2770 sum of absolute vertical differences
2771
2772 vsse
2773 sum of squared vertical differences
2774
2775 nsse
2776 noise preserving sum of squared differences
2777
2778 w53 5/3 wavelet, only used in snow
2779
2780 w97 9/7 wavelet, only used in snow
2781
2782 dctmax
2783 chroma
2784 pre_dia_size integer (encoding,video)
2785 Set diamond type & size for motion estimation pre-pass.
2786
2787 subq integer (encoding,video)
2788 Set sub pel motion estimation quality.
2789
2790 me_range integer (encoding,video)
2791 Set limit motion vectors range (1023 for DivX player).
2792
2793 global_quality integer (encoding,audio,video)
2794 slice_flags integer
2795 mbd integer (encoding,video)
2796 Set macroblock decision algorithm (high quality mode).
2797
2798 Possible values:
2799
2800 simple
2801 use mbcmp (default)
2802
2803 bits
2804 use fewest bits
2805
2806 rd use best rate distortion
2807
2808 rc_init_occupancy integer (encoding,video)
2809 Set number of bits which should be loaded into the rc buffer before
2810 decoding starts.
2811
2812 flags2 flags (decoding/encoding,audio,video,subtitles)
2813 Possible values:
2814
2815 fast
2816 Allow non spec compliant speedup tricks.
2817
2818 noout
2819 Skip bitstream encoding.
2820
2821 ignorecrop
2822 Ignore cropping information from sps.
2823
2824 local_header
2825 Place global headers at every keyframe instead of in extradata.
2826
2827 chunks
2828 Frame data might be split into multiple chunks.
2829
2830 showall
2831 Show all frames before the first keyframe.
2832
2833 export_mvs
2834 Export motion vectors into frame side-data (see
2835 "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
2836 also doc/examples/export_mvs.c.
2837
2838 skip_manual
2839 Do not skip samples and export skip information as frame side
2840 data.
2841
2842 ass_ro_flush_noop
2843 Do not reset ASS ReadOrder field on flush.
2844
2845 export_side_data flags (decoding/encoding,audio,video,subtitles)
2846 Possible values:
2847
2848 mvs Export motion vectors into frame side-data (see
2849 "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
2850 also doc/examples/export_mvs.c.
2851
2852 prft
2853 Export encoder Producer Reference Time into packet side-data
2854 (see "AV_PKT_DATA_PRFT") for codecs that support it.
2855
2856 venc_params
2857 Export video encoding parameters through frame side data (see
2858 "AV_FRAME_DATA_VIDEO_ENC_PARAMS") for codecs that support it.
2859 At present, those are H.264 and VP9.
2860
2861 film_grain
2862 Export film grain parameters through frame side data (see
2863 "AV_FRAME_DATA_FILM_GRAIN_PARAMS"). Supported at present by
2864 AV1 decoders.
2865
2866 threads integer (decoding/encoding,video)
2867 Set the number of threads to be used, in case the selected codec
2868 implementation supports multi-threading.
2869
2870 Possible values:
2871
2872 auto, 0
2873 automatically select the number of threads to set
2874
2875 Default value is auto.
2876
2877 dc integer (encoding,video)
2878 Set intra_dc_precision.
2879
2880 nssew integer (encoding,video)
2881 Set nsse weight.
2882
2883 skip_top integer (decoding,video)
2884 Set number of macroblock rows at the top which are skipped.
2885
2886 skip_bottom integer (decoding,video)
2887 Set number of macroblock rows at the bottom which are skipped.
2888
2889 profile integer (encoding,audio,video)
2890 Set encoder codec profile. Default value is unknown. Encoder
2891 specific profiles are documented in the relevant encoder
2892 documentation.
2893
2894 level integer (encoding,audio,video)
2895 Possible values:
2896
2897 unknown
2898 lowres integer (decoding,audio,video)
2899 Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
2900
2901 mblmin integer (encoding,video)
2902 Set min macroblock lagrange factor (VBR).
2903
2904 mblmax integer (encoding,video)
2905 Set max macroblock lagrange factor (VBR).
2906
2907 skip_loop_filter integer (decoding,video)
2908 skip_idct integer (decoding,video)
2909 skip_frame integer (decoding,video)
2910 Make decoder discard processing depending on the frame type
2911 selected by the option value.
2912
2913 skip_loop_filter skips frame loop filtering, skip_idct skips frame
2914 IDCT/dequantization, skip_frame skips decoding.
2915
2916 Possible values:
2917
2918 none
2919 Discard no frame.
2920
2921 default
2922 Discard useless frames like 0-sized frames.
2923
2924 noref
2925 Discard all non-reference frames.
2926
2927 bidir
2928 Discard all bidirectional frames.
2929
2930 nokey
2931 Discard all frames excepts keyframes.
2932
2933 nointra
2934 Discard all frames except I frames.
2935
2936 all Discard all frames.
2937
2938 Default value is default.
2939
2940 bidir_refine integer (encoding,video)
2941 Refine the two motion vectors used in bidirectional macroblocks.
2942
2943 keyint_min integer (encoding,video)
2944 Set minimum interval between IDR-frames.
2945
2946 refs integer (encoding,video)
2947 Set reference frames to consider for motion compensation.
2948
2949 trellis integer (encoding,audio,video)
2950 Set rate-distortion optimal quantization.
2951
2952 mv0_threshold integer (encoding,video)
2953 compression_level integer (encoding,audio,video)
2954 bits_per_raw_sample integer
2955 channel_layout integer (decoding/encoding,audio)
2956 Possible values:
2957
2958 request_channel_layout integer (decoding,audio)
2959 Possible values:
2960
2961 rc_max_vbv_use float (encoding,video)
2962 rc_min_vbv_use float (encoding,video)
2963 ticks_per_frame integer (decoding/encoding,audio,video)
2964 color_primaries integer (decoding/encoding,video)
2965 Possible values:
2966
2967 bt709
2968 BT.709
2969
2970 bt470m
2971 BT.470 M
2972
2973 bt470bg
2974 BT.470 BG
2975
2976 smpte170m
2977 SMPTE 170 M
2978
2979 smpte240m
2980 SMPTE 240 M
2981
2982 film
2983 Film
2984
2985 bt2020
2986 BT.2020
2987
2988 smpte428
2989 smpte428_1
2990 SMPTE ST 428-1
2991
2992 smpte431
2993 SMPTE 431-2
2994
2995 smpte432
2996 SMPTE 432-1
2997
2998 jedec-p22
2999 JEDEC P22
3000
3001 color_trc integer (decoding/encoding,video)
3002 Possible values:
3003
3004 bt709
3005 BT.709
3006
3007 gamma22
3008 BT.470 M
3009
3010 gamma28
3011 BT.470 BG
3012
3013 smpte170m
3014 SMPTE 170 M
3015
3016 smpte240m
3017 SMPTE 240 M
3018
3019 linear
3020 Linear
3021
3022 log
3023 log100
3024 Log
3025
3026 log_sqrt
3027 log316
3028 Log square root
3029
3030 iec61966_2_4
3031 iec61966-2-4
3032 IEC 61966-2-4
3033
3034 bt1361
3035 bt1361e
3036 BT.1361
3037
3038 iec61966_2_1
3039 iec61966-2-1
3040 IEC 61966-2-1
3041
3042 bt2020_10
3043 bt2020_10bit
3044 BT.2020 - 10 bit
3045
3046 bt2020_12
3047 bt2020_12bit
3048 BT.2020 - 12 bit
3049
3050 smpte2084
3051 SMPTE ST 2084
3052
3053 smpte428
3054 smpte428_1
3055 SMPTE ST 428-1
3056
3057 arib-std-b67
3058 ARIB STD-B67
3059
3060 colorspace integer (decoding/encoding,video)
3061 Possible values:
3062
3063 rgb RGB
3064
3065 bt709
3066 BT.709
3067
3068 fcc FCC
3069
3070 bt470bg
3071 BT.470 BG
3072
3073 smpte170m
3074 SMPTE 170 M
3075
3076 smpte240m
3077 SMPTE 240 M
3078
3079 ycocg
3080 YCOCG
3081
3082 bt2020nc
3083 bt2020_ncl
3084 BT.2020 NCL
3085
3086 bt2020c
3087 bt2020_cl
3088 BT.2020 CL
3089
3090 smpte2085
3091 SMPTE 2085
3092
3093 chroma-derived-nc
3094 Chroma-derived NCL
3095
3096 chroma-derived-c
3097 Chroma-derived CL
3098
3099 ictcp
3100 ICtCp
3101
3102 color_range integer (decoding/encoding,video)
3103 If used as input parameter, it serves as a hint to the decoder,
3104 which color_range the input has. Possible values:
3105
3106 tv
3107 mpeg
3108 MPEG (219*2^(n-8))
3109
3110 pc
3111 jpeg
3112 JPEG (2^n-1)
3113
3114 chroma_sample_location integer (decoding/encoding,video)
3115 Possible values:
3116
3117 left
3118 center
3119 topleft
3120 top
3121 bottomleft
3122 bottom
3123 log_level_offset integer
3124 Set the log level offset.
3125
3126 slices integer (encoding,video)
3127 Number of slices, used in parallelized encoding.
3128
3129 thread_type flags (decoding/encoding,video)
3130 Select which multithreading methods to use.
3131
3132 Use of frame will increase decoding delay by one frame per thread,
3133 so clients which cannot provide future frames should not use it.
3134
3135 Possible values:
3136
3137 slice
3138 Decode more than one part of a single frame at once.
3139
3140 Multithreading using slices works only when the video was
3141 encoded with slices.
3142
3143 frame
3144 Decode more than one frame at once.
3145
3146 Default value is slice+frame.
3147
3148 audio_service_type integer (encoding,audio)
3149 Set audio service type.
3150
3151 Possible values:
3152
3153 ma Main Audio Service
3154
3155 ef Effects
3156
3157 vi Visually Impaired
3158
3159 hi Hearing Impaired
3160
3161 di Dialogue
3162
3163 co Commentary
3164
3165 em Emergency
3166
3167 vo Voice Over
3168
3169 ka Karaoke
3170
3171 request_sample_fmt sample_fmt (decoding,audio)
3172 Set sample format audio decoders should prefer. Default value is
3173 "none".
3174
3175 pkt_timebase rational number
3176 sub_charenc encoding (decoding,subtitles)
3177 Set the input subtitles character encoding.
3178
3179 field_order field_order (video)
3180 Set/override the field order of the video. Possible values:
3181
3182 progressive
3183 Progressive video
3184
3185 tt Interlaced video, top field coded and displayed first
3186
3187 bb Interlaced video, bottom field coded and displayed first
3188
3189 tb Interlaced video, top coded first, bottom displayed first
3190
3191 bt Interlaced video, bottom coded first, top displayed first
3192
3193 skip_alpha bool (decoding,video)
3194 Set to 1 to disable processing alpha (transparency). This works
3195 like the gray flag in the flags option which skips chroma
3196 information instead of alpha. Default is 0.
3197
3198 codec_whitelist list (input)
3199 "," separated list of allowed decoders. By default all are allowed.
3200
3201 dump_separator string (input)
3202 Separator used to separate the fields printed on the command line
3203 about the Stream parameters. For example, to separate the fields
3204 with newlines and indentation:
3205
3206 ffprobe -dump_separator "
3207 " -i ~/videos/matrixbench_mpeg2.mpg
3208
3209 max_pixels integer (decoding/encoding,video)
3210 Maximum number of pixels per image. This value can be used to avoid
3211 out of memory failures due to large images.
3212
3213 apply_cropping bool (decoding,video)
3214 Enable cropping if cropping parameters are multiples of the
3215 required alignment for the left and top parameters. If the
3216 alignment is not met the cropping will be partially applied to
3217 maintain alignment. Default is 1 (enabled). Note: The required
3218 alignment depends on if "AV_CODEC_FLAG_UNALIGNED" is set and the
3219 CPU. "AV_CODEC_FLAG_UNALIGNED" cannot be changed from the command
3220 line. Also hardware decoders will not apply left/top Cropping.
3221
3223 Decoders are configured elements in FFmpeg which allow the decoding of
3224 multimedia streams.
3225
3226 When you configure your FFmpeg build, all the supported native decoders
3227 are enabled by default. Decoders requiring an external library must be
3228 enabled manually via the corresponding "--enable-lib" option. You can
3229 list all available decoders using the configure option
3230 "--list-decoders".
3231
3232 You can disable all the decoders with the configure option
3233 "--disable-decoders" and selectively enable / disable single decoders
3234 with the options "--enable-decoder=DECODER" /
3235 "--disable-decoder=DECODER".
3236
3237 The option "-decoders" of the ff* tools will display the list of
3238 enabled decoders.
3239
3241 A description of some of the currently available video decoders
3242 follows.
3243
3244 av1
3245 AOMedia Video 1 (AV1) decoder.
3246
3247 Options
3248
3249 operating_point
3250 Select an operating point of a scalable AV1 bitstream (0 - 31).
3251 Default is 0.
3252
3253 rawvideo
3254 Raw video decoder.
3255
3256 This decoder decodes rawvideo streams.
3257
3258 Options
3259
3260 top top_field_first
3261 Specify the assumed field type of the input video.
3262
3263 -1 the video is assumed to be progressive (default)
3264
3265 0 bottom-field-first is assumed
3266
3267 1 top-field-first is assumed
3268
3269 libdav1d
3270 dav1d AV1 decoder.
3271
3272 libdav1d allows libavcodec to decode the AOMedia Video 1 (AV1) codec.
3273 Requires the presence of the libdav1d headers and library during
3274 configuration. You need to explicitly configure the build with
3275 "--enable-libdav1d".
3276
3277 Options
3278
3279 The following options are supported by the libdav1d wrapper.
3280
3281 framethreads
3282 Set amount of frame threads to use during decoding. The default
3283 value is 0 (autodetect). This option is deprecated for libdav1d >=
3284 1.0 and will be removed in the future. Use the global option
3285 "threads" instead.
3286
3287 tilethreads
3288 Set amount of tile threads to use during decoding. The default
3289 value is 0 (autodetect). This option is deprecated for libdav1d >=
3290 1.0 and will be removed in the future. Use the global option
3291 "threads" instead.
3292
3293 filmgrain
3294 Apply film grain to the decoded video if present in the bitstream.
3295 Defaults to the internal default of the library. This option is
3296 deprecated and will be removed in the future. See the global option
3297 "export_side_data" to export Film Grain parameters instead of
3298 applying it.
3299
3300 oppoint
3301 Select an operating point of a scalable AV1 bitstream (0 - 31).
3302 Defaults to the internal default of the library.
3303
3304 alllayers
3305 Output all spatial layers of a scalable AV1 bitstream. The default
3306 value is false.
3307
3308 libdavs2
3309 AVS2-P2/IEEE1857.4 video decoder wrapper.
3310
3311 This decoder allows libavcodec to decode AVS2 streams with davs2
3312 library.
3313
3314 libuavs3d
3315 AVS3-P2/IEEE1857.10 video decoder.
3316
3317 libuavs3d allows libavcodec to decode AVS3 streams. Requires the
3318 presence of the libuavs3d headers and library during configuration.
3319 You need to explicitly configure the build with "--enable-libuavs3d".
3320
3321 Options
3322
3323 The following option is supported by the libuavs3d wrapper.
3324
3325 frame_threads
3326 Set amount of frame threads to use during decoding. The default
3327 value is 0 (autodetect).
3328
3329 QSV Decoders
3330 The family of Intel QuickSync Video decoders (VC1, MPEG-2, H.264, HEVC,
3331 JPEG/MJPEG, VP8, VP9, AV1).
3332
3333 Common Options
3334
3335 The following options are supported by all qsv decoders.
3336
3337 async_depth
3338 Internal parallelization depth, the higher the value the higher the
3339 latency.
3340
3341 gpu_copy
3342 A GPU-accelerated copy between video and system memory
3343
3344 default
3345 on
3346 off
3347
3348 HEVC Options
3349
3350 Extra options for hevc_qsv.
3351
3352 load_plugin
3353 A user plugin to load in an internal session
3354
3355 none
3356 hevc_sw
3357 hevc_hw
3358 load_plugins
3359 A :-separate list of hexadecimal plugin UIDs to load in an internal
3360 session
3361
3362 v210
3363 Uncompressed 4:2:2 10-bit decoder.
3364
3365 Options
3366
3367 custom_stride
3368 Set the line size of the v210 data in bytes. The default value is 0
3369 (autodetect). You can use the special -1 value for a strideless
3370 v210 as seen in BOXX files.
3371
3373 A description of some of the currently available audio decoders
3374 follows.
3375
3376 ac3
3377 AC-3 audio decoder.
3378
3379 This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as
3380 well as the undocumented RealAudio 3 (a.k.a. dnet).
3381
3382 AC-3 Decoder Options
3383
3384 -drc_scale value
3385 Dynamic Range Scale Factor. The factor to apply to dynamic range
3386 values from the AC-3 stream. This factor is applied exponentially.
3387 The default value is 1. There are 3 notable scale factor ranges:
3388
3389 drc_scale == 0
3390 DRC disabled. Produces full range audio.
3391
3392 0 < drc_scale <= 1
3393 DRC enabled. Applies a fraction of the stream DRC value.
3394 Audio reproduction is between full range and full compression.
3395
3396 drc_scale > 1
3397 DRC enabled. Applies drc_scale asymmetrically. Loud sounds are
3398 fully compressed. Soft sounds are enhanced.
3399
3400 flac
3401 FLAC audio decoder.
3402
3403 This decoder aims to implement the complete FLAC specification from
3404 Xiph.
3405
3406 FLAC Decoder options
3407
3408 -use_buggy_lpc
3409 The lavc FLAC encoder used to produce buggy streams with high lpc
3410 values (like the default value). This option makes it possible to
3411 decode such streams correctly by using lavc's old buggy lpc logic
3412 for decoding.
3413
3414 ffwavesynth
3415 Internal wave synthesizer.
3416
3417 This decoder generates wave patterns according to predefined sequences.
3418 Its use is purely internal and the format of the data it accepts is not
3419 publicly documented.
3420
3421 libcelt
3422 libcelt decoder wrapper.
3423
3424 libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio
3425 codec. Requires the presence of the libcelt headers and library during
3426 configuration. You need to explicitly configure the build with
3427 "--enable-libcelt".
3428
3429 libgsm
3430 libgsm decoder wrapper.
3431
3432 libgsm allows libavcodec to decode the GSM full rate audio codec.
3433 Requires the presence of the libgsm headers and library during
3434 configuration. You need to explicitly configure the build with
3435 "--enable-libgsm".
3436
3437 This decoder supports both the ordinary GSM and the Microsoft variant.
3438
3439 libilbc
3440 libilbc decoder wrapper.
3441
3442 libilbc allows libavcodec to decode the Internet Low Bitrate Codec
3443 (iLBC) audio codec. Requires the presence of the libilbc headers and
3444 library during configuration. You need to explicitly configure the
3445 build with "--enable-libilbc".
3446
3447 Options
3448
3449 The following option is supported by the libilbc wrapper.
3450
3451 enhance
3452 Enable the enhancement of the decoded audio when set to 1. The
3453 default value is 0 (disabled).
3454
3455 libopencore-amrnb
3456 libopencore-amrnb decoder wrapper.
3457
3458 libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate
3459 Narrowband audio codec. Using it requires the presence of the
3460 libopencore-amrnb headers and library during configuration. You need to
3461 explicitly configure the build with "--enable-libopencore-amrnb".
3462
3463 An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB
3464 without this library.
3465
3466 libopencore-amrwb
3467 libopencore-amrwb decoder wrapper.
3468
3469 libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate
3470 Wideband audio codec. Using it requires the presence of the
3471 libopencore-amrwb headers and library during configuration. You need to
3472 explicitly configure the build with "--enable-libopencore-amrwb".
3473
3474 An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB
3475 without this library.
3476
3477 libopus
3478 libopus decoder wrapper.
3479
3480 libopus allows libavcodec to decode the Opus Interactive Audio Codec.
3481 Requires the presence of the libopus headers and library during
3482 configuration. You need to explicitly configure the build with
3483 "--enable-libopus".
3484
3485 An FFmpeg native decoder for Opus exists, so users can decode Opus
3486 without this library.
3487
3489 libaribb24
3490 ARIB STD-B24 caption decoder.
3491
3492 Implements profiles A and C of the ARIB STD-B24 standard.
3493
3494 libaribb24 Decoder Options
3495
3496 -aribb24-base-path path
3497 Sets the base path for the libaribb24 library. This is utilized for
3498 reading of configuration files (for custom unicode conversions),
3499 and for dumping of non-text symbols as images under that location.
3500
3501 Unset by default.
3502
3503 -aribb24-skip-ruby-text boolean
3504 Tells the decoder wrapper to skip text blocks that contain half-
3505 height ruby text.
3506
3507 Enabled by default.
3508
3509 dvbsub
3510 Options
3511
3512 compute_clut
3513 -2 Compute clut once if no matching CLUT is in the stream.
3514
3515 -1 Compute clut if no matching CLUT is in the stream.
3516
3517 0 Never compute CLUT
3518
3519 1 Always compute CLUT and override the one provided in the
3520 stream.
3521
3522 dvb_substream
3523 Selects the dvb substream, or all substreams if -1 which is
3524 default.
3525
3526 dvdsub
3527 This codec decodes the bitmap subtitles used in DVDs; the same
3528 subtitles can also be found in VobSub file pairs and in some Matroska
3529 files.
3530
3531 Options
3532
3533 palette
3534 Specify the global palette used by the bitmaps. When stored in
3535 VobSub, the palette is normally specified in the index file; in
3536 Matroska, the palette is stored in the codec extra-data in the same
3537 format as in VobSub. In DVDs, the palette is stored in the IFO
3538 file, and therefore not available when reading from dumped VOB
3539 files.
3540
3541 The format for this option is a string containing 16 24-bits
3542 hexadecimal numbers (without 0x prefix) separated by commas, for
3543 example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b,
3544 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c,
3545 7c127b".
3546
3547 ifo_palette
3548 Specify the IFO file from which the global palette is obtained.
3549 (experimental)
3550
3551 forced_subs_only
3552 Only decode subtitle entries marked as forced. Some titles have
3553 forced and non-forced subtitles in the same track. Setting this
3554 flag to 1 will only keep the forced subtitles. Default value is 0.
3555
3556 libzvbi-teletext
3557 Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext
3558 subtitles. Requires the presence of the libzvbi headers and library
3559 during configuration. You need to explicitly configure the build with
3560 "--enable-libzvbi".
3561
3562 Options
3563
3564 txt_page
3565 List of teletext page numbers to decode. Pages that do not match
3566 the specified list are dropped. You may use the special "*" string
3567 to match all pages, or "subtitle" to match all subtitle pages.
3568 Default value is *.
3569
3570 txt_default_region
3571 Set default character set used for decoding, a value between 0 and
3572 87 (see ETS 300 706, Section 15, Table 32). Default value is -1,
3573 which does not override the libzvbi default. This option is needed
3574 for some legacy level 1.0 transmissions which cannot signal the
3575 proper charset.
3576
3577 txt_chop_top
3578 Discards the top teletext line. Default value is 1.
3579
3580 txt_format
3581 Specifies the format of the decoded subtitles.
3582
3583 bitmap
3584 The default format, you should use this for teletext pages,
3585 because certain graphics and colors cannot be expressed in
3586 simple text or even ASS.
3587
3588 text
3589 Simple text based output without formatting.
3590
3591 ass Formatted ASS output, subtitle pages and teletext pages are
3592 returned in different styles, subtitle pages are stripped down
3593 to text, but an effort is made to keep the text alignment and
3594 the formatting.
3595
3596 txt_left
3597 X offset of generated bitmaps, default is 0.
3598
3599 txt_top
3600 Y offset of generated bitmaps, default is 0.
3601
3602 txt_chop_spaces
3603 Chops leading and trailing spaces and removes empty lines from the
3604 generated text. This option is useful for teletext based subtitles
3605 where empty spaces may be present at the start or at the end of the
3606 lines or empty lines may be present between the subtitle lines
3607 because of double-sized teletext characters. Default value is 1.
3608
3609 txt_duration
3610 Sets the display duration of the decoded teletext pages or
3611 subtitles in milliseconds. Default value is -1 which means infinity
3612 or until the next subtitle event comes.
3613
3614 txt_transparent
3615 Force transparent background of the generated teletext bitmaps.
3616 Default value is 0 which means an opaque background.
3617
3618 txt_opacity
3619 Sets the opacity (0-255) of the teletext background. If
3620 txt_transparent is not set, it only affects characters between a
3621 start box and an end box, typically subtitles. Default value is 0
3622 if txt_transparent is set, 255 otherwise.
3623
3625 When you configure your FFmpeg build, all the supported bitstream
3626 filters are enabled by default. You can list all available ones using
3627 the configure option "--list-bsfs".
3628
3629 You can disable all the bitstream filters using the configure option
3630 "--disable-bsfs", and selectively enable any bitstream filter using the
3631 option "--enable-bsf=BSF", or you can disable a particular bitstream
3632 filter using the option "--disable-bsf=BSF".
3633
3634 The option "-bsfs" of the ff* tools will display the list of all the
3635 supported bitstream filters included in your build.
3636
3637 The ff* tools have a -bsf option applied per stream, taking a comma-
3638 separated list of filters, whose parameters follow the filter name
3639 after a '='.
3640
3641 ffmpeg -i INPUT -c:v copy -bsf:v filter1[=opt1=str1:opt2=str2][,filter2] OUTPUT
3642
3643 Below is a description of the currently available bitstream filters,
3644 with their parameters, if any.
3645
3646 aac_adtstoasc
3647 Convert MPEG-2/4 AAC ADTS to an MPEG-4 Audio Specific Configuration
3648 bitstream.
3649
3650 This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4 ADTS
3651 header and removes the ADTS header.
3652
3653 This filter is required for example when copying an AAC stream from a
3654 raw ADTS AAC or an MPEG-TS container to MP4A-LATM, to an FLV file, or
3655 to MOV/MP4 files and related formats such as 3GP or M4A. Please note
3656 that it is auto-inserted for MP4A-LATM and MOV/MP4 and related formats.
3657
3658 av1_metadata
3659 Modify metadata embedded in an AV1 stream.
3660
3661 td Insert or remove temporal delimiter OBUs in all temporal units of
3662 the stream.
3663
3664 insert
3665 Insert a TD at the beginning of every TU which does not already
3666 have one.
3667
3668 remove
3669 Remove the TD from the beginning of every TU which has one.
3670
3671 color_primaries
3672 transfer_characteristics
3673 matrix_coefficients
3674 Set the color description fields in the stream (see AV1 section
3675 6.4.2).
3676
3677 color_range
3678 Set the color range in the stream (see AV1 section 6.4.2; note that
3679 this cannot be set for streams using BT.709 primaries, sRGB
3680 transfer characteristic and identity (RGB) matrix coefficients).
3681
3682 tv Limited range.
3683
3684 pc Full range.
3685
3686 chroma_sample_position
3687 Set the chroma sample location in the stream (see AV1 section
3688 6.4.2). This can only be set for 4:2:0 streams.
3689
3690 vertical
3691 Left position (matching the default in MPEG-2 and H.264).
3692
3693 colocated
3694 Top-left position.
3695
3696 tick_rate
3697 Set the tick rate (time_scale / num_units_in_display_tick) in the
3698 timing info in the sequence header.
3699
3700 num_ticks_per_picture
3701 Set the number of ticks in each picture, to indicate that the
3702 stream has a fixed framerate. Ignored if tick_rate is not also
3703 set.
3704
3705 delete_padding
3706 Deletes Padding OBUs.
3707
3708 chomp
3709 Remove zero padding at the end of a packet.
3710
3711 dca_core
3712 Extract the core from a DCA/DTS stream, dropping extensions such as
3713 DTS-HD.
3714
3715 dump_extra
3716 Add extradata to the beginning of the filtered packets except when said
3717 packets already exactly begin with the extradata that is intended to be
3718 added.
3719
3720 freq
3721 The additional argument specifies which packets should be filtered.
3722 It accepts the values:
3723
3724 k
3725 keyframe
3726 add extradata to all key packets
3727
3728 e
3729 all add extradata to all packets
3730
3731 If not specified it is assumed k.
3732
3733 For example the following ffmpeg command forces a global header (thus
3734 disabling individual packet headers) in the H.264 packets generated by
3735 the "libx264" encoder, but corrects them by adding the header stored in
3736 extradata to the key packets:
3737
3738 ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
3739
3740 dv_error_marker
3741 Blocks in DV which are marked as damaged are replaced by blocks of the
3742 specified color.
3743
3744 color
3745 The color to replace damaged blocks by
3746
3747 sta A 16 bit mask which specifies which of the 16 possible error status
3748 values are to be replaced by colored blocks. 0xFFFE is the default
3749 which replaces all non 0 error status values.
3750
3751 ok No error, no concealment
3752
3753 err Error, No concealment
3754
3755 res Reserved
3756
3757 notok
3758 Error or concealment
3759
3760 notres
3761 Not reserved
3762
3763 Aa, Ba, Ca, Ab, Bb, Cb, A, B, C, a, b, erri, erru
3764 The specific error status code
3765
3766 see page 44-46 or section 5.5 of
3767 <http://web.archive.org/web/20060927044735/http://www.smpte.org/smpte_store/standards/pdf/s314m.pdf>
3768
3769 eac3_core
3770 Extract the core from a E-AC-3 stream, dropping extra channels.
3771
3772 extract_extradata
3773 Extract the in-band extradata.
3774
3775 Certain codecs allow the long-term headers (e.g. MPEG-2 sequence
3776 headers, or H.264/HEVC (VPS/)SPS/PPS) to be transmitted either "in-
3777 band" (i.e. as a part of the bitstream containing the coded frames) or
3778 "out of band" (e.g. on the container level). This latter form is called
3779 "extradata" in FFmpeg terminology.
3780
3781 This bitstream filter detects the in-band headers and makes them
3782 available as extradata.
3783
3784 remove
3785 When this option is enabled, the long-term headers are removed from
3786 the bitstream after extraction.
3787
3788 filter_units
3789 Remove units with types in or not in a given set from the stream.
3790
3791 pass_types
3792 List of unit types or ranges of unit types to pass through while
3793 removing all others. This is specified as a '|'-separated list of
3794 unit type values or ranges of values with '-'.
3795
3796 remove_types
3797 Identical to pass_types, except the units in the given set removed
3798 and all others passed through.
3799
3800 Extradata is unchanged by this transformation, but note that if the
3801 stream contains inline parameter sets then the output may be unusable
3802 if they are removed.
3803
3804 For example, to remove all non-VCL NAL units from an H.264 stream:
3805
3806 ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=pass_types=1-5' OUTPUT
3807
3808 To remove all AUDs, SEI and filler from an H.265 stream:
3809
3810 ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=35|38-40' OUTPUT
3811
3812 hapqa_extract
3813 Extract Rgb or Alpha part of an HAPQA file, without recompression, in
3814 order to create an HAPQ or an HAPAlphaOnly file.
3815
3816 texture
3817 Specifies the texture to keep.
3818
3819 color
3820 alpha
3821
3822 Convert HAPQA to HAPQ
3823
3824 ffmpeg -i hapqa_inputfile.mov -c copy -bsf:v hapqa_extract=texture=color -tag:v HapY -metadata:s:v:0 encoder="HAPQ" hapq_file.mov
3825
3826 Convert HAPQA to HAPAlphaOnly
3827
3828 ffmpeg -i hapqa_inputfile.mov -c copy -bsf:v hapqa_extract=texture=alpha -tag:v HapA -metadata:s:v:0 encoder="HAPAlpha Only" hapalphaonly_file.mov
3829
3830 h264_metadata
3831 Modify metadata embedded in an H.264 stream.
3832
3833 aud Insert or remove AUD NAL units in all access units of the stream.
3834
3835 pass
3836 insert
3837 remove
3838
3839 Default is pass.
3840
3841 sample_aspect_ratio
3842 Set the sample aspect ratio of the stream in the VUI parameters.
3843 See H.264 table E-1.
3844
3845 overscan_appropriate_flag
3846 Set whether the stream is suitable for display using overscan or
3847 not (see H.264 section E.2.1).
3848
3849 video_format
3850 video_full_range_flag
3851 Set the video format in the stream (see H.264 section E.2.1 and
3852 table E-2).
3853
3854 colour_primaries
3855 transfer_characteristics
3856 matrix_coefficients
3857 Set the colour description in the stream (see H.264 section E.2.1
3858 and tables E-3, E-4 and E-5).
3859
3860 chroma_sample_loc_type
3861 Set the chroma sample location in the stream (see H.264 section
3862 E.2.1 and figure E-1).
3863
3864 tick_rate
3865 Set the tick rate (time_scale / num_units_in_tick) in the VUI
3866 parameters. This is the smallest time unit representable in the
3867 stream, and in many cases represents the field rate of the stream
3868 (double the frame rate).
3869
3870 fixed_frame_rate_flag
3871 Set whether the stream has fixed framerate - typically this
3872 indicates that the framerate is exactly half the tick rate, but the
3873 exact meaning is dependent on interlacing and the picture structure
3874 (see H.264 section E.2.1 and table E-6).
3875
3876 zero_new_constraint_set_flags
3877 Zero constraint_set4_flag and constraint_set5_flag in the SPS.
3878 These bits were reserved in a previous version of the H.264 spec,
3879 and thus some hardware decoders require these to be zero. The
3880 result of zeroing this is still a valid bitstream.
3881
3882 crop_left
3883 crop_right
3884 crop_top
3885 crop_bottom
3886 Set the frame cropping offsets in the SPS. These values will
3887 replace the current ones if the stream is already cropped.
3888
3889 These fields are set in pixels. Note that some sizes may not be
3890 representable if the chroma is subsampled or the stream is
3891 interlaced (see H.264 section 7.4.2.1.1).
3892
3893 sei_user_data
3894 Insert a string as SEI unregistered user data. The argument must
3895 be of the form UUID+string, where the UUID is as hex digits
3896 possibly separated by hyphens, and the string can be anything.
3897
3898 For example, 086f3693-b7b3-4f2c-9653-21492feee5b8+hello will insert
3899 the string ``hello'' associated with the given UUID.
3900
3901 delete_filler
3902 Deletes both filler NAL units and filler SEI messages.
3903
3904 display_orientation
3905 Insert, extract or remove Display orientation SEI messages. See
3906 H.264 section D.1.27 and D.2.27 for syntax and semantics.
3907
3908 pass
3909 insert
3910 remove
3911 extract
3912
3913 Default is pass.
3914
3915 Insert mode works in conjunction with "rotate" and "flip" options.
3916 Any pre-existing Display orientation messages will be removed in
3917 insert or remove mode. Extract mode attaches the display matrix to
3918 the packet as side data.
3919
3920 rotate
3921 Set rotation in display orientation SEI (anticlockwise angle in
3922 degrees). Range is -360 to +360. Default is NaN.
3923
3924 flip
3925 Set flip in display orientation SEI.
3926
3927 horizontal
3928 vertical
3929
3930 Default is unset.
3931
3932 level
3933 Set the level in the SPS. Refer to H.264 section A.3 and tables
3934 A-1 to A-5.
3935
3936 The argument must be the name of a level (for example, 4.2), a
3937 level_idc value (for example, 42), or the special name auto
3938 indicating that the filter should attempt to guess the level from
3939 the input stream properties.
3940
3941 h264_mp4toannexb
3942 Convert an H.264 bitstream from length prefixed mode to start code
3943 prefixed mode (as defined in the Annex B of the ITU-T H.264
3944 specification).
3945
3946 This is required by some streaming formats, typically the MPEG-2
3947 transport stream format (muxer "mpegts").
3948
3949 For example to remux an MP4 file containing an H.264 stream to mpegts
3950 format with ffmpeg, you can use the command:
3951
3952 ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
3953
3954 Please note that this filter is auto-inserted for MPEG-TS (muxer
3955 "mpegts") and raw H.264 (muxer "h264") output formats.
3956
3957 h264_redundant_pps
3958 This applies a specific fixup to some Blu-ray streams which contain
3959 redundant PPSs modifying irrelevant parameters of the stream which
3960 confuse other transformations which require correct extradata.
3961
3962 A new single global PPS is created, and all of the redundant PPSs
3963 within the stream are removed.
3964
3965 hevc_metadata
3966 Modify metadata embedded in an HEVC stream.
3967
3968 aud Insert or remove AUD NAL units in all access units of the stream.
3969
3970 insert
3971 remove
3972 sample_aspect_ratio
3973 Set the sample aspect ratio in the stream in the VUI parameters.
3974
3975 video_format
3976 video_full_range_flag
3977 Set the video format in the stream (see H.265 section E.3.1 and
3978 table E.2).
3979
3980 colour_primaries
3981 transfer_characteristics
3982 matrix_coefficients
3983 Set the colour description in the stream (see H.265 section E.3.1
3984 and tables E.3, E.4 and E.5).
3985
3986 chroma_sample_loc_type
3987 Set the chroma sample location in the stream (see H.265 section
3988 E.3.1 and figure E.1).
3989
3990 tick_rate
3991 Set the tick rate in the VPS and VUI parameters (time_scale /
3992 num_units_in_tick). Combined with num_ticks_poc_diff_one, this can
3993 set a constant framerate in the stream. Note that it is likely to
3994 be overridden by container parameters when the stream is in a
3995 container.
3996
3997 num_ticks_poc_diff_one
3998 Set poc_proportional_to_timing_flag in VPS and VUI and use this
3999 value to set num_ticks_poc_diff_one_minus1 (see H.265 sections
4000 7.4.3.1 and E.3.1). Ignored if tick_rate is not also set.
4001
4002 crop_left
4003 crop_right
4004 crop_top
4005 crop_bottom
4006 Set the conformance window cropping offsets in the SPS. These
4007 values will replace the current ones if the stream is already
4008 cropped.
4009
4010 These fields are set in pixels. Note that some sizes may not be
4011 representable if the chroma is subsampled (H.265 section
4012 7.4.3.2.1).
4013
4014 level
4015 Set the level in the VPS and SPS. See H.265 section A.4 and tables
4016 A.6 and A.7.
4017
4018 The argument must be the name of a level (for example, 5.1), a
4019 general_level_idc value (for example, 153 for level 5.1), or the
4020 special name auto indicating that the filter should attempt to
4021 guess the level from the input stream properties.
4022
4023 hevc_mp4toannexb
4024 Convert an HEVC/H.265 bitstream from length prefixed mode to start code
4025 prefixed mode (as defined in the Annex B of the ITU-T H.265
4026 specification).
4027
4028 This is required by some streaming formats, typically the MPEG-2
4029 transport stream format (muxer "mpegts").
4030
4031 For example to remux an MP4 file containing an HEVC stream to mpegts
4032 format with ffmpeg, you can use the command:
4033
4034 ffmpeg -i INPUT.mp4 -codec copy -bsf:v hevc_mp4toannexb OUTPUT.ts
4035
4036 Please note that this filter is auto-inserted for MPEG-TS (muxer
4037 "mpegts") and raw HEVC/H.265 (muxer "h265" or "hevc") output formats.
4038
4039 imxdump
4040 Modifies the bitstream to fit in MOV and to be usable by the Final Cut
4041 Pro decoder. This filter only applies to the mpeg2video codec, and is
4042 likely not needed for Final Cut Pro 7 and newer with the appropriate
4043 -tag:v.
4044
4045 For example, to remux 30 MB/sec NTSC IMX to MOV:
4046
4047 ffmpeg -i input.mxf -c copy -bsf:v imxdump -tag:v mx3n output.mov
4048
4049 mjpeg2jpeg
4050 Convert MJPEG/AVI1 packets to full JPEG/JFIF packets.
4051
4052 MJPEG is a video codec wherein each video frame is essentially a JPEG
4053 image. The individual frames can be extracted without loss, e.g. by
4054
4055 ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg
4056
4057 Unfortunately, these chunks are incomplete JPEG images, because they
4058 lack the DHT segment required for decoding. Quoting from
4059 <http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml>:
4060
4061 Avery Lee, writing in the rec.video.desktop newsgroup in 2001,
4062 commented that "MJPEG, or at least the MJPEG in AVIs having the MJPG
4063 fourcc, is restricted JPEG with a fixed -- and *omitted* -- Huffman
4064 table. The JPEG must be YCbCr colorspace, it must be 4:2:2, and it must
4065 use basic Huffman encoding, not arithmetic or progressive. . . . You
4066 can indeed extract the MJPEG frames and decode them with a regular JPEG
4067 decoder, but you have to prepend the DHT segment to them, or else the
4068 decoder won't have any idea how to decompress the data. The exact table
4069 necessary is given in the OpenDML spec."
4070
4071 This bitstream filter patches the header of frames extracted from an
4072 MJPEG stream (carrying the AVI1 header ID and lacking a DHT segment) to
4073 produce fully qualified JPEG images.
4074
4075 ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
4076 exiftran -i -9 frame*.jpg
4077 ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
4078
4079 mjpegadump
4080 Add an MJPEG A header to the bitstream, to enable decoding by
4081 Quicktime.
4082
4083 mov2textsub
4084 Extract a representable text file from MOV subtitles, stripping the
4085 metadata header from each subtitle packet.
4086
4087 See also the text2movsub filter.
4088
4089 mp3decomp
4090 Decompress non-standard compressed MP3 audio headers.
4091
4092 mpeg2_metadata
4093 Modify metadata embedded in an MPEG-2 stream.
4094
4095 display_aspect_ratio
4096 Set the display aspect ratio in the stream.
4097
4098 The following fixed values are supported:
4099
4100 4/3
4101 16/9
4102 221/100
4103
4104 Any other value will result in square pixels being signalled
4105 instead (see H.262 section 6.3.3 and table 6-3).
4106
4107 frame_rate
4108 Set the frame rate in the stream. This is constructed from a table
4109 of known values combined with a small multiplier and divisor - if
4110 the supplied value is not exactly representable, the nearest
4111 representable value will be used instead (see H.262 section 6.3.3
4112 and table 6-4).
4113
4114 video_format
4115 Set the video format in the stream (see H.262 section 6.3.6 and
4116 table 6-6).
4117
4118 colour_primaries
4119 transfer_characteristics
4120 matrix_coefficients
4121 Set the colour description in the stream (see H.262 section 6.3.6
4122 and tables 6-7, 6-8 and 6-9).
4123
4124 mpeg4_unpack_bframes
4125 Unpack DivX-style packed B-frames.
4126
4127 DivX-style packed B-frames are not valid MPEG-4 and were only a
4128 workaround for the broken Video for Windows subsystem. They use more
4129 space, can cause minor AV sync issues, require more CPU power to decode
4130 (unless the player has some decoded picture queue to compensate the
4131 2,0,2,0 frame per packet style) and cause trouble if copied into a
4132 standard container like mp4 or mpeg-ps/ts, because MPEG-4 decoders may
4133 not be able to decode them, since they are not valid MPEG-4.
4134
4135 For example to fix an AVI file containing an MPEG-4 stream with DivX-
4136 style packed B-frames using ffmpeg, you can use the command:
4137
4138 ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi
4139
4140 noise
4141 Damages the contents of packets or simply drops them without damaging
4142 the container. Can be used for fuzzing or testing error
4143 resilience/concealment.
4144
4145 Parameters:
4146
4147 amount
4148 Accepts an expression whose evaluation per-packet determines how
4149 often bytes in that packet will be modified. A value below 0 will
4150 result in a variable frequency. Default is 0 which results in no
4151 modification. However, if neither amount nor drop is specified,
4152 amount will be set to -1. See below for accepted variables.
4153
4154 drop
4155 Accepts an expression evaluated per-packet whose value determines
4156 whether that packet is dropped. Evaluation to a positive value
4157 results in the packet being dropped. Evaluation to a negative value
4158 results in a variable chance of it being dropped, roughly inverse
4159 in proportion to the magnitude of the value. Default is 0 which
4160 results in no drops. See below for accepted variables.
4161
4162 dropamount
4163 Accepts a non-negative integer, which assigns a variable chance of
4164 it being dropped, roughly inverse in proportion to the value.
4165 Default is 0 which results in no drops. This option is kept for
4166 backwards compatibility and is equivalent to setting drop to a
4167 negative value with the same magnitude i.e. "dropamount=4" is the
4168 same as "drop=-4". Ignored if drop is also specified.
4169
4170 Both "amount" and "drop" accept expressions containing the following
4171 variables:
4172
4173 n The index of the packet, starting from zero.
4174
4175 tb The timebase for packet timestamps.
4176
4177 pts Packet presentation timestamp.
4178
4179 dts Packet decoding timestamp.
4180
4181 nopts
4182 Constant representing AV_NOPTS_VALUE.
4183
4184 startpts
4185 First non-AV_NOPTS_VALUE PTS seen in the stream.
4186
4187 startdts
4188 First non-AV_NOPTS_VALUE DTS seen in the stream.
4189
4190 duration
4191 d Packet duration, in timebase units.
4192
4193 pos Packet position in input; may be -1 when unknown or not set.
4194
4195 size
4196 Packet size, in bytes.
4197
4198 key Whether packet is marked as a keyframe.
4199
4200 state
4201 A pseudo random integer, primarily derived from the content of
4202 packet payload.
4203
4204 Examples
4205
4206 Apply modification to every byte but don't drop any packets.
4207
4208 ffmpeg -i INPUT -c copy -bsf noise=1 output.mkv
4209
4210 Drop every video packet not marked as a keyframe after timestamp 30s
4211 but do not modify any of the remaining packets.
4212
4213 ffmpeg -i INPUT -c copy -bsf:v noise=drop='gt(t\,30)*not(key)' output.mkv
4214
4215 Drop one second of audio every 10 seconds and add some random noise to
4216 the rest.
4217
4218 ffmpeg -i INPUT -c copy -bsf:a noise=amount=-1:drop='between(mod(t\,10)\,9\,10)' output.mkv
4219
4220 null
4221 This bitstream filter passes the packets through unchanged.
4222
4223 pcm_rechunk
4224 Repacketize PCM audio to a fixed number of samples per packet or a
4225 fixed packet rate per second. This is similar to the asetnsamples audio
4226 filter but works on audio packets instead of audio frames.
4227
4228 nb_out_samples, n
4229 Set the number of samples per each output audio packet. The number
4230 is intended as the number of samples per each channel. Default
4231 value is 1024.
4232
4233 pad, p
4234 If set to 1, the filter will pad the last audio packet with
4235 silence, so that it will contain the same number of samples (or
4236 roughly the same number of samples, see frame_rate) as the previous
4237 ones. Default value is 1.
4238
4239 frame_rate, r
4240 This option makes the filter output a fixed number of packets per
4241 second instead of a fixed number of samples per packet. If the
4242 audio sample rate is not divisible by the frame rate then the
4243 number of samples will not be constant but will vary slightly so
4244 that each packet will start as close to the frame boundary as
4245 possible. Using this option has precedence over nb_out_samples.
4246
4247 You can generate the well known 1602-1601-1602-1601-1602 pattern of
4248 48kHz audio for NTSC frame rate using the frame_rate option.
4249
4250 ffmpeg -f lavfi -i sine=r=48000:d=1 -c pcm_s16le -bsf pcm_rechunk=r=30000/1001 -f framecrc -
4251
4252 pgs_frame_merge
4253 Merge a sequence of PGS Subtitle segments ending with an "end of
4254 display set" segment into a single packet.
4255
4256 This is required by some containers that support PGS subtitles (muxer
4257 "matroska").
4258
4259 prores_metadata
4260 Modify color property metadata embedded in prores stream.
4261
4262 color_primaries
4263 Set the color primaries. Available values are:
4264
4265 auto
4266 Keep the same color primaries property (default).
4267
4268 unknown
4269 bt709
4270 bt470bg
4271 BT601 625
4272
4273 smpte170m
4274 BT601 525
4275
4276 bt2020
4277 smpte431
4278 DCI P3
4279
4280 smpte432
4281 P3 D65
4282
4283 transfer_characteristics
4284 Set the color transfer. Available values are:
4285
4286 auto
4287 Keep the same transfer characteristics property (default).
4288
4289 unknown
4290 bt709
4291 BT 601, BT 709, BT 2020
4292
4293 smpte2084
4294 SMPTE ST 2084
4295
4296 arib-std-b67
4297 ARIB STD-B67
4298
4299 matrix_coefficients
4300 Set the matrix coefficient. Available values are:
4301
4302 auto
4303 Keep the same colorspace property (default).
4304
4305 unknown
4306 bt709
4307 smpte170m
4308 BT 601
4309
4310 bt2020nc
4311
4312 Set Rec709 colorspace for each frame of the file
4313
4314 ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt709:color_trc=bt709:colorspace=bt709 output.mov
4315
4316 Set Hybrid Log-Gamma parameters for each frame of the file
4317
4318 ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt2020:color_trc=arib-std-b67:colorspace=bt2020nc output.mov
4319
4320 remove_extra
4321 Remove extradata from packets.
4322
4323 It accepts the following parameter:
4324
4325 freq
4326 Set which frame types to remove extradata from.
4327
4328 k Remove extradata from non-keyframes only.
4329
4330 keyframe
4331 Remove extradata from keyframes only.
4332
4333 e, all
4334 Remove extradata from all frames.
4335
4336 setts
4337 Set PTS and DTS in packets.
4338
4339 It accepts the following parameters:
4340
4341 ts
4342 pts
4343 dts Set expressions for PTS, DTS or both.
4344
4345 duration
4346 Set expression for duration.
4347
4348 time_base
4349 Set output time base.
4350
4351 The expressions are evaluated through the eval API and can contain the
4352 following constants:
4353
4354 N The count of the input packet. Starting from 0.
4355
4356 TS The demux timestamp in input in case of "ts" or "dts" option or
4357 presentation timestamp in case of "pts" option.
4358
4359 POS The original position in the file of the packet, or undefined if
4360 undefined for the current packet
4361
4362 DTS The demux timestamp in input.
4363
4364 PTS The presentation timestamp in input.
4365
4366 DURATION
4367 The duration in input.
4368
4369 STARTDTS
4370 The DTS of the first packet.
4371
4372 STARTPTS
4373 The PTS of the first packet.
4374
4375 PREV_INDTS
4376 The previous input DTS.
4377
4378 PREV_INPTS
4379 The previous input PTS.
4380
4381 PREV_INDURATION
4382 The previous input duration.
4383
4384 PREV_OUTDTS
4385 The previous output DTS.
4386
4387 PREV_OUTPTS
4388 The previous output PTS.
4389
4390 PREV_OUTDURATION
4391 The previous output duration.
4392
4393 NEXT_DTS
4394 The next input DTS.
4395
4396 NEXT_PTS
4397 The next input PTS.
4398
4399 NEXT_DURATION
4400 The next input duration.
4401
4402 TB The timebase of stream packet belongs.
4403
4404 TB_OUT
4405 The output timebase.
4406
4407 SR The sample rate of stream packet belongs.
4408
4409 NOPTS
4410 The AV_NOPTS_VALUE constant.
4411
4412 text2movsub
4413 Convert text subtitles to MOV subtitles (as used by the "mov_text"
4414 codec) with metadata headers.
4415
4416 See also the mov2textsub filter.
4417
4418 trace_headers
4419 Log trace output containing all syntax elements in the coded stream
4420 headers (everything above the level of individual coded blocks). This
4421 can be useful for debugging low-level stream issues.
4422
4423 Supports AV1, H.264, H.265, (M)JPEG, MPEG-2 and VP9, but depending on
4424 the build only a subset of these may be available.
4425
4426 truehd_core
4427 Extract the core from a TrueHD stream, dropping ATMOS data.
4428
4429 vp9_metadata
4430 Modify metadata embedded in a VP9 stream.
4431
4432 color_space
4433 Set the color space value in the frame header. Note that any frame
4434 set to RGB will be implicitly set to PC range and that RGB is
4435 incompatible with profiles 0 and 2.
4436
4437 unknown
4438 bt601
4439 bt709
4440 smpte170
4441 smpte240
4442 bt2020
4443 rgb
4444 color_range
4445 Set the color range value in the frame header. Note that any value
4446 imposed by the color space will take precedence over this value.
4447
4448 tv
4449 pc
4450
4451 vp9_superframe
4452 Merge VP9 invisible (alt-ref) frames back into VP9 superframes. This
4453 fixes merging of split/segmented VP9 streams where the alt-ref frame
4454 was split from its visible counterpart.
4455
4456 vp9_superframe_split
4457 Split VP9 superframes into single frames.
4458
4459 vp9_raw_reorder
4460 Given a VP9 stream with correct timestamps but possibly out of order,
4461 insert additional show-existing-frame packets to correct the ordering.
4462
4464 The libavformat library provides some generic global options, which can
4465 be set on all the muxers and demuxers. In addition each muxer or
4466 demuxer may support so-called private options, which are specific for
4467 that component.
4468
4469 Options may be set by specifying -option value in the FFmpeg tools, or
4470 by setting the value explicitly in the "AVFormatContext" options or
4471 using the libavutil/opt.h API for programmatic use.
4472
4473 The list of supported options follows:
4474
4475 avioflags flags (input/output)
4476 Possible values:
4477
4478 direct
4479 Reduce buffering.
4480
4481 probesize integer (input)
4482 Set probing size in bytes, i.e. the size of the data to analyze to
4483 get stream information. A higher value will enable detecting more
4484 information in case it is dispersed into the stream, but will
4485 increase latency. Must be an integer not lesser than 32. It is
4486 5000000 by default.
4487
4488 max_probe_packets integer (input)
4489 Set the maximum number of buffered packets when probing a codec.
4490 Default is 2500 packets.
4491
4492 packetsize integer (output)
4493 Set packet size.
4494
4495 fflags flags
4496 Set format flags. Some are implemented for a limited number of
4497 formats.
4498
4499 Possible values for input files:
4500
4501 discardcorrupt
4502 Discard corrupted packets.
4503
4504 fastseek
4505 Enable fast, but inaccurate seeks for some formats.
4506
4507 genpts
4508 Generate missing PTS if DTS is present.
4509
4510 igndts
4511 Ignore DTS if PTS is set. Inert when nofillin is set.
4512
4513 ignidx
4514 Ignore index.
4515
4516 nobuffer
4517 Reduce the latency introduced by buffering during initial input
4518 streams analysis.
4519
4520 nofillin
4521 Do not fill in missing values in packet fields that can be
4522 exactly calculated.
4523
4524 noparse
4525 Disable AVParsers, this needs "+nofillin" too.
4526
4527 sortdts
4528 Try to interleave output packets by DTS. At present, available
4529 only for AVIs with an index.
4530
4531 Possible values for output files:
4532
4533 autobsf
4534 Automatically apply bitstream filters as required by the output
4535 format. Enabled by default.
4536
4537 bitexact
4538 Only write platform-, build- and time-independent data. This
4539 ensures that file and data checksums are reproducible and match
4540 between platforms. Its primary use is for regression testing.
4541
4542 flush_packets
4543 Write out packets immediately.
4544
4545 shortest
4546 Stop muxing at the end of the shortest stream. It may be
4547 needed to increase max_interleave_delta to avoid flushing the
4548 longer streams before EOF.
4549
4550 seek2any integer (input)
4551 Allow seeking to non-keyframes on demuxer level when supported if
4552 set to 1. Default is 0.
4553
4554 analyzeduration integer (input)
4555 Specify how many microseconds are analyzed to probe the input. A
4556 higher value will enable detecting more accurate information, but
4557 will increase latency. It defaults to 5,000,000 microseconds = 5
4558 seconds.
4559
4560 cryptokey hexadecimal string (input)
4561 Set decryption key.
4562
4563 indexmem integer (input)
4564 Set max memory used for timestamp index (per stream).
4565
4566 rtbufsize integer (input)
4567 Set max memory used for buffering real-time frames.
4568
4569 fdebug flags (input/output)
4570 Print specific debug info.
4571
4572 Possible values:
4573
4574 ts
4575 max_delay integer (input/output)
4576 Set maximum muxing or demuxing delay in microseconds.
4577
4578 fpsprobesize integer (input)
4579 Set number of frames used to probe fps.
4580
4581 audio_preload integer (output)
4582 Set microseconds by which audio packets should be interleaved
4583 earlier.
4584
4585 chunk_duration integer (output)
4586 Set microseconds for each chunk.
4587
4588 chunk_size integer (output)
4589 Set size in bytes for each chunk.
4590
4591 err_detect, f_err_detect flags (input)
4592 Set error detection flags. "f_err_detect" is deprecated and should
4593 be used only via the ffmpeg tool.
4594
4595 Possible values:
4596
4597 crccheck
4598 Verify embedded CRCs.
4599
4600 bitstream
4601 Detect bitstream specification deviations.
4602
4603 buffer
4604 Detect improper bitstream length.
4605
4606 explode
4607 Abort decoding on minor error detection.
4608
4609 careful
4610 Consider things that violate the spec and have not been seen in
4611 the wild as errors.
4612
4613 compliant
4614 Consider all spec non compliancies as errors.
4615
4616 aggressive
4617 Consider things that a sane encoder should not do as an error.
4618
4619 max_interleave_delta integer (output)
4620 Set maximum buffering duration for interleaving. The duration is
4621 expressed in microseconds, and defaults to 10000000 (10 seconds).
4622
4623 To ensure all the streams are interleaved correctly, libavformat
4624 will wait until it has at least one packet for each stream before
4625 actually writing any packets to the output file. When some streams
4626 are "sparse" (i.e. there are large gaps between successive
4627 packets), this can result in excessive buffering.
4628
4629 This field specifies the maximum difference between the timestamps
4630 of the first and the last packet in the muxing queue, above which
4631 libavformat will output a packet regardless of whether it has
4632 queued a packet for all the streams.
4633
4634 If set to 0, libavformat will continue buffering packets until it
4635 has a packet for each stream, regardless of the maximum timestamp
4636 difference between the buffered packets.
4637
4638 use_wallclock_as_timestamps integer (input)
4639 Use wallclock as timestamps if set to 1. Default is 0.
4640
4641 avoid_negative_ts integer (output)
4642 Possible values:
4643
4644 make_non_negative
4645 Shift timestamps to make them non-negative. Also note that
4646 this affects only leading negative timestamps, and not non-
4647 monotonic negative timestamps.
4648
4649 make_zero
4650 Shift timestamps so that the first timestamp is 0.
4651
4652 auto (default)
4653 Enables shifting when required by the target format.
4654
4655 disabled
4656 Disables shifting of timestamp.
4657
4658 When shifting is enabled, all output timestamps are shifted by the
4659 same amount. Audio, video, and subtitles desynching and relative
4660 timestamp differences are preserved compared to how they would have
4661 been without shifting.
4662
4663 skip_initial_bytes integer (input)
4664 Set number of bytes to skip before reading header and frames if set
4665 to 1. Default is 0.
4666
4667 correct_ts_overflow integer (input)
4668 Correct single timestamp overflows if set to 1. Default is 1.
4669
4670 flush_packets integer (output)
4671 Flush the underlying I/O stream after each packet. Default is -1
4672 (auto), which means that the underlying protocol will decide, 1
4673 enables it, and has the effect of reducing the latency, 0 disables
4674 it and may increase IO throughput in some cases.
4675
4676 output_ts_offset offset (output)
4677 Set the output time offset.
4678
4679 offset must be a time duration specification, see the Time duration
4680 section in the ffmpeg-utils(1) manual.
4681
4682 The offset is added by the muxer to the output timestamps.
4683
4684 Specifying a positive offset means that the corresponding streams
4685 are delayed bt the time duration specified in offset. Default value
4686 is 0 (meaning that no offset is applied).
4687
4688 format_whitelist list (input)
4689 "," separated list of allowed demuxers. By default all are allowed.
4690
4691 dump_separator string (input)
4692 Separator used to separate the fields printed on the command line
4693 about the Stream parameters. For example, to separate the fields
4694 with newlines and indentation:
4695
4696 ffprobe -dump_separator "
4697 " -i ~/videos/matrixbench_mpeg2.mpg
4698
4699 max_streams integer (input)
4700 Specifies the maximum number of streams. This can be used to reject
4701 files that would require too many resources due to a large number
4702 of streams.
4703
4704 skip_estimate_duration_from_pts bool (input)
4705 Skip estimation of input duration when calculated using PTS. At
4706 present, applicable for MPEG-PS and MPEG-TS.
4707
4708 strict, f_strict integer (input/output)
4709 Specify how strictly to follow the standards. "f_strict" is
4710 deprecated and should be used only via the ffmpeg tool.
4711
4712 Possible values:
4713
4714 very
4715 strictly conform to an older more strict version of the spec or
4716 reference software
4717
4718 strict
4719 strictly conform to all the things in the spec no matter what
4720 consequences
4721
4722 normal
4723 unofficial
4724 allow unofficial extensions
4725
4726 experimental
4727 allow non standardized experimental things, experimental
4728 (unfinished/work in progress/not well tested) decoders and
4729 encoders. Note: experimental decoders can pose a security
4730 risk, do not use this for decoding untrusted input.
4731
4732 Format stream specifiers
4733 Format stream specifiers allow selection of one or more streams that
4734 match specific properties.
4735
4736 The exact semantics of stream specifiers is defined by the
4737 "avformat_match_stream_specifier()" function declared in the
4738 libavformat/avformat.h header and documented in the Stream specifiers
4739 section in the ffmpeg(1) manual.
4740
4742 Demuxers are configured elements in FFmpeg that can read the multimedia
4743 streams from a particular type of file.
4744
4745 When you configure your FFmpeg build, all the supported demuxers are
4746 enabled by default. You can list all available ones using the configure
4747 option "--list-demuxers".
4748
4749 You can disable all the demuxers using the configure option
4750 "--disable-demuxers", and selectively enable a single demuxer with the
4751 option "--enable-demuxer=DEMUXER", or disable it with the option
4752 "--disable-demuxer=DEMUXER".
4753
4754 The option "-demuxers" of the ff* tools will display the list of
4755 enabled demuxers. Use "-formats" to view a combined list of enabled
4756 demuxers and muxers.
4757
4758 The description of some of the currently available demuxers follows.
4759
4760 aa
4761 Audible Format 2, 3, and 4 demuxer.
4762
4763 This demuxer is used to demux Audible Format 2, 3, and 4 (.aa) files.
4764
4765 aac
4766 Raw Audio Data Transport Stream AAC demuxer.
4767
4768 This demuxer is used to demux an ADTS input containing a single AAC
4769 stream alongwith any ID3v1/2 or APE tags in it.
4770
4771 apng
4772 Animated Portable Network Graphics demuxer.
4773
4774 This demuxer is used to demux APNG files. All headers, but the PNG
4775 signature, up to (but not including) the first fcTL chunk are
4776 transmitted as extradata. Frames are then split as being all the
4777 chunks between two fcTL ones, or between the last fcTL and IEND chunks.
4778
4779 -ignore_loop bool
4780 Ignore the loop variable in the file if set. Default is enabled.
4781
4782 -max_fps int
4783 Maximum framerate in frames per second. Default of 0 imposes no
4784 limit.
4785
4786 -default_fps int
4787 Default framerate in frames per second when none is specified in
4788 the file (0 meaning as fast as possible). Default is 15.
4789
4790 asf
4791 Advanced Systems Format demuxer.
4792
4793 This demuxer is used to demux ASF files and MMS network streams.
4794
4795 -no_resync_search bool
4796 Do not try to resynchronize by looking for a certain optional start
4797 code.
4798
4799 concat
4800 Virtual concatenation script demuxer.
4801
4802 This demuxer reads a list of files and other directives from a text
4803 file and demuxes them one after the other, as if all their packets had
4804 been muxed together.
4805
4806 The timestamps in the files are adjusted so that the first file starts
4807 at 0 and each next file starts where the previous one finishes. Note
4808 that it is done globally and may cause gaps if all streams do not have
4809 exactly the same length.
4810
4811 All files must have the same streams (same codecs, same time base,
4812 etc.).
4813
4814 The duration of each file is used to adjust the timestamps of the next
4815 file: if the duration is incorrect (because it was computed using the
4816 bit-rate or because the file is truncated, for example), it can cause
4817 artifacts. The "duration" directive can be used to override the
4818 duration stored in each file.
4819
4820 Syntax
4821
4822 The script is a text file in extended-ASCII, with one directive per
4823 line. Empty lines, leading spaces and lines starting with '#' are
4824 ignored. The following directive is recognized:
4825
4826 "file path"
4827 Path to a file to read; special characters and spaces must be
4828 escaped with backslash or single quotes.
4829
4830 All subsequent file-related directives apply to that file.
4831
4832 "ffconcat version 1.0"
4833 Identify the script type and version.
4834
4835 To make FFmpeg recognize the format automatically, this directive
4836 must appear exactly as is (no extra space or byte-order-mark) on
4837 the very first line of the script.
4838
4839 "duration dur"
4840 Duration of the file. This information can be specified from the
4841 file; specifying it here may be more efficient or help if the
4842 information from the file is not available or accurate.
4843
4844 If the duration is set for all files, then it is possible to seek
4845 in the whole concatenated video.
4846
4847 "inpoint timestamp"
4848 In point of the file. When the demuxer opens the file it instantly
4849 seeks to the specified timestamp. Seeking is done so that all
4850 streams can be presented successfully at In point.
4851
4852 This directive works best with intra frame codecs, because for non-
4853 intra frame ones you will usually get extra packets before the
4854 actual In point and the decoded content will most likely contain
4855 frames before In point too.
4856
4857 For each file, packets before the file In point will have
4858 timestamps less than the calculated start timestamp of the file
4859 (negative in case of the first file), and the duration of the files
4860 (if not specified by the "duration" directive) will be reduced
4861 based on their specified In point.
4862
4863 Because of potential packets before the specified In point, packet
4864 timestamps may overlap between two concatenated files.
4865
4866 "outpoint timestamp"
4867 Out point of the file. When the demuxer reaches the specified
4868 decoding timestamp in any of the streams, it handles it as an end
4869 of file condition and skips the current and all the remaining
4870 packets from all streams.
4871
4872 Out point is exclusive, which means that the demuxer will not
4873 output packets with a decoding timestamp greater or equal to Out
4874 point.
4875
4876 This directive works best with intra frame codecs and formats where
4877 all streams are tightly interleaved. For non-intra frame codecs you
4878 will usually get additional packets with presentation timestamp
4879 after Out point therefore the decoded content will most likely
4880 contain frames after Out point too. If your streams are not tightly
4881 interleaved you may not get all the packets from all streams before
4882 Out point and you may only will be able to decode the earliest
4883 stream until Out point.
4884
4885 The duration of the files (if not specified by the "duration"
4886 directive) will be reduced based on their specified Out point.
4887
4888 "file_packet_metadata key=value"
4889 Metadata of the packets of the file. The specified metadata will be
4890 set for each file packet. You can specify this directive multiple
4891 times to add multiple metadata entries. This directive is
4892 deprecated, use "file_packet_meta" instead.
4893
4894 "file_packet_meta key value"
4895 Metadata of the packets of the file. The specified metadata will be
4896 set for each file packet. You can specify this directive multiple
4897 times to add multiple metadata entries.
4898
4899 "option key value"
4900 Option to access, open and probe the file. Can be present multiple
4901 times.
4902
4903 "stream"
4904 Introduce a stream in the virtual file. All subsequent stream-
4905 related directives apply to the last introduced stream. Some
4906 streams properties must be set in order to allow identifying the
4907 matching streams in the subfiles. If no streams are defined in the
4908 script, the streams from the first file are copied.
4909
4910 "exact_stream_id id"
4911 Set the id of the stream. If this directive is given, the string
4912 with the corresponding id in the subfiles will be used. This is
4913 especially useful for MPEG-PS (VOB) files, where the order of the
4914 streams is not reliable.
4915
4916 "stream_meta key value"
4917 Metadata for the stream. Can be present multiple times.
4918
4919 "stream_codec value"
4920 Codec for the stream.
4921
4922 "stream_extradata hex_string"
4923 Extradata for the string, encoded in hexadecimal.
4924
4925 "chapter id start end"
4926 Add a chapter. id is an unique identifier, possibly small and
4927 consecutive.
4928
4929 Options
4930
4931 This demuxer accepts the following option:
4932
4933 safe
4934 If set to 1, reject unsafe file paths and directives. A file path
4935 is considered safe if it does not contain a protocol specification
4936 and is relative and all components only contain characters from the
4937 portable character set (letters, digits, period, underscore and
4938 hyphen) and have no period at the beginning of a component.
4939
4940 If set to 0, any file name is accepted.
4941
4942 The default is 1.
4943
4944 auto_convert
4945 If set to 1, try to perform automatic conversions on packet data to
4946 make the streams concatenable. The default is 1.
4947
4948 Currently, the only conversion is adding the h264_mp4toannexb
4949 bitstream filter to H.264 streams in MP4 format. This is necessary
4950 in particular if there are resolution changes.
4951
4952 segment_time_metadata
4953 If set to 1, every packet will contain the lavf.concat.start_time
4954 and the lavf.concat.duration packet metadata values which are the
4955 start_time and the duration of the respective file segments in the
4956 concatenated output expressed in microseconds. The duration
4957 metadata is only set if it is known based on the concat file. The
4958 default is 0.
4959
4960 Examples
4961
4962 • Use absolute filenames and include some comments:
4963
4964 # my first filename
4965 file /mnt/share/file-1.wav
4966 # my second filename including whitespace
4967 file '/mnt/share/file 2.wav'
4968 # my third filename including whitespace plus single quote
4969 file '/mnt/share/file 3'\''.wav'
4970
4971 • Allow for input format auto-probing, use safe filenames and set the
4972 duration of the first file:
4973
4974 ffconcat version 1.0
4975
4976 file file-1.wav
4977 duration 20.0
4978
4979 file subdir/file-2.wav
4980
4981 dash
4982 Dynamic Adaptive Streaming over HTTP demuxer.
4983
4984 This demuxer presents all AVStreams found in the manifest. By setting
4985 the discard flags on AVStreams the caller can decide which streams to
4986 actually receive. Each stream mirrors the "id" and "bandwidth"
4987 properties from the "<Representation>" as metadata keys named "id" and
4988 "variant_bitrate" respectively.
4989
4990 Options
4991
4992 This demuxer accepts the following option:
4993
4994 cenc_decryption_key
4995 16-byte key, in hex, to decrypt files encrypted using ISO Common
4996 Encryption (CENC/AES-128 CTR; ISO/IEC 23001-7).
4997
4998 imf
4999 Interoperable Master Format demuxer.
5000
5001 This demuxer presents audio and video streams found in an IMF
5002 Composition.
5003
5004 flv, live_flv, kux
5005 Adobe Flash Video Format demuxer.
5006
5007 This demuxer is used to demux FLV files and RTMP network streams. In
5008 case of live network streams, if you force format, you may use live_flv
5009 option instead of flv to survive timestamp discontinuities. KUX is a
5010 flv variant used on the Youku platform.
5011
5012 ffmpeg -f flv -i myfile.flv ...
5013 ffmpeg -f live_flv -i rtmp://<any.server>/anything/key ....
5014
5015 -flv_metadata bool
5016 Allocate the streams according to the onMetaData array content.
5017
5018 -flv_ignore_prevtag bool
5019 Ignore the size of previous tag value.
5020
5021 -flv_full_metadata bool
5022 Output all context of the onMetadata.
5023
5024 gif
5025 Animated GIF demuxer.
5026
5027 It accepts the following options:
5028
5029 min_delay
5030 Set the minimum valid delay between frames in hundredths of
5031 seconds. Range is 0 to 6000. Default value is 2.
5032
5033 max_gif_delay
5034 Set the maximum valid delay between frames in hundredth of seconds.
5035 Range is 0 to 65535. Default value is 65535 (nearly eleven
5036 minutes), the maximum value allowed by the specification.
5037
5038 default_delay
5039 Set the default delay between frames in hundredths of seconds.
5040 Range is 0 to 6000. Default value is 10.
5041
5042 ignore_loop
5043 GIF files can contain information to loop a certain number of times
5044 (or infinitely). If ignore_loop is set to 1, then the loop setting
5045 from the input will be ignored and looping will not occur. If set
5046 to 0, then looping will occur and will cycle the number of times
5047 according to the GIF. Default value is 1.
5048
5049 For example, with the overlay filter, place an infinitely looping GIF
5050 over another video:
5051
5052 ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex overlay=shortest=1 out.mkv
5053
5054 Note that in the above example the shortest option for overlay filter
5055 is used to end the output video at the length of the shortest input
5056 file, which in this case is input.mp4 as the GIF in this example loops
5057 infinitely.
5058
5059 hls
5060 HLS demuxer
5061
5062 Apple HTTP Live Streaming demuxer.
5063
5064 This demuxer presents all AVStreams from all variant streams. The id
5065 field is set to the bitrate variant index number. By setting the
5066 discard flags on AVStreams (by pressing 'a' or 'v' in ffplay), the
5067 caller can decide which variant streams to actually receive. The total
5068 bitrate of the variant that the stream belongs to is available in a
5069 metadata key named "variant_bitrate".
5070
5071 It accepts the following options:
5072
5073 live_start_index
5074 segment index to start live streams at (negative values are from
5075 the end).
5076
5077 prefer_x_start
5078 prefer to use #EXT-X-START if it's in playlist instead of
5079 live_start_index.
5080
5081 allowed_extensions
5082 ',' separated list of file extensions that hls is allowed to
5083 access.
5084
5085 max_reload
5086 Maximum number of times a insufficient list is attempted to be
5087 reloaded. Default value is 1000.
5088
5089 m3u8_hold_counters
5090 The maximum number of times to load m3u8 when it refreshes without
5091 new segments. Default value is 1000.
5092
5093 http_persistent
5094 Use persistent HTTP connections. Applicable only for HTTP streams.
5095 Enabled by default.
5096
5097 http_multiple
5098 Use multiple HTTP connections for downloading HTTP segments.
5099 Enabled by default for HTTP/1.1 servers.
5100
5101 http_seekable
5102 Use HTTP partial requests for downloading HTTP segments. 0 =
5103 disable, 1 = enable, -1 = auto, Default is auto.
5104
5105 seg_format_options
5106 Set options for the demuxer of media segments using a list of
5107 key=value pairs separated by ":".
5108
5109 image2
5110 Image file demuxer.
5111
5112 This demuxer reads from a list of image files specified by a pattern.
5113 The syntax and meaning of the pattern is specified by the option
5114 pattern_type.
5115
5116 The pattern may contain a suffix which is used to automatically
5117 determine the format of the images contained in the files.
5118
5119 The size, the pixel format, and the format of each image must be the
5120 same for all the files in the sequence.
5121
5122 This demuxer accepts the following options:
5123
5124 framerate
5125 Set the frame rate for the video stream. It defaults to 25.
5126
5127 loop
5128 If set to 1, loop over the input. Default value is 0.
5129
5130 pattern_type
5131 Select the pattern type used to interpret the provided filename.
5132
5133 pattern_type accepts one of the following values.
5134
5135 none
5136 Disable pattern matching, therefore the video will only contain
5137 the specified image. You should use this option if you do not
5138 want to create sequences from multiple images and your
5139 filenames may contain special pattern characters.
5140
5141 sequence
5142 Select a sequence pattern type, used to specify a sequence of
5143 files indexed by sequential numbers.
5144
5145 A sequence pattern may contain the string "%d" or "%0Nd", which
5146 specifies the position of the characters representing a
5147 sequential number in each filename matched by the pattern. If
5148 the form "%d0Nd" is used, the string representing the number in
5149 each filename is 0-padded and N is the total number of 0-padded
5150 digits representing the number. The literal character '%' can
5151 be specified in the pattern with the string "%%".
5152
5153 If the sequence pattern contains "%d" or "%0Nd", the first
5154 filename of the file list specified by the pattern must contain
5155 a number inclusively contained between start_number and
5156 start_number+start_number_range-1, and all the following
5157 numbers must be sequential.
5158
5159 For example the pattern "img-%03d.bmp" will match a sequence of
5160 filenames of the form img-001.bmp, img-002.bmp, ...,
5161 img-010.bmp, etc.; the pattern "i%%m%%g-%d.jpg" will match a
5162 sequence of filenames of the form i%m%g-1.jpg, i%m%g-2.jpg,
5163 ..., i%m%g-10.jpg, etc.
5164
5165 Note that the pattern must not necessarily contain "%d" or
5166 "%0Nd", for example to convert a single image file img.jpeg you
5167 can employ the command:
5168
5169 ffmpeg -i img.jpeg img.png
5170
5171 glob
5172 Select a glob wildcard pattern type.
5173
5174 The pattern is interpreted like a "glob()" pattern. This is
5175 only selectable if libavformat was compiled with globbing
5176 support.
5177
5178 glob_sequence (deprecated, will be removed)
5179 Select a mixed glob wildcard/sequence pattern.
5180
5181 If your version of libavformat was compiled with globbing
5182 support, and the provided pattern contains at least one glob
5183 meta character among "%*?[]{}" that is preceded by an unescaped
5184 "%", the pattern is interpreted like a "glob()" pattern,
5185 otherwise it is interpreted like a sequence pattern.
5186
5187 All glob special characters "%*?[]{}" must be prefixed with
5188 "%". To escape a literal "%" you shall use "%%".
5189
5190 For example the pattern "foo-%*.jpeg" will match all the
5191 filenames prefixed by "foo-" and terminating with ".jpeg", and
5192 "foo-%?%?%?.jpeg" will match all the filenames prefixed with
5193 "foo-", followed by a sequence of three characters, and
5194 terminating with ".jpeg".
5195
5196 This pattern type is deprecated in favor of glob and sequence.
5197
5198 Default value is glob_sequence.
5199
5200 pixel_format
5201 Set the pixel format of the images to read. If not specified the
5202 pixel format is guessed from the first image file in the sequence.
5203
5204 start_number
5205 Set the index of the file matched by the image file pattern to
5206 start to read from. Default value is 0.
5207
5208 start_number_range
5209 Set the index interval range to check when looking for the first
5210 image file in the sequence, starting from start_number. Default
5211 value is 5.
5212
5213 ts_from_file
5214 If set to 1, will set frame timestamp to modification time of image
5215 file. Note that monotonity of timestamps is not provided: images go
5216 in the same order as without this option. Default value is 0. If
5217 set to 2, will set frame timestamp to the modification time of the
5218 image file in nanosecond precision.
5219
5220 video_size
5221 Set the video size of the images to read. If not specified the
5222 video size is guessed from the first image file in the sequence.
5223
5224 export_path_metadata
5225 If set to 1, will add two extra fields to the metadata found in
5226 input, making them also available for other filters (see drawtext
5227 filter for examples). Default value is 0. The extra fields are
5228 described below:
5229
5230 lavf.image2dec.source_path
5231 Corresponds to the full path to the input file being read.
5232
5233 lavf.image2dec.source_basename
5234 Corresponds to the name of the file being read.
5235
5236 Examples
5237
5238 • Use ffmpeg for creating a video from the images in the file
5239 sequence img-001.jpeg, img-002.jpeg, ..., assuming an input frame
5240 rate of 10 frames per second:
5241
5242 ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
5243
5244 • As above, but start by reading from a file with index 100 in the
5245 sequence:
5246
5247 ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
5248
5249 • Read images matching the "*.png" glob pattern , that is all the
5250 files terminating with the ".png" suffix:
5251
5252 ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
5253
5254 libgme
5255 The Game Music Emu library is a collection of video game music file
5256 emulators.
5257
5258 See <https://bitbucket.org/mpyne/game-music-emu/overview> for more
5259 information.
5260
5261 It accepts the following options:
5262
5263 track_index
5264 Set the index of which track to demux. The demuxer can only export
5265 one track. Track indexes start at 0. Default is to pick the first
5266 track. Number of tracks is exported as tracks metadata entry.
5267
5268 sample_rate
5269 Set the sampling rate of the exported track. Range is 1000 to
5270 999999. Default is 44100.
5271
5272 max_size (bytes)
5273 The demuxer buffers the entire file into memory. Adjust this value
5274 to set the maximum buffer size, which in turn, acts as a ceiling
5275 for the size of files that can be read. Default is 50 MiB.
5276
5277 libmodplug
5278 ModPlug based module demuxer
5279
5280 See <https://github.com/Konstanty/libmodplug>
5281
5282 It will export one 2-channel 16-bit 44.1 kHz audio stream. Optionally,
5283 a "pal8" 16-color video stream can be exported with or without printed
5284 metadata.
5285
5286 It accepts the following options:
5287
5288 noise_reduction
5289 Apply a simple low-pass filter. Can be 1 (on) or 0 (off). Default
5290 is 0.
5291
5292 reverb_depth
5293 Set amount of reverb. Range 0-100. Default is 0.
5294
5295 reverb_delay
5296 Set delay in ms, clamped to 40-250 ms. Default is 0.
5297
5298 bass_amount
5299 Apply bass expansion a.k.a. XBass or megabass. Range is 0 (quiet)
5300 to 100 (loud). Default is 0.
5301
5302 bass_range
5303 Set cutoff i.e. upper-bound for bass frequencies. Range is 10-100
5304 Hz. Default is 0.
5305
5306 surround_depth
5307 Apply a Dolby Pro-Logic surround effect. Range is 0 (quiet) to 100
5308 (heavy). Default is 0.
5309
5310 surround_delay
5311 Set surround delay in ms, clamped to 5-40 ms. Default is 0.
5312
5313 max_size
5314 The demuxer buffers the entire file into memory. Adjust this value
5315 to set the maximum buffer size, which in turn, acts as a ceiling
5316 for the size of files that can be read. Range is 0 to 100 MiB. 0
5317 removes buffer size limit (not recommended). Default is 5 MiB.
5318
5319 video_stream_expr
5320 String which is evaluated using the eval API to assign colors to
5321 the generated video stream. Variables which can be used are "x",
5322 "y", "w", "h", "t", "speed", "tempo", "order", "pattern" and "row".
5323
5324 video_stream
5325 Generate video stream. Can be 1 (on) or 0 (off). Default is 0.
5326
5327 video_stream_w
5328 Set video frame width in 'chars' where one char indicates 8 pixels.
5329 Range is 20-512. Default is 30.
5330
5331 video_stream_h
5332 Set video frame height in 'chars' where one char indicates 8
5333 pixels. Range is 20-512. Default is 30.
5334
5335 video_stream_ptxt
5336 Print metadata on video stream. Includes "speed", "tempo", "order",
5337 "pattern", "row" and "ts" (time in ms). Can be 1 (on) or 0 (off).
5338 Default is 1.
5339
5340 libopenmpt
5341 libopenmpt based module demuxer
5342
5343 See <https://lib.openmpt.org/libopenmpt/> for more information.
5344
5345 Some files have multiple subsongs (tracks) this can be set with the
5346 subsong option.
5347
5348 It accepts the following options:
5349
5350 subsong
5351 Set the subsong index. This can be either 'all', 'auto', or the
5352 index of the subsong. Subsong indexes start at 0. The default is
5353 'auto'.
5354
5355 The default value is to let libopenmpt choose.
5356
5357 layout
5358 Set the channel layout. Valid values are 1, 2, and 4 channel
5359 layouts. The default value is STEREO.
5360
5361 sample_rate
5362 Set the sample rate for libopenmpt to output. Range is from 1000
5363 to INT_MAX. The value default is 48000.
5364
5365 mov/mp4/3gp
5366 Demuxer for Quicktime File Format & ISO/IEC Base Media File Format
5367 (ISO/IEC 14496-12 or MPEG-4 Part 12, ISO/IEC 15444-12 or JPEG 2000 Part
5368 12).
5369
5370 Registered extensions: mov, mp4, m4a, 3gp, 3g2, mj2, psp, m4b, ism,
5371 ismv, isma, f4v
5372
5373 Options
5374
5375 This demuxer accepts the following options:
5376
5377 enable_drefs
5378 Enable loading of external tracks, disabled by default. Enabling
5379 this can theoretically leak information in some use cases.
5380
5381 use_absolute_path
5382 Allows loading of external tracks via absolute paths, disabled by
5383 default. Enabling this poses a security risk. It should only be
5384 enabled if the source is known to be non-malicious.
5385
5386 seek_streams_individually
5387 When seeking, identify the closest point in each stream
5388 individually and demux packets in that stream from identified
5389 point. This can lead to a different sequence of packets compared to
5390 demuxing linearly from the beginning. Default is true.
5391
5392 ignore_editlist
5393 Ignore any edit list atoms. The demuxer, by default, modifies the
5394 stream index to reflect the timeline described by the edit list.
5395 Default is false.
5396
5397 advanced_editlist
5398 Modify the stream index to reflect the timeline described by the
5399 edit list. "ignore_editlist" must be set to false for this option
5400 to be effective. If both "ignore_editlist" and this option are set
5401 to false, then only the start of the stream index is modified to
5402 reflect initial dwell time or starting timestamp described by the
5403 edit list. Default is true.
5404
5405 ignore_chapters
5406 Don't parse chapters. This includes GoPro 'HiLight' tags/moments.
5407 Note that chapters are only parsed when input is seekable. Default
5408 is false.
5409
5410 use_mfra_for
5411 For seekable fragmented input, set fragment's starting timestamp
5412 from media fragment random access box, if present.
5413
5414 Following options are available:
5415
5416 auto
5417 Auto-detect whether to set mfra timestamps as PTS or DTS
5418 (default)
5419
5420 dts Set mfra timestamps as DTS
5421
5422 pts Set mfra timestamps as PTS
5423
5424 0 Don't use mfra box to set timestamps
5425
5426 use_tfdt
5427 For fragmented input, set fragment's starting timestamp to
5428 "baseMediaDecodeTime" from the "tfdt" box. Default is enabled,
5429 which will prefer to use the "tfdt" box to set DTS. Disable to use
5430 the "earliest_presentation_time" from the "sidx" box. In either
5431 case, the timestamp from the "mfra" box will be used if it's
5432 available and "use_mfra_for" is set to pts or dts.
5433
5434 export_all
5435 Export unrecognized boxes within the udta box as metadata entries.
5436 The first four characters of the box type are set as the key.
5437 Default is false.
5438
5439 export_xmp
5440 Export entire contents of XMP_ box and uuid box as a string with
5441 key "xmp". Note that if "export_all" is set and this option isn't,
5442 the contents of XMP_ box are still exported but with key "XMP_".
5443 Default is false.
5444
5445 activation_bytes
5446 4-byte key required to decrypt Audible AAX and AAX+ files. See
5447 Audible AAX subsection below.
5448
5449 audible_fixed_key
5450 Fixed key used for handling Audible AAX/AAX+ files. It has been
5451 pre-set so should not be necessary to specify.
5452
5453 decryption_key
5454 16-byte key, in hex, to decrypt files encrypted using ISO Common
5455 Encryption (CENC/AES-128 CTR; ISO/IEC 23001-7).
5456
5457 max_stts_delta
5458 Very high sample deltas written in a trak's stts box may
5459 occasionally be intended but usually they are written in error or
5460 used to store a negative value for dts correction when treated as
5461 signed 32-bit integers. This option lets the user set an upper
5462 limit, beyond which the delta is clamped to 1. Values greater than
5463 the limit if negative when cast to int32 are used to adjust onward
5464 dts.
5465
5466 Unit is the track time scale. Range is 0 to UINT_MAX. Default is
5467 "UINT_MAX - 48000*10" which allows upto a 10 second dts correction
5468 for 48 kHz audio streams while accommodating 99.9% of "uint32"
5469 range.
5470
5471 Audible AAX
5472
5473 Audible AAX files are encrypted M4B files, and they can be decrypted by
5474 specifying a 4 byte activation secret.
5475
5476 ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:a copy output.mp4
5477
5478 mpegts
5479 MPEG-2 transport stream demuxer.
5480
5481 This demuxer accepts the following options:
5482
5483 resync_size
5484 Set size limit for looking up a new synchronization. Default value
5485 is 65536.
5486
5487 skip_unknown_pmt
5488 Skip PMTs for programs not defined in the PAT. Default value is 0.
5489
5490 fix_teletext_pts
5491 Override teletext packet PTS and DTS values with the timestamps
5492 calculated from the PCR of the first program which the teletext
5493 stream is part of and is not discarded. Default value is 1, set
5494 this option to 0 if you want your teletext packet PTS and DTS
5495 values untouched.
5496
5497 ts_packetsize
5498 Output option carrying the raw packet size in bytes. Show the
5499 detected raw packet size, cannot be set by the user.
5500
5501 scan_all_pmts
5502 Scan and combine all PMTs. The value is an integer with value from
5503 -1 to 1 (-1 means automatic setting, 1 means enabled, 0 means
5504 disabled). Default value is -1.
5505
5506 merge_pmt_versions
5507 Re-use existing streams when a PMT's version is updated and
5508 elementary streams move to different PIDs. Default value is 0.
5509
5510 max_packet_size
5511 Set maximum size, in bytes, of packet emitted by the demuxer.
5512 Payloads above this size are split across multiple packets. Range
5513 is 1 to INT_MAX/2. Default is 204800 bytes.
5514
5515 mpjpeg
5516 MJPEG encapsulated in multi-part MIME demuxer.
5517
5518 This demuxer allows reading of MJPEG, where each frame is represented
5519 as a part of multipart/x-mixed-replace stream.
5520
5521 strict_mime_boundary
5522 Default implementation applies a relaxed standard to multi-part
5523 MIME boundary detection, to prevent regression with numerous
5524 existing endpoints not generating a proper MIME MJPEG stream.
5525 Turning this option on by setting it to 1 will result in a stricter
5526 check of the boundary value.
5527
5528 rawvideo
5529 Raw video demuxer.
5530
5531 This demuxer allows one to read raw video data. Since there is no
5532 header specifying the assumed video parameters, the user must specify
5533 them in order to be able to decode the data correctly.
5534
5535 This demuxer accepts the following options:
5536
5537 framerate
5538 Set input video frame rate. Default value is 25.
5539
5540 pixel_format
5541 Set the input video pixel format. Default value is "yuv420p".
5542
5543 video_size
5544 Set the input video size. This value must be specified explicitly.
5545
5546 For example to read a rawvideo file input.raw with ffplay, assuming a
5547 pixel format of "rgb24", a video size of "320x240", and a frame rate of
5548 10 images per second, use the command:
5549
5550 ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
5551
5552 sbg
5553 SBaGen script demuxer.
5554
5555 This demuxer reads the script language used by SBaGen
5556 <http://uazu.net/sbagen/> to generate binaural beats sessions. A SBG
5557 script looks like that:
5558
5559 -SE
5560 a: 300-2.5/3 440+4.5/0
5561 b: 300-2.5/0 440+4.5/3
5562 off: -
5563 NOW == a
5564 +0:07:00 == b
5565 +0:14:00 == a
5566 +0:21:00 == b
5567 +0:30:00 off
5568
5569 A SBG script can mix absolute and relative timestamps. If the script
5570 uses either only absolute timestamps (including the script start time)
5571 or only relative ones, then its layout is fixed, and the conversion is
5572 straightforward. On the other hand, if the script mixes both kind of
5573 timestamps, then the NOW reference for relative timestamps will be
5574 taken from the current time of day at the time the script is read, and
5575 the script layout will be frozen according to that reference. That
5576 means that if the script is directly played, the actual times will
5577 match the absolute timestamps up to the sound controller's clock
5578 accuracy, but if the user somehow pauses the playback or seeks, all
5579 times will be shifted accordingly.
5580
5581 tedcaptions
5582 JSON captions used for <http://www.ted.com/>.
5583
5584 TED does not provide links to the captions, but they can be guessed
5585 from the page. The file tools/bookmarklets.html from the FFmpeg source
5586 tree contains a bookmarklet to expose them.
5587
5588 This demuxer accepts the following option:
5589
5590 start_time
5591 Set the start time of the TED talk, in milliseconds. The default is
5592 15000 (15s). It is used to sync the captions with the downloadable
5593 videos, because they include a 15s intro.
5594
5595 Example: convert the captions to a format most players understand:
5596
5597 ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
5598
5599 vapoursynth
5600 Vapoursynth wrapper.
5601
5602 Due to security concerns, Vapoursynth scripts will not be autodetected
5603 so the input format has to be forced. For ff* CLI tools, add "-f
5604 vapoursynth" before the input "-i yourscript.vpy".
5605
5606 This demuxer accepts the following option:
5607
5608 max_script_size
5609 The demuxer buffers the entire script into memory. Adjust this
5610 value to set the maximum buffer size, which in turn, acts as a
5611 ceiling for the size of scripts that can be read. Default is 1
5612 MiB.
5613
5615 FFmpeg is able to dump metadata from media files into a simple
5616 UTF-8-encoded INI-like text file and then load it back using the
5617 metadata muxer/demuxer.
5618
5619 The file format is as follows:
5620
5621 1. A file consists of a header and a number of metadata tags divided
5622 into sections, each on its own line.
5623
5624 2. The header is a ;FFMETADATA string, followed by a version number
5625 (now 1).
5626
5627 3. Metadata tags are of the form key=value
5628
5629 4. Immediately after header follows global metadata
5630
5631 5. After global metadata there may be sections with
5632 per-stream/per-chapter metadata.
5633
5634 6. A section starts with the section name in uppercase (i.e. STREAM or
5635 CHAPTER) in brackets ([, ]) and ends with next section or end of
5636 file.
5637
5638 7. At the beginning of a chapter section there may be an optional
5639 timebase to be used for start/end values. It must be in form
5640 TIMEBASE=num/den, where num and den are integers. If the timebase
5641 is missing then start/end times are assumed to be in nanoseconds.
5642
5643 Next a chapter section must contain chapter start and end times in
5644 form START=num, END=num, where num is a positive integer.
5645
5646 8. Empty lines and lines starting with ; or # are ignored.
5647
5648 9. Metadata keys or values containing special characters (=, ;, #, \
5649 and a newline) must be escaped with a backslash \.
5650
5651 10. Note that whitespace in metadata (e.g. foo = bar) is considered to
5652 be a part of the tag (in the example above key is foo , value is
5653 bar).
5654
5655 A ffmetadata file might look like this:
5656
5657 ;FFMETADATA1
5658 title=bike\\shed
5659 ;this is a comment
5660 artist=FFmpeg troll team
5661
5662 [CHAPTER]
5663 TIMEBASE=1/1000
5664 START=0
5665 #chapter ends at 0:01:00
5666 END=60000
5667 title=chapter \#1
5668 [STREAM]
5669 title=multi\
5670 line
5671
5672 By using the ffmetadata muxer and demuxer it is possible to extract
5673 metadata from an input file to an ffmetadata file, and then transcode
5674 the file into an output file with the edited ffmetadata file.
5675
5676 Extracting an ffmetadata file with ffmpeg goes as follows:
5677
5678 ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
5679
5680 Reinserting edited metadata information from the FFMETADATAFILE file
5681 can be done as:
5682
5683 ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
5684
5686 The libavformat library provides some generic global options, which can
5687 be set on all the protocols. In addition each protocol may support so-
5688 called private options, which are specific for that component.
5689
5690 Options may be set by specifying -option value in the FFmpeg tools, or
5691 by setting the value explicitly in the "AVFormatContext" options or
5692 using the libavutil/opt.h API for programmatic use.
5693
5694 The list of supported options follows:
5695
5696 protocol_whitelist list (input)
5697 Set a ","-separated list of allowed protocols. "ALL" matches all
5698 protocols. Protocols prefixed by "-" are disabled. All protocols
5699 are allowed by default but protocols used by an another protocol
5700 (nested protocols) are restricted to a per protocol subset.
5701
5703 Protocols are configured elements in FFmpeg that enable access to
5704 resources that require specific protocols.
5705
5706 When you configure your FFmpeg build, all the supported protocols are
5707 enabled by default. You can list all available ones using the configure
5708 option "--list-protocols".
5709
5710 You can disable all the protocols using the configure option
5711 "--disable-protocols", and selectively enable a protocol using the
5712 option "--enable-protocol=PROTOCOL", or you can disable a particular
5713 protocol using the option "--disable-protocol=PROTOCOL".
5714
5715 The option "-protocols" of the ff* tools will display the list of
5716 supported protocols.
5717
5718 All protocols accept the following options:
5719
5720 rw_timeout
5721 Maximum time to wait for (network) read/write operations to
5722 complete, in microseconds.
5723
5724 A description of the currently available protocols follows.
5725
5726 amqp
5727 Advanced Message Queueing Protocol (AMQP) version 0-9-1 is a broker
5728 based publish-subscribe communication protocol.
5729
5730 FFmpeg must be compiled with --enable-librabbitmq to support AMQP. A
5731 separate AMQP broker must also be run. An example open-source AMQP
5732 broker is RabbitMQ.
5733
5734 After starting the broker, an FFmpeg client may stream data to the
5735 broker using the command:
5736
5737 ffmpeg -re -i input -f mpegts amqp://[[user]:[password]@]hostname[:port][/vhost]
5738
5739 Where hostname and port (default is 5672) is the address of the broker.
5740 The client may also set a user/password for authentication. The default
5741 for both fields is "guest". Name of virtual host on broker can be set
5742 with vhost. The default value is "/".
5743
5744 Muliple subscribers may stream from the broker using the command:
5745
5746 ffplay amqp://[[user]:[password]@]hostname[:port][/vhost]
5747
5748 In RabbitMQ all data published to the broker flows through a specific
5749 exchange, and each subscribing client has an assigned queue/buffer.
5750 When a packet arrives at an exchange, it may be copied to a client's
5751 queue depending on the exchange and routing_key fields.
5752
5753 The following options are supported:
5754
5755 exchange
5756 Sets the exchange to use on the broker. RabbitMQ has several
5757 predefined exchanges: "amq.direct" is the default exchange, where
5758 the publisher and subscriber must have a matching routing_key;
5759 "amq.fanout" is the same as a broadcast operation (i.e. the data is
5760 forwarded to all queues on the fanout exchange independent of the
5761 routing_key); and "amq.topic" is similar to "amq.direct", but
5762 allows for more complex pattern matching (refer to the RabbitMQ
5763 documentation).
5764
5765 routing_key
5766 Sets the routing key. The default value is "amqp". The routing key
5767 is used on the "amq.direct" and "amq.topic" exchanges to decide
5768 whether packets are written to the queue of a subscriber.
5769
5770 pkt_size
5771 Maximum size of each packet sent/received to the broker. Default is
5772 131072. Minimum is 4096 and max is any large value (representable
5773 by an int). When receiving packets, this sets an internal buffer
5774 size in FFmpeg. It should be equal to or greater than the size of
5775 the published packets to the broker. Otherwise the received message
5776 may be truncated causing decoding errors.
5777
5778 connection_timeout
5779 The timeout in seconds during the initial connection to the broker.
5780 The default value is rw_timeout, or 5 seconds if rw_timeout is not
5781 set.
5782
5783 delivery_mode mode
5784 Sets the delivery mode of each message sent to broker. The
5785 following values are accepted:
5786
5787 persistent
5788 Delivery mode set to "persistent" (2). This is the default
5789 value. Messages may be written to the broker's disk depending
5790 on its setup.
5791
5792 non-persistent
5793 Delivery mode set to "non-persistent" (1). Messages will stay
5794 in broker's memory unless the broker is under memory pressure.
5795
5796 async
5797 Asynchronous data filling wrapper for input stream.
5798
5799 Fill data in a background thread, to decouple I/O operation from demux
5800 thread.
5801
5802 async:<URL>
5803 async:http://host/resource
5804 async:cache:http://host/resource
5805
5806 bluray
5807 Read BluRay playlist.
5808
5809 The accepted options are:
5810
5811 angle
5812 BluRay angle
5813
5814 chapter
5815 Start chapter (1...N)
5816
5817 playlist
5818 Playlist to read (BDMV/PLAYLIST/?????.mpls)
5819
5820 Examples:
5821
5822 Read longest playlist from BluRay mounted to /mnt/bluray:
5823
5824 bluray:/mnt/bluray
5825
5826 Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start
5827 from chapter 2:
5828
5829 -playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray
5830
5831 cache
5832 Caching wrapper for input stream.
5833
5834 Cache the input stream to temporary file. It brings seeking capability
5835 to live streams.
5836
5837 The accepted options are:
5838
5839 read_ahead_limit
5840 Amount in bytes that may be read ahead when seeking isn't
5841 supported. Range is -1 to INT_MAX. -1 for unlimited. Default is
5842 65536.
5843
5844 URL Syntax is
5845
5846 cache:<URL>
5847
5848 concat
5849 Physical concatenation protocol.
5850
5851 Read and seek from many resources in sequence as if they were a unique
5852 resource.
5853
5854 A URL accepted by this protocol has the syntax:
5855
5856 concat:<URL1>|<URL2>|...|<URLN>
5857
5858 where URL1, URL2, ..., URLN are the urls of the resource to be
5859 concatenated, each one possibly specifying a distinct protocol.
5860
5861 For example to read a sequence of files split1.mpeg, split2.mpeg,
5862 split3.mpeg with ffplay use the command:
5863
5864 ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
5865
5866 Note that you may need to escape the character "|" which is special for
5867 many shells.
5868
5869 concatf
5870 Physical concatenation protocol using a line break delimited list of
5871 resources.
5872
5873 Read and seek from many resources in sequence as if they were a unique
5874 resource.
5875
5876 A URL accepted by this protocol has the syntax:
5877
5878 concatf:<URL>
5879
5880 where URL is the url containing a line break delimited list of
5881 resources to be concatenated, each one possibly specifying a distinct
5882 protocol. Special characters must be escaped with backslash or single
5883 quotes. See the "Quoting and escaping" section in the ffmpeg-utils(1)
5884 manual.
5885
5886 For example to read a sequence of files split1.mpeg, split2.mpeg,
5887 split3.mpeg listed in separate lines within a file split.txt with
5888 ffplay use the command:
5889
5890 ffplay concatf:split.txt
5891
5892 Where split.txt contains the lines:
5893
5894 split1.mpeg
5895 split2.mpeg
5896 split3.mpeg
5897
5898 crypto
5899 AES-encrypted stream reading protocol.
5900
5901 The accepted options are:
5902
5903 key Set the AES decryption key binary block from given hexadecimal
5904 representation.
5905
5906 iv Set the AES decryption initialization vector binary block from
5907 given hexadecimal representation.
5908
5909 Accepted URL formats:
5910
5911 crypto:<URL>
5912 crypto+<URL>
5913
5914 data
5915 Data in-line in the URI. See
5916 <http://en.wikipedia.org/wiki/Data_URI_scheme>.
5917
5918 For example, to convert a GIF file given inline with ffmpeg:
5919
5920 ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
5921
5922 file
5923 File access protocol.
5924
5925 Read from or write to a file.
5926
5927 A file URL can have the form:
5928
5929 file:<filename>
5930
5931 where filename is the path of the file to read.
5932
5933 An URL that does not have a protocol prefix will be assumed to be a
5934 file URL. Depending on the build, an URL that looks like a Windows path
5935 with the drive letter at the beginning will also be assumed to be a
5936 file URL (usually not the case in builds for unix-like systems).
5937
5938 For example to read from a file input.mpeg with ffmpeg use the command:
5939
5940 ffmpeg -i file:input.mpeg output.mpeg
5941
5942 This protocol accepts the following options:
5943
5944 truncate
5945 Truncate existing files on write, if set to 1. A value of 0
5946 prevents truncating. Default value is 1.
5947
5948 blocksize
5949 Set I/O operation maximum block size, in bytes. Default value is
5950 "INT_MAX", which results in not limiting the requested block size.
5951 Setting this value reasonably low improves user termination request
5952 reaction time, which is valuable for files on slow medium.
5953
5954 follow
5955 If set to 1, the protocol will retry reading at the end of the
5956 file, allowing reading files that still are being written. In order
5957 for this to terminate, you either need to use the rw_timeout
5958 option, or use the interrupt callback (for API users).
5959
5960 seekable
5961 Controls if seekability is advertised on the file. 0 means non-
5962 seekable, -1 means auto (seekable for normal files, non-seekable
5963 for named pipes).
5964
5965 Many demuxers handle seekable and non-seekable resources
5966 differently, overriding this might speed up opening certain files
5967 at the cost of losing some features (e.g. accurate seeking).
5968
5969 ftp
5970 FTP (File Transfer Protocol).
5971
5972 Read from or write to remote resources using FTP protocol.
5973
5974 Following syntax is required.
5975
5976 ftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
5977
5978 This protocol accepts the following options.
5979
5980 timeout
5981 Set timeout in microseconds of socket I/O operations used by the
5982 underlying low level operation. By default it is set to -1, which
5983 means that the timeout is not specified.
5984
5985 ftp-user
5986 Set a user to be used for authenticating to the FTP server. This is
5987 overridden by the user in the FTP URL.
5988
5989 ftp-password
5990 Set a password to be used for authenticating to the FTP server.
5991 This is overridden by the password in the FTP URL, or by ftp-
5992 anonymous-password if no user is set.
5993
5994 ftp-anonymous-password
5995 Password used when login as anonymous user. Typically an e-mail
5996 address should be used.
5997
5998 ftp-write-seekable
5999 Control seekability of connection during encoding. If set to 1 the
6000 resource is supposed to be seekable, if set to 0 it is assumed not
6001 to be seekable. Default value is 0.
6002
6003 NOTE: Protocol can be used as output, but it is recommended to not do
6004 it, unless special care is taken (tests, customized server
6005 configuration etc.). Different FTP servers behave in different way
6006 during seek operation. ff* tools may produce incomplete content due to
6007 server limitations.
6008
6009 gopher
6010 Gopher protocol.
6011
6012 gophers
6013 Gophers protocol.
6014
6015 The Gopher protocol with TLS encapsulation.
6016
6017 hls
6018 Read Apple HTTP Live Streaming compliant segmented stream as a uniform
6019 one. The M3U8 playlists describing the segments can be remote HTTP
6020 resources or local files, accessed using the standard file protocol.
6021 The nested protocol is declared by specifying "+proto" after the hls
6022 URI scheme name, where proto is either "file" or "http".
6023
6024 hls+http://host/path/to/remote/resource.m3u8
6025 hls+file://path/to/local/resource.m3u8
6026
6027 Using this protocol is discouraged - the hls demuxer should work just
6028 as well (if not, please report the issues) and is more complete. To
6029 use the hls demuxer instead, simply use the direct URLs to the m3u8
6030 files.
6031
6032 http
6033 HTTP (Hyper Text Transfer Protocol).
6034
6035 This protocol accepts the following options:
6036
6037 seekable
6038 Control seekability of connection. If set to 1 the resource is
6039 supposed to be seekable, if set to 0 it is assumed not to be
6040 seekable, if set to -1 it will try to autodetect if it is seekable.
6041 Default value is -1.
6042
6043 chunked_post
6044 If set to 1 use chunked Transfer-Encoding for posts, default is 1.
6045
6046 content_type
6047 Set a specific content type for the POST messages or for listen
6048 mode.
6049
6050 http_proxy
6051 set HTTP proxy to tunnel through e.g. http://example.com:1234
6052
6053 headers
6054 Set custom HTTP headers, can override built in default headers. The
6055 value must be a string encoding the headers.
6056
6057 multiple_requests
6058 Use persistent connections if set to 1, default is 0.
6059
6060 post_data
6061 Set custom HTTP post data.
6062
6063 referer
6064 Set the Referer header. Include 'Referer: URL' header in HTTP
6065 request.
6066
6067 user_agent
6068 Override the User-Agent header. If not specified the protocol will
6069 use a string describing the libavformat build. ("Lavf/<version>")
6070
6071 reconnect_at_eof
6072 If set then eof is treated like an error and causes reconnection,
6073 this is useful for live / endless streams.
6074
6075 reconnect_streamed
6076 If set then even streamed/non seekable streams will be reconnected
6077 on errors.
6078
6079 reconnect_on_network_error
6080 Reconnect automatically in case of TCP/TLS errors during connect.
6081
6082 reconnect_on_http_error
6083 A comma separated list of HTTP status codes to reconnect on. The
6084 list can include specific status codes (e.g. '503') or the strings
6085 '4xx' / '5xx'.
6086
6087 reconnect_delay_max
6088 Sets the maximum delay in seconds after which to give up
6089 reconnecting
6090
6091 mime_type
6092 Export the MIME type.
6093
6094 http_version
6095 Exports the HTTP response version number. Usually "1.0" or "1.1".
6096
6097 icy If set to 1 request ICY (SHOUTcast) metadata from the server. If
6098 the server supports this, the metadata has to be retrieved by the
6099 application by reading the icy_metadata_headers and
6100 icy_metadata_packet options. The default is 1.
6101
6102 icy_metadata_headers
6103 If the server supports ICY metadata, this contains the ICY-specific
6104 HTTP reply headers, separated by newline characters.
6105
6106 icy_metadata_packet
6107 If the server supports ICY metadata, and icy was set to 1, this
6108 contains the last non-empty metadata packet sent by the server. It
6109 should be polled in regular intervals by applications interested in
6110 mid-stream metadata updates.
6111
6112 cookies
6113 Set the cookies to be sent in future requests. The format of each
6114 cookie is the same as the value of a Set-Cookie HTTP response
6115 field. Multiple cookies can be delimited by a newline character.
6116
6117 offset
6118 Set initial byte offset.
6119
6120 end_offset
6121 Try to limit the request to bytes preceding this offset.
6122
6123 method
6124 When used as a client option it sets the HTTP method for the
6125 request.
6126
6127 When used as a server option it sets the HTTP method that is going
6128 to be expected from the client(s). If the expected and the
6129 received HTTP method do not match the client will be given a Bad
6130 Request response. When unset the HTTP method is not checked for
6131 now. This will be replaced by autodetection in the future.
6132
6133 listen
6134 If set to 1 enables experimental HTTP server. This can be used to
6135 send data when used as an output option, or read data from a client
6136 with HTTP POST when used as an input option. If set to 2 enables
6137 experimental multi-client HTTP server. This is not yet implemented
6138 in ffmpeg.c and thus must not be used as a command line option.
6139
6140 # Server side (sending):
6141 ffmpeg -i somefile.ogg -c copy -listen 1 -f ogg http://<server>:<port>
6142
6143 # Client side (receiving):
6144 ffmpeg -i http://<server>:<port> -c copy somefile.ogg
6145
6146 # Client can also be done with wget:
6147 wget http://<server>:<port> -O somefile.ogg
6148
6149 # Server side (receiving):
6150 ffmpeg -listen 1 -i http://<server>:<port> -c copy somefile.ogg
6151
6152 # Client side (sending):
6153 ffmpeg -i somefile.ogg -chunked_post 0 -c copy -f ogg http://<server>:<port>
6154
6155 # Client can also be done with wget:
6156 wget --post-file=somefile.ogg http://<server>:<port>
6157
6158 send_expect_100
6159 Send an Expect: 100-continue header for POST. If set to 1 it will
6160 send, if set to 0 it won't, if set to -1 it will try to send if it
6161 is applicable. Default value is -1.
6162
6163 auth_type
6164 Set HTTP authentication type. No option for Digest, since this
6165 method requires getting nonce parameters from the server first and
6166 can't be used straight away like Basic.
6167
6168 none
6169 Choose the HTTP authentication type automatically. This is the
6170 default.
6171
6172 basic
6173 Choose the HTTP basic authentication.
6174
6175 Basic authentication sends a Base64-encoded string that
6176 contains a user name and password for the client. Base64 is not
6177 a form of encryption and should be considered the same as
6178 sending the user name and password in clear text (Base64 is a
6179 reversible encoding). If a resource needs to be protected,
6180 strongly consider using an authentication scheme other than
6181 basic authentication. HTTPS/TLS should be used with basic
6182 authentication. Without these additional security
6183 enhancements, basic authentication should not be used to
6184 protect sensitive or valuable information.
6185
6186 HTTP Cookies
6187
6188 Some HTTP requests will be denied unless cookie values are passed in
6189 with the request. The cookies option allows these cookies to be
6190 specified. At the very least, each cookie must specify a value along
6191 with a path and domain. HTTP requests that match both the domain and
6192 path will automatically include the cookie value in the HTTP Cookie
6193 header field. Multiple cookies can be delimited by a newline.
6194
6195 The required syntax to play a stream specifying a cookie is:
6196
6197 ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
6198
6199 Icecast
6200 Icecast protocol (stream to Icecast servers)
6201
6202 This protocol accepts the following options:
6203
6204 ice_genre
6205 Set the stream genre.
6206
6207 ice_name
6208 Set the stream name.
6209
6210 ice_description
6211 Set the stream description.
6212
6213 ice_url
6214 Set the stream website URL.
6215
6216 ice_public
6217 Set if the stream should be public. The default is 0 (not public).
6218
6219 user_agent
6220 Override the User-Agent header. If not specified a string of the
6221 form "Lavf/<version>" will be used.
6222
6223 password
6224 Set the Icecast mountpoint password.
6225
6226 content_type
6227 Set the stream content type. This must be set if it is different
6228 from audio/mpeg.
6229
6230 legacy_icecast
6231 This enables support for Icecast versions < 2.4.0, that do not
6232 support the HTTP PUT method but the SOURCE method.
6233
6234 tls Establish a TLS (HTTPS) connection to Icecast.
6235
6236 icecast://[<username>[:<password>]@]<server>:<port>/<mountpoint>
6237
6238 ipfs
6239 InterPlanetary File System (IPFS) protocol support. One can access
6240 files stored on the IPFS network through so-called gateways. These are
6241 http(s) endpoints. This protocol wraps the IPFS native protocols
6242 (ipfs:// and ipns://) to be sent to such a gateway. Users can (and
6243 should) host their own node which means this protocol will use one's
6244 local gateway to access files on the IPFS network.
6245
6246 If a user doesn't have a node of their own then the public gateway
6247 "https://dweb.link" is used by default.
6248
6249 This protocol accepts the following options:
6250
6251 gateway
6252 Defines the gateway to use. When not set, the protocol will first
6253 try locating the local gateway by looking at $IPFS_GATEWAY,
6254 $IPFS_PATH and "$HOME/.ipfs/", in that order. If that fails
6255 "https://dweb.link" will be used.
6256
6257 One can use this protocol in 2 ways. Using IPFS:
6258
6259 ffplay ipfs://QmbGtJg23skhvFmu9mJiePVByhfzu5rwo74MEkVDYAmF5T
6260
6261 Or the IPNS protocol (IPNS is mutable IPFS):
6262
6263 ffplay ipns://QmbGtJg23skhvFmu9mJiePVByhfzu5rwo74MEkVDYAmF5T
6264
6265 mmst
6266 MMS (Microsoft Media Server) protocol over TCP.
6267
6268 mmsh
6269 MMS (Microsoft Media Server) protocol over HTTP.
6270
6271 The required syntax is:
6272
6273 mmsh://<server>[:<port>][/<app>][/<playpath>]
6274
6275 md5
6276 MD5 output protocol.
6277
6278 Computes the MD5 hash of the data to be written, and on close writes
6279 this to the designated output or stdout if none is specified. It can be
6280 used to test muxers without writing an actual file.
6281
6282 Some examples follow.
6283
6284 # Write the MD5 hash of the encoded AVI file to the file output.avi.md5.
6285 ffmpeg -i input.flv -f avi -y md5:output.avi.md5
6286
6287 # Write the MD5 hash of the encoded AVI file to stdout.
6288 ffmpeg -i input.flv -f avi -y md5:
6289
6290 Note that some formats (typically MOV) require the output protocol to
6291 be seekable, so they will fail with the MD5 output protocol.
6292
6293 pipe
6294 UNIX pipe access protocol.
6295
6296 Read and write from UNIX pipes.
6297
6298 The accepted syntax is:
6299
6300 pipe:[<number>]
6301
6302 number is the number corresponding to the file descriptor of the pipe
6303 (e.g. 0 for stdin, 1 for stdout, 2 for stderr). If number is not
6304 specified, by default the stdout file descriptor will be used for
6305 writing, stdin for reading.
6306
6307 For example to read from stdin with ffmpeg:
6308
6309 cat test.wav | ffmpeg -i pipe:0
6310 # ...this is the same as...
6311 cat test.wav | ffmpeg -i pipe:
6312
6313 For writing to stdout with ffmpeg:
6314
6315 ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi
6316 # ...this is the same as...
6317 ffmpeg -i test.wav -f avi pipe: | cat > test.avi
6318
6319 This protocol accepts the following options:
6320
6321 blocksize
6322 Set I/O operation maximum block size, in bytes. Default value is
6323 "INT_MAX", which results in not limiting the requested block size.
6324 Setting this value reasonably low improves user termination request
6325 reaction time, which is valuable if data transmission is slow.
6326
6327 Note that some formats (typically MOV), require the output protocol to
6328 be seekable, so they will fail with the pipe output protocol.
6329
6330 prompeg
6331 Pro-MPEG Code of Practice #3 Release 2 FEC protocol.
6332
6333 The Pro-MPEG CoP#3 FEC is a 2D parity-check forward error correction
6334 mechanism for MPEG-2 Transport Streams sent over RTP.
6335
6336 This protocol must be used in conjunction with the "rtp_mpegts" muxer
6337 and the "rtp" protocol.
6338
6339 The required syntax is:
6340
6341 -f rtp_mpegts -fec prompeg=<option>=<val>... rtp://<hostname>:<port>
6342
6343 The destination UDP ports are "port + 2" for the column FEC stream and
6344 "port + 4" for the row FEC stream.
6345
6346 This protocol accepts the following options:
6347
6348 l=n The number of columns (4-20, LxD <= 100)
6349
6350 d=n The number of rows (4-20, LxD <= 100)
6351
6352 Example usage:
6353
6354 -f rtp_mpegts -fec prompeg=l=8:d=4 rtp://<hostname>:<port>
6355
6356 rist
6357 Reliable Internet Streaming Transport protocol
6358
6359 The accepted options are:
6360
6361 rist_profile
6362 Supported values:
6363
6364 simple
6365 main
6366 This one is default.
6367
6368 advanced
6369 buffer_size
6370 Set internal RIST buffer size in milliseconds for retransmission of
6371 data. Default value is 0 which means the librist default (1 sec).
6372 Maximum value is 30 seconds.
6373
6374 fifo_size
6375 Size of the librist receiver output fifo in number of packets. This
6376 must be a power of 2. Defaults to 8192 (vs the librist default of
6377 1024).
6378
6379 overrun_nonfatal=1|0
6380 Survive in case of librist fifo buffer overrun. Default value is 0.
6381
6382 pkt_size
6383 Set maximum packet size for sending data. 1316 by default.
6384
6385 log_level
6386 Set loglevel for RIST logging messages. You only need to set this
6387 if you explicitly want to enable debug level messages or packet
6388 loss simulation, otherwise the regular loglevel is respected.
6389
6390 secret
6391 Set override of encryption secret, by default is unset.
6392
6393 encryption
6394 Set encryption type, by default is disabled. Acceptable values are
6395 128 and 256.
6396
6397 rtmp
6398 Real-Time Messaging Protocol.
6399
6400 The Real-Time Messaging Protocol (RTMP) is used for streaming
6401 multimedia content across a TCP/IP network.
6402
6403 The required syntax is:
6404
6405 rtmp://[<username>:<password>@]<server>[:<port>][/<app>][/<instance>][/<playpath>]
6406
6407 The accepted parameters are:
6408
6409 username
6410 An optional username (mostly for publishing).
6411
6412 password
6413 An optional password (mostly for publishing).
6414
6415 server
6416 The address of the RTMP server.
6417
6418 port
6419 The number of the TCP port to use (by default is 1935).
6420
6421 app It is the name of the application to access. It usually corresponds
6422 to the path where the application is installed on the RTMP server
6423 (e.g. /ondemand/, /flash/live/, etc.). You can override the value
6424 parsed from the URI through the "rtmp_app" option, too.
6425
6426 playpath
6427 It is the path or name of the resource to play with reference to
6428 the application specified in app, may be prefixed by "mp4:". You
6429 can override the value parsed from the URI through the
6430 "rtmp_playpath" option, too.
6431
6432 listen
6433 Act as a server, listening for an incoming connection.
6434
6435 timeout
6436 Maximum time to wait for the incoming connection. Implies listen.
6437
6438 Additionally, the following parameters can be set via command line
6439 options (or in code via "AVOption"s):
6440
6441 rtmp_app
6442 Name of application to connect on the RTMP server. This option
6443 overrides the parameter specified in the URI.
6444
6445 rtmp_buffer
6446 Set the client buffer time in milliseconds. The default is 3000.
6447
6448 rtmp_conn
6449 Extra arbitrary AMF connection parameters, parsed from a string,
6450 e.g. like "B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0". Each
6451 value is prefixed by a single character denoting the type, B for
6452 Boolean, N for number, S for string, O for object, or Z for null,
6453 followed by a colon. For Booleans the data must be either 0 or 1
6454 for FALSE or TRUE, respectively. Likewise for Objects the data
6455 must be 0 or 1 to end or begin an object, respectively. Data items
6456 in subobjects may be named, by prefixing the type with 'N' and
6457 specifying the name before the value (i.e. "NB:myFlag:1"). This
6458 option may be used multiple times to construct arbitrary AMF
6459 sequences.
6460
6461 rtmp_flashver
6462 Version of the Flash plugin used to run the SWF player. The default
6463 is LNX 9,0,124,2. (When publishing, the default is FMLE/3.0
6464 (compatible; <libavformat version>).)
6465
6466 rtmp_flush_interval
6467 Number of packets flushed in the same request (RTMPT only). The
6468 default is 10.
6469
6470 rtmp_live
6471 Specify that the media is a live stream. No resuming or seeking in
6472 live streams is possible. The default value is "any", which means
6473 the subscriber first tries to play the live stream specified in the
6474 playpath. If a live stream of that name is not found, it plays the
6475 recorded stream. The other possible values are "live" and
6476 "recorded".
6477
6478 rtmp_pageurl
6479 URL of the web page in which the media was embedded. By default no
6480 value will be sent.
6481
6482 rtmp_playpath
6483 Stream identifier to play or to publish. This option overrides the
6484 parameter specified in the URI.
6485
6486 rtmp_subscribe
6487 Name of live stream to subscribe to. By default no value will be
6488 sent. It is only sent if the option is specified or if rtmp_live
6489 is set to live.
6490
6491 rtmp_swfhash
6492 SHA256 hash of the decompressed SWF file (32 bytes).
6493
6494 rtmp_swfsize
6495 Size of the decompressed SWF file, required for SWFVerification.
6496
6497 rtmp_swfurl
6498 URL of the SWF player for the media. By default no value will be
6499 sent.
6500
6501 rtmp_swfverify
6502 URL to player swf file, compute hash/size automatically.
6503
6504 rtmp_tcurl
6505 URL of the target stream. Defaults to proto://host[:port]/app.
6506
6507 tcp_nodelay=1|0
6508 Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
6509
6510 Remark: Writing to the socket is currently not optimized to
6511 minimize system calls and reduces the efficiency / effect of
6512 TCP_NODELAY.
6513
6514 For example to read with ffplay a multimedia resource named "sample"
6515 from the application "vod" from an RTMP server "myserver":
6516
6517 ffplay rtmp://myserver/vod/sample
6518
6519 To publish to a password protected server, passing the playpath and app
6520 names separately:
6521
6522 ffmpeg -re -i <input> -f flv -rtmp_playpath some/long/path -rtmp_app long/app/name rtmp://username:password@myserver/
6523
6524 rtmpe
6525 Encrypted Real-Time Messaging Protocol.
6526
6527 The Encrypted Real-Time Messaging Protocol (RTMPE) is used for
6528 streaming multimedia content within standard cryptographic primitives,
6529 consisting of Diffie-Hellman key exchange and HMACSHA256, generating a
6530 pair of RC4 keys.
6531
6532 rtmps
6533 Real-Time Messaging Protocol over a secure SSL connection.
6534
6535 The Real-Time Messaging Protocol (RTMPS) is used for streaming
6536 multimedia content across an encrypted connection.
6537
6538 rtmpt
6539 Real-Time Messaging Protocol tunneled through HTTP.
6540
6541 The Real-Time Messaging Protocol tunneled through HTTP (RTMPT) is used
6542 for streaming multimedia content within HTTP requests to traverse
6543 firewalls.
6544
6545 rtmpte
6546 Encrypted Real-Time Messaging Protocol tunneled through HTTP.
6547
6548 The Encrypted Real-Time Messaging Protocol tunneled through HTTP
6549 (RTMPTE) is used for streaming multimedia content within HTTP requests
6550 to traverse firewalls.
6551
6552 rtmpts
6553 Real-Time Messaging Protocol tunneled through HTTPS.
6554
6555 The Real-Time Messaging Protocol tunneled through HTTPS (RTMPTS) is
6556 used for streaming multimedia content within HTTPS requests to traverse
6557 firewalls.
6558
6559 libsmbclient
6560 libsmbclient permits one to manipulate CIFS/SMB network resources.
6561
6562 Following syntax is required.
6563
6564 smb://[[domain:]user[:password@]]server[/share[/path[/file]]]
6565
6566 This protocol accepts the following options.
6567
6568 timeout
6569 Set timeout in milliseconds of socket I/O operations used by the
6570 underlying low level operation. By default it is set to -1, which
6571 means that the timeout is not specified.
6572
6573 truncate
6574 Truncate existing files on write, if set to 1. A value of 0
6575 prevents truncating. Default value is 1.
6576
6577 workgroup
6578 Set the workgroup used for making connections. By default workgroup
6579 is not specified.
6580
6581 For more information see: <http://www.samba.org/>.
6582
6583 libssh
6584 Secure File Transfer Protocol via libssh
6585
6586 Read from or write to remote resources using SFTP protocol.
6587
6588 Following syntax is required.
6589
6590 sftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
6591
6592 This protocol accepts the following options.
6593
6594 timeout
6595 Set timeout of socket I/O operations used by the underlying low
6596 level operation. By default it is set to -1, which means that the
6597 timeout is not specified.
6598
6599 truncate
6600 Truncate existing files on write, if set to 1. A value of 0
6601 prevents truncating. Default value is 1.
6602
6603 private_key
6604 Specify the path of the file containing private key to use during
6605 authorization. By default libssh searches for keys in the ~/.ssh/
6606 directory.
6607
6608 Example: Play a file stored on remote server.
6609
6610 ffplay sftp://user:password@server_address:22/home/user/resource.mpeg
6611
6612 librtmp rtmp, rtmpe, rtmps, rtmpt, rtmpte
6613 Real-Time Messaging Protocol and its variants supported through
6614 librtmp.
6615
6616 Requires the presence of the librtmp headers and library during
6617 configuration. You need to explicitly configure the build with
6618 "--enable-librtmp". If enabled this will replace the native RTMP
6619 protocol.
6620
6621 This protocol provides most client functions and a few server functions
6622 needed to support RTMP, RTMP tunneled in HTTP (RTMPT), encrypted RTMP
6623 (RTMPE), RTMP over SSL/TLS (RTMPS) and tunneled variants of these
6624 encrypted types (RTMPTE, RTMPTS).
6625
6626 The required syntax is:
6627
6628 <rtmp_proto>://<server>[:<port>][/<app>][/<playpath>] <options>
6629
6630 where rtmp_proto is one of the strings "rtmp", "rtmpt", "rtmpe",
6631 "rtmps", "rtmpte", "rtmpts" corresponding to each RTMP variant, and
6632 server, port, app and playpath have the same meaning as specified for
6633 the RTMP native protocol. options contains a list of space-separated
6634 options of the form key=val.
6635
6636 See the librtmp manual page (man 3 librtmp) for more information.
6637
6638 For example, to stream a file in real-time to an RTMP server using
6639 ffmpeg:
6640
6641 ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
6642
6643 To play the same stream using ffplay:
6644
6645 ffplay "rtmp://myserver/live/mystream live=1"
6646
6647 rtp
6648 Real-time Transport Protocol.
6649
6650 The required syntax for an RTP URL is:
6651 rtp://hostname[:port][?option=val...]
6652
6653 port specifies the RTP port to use.
6654
6655 The following URL options are supported:
6656
6657 ttl=n
6658 Set the TTL (Time-To-Live) value (for multicast only).
6659
6660 rtcpport=n
6661 Set the remote RTCP port to n.
6662
6663 localrtpport=n
6664 Set the local RTP port to n.
6665
6666 localrtcpport=n'
6667 Set the local RTCP port to n.
6668
6669 pkt_size=n
6670 Set max packet size (in bytes) to n.
6671
6672 buffer_size=size
6673 Set the maximum UDP socket buffer size in bytes.
6674
6675 connect=0|1
6676 Do a "connect()" on the UDP socket (if set to 1) or not (if set to
6677 0).
6678
6679 sources=ip[,ip]
6680 List allowed source IP addresses.
6681
6682 block=ip[,ip]
6683 List disallowed (blocked) source IP addresses.
6684
6685 write_to_source=0|1
6686 Send packets to the source address of the latest received packet
6687 (if set to 1) or to a default remote address (if set to 0).
6688
6689 localport=n
6690 Set the local RTP port to n.
6691
6692 localaddr=addr
6693 Local IP address of a network interface used for sending packets or
6694 joining multicast groups.
6695
6696 timeout=n
6697 Set timeout (in microseconds) of socket I/O operations to n.
6698
6699 This is a deprecated option. Instead, localrtpport should be used.
6700
6701 Important notes:
6702
6703 1. If rtcpport is not set the RTCP port will be set to the RTP port
6704 value plus 1.
6705
6706 2. If localrtpport (the local RTP port) is not set any available port
6707 will be used for the local RTP and RTCP ports.
6708
6709 3. If localrtcpport (the local RTCP port) is not set it will be set to
6710 the local RTP port value plus 1.
6711
6712 rtsp
6713 Real-Time Streaming Protocol.
6714
6715 RTSP is not technically a protocol handler in libavformat, it is a
6716 demuxer and muxer. The demuxer supports both normal RTSP (with data
6717 transferred over RTP; this is used by e.g. Apple and Microsoft) and
6718 Real-RTSP (with data transferred over RDT).
6719
6720 The muxer can be used to send a stream using RTSP ANNOUNCE to a server
6721 supporting it (currently Darwin Streaming Server and Mischa
6722 Spiegelmock's <https://github.com/revmischa/rtsp-server>).
6723
6724 The required syntax for a RTSP url is:
6725
6726 rtsp://<hostname>[:<port>]/<path>
6727
6728 Options can be set on the ffmpeg/ffplay command line, or set in code
6729 via "AVOption"s or in "avformat_open_input".
6730
6731 The following options are supported.
6732
6733 initial_pause
6734 Do not start playing the stream immediately if set to 1. Default
6735 value is 0.
6736
6737 rtsp_transport
6738 Set RTSP transport protocols.
6739
6740 It accepts the following values:
6741
6742 udp Use UDP as lower transport protocol.
6743
6744 tcp Use TCP (interleaving within the RTSP control channel) as lower
6745 transport protocol.
6746
6747 udp_multicast
6748 Use UDP multicast as lower transport protocol.
6749
6750 http
6751 Use HTTP tunneling as lower transport protocol, which is useful
6752 for passing proxies.
6753
6754 Multiple lower transport protocols may be specified, in that case
6755 they are tried one at a time (if the setup of one fails, the next
6756 one is tried). For the muxer, only the tcp and udp options are
6757 supported.
6758
6759 rtsp_flags
6760 Set RTSP flags.
6761
6762 The following values are accepted:
6763
6764 filter_src
6765 Accept packets only from negotiated peer address and port.
6766
6767 listen
6768 Act as a server, listening for an incoming connection.
6769
6770 prefer_tcp
6771 Try TCP for RTP transport first, if TCP is available as RTSP
6772 RTP transport.
6773
6774 Default value is none.
6775
6776 allowed_media_types
6777 Set media types to accept from the server.
6778
6779 The following flags are accepted:
6780
6781 video
6782 audio
6783 data
6784
6785 By default it accepts all media types.
6786
6787 min_port
6788 Set minimum local UDP port. Default value is 5000.
6789
6790 max_port
6791 Set maximum local UDP port. Default value is 65000.
6792
6793 listen_timeout
6794 Set maximum timeout (in seconds) to establish an initial
6795 connection. Setting listen_timeout > 0 sets rtsp_flags to listen.
6796 Default is -1 which means an infinite timeout when listen mode is
6797 set.
6798
6799 reorder_queue_size
6800 Set number of packets to buffer for handling of reordered packets.
6801
6802 timeout
6803 Set socket TCP I/O timeout in microseconds.
6804
6805 user_agent
6806 Override User-Agent header. If not specified, it defaults to the
6807 libavformat identifier string.
6808
6809 When receiving data over UDP, the demuxer tries to reorder received
6810 packets (since they may arrive out of order, or packets may get lost
6811 totally). This can be disabled by setting the maximum demuxing delay to
6812 zero (via the "max_delay" field of AVFormatContext).
6813
6814 When watching multi-bitrate Real-RTSP streams with ffplay, the streams
6815 to display can be chosen with "-vst" n and "-ast" n for video and audio
6816 respectively, and can be switched on the fly by pressing "v" and "a".
6817
6818 Examples
6819
6820 The following examples all make use of the ffplay and ffmpeg tools.
6821
6822 • Watch a stream over UDP, with a max reordering delay of 0.5
6823 seconds:
6824
6825 ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
6826
6827 • Watch a stream tunneled over HTTP:
6828
6829 ffplay -rtsp_transport http rtsp://server/video.mp4
6830
6831 • Send a stream in realtime to a RTSP server, for others to watch:
6832
6833 ffmpeg -re -i <input> -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
6834
6835 • Receive a stream in realtime:
6836
6837 ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp <output>
6838
6839 sap
6840 Session Announcement Protocol (RFC 2974). This is not technically a
6841 protocol handler in libavformat, it is a muxer and demuxer. It is used
6842 for signalling of RTP streams, by announcing the SDP for the streams
6843 regularly on a separate port.
6844
6845 Muxer
6846
6847 The syntax for a SAP url given to the muxer is:
6848
6849 sap://<destination>[:<port>][?<options>]
6850
6851 The RTP packets are sent to destination on port port, or to port 5004
6852 if no port is specified. options is a "&"-separated list. The
6853 following options are supported:
6854
6855 announce_addr=address
6856 Specify the destination IP address for sending the announcements
6857 to. If omitted, the announcements are sent to the commonly used
6858 SAP announcement multicast address 224.2.127.254 (sap.mcast.net),
6859 or ff0e::2:7ffe if destination is an IPv6 address.
6860
6861 announce_port=port
6862 Specify the port to send the announcements on, defaults to 9875 if
6863 not specified.
6864
6865 ttl=ttl
6866 Specify the time to live value for the announcements and RTP
6867 packets, defaults to 255.
6868
6869 same_port=0|1
6870 If set to 1, send all RTP streams on the same port pair. If zero
6871 (the default), all streams are sent on unique ports, with each
6872 stream on a port 2 numbers higher than the previous. VLC/Live555
6873 requires this to be set to 1, to be able to receive the stream.
6874 The RTP stack in libavformat for receiving requires all streams to
6875 be sent on unique ports.
6876
6877 Example command lines follow.
6878
6879 To broadcast a stream on the local subnet, for watching in VLC:
6880
6881 ffmpeg -re -i <input> -f sap sap://224.0.0.255?same_port=1
6882
6883 Similarly, for watching in ffplay:
6884
6885 ffmpeg -re -i <input> -f sap sap://224.0.0.255
6886
6887 And for watching in ffplay, over IPv6:
6888
6889 ffmpeg -re -i <input> -f sap sap://[ff0e::1:2:3:4]
6890
6891 Demuxer
6892
6893 The syntax for a SAP url given to the demuxer is:
6894
6895 sap://[<address>][:<port>]
6896
6897 address is the multicast address to listen for announcements on, if
6898 omitted, the default 224.2.127.254 (sap.mcast.net) is used. port is the
6899 port that is listened on, 9875 if omitted.
6900
6901 The demuxers listens for announcements on the given address and port.
6902 Once an announcement is received, it tries to receive that particular
6903 stream.
6904
6905 Example command lines follow.
6906
6907 To play back the first stream announced on the normal SAP multicast
6908 address:
6909
6910 ffplay sap://
6911
6912 To play back the first stream announced on one the default IPv6 SAP
6913 multicast address:
6914
6915 ffplay sap://[ff0e::2:7ffe]
6916
6917 sctp
6918 Stream Control Transmission Protocol.
6919
6920 The accepted URL syntax is:
6921
6922 sctp://<host>:<port>[?<options>]
6923
6924 The protocol accepts the following options:
6925
6926 listen
6927 If set to any value, listen for an incoming connection. Outgoing
6928 connection is done by default.
6929
6930 max_streams
6931 Set the maximum number of streams. By default no limit is set.
6932
6933 srt
6934 Haivision Secure Reliable Transport Protocol via libsrt.
6935
6936 The supported syntax for a SRT URL is:
6937
6938 srt://<hostname>:<port>[?<options>]
6939
6940 options contains a list of &-separated options of the form key=val.
6941
6942 or
6943
6944 <options> srt://<hostname>:<port>
6945
6946 options contains a list of '-key val' options.
6947
6948 This protocol accepts the following options.
6949
6950 connect_timeout=milliseconds
6951 Connection timeout; SRT cannot connect for RTT > 1500 msec (2
6952 handshake exchanges) with the default connect timeout of 3 seconds.
6953 This option applies to the caller and rendezvous connection modes.
6954 The connect timeout is 10 times the value set for the rendezvous
6955 mode (which can be used as a workaround for this connection problem
6956 with earlier versions).
6957
6958 ffs=bytes
6959 Flight Flag Size (Window Size), in bytes. FFS is actually an
6960 internal parameter and you should set it to not less than
6961 recv_buffer_size and mss. The default value is relatively large,
6962 therefore unless you set a very large receiver buffer, you do not
6963 need to change this option. Default value is 25600.
6964
6965 inputbw=bytes/seconds
6966 Sender nominal input rate, in bytes per seconds. Used along with
6967 oheadbw, when maxbw is set to relative (0), to calculate maximum
6968 sending rate when recovery packets are sent along with the main
6969 media stream: inputbw * (100 + oheadbw) / 100 if inputbw is not set
6970 while maxbw is set to relative (0), the actual input rate is
6971 evaluated inside the library. Default value is 0.
6972
6973 iptos=tos
6974 IP Type of Service. Applies to sender only. Default value is 0xB8.
6975
6976 ipttl=ttl
6977 IP Time To Live. Applies to sender only. Default value is 64.
6978
6979 latency=microseconds
6980 Timestamp-based Packet Delivery Delay. Used to absorb bursts of
6981 missed packet retransmissions. This flag sets both rcvlatency and
6982 peerlatency to the same value. Note that prior to version 1.3.0
6983 this is the only flag to set the latency, however this is
6984 effectively equivalent to setting peerlatency, when side is sender
6985 and rcvlatency when side is receiver, and the bidirectional stream
6986 sending is not supported.
6987
6988 listen_timeout=microseconds
6989 Set socket listen timeout.
6990
6991 maxbw=bytes/seconds
6992 Maximum sending bandwidth, in bytes per seconds. -1 infinite
6993 (CSRTCC limit is 30mbps) 0 relative to input rate (see inputbw) >0
6994 absolute limit value Default value is 0 (relative)
6995
6996 mode=caller|listener|rendezvous
6997 Connection mode. caller opens client connection. listener starts
6998 server to listen for incoming connections. rendezvous use Rendez-
6999 Vous connection mode. Default value is caller.
7000
7001 mss=bytes
7002 Maximum Segment Size, in bytes. Used for buffer allocation and rate
7003 calculation using a packet counter assuming fully filled packets.
7004 The smallest MSS between the peers is used. This is 1500 by default
7005 in the overall internet. This is the maximum size of the UDP
7006 packet and can be only decreased, unless you have some unusual
7007 dedicated network settings. Default value is 1500.
7008
7009 nakreport=1|0
7010 If set to 1, Receiver will send `UMSG_LOSSREPORT` messages
7011 periodically until a lost packet is retransmitted or intentionally
7012 dropped. Default value is 1.
7013
7014 oheadbw=percents
7015 Recovery bandwidth overhead above input rate, in percents. See
7016 inputbw. Default value is 25%.
7017
7018 passphrase=string
7019 HaiCrypt Encryption/Decryption Passphrase string, length from 10 to
7020 79 characters. The passphrase is the shared secret between the
7021 sender and the receiver. It is used to generate the Key Encrypting
7022 Key using PBKDF2 (Password-Based Key Derivation Function). It is
7023 used only if pbkeylen is non-zero. It is used on the receiver only
7024 if the received data is encrypted. The configured passphrase
7025 cannot be recovered (write-only).
7026
7027 enforced_encryption=1|0
7028 If true, both connection parties must have the same password set
7029 (including empty, that is, with no encryption). If the password
7030 doesn't match or only one side is unencrypted, the connection is
7031 rejected. Default is true.
7032
7033 kmrefreshrate=packets
7034 The number of packets to be transmitted after which the encryption
7035 key is switched to a new key. Default is -1. -1 means auto
7036 (0x1000000 in srt library). The range for this option is integers
7037 in the 0 - "INT_MAX".
7038
7039 kmpreannounce=packets
7040 The interval between when a new encryption key is sent and when
7041 switchover occurs. This value also applies to the subsequent
7042 interval between when switchover occurs and when the old encryption
7043 key is decommissioned. Default is -1. -1 means auto (0x1000 in srt
7044 library). The range for this option is integers in the 0 -
7045 "INT_MAX".
7046
7047 snddropdelay=microseconds
7048 The sender's extra delay before dropping packets. This delay is
7049 added to the default drop delay time interval value.
7050
7051 Special value -1: Do not drop packets on the sender at all.
7052
7053 payload_size=bytes
7054 Sets the maximum declared size of a packet transferred during the
7055 single call to the sending function in Live mode. Use 0 if this
7056 value isn't used (which is default in file mode). Default is -1
7057 (automatic), which typically means MPEG-TS; if you are going to use
7058 SRT to send any different kind of payload, such as, for example,
7059 wrapping a live stream in very small frames, then you can use a
7060 bigger maximum frame size, though not greater than 1456 bytes.
7061
7062 pkt_size=bytes
7063 Alias for payload_size.
7064
7065 peerlatency=microseconds
7066 The latency value (as described in rcvlatency) that is set by the
7067 sender side as a minimum value for the receiver.
7068
7069 pbkeylen=bytes
7070 Sender encryption key length, in bytes. Only can be set to 0, 16,
7071 24 and 32. Enable sender encryption if not 0. Not required on
7072 receiver (set to 0), key size obtained from sender in HaiCrypt
7073 handshake. Default value is 0.
7074
7075 rcvlatency=microseconds
7076 The time that should elapse since the moment when the packet was
7077 sent and the moment when it's delivered to the receiver application
7078 in the receiving function. This time should be a buffer time large
7079 enough to cover the time spent for sending, unexpectedly extended
7080 RTT time, and the time needed to retransmit the lost UDP packet.
7081 The effective latency value will be the maximum of this options'
7082 value and the value of peerlatency set by the peer side. Before
7083 version 1.3.0 this option is only available as latency.
7084
7085 recv_buffer_size=bytes
7086 Set UDP receive buffer size, expressed in bytes.
7087
7088 send_buffer_size=bytes
7089 Set UDP send buffer size, expressed in bytes.
7090
7091 timeout=microseconds
7092 Set raise error timeouts for read, write and connect operations.
7093 Note that the SRT library has internal timeouts which can be
7094 controlled separately, the value set here is only a cap on those.
7095
7096 tlpktdrop=1|0
7097 Too-late Packet Drop. When enabled on receiver, it skips missing
7098 packets that have not been delivered in time and delivers the
7099 following packets to the application when their time-to-play has
7100 come. It also sends a fake ACK to the sender. When enabled on
7101 sender and enabled on the receiving peer, the sender drops the
7102 older packets that have no chance of being delivered in time. It
7103 was automatically enabled in the sender if the receiver supports
7104 it.
7105
7106 sndbuf=bytes
7107 Set send buffer size, expressed in bytes.
7108
7109 rcvbuf=bytes
7110 Set receive buffer size, expressed in bytes.
7111
7112 Receive buffer must not be greater than ffs.
7113
7114 lossmaxttl=packets
7115 The value up to which the Reorder Tolerance may grow. When Reorder
7116 Tolerance is > 0, then packet loss report is delayed until that
7117 number of packets come in. Reorder Tolerance increases every time a
7118 "belated" packet has come, but it wasn't due to retransmission
7119 (that is, when UDP packets tend to come out of order), with the
7120 difference between the latest sequence and this packet's sequence,
7121 and not more than the value of this option. By default it's 0,
7122 which means that this mechanism is turned off, and the loss report
7123 is always sent immediately upon experiencing a "gap" in sequences.
7124
7125 minversion
7126 The minimum SRT version that is required from the peer. A
7127 connection to a peer that does not satisfy the minimum version
7128 requirement will be rejected.
7129
7130 The version format in hex is 0xXXYYZZ for x.y.z in human readable
7131 form.
7132
7133 streamid=string
7134 A string limited to 512 characters that can be set on the socket
7135 prior to connecting. This stream ID will be able to be retrieved by
7136 the listener side from the socket that is returned from srt_accept
7137 and was connected by a socket with that set stream ID. SRT does not
7138 enforce any special interpretation of the contents of this string.
7139 This option doesnXt make sense in Rendezvous connection; the result
7140 might be that simply one side will override the value from the
7141 other side and itXs the matter of luck which one would win
7142
7143 srt_streamid=string
7144 Alias for streamid to avoid conflict with ffmpeg command line
7145 option.
7146
7147 smoother=live|file
7148 The type of Smoother used for the transmission for that socket,
7149 which is responsible for the transmission and congestion control.
7150 The Smoother type must be exactly the same on both connecting
7151 parties, otherwise the connection is rejected.
7152
7153 messageapi=1|0
7154 When set, this socket uses the Message API, otherwise it uses
7155 Buffer API. Note that in live mode (see transtype) thereXs only
7156 message API available. In File mode you can chose to use one of two
7157 modes:
7158
7159 Stream API (default, when this option is false). In this mode you
7160 may send as many data as you wish with one sending instruction, or
7161 even use dedicated functions that read directly from a file. The
7162 internal facility will take care of any speed and congestion
7163 control. When receiving, you can also receive as many data as
7164 desired, the data not extracted will be waiting for the next call.
7165 There is no boundary between data portions in the Stream mode.
7166
7167 Message API. In this mode your single sending instruction passes
7168 exactly one piece of data that has boundaries (a message). Contrary
7169 to Live mode, this message may span across multiple UDP packets and
7170 the only size limitation is that it shall fit as a whole in the
7171 sending buffer. The receiver shall use as large buffer as necessary
7172 to receive the message, otherwise the message will not be given up.
7173 When the message is not complete (not all packets received or there
7174 was a packet loss) it will not be given up.
7175
7176 transtype=live|file
7177 Sets the transmission type for the socket, in particular, setting
7178 this option sets multiple other parameters to their default values
7179 as required for a particular transmission type.
7180
7181 live: Set options as for live transmission. In this mode, you
7182 should send by one sending instruction only so many data that fit
7183 in one UDP packet, and limited to the value defined first in
7184 payload_size (1316 is default in this mode). There is no speed
7185 control in this mode, only the bandwidth control, if configured, in
7186 order to not exceed the bandwidth with the overhead transmission
7187 (retransmitted and control packets).
7188
7189 file: Set options as for non-live transmission. See messageapi for
7190 further explanations
7191
7192 linger=seconds
7193 The number of seconds that the socket waits for unsent data when
7194 closing. Default is -1. -1 means auto (off with 0 seconds in live
7195 mode, on with 180 seconds in file mode). The range for this option
7196 is integers in the 0 - "INT_MAX".
7197
7198 tsbpd=1|0
7199 When true, use Timestamp-based Packet Delivery mode. The default
7200 behavior depends on the transmission type: enabled in live mode,
7201 disabled in file mode.
7202
7203 For more information see: <https://github.com/Haivision/srt>.
7204
7205 srtp
7206 Secure Real-time Transport Protocol.
7207
7208 The accepted options are:
7209
7210 srtp_in_suite
7211 srtp_out_suite
7212 Select input and output encoding suites.
7213
7214 Supported values:
7215
7216 AES_CM_128_HMAC_SHA1_80
7217 SRTP_AES128_CM_HMAC_SHA1_80
7218 AES_CM_128_HMAC_SHA1_32
7219 SRTP_AES128_CM_HMAC_SHA1_32
7220 srtp_in_params
7221 srtp_out_params
7222 Set input and output encoding parameters, which are expressed by a
7223 base64-encoded representation of a binary block. The first 16 bytes
7224 of this binary block are used as master key, the following 14 bytes
7225 are used as master salt.
7226
7227 subfile
7228 Virtually extract a segment of a file or another stream. The
7229 underlying stream must be seekable.
7230
7231 Accepted options:
7232
7233 start
7234 Start offset of the extracted segment, in bytes.
7235
7236 end End offset of the extracted segment, in bytes. If set to 0,
7237 extract till end of file.
7238
7239 Examples:
7240
7241 Extract a chapter from a DVD VOB file (start and end sectors obtained
7242 externally and multiplied by 2048):
7243
7244 subfile,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
7245
7246 Play an AVI file directly from a TAR archive:
7247
7248 subfile,,start,183241728,end,366490624,,:archive.tar
7249
7250 Play a MPEG-TS file from start offset till end:
7251
7252 subfile,,start,32815239,end,0,,:video.ts
7253
7254 tee
7255 Writes the output to multiple protocols. The individual outputs are
7256 separated by |
7257
7258 tee:file://path/to/local/this.avi|file://path/to/local/that.avi
7259
7260 tcp
7261 Transmission Control Protocol.
7262
7263 The required syntax for a TCP url is:
7264
7265 tcp://<hostname>:<port>[?<options>]
7266
7267 options contains a list of &-separated options of the form key=val.
7268
7269 The list of supported options follows.
7270
7271 listen=2|1|0
7272 Listen for an incoming connection. 0 disables listen, 1 enables
7273 listen in single client mode, 2 enables listen in multi-client
7274 mode. Default value is 0.
7275
7276 timeout=microseconds
7277 Set raise error timeout, expressed in microseconds.
7278
7279 This option is only relevant in read mode: if no data arrived in
7280 more than this time interval, raise error.
7281
7282 listen_timeout=milliseconds
7283 Set listen timeout, expressed in milliseconds.
7284
7285 recv_buffer_size=bytes
7286 Set receive buffer size, expressed bytes.
7287
7288 send_buffer_size=bytes
7289 Set send buffer size, expressed bytes.
7290
7291 tcp_nodelay=1|0
7292 Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
7293
7294 Remark: Writing to the socket is currently not optimized to
7295 minimize system calls and reduces the efficiency / effect of
7296 TCP_NODELAY.
7297
7298 tcp_mss=bytes
7299 Set maximum segment size for outgoing TCP packets, expressed in
7300 bytes.
7301
7302 The following example shows how to setup a listening TCP connection
7303 with ffmpeg, which is then accessed with ffplay:
7304
7305 ffmpeg -i <input> -f <format> tcp://<hostname>:<port>?listen
7306 ffplay tcp://<hostname>:<port>
7307
7308 tls
7309 Transport Layer Security (TLS) / Secure Sockets Layer (SSL)
7310
7311 The required syntax for a TLS/SSL url is:
7312
7313 tls://<hostname>:<port>[?<options>]
7314
7315 The following parameters can be set via command line options (or in
7316 code via "AVOption"s):
7317
7318 ca_file, cafile=filename
7319 A file containing certificate authority (CA) root certificates to
7320 treat as trusted. If the linked TLS library contains a default this
7321 might not need to be specified for verification to work, but not
7322 all libraries and setups have defaults built in. The file must be
7323 in OpenSSL PEM format.
7324
7325 tls_verify=1|0
7326 If enabled, try to verify the peer that we are communicating with.
7327 Note, if using OpenSSL, this currently only makes sure that the
7328 peer certificate is signed by one of the root certificates in the
7329 CA database, but it does not validate that the certificate actually
7330 matches the host name we are trying to connect to. (With other
7331 backends, the host name is validated as well.)
7332
7333 This is disabled by default since it requires a CA database to be
7334 provided by the caller in many cases.
7335
7336 cert_file, cert=filename
7337 A file containing a certificate to use in the handshake with the
7338 peer. (When operating as server, in listen mode, this is more
7339 often required by the peer, while client certificates only are
7340 mandated in certain setups.)
7341
7342 key_file, key=filename
7343 A file containing the private key for the certificate.
7344
7345 listen=1|0
7346 If enabled, listen for connections on the provided port, and assume
7347 the server role in the handshake instead of the client role.
7348
7349 http_proxy
7350 The HTTP proxy to tunnel through, e.g. "http://example.com:1234".
7351 The proxy must support the CONNECT method.
7352
7353 Example command lines:
7354
7355 To create a TLS/SSL server that serves an input stream.
7356
7357 ffmpeg -i <input> -f <format> tls://<hostname>:<port>?listen&cert=<server.crt>&key=<server.key>
7358
7359 To play back a stream from the TLS/SSL server using ffplay:
7360
7361 ffplay tls://<hostname>:<port>
7362
7363 udp
7364 User Datagram Protocol.
7365
7366 The required syntax for an UDP URL is:
7367
7368 udp://<hostname>:<port>[?<options>]
7369
7370 options contains a list of &-separated options of the form key=val.
7371
7372 In case threading is enabled on the system, a circular buffer is used
7373 to store the incoming data, which allows one to reduce loss of data due
7374 to UDP socket buffer overruns. The fifo_size and overrun_nonfatal
7375 options are related to this buffer.
7376
7377 The list of supported options follows.
7378
7379 buffer_size=size
7380 Set the UDP maximum socket buffer size in bytes. This is used to
7381 set either the receive or send buffer size, depending on what the
7382 socket is used for. Default is 32 KB for output, 384 KB for input.
7383 See also fifo_size.
7384
7385 bitrate=bitrate
7386 If set to nonzero, the output will have the specified constant
7387 bitrate if the input has enough packets to sustain it.
7388
7389 burst_bits=bits
7390 When using bitrate this specifies the maximum number of bits in
7391 packet bursts.
7392
7393 localport=port
7394 Override the local UDP port to bind with.
7395
7396 localaddr=addr
7397 Local IP address of a network interface used for sending packets or
7398 joining multicast groups.
7399
7400 pkt_size=size
7401 Set the size in bytes of UDP packets.
7402
7403 reuse=1|0
7404 Explicitly allow or disallow reusing UDP sockets.
7405
7406 ttl=ttl
7407 Set the time to live value (for multicast only).
7408
7409 connect=1|0
7410 Initialize the UDP socket with "connect()". In this case, the
7411 destination address can't be changed with ff_udp_set_remote_url
7412 later. If the destination address isn't known at the start, this
7413 option can be specified in ff_udp_set_remote_url, too. This allows
7414 finding out the source address for the packets with getsockname,
7415 and makes writes return with AVERROR(ECONNREFUSED) if "destination
7416 unreachable" is received. For receiving, this gives the benefit of
7417 only receiving packets from the specified peer address/port.
7418
7419 sources=address[,address]
7420 Only receive packets sent from the specified addresses. In case of
7421 multicast, also subscribe to multicast traffic coming from these
7422 addresses only.
7423
7424 block=address[,address]
7425 Ignore packets sent from the specified addresses. In case of
7426 multicast, also exclude the source addresses in the multicast
7427 subscription.
7428
7429 fifo_size=units
7430 Set the UDP receiving circular buffer size, expressed as a number
7431 of packets with size of 188 bytes. If not specified defaults to
7432 7*4096.
7433
7434 overrun_nonfatal=1|0
7435 Survive in case of UDP receiving circular buffer overrun. Default
7436 value is 0.
7437
7438 timeout=microseconds
7439 Set raise error timeout, expressed in microseconds.
7440
7441 This option is only relevant in read mode: if no data arrived in
7442 more than this time interval, raise error.
7443
7444 broadcast=1|0
7445 Explicitly allow or disallow UDP broadcasting.
7446
7447 Note that broadcasting may not work properly on networks having a
7448 broadcast storm protection.
7449
7450 Examples
7451
7452 • Use ffmpeg to stream over UDP to a remote endpoint:
7453
7454 ffmpeg -i <input> -f <format> udp://<hostname>:<port>
7455
7456 • Use ffmpeg to stream in mpegts format over UDP using 188 sized UDP
7457 packets, using a large input buffer:
7458
7459 ffmpeg -i <input> -f mpegts udp://<hostname>:<port>?pkt_size=188&buffer_size=65535
7460
7461 • Use ffmpeg to receive over UDP from a remote endpoint:
7462
7463 ffmpeg -i udp://[<multicast-address>]:<port> ...
7464
7465 unix
7466 Unix local socket
7467
7468 The required syntax for a Unix socket URL is:
7469
7470 unix://<filepath>
7471
7472 The following parameters can be set via command line options (or in
7473 code via "AVOption"s):
7474
7475 timeout
7476 Timeout in ms.
7477
7478 listen
7479 Create the Unix socket in listening mode.
7480
7481 zmq
7482 ZeroMQ asynchronous messaging using the libzmq library.
7483
7484 This library supports unicast streaming to multiple clients without
7485 relying on an external server.
7486
7487 The required syntax for streaming or connecting to a stream is:
7488
7489 zmq:tcp://ip-address:port
7490
7491 Example: Create a localhost stream on port 5555:
7492
7493 ffmpeg -re -i input -f mpegts zmq:tcp://127.0.0.1:5555
7494
7495 Multiple clients may connect to the stream using:
7496
7497 ffplay zmq:tcp://127.0.0.1:5555
7498
7499 Streaming to multiple clients is implemented using a ZeroMQ Pub-Sub
7500 pattern. The server side binds to a port and publishes data. Clients
7501 connect to the server (via IP address/port) and subscribe to the
7502 stream. The order in which the server and client start generally does
7503 not matter.
7504
7505 ffmpeg must be compiled with the --enable-libzmq option to support this
7506 protocol.
7507
7508 Options can be set on the ffmpeg/ffplay command line. The following
7509 options are supported:
7510
7511 pkt_size
7512 Forces the maximum packet size for sending/receiving data. The
7513 default value is 131,072 bytes. On the server side, this sets the
7514 maximum size of sent packets via ZeroMQ. On the clients, it sets an
7515 internal buffer size for receiving packets. Note that pkt_size on
7516 the clients should be equal to or greater than pkt_size on the
7517 server. Otherwise the received message may be truncated causing
7518 decoding errors.
7519
7521 The libavdevice library provides the same interface as libavformat.
7522 Namely, an input device is considered like a demuxer, and an output
7523 device like a muxer, and the interface and generic device options are
7524 the same provided by libavformat (see the ffmpeg-formats manual).
7525
7526 In addition each input or output device may support so-called private
7527 options, which are specific for that component.
7528
7529 Options may be set by specifying -option value in the FFmpeg tools, or
7530 by setting the value explicitly in the device "AVFormatContext" options
7531 or using the libavutil/opt.h API for programmatic use.
7532
7534 Input devices are configured elements in FFmpeg which enable accessing
7535 the data coming from a multimedia device attached to your system.
7536
7537 When you configure your FFmpeg build, all the supported input devices
7538 are enabled by default. You can list all available ones using the
7539 configure option "--list-indevs".
7540
7541 You can disable all the input devices using the configure option
7542 "--disable-indevs", and selectively enable an input device using the
7543 option "--enable-indev=INDEV", or you can disable a particular input
7544 device using the option "--disable-indev=INDEV".
7545
7546 The option "-devices" of the ff* tools will display the list of
7547 supported input devices.
7548
7549 A description of the currently available input devices follows.
7550
7551 alsa
7552 ALSA (Advanced Linux Sound Architecture) input device.
7553
7554 To enable this input device during configuration you need libasound
7555 installed on your system.
7556
7557 This device allows capturing from an ALSA device. The name of the
7558 device to capture has to be an ALSA card identifier.
7559
7560 An ALSA identifier has the syntax:
7561
7562 hw:<CARD>[,<DEV>[,<SUBDEV>]]
7563
7564 where the DEV and SUBDEV components are optional.
7565
7566 The three arguments (in order: CARD,DEV,SUBDEV) specify card number or
7567 identifier, device number and subdevice number (-1 means any).
7568
7569 To see the list of cards currently recognized by your system check the
7570 files /proc/asound/cards and /proc/asound/devices.
7571
7572 For example to capture with ffmpeg from an ALSA device with card id 0,
7573 you may run the command:
7574
7575 ffmpeg -f alsa -i hw:0 alsaout.wav
7576
7577 For more information see:
7578 <http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html>
7579
7580 Options
7581
7582 sample_rate
7583 Set the sample rate in Hz. Default is 48000.
7584
7585 channels
7586 Set the number of channels. Default is 2.
7587
7588 android_camera
7589 Android camera input device.
7590
7591 This input devices uses the Android Camera2 NDK API which is available
7592 on devices with API level 24+. The availability of android_camera is
7593 autodetected during configuration.
7594
7595 This device allows capturing from all cameras on an Android device,
7596 which are integrated into the Camera2 NDK API.
7597
7598 The available cameras are enumerated internally and can be selected
7599 with the camera_index parameter. The input file string is discarded.
7600
7601 Generally the back facing camera has index 0 while the front facing
7602 camera has index 1.
7603
7604 Options
7605
7606 video_size
7607 Set the video size given as a string such as 640x480 or hd720.
7608 Falls back to the first available configuration reported by Android
7609 if requested video size is not available or by default.
7610
7611 framerate
7612 Set the video framerate. Falls back to the first available
7613 configuration reported by Android if requested framerate is not
7614 available or by default (-1).
7615
7616 camera_index
7617 Set the index of the camera to use. Default is 0.
7618
7619 input_queue_size
7620 Set the maximum number of frames to buffer. Default is 5.
7621
7622 avfoundation
7623 AVFoundation input device.
7624
7625 AVFoundation is the currently recommended framework by Apple for
7626 streamgrabbing on OSX >= 10.7 as well as on iOS.
7627
7628 The input filename has to be given in the following syntax:
7629
7630 -i "[[VIDEO]:[AUDIO]]"
7631
7632 The first entry selects the video input while the latter selects the
7633 audio input. The stream has to be specified by the device name or the
7634 device index as shown by the device list. Alternatively, the video
7635 and/or audio input device can be chosen by index using the
7636
7637 B<-video_device_index E<lt>INDEXE<gt>>
7638
7639 and/or
7640
7641 B<-audio_device_index E<lt>INDEXE<gt>>
7642
7643 , overriding any device name or index given in the input filename.
7644
7645 All available devices can be enumerated by using -list_devices true,
7646 listing all device names and corresponding indices.
7647
7648 There are two device name aliases:
7649
7650 "default"
7651 Select the AVFoundation default device of the corresponding type.
7652
7653 "none"
7654 Do not record the corresponding media type. This is equivalent to
7655 specifying an empty device name or index.
7656
7657 Options
7658
7659 AVFoundation supports the following options:
7660
7661 -list_devices <TRUE|FALSE>
7662 If set to true, a list of all available input devices is given
7663 showing all device names and indices.
7664
7665 -video_device_index <INDEX>
7666 Specify the video device by its index. Overrides anything given in
7667 the input filename.
7668
7669 -audio_device_index <INDEX>
7670 Specify the audio device by its index. Overrides anything given in
7671 the input filename.
7672
7673 -pixel_format <FORMAT>
7674 Request the video device to use a specific pixel format. If the
7675 specified format is not supported, a list of available formats is
7676 given and the first one in this list is used instead. Available
7677 pixel formats are: "monob, rgb555be, rgb555le, rgb565be, rgb565le,
7678 rgb24, bgr24, 0rgb, bgr0, 0bgr, rgb0,
7679 bgr48be, uyvy422, yuva444p, yuva444p16le, yuv444p, yuv422p16,
7680 yuv422p10, yuv444p10,
7681 yuv420p, nv12, yuyv422, gray"
7682
7683 -framerate
7684 Set the grabbing frame rate. Default is "ntsc", corresponding to a
7685 frame rate of "30000/1001".
7686
7687 -video_size
7688 Set the video frame size.
7689
7690 -capture_cursor
7691 Capture the mouse pointer. Default is 0.
7692
7693 -capture_mouse_clicks
7694 Capture the screen mouse clicks. Default is 0.
7695
7696 -capture_raw_data
7697 Capture the raw device data. Default is 0. Using this option may
7698 result in receiving the underlying data delivered to the
7699 AVFoundation framework. E.g. for muxed devices that sends raw DV
7700 data to the framework (like tape-based camcorders), setting this
7701 option to false results in extracted video frames captured in the
7702 designated pixel format only. Setting this option to true results
7703 in receiving the raw DV stream untouched.
7704
7705 Examples
7706
7707 • Print the list of AVFoundation supported devices and exit:
7708
7709 $ ffmpeg -f avfoundation -list_devices true -i ""
7710
7711 • Record video from video device 0 and audio from audio device 0 into
7712 out.avi:
7713
7714 $ ffmpeg -f avfoundation -i "0:0" out.avi
7715
7716 • Record video from video device 2 and audio from audio device 1 into
7717 out.avi:
7718
7719 $ ffmpeg -f avfoundation -video_device_index 2 -i ":1" out.avi
7720
7721 • Record video from the system default video device using the pixel
7722 format bgr0 and do not record any audio into out.avi:
7723
7724 $ ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi
7725
7726 • Record raw DV data from a suitable input device and write the
7727 output into out.dv:
7728
7729 $ ffmpeg -f avfoundation -capture_raw_data true -i "zr100:none" out.dv
7730
7731 bktr
7732 BSD video input device.
7733
7734 Options
7735
7736 framerate
7737 Set the frame rate.
7738
7739 video_size
7740 Set the video frame size. Default is "vga".
7741
7742 standard
7743 Available values are:
7744
7745 pal
7746 ntsc
7747 secam
7748 paln
7749 palm
7750 ntscj
7751
7752 decklink
7753 The decklink input device provides capture capabilities for Blackmagic
7754 DeckLink devices.
7755
7756 To enable this input device, you need the Blackmagic DeckLink SDK and
7757 you need to configure with the appropriate "--extra-cflags" and
7758 "--extra-ldflags". On Windows, you need to run the IDL files through
7759 widl.
7760
7761 DeckLink is very picky about the formats it supports. Pixel format of
7762 the input can be set with raw_format. Framerate and video size must be
7763 determined for your device with -list_formats 1. Audio sample rate is
7764 always 48 kHz and the number of channels can be 2, 8 or 16. Note that
7765 all audio channels are bundled in one single audio track.
7766
7767 Options
7768
7769 list_devices
7770 If set to true, print a list of devices and exit. Defaults to
7771 false. This option is deprecated, please use the "-sources" option
7772 of ffmpeg to list the available input devices.
7773
7774 list_formats
7775 If set to true, print a list of supported formats and exit.
7776 Defaults to false.
7777
7778 format_code <FourCC>
7779 This sets the input video format to the format given by the FourCC.
7780 To see the supported values of your device(s) use list_formats.
7781 Note that there is a FourCC 'pal ' that can also be used as pal (3
7782 letters). Default behavior is autodetection of the input video
7783 format, if the hardware supports it.
7784
7785 raw_format
7786 Set the pixel format of the captured video. Available values are:
7787
7788 auto
7789 This is the default which means 8-bit YUV 422 or 8-bit ARGB if
7790 format autodetection is used, 8-bit YUV 422 otherwise.
7791
7792 uyvy422
7793 8-bit YUV 422.
7794
7795 yuv422p10
7796 10-bit YUV 422.
7797
7798 argb
7799 8-bit RGB.
7800
7801 bgra
7802 8-bit RGB.
7803
7804 rgb10
7805 10-bit RGB.
7806
7807 teletext_lines
7808 If set to nonzero, an additional teletext stream will be captured
7809 from the vertical ancillary data. Both SD PAL (576i) and HD (1080i
7810 or 1080p) sources are supported. In case of HD sources, OP47
7811 packets are decoded.
7812
7813 This option is a bitmask of the SD PAL VBI lines captured,
7814 specifically lines 6 to 22, and lines 318 to 335. Line 6 is the LSB
7815 in the mask. Selected lines which do not contain teletext
7816 information will be ignored. You can use the special all constant
7817 to select all possible lines, or standard to skip lines 6, 318 and
7818 319, which are not compatible with all receivers.
7819
7820 For SD sources, ffmpeg needs to be compiled with
7821 "--enable-libzvbi". For HD sources, on older (pre-4K) DeckLink card
7822 models you have to capture in 10 bit mode.
7823
7824 channels
7825 Defines number of audio channels to capture. Must be 2, 8 or 16.
7826 Defaults to 2.
7827
7828 duplex_mode
7829 Sets the decklink device duplex/profile mode. Must be unset, half,
7830 full, one_sub_device_full, one_sub_device_half,
7831 two_sub_device_full, four_sub_device_half Defaults to unset.
7832
7833 Note: DeckLink SDK 11.0 have replaced the duplex property by a
7834 profile property. For the DeckLink Duo 2 and DeckLink Quad 2, a
7835 profile is shared between any 2 sub-devices that utilize the same
7836 connectors. For the DeckLink 8K Pro, a profile is shared between
7837 all 4 sub-devices. So DeckLink 8K Pro support four profiles.
7838
7839 Valid profile modes for DeckLink 8K Pro(with DeckLink SDK >= 11.0):
7840 one_sub_device_full, one_sub_device_half, two_sub_device_full,
7841 four_sub_device_half
7842
7843 Valid profile modes for DeckLink Quad 2 and DeckLink Duo 2: half,
7844 full
7845
7846 timecode_format
7847 Timecode type to include in the frame and video stream metadata.
7848 Must be none, rp188vitc, rp188vitc2, rp188ltc, rp188hfr, rp188any,
7849 vitc, vitc2, or serial. Defaults to none (not included).
7850
7851 In order to properly support 50/60 fps timecodes, the ordering of
7852 the queried timecode types for rp188any is HFR, VITC1, VITC2 and
7853 LTC for >30 fps content. Note that this is slightly different to
7854 the ordering used by the DeckLink API, which is HFR, VITC1, LTC,
7855 VITC2.
7856
7857 video_input
7858 Sets the video input source. Must be unset, sdi, hdmi, optical_sdi,
7859 component, composite or s_video. Defaults to unset.
7860
7861 audio_input
7862 Sets the audio input source. Must be unset, embedded, aes_ebu,
7863 analog, analog_xlr, analog_rca or microphone. Defaults to unset.
7864
7865 video_pts
7866 Sets the video packet timestamp source. Must be video, audio,
7867 reference, wallclock or abs_wallclock. Defaults to video.
7868
7869 audio_pts
7870 Sets the audio packet timestamp source. Must be video, audio,
7871 reference, wallclock or abs_wallclock. Defaults to audio.
7872
7873 draw_bars
7874 If set to true, color bars are drawn in the event of a signal loss.
7875 Defaults to true.
7876
7877 queue_size
7878 Sets maximum input buffer size in bytes. If the buffering reaches
7879 this value, incoming frames will be dropped. Defaults to
7880 1073741824.
7881
7882 audio_depth
7883 Sets the audio sample bit depth. Must be 16 or 32. Defaults to 16.
7884
7885 decklink_copyts
7886 If set to true, timestamps are forwarded as they are without
7887 removing the initial offset. Defaults to false.
7888
7889 timestamp_align
7890 Capture start time alignment in seconds. If set to nonzero, input
7891 frames are dropped till the system timestamp aligns with configured
7892 value. Alignment difference of up to one frame duration is
7893 tolerated. This is useful for maintaining input synchronization
7894 across N different hardware devices deployed for 'N-way'
7895 redundancy. The system time of different hardware devices should be
7896 synchronized with protocols such as NTP or PTP, before using this
7897 option. Note that this method is not foolproof. In some border
7898 cases input synchronization may not happen due to thread scheduling
7899 jitters in the OS. Either sync could go wrong by 1 frame or in a
7900 rarer case timestamp_align seconds. Defaults to 0.
7901
7902 wait_for_tc (bool)
7903 Drop frames till a frame with timecode is received. Sometimes
7904 serial timecode isn't received with the first input frame. If that
7905 happens, the stored stream timecode will be inaccurate. If this
7906 option is set to true, input frames are dropped till a frame with
7907 timecode is received. Option timecode_format must be specified.
7908 Defaults to false.
7909
7910 enable_klv(bool)
7911 If set to true, extracts KLV data from VANC and outputs KLV
7912 packets. KLV VANC packets are joined based on MID and PSC fields
7913 and aggregated into one KLV packet. Defaults to false.
7914
7915 Examples
7916
7917 • List input devices:
7918
7919 ffmpeg -sources decklink
7920
7921 • List supported formats:
7922
7923 ffmpeg -f decklink -list_formats 1 -i 'Intensity Pro'
7924
7925 • Capture video clip at 1080i50:
7926
7927 ffmpeg -format_code Hi50 -f decklink -i 'Intensity Pro' -c:a copy -c:v copy output.avi
7928
7929 • Capture video clip at 1080i50 10 bit:
7930
7931 ffmpeg -raw_format yuv422p10 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
7932
7933 • Capture video clip at 1080i50 with 16 audio channels:
7934
7935 ffmpeg -channels 16 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
7936
7937 dshow
7938 Windows DirectShow input device.
7939
7940 DirectShow support is enabled when FFmpeg is built with the mingw-w64
7941 project. Currently only audio and video devices are supported.
7942
7943 Multiple devices may be opened as separate inputs, but they may also be
7944 opened on the same input, which should improve synchronism between
7945 them.
7946
7947 The input name should be in the format:
7948
7949 <TYPE>=<NAME>[:<TYPE>=<NAME>]
7950
7951 where TYPE can be either audio or video, and NAME is the device's name
7952 or alternative name..
7953
7954 Options
7955
7956 If no options are specified, the device's defaults are used. If the
7957 device does not support the requested options, it will fail to open.
7958
7959 video_size
7960 Set the video size in the captured video.
7961
7962 framerate
7963 Set the frame rate in the captured video.
7964
7965 sample_rate
7966 Set the sample rate (in Hz) of the captured audio.
7967
7968 sample_size
7969 Set the sample size (in bits) of the captured audio.
7970
7971 channels
7972 Set the number of channels in the captured audio.
7973
7974 list_devices
7975 If set to true, print a list of devices and exit.
7976
7977 list_options
7978 If set to true, print a list of selected device's options and exit.
7979
7980 video_device_number
7981 Set video device number for devices with the same name (starts at
7982 0, defaults to 0).
7983
7984 audio_device_number
7985 Set audio device number for devices with the same name (starts at
7986 0, defaults to 0).
7987
7988 pixel_format
7989 Select pixel format to be used by DirectShow. This may only be set
7990 when the video codec is not set or set to rawvideo.
7991
7992 audio_buffer_size
7993 Set audio device buffer size in milliseconds (which can directly
7994 impact latency, depending on the device). Defaults to using the
7995 audio device's default buffer size (typically some multiple of
7996 500ms). Setting this value too low can degrade performance. See
7997 also
7998 <http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx>
7999
8000 video_pin_name
8001 Select video capture pin to use by name or alternative name.
8002
8003 audio_pin_name
8004 Select audio capture pin to use by name or alternative name.
8005
8006 crossbar_video_input_pin_number
8007 Select video input pin number for crossbar device. This will be
8008 routed to the crossbar device's Video Decoder output pin. Note
8009 that changing this value can affect future invocations (sets a new
8010 default) until system reboot occurs.
8011
8012 crossbar_audio_input_pin_number
8013 Select audio input pin number for crossbar device. This will be
8014 routed to the crossbar device's Audio Decoder output pin. Note
8015 that changing this value can affect future invocations (sets a new
8016 default) until system reboot occurs.
8017
8018 show_video_device_dialog
8019 If set to true, before capture starts, popup a display dialog to
8020 the end user, allowing them to change video filter properties and
8021 configurations manually. Note that for crossbar devices, adjusting
8022 values in this dialog may be needed at times to toggle between PAL
8023 (25 fps) and NTSC (29.97) input frame rates, sizes, interlacing,
8024 etc. Changing these values can enable different scan rates/frame
8025 rates and avoiding green bars at the bottom, flickering scan lines,
8026 etc. Note that with some devices, changing these properties can
8027 also affect future invocations (sets new defaults) until system
8028 reboot occurs.
8029
8030 show_audio_device_dialog
8031 If set to true, before capture starts, popup a display dialog to
8032 the end user, allowing them to change audio filter properties and
8033 configurations manually.
8034
8035 show_video_crossbar_connection_dialog
8036 If set to true, before capture starts, popup a display dialog to
8037 the end user, allowing them to manually modify crossbar pin
8038 routings, when it opens a video device.
8039
8040 show_audio_crossbar_connection_dialog
8041 If set to true, before capture starts, popup a display dialog to
8042 the end user, allowing them to manually modify crossbar pin
8043 routings, when it opens an audio device.
8044
8045 show_analog_tv_tuner_dialog
8046 If set to true, before capture starts, popup a display dialog to
8047 the end user, allowing them to manually modify TV channels and
8048 frequencies.
8049
8050 show_analog_tv_tuner_audio_dialog
8051 If set to true, before capture starts, popup a display dialog to
8052 the end user, allowing them to manually modify TV audio (like mono
8053 vs. stereo, Language A,B or C).
8054
8055 audio_device_load
8056 Load an audio capture filter device from file instead of searching
8057 it by name. It may load additional parameters too, if the filter
8058 supports the serialization of its properties to. To use this an
8059 audio capture source has to be specified, but it can be anything
8060 even fake one.
8061
8062 audio_device_save
8063 Save the currently used audio capture filter device and its
8064 parameters (if the filter supports it) to a file. If a file with
8065 the same name exists it will be overwritten.
8066
8067 video_device_load
8068 Load a video capture filter device from file instead of searching
8069 it by name. It may load additional parameters too, if the filter
8070 supports the serialization of its properties to. To use this a
8071 video capture source has to be specified, but it can be anything
8072 even fake one.
8073
8074 video_device_save
8075 Save the currently used video capture filter device and its
8076 parameters (if the filter supports it) to a file. If a file with
8077 the same name exists it will be overwritten.
8078
8079 use_video_device_timestamps
8080 If set to false, the timestamp for video frames will be derived
8081 from the wallclock instead of the timestamp provided by the capture
8082 device. This allows working around devices that provide unreliable
8083 timestamps.
8084
8085 Examples
8086
8087 • Print the list of DirectShow supported devices and exit:
8088
8089 $ ffmpeg -list_devices true -f dshow -i dummy
8090
8091 • Open video device Camera:
8092
8093 $ ffmpeg -f dshow -i video="Camera"
8094
8095 • Open second video device with name Camera:
8096
8097 $ ffmpeg -f dshow -video_device_number 1 -i video="Camera"
8098
8099 • Open video device Camera and audio device Microphone:
8100
8101 $ ffmpeg -f dshow -i video="Camera":audio="Microphone"
8102
8103 • Print the list of supported options in selected device and exit:
8104
8105 $ ffmpeg -list_options true -f dshow -i video="Camera"
8106
8107 • Specify pin names to capture by name or alternative name, specify
8108 alternative device name:
8109
8110 $ ffmpeg -f dshow -audio_pin_name "Audio Out" -video_pin_name 2 -i video=video="@device_pnp_\\?\pci#ven_1a0a&dev_6200&subsys_62021461&rev_01#4&e2c7dd6&0&00e1#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{ca465100-deb0-4d59-818f-8c477184adf6}":audio="Microphone"
8111
8112 • Configure a crossbar device, specifying crossbar pins, allow user
8113 to adjust video capture properties at startup:
8114
8115 $ ffmpeg -f dshow -show_video_device_dialog true -crossbar_video_input_pin_number 0
8116 -crossbar_audio_input_pin_number 3 -i video="AVerMedia BDA Analog Capture":audio="AVerMedia BDA Analog Capture"
8117
8118 fbdev
8119 Linux framebuffer input device.
8120
8121 The Linux framebuffer is a graphic hardware-independent abstraction
8122 layer to show graphics on a computer monitor, typically on the console.
8123 It is accessed through a file device node, usually /dev/fb0.
8124
8125 For more detailed information read the file
8126 Documentation/fb/framebuffer.txt included in the Linux source tree.
8127
8128 See also <http://linux-fbdev.sourceforge.net/>, and fbset(1).
8129
8130 To record from the framebuffer device /dev/fb0 with ffmpeg:
8131
8132 ffmpeg -f fbdev -framerate 10 -i /dev/fb0 out.avi
8133
8134 You can take a single screenshot image with the command:
8135
8136 ffmpeg -f fbdev -framerate 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg
8137
8138 Options
8139
8140 framerate
8141 Set the frame rate. Default is 25.
8142
8143 gdigrab
8144 Win32 GDI-based screen capture device.
8145
8146 This device allows you to capture a region of the display on Windows.
8147
8148 There are two options for the input filename:
8149
8150 desktop
8151
8152 or
8153
8154 title=<window_title>
8155
8156 The first option will capture the entire desktop, or a fixed region of
8157 the desktop. The second option will instead capture the contents of a
8158 single window, regardless of its position on the screen.
8159
8160 For example, to grab the entire desktop using ffmpeg:
8161
8162 ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg
8163
8164 Grab a 640x480 region at position "10,20":
8165
8166 ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg
8167
8168 Grab the contents of the window named "Calculator"
8169
8170 ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg
8171
8172 Options
8173
8174 draw_mouse
8175 Specify whether to draw the mouse pointer. Use the value 0 to not
8176 draw the pointer. Default value is 1.
8177
8178 framerate
8179 Set the grabbing frame rate. Default value is "ntsc", corresponding
8180 to a frame rate of "30000/1001".
8181
8182 show_region
8183 Show grabbed region on screen.
8184
8185 If show_region is specified with 1, then the grabbing region will
8186 be indicated on screen. With this option, it is easy to know what
8187 is being grabbed if only a portion of the screen is grabbed.
8188
8189 Note that show_region is incompatible with grabbing the contents of
8190 a single window.
8191
8192 For example:
8193
8194 ffmpeg -f gdigrab -show_region 1 -framerate 6 -video_size cif -offset_x 10 -offset_y 20 -i desktop out.mpg
8195
8196 video_size
8197 Set the video frame size. The default is to capture the full screen
8198 if desktop is selected, or the full window size if
8199 title=window_title is selected.
8200
8201 offset_x
8202 When capturing a region with video_size, set the distance from the
8203 left edge of the screen or desktop.
8204
8205 Note that the offset calculation is from the top left corner of the
8206 primary monitor on Windows. If you have a monitor positioned to the
8207 left of your primary monitor, you will need to use a negative
8208 offset_x value to move the region to that monitor.
8209
8210 offset_y
8211 When capturing a region with video_size, set the distance from the
8212 top edge of the screen or desktop.
8213
8214 Note that the offset calculation is from the top left corner of the
8215 primary monitor on Windows. If you have a monitor positioned above
8216 your primary monitor, you will need to use a negative offset_y
8217 value to move the region to that monitor.
8218
8219 iec61883
8220 FireWire DV/HDV input device using libiec61883.
8221
8222 To enable this input device, you need libiec61883, libraw1394 and
8223 libavc1394 installed on your system. Use the configure option
8224 "--enable-libiec61883" to compile with the device enabled.
8225
8226 The iec61883 capture device supports capturing from a video device
8227 connected via IEEE1394 (FireWire), using libiec61883 and the new Linux
8228 FireWire stack (juju). This is the default DV/HDV input method in Linux
8229 Kernel 2.6.37 and later, since the old FireWire stack was removed.
8230
8231 Specify the FireWire port to be used as input file, or "auto" to choose
8232 the first port connected.
8233
8234 Options
8235
8236 dvtype
8237 Override autodetection of DV/HDV. This should only be used if auto
8238 detection does not work, or if usage of a different device type
8239 should be prohibited. Treating a DV device as HDV (or vice versa)
8240 will not work and result in undefined behavior. The values auto,
8241 dv and hdv are supported.
8242
8243 dvbuffer
8244 Set maximum size of buffer for incoming data, in frames. For DV,
8245 this is an exact value. For HDV, it is not frame exact, since HDV
8246 does not have a fixed frame size.
8247
8248 dvguid
8249 Select the capture device by specifying its GUID. Capturing will
8250 only be performed from the specified device and fails if no device
8251 with the given GUID is found. This is useful to select the input if
8252 multiple devices are connected at the same time. Look at
8253 /sys/bus/firewire/devices to find out the GUIDs.
8254
8255 Examples
8256
8257 • Grab and show the input of a FireWire DV/HDV device.
8258
8259 ffplay -f iec61883 -i auto
8260
8261 • Grab and record the input of a FireWire DV/HDV device, using a
8262 packet buffer of 100000 packets if the source is HDV.
8263
8264 ffmpeg -f iec61883 -i auto -dvbuffer 100000 out.mpg
8265
8266 jack
8267 JACK input device.
8268
8269 To enable this input device during configuration you need libjack
8270 installed on your system.
8271
8272 A JACK input device creates one or more JACK writable clients, one for
8273 each audio channel, with name client_name:input_N, where client_name is
8274 the name provided by the application, and N is a number which
8275 identifies the channel. Each writable client will send the acquired
8276 data to the FFmpeg input device.
8277
8278 Once you have created one or more JACK readable clients, you need to
8279 connect them to one or more JACK writable clients.
8280
8281 To connect or disconnect JACK clients you can use the jack_connect and
8282 jack_disconnect programs, or do it through a graphical interface, for
8283 example with qjackctl.
8284
8285 To list the JACK clients and their properties you can invoke the
8286 command jack_lsp.
8287
8288 Follows an example which shows how to capture a JACK readable client
8289 with ffmpeg.
8290
8291 # Create a JACK writable client with name "ffmpeg".
8292 $ ffmpeg -f jack -i ffmpeg -y out.wav
8293
8294 # Start the sample jack_metro readable client.
8295 $ jack_metro -b 120 -d 0.2 -f 4000
8296
8297 # List the current JACK clients.
8298 $ jack_lsp -c
8299 system:capture_1
8300 system:capture_2
8301 system:playback_1
8302 system:playback_2
8303 ffmpeg:input_1
8304 metro:120_bpm
8305
8306 # Connect metro to the ffmpeg writable client.
8307 $ jack_connect metro:120_bpm ffmpeg:input_1
8308
8309 For more information read: <http://jackaudio.org/>
8310
8311 Options
8312
8313 channels
8314 Set the number of channels. Default is 2.
8315
8316 kmsgrab
8317 KMS video input device.
8318
8319 Captures the KMS scanout framebuffer associated with a specified CRTC
8320 or plane as a DRM object that can be passed to other hardware
8321 functions.
8322
8323 Requires either DRM master or CAP_SYS_ADMIN to run.
8324
8325 If you don't understand what all of that means, you probably don't want
8326 this. Look at x11grab instead.
8327
8328 Options
8329
8330 device
8331 DRM device to capture on. Defaults to /dev/dri/card0.
8332
8333 format
8334 Pixel format of the framebuffer. This can be autodetected if you
8335 are running Linux 5.7 or later, but needs to be provided for
8336 earlier versions. Defaults to bgr0, which is the most common
8337 format used by the Linux console and Xorg X server.
8338
8339 format_modifier
8340 Format modifier to signal on output frames. This is necessary to
8341 import correctly into some APIs. It can be autodetected if you are
8342 running Linux 5.7 or later, but will need to be provided explicitly
8343 when needed in earlier versions. See the libdrm documentation for
8344 possible values.
8345
8346 crtc_id
8347 KMS CRTC ID to define the capture source. The first active plane
8348 on the given CRTC will be used.
8349
8350 plane_id
8351 KMS plane ID to define the capture source. Defaults to the first
8352 active plane found if neither crtc_id nor plane_id are specified.
8353
8354 framerate
8355 Framerate to capture at. This is not synchronised to any page
8356 flipping or framebuffer changes - it just defines the interval at
8357 which the framebuffer is sampled. Sampling faster than the
8358 framebuffer update rate will generate independent frames with the
8359 same content. Defaults to 30.
8360
8361 Examples
8362
8363 • Capture from the first active plane, download the result to normal
8364 frames and encode. This will only work if the framebuffer is both
8365 linear and mappable - if not, the result may be scrambled or fail
8366 to download.
8367
8368 ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4
8369
8370 • Capture from CRTC ID 42 at 60fps, map the result to VAAPI, convert
8371 to NV12 and encode as H.264.
8372
8373 ffmpeg -crtc_id 42 -framerate 60 -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12' -c:v h264_vaapi output.mp4
8374
8375 • To capture only part of a plane the output can be cropped - this
8376 can be used to capture a single window, as long as it has a known
8377 absolute position and size. For example, to capture and encode the
8378 middle quarter of a 1920x1080 plane:
8379
8380 ffmpeg -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,crop=960:540:480:270,scale_vaapi=960:540:nv12' -c:v h264_vaapi output.mp4
8381
8382 lavfi
8383 Libavfilter input virtual device.
8384
8385 This input device reads data from the open output pads of a libavfilter
8386 filtergraph.
8387
8388 For each filtergraph open output, the input device will create a
8389 corresponding stream which is mapped to the generated output. Currently
8390 only video data is supported. The filtergraph is specified through the
8391 option graph.
8392
8393 Options
8394
8395 graph
8396 Specify the filtergraph to use as input. Each video open output
8397 must be labelled by a unique string of the form "outN", where N is
8398 a number starting from 0 corresponding to the mapped input stream
8399 generated by the device. The first unlabelled output is
8400 automatically assigned to the "out0" label, but all the others need
8401 to be specified explicitly.
8402
8403 The suffix "+subcc" can be appended to the output label to create
8404 an extra stream with the closed captions packets attached to that
8405 output (experimental; only for EIA-608 / CEA-708 for now). The
8406 subcc streams are created after all the normal streams, in the
8407 order of the corresponding stream. For example, if there is
8408 "out19+subcc", "out7+subcc" and up to "out42", the stream #43 is
8409 subcc for stream #7 and stream #44 is subcc for stream #19.
8410
8411 If not specified defaults to the filename specified for the input
8412 device.
8413
8414 graph_file
8415 Set the filename of the filtergraph to be read and sent to the
8416 other filters. Syntax of the filtergraph is the same as the one
8417 specified by the option graph.
8418
8419 dumpgraph
8420 Dump graph to stderr.
8421
8422 Examples
8423
8424 • Create a color video stream and play it back with ffplay:
8425
8426 ffplay -f lavfi -graph "color=c=pink [out0]" dummy
8427
8428 • As the previous example, but use filename for specifying the graph
8429 description, and omit the "out0" label:
8430
8431 ffplay -f lavfi color=c=pink
8432
8433 • Create three different video test filtered sources and play them:
8434
8435 ffplay -f lavfi -graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
8436
8437 • Read an audio stream from a file using the amovie source and play
8438 it back with ffplay:
8439
8440 ffplay -f lavfi "amovie=test.wav"
8441
8442 • Read an audio stream and a video stream and play it back with
8443 ffplay:
8444
8445 ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
8446
8447 • Dump decoded frames to images and closed captions to a file
8448 (experimental):
8449
8450 ffmpeg -f lavfi -i "movie=test.ts[out0+subcc]" -map v frame%08d.png -map s -c copy -f rawvideo subcc.bin
8451
8452 libcdio
8453 Audio-CD input device based on libcdio.
8454
8455 To enable this input device during configuration you need libcdio
8456 installed on your system. It requires the configure option
8457 "--enable-libcdio".
8458
8459 This device allows playing and grabbing from an Audio-CD.
8460
8461 For example to copy with ffmpeg the entire Audio-CD in /dev/sr0, you
8462 may run the command:
8463
8464 ffmpeg -f libcdio -i /dev/sr0 cd.wav
8465
8466 Options
8467
8468 speed
8469 Set drive reading speed. Default value is 0.
8470
8471 The speed is specified CD-ROM speed units. The speed is set through
8472 the libcdio "cdio_cddap_speed_set" function. On many CD-ROM drives,
8473 specifying a value too large will result in using the fastest
8474 speed.
8475
8476 paranoia_mode
8477 Set paranoia recovery mode flags. It accepts one of the following
8478 values:
8479
8480 disable
8481 verify
8482 overlap
8483 neverskip
8484 full
8485
8486 Default value is disable.
8487
8488 For more information about the available recovery modes, consult
8489 the paranoia project documentation.
8490
8491 libdc1394
8492 IIDC1394 input device, based on libdc1394 and libraw1394.
8493
8494 Requires the configure option "--enable-libdc1394".
8495
8496 Options
8497
8498 framerate
8499 Set the frame rate. Default is "ntsc", corresponding to a frame
8500 rate of "30000/1001".
8501
8502 pixel_format
8503 Select the pixel format. Default is "uyvy422".
8504
8505 video_size
8506 Set the video size given as a string such as "640x480" or "hd720".
8507 Default is "qvga".
8508
8509 openal
8510 The OpenAL input device provides audio capture on all systems with a
8511 working OpenAL 1.1 implementation.
8512
8513 To enable this input device during configuration, you need OpenAL
8514 headers and libraries installed on your system, and need to configure
8515 FFmpeg with "--enable-openal".
8516
8517 OpenAL headers and libraries should be provided as part of your OpenAL
8518 implementation, or as an additional download (an SDK). Depending on
8519 your installation you may need to specify additional flags via the
8520 "--extra-cflags" and "--extra-ldflags" for allowing the build system to
8521 locate the OpenAL headers and libraries.
8522
8523 An incomplete list of OpenAL implementations follows:
8524
8525 Creative
8526 The official Windows implementation, providing hardware
8527 acceleration with supported devices and software fallback. See
8528 <http://openal.org/>.
8529
8530 OpenAL Soft
8531 Portable, open source (LGPL) software implementation. Includes
8532 backends for the most common sound APIs on the Windows, Linux,
8533 Solaris, and BSD operating systems. See
8534 <http://kcat.strangesoft.net/openal.html>.
8535
8536 Apple
8537 OpenAL is part of Core Audio, the official Mac OS X Audio
8538 interface. See
8539 <http://developer.apple.com/technologies/mac/audio-and-video.html>
8540
8541 This device allows one to capture from an audio input device handled
8542 through OpenAL.
8543
8544 You need to specify the name of the device to capture in the provided
8545 filename. If the empty string is provided, the device will
8546 automatically select the default device. You can get the list of the
8547 supported devices by using the option list_devices.
8548
8549 Options
8550
8551 channels
8552 Set the number of channels in the captured audio. Only the values 1
8553 (monaural) and 2 (stereo) are currently supported. Defaults to 2.
8554
8555 sample_size
8556 Set the sample size (in bits) of the captured audio. Only the
8557 values 8 and 16 are currently supported. Defaults to 16.
8558
8559 sample_rate
8560 Set the sample rate (in Hz) of the captured audio. Defaults to
8561 44.1k.
8562
8563 list_devices
8564 If set to true, print a list of devices and exit. Defaults to
8565 false.
8566
8567 Examples
8568
8569 Print the list of OpenAL supported devices and exit:
8570
8571 $ ffmpeg -list_devices true -f openal -i dummy out.ogg
8572
8573 Capture from the OpenAL device DR-BT101 via PulseAudio:
8574
8575 $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out.ogg
8576
8577 Capture from the default device (note the empty string '' as filename):
8578
8579 $ ffmpeg -f openal -i '' out.ogg
8580
8581 Capture from two devices simultaneously, writing to two different
8582 files, within the same ffmpeg command:
8583
8584 $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out1.ogg -f openal -i 'ALSA Default' out2.ogg
8585
8586 Note: not all OpenAL implementations support multiple simultaneous
8587 capture - try the latest OpenAL Soft if the above does not work.
8588
8589 oss
8590 Open Sound System input device.
8591
8592 The filename to provide to the input device is the device node
8593 representing the OSS input device, and is usually set to /dev/dsp.
8594
8595 For example to grab from /dev/dsp using ffmpeg use the command:
8596
8597 ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
8598
8599 For more information about OSS see:
8600 <http://manuals.opensound.com/usersguide/dsp.html>
8601
8602 Options
8603
8604 sample_rate
8605 Set the sample rate in Hz. Default is 48000.
8606
8607 channels
8608 Set the number of channels. Default is 2.
8609
8610 pulse
8611 PulseAudio input device.
8612
8613 To enable this output device you need to configure FFmpeg with
8614 "--enable-libpulse".
8615
8616 The filename to provide to the input device is a source device or the
8617 string "default"
8618
8619 To list the PulseAudio source devices and their properties you can
8620 invoke the command pactl list sources.
8621
8622 More information about PulseAudio can be found on
8623 <http://www.pulseaudio.org>.
8624
8625 Options
8626
8627 server
8628 Connect to a specific PulseAudio server, specified by an IP
8629 address. Default server is used when not provided.
8630
8631 name
8632 Specify the application name PulseAudio will use when showing
8633 active clients, by default it is the "LIBAVFORMAT_IDENT" string.
8634
8635 stream_name
8636 Specify the stream name PulseAudio will use when showing active
8637 streams, by default it is "record".
8638
8639 sample_rate
8640 Specify the samplerate in Hz, by default 48kHz is used.
8641
8642 channels
8643 Specify the channels in use, by default 2 (stereo) is set.
8644
8645 frame_size
8646 This option does nothing and is deprecated.
8647
8648 fragment_size
8649 Specify the size in bytes of the minimal buffering fragment in
8650 PulseAudio, it will affect the audio latency. By default it is set
8651 to 50 ms amount of data.
8652
8653 wallclock
8654 Set the initial PTS using the current time. Default is 1.
8655
8656 Examples
8657
8658 Record a stream from default device:
8659
8660 ffmpeg -f pulse -i default /tmp/pulse.wav
8661
8662 sndio
8663 sndio input device.
8664
8665 To enable this input device during configuration you need libsndio
8666 installed on your system.
8667
8668 The filename to provide to the input device is the device node
8669 representing the sndio input device, and is usually set to /dev/audio0.
8670
8671 For example to grab from /dev/audio0 using ffmpeg use the command:
8672
8673 ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
8674
8675 Options
8676
8677 sample_rate
8678 Set the sample rate in Hz. Default is 48000.
8679
8680 channels
8681 Set the number of channels. Default is 2.
8682
8683 video4linux2, v4l2
8684 Video4Linux2 input video device.
8685
8686 "v4l2" can be used as alias for "video4linux2".
8687
8688 If FFmpeg is built with v4l-utils support (by using the
8689 "--enable-libv4l2" configure option), it is possible to use it with the
8690 "-use_libv4l2" input device option.
8691
8692 The name of the device to grab is a file device node, usually Linux
8693 systems tend to automatically create such nodes when the device (e.g.
8694 an USB webcam) is plugged into the system, and has a name of the kind
8695 /dev/videoN, where N is a number associated to the device.
8696
8697 Video4Linux2 devices usually support a limited set of widthxheight
8698 sizes and frame rates. You can check which are supported using
8699 -list_formats all for Video4Linux2 devices. Some devices, like TV
8700 cards, support one or more standards. It is possible to list all the
8701 supported standards using -list_standards all.
8702
8703 The time base for the timestamps is 1 microsecond. Depending on the
8704 kernel version and configuration, the timestamps may be derived from
8705 the real time clock (origin at the Unix Epoch) or the monotonic clock
8706 (origin usually at boot time, unaffected by NTP or manual changes to
8707 the clock). The -timestamps abs or -ts abs option can be used to force
8708 conversion into the real time clock.
8709
8710 Some usage examples of the video4linux2 device with ffmpeg and ffplay:
8711
8712 • List supported formats for a video4linux2 device:
8713
8714 ffplay -f video4linux2 -list_formats all /dev/video0
8715
8716 • Grab and show the input of a video4linux2 device:
8717
8718 ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
8719
8720 • Grab and record the input of a video4linux2 device, leave the frame
8721 rate and size as previously set:
8722
8723 ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
8724
8725 For more information about Video4Linux, check <http://linuxtv.org/>.
8726
8727 Options
8728
8729 standard
8730 Set the standard. Must be the name of a supported standard. To get
8731 a list of the supported standards, use the list_standards option.
8732
8733 channel
8734 Set the input channel number. Default to -1, which means using the
8735 previously selected channel.
8736
8737 video_size
8738 Set the video frame size. The argument must be a string in the form
8739 WIDTHxHEIGHT or a valid size abbreviation.
8740
8741 pixel_format
8742 Select the pixel format (only valid for raw video input).
8743
8744 input_format
8745 Set the preferred pixel format (for raw video) or a codec name.
8746 This option allows one to select the input format, when several are
8747 available.
8748
8749 framerate
8750 Set the preferred video frame rate.
8751
8752 list_formats
8753 List available formats (supported pixel formats, codecs, and frame
8754 sizes) and exit.
8755
8756 Available values are:
8757
8758 all Show all available (compressed and non-compressed) formats.
8759
8760 raw Show only raw video (non-compressed) formats.
8761
8762 compressed
8763 Show only compressed formats.
8764
8765 list_standards
8766 List supported standards and exit.
8767
8768 Available values are:
8769
8770 all Show all supported standards.
8771
8772 timestamps, ts
8773 Set type of timestamps for grabbed frames.
8774
8775 Available values are:
8776
8777 default
8778 Use timestamps from the kernel.
8779
8780 abs Use absolute timestamps (wall clock).
8781
8782 mono2abs
8783 Force conversion from monotonic to absolute timestamps.
8784
8785 Default value is "default".
8786
8787 use_libv4l2
8788 Use libv4l2 (v4l-utils) conversion functions. Default is 0.
8789
8790 vfwcap
8791 VfW (Video for Windows) capture input device.
8792
8793 The filename passed as input is the capture driver number, ranging from
8794 0 to 9. You may use "list" as filename to print a list of drivers. Any
8795 other filename will be interpreted as device number 0.
8796
8797 Options
8798
8799 video_size
8800 Set the video frame size.
8801
8802 framerate
8803 Set the grabbing frame rate. Default value is "ntsc", corresponding
8804 to a frame rate of "30000/1001".
8805
8806 x11grab
8807 X11 video input device.
8808
8809 To enable this input device during configuration you need libxcb
8810 installed on your system. It will be automatically detected during
8811 configuration.
8812
8813 This device allows one to capture a region of an X11 display.
8814
8815 The filename passed as input has the syntax:
8816
8817 [<hostname>]:<display_number>.<screen_number>[+<x_offset>,<y_offset>]
8818
8819 hostname:display_number.screen_number specifies the X11 display name of
8820 the screen to grab from. hostname can be omitted, and defaults to
8821 "localhost". The environment variable DISPLAY contains the default
8822 display name.
8823
8824 x_offset and y_offset specify the offsets of the grabbed area with
8825 respect to the top-left border of the X11 screen. They default to 0.
8826
8827 Check the X11 documentation (e.g. man X) for more detailed information.
8828
8829 Use the xdpyinfo program for getting basic information about the
8830 properties of your X11 display (e.g. grep for "name" or "dimensions").
8831
8832 For example to grab from :0.0 using ffmpeg:
8833
8834 ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0 out.mpg
8835
8836 Grab at position "10,20":
8837
8838 ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
8839
8840 Options
8841
8842 select_region
8843 Specify whether to select the grabbing area graphically using the
8844 pointer. A value of 1 prompts the user to select the grabbing area
8845 graphically by clicking and dragging. A single click with no
8846 dragging will select the whole screen. A region with zero width or
8847 height will also select the whole screen. This option overwrites
8848 the video_size, grab_x, and grab_y options. Default value is 0.
8849
8850 draw_mouse
8851 Specify whether to draw the mouse pointer. A value of 0 specifies
8852 not to draw the pointer. Default value is 1.
8853
8854 follow_mouse
8855 Make the grabbed area follow the mouse. The argument can be
8856 "centered" or a number of pixels PIXELS.
8857
8858 When it is specified with "centered", the grabbing region follows
8859 the mouse pointer and keeps the pointer at the center of region;
8860 otherwise, the region follows only when the mouse pointer reaches
8861 within PIXELS (greater than zero) to the edge of region.
8862
8863 For example:
8864
8865 ffmpeg -f x11grab -follow_mouse centered -framerate 25 -video_size cif -i :0.0 out.mpg
8866
8867 To follow only when the mouse pointer reaches within 100 pixels to
8868 edge:
8869
8870 ffmpeg -f x11grab -follow_mouse 100 -framerate 25 -video_size cif -i :0.0 out.mpg
8871
8872 framerate
8873 Set the grabbing frame rate. Default value is "ntsc", corresponding
8874 to a frame rate of "30000/1001".
8875
8876 show_region
8877 Show grabbed region on screen.
8878
8879 If show_region is specified with 1, then the grabbing region will
8880 be indicated on screen. With this option, it is easy to know what
8881 is being grabbed if only a portion of the screen is grabbed.
8882
8883 region_border
8884 Set the region border thickness if -show_region 1 is used. Range
8885 is 1 to 128 and default is 3 (XCB-based x11grab only).
8886
8887 For example:
8888
8889 ffmpeg -f x11grab -show_region 1 -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
8890
8891 With follow_mouse:
8892
8893 ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_size cif -i :0.0 out.mpg
8894
8895 window_id
8896 Grab this window, instead of the whole screen. Default value is 0,
8897 which maps to the whole screen (root window).
8898
8899 The id of a window can be found using the xwininfo program,
8900 possibly with options -tree and -root.
8901
8902 If the window is later enlarged, the new area is not recorded.
8903 Video ends when the window is closed, unmapped (i.e., iconified) or
8904 shrunk beyond the video size (which defaults to the initial window
8905 size).
8906
8907 This option disables options follow_mouse and select_region.
8908
8909 video_size
8910 Set the video frame size. Default is the full desktop or window.
8911
8912 grab_x
8913 grab_y
8914 Set the grabbing region coordinates. They are expressed as offset
8915 from the top left corner of the X11 window and correspond to the
8916 x_offset and y_offset parameters in the device name. The default
8917 value for both options is 0.
8918
8920 The audio resampler supports the following named options.
8921
8922 Options may be set by specifying -option value in the FFmpeg tools,
8923 option=value for the aresample filter, by setting the value explicitly
8924 in the "SwrContext" options or using the libavutil/opt.h API for
8925 programmatic use.
8926
8927 ich, in_channel_count
8928 Set the number of input channels. Default value is 0. Setting this
8929 value is not mandatory if the corresponding channel layout
8930 in_channel_layout is set.
8931
8932 och, out_channel_count
8933 Set the number of output channels. Default value is 0. Setting this
8934 value is not mandatory if the corresponding channel layout
8935 out_channel_layout is set.
8936
8937 uch, used_channel_count
8938 Set the number of used input channels. Default value is 0. This
8939 option is only used for special remapping.
8940
8941 isr, in_sample_rate
8942 Set the input sample rate. Default value is 0.
8943
8944 osr, out_sample_rate
8945 Set the output sample rate. Default value is 0.
8946
8947 isf, in_sample_fmt
8948 Specify the input sample format. It is set by default to "none".
8949
8950 osf, out_sample_fmt
8951 Specify the output sample format. It is set by default to "none".
8952
8953 tsf, internal_sample_fmt
8954 Set the internal sample format. Default value is "none". This will
8955 automatically be chosen when it is not explicitly set.
8956
8957 icl, in_channel_layout
8958 ocl, out_channel_layout
8959 Set the input/output channel layout.
8960
8961 See the Channel Layout section in the ffmpeg-utils(1) manual for
8962 the required syntax.
8963
8964 clev, center_mix_level
8965 Set the center mix level. It is a value expressed in deciBel, and
8966 must be in the interval [-32,32].
8967
8968 slev, surround_mix_level
8969 Set the surround mix level. It is a value expressed in deciBel, and
8970 must be in the interval [-32,32].
8971
8972 lfe_mix_level
8973 Set LFE mix into non LFE level. It is used when there is a LFE
8974 input but no LFE output. It is a value expressed in deciBel, and
8975 must be in the interval [-32,32].
8976
8977 rmvol, rematrix_volume
8978 Set rematrix volume. Default value is 1.0.
8979
8980 rematrix_maxval
8981 Set maximum output value for rematrixing. This can be used to
8982 prevent clipping vs. preventing volume reduction. A value of 1.0
8983 prevents clipping.
8984
8985 flags, swr_flags
8986 Set flags used by the converter. Default value is 0.
8987
8988 It supports the following individual flags:
8989
8990 res force resampling, this flag forces resampling to be used even
8991 when the input and output sample rates match.
8992
8993 dither_scale
8994 Set the dither scale. Default value is 1.
8995
8996 dither_method
8997 Set dither method. Default value is 0.
8998
8999 Supported values:
9000
9001 rectangular
9002 select rectangular dither
9003
9004 triangular
9005 select triangular dither
9006
9007 triangular_hp
9008 select triangular dither with high pass
9009
9010 lipshitz
9011 select Lipshitz noise shaping dither.
9012
9013 shibata
9014 select Shibata noise shaping dither.
9015
9016 low_shibata
9017 select low Shibata noise shaping dither.
9018
9019 high_shibata
9020 select high Shibata noise shaping dither.
9021
9022 f_weighted
9023 select f-weighted noise shaping dither
9024
9025 modified_e_weighted
9026 select modified-e-weighted noise shaping dither
9027
9028 improved_e_weighted
9029 select improved-e-weighted noise shaping dither
9030
9031 resampler
9032 Set resampling engine. Default value is swr.
9033
9034 Supported values:
9035
9036 swr select the native SW Resampler; filter options precision and
9037 cheby are not applicable in this case.
9038
9039 soxr
9040 select the SoX Resampler (where available); compensation, and
9041 filter options filter_size, phase_shift, exact_rational,
9042 filter_type & kaiser_beta, are not applicable in this case.
9043
9044 filter_size
9045 For swr only, set resampling filter size, default value is 32.
9046
9047 phase_shift
9048 For swr only, set resampling phase shift, default value is 10, and
9049 must be in the interval [0,30].
9050
9051 linear_interp
9052 Use linear interpolation when enabled (the default). Disable it if
9053 you want to preserve speed instead of quality when exact_rational
9054 fails.
9055
9056 exact_rational
9057 For swr only, when enabled, try to use exact phase_count based on
9058 input and output sample rate. However, if it is larger than "1 <<
9059 phase_shift", the phase_count will be "1 << phase_shift" as
9060 fallback. Default is enabled.
9061
9062 cutoff
9063 Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must
9064 be a float value between 0 and 1. Default value is 0.97 with swr,
9065 and 0.91 with soxr (which, with a sample-rate of 44100, preserves
9066 the entire audio band to 20kHz).
9067
9068 precision
9069 For soxr only, the precision in bits to which the resampled signal
9070 will be calculated. The default value of 20 (which, with suitable
9071 dithering, is appropriate for a destination bit-depth of 16) gives
9072 SoX's 'High Quality'; a value of 28 gives SoX's 'Very High
9073 Quality'.
9074
9075 cheby
9076 For soxr only, selects passband rolloff none (Chebyshev) & higher-
9077 precision approximation for 'irrational' ratios. Default value is
9078 0.
9079
9080 async
9081 For swr only, simple 1 parameter audio sync to timestamps using
9082 stretching, squeezing, filling and trimming. Setting this to 1 will
9083 enable filling and trimming, larger values represent the maximum
9084 amount in samples that the data may be stretched or squeezed for
9085 each second. Default value is 0, thus no compensation is applied
9086 to make the samples match the audio timestamps.
9087
9088 first_pts
9089 For swr only, assume the first pts should be this value. The time
9090 unit is 1 / sample rate. This allows for padding/trimming at the
9091 start of stream. By default, no assumption is made about the first
9092 frame's expected pts, so no padding or trimming is done. For
9093 example, this could be set to 0 to pad the beginning with silence
9094 if an audio stream starts after the video stream or to trim any
9095 samples with a negative pts due to encoder delay.
9096
9097 min_comp
9098 For swr only, set the minimum difference between timestamps and
9099 audio data (in seconds) to trigger stretching/squeezing/filling or
9100 trimming of the data to make it match the timestamps. The default
9101 is that stretching/squeezing/filling and trimming is disabled
9102 (min_comp = "FLT_MAX").
9103
9104 min_hard_comp
9105 For swr only, set the minimum difference between timestamps and
9106 audio data (in seconds) to trigger adding/dropping samples to make
9107 it match the timestamps. This option effectively is a threshold to
9108 select between hard (trim/fill) and soft (squeeze/stretch)
9109 compensation. Note that all compensation is by default disabled
9110 through min_comp. The default is 0.1.
9111
9112 comp_duration
9113 For swr only, set duration (in seconds) over which data is
9114 stretched/squeezed to make it match the timestamps. Must be a non-
9115 negative double float value, default value is 1.0.
9116
9117 max_soft_comp
9118 For swr only, set maximum factor by which data is
9119 stretched/squeezed to make it match the timestamps. Must be a non-
9120 negative double float value, default value is 0.
9121
9122 matrix_encoding
9123 Select matrixed stereo encoding.
9124
9125 It accepts the following values:
9126
9127 none
9128 select none
9129
9130 dolby
9131 select Dolby
9132
9133 dplii
9134 select Dolby Pro Logic II
9135
9136 Default value is "none".
9137
9138 filter_type
9139 For swr only, select resampling filter type. This only affects
9140 resampling operations.
9141
9142 It accepts the following values:
9143
9144 cubic
9145 select cubic
9146
9147 blackman_nuttall
9148 select Blackman Nuttall windowed sinc
9149
9150 kaiser
9151 select Kaiser windowed sinc
9152
9153 kaiser_beta
9154 For swr only, set Kaiser window beta value. Must be a double float
9155 value in the interval [2,16], default value is 9.
9156
9157 output_sample_bits
9158 For swr only, set number of used output sample bits for dithering.
9159 Must be an integer in the interval [0,64], default value is 0,
9160 which means it's not used.
9161
9163 The video scaler supports the following named options.
9164
9165 Options may be set by specifying -option value in the FFmpeg tools,
9166 with a few API-only exceptions noted below. For programmatic use, they
9167 can be set explicitly in the "SwsContext" options or through the
9168 libavutil/opt.h API.
9169
9170 sws_flags
9171 Set the scaler flags. This is also used to set the scaling
9172 algorithm. Only a single algorithm should be selected. Default
9173 value is bicubic.
9174
9175 It accepts the following values:
9176
9177 fast_bilinear
9178 Select fast bilinear scaling algorithm.
9179
9180 bilinear
9181 Select bilinear scaling algorithm.
9182
9183 bicubic
9184 Select bicubic scaling algorithm.
9185
9186 experimental
9187 Select experimental scaling algorithm.
9188
9189 neighbor
9190 Select nearest neighbor rescaling algorithm.
9191
9192 area
9193 Select averaging area rescaling algorithm.
9194
9195 bicublin
9196 Select bicubic scaling algorithm for the luma component,
9197 bilinear for chroma components.
9198
9199 gauss
9200 Select Gaussian rescaling algorithm.
9201
9202 sinc
9203 Select sinc rescaling algorithm.
9204
9205 lanczos
9206 Select Lanczos rescaling algorithm. The default width (alpha)
9207 is 3 and can be changed by setting "param0".
9208
9209 spline
9210 Select natural bicubic spline rescaling algorithm.
9211
9212 print_info
9213 Enable printing/debug logging.
9214
9215 accurate_rnd
9216 Enable accurate rounding.
9217
9218 full_chroma_int
9219 Enable full chroma interpolation.
9220
9221 full_chroma_inp
9222 Select full chroma input.
9223
9224 bitexact
9225 Enable bitexact output.
9226
9227 srcw (API only)
9228 Set source width.
9229
9230 srch (API only)
9231 Set source height.
9232
9233 dstw (API only)
9234 Set destination width.
9235
9236 dsth (API only)
9237 Set destination height.
9238
9239 src_format (API only)
9240 Set source pixel format (must be expressed as an integer).
9241
9242 dst_format (API only)
9243 Set destination pixel format (must be expressed as an integer).
9244
9245 src_range (boolean)
9246 If value is set to 1, indicates source is full range. Default value
9247 is 0, which indicates source is limited range.
9248
9249 dst_range (boolean)
9250 If value is set to 1, enable full range for destination. Default
9251 value is 0, which enables limited range.
9252
9253 param0, param1
9254 Set scaling algorithm parameters. The specified values are specific
9255 of some scaling algorithms and ignored by others. The specified
9256 values are floating point number values.
9257
9258 sws_dither
9259 Set the dithering algorithm. Accepts one of the following values.
9260 Default value is auto.
9261
9262 auto
9263 automatic choice
9264
9265 none
9266 no dithering
9267
9268 bayer
9269 bayer dither
9270
9271 ed error diffusion dither
9272
9273 a_dither
9274 arithmetic dither, based using addition
9275
9276 x_dither
9277 arithmetic dither, based using xor (more random/less apparent
9278 patterning that a_dither).
9279
9280 alphablend
9281 Set the alpha blending to use when the input has alpha but the
9282 output does not. Default value is none.
9283
9284 uniform_color
9285 Blend onto a uniform background color
9286
9287 checkerboard
9288 Blend onto a checkerboard
9289
9290 none
9291 No blending
9292
9294 Filtering in FFmpeg is enabled through the libavfilter library.
9295
9296 In libavfilter, a filter can have multiple inputs and multiple outputs.
9297 To illustrate the sorts of things that are possible, we consider the
9298 following filtergraph.
9299
9300 [main]
9301 input --> split ---------------------> overlay --> output
9302 | ^
9303 |[tmp] [flip]|
9304 +-----> crop --> vflip -------+
9305
9306 This filtergraph splits the input stream in two streams, then sends one
9307 stream through the crop filter and the vflip filter, before merging it
9308 back with the other stream by overlaying it on top. You can use the
9309 following command to achieve this:
9310
9311 ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
9312
9313 The result will be that the top half of the video is mirrored onto the
9314 bottom half of the output video.
9315
9316 Filters in the same linear chain are separated by commas, and distinct
9317 linear chains of filters are separated by semicolons. In our example,
9318 crop,vflip are in one linear chain, split and overlay are separately in
9319 another. The points where the linear chains join are labelled by names
9320 enclosed in square brackets. In the example, the split filter generates
9321 two outputs that are associated to the labels [main] and [tmp].
9322
9323 The stream sent to the second output of split, labelled as [tmp], is
9324 processed through the crop filter, which crops away the lower half part
9325 of the video, and then vertically flipped. The overlay filter takes in
9326 input the first unchanged output of the split filter (which was
9327 labelled as [main]), and overlay on its lower half the output generated
9328 by the crop,vflip filterchain.
9329
9330 Some filters take in input a list of parameters: they are specified
9331 after the filter name and an equal sign, and are separated from each
9332 other by a colon.
9333
9334 There exist so-called source filters that do not have an audio/video
9335 input, and sink filters that will not have audio/video output.
9336
9338 The graph2dot program included in the FFmpeg tools directory can be
9339 used to parse a filtergraph description and issue a corresponding
9340 textual representation in the dot language.
9341
9342 Invoke the command:
9343
9344 graph2dot -h
9345
9346 to see how to use graph2dot.
9347
9348 You can then pass the dot description to the dot program (from the
9349 graphviz suite of programs) and obtain a graphical representation of
9350 the filtergraph.
9351
9352 For example the sequence of commands:
9353
9354 echo <GRAPH_DESCRIPTION> | \
9355 tools/graph2dot -o graph.tmp && \
9356 dot -Tpng graph.tmp -o graph.png && \
9357 display graph.png
9358
9359 can be used to create and display an image representing the graph
9360 described by the GRAPH_DESCRIPTION string. Note that this string must
9361 be a complete self-contained graph, with its inputs and outputs
9362 explicitly defined. For example if your command line is of the form:
9363
9364 ffmpeg -i infile -vf scale=640:360 outfile
9365
9366 your GRAPH_DESCRIPTION string will need to be of the form:
9367
9368 nullsrc,scale=640:360,nullsink
9369
9370 you may also need to set the nullsrc parameters and add a format filter
9371 in order to simulate a specific input file.
9372
9374 A filtergraph is a directed graph of connected filters. It can contain
9375 cycles, and there can be multiple links between a pair of filters. Each
9376 link has one input pad on one side connecting it to one filter from
9377 which it takes its input, and one output pad on the other side
9378 connecting it to one filter accepting its output.
9379
9380 Each filter in a filtergraph is an instance of a filter class
9381 registered in the application, which defines the features and the
9382 number of input and output pads of the filter.
9383
9384 A filter with no input pads is called a "source", and a filter with no
9385 output pads is called a "sink".
9386
9387 Filtergraph syntax
9388 A filtergraph has a textual representation, which is recognized by the
9389 -filter/-vf/-af and -filter_complex options in ffmpeg and -vf/-af in
9390 ffplay, and by the "avfilter_graph_parse_ptr()" function defined in
9391 libavfilter/avfilter.h.
9392
9393 A filterchain consists of a sequence of connected filters, each one
9394 connected to the previous one in the sequence. A filterchain is
9395 represented by a list of ","-separated filter descriptions.
9396
9397 A filtergraph consists of a sequence of filterchains. A sequence of
9398 filterchains is represented by a list of ";"-separated filterchain
9399 descriptions.
9400
9401 A filter is represented by a string of the form:
9402 [in_link_1]...[in_link_N]filter_name@id=arguments[out_link_1]...[out_link_M]
9403
9404 filter_name is the name of the filter class of which the described
9405 filter is an instance of, and has to be the name of one of the filter
9406 classes registered in the program optionally followed by "@id". The
9407 name of the filter class is optionally followed by a string
9408 "=arguments".
9409
9410 arguments is a string which contains the parameters used to initialize
9411 the filter instance. It may have one of two forms:
9412
9413 • A ':'-separated list of key=value pairs.
9414
9415 • A ':'-separated list of value. In this case, the keys are assumed
9416 to be the option names in the order they are declared. E.g. the
9417 "fade" filter declares three options in this order -- type,
9418 start_frame and nb_frames. Then the parameter list in:0:30 means
9419 that the value in is assigned to the option type, 0 to start_frame
9420 and 30 to nb_frames.
9421
9422 • A ':'-separated list of mixed direct value and long key=value
9423 pairs. The direct value must precede the key=value pairs, and
9424 follow the same constraints order of the previous point. The
9425 following key=value pairs can be set in any preferred order.
9426
9427 If the option value itself is a list of items (e.g. the "format" filter
9428 takes a list of pixel formats), the items in the list are usually
9429 separated by |.
9430
9431 The list of arguments can be quoted using the character ' as initial
9432 and ending mark, and the character \ for escaping the characters within
9433 the quoted text; otherwise the argument string is considered terminated
9434 when the next special character (belonging to the set []=;,) is
9435 encountered.
9436
9437 The name and arguments of the filter are optionally preceded and
9438 followed by a list of link labels. A link label allows one to name a
9439 link and associate it to a filter output or input pad. The preceding
9440 labels in_link_1 ... in_link_N, are associated to the filter input
9441 pads, the following labels out_link_1 ... out_link_M, are associated to
9442 the output pads.
9443
9444 When two link labels with the same name are found in the filtergraph, a
9445 link between the corresponding input and output pad is created.
9446
9447 If an output pad is not labelled, it is linked by default to the first
9448 unlabelled input pad of the next filter in the filterchain. For
9449 example in the filterchain
9450
9451 nullsrc, split[L1], [L2]overlay, nullsink
9452
9453 the split filter instance has two output pads, and the overlay filter
9454 instance two input pads. The first output pad of split is labelled
9455 "L1", the first input pad of overlay is labelled "L2", and the second
9456 output pad of split is linked to the second input pad of overlay, which
9457 are both unlabelled.
9458
9459 In a filter description, if the input label of the first filter is not
9460 specified, "in" is assumed; if the output label of the last filter is
9461 not specified, "out" is assumed.
9462
9463 In a complete filterchain all the unlabelled filter input and output
9464 pads must be connected. A filtergraph is considered valid if all the
9465 filter input and output pads of all the filterchains are connected.
9466
9467 Libavfilter will automatically insert scale filters where format
9468 conversion is required. It is possible to specify swscale flags for
9469 those automatically inserted scalers by prepending "sws_flags=flags;"
9470 to the filtergraph description.
9471
9472 Here is a BNF description of the filtergraph syntax:
9473
9474 <NAME> ::= sequence of alphanumeric characters and '_'
9475 <FILTER_NAME> ::= <NAME>["@"<NAME>]
9476 <LINKLABEL> ::= "[" <NAME> "]"
9477 <LINKLABELS> ::= <LINKLABEL> [<LINKLABELS>]
9478 <FILTER_ARGUMENTS> ::= sequence of chars (possibly quoted)
9479 <FILTER> ::= [<LINKLABELS>] <FILTER_NAME> ["=" <FILTER_ARGUMENTS>] [<LINKLABELS>]
9480 <FILTERCHAIN> ::= <FILTER> [,<FILTERCHAIN>]
9481 <FILTERGRAPH> ::= [sws_flags=<flags>;] <FILTERCHAIN> [;<FILTERGRAPH>]
9482
9483 Notes on filtergraph escaping
9484 Filtergraph description composition entails several levels of escaping.
9485 See the "Quoting and escaping" section in the ffmpeg-utils(1) manual
9486 for more information about the employed escaping procedure.
9487
9488 A first level escaping affects the content of each filter option value,
9489 which may contain the special character ":" used to separate values, or
9490 one of the escaping characters "\'".
9491
9492 A second level escaping affects the whole filter description, which may
9493 contain the escaping characters "\'" or the special characters "[],;"
9494 used by the filtergraph description.
9495
9496 Finally, when you specify a filtergraph on a shell commandline, you
9497 need to perform a third level escaping for the shell special characters
9498 contained within it.
9499
9500 For example, consider the following string to be embedded in the
9501 drawtext filter description text value:
9502
9503 this is a 'string': may contain one, or more, special characters
9504
9505 This string contains the "'" special escaping character, and the ":"
9506 special character, so it needs to be escaped in this way:
9507
9508 text=this is a \'string\'\: may contain one, or more, special characters
9509
9510 A second level of escaping is required when embedding the filter
9511 description in a filtergraph description, in order to escape all the
9512 filtergraph special characters. Thus the example above becomes:
9513
9514 drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
9515
9516 (note that in addition to the "\'" escaping special characters, also
9517 "," needs to be escaped).
9518
9519 Finally an additional level of escaping is needed when writing the
9520 filtergraph description in a shell command, which depends on the
9521 escaping rules of the adopted shell. For example, assuming that "\" is
9522 special and needs to be escaped with another "\", the previous string
9523 will finally result in:
9524
9525 -vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
9526
9528 Some filters support a generic enable option. For the filters
9529 supporting timeline editing, this option can be set to an expression
9530 which is evaluated before sending a frame to the filter. If the
9531 evaluation is non-zero, the filter will be enabled, otherwise the frame
9532 will be sent unchanged to the next filter in the filtergraph.
9533
9534 The expression accepts the following values:
9535
9536 t timestamp expressed in seconds, NAN if the input timestamp is
9537 unknown
9538
9539 n sequential number of the input frame, starting from 0
9540
9541 pos the position in the file of the input frame, NAN if unknown
9542
9543 w
9544 h width and height of the input frame if video
9545
9546 Additionally, these filters support an enable command that can be used
9547 to re-define the expression.
9548
9549 Like any other filtering option, the enable option follows the same
9550 rules.
9551
9552 For example, to enable a blur filter (smartblur) from 10 seconds to 3
9553 minutes, and a curves filter starting at 3 seconds:
9554
9555 smartblur = enable='between(t,10,3*60)',
9556 curves = enable='gte(t,3)' : preset=cross_process
9557
9558 See "ffmpeg -filters" to view which filters have timeline support.
9559
9561 Some options can be changed during the operation of the filter using a
9562 command. These options are marked 'T' on the output of ffmpeg -h
9563 filter=<name of filter>. The name of the command is the name of the
9564 option and the argument is the new value.
9565
9567 Some filters with several inputs support a common set of options.
9568 These options can only be set by name, not with the short notation.
9569
9570 eof_action
9571 The action to take when EOF is encountered on the secondary input;
9572 it accepts one of the following values:
9573
9574 repeat
9575 Repeat the last frame (the default).
9576
9577 endall
9578 End both streams.
9579
9580 pass
9581 Pass the main input through.
9582
9583 shortest
9584 If set to 1, force the output to terminate when the shortest input
9585 terminates. Default value is 0.
9586
9587 repeatlast
9588 If set to 1, force the filter to extend the last frame of secondary
9589 streams until the end of the primary stream. A value of 0 disables
9590 this behavior. Default value is 1.
9591
9593 When you configure your FFmpeg build, you can disable any of the
9594 existing filters using "--disable-filters". The configure output will
9595 show the audio filters included in your build.
9596
9597 Below is a description of the currently available audio filters.
9598
9599 acompressor
9600 A compressor is mainly used to reduce the dynamic range of a signal.
9601 Especially modern music is mostly compressed at a high ratio to improve
9602 the overall loudness. It's done to get the highest attention of a
9603 listener, "fatten" the sound and bring more "power" to the track. If a
9604 signal is compressed too much it may sound dull or "dead" afterwards or
9605 it may start to "pump" (which could be a powerful effect but can also
9606 destroy a track completely). The right compression is the key to reach
9607 a professional sound and is the high art of mixing and mastering.
9608 Because of its complex settings it may take a long time to get the
9609 right feeling for this kind of effect.
9610
9611 Compression is done by detecting the volume above a chosen level
9612 "threshold" and dividing it by the factor set with "ratio". So if you
9613 set the threshold to -12dB and your signal reaches -6dB a ratio of 2:1
9614 will result in a signal at -9dB. Because an exact manipulation of the
9615 signal would cause distortion of the waveform the reduction can be
9616 levelled over the time. This is done by setting "Attack" and "Release".
9617 "attack" determines how long the signal has to rise above the threshold
9618 before any reduction will occur and "release" sets the time the signal
9619 has to fall below the threshold to reduce the reduction again. Shorter
9620 signals than the chosen attack time will be left untouched. The
9621 overall reduction of the signal can be made up afterwards with the
9622 "makeup" setting. So compressing the peaks of a signal about 6dB and
9623 raising the makeup to this level results in a signal twice as loud than
9624 the source. To gain a softer entry in the compression the "knee"
9625 flattens the hard edge at the threshold in the range of the chosen
9626 decibels.
9627
9628 The filter accepts the following options:
9629
9630 level_in
9631 Set input gain. Default is 1. Range is between 0.015625 and 64.
9632
9633 mode
9634 Set mode of compressor operation. Can be "upward" or "downward".
9635 Default is "downward".
9636
9637 threshold
9638 If a signal of stream rises above this level it will affect the
9639 gain reduction. By default it is 0.125. Range is between
9640 0.00097563 and 1.
9641
9642 ratio
9643 Set a ratio by which the signal is reduced. 1:2 means that if the
9644 level rose 4dB above the threshold, it will be only 2dB above after
9645 the reduction. Default is 2. Range is between 1 and 20.
9646
9647 attack
9648 Amount of milliseconds the signal has to rise above the threshold
9649 before gain reduction starts. Default is 20. Range is between 0.01
9650 and 2000.
9651
9652 release
9653 Amount of milliseconds the signal has to fall below the threshold
9654 before reduction is decreased again. Default is 250. Range is
9655 between 0.01 and 9000.
9656
9657 makeup
9658 Set the amount by how much signal will be amplified after
9659 processing. Default is 1. Range is from 1 to 64.
9660
9661 knee
9662 Curve the sharp knee around the threshold to enter gain reduction
9663 more softly. Default is 2.82843. Range is between 1 and 8.
9664
9665 link
9666 Choose if the "average" level between all channels of input stream
9667 or the louder("maximum") channel of input stream affects the
9668 reduction. Default is "average".
9669
9670 detection
9671 Should the exact signal be taken in case of "peak" or an RMS one in
9672 case of "rms". Default is "rms" which is mostly smoother.
9673
9674 mix How much to use compressed signal in output. Default is 1. Range
9675 is between 0 and 1.
9676
9677 Commands
9678
9679 This filter supports the all above options as commands.
9680
9681 acontrast
9682 Simple audio dynamic range compression/expansion filter.
9683
9684 The filter accepts the following options:
9685
9686 contrast
9687 Set contrast. Default is 33. Allowed range is between 0 and 100.
9688
9689 acopy
9690 Copy the input audio source unchanged to the output. This is mainly
9691 useful for testing purposes.
9692
9693 acrossfade
9694 Apply cross fade from one input audio stream to another input audio
9695 stream. The cross fade is applied for specified duration near the end
9696 of first stream.
9697
9698 The filter accepts the following options:
9699
9700 nb_samples, ns
9701 Specify the number of samples for which the cross fade effect has
9702 to last. At the end of the cross fade effect the first input audio
9703 will be completely silent. Default is 44100.
9704
9705 duration, d
9706 Specify the duration of the cross fade effect. See the Time
9707 duration section in the ffmpeg-utils(1) manual for the accepted
9708 syntax. By default the duration is determined by nb_samples. If
9709 set this option is used instead of nb_samples.
9710
9711 overlap, o
9712 Should first stream end overlap with second stream start. Default
9713 is enabled.
9714
9715 curve1
9716 Set curve for cross fade transition for first stream.
9717
9718 curve2
9719 Set curve for cross fade transition for second stream.
9720
9721 For description of available curve types see afade filter
9722 description.
9723
9724 Examples
9725
9726 • Cross fade from one input to another:
9727
9728 ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:c1=exp:c2=exp output.flac
9729
9730 • Cross fade from one input to another but without overlapping:
9731
9732 ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:o=0:c1=exp:c2=exp output.flac
9733
9734 acrossover
9735 Split audio stream into several bands.
9736
9737 This filter splits audio stream into two or more frequency ranges.
9738 Summing all streams back will give flat output.
9739
9740 The filter accepts the following options:
9741
9742 split
9743 Set split frequencies. Those must be positive and increasing.
9744
9745 order
9746 Set filter order for each band split. This controls filter roll-off
9747 or steepness of filter transfer function. Available values are:
9748
9749 2nd 12 dB per octave.
9750
9751 4th 24 dB per octave.
9752
9753 6th 36 dB per octave.
9754
9755 8th 48 dB per octave.
9756
9757 10th
9758 60 dB per octave.
9759
9760 12th
9761 72 dB per octave.
9762
9763 14th
9764 84 dB per octave.
9765
9766 16th
9767 96 dB per octave.
9768
9769 18th
9770 108 dB per octave.
9771
9772 20th
9773 120 dB per octave.
9774
9775 Default is 4th.
9776
9777 level
9778 Set input gain level. Allowed range is from 0 to 1. Default value
9779 is 1.
9780
9781 gains
9782 Set output gain for each band. Default value is 1 for all bands.
9783
9784 precision
9785 Set which precision to use when processing samples.
9786
9787 auto
9788 Auto pick internal sample format depending on other filters.
9789
9790 float
9791 Always use single-floating point precision sample format.
9792
9793 double
9794 Always use double-floating point precision sample format.
9795
9796 Default value is "auto".
9797
9798 Examples
9799
9800 • Split input audio stream into two bands (low and high) with split
9801 frequency of 1500 Hz, each band will be in separate stream:
9802
9803 ffmpeg -i in.flac -filter_complex 'acrossover=split=1500[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
9804
9805 • Same as above, but with higher filter order:
9806
9807 ffmpeg -i in.flac -filter_complex 'acrossover=split=1500:order=8th[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
9808
9809 • Same as above, but also with additional middle band (frequencies
9810 between 1500 and 8000):
9811
9812 ffmpeg -i in.flac -filter_complex 'acrossover=split=1500 8000:order=8th[LOW][MID][HIGH]' -map '[LOW]' low.wav -map '[MID]' mid.wav -map '[HIGH]' high.wav
9813
9814 acrusher
9815 Reduce audio bit resolution.
9816
9817 This filter is bit crusher with enhanced functionality. A bit crusher
9818 is used to audibly reduce number of bits an audio signal is sampled
9819 with. This doesn't change the bit depth at all, it just produces the
9820 effect. Material reduced in bit depth sounds more harsh and "digital".
9821 This filter is able to even round to continuous values instead of
9822 discrete bit depths. Additionally it has a D/C offset which results in
9823 different crushing of the lower and the upper half of the signal. An
9824 Anti-Aliasing setting is able to produce "softer" crushing sounds.
9825
9826 Another feature of this filter is the logarithmic mode. This setting
9827 switches from linear distances between bits to logarithmic ones. The
9828 result is a much more "natural" sounding crusher which doesn't gate low
9829 signals for example. The human ear has a logarithmic perception, so
9830 this kind of crushing is much more pleasant. Logarithmic crushing is
9831 also able to get anti-aliased.
9832
9833 The filter accepts the following options:
9834
9835 level_in
9836 Set level in.
9837
9838 level_out
9839 Set level out.
9840
9841 bits
9842 Set bit reduction.
9843
9844 mix Set mixing amount.
9845
9846 mode
9847 Can be linear: "lin" or logarithmic: "log".
9848
9849 dc Set DC.
9850
9851 aa Set anti-aliasing.
9852
9853 samples
9854 Set sample reduction.
9855
9856 lfo Enable LFO. By default disabled.
9857
9858 lforange
9859 Set LFO range.
9860
9861 lforate
9862 Set LFO rate.
9863
9864 Commands
9865
9866 This filter supports the all above options as commands.
9867
9868 acue
9869 Delay audio filtering until a given wallclock timestamp. See the cue
9870 filter.
9871
9872 adeclick
9873 Remove impulsive noise from input audio.
9874
9875 Samples detected as impulsive noise are replaced by interpolated
9876 samples using autoregressive modelling.
9877
9878 window, w
9879 Set window size, in milliseconds. Allowed range is from 10 to 100.
9880 Default value is 55 milliseconds. This sets size of window which
9881 will be processed at once.
9882
9883 overlap, o
9884 Set window overlap, in percentage of window size. Allowed range is
9885 from 50 to 95. Default value is 75 percent. Setting this to a very
9886 high value increases impulsive noise removal but makes whole
9887 process much slower.
9888
9889 arorder, a
9890 Set autoregression order, in percentage of window size. Allowed
9891 range is from 0 to 25. Default value is 2 percent. This option also
9892 controls quality of interpolated samples using neighbour good
9893 samples.
9894
9895 threshold, t
9896 Set threshold value. Allowed range is from 1 to 100. Default value
9897 is 2. This controls the strength of impulsive noise which is going
9898 to be removed. The lower value, the more samples will be detected
9899 as impulsive noise.
9900
9901 burst, b
9902 Set burst fusion, in percentage of window size. Allowed range is 0
9903 to 10. Default value is 2. If any two samples detected as noise
9904 are spaced less than this value then any sample between those two
9905 samples will be also detected as noise.
9906
9907 method, m
9908 Set overlap method.
9909
9910 It accepts the following values:
9911
9912 add, a
9913 Select overlap-add method. Even not interpolated samples are
9914 slightly changed with this method.
9915
9916 save, s
9917 Select overlap-save method. Not interpolated samples remain
9918 unchanged.
9919
9920 Default value is "a".
9921
9922 adeclip
9923 Remove clipped samples from input audio.
9924
9925 Samples detected as clipped are replaced by interpolated samples using
9926 autoregressive modelling.
9927
9928 window, w
9929 Set window size, in milliseconds. Allowed range is from 10 to 100.
9930 Default value is 55 milliseconds. This sets size of window which
9931 will be processed at once.
9932
9933 overlap, o
9934 Set window overlap, in percentage of window size. Allowed range is
9935 from 50 to 95. Default value is 75 percent.
9936
9937 arorder, a
9938 Set autoregression order, in percentage of window size. Allowed
9939 range is from 0 to 25. Default value is 8 percent. This option also
9940 controls quality of interpolated samples using neighbour good
9941 samples.
9942
9943 threshold, t
9944 Set threshold value. Allowed range is from 1 to 100. Default value
9945 is 10. Higher values make clip detection less aggressive.
9946
9947 hsize, n
9948 Set size of histogram used to detect clips. Allowed range is from
9949 100 to 9999. Default value is 1000. Higher values make clip
9950 detection less aggressive.
9951
9952 method, m
9953 Set overlap method.
9954
9955 It accepts the following values:
9956
9957 add, a
9958 Select overlap-add method. Even not interpolated samples are
9959 slightly changed with this method.
9960
9961 save, s
9962 Select overlap-save method. Not interpolated samples remain
9963 unchanged.
9964
9965 Default value is "a".
9966
9967 adecorrelate
9968 Apply decorrelation to input audio stream.
9969
9970 The filter accepts the following options:
9971
9972 stages
9973 Set decorrelation stages of filtering. Allowed range is from 1 to
9974 16. Default value is 6.
9975
9976 seed
9977 Set random seed used for setting delay in samples across channels.
9978
9979 adelay
9980 Delay one or more audio channels.
9981
9982 Samples in delayed channel are filled with silence.
9983
9984 The filter accepts the following option:
9985
9986 delays
9987 Set list of delays in milliseconds for each channel separated by
9988 '|'. Unused delays will be silently ignored. If number of given
9989 delays is smaller than number of channels all remaining channels
9990 will not be delayed. If you want to delay exact number of samples,
9991 append 'S' to number. If you want instead to delay in seconds,
9992 append 's' to number.
9993
9994 all Use last set delay for all remaining channels. By default is
9995 disabled. This option if enabled changes how option "delays" is
9996 interpreted.
9997
9998 Examples
9999
10000 • Delay first channel by 1.5 seconds, the third channel by 0.5
10001 seconds and leave the second channel (and any other channels that
10002 may be present) unchanged.
10003
10004 adelay=1500|0|500
10005
10006 • Delay second channel by 500 samples, the third channel by 700
10007 samples and leave the first channel (and any other channels that
10008 may be present) unchanged.
10009
10010 adelay=0|500S|700S
10011
10012 • Delay all channels by same number of samples:
10013
10014 adelay=delays=64S:all=1
10015
10016 adenorm
10017 Remedy denormals in audio by adding extremely low-level noise.
10018
10019 This filter shall be placed before any filter that can produce
10020 denormals.
10021
10022 A description of the accepted parameters follows.
10023
10024 level
10025 Set level of added noise in dB. Default is "-351". Allowed range
10026 is from -451 to -90.
10027
10028 type
10029 Set type of added noise.
10030
10031 dc Add DC signal.
10032
10033 ac Add AC signal.
10034
10035 square
10036 Add square signal.
10037
10038 pulse
10039 Add pulse signal.
10040
10041 Default is "dc".
10042
10043 Commands
10044
10045 This filter supports the all above options as commands.
10046
10047 aderivative, aintegral
10048 Compute derivative/integral of audio stream.
10049
10050 Applying both filters one after another produces original audio.
10051
10052 adynamicequalizer
10053 Apply dynamic equalization to input audio stream.
10054
10055 A description of the accepted options follows.
10056
10057 threshold
10058 Set the detection threshold used to trigger equalization.
10059 Threshold detection is using bandpass filter. Default value is 0.
10060 Allowed range is from 0 to 100.
10061
10062 dfrequency
10063 Set the detection frequency in Hz used for bandpass filter used to
10064 trigger equalization. Default value is 1000 Hz. Allowed range is
10065 between 2 and 1000000 Hz.
10066
10067 dqfactor
10068 Set the detection resonance factor for bandpass filter used to
10069 trigger equalization. Default value is 1. Allowed range is from
10070 0.001 to 1000.
10071
10072 tfrequency
10073 Set the target frequency of equalization filter. Default value is
10074 1000 Hz. Allowed range is between 2 and 1000000 Hz.
10075
10076 tqfactor
10077 Set the target resonance factor for target equalization filter.
10078 Default value is 1. Allowed range is from 0.001 to 1000.
10079
10080 attack
10081 Set the amount of milliseconds the signal from detection has to
10082 rise above the detection threshold before equalization starts.
10083 Default is 20. Allowed range is between 1 and 2000.
10084
10085 release
10086 Set the amount of milliseconds the signal from detection has to
10087 fall below the detection threshold before equalization ends.
10088 Default is 200. Allowed range is between 1 and 2000.
10089
10090 knee
10091 Curve the sharp knee around the detection threshold to calculate
10092 equalization gain more softly. Default is 1. Allowed range is
10093 between 0 and 8.
10094
10095 ratio
10096 Set the ratio by which the equalization gain is raised. Default is
10097 1. Allowed range is between 1 and 20.
10098
10099 makeup
10100 Set the makeup offset in dB by which the equalization gain is
10101 raised. Default is 0. Allowed range is between 0 and 30.
10102
10103 range
10104 Set the max allowed cut/boost amount in dB. Default is 0. Allowed
10105 range is from 0 to 200.
10106
10107 slew
10108 Set the slew factor. Default is 1. Allowed range is from 1 to 200.
10109
10110 mode
10111 Set the mode of filter operation, can be one of the following:
10112
10113 listen
10114 Output only isolated bandpass signal.
10115
10116 cut Cut frequencies above detection threshold.
10117
10118 boost
10119 Boost frequencies bellow detection threshold.
10120
10121 Default mode is cut.
10122
10123 tftype
10124 Set the type of target filter, can be one of the following:
10125
10126 bell
10127 lowshelf
10128 highshelf
10129
10130 Default type is bell.
10131
10132 Commands
10133
10134 This filter supports the all above options as commands.
10135
10136 adynamicsmooth
10137 Apply dynamic smoothing to input audio stream.
10138
10139 A description of the accepted options follows.
10140
10141 sensitivity
10142 Set an amount of sensitivity to frequency fluctations. Default is
10143 2. Allowed range is from 0 to 1e+06.
10144
10145 basefreq
10146 Set a base frequency for smoothing. Default value is 22050.
10147 Allowed range is from 2 to 1e+06.
10148
10149 Commands
10150
10151 This filter supports the all above options as commands.
10152
10153 aecho
10154 Apply echoing to the input audio.
10155
10156 Echoes are reflected sound and can occur naturally amongst mountains
10157 (and sometimes large buildings) when talking or shouting; digital echo
10158 effects emulate this behaviour and are often used to help fill out the
10159 sound of a single instrument or vocal. The time difference between the
10160 original signal and the reflection is the "delay", and the loudness of
10161 the reflected signal is the "decay". Multiple echoes can have
10162 different delays and decays.
10163
10164 A description of the accepted parameters follows.
10165
10166 in_gain
10167 Set input gain of reflected signal. Default is 0.6.
10168
10169 out_gain
10170 Set output gain of reflected signal. Default is 0.3.
10171
10172 delays
10173 Set list of time intervals in milliseconds between original signal
10174 and reflections separated by '|'. Allowed range for each "delay" is
10175 "(0 - 90000.0]". Default is 1000.
10176
10177 decays
10178 Set list of loudness of reflected signals separated by '|'.
10179 Allowed range for each "decay" is "(0 - 1.0]". Default is 0.5.
10180
10181 Examples
10182
10183 • Make it sound as if there are twice as many instruments as are
10184 actually playing:
10185
10186 aecho=0.8:0.88:60:0.4
10187
10188 • If delay is very short, then it sounds like a (metallic) robot
10189 playing music:
10190
10191 aecho=0.8:0.88:6:0.4
10192
10193 • A longer delay will sound like an open air concert in the
10194 mountains:
10195
10196 aecho=0.8:0.9:1000:0.3
10197
10198 • Same as above but with one more mountain:
10199
10200 aecho=0.8:0.9:1000|1800:0.3|0.25
10201
10202 aemphasis
10203 Audio emphasis filter creates or restores material directly taken from
10204 LPs or emphased CDs with different filter curves. E.g. to store music
10205 on vinyl the signal has to be altered by a filter first to even out the
10206 disadvantages of this recording medium. Once the material is played
10207 back the inverse filter has to be applied to restore the distortion of
10208 the frequency response.
10209
10210 The filter accepts the following options:
10211
10212 level_in
10213 Set input gain.
10214
10215 level_out
10216 Set output gain.
10217
10218 mode
10219 Set filter mode. For restoring material use "reproduction" mode,
10220 otherwise use "production" mode. Default is "reproduction" mode.
10221
10222 type
10223 Set filter type. Selects medium. Can be one of the following:
10224
10225 col select Columbia.
10226
10227 emi select EMI.
10228
10229 bsi select BSI (78RPM).
10230
10231 riaa
10232 select RIAA.
10233
10234 cd select Compact Disc (CD).
10235
10236 50fm
10237 select 50Xs (FM).
10238
10239 75fm
10240 select 75Xs (FM).
10241
10242 50kf
10243 select 50Xs (FM-KF).
10244
10245 75kf
10246 select 75Xs (FM-KF).
10247
10248 Commands
10249
10250 This filter supports the all above options as commands.
10251
10252 aeval
10253 Modify an audio signal according to the specified expressions.
10254
10255 This filter accepts one or more expressions (one for each channel),
10256 which are evaluated and used to modify a corresponding audio signal.
10257
10258 It accepts the following parameters:
10259
10260 exprs
10261 Set the '|'-separated expressions list for each separate channel.
10262 If the number of input channels is greater than the number of
10263 expressions, the last specified expression is used for the
10264 remaining output channels.
10265
10266 channel_layout, c
10267 Set output channel layout. If not specified, the channel layout is
10268 specified by the number of expressions. If set to same, it will use
10269 by default the same input channel layout.
10270
10271 Each expression in exprs can contain the following constants and
10272 functions:
10273
10274 ch channel number of the current expression
10275
10276 n number of the evaluated sample, starting from 0
10277
10278 s sample rate
10279
10280 t time of the evaluated sample expressed in seconds
10281
10282 nb_in_channels
10283 nb_out_channels
10284 input and output number of channels
10285
10286 val(CH)
10287 the value of input channel with number CH
10288
10289 Note: this filter is slow. For faster processing you should use a
10290 dedicated filter.
10291
10292 Examples
10293
10294 • Half volume:
10295
10296 aeval=val(ch)/2:c=same
10297
10298 • Invert phase of the second channel:
10299
10300 aeval=val(0)|-val(1)
10301
10302 aexciter
10303 An exciter is used to produce high sound that is not present in the
10304 original signal. This is done by creating harmonic distortions of the
10305 signal which are restricted in range and added to the original signal.
10306 An Exciter raises the upper end of an audio signal without simply
10307 raising the higher frequencies like an equalizer would do to create a
10308 more "crisp" or "brilliant" sound.
10309
10310 The filter accepts the following options:
10311
10312 level_in
10313 Set input level prior processing of signal. Allowed range is from
10314 0 to 64. Default value is 1.
10315
10316 level_out
10317 Set output level after processing of signal. Allowed range is from
10318 0 to 64. Default value is 1.
10319
10320 amount
10321 Set the amount of harmonics added to original signal. Allowed
10322 range is from 0 to 64. Default value is 1.
10323
10324 drive
10325 Set the amount of newly created harmonics. Allowed range is from
10326 0.1 to 10. Default value is 8.5.
10327
10328 blend
10329 Set the octave of newly created harmonics. Allowed range is from
10330 -10 to 10. Default value is 0.
10331
10332 freq
10333 Set the lower frequency limit of producing harmonics in Hz.
10334 Allowed range is from 2000 to 12000 Hz. Default is 7500 Hz.
10335
10336 ceil
10337 Set the upper frequency limit of producing harmonics. Allowed
10338 range is from 9999 to 20000 Hz. If value is lower than 10000 Hz no
10339 limit is applied.
10340
10341 listen
10342 Mute the original signal and output only added harmonics. By
10343 default is disabled.
10344
10345 Commands
10346
10347 This filter supports the all above options as commands.
10348
10349 afade
10350 Apply fade-in/out effect to input audio.
10351
10352 A description of the accepted parameters follows.
10353
10354 type, t
10355 Specify the effect type, can be either "in" for fade-in, or "out"
10356 for a fade-out effect. Default is "in".
10357
10358 start_sample, ss
10359 Specify the number of the start sample for starting to apply the
10360 fade effect. Default is 0.
10361
10362 nb_samples, ns
10363 Specify the number of samples for which the fade effect has to
10364 last. At the end of the fade-in effect the output audio will have
10365 the same volume as the input audio, at the end of the fade-out
10366 transition the output audio will be silence. Default is 44100.
10367
10368 start_time, st
10369 Specify the start time of the fade effect. Default is 0. The value
10370 must be specified as a time duration; see the Time duration section
10371 in the ffmpeg-utils(1) manual for the accepted syntax. If set this
10372 option is used instead of start_sample.
10373
10374 duration, d
10375 Specify the duration of the fade effect. See the Time duration
10376 section in the ffmpeg-utils(1) manual for the accepted syntax. At
10377 the end of the fade-in effect the output audio will have the same
10378 volume as the input audio, at the end of the fade-out transition
10379 the output audio will be silence. By default the duration is
10380 determined by nb_samples. If set this option is used instead of
10381 nb_samples.
10382
10383 curve
10384 Set curve for fade transition.
10385
10386 It accepts the following values:
10387
10388 tri select triangular, linear slope (default)
10389
10390 qsin
10391 select quarter of sine wave
10392
10393 hsin
10394 select half of sine wave
10395
10396 esin
10397 select exponential sine wave
10398
10399 log select logarithmic
10400
10401 ipar
10402 select inverted parabola
10403
10404 qua select quadratic
10405
10406 cub select cubic
10407
10408 squ select square root
10409
10410 cbr select cubic root
10411
10412 par select parabola
10413
10414 exp select exponential
10415
10416 iqsin
10417 select inverted quarter of sine wave
10418
10419 ihsin
10420 select inverted half of sine wave
10421
10422 dese
10423 select double-exponential seat
10424
10425 desi
10426 select double-exponential sigmoid
10427
10428 losi
10429 select logistic sigmoid
10430
10431 sinc
10432 select sine cardinal function
10433
10434 isinc
10435 select inverted sine cardinal function
10436
10437 nofade
10438 no fade applied
10439
10440 Commands
10441
10442 This filter supports the all above options as commands.
10443
10444 Examples
10445
10446 • Fade in first 15 seconds of audio:
10447
10448 afade=t=in:ss=0:d=15
10449
10450 • Fade out last 25 seconds of a 900 seconds audio:
10451
10452 afade=t=out:st=875:d=25
10453
10454 afftdn
10455 Denoise audio samples with FFT.
10456
10457 A description of the accepted parameters follows.
10458
10459 noise_reduction, nr
10460 Set the noise reduction in dB, allowed range is 0.01 to 97.
10461 Default value is 12 dB.
10462
10463 noise_floor, nf
10464 Set the noise floor in dB, allowed range is -80 to -20. Default
10465 value is -50 dB.
10466
10467 noise_type, nt
10468 Set the noise type.
10469
10470 It accepts the following values:
10471
10472 white, w
10473 Select white noise.
10474
10475 vinyl, v
10476 Select vinyl noise.
10477
10478 shellac, s
10479 Select shellac noise.
10480
10481 custom, c
10482 Select custom noise, defined in "bn" option.
10483
10484 Default value is white noise.
10485
10486 band_noise, bn
10487 Set custom band noise profile for every one of 15 bands. Bands are
10488 separated by ' ' or '|'.
10489
10490 residual_floor, rf
10491 Set the residual floor in dB, allowed range is -80 to -20. Default
10492 value is -38 dB.
10493
10494 track_noise, tn
10495 Enable noise floor tracking. By default is disabled. With this
10496 enabled, noise floor is automatically adjusted.
10497
10498 track_residual, tr
10499 Enable residual tracking. By default is disabled.
10500
10501 output_mode, om
10502 Set the output mode.
10503
10504 It accepts the following values:
10505
10506 input, i
10507 Pass input unchanged.
10508
10509 output, o
10510 Pass noise filtered out.
10511
10512 noise, n
10513 Pass only noise.
10514
10515 Default value is output.
10516
10517 adaptivity, ad
10518 Set the adaptivity factor, used how fast to adapt gains adjustments
10519 per each frequency bin. Value 0 enables instant adaptation, while
10520 higher values react much slower. Allowed range is from 0 to 1.
10521 Default value is 0.5.
10522
10523 floor_offset, fo
10524 Set the noise floor offset factor. This option is used to adjust
10525 offset applied to measured noise floor. It is only effective when
10526 noise floor tracking is enabled. Allowed range is from -2.0 to
10527 2.0. Default value is 1.0.
10528
10529 noise_link, nl
10530 Set the noise link used for multichannel audio.
10531
10532 It accepts the following values:
10533
10534 none
10535 Use unchanged channel's noise floor.
10536
10537 min Use measured min noise floor of all channels.
10538
10539 max Use measured max noise floor of all channels.
10540
10541 average
10542 Use measured average noise floor of all channels.
10543
10544 Default value is min.
10545
10546 band_multiplier, bm
10547 Set the band multiplier factor, used how much to spread bands
10548 across frequency bins. Allowed range is from 0.2 to 5. Default
10549 value is 1.25.
10550
10551 sample_noise, sn
10552 Toggle capturing and measurement of noise profile from input audio.
10553
10554 It accepts the following values:
10555
10556 start, begin
10557 Start sample noise capture.
10558
10559 stop, end
10560 Stop sample noise capture and measure new noise band profile.
10561
10562 Default value is "none".
10563
10564 gain_smooth, gs
10565 Set gain smooth spatial radius, used to smooth gains applied to
10566 each frequency bin. Useful to reduce random music noise artefacts.
10567 Higher values increases smoothing of gains. Allowed range is from
10568 0 to 50. Default value is 0.
10569
10570 Commands
10571
10572 This filter supports the some above mentioned options as commands.
10573
10574 Examples
10575
10576 • Reduce white noise by 10dB, and use previously measured noise floor
10577 of -40dB:
10578
10579 afftdn=nr=10:nf=-40
10580
10581 • Reduce white noise by 10dB, also set initial noise floor to -80dB
10582 and enable automatic tracking of noise floor so noise floor will
10583 gradually change during processing:
10584
10585 afftdn=nr=10:nf=-80:tn=1
10586
10587 • Reduce noise by 20dB, using noise floor of -40dB and using commands
10588 to take noise profile of first 0.4 seconds of input audio:
10589
10590 asendcmd=0.0 afftdn sn start,asendcmd=0.4 afftdn sn stop,afftdn=nr=20:nf=-40
10591
10592 afftfilt
10593 Apply arbitrary expressions to samples in frequency domain.
10594
10595 real
10596 Set frequency domain real expression for each separate channel
10597 separated by '|'. Default is "re". If the number of input channels
10598 is greater than the number of expressions, the last specified
10599 expression is used for the remaining output channels.
10600
10601 imag
10602 Set frequency domain imaginary expression for each separate channel
10603 separated by '|'. Default is "im".
10604
10605 Each expression in real and imag can contain the following
10606 constants and functions:
10607
10608 sr sample rate
10609
10610 b current frequency bin number
10611
10612 nb number of available bins
10613
10614 ch channel number of the current expression
10615
10616 chs number of channels
10617
10618 pts current frame pts
10619
10620 re current real part of frequency bin of current channel
10621
10622 im current imaginary part of frequency bin of current channel
10623
10624 real(b, ch)
10625 Return the value of real part of frequency bin at location
10626 (bin,channel)
10627
10628 imag(b, ch)
10629 Return the value of imaginary part of frequency bin at location
10630 (bin,channel)
10631
10632 win_size
10633 Set window size. Allowed range is from 16 to 131072. Default is
10634 4096
10635
10636 win_func
10637 Set window function.
10638
10639 It accepts the following values:
10640
10641 rect
10642 bartlett
10643 hann, hanning
10644 hamming
10645 blackman
10646 welch
10647 flattop
10648 bharris
10649 bnuttall
10650 bhann
10651 sine
10652 nuttall
10653 lanczos
10654 gauss
10655 tukey
10656 dolph
10657 cauchy
10658 parzen
10659 poisson
10660 bohman
10661
10662 Default is "hann".
10663
10664 overlap
10665 Set window overlap. If set to 1, the recommended overlap for
10666 selected window function will be picked. Default is 0.75.
10667
10668 Examples
10669
10670 • Leave almost only low frequencies in audio:
10671
10672 afftfilt="'real=re * (1-clip((b/nb)*b,0,1))':imag='im * (1-clip((b/nb)*b,0,1))'"
10673
10674 • Apply robotize effect:
10675
10676 afftfilt="real='hypot(re,im)*sin(0)':imag='hypot(re,im)*cos(0)':win_size=512:overlap=0.75"
10677
10678 • Apply whisper effect:
10679
10680 afftfilt="real='hypot(re,im)*cos((random(0)*2-1)*2*3.14)':imag='hypot(re,im)*sin((random(1)*2-1)*2*3.14)':win_size=128:overlap=0.8"
10681
10682 afir
10683 Apply an arbitrary Finite Impulse Response filter.
10684
10685 This filter is designed for applying long FIR filters, up to 60 seconds
10686 long.
10687
10688 It can be used as component for digital crossover filters, room
10689 equalization, cross talk cancellation, wavefield synthesis,
10690 auralization, ambiophonics, ambisonics and spatialization.
10691
10692 This filter uses the streams higher than first one as FIR coefficients.
10693 If the non-first stream holds a single channel, it will be used for all
10694 input channels in the first stream, otherwise the number of channels in
10695 the non-first stream must be same as the number of channels in the
10696 first stream.
10697
10698 It accepts the following parameters:
10699
10700 dry Set dry gain. This sets input gain.
10701
10702 wet Set wet gain. This sets final output gain.
10703
10704 length
10705 Set Impulse Response filter length. Default is 1, which means whole
10706 IR is processed.
10707
10708 gtype
10709 Enable applying gain measured from power of IR.
10710
10711 Set which approach to use for auto gain measurement.
10712
10713 none
10714 Do not apply any gain.
10715
10716 peak
10717 select peak gain, very conservative approach. This is default
10718 value.
10719
10720 dc select DC gain, limited application.
10721
10722 gn select gain to noise approach, this is most popular one.
10723
10724 irgain
10725 Set gain to be applied to IR coefficients before filtering.
10726 Allowed range is 0 to 1. This gain is applied after any gain
10727 applied with gtype option.
10728
10729 irfmt
10730 Set format of IR stream. Can be "mono" or "input". Default is
10731 "input".
10732
10733 maxir
10734 Set max allowed Impulse Response filter duration in seconds.
10735 Default is 30 seconds. Allowed range is 0.1 to 60 seconds.
10736
10737 response
10738 Show IR frequency response, magnitude(magenta), phase(green) and
10739 group delay(yellow) in additional video stream. By default it is
10740 disabled.
10741
10742 channel
10743 Set for which IR channel to display frequency response. By default
10744 is first channel displayed. This option is used only when response
10745 is enabled.
10746
10747 size
10748 Set video stream size. This option is used only when response is
10749 enabled.
10750
10751 rate
10752 Set video stream frame rate. This option is used only when response
10753 is enabled.
10754
10755 minp
10756 Set minimal partition size used for convolution. Default is 8192.
10757 Allowed range is from 1 to 32768. Lower values decreases latency
10758 at cost of higher CPU usage.
10759
10760 maxp
10761 Set maximal partition size used for convolution. Default is 8192.
10762 Allowed range is from 8 to 32768. Lower values may increase CPU
10763 usage.
10764
10765 nbirs
10766 Set number of input impulse responses streams which will be
10767 switchable at runtime. Allowed range is from 1 to 32. Default is
10768 1.
10769
10770 ir Set IR stream which will be used for convolution, starting from 0,
10771 should always be lower than supplied value by "nbirs" option.
10772 Default is 0. This option can be changed at runtime via commands.
10773
10774 precision
10775 Set which precision to use when processing samples.
10776
10777 auto
10778 Auto pick internal sample format depending on other filters.
10779
10780 float
10781 Always use single-floating point precision sample format.
10782
10783 double
10784 Always use double-floating point precision sample format.
10785
10786 Default value is auto.
10787
10788 Examples
10789
10790 • Apply reverb to stream using mono IR file as second input, complete
10791 command using ffmpeg:
10792
10793 ffmpeg -i input.wav -i middle_tunnel_1way_mono.wav -lavfi afir output.wav
10794
10795 aformat
10796 Set output format constraints for the input audio. The framework will
10797 negotiate the most appropriate format to minimize conversions.
10798
10799 It accepts the following parameters:
10800
10801 sample_fmts, f
10802 A '|'-separated list of requested sample formats.
10803
10804 sample_rates, r
10805 A '|'-separated list of requested sample rates.
10806
10807 channel_layouts, cl
10808 A '|'-separated list of requested channel layouts.
10809
10810 See the Channel Layout section in the ffmpeg-utils(1) manual for
10811 the required syntax.
10812
10813 If a parameter is omitted, all values are allowed.
10814
10815 Force the output to either unsigned 8-bit or signed 16-bit stereo
10816
10817 aformat=sample_fmts=u8|s16:channel_layouts=stereo
10818
10819 afreqshift
10820 Apply frequency shift to input audio samples.
10821
10822 The filter accepts the following options:
10823
10824 shift
10825 Specify frequency shift. Allowed range is -INT_MAX to INT_MAX.
10826 Default value is 0.0.
10827
10828 level
10829 Set output gain applied to final output. Allowed range is from 0.0
10830 to 1.0. Default value is 1.0.
10831
10832 order
10833 Set filter order used for filtering. Allowed range is from 1 to 16.
10834 Default value is 8.
10835
10836 Commands
10837
10838 This filter supports the all above options as commands.
10839
10840 afwtdn
10841 Reduce broadband noise from input samples using Wavelets.
10842
10843 A description of the accepted options follows.
10844
10845 sigma
10846 Set the noise sigma, allowed range is from 0 to 1. Default value
10847 is 0. This option controls strength of denoising applied to input
10848 samples. Most useful way to set this option is via decibels, eg.
10849 -45dB.
10850
10851 levels
10852 Set the number of wavelet levels of decomposition. Allowed range
10853 is from 1 to 12. Default value is 10. Setting this too low make
10854 denoising performance very poor.
10855
10856 wavet
10857 Set wavelet type for decomposition of input frame. They are sorted
10858 by number of coefficients, from lowest to highest. More
10859 coefficients means worse filtering speed, but overall better
10860 quality. Available wavelets are:
10861
10862 sym2
10863 sym4
10864 rbior68
10865 deb10
10866 sym10
10867 coif5
10868 bl3
10869 percent
10870 Set percent of full denoising. Allowed range is from 0 to 100
10871 percent. Default value is 85 percent or partial denoising.
10872
10873 profile
10874 If enabled, first input frame will be used as noise profile. If
10875 first frame samples contain non-noise performance will be very
10876 poor.
10877
10878 adaptive
10879 If enabled, input frames are analyzed for presence of noise. If
10880 noise is detected with high possibility then input frame profile
10881 will be used for processing following frames, until new noise frame
10882 is detected.
10883
10884 samples
10885 Set size of single frame in number of samples. Allowed range is
10886 from 512 to 65536. Default frame size is 8192 samples.
10887
10888 softness
10889 Set softness applied inside thresholding function. Allowed range is
10890 from 0 to 10. Default softness is 1.
10891
10892 Commands
10893
10894 This filter supports the all above options as commands.
10895
10896 agate
10897 A gate is mainly used to reduce lower parts of a signal. This kind of
10898 signal processing reduces disturbing noise between useful signals.
10899
10900 Gating is done by detecting the volume below a chosen level threshold
10901 and dividing it by the factor set with ratio. The bottom of the noise
10902 floor is set via range. Because an exact manipulation of the signal
10903 would cause distortion of the waveform the reduction can be levelled
10904 over time. This is done by setting attack and release.
10905
10906 attack determines how long the signal has to fall below the threshold
10907 before any reduction will occur and release sets the time the signal
10908 has to rise above the threshold to reduce the reduction again. Shorter
10909 signals than the chosen attack time will be left untouched.
10910
10911 level_in
10912 Set input level before filtering. Default is 1. Allowed range is
10913 from 0.015625 to 64.
10914
10915 mode
10916 Set the mode of operation. Can be "upward" or "downward". Default
10917 is "downward". If set to "upward" mode, higher parts of signal will
10918 be amplified, expanding dynamic range in upward direction.
10919 Otherwise, in case of "downward" lower parts of signal will be
10920 reduced.
10921
10922 range
10923 Set the level of gain reduction when the signal is below the
10924 threshold. Default is 0.06125. Allowed range is from 0 to 1.
10925 Setting this to 0 disables reduction and then filter behaves like
10926 expander.
10927
10928 threshold
10929 If a signal rises above this level the gain reduction is released.
10930 Default is 0.125. Allowed range is from 0 to 1.
10931
10932 ratio
10933 Set a ratio by which the signal is reduced. Default is 2. Allowed
10934 range is from 1 to 9000.
10935
10936 attack
10937 Amount of milliseconds the signal has to rise above the threshold
10938 before gain reduction stops. Default is 20 milliseconds. Allowed
10939 range is from 0.01 to 9000.
10940
10941 release
10942 Amount of milliseconds the signal has to fall below the threshold
10943 before the reduction is increased again. Default is 250
10944 milliseconds. Allowed range is from 0.01 to 9000.
10945
10946 makeup
10947 Set amount of amplification of signal after processing. Default is
10948 1. Allowed range is from 1 to 64.
10949
10950 knee
10951 Curve the sharp knee around the threshold to enter gain reduction
10952 more softly. Default is 2.828427125. Allowed range is from 1 to 8.
10953
10954 detection
10955 Choose if exact signal should be taken for detection or an RMS like
10956 one. Default is "rms". Can be "peak" or "rms".
10957
10958 link
10959 Choose if the average level between all channels or the louder
10960 channel affects the reduction. Default is "average". Can be
10961 "average" or "maximum".
10962
10963 Commands
10964
10965 This filter supports the all above options as commands.
10966
10967 aiir
10968 Apply an arbitrary Infinite Impulse Response filter.
10969
10970 It accepts the following parameters:
10971
10972 zeros, z
10973 Set B/numerator/zeros/reflection coefficients.
10974
10975 poles, p
10976 Set A/denominator/poles/ladder coefficients.
10977
10978 gains, k
10979 Set channels gains.
10980
10981 dry_gain
10982 Set input gain.
10983
10984 wet_gain
10985 Set output gain.
10986
10987 format, f
10988 Set coefficients format.
10989
10990 ll lattice-ladder function
10991
10992 sf analog transfer function
10993
10994 tf digital transfer function
10995
10996 zp Z-plane zeros/poles, cartesian (default)
10997
10998 pr Z-plane zeros/poles, polar radians
10999
11000 pd Z-plane zeros/poles, polar degrees
11001
11002 sp S-plane zeros/poles
11003
11004 process, r
11005 Set type of processing.
11006
11007 d direct processing
11008
11009 s serial processing
11010
11011 p parallel processing
11012
11013 precision, e
11014 Set filtering precision.
11015
11016 dbl double-precision floating-point (default)
11017
11018 flt single-precision floating-point
11019
11020 i32 32-bit integers
11021
11022 i16 16-bit integers
11023
11024 normalize, n
11025 Normalize filter coefficients, by default is enabled. Enabling it
11026 will normalize magnitude response at DC to 0dB.
11027
11028 mix How much to use filtered signal in output. Default is 1. Range is
11029 between 0 and 1.
11030
11031 response
11032 Show IR frequency response, magnitude(magenta), phase(green) and
11033 group delay(yellow) in additional video stream. By default it is
11034 disabled.
11035
11036 channel
11037 Set for which IR channel to display frequency response. By default
11038 is first channel displayed. This option is used only when response
11039 is enabled.
11040
11041 size
11042 Set video stream size. This option is used only when response is
11043 enabled.
11044
11045 Coefficients in "tf" and "sf" format are separated by spaces and are in
11046 ascending order.
11047
11048 Coefficients in "zp" format are separated by spaces and order of
11049 coefficients doesn't matter. Coefficients in "zp" format are complex
11050 numbers with i imaginary unit.
11051
11052 Different coefficients and gains can be provided for every channel, in
11053 such case use '|' to separate coefficients or gains. Last provided
11054 coefficients will be used for all remaining channels.
11055
11056 Examples
11057
11058 • Apply 2 pole elliptic notch at around 5000Hz for 48000 Hz sample
11059 rate:
11060
11061 aiir=k=1:z=7.957584807809675810E-1 -2.575128568908332300 3.674839853930788710 -2.57512875289799137 7.957586296317130880E-1:p=1 -2.86950072432325953 3.63022088054647218 -2.28075678147272232 6.361362326477423500E-1:f=tf:r=d
11062
11063 • Same as above but in "zp" format:
11064
11065 aiir=k=0.79575848078096756:z=0.80918701+0.58773007i 0.80918701-0.58773007i 0.80884700+0.58784055i 0.80884700-0.58784055i:p=0.63892345+0.59951235i 0.63892345-0.59951235i 0.79582691+0.44198673i 0.79582691-0.44198673i:f=zp:r=s
11066
11067 • Apply 3-rd order analog normalized Butterworth low-pass filter,
11068 using analog transfer function format:
11069
11070 aiir=z=1.3057 0 0 0:p=1.3057 2.3892 2.1860 1:f=sf:r=d
11071
11072 alimiter
11073 The limiter prevents an input signal from rising over a desired
11074 threshold. This limiter uses lookahead technology to prevent your
11075 signal from distorting. It means that there is a small delay after the
11076 signal is processed. Keep in mind that the delay it produces is the
11077 attack time you set.
11078
11079 The filter accepts the following options:
11080
11081 level_in
11082 Set input gain. Default is 1.
11083
11084 level_out
11085 Set output gain. Default is 1.
11086
11087 limit
11088 Don't let signals above this level pass the limiter. Default is 1.
11089
11090 attack
11091 The limiter will reach its attenuation level in this amount of time
11092 in milliseconds. Default is 5 milliseconds.
11093
11094 release
11095 Come back from limiting to attenuation 1.0 in this amount of
11096 milliseconds. Default is 50 milliseconds.
11097
11098 asc When gain reduction is always needed ASC takes care of releasing to
11099 an average reduction level rather than reaching a reduction of 0 in
11100 the release time.
11101
11102 asc_level
11103 Select how much the release time is affected by ASC, 0 means nearly
11104 no changes in release time while 1 produces higher release times.
11105
11106 level
11107 Auto level output signal. Default is enabled. This normalizes
11108 audio back to 0dB if enabled.
11109
11110 latency
11111 Compensate the delay introduced by using the lookahead buffer set
11112 with attack parameter. Also flush the valid audio data in the
11113 lookahead buffer when the stream hits EOF.
11114
11115 Depending on picked setting it is recommended to upsample input 2x or
11116 4x times with aresample before applying this filter.
11117
11118 allpass
11119 Apply a two-pole all-pass filter with central frequency (in Hz)
11120 frequency, and filter-width width. An all-pass filter changes the
11121 audio's frequency to phase relationship without changing its frequency
11122 to amplitude relationship.
11123
11124 The filter accepts the following options:
11125
11126 frequency, f
11127 Set frequency in Hz.
11128
11129 width_type, t
11130 Set method to specify band-width of filter.
11131
11132 h Hz
11133
11134 q Q-Factor
11135
11136 o octave
11137
11138 s slope
11139
11140 k kHz
11141
11142 width, w
11143 Specify the band-width of a filter in width_type units.
11144
11145 mix, m
11146 How much to use filtered signal in output. Default is 1. Range is
11147 between 0 and 1.
11148
11149 channels, c
11150 Specify which channels to filter, by default all available are
11151 filtered.
11152
11153 normalize, n
11154 Normalize biquad coefficients, by default is disabled. Enabling it
11155 will normalize magnitude response at DC to 0dB.
11156
11157 order, o
11158 Set the filter order, can be 1 or 2. Default is 2.
11159
11160 transform, a
11161 Set transform type of IIR filter.
11162
11163 di
11164 dii
11165 tdi
11166 tdii
11167 latt
11168 svf
11169 zdf
11170 precision, r
11171 Set precison of filtering.
11172
11173 auto
11174 Pick automatic sample format depending on surround filters.
11175
11176 s16 Always use signed 16-bit.
11177
11178 s32 Always use signed 32-bit.
11179
11180 f32 Always use float 32-bit.
11181
11182 f64 Always use float 64-bit.
11183
11184 Commands
11185
11186 This filter supports the following commands:
11187
11188 frequency, f
11189 Change allpass frequency. Syntax for the command is : "frequency"
11190
11191 width_type, t
11192 Change allpass width_type. Syntax for the command is :
11193 "width_type"
11194
11195 width, w
11196 Change allpass width. Syntax for the command is : "width"
11197
11198 mix, m
11199 Change allpass mix. Syntax for the command is : "mix"
11200
11201 aloop
11202 Loop audio samples.
11203
11204 The filter accepts the following options:
11205
11206 loop
11207 Set the number of loops. Setting this value to -1 will result in
11208 infinite loops. Default is 0.
11209
11210 size
11211 Set maximal number of samples. Default is 0.
11212
11213 start
11214 Set first sample of loop. Default is 0.
11215
11216 amerge
11217 Merge two or more audio streams into a single multi-channel stream.
11218
11219 The filter accepts the following options:
11220
11221 inputs
11222 Set the number of inputs. Default is 2.
11223
11224 If the channel layouts of the inputs are disjoint, and therefore
11225 compatible, the channel layout of the output will be set accordingly
11226 and the channels will be reordered as necessary. If the channel layouts
11227 of the inputs are not disjoint, the output will have all the channels
11228 of the first input then all the channels of the second input, in that
11229 order, and the channel layout of the output will be the default value
11230 corresponding to the total number of channels.
11231
11232 For example, if the first input is in 2.1 (FL+FR+LF) and the second
11233 input is FC+BL+BR, then the output will be in 5.1, with the channels in
11234 the following order: a1, a2, b1, a3, b2, b3 (a1 is the first channel of
11235 the first input, b1 is the first channel of the second input).
11236
11237 On the other hand, if both input are in stereo, the output channels
11238 will be in the default order: a1, a2, b1, b2, and the channel layout
11239 will be arbitrarily set to 4.0, which may or may not be the expected
11240 value.
11241
11242 All inputs must have the same sample rate, and format.
11243
11244 If inputs do not have the same duration, the output will stop with the
11245 shortest.
11246
11247 Examples
11248
11249 • Merge two mono files into a stereo stream:
11250
11251 amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
11252
11253 • Multiple merges assuming 1 video stream and 6 audio streams in
11254 input.mkv:
11255
11256 ffmpeg -i input.mkv -filter_complex "[0:1][0:2][0:3][0:4][0:5][0:6] amerge=inputs=6" -c:a pcm_s16le output.mkv
11257
11258 amix
11259 Mixes multiple audio inputs into a single output.
11260
11261 Note that this filter only supports float samples (the amerge and pan
11262 audio filters support many formats). If the amix input has integer
11263 samples then aresample will be automatically inserted to perform the
11264 conversion to float samples.
11265
11266 For example
11267
11268 ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
11269
11270 will mix 3 input audio streams to a single output with the same
11271 duration as the first input and a dropout transition time of 3 seconds.
11272
11273 It accepts the following parameters:
11274
11275 inputs
11276 The number of inputs. If unspecified, it defaults to 2.
11277
11278 duration
11279 How to determine the end-of-stream.
11280
11281 longest
11282 The duration of the longest input. (default)
11283
11284 shortest
11285 The duration of the shortest input.
11286
11287 first
11288 The duration of the first input.
11289
11290 dropout_transition
11291 The transition time, in seconds, for volume renormalization when an
11292 input stream ends. The default value is 2 seconds.
11293
11294 weights
11295 Specify weight of each input audio stream as sequence. Each weight
11296 is separated by space. By default all inputs have same weight.
11297
11298 normalize
11299 Always scale inputs instead of only doing summation of samples.
11300 Beware of heavy clipping if inputs are not normalized prior or
11301 after filtering by this filter if this option is disabled. By
11302 default is enabled.
11303
11304 Commands
11305
11306 This filter supports the following commands:
11307
11308 weights
11309 normalize
11310 Syntax is same as option with same name.
11311
11312 amultiply
11313 Multiply first audio stream with second audio stream and store result
11314 in output audio stream. Multiplication is done by multiplying each
11315 sample from first stream with sample at same position from second
11316 stream.
11317
11318 With this element-wise multiplication one can create amplitude fades
11319 and amplitude modulations.
11320
11321 anequalizer
11322 High-order parametric multiband equalizer for each channel.
11323
11324 It accepts the following parameters:
11325
11326 params
11327 This option string is in format: "cchn f=cf w=w g=g t=f | ..."
11328 Each equalizer band is separated by '|'.
11329
11330 chn Set channel number to which equalization will be applied. If
11331 input doesn't have that channel the entry is ignored.
11332
11333 f Set central frequency for band. If input doesn't have that
11334 frequency the entry is ignored.
11335
11336 w Set band width in Hertz.
11337
11338 g Set band gain in dB.
11339
11340 t Set filter type for band, optional, can be:
11341
11342 0 Butterworth, this is default.
11343
11344 1 Chebyshev type 1.
11345
11346 2 Chebyshev type 2.
11347
11348 curves
11349 With this option activated frequency response of anequalizer is
11350 displayed in video stream.
11351
11352 size
11353 Set video stream size. Only useful if curves option is activated.
11354
11355 mgain
11356 Set max gain that will be displayed. Only useful if curves option
11357 is activated. Setting this to a reasonable value makes it possible
11358 to display gain which is derived from neighbour bands which are too
11359 close to each other and thus produce higher gain when both are
11360 activated.
11361
11362 fscale
11363 Set frequency scale used to draw frequency response in video
11364 output. Can be linear or logarithmic. Default is logarithmic.
11365
11366 colors
11367 Set color for each channel curve which is going to be displayed in
11368 video stream. This is list of color names separated by space or by
11369 '|'. Unrecognised or missing colors will be replaced by white
11370 color.
11371
11372 Examples
11373
11374 • Lower gain by 10 of central frequency 200Hz and width 100 Hz for
11375 first 2 channels using Chebyshev type 1 filter:
11376
11377 anequalizer=c0 f=200 w=100 g=-10 t=1|c1 f=200 w=100 g=-10 t=1
11378
11379 Commands
11380
11381 This filter supports the following commands:
11382
11383 change
11384 Alter existing filter parameters. Syntax for the commands is :
11385 "fN|f=freq|w=width|g=gain"
11386
11387 fN is existing filter number, starting from 0, if no such filter is
11388 available error is returned. freq set new frequency parameter.
11389 width set new width parameter in Hertz. gain set new gain
11390 parameter in dB.
11391
11392 Full filter invocation with asendcmd may look like this:
11393 asendcmd=c='4.0 anequalizer change
11394 0|f=200|w=50|g=1',anequalizer=...
11395
11396 anlmdn
11397 Reduce broadband noise in audio samples using Non-Local Means
11398 algorithm.
11399
11400 Each sample is adjusted by looking for other samples with similar
11401 contexts. This context similarity is defined by comparing their
11402 surrounding patches of size p. Patches are searched in an area of r
11403 around the sample.
11404
11405 The filter accepts the following options:
11406
11407 strength, s
11408 Set denoising strength. Allowed range is from 0.00001 to 10000.
11409 Default value is 0.00001.
11410
11411 patch, p
11412 Set patch radius duration. Allowed range is from 1 to 100
11413 milliseconds. Default value is 2 milliseconds.
11414
11415 research, r
11416 Set research radius duration. Allowed range is from 2 to 300
11417 milliseconds. Default value is 6 milliseconds.
11418
11419 output, o
11420 Set the output mode.
11421
11422 It accepts the following values:
11423
11424 i Pass input unchanged.
11425
11426 o Pass noise filtered out.
11427
11428 n Pass only noise.
11429
11430 Default value is o.
11431
11432 smooth, m
11433 Set smooth factor. Default value is 11. Allowed range is from 1 to
11434 1000.
11435
11436 Commands
11437
11438 This filter supports the all above options as commands.
11439
11440 anlmf, anlms
11441 Apply Normalized Least-Mean-(Squares|Fourth) algorithm to the first
11442 audio stream using the second audio stream.
11443
11444 This adaptive filter is used to mimic a desired filter by finding the
11445 filter coefficients that relate to producing the least mean square of
11446 the error signal (difference between the desired, 2nd input audio
11447 stream and the actual signal, the 1st input audio stream).
11448
11449 A description of the accepted options follows.
11450
11451 order
11452 Set filter order.
11453
11454 mu Set filter mu.
11455
11456 eps Set the filter eps.
11457
11458 leakage
11459 Set the filter leakage.
11460
11461 out_mode
11462 It accepts the following values:
11463
11464 i Pass the 1st input.
11465
11466 d Pass the 2nd input.
11467
11468 o Pass filtered samples.
11469
11470 n Pass difference between desired and filtered samples.
11471
11472 Default value is o.
11473
11474 Examples
11475
11476 • One of many usages of this filter is noise reduction, input audio
11477 is filtered with same samples that are delayed by fixed amount, one
11478 such example for stereo audio is:
11479
11480 asplit[a][b],[a]adelay=32S|32S[a],[b][a]anlms=order=128:leakage=0.0005:mu=.5:out_mode=o
11481
11482 Commands
11483
11484 This filter supports the same commands as options, excluding option
11485 "order".
11486
11487 anull
11488 Pass the audio source unchanged to the output.
11489
11490 apad
11491 Pad the end of an audio stream with silence.
11492
11493 This can be used together with ffmpeg -shortest to extend audio streams
11494 to the same length as the video stream.
11495
11496 A description of the accepted options follows.
11497
11498 packet_size
11499 Set silence packet size. Default value is 4096.
11500
11501 pad_len
11502 Set the number of samples of silence to add to the end. After the
11503 value is reached, the stream is terminated. This option is mutually
11504 exclusive with whole_len.
11505
11506 whole_len
11507 Set the minimum total number of samples in the output audio stream.
11508 If the value is longer than the input audio length, silence is
11509 added to the end, until the value is reached. This option is
11510 mutually exclusive with pad_len.
11511
11512 pad_dur
11513 Specify the duration of samples of silence to add. See the Time
11514 duration section in the ffmpeg-utils(1) manual for the accepted
11515 syntax. Used only if set to non-negative value.
11516
11517 whole_dur
11518 Specify the minimum total duration in the output audio stream. See
11519 the Time duration section in the ffmpeg-utils(1) manual for the
11520 accepted syntax. Used only if set to non-negative value. If the
11521 value is longer than the input audio length, silence is added to
11522 the end, until the value is reached. This option is mutually
11523 exclusive with pad_dur
11524
11525 If neither the pad_len nor the whole_len nor pad_dur nor whole_dur
11526 option is set, the filter will add silence to the end of the input
11527 stream indefinitely.
11528
11529 Note that for ffmpeg 4.4 and earlier a zero pad_dur or whole_dur also
11530 caused the filter to add silence indefinitely.
11531
11532 Examples
11533
11534 • Add 1024 samples of silence to the end of the input:
11535
11536 apad=pad_len=1024
11537
11538 • Make sure the audio output will contain at least 10000 samples, pad
11539 the input with silence if required:
11540
11541 apad=whole_len=10000
11542
11543 • Use ffmpeg to pad the audio input with silence, so that the video
11544 stream will always result the shortest and will be converted until
11545 the end in the output file when using the shortest option:
11546
11547 ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT
11548
11549 aphaser
11550 Add a phasing effect to the input audio.
11551
11552 A phaser filter creates series of peaks and troughs in the frequency
11553 spectrum. The position of the peaks and troughs are modulated so that
11554 they vary over time, creating a sweeping effect.
11555
11556 A description of the accepted parameters follows.
11557
11558 in_gain
11559 Set input gain. Default is 0.4.
11560
11561 out_gain
11562 Set output gain. Default is 0.74
11563
11564 delay
11565 Set delay in milliseconds. Default is 3.0.
11566
11567 decay
11568 Set decay. Default is 0.4.
11569
11570 speed
11571 Set modulation speed in Hz. Default is 0.5.
11572
11573 type
11574 Set modulation type. Default is triangular.
11575
11576 It accepts the following values:
11577
11578 triangular, t
11579 sinusoidal, s
11580
11581 aphaseshift
11582 Apply phase shift to input audio samples.
11583
11584 The filter accepts the following options:
11585
11586 shift
11587 Specify phase shift. Allowed range is from -1.0 to 1.0. Default
11588 value is 0.0.
11589
11590 level
11591 Set output gain applied to final output. Allowed range is from 0.0
11592 to 1.0. Default value is 1.0.
11593
11594 order
11595 Set filter order used for filtering. Allowed range is from 1 to 16.
11596 Default value is 8.
11597
11598 Commands
11599
11600 This filter supports the all above options as commands.
11601
11602 apsyclip
11603 Apply Psychoacoustic clipper to input audio stream.
11604
11605 The filter accepts the following options:
11606
11607 level_in
11608 Set input gain. By default it is 1. Range is [0.015625 - 64].
11609
11610 level_out
11611 Set output gain. By default it is 1. Range is [0.015625 - 64].
11612
11613 clip
11614 Set the clipping start value. Default value is 0dBFS or 1.
11615
11616 diff
11617 Output only difference samples, useful to hear introduced
11618 distortions. By default is disabled.
11619
11620 adaptive
11621 Set strength of adaptive distortion applied. Default value is 0.5.
11622 Allowed range is from 0 to 1.
11623
11624 iterations
11625 Set number of iterations of psychoacoustic clipper. Allowed range
11626 is from 1 to 20. Default value is 10.
11627
11628 level
11629 Auto level output signal. Default is disabled. This normalizes
11630 audio back to 0dBFS if enabled.
11631
11632 Commands
11633
11634 This filter supports the all above options as commands.
11635
11636 apulsator
11637 Audio pulsator is something between an autopanner and a tremolo. But
11638 it can produce funny stereo effects as well. Pulsator changes the
11639 volume of the left and right channel based on a LFO (low frequency
11640 oscillator) with different waveforms and shifted phases. This filter
11641 have the ability to define an offset between left and right channel. An
11642 offset of 0 means that both LFO shapes match each other. The left and
11643 right channel are altered equally - a conventional tremolo. An offset
11644 of 50% means that the shape of the right channel is exactly shifted in
11645 phase (or moved backwards about half of the frequency) - pulsator acts
11646 as an autopanner. At 1 both curves match again. Every setting in
11647 between moves the phase shift gapless between all stages and produces
11648 some "bypassing" sounds with sine and triangle waveforms. The more you
11649 set the offset near 1 (starting from the 0.5) the faster the signal
11650 passes from the left to the right speaker.
11651
11652 The filter accepts the following options:
11653
11654 level_in
11655 Set input gain. By default it is 1. Range is [0.015625 - 64].
11656
11657 level_out
11658 Set output gain. By default it is 1. Range is [0.015625 - 64].
11659
11660 mode
11661 Set waveform shape the LFO will use. Can be one of: sine, triangle,
11662 square, sawup or sawdown. Default is sine.
11663
11664 amount
11665 Set modulation. Define how much of original signal is affected by
11666 the LFO.
11667
11668 offset_l
11669 Set left channel offset. Default is 0. Allowed range is [0 - 1].
11670
11671 offset_r
11672 Set right channel offset. Default is 0.5. Allowed range is [0 - 1].
11673
11674 width
11675 Set pulse width. Default is 1. Allowed range is [0 - 2].
11676
11677 timing
11678 Set possible timing mode. Can be one of: bpm, ms or hz. Default is
11679 hz.
11680
11681 bpm Set bpm. Default is 120. Allowed range is [30 - 300]. Only used if
11682 timing is set to bpm.
11683
11684 ms Set ms. Default is 500. Allowed range is [10 - 2000]. Only used if
11685 timing is set to ms.
11686
11687 hz Set frequency in Hz. Default is 2. Allowed range is [0.01 - 100].
11688 Only used if timing is set to hz.
11689
11690 aresample
11691 Resample the input audio to the specified parameters, using the
11692 libswresample library. If none are specified then the filter will
11693 automatically convert between its input and output.
11694
11695 This filter is also able to stretch/squeeze the audio data to make it
11696 match the timestamps or to inject silence / cut out audio to make it
11697 match the timestamps, do a combination of both or do neither.
11698
11699 The filter accepts the syntax [sample_rate:]resampler_options, where
11700 sample_rate expresses a sample rate and resampler_options is a list of
11701 key=value pairs, separated by ":". See the "Resampler Options" section
11702 in the ffmpeg-resampler(1) manual for the complete list of supported
11703 options.
11704
11705 Examples
11706
11707 • Resample the input audio to 44100Hz:
11708
11709 aresample=44100
11710
11711 • Stretch/squeeze samples to the given timestamps, with a maximum of
11712 1000 samples per second compensation:
11713
11714 aresample=async=1000
11715
11716 areverse
11717 Reverse an audio clip.
11718
11719 Warning: This filter requires memory to buffer the entire clip, so
11720 trimming is suggested.
11721
11722 Examples
11723
11724 • Take the first 5 seconds of a clip, and reverse it.
11725
11726 atrim=end=5,areverse
11727
11728 arnndn
11729 Reduce noise from speech using Recurrent Neural Networks.
11730
11731 This filter accepts the following options:
11732
11733 model, m
11734 Set train model file to load. This option is always required.
11735
11736 mix Set how much to mix filtered samples into final output. Allowed
11737 range is from -1 to 1. Default value is 1. Negative values are
11738 special, they set how much to keep filtered noise in the final
11739 filter output. Set this option to -1 to hear actual noise removed
11740 from input signal.
11741
11742 Commands
11743
11744 This filter supports the all above options as commands.
11745
11746 asdr
11747 Measure Audio Signal-to-Distortion Ratio.
11748
11749 This filter takes two audio streams for input, and outputs first audio
11750 stream. Results are in dB per channel at end of either input.
11751
11752 asetnsamples
11753 Set the number of samples per each output audio frame.
11754
11755 The last output packet may contain a different number of samples, as
11756 the filter will flush all the remaining samples when the input audio
11757 signals its end.
11758
11759 The filter accepts the following options:
11760
11761 nb_out_samples, n
11762 Set the number of frames per each output audio frame. The number is
11763 intended as the number of samples per each channel. Default value
11764 is 1024.
11765
11766 pad, p
11767 If set to 1, the filter will pad the last audio frame with zeroes,
11768 so that the last frame will contain the same number of samples as
11769 the previous ones. Default value is 1.
11770
11771 For example, to set the number of per-frame samples to 1234 and disable
11772 padding for the last frame, use:
11773
11774 asetnsamples=n=1234:p=0
11775
11776 asetrate
11777 Set the sample rate without altering the PCM data. This will result in
11778 a change of speed and pitch.
11779
11780 The filter accepts the following options:
11781
11782 sample_rate, r
11783 Set the output sample rate. Default is 44100 Hz.
11784
11785 ashowinfo
11786 Show a line containing various information for each input audio frame.
11787 The input audio is not modified.
11788
11789 The shown line contains a sequence of key/value pairs of the form
11790 key:value.
11791
11792 The following values are shown in the output:
11793
11794 n The (sequential) number of the input frame, starting from 0.
11795
11796 pts The presentation timestamp of the input frame, in time base units;
11797 the time base depends on the filter input pad, and is usually
11798 1/sample_rate.
11799
11800 pts_time
11801 The presentation timestamp of the input frame in seconds.
11802
11803 pos position of the frame in the input stream, -1 if this information
11804 in unavailable and/or meaningless (for example in case of synthetic
11805 audio)
11806
11807 fmt The sample format.
11808
11809 chlayout
11810 The channel layout.
11811
11812 rate
11813 The sample rate for the audio frame.
11814
11815 nb_samples
11816 The number of samples (per channel) in the frame.
11817
11818 checksum
11819 The Adler-32 checksum (printed in hexadecimal) of the audio data.
11820 For planar audio, the data is treated as if all the planes were
11821 concatenated.
11822
11823 plane_checksums
11824 A list of Adler-32 checksums for each data plane.
11825
11826 asoftclip
11827 Apply audio soft clipping.
11828
11829 Soft clipping is a type of distortion effect where the amplitude of a
11830 signal is saturated along a smooth curve, rather than the abrupt shape
11831 of hard-clipping.
11832
11833 This filter accepts the following options:
11834
11835 type
11836 Set type of soft-clipping.
11837
11838 It accepts the following values:
11839
11840 hard
11841 tanh
11842 atan
11843 cubic
11844 exp
11845 alg
11846 quintic
11847 sin
11848 erf
11849 threshold
11850 Set threshold from where to start clipping. Default value is 0dB or
11851 1.
11852
11853 output
11854 Set gain applied to output. Default value is 0dB or 1.
11855
11856 param
11857 Set additional parameter which controls sigmoid function.
11858
11859 oversample
11860 Set oversampling factor.
11861
11862 Commands
11863
11864 This filter supports the all above options as commands.
11865
11866 aspectralstats
11867 Display frequency domain statistical information about the audio
11868 channels. Statistics are calculated and stored as metadata for each
11869 audio channel and for each audio frame.
11870
11871 It accepts the following option:
11872
11873 win_size
11874 Set the window length in samples. Default value is 2048. Allowed
11875 range is from 32 to 65536.
11876
11877 win_func
11878 Set window function.
11879
11880 It accepts the following values:
11881
11882 rect
11883 bartlett
11884 hann, hanning
11885 hamming
11886 blackman
11887 welch
11888 flattop
11889 bharris
11890 bnuttall
11891 bhann
11892 sine
11893 nuttall
11894 lanczos
11895 gauss
11896 tukey
11897 dolph
11898 cauchy
11899 parzen
11900 poisson
11901 bohman
11902
11903 Default is "hann".
11904
11905 overlap
11906 Set window overlap. Allowed range is from 0 to 1. Default value is
11907 0.5.
11908
11909 A list of each metadata key follows:
11910
11911 mean
11912 variance
11913 centroid
11914 spread
11915 skewness
11916 kurtosis
11917 entropy
11918 flatness
11919 crest
11920 flux
11921 slope
11922 decrease
11923 rolloff
11924
11925 asr
11926 Automatic Speech Recognition
11927
11928 This filter uses PocketSphinx for speech recognition. To enable
11929 compilation of this filter, you need to configure FFmpeg with
11930 "--enable-pocketsphinx".
11931
11932 It accepts the following options:
11933
11934 rate
11935 Set sampling rate of input audio. Defaults is 16000. This need to
11936 match speech models, otherwise one will get poor results.
11937
11938 hmm Set dictionary containing acoustic model files.
11939
11940 dict
11941 Set pronunciation dictionary.
11942
11943 lm Set language model file.
11944
11945 lmctl
11946 Set language model set.
11947
11948 lmname
11949 Set which language model to use.
11950
11951 logfn
11952 Set output for log messages.
11953
11954 The filter exports recognized speech as the frame metadata
11955 "lavfi.asr.text".
11956
11957 astats
11958 Display time domain statistical information about the audio channels.
11959 Statistics are calculated and displayed for each audio channel and,
11960 where applicable, an overall figure is also given.
11961
11962 It accepts the following option:
11963
11964 length
11965 Short window length in seconds, used for peak and trough RMS
11966 measurement. Default is 0.05 (50 milliseconds). Allowed range is
11967 "[0 - 10]".
11968
11969 metadata
11970 Set metadata injection. All the metadata keys are prefixed with
11971 "lavfi.astats.X", where "X" is channel number starting from 1 or
11972 string "Overall". Default is disabled.
11973
11974 Available keys for each channel are: DC_offset Min_level Max_level
11975 Min_difference Max_difference Mean_difference RMS_difference
11976 Peak_level RMS_peak RMS_trough Crest_factor Flat_factor Peak_count
11977 Noise_floor Noise_floor_count Entropy Bit_depth Dynamic_range
11978 Zero_crossings Zero_crossings_rate Number_of_NaNs Number_of_Infs
11979 Number_of_denormals
11980
11981 and for Overall: DC_offset Min_level Max_level Min_difference
11982 Max_difference Mean_difference RMS_difference Peak_level RMS_level
11983 RMS_peak RMS_trough Flat_factor Peak_count Noise_floor
11984 Noise_floor_count Entropy Bit_depth Number_of_samples
11985 Number_of_NaNs Number_of_Infs Number_of_denormals
11986
11987 For example full key look like this "lavfi.astats.1.DC_offset" or
11988 this "lavfi.astats.Overall.Peak_count".
11989
11990 For description what each key means read below.
11991
11992 reset
11993 Set the number of frames over which cumulative stats are calculated
11994 before being reset Default is disabled.
11995
11996 measure_perchannel
11997 Select the parameters which are measured per channel. The metadata
11998 keys can be used as flags, default is all which measures
11999 everything. none disables all per channel measurement.
12000
12001 measure_overall
12002 Select the parameters which are measured overall. The metadata keys
12003 can be used as flags, default is all which measures everything.
12004 none disables all overall measurement.
12005
12006 A description of each shown parameter follows:
12007
12008 DC offset
12009 Mean amplitude displacement from zero.
12010
12011 Min level
12012 Minimal sample level.
12013
12014 Max level
12015 Maximal sample level.
12016
12017 Min difference
12018 Minimal difference between two consecutive samples.
12019
12020 Max difference
12021 Maximal difference between two consecutive samples.
12022
12023 Mean difference
12024 Mean difference between two consecutive samples. The average of
12025 each difference between two consecutive samples.
12026
12027 RMS difference
12028 Root Mean Square difference between two consecutive samples.
12029
12030 Peak level dB
12031 RMS level dB
12032 Standard peak and RMS level measured in dBFS.
12033
12034 RMS peak dB
12035 RMS trough dB
12036 Peak and trough values for RMS level measured over a short window.
12037
12038 Crest factor
12039 Standard ratio of peak to RMS level (note: not in dB).
12040
12041 Flat factor
12042 Flatness (i.e. consecutive samples with the same value) of the
12043 signal at its peak levels (i.e. either Min level or Max level).
12044
12045 Peak count
12046 Number of occasions (not the number of samples) that the signal
12047 attained either Min level or Max level.
12048
12049 Noise floor dB
12050 Minimum local peak measured in dBFS over a short window.
12051
12052 Noise floor count
12053 Number of occasions (not the number of samples) that the signal
12054 attained Noise floor.
12055
12056 Entropy
12057 Entropy measured across whole audio. Entropy of value near 1.0 is
12058 typically measured for white noise.
12059
12060 Bit depth
12061 Overall bit depth of audio. Number of bits used for each sample.
12062
12063 Dynamic range
12064 Measured dynamic range of audio in dB.
12065
12066 Zero crossings
12067 Number of points where the waveform crosses the zero level axis.
12068
12069 Zero crossings rate
12070 Rate of Zero crossings and number of audio samples.
12071
12072 asubboost
12073 Boost subwoofer frequencies.
12074
12075 The filter accepts the following options:
12076
12077 dry Set dry gain, how much of original signal is kept. Allowed range is
12078 from 0 to 1. Default value is 1.0.
12079
12080 wet Set wet gain, how much of filtered signal is kept. Allowed range is
12081 from 0 to 1. Default value is 1.0.
12082
12083 boost
12084 Set max boost factor. Allowed range is from 1 to 12. Default value
12085 is 2.
12086
12087 decay
12088 Set delay line decay gain value. Allowed range is from 0 to 1.
12089 Default value is 0.0.
12090
12091 feedback
12092 Set delay line feedback gain value. Allowed range is from 0 to 1.
12093 Default value is 0.9.
12094
12095 cutoff
12096 Set cutoff frequency in Hertz. Allowed range is 50 to 900. Default
12097 value is 100.
12098
12099 slope
12100 Set slope amount for cutoff frequency. Allowed range is 0.0001 to
12101 1. Default value is 0.5.
12102
12103 delay
12104 Set delay. Allowed range is from 1 to 100. Default value is 20.
12105
12106 channels
12107 Set the channels to process. Default value is all available.
12108
12109 Commands
12110
12111 This filter supports the all above options as commands.
12112
12113 asubcut
12114 Cut subwoofer frequencies.
12115
12116 This filter allows to set custom, steeper roll off than highpass
12117 filter, and thus is able to more attenuate frequency content in stop-
12118 band.
12119
12120 The filter accepts the following options:
12121
12122 cutoff
12123 Set cutoff frequency in Hertz. Allowed range is 2 to 200. Default
12124 value is 20.
12125
12126 order
12127 Set filter order. Available values are from 3 to 20. Default value
12128 is 10.
12129
12130 level
12131 Set input gain level. Allowed range is from 0 to 1. Default value
12132 is 1.
12133
12134 Commands
12135
12136 This filter supports the all above options as commands.
12137
12138 asupercut
12139 Cut super frequencies.
12140
12141 The filter accepts the following options:
12142
12143 cutoff
12144 Set cutoff frequency in Hertz. Allowed range is 20000 to 192000.
12145 Default value is 20000.
12146
12147 order
12148 Set filter order. Available values are from 3 to 20. Default value
12149 is 10.
12150
12151 level
12152 Set input gain level. Allowed range is from 0 to 1. Default value
12153 is 1.
12154
12155 Commands
12156
12157 This filter supports the all above options as commands.
12158
12159 asuperpass
12160 Apply high order Butterworth band-pass filter.
12161
12162 The filter accepts the following options:
12163
12164 centerf
12165 Set center frequency in Hertz. Allowed range is 2 to 999999.
12166 Default value is 1000.
12167
12168 order
12169 Set filter order. Available values are from 4 to 20. Default value
12170 is 4.
12171
12172 qfactor
12173 Set Q-factor. Allowed range is from 0.01 to 100. Default value is
12174 1.
12175
12176 level
12177 Set input gain level. Allowed range is from 0 to 2. Default value
12178 is 1.
12179
12180 Commands
12181
12182 This filter supports the all above options as commands.
12183
12184 asuperstop
12185 Apply high order Butterworth band-stop filter.
12186
12187 The filter accepts the following options:
12188
12189 centerf
12190 Set center frequency in Hertz. Allowed range is 2 to 999999.
12191 Default value is 1000.
12192
12193 order
12194 Set filter order. Available values are from 4 to 20. Default value
12195 is 4.
12196
12197 qfactor
12198 Set Q-factor. Allowed range is from 0.01 to 100. Default value is
12199 1.
12200
12201 level
12202 Set input gain level. Allowed range is from 0 to 2. Default value
12203 is 1.
12204
12205 Commands
12206
12207 This filter supports the all above options as commands.
12208
12209 atempo
12210 Adjust audio tempo.
12211
12212 The filter accepts exactly one parameter, the audio tempo. If not
12213 specified then the filter will assume nominal 1.0 tempo. Tempo must be
12214 in the [0.5, 100.0] range.
12215
12216 Note that tempo greater than 2 will skip some samples rather than blend
12217 them in. If for any reason this is a concern it is always possible to
12218 daisy-chain several instances of atempo to achieve the desired product
12219 tempo.
12220
12221 Examples
12222
12223 • Slow down audio to 80% tempo:
12224
12225 atempo=0.8
12226
12227 • To speed up audio to 300% tempo:
12228
12229 atempo=3
12230
12231 • To speed up audio to 300% tempo by daisy-chaining two atempo
12232 instances:
12233
12234 atempo=sqrt(3),atempo=sqrt(3)
12235
12236 Commands
12237
12238 This filter supports the following commands:
12239
12240 tempo
12241 Change filter tempo scale factor. Syntax for the command is :
12242 "tempo"
12243
12244 atilt
12245 Apply spectral tilt filter to audio stream.
12246
12247 This filter apply any spectral roll-off slope over any specified
12248 frequency band.
12249
12250 The filter accepts the following options:
12251
12252 freq
12253 Set central frequency of tilt in Hz. Default is 10000 Hz.
12254
12255 slope
12256 Set slope direction of tilt. Default is 0. Allowed range is from -1
12257 to 1.
12258
12259 width
12260 Set width of tilt. Default is 1000. Allowed range is from 100 to
12261 10000.
12262
12263 order
12264 Set order of tilt filter.
12265
12266 level
12267 Set input volume level. Allowed range is from 0 to 4. Defalt is 1.
12268
12269 Commands
12270
12271 This filter supports the all above options as commands.
12272
12273 atrim
12274 Trim the input so that the output contains one continuous subpart of
12275 the input.
12276
12277 It accepts the following parameters:
12278
12279 start
12280 Timestamp (in seconds) of the start of the section to keep. I.e.
12281 the audio sample with the timestamp start will be the first sample
12282 in the output.
12283
12284 end Specify time of the first audio sample that will be dropped, i.e.
12285 the audio sample immediately preceding the one with the timestamp
12286 end will be the last sample in the output.
12287
12288 start_pts
12289 Same as start, except this option sets the start timestamp in
12290 samples instead of seconds.
12291
12292 end_pts
12293 Same as end, except this option sets the end timestamp in samples
12294 instead of seconds.
12295
12296 duration
12297 The maximum duration of the output in seconds.
12298
12299 start_sample
12300 The number of the first sample that should be output.
12301
12302 end_sample
12303 The number of the first sample that should be dropped.
12304
12305 start, end, and duration are expressed as time duration specifications;
12306 see the Time duration section in the ffmpeg-utils(1) manual.
12307
12308 Note that the first two sets of the start/end options and the duration
12309 option look at the frame timestamp, while the _sample options simply
12310 count the samples that pass through the filter. So start/end_pts and
12311 start/end_sample will give different results when the timestamps are
12312 wrong, inexact or do not start at zero. Also note that this filter does
12313 not modify the timestamps. If you wish to have the output timestamps
12314 start at zero, insert the asetpts filter after the atrim filter.
12315
12316 If multiple start or end options are set, this filter tries to be
12317 greedy and keep all samples that match at least one of the specified
12318 constraints. To keep only the part that matches all the constraints at
12319 once, chain multiple atrim filters.
12320
12321 The defaults are such that all the input is kept. So it is possible to
12322 set e.g. just the end values to keep everything before the specified
12323 time.
12324
12325 Examples:
12326
12327 • Drop everything except the second minute of input:
12328
12329 ffmpeg -i INPUT -af atrim=60:120
12330
12331 • Keep only the first 1000 samples:
12332
12333 ffmpeg -i INPUT -af atrim=end_sample=1000
12334
12335 axcorrelate
12336 Calculate normalized windowed cross-correlation between two input audio
12337 streams.
12338
12339 Resulted samples are always between -1 and 1 inclusive. If result is 1
12340 it means two input samples are highly correlated in that selected
12341 segment. Result 0 means they are not correlated at all. If result is
12342 -1 it means two input samples are out of phase, which means they cancel
12343 each other.
12344
12345 The filter accepts the following options:
12346
12347 size
12348 Set size of segment over which cross-correlation is calculated.
12349 Default is 256. Allowed range is from 2 to 131072.
12350
12351 algo
12352 Set algorithm for cross-correlation. Can be "slow" or "fast".
12353 Default is "slow". Fast algorithm assumes mean values over any
12354 given segment are always zero and thus need much less calculations
12355 to make. This is generally not true, but is valid for typical
12356 audio streams.
12357
12358 Examples
12359
12360 • Calculate correlation between channels in stereo audio stream:
12361
12362 ffmpeg -i stereo.wav -af channelsplit,axcorrelate=size=1024:algo=fast correlation.wav
12363
12364 bandpass
12365 Apply a two-pole Butterworth band-pass filter with central frequency
12366 frequency, and (3dB-point) band-width width. The csg option selects a
12367 constant skirt gain (peak gain = Q) instead of the default: constant
12368 0dB peak gain. The filter roll off at 6dB per octave (20dB per
12369 decade).
12370
12371 The filter accepts the following options:
12372
12373 frequency, f
12374 Set the filter's central frequency. Default is 3000.
12375
12376 csg Constant skirt gain if set to 1. Defaults to 0.
12377
12378 width_type, t
12379 Set method to specify band-width of filter.
12380
12381 h Hz
12382
12383 q Q-Factor
12384
12385 o octave
12386
12387 s slope
12388
12389 k kHz
12390
12391 width, w
12392 Specify the band-width of a filter in width_type units.
12393
12394 mix, m
12395 How much to use filtered signal in output. Default is 1. Range is
12396 between 0 and 1.
12397
12398 channels, c
12399 Specify which channels to filter, by default all available are
12400 filtered.
12401
12402 normalize, n
12403 Normalize biquad coefficients, by default is disabled. Enabling it
12404 will normalize magnitude response at DC to 0dB.
12405
12406 transform, a
12407 Set transform type of IIR filter.
12408
12409 di
12410 dii
12411 tdi
12412 tdii
12413 latt
12414 svf
12415 zdf
12416 precision, r
12417 Set precison of filtering.
12418
12419 auto
12420 Pick automatic sample format depending on surround filters.
12421
12422 s16 Always use signed 16-bit.
12423
12424 s32 Always use signed 32-bit.
12425
12426 f32 Always use float 32-bit.
12427
12428 f64 Always use float 64-bit.
12429
12430 block_size, b
12431 Set block size used for reverse IIR processing. If this value is
12432 set to high enough value (higher than impulse response length
12433 truncated when reaches near zero values) filtering will become
12434 linear phase otherwise if not big enough it will just produce nasty
12435 artifacts.
12436
12437 Note that filter delay will be exactly this many samples when set
12438 to non-zero value.
12439
12440 Commands
12441
12442 This filter supports the following commands:
12443
12444 frequency, f
12445 Change bandpass frequency. Syntax for the command is : "frequency"
12446
12447 width_type, t
12448 Change bandpass width_type. Syntax for the command is :
12449 "width_type"
12450
12451 width, w
12452 Change bandpass width. Syntax for the command is : "width"
12453
12454 mix, m
12455 Change bandpass mix. Syntax for the command is : "mix"
12456
12457 bandreject
12458 Apply a two-pole Butterworth band-reject filter with central frequency
12459 frequency, and (3dB-point) band-width width. The filter roll off at
12460 6dB per octave (20dB per decade).
12461
12462 The filter accepts the following options:
12463
12464 frequency, f
12465 Set the filter's central frequency. Default is 3000.
12466
12467 width_type, t
12468 Set method to specify band-width of filter.
12469
12470 h Hz
12471
12472 q Q-Factor
12473
12474 o octave
12475
12476 s slope
12477
12478 k kHz
12479
12480 width, w
12481 Specify the band-width of a filter in width_type units.
12482
12483 mix, m
12484 How much to use filtered signal in output. Default is 1. Range is
12485 between 0 and 1.
12486
12487 channels, c
12488 Specify which channels to filter, by default all available are
12489 filtered.
12490
12491 normalize, n
12492 Normalize biquad coefficients, by default is disabled. Enabling it
12493 will normalize magnitude response at DC to 0dB.
12494
12495 transform, a
12496 Set transform type of IIR filter.
12497
12498 di
12499 dii
12500 tdi
12501 tdii
12502 latt
12503 svf
12504 zdf
12505 precision, r
12506 Set precison of filtering.
12507
12508 auto
12509 Pick automatic sample format depending on surround filters.
12510
12511 s16 Always use signed 16-bit.
12512
12513 s32 Always use signed 32-bit.
12514
12515 f32 Always use float 32-bit.
12516
12517 f64 Always use float 64-bit.
12518
12519 block_size, b
12520 Set block size used for reverse IIR processing. If this value is
12521 set to high enough value (higher than impulse response length
12522 truncated when reaches near zero values) filtering will become
12523 linear phase otherwise if not big enough it will just produce nasty
12524 artifacts.
12525
12526 Note that filter delay will be exactly this many samples when set
12527 to non-zero value.
12528
12529 Commands
12530
12531 This filter supports the following commands:
12532
12533 frequency, f
12534 Change bandreject frequency. Syntax for the command is :
12535 "frequency"
12536
12537 width_type, t
12538 Change bandreject width_type. Syntax for the command is :
12539 "width_type"
12540
12541 width, w
12542 Change bandreject width. Syntax for the command is : "width"
12543
12544 mix, m
12545 Change bandreject mix. Syntax for the command is : "mix"
12546
12547 bass, lowshelf
12548 Boost or cut the bass (lower) frequencies of the audio using a two-pole
12549 shelving filter with a response similar to that of a standard hi-fi's
12550 tone-controls. This is also known as shelving equalisation (EQ).
12551
12552 The filter accepts the following options:
12553
12554 gain, g
12555 Give the gain at 0 Hz. Its useful range is about -20 (for a large
12556 cut) to +20 (for a large boost). Beware of clipping when using a
12557 positive gain.
12558
12559 frequency, f
12560 Set the filter's central frequency and so can be used to extend or
12561 reduce the frequency range to be boosted or cut. The default value
12562 is 100 Hz.
12563
12564 width_type, t
12565 Set method to specify band-width of filter.
12566
12567 h Hz
12568
12569 q Q-Factor
12570
12571 o octave
12572
12573 s slope
12574
12575 k kHz
12576
12577 width, w
12578 Determine how steep is the filter's shelf transition.
12579
12580 poles, p
12581 Set number of poles. Default is 2.
12582
12583 mix, m
12584 How much to use filtered signal in output. Default is 1. Range is
12585 between 0 and 1.
12586
12587 channels, c
12588 Specify which channels to filter, by default all available are
12589 filtered.
12590
12591 normalize, n
12592 Normalize biquad coefficients, by default is disabled. Enabling it
12593 will normalize magnitude response at DC to 0dB.
12594
12595 transform, a
12596 Set transform type of IIR filter.
12597
12598 di
12599 dii
12600 tdi
12601 tdii
12602 latt
12603 svf
12604 zdf
12605 precision, r
12606 Set precison of filtering.
12607
12608 auto
12609 Pick automatic sample format depending on surround filters.
12610
12611 s16 Always use signed 16-bit.
12612
12613 s32 Always use signed 32-bit.
12614
12615 f32 Always use float 32-bit.
12616
12617 f64 Always use float 64-bit.
12618
12619 block_size, b
12620 Set block size used for reverse IIR processing. If this value is
12621 set to high enough value (higher than impulse response length
12622 truncated when reaches near zero values) filtering will become
12623 linear phase otherwise if not big enough it will just produce nasty
12624 artifacts.
12625
12626 Note that filter delay will be exactly this many samples when set
12627 to non-zero value.
12628
12629 Commands
12630
12631 This filter supports the following commands:
12632
12633 frequency, f
12634 Change bass frequency. Syntax for the command is : "frequency"
12635
12636 width_type, t
12637 Change bass width_type. Syntax for the command is : "width_type"
12638
12639 width, w
12640 Change bass width. Syntax for the command is : "width"
12641
12642 gain, g
12643 Change bass gain. Syntax for the command is : "gain"
12644
12645 mix, m
12646 Change bass mix. Syntax for the command is : "mix"
12647
12648 biquad
12649 Apply a biquad IIR filter with the given coefficients. Where b0, b1,
12650 b2 and a0, a1, a2 are the numerator and denominator coefficients
12651 respectively. and channels, c specify which channels to filter, by
12652 default all available are filtered.
12653
12654 Commands
12655
12656 This filter supports the following commands:
12657
12658 a0
12659 a1
12660 a2
12661 b0
12662 b1
12663 b2 Change biquad parameter. Syntax for the command is : "value"
12664
12665 mix, m
12666 How much to use filtered signal in output. Default is 1. Range is
12667 between 0 and 1.
12668
12669 channels, c
12670 Specify which channels to filter, by default all available are
12671 filtered.
12672
12673 normalize, n
12674 Normalize biquad coefficients, by default is disabled. Enabling it
12675 will normalize magnitude response at DC to 0dB.
12676
12677 transform, a
12678 Set transform type of IIR filter.
12679
12680 di
12681 dii
12682 tdi
12683 tdii
12684 latt
12685 svf
12686 zdf
12687 precision, r
12688 Set precison of filtering.
12689
12690 auto
12691 Pick automatic sample format depending on surround filters.
12692
12693 s16 Always use signed 16-bit.
12694
12695 s32 Always use signed 32-bit.
12696
12697 f32 Always use float 32-bit.
12698
12699 f64 Always use float 64-bit.
12700
12701 block_size, b
12702 Set block size used for reverse IIR processing. If this value is
12703 set to high enough value (higher than impulse response length
12704 truncated when reaches near zero values) filtering will become
12705 linear phase otherwise if not big enough it will just produce nasty
12706 artifacts.
12707
12708 Note that filter delay will be exactly this many samples when set
12709 to non-zero value.
12710
12711 bs2b
12712 Bauer stereo to binaural transformation, which improves headphone
12713 listening of stereo audio records.
12714
12715 To enable compilation of this filter you need to configure FFmpeg with
12716 "--enable-libbs2b".
12717
12718 It accepts the following parameters:
12719
12720 profile
12721 Pre-defined crossfeed level.
12722
12723 default
12724 Default level (fcut=700, feed=50).
12725
12726 cmoy
12727 Chu Moy circuit (fcut=700, feed=60).
12728
12729 jmeier
12730 Jan Meier circuit (fcut=650, feed=95).
12731
12732 fcut
12733 Cut frequency (in Hz).
12734
12735 feed
12736 Feed level (in Hz).
12737
12738 channelmap
12739 Remap input channels to new locations.
12740
12741 It accepts the following parameters:
12742
12743 map Map channels from input to output. The argument is a '|'-separated
12744 list of mappings, each in the "in_channel-out_channel" or
12745 in_channel form. in_channel can be either the name of the input
12746 channel (e.g. FL for front left) or its index in the input channel
12747 layout. out_channel is the name of the output channel or its index
12748 in the output channel layout. If out_channel is not given then it
12749 is implicitly an index, starting with zero and increasing by one
12750 for each mapping.
12751
12752 channel_layout
12753 The channel layout of the output stream.
12754
12755 If no mapping is present, the filter will implicitly map input channels
12756 to output channels, preserving indices.
12757
12758 Examples
12759
12760 • For example, assuming a 5.1+downmix input MOV file,
12761
12762 ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
12763
12764 will create an output WAV file tagged as stereo from the downmix
12765 channels of the input.
12766
12767 • To fix a 5.1 WAV improperly encoded in AAC's native channel order
12768
12769 ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:5.1' out.wav
12770
12771 channelsplit
12772 Split each channel from an input audio stream into a separate output
12773 stream.
12774
12775 It accepts the following parameters:
12776
12777 channel_layout
12778 The channel layout of the input stream. The default is "stereo".
12779
12780 channels
12781 A channel layout describing the channels to be extracted as
12782 separate output streams or "all" to extract each input channel as a
12783 separate stream. The default is "all".
12784
12785 Choosing channels not present in channel layout in the input will
12786 result in an error.
12787
12788 Examples
12789
12790 • For example, assuming a stereo input MP3 file,
12791
12792 ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
12793
12794 will create an output Matroska file with two audio streams, one
12795 containing only the left channel and the other the right channel.
12796
12797 • Split a 5.1 WAV file into per-channel files:
12798
12799 ffmpeg -i in.wav -filter_complex
12800 'channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]'
12801 -map '[FL]' front_left.wav -map '[FR]' front_right.wav -map '[FC]'
12802 front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]'
12803 side_right.wav
12804
12805 • Extract only LFE from a 5.1 WAV file:
12806
12807 ffmpeg -i in.wav -filter_complex 'channelsplit=channel_layout=5.1:channels=LFE[LFE]'
12808 -map '[LFE]' lfe.wav
12809
12810 chorus
12811 Add a chorus effect to the audio.
12812
12813 Can make a single vocal sound like a chorus, but can also be applied to
12814 instrumentation.
12815
12816 Chorus resembles an echo effect with a short delay, but whereas with
12817 echo the delay is constant, with chorus, it is varied using using
12818 sinusoidal or triangular modulation. The modulation depth defines the
12819 range the modulated delay is played before or after the delay. Hence
12820 the delayed sound will sound slower or faster, that is the delayed
12821 sound tuned around the original one, like in a chorus where some vocals
12822 are slightly off key.
12823
12824 It accepts the following parameters:
12825
12826 in_gain
12827 Set input gain. Default is 0.4.
12828
12829 out_gain
12830 Set output gain. Default is 0.4.
12831
12832 delays
12833 Set delays. A typical delay is around 40ms to 60ms.
12834
12835 decays
12836 Set decays.
12837
12838 speeds
12839 Set speeds.
12840
12841 depths
12842 Set depths.
12843
12844 Examples
12845
12846 • A single delay:
12847
12848 chorus=0.7:0.9:55:0.4:0.25:2
12849
12850 • Two delays:
12851
12852 chorus=0.6:0.9:50|60:0.4|0.32:0.25|0.4:2|1.3
12853
12854 • Fuller sounding chorus with three delays:
12855
12856 chorus=0.5:0.9:50|60|40:0.4|0.32|0.3:0.25|0.4|0.3:2|2.3|1.3
12857
12858 compand
12859 Compress or expand the audio's dynamic range.
12860
12861 It accepts the following parameters:
12862
12863 attacks
12864 decays
12865 A list of times in seconds for each channel over which the
12866 instantaneous level of the input signal is averaged to determine
12867 its volume. attacks refers to increase of volume and decays refers
12868 to decrease of volume. For most situations, the attack time
12869 (response to the audio getting louder) should be shorter than the
12870 decay time, because the human ear is more sensitive to sudden loud
12871 audio than sudden soft audio. A typical value for attack is 0.3
12872 seconds and a typical value for decay is 0.8 seconds. If specified
12873 number of attacks & decays is lower than number of channels, the
12874 last set attack/decay will be used for all remaining channels.
12875
12876 points
12877 A list of points for the transfer function, specified in dB
12878 relative to the maximum possible signal amplitude. Each key points
12879 list must be defined using the following syntax:
12880 "x0/y0|x1/y1|x2/y2|...." or "x0/y0 x1/y1 x2/y2 ...."
12881
12882 The input values must be in strictly increasing order but the
12883 transfer function does not have to be monotonically rising. The
12884 point "0/0" is assumed but may be overridden (by "0/out-dBn").
12885 Typical values for the transfer function are "-70/-70|-60/-20|1/0".
12886
12887 soft-knee
12888 Set the curve radius in dB for all joints. It defaults to 0.01.
12889
12890 gain
12891 Set the additional gain in dB to be applied at all points on the
12892 transfer function. This allows for easy adjustment of the overall
12893 gain. It defaults to 0.
12894
12895 volume
12896 Set an initial volume, in dB, to be assumed for each channel when
12897 filtering starts. This permits the user to supply a nominal level
12898 initially, so that, for example, a very large gain is not applied
12899 to initial signal levels before the companding has begun to
12900 operate. A typical value for audio which is initially quiet is -90
12901 dB. It defaults to 0.
12902
12903 delay
12904 Set a delay, in seconds. The input audio is analyzed immediately,
12905 but audio is delayed before being fed to the volume adjuster.
12906 Specifying a delay approximately equal to the attack/decay times
12907 allows the filter to effectively operate in predictive rather than
12908 reactive mode. It defaults to 0.
12909
12910 Examples
12911
12912 • Make music with both quiet and loud passages suitable for listening
12913 to in a noisy environment:
12914
12915 compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
12916
12917 Another example for audio with whisper and explosion parts:
12918
12919 compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0
12920
12921 • A noise gate for when the noise is at a lower level than the
12922 signal:
12923
12924 compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
12925
12926 • Here is another noise gate, this time for when the noise is at a
12927 higher level than the signal (making it, in some ways, similar to
12928 squelch):
12929
12930 compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
12931
12932 • 2:1 compression starting at -6dB:
12933
12934 compand=points=-80/-80|-6/-6|0/-3.8|20/3.5
12935
12936 • 2:1 compression starting at -9dB:
12937
12938 compand=points=-80/-80|-9/-9|0/-5.3|20/2.9
12939
12940 • 2:1 compression starting at -12dB:
12941
12942 compand=points=-80/-80|-12/-12|0/-6.8|20/1.9
12943
12944 • 2:1 compression starting at -18dB:
12945
12946 compand=points=-80/-80|-18/-18|0/-9.8|20/0.7
12947
12948 • 3:1 compression starting at -15dB:
12949
12950 compand=points=-80/-80|-15/-15|0/-10.8|20/-5.2
12951
12952 • Compressor/Gate:
12953
12954 compand=points=-80/-105|-62/-80|-15.4/-15.4|0/-12|20/-7.6
12955
12956 • Expander:
12957
12958 compand=attacks=0:points=-80/-169|-54/-80|-49.5/-64.6|-41.1/-41.1|-25.8/-15|-10.8/-4.5|0/0|20/8.3
12959
12960 • Hard limiter at -6dB:
12961
12962 compand=attacks=0:points=-80/-80|-6/-6|20/-6
12963
12964 • Hard limiter at -12dB:
12965
12966 compand=attacks=0:points=-80/-80|-12/-12|20/-12
12967
12968 • Hard noise gate at -35 dB:
12969
12970 compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20
12971
12972 • Soft limiter:
12973
12974 compand=attacks=0:points=-80/-80|-12.4/-12.4|-6/-8|0/-6.8|20/-2.8
12975
12976 compensationdelay
12977 Compensation Delay Line is a metric based delay to compensate differing
12978 positions of microphones or speakers.
12979
12980 For example, you have recorded guitar with two microphones placed in
12981 different locations. Because the front of sound wave has fixed speed in
12982 normal conditions, the phasing of microphones can vary and depends on
12983 their location and interposition. The best sound mix can be achieved
12984 when these microphones are in phase (synchronized). Note that a
12985 distance of ~30 cm between microphones makes one microphone capture the
12986 signal in antiphase to the other microphone. That makes the final mix
12987 sound moody. This filter helps to solve phasing problems by adding
12988 different delays to each microphone track and make them synchronized.
12989
12990 The best result can be reached when you take one track as base and
12991 synchronize other tracks one by one with it. Remember that
12992 synchronization/delay tolerance depends on sample rate, too. Higher
12993 sample rates will give more tolerance.
12994
12995 The filter accepts the following parameters:
12996
12997 mm Set millimeters distance. This is compensation distance for fine
12998 tuning. Default is 0.
12999
13000 cm Set cm distance. This is compensation distance for tightening
13001 distance setup. Default is 0.
13002
13003 m Set meters distance. This is compensation distance for hard
13004 distance setup. Default is 0.
13005
13006 dry Set dry amount. Amount of unprocessed (dry) signal. Default is 0.
13007
13008 wet Set wet amount. Amount of processed (wet) signal. Default is 1.
13009
13010 temp
13011 Set temperature in degrees Celsius. This is the temperature of the
13012 environment. Default is 20.
13013
13014 Commands
13015
13016 This filter supports the all above options as commands.
13017
13018 crossfeed
13019 Apply headphone crossfeed filter.
13020
13021 Crossfeed is the process of blending the left and right channels of
13022 stereo audio recording. It is mainly used to reduce extreme stereo
13023 separation of low frequencies.
13024
13025 The intent is to produce more speaker like sound to the listener.
13026
13027 The filter accepts the following options:
13028
13029 strength
13030 Set strength of crossfeed. Default is 0.2. Allowed range is from 0
13031 to 1. This sets gain of low shelf filter for side part of stereo
13032 image. Default is -6dB. Max allowed is -30db when strength is set
13033 to 1.
13034
13035 range
13036 Set soundstage wideness. Default is 0.5. Allowed range is from 0 to
13037 1. This sets cut off frequency of low shelf filter. Default is cut
13038 off near 1550 Hz. With range set to 1 cut off frequency is set to
13039 2100 Hz.
13040
13041 slope
13042 Set curve slope of low shelf filter. Default is 0.5. Allowed range
13043 is from 0.01 to 1.
13044
13045 level_in
13046 Set input gain. Default is 0.9.
13047
13048 level_out
13049 Set output gain. Default is 1.
13050
13051 block_size
13052 Set block size used for reverse IIR processing. If this value is
13053 set to high enough value (higher than impulse response length
13054 truncated when reaches near zero values) filtering will become
13055 linear phase otherwise if not big enough it will just produce nasty
13056 artifacts.
13057
13058 Note that filter delay will be exactly this many samples when set
13059 to non-zero value.
13060
13061 Commands
13062
13063 This filter supports the all above options as commands.
13064
13065 crystalizer
13066 Simple algorithm for audio noise sharpening.
13067
13068 This filter linearly increases differences betweeen each audio sample.
13069
13070 The filter accepts the following options:
13071
13072 i Sets the intensity of effect (default: 2.0). Must be in range
13073 between -10.0 to 0 (unchanged sound) to 10.0 (maximum effect). To
13074 inverse filtering use negative value.
13075
13076 c Enable clipping. By default is enabled.
13077
13078 Commands
13079
13080 This filter supports the all above options as commands.
13081
13082 dcshift
13083 Apply a DC shift to the audio.
13084
13085 This can be useful to remove a DC offset (caused perhaps by a hardware
13086 problem in the recording chain) from the audio. The effect of a DC
13087 offset is reduced headroom and hence volume. The astats filter can be
13088 used to determine if a signal has a DC offset.
13089
13090 shift
13091 Set the DC shift, allowed range is [-1, 1]. It indicates the amount
13092 to shift the audio.
13093
13094 limitergain
13095 Optional. It should have a value much less than 1 (e.g. 0.05 or
13096 0.02) and is used to prevent clipping.
13097
13098 deesser
13099 Apply de-essing to the audio samples.
13100
13101 i Set intensity for triggering de-essing. Allowed range is from 0 to
13102 1. Default is 0.
13103
13104 m Set amount of ducking on treble part of sound. Allowed range is
13105 from 0 to 1. Default is 0.5.
13106
13107 f How much of original frequency content to keep when de-essing.
13108 Allowed range is from 0 to 1. Default is 0.5.
13109
13110 s Set the output mode.
13111
13112 It accepts the following values:
13113
13114 i Pass input unchanged.
13115
13116 o Pass ess filtered out.
13117
13118 e Pass only ess.
13119
13120 Default value is o.
13121
13122 dialoguenhance
13123 Enhance dialogue in stereo audio.
13124
13125 This filter accepts stereo input and produce surround (3.0) channels
13126 output. The newly produced front center channel have enhanced speech
13127 dialogue originally available in both stereo channels. This filter
13128 outputs front left and front right channels same as available in stereo
13129 input.
13130
13131 The filter accepts the following options:
13132
13133 original
13134 Set the original center factor to keep in front center channel
13135 output. Allowed range is from 0 to 1. Default value is 1.
13136
13137 enhance
13138 Set the dialogue enhance factor to put in front center channel
13139 output. Allowed range is from 0 to 3. Default value is 1.
13140
13141 voice
13142 Set the voice detection factor. Allowed range is from 2 to 32.
13143 Default value is 2.
13144
13145 Commands
13146
13147 This filter supports the all above options as commands.
13148
13149 drmeter
13150 Measure audio dynamic range.
13151
13152 DR values of 14 and higher is found in very dynamic material. DR of 8
13153 to 13 is found in transition material. And anything less that 8 have
13154 very poor dynamics and is very compressed.
13155
13156 The filter accepts the following options:
13157
13158 length
13159 Set window length in seconds used to split audio into segments of
13160 equal length. Default is 3 seconds.
13161
13162 dynaudnorm
13163 Dynamic Audio Normalizer.
13164
13165 This filter applies a certain amount of gain to the input audio in
13166 order to bring its peak magnitude to a target level (e.g. 0 dBFS).
13167 However, in contrast to more "simple" normalization algorithms, the
13168 Dynamic Audio Normalizer *dynamically* re-adjusts the gain factor to
13169 the input audio. This allows for applying extra gain to the "quiet"
13170 sections of the audio while avoiding distortions or clipping the "loud"
13171 sections. In other words: The Dynamic Audio Normalizer will "even out"
13172 the volume of quiet and loud sections, in the sense that the volume of
13173 each section is brought to the same target level. Note, however, that
13174 the Dynamic Audio Normalizer achieves this goal *without* applying
13175 "dynamic range compressing". It will retain 100% of the dynamic range
13176 *within* each section of the audio file.
13177
13178 framelen, f
13179 Set the frame length in milliseconds. In range from 10 to 8000
13180 milliseconds. Default is 500 milliseconds. The Dynamic Audio
13181 Normalizer processes the input audio in small chunks, referred to
13182 as frames. This is required, because a peak magnitude has no
13183 meaning for just a single sample value. Instead, we need to
13184 determine the peak magnitude for a contiguous sequence of sample
13185 values. While a "standard" normalizer would simply use the peak
13186 magnitude of the complete file, the Dynamic Audio Normalizer
13187 determines the peak magnitude individually for each frame. The
13188 length of a frame is specified in milliseconds. By default, the
13189 Dynamic Audio Normalizer uses a frame length of 500 milliseconds,
13190 which has been found to give good results with most files. Note
13191 that the exact frame length, in number of samples, will be
13192 determined automatically, based on the sampling rate of the
13193 individual input audio file.
13194
13195 gausssize, g
13196 Set the Gaussian filter window size. In range from 3 to 301, must
13197 be odd number. Default is 31. Probably the most important
13198 parameter of the Dynamic Audio Normalizer is the "window size" of
13199 the Gaussian smoothing filter. The filter's window size is
13200 specified in frames, centered around the current frame. For the
13201 sake of simplicity, this must be an odd number. Consequently, the
13202 default value of 31 takes into account the current frame, as well
13203 as the 15 preceding frames and the 15 subsequent frames. Using a
13204 larger window results in a stronger smoothing effect and thus in
13205 less gain variation, i.e. slower gain adaptation. Conversely, using
13206 a smaller window results in a weaker smoothing effect and thus in
13207 more gain variation, i.e. faster gain adaptation. In other words,
13208 the more you increase this value, the more the Dynamic Audio
13209 Normalizer will behave like a "traditional" normalization filter.
13210 On the contrary, the more you decrease this value, the more the
13211 Dynamic Audio Normalizer will behave like a dynamic range
13212 compressor.
13213
13214 peak, p
13215 Set the target peak value. This specifies the highest permissible
13216 magnitude level for the normalized audio input. This filter will
13217 try to approach the target peak magnitude as closely as possible,
13218 but at the same time it also makes sure that the normalized signal
13219 will never exceed the peak magnitude. A frame's maximum local gain
13220 factor is imposed directly by the target peak magnitude. The
13221 default value is 0.95 and thus leaves a headroom of 5%*. It is not
13222 recommended to go above this value.
13223
13224 maxgain, m
13225 Set the maximum gain factor. In range from 1.0 to 100.0. Default is
13226 10.0. The Dynamic Audio Normalizer determines the maximum possible
13227 (local) gain factor for each input frame, i.e. the maximum gain
13228 factor that does not result in clipping or distortion. The maximum
13229 gain factor is determined by the frame's highest magnitude sample.
13230 However, the Dynamic Audio Normalizer additionally bounds the
13231 frame's maximum gain factor by a predetermined (global) maximum
13232 gain factor. This is done in order to avoid excessive gain factors
13233 in "silent" or almost silent frames. By default, the maximum gain
13234 factor is 10.0, For most inputs the default value should be
13235 sufficient and it usually is not recommended to increase this
13236 value. Though, for input with an extremely low overall volume
13237 level, it may be necessary to allow even higher gain factors. Note,
13238 however, that the Dynamic Audio Normalizer does not simply apply a
13239 "hard" threshold (i.e. cut off values above the threshold).
13240 Instead, a "sigmoid" threshold function will be applied. This way,
13241 the gain factors will smoothly approach the threshold value, but
13242 never exceed that value.
13243
13244 targetrms, r
13245 Set the target RMS. In range from 0.0 to 1.0. Default is 0.0 -
13246 disabled. By default, the Dynamic Audio Normalizer performs "peak"
13247 normalization. This means that the maximum local gain factor for
13248 each frame is defined (only) by the frame's highest magnitude
13249 sample. This way, the samples can be amplified as much as possible
13250 without exceeding the maximum signal level, i.e. without clipping.
13251 Optionally, however, the Dynamic Audio Normalizer can also take
13252 into account the frame's root mean square, abbreviated RMS. In
13253 electrical engineering, the RMS is commonly used to determine the
13254 power of a time-varying signal. It is therefore considered that the
13255 RMS is a better approximation of the "perceived loudness" than just
13256 looking at the signal's peak magnitude. Consequently, by adjusting
13257 all frames to a constant RMS value, a uniform "perceived loudness"
13258 can be established. If a target RMS value has been specified, a
13259 frame's local gain factor is defined as the factor that would
13260 result in exactly that RMS value. Note, however, that the maximum
13261 local gain factor is still restricted by the frame's highest
13262 magnitude sample, in order to prevent clipping.
13263
13264 coupling, n
13265 Enable channels coupling. By default is enabled. By default, the
13266 Dynamic Audio Normalizer will amplify all channels by the same
13267 amount. This means the same gain factor will be applied to all
13268 channels, i.e. the maximum possible gain factor is determined by
13269 the "loudest" channel. However, in some recordings, it may happen
13270 that the volume of the different channels is uneven, e.g. one
13271 channel may be "quieter" than the other one(s). In this case, this
13272 option can be used to disable the channel coupling. This way, the
13273 gain factor will be determined independently for each channel,
13274 depending only on the individual channel's highest magnitude
13275 sample. This allows for harmonizing the volume of the different
13276 channels.
13277
13278 correctdc, c
13279 Enable DC bias correction. By default is disabled. An audio signal
13280 (in the time domain) is a sequence of sample values. In the
13281 Dynamic Audio Normalizer these sample values are represented in the
13282 -1.0 to 1.0 range, regardless of the original input format.
13283 Normally, the audio signal, or "waveform", should be centered
13284 around the zero point. That means if we calculate the mean value
13285 of all samples in a file, or in a single frame, then the result
13286 should be 0.0 or at least very close to that value. If, however,
13287 there is a significant deviation of the mean value from 0.0, in
13288 either positive or negative direction, this is referred to as a DC
13289 bias or DC offset. Since a DC bias is clearly undesirable, the
13290 Dynamic Audio Normalizer provides optional DC bias correction.
13291 With DC bias correction enabled, the Dynamic Audio Normalizer will
13292 determine the mean value, or "DC correction" offset, of each input
13293 frame and subtract that value from all of the frame's sample values
13294 which ensures those samples are centered around 0.0 again. Also, in
13295 order to avoid "gaps" at the frame boundaries, the DC correction
13296 offset values will be interpolated smoothly between neighbouring
13297 frames.
13298
13299 altboundary, b
13300 Enable alternative boundary mode. By default is disabled. The
13301 Dynamic Audio Normalizer takes into account a certain neighbourhood
13302 around each frame. This includes the preceding frames as well as
13303 the subsequent frames. However, for the "boundary" frames, located
13304 at the very beginning and at the very end of the audio file, not
13305 all neighbouring frames are available. In particular, for the first
13306 few frames in the audio file, the preceding frames are not known.
13307 And, similarly, for the last few frames in the audio file, the
13308 subsequent frames are not known. Thus, the question arises which
13309 gain factors should be assumed for the missing frames in the
13310 "boundary" region. The Dynamic Audio Normalizer implements two
13311 modes to deal with this situation. The default boundary mode
13312 assumes a gain factor of exactly 1.0 for the missing frames,
13313 resulting in a smooth "fade in" and "fade out" at the beginning and
13314 at the end of the input, respectively.
13315
13316 compress, s
13317 Set the compress factor. In range from 0.0 to 30.0. Default is 0.0.
13318 By default, the Dynamic Audio Normalizer does not apply
13319 "traditional" compression. This means that signal peaks will not be
13320 pruned and thus the full dynamic range will be retained within each
13321 local neighbourhood. However, in some cases it may be desirable to
13322 combine the Dynamic Audio Normalizer's normalization algorithm with
13323 a more "traditional" compression. For this purpose, the Dynamic
13324 Audio Normalizer provides an optional compression (thresholding)
13325 function. If (and only if) the compression feature is enabled, all
13326 input frames will be processed by a soft knee thresholding function
13327 prior to the actual normalization process. Put simply, the
13328 thresholding function is going to prune all samples whose magnitude
13329 exceeds a certain threshold value. However, the Dynamic Audio
13330 Normalizer does not simply apply a fixed threshold value. Instead,
13331 the threshold value will be adjusted for each individual frame. In
13332 general, smaller parameters result in stronger compression, and
13333 vice versa. Values below 3.0 are not recommended, because audible
13334 distortion may appear.
13335
13336 threshold, t
13337 Set the target threshold value. This specifies the lowest
13338 permissible magnitude level for the audio input which will be
13339 normalized. If input frame volume is above this value frame will
13340 be normalized. Otherwise frame may not be normalized at all. The
13341 default value is set to 0, which means all input frames will be
13342 normalized. This option is mostly useful if digital noise is not
13343 wanted to be amplified.
13344
13345 channels, h
13346 Specify which channels to filter, by default all available channels
13347 are filtered.
13348
13349 overlap, o
13350 Specify overlap for frames. If set to 0 (default) no frame
13351 overlapping is done. Using >0 and <1 values will make less
13352 conservative gain adjustments, like when framelen option is set to
13353 smaller value, if framelen option value is compensated for non-zero
13354 overlap then gain adjustments will be smoother across time compared
13355 to zero overlap case.
13356
13357 Commands
13358
13359 This filter supports the all above options as commands.
13360
13361 earwax
13362 Make audio easier to listen to on headphones.
13363
13364 This filter adds `cues' to 44.1kHz stereo (i.e. audio CD format) audio
13365 so that when listened to on headphones the stereo image is moved from
13366 inside your head (standard for headphones) to outside and in front of
13367 the listener (standard for speakers).
13368
13369 Ported from SoX.
13370
13371 equalizer
13372 Apply a two-pole peaking equalisation (EQ) filter. With this filter,
13373 the signal-level at and around a selected frequency can be increased or
13374 decreased, whilst (unlike bandpass and bandreject filters) that at all
13375 other frequencies is unchanged.
13376
13377 In order to produce complex equalisation curves, this filter can be
13378 given several times, each with a different central frequency.
13379
13380 The filter accepts the following options:
13381
13382 frequency, f
13383 Set the filter's central frequency in Hz.
13384
13385 width_type, t
13386 Set method to specify band-width of filter.
13387
13388 h Hz
13389
13390 q Q-Factor
13391
13392 o octave
13393
13394 s slope
13395
13396 k kHz
13397
13398 width, w
13399 Specify the band-width of a filter in width_type units.
13400
13401 gain, g
13402 Set the required gain or attenuation in dB. Beware of clipping
13403 when using a positive gain.
13404
13405 mix, m
13406 How much to use filtered signal in output. Default is 1. Range is
13407 between 0 and 1.
13408
13409 channels, c
13410 Specify which channels to filter, by default all available are
13411 filtered.
13412
13413 normalize, n
13414 Normalize biquad coefficients, by default is disabled. Enabling it
13415 will normalize magnitude response at DC to 0dB.
13416
13417 transform, a
13418 Set transform type of IIR filter.
13419
13420 di
13421 dii
13422 tdi
13423 tdii
13424 latt
13425 svf
13426 zdf
13427 precision, r
13428 Set precison of filtering.
13429
13430 auto
13431 Pick automatic sample format depending on surround filters.
13432
13433 s16 Always use signed 16-bit.
13434
13435 s32 Always use signed 32-bit.
13436
13437 f32 Always use float 32-bit.
13438
13439 f64 Always use float 64-bit.
13440
13441 block_size, b
13442 Set block size used for reverse IIR processing. If this value is
13443 set to high enough value (higher than impulse response length
13444 truncated when reaches near zero values) filtering will become
13445 linear phase otherwise if not big enough it will just produce nasty
13446 artifacts.
13447
13448 Note that filter delay will be exactly this many samples when set
13449 to non-zero value.
13450
13451 Examples
13452
13453 • Attenuate 10 dB at 1000 Hz, with a bandwidth of 200 Hz:
13454
13455 equalizer=f=1000:t=h:width=200:g=-10
13456
13457 • Apply 2 dB gain at 1000 Hz with Q 1 and attenuate 5 dB at 100 Hz
13458 with Q 2:
13459
13460 equalizer=f=1000:t=q:w=1:g=2,equalizer=f=100:t=q:w=2:g=-5
13461
13462 Commands
13463
13464 This filter supports the following commands:
13465
13466 frequency, f
13467 Change equalizer frequency. Syntax for the command is :
13468 "frequency"
13469
13470 width_type, t
13471 Change equalizer width_type. Syntax for the command is :
13472 "width_type"
13473
13474 width, w
13475 Change equalizer width. Syntax for the command is : "width"
13476
13477 gain, g
13478 Change equalizer gain. Syntax for the command is : "gain"
13479
13480 mix, m
13481 Change equalizer mix. Syntax for the command is : "mix"
13482
13483 extrastereo
13484 Linearly increases the difference between left and right channels which
13485 adds some sort of "live" effect to playback.
13486
13487 The filter accepts the following options:
13488
13489 m Sets the difference coefficient (default: 2.5). 0.0 means mono
13490 sound (average of both channels), with 1.0 sound will be unchanged,
13491 with -1.0 left and right channels will be swapped.
13492
13493 c Enable clipping. By default is enabled.
13494
13495 Commands
13496
13497 This filter supports the all above options as commands.
13498
13499 firequalizer
13500 Apply FIR Equalization using arbitrary frequency response.
13501
13502 The filter accepts the following option:
13503
13504 gain
13505 Set gain curve equation (in dB). The expression can contain
13506 variables:
13507
13508 f the evaluated frequency
13509
13510 sr sample rate
13511
13512 ch channel number, set to 0 when multichannels evaluation is
13513 disabled
13514
13515 chid
13516 channel id, see libavutil/channel_layout.h, set to the first
13517 channel id when multichannels evaluation is disabled
13518
13519 chs number of channels
13520
13521 chlayout
13522 channel_layout, see libavutil/channel_layout.h
13523
13524 and functions:
13525
13526 gain_interpolate(f)
13527 interpolate gain on frequency f based on gain_entry
13528
13529 cubic_interpolate(f)
13530 same as gain_interpolate, but smoother
13531
13532 This option is also available as command. Default is
13533 gain_interpolate(f).
13534
13535 gain_entry
13536 Set gain entry for gain_interpolate function. The expression can
13537 contain functions:
13538
13539 entry(f, g)
13540 store gain entry at frequency f with value g
13541
13542 This option is also available as command.
13543
13544 delay
13545 Set filter delay in seconds. Higher value means more accurate.
13546 Default is 0.01.
13547
13548 accuracy
13549 Set filter accuracy in Hz. Lower value means more accurate.
13550 Default is 5.
13551
13552 wfunc
13553 Set window function. Acceptable values are:
13554
13555 rectangular
13556 rectangular window, useful when gain curve is already smooth
13557
13558 hann
13559 hann window (default)
13560
13561 hamming
13562 hamming window
13563
13564 blackman
13565 blackman window
13566
13567 nuttall3
13568 3-terms continuous 1st derivative nuttall window
13569
13570 mnuttall3
13571 minimum 3-terms discontinuous nuttall window
13572
13573 nuttall
13574 4-terms continuous 1st derivative nuttall window
13575
13576 bnuttall
13577 minimum 4-terms discontinuous nuttall (blackman-nuttall) window
13578
13579 bharris
13580 blackman-harris window
13581
13582 tukey
13583 tukey window
13584
13585 fixed
13586 If enabled, use fixed number of audio samples. This improves speed
13587 when filtering with large delay. Default is disabled.
13588
13589 multi
13590 Enable multichannels evaluation on gain. Default is disabled.
13591
13592 zero_phase
13593 Enable zero phase mode by subtracting timestamp to compensate
13594 delay. Default is disabled.
13595
13596 scale
13597 Set scale used by gain. Acceptable values are:
13598
13599 linlin
13600 linear frequency, linear gain
13601
13602 linlog
13603 linear frequency, logarithmic (in dB) gain (default)
13604
13605 loglin
13606 logarithmic (in octave scale where 20 Hz is 0) frequency,
13607 linear gain
13608
13609 loglog
13610 logarithmic frequency, logarithmic gain
13611
13612 dumpfile
13613 Set file for dumping, suitable for gnuplot.
13614
13615 dumpscale
13616 Set scale for dumpfile. Acceptable values are same with scale
13617 option. Default is linlog.
13618
13619 fft2
13620 Enable 2-channel convolution using complex FFT. This improves speed
13621 significantly. Default is disabled.
13622
13623 min_phase
13624 Enable minimum phase impulse response. Default is disabled.
13625
13626 Examples
13627
13628 • lowpass at 1000 Hz:
13629
13630 firequalizer=gain='if(lt(f,1000), 0, -INF)'
13631
13632 • lowpass at 1000 Hz with gain_entry:
13633
13634 firequalizer=gain_entry='entry(1000,0); entry(1001, -INF)'
13635
13636 • custom equalization:
13637
13638 firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6); entry(2000, 0)'
13639
13640 • higher delay with zero phase to compensate delay:
13641
13642 firequalizer=delay=0.1:fixed=on:zero_phase=on
13643
13644 • lowpass on left channel, highpass on right channel:
13645
13646 firequalizer=gain='if(eq(chid,1), gain_interpolate(f), if(eq(chid,2), gain_interpolate(1e6+f), 0))'
13647 :gain_entry='entry(1000, 0); entry(1001,-INF); entry(1e6+1000,0)':multi=on
13648
13649 flanger
13650 Apply a flanging effect to the audio.
13651
13652 The filter accepts the following options:
13653
13654 delay
13655 Set base delay in milliseconds. Range from 0 to 30. Default value
13656 is 0.
13657
13658 depth
13659 Set added sweep delay in milliseconds. Range from 0 to 10. Default
13660 value is 2.
13661
13662 regen
13663 Set percentage regeneration (delayed signal feedback). Range from
13664 -95 to 95. Default value is 0.
13665
13666 width
13667 Set percentage of delayed signal mixed with original. Range from 0
13668 to 100. Default value is 71.
13669
13670 speed
13671 Set sweeps per second (Hz). Range from 0.1 to 10. Default value is
13672 0.5.
13673
13674 shape
13675 Set swept wave shape, can be triangular or sinusoidal. Default
13676 value is sinusoidal.
13677
13678 phase
13679 Set swept wave percentage-shift for multi channel. Range from 0 to
13680 100. Default value is 25.
13681
13682 interp
13683 Set delay-line interpolation, linear or quadratic. Default is
13684 linear.
13685
13686 haas
13687 Apply Haas effect to audio.
13688
13689 Note that this makes most sense to apply on mono signals. With this
13690 filter applied to mono signals it give some directionality and
13691 stretches its stereo image.
13692
13693 The filter accepts the following options:
13694
13695 level_in
13696 Set input level. By default is 1, or 0dB
13697
13698 level_out
13699 Set output level. By default is 1, or 0dB.
13700
13701 side_gain
13702 Set gain applied to side part of signal. By default is 1.
13703
13704 middle_source
13705 Set kind of middle source. Can be one of the following:
13706
13707 left
13708 Pick left channel.
13709
13710 right
13711 Pick right channel.
13712
13713 mid Pick middle part signal of stereo image.
13714
13715 side
13716 Pick side part signal of stereo image.
13717
13718 middle_phase
13719 Change middle phase. By default is disabled.
13720
13721 left_delay
13722 Set left channel delay. By default is 2.05 milliseconds.
13723
13724 left_balance
13725 Set left channel balance. By default is -1.
13726
13727 left_gain
13728 Set left channel gain. By default is 1.
13729
13730 left_phase
13731 Change left phase. By default is disabled.
13732
13733 right_delay
13734 Set right channel delay. By defaults is 2.12 milliseconds.
13735
13736 right_balance
13737 Set right channel balance. By default is 1.
13738
13739 right_gain
13740 Set right channel gain. By default is 1.
13741
13742 right_phase
13743 Change right phase. By default is enabled.
13744
13745 hdcd
13746 Decodes High Definition Compatible Digital (HDCD) data. A 16-bit PCM
13747 stream with embedded HDCD codes is expanded into a 20-bit PCM stream.
13748
13749 The filter supports the Peak Extend and Low-level Gain Adjustment
13750 features of HDCD, and detects the Transient Filter flag.
13751
13752 ffmpeg -i HDCD16.flac -af hdcd OUT24.flac
13753
13754 When using the filter with wav, note the default encoding for wav is
13755 16-bit, so the resulting 20-bit stream will be truncated back to
13756 16-bit. Use something like -acodec pcm_s24le after the filter to get
13757 24-bit PCM output.
13758
13759 ffmpeg -i HDCD16.wav -af hdcd OUT16.wav
13760 ffmpeg -i HDCD16.wav -af hdcd -c:a pcm_s24le OUT24.wav
13761
13762 The filter accepts the following options:
13763
13764 disable_autoconvert
13765 Disable any automatic format conversion or resampling in the filter
13766 graph.
13767
13768 process_stereo
13769 Process the stereo channels together. If target_gain does not match
13770 between channels, consider it invalid and use the last valid
13771 target_gain.
13772
13773 cdt_ms
13774 Set the code detect timer period in ms.
13775
13776 force_pe
13777 Always extend peaks above -3dBFS even if PE isn't signaled.
13778
13779 analyze_mode
13780 Replace audio with a solid tone and adjust the amplitude to signal
13781 some specific aspect of the decoding process. The output file can
13782 be loaded in an audio editor alongside the original to aid
13783 analysis.
13784
13785 "analyze_mode=pe:force_pe=true" can be used to see all samples
13786 above the PE level.
13787
13788 Modes are:
13789
13790 0, off
13791 Disabled
13792
13793 1, lle
13794 Gain adjustment level at each sample
13795
13796 2, pe
13797 Samples where peak extend occurs
13798
13799 3, cdt
13800 Samples where the code detect timer is active
13801
13802 4, tgm
13803 Samples where the target gain does not match between channels
13804
13805 headphone
13806 Apply head-related transfer functions (HRTFs) to create virtual
13807 loudspeakers around the user for binaural listening via headphones.
13808 The HRIRs are provided via additional streams, for each channel one
13809 stereo input stream is needed.
13810
13811 The filter accepts the following options:
13812
13813 map Set mapping of input streams for convolution. The argument is a
13814 '|'-separated list of channel names in order as they are given as
13815 additional stream inputs for filter. This also specify number of
13816 input streams. Number of input streams must be not less than number
13817 of channels in first stream plus one.
13818
13819 gain
13820 Set gain applied to audio. Value is in dB. Default is 0.
13821
13822 type
13823 Set processing type. Can be time or freq. time is processing audio
13824 in time domain which is slow. freq is processing audio in
13825 frequency domain which is fast. Default is freq.
13826
13827 lfe Set custom gain for LFE channels. Value is in dB. Default is 0.
13828
13829 size
13830 Set size of frame in number of samples which will be processed at
13831 once. Default value is 1024. Allowed range is from 1024 to 96000.
13832
13833 hrir
13834 Set format of hrir stream. Default value is stereo. Alternative
13835 value is multich. If value is set to stereo, number of additional
13836 streams should be greater or equal to number of input channels in
13837 first input stream. Also each additional stream should have stereo
13838 number of channels. If value is set to multich, number of
13839 additional streams should be exactly one. Also number of input
13840 channels of additional stream should be equal or greater than twice
13841 number of channels of first input stream.
13842
13843 Examples
13844
13845 • Full example using wav files as coefficients with amovie filters
13846 for 7.1 downmix, each amovie filter use stereo file with IR
13847 coefficients as input. The files give coefficients for each
13848 position of virtual loudspeaker:
13849
13850 ffmpeg -i input.wav
13851 -filter_complex "amovie=azi_270_ele_0_DFC.wav[sr];amovie=azi_90_ele_0_DFC.wav[sl];amovie=azi_225_ele_0_DFC.wav[br];amovie=azi_135_ele_0_DFC.wav[bl];amovie=azi_0_ele_0_DFC.wav,asplit[fc][lfe];amovie=azi_35_ele_0_DFC.wav[fl];amovie=azi_325_ele_0_DFC.wav[fr];[0:a][fl][fr][fc][lfe][bl][br][sl][sr]headphone=FL|FR|FC|LFE|BL|BR|SL|SR"
13852 output.wav
13853
13854 • Full example using wav files as coefficients with amovie filters
13855 for 7.1 downmix, but now in multich hrir format.
13856
13857 ffmpeg -i input.wav -filter_complex "amovie=minp.wav[hrirs];[0:a][hrirs]headphone=map=FL|FR|FC|LFE|BL|BR|SL|SR:hrir=multich"
13858 output.wav
13859
13860 highpass
13861 Apply a high-pass filter with 3dB point frequency. The filter can be
13862 either single-pole, or double-pole (the default). The filter roll off
13863 at 6dB per pole per octave (20dB per pole per decade).
13864
13865 The filter accepts the following options:
13866
13867 frequency, f
13868 Set frequency in Hz. Default is 3000.
13869
13870 poles, p
13871 Set number of poles. Default is 2.
13872
13873 width_type, t
13874 Set method to specify band-width of filter.
13875
13876 h Hz
13877
13878 q Q-Factor
13879
13880 o octave
13881
13882 s slope
13883
13884 k kHz
13885
13886 width, w
13887 Specify the band-width of a filter in width_type units. Applies
13888 only to double-pole filter. The default is 0.707q and gives a
13889 Butterworth response.
13890
13891 mix, m
13892 How much to use filtered signal in output. Default is 1. Range is
13893 between 0 and 1.
13894
13895 channels, c
13896 Specify which channels to filter, by default all available are
13897 filtered.
13898
13899 normalize, n
13900 Normalize biquad coefficients, by default is disabled. Enabling it
13901 will normalize magnitude response at DC to 0dB.
13902
13903 transform, a
13904 Set transform type of IIR filter.
13905
13906 di
13907 dii
13908 tdi
13909 tdii
13910 latt
13911 svf
13912 zdf
13913 precision, r
13914 Set precison of filtering.
13915
13916 auto
13917 Pick automatic sample format depending on surround filters.
13918
13919 s16 Always use signed 16-bit.
13920
13921 s32 Always use signed 32-bit.
13922
13923 f32 Always use float 32-bit.
13924
13925 f64 Always use float 64-bit.
13926
13927 block_size, b
13928 Set block size used for reverse IIR processing. If this value is
13929 set to high enough value (higher than impulse response length
13930 truncated when reaches near zero values) filtering will become
13931 linear phase otherwise if not big enough it will just produce nasty
13932 artifacts.
13933
13934 Note that filter delay will be exactly this many samples when set
13935 to non-zero value.
13936
13937 Commands
13938
13939 This filter supports the following commands:
13940
13941 frequency, f
13942 Change highpass frequency. Syntax for the command is : "frequency"
13943
13944 width_type, t
13945 Change highpass width_type. Syntax for the command is :
13946 "width_type"
13947
13948 width, w
13949 Change highpass width. Syntax for the command is : "width"
13950
13951 mix, m
13952 Change highpass mix. Syntax for the command is : "mix"
13953
13954 join
13955 Join multiple input streams into one multi-channel stream.
13956
13957 It accepts the following parameters:
13958
13959 inputs
13960 The number of input streams. It defaults to 2.
13961
13962 channel_layout
13963 The desired output channel layout. It defaults to stereo.
13964
13965 map Map channels from inputs to output. The argument is a '|'-separated
13966 list of mappings, each in the "input_idx.in_channel-out_channel"
13967 form. input_idx is the 0-based index of the input stream.
13968 in_channel can be either the name of the input channel (e.g. FL for
13969 front left) or its index in the specified input stream. out_channel
13970 is the name of the output channel.
13971
13972 The filter will attempt to guess the mappings when they are not
13973 specified explicitly. It does so by first trying to find an unused
13974 matching input channel and if that fails it picks the first unused
13975 input channel.
13976
13977 Join 3 inputs (with properly set channel layouts):
13978
13979 ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
13980
13981 Build a 5.1 output from 6 single-channel streams:
13982
13983 ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex
13984 'join=inputs=6:channel_layout=5.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-SL|4.0-SR|5.0-LFE'
13985 out
13986
13987 ladspa
13988 Load a LADSPA (Linux Audio Developer's Simple Plugin API) plugin.
13989
13990 To enable compilation of this filter you need to configure FFmpeg with
13991 "--enable-ladspa".
13992
13993 file, f
13994 Specifies the name of LADSPA plugin library to load. If the
13995 environment variable LADSPA_PATH is defined, the LADSPA plugin is
13996 searched in each one of the directories specified by the colon
13997 separated list in LADSPA_PATH, otherwise in the standard LADSPA
13998 paths, which are in this order: HOME/.ladspa/lib/,
13999 /usr/local/lib/ladspa/, /usr/lib/ladspa/.
14000
14001 plugin, p
14002 Specifies the plugin within the library. Some libraries contain
14003 only one plugin, but others contain many of them. If this is not
14004 set filter will list all available plugins within the specified
14005 library.
14006
14007 controls, c
14008 Set the '|' separated list of controls which are zero or more
14009 floating point values that determine the behavior of the loaded
14010 plugin (for example delay, threshold or gain). Controls need to be
14011 defined using the following syntax:
14012 c0=value0|c1=value1|c2=value2|..., where valuei is the value set on
14013 the i-th control. Alternatively they can be also defined using the
14014 following syntax: value0|value1|value2|..., where valuei is the
14015 value set on the i-th control. If controls is set to "help", all
14016 available controls and their valid ranges are printed.
14017
14018 sample_rate, s
14019 Specify the sample rate, default to 44100. Only used if plugin have
14020 zero inputs.
14021
14022 nb_samples, n
14023 Set the number of samples per channel per each output frame,
14024 default is 1024. Only used if plugin have zero inputs.
14025
14026 duration, d
14027 Set the minimum duration of the sourced audio. See the Time
14028 duration section in the ffmpeg-utils(1) manual for the accepted
14029 syntax. Note that the resulting duration may be greater than the
14030 specified duration, as the generated audio is always cut at the end
14031 of a complete frame. If not specified, or the expressed duration
14032 is negative, the audio is supposed to be generated forever. Only
14033 used if plugin have zero inputs.
14034
14035 latency, l
14036 Enable latency compensation, by default is disabled. Only used if
14037 plugin have inputs.
14038
14039 Examples
14040
14041 • List all available plugins within amp (LADSPA example plugin)
14042 library:
14043
14044 ladspa=file=amp
14045
14046 • List all available controls and their valid ranges for "vcf_notch"
14047 plugin from "VCF" library:
14048
14049 ladspa=f=vcf:p=vcf_notch:c=help
14050
14051 • Simulate low quality audio equipment using "Computer Music Toolkit"
14052 (CMT) plugin library:
14053
14054 ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
14055
14056 • Add reverberation to the audio using TAP-plugins (Tom's Audio
14057 Processing plugins):
14058
14059 ladspa=file=tap_reverb:tap_reverb
14060
14061 • Generate white noise, with 0.2 amplitude:
14062
14063 ladspa=file=cmt:noise_source_white:c=c0=.2
14064
14065 • Generate 20 bpm clicks using plugin "C* Click - Metronome" from the
14066 "C* Audio Plugin Suite" (CAPS) library:
14067
14068 ladspa=file=caps:Click:c=c1=20'
14069
14070 • Apply "C* Eq10X2 - Stereo 10-band equaliser" effect:
14071
14072 ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
14073
14074 • Increase volume by 20dB using fast lookahead limiter from Steve
14075 Harris "SWH Plugins" collection:
14076
14077 ladspa=fast_lookahead_limiter_1913:fastLookaheadLimiter:20|0|2
14078
14079 • Attenuate low frequencies using Multiband EQ from Steve Harris "SWH
14080 Plugins" collection:
14081
14082 ladspa=mbeq_1197:mbeq:-24|-24|-24|0|0|0|0|0|0|0|0|0|0|0|0
14083
14084 • Reduce stereo image using "Narrower" from the "C* Audio Plugin
14085 Suite" (CAPS) library:
14086
14087 ladspa=caps:Narrower
14088
14089 • Another white noise, now using "C* Audio Plugin Suite" (CAPS)
14090 library:
14091
14092 ladspa=caps:White:.2
14093
14094 • Some fractal noise, using "C* Audio Plugin Suite" (CAPS) library:
14095
14096 ladspa=caps:Fractal:c=c1=1
14097
14098 • Dynamic volume normalization using "VLevel" plugin:
14099
14100 ladspa=vlevel-ladspa:vlevel_mono
14101
14102 Commands
14103
14104 This filter supports the following commands:
14105
14106 cN Modify the N-th control value.
14107
14108 If the specified value is not valid, it is ignored and prior one is
14109 kept.
14110
14111 loudnorm
14112 EBU R128 loudness normalization. Includes both dynamic and linear
14113 normalization modes. Support for both single pass (livestreams, files)
14114 and double pass (files) modes. This algorithm can target IL, LRA, and
14115 maximum true peak. In dynamic mode, to accurately detect true peaks,
14116 the audio stream will be upsampled to 192 kHz. Use the "-ar" option or
14117 "aresample" filter to explicitly set an output sample rate.
14118
14119 The filter accepts the following options:
14120
14121 I, i
14122 Set integrated loudness target. Range is -70.0 - -5.0. Default
14123 value is -24.0.
14124
14125 LRA, lra
14126 Set loudness range target. Range is 1.0 - 50.0. Default value is
14127 7.0.
14128
14129 TP, tp
14130 Set maximum true peak. Range is -9.0 - +0.0. Default value is
14131 -2.0.
14132
14133 measured_I, measured_i
14134 Measured IL of input file. Range is -99.0 - +0.0.
14135
14136 measured_LRA, measured_lra
14137 Measured LRA of input file. Range is 0.0 - 99.0.
14138
14139 measured_TP, measured_tp
14140 Measured true peak of input file. Range is -99.0 - +99.0.
14141
14142 measured_thresh
14143 Measured threshold of input file. Range is -99.0 - +0.0.
14144
14145 offset
14146 Set offset gain. Gain is applied before the true-peak limiter.
14147 Range is -99.0 - +99.0. Default is +0.0.
14148
14149 linear
14150 Normalize by linearly scaling the source audio. "measured_I",
14151 "measured_LRA", "measured_TP", and "measured_thresh" must all be
14152 specified. Target LRA shouldn't be lower than source LRA and the
14153 change in integrated loudness shouldn't result in a true peak which
14154 exceeds the target TP. If any of these conditions aren't met,
14155 normalization mode will revert to dynamic. Options are "true" or
14156 "false". Default is "true".
14157
14158 dual_mono
14159 Treat mono input files as "dual-mono". If a mono file is intended
14160 for playback on a stereo system, its EBU R128 measurement will be
14161 perceptually incorrect. If set to "true", this option will
14162 compensate for this effect. Multi-channel input files are not
14163 affected by this option. Options are true or false. Default is
14164 false.
14165
14166 print_format
14167 Set print format for stats. Options are summary, json, or none.
14168 Default value is none.
14169
14170 lowpass
14171 Apply a low-pass filter with 3dB point frequency. The filter can be
14172 either single-pole or double-pole (the default). The filter roll off
14173 at 6dB per pole per octave (20dB per pole per decade).
14174
14175 The filter accepts the following options:
14176
14177 frequency, f
14178 Set frequency in Hz. Default is 500.
14179
14180 poles, p
14181 Set number of poles. Default is 2.
14182
14183 width_type, t
14184 Set method to specify band-width of filter.
14185
14186 h Hz
14187
14188 q Q-Factor
14189
14190 o octave
14191
14192 s slope
14193
14194 k kHz
14195
14196 width, w
14197 Specify the band-width of a filter in width_type units. Applies
14198 only to double-pole filter. The default is 0.707q and gives a
14199 Butterworth response.
14200
14201 mix, m
14202 How much to use filtered signal in output. Default is 1. Range is
14203 between 0 and 1.
14204
14205 channels, c
14206 Specify which channels to filter, by default all available are
14207 filtered.
14208
14209 normalize, n
14210 Normalize biquad coefficients, by default is disabled. Enabling it
14211 will normalize magnitude response at DC to 0dB.
14212
14213 transform, a
14214 Set transform type of IIR filter.
14215
14216 di
14217 dii
14218 tdi
14219 tdii
14220 latt
14221 svf
14222 zdf
14223 precision, r
14224 Set precison of filtering.
14225
14226 auto
14227 Pick automatic sample format depending on surround filters.
14228
14229 s16 Always use signed 16-bit.
14230
14231 s32 Always use signed 32-bit.
14232
14233 f32 Always use float 32-bit.
14234
14235 f64 Always use float 64-bit.
14236
14237 block_size, b
14238 Set block size used for reverse IIR processing. If this value is
14239 set to high enough value (higher than impulse response length
14240 truncated when reaches near zero values) filtering will become
14241 linear phase otherwise if not big enough it will just produce nasty
14242 artifacts.
14243
14244 Note that filter delay will be exactly this many samples when set
14245 to non-zero value.
14246
14247 Examples
14248
14249 • Lowpass only LFE channel, it LFE is not present it does nothing:
14250
14251 lowpass=c=LFE
14252
14253 Commands
14254
14255 This filter supports the following commands:
14256
14257 frequency, f
14258 Change lowpass frequency. Syntax for the command is : "frequency"
14259
14260 width_type, t
14261 Change lowpass width_type. Syntax for the command is :
14262 "width_type"
14263
14264 width, w
14265 Change lowpass width. Syntax for the command is : "width"
14266
14267 mix, m
14268 Change lowpass mix. Syntax for the command is : "mix"
14269
14270 lv2
14271 Load a LV2 (LADSPA Version 2) plugin.
14272
14273 To enable compilation of this filter you need to configure FFmpeg with
14274 "--enable-lv2".
14275
14276 plugin, p
14277 Specifies the plugin URI. You may need to escape ':'.
14278
14279 controls, c
14280 Set the '|' separated list of controls which are zero or more
14281 floating point values that determine the behavior of the loaded
14282 plugin (for example delay, threshold or gain). If controls is set
14283 to "help", all available controls and their valid ranges are
14284 printed.
14285
14286 sample_rate, s
14287 Specify the sample rate, default to 44100. Only used if plugin have
14288 zero inputs.
14289
14290 nb_samples, n
14291 Set the number of samples per channel per each output frame,
14292 default is 1024. Only used if plugin have zero inputs.
14293
14294 duration, d
14295 Set the minimum duration of the sourced audio. See the Time
14296 duration section in the ffmpeg-utils(1) manual for the accepted
14297 syntax. Note that the resulting duration may be greater than the
14298 specified duration, as the generated audio is always cut at the end
14299 of a complete frame. If not specified, or the expressed duration
14300 is negative, the audio is supposed to be generated forever. Only
14301 used if plugin have zero inputs.
14302
14303 Examples
14304
14305 • Apply bass enhancer plugin from Calf:
14306
14307 lv2=p=http\\\\://calf.sourceforge.net/plugins/BassEnhancer:c=amount=2
14308
14309 • Apply vinyl plugin from Calf:
14310
14311 lv2=p=http\\\\://calf.sourceforge.net/plugins/Vinyl:c=drone=0.2|aging=0.5
14312
14313 • Apply bit crusher plugin from ArtyFX:
14314
14315 lv2=p=http\\\\://www.openavproductions.com/artyfx#bitta:c=crush=0.3
14316
14317 Commands
14318
14319 This filter supports all options that are exported by plugin as
14320 commands.
14321
14322 mcompand
14323 Multiband Compress or expand the audio's dynamic range.
14324
14325 The input audio is divided into bands using 4th order Linkwitz-Riley
14326 IIRs. This is akin to the crossover of a loudspeaker, and results in
14327 flat frequency response when absent compander action.
14328
14329 It accepts the following parameters:
14330
14331 args
14332 This option syntax is: attack,decay,[attack,decay..] soft-knee
14333 points crossover_frequency [delay [initial_volume [gain]]] |
14334 attack,decay ... For explanation of each item refer to compand
14335 filter documentation.
14336
14337 pan
14338 Mix channels with specific gain levels. The filter accepts the output
14339 channel layout followed by a set of channels definitions.
14340
14341 This filter is also designed to efficiently remap the channels of an
14342 audio stream.
14343
14344 The filter accepts parameters of the form: "l|outdef|outdef|..."
14345
14346 l output channel layout or number of channels
14347
14348 outdef
14349 output channel specification, of the form:
14350 "out_name=[gain*]in_name[(+-)[gain*]in_name...]"
14351
14352 out_name
14353 output channel to define, either a channel name (FL, FR, etc.) or a
14354 channel number (c0, c1, etc.)
14355
14356 gain
14357 multiplicative coefficient for the channel, 1 leaving the volume
14358 unchanged
14359
14360 in_name
14361 input channel to use, see out_name for details; it is not possible
14362 to mix named and numbered input channels
14363
14364 If the `=' in a channel specification is replaced by `<', then the
14365 gains for that specification will be renormalized so that the total is
14366 1, thus avoiding clipping noise.
14367
14368 Mixing examples
14369
14370 For example, if you want to down-mix from stereo to mono, but with a
14371 bigger factor for the left channel:
14372
14373 pan=1c|c0=0.9*c0+0.1*c1
14374
14375 A customized down-mix to stereo that works automatically for 3-, 4-, 5-
14376 and 7-channels surround:
14377
14378 pan=stereo| FL < FL + 0.5*FC + 0.6*BL + 0.6*SL | FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
14379
14380 Note that ffmpeg integrates a default down-mix (and up-mix) system that
14381 should be preferred (see "-ac" option) unless you have very specific
14382 needs.
14383
14384 Remapping examples
14385
14386 The channel remapping will be effective if, and only if:
14387
14388 *<gain coefficients are zeroes or ones,>
14389 *<only one input per channel output,>
14390
14391 If all these conditions are satisfied, the filter will notify the user
14392 ("Pure channel mapping detected"), and use an optimized and lossless
14393 method to do the remapping.
14394
14395 For example, if you have a 5.1 source and want a stereo audio stream by
14396 dropping the extra channels:
14397
14398 pan="stereo| c0=FL | c1=FR"
14399
14400 Given the same source, you can also switch front left and front right
14401 channels and keep the input channel layout:
14402
14403 pan="5.1| c0=c1 | c1=c0 | c2=c2 | c3=c3 | c4=c4 | c5=c5"
14404
14405 If the input is a stereo audio stream, you can mute the front left
14406 channel (and still keep the stereo channel layout) with:
14407
14408 pan="stereo|c1=c1"
14409
14410 Still with a stereo audio stream input, you can copy the right channel
14411 in both front left and right:
14412
14413 pan="stereo| c0=FR | c1=FR"
14414
14415 replaygain
14416 ReplayGain scanner filter. This filter takes an audio stream as an
14417 input and outputs it unchanged. At end of filtering it displays
14418 "track_gain" and "track_peak".
14419
14420 resample
14421 Convert the audio sample format, sample rate and channel layout. It is
14422 not meant to be used directly.
14423
14424 rubberband
14425 Apply time-stretching and pitch-shifting with librubberband.
14426
14427 To enable compilation of this filter, you need to configure FFmpeg with
14428 "--enable-librubberband".
14429
14430 The filter accepts the following options:
14431
14432 tempo
14433 Set tempo scale factor.
14434
14435 pitch
14436 Set pitch scale factor.
14437
14438 transients
14439 Set transients detector. Possible values are:
14440
14441 crisp
14442 mixed
14443 smooth
14444 detector
14445 Set detector. Possible values are:
14446
14447 compound
14448 percussive
14449 soft
14450 phase
14451 Set phase. Possible values are:
14452
14453 laminar
14454 independent
14455 window
14456 Set processing window size. Possible values are:
14457
14458 standard
14459 short
14460 long
14461 smoothing
14462 Set smoothing. Possible values are:
14463
14464 off
14465 on
14466 formant
14467 Enable formant preservation when shift pitching. Possible values
14468 are:
14469
14470 shifted
14471 preserved
14472 pitchq
14473 Set pitch quality. Possible values are:
14474
14475 quality
14476 speed
14477 consistency
14478 channels
14479 Set channels. Possible values are:
14480
14481 apart
14482 together
14483
14484 Commands
14485
14486 This filter supports the following commands:
14487
14488 tempo
14489 Change filter tempo scale factor. Syntax for the command is :
14490 "tempo"
14491
14492 pitch
14493 Change filter pitch scale factor. Syntax for the command is :
14494 "pitch"
14495
14496 sidechaincompress
14497 This filter acts like normal compressor but has the ability to compress
14498 detected signal using second input signal. It needs two input streams
14499 and returns one output stream. First input stream will be processed
14500 depending on second stream signal. The filtered signal then can be
14501 filtered with other filters in later stages of processing. See pan and
14502 amerge filter.
14503
14504 The filter accepts the following options:
14505
14506 level_in
14507 Set input gain. Default is 1. Range is between 0.015625 and 64.
14508
14509 mode
14510 Set mode of compressor operation. Can be "upward" or "downward".
14511 Default is "downward".
14512
14513 threshold
14514 If a signal of second stream raises above this level it will affect
14515 the gain reduction of first stream. By default is 0.125. Range is
14516 between 0.00097563 and 1.
14517
14518 ratio
14519 Set a ratio about which the signal is reduced. 1:2 means that if
14520 the level raised 4dB above the threshold, it will be only 2dB above
14521 after the reduction. Default is 2. Range is between 1 and 20.
14522
14523 attack
14524 Amount of milliseconds the signal has to rise above the threshold
14525 before gain reduction starts. Default is 20. Range is between 0.01
14526 and 2000.
14527
14528 release
14529 Amount of milliseconds the signal has to fall below the threshold
14530 before reduction is decreased again. Default is 250. Range is
14531 between 0.01 and 9000.
14532
14533 makeup
14534 Set the amount by how much signal will be amplified after
14535 processing. Default is 1. Range is from 1 to 64.
14536
14537 knee
14538 Curve the sharp knee around the threshold to enter gain reduction
14539 more softly. Default is 2.82843. Range is between 1 and 8.
14540
14541 link
14542 Choose if the "average" level between all channels of side-chain
14543 stream or the louder("maximum") channel of side-chain stream
14544 affects the reduction. Default is "average".
14545
14546 detection
14547 Should the exact signal be taken in case of "peak" or an RMS one in
14548 case of "rms". Default is "rms" which is mainly smoother.
14549
14550 level_sc
14551 Set sidechain gain. Default is 1. Range is between 0.015625 and 64.
14552
14553 mix How much to use compressed signal in output. Default is 1. Range
14554 is between 0 and 1.
14555
14556 Commands
14557
14558 This filter supports the all above options as commands.
14559
14560 Examples
14561
14562 • Full ffmpeg example taking 2 audio inputs, 1st input to be
14563 compressed depending on the signal of 2nd input and later
14564 compressed signal to be merged with 2nd input:
14565
14566 ffmpeg -i main.flac -i sidechain.flac -filter_complex "[1:a]asplit=2[sc][mix];[0:a][sc]sidechaincompress[compr];[compr][mix]amerge"
14567
14568 sidechaingate
14569 A sidechain gate acts like a normal (wideband) gate but has the ability
14570 to filter the detected signal before sending it to the gain reduction
14571 stage. Normally a gate uses the full range signal to detect a level
14572 above the threshold. For example: If you cut all lower frequencies
14573 from your sidechain signal the gate will decrease the volume of your
14574 track only if not enough highs appear. With this technique you are able
14575 to reduce the resonation of a natural drum or remove "rumbling" of
14576 muted strokes from a heavily distorted guitar. It needs two input
14577 streams and returns one output stream. First input stream will be
14578 processed depending on second stream signal.
14579
14580 The filter accepts the following options:
14581
14582 level_in
14583 Set input level before filtering. Default is 1. Allowed range is
14584 from 0.015625 to 64.
14585
14586 mode
14587 Set the mode of operation. Can be "upward" or "downward". Default
14588 is "downward". If set to "upward" mode, higher parts of signal will
14589 be amplified, expanding dynamic range in upward direction.
14590 Otherwise, in case of "downward" lower parts of signal will be
14591 reduced.
14592
14593 range
14594 Set the level of gain reduction when the signal is below the
14595 threshold. Default is 0.06125. Allowed range is from 0 to 1.
14596 Setting this to 0 disables reduction and then filter behaves like
14597 expander.
14598
14599 threshold
14600 If a signal rises above this level the gain reduction is released.
14601 Default is 0.125. Allowed range is from 0 to 1.
14602
14603 ratio
14604 Set a ratio about which the signal is reduced. Default is 2.
14605 Allowed range is from 1 to 9000.
14606
14607 attack
14608 Amount of milliseconds the signal has to rise above the threshold
14609 before gain reduction stops. Default is 20 milliseconds. Allowed
14610 range is from 0.01 to 9000.
14611
14612 release
14613 Amount of milliseconds the signal has to fall below the threshold
14614 before the reduction is increased again. Default is 250
14615 milliseconds. Allowed range is from 0.01 to 9000.
14616
14617 makeup
14618 Set amount of amplification of signal after processing. Default is
14619 1. Allowed range is from 1 to 64.
14620
14621 knee
14622 Curve the sharp knee around the threshold to enter gain reduction
14623 more softly. Default is 2.828427125. Allowed range is from 1 to 8.
14624
14625 detection
14626 Choose if exact signal should be taken for detection or an RMS like
14627 one. Default is rms. Can be peak or rms.
14628
14629 link
14630 Choose if the average level between all channels or the louder
14631 channel affects the reduction. Default is average. Can be average
14632 or maximum.
14633
14634 level_sc
14635 Set sidechain gain. Default is 1. Range is from 0.015625 to 64.
14636
14637 Commands
14638
14639 This filter supports the all above options as commands.
14640
14641 silencedetect
14642 Detect silence in an audio stream.
14643
14644 This filter logs a message when it detects that the input audio volume
14645 is less or equal to a noise tolerance value for a duration greater or
14646 equal to the minimum detected noise duration.
14647
14648 The printed times and duration are expressed in seconds. The
14649 "lavfi.silence_start" or "lavfi.silence_start.X" metadata key is set on
14650 the first frame whose timestamp equals or exceeds the detection
14651 duration and it contains the timestamp of the first frame of the
14652 silence.
14653
14654 The "lavfi.silence_duration" or "lavfi.silence_duration.X" and
14655 "lavfi.silence_end" or "lavfi.silence_end.X" metadata keys are set on
14656 the first frame after the silence. If mono is enabled, and each channel
14657 is evaluated separately, the ".X" suffixed keys are used, and "X"
14658 corresponds to the channel number.
14659
14660 The filter accepts the following options:
14661
14662 noise, n
14663 Set noise tolerance. Can be specified in dB (in case "dB" is
14664 appended to the specified value) or amplitude ratio. Default is
14665 -60dB, or 0.001.
14666
14667 duration, d
14668 Set silence duration until notification (default is 2 seconds). See
14669 the Time duration section in the ffmpeg-utils(1) manual for the
14670 accepted syntax.
14671
14672 mono, m
14673 Process each channel separately, instead of combined. By default is
14674 disabled.
14675
14676 Examples
14677
14678 • Detect 5 seconds of silence with -50dB noise tolerance:
14679
14680 silencedetect=n=-50dB:d=5
14681
14682 • Complete example with ffmpeg to detect silence with 0.0001 noise
14683 tolerance in silence.mp3:
14684
14685 ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
14686
14687 silenceremove
14688 Remove silence from the beginning, middle or end of the audio.
14689
14690 The filter accepts the following options:
14691
14692 start_periods
14693 This value is used to indicate if audio should be trimmed at
14694 beginning of the audio. A value of zero indicates no silence should
14695 be trimmed from the beginning. When specifying a non-zero value, it
14696 trims audio up until it finds non-silence. Normally, when trimming
14697 silence from beginning of audio the start_periods will be 1 but it
14698 can be increased to higher values to trim all audio up to specific
14699 count of non-silence periods. Default value is 0.
14700
14701 start_duration
14702 Specify the amount of time that non-silence must be detected before
14703 it stops trimming audio. By increasing the duration, bursts of
14704 noises can be treated as silence and trimmed off. Default value is
14705 0.
14706
14707 start_threshold
14708 This indicates what sample value should be treated as silence. For
14709 digital audio, a value of 0 may be fine but for audio recorded from
14710 analog, you may wish to increase the value to account for
14711 background noise. Can be specified in dB (in case "dB" is appended
14712 to the specified value) or amplitude ratio. Default value is 0.
14713
14714 start_silence
14715 Specify max duration of silence at beginning that will be kept
14716 after trimming. Default is 0, which is equal to trimming all
14717 samples detected as silence.
14718
14719 start_mode
14720 Specify mode of detection of silence end in start of multi-channel
14721 audio. Can be any or all. Default is any. With any, any sample
14722 that is detected as non-silence will cause stopped trimming of
14723 silence. With all, only if all channels are detected as non-
14724 silence will cause stopped trimming of silence.
14725
14726 stop_periods
14727 Set the count for trimming silence from the end of audio. To
14728 remove silence from the middle of a file, specify a stop_periods
14729 that is negative. This value is then treated as a positive value
14730 and is used to indicate the effect should restart processing as
14731 specified by start_periods, making it suitable for removing periods
14732 of silence in the middle of the audio. Default value is 0.
14733
14734 stop_duration
14735 Specify a duration of silence that must exist before audio is not
14736 copied any more. By specifying a higher duration, silence that is
14737 wanted can be left in the audio. Default value is 0.
14738
14739 stop_threshold
14740 This is the same as start_threshold but for trimming silence from
14741 the end of audio. Can be specified in dB (in case "dB" is appended
14742 to the specified value) or amplitude ratio. Default value is 0.
14743
14744 stop_silence
14745 Specify max duration of silence at end that will be kept after
14746 trimming. Default is 0, which is equal to trimming all samples
14747 detected as silence.
14748
14749 stop_mode
14750 Specify mode of detection of silence start in end of multi-channel
14751 audio. Can be any or all. Default is any. With any, any sample
14752 that is detected as non-silence will cause stopped trimming of
14753 silence. With all, only if all channels are detected as non-
14754 silence will cause stopped trimming of silence.
14755
14756 detection
14757 Set how is silence detected. Can be "rms" or "peak". Second is
14758 faster and works better with digital silence which is exactly 0.
14759 Default value is "rms".
14760
14761 window
14762 Set duration in number of seconds used to calculate size of window
14763 in number of samples for detecting silence. Default value is 0.02.
14764 Allowed range is from 0 to 10.
14765
14766 Examples
14767
14768 • The following example shows how this filter can be used to start a
14769 recording that does not contain the delay at the start which
14770 usually occurs between pressing the record button and the start of
14771 the performance:
14772
14773 silenceremove=start_periods=1:start_duration=5:start_threshold=0.02
14774
14775 • Trim all silence encountered from beginning to end where there is
14776 more than 1 second of silence in audio:
14777
14778 silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-90dB
14779
14780 • Trim all digital silence samples, using peak detection, from
14781 beginning to end where there is more than 0 samples of digital
14782 silence in audio and digital silence is detected in all channels at
14783 same positions in stream:
14784
14785 silenceremove=window=0:detection=peak:stop_mode=all:start_mode=all:stop_periods=-1:stop_threshold=0
14786
14787 sofalizer
14788 SOFAlizer uses head-related transfer functions (HRTFs) to create
14789 virtual loudspeakers around the user for binaural listening via
14790 headphones (audio formats up to 9 channels supported). The HRTFs are
14791 stored in SOFA files (see <http://www.sofacoustics.org/> for a
14792 database). SOFAlizer is developed at the Acoustics Research Institute
14793 (ARI) of the Austrian Academy of Sciences.
14794
14795 To enable compilation of this filter you need to configure FFmpeg with
14796 "--enable-libmysofa".
14797
14798 The filter accepts the following options:
14799
14800 sofa
14801 Set the SOFA file used for rendering.
14802
14803 gain
14804 Set gain applied to audio. Value is in dB. Default is 0.
14805
14806 rotation
14807 Set rotation of virtual loudspeakers in deg. Default is 0.
14808
14809 elevation
14810 Set elevation of virtual speakers in deg. Default is 0.
14811
14812 radius
14813 Set distance in meters between loudspeakers and the listener with
14814 near-field HRTFs. Default is 1.
14815
14816 type
14817 Set processing type. Can be time or freq. time is processing audio
14818 in time domain which is slow. freq is processing audio in
14819 frequency domain which is fast. Default is freq.
14820
14821 speakers
14822 Set custom positions of virtual loudspeakers. Syntax for this
14823 option is: <CH> <AZIM> <ELEV>[|<CH> <AZIM> <ELEV>|...]. Each
14824 virtual loudspeaker is described with short channel name following
14825 with azimuth and elevation in degrees. Each virtual loudspeaker
14826 description is separated by '|'. For example to override front
14827 left and front right channel positions use: 'speakers=FL 45 15|FR
14828 345 15'. Descriptions with unrecognised channel names are ignored.
14829
14830 lfegain
14831 Set custom gain for LFE channels. Value is in dB. Default is 0.
14832
14833 framesize
14834 Set custom frame size in number of samples. Default is 1024.
14835 Allowed range is from 1024 to 96000. Only used if option type is
14836 set to freq.
14837
14838 normalize
14839 Should all IRs be normalized upon importing SOFA file. By default
14840 is enabled.
14841
14842 interpolate
14843 Should nearest IRs be interpolated with neighbor IRs if exact
14844 position does not match. By default is disabled.
14845
14846 minphase
14847 Minphase all IRs upon loading of SOFA file. By default is disabled.
14848
14849 anglestep
14850 Set neighbor search angle step. Only used if option interpolate is
14851 enabled.
14852
14853 radstep
14854 Set neighbor search radius step. Only used if option interpolate is
14855 enabled.
14856
14857 Examples
14858
14859 • Using ClubFritz6 sofa file:
14860
14861 sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=1
14862
14863 • Using ClubFritz12 sofa file and bigger radius with small rotation:
14864
14865 sofalizer=sofa=/path/to/ClubFritz12.sofa:type=freq:radius=2:rotation=5
14866
14867 • Similar as above but with custom speaker positions for front left,
14868 front right, back left and back right and also with custom gain:
14869
14870 "sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=2:speakers=FL 45|FR 315|BL 135|BR 225:gain=28"
14871
14872 speechnorm
14873 Speech Normalizer.
14874
14875 This filter expands or compresses each half-cycle of audio samples
14876 (local set of samples all above or all below zero and between two
14877 nearest zero crossings) depending on threshold value, so audio reaches
14878 target peak value under conditions controlled by below options.
14879
14880 The filter accepts the following options:
14881
14882 peak, p
14883 Set the expansion target peak value. This specifies the highest
14884 allowed absolute amplitude level for the normalized audio input.
14885 Default value is 0.95. Allowed range is from 0.0 to 1.0.
14886
14887 expansion, e
14888 Set the maximum expansion factor. Allowed range is from 1.0 to
14889 50.0. Default value is 2.0. This option controls maximum local
14890 half-cycle of samples expansion. The maximum expansion would be
14891 such that local peak value reaches target peak value but never to
14892 surpass it and that ratio between new and previous peak value does
14893 not surpass this option value.
14894
14895 compression, c
14896 Set the maximum compression factor. Allowed range is from 1.0 to
14897 50.0. Default value is 2.0. This option controls maximum local
14898 half-cycle of samples compression. This option is used only if
14899 threshold option is set to value greater than 0.0, then in such
14900 cases when local peak is lower or same as value set by threshold
14901 all samples belonging to that peak's half-cycle will be compressed
14902 by current compression factor.
14903
14904 threshold, t
14905 Set the threshold value. Default value is 0.0. Allowed range is
14906 from 0.0 to 1.0. This option specifies which half-cycles of
14907 samples will be compressed and which will be expanded. Any half-
14908 cycle samples with their local peak value below or same as this
14909 option value will be compressed by current compression factor,
14910 otherwise, if greater than threshold value they will be expanded
14911 with expansion factor so that it could reach peak target value but
14912 never surpass it.
14913
14914 raise, r
14915 Set the expansion raising amount per each half-cycle of samples.
14916 Default value is 0.001. Allowed range is from 0.0 to 1.0. This
14917 controls how fast expansion factor is raised per each new half-
14918 cycle until it reaches expansion value. Setting this options too
14919 high may lead to distortions.
14920
14921 fall, f
14922 Set the compression raising amount per each half-cycle of samples.
14923 Default value is 0.001. Allowed range is from 0.0 to 1.0. This
14924 controls how fast compression factor is raised per each new half-
14925 cycle until it reaches compression value.
14926
14927 channels, h
14928 Specify which channels to filter, by default all available channels
14929 are filtered.
14930
14931 invert, i
14932 Enable inverted filtering, by default is disabled. This inverts
14933 interpretation of threshold option. When enabled any half-cycle of
14934 samples with their local peak value below or same as threshold
14935 option will be expanded otherwise it will be compressed.
14936
14937 link, l
14938 Link channels when calculating gain applied to each filtered
14939 channel sample, by default is disabled. When disabled each
14940 filtered channel gain calculation is independent, otherwise when
14941 this option is enabled the minimum of all possible gains for each
14942 filtered channel is used.
14943
14944 Commands
14945
14946 This filter supports the all above options as commands.
14947
14948 stereotools
14949 This filter has some handy utilities to manage stereo signals, for
14950 converting M/S stereo recordings to L/R signal while having control
14951 over the parameters or spreading the stereo image of master track.
14952
14953 The filter accepts the following options:
14954
14955 level_in
14956 Set input level before filtering for both channels. Defaults is 1.
14957 Allowed range is from 0.015625 to 64.
14958
14959 level_out
14960 Set output level after filtering for both channels. Defaults is 1.
14961 Allowed range is from 0.015625 to 64.
14962
14963 balance_in
14964 Set input balance between both channels. Default is 0. Allowed
14965 range is from -1 to 1.
14966
14967 balance_out
14968 Set output balance between both channels. Default is 0. Allowed
14969 range is from -1 to 1.
14970
14971 softclip
14972 Enable softclipping. Results in analog distortion instead of harsh
14973 digital 0dB clipping. Disabled by default.
14974
14975 mutel
14976 Mute the left channel. Disabled by default.
14977
14978 muter
14979 Mute the right channel. Disabled by default.
14980
14981 phasel
14982 Change the phase of the left channel. Disabled by default.
14983
14984 phaser
14985 Change the phase of the right channel. Disabled by default.
14986
14987 mode
14988 Set stereo mode. Available values are:
14989
14990 lr>lr
14991 Left/Right to Left/Right, this is default.
14992
14993 lr>ms
14994 Left/Right to Mid/Side.
14995
14996 ms>lr
14997 Mid/Side to Left/Right.
14998
14999 lr>ll
15000 Left/Right to Left/Left.
15001
15002 lr>rr
15003 Left/Right to Right/Right.
15004
15005 lr>l+r
15006 Left/Right to Left + Right.
15007
15008 lr>rl
15009 Left/Right to Right/Left.
15010
15011 ms>ll
15012 Mid/Side to Left/Left.
15013
15014 ms>rr
15015 Mid/Side to Right/Right.
15016
15017 ms>rl
15018 Mid/Side to Right/Left.
15019
15020 lr>l-r
15021 Left/Right to Left - Right.
15022
15023 slev
15024 Set level of side signal. Default is 1. Allowed range is from
15025 0.015625 to 64.
15026
15027 sbal
15028 Set balance of side signal. Default is 0. Allowed range is from -1
15029 to 1.
15030
15031 mlev
15032 Set level of the middle signal. Default is 1. Allowed range is
15033 from 0.015625 to 64.
15034
15035 mpan
15036 Set middle signal pan. Default is 0. Allowed range is from -1 to 1.
15037
15038 base
15039 Set stereo base between mono and inversed channels. Default is 0.
15040 Allowed range is from -1 to 1.
15041
15042 delay
15043 Set delay in milliseconds how much to delay left from right channel
15044 and vice versa. Default is 0. Allowed range is from -20 to 20.
15045
15046 sclevel
15047 Set S/C level. Default is 1. Allowed range is from 1 to 100.
15048
15049 phase
15050 Set the stereo phase in degrees. Default is 0. Allowed range is
15051 from 0 to 360.
15052
15053 bmode_in, bmode_out
15054 Set balance mode for balance_in/balance_out option.
15055
15056 Can be one of the following:
15057
15058 balance
15059 Classic balance mode. Attenuate one channel at time. Gain is
15060 raised up to 1.
15061
15062 amplitude
15063 Similar as classic mode above but gain is raised up to 2.
15064
15065 power
15066 Equal power distribution, from -6dB to +6dB range.
15067
15068 Commands
15069
15070 This filter supports the all above options as commands.
15071
15072 Examples
15073
15074 • Apply karaoke like effect:
15075
15076 stereotools=mlev=0.015625
15077
15078 • Convert M/S signal to L/R:
15079
15080 "stereotools=mode=ms>lr"
15081
15082 stereowiden
15083 This filter enhance the stereo effect by suppressing signal common to
15084 both channels and by delaying the signal of left into right and vice
15085 versa, thereby widening the stereo effect.
15086
15087 The filter accepts the following options:
15088
15089 delay
15090 Time in milliseconds of the delay of left signal into right and
15091 vice versa. Default is 20 milliseconds.
15092
15093 feedback
15094 Amount of gain in delayed signal into right and vice versa. Gives a
15095 delay effect of left signal in right output and vice versa which
15096 gives widening effect. Default is 0.3.
15097
15098 crossfeed
15099 Cross feed of left into right with inverted phase. This helps in
15100 suppressing the mono. If the value is 1 it will cancel all the
15101 signal common to both channels. Default is 0.3.
15102
15103 drymix
15104 Set level of input signal of original channel. Default is 0.8.
15105
15106 Commands
15107
15108 This filter supports the all above options except "delay" as commands.
15109
15110 superequalizer
15111 Apply 18 band equalizer.
15112
15113 The filter accepts the following options:
15114
15115 1b Set 65Hz band gain.
15116
15117 2b Set 92Hz band gain.
15118
15119 3b Set 131Hz band gain.
15120
15121 4b Set 185Hz band gain.
15122
15123 5b Set 262Hz band gain.
15124
15125 6b Set 370Hz band gain.
15126
15127 7b Set 523Hz band gain.
15128
15129 8b Set 740Hz band gain.
15130
15131 9b Set 1047Hz band gain.
15132
15133 10b Set 1480Hz band gain.
15134
15135 11b Set 2093Hz band gain.
15136
15137 12b Set 2960Hz band gain.
15138
15139 13b Set 4186Hz band gain.
15140
15141 14b Set 5920Hz band gain.
15142
15143 15b Set 8372Hz band gain.
15144
15145 16b Set 11840Hz band gain.
15146
15147 17b Set 16744Hz band gain.
15148
15149 18b Set 20000Hz band gain.
15150
15151 surround
15152 Apply audio surround upmix filter.
15153
15154 This filter allows to produce multichannel output from audio stream.
15155
15156 The filter accepts the following options:
15157
15158 chl_out
15159 Set output channel layout. By default, this is 5.1.
15160
15161 See the Channel Layout section in the ffmpeg-utils(1) manual for
15162 the required syntax.
15163
15164 chl_in
15165 Set input channel layout. By default, this is stereo.
15166
15167 See the Channel Layout section in the ffmpeg-utils(1) manual for
15168 the required syntax.
15169
15170 level_in
15171 Set input volume level. By default, this is 1.
15172
15173 level_out
15174 Set output volume level. By default, this is 1.
15175
15176 lfe Enable LFE channel output if output channel layout has it. By
15177 default, this is enabled.
15178
15179 lfe_low
15180 Set LFE low cut off frequency. By default, this is 128 Hz.
15181
15182 lfe_high
15183 Set LFE high cut off frequency. By default, this is 256 Hz.
15184
15185 lfe_mode
15186 Set LFE mode, can be add or sub. Default is add. In add mode, LFE
15187 channel is created from input audio and added to output. In sub
15188 mode, LFE channel is created from input audio and added to output
15189 but also all non-LFE output channels are subtracted with output LFE
15190 channel.
15191
15192 angle
15193 Set angle of stereo surround transform, Allowed range is from 0 to
15194 360. Default is 90.
15195
15196 fc_in
15197 Set front center input volume. By default, this is 1.
15198
15199 fc_out
15200 Set front center output volume. By default, this is 1.
15201
15202 fl_in
15203 Set front left input volume. By default, this is 1.
15204
15205 fl_out
15206 Set front left output volume. By default, this is 1.
15207
15208 fr_in
15209 Set front right input volume. By default, this is 1.
15210
15211 fr_out
15212 Set front right output volume. By default, this is 1.
15213
15214 sl_in
15215 Set side left input volume. By default, this is 1.
15216
15217 sl_out
15218 Set side left output volume. By default, this is 1.
15219
15220 sr_in
15221 Set side right input volume. By default, this is 1.
15222
15223 sr_out
15224 Set side right output volume. By default, this is 1.
15225
15226 bl_in
15227 Set back left input volume. By default, this is 1.
15228
15229 bl_out
15230 Set back left output volume. By default, this is 1.
15231
15232 br_in
15233 Set back right input volume. By default, this is 1.
15234
15235 br_out
15236 Set back right output volume. By default, this is 1.
15237
15238 bc_in
15239 Set back center input volume. By default, this is 1.
15240
15241 bc_out
15242 Set back center output volume. By default, this is 1.
15243
15244 lfe_in
15245 Set LFE input volume. By default, this is 1.
15246
15247 lfe_out
15248 Set LFE output volume. By default, this is 1.
15249
15250 allx
15251 Set spread usage of stereo image across X axis for all channels.
15252 Allowed range is from -1 to 15. By default this value is negative
15253 -1, and thus unused.
15254
15255 ally
15256 Set spread usage of stereo image across Y axis for all channels.
15257 Allowed range is from -1 to 15. By default this value is negative
15258 -1, and thus unused.
15259
15260 fcx, flx, frx, blx, brx, slx, srx, bcx
15261 Set spread usage of stereo image across X axis for each channel.
15262 Allowed range is from 0.06 to 15. By default this value is 0.5.
15263
15264 fcy, fly, fry, bly, bry, sly, sry, bcy
15265 Set spread usage of stereo image across Y axis for each channel.
15266 Allowed range is from 0.06 to 15. By default this value is 0.5.
15267
15268 win_size
15269 Set window size. Allowed range is from 1024 to 65536. Default size
15270 is 4096.
15271
15272 win_func
15273 Set window function.
15274
15275 It accepts the following values:
15276
15277 rect
15278 bartlett
15279 hann, hanning
15280 hamming
15281 blackman
15282 welch
15283 flattop
15284 bharris
15285 bnuttall
15286 bhann
15287 sine
15288 nuttall
15289 lanczos
15290 gauss
15291 tukey
15292 dolph
15293 cauchy
15294 parzen
15295 poisson
15296 bohman
15297
15298 Default is "hann".
15299
15300 overlap
15301 Set window overlap. If set to 1, the recommended overlap for
15302 selected window function will be picked. Default is 0.5.
15303
15304 tiltshelf
15305 Boost or cut the lower frequencies and cut or boost higher frequencies
15306 of the audio using a two-pole shelving filter with a response similar
15307 to that of a standard hi-fi's tone-controls. This is also known as
15308 shelving equalisation (EQ).
15309
15310 The filter accepts the following options:
15311
15312 gain, g
15313 Give the gain at 0 Hz. Its useful range is about -20 (for a large
15314 cut) to +20 (for a large boost). Beware of clipping when using a
15315 positive gain.
15316
15317 frequency, f
15318 Set the filter's central frequency and so can be used to extend or
15319 reduce the frequency range to be boosted or cut. The default value
15320 is 3000 Hz.
15321
15322 width_type, t
15323 Set method to specify band-width of filter.
15324
15325 h Hz
15326
15327 q Q-Factor
15328
15329 o octave
15330
15331 s slope
15332
15333 k kHz
15334
15335 width, w
15336 Determine how steep is the filter's shelf transition.
15337
15338 poles, p
15339 Set number of poles. Default is 2.
15340
15341 mix, m
15342 How much to use filtered signal in output. Default is 1. Range is
15343 between 0 and 1.
15344
15345 channels, c
15346 Specify which channels to filter, by default all available are
15347 filtered.
15348
15349 normalize, n
15350 Normalize biquad coefficients, by default is disabled. Enabling it
15351 will normalize magnitude response at DC to 0dB.
15352
15353 transform, a
15354 Set transform type of IIR filter.
15355
15356 di
15357 dii
15358 tdi
15359 tdii
15360 latt
15361 svf
15362 zdf
15363 precision, r
15364 Set precison of filtering.
15365
15366 auto
15367 Pick automatic sample format depending on surround filters.
15368
15369 s16 Always use signed 16-bit.
15370
15371 s32 Always use signed 32-bit.
15372
15373 f32 Always use float 32-bit.
15374
15375 f64 Always use float 64-bit.
15376
15377 block_size, b
15378 Set block size used for reverse IIR processing. If this value is
15379 set to high enough value (higher than impulse response length
15380 truncated when reaches near zero values) filtering will become
15381 linear phase otherwise if not big enough it will just produce nasty
15382 artifacts.
15383
15384 Note that filter delay will be exactly this many samples when set
15385 to non-zero value.
15386
15387 Commands
15388
15389 This filter supports some options as commands.
15390
15391 treble, highshelf
15392 Boost or cut treble (upper) frequencies of the audio using a two-pole
15393 shelving filter with a response similar to that of a standard hi-fi's
15394 tone-controls. This is also known as shelving equalisation (EQ).
15395
15396 The filter accepts the following options:
15397
15398 gain, g
15399 Give the gain at whichever is the lower of ~22 kHz and the Nyquist
15400 frequency. Its useful range is about -20 (for a large cut) to +20
15401 (for a large boost). Beware of clipping when using a positive gain.
15402
15403 frequency, f
15404 Set the filter's central frequency and so can be used to extend or
15405 reduce the frequency range to be boosted or cut. The default value
15406 is 3000 Hz.
15407
15408 width_type, t
15409 Set method to specify band-width of filter.
15410
15411 h Hz
15412
15413 q Q-Factor
15414
15415 o octave
15416
15417 s slope
15418
15419 k kHz
15420
15421 width, w
15422 Determine how steep is the filter's shelf transition.
15423
15424 poles, p
15425 Set number of poles. Default is 2.
15426
15427 mix, m
15428 How much to use filtered signal in output. Default is 1. Range is
15429 between 0 and 1.
15430
15431 channels, c
15432 Specify which channels to filter, by default all available are
15433 filtered.
15434
15435 normalize, n
15436 Normalize biquad coefficients, by default is disabled. Enabling it
15437 will normalize magnitude response at DC to 0dB.
15438
15439 transform, a
15440 Set transform type of IIR filter.
15441
15442 di
15443 dii
15444 tdi
15445 tdii
15446 latt
15447 svf
15448 zdf
15449 precision, r
15450 Set precison of filtering.
15451
15452 auto
15453 Pick automatic sample format depending on surround filters.
15454
15455 s16 Always use signed 16-bit.
15456
15457 s32 Always use signed 32-bit.
15458
15459 f32 Always use float 32-bit.
15460
15461 f64 Always use float 64-bit.
15462
15463 block_size, b
15464 Set block size used for reverse IIR processing. If this value is
15465 set to high enough value (higher than impulse response length
15466 truncated when reaches near zero values) filtering will become
15467 linear phase otherwise if not big enough it will just produce nasty
15468 artifacts.
15469
15470 Note that filter delay will be exactly this many samples when set
15471 to non-zero value.
15472
15473 Commands
15474
15475 This filter supports the following commands:
15476
15477 frequency, f
15478 Change treble frequency. Syntax for the command is : "frequency"
15479
15480 width_type, t
15481 Change treble width_type. Syntax for the command is : "width_type"
15482
15483 width, w
15484 Change treble width. Syntax for the command is : "width"
15485
15486 gain, g
15487 Change treble gain. Syntax for the command is : "gain"
15488
15489 mix, m
15490 Change treble mix. Syntax for the command is : "mix"
15491
15492 tremolo
15493 Sinusoidal amplitude modulation.
15494
15495 The filter accepts the following options:
15496
15497 f Modulation frequency in Hertz. Modulation frequencies in the
15498 subharmonic range (20 Hz or lower) will result in a tremolo effect.
15499 This filter may also be used as a ring modulator by specifying a
15500 modulation frequency higher than 20 Hz. Range is 0.1 - 20000.0.
15501 Default value is 5.0 Hz.
15502
15503 d Depth of modulation as a percentage. Range is 0.0 - 1.0. Default
15504 value is 0.5.
15505
15506 vibrato
15507 Sinusoidal phase modulation.
15508
15509 The filter accepts the following options:
15510
15511 f Modulation frequency in Hertz. Range is 0.1 - 20000.0. Default
15512 value is 5.0 Hz.
15513
15514 d Depth of modulation as a percentage. Range is 0.0 - 1.0. Default
15515 value is 0.5.
15516
15517 virtualbass
15518 Apply audio Virtual Bass filter.
15519
15520 This filter accepts stereo input and produce stereo with LFE (2.1)
15521 channels output. The newly produced LFE channel have enhanced virtual
15522 bass originally obtained from both stereo channels. This filter
15523 outputs front left and front right channels unchanged as available in
15524 stereo input.
15525
15526 The filter accepts the following options:
15527
15528 cutoff
15529 Set the virtual bass cutoff frequency. Default value is 250 Hz.
15530 Allowed range is from 100 to 500 Hz.
15531
15532 strength
15533 Set the virtual bass strength. Allowed range is from 0.5 to 3.
15534 Default value is 3.
15535
15536 volume
15537 Adjust the input audio volume.
15538
15539 It accepts the following parameters:
15540
15541 volume
15542 Set audio volume expression.
15543
15544 Output values are clipped to the maximum value.
15545
15546 The output audio volume is given by the relation:
15547
15548 <output_volume> = <volume> * <input_volume>
15549
15550 The default value for volume is "1.0".
15551
15552 precision
15553 This parameter represents the mathematical precision.
15554
15555 It determines which input sample formats will be allowed, which
15556 affects the precision of the volume scaling.
15557
15558 fixed
15559 8-bit fixed-point; this limits input sample format to U8, S16,
15560 and S32.
15561
15562 float
15563 32-bit floating-point; this limits input sample format to FLT.
15564 (default)
15565
15566 double
15567 64-bit floating-point; this limits input sample format to DBL.
15568
15569 replaygain
15570 Choose the behaviour on encountering ReplayGain side data in input
15571 frames.
15572
15573 drop
15574 Remove ReplayGain side data, ignoring its contents (the
15575 default).
15576
15577 ignore
15578 Ignore ReplayGain side data, but leave it in the frame.
15579
15580 track
15581 Prefer the track gain, if present.
15582
15583 album
15584 Prefer the album gain, if present.
15585
15586 replaygain_preamp
15587 Pre-amplification gain in dB to apply to the selected replaygain
15588 gain.
15589
15590 Default value for replaygain_preamp is 0.0.
15591
15592 replaygain_noclip
15593 Prevent clipping by limiting the gain applied.
15594
15595 Default value for replaygain_noclip is 1.
15596
15597 eval
15598 Set when the volume expression is evaluated.
15599
15600 It accepts the following values:
15601
15602 once
15603 only evaluate expression once during the filter initialization,
15604 or when the volume command is sent
15605
15606 frame
15607 evaluate expression for each incoming frame
15608
15609 Default value is once.
15610
15611 The volume expression can contain the following parameters.
15612
15613 n frame number (starting at zero)
15614
15615 nb_channels
15616 number of channels
15617
15618 nb_consumed_samples
15619 number of samples consumed by the filter
15620
15621 nb_samples
15622 number of samples in the current frame
15623
15624 pos original frame position in the file
15625
15626 pts frame PTS
15627
15628 sample_rate
15629 sample rate
15630
15631 startpts
15632 PTS at start of stream
15633
15634 startt
15635 time at start of stream
15636
15637 t frame time
15638
15639 tb timestamp timebase
15640
15641 volume
15642 last set volume value
15643
15644 Note that when eval is set to once only the sample_rate and tb
15645 variables are available, all other variables will evaluate to NAN.
15646
15647 Commands
15648
15649 This filter supports the following commands:
15650
15651 volume
15652 Modify the volume expression. The command accepts the same syntax
15653 of the corresponding option.
15654
15655 If the specified expression is not valid, it is kept at its current
15656 value.
15657
15658 Examples
15659
15660 • Halve the input audio volume:
15661
15662 volume=volume=0.5
15663 volume=volume=1/2
15664 volume=volume=-6.0206dB
15665
15666 In all the above example the named key for volume can be omitted,
15667 for example like in:
15668
15669 volume=0.5
15670
15671 • Increase input audio power by 6 decibels using fixed-point
15672 precision:
15673
15674 volume=volume=6dB:precision=fixed
15675
15676 • Fade volume after time 10 with an annihilation period of 5 seconds:
15677
15678 volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
15679
15680 volumedetect
15681 Detect the volume of the input video.
15682
15683 The filter has no parameters. It supports only 16-bit signed integer
15684 samples, so the input will be converted when needed. Statistics about
15685 the volume will be printed in the log when the input stream end is
15686 reached.
15687
15688 In particular it will show the mean volume (root mean square), maximum
15689 volume (on a per-sample basis), and the beginning of a histogram of the
15690 registered volume values (from the maximum value to a cumulated 1/1000
15691 of the samples).
15692
15693 All volumes are in decibels relative to the maximum PCM value.
15694
15695 Examples
15696
15697 Here is an excerpt of the output:
15698
15699 [Parsed_volumedetect_0 0xa23120] mean_volume: -27 dB
15700 [Parsed_volumedetect_0 0xa23120] max_volume: -4 dB
15701 [Parsed_volumedetect_0 0xa23120] histogram_4db: 6
15702 [Parsed_volumedetect_0 0xa23120] histogram_5db: 62
15703 [Parsed_volumedetect_0 0xa23120] histogram_6db: 286
15704 [Parsed_volumedetect_0 0xa23120] histogram_7db: 1042
15705 [Parsed_volumedetect_0 0xa23120] histogram_8db: 2551
15706 [Parsed_volumedetect_0 0xa23120] histogram_9db: 4609
15707 [Parsed_volumedetect_0 0xa23120] histogram_10db: 8409
15708
15709 It means that:
15710
15711 • The mean square energy is approximately -27 dB, or 10^-2.7.
15712
15713 • The largest sample is at -4 dB, or more precisely between -4 dB and
15714 -5 dB.
15715
15716 • There are 6 samples at -4 dB, 62 at -5 dB, 286 at -6 dB, etc.
15717
15718 In other words, raising the volume by +4 dB does not cause any
15719 clipping, raising it by +5 dB causes clipping for 6 samples, etc.
15720
15722 Below is a description of the currently available audio sources.
15723
15724 abuffer
15725 Buffer audio frames, and make them available to the filter chain.
15726
15727 This source is mainly intended for a programmatic use, in particular
15728 through the interface defined in libavfilter/buffersrc.h.
15729
15730 It accepts the following parameters:
15731
15732 time_base
15733 The timebase which will be used for timestamps of submitted frames.
15734 It must be either a floating-point number or in
15735 numerator/denominator form.
15736
15737 sample_rate
15738 The sample rate of the incoming audio buffers.
15739
15740 sample_fmt
15741 The sample format of the incoming audio buffers. Either a sample
15742 format name or its corresponding integer representation from the
15743 enum AVSampleFormat in libavutil/samplefmt.h
15744
15745 channel_layout
15746 The channel layout of the incoming audio buffers. Either a channel
15747 layout name from channel_layout_map in libavutil/channel_layout.c
15748 or its corresponding integer representation from the AV_CH_LAYOUT_*
15749 macros in libavutil/channel_layout.h
15750
15751 channels
15752 The number of channels of the incoming audio buffers. If both
15753 channels and channel_layout are specified, then they must be
15754 consistent.
15755
15756 Examples
15757
15758 abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
15759
15760 will instruct the source to accept planar 16bit signed stereo at
15761 44100Hz. Since the sample format with name "s16p" corresponds to the
15762 number 6 and the "stereo" channel layout corresponds to the value 0x3,
15763 this is equivalent to:
15764
15765 abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
15766
15767 aevalsrc
15768 Generate an audio signal specified by an expression.
15769
15770 This source accepts in input one or more expressions (one for each
15771 channel), which are evaluated and used to generate a corresponding
15772 audio signal.
15773
15774 This source accepts the following options:
15775
15776 exprs
15777 Set the '|'-separated expressions list for each separate channel.
15778 In case the channel_layout option is not specified, the selected
15779 channel layout depends on the number of provided expressions.
15780 Otherwise the last specified expression is applied to the remaining
15781 output channels.
15782
15783 channel_layout, c
15784 Set the channel layout. The number of channels in the specified
15785 layout must be equal to the number of specified expressions.
15786
15787 duration, d
15788 Set the minimum duration of the sourced audio. See the Time
15789 duration section in the ffmpeg-utils(1) manual for the accepted
15790 syntax. Note that the resulting duration may be greater than the
15791 specified duration, as the generated audio is always cut at the end
15792 of a complete frame.
15793
15794 If not specified, or the expressed duration is negative, the audio
15795 is supposed to be generated forever.
15796
15797 nb_samples, n
15798 Set the number of samples per channel per each output frame,
15799 default to 1024.
15800
15801 sample_rate, s
15802 Specify the sample rate, default to 44100.
15803
15804 Each expression in exprs can contain the following constants:
15805
15806 n number of the evaluated sample, starting from 0
15807
15808 t time of the evaluated sample expressed in seconds, starting from 0
15809
15810 s sample rate
15811
15812 Examples
15813
15814 • Generate silence:
15815
15816 aevalsrc=0
15817
15818 • Generate a sin signal with frequency of 440 Hz, set sample rate to
15819 8000 Hz:
15820
15821 aevalsrc="sin(440*2*PI*t):s=8000"
15822
15823 • Generate a two channels signal, specify the channel layout (Front
15824 Center + Back Center) explicitly:
15825
15826 aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
15827
15828 • Generate white noise:
15829
15830 aevalsrc="-2+random(0)"
15831
15832 • Generate an amplitude modulated signal:
15833
15834 aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
15835
15836 • Generate 2.5 Hz binaural beats on a 360 Hz carrier:
15837
15838 aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
15839
15840 afirsrc
15841 Generate a FIR coefficients using frequency sampling method.
15842
15843 The resulting stream can be used with afir filter for filtering the
15844 audio signal.
15845
15846 The filter accepts the following options:
15847
15848 taps, t
15849 Set number of filter coefficents in output audio stream. Default
15850 value is 1025.
15851
15852 frequency, f
15853 Set frequency points from where magnitude and phase are set. This
15854 must be in non decreasing order, and first element must be 0, while
15855 last element must be 1. Elements are separated by white spaces.
15856
15857 magnitude, m
15858 Set magnitude value for every frequency point set by frequency.
15859 Number of values must be same as number of frequency points.
15860 Values are separated by white spaces.
15861
15862 phase, p
15863 Set phase value for every frequency point set by frequency. Number
15864 of values must be same as number of frequency points. Values are
15865 separated by white spaces.
15866
15867 sample_rate, r
15868 Set sample rate, default is 44100.
15869
15870 nb_samples, n
15871 Set number of samples per each frame. Default is 1024.
15872
15873 win_func, w
15874 Set window function. Default is blackman.
15875
15876 anullsrc
15877 The null audio source, return unprocessed audio frames. It is mainly
15878 useful as a template and to be employed in analysis / debugging tools,
15879 or as the source for filters which ignore the input data (for example
15880 the sox synth filter).
15881
15882 This source accepts the following options:
15883
15884 channel_layout, cl
15885 Specifies the channel layout, and can be either an integer or a
15886 string representing a channel layout. The default value of
15887 channel_layout is "stereo".
15888
15889 Check the channel_layout_map definition in
15890 libavutil/channel_layout.c for the mapping between strings and
15891 channel layout values.
15892
15893 sample_rate, r
15894 Specifies the sample rate, and defaults to 44100.
15895
15896 nb_samples, n
15897 Set the number of samples per requested frames.
15898
15899 duration, d
15900 Set the duration of the sourced audio. See the Time duration
15901 section in the ffmpeg-utils(1) manual for the accepted syntax.
15902
15903 If not specified, or the expressed duration is negative, the audio
15904 is supposed to be generated forever.
15905
15906 Examples
15907
15908 • Set the sample rate to 48000 Hz and the channel layout to
15909 AV_CH_LAYOUT_MONO.
15910
15911 anullsrc=r=48000:cl=4
15912
15913 • Do the same operation with a more obvious syntax:
15914
15915 anullsrc=r=48000:cl=mono
15916
15917 All the parameters need to be explicitly defined.
15918
15919 flite
15920 Synthesize a voice utterance using the libflite library.
15921
15922 To enable compilation of this filter you need to configure FFmpeg with
15923 "--enable-libflite".
15924
15925 Note that versions of the flite library prior to 2.0 are not thread-
15926 safe.
15927
15928 The filter accepts the following options:
15929
15930 list_voices
15931 If set to 1, list the names of the available voices and exit
15932 immediately. Default value is 0.
15933
15934 nb_samples, n
15935 Set the maximum number of samples per frame. Default value is 512.
15936
15937 textfile
15938 Set the filename containing the text to speak.
15939
15940 text
15941 Set the text to speak.
15942
15943 voice, v
15944 Set the voice to use for the speech synthesis. Default value is
15945 "kal". See also the list_voices option.
15946
15947 Examples
15948
15949 • Read from file speech.txt, and synthesize the text using the
15950 standard flite voice:
15951
15952 flite=textfile=speech.txt
15953
15954 • Read the specified text selecting the "slt" voice:
15955
15956 flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
15957
15958 • Input text to ffmpeg:
15959
15960 ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
15961
15962 • Make ffplay speak the specified text, using "flite" and the "lavfi"
15963 device:
15964
15965 ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
15966
15967 For more information about libflite, check:
15968 <http://www.festvox.org/flite/>
15969
15970 anoisesrc
15971 Generate a noise audio signal.
15972
15973 The filter accepts the following options:
15974
15975 sample_rate, r
15976 Specify the sample rate. Default value is 48000 Hz.
15977
15978 amplitude, a
15979 Specify the amplitude (0.0 - 1.0) of the generated audio stream.
15980 Default value is 1.0.
15981
15982 duration, d
15983 Specify the duration of the generated audio stream. Not specifying
15984 this option results in noise with an infinite length.
15985
15986 color, colour, c
15987 Specify the color of noise. Available noise colors are white, pink,
15988 brown, blue, violet and velvet. Default color is white.
15989
15990 seed, s
15991 Specify a value used to seed the PRNG.
15992
15993 nb_samples, n
15994 Set the number of samples per each output frame, default is 1024.
15995
15996 Examples
15997
15998 • Generate 60 seconds of pink noise, with a 44.1 kHz sampling rate
15999 and an amplitude of 0.5:
16000
16001 anoisesrc=d=60:c=pink:r=44100:a=0.5
16002
16003 hilbert
16004 Generate odd-tap Hilbert transform FIR coefficients.
16005
16006 The resulting stream can be used with afir filter for phase-shifting
16007 the signal by 90 degrees.
16008
16009 This is used in many matrix coding schemes and for analytic signal
16010 generation. The process is often written as a multiplication by i (or
16011 j), the imaginary unit.
16012
16013 The filter accepts the following options:
16014
16015 sample_rate, s
16016 Set sample rate, default is 44100.
16017
16018 taps, t
16019 Set length of FIR filter, default is 22051.
16020
16021 nb_samples, n
16022 Set number of samples per each frame.
16023
16024 win_func, w
16025 Set window function to be used when generating FIR coefficients.
16026
16027 sinc
16028 Generate a sinc kaiser-windowed low-pass, high-pass, band-pass, or
16029 band-reject FIR coefficients.
16030
16031 The resulting stream can be used with afir filter for filtering the
16032 audio signal.
16033
16034 The filter accepts the following options:
16035
16036 sample_rate, r
16037 Set sample rate, default is 44100.
16038
16039 nb_samples, n
16040 Set number of samples per each frame. Default is 1024.
16041
16042 hp Set high-pass frequency. Default is 0.
16043
16044 lp Set low-pass frequency. Default is 0. If high-pass frequency is
16045 lower than low-pass frequency and low-pass frequency is higher than
16046 0 then filter will create band-pass filter coefficients, otherwise
16047 band-reject filter coefficients.
16048
16049 phase
16050 Set filter phase response. Default is 50. Allowed range is from 0
16051 to 100.
16052
16053 beta
16054 Set Kaiser window beta.
16055
16056 att Set stop-band attenuation. Default is 120dB, allowed range is from
16057 40 to 180 dB.
16058
16059 round
16060 Enable rounding, by default is disabled.
16061
16062 hptaps
16063 Set number of taps for high-pass filter.
16064
16065 lptaps
16066 Set number of taps for low-pass filter.
16067
16068 sine
16069 Generate an audio signal made of a sine wave with amplitude 1/8.
16070
16071 The audio signal is bit-exact.
16072
16073 The filter accepts the following options:
16074
16075 frequency, f
16076 Set the carrier frequency. Default is 440 Hz.
16077
16078 beep_factor, b
16079 Enable a periodic beep every second with frequency beep_factor
16080 times the carrier frequency. Default is 0, meaning the beep is
16081 disabled.
16082
16083 sample_rate, r
16084 Specify the sample rate, default is 44100.
16085
16086 duration, d
16087 Specify the duration of the generated audio stream.
16088
16089 samples_per_frame
16090 Set the number of samples per output frame.
16091
16092 The expression can contain the following constants:
16093
16094 n The (sequential) number of the output audio frame, starting
16095 from 0.
16096
16097 pts The PTS (Presentation TimeStamp) of the output audio frame,
16098 expressed in TB units.
16099
16100 t The PTS of the output audio frame, expressed in seconds.
16101
16102 TB The timebase of the output audio frames.
16103
16104 Default is 1024.
16105
16106 Examples
16107
16108 • Generate a simple 440 Hz sine wave:
16109
16110 sine
16111
16112 • Generate a 220 Hz sine wave with a 880 Hz beep each second, for 5
16113 seconds:
16114
16115 sine=220:4:d=5
16116 sine=f=220:b=4:d=5
16117 sine=frequency=220:beep_factor=4:duration=5
16118
16119 • Generate a 1 kHz sine wave following "1602,1601,1602,1601,1602"
16120 NTSC pattern:
16121
16122 sine=1000:samples_per_frame='st(0,mod(n,5)); 1602-not(not(eq(ld(0),1)+eq(ld(0),3)))'
16123
16125 Below is a description of the currently available audio sinks.
16126
16127 abuffersink
16128 Buffer audio frames, and make them available to the end of filter
16129 chain.
16130
16131 This sink is mainly intended for programmatic use, in particular
16132 through the interface defined in libavfilter/buffersink.h or the
16133 options system.
16134
16135 It accepts a pointer to an AVABufferSinkContext structure, which
16136 defines the incoming buffers' formats, to be passed as the opaque
16137 parameter to "avfilter_init_filter" for initialization.
16138
16139 anullsink
16140 Null audio sink; do absolutely nothing with the input audio. It is
16141 mainly useful as a template and for use in analysis / debugging tools.
16142
16144 When you configure your FFmpeg build, you can disable any of the
16145 existing filters using "--disable-filters". The configure output will
16146 show the video filters included in your build.
16147
16148 Below is a description of the currently available video filters.
16149
16150 addroi
16151 Mark a region of interest in a video frame.
16152
16153 The frame data is passed through unchanged, but metadata is attached to
16154 the frame indicating regions of interest which can affect the behaviour
16155 of later encoding. Multiple regions can be marked by applying the
16156 filter multiple times.
16157
16158 x Region distance in pixels from the left edge of the frame.
16159
16160 y Region distance in pixels from the top edge of the frame.
16161
16162 w Region width in pixels.
16163
16164 h Region height in pixels.
16165
16166 The parameters x, y, w and h are expressions, and may contain the
16167 following variables:
16168
16169 iw Width of the input frame.
16170
16171 ih Height of the input frame.
16172
16173 qoffset
16174 Quantisation offset to apply within the region.
16175
16176 This must be a real value in the range -1 to +1. A value of zero
16177 indicates no quality change. A negative value asks for better
16178 quality (less quantisation), while a positive value asks for worse
16179 quality (greater quantisation).
16180
16181 The range is calibrated so that the extreme values indicate the
16182 largest possible offset - if the rest of the frame is encoded with
16183 the worst possible quality, an offset of -1 indicates that this
16184 region should be encoded with the best possible quality anyway.
16185 Intermediate values are then interpolated in some codec-dependent
16186 way.
16187
16188 For example, in 10-bit H.264 the quantisation parameter varies
16189 between -12 and 51. A typical qoffset value of -1/10 therefore
16190 indicates that this region should be encoded with a QP around one-
16191 tenth of the full range better than the rest of the frame. So, if
16192 most of the frame were to be encoded with a QP of around 30, this
16193 region would get a QP of around 24 (an offset of approximately
16194 -1/10 * (51 - -12) = -6.3). An extreme value of -1 would indicate
16195 that this region should be encoded with the best possible quality
16196 regardless of the treatment of the rest of the frame - that is,
16197 should be encoded at a QP of -12.
16198
16199 clear
16200 If set to true, remove any existing regions of interest marked on
16201 the frame before adding the new one.
16202
16203 Examples
16204
16205 • Mark the centre quarter of the frame as interesting.
16206
16207 addroi=iw/4:ih/4:iw/2:ih/2:-1/10
16208
16209 • Mark the 100-pixel-wide region on the left edge of the frame as
16210 very uninteresting (to be encoded at much lower quality than the
16211 rest of the frame).
16212
16213 addroi=0:0:100:ih:+1/5
16214
16215 alphaextract
16216 Extract the alpha component from the input as a grayscale video. This
16217 is especially useful with the alphamerge filter.
16218
16219 alphamerge
16220 Add or replace the alpha component of the primary input with the
16221 grayscale value of a second input. This is intended for use with
16222 alphaextract to allow the transmission or storage of frame sequences
16223 that have alpha in a format that doesn't support an alpha channel.
16224
16225 For example, to reconstruct full frames from a normal YUV-encoded video
16226 and a separate video created with alphaextract, you might use:
16227
16228 movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
16229
16230 amplify
16231 Amplify differences between current pixel and pixels of adjacent frames
16232 in same pixel location.
16233
16234 This filter accepts the following options:
16235
16236 radius
16237 Set frame radius. Default is 2. Allowed range is from 1 to 63. For
16238 example radius of 3 will instruct filter to calculate average of 7
16239 frames.
16240
16241 factor
16242 Set factor to amplify difference. Default is 2. Allowed range is
16243 from 0 to 65535.
16244
16245 threshold
16246 Set threshold for difference amplification. Any difference greater
16247 or equal to this value will not alter source pixel. Default is 10.
16248 Allowed range is from 0 to 65535.
16249
16250 tolerance
16251 Set tolerance for difference amplification. Any difference lower to
16252 this value will not alter source pixel. Default is 0. Allowed
16253 range is from 0 to 65535.
16254
16255 low Set lower limit for changing source pixel. Default is 65535.
16256 Allowed range is from 0 to 65535. This option controls maximum
16257 possible value that will decrease source pixel value.
16258
16259 high
16260 Set high limit for changing source pixel. Default is 65535. Allowed
16261 range is from 0 to 65535. This option controls maximum possible
16262 value that will increase source pixel value.
16263
16264 planes
16265 Set which planes to filter. Default is all. Allowed range is from 0
16266 to 15.
16267
16268 Commands
16269
16270 This filter supports the following commands that corresponds to option
16271 of same name:
16272
16273 factor
16274 threshold
16275 tolerance
16276 low
16277 high
16278 planes
16279
16280 ass
16281 Same as the subtitles filter, except that it doesn't require libavcodec
16282 and libavformat to work. On the other hand, it is limited to ASS
16283 (Advanced Substation Alpha) subtitles files.
16284
16285 This filter accepts the following option in addition to the common
16286 options from the subtitles filter:
16287
16288 shaping
16289 Set the shaping engine
16290
16291 Available values are:
16292
16293 auto
16294 The default libass shaping engine, which is the best available.
16295
16296 simple
16297 Fast, font-agnostic shaper that can do only substitutions
16298
16299 complex
16300 Slower shaper using OpenType for substitutions and positioning
16301
16302 The default is "auto".
16303
16304 atadenoise
16305 Apply an Adaptive Temporal Averaging Denoiser to the video input.
16306
16307 The filter accepts the following options:
16308
16309 0a Set threshold A for 1st plane. Default is 0.02. Valid range is 0
16310 to 0.3.
16311
16312 0b Set threshold B for 1st plane. Default is 0.04. Valid range is 0
16313 to 5.
16314
16315 1a Set threshold A for 2nd plane. Default is 0.02. Valid range is 0
16316 to 0.3.
16317
16318 1b Set threshold B for 2nd plane. Default is 0.04. Valid range is 0
16319 to 5.
16320
16321 2a Set threshold A for 3rd plane. Default is 0.02. Valid range is 0
16322 to 0.3.
16323
16324 2b Set threshold B for 3rd plane. Default is 0.04. Valid range is 0
16325 to 5.
16326
16327 Threshold A is designed to react on abrupt changes in the input
16328 signal and threshold B is designed to react on continuous changes
16329 in the input signal.
16330
16331 s Set number of frames filter will use for averaging. Default is 9.
16332 Must be odd number in range [5, 129].
16333
16334 p Set what planes of frame filter will use for averaging. Default is
16335 all.
16336
16337 a Set what variant of algorithm filter will use for averaging.
16338 Default is "p" parallel. Alternatively can be set to "s" serial.
16339
16340 Parallel can be faster then serial, while other way around is never
16341 true. Parallel will abort early on first change being greater then
16342 thresholds, while serial will continue processing other side of
16343 frames if they are equal or below thresholds.
16344
16345 0s
16346 1s
16347 2s Set sigma for 1st plane, 2nd plane or 3rd plane. Default is 32767.
16348 Valid range is from 0 to 32767. This options controls weight for
16349 each pixel in radius defined by size. Default value means every
16350 pixel have same weight. Setting this option to 0 effectively
16351 disables filtering.
16352
16353 Commands
16354
16355 This filter supports same commands as options except option "s". The
16356 command accepts the same syntax of the corresponding option.
16357
16358 avgblur
16359 Apply average blur filter.
16360
16361 The filter accepts the following options:
16362
16363 sizeX
16364 Set horizontal radius size.
16365
16366 planes
16367 Set which planes to filter. By default all planes are filtered.
16368
16369 sizeY
16370 Set vertical radius size, if zero it will be same as "sizeX".
16371 Default is 0.
16372
16373 Commands
16374
16375 This filter supports same commands as options. The command accepts the
16376 same syntax of the corresponding option.
16377
16378 If the specified expression is not valid, it is kept at its current
16379 value.
16380
16381 bbox
16382 Compute the bounding box for the non-black pixels in the input frame
16383 luminance plane.
16384
16385 This filter computes the bounding box containing all the pixels with a
16386 luminance value greater than the minimum allowed value. The parameters
16387 describing the bounding box are printed on the filter log.
16388
16389 The filter accepts the following option:
16390
16391 min_val
16392 Set the minimal luminance value. Default is 16.
16393
16394 Commands
16395
16396 This filter supports the all above options as commands.
16397
16398 bilateral
16399 Apply bilateral filter, spatial smoothing while preserving edges.
16400
16401 The filter accepts the following options:
16402
16403 sigmaS
16404 Set sigma of gaussian function to calculate spatial weight.
16405 Allowed range is 0 to 512. Default is 0.1.
16406
16407 sigmaR
16408 Set sigma of gaussian function to calculate range weight. Allowed
16409 range is 0 to 1. Default is 0.1.
16410
16411 planes
16412 Set planes to filter. Default is first only.
16413
16414 Commands
16415
16416 This filter supports the all above options as commands.
16417
16418 bitplanenoise
16419 Show and measure bit plane noise.
16420
16421 The filter accepts the following options:
16422
16423 bitplane
16424 Set which plane to analyze. Default is 1.
16425
16426 filter
16427 Filter out noisy pixels from "bitplane" set above. Default is
16428 disabled.
16429
16430 blackdetect
16431 Detect video intervals that are (almost) completely black. Can be
16432 useful to detect chapter transitions, commercials, or invalid
16433 recordings.
16434
16435 The filter outputs its detection analysis to both the log as well as
16436 frame metadata. If a black segment of at least the specified minimum
16437 duration is found, a line with the start and end timestamps as well as
16438 duration is printed to the log with level "info". In addition, a log
16439 line with level "debug" is printed per frame showing the black amount
16440 detected for that frame.
16441
16442 The filter also attaches metadata to the first frame of a black segment
16443 with key "lavfi.black_start" and to the first frame after the black
16444 segment ends with key "lavfi.black_end". The value is the frame's
16445 timestamp. This metadata is added regardless of the minimum duration
16446 specified.
16447
16448 The filter accepts the following options:
16449
16450 black_min_duration, d
16451 Set the minimum detected black duration expressed in seconds. It
16452 must be a non-negative floating point number.
16453
16454 Default value is 2.0.
16455
16456 picture_black_ratio_th, pic_th
16457 Set the threshold for considering a picture "black". Express the
16458 minimum value for the ratio:
16459
16460 <nb_black_pixels> / <nb_pixels>
16461
16462 for which a picture is considered black. Default value is 0.98.
16463
16464 pixel_black_th, pix_th
16465 Set the threshold for considering a pixel "black".
16466
16467 The threshold expresses the maximum pixel luminance value for which
16468 a pixel is considered "black". The provided value is scaled
16469 according to the following equation:
16470
16471 <absolute_threshold> = <luminance_minimum_value> + <pixel_black_th> * <luminance_range_size>
16472
16473 luminance_range_size and luminance_minimum_value depend on the
16474 input video format, the range is [0-255] for YUV full-range formats
16475 and [16-235] for YUV non full-range formats.
16476
16477 Default value is 0.10.
16478
16479 The following example sets the maximum pixel threshold to the minimum
16480 value, and detects only black intervals of 2 or more seconds:
16481
16482 blackdetect=d=2:pix_th=0.00
16483
16484 blackframe
16485 Detect frames that are (almost) completely black. Can be useful to
16486 detect chapter transitions or commercials. Output lines consist of the
16487 frame number of the detected frame, the percentage of blackness, the
16488 position in the file if known or -1 and the timestamp in seconds.
16489
16490 In order to display the output lines, you need to set the loglevel at
16491 least to the AV_LOG_INFO value.
16492
16493 This filter exports frame metadata "lavfi.blackframe.pblack". The
16494 value represents the percentage of pixels in the picture that are below
16495 the threshold value.
16496
16497 It accepts the following parameters:
16498
16499 amount
16500 The percentage of the pixels that have to be below the threshold;
16501 it defaults to 98.
16502
16503 threshold, thresh
16504 The threshold below which a pixel value is considered black; it
16505 defaults to 32.
16506
16507 blend
16508 Blend two video frames into each other.
16509
16510 The "blend" filter takes two input streams and outputs one stream, the
16511 first input is the "top" layer and second input is "bottom" layer. By
16512 default, the output terminates when the longest input terminates.
16513
16514 The "tblend" (time blend) filter takes two consecutive frames from one
16515 single stream, and outputs the result obtained by blending the new
16516 frame on top of the old frame.
16517
16518 A description of the accepted options follows.
16519
16520 c0_mode
16521 c1_mode
16522 c2_mode
16523 c3_mode
16524 all_mode
16525 Set blend mode for specific pixel component or all pixel components
16526 in case of all_mode. Default value is "normal".
16527
16528 Available values for component modes are:
16529
16530 addition
16531 and
16532 average
16533 bleach
16534 burn
16535 darken
16536 difference
16537 divide
16538 dodge
16539 exclusion
16540 extremity
16541 freeze
16542 geometric
16543 glow
16544 grainextract
16545 grainmerge
16546 hardlight
16547 hardmix
16548 hardoverlay
16549 harmonic
16550 heat
16551 interpolate
16552 lighten
16553 linearlight
16554 multiply
16555 multiply128
16556 negation
16557 normal
16558 or
16559 overlay
16560 phoenix
16561 pinlight
16562 reflect
16563 screen
16564 softdifference
16565 softlight
16566 stain
16567 subtract
16568 vividlight
16569 xor
16570 c0_opacity
16571 c1_opacity
16572 c2_opacity
16573 c3_opacity
16574 all_opacity
16575 Set blend opacity for specific pixel component or all pixel
16576 components in case of all_opacity. Only used in combination with
16577 pixel component blend modes.
16578
16579 c0_expr
16580 c1_expr
16581 c2_expr
16582 c3_expr
16583 all_expr
16584 Set blend expression for specific pixel component or all pixel
16585 components in case of all_expr. Note that related mode options will
16586 be ignored if those are set.
16587
16588 The expressions can use the following variables:
16589
16590 N The sequential number of the filtered frame, starting from 0.
16591
16592 X
16593 Y the coordinates of the current sample
16594
16595 W
16596 H the width and height of currently filtered plane
16597
16598 SW
16599 SH Width and height scale for the plane being filtered. It is the
16600 ratio between the dimensions of the current plane to the luma
16601 plane, e.g. for a "yuv420p" frame, the values are "1,1" for the
16602 luma plane and "0.5,0.5" for the chroma planes.
16603
16604 T Time of the current frame, expressed in seconds.
16605
16606 TOP, A
16607 Value of pixel component at current location for first video
16608 frame (top layer).
16609
16610 BOTTOM, B
16611 Value of pixel component at current location for second video
16612 frame (bottom layer).
16613
16614 The "blend" filter also supports the framesync options.
16615
16616 Examples
16617
16618 • Apply transition from bottom layer to top layer in first 10
16619 seconds:
16620
16621 blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
16622
16623 • Apply linear horizontal transition from top layer to bottom layer:
16624
16625 blend=all_expr='A*(X/W)+B*(1-X/W)'
16626
16627 • Apply 1x1 checkerboard effect:
16628
16629 blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
16630
16631 • Apply uncover left effect:
16632
16633 blend=all_expr='if(gte(N*SW+X,W),A,B)'
16634
16635 • Apply uncover down effect:
16636
16637 blend=all_expr='if(gte(Y-N*SH,0),A,B)'
16638
16639 • Apply uncover up-left effect:
16640
16641 blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
16642
16643 • Split diagonally video and shows top and bottom layer on each side:
16644
16645 blend=all_expr='if(gt(X,Y*(W/H)),A,B)'
16646
16647 • Display differences between the current and the previous frame:
16648
16649 tblend=all_mode=grainextract
16650
16651 Commands
16652
16653 This filter supports same commands as options.
16654
16655 blockdetect
16656 Determines blockiness of frames without altering the input frames.
16657
16658 Based on Remco Muijs and Ihor Kirenko: "A no-reference blocking
16659 artifact measure for adaptive video processing." 2005 13th European
16660 signal processing conference.
16661
16662 The filter accepts the following options:
16663
16664 period_min
16665 period_max
16666 Set minimum and maximum values for determining pixel grids
16667 (periods). Default values are [3,24].
16668
16669 planes
16670 Set planes to filter. Default is first only.
16671
16672 Examples
16673
16674 • Determine blockiness for the first plane and search for periods
16675 within [8,32]:
16676
16677 blockdetect=period_min=8:period_max=32:planes=1
16678
16679 blurdetect
16680 Determines blurriness of frames without altering the input frames.
16681
16682 Based on Marziliano, Pina, et al. "A no-reference perceptual blur
16683 metric." Allows for a block-based abbreviation.
16684
16685 The filter accepts the following options:
16686
16687 low
16688 high
16689 Set low and high threshold values used by the Canny thresholding
16690 algorithm.
16691
16692 The high threshold selects the "strong" edge pixels, which are then
16693 connected through 8-connectivity with the "weak" edge pixels
16694 selected by the low threshold.
16695
16696 low and high threshold values must be chosen in the range [0,1],
16697 and low should be lesser or equal to high.
16698
16699 Default value for low is "20/255", and default value for high is
16700 "50/255".
16701
16702 radius
16703 Define the radius to search around an edge pixel for local maxima.
16704
16705 block_pct
16706 Determine blurriness only for the most significant blocks, given in
16707 percentage.
16708
16709 block_width
16710 Determine blurriness for blocks of width block_width. If set to any
16711 value smaller 1, no blocks are used and the whole image is
16712 processed as one no matter of block_height.
16713
16714 block_height
16715 Determine blurriness for blocks of height block_height. If set to
16716 any value smaller 1, no blocks are used and the whole image is
16717 processed as one no matter of block_width.
16718
16719 planes
16720 Set planes to filter. Default is first only.
16721
16722 Examples
16723
16724 • Determine blur for 80% of most significant 32x32 blocks:
16725
16726 blurdetect=block_width=32:block_height=32:block_pct=80
16727
16728 bm3d
16729 Denoise frames using Block-Matching 3D algorithm.
16730
16731 The filter accepts the following options.
16732
16733 sigma
16734 Set denoising strength. Default value is 1. Allowed range is from
16735 0 to 999.9. The denoising algorithm is very sensitive to sigma, so
16736 adjust it according to the source.
16737
16738 block
16739 Set local patch size. This sets dimensions in 2D.
16740
16741 bstep
16742 Set sliding step for processing blocks. Default value is 4.
16743 Allowed range is from 1 to 64. Smaller values allows processing
16744 more reference blocks and is slower.
16745
16746 group
16747 Set maximal number of similar blocks for 3rd dimension. Default
16748 value is 1. When set to 1, no block matching is done. Larger
16749 values allows more blocks in single group. Allowed range is from 1
16750 to 256.
16751
16752 range
16753 Set radius for search block matching. Default is 9. Allowed range
16754 is from 1 to INT32_MAX.
16755
16756 mstep
16757 Set step between two search locations for block matching. Default
16758 is 1. Allowed range is from 1 to 64. Smaller is slower.
16759
16760 thmse
16761 Set threshold of mean square error for block matching. Valid range
16762 is 0 to INT32_MAX.
16763
16764 hdthr
16765 Set thresholding parameter for hard thresholding in 3D transformed
16766 domain. Larger values results in stronger hard-thresholding
16767 filtering in frequency domain.
16768
16769 estim
16770 Set filtering estimation mode. Can be "basic" or "final". Default
16771 is "basic".
16772
16773 ref If enabled, filter will use 2nd stream for block matching. Default
16774 is disabled for "basic" value of estim option, and always enabled
16775 if value of estim is "final".
16776
16777 planes
16778 Set planes to filter. Default is all available except alpha.
16779
16780 Examples
16781
16782 • Basic filtering with bm3d:
16783
16784 bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic
16785
16786 • Same as above, but filtering only luma:
16787
16788 bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic:planes=1
16789
16790 • Same as above, but with both estimation modes:
16791
16792 split[a][b],[a]bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic[a],[b][a]bm3d=sigma=3:block=4:bstep=2:group=16:estim=final:ref=1
16793
16794 • Same as above, but prefilter with nlmeans filter instead:
16795
16796 split[a][b],[a]nlmeans=s=3:r=7:p=3[a],[b][a]bm3d=sigma=3:block=4:bstep=2:group=16:estim=final:ref=1
16797
16798 boxblur
16799 Apply a boxblur algorithm to the input video.
16800
16801 It accepts the following parameters:
16802
16803 luma_radius, lr
16804 luma_power, lp
16805 chroma_radius, cr
16806 chroma_power, cp
16807 alpha_radius, ar
16808 alpha_power, ap
16809
16810 A description of the accepted options follows.
16811
16812 luma_radius, lr
16813 chroma_radius, cr
16814 alpha_radius, ar
16815 Set an expression for the box radius in pixels used for blurring
16816 the corresponding input plane.
16817
16818 The radius value must be a non-negative number, and must not be
16819 greater than the value of the expression "min(w,h)/2" for the luma
16820 and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
16821
16822 Default value for luma_radius is "2". If not specified,
16823 chroma_radius and alpha_radius default to the corresponding value
16824 set for luma_radius.
16825
16826 The expressions can contain the following constants:
16827
16828 w
16829 h The input width and height in pixels.
16830
16831 cw
16832 ch The input chroma image width and height in pixels.
16833
16834 hsub
16835 vsub
16836 The horizontal and vertical chroma subsample values. For
16837 example, for the pixel format "yuv422p", hsub is 2 and vsub is
16838 1.
16839
16840 luma_power, lp
16841 chroma_power, cp
16842 alpha_power, ap
16843 Specify how many times the boxblur filter is applied to the
16844 corresponding plane.
16845
16846 Default value for luma_power is 2. If not specified, chroma_power
16847 and alpha_power default to the corresponding value set for
16848 luma_power.
16849
16850 A value of 0 will disable the effect.
16851
16852 Examples
16853
16854 • Apply a boxblur filter with the luma, chroma, and alpha radii set
16855 to 2:
16856
16857 boxblur=luma_radius=2:luma_power=1
16858 boxblur=2:1
16859
16860 • Set the luma radius to 2, and alpha and chroma radius to 0:
16861
16862 boxblur=2:1:cr=0:ar=0
16863
16864 • Set the luma and chroma radii to a fraction of the video dimension:
16865
16866 boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
16867
16868 bwdif
16869 Deinterlace the input video ("bwdif" stands for "Bob Weaver
16870 Deinterlacing Filter").
16871
16872 Motion adaptive deinterlacing based on yadif with the use of w3fdif and
16873 cubic interpolation algorithms. It accepts the following parameters:
16874
16875 mode
16876 The interlacing mode to adopt. It accepts one of the following
16877 values:
16878
16879 0, send_frame
16880 Output one frame for each frame.
16881
16882 1, send_field
16883 Output one frame for each field.
16884
16885 The default value is "send_field".
16886
16887 parity
16888 The picture field parity assumed for the input interlaced video. It
16889 accepts one of the following values:
16890
16891 0, tff
16892 Assume the top field is first.
16893
16894 1, bff
16895 Assume the bottom field is first.
16896
16897 -1, auto
16898 Enable automatic detection of field parity.
16899
16900 The default value is "auto". If the interlacing is unknown or the
16901 decoder does not export this information, top field first will be
16902 assumed.
16903
16904 deint
16905 Specify which frames to deinterlace. Accepts one of the following
16906 values:
16907
16908 0, all
16909 Deinterlace all frames.
16910
16911 1, interlaced
16912 Only deinterlace frames marked as interlaced.
16913
16914 The default value is "all".
16915
16916 cas
16917 Apply Contrast Adaptive Sharpen filter to video stream.
16918
16919 The filter accepts the following options:
16920
16921 strength
16922 Set the sharpening strength. Default value is 0.
16923
16924 planes
16925 Set planes to filter. Default value is to filter all planes except
16926 alpha plane.
16927
16928 Commands
16929
16930 This filter supports same commands as options.
16931
16932 chromahold
16933 Remove all color information for all colors except for certain one.
16934
16935 The filter accepts the following options:
16936
16937 color
16938 The color which will not be replaced with neutral chroma.
16939
16940 similarity
16941 Similarity percentage with the above color. 0.01 matches only the
16942 exact key color, while 1.0 matches everything.
16943
16944 blend
16945 Blend percentage. 0.0 makes pixels either fully gray, or not gray
16946 at all. Higher values result in more preserved color.
16947
16948 yuv Signals that the color passed is already in YUV instead of RGB.
16949
16950 Literal colors like "green" or "red" don't make sense with this
16951 enabled anymore. This can be used to pass exact YUV values as
16952 hexadecimal numbers.
16953
16954 Commands
16955
16956 This filter supports same commands as options. The command accepts the
16957 same syntax of the corresponding option.
16958
16959 If the specified expression is not valid, it is kept at its current
16960 value.
16961
16962 chromakey
16963 YUV colorspace color/chroma keying.
16964
16965 The filter accepts the following options:
16966
16967 color
16968 The color which will be replaced with transparency.
16969
16970 similarity
16971 Similarity percentage with the key color.
16972
16973 0.01 matches only the exact key color, while 1.0 matches
16974 everything.
16975
16976 blend
16977 Blend percentage.
16978
16979 0.0 makes pixels either fully transparent, or not transparent at
16980 all.
16981
16982 Higher values result in semi-transparent pixels, with a higher
16983 transparency the more similar the pixels color is to the key color.
16984
16985 yuv Signals that the color passed is already in YUV instead of RGB.
16986
16987 Literal colors like "green" or "red" don't make sense with this
16988 enabled anymore. This can be used to pass exact YUV values as
16989 hexadecimal numbers.
16990
16991 Commands
16992
16993 This filter supports same commands as options. The command accepts the
16994 same syntax of the corresponding option.
16995
16996 If the specified expression is not valid, it is kept at its current
16997 value.
16998
16999 Examples
17000
17001 • Make every green pixel in the input image transparent:
17002
17003 ffmpeg -i input.png -vf chromakey=green out.png
17004
17005 • Overlay a greenscreen-video on top of a static black background.
17006
17007 ffmpeg -f lavfi -i color=c=black:s=1280x720 -i video.mp4 -shortest -filter_complex "[1:v]chromakey=0x70de77:0.1:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.mkv
17008
17009 chromakey_cuda
17010 CUDA accelerated YUV colorspace color/chroma keying.
17011
17012 This filter works like normal chromakey filter but operates on CUDA
17013 frames. for more details and parameters see chromakey.
17014
17015 Examples
17016
17017 • Make all the green pixels in the input video transparent and use it
17018 as an overlay for another video:
17019
17020 ./ffmpeg \
17021 -hwaccel cuda -hwaccel_output_format cuda -i input_green.mp4 \
17022 -hwaccel cuda -hwaccel_output_format cuda -i base_video.mp4 \
17023 -init_hw_device cuda \
17024 -filter_complex \
17025 " \
17026 [0:v]chromakey_cuda=0x25302D:0.1:0.12:1[overlay_video]; \
17027 [1:v]scale_cuda=format=yuv420p[base]; \
17028 [base][overlay_video]overlay_cuda" \
17029 -an -sn -c:v h264_nvenc -cq 20 output.mp4
17030
17031 • Process two software sources, explicitly uploading the frames:
17032
17033 ./ffmpeg -init_hw_device cuda=cuda -filter_hw_device cuda \
17034 -f lavfi -i color=size=800x600:color=white,format=yuv420p \
17035 -f lavfi -i yuvtestsrc=size=200x200,format=yuv420p \
17036 -filter_complex \
17037 " \
17038 [0]hwupload[under]; \
17039 [1]hwupload,chromakey_cuda=green:0.1:0.12[over]; \
17040 [under][over]overlay_cuda" \
17041 -c:v hevc_nvenc -cq 18 -preset slow output.mp4
17042
17043 chromanr
17044 Reduce chrominance noise.
17045
17046 The filter accepts the following options:
17047
17048 thres
17049 Set threshold for averaging chrominance values. Sum of absolute
17050 difference of Y, U and V pixel components of current pixel and
17051 neighbour pixels lower than this threshold will be used in
17052 averaging. Luma component is left unchanged and is copied to
17053 output. Default value is 30. Allowed range is from 1 to 200.
17054
17055 sizew
17056 Set horizontal radius of rectangle used for averaging. Allowed
17057 range is from 1 to 100. Default value is 5.
17058
17059 sizeh
17060 Set vertical radius of rectangle used for averaging. Allowed range
17061 is from 1 to 100. Default value is 5.
17062
17063 stepw
17064 Set horizontal step when averaging. Default value is 1. Allowed
17065 range is from 1 to 50. Mostly useful to speed-up filtering.
17066
17067 steph
17068 Set vertical step when averaging. Default value is 1. Allowed
17069 range is from 1 to 50. Mostly useful to speed-up filtering.
17070
17071 threy
17072 Set Y threshold for averaging chrominance values. Set finer
17073 control for max allowed difference between Y components of current
17074 pixel and neigbour pixels. Default value is 200. Allowed range is
17075 from 1 to 200.
17076
17077 threu
17078 Set U threshold for averaging chrominance values. Set finer
17079 control for max allowed difference between U components of current
17080 pixel and neigbour pixels. Default value is 200. Allowed range is
17081 from 1 to 200.
17082
17083 threv
17084 Set V threshold for averaging chrominance values. Set finer
17085 control for max allowed difference between V components of current
17086 pixel and neigbour pixels. Default value is 200. Allowed range is
17087 from 1 to 200.
17088
17089 distance
17090 Set distance type used in calculations.
17091
17092 manhattan
17093 Absolute difference.
17094
17095 euclidean
17096 Difference squared.
17097
17098 Default distance type is manhattan.
17099
17100 Commands
17101
17102 This filter supports same commands as options. The command accepts the
17103 same syntax of the corresponding option.
17104
17105 chromashift
17106 Shift chroma pixels horizontally and/or vertically.
17107
17108 The filter accepts the following options:
17109
17110 cbh Set amount to shift chroma-blue horizontally.
17111
17112 cbv Set amount to shift chroma-blue vertically.
17113
17114 crh Set amount to shift chroma-red horizontally.
17115
17116 crv Set amount to shift chroma-red vertically.
17117
17118 edge
17119 Set edge mode, can be smear, default, or warp.
17120
17121 Commands
17122
17123 This filter supports the all above options as commands.
17124
17125 ciescope
17126 Display CIE color diagram with pixels overlaid onto it.
17127
17128 The filter accepts the following options:
17129
17130 system
17131 Set color system.
17132
17133 ntsc, 470m
17134 ebu, 470bg
17135 smpte
17136 240m
17137 apple
17138 widergb
17139 cie1931
17140 rec709, hdtv
17141 uhdtv, rec2020
17142 dcip3
17143 cie Set CIE system.
17144
17145 xyy
17146 ucs
17147 luv
17148 gamuts
17149 Set what gamuts to draw.
17150
17151 See "system" option for available values.
17152
17153 size, s
17154 Set ciescope size, by default set to 512.
17155
17156 intensity, i
17157 Set intensity used to map input pixel values to CIE diagram.
17158
17159 contrast
17160 Set contrast used to draw tongue colors that are out of active
17161 color system gamut.
17162
17163 corrgamma
17164 Correct gamma displayed on scope, by default enabled.
17165
17166 showwhite
17167 Show white point on CIE diagram, by default disabled.
17168
17169 gamma
17170 Set input gamma. Used only with XYZ input color space.
17171
17172 fill
17173 Fill with CIE colors. By default is enabled.
17174
17175 codecview
17176 Visualize information exported by some codecs.
17177
17178 Some codecs can export information through frames using side-data or
17179 other means. For example, some MPEG based codecs export motion vectors
17180 through the export_mvs flag in the codec flags2 option.
17181
17182 The filter accepts the following option:
17183
17184 block
17185 Display block partition structure using the luma plane.
17186
17187 mv Set motion vectors to visualize.
17188
17189 Available flags for mv are:
17190
17191 pf forward predicted MVs of P-frames
17192
17193 bf forward predicted MVs of B-frames
17194
17195 bb backward predicted MVs of B-frames
17196
17197 qp Display quantization parameters using the chroma planes.
17198
17199 mv_type, mvt
17200 Set motion vectors type to visualize. Includes MVs from all frames
17201 unless specified by frame_type option.
17202
17203 Available flags for mv_type are:
17204
17205 fp forward predicted MVs
17206
17207 bp backward predicted MVs
17208
17209 frame_type, ft
17210 Set frame type to visualize motion vectors of.
17211
17212 Available flags for frame_type are:
17213
17214 if intra-coded frames (I-frames)
17215
17216 pf predicted frames (P-frames)
17217
17218 bf bi-directionally predicted frames (B-frames)
17219
17220 Examples
17221
17222 • Visualize forward predicted MVs of all frames using ffplay:
17223
17224 ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp
17225
17226 • Visualize multi-directionals MVs of P and B-Frames using ffplay:
17227
17228 ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
17229
17230 colorbalance
17231 Modify intensity of primary colors (red, green and blue) of input
17232 frames.
17233
17234 The filter allows an input frame to be adjusted in the shadows,
17235 midtones or highlights regions for the red-cyan, green-magenta or blue-
17236 yellow balance.
17237
17238 A positive adjustment value shifts the balance towards the primary
17239 color, a negative value towards the complementary color.
17240
17241 The filter accepts the following options:
17242
17243 rs
17244 gs
17245 bs Adjust red, green and blue shadows (darkest pixels).
17246
17247 rm
17248 gm
17249 bm Adjust red, green and blue midtones (medium pixels).
17250
17251 rh
17252 gh
17253 bh Adjust red, green and blue highlights (brightest pixels).
17254
17255 Allowed ranges for options are "[-1.0, 1.0]". Defaults are 0.
17256
17257 pl Preserve lightness when changing color balance. Default is
17258 disabled.
17259
17260 Examples
17261
17262 • Add red color cast to shadows:
17263
17264 colorbalance=rs=.3
17265
17266 Commands
17267
17268 This filter supports the all above options as commands.
17269
17270 colorcontrast
17271 Adjust color contrast between RGB components.
17272
17273 The filter accepts the following options:
17274
17275 rc Set the red-cyan contrast. Defaults is 0.0. Allowed range is from
17276 -1.0 to 1.0.
17277
17278 gm Set the green-magenta contrast. Defaults is 0.0. Allowed range is
17279 from -1.0 to 1.0.
17280
17281 by Set the blue-yellow contrast. Defaults is 0.0. Allowed range is
17282 from -1.0 to 1.0.
17283
17284 rcw
17285 gmw
17286 byw Set the weight of each "rc", "gm", "by" option value. Default value
17287 is 0.0. Allowed range is from 0.0 to 1.0. If all weights are 0.0
17288 filtering is disabled.
17289
17290 pl Set the amount of preserving lightness. Default value is 0.0.
17291 Allowed range is from 0.0 to 1.0.
17292
17293 Commands
17294
17295 This filter supports the all above options as commands.
17296
17297 colorcorrect
17298 Adjust color white balance selectively for blacks and whites. This
17299 filter operates in YUV colorspace.
17300
17301 The filter accepts the following options:
17302
17303 rl Set the red shadow spot. Allowed range is from -1.0 to 1.0.
17304 Default value is 0.
17305
17306 bl Set the blue shadow spot. Allowed range is from -1.0 to 1.0.
17307 Default value is 0.
17308
17309 rh Set the red highlight spot. Allowed range is from -1.0 to 1.0.
17310 Default value is 0.
17311
17312 bh Set the red highlight spot. Allowed range is from -1.0 to 1.0.
17313 Default value is 0.
17314
17315 saturation
17316 Set the amount of saturation. Allowed range is from -3.0 to 3.0.
17317 Default value is 1.
17318
17319 analyze
17320 If set to anything other than "manual" it will analyze every frame
17321 and use derived parameters for filtering output frame.
17322
17323 Possible values are:
17324
17325 manual
17326 average
17327 minmax
17328 median
17329
17330 Default value is "manual".
17331
17332 Commands
17333
17334 This filter supports the all above options as commands.
17335
17336 colorchannelmixer
17337 Adjust video input frames by re-mixing color channels.
17338
17339 This filter modifies a color channel by adding the values associated to
17340 the other channels of the same pixels. For example if the value to
17341 modify is red, the output value will be:
17342
17343 <red>=<red>*<rr> + <blue>*<rb> + <green>*<rg> + <alpha>*<ra>
17344
17345 The filter accepts the following options:
17346
17347 rr
17348 rg
17349 rb
17350 ra Adjust contribution of input red, green, blue and alpha channels
17351 for output red channel. Default is 1 for rr, and 0 for rg, rb and
17352 ra.
17353
17354 gr
17355 gg
17356 gb
17357 ga Adjust contribution of input red, green, blue and alpha channels
17358 for output green channel. Default is 1 for gg, and 0 for gr, gb
17359 and ga.
17360
17361 br
17362 bg
17363 bb
17364 ba Adjust contribution of input red, green, blue and alpha channels
17365 for output blue channel. Default is 1 for bb, and 0 for br, bg and
17366 ba.
17367
17368 ar
17369 ag
17370 ab
17371 aa Adjust contribution of input red, green, blue and alpha channels
17372 for output alpha channel. Default is 1 for aa, and 0 for ar, ag
17373 and ab.
17374
17375 Allowed ranges for options are "[-2.0, 2.0]".
17376
17377 pc Set preserve color mode. The accepted values are:
17378
17379 none
17380 Disable color preserving, this is default.
17381
17382 lum Preserve luminance.
17383
17384 max Preserve max value of RGB triplet.
17385
17386 avg Preserve average value of RGB triplet.
17387
17388 sum Preserve sum value of RGB triplet.
17389
17390 nrm Preserve normalized value of RGB triplet.
17391
17392 pwr Preserve power value of RGB triplet.
17393
17394 pa Set the preserve color amount when changing colors. Allowed range
17395 is from "[0.0, 1.0]". Default is 0.0, thus disabled.
17396
17397 Examples
17398
17399 • Convert source to grayscale:
17400
17401 colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
17402
17403 • Simulate sepia tones:
17404
17405 colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
17406
17407 Commands
17408
17409 This filter supports the all above options as commands.
17410
17411 colorize
17412 Overlay a solid color on the video stream.
17413
17414 The filter accepts the following options:
17415
17416 hue Set the color hue. Allowed range is from 0 to 360. Default value
17417 is 0.
17418
17419 saturation
17420 Set the color saturation. Allowed range is from 0 to 1. Default
17421 value is 0.5.
17422
17423 lightness
17424 Set the color lightness. Allowed range is from 0 to 1. Default
17425 value is 0.5.
17426
17427 mix Set the mix of source lightness. By default is set to 1.0. Allowed
17428 range is from 0.0 to 1.0.
17429
17430 Commands
17431
17432 This filter supports the all above options as commands.
17433
17434 colorkey
17435 RGB colorspace color keying. This filter operates on 8-bit RGB format
17436 frames by setting the alpha component of each pixel which falls within
17437 the similarity radius of the key color to 0. The alpha value for pixels
17438 outside the similarity radius depends on the value of the blend option.
17439
17440 The filter accepts the following options:
17441
17442 color
17443 Set the color for which alpha will be set to 0 (full transparency).
17444 See "Color" section in the ffmpeg-utils manual. Default is
17445 "black".
17446
17447 similarity
17448 Set the radius from the key color within which other colors also
17449 have full transparency. The computed distance is related to the
17450 unit fractional distance in 3D space between the RGB values of the
17451 key color and the pixel's color. Range is 0.01 to 1.0. 0.01 matches
17452 within a very small radius around the exact key color, while 1.0
17453 matches everything. Default is 0.01.
17454
17455 blend
17456 Set how the alpha value for pixels that fall outside the similarity
17457 radius is computed. 0.0 makes pixels either fully transparent or
17458 fully opaque. Higher values result in semi-transparent pixels,
17459 with greater transparency the more similar the pixel color is to
17460 the key color. Range is 0.0 to 1.0. Default is 0.0.
17461
17462 Examples
17463
17464 • Make every green pixel in the input image transparent:
17465
17466 ffmpeg -i input.png -vf colorkey=green out.png
17467
17468 • Overlay a greenscreen-video on top of a static background image.
17469
17470 ffmpeg -i background.png -i video.mp4 -filter_complex "[1:v]colorkey=0x3BBD1E:0.3:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.flv
17471
17472 Commands
17473
17474 This filter supports same commands as options. The command accepts the
17475 same syntax of the corresponding option.
17476
17477 If the specified expression is not valid, it is kept at its current
17478 value.
17479
17480 colorhold
17481 Remove all color information for all RGB colors except for certain one.
17482
17483 The filter accepts the following options:
17484
17485 color
17486 The color which will not be replaced with neutral gray.
17487
17488 similarity
17489 Similarity percentage with the above color. 0.01 matches only the
17490 exact key color, while 1.0 matches everything.
17491
17492 blend
17493 Blend percentage. 0.0 makes pixels fully gray. Higher values
17494 result in more preserved color.
17495
17496 Commands
17497
17498 This filter supports same commands as options. The command accepts the
17499 same syntax of the corresponding option.
17500
17501 If the specified expression is not valid, it is kept at its current
17502 value.
17503
17504 colorlevels
17505 Adjust video input frames using levels.
17506
17507 The filter accepts the following options:
17508
17509 rimin
17510 gimin
17511 bimin
17512 aimin
17513 Adjust red, green, blue and alpha input black point. Allowed
17514 ranges for options are "[-1.0, 1.0]". Defaults are 0.
17515
17516 rimax
17517 gimax
17518 bimax
17519 aimax
17520 Adjust red, green, blue and alpha input white point. Allowed
17521 ranges for options are "[-1.0, 1.0]". Defaults are 1.
17522
17523 Input levels are used to lighten highlights (bright tones), darken
17524 shadows (dark tones), change the balance of bright and dark tones.
17525
17526 romin
17527 gomin
17528 bomin
17529 aomin
17530 Adjust red, green, blue and alpha output black point. Allowed
17531 ranges for options are "[0, 1.0]". Defaults are 0.
17532
17533 romax
17534 gomax
17535 bomax
17536 aomax
17537 Adjust red, green, blue and alpha output white point. Allowed
17538 ranges for options are "[0, 1.0]". Defaults are 1.
17539
17540 Output levels allows manual selection of a constrained output level
17541 range.
17542
17543 preserve
17544 Set preserve color mode. The accepted values are:
17545
17546 none
17547 Disable color preserving, this is default.
17548
17549 lum Preserve luminance.
17550
17551 max Preserve max value of RGB triplet.
17552
17553 avg Preserve average value of RGB triplet.
17554
17555 sum Preserve sum value of RGB triplet.
17556
17557 nrm Preserve normalized value of RGB triplet.
17558
17559 pwr Preserve power value of RGB triplet.
17560
17561 Examples
17562
17563 • Make video output darker:
17564
17565 colorlevels=rimin=0.058:gimin=0.058:bimin=0.058
17566
17567 • Increase contrast:
17568
17569 colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.96:gimax=0.96:bimax=0.96
17570
17571 • Make video output lighter:
17572
17573 colorlevels=rimax=0.902:gimax=0.902:bimax=0.902
17574
17575 • Increase brightness:
17576
17577 colorlevels=romin=0.5:gomin=0.5:bomin=0.5
17578
17579 Commands
17580
17581 This filter supports the all above options as commands.
17582
17583 colormap
17584 Apply custom color maps to video stream.
17585
17586 This filter needs three input video streams. First stream is video
17587 stream that is going to be filtered out. Second and third video stream
17588 specify color patches for source color to target color mapping.
17589
17590 The filter accepts the following options:
17591
17592 patch_size
17593 Set the source and target video stream patch size in pixels.
17594
17595 nb_patches
17596 Set the max number of used patches from source and target video
17597 stream. Default value is number of patches available in additional
17598 video streams. Max allowed number of patches is 64.
17599
17600 type
17601 Set the adjustments used for target colors. Can be "relative" or
17602 "absolute". Defaults is "absolute".
17603
17604 kernel
17605 Set the kernel used to measure color differences between mapped
17606 colors.
17607
17608 The accepted values are:
17609
17610 euclidean
17611 weuclidean
17612
17613 Default is "euclidean".
17614
17615 colormatrix
17616 Convert color matrix.
17617
17618 The filter accepts the following options:
17619
17620 src
17621 dst Specify the source and destination color matrix. Both values must
17622 be specified.
17623
17624 The accepted values are:
17625
17626 bt709
17627 BT.709
17628
17629 fcc FCC
17630
17631 bt601
17632 BT.601
17633
17634 bt470
17635 BT.470
17636
17637 bt470bg
17638 BT.470BG
17639
17640 smpte170m
17641 SMPTE-170M
17642
17643 smpte240m
17644 SMPTE-240M
17645
17646 bt2020
17647 BT.2020
17648
17649 For example to convert from BT.601 to SMPTE-240M, use the command:
17650
17651 colormatrix=bt601:smpte240m
17652
17653 colorspace
17654 Convert colorspace, transfer characteristics or color primaries. Input
17655 video needs to have an even size.
17656
17657 The filter accepts the following options:
17658
17659 all Specify all color properties at once.
17660
17661 The accepted values are:
17662
17663 bt470m
17664 BT.470M
17665
17666 bt470bg
17667 BT.470BG
17668
17669 bt601-6-525
17670 BT.601-6 525
17671
17672 bt601-6-625
17673 BT.601-6 625
17674
17675 bt709
17676 BT.709
17677
17678 smpte170m
17679 SMPTE-170M
17680
17681 smpte240m
17682 SMPTE-240M
17683
17684 bt2020
17685 BT.2020
17686
17687 space
17688 Specify output colorspace.
17689
17690 The accepted values are:
17691
17692 bt709
17693 BT.709
17694
17695 fcc FCC
17696
17697 bt470bg
17698 BT.470BG or BT.601-6 625
17699
17700 smpte170m
17701 SMPTE-170M or BT.601-6 525
17702
17703 smpte240m
17704 SMPTE-240M
17705
17706 ycgco
17707 YCgCo
17708
17709 bt2020ncl
17710 BT.2020 with non-constant luminance
17711
17712 trc Specify output transfer characteristics.
17713
17714 The accepted values are:
17715
17716 bt709
17717 BT.709
17718
17719 bt470m
17720 BT.470M
17721
17722 bt470bg
17723 BT.470BG
17724
17725 gamma22
17726 Constant gamma of 2.2
17727
17728 gamma28
17729 Constant gamma of 2.8
17730
17731 smpte170m
17732 SMPTE-170M, BT.601-6 625 or BT.601-6 525
17733
17734 smpte240m
17735 SMPTE-240M
17736
17737 srgb
17738 SRGB
17739
17740 iec61966-2-1
17741 iec61966-2-1
17742
17743 iec61966-2-4
17744 iec61966-2-4
17745
17746 xvycc
17747 xvycc
17748
17749 bt2020-10
17750 BT.2020 for 10-bits content
17751
17752 bt2020-12
17753 BT.2020 for 12-bits content
17754
17755 primaries
17756 Specify output color primaries.
17757
17758 The accepted values are:
17759
17760 bt709
17761 BT.709
17762
17763 bt470m
17764 BT.470M
17765
17766 bt470bg
17767 BT.470BG or BT.601-6 625
17768
17769 smpte170m
17770 SMPTE-170M or BT.601-6 525
17771
17772 smpte240m
17773 SMPTE-240M
17774
17775 film
17776 film
17777
17778 smpte431
17779 SMPTE-431
17780
17781 smpte432
17782 SMPTE-432
17783
17784 bt2020
17785 BT.2020
17786
17787 jedec-p22
17788 JEDEC P22 phosphors
17789
17790 range
17791 Specify output color range.
17792
17793 The accepted values are:
17794
17795 tv TV (restricted) range
17796
17797 mpeg
17798 MPEG (restricted) range
17799
17800 pc PC (full) range
17801
17802 jpeg
17803 JPEG (full) range
17804
17805 format
17806 Specify output color format.
17807
17808 The accepted values are:
17809
17810 yuv420p
17811 YUV 4:2:0 planar 8-bits
17812
17813 yuv420p10
17814 YUV 4:2:0 planar 10-bits
17815
17816 yuv420p12
17817 YUV 4:2:0 planar 12-bits
17818
17819 yuv422p
17820 YUV 4:2:2 planar 8-bits
17821
17822 yuv422p10
17823 YUV 4:2:2 planar 10-bits
17824
17825 yuv422p12
17826 YUV 4:2:2 planar 12-bits
17827
17828 yuv444p
17829 YUV 4:4:4 planar 8-bits
17830
17831 yuv444p10
17832 YUV 4:4:4 planar 10-bits
17833
17834 yuv444p12
17835 YUV 4:4:4 planar 12-bits
17836
17837 fast
17838 Do a fast conversion, which skips gamma/primary correction. This
17839 will take significantly less CPU, but will be mathematically
17840 incorrect. To get output compatible with that produced by the
17841 colormatrix filter, use fast=1.
17842
17843 dither
17844 Specify dithering mode.
17845
17846 The accepted values are:
17847
17848 none
17849 No dithering
17850
17851 fsb Floyd-Steinberg dithering
17852
17853 wpadapt
17854 Whitepoint adaptation mode.
17855
17856 The accepted values are:
17857
17858 bradford
17859 Bradford whitepoint adaptation
17860
17861 vonkries
17862 von Kries whitepoint adaptation
17863
17864 identity
17865 identity whitepoint adaptation (i.e. no whitepoint adaptation)
17866
17867 iall
17868 Override all input properties at once. Same accepted values as all.
17869
17870 ispace
17871 Override input colorspace. Same accepted values as space.
17872
17873 iprimaries
17874 Override input color primaries. Same accepted values as primaries.
17875
17876 itrc
17877 Override input transfer characteristics. Same accepted values as
17878 trc.
17879
17880 irange
17881 Override input color range. Same accepted values as range.
17882
17883 The filter converts the transfer characteristics, color space and color
17884 primaries to the specified user values. The output value, if not
17885 specified, is set to a default value based on the "all" property. If
17886 that property is also not specified, the filter will log an error. The
17887 output color range and format default to the same value as the input
17888 color range and format. The input transfer characteristics, color
17889 space, color primaries and color range should be set on the input data.
17890 If any of these are missing, the filter will log an error and no
17891 conversion will take place.
17892
17893 For example to convert the input to SMPTE-240M, use the command:
17894
17895 colorspace=smpte240m
17896
17897 colortemperature
17898 Adjust color temperature in video to simulate variations in ambient
17899 color temperature.
17900
17901 The filter accepts the following options:
17902
17903 temperature
17904 Set the temperature in Kelvin. Allowed range is from 1000 to 40000.
17905 Default value is 6500 K.
17906
17907 mix Set mixing with filtered output. Allowed range is from 0 to 1.
17908 Default value is 1.
17909
17910 pl Set the amount of preserving lightness. Allowed range is from 0 to
17911 1. Default value is 0.
17912
17913 Commands
17914
17915 This filter supports same commands as options.
17916
17917 convolution
17918 Apply convolution of 3x3, 5x5, 7x7 or horizontal/vertical up to 49
17919 elements.
17920
17921 The filter accepts the following options:
17922
17923 0m
17924 1m
17925 2m
17926 3m Set matrix for each plane. Matrix is sequence of 9, 25 or 49
17927 signed integers in square mode, and from 1 to 49 odd number of
17928 signed integers in row mode.
17929
17930 0rdiv
17931 1rdiv
17932 2rdiv
17933 3rdiv
17934 Set multiplier for calculated value for each plane. If unset or 0,
17935 it will be sum of all matrix elements.
17936
17937 0bias
17938 1bias
17939 2bias
17940 3bias
17941 Set bias for each plane. This value is added to the result of the
17942 multiplication. Useful for making the overall image brighter or
17943 darker. Default is 0.0.
17944
17945 0mode
17946 1mode
17947 2mode
17948 3mode
17949 Set matrix mode for each plane. Can be square, row or column.
17950 Default is square.
17951
17952 Commands
17953
17954 This filter supports the all above options as commands.
17955
17956 Examples
17957
17958 • Apply sharpen:
17959
17960 convolution="0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0"
17961
17962 • Apply blur:
17963
17964 convolution="1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1/9:1/9:1/9:1/9"
17965
17966 • Apply edge enhance:
17967
17968 convolution="0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:5:1:1:1:0:128:128:128"
17969
17970 • Apply edge detect:
17971
17972 convolution="0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:5:5:5:1:0:128:128:128"
17973
17974 • Apply laplacian edge detector which includes diagonals:
17975
17976 convolution="1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:5:5:5:1:0:128:128:0"
17977
17978 • Apply emboss:
17979
17980 convolution="-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2"
17981
17982 convolve
17983 Apply 2D convolution of video stream in frequency domain using second
17984 stream as impulse.
17985
17986 The filter accepts the following options:
17987
17988 planes
17989 Set which planes to process.
17990
17991 impulse
17992 Set which impulse video frames will be processed, can be first or
17993 all. Default is all.
17994
17995 The "convolve" filter also supports the framesync options.
17996
17997 copy
17998 Copy the input video source unchanged to the output. This is mainly
17999 useful for testing purposes.
18000
18001 coreimage
18002 Video filtering on GPU using Apple's CoreImage API on OSX.
18003
18004 Hardware acceleration is based on an OpenGL context. Usually, this
18005 means it is processed by video hardware. However, software-based OpenGL
18006 implementations exist which means there is no guarantee for hardware
18007 processing. It depends on the respective OSX.
18008
18009 There are many filters and image generators provided by Apple that come
18010 with a large variety of options. The filter has to be referenced by its
18011 name along with its options.
18012
18013 The coreimage filter accepts the following options:
18014
18015 list_filters
18016 List all available filters and generators along with all their
18017 respective options as well as possible minimum and maximum values
18018 along with the default values.
18019
18020 list_filters=true
18021
18022 filter
18023 Specify all filters by their respective name and options. Use
18024 list_filters to determine all valid filter names and options.
18025 Numerical options are specified by a float value and are
18026 automatically clamped to their respective value range. Vector and
18027 color options have to be specified by a list of space separated
18028 float values. Character escaping has to be done. A special option
18029 name "default" is available to use default options for a filter.
18030
18031 It is required to specify either "default" or at least one of the
18032 filter options. All omitted options are used with their default
18033 values. The syntax of the filter string is as follows:
18034
18035 filter=<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...][#<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...]][#...]
18036
18037 output_rect
18038 Specify a rectangle where the output of the filter chain is copied
18039 into the input image. It is given by a list of space separated
18040 float values:
18041
18042 output_rect=x\ y\ width\ height
18043
18044 If not given, the output rectangle equals the dimensions of the
18045 input image. The output rectangle is automatically cropped at the
18046 borders of the input image. Negative values are valid for each
18047 component.
18048
18049 output_rect=25\ 25\ 100\ 100
18050
18051 Several filters can be chained for successive processing without GPU-
18052 HOST transfers allowing for fast processing of complex filter chains.
18053 Currently, only filters with zero (generators) or exactly one (filters)
18054 input image and one output image are supported. Also, transition
18055 filters are not yet usable as intended.
18056
18057 Some filters generate output images with additional padding depending
18058 on the respective filter kernel. The padding is automatically removed
18059 to ensure the filter output has the same size as the input image.
18060
18061 For image generators, the size of the output image is determined by the
18062 previous output image of the filter chain or the input image of the
18063 whole filterchain, respectively. The generators do not use the pixel
18064 information of this image to generate their output. However, the
18065 generated output is blended onto this image, resulting in partial or
18066 complete coverage of the output image.
18067
18068 The coreimagesrc video source can be used for generating input images
18069 which are directly fed into the filter chain. By using it, providing
18070 input images by another video source or an input video is not required.
18071
18072 Examples
18073
18074 • List all filters available:
18075
18076 coreimage=list_filters=true
18077
18078 • Use the CIBoxBlur filter with default options to blur an image:
18079
18080 coreimage=filter=CIBoxBlur@default
18081
18082 • Use a filter chain with CISepiaTone at default values and
18083 CIVignetteEffect with its center at 100x100 and a radius of 50
18084 pixels:
18085
18086 coreimage=filter=CIBoxBlur@default#CIVignetteEffect@inputCenter=100\ 100@inputRadius=50
18087
18088 • Use nullsrc and CIQRCodeGenerator to create a QR code for the
18089 FFmpeg homepage, given as complete and escaped command-line for
18090 Apple's standard bash shell:
18091
18092 ffmpeg -f lavfi -i nullsrc=s=100x100,coreimage=filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
18093
18094 cover_rect
18095 Cover a rectangular object
18096
18097 It accepts the following options:
18098
18099 cover
18100 Filepath of the optional cover image, needs to be in yuv420.
18101
18102 mode
18103 Set covering mode.
18104
18105 It accepts the following values:
18106
18107 cover
18108 cover it by the supplied image
18109
18110 blur
18111 cover it by interpolating the surrounding pixels
18112
18113 Default value is blur.
18114
18115 Examples
18116
18117 • Cover a rectangular object by the supplied image of a given video
18118 using ffmpeg:
18119
18120 ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
18121
18122 crop
18123 Crop the input video to given dimensions.
18124
18125 It accepts the following parameters:
18126
18127 w, out_w
18128 The width of the output video. It defaults to "iw". This
18129 expression is evaluated only once during the filter configuration,
18130 or when the w or out_w command is sent.
18131
18132 h, out_h
18133 The height of the output video. It defaults to "ih". This
18134 expression is evaluated only once during the filter configuration,
18135 or when the h or out_h command is sent.
18136
18137 x The horizontal position, in the input video, of the left edge of
18138 the output video. It defaults to "(in_w-out_w)/2". This expression
18139 is evaluated per-frame.
18140
18141 y The vertical position, in the input video, of the top edge of the
18142 output video. It defaults to "(in_h-out_h)/2". This expression is
18143 evaluated per-frame.
18144
18145 keep_aspect
18146 If set to 1 will force the output display aspect ratio to be the
18147 same of the input, by changing the output sample aspect ratio. It
18148 defaults to 0.
18149
18150 exact
18151 Enable exact cropping. If enabled, subsampled videos will be
18152 cropped at exact width/height/x/y as specified and will not be
18153 rounded to nearest smaller value. It defaults to 0.
18154
18155 The out_w, out_h, x, y parameters are expressions containing the
18156 following constants:
18157
18158 x
18159 y The computed values for x and y. They are evaluated for each new
18160 frame.
18161
18162 in_w
18163 in_h
18164 The input width and height.
18165
18166 iw
18167 ih These are the same as in_w and in_h.
18168
18169 out_w
18170 out_h
18171 The output (cropped) width and height.
18172
18173 ow
18174 oh These are the same as out_w and out_h.
18175
18176 a same as iw / ih
18177
18178 sar input sample aspect ratio
18179
18180 dar input display aspect ratio, it is the same as (iw / ih) * sar
18181
18182 hsub
18183 vsub
18184 horizontal and vertical chroma subsample values. For example for
18185 the pixel format "yuv422p" hsub is 2 and vsub is 1.
18186
18187 n The number of the input frame, starting from 0.
18188
18189 pos the position in the file of the input frame, NAN if unknown
18190
18191 t The timestamp expressed in seconds. It's NAN if the input timestamp
18192 is unknown.
18193
18194 The expression for out_w may depend on the value of out_h, and the
18195 expression for out_h may depend on out_w, but they cannot depend on x
18196 and y, as x and y are evaluated after out_w and out_h.
18197
18198 The x and y parameters specify the expressions for the position of the
18199 top-left corner of the output (non-cropped) area. They are evaluated
18200 for each frame. If the evaluated value is not valid, it is approximated
18201 to the nearest valid value.
18202
18203 The expression for x may depend on y, and the expression for y may
18204 depend on x.
18205
18206 Examples
18207
18208 • Crop area with size 100x100 at position (12,34).
18209
18210 crop=100:100:12:34
18211
18212 Using named options, the example above becomes:
18213
18214 crop=w=100:h=100:x=12:y=34
18215
18216 • Crop the central input area with size 100x100:
18217
18218 crop=100:100
18219
18220 • Crop the central input area with size 2/3 of the input video:
18221
18222 crop=2/3*in_w:2/3*in_h
18223
18224 • Crop the input video central square:
18225
18226 crop=out_w=in_h
18227 crop=in_h
18228
18229 • Delimit the rectangle with the top-left corner placed at position
18230 100:100 and the right-bottom corner corresponding to the right-
18231 bottom corner of the input image.
18232
18233 crop=in_w-100:in_h-100:100:100
18234
18235 • Crop 10 pixels from the left and right borders, and 20 pixels from
18236 the top and bottom borders
18237
18238 crop=in_w-2*10:in_h-2*20
18239
18240 • Keep only the bottom right quarter of the input image:
18241
18242 crop=in_w/2:in_h/2:in_w/2:in_h/2
18243
18244 • Crop height for getting Greek harmony:
18245
18246 crop=in_w:1/PHI*in_w
18247
18248 • Apply trembling effect:
18249
18250 crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(n/10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(n/7)
18251
18252 • Apply erratic camera effect depending on timestamp:
18253
18254 crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(t*10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(t*13)"
18255
18256 • Set x depending on the value of y:
18257
18258 crop=in_w/2:in_h/2:y:10+10*sin(n/10)
18259
18260 Commands
18261
18262 This filter supports the following commands:
18263
18264 w, out_w
18265 h, out_h
18266 x
18267 y Set width/height of the output video and the horizontal/vertical
18268 position in the input video. The command accepts the same syntax
18269 of the corresponding option.
18270
18271 If the specified expression is not valid, it is kept at its current
18272 value.
18273
18274 cropdetect
18275 Auto-detect the crop size.
18276
18277 It calculates the necessary cropping parameters and prints the
18278 recommended parameters via the logging system. The detected dimensions
18279 correspond to the non-black area of the input video.
18280
18281 It accepts the following parameters:
18282
18283 limit
18284 Set higher black value threshold, which can be optionally specified
18285 from nothing (0) to everything (255 for 8-bit based formats). An
18286 intensity value greater to the set value is considered non-black.
18287 It defaults to 24. You can also specify a value between 0.0 and
18288 1.0 which will be scaled depending on the bitdepth of the pixel
18289 format.
18290
18291 round
18292 The value which the width/height should be divisible by. It
18293 defaults to 16. The offset is automatically adjusted to center the
18294 video. Use 2 to get only even dimensions (needed for 4:2:2 video).
18295 16 is best when encoding to most video codecs.
18296
18297 skip
18298 Set the number of initial frames for which evaluation is skipped.
18299 Default is 2. Range is 0 to INT_MAX.
18300
18301 reset_count, reset
18302 Set the counter that determines after how many frames cropdetect
18303 will reset the previously detected largest video area and start
18304 over to detect the current optimal crop area. Default value is 0.
18305
18306 This can be useful when channel logos distort the video area. 0
18307 indicates 'never reset', and returns the largest area encountered
18308 during playback.
18309
18310 cue
18311 Delay video filtering until a given wallclock timestamp. The filter
18312 first passes on preroll amount of frames, then it buffers at most
18313 buffer amount of frames and waits for the cue. After reaching the cue
18314 it forwards the buffered frames and also any subsequent frames coming
18315 in its input.
18316
18317 The filter can be used synchronize the output of multiple ffmpeg
18318 processes for realtime output devices like decklink. By putting the
18319 delay in the filtering chain and pre-buffering frames the process can
18320 pass on data to output almost immediately after the target wallclock
18321 timestamp is reached.
18322
18323 Perfect frame accuracy cannot be guaranteed, but the result is good
18324 enough for some use cases.
18325
18326 cue The cue timestamp expressed in a UNIX timestamp in microseconds.
18327 Default is 0.
18328
18329 preroll
18330 The duration of content to pass on as preroll expressed in seconds.
18331 Default is 0.
18332
18333 buffer
18334 The maximum duration of content to buffer before waiting for the
18335 cue expressed in seconds. Default is 0.
18336
18337 curves
18338 Apply color adjustments using curves.
18339
18340 This filter is similar to the Adobe Photoshop and GIMP curves tools.
18341 Each component (red, green and blue) has its values defined by N key
18342 points tied from each other using a smooth curve. The x-axis represents
18343 the pixel values from the input frame, and the y-axis the new pixel
18344 values to be set for the output frame.
18345
18346 By default, a component curve is defined by the two points (0;0) and
18347 (1;1). This creates a straight line where each original pixel value is
18348 "adjusted" to its own value, which means no change to the image.
18349
18350 The filter allows you to redefine these two points and add some more. A
18351 new curve (using a natural cubic spline interpolation) will be define
18352 to pass smoothly through all these new coordinates. The new defined
18353 points needs to be strictly increasing over the x-axis, and their x and
18354 y values must be in the [0;1] interval. If the computed curves
18355 happened to go outside the vector spaces, the values will be clipped
18356 accordingly.
18357
18358 The filter accepts the following options:
18359
18360 preset
18361 Select one of the available color presets. This option can be used
18362 in addition to the r, g, b parameters; in this case, the later
18363 options takes priority on the preset values. Available presets
18364 are:
18365
18366 none
18367 color_negative
18368 cross_process
18369 darker
18370 increase_contrast
18371 lighter
18372 linear_contrast
18373 medium_contrast
18374 negative
18375 strong_contrast
18376 vintage
18377
18378 Default is "none".
18379
18380 master, m
18381 Set the master key points. These points will define a second pass
18382 mapping. It is sometimes called a "luminance" or "value" mapping.
18383 It can be used with r, g, b or all since it acts like a post-
18384 processing LUT.
18385
18386 red, r
18387 Set the key points for the red component.
18388
18389 green, g
18390 Set the key points for the green component.
18391
18392 blue, b
18393 Set the key points for the blue component.
18394
18395 all Set the key points for all components (not including master). Can
18396 be used in addition to the other key points component options. In
18397 this case, the unset component(s) will fallback on this all
18398 setting.
18399
18400 psfile
18401 Specify a Photoshop curves file (".acv") to import the settings
18402 from.
18403
18404 plot
18405 Save Gnuplot script of the curves in specified file.
18406
18407 To avoid some filtergraph syntax conflicts, each key points list need
18408 to be defined using the following syntax: "x0/y0 x1/y1 x2/y2 ...".
18409
18410 Commands
18411
18412 This filter supports same commands as options.
18413
18414 Examples
18415
18416 • Increase slightly the middle level of blue:
18417
18418 curves=blue='0/0 0.5/0.58 1/1'
18419
18420 • Vintage effect:
18421
18422 curves=r='0/0.11 .42/.51 1/0.95':g='0/0 0.50/0.48 1/1':b='0/0.22 .49/.44 1/0.8'
18423
18424 Here we obtain the following coordinates for each components:
18425
18426 red "(0;0.11) (0.42;0.51) (1;0.95)"
18427
18428 green
18429 "(0;0) (0.50;0.48) (1;1)"
18430
18431 blue
18432 "(0;0.22) (0.49;0.44) (1;0.80)"
18433
18434 • The previous example can also be achieved with the associated
18435 built-in preset:
18436
18437 curves=preset=vintage
18438
18439 • Or simply:
18440
18441 curves=vintage
18442
18443 • Use a Photoshop preset and redefine the points of the green
18444 component:
18445
18446 curves=psfile='MyCurvesPresets/purple.acv':green='0/0 0.45/0.53 1/1'
18447
18448 • Check out the curves of the "cross_process" profile using ffmpeg
18449 and gnuplot:
18450
18451 ffmpeg -f lavfi -i color -vf curves=cross_process:plot=/tmp/curves.plt -frames:v 1 -f null -
18452 gnuplot -p /tmp/curves.plt
18453
18454 datascope
18455 Video data analysis filter.
18456
18457 This filter shows hexadecimal pixel values of part of video.
18458
18459 The filter accepts the following options:
18460
18461 size, s
18462 Set output video size.
18463
18464 x Set x offset from where to pick pixels.
18465
18466 y Set y offset from where to pick pixels.
18467
18468 mode
18469 Set scope mode, can be one of the following:
18470
18471 mono
18472 Draw hexadecimal pixel values with white color on black
18473 background.
18474
18475 color
18476 Draw hexadecimal pixel values with input video pixel color on
18477 black background.
18478
18479 color2
18480 Draw hexadecimal pixel values on color background picked from
18481 input video, the text color is picked in such way so its always
18482 visible.
18483
18484 axis
18485 Draw rows and columns numbers on left and top of video.
18486
18487 opacity
18488 Set background opacity.
18489
18490 format
18491 Set display number format. Can be "hex", or "dec". Default is
18492 "hex".
18493
18494 components
18495 Set pixel components to display. By default all pixel components
18496 are displayed.
18497
18498 Commands
18499
18500 This filter supports same commands as options excluding "size" option.
18501
18502 dblur
18503 Apply Directional blur filter.
18504
18505 The filter accepts the following options:
18506
18507 angle
18508 Set angle of directional blur. Default is 45.
18509
18510 radius
18511 Set radius of directional blur. Default is 5.
18512
18513 planes
18514 Set which planes to filter. By default all planes are filtered.
18515
18516 Commands
18517
18518 This filter supports same commands as options. The command accepts the
18519 same syntax of the corresponding option.
18520
18521 If the specified expression is not valid, it is kept at its current
18522 value.
18523
18524 dctdnoiz
18525 Denoise frames using 2D DCT (frequency domain filtering).
18526
18527 This filter is not designed for real time.
18528
18529 The filter accepts the following options:
18530
18531 sigma, s
18532 Set the noise sigma constant.
18533
18534 This sigma defines a hard threshold of "3 * sigma"; every DCT
18535 coefficient (absolute value) below this threshold with be dropped.
18536
18537 If you need a more advanced filtering, see expr.
18538
18539 Default is 0.
18540
18541 overlap
18542 Set number overlapping pixels for each block. Since the filter can
18543 be slow, you may want to reduce this value, at the cost of a less
18544 effective filter and the risk of various artefacts.
18545
18546 If the overlapping value doesn't permit processing the whole input
18547 width or height, a warning will be displayed and according borders
18548 won't be denoised.
18549
18550 Default value is blocksize-1, which is the best possible setting.
18551
18552 expr, e
18553 Set the coefficient factor expression.
18554
18555 For each coefficient of a DCT block, this expression will be
18556 evaluated as a multiplier value for the coefficient.
18557
18558 If this is option is set, the sigma option will be ignored.
18559
18560 The absolute value of the coefficient can be accessed through the c
18561 variable.
18562
18563 n Set the blocksize using the number of bits. "1<<n" defines the
18564 blocksize, which is the width and height of the processed blocks.
18565
18566 The default value is 3 (8x8) and can be raised to 4 for a blocksize
18567 of 16x16. Note that changing this setting has huge consequences on
18568 the speed processing. Also, a larger block size does not
18569 necessarily means a better de-noising.
18570
18571 Examples
18572
18573 Apply a denoise with a sigma of 4.5:
18574
18575 dctdnoiz=4.5
18576
18577 The same operation can be achieved using the expression system:
18578
18579 dctdnoiz=e='gte(c, 4.5*3)'
18580
18581 Violent denoise using a block size of "16x16":
18582
18583 dctdnoiz=15:n=4
18584
18585 deband
18586 Remove banding artifacts from input video. It works by replacing
18587 banded pixels with average value of referenced pixels.
18588
18589 The filter accepts the following options:
18590
18591 1thr
18592 2thr
18593 3thr
18594 4thr
18595 Set banding detection threshold for each plane. Default is 0.02.
18596 Valid range is 0.00003 to 0.5. If difference between current pixel
18597 and reference pixel is less than threshold, it will be considered
18598 as banded.
18599
18600 range, r
18601 Banding detection range in pixels. Default is 16. If positive,
18602 random number in range 0 to set value will be used. If negative,
18603 exact absolute value will be used. The range defines square of
18604 four pixels around current pixel.
18605
18606 direction, d
18607 Set direction in radians from which four pixel will be compared. If
18608 positive, random direction from 0 to set direction will be picked.
18609 If negative, exact of absolute value will be picked. For example
18610 direction 0, -PI or -2*PI radians will pick only pixels on same row
18611 and -PI/2 will pick only pixels on same column.
18612
18613 blur, b
18614 If enabled, current pixel is compared with average value of all
18615 four surrounding pixels. The default is enabled. If disabled
18616 current pixel is compared with all four surrounding pixels. The
18617 pixel is considered banded if only all four differences with
18618 surrounding pixels are less than threshold.
18619
18620 coupling, c
18621 If enabled, current pixel is changed if and only if all pixel
18622 components are banded, e.g. banding detection threshold is
18623 triggered for all color components. The default is disabled.
18624
18625 Commands
18626
18627 This filter supports the all above options as commands.
18628
18629 deblock
18630 Remove blocking artifacts from input video.
18631
18632 The filter accepts the following options:
18633
18634 filter
18635 Set filter type, can be weak or strong. Default is strong. This
18636 controls what kind of deblocking is applied.
18637
18638 block
18639 Set size of block, allowed range is from 4 to 512. Default is 8.
18640
18641 alpha
18642 beta
18643 gamma
18644 delta
18645 Set blocking detection thresholds. Allowed range is 0 to 1.
18646 Defaults are: 0.098 for alpha and 0.05 for the rest. Using higher
18647 threshold gives more deblocking strength. Setting alpha controls
18648 threshold detection at exact edge of block. Remaining options
18649 controls threshold detection near the edge. Each one for
18650 below/above or left/right. Setting any of those to 0 disables
18651 deblocking.
18652
18653 planes
18654 Set planes to filter. Default is to filter all available planes.
18655
18656 Examples
18657
18658 • Deblock using weak filter and block size of 4 pixels.
18659
18660 deblock=filter=weak:block=4
18661
18662 • Deblock using strong filter, block size of 4 pixels and custom
18663 thresholds for deblocking more edges.
18664
18665 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05
18666
18667 • Similar as above, but filter only first plane.
18668
18669 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=1
18670
18671 • Similar as above, but filter only second and third plane.
18672
18673 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=6
18674
18675 Commands
18676
18677 This filter supports the all above options as commands.
18678
18679 decimate
18680 Drop duplicated frames at regular intervals.
18681
18682 The filter accepts the following options:
18683
18684 cycle
18685 Set the number of frames from which one will be dropped. Setting
18686 this to N means one frame in every batch of N frames will be
18687 dropped. Default is 5.
18688
18689 dupthresh
18690 Set the threshold for duplicate detection. If the difference metric
18691 for a frame is less than or equal to this value, then it is
18692 declared as duplicate. Default is 1.1
18693
18694 scthresh
18695 Set scene change threshold. Default is 15.
18696
18697 blockx
18698 blocky
18699 Set the size of the x and y-axis blocks used during metric
18700 calculations. Larger blocks give better noise suppression, but
18701 also give worse detection of small movements. Must be a power of
18702 two. Default is 32.
18703
18704 ppsrc
18705 Mark main input as a pre-processed input and activate clean source
18706 input stream. This allows the input to be pre-processed with
18707 various filters to help the metrics calculation while keeping the
18708 frame selection lossless. When set to 1, the first stream is for
18709 the pre-processed input, and the second stream is the clean source
18710 from where the kept frames are chosen. Default is 0.
18711
18712 chroma
18713 Set whether or not chroma is considered in the metric calculations.
18714 Default is 1.
18715
18716 deconvolve
18717 Apply 2D deconvolution of video stream in frequency domain using second
18718 stream as impulse.
18719
18720 The filter accepts the following options:
18721
18722 planes
18723 Set which planes to process.
18724
18725 impulse
18726 Set which impulse video frames will be processed, can be first or
18727 all. Default is all.
18728
18729 noise
18730 Set noise when doing divisions. Default is 0.0000001. Useful when
18731 width and height are not same and not power of 2 or if stream prior
18732 to convolving had noise.
18733
18734 The "deconvolve" filter also supports the framesync options.
18735
18736 dedot
18737 Reduce cross-luminance (dot-crawl) and cross-color (rainbows) from
18738 video.
18739
18740 It accepts the following options:
18741
18742 m Set mode of operation. Can be combination of dotcrawl for cross-
18743 luminance reduction and/or rainbows for cross-color reduction.
18744
18745 lt Set spatial luma threshold. Lower values increases reduction of
18746 cross-luminance.
18747
18748 tl Set tolerance for temporal luma. Higher values increases reduction
18749 of cross-luminance.
18750
18751 tc Set tolerance for chroma temporal variation. Higher values
18752 increases reduction of cross-color.
18753
18754 ct Set temporal chroma threshold. Lower values increases reduction of
18755 cross-color.
18756
18757 deflate
18758 Apply deflate effect to the video.
18759
18760 This filter replaces the pixel by the local(3x3) average by taking into
18761 account only values lower than the pixel.
18762
18763 It accepts the following options:
18764
18765 threshold0
18766 threshold1
18767 threshold2
18768 threshold3
18769 Limit the maximum change for each plane, default is 65535. If 0,
18770 plane will remain unchanged.
18771
18772 Commands
18773
18774 This filter supports the all above options as commands.
18775
18776 deflicker
18777 Remove temporal frame luminance variations.
18778
18779 It accepts the following options:
18780
18781 size, s
18782 Set moving-average filter size in frames. Default is 5. Allowed
18783 range is 2 - 129.
18784
18785 mode, m
18786 Set averaging mode to smooth temporal luminance variations.
18787
18788 Available values are:
18789
18790 am Arithmetic mean
18791
18792 gm Geometric mean
18793
18794 hm Harmonic mean
18795
18796 qm Quadratic mean
18797
18798 cm Cubic mean
18799
18800 pm Power mean
18801
18802 median
18803 Median
18804
18805 bypass
18806 Do not actually modify frame. Useful when one only wants metadata.
18807
18808 dejudder
18809 Remove judder produced by partially interlaced telecined content.
18810
18811 Judder can be introduced, for instance, by pullup filter. If the
18812 original source was partially telecined content then the output of
18813 "pullup,dejudder" will have a variable frame rate. May change the
18814 recorded frame rate of the container. Aside from that change, this
18815 filter will not affect constant frame rate video.
18816
18817 The option available in this filter is:
18818
18819 cycle
18820 Specify the length of the window over which the judder repeats.
18821
18822 Accepts any integer greater than 1. Useful values are:
18823
18824 4 If the original was telecined from 24 to 30 fps (Film to NTSC).
18825
18826 5 If the original was telecined from 25 to 30 fps (PAL to NTSC).
18827
18828 20 If a mixture of the two.
18829
18830 The default is 4.
18831
18832 delogo
18833 Suppress a TV station logo by a simple interpolation of the surrounding
18834 pixels. Just set a rectangle covering the logo and watch it disappear
18835 (and sometimes something even uglier appear - your mileage may vary).
18836
18837 It accepts the following parameters:
18838
18839 x
18840 y Specify the top left corner coordinates of the logo. They must be
18841 specified.
18842
18843 w
18844 h Specify the width and height of the logo to clear. They must be
18845 specified.
18846
18847 show
18848 When set to 1, a green rectangle is drawn on the screen to simplify
18849 finding the right x, y, w, and h parameters. The default value is
18850 0.
18851
18852 The rectangle is drawn on the outermost pixels which will be
18853 (partly) replaced with interpolated values. The values of the next
18854 pixels immediately outside this rectangle in each direction will be
18855 used to compute the interpolated pixel values inside the rectangle.
18856
18857 Examples
18858
18859 • Set a rectangle covering the area with top left corner coordinates
18860 0,0 and size 100x77:
18861
18862 delogo=x=0:y=0:w=100:h=77
18863
18864 derain
18865 Remove the rain in the input image/video by applying the derain methods
18866 based on convolutional neural networks. Supported models:
18867
18868 • Recurrent Squeeze-and-Excitation Context Aggregation Net (RESCAN).
18869 See
18870 <http://openaccess.thecvf.com/content_ECCV_2018/papers/Xia_Li_Recurrent_Squeeze-and-Excitation_Context_ECCV_2018_paper.pdf>.
18871
18872 Training as well as model generation scripts are provided in the
18873 repository at <https://github.com/XueweiMeng/derain_filter.git>.
18874
18875 Native model files (.model) can be generated from TensorFlow model
18876 files (.pb) by using tools/python/convert.py
18877
18878 The filter accepts the following options:
18879
18880 filter_type
18881 Specify which filter to use. This option accepts the following
18882 values:
18883
18884 derain
18885 Derain filter. To conduct derain filter, you need to use a
18886 derain model.
18887
18888 dehaze
18889 Dehaze filter. To conduct dehaze filter, you need to use a
18890 dehaze model.
18891
18892 Default value is derain.
18893
18894 dnn_backend
18895 Specify which DNN backend to use for model loading and execution.
18896 This option accepts the following values:
18897
18898 native
18899 Native implementation of DNN loading and execution.
18900
18901 tensorflow
18902 TensorFlow backend. To enable this backend you need to install
18903 the TensorFlow for C library (see
18904 <https://www.tensorflow.org/install/lang_c>) and configure
18905 FFmpeg with "--enable-libtensorflow"
18906
18907 Default value is native.
18908
18909 model
18910 Set path to model file specifying network architecture and its
18911 parameters. Note that different backends use different file
18912 formats. TensorFlow and native backend can load files for only its
18913 format.
18914
18915 To get full functionality (such as async execution), please use the
18916 dnn_processing filter.
18917
18918 deshake
18919 Attempt to fix small changes in horizontal and/or vertical shift. This
18920 filter helps remove camera shake from hand-holding a camera, bumping a
18921 tripod, moving on a vehicle, etc.
18922
18923 The filter accepts the following options:
18924
18925 x
18926 y
18927 w
18928 h Specify a rectangular area where to limit the search for motion
18929 vectors. If desired the search for motion vectors can be limited
18930 to a rectangular area of the frame defined by its top left corner,
18931 width and height. These parameters have the same meaning as the
18932 drawbox filter which can be used to visualise the position of the
18933 bounding box.
18934
18935 This is useful when simultaneous movement of subjects within the
18936 frame might be confused for camera motion by the motion vector
18937 search.
18938
18939 If any or all of x, y, w and h are set to -1 then the full frame is
18940 used. This allows later options to be set without specifying the
18941 bounding box for the motion vector search.
18942
18943 Default - search the whole frame.
18944
18945 rx
18946 ry Specify the maximum extent of movement in x and y directions in the
18947 range 0-64 pixels. Default 16.
18948
18949 edge
18950 Specify how to generate pixels to fill blanks at the edge of the
18951 frame. Available values are:
18952
18953 blank, 0
18954 Fill zeroes at blank locations
18955
18956 original, 1
18957 Original image at blank locations
18958
18959 clamp, 2
18960 Extruded edge value at blank locations
18961
18962 mirror, 3
18963 Mirrored edge at blank locations
18964
18965 Default value is mirror.
18966
18967 blocksize
18968 Specify the blocksize to use for motion search. Range 4-128 pixels,
18969 default 8.
18970
18971 contrast
18972 Specify the contrast threshold for blocks. Only blocks with more
18973 than the specified contrast (difference between darkest and
18974 lightest pixels) will be considered. Range 1-255, default 125.
18975
18976 search
18977 Specify the search strategy. Available values are:
18978
18979 exhaustive, 0
18980 Set exhaustive search
18981
18982 less, 1
18983 Set less exhaustive search.
18984
18985 Default value is exhaustive.
18986
18987 filename
18988 If set then a detailed log of the motion search is written to the
18989 specified file.
18990
18991 despill
18992 Remove unwanted contamination of foreground colors, caused by reflected
18993 color of greenscreen or bluescreen.
18994
18995 This filter accepts the following options:
18996
18997 type
18998 Set what type of despill to use.
18999
19000 mix Set how spillmap will be generated.
19001
19002 expand
19003 Set how much to get rid of still remaining spill.
19004
19005 red Controls amount of red in spill area.
19006
19007 green
19008 Controls amount of green in spill area. Should be -1 for
19009 greenscreen.
19010
19011 blue
19012 Controls amount of blue in spill area. Should be -1 for
19013 bluescreen.
19014
19015 brightness
19016 Controls brightness of spill area, preserving colors.
19017
19018 alpha
19019 Modify alpha from generated spillmap.
19020
19021 Commands
19022
19023 This filter supports the all above options as commands.
19024
19025 detelecine
19026 Apply an exact inverse of the telecine operation. It requires a
19027 predefined pattern specified using the pattern option which must be the
19028 same as that passed to the telecine filter.
19029
19030 This filter accepts the following options:
19031
19032 first_field
19033 top, t
19034 top field first
19035
19036 bottom, b
19037 bottom field first The default value is "top".
19038
19039 pattern
19040 A string of numbers representing the pulldown pattern you wish to
19041 apply. The default value is 23.
19042
19043 start_frame
19044 A number representing position of the first frame with respect to
19045 the telecine pattern. This is to be used if the stream is cut. The
19046 default value is 0.
19047
19048 dilation
19049 Apply dilation effect to the video.
19050
19051 This filter replaces the pixel by the local(3x3) maximum.
19052
19053 It accepts the following options:
19054
19055 threshold0
19056 threshold1
19057 threshold2
19058 threshold3
19059 Limit the maximum change for each plane, default is 65535. If 0,
19060 plane will remain unchanged.
19061
19062 coordinates
19063 Flag which specifies the pixel to refer to. Default is 255 i.e. all
19064 eight pixels are used.
19065
19066 Flags to local 3x3 coordinates maps like this:
19067
19068 1 2 3
19069 4 5
19070 6 7 8
19071
19072 Commands
19073
19074 This filter supports the all above options as commands.
19075
19076 displace
19077 Displace pixels as indicated by second and third input stream.
19078
19079 It takes three input streams and outputs one stream, the first input is
19080 the source, and second and third input are displacement maps.
19081
19082 The second input specifies how much to displace pixels along the
19083 x-axis, while the third input specifies how much to displace pixels
19084 along the y-axis. If one of displacement map streams terminates, last
19085 frame from that displacement map will be used.
19086
19087 Note that once generated, displacements maps can be reused over and
19088 over again.
19089
19090 A description of the accepted options follows.
19091
19092 edge
19093 Set displace behavior for pixels that are out of range.
19094
19095 Available values are:
19096
19097 blank
19098 Missing pixels are replaced by black pixels.
19099
19100 smear
19101 Adjacent pixels will spread out to replace missing pixels.
19102
19103 wrap
19104 Out of range pixels are wrapped so they point to pixels of
19105 other side.
19106
19107 mirror
19108 Out of range pixels will be replaced with mirrored pixels.
19109
19110 Default is smear.
19111
19112 Examples
19113
19114 • Add ripple effect to rgb input of video size hd720:
19115
19116 ffmpeg -i INPUT -f lavfi -i nullsrc=s=hd720,lutrgb=128:128:128 -f lavfi -i nullsrc=s=hd720,geq='r=128+30*sin(2*PI*X/400+T):g=128+30*sin(2*PI*X/400+T):b=128+30*sin(2*PI*X/400+T)' -lavfi '[0][1][2]displace' OUTPUT
19117
19118 • Add wave effect to rgb input of video size hd720:
19119
19120 ffmpeg -i INPUT -f lavfi -i nullsrc=hd720,geq='r=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T)):g=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T)):b=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T))' -lavfi '[1]split[x][y],[0][x][y]displace' OUTPUT
19121
19122 dnn_classify
19123 Do classification with deep neural networks based on bounding boxes.
19124
19125 The filter accepts the following options:
19126
19127 dnn_backend
19128 Specify which DNN backend to use for model loading and execution.
19129 This option accepts only openvino now, tensorflow backends will be
19130 added.
19131
19132 model
19133 Set path to model file specifying network architecture and its
19134 parameters. Note that different backends use different file
19135 formats.
19136
19137 input
19138 Set the input name of the dnn network.
19139
19140 output
19141 Set the output name of the dnn network.
19142
19143 confidence
19144 Set the confidence threshold (default: 0.5).
19145
19146 labels
19147 Set path to label file specifying the mapping between label id and
19148 name. Each label name is written in one line, tailing spaces and
19149 empty lines are skipped. The first line is the name of label id 0,
19150 and the second line is the name of label id 1, etc. The label id
19151 is considered as name if the label file is not provided.
19152
19153 backend_configs
19154 Set the configs to be passed into backend
19155
19156 For tensorflow backend, you can set its configs with sess_config
19157 options, please use tools/python/tf_sess_config.py to get the
19158 configs for your system.
19159
19160 dnn_detect
19161 Do object detection with deep neural networks.
19162
19163 The filter accepts the following options:
19164
19165 dnn_backend
19166 Specify which DNN backend to use for model loading and execution.
19167 This option accepts only openvino now, tensorflow backends will be
19168 added.
19169
19170 model
19171 Set path to model file specifying network architecture and its
19172 parameters. Note that different backends use different file
19173 formats.
19174
19175 input
19176 Set the input name of the dnn network.
19177
19178 output
19179 Set the output name of the dnn network.
19180
19181 confidence
19182 Set the confidence threshold (default: 0.5).
19183
19184 labels
19185 Set path to label file specifying the mapping between label id and
19186 name. Each label name is written in one line, tailing spaces and
19187 empty lines are skipped. The first line is the name of label id 0
19188 (usually it is 'background'), and the second line is the name of
19189 label id 1, etc. The label id is considered as name if the label
19190 file is not provided.
19191
19192 backend_configs
19193 Set the configs to be passed into backend. To use async execution,
19194 set async (default: set). Roll back to sync execution if the
19195 backend does not support async.
19196
19197 dnn_processing
19198 Do image processing with deep neural networks. It works together with
19199 another filter which converts the pixel format of the Frame to what the
19200 dnn network requires.
19201
19202 The filter accepts the following options:
19203
19204 dnn_backend
19205 Specify which DNN backend to use for model loading and execution.
19206 This option accepts the following values:
19207
19208 native
19209 Native implementation of DNN loading and execution.
19210
19211 tensorflow
19212 TensorFlow backend. To enable this backend you need to install
19213 the TensorFlow for C library (see
19214 <https://www.tensorflow.org/install/lang_c>) and configure
19215 FFmpeg with "--enable-libtensorflow"
19216
19217 openvino
19218 OpenVINO backend. To enable this backend you need to build and
19219 install the OpenVINO for C library (see
19220 <https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md>)
19221 and configure FFmpeg with "--enable-libopenvino"
19222 (--extra-cflags=-I... --extra-ldflags=-L... might be needed if
19223 the header files and libraries are not installed into system
19224 path)
19225
19226 Default value is native.
19227
19228 model
19229 Set path to model file specifying network architecture and its
19230 parameters. Note that different backends use different file
19231 formats. TensorFlow, OpenVINO and native backend can load files for
19232 only its format.
19233
19234 Native model file (.model) can be generated from TensorFlow model
19235 file (.pb) by using tools/python/convert.py
19236
19237 input
19238 Set the input name of the dnn network.
19239
19240 output
19241 Set the output name of the dnn network.
19242
19243 backend_configs
19244 Set the configs to be passed into backend. To use async execution,
19245 set async (default: set). Roll back to sync execution if the
19246 backend does not support async.
19247
19248 For tensorflow backend, you can set its configs with sess_config
19249 options, please use tools/python/tf_sess_config.py to get the
19250 configs of TensorFlow backend for your system.
19251
19252 Examples
19253
19254 • Remove rain in rgb24 frame with can.pb (see derain filter):
19255
19256 ./ffmpeg -i rain.jpg -vf format=rgb24,dnn_processing=dnn_backend=tensorflow:model=can.pb:input=x:output=y derain.jpg
19257
19258 • Halve the pixel value of the frame with format gray32f:
19259
19260 ffmpeg -i input.jpg -vf format=grayf32,dnn_processing=model=halve_gray_float.model:input=dnn_in:output=dnn_out:dnn_backend=native -y out.native.png
19261
19262 • Handle the Y channel with srcnn.pb (see sr filter) for frame with
19263 yuv420p (planar YUV formats supported):
19264
19265 ./ffmpeg -i 480p.jpg -vf format=yuv420p,scale=w=iw*2:h=ih*2,dnn_processing=dnn_backend=tensorflow:model=srcnn.pb:input=x:output=y -y srcnn.jpg
19266
19267 • Handle the Y channel with espcn.pb (see sr filter), which changes
19268 frame size, for format yuv420p (planar YUV formats supported),
19269 please use tools/python/tf_sess_config.py to get the configs of
19270 TensorFlow backend for your system.
19271
19272 ./ffmpeg -i 480p.jpg -vf format=yuv420p,dnn_processing=dnn_backend=tensorflow:model=espcn.pb:input=x:output=y:backend_configs=sess_config=0x10022805320e09cdccccccccccec3f20012a01303801 -y tmp.espcn.jpg
19273
19274 drawbox
19275 Draw a colored box on the input image.
19276
19277 It accepts the following parameters:
19278
19279 x
19280 y The expressions which specify the top left corner coordinates of
19281 the box. It defaults to 0.
19282
19283 width, w
19284 height, h
19285 The expressions which specify the width and height of the box; if 0
19286 they are interpreted as the input width and height. It defaults to
19287 0.
19288
19289 color, c
19290 Specify the color of the box to write. For the general syntax of
19291 this option, check the "Color" section in the ffmpeg-utils manual.
19292 If the special value "invert" is used, the box edge color is the
19293 same as the video with inverted luma.
19294
19295 thickness, t
19296 The expression which sets the thickness of the box edge. A value
19297 of "fill" will create a filled box. Default value is 3.
19298
19299 See below for the list of accepted constants.
19300
19301 replace
19302 Applicable if the input has alpha. With value 1, the pixels of the
19303 painted box will overwrite the video's color and alpha pixels.
19304 Default is 0, which composites the box onto the input, leaving the
19305 video's alpha intact.
19306
19307 The parameters for x, y, w and h and t are expressions containing the
19308 following constants:
19309
19310 dar The input display aspect ratio, it is the same as (w / h) * sar.
19311
19312 hsub
19313 vsub
19314 horizontal and vertical chroma subsample values. For example for
19315 the pixel format "yuv422p" hsub is 2 and vsub is 1.
19316
19317 in_h, ih
19318 in_w, iw
19319 The input width and height.
19320
19321 sar The input sample aspect ratio.
19322
19323 x
19324 y The x and y offset coordinates where the box is drawn.
19325
19326 w
19327 h The width and height of the drawn box.
19328
19329 box_source
19330 Box source can be set as side_data_detection_bboxes if you want to
19331 use box data in detection bboxes of side data.
19332
19333 If box_source is set, the x, y, width and height will be ignored
19334 and still use box data in detection bboxes of side data. So please
19335 do not use this parameter if you were not sure about the box
19336 source.
19337
19338 t The thickness of the drawn box.
19339
19340 These constants allow the x, y, w, h and t expressions to refer to
19341 each other, so you may for example specify "y=x/dar" or "h=w/dar".
19342
19343 Examples
19344
19345 • Draw a black box around the edge of the input image:
19346
19347 drawbox
19348
19349 • Draw a box with color red and an opacity of 50%:
19350
19351 drawbox=10:20:200:60:red@0.5
19352
19353 The previous example can be specified as:
19354
19355 drawbox=x=10:y=20:w=200:h=60:color=red@0.5
19356
19357 • Fill the box with pink color:
19358
19359 drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill
19360
19361 • Draw a 2-pixel red 2.40:1 mask:
19362
19363 drawbox=x=-t:y=0.5*(ih-iw/2.4)-t:w=iw+t*2:h=iw/2.4+t*2:t=2:c=red
19364
19365 Commands
19366
19367 This filter supports same commands as options. The command accepts the
19368 same syntax of the corresponding option.
19369
19370 If the specified expression is not valid, it is kept at its current
19371 value.
19372
19373 drawgraph
19374 Draw a graph using input video metadata.
19375
19376 It accepts the following parameters:
19377
19378 m1 Set 1st frame metadata key from which metadata values will be used
19379 to draw a graph.
19380
19381 fg1 Set 1st foreground color expression.
19382
19383 m2 Set 2nd frame metadata key from which metadata values will be used
19384 to draw a graph.
19385
19386 fg2 Set 2nd foreground color expression.
19387
19388 m3 Set 3rd frame metadata key from which metadata values will be used
19389 to draw a graph.
19390
19391 fg3 Set 3rd foreground color expression.
19392
19393 m4 Set 4th frame metadata key from which metadata values will be used
19394 to draw a graph.
19395
19396 fg4 Set 4th foreground color expression.
19397
19398 min Set minimal value of metadata value.
19399
19400 max Set maximal value of metadata value.
19401
19402 bg Set graph background color. Default is white.
19403
19404 mode
19405 Set graph mode.
19406
19407 Available values for mode is:
19408
19409 bar
19410 dot
19411 line
19412
19413 Default is "line".
19414
19415 slide
19416 Set slide mode.
19417
19418 Available values for slide is:
19419
19420 frame
19421 Draw new frame when right border is reached.
19422
19423 replace
19424 Replace old columns with new ones.
19425
19426 scroll
19427 Scroll from right to left.
19428
19429 rscroll
19430 Scroll from left to right.
19431
19432 picture
19433 Draw single picture.
19434
19435 Default is "frame".
19436
19437 size
19438 Set size of graph video. For the syntax of this option, check the
19439 "Video size" section in the ffmpeg-utils manual. The default value
19440 is "900x256".
19441
19442 rate, r
19443 Set the output frame rate. Default value is 25.
19444
19445 The foreground color expressions can use the following variables:
19446
19447 MIN Minimal value of metadata value.
19448
19449 MAX Maximal value of metadata value.
19450
19451 VAL Current metadata key value.
19452
19453 The color is defined as 0xAABBGGRR.
19454
19455 Example using metadata from signalstats filter:
19456
19457 signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255
19458
19459 Example using metadata from ebur128 filter:
19460
19461 ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5
19462
19463 drawgrid
19464 Draw a grid on the input image.
19465
19466 It accepts the following parameters:
19467
19468 x
19469 y The expressions which specify the coordinates of some point of grid
19470 intersection (meant to configure offset). Both default to 0.
19471
19472 width, w
19473 height, h
19474 The expressions which specify the width and height of the grid
19475 cell, if 0 they are interpreted as the input width and height,
19476 respectively, minus "thickness", so image gets framed. Default to
19477 0.
19478
19479 color, c
19480 Specify the color of the grid. For the general syntax of this
19481 option, check the "Color" section in the ffmpeg-utils manual. If
19482 the special value "invert" is used, the grid color is the same as
19483 the video with inverted luma.
19484
19485 thickness, t
19486 The expression which sets the thickness of the grid line. Default
19487 value is 1.
19488
19489 See below for the list of accepted constants.
19490
19491 replace
19492 Applicable if the input has alpha. With 1 the pixels of the painted
19493 grid will overwrite the video's color and alpha pixels. Default is
19494 0, which composites the grid onto the input, leaving the video's
19495 alpha intact.
19496
19497 The parameters for x, y, w and h and t are expressions containing the
19498 following constants:
19499
19500 dar The input display aspect ratio, it is the same as (w / h) * sar.
19501
19502 hsub
19503 vsub
19504 horizontal and vertical chroma subsample values. For example for
19505 the pixel format "yuv422p" hsub is 2 and vsub is 1.
19506
19507 in_h, ih
19508 in_w, iw
19509 The input grid cell width and height.
19510
19511 sar The input sample aspect ratio.
19512
19513 x
19514 y The x and y coordinates of some point of grid intersection (meant
19515 to configure offset).
19516
19517 w
19518 h The width and height of the drawn cell.
19519
19520 t The thickness of the drawn cell.
19521
19522 These constants allow the x, y, w, h and t expressions to refer to
19523 each other, so you may for example specify "y=x/dar" or "h=w/dar".
19524
19525 Examples
19526
19527 • Draw a grid with cell 100x100 pixels, thickness 2 pixels, with
19528 color red and an opacity of 50%:
19529
19530 drawgrid=width=100:height=100:thickness=2:color=red@0.5
19531
19532 • Draw a white 3x3 grid with an opacity of 50%:
19533
19534 drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
19535
19536 Commands
19537
19538 This filter supports same commands as options. The command accepts the
19539 same syntax of the corresponding option.
19540
19541 If the specified expression is not valid, it is kept at its current
19542 value.
19543
19544 drawtext
19545 Draw a text string or text from a specified file on top of a video,
19546 using the libfreetype library.
19547
19548 To enable compilation of this filter, you need to configure FFmpeg with
19549 "--enable-libfreetype". To enable default font fallback and the font
19550 option you need to configure FFmpeg with "--enable-libfontconfig". To
19551 enable the text_shaping option, you need to configure FFmpeg with
19552 "--enable-libfribidi".
19553
19554 Syntax
19555
19556 It accepts the following parameters:
19557
19558 box Used to draw a box around text using the background color. The
19559 value must be either 1 (enable) or 0 (disable). The default value
19560 of box is 0.
19561
19562 boxborderw
19563 Set the width of the border to be drawn around the box using
19564 boxcolor. The default value of boxborderw is 0.
19565
19566 boxcolor
19567 The color to be used for drawing box around text. For the syntax of
19568 this option, check the "Color" section in the ffmpeg-utils manual.
19569
19570 The default value of boxcolor is "white".
19571
19572 line_spacing
19573 Set the line spacing in pixels of the border to be drawn around the
19574 box using box. The default value of line_spacing is 0.
19575
19576 borderw
19577 Set the width of the border to be drawn around the text using
19578 bordercolor. The default value of borderw is 0.
19579
19580 bordercolor
19581 Set the color to be used for drawing border around text. For the
19582 syntax of this option, check the "Color" section in the ffmpeg-
19583 utils manual.
19584
19585 The default value of bordercolor is "black".
19586
19587 expansion
19588 Select how the text is expanded. Can be either "none", "strftime"
19589 (deprecated) or "normal" (default). See the drawtext_expansion,
19590 Text expansion section below for details.
19591
19592 basetime
19593 Set a start time for the count. Value is in microseconds. Only
19594 applied in the deprecated strftime expansion mode. To emulate in
19595 normal expansion mode use the "pts" function, supplying the start
19596 time (in seconds) as the second argument.
19597
19598 fix_bounds
19599 If true, check and fix text coords to avoid clipping.
19600
19601 fontcolor
19602 The color to be used for drawing fonts. For the syntax of this
19603 option, check the "Color" section in the ffmpeg-utils manual.
19604
19605 The default value of fontcolor is "black".
19606
19607 fontcolor_expr
19608 String which is expanded the same way as text to obtain dynamic
19609 fontcolor value. By default this option has empty value and is not
19610 processed. When this option is set, it overrides fontcolor option.
19611
19612 font
19613 The font family to be used for drawing text. By default Sans.
19614
19615 fontfile
19616 The font file to be used for drawing text. The path must be
19617 included. This parameter is mandatory if the fontconfig support is
19618 disabled.
19619
19620 alpha
19621 Draw the text applying alpha blending. The value can be a number
19622 between 0.0 and 1.0. The expression accepts the same variables x,
19623 y as well. The default value is 1. Please see fontcolor_expr.
19624
19625 fontsize
19626 The font size to be used for drawing text. The default value of
19627 fontsize is 16.
19628
19629 text_shaping
19630 If set to 1, attempt to shape the text (for example, reverse the
19631 order of right-to-left text and join Arabic characters) before
19632 drawing it. Otherwise, just draw the text exactly as given. By
19633 default 1 (if supported).
19634
19635 ft_load_flags
19636 The flags to be used for loading the fonts.
19637
19638 The flags map the corresponding flags supported by libfreetype, and
19639 are a combination of the following values:
19640
19641 default
19642 no_scale
19643 no_hinting
19644 render
19645 no_bitmap
19646 vertical_layout
19647 force_autohint
19648 crop_bitmap
19649 pedantic
19650 ignore_global_advance_width
19651 no_recurse
19652 ignore_transform
19653 monochrome
19654 linear_design
19655 no_autohint
19656
19657 Default value is "default".
19658
19659 For more information consult the documentation for the FT_LOAD_*
19660 libfreetype flags.
19661
19662 shadowcolor
19663 The color to be used for drawing a shadow behind the drawn text.
19664 For the syntax of this option, check the "Color" section in the
19665 ffmpeg-utils manual.
19666
19667 The default value of shadowcolor is "black".
19668
19669 shadowx
19670 shadowy
19671 The x and y offsets for the text shadow position with respect to
19672 the position of the text. They can be either positive or negative
19673 values. The default value for both is "0".
19674
19675 start_number
19676 The starting frame number for the n/frame_num variable. The default
19677 value is "0".
19678
19679 tabsize
19680 The size in number of spaces to use for rendering the tab. Default
19681 value is 4.
19682
19683 timecode
19684 Set the initial timecode representation in "hh:mm:ss[:;.]ff"
19685 format. It can be used with or without text parameter.
19686 timecode_rate option must be specified.
19687
19688 timecode_rate, rate, r
19689 Set the timecode frame rate (timecode only). Value will be rounded
19690 to nearest integer. Minimum value is "1". Drop-frame timecode is
19691 supported for frame rates 30 & 60.
19692
19693 tc24hmax
19694 If set to 1, the output of the timecode option will wrap around at
19695 24 hours. Default is 0 (disabled).
19696
19697 text
19698 The text string to be drawn. The text must be a sequence of UTF-8
19699 encoded characters. This parameter is mandatory if no file is
19700 specified with the parameter textfile.
19701
19702 textfile
19703 A text file containing text to be drawn. The text must be a
19704 sequence of UTF-8 encoded characters.
19705
19706 This parameter is mandatory if no text string is specified with the
19707 parameter text.
19708
19709 If both text and textfile are specified, an error is thrown.
19710
19711 text_source
19712 Text source should be set as side_data_detection_bboxes if you want
19713 to use text data in detection bboxes of side data.
19714
19715 If text source is set, text and textfile will be ignored and still
19716 use text data in detection bboxes of side data. So please do not
19717 use this parameter if you are not sure about the text source.
19718
19719 reload
19720 The textfile will be reloaded at specified frame interval. Be sure
19721 to update textfile atomically, or it may be read partially, or even
19722 fail. Range is 0 to INT_MAX. Default is 0.
19723
19724 x
19725 y The expressions which specify the offsets where text will be drawn
19726 within the video frame. They are relative to the top/left border of
19727 the output image.
19728
19729 The default value of x and y is "0".
19730
19731 See below for the list of accepted constants and functions.
19732
19733 The parameters for x and y are expressions containing the following
19734 constants and functions:
19735
19736 dar input display aspect ratio, it is the same as (w / h) * sar
19737
19738 hsub
19739 vsub
19740 horizontal and vertical chroma subsample values. For example for
19741 the pixel format "yuv422p" hsub is 2 and vsub is 1.
19742
19743 line_h, lh
19744 the height of each text line
19745
19746 main_h, h, H
19747 the input height
19748
19749 main_w, w, W
19750 the input width
19751
19752 max_glyph_a, ascent
19753 the maximum distance from the baseline to the highest/upper grid
19754 coordinate used to place a glyph outline point, for all the
19755 rendered glyphs. It is a positive value, due to the grid's
19756 orientation with the Y axis upwards.
19757
19758 max_glyph_d, descent
19759 the maximum distance from the baseline to the lowest grid
19760 coordinate used to place a glyph outline point, for all the
19761 rendered glyphs. This is a negative value, due to the grid's
19762 orientation, with the Y axis upwards.
19763
19764 max_glyph_h
19765 maximum glyph height, that is the maximum height for all the glyphs
19766 contained in the rendered text, it is equivalent to ascent -
19767 descent.
19768
19769 max_glyph_w
19770 maximum glyph width, that is the maximum width for all the glyphs
19771 contained in the rendered text
19772
19773 n the number of input frame, starting from 0
19774
19775 rand(min, max)
19776 return a random number included between min and max
19777
19778 sar The input sample aspect ratio.
19779
19780 t timestamp expressed in seconds, NAN if the input timestamp is
19781 unknown
19782
19783 text_h, th
19784 the height of the rendered text
19785
19786 text_w, tw
19787 the width of the rendered text
19788
19789 x
19790 y the x and y offset coordinates where the text is drawn.
19791
19792 These parameters allow the x and y expressions to refer to each
19793 other, so you can for example specify "y=x/dar".
19794
19795 pict_type
19796 A one character description of the current frame's picture type.
19797
19798 pkt_pos
19799 The current packet's position in the input file or stream (in
19800 bytes, from the start of the input). A value of -1 indicates this
19801 info is not available.
19802
19803 pkt_duration
19804 The current packet's duration, in seconds.
19805
19806 pkt_size
19807 The current packet's size (in bytes).
19808
19809 Text expansion
19810
19811 If expansion is set to "strftime", the filter recognizes strftime()
19812 sequences in the provided text and expands them accordingly. Check the
19813 documentation of strftime(). This feature is deprecated.
19814
19815 If expansion is set to "none", the text is printed verbatim.
19816
19817 If expansion is set to "normal" (which is the default), the following
19818 expansion mechanism is used.
19819
19820 The backslash character \, followed by any character, always expands to
19821 the second character.
19822
19823 Sequences of the form "%{...}" are expanded. The text between the
19824 braces is a function name, possibly followed by arguments separated by
19825 ':'. If the arguments contain special characters or delimiters (':' or
19826 '}'), they should be escaped.
19827
19828 Note that they probably must also be escaped as the value for the text
19829 option in the filter argument string and as the filter argument in the
19830 filtergraph description, and possibly also for the shell, that makes up
19831 to four levels of escaping; using a text file avoids these problems.
19832
19833 The following functions are available:
19834
19835 expr, e
19836 The expression evaluation result.
19837
19838 It must take one argument specifying the expression to be
19839 evaluated, which accepts the same constants and functions as the x
19840 and y values. Note that not all constants should be used, for
19841 example the text size is not known when evaluating the expression,
19842 so the constants text_w and text_h will have an undefined value.
19843
19844 expr_int_format, eif
19845 Evaluate the expression's value and output as formatted integer.
19846
19847 The first argument is the expression to be evaluated, just as for
19848 the expr function. The second argument specifies the output
19849 format. Allowed values are x, X, d and u. They are treated exactly
19850 as in the "printf" function. The third parameter is optional and
19851 sets the number of positions taken by the output. It can be used
19852 to add padding with zeros from the left.
19853
19854 gmtime
19855 The time at which the filter is running, expressed in UTC. It can
19856 accept an argument: a strftime() format string. The format string
19857 is extended to support the variable %[1-6]N which prints fractions
19858 of the second with optionally specified number of digits.
19859
19860 localtime
19861 The time at which the filter is running, expressed in the local
19862 time zone. It can accept an argument: a strftime() format string.
19863 The format string is extended to support the variable %[1-6]N which
19864 prints fractions of the second with optionally specified number of
19865 digits.
19866
19867 metadata
19868 Frame metadata. Takes one or two arguments.
19869
19870 The first argument is mandatory and specifies the metadata key.
19871
19872 The second argument is optional and specifies a default value, used
19873 when the metadata key is not found or empty.
19874
19875 Available metadata can be identified by inspecting entries starting
19876 with TAG included within each frame section printed by running
19877 "ffprobe -show_frames".
19878
19879 String metadata generated in filters leading to the drawtext filter
19880 are also available.
19881
19882 n, frame_num
19883 The frame number, starting from 0.
19884
19885 pict_type
19886 A one character description of the current picture type.
19887
19888 pts The timestamp of the current frame. It can take up to three
19889 arguments.
19890
19891 The first argument is the format of the timestamp; it defaults to
19892 "flt" for seconds as a decimal number with microsecond accuracy;
19893 "hms" stands for a formatted [-]HH:MM:SS.mmm timestamp with
19894 millisecond accuracy. "gmtime" stands for the timestamp of the
19895 frame formatted as UTC time; "localtime" stands for the timestamp
19896 of the frame formatted as local time zone time.
19897
19898 The second argument is an offset added to the timestamp.
19899
19900 If the format is set to "hms", a third argument "24HH" may be
19901 supplied to present the hour part of the formatted timestamp in 24h
19902 format (00-23).
19903
19904 If the format is set to "localtime" or "gmtime", a third argument
19905 may be supplied: a strftime() format string. By default, YYYY-MM-
19906 DD HH:MM:SS format will be used.
19907
19908 Commands
19909
19910 This filter supports altering parameters via commands:
19911
19912 reinit
19913 Alter existing filter parameters.
19914
19915 Syntax for the argument is the same as for filter invocation, e.g.
19916
19917 fontsize=56:fontcolor=green:text='Hello World'
19918
19919 Full filter invocation with sendcmd would look like this:
19920
19921 sendcmd=c='56.0 drawtext reinit fontsize=56\:fontcolor=green\:text=Hello\\ World'
19922
19923 If the entire argument can't be parsed or applied as valid values then
19924 the filter will continue with its existing parameters.
19925
19926 Examples
19927
19928 • Draw "Test Text" with font FreeSerif, using the default values for
19929 the optional parameters.
19930
19931 drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
19932
19933 • Draw 'Test Text' with font FreeSerif of size 24 at position x=100
19934 and y=50 (counting from the top-left corner of the screen), text is
19935 yellow with a red box around it. Both the text and the box have an
19936 opacity of 20%.
19937
19938 drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\
19939 x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
19940
19941 Note that the double quotes are not necessary if spaces are not
19942 used within the parameter list.
19943
19944 • Show the text at the center of the video frame:
19945
19946 drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2"
19947
19948 • Show the text at a random position, switching to a new position
19949 every 30 seconds:
19950
19951 drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=if(eq(mod(t\,30)\,0)\,rand(0\,(w-text_w))\,x):y=if(eq(mod(t\,30)\,0)\,rand(0\,(h-text_h))\,y)"
19952
19953 • Show a text line sliding from right to left in the last row of the
19954 video frame. The file LONG_LINE is assumed to contain a single line
19955 with no newlines.
19956
19957 drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
19958
19959 • Show the content of file CREDITS off the bottom of the frame and
19960 scroll up.
19961
19962 drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
19963
19964 • Draw a single green letter "g", at the center of the input video.
19965 The glyph baseline is placed at half screen height.
19966
19967 drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
19968
19969 • Show text for 1 second every 3 seconds:
19970
19971 drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
19972
19973 • Use fontconfig to set the font. Note that the colons need to be
19974 escaped.
19975
19976 drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
19977
19978 • Draw "Test Text" with font size dependent on height of the video.
19979
19980 drawtext="text='Test Text': fontsize=h/30: x=(w-text_w)/2: y=(h-text_h*2)"
19981
19982 • Print the date of a real-time encoding (see strftime(3)):
19983
19984 drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}'
19985
19986 • Show text fading in and out (appearing/disappearing):
19987
19988 #!/bin/sh
19989 DS=1.0 # display start
19990 DE=10.0 # display end
19991 FID=1.5 # fade in duration
19992 FOD=5 # fade out duration
19993 ffplay -f lavfi "color,drawtext=text=TEST:fontsize=50:fontfile=FreeSerif.ttf:fontcolor_expr=ff0000%{eif\\\\: clip(255*(1*between(t\\, $DS + $FID\\, $DE - $FOD) + ((t - $DS)/$FID)*between(t\\, $DS\\, $DS + $FID) + (-(t - $DE)/$FOD)*between(t\\, $DE - $FOD\\, $DE) )\\, 0\\, 255) \\\\: x\\\\: 2 }"
19994
19995 • Horizontally align multiple separate texts. Note that max_glyph_a
19996 and the fontsize value are included in the y offset.
19997
19998 drawtext=fontfile=FreeSans.ttf:text=DOG:fontsize=24:x=10:y=20+24-max_glyph_a,
19999 drawtext=fontfile=FreeSans.ttf:text=cow:fontsize=24:x=80:y=20+24-max_glyph_a
20000
20001 • Plot special lavf.image2dec.source_basename metadata onto each
20002 frame if such metadata exists. Otherwise, plot the string "NA".
20003 Note that image2 demuxer must have option -export_path_metadata 1
20004 for the special metadata fields to be available for filters.
20005
20006 drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=10:y=10"
20007
20008 For more information about libfreetype, check:
20009 <http://www.freetype.org/>.
20010
20011 For more information about fontconfig, check:
20012 <http://freedesktop.org/software/fontconfig/fontconfig-user.html>.
20013
20014 For more information about libfribidi, check: <http://fribidi.org/>.
20015
20016 edgedetect
20017 Detect and draw edges. The filter uses the Canny Edge Detection
20018 algorithm.
20019
20020 The filter accepts the following options:
20021
20022 low
20023 high
20024 Set low and high threshold values used by the Canny thresholding
20025 algorithm.
20026
20027 The high threshold selects the "strong" edge pixels, which are then
20028 connected through 8-connectivity with the "weak" edge pixels
20029 selected by the low threshold.
20030
20031 low and high threshold values must be chosen in the range [0,1],
20032 and low should be lesser or equal to high.
20033
20034 Default value for low is "20/255", and default value for high is
20035 "50/255".
20036
20037 mode
20038 Define the drawing mode.
20039
20040 wires
20041 Draw white/gray wires on black background.
20042
20043 colormix
20044 Mix the colors to create a paint/cartoon effect.
20045
20046 canny
20047 Apply Canny edge detector on all selected planes.
20048
20049 Default value is wires.
20050
20051 planes
20052 Select planes for filtering. By default all available planes are
20053 filtered.
20054
20055 Examples
20056
20057 • Standard edge detection with custom values for the hysteresis
20058 thresholding:
20059
20060 edgedetect=low=0.1:high=0.4
20061
20062 • Painting effect without thresholding:
20063
20064 edgedetect=mode=colormix:high=0
20065
20066 elbg
20067 Apply a posterize effect using the ELBG (Enhanced LBG) algorithm.
20068
20069 For each input image, the filter will compute the optimal mapping from
20070 the input to the output given the codebook length, that is the number
20071 of distinct output colors.
20072
20073 This filter accepts the following options.
20074
20075 codebook_length, l
20076 Set codebook length. The value must be a positive integer, and
20077 represents the number of distinct output colors. Default value is
20078 256.
20079
20080 nb_steps, n
20081 Set the maximum number of iterations to apply for computing the
20082 optimal mapping. The higher the value the better the result and the
20083 higher the computation time. Default value is 1.
20084
20085 seed, s
20086 Set a random seed, must be an integer included between 0 and
20087 UINT32_MAX. If not specified, or if explicitly set to -1, the
20088 filter will try to use a good random seed on a best effort basis.
20089
20090 pal8
20091 Set pal8 output pixel format. This option does not work with
20092 codebook length greater than 256. Default is disabled.
20093
20094 use_alpha
20095 Include alpha values in the quantization calculation. Allows
20096 creating palettized output images (e.g. PNG8) with multiple alpha
20097 smooth blending.
20098
20099 entropy
20100 Measure graylevel entropy in histogram of color channels of video
20101 frames.
20102
20103 It accepts the following parameters:
20104
20105 mode
20106 Can be either normal or diff. Default is normal.
20107
20108 diff mode measures entropy of histogram delta values, absolute
20109 differences between neighbour histogram values.
20110
20111 epx
20112 Apply the EPX magnification filter which is designed for pixel art.
20113
20114 It accepts the following option:
20115
20116 n Set the scaling dimension: 2 for "2xEPX", 3 for "3xEPX". Default
20117 is 3.
20118
20119 eq
20120 Set brightness, contrast, saturation and approximate gamma adjustment.
20121
20122 The filter accepts the following options:
20123
20124 contrast
20125 Set the contrast expression. The value must be a float value in
20126 range "-1000.0" to 1000.0. The default value is "1".
20127
20128 brightness
20129 Set the brightness expression. The value must be a float value in
20130 range "-1.0" to 1.0. The default value is "0".
20131
20132 saturation
20133 Set the saturation expression. The value must be a float in range
20134 0.0 to 3.0. The default value is "1".
20135
20136 gamma
20137 Set the gamma expression. The value must be a float in range 0.1 to
20138 10.0. The default value is "1".
20139
20140 gamma_r
20141 Set the gamma expression for red. The value must be a float in
20142 range 0.1 to 10.0. The default value is "1".
20143
20144 gamma_g
20145 Set the gamma expression for green. The value must be a float in
20146 range 0.1 to 10.0. The default value is "1".
20147
20148 gamma_b
20149 Set the gamma expression for blue. The value must be a float in
20150 range 0.1 to 10.0. The default value is "1".
20151
20152 gamma_weight
20153 Set the gamma weight expression. It can be used to reduce the
20154 effect of a high gamma value on bright image areas, e.g. keep them
20155 from getting overamplified and just plain white. The value must be
20156 a float in range 0.0 to 1.0. A value of 0.0 turns the gamma
20157 correction all the way down while 1.0 leaves it at its full
20158 strength. Default is "1".
20159
20160 eval
20161 Set when the expressions for brightness, contrast, saturation and
20162 gamma expressions are evaluated.
20163
20164 It accepts the following values:
20165
20166 init
20167 only evaluate expressions once during the filter initialization
20168 or when a command is processed
20169
20170 frame
20171 evaluate expressions for each incoming frame
20172
20173 Default value is init.
20174
20175 The expressions accept the following parameters:
20176
20177 n frame count of the input frame starting from 0
20178
20179 pos byte position of the corresponding packet in the input file, NAN if
20180 unspecified
20181
20182 r frame rate of the input video, NAN if the input frame rate is
20183 unknown
20184
20185 t timestamp expressed in seconds, NAN if the input timestamp is
20186 unknown
20187
20188 Commands
20189
20190 The filter supports the following commands:
20191
20192 contrast
20193 Set the contrast expression.
20194
20195 brightness
20196 Set the brightness expression.
20197
20198 saturation
20199 Set the saturation expression.
20200
20201 gamma
20202 Set the gamma expression.
20203
20204 gamma_r
20205 Set the gamma_r expression.
20206
20207 gamma_g
20208 Set gamma_g expression.
20209
20210 gamma_b
20211 Set gamma_b expression.
20212
20213 gamma_weight
20214 Set gamma_weight expression.
20215
20216 The command accepts the same syntax of the corresponding option.
20217
20218 If the specified expression is not valid, it is kept at its current
20219 value.
20220
20221 erosion
20222 Apply erosion effect to the video.
20223
20224 This filter replaces the pixel by the local(3x3) minimum.
20225
20226 It accepts the following options:
20227
20228 threshold0
20229 threshold1
20230 threshold2
20231 threshold3
20232 Limit the maximum change for each plane, default is 65535. If 0,
20233 plane will remain unchanged.
20234
20235 coordinates
20236 Flag which specifies the pixel to refer to. Default is 255 i.e. all
20237 eight pixels are used.
20238
20239 Flags to local 3x3 coordinates maps like this:
20240
20241 1 2 3
20242 4 5
20243 6 7 8
20244
20245 Commands
20246
20247 This filter supports the all above options as commands.
20248
20249 estdif
20250 Deinterlace the input video ("estdif" stands for "Edge Slope Tracing
20251 Deinterlacing Filter").
20252
20253 Spatial only filter that uses edge slope tracing algorithm to
20254 interpolate missing lines. It accepts the following parameters:
20255
20256 mode
20257 The interlacing mode to adopt. It accepts one of the following
20258 values:
20259
20260 frame
20261 Output one frame for each frame.
20262
20263 field
20264 Output one frame for each field.
20265
20266 The default value is "field".
20267
20268 parity
20269 The picture field parity assumed for the input interlaced video. It
20270 accepts one of the following values:
20271
20272 tff Assume the top field is first.
20273
20274 bff Assume the bottom field is first.
20275
20276 auto
20277 Enable automatic detection of field parity.
20278
20279 The default value is "auto". If the interlacing is unknown or the
20280 decoder does not export this information, top field first will be
20281 assumed.
20282
20283 deint
20284 Specify which frames to deinterlace. Accepts one of the following
20285 values:
20286
20287 all Deinterlace all frames.
20288
20289 interlaced
20290 Only deinterlace frames marked as interlaced.
20291
20292 The default value is "all".
20293
20294 rslope
20295 Specify the search radius for edge slope tracing. Default value is
20296 1. Allowed range is from 1 to 15.
20297
20298 redge
20299 Specify the search radius for best edge matching. Default value is
20300 2. Allowed range is from 0 to 15.
20301
20302 ecost
20303 Specify the edge cost for edge matching. Default value is 1.0.
20304 Allowed range is from 0 to 9.
20305
20306 mcost
20307 Specify the middle cost for edge matching. Default value is 0.5.
20308 Allowed range is from 0 to 1.
20309
20310 dcost
20311 Specify the distance cost for edge matching. Default value is 0.5.
20312 Allowed range is from 0 to 1.
20313
20314 interp
20315 Specify the interpolation used. Default is 4-point interpolation.
20316 It accepts one of the following values:
20317
20318 2p Two-point interpolation.
20319
20320 4p Four-point interpolation.
20321
20322 6p Six-point interpolation.
20323
20324 Commands
20325
20326 This filter supports same commands as options.
20327
20328 exposure
20329 Adjust exposure of the video stream.
20330
20331 The filter accepts the following options:
20332
20333 exposure
20334 Set the exposure correction in EV. Allowed range is from -3.0 to
20335 3.0 EV Default value is 0 EV.
20336
20337 black
20338 Set the black level correction. Allowed range is from -1.0 to 1.0.
20339 Default value is 0.
20340
20341 Commands
20342
20343 This filter supports same commands as options.
20344
20345 extractplanes
20346 Extract color channel components from input video stream into separate
20347 grayscale video streams.
20348
20349 The filter accepts the following option:
20350
20351 planes
20352 Set plane(s) to extract.
20353
20354 Available values for planes are:
20355
20356 y
20357 u
20358 v
20359 a
20360 r
20361 g
20362 b
20363
20364 Choosing planes not available in the input will result in an error.
20365 That means you cannot select "r", "g", "b" planes with "y", "u",
20366 "v" planes at same time.
20367
20368 Examples
20369
20370 • Extract luma, u and v color channel component from input video
20371 frame into 3 grayscale outputs:
20372
20373 ffmpeg -i video.avi -filter_complex 'extractplanes=y+u+v[y][u][v]' -map '[y]' y.avi -map '[u]' u.avi -map '[v]' v.avi
20374
20375 fade
20376 Apply a fade-in/out effect to the input video.
20377
20378 It accepts the following parameters:
20379
20380 type, t
20381 The effect type can be either "in" for a fade-in, or "out" for a
20382 fade-out effect. Default is "in".
20383
20384 start_frame, s
20385 Specify the number of the frame to start applying the fade effect
20386 at. Default is 0.
20387
20388 nb_frames, n
20389 The number of frames that the fade effect lasts. At the end of the
20390 fade-in effect, the output video will have the same intensity as
20391 the input video. At the end of the fade-out transition, the output
20392 video will be filled with the selected color. Default is 25.
20393
20394 alpha
20395 If set to 1, fade only alpha channel, if one exists on the input.
20396 Default value is 0.
20397
20398 start_time, st
20399 Specify the timestamp (in seconds) of the frame to start to apply
20400 the fade effect. If both start_frame and start_time are specified,
20401 the fade will start at whichever comes last. Default is 0.
20402
20403 duration, d
20404 The number of seconds for which the fade effect has to last. At the
20405 end of the fade-in effect the output video will have the same
20406 intensity as the input video, at the end of the fade-out transition
20407 the output video will be filled with the selected color. If both
20408 duration and nb_frames are specified, duration is used. Default is
20409 0 (nb_frames is used by default).
20410
20411 color, c
20412 Specify the color of the fade. Default is "black".
20413
20414 Examples
20415
20416 • Fade in the first 30 frames of video:
20417
20418 fade=in:0:30
20419
20420 The command above is equivalent to:
20421
20422 fade=t=in:s=0:n=30
20423
20424 • Fade out the last 45 frames of a 200-frame video:
20425
20426 fade=out:155:45
20427 fade=type=out:start_frame=155:nb_frames=45
20428
20429 • Fade in the first 25 frames and fade out the last 25 frames of a
20430 1000-frame video:
20431
20432 fade=in:0:25, fade=out:975:25
20433
20434 • Make the first 5 frames yellow, then fade in from frame 5-24:
20435
20436 fade=in:5:20:color=yellow
20437
20438 • Fade in alpha over first 25 frames of video:
20439
20440 fade=in:0:25:alpha=1
20441
20442 • Make the first 5.5 seconds black, then fade in for 0.5 seconds:
20443
20444 fade=t=in:st=5.5:d=0.5
20445
20446 feedback
20447 Apply feedback video filter.
20448
20449 This filter pass cropped input frames to 2nd output. From there it can
20450 be filtered with other video filters. After filter receives frame from
20451 2nd input, that frame is combined on top of original frame from 1st
20452 input and passed to 1st output.
20453
20454 The typical usage is filter only part of frame.
20455
20456 The filter accepts the following options:
20457
20458 x
20459 y Set the top left crop position.
20460
20461 w
20462 h Set the crop size.
20463
20464 Examples
20465
20466 • Blur only top left rectangular part of video frame size 100x100
20467 with gblur filter.
20468
20469 [in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]gblur=8[blurin]
20470
20471 • Draw black box on top left part of video frame of size 100x100 with
20472 drawbox filter.
20473
20474 [in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]drawbox=x=0:y=0:w=100:h=100:t=100[blurin]
20475
20476 fftdnoiz
20477 Denoise frames using 3D FFT (frequency domain filtering).
20478
20479 The filter accepts the following options:
20480
20481 sigma
20482 Set the noise sigma constant. This sets denoising strength.
20483 Default value is 1. Allowed range is from 0 to 30. Using very high
20484 sigma with low overlap may give blocking artifacts.
20485
20486 amount
20487 Set amount of denoising. By default all detected noise is reduced.
20488 Default value is 1. Allowed range is from 0 to 1.
20489
20490 block
20491 Set size of block in pixels, Default is 32, can be 8 to 256.
20492
20493 overlap
20494 Set block overlap. Default is 0.5. Allowed range is from 0.2 to
20495 0.8.
20496
20497 method
20498 Set denoising method. Default is "wiener", can also be "hard".
20499
20500 prev
20501 Set number of previous frames to use for denoising. By default is
20502 set to 0.
20503
20504 next
20505 Set number of next frames to to use for denoising. By default is
20506 set to 0.
20507
20508 planes
20509 Set planes which will be filtered, by default are all available
20510 filtered except alpha.
20511
20512 fftfilt
20513 Apply arbitrary expressions to samples in frequency domain
20514
20515 dc_Y
20516 Adjust the dc value (gain) of the luma plane of the image. The
20517 filter accepts an integer value in range 0 to 1000. The default
20518 value is set to 0.
20519
20520 dc_U
20521 Adjust the dc value (gain) of the 1st chroma plane of the image.
20522 The filter accepts an integer value in range 0 to 1000. The default
20523 value is set to 0.
20524
20525 dc_V
20526 Adjust the dc value (gain) of the 2nd chroma plane of the image.
20527 The filter accepts an integer value in range 0 to 1000. The default
20528 value is set to 0.
20529
20530 weight_Y
20531 Set the frequency domain weight expression for the luma plane.
20532
20533 weight_U
20534 Set the frequency domain weight expression for the 1st chroma
20535 plane.
20536
20537 weight_V
20538 Set the frequency domain weight expression for the 2nd chroma
20539 plane.
20540
20541 eval
20542 Set when the expressions are evaluated.
20543
20544 It accepts the following values:
20545
20546 init
20547 Only evaluate expressions once during the filter
20548 initialization.
20549
20550 frame
20551 Evaluate expressions for each incoming frame.
20552
20553 Default value is init.
20554
20555 The filter accepts the following variables:
20556
20557 X
20558 Y The coordinates of the current sample.
20559
20560 W
20561 H The width and height of the image.
20562
20563 N The number of input frame, starting from 0.
20564
20565 WS
20566 HS The size of FFT array for horizontal and vertical processing.
20567
20568 Examples
20569
20570 • High-pass:
20571
20572 fftfilt=dc_Y=128:weight_Y='squish(1-(Y+X)/100)'
20573
20574 • Low-pass:
20575
20576 fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)'
20577
20578 • Sharpen:
20579
20580 fftfilt=dc_Y=0:weight_Y='1+squish(1-(Y+X)/100)'
20581
20582 • Blur:
20583
20584 fftfilt=dc_Y=0:weight_Y='exp(-4 * ((Y+X)/(W+H)))'
20585
20586 field
20587 Extract a single field from an interlaced image using stride arithmetic
20588 to avoid wasting CPU time. The output frames are marked as non-
20589 interlaced.
20590
20591 The filter accepts the following options:
20592
20593 type
20594 Specify whether to extract the top (if the value is 0 or "top") or
20595 the bottom field (if the value is 1 or "bottom").
20596
20597 fieldhint
20598 Create new frames by copying the top and bottom fields from surrounding
20599 frames supplied as numbers by the hint file.
20600
20601 hint
20602 Set file containing hints: absolute/relative frame numbers.
20603
20604 There must be one line for each frame in a clip. Each line must
20605 contain two numbers separated by the comma, optionally followed by
20606 "-" or "+". Numbers supplied on each line of file can not be out
20607 of [N-1,N+1] where N is current frame number for "absolute" mode or
20608 out of [-1, 1] range for "relative" mode. First number tells from
20609 which frame to pick up top field and second number tells from which
20610 frame to pick up bottom field.
20611
20612 If optionally followed by "+" output frame will be marked as
20613 interlaced, else if followed by "-" output frame will be marked as
20614 progressive, else it will be marked same as input frame. If
20615 optionally followed by "t" output frame will use only top field, or
20616 in case of "b" it will use only bottom field. If line starts with
20617 "#" or ";" that line is skipped.
20618
20619 mode
20620 Can be item "absolute" or "relative" or "pattern". Default is
20621 "absolute". The "pattern" mode is same as "relative" mode, except
20622 at last entry of file if there are more frames to process than
20623 "hint" file is seek back to start.
20624
20625 Example of first several lines of "hint" file for "relative" mode:
20626
20627 0,0 - # first frame
20628 1,0 - # second frame, use third's frame top field and second's frame bottom field
20629 1,0 - # third frame, use fourth's frame top field and third's frame bottom field
20630 1,0 -
20631 0,0 -
20632 0,0 -
20633 1,0 -
20634 1,0 -
20635 1,0 -
20636 0,0 -
20637 0,0 -
20638 1,0 -
20639 1,0 -
20640 1,0 -
20641 0,0 -
20642
20643 fieldmatch
20644 Field matching filter for inverse telecine. It is meant to reconstruct
20645 the progressive frames from a telecined stream. The filter does not
20646 drop duplicated frames, so to achieve a complete inverse telecine
20647 "fieldmatch" needs to be followed by a decimation filter such as
20648 decimate in the filtergraph.
20649
20650 The separation of the field matching and the decimation is notably
20651 motivated by the possibility of inserting a de-interlacing filter
20652 fallback between the two. If the source has mixed telecined and real
20653 interlaced content, "fieldmatch" will not be able to match fields for
20654 the interlaced parts. But these remaining combed frames will be marked
20655 as interlaced, and thus can be de-interlaced by a later filter such as
20656 yadif before decimation.
20657
20658 In addition to the various configuration options, "fieldmatch" can take
20659 an optional second stream, activated through the ppsrc option. If
20660 enabled, the frames reconstruction will be based on the fields and
20661 frames from this second stream. This allows the first input to be pre-
20662 processed in order to help the various algorithms of the filter, while
20663 keeping the output lossless (assuming the fields are matched properly).
20664 Typically, a field-aware denoiser, or brightness/contrast adjustments
20665 can help.
20666
20667 Note that this filter uses the same algorithms as TIVTC/TFM (AviSynth
20668 project) and VIVTC/VFM (VapourSynth project). The later is a light
20669 clone of TFM from which "fieldmatch" is based on. While the semantic
20670 and usage are very close, some behaviour and options names can differ.
20671
20672 The decimate filter currently only works for constant frame rate input.
20673 If your input has mixed telecined (30fps) and progressive content with
20674 a lower framerate like 24fps use the following filterchain to produce
20675 the necessary cfr stream:
20676 "dejudder,fps=30000/1001,fieldmatch,decimate".
20677
20678 The filter accepts the following options:
20679
20680 order
20681 Specify the assumed field order of the input stream. Available
20682 values are:
20683
20684 auto
20685 Auto detect parity (use FFmpeg's internal parity value).
20686
20687 bff Assume bottom field first.
20688
20689 tff Assume top field first.
20690
20691 Note that it is sometimes recommended not to trust the parity
20692 announced by the stream.
20693
20694 Default value is auto.
20695
20696 mode
20697 Set the matching mode or strategy to use. pc mode is the safest in
20698 the sense that it won't risk creating jerkiness due to duplicate
20699 frames when possible, but if there are bad edits or blended fields
20700 it will end up outputting combed frames when a good match might
20701 actually exist. On the other hand, pcn_ub mode is the most risky in
20702 terms of creating jerkiness, but will almost always find a good
20703 frame if there is one. The other values are all somewhere in
20704 between pc and pcn_ub in terms of risking jerkiness and creating
20705 duplicate frames versus finding good matches in sections with bad
20706 edits, orphaned fields, blended fields, etc.
20707
20708 More details about p/c/n/u/b are available in p/c/n/u/b meaning
20709 section.
20710
20711 Available values are:
20712
20713 pc 2-way matching (p/c)
20714
20715 pc_n
20716 2-way matching, and trying 3rd match if still combed (p/c + n)
20717
20718 pc_u
20719 2-way matching, and trying 3rd match (same order) if still
20720 combed (p/c + u)
20721
20722 pc_n_ub
20723 2-way matching, trying 3rd match if still combed, and trying
20724 4th/5th matches if still combed (p/c + n + u/b)
20725
20726 pcn 3-way matching (p/c/n)
20727
20728 pcn_ub
20729 3-way matching, and trying 4th/5th matches if all 3 of the
20730 original matches are detected as combed (p/c/n + u/b)
20731
20732 The parenthesis at the end indicate the matches that would be used
20733 for that mode assuming order=tff (and field on auto or top).
20734
20735 In terms of speed pc mode is by far the fastest and pcn_ub is the
20736 slowest.
20737
20738 Default value is pc_n.
20739
20740 ppsrc
20741 Mark the main input stream as a pre-processed input, and enable the
20742 secondary input stream as the clean source to pick the fields from.
20743 See the filter introduction for more details. It is similar to the
20744 clip2 feature from VFM/TFM.
20745
20746 Default value is 0 (disabled).
20747
20748 field
20749 Set the field to match from. It is recommended to set this to the
20750 same value as order unless you experience matching failures with
20751 that setting. In certain circumstances changing the field that is
20752 used to match from can have a large impact on matching performance.
20753 Available values are:
20754
20755 auto
20756 Automatic (same value as order).
20757
20758 bottom
20759 Match from the bottom field.
20760
20761 top Match from the top field.
20762
20763 Default value is auto.
20764
20765 mchroma
20766 Set whether or not chroma is included during the match comparisons.
20767 In most cases it is recommended to leave this enabled. You should
20768 set this to 0 only if your clip has bad chroma problems such as
20769 heavy rainbowing or other artifacts. Setting this to 0 could also
20770 be used to speed things up at the cost of some accuracy.
20771
20772 Default value is 1.
20773
20774 y0
20775 y1 These define an exclusion band which excludes the lines between y0
20776 and y1 from being included in the field matching decision. An
20777 exclusion band can be used to ignore subtitles, a logo, or other
20778 things that may interfere with the matching. y0 sets the starting
20779 scan line and y1 sets the ending line; all lines in between y0 and
20780 y1 (including y0 and y1) will be ignored. Setting y0 and y1 to the
20781 same value will disable the feature. y0 and y1 defaults to 0.
20782
20783 scthresh
20784 Set the scene change detection threshold as a percentage of maximum
20785 change on the luma plane. Good values are in the "[8.0, 14.0]"
20786 range. Scene change detection is only relevant in case
20787 combmatch=sc. The range for scthresh is "[0.0, 100.0]".
20788
20789 Default value is 12.0.
20790
20791 combmatch
20792 When combatch is not none, "fieldmatch" will take into account the
20793 combed scores of matches when deciding what match to use as the
20794 final match. Available values are:
20795
20796 none
20797 No final matching based on combed scores.
20798
20799 sc Combed scores are only used when a scene change is detected.
20800
20801 full
20802 Use combed scores all the time.
20803
20804 Default is sc.
20805
20806 combdbg
20807 Force "fieldmatch" to calculate the combed metrics for certain
20808 matches and print them. This setting is known as micout in TFM/VFM
20809 vocabulary. Available values are:
20810
20811 none
20812 No forced calculation.
20813
20814 pcn Force p/c/n calculations.
20815
20816 pcnub
20817 Force p/c/n/u/b calculations.
20818
20819 Default value is none.
20820
20821 cthresh
20822 This is the area combing threshold used for combed frame detection.
20823 This essentially controls how "strong" or "visible" combing must be
20824 to be detected. Larger values mean combing must be more visible
20825 and smaller values mean combing can be less visible or strong and
20826 still be detected. Valid settings are from "-1" (every pixel will
20827 be detected as combed) to 255 (no pixel will be detected as
20828 combed). This is basically a pixel difference value. A good range
20829 is "[8, 12]".
20830
20831 Default value is 9.
20832
20833 chroma
20834 Sets whether or not chroma is considered in the combed frame
20835 decision. Only disable this if your source has chroma problems
20836 (rainbowing, etc.) that are causing problems for the combed frame
20837 detection with chroma enabled. Actually, using chroma=0 is usually
20838 more reliable, except for the case where there is chroma only
20839 combing in the source.
20840
20841 Default value is 0.
20842
20843 blockx
20844 blocky
20845 Respectively set the x-axis and y-axis size of the window used
20846 during combed frame detection. This has to do with the size of the
20847 area in which combpel pixels are required to be detected as combed
20848 for a frame to be declared combed. See the combpel parameter
20849 description for more info. Possible values are any number that is
20850 a power of 2 starting at 4 and going up to 512.
20851
20852 Default value is 16.
20853
20854 combpel
20855 The number of combed pixels inside any of the blocky by blockx size
20856 blocks on the frame for the frame to be detected as combed. While
20857 cthresh controls how "visible" the combing must be, this setting
20858 controls "how much" combing there must be in any localized area (a
20859 window defined by the blockx and blocky settings) on the frame.
20860 Minimum value is 0 and maximum is "blocky x blockx" (at which point
20861 no frames will ever be detected as combed). This setting is known
20862 as MI in TFM/VFM vocabulary.
20863
20864 Default value is 80.
20865
20866 p/c/n/u/b meaning
20867
20868 p/c/n
20869
20870 We assume the following telecined stream:
20871
20872 Top fields: 1 2 2 3 4
20873 Bottom fields: 1 2 3 4 4
20874
20875 The numbers correspond to the progressive frame the fields relate to.
20876 Here, the first two frames are progressive, the 3rd and 4th are combed,
20877 and so on.
20878
20879 When "fieldmatch" is configured to run a matching from bottom
20880 (field=bottom) this is how this input stream get transformed:
20881
20882 Input stream:
20883 T 1 2 2 3 4
20884 B 1 2 3 4 4 <-- matching reference
20885
20886 Matches: c c n n c
20887
20888 Output stream:
20889 T 1 2 3 4 4
20890 B 1 2 3 4 4
20891
20892 As a result of the field matching, we can see that some frames get
20893 duplicated. To perform a complete inverse telecine, you need to rely
20894 on a decimation filter after this operation. See for instance the
20895 decimate filter.
20896
20897 The same operation now matching from top fields (field=top) looks like
20898 this:
20899
20900 Input stream:
20901 T 1 2 2 3 4 <-- matching reference
20902 B 1 2 3 4 4
20903
20904 Matches: c c p p c
20905
20906 Output stream:
20907 T 1 2 2 3 4
20908 B 1 2 2 3 4
20909
20910 In these examples, we can see what p, c and n mean; basically, they
20911 refer to the frame and field of the opposite parity:
20912
20913 *<p matches the field of the opposite parity in the previous frame>
20914 *<c matches the field of the opposite parity in the current frame>
20915 *<n matches the field of the opposite parity in the next frame>
20916
20917 u/b
20918
20919 The u and b matching are a bit special in the sense that they match
20920 from the opposite parity flag. In the following examples, we assume
20921 that we are currently matching the 2nd frame (Top:2, bottom:2).
20922 According to the match, a 'x' is placed above and below each matched
20923 fields.
20924
20925 With bottom matching (field=bottom):
20926
20927 Match: c p n b u
20928
20929 x x x x x
20930 Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
20931 Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
20932 x x x x x
20933
20934 Output frames:
20935 2 1 2 2 2
20936 2 2 2 1 3
20937
20938 With top matching (field=top):
20939
20940 Match: c p n b u
20941
20942 x x x x x
20943 Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
20944 Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
20945 x x x x x
20946
20947 Output frames:
20948 2 2 2 1 2
20949 2 1 3 2 2
20950
20951 Examples
20952
20953 Simple IVTC of a top field first telecined stream:
20954
20955 fieldmatch=order=tff:combmatch=none, decimate
20956
20957 Advanced IVTC, with fallback on yadif for still combed frames:
20958
20959 fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
20960
20961 fieldorder
20962 Transform the field order of the input video.
20963
20964 It accepts the following parameters:
20965
20966 order
20967 The output field order. Valid values are tff for top field first or
20968 bff for bottom field first.
20969
20970 The default value is tff.
20971
20972 The transformation is done by shifting the picture content up or down
20973 by one line, and filling the remaining line with appropriate picture
20974 content. This method is consistent with most broadcast field order
20975 converters.
20976
20977 If the input video is not flagged as being interlaced, or it is already
20978 flagged as being of the required output field order, then this filter
20979 does not alter the incoming video.
20980
20981 It is very useful when converting to or from PAL DV material, which is
20982 bottom field first.
20983
20984 For example:
20985
20986 ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
20987
20988 fifo, afifo
20989 Buffer input images and send them when they are requested.
20990
20991 It is mainly useful when auto-inserted by the libavfilter framework.
20992
20993 It does not take parameters.
20994
20995 fillborders
20996 Fill borders of the input video, without changing video stream
20997 dimensions. Sometimes video can have garbage at the four edges and you
20998 may not want to crop video input to keep size multiple of some number.
20999
21000 This filter accepts the following options:
21001
21002 left
21003 Number of pixels to fill from left border.
21004
21005 right
21006 Number of pixels to fill from right border.
21007
21008 top Number of pixels to fill from top border.
21009
21010 bottom
21011 Number of pixels to fill from bottom border.
21012
21013 mode
21014 Set fill mode.
21015
21016 It accepts the following values:
21017
21018 smear
21019 fill pixels using outermost pixels
21020
21021 mirror
21022 fill pixels using mirroring (half sample symmetric)
21023
21024 fixed
21025 fill pixels with constant value
21026
21027 reflect
21028 fill pixels using reflecting (whole sample symmetric)
21029
21030 wrap
21031 fill pixels using wrapping
21032
21033 fade
21034 fade pixels to constant value
21035
21036 margins
21037 fill pixels at top and bottom with weighted averages pixels
21038 near borders
21039
21040 Default is smear.
21041
21042 color
21043 Set color for pixels in fixed or fade mode. Default is black.
21044
21045 Commands
21046
21047 This filter supports same commands as options. The command accepts the
21048 same syntax of the corresponding option.
21049
21050 If the specified expression is not valid, it is kept at its current
21051 value.
21052
21053 find_rect
21054 Find a rectangular object
21055
21056 It accepts the following options:
21057
21058 object
21059 Filepath of the object image, needs to be in gray8.
21060
21061 threshold
21062 Detection threshold, default is 0.5.
21063
21064 mipmaps
21065 Number of mipmaps, default is 3.
21066
21067 xmin, ymin, xmax, ymax
21068 Specifies the rectangle in which to search.
21069
21070 discard
21071 Discard frames where object is not detected. Default is disabled.
21072
21073 Examples
21074
21075 • Cover a rectangular object by the supplied image of a given video
21076 using ffmpeg:
21077
21078 ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
21079
21080 floodfill
21081 Flood area with values of same pixel components with another values.
21082
21083 It accepts the following options:
21084
21085 x Set pixel x coordinate.
21086
21087 y Set pixel y coordinate.
21088
21089 s0 Set source #0 component value.
21090
21091 s1 Set source #1 component value.
21092
21093 s2 Set source #2 component value.
21094
21095 s3 Set source #3 component value.
21096
21097 d0 Set destination #0 component value.
21098
21099 d1 Set destination #1 component value.
21100
21101 d2 Set destination #2 component value.
21102
21103 d3 Set destination #3 component value.
21104
21105 format
21106 Convert the input video to one of the specified pixel formats.
21107 Libavfilter will try to pick one that is suitable as input to the next
21108 filter.
21109
21110 It accepts the following parameters:
21111
21112 pix_fmts
21113 A '|'-separated list of pixel format names, such as
21114 "pix_fmts=yuv420p|monow|rgb24".
21115
21116 Examples
21117
21118 • Convert the input video to the yuv420p format
21119
21120 format=pix_fmts=yuv420p
21121
21122 Convert the input video to any of the formats in the list
21123
21124 format=pix_fmts=yuv420p|yuv444p|yuv410p
21125
21126 fps
21127 Convert the video to specified constant frame rate by duplicating or
21128 dropping frames as necessary.
21129
21130 It accepts the following parameters:
21131
21132 fps The desired output frame rate. It accepts expressions containing
21133 the following constants:
21134
21135 source_fps
21136 The input's frame rate
21137
21138 ntsc
21139 NTSC frame rate of "30000/1001"
21140
21141 pal PAL frame rate of 25.0
21142
21143 film
21144 Film frame rate of 24.0
21145
21146 ntsc_film
21147 NTSC-film frame rate of "24000/1001"
21148
21149 The default is 25.
21150
21151 start_time
21152 Assume the first PTS should be the given value, in seconds. This
21153 allows for padding/trimming at the start of stream. By default, no
21154 assumption is made about the first frame's expected PTS, so no
21155 padding or trimming is done. For example, this could be set to 0
21156 to pad the beginning with duplicates of the first frame if a video
21157 stream starts after the audio stream or to trim any frames with a
21158 negative PTS.
21159
21160 round
21161 Timestamp (PTS) rounding method.
21162
21163 Possible values are:
21164
21165 zero
21166 round towards 0
21167
21168 inf round away from 0
21169
21170 down
21171 round towards -infinity
21172
21173 up round towards +infinity
21174
21175 near
21176 round to nearest
21177
21178 The default is "near".
21179
21180 eof_action
21181 Action performed when reading the last frame.
21182
21183 Possible values are:
21184
21185 round
21186 Use same timestamp rounding method as used for other frames.
21187
21188 pass
21189 Pass through last frame if input duration has not been reached
21190 yet.
21191
21192 The default is "round".
21193
21194 Alternatively, the options can be specified as a flat string:
21195 fps[:start_time[:round]].
21196
21197 See also the setpts filter.
21198
21199 Examples
21200
21201 • A typical usage in order to set the fps to 25:
21202
21203 fps=fps=25
21204
21205 • Sets the fps to 24, using abbreviation and rounding method to round
21206 to nearest:
21207
21208 fps=fps=film:round=near
21209
21210 framepack
21211 Pack two different video streams into a stereoscopic video, setting
21212 proper metadata on supported codecs. The two views should have the same
21213 size and framerate and processing will stop when the shorter video
21214 ends. Please note that you may conveniently adjust view properties with
21215 the scale and fps filters.
21216
21217 It accepts the following parameters:
21218
21219 format
21220 The desired packing format. Supported values are:
21221
21222 sbs The views are next to each other (default).
21223
21224 tab The views are on top of each other.
21225
21226 lines
21227 The views are packed by line.
21228
21229 columns
21230 The views are packed by column.
21231
21232 frameseq
21233 The views are temporally interleaved.
21234
21235 Some examples:
21236
21237 # Convert left and right views into a frame-sequential video
21238 ffmpeg -i LEFT -i RIGHT -filter_complex framepack=frameseq OUTPUT
21239
21240 # Convert views into a side-by-side video with the same output resolution as the input
21241 ffmpeg -i LEFT -i RIGHT -filter_complex [0:v]scale=w=iw/2[left],[1:v]scale=w=iw/2[right],[left][right]framepack=sbs OUTPUT
21242
21243 framerate
21244 Change the frame rate by interpolating new video output frames from the
21245 source frames.
21246
21247 This filter is not designed to function correctly with interlaced
21248 media. If you wish to change the frame rate of interlaced media then
21249 you are required to deinterlace before this filter and re-interlace
21250 after this filter.
21251
21252 A description of the accepted options follows.
21253
21254 fps Specify the output frames per second. This option can also be
21255 specified as a value alone. The default is 50.
21256
21257 interp_start
21258 Specify the start of a range where the output frame will be created
21259 as a linear interpolation of two frames. The range is [0-255], the
21260 default is 15.
21261
21262 interp_end
21263 Specify the end of a range where the output frame will be created
21264 as a linear interpolation of two frames. The range is [0-255], the
21265 default is 240.
21266
21267 scene
21268 Specify the level at which a scene change is detected as a value
21269 between 0 and 100 to indicate a new scene; a low value reflects a
21270 low probability for the current frame to introduce a new scene,
21271 while a higher value means the current frame is more likely to be
21272 one. The default is 8.2.
21273
21274 flags
21275 Specify flags influencing the filter process.
21276
21277 Available value for flags is:
21278
21279 scene_change_detect, scd
21280 Enable scene change detection using the value of the option
21281 scene. This flag is enabled by default.
21282
21283 framestep
21284 Select one frame every N-th frame.
21285
21286 This filter accepts the following option:
21287
21288 step
21289 Select frame after every "step" frames. Allowed values are
21290 positive integers higher than 0. Default value is 1.
21291
21292 freezedetect
21293 Detect frozen video.
21294
21295 This filter logs a message and sets frame metadata when it detects that
21296 the input video has no significant change in content during a specified
21297 duration. Video freeze detection calculates the mean average absolute
21298 difference of all the components of video frames and compares it to a
21299 noise floor.
21300
21301 The printed times and duration are expressed in seconds. The
21302 "lavfi.freezedetect.freeze_start" metadata key is set on the first
21303 frame whose timestamp equals or exceeds the detection duration and it
21304 contains the timestamp of the first frame of the freeze. The
21305 "lavfi.freezedetect.freeze_duration" and
21306 "lavfi.freezedetect.freeze_end" metadata keys are set on the first
21307 frame after the freeze.
21308
21309 The filter accepts the following options:
21310
21311 noise, n
21312 Set noise tolerance. Can be specified in dB (in case "dB" is
21313 appended to the specified value) or as a difference ratio between 0
21314 and 1. Default is -60dB, or 0.001.
21315
21316 duration, d
21317 Set freeze duration until notification (default is 2 seconds).
21318
21319 freezeframes
21320 Freeze video frames.
21321
21322 This filter freezes video frames using frame from 2nd input.
21323
21324 The filter accepts the following options:
21325
21326 first
21327 Set number of first frame from which to start freeze.
21328
21329 last
21330 Set number of last frame from which to end freeze.
21331
21332 replace
21333 Set number of frame from 2nd input which will be used instead of
21334 replaced frames.
21335
21336 frei0r
21337 Apply a frei0r effect to the input video.
21338
21339 To enable the compilation of this filter, you need to install the
21340 frei0r header and configure FFmpeg with "--enable-frei0r".
21341
21342 It accepts the following parameters:
21343
21344 filter_name
21345 The name of the frei0r effect to load. If the environment variable
21346 FREI0R_PATH is defined, the frei0r effect is searched for in each
21347 of the directories specified by the colon-separated list in
21348 FREI0R_PATH. Otherwise, the standard frei0r paths are searched, in
21349 this order: HOME/.frei0r-1/lib/, /usr/local/lib/frei0r-1/,
21350 /usr/lib/frei0r-1/.
21351
21352 filter_params
21353 A '|'-separated list of parameters to pass to the frei0r effect.
21354
21355 A frei0r effect parameter can be a boolean (its value is either "y" or
21356 "n"), a double, a color (specified as R/G/B, where R, G, and B are
21357 floating point numbers between 0.0 and 1.0, inclusive) or a color
21358 description as specified in the "Color" section in the ffmpeg-utils
21359 manual, a position (specified as X/Y, where X and Y are floating point
21360 numbers) and/or a string.
21361
21362 The number and types of parameters depend on the loaded effect. If an
21363 effect parameter is not specified, the default value is set.
21364
21365 Examples
21366
21367 • Apply the distort0r effect, setting the first two double
21368 parameters:
21369
21370 frei0r=filter_name=distort0r:filter_params=0.5|0.01
21371
21372 • Apply the colordistance effect, taking a color as the first
21373 parameter:
21374
21375 frei0r=colordistance:0.2/0.3/0.4
21376 frei0r=colordistance:violet
21377 frei0r=colordistance:0x112233
21378
21379 • Apply the perspective effect, specifying the top left and top right
21380 image positions:
21381
21382 frei0r=perspective:0.2/0.2|0.8/0.2
21383
21384 For more information, see <http://frei0r.dyne.org>
21385
21386 Commands
21387
21388 This filter supports the filter_params option as commands.
21389
21390 fspp
21391 Apply fast and simple postprocessing. It is a faster version of spp.
21392
21393 It splits (I)DCT into horizontal/vertical passes. Unlike the simple
21394 post- processing filter, one of them is performed once per block, not
21395 per pixel. This allows for much higher speed.
21396
21397 The filter accepts the following options:
21398
21399 quality
21400 Set quality. This option defines the number of levels for
21401 averaging. It accepts an integer in the range 4-5. Default value is
21402 4.
21403
21404 qp Force a constant quantization parameter. It accepts an integer in
21405 range 0-63. If not set, the filter will use the QP from the video
21406 stream (if available).
21407
21408 strength
21409 Set filter strength. It accepts an integer in range -15 to 32.
21410 Lower values mean more details but also more artifacts, while
21411 higher values make the image smoother but also blurrier. Default
21412 value is 0 X PSNR optimal.
21413
21414 use_bframe_qp
21415 Enable the use of the QP from the B-Frames if set to 1. Using this
21416 option may cause flicker since the B-Frames have often larger QP.
21417 Default is 0 (not enabled).
21418
21419 gblur
21420 Apply Gaussian blur filter.
21421
21422 The filter accepts the following options:
21423
21424 sigma
21425 Set horizontal sigma, standard deviation of Gaussian blur. Default
21426 is 0.5.
21427
21428 steps
21429 Set number of steps for Gaussian approximation. Default is 1.
21430
21431 planes
21432 Set which planes to filter. By default all planes are filtered.
21433
21434 sigmaV
21435 Set vertical sigma, if negative it will be same as "sigma".
21436 Default is "-1".
21437
21438 Commands
21439
21440 This filter supports same commands as options. The command accepts the
21441 same syntax of the corresponding option.
21442
21443 If the specified expression is not valid, it is kept at its current
21444 value.
21445
21446 geq
21447 Apply generic equation to each pixel.
21448
21449 The filter accepts the following options:
21450
21451 lum_expr, lum
21452 Set the luminance expression.
21453
21454 cb_expr, cb
21455 Set the chrominance blue expression.
21456
21457 cr_expr, cr
21458 Set the chrominance red expression.
21459
21460 alpha_expr, a
21461 Set the alpha expression.
21462
21463 red_expr, r
21464 Set the red expression.
21465
21466 green_expr, g
21467 Set the green expression.
21468
21469 blue_expr, b
21470 Set the blue expression.
21471
21472 The colorspace is selected according to the specified options. If one
21473 of the lum_expr, cb_expr, or cr_expr options is specified, the filter
21474 will automatically select a YCbCr colorspace. If one of the red_expr,
21475 green_expr, or blue_expr options is specified, it will select an RGB
21476 colorspace.
21477
21478 If one of the chrominance expression is not defined, it falls back on
21479 the other one. If no alpha expression is specified it will evaluate to
21480 opaque value. If none of chrominance expressions are specified, they
21481 will evaluate to the luminance expression.
21482
21483 The expressions can use the following variables and functions:
21484
21485 N The sequential number of the filtered frame, starting from 0.
21486
21487 X
21488 Y The coordinates of the current sample.
21489
21490 W
21491 H The width and height of the image.
21492
21493 SW
21494 SH Width and height scale depending on the currently filtered plane.
21495 It is the ratio between the corresponding luma plane number of
21496 pixels and the current plane ones. E.g. for YUV4:2:0 the values are
21497 "1,1" for the luma plane, and "0.5,0.5" for chroma planes.
21498
21499 T Time of the current frame, expressed in seconds.
21500
21501 p(x, y)
21502 Return the value of the pixel at location (x,y) of the current
21503 plane.
21504
21505 lum(x, y)
21506 Return the value of the pixel at location (x,y) of the luminance
21507 plane.
21508
21509 cb(x, y)
21510 Return the value of the pixel at location (x,y) of the blue-
21511 difference chroma plane. Return 0 if there is no such plane.
21512
21513 cr(x, y)
21514 Return the value of the pixel at location (x,y) of the red-
21515 difference chroma plane. Return 0 if there is no such plane.
21516
21517 r(x, y)
21518 g(x, y)
21519 b(x, y)
21520 Return the value of the pixel at location (x,y) of the
21521 red/green/blue component. Return 0 if there is no such component.
21522
21523 alpha(x, y)
21524 Return the value of the pixel at location (x,y) of the alpha plane.
21525 Return 0 if there is no such plane.
21526
21527 psum(x,y), lumsum(x, y), cbsum(x,y), crsum(x,y), rsum(x,y), gsum(x,y),
21528 bsum(x,y), alphasum(x,y)
21529 Sum of sample values in the rectangle from (0,0) to (x,y), this
21530 allows obtaining sums of samples within a rectangle. See the
21531 functions without the sum postfix.
21532
21533 interpolation
21534 Set one of interpolation methods:
21535
21536 nearest, n
21537 bilinear, b
21538
21539 Default is bilinear.
21540
21541 For functions, if x and y are outside the area, the value will be
21542 automatically clipped to the closer edge.
21543
21544 Please note that this filter can use multiple threads in which case
21545 each slice will have its own expression state. If you want to use only
21546 a single expression state because your expressions depend on previous
21547 state then you should limit the number of filter threads to 1.
21548
21549 Examples
21550
21551 • Flip the image horizontally:
21552
21553 geq=p(W-X\,Y)
21554
21555 • Generate a bidimensional sine wave, with angle "PI/3" and a
21556 wavelength of 100 pixels:
21557
21558 geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
21559
21560 • Generate a fancy enigmatic moving light:
21561
21562 nullsrc=s=256x256,geq=random(1)/hypot(X-cos(N*0.07)*W/2-W/2\,Y-sin(N*0.09)*H/2-H/2)^2*1000000*sin(N*0.02):128:128
21563
21564 • Generate a quick emboss effect:
21565
21566 format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
21567
21568 • Modify RGB components depending on pixel position:
21569
21570 geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
21571
21572 • Create a radial gradient that is the same size as the input (also
21573 see the vignette filter):
21574
21575 geq=lum=255*gauss((X/W-0.5)*3)*gauss((Y/H-0.5)*3)/gauss(0)/gauss(0),format=gray
21576
21577 gradfun
21578 Fix the banding artifacts that are sometimes introduced into nearly
21579 flat regions by truncation to 8-bit color depth. Interpolate the
21580 gradients that should go where the bands are, and dither them.
21581
21582 It is designed for playback only. Do not use it prior to lossy
21583 compression, because compression tends to lose the dither and bring
21584 back the bands.
21585
21586 It accepts the following parameters:
21587
21588 strength
21589 The maximum amount by which the filter will change any one pixel.
21590 This is also the threshold for detecting nearly flat regions.
21591 Acceptable values range from .51 to 64; the default value is 1.2.
21592 Out-of-range values will be clipped to the valid range.
21593
21594 radius
21595 The neighborhood to fit the gradient to. A larger radius makes for
21596 smoother gradients, but also prevents the filter from modifying the
21597 pixels near detailed regions. Acceptable values are 8-32; the
21598 default value is 16. Out-of-range values will be clipped to the
21599 valid range.
21600
21601 Alternatively, the options can be specified as a flat string:
21602 strength[:radius]
21603
21604 Examples
21605
21606 • Apply the filter with a 3.5 strength and radius of 8:
21607
21608 gradfun=3.5:8
21609
21610 • Specify radius, omitting the strength (which will fall-back to the
21611 default value):
21612
21613 gradfun=radius=8
21614
21615 graphmonitor
21616 Show various filtergraph stats.
21617
21618 With this filter one can debug complete filtergraph. Especially issues
21619 with links filling with queued frames.
21620
21621 The filter accepts the following options:
21622
21623 size, s
21624 Set video output size. Default is hd720.
21625
21626 opacity, o
21627 Set video opacity. Default is 0.9. Allowed range is from 0 to 1.
21628
21629 mode, m
21630 Set output mode, can be fulll or compact. In compact mode only
21631 filters with some queued frames have displayed stats.
21632
21633 flags, f
21634 Set flags which enable which stats are shown in video.
21635
21636 Available values for flags are:
21637
21638 queue
21639 Display number of queued frames in each link.
21640
21641 frame_count_in
21642 Display number of frames taken from filter.
21643
21644 frame_count_out
21645 Display number of frames given out from filter.
21646
21647 frame_count_delta
21648 Display delta number of frames between above two values.
21649
21650 pts Display current filtered frame pts.
21651
21652 pts_delta
21653 Display pts delta between current and previous frame.
21654
21655 time
21656 Display current filtered frame time.
21657
21658 time_delta
21659 Display time delta between current and previous frame.
21660
21661 timebase
21662 Display time base for filter link.
21663
21664 format
21665 Display used format for filter link.
21666
21667 size
21668 Display video size or number of audio channels in case of audio
21669 used by filter link.
21670
21671 rate
21672 Display video frame rate or sample rate in case of audio used
21673 by filter link.
21674
21675 eof Display link output status.
21676
21677 sample_count_in
21678 Display number of samples taken from filter.
21679
21680 sample_count_out
21681 Display number of samples given out from filter.
21682
21683 sample_count_delta
21684 Display delta number of samples between above two values.
21685
21686 rate, r
21687 Set upper limit for video rate of output stream, Default value is
21688 25. This guarantee that output video frame rate will not be higher
21689 than this value.
21690
21691 grayworld
21692 A color constancy filter that applies color correction based on the
21693 grayworld assumption
21694
21695 See:
21696 <https://www.researchgate.net/publication/275213614_A_New_Color_Correction_Method_for_Underwater_Imaging>
21697
21698 The algorithm uses linear light, so input data should be linearized
21699 beforehand (and possibly correctly tagged).
21700
21701 ffmpeg -i INPUT -vf zscale=transfer=linear,grayworld,zscale=transfer=bt709,format=yuv420p OUTPUT
21702
21703 greyedge
21704 A color constancy variation filter which estimates scene illumination
21705 via grey edge algorithm and corrects the scene colors accordingly.
21706
21707 See: <https://staff.science.uva.nl/th.gevers/pub/GeversTIP07.pdf>
21708
21709 The filter accepts the following options:
21710
21711 difford
21712 The order of differentiation to be applied on the scene. Must be
21713 chosen in the range [0,2] and default value is 1.
21714
21715 minknorm
21716 The Minkowski parameter to be used for calculating the Minkowski
21717 distance. Must be chosen in the range [0,20] and default value is
21718 1. Set to 0 for getting max value instead of calculating Minkowski
21719 distance.
21720
21721 sigma
21722 The standard deviation of Gaussian blur to be applied on the scene.
21723 Must be chosen in the range [0,1024.0] and default value = 1.
21724 floor( sigma * break_off_sigma(3) ) can't be equal to 0 if difford
21725 is greater than 0.
21726
21727 Examples
21728
21729 • Grey Edge:
21730
21731 greyedge=difford=1:minknorm=5:sigma=2
21732
21733 • Max Edge:
21734
21735 greyedge=difford=1:minknorm=0:sigma=2
21736
21737 guided
21738 Apply guided filter for edge-preserving smoothing, dehazing and so on.
21739
21740 The filter accepts the following options:
21741
21742 radius
21743 Set the box radius in pixels. Allowed range is 1 to 20. Default is
21744 3.
21745
21746 eps Set regularization parameter (with square). Allowed range is 0 to
21747 1. Default is 0.01.
21748
21749 mode
21750 Set filter mode. Can be "basic" or "fast". Default is "basic".
21751
21752 sub Set subsampling ratio for "fast" mode. Range is 2 to 64. Default
21753 is 4. No subsampling occurs in "basic" mode.
21754
21755 guidance
21756 Set guidance mode. Can be "off" or "on". Default is "off". If
21757 "off", single input is required. If "on", two inputs of the same
21758 resolution and pixel format are required. The second input serves
21759 as the guidance.
21760
21761 planes
21762 Set planes to filter. Default is first only.
21763
21764 Commands
21765
21766 This filter supports the all above options as commands.
21767
21768 Examples
21769
21770 • Edge-preserving smoothing with guided filter:
21771
21772 ffmpeg -i in.png -vf guided out.png
21773
21774 • Dehazing, structure-transferring filtering, detail enhancement with
21775 guided filter. For the generation of guidance image, refer to
21776 paper "Guided Image Filtering". See:
21777 <http://kaiminghe.com/publications/pami12guidedfilter.pdf>.
21778
21779 ffmpeg -i in.png -i guidance.png -filter_complex guided=guidance=on out.png
21780
21781 haldclut
21782 Apply a Hald CLUT to a video stream.
21783
21784 First input is the video stream to process, and second one is the Hald
21785 CLUT. The Hald CLUT input can be a simple picture or a complete video
21786 stream.
21787
21788 The filter accepts the following options:
21789
21790 clut
21791 Set which CLUT video frames will be processed from second input
21792 stream, can be first or all. Default is all.
21793
21794 shortest
21795 Force termination when the shortest input terminates. Default is 0.
21796
21797 repeatlast
21798 Continue applying the last CLUT after the end of the stream. A
21799 value of 0 disable the filter after the last frame of the CLUT is
21800 reached. Default is 1.
21801
21802 "haldclut" also has the same interpolation options as lut3d (both
21803 filters share the same internals).
21804
21805 This filter also supports the framesync options.
21806
21807 More information about the Hald CLUT can be found on Eskil Steenberg's
21808 website (Hald CLUT author) at
21809 <http://www.quelsolaar.com/technology/clut.html>.
21810
21811 Commands
21812
21813 This filter supports the "interp" option as commands.
21814
21815 Workflow examples
21816
21817 Hald CLUT video stream
21818
21819 Generate an identity Hald CLUT stream altered with various effects:
21820
21821 ffmpeg -f lavfi -i B<haldclutsrc>=8 -vf "hue=H=2*PI*t:s=sin(2*PI*t)+1, curves=cross_process" -t 10 -c:v ffv1 clut.nut
21822
21823 Note: make sure you use a lossless codec.
21824
21825 Then use it with "haldclut" to apply it on some random stream:
21826
21827 ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
21828
21829 The Hald CLUT will be applied to the 10 first seconds (duration of
21830 clut.nut), then the latest picture of that CLUT stream will be applied
21831 to the remaining frames of the "mandelbrot" stream.
21832
21833 Hald CLUT with preview
21834
21835 A Hald CLUT is supposed to be a squared image of "Level*Level*Level" by
21836 "Level*Level*Level" pixels. For a given Hald CLUT, FFmpeg will select
21837 the biggest possible square starting at the top left of the picture.
21838 The remaining padding pixels (bottom or right) will be ignored. This
21839 area can be used to add a preview of the Hald CLUT.
21840
21841 Typically, the following generated Hald CLUT will be supported by the
21842 "haldclut" filter:
21843
21844 ffmpeg -f lavfi -i B<haldclutsrc>=8 -vf "
21845 pad=iw+320 [padded_clut];
21846 smptebars=s=320x256, split [a][b];
21847 [padded_clut][a] overlay=W-320:h, curves=color_negative [main];
21848 [main][b] overlay=W-320" -frames:v 1 clut.png
21849
21850 It contains the original and a preview of the effect of the CLUT: SMPTE
21851 color bars are displayed on the right-top, and below the same color
21852 bars processed by the color changes.
21853
21854 Then, the effect of this Hald CLUT can be visualized with:
21855
21856 ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
21857
21858 hflip
21859 Flip the input video horizontally.
21860
21861 For example, to horizontally flip the input video with ffmpeg:
21862
21863 ffmpeg -i in.avi -vf "hflip" out.avi
21864
21865 histeq
21866 This filter applies a global color histogram equalization on a per-
21867 frame basis.
21868
21869 It can be used to correct video that has a compressed range of pixel
21870 intensities. The filter redistributes the pixel intensities to
21871 equalize their distribution across the intensity range. It may be
21872 viewed as an "automatically adjusting contrast filter". This filter is
21873 useful only for correcting degraded or poorly captured source video.
21874
21875 The filter accepts the following options:
21876
21877 strength
21878 Determine the amount of equalization to be applied. As the
21879 strength is reduced, the distribution of pixel intensities more-
21880 and-more approaches that of the input frame. The value must be a
21881 float number in the range [0,1] and defaults to 0.200.
21882
21883 intensity
21884 Set the maximum intensity that can generated and scale the output
21885 values appropriately. The strength should be set as desired and
21886 then the intensity can be limited if needed to avoid washing-out.
21887 The value must be a float number in the range [0,1] and defaults to
21888 0.210.
21889
21890 antibanding
21891 Set the antibanding level. If enabled the filter will randomly vary
21892 the luminance of output pixels by a small amount to avoid banding
21893 of the histogram. Possible values are "none", "weak" or "strong".
21894 It defaults to "none".
21895
21896 histogram
21897 Compute and draw a color distribution histogram for the input video.
21898
21899 The computed histogram is a representation of the color component
21900 distribution in an image.
21901
21902 Standard histogram displays the color components distribution in an
21903 image. Displays color graph for each color component. Shows
21904 distribution of the Y, U, V, A or R, G, B components, depending on
21905 input format, in the current frame. Below each graph a color component
21906 scale meter is shown.
21907
21908 The filter accepts the following options:
21909
21910 level_height
21911 Set height of level. Default value is 200. Allowed range is [50,
21912 2048].
21913
21914 scale_height
21915 Set height of color scale. Default value is 12. Allowed range is
21916 [0, 40].
21917
21918 display_mode
21919 Set display mode. It accepts the following values:
21920
21921 stack
21922 Per color component graphs are placed below each other.
21923
21924 parade
21925 Per color component graphs are placed side by side.
21926
21927 overlay
21928 Presents information identical to that in the "parade", except
21929 that the graphs representing color components are superimposed
21930 directly over one another.
21931
21932 Default is "stack".
21933
21934 levels_mode
21935 Set mode. Can be either "linear", or "logarithmic". Default is
21936 "linear".
21937
21938 components
21939 Set what color components to display. Default is 7.
21940
21941 fgopacity
21942 Set foreground opacity. Default is 0.7.
21943
21944 bgopacity
21945 Set background opacity. Default is 0.5.
21946
21947 colors_mode
21948 Set colors mode. It accepts the following values:
21949
21950 whiteonblack
21951 blackonwhite
21952 whiteongray
21953 blackongray
21954 coloronblack
21955 coloronwhite
21956 colorongray
21957 blackoncolor
21958 whiteoncolor
21959 grayoncolor
21960
21961 Default is "whiteonblack".
21962
21963 Examples
21964
21965 • Calculate and draw histogram:
21966
21967 ffplay -i input -vf histogram
21968
21969 hqdn3d
21970 This is a high precision/quality 3d denoise filter. It aims to reduce
21971 image noise, producing smooth images and making still images really
21972 still. It should enhance compressibility.
21973
21974 It accepts the following optional parameters:
21975
21976 luma_spatial
21977 A non-negative floating point number which specifies spatial luma
21978 strength. It defaults to 4.0.
21979
21980 chroma_spatial
21981 A non-negative floating point number which specifies spatial chroma
21982 strength. It defaults to 3.0*luma_spatial/4.0.
21983
21984 luma_tmp
21985 A floating point number which specifies luma temporal strength. It
21986 defaults to 6.0*luma_spatial/4.0.
21987
21988 chroma_tmp
21989 A floating point number which specifies chroma temporal strength.
21990 It defaults to luma_tmp*chroma_spatial/luma_spatial.
21991
21992 Commands
21993
21994 This filter supports same commands as options. The command accepts the
21995 same syntax of the corresponding option.
21996
21997 If the specified expression is not valid, it is kept at its current
21998 value.
21999
22000 hwdownload
22001 Download hardware frames to system memory.
22002
22003 The input must be in hardware frames, and the output a non-hardware
22004 format. Not all formats will be supported on the output - it may be
22005 necessary to insert an additional format filter immediately following
22006 in the graph to get the output in a supported format.
22007
22008 hwmap
22009 Map hardware frames to system memory or to another device.
22010
22011 This filter has several different modes of operation; which one is used
22012 depends on the input and output formats:
22013
22014 • Hardware frame input, normal frame output
22015
22016 Map the input frames to system memory and pass them to the output.
22017 If the original hardware frame is later required (for example,
22018 after overlaying something else on part of it), the hwmap filter
22019 can be used again in the next mode to retrieve it.
22020
22021 • Normal frame input, hardware frame output
22022
22023 If the input is actually a software-mapped hardware frame, then
22024 unmap it - that is, return the original hardware frame.
22025
22026 Otherwise, a device must be provided. Create new hardware surfaces
22027 on that device for the output, then map them back to the software
22028 format at the input and give those frames to the preceding filter.
22029 This will then act like the hwupload filter, but may be able to
22030 avoid an additional copy when the input is already in a compatible
22031 format.
22032
22033 • Hardware frame input and output
22034
22035 A device must be supplied for the output, either directly or with
22036 the derive_device option. The input and output devices must be of
22037 different types and compatible - the exact meaning of this is
22038 system-dependent, but typically it means that they must refer to
22039 the same underlying hardware context (for example, refer to the
22040 same graphics card).
22041
22042 If the input frames were originally created on the output device,
22043 then unmap to retrieve the original frames.
22044
22045 Otherwise, map the frames to the output device - create new
22046 hardware frames on the output corresponding to the frames on the
22047 input.
22048
22049 The following additional parameters are accepted:
22050
22051 mode
22052 Set the frame mapping mode. Some combination of:
22053
22054 read
22055 The mapped frame should be readable.
22056
22057 write
22058 The mapped frame should be writeable.
22059
22060 overwrite
22061 The mapping will always overwrite the entire frame.
22062
22063 This may improve performance in some cases, as the original
22064 contents of the frame need not be loaded.
22065
22066 direct
22067 The mapping must not involve any copying.
22068
22069 Indirect mappings to copies of frames are created in some cases
22070 where either direct mapping is not possible or it would have
22071 unexpected properties. Setting this flag ensures that the
22072 mapping is direct and will fail if that is not possible.
22073
22074 Defaults to read+write if not specified.
22075
22076 derive_device type
22077 Rather than using the device supplied at initialisation, instead
22078 derive a new device of type type from the device the input frames
22079 exist on.
22080
22081 reverse
22082 In a hardware to hardware mapping, map in reverse - create frames
22083 in the sink and map them back to the source. This may be necessary
22084 in some cases where a mapping in one direction is required but only
22085 the opposite direction is supported by the devices being used.
22086
22087 This option is dangerous - it may break the preceding filter in
22088 undefined ways if there are any additional constraints on that
22089 filter's output. Do not use it without fully understanding the
22090 implications of its use.
22091
22092 hwupload
22093 Upload system memory frames to hardware surfaces.
22094
22095 The device to upload to must be supplied when the filter is
22096 initialised. If using ffmpeg, select the appropriate device with the
22097 -filter_hw_device option or with the derive_device option. The input
22098 and output devices must be of different types and compatible - the
22099 exact meaning of this is system-dependent, but typically it means that
22100 they must refer to the same underlying hardware context (for example,
22101 refer to the same graphics card).
22102
22103 The following additional parameters are accepted:
22104
22105 derive_device type
22106 Rather than using the device supplied at initialisation, instead
22107 derive a new device of type type from the device the input frames
22108 exist on.
22109
22110 hwupload_cuda
22111 Upload system memory frames to a CUDA device.
22112
22113 It accepts the following optional parameters:
22114
22115 device
22116 The number of the CUDA device to use
22117
22118 hqx
22119 Apply a high-quality magnification filter designed for pixel art. This
22120 filter was originally created by Maxim Stepin.
22121
22122 It accepts the following option:
22123
22124 n Set the scaling dimension: 2 for "hq2x", 3 for "hq3x" and 4 for
22125 "hq4x". Default is 3.
22126
22127 hstack
22128 Stack input videos horizontally.
22129
22130 All streams must be of same pixel format and of same height.
22131
22132 Note that this filter is faster than using overlay and pad filter to
22133 create same output.
22134
22135 The filter accepts the following option:
22136
22137 inputs
22138 Set number of input streams. Default is 2.
22139
22140 shortest
22141 If set to 1, force the output to terminate when the shortest input
22142 terminates. Default value is 0.
22143
22144 hsvhold
22145 Turns a certain HSV range into gray values.
22146
22147 This filter measures color difference between set HSV color in options
22148 and ones measured in video stream. Depending on options, output colors
22149 can be changed to be gray or not.
22150
22151 The filter accepts the following options:
22152
22153 hue Set the hue value which will be used in color difference
22154 calculation. Allowed range is from -360 to 360. Default value is
22155 0.
22156
22157 sat Set the saturation value which will be used in color difference
22158 calculation. Allowed range is from -1 to 1. Default value is 0.
22159
22160 val Set the value which will be used in color difference calculation.
22161 Allowed range is from -1 to 1. Default value is 0.
22162
22163 similarity
22164 Set similarity percentage with the key color. Allowed range is
22165 from 0 to 1. Default value is 0.01.
22166
22167 0.00001 matches only the exact key color, while 1.0 matches
22168 everything.
22169
22170 blend
22171 Blend percentage. Allowed range is from 0 to 1. Default value is
22172 0.
22173
22174 0.0 makes pixels either fully gray, or not gray at all.
22175
22176 Higher values result in more gray pixels, with a higher gray pixel
22177 the more similar the pixels color is to the key color.
22178
22179 hsvkey
22180 Turns a certain HSV range into transparency.
22181
22182 This filter measures color difference between set HSV color in options
22183 and ones measured in video stream. Depending on options, output colors
22184 can be changed to transparent by adding alpha channel.
22185
22186 The filter accepts the following options:
22187
22188 hue Set the hue value which will be used in color difference
22189 calculation. Allowed range is from -360 to 360. Default value is
22190 0.
22191
22192 sat Set the saturation value which will be used in color difference
22193 calculation. Allowed range is from -1 to 1. Default value is 0.
22194
22195 val Set the value which will be used in color difference calculation.
22196 Allowed range is from -1 to 1. Default value is 0.
22197
22198 similarity
22199 Set similarity percentage with the key color. Allowed range is
22200 from 0 to 1. Default value is 0.01.
22201
22202 0.00001 matches only the exact key color, while 1.0 matches
22203 everything.
22204
22205 blend
22206 Blend percentage. Allowed range is from 0 to 1. Default value is
22207 0.
22208
22209 0.0 makes pixels either fully transparent, or not transparent at
22210 all.
22211
22212 Higher values result in semi-transparent pixels, with a higher
22213 transparency the more similar the pixels color is to the key color.
22214
22215 hue
22216 Modify the hue and/or the saturation of the input.
22217
22218 It accepts the following parameters:
22219
22220 h Specify the hue angle as a number of degrees. It accepts an
22221 expression, and defaults to "0".
22222
22223 s Specify the saturation in the [-10,10] range. It accepts an
22224 expression and defaults to "1".
22225
22226 H Specify the hue angle as a number of radians. It accepts an
22227 expression, and defaults to "0".
22228
22229 b Specify the brightness in the [-10,10] range. It accepts an
22230 expression and defaults to "0".
22231
22232 h and H are mutually exclusive, and can't be specified at the same
22233 time.
22234
22235 The b, h, H and s option values are expressions containing the
22236 following constants:
22237
22238 n frame count of the input frame starting from 0
22239
22240 pts presentation timestamp of the input frame expressed in time base
22241 units
22242
22243 r frame rate of the input video, NAN if the input frame rate is
22244 unknown
22245
22246 t timestamp expressed in seconds, NAN if the input timestamp is
22247 unknown
22248
22249 tb time base of the input video
22250
22251 Examples
22252
22253 • Set the hue to 90 degrees and the saturation to 1.0:
22254
22255 hue=h=90:s=1
22256
22257 • Same command but expressing the hue in radians:
22258
22259 hue=H=PI/2:s=1
22260
22261 • Rotate hue and make the saturation swing between 0 and 2 over a
22262 period of 1 second:
22263
22264 hue="H=2*PI*t: s=sin(2*PI*t)+1"
22265
22266 • Apply a 3 seconds saturation fade-in effect starting at 0:
22267
22268 hue="s=min(t/3\,1)"
22269
22270 The general fade-in expression can be written as:
22271
22272 hue="s=min(0\, max((t-START)/DURATION\, 1))"
22273
22274 • Apply a 3 seconds saturation fade-out effect starting at 5 seconds:
22275
22276 hue="s=max(0\, min(1\, (8-t)/3))"
22277
22278 The general fade-out expression can be written as:
22279
22280 hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
22281
22282 Commands
22283
22284 This filter supports the following commands:
22285
22286 b
22287 s
22288 h
22289 H Modify the hue and/or the saturation and/or brightness of the input
22290 video. The command accepts the same syntax of the corresponding
22291 option.
22292
22293 If the specified expression is not valid, it is kept at its current
22294 value.
22295
22296 huesaturation
22297 Apply hue-saturation-intensity adjustments to input video stream.
22298
22299 This filter operates in RGB colorspace.
22300
22301 This filter accepts the following options:
22302
22303 hue Set the hue shift in degrees to apply. Default is 0. Allowed range
22304 is from -180 to 180.
22305
22306 saturation
22307 Set the saturation shift. Default is 0. Allowed range is from -1
22308 to 1.
22309
22310 intensity
22311 Set the intensity shift. Default is 0. Allowed range is from -1 to
22312 1.
22313
22314 colors
22315 Set which primary and complementary colors are going to be
22316 adjusted. This options is set by providing one or multiple values.
22317 This can select multiple colors at once. By default all colors are
22318 selected.
22319
22320 r Adjust reds.
22321
22322 y Adjust yellows.
22323
22324 g Adjust greens.
22325
22326 c Adjust cyans.
22327
22328 b Adjust blues.
22329
22330 m Adjust magentas.
22331
22332 a Adjust all colors.
22333
22334 strength
22335 Set strength of filtering. Allowed range is from 0 to 100. Default
22336 value is 1.
22337
22338 rw, gw, bw
22339 Set weight for each RGB component. Allowed range is from 0 to 1.
22340 By default is set to 0.333, 0.334, 0.333. Those options are used
22341 in saturation and lightess processing.
22342
22343 lightness
22344 Set preserving lightness, by default is disabled. Adjusting hues
22345 can change lightness from original RGB triplet, with this option
22346 enabled lightness is kept at same value.
22347
22348 hysteresis
22349 Grow first stream into second stream by connecting components. This
22350 makes it possible to build more robust edge masks.
22351
22352 This filter accepts the following options:
22353
22354 planes
22355 Set which planes will be processed as bitmap, unprocessed planes
22356 will be copied from first stream. By default value 0xf, all planes
22357 will be processed.
22358
22359 threshold
22360 Set threshold which is used in filtering. If pixel component value
22361 is higher than this value filter algorithm for connecting
22362 components is activated. By default value is 0.
22363
22364 The "hysteresis" filter also supports the framesync options.
22365
22366 iccdetect
22367 Detect the colorspace from an embedded ICC profile (if present), and
22368 update the frame's tags accordingly.
22369
22370 This filter accepts the following options:
22371
22372 force
22373 If true, the frame's existing colorspace tags will always be
22374 overridden by values detected from an ICC profile. Otherwise, they
22375 will only be assigned if they contain "unknown". Enabled by
22376 default.
22377
22378 iccgen
22379 Generate ICC profiles and attach them to frames.
22380
22381 This filter accepts the following options:
22382
22383 color_primaries
22384 color_trc
22385 Configure the colorspace that the ICC profile will be generated
22386 for. The default value of "auto" infers the value from the input
22387 frame's metadata, defaulting to BT.709/sRGB as appropriate.
22388
22389 See the setparams filter for a list of possible values, but note
22390 that "unknown" are not valid values for this filter.
22391
22392 force
22393 If true, an ICC profile will be generated even if it would
22394 overwrite an already existing ICC profile. Disabled by default.
22395
22396 identity
22397 Obtain the identity score between two input videos.
22398
22399 This filter takes two input videos.
22400
22401 Both input videos must have the same resolution and pixel format for
22402 this filter to work correctly. Also it assumes that both inputs have
22403 the same number of frames, which are compared one by one.
22404
22405 The obtained per component, average, min and max identity score is
22406 printed through the logging system.
22407
22408 The filter stores the calculated identity scores of each frame in frame
22409 metadata.
22410
22411 In the below example the input file main.mpg being processed is
22412 compared with the reference file ref.mpg.
22413
22414 ffmpeg -i main.mpg -i ref.mpg -lavfi identity -f null -
22415
22416 idet
22417 Detect video interlacing type.
22418
22419 This filter tries to detect if the input frames are interlaced,
22420 progressive, top or bottom field first. It will also try to detect
22421 fields that are repeated between adjacent frames (a sign of telecine).
22422
22423 Single frame detection considers only immediately adjacent frames when
22424 classifying each frame. Multiple frame detection incorporates the
22425 classification history of previous frames.
22426
22427 The filter will log these metadata values:
22428
22429 single.current_frame
22430 Detected type of current frame using single-frame detection. One
22431 of: ``tff'' (top field first), ``bff'' (bottom field first),
22432 ``progressive'', or ``undetermined''
22433
22434 single.tff
22435 Cumulative number of frames detected as top field first using
22436 single-frame detection.
22437
22438 multiple.tff
22439 Cumulative number of frames detected as top field first using
22440 multiple-frame detection.
22441
22442 single.bff
22443 Cumulative number of frames detected as bottom field first using
22444 single-frame detection.
22445
22446 multiple.current_frame
22447 Detected type of current frame using multiple-frame detection. One
22448 of: ``tff'' (top field first), ``bff'' (bottom field first),
22449 ``progressive'', or ``undetermined''
22450
22451 multiple.bff
22452 Cumulative number of frames detected as bottom field first using
22453 multiple-frame detection.
22454
22455 single.progressive
22456 Cumulative number of frames detected as progressive using single-
22457 frame detection.
22458
22459 multiple.progressive
22460 Cumulative number of frames detected as progressive using multiple-
22461 frame detection.
22462
22463 single.undetermined
22464 Cumulative number of frames that could not be classified using
22465 single-frame detection.
22466
22467 multiple.undetermined
22468 Cumulative number of frames that could not be classified using
22469 multiple-frame detection.
22470
22471 repeated.current_frame
22472 Which field in the current frame is repeated from the last. One of
22473 ``neither'', ``top'', or ``bottom''.
22474
22475 repeated.neither
22476 Cumulative number of frames with no repeated field.
22477
22478 repeated.top
22479 Cumulative number of frames with the top field repeated from the
22480 previous frame's top field.
22481
22482 repeated.bottom
22483 Cumulative number of frames with the bottom field repeated from the
22484 previous frame's bottom field.
22485
22486 The filter accepts the following options:
22487
22488 intl_thres
22489 Set interlacing threshold.
22490
22491 prog_thres
22492 Set progressive threshold.
22493
22494 rep_thres
22495 Threshold for repeated field detection.
22496
22497 half_life
22498 Number of frames after which a given frame's contribution to the
22499 statistics is halved (i.e., it contributes only 0.5 to its
22500 classification). The default of 0 means that all frames seen are
22501 given full weight of 1.0 forever.
22502
22503 analyze_interlaced_flag
22504 When this is not 0 then idet will use the specified number of
22505 frames to determine if the interlaced flag is accurate, it will not
22506 count undetermined frames. If the flag is found to be accurate it
22507 will be used without any further computations, if it is found to be
22508 inaccurate it will be cleared without any further computations.
22509 This allows inserting the idet filter as a low computational method
22510 to clean up the interlaced flag
22511
22512 il
22513 Deinterleave or interleave fields.
22514
22515 This filter allows one to process interlaced images fields without
22516 deinterlacing them. Deinterleaving splits the input frame into 2 fields
22517 (so called half pictures). Odd lines are moved to the top half of the
22518 output image, even lines to the bottom half. You can process (filter)
22519 them independently and then re-interleave them.
22520
22521 The filter accepts the following options:
22522
22523 luma_mode, l
22524 chroma_mode, c
22525 alpha_mode, a
22526 Available values for luma_mode, chroma_mode and alpha_mode are:
22527
22528 none
22529 Do nothing.
22530
22531 deinterleave, d
22532 Deinterleave fields, placing one above the other.
22533
22534 interleave, i
22535 Interleave fields. Reverse the effect of deinterleaving.
22536
22537 Default value is "none".
22538
22539 luma_swap, ls
22540 chroma_swap, cs
22541 alpha_swap, as
22542 Swap luma/chroma/alpha fields. Exchange even & odd lines. Default
22543 value is 0.
22544
22545 Commands
22546
22547 This filter supports the all above options as commands.
22548
22549 inflate
22550 Apply inflate effect to the video.
22551
22552 This filter replaces the pixel by the local(3x3) average by taking into
22553 account only values higher than the pixel.
22554
22555 It accepts the following options:
22556
22557 threshold0
22558 threshold1
22559 threshold2
22560 threshold3
22561 Limit the maximum change for each plane, default is 65535. If 0,
22562 plane will remain unchanged.
22563
22564 Commands
22565
22566 This filter supports the all above options as commands.
22567
22568 interlace
22569 Simple interlacing filter from progressive contents. This interleaves
22570 upper (or lower) lines from odd frames with lower (or upper) lines from
22571 even frames, halving the frame rate and preserving image height.
22572
22573 Original Original New Frame
22574 Frame 'j' Frame 'j+1' (tff)
22575 ========== =========== ==================
22576 Line 0 --------------------> Frame 'j' Line 0
22577 Line 1 Line 1 ----> Frame 'j+1' Line 1
22578 Line 2 ---------------------> Frame 'j' Line 2
22579 Line 3 Line 3 ----> Frame 'j+1' Line 3
22580 ... ... ...
22581 New Frame + 1 will be generated by Frame 'j+2' and Frame 'j+3' and so on
22582
22583 It accepts the following optional parameters:
22584
22585 scan
22586 This determines whether the interlaced frame is taken from the even
22587 (tff - default) or odd (bff) lines of the progressive frame.
22588
22589 lowpass
22590 Vertical lowpass filter to avoid twitter interlacing and reduce
22591 moire patterns.
22592
22593 0, off
22594 Disable vertical lowpass filter
22595
22596 1, linear
22597 Enable linear filter (default)
22598
22599 2, complex
22600 Enable complex filter. This will slightly less reduce twitter
22601 and moire but better retain detail and subjective sharpness
22602 impression.
22603
22604 kerndeint
22605 Deinterlace input video by applying Donald Graft's adaptive kernel
22606 deinterling. Work on interlaced parts of a video to produce progressive
22607 frames.
22608
22609 The description of the accepted parameters follows.
22610
22611 thresh
22612 Set the threshold which affects the filter's tolerance when
22613 determining if a pixel line must be processed. It must be an
22614 integer in the range [0,255] and defaults to 10. A value of 0 will
22615 result in applying the process on every pixels.
22616
22617 map Paint pixels exceeding the threshold value to white if set to 1.
22618 Default is 0.
22619
22620 order
22621 Set the fields order. Swap fields if set to 1, leave fields alone
22622 if 0. Default is 0.
22623
22624 sharp
22625 Enable additional sharpening if set to 1. Default is 0.
22626
22627 twoway
22628 Enable twoway sharpening if set to 1. Default is 0.
22629
22630 Examples
22631
22632 • Apply default values:
22633
22634 kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
22635
22636 • Enable additional sharpening:
22637
22638 kerndeint=sharp=1
22639
22640 • Paint processed pixels in white:
22641
22642 kerndeint=map=1
22643
22644 kirsch
22645 Apply kirsch operator to input video stream.
22646
22647 The filter accepts the following option:
22648
22649 planes
22650 Set which planes will be processed, unprocessed planes will be
22651 copied. By default value 0xf, all planes will be processed.
22652
22653 scale
22654 Set value which will be multiplied with filtered result.
22655
22656 delta
22657 Set value which will be added to filtered result.
22658
22659 Commands
22660
22661 This filter supports the all above options as commands.
22662
22663 lagfun
22664 Slowly update darker pixels.
22665
22666 This filter makes short flashes of light appear longer. This filter
22667 accepts the following options:
22668
22669 decay
22670 Set factor for decaying. Default is .95. Allowed range is from 0 to
22671 1.
22672
22673 planes
22674 Set which planes to filter. Default is all. Allowed range is from 0
22675 to 15.
22676
22677 Commands
22678
22679 This filter supports the all above options as commands.
22680
22681 lenscorrection
22682 Correct radial lens distortion
22683
22684 This filter can be used to correct for radial distortion as can result
22685 from the use of wide angle lenses, and thereby re-rectify the image. To
22686 find the right parameters one can use tools available for example as
22687 part of opencv or simply trial-and-error. To use opencv use the
22688 calibration sample (under samples/cpp) from the opencv sources and
22689 extract the k1 and k2 coefficients from the resulting matrix.
22690
22691 Note that effectively the same filter is available in the open-source
22692 tools Krita and Digikam from the KDE project.
22693
22694 In contrast to the vignette filter, which can also be used to
22695 compensate lens errors, this filter corrects the distortion of the
22696 image, whereas vignette corrects the brightness distribution, so you
22697 may want to use both filters together in certain cases, though you will
22698 have to take care of ordering, i.e. whether vignetting should be
22699 applied before or after lens correction.
22700
22701 Options
22702
22703 The filter accepts the following options:
22704
22705 cx Relative x-coordinate of the focal point of the image, and thereby
22706 the center of the distortion. This value has a range [0,1] and is
22707 expressed as fractions of the image width. Default is 0.5.
22708
22709 cy Relative y-coordinate of the focal point of the image, and thereby
22710 the center of the distortion. This value has a range [0,1] and is
22711 expressed as fractions of the image height. Default is 0.5.
22712
22713 k1 Coefficient of the quadratic correction term. This value has a
22714 range [-1,1]. 0 means no correction. Default is 0.
22715
22716 k2 Coefficient of the double quadratic correction term. This value has
22717 a range [-1,1]. 0 means no correction. Default is 0.
22718
22719 i Set interpolation type. Can be "nearest" or "bilinear". Default is
22720 "nearest".
22721
22722 fc Specify the color of the unmapped pixels. For the syntax of this
22723 option, check the "Color" section in the ffmpeg-utils manual.
22724 Default color is "black@0".
22725
22726 The formula that generates the correction is:
22727
22728 r_src = r_tgt * (1 + k1 * (r_tgt / r_0)^2 + k2 * (r_tgt / r_0)^4)
22729
22730 where r_0 is halve of the image diagonal and r_src and r_tgt are the
22731 distances from the focal point in the source and target images,
22732 respectively.
22733
22734 Commands
22735
22736 This filter supports the all above options as commands.
22737
22738 lensfun
22739 Apply lens correction via the lensfun library
22740 (<http://lensfun.sourceforge.net/>).
22741
22742 The "lensfun" filter requires the camera make, camera model, and lens
22743 model to apply the lens correction. The filter will load the lensfun
22744 database and query it to find the corresponding camera and lens entries
22745 in the database. As long as these entries can be found with the given
22746 options, the filter can perform corrections on frames. Note that
22747 incomplete strings will result in the filter choosing the best match
22748 with the given options, and the filter will output the chosen camera
22749 and lens models (logged with level "info"). You must provide the make,
22750 camera model, and lens model as they are required.
22751
22752 To obtain a list of available makes and models, leave out one or both
22753 of "make" and "model" options. The filter will send the full list to
22754 the log with level "INFO". The first column is the make and the second
22755 column is the model. To obtain a list of available lenses, set any
22756 values for make and model and leave out the "lens_model" option. The
22757 filter will send the full list of lenses in the log with level "INFO".
22758 The ffmpeg tool will exit after the list is printed.
22759
22760 The filter accepts the following options:
22761
22762 make
22763 The make of the camera (for example, "Canon"). This option is
22764 required.
22765
22766 model
22767 The model of the camera (for example, "Canon EOS 100D"). This
22768 option is required.
22769
22770 lens_model
22771 The model of the lens (for example, "Canon EF-S 18-55mm f/3.5-5.6
22772 IS STM"). This option is required.
22773
22774 db_path
22775 The full path to the lens database folder. If not set, the filter
22776 will attempt to load the database from the install path when the
22777 library was built. Default is unset.
22778
22779 mode
22780 The type of correction to apply. The following values are valid
22781 options:
22782
22783 vignetting
22784 Enables fixing lens vignetting.
22785
22786 geometry
22787 Enables fixing lens geometry. This is the default.
22788
22789 subpixel
22790 Enables fixing chromatic aberrations.
22791
22792 vig_geo
22793 Enables fixing lens vignetting and lens geometry.
22794
22795 vig_subpixel
22796 Enables fixing lens vignetting and chromatic aberrations.
22797
22798 distortion
22799 Enables fixing both lens geometry and chromatic aberrations.
22800
22801 all Enables all possible corrections.
22802
22803 focal_length
22804 The focal length of the image/video (zoom; expected constant for
22805 video). For example, a 18--55mm lens has focal length range of
22806 [18--55], so a value in that range should be chosen when using that
22807 lens. Default 18.
22808
22809 aperture
22810 The aperture of the image/video (expected constant for video). Note
22811 that aperture is only used for vignetting correction. Default 3.5.
22812
22813 focus_distance
22814 The focus distance of the image/video (expected constant for
22815 video). Note that focus distance is only used for vignetting and
22816 only slightly affects the vignetting correction process. If
22817 unknown, leave it at the default value (which is 1000).
22818
22819 scale
22820 The scale factor which is applied after transformation. After
22821 correction the video is no longer necessarily rectangular. This
22822 parameter controls how much of the resulting image is visible. The
22823 value 0 means that a value will be chosen automatically such that
22824 there is little or no unmapped area in the output image. 1.0 means
22825 that no additional scaling is done. Lower values may result in more
22826 of the corrected image being visible, while higher values may avoid
22827 unmapped areas in the output.
22828
22829 target_geometry
22830 The target geometry of the output image/video. The following values
22831 are valid options:
22832
22833 rectilinear (default)
22834 fisheye
22835 panoramic
22836 equirectangular
22837 fisheye_orthographic
22838 fisheye_stereographic
22839 fisheye_equisolid
22840 fisheye_thoby
22841 reverse
22842 Apply the reverse of image correction (instead of correcting
22843 distortion, apply it).
22844
22845 interpolation
22846 The type of interpolation used when correcting distortion. The
22847 following values are valid options:
22848
22849 nearest
22850 linear (default)
22851 lanczos
22852
22853 Examples
22854
22855 • Apply lens correction with make "Canon", camera model "Canon EOS
22856 100D", and lens model "Canon EF-S 18-55mm f/3.5-5.6 IS STM" with
22857 focal length of "18" and aperture of "8.0".
22858
22859 ffmpeg -i input.mov -vf lensfun=make=Canon:model="Canon EOS 100D":lens_model="Canon EF-S 18-55mm f/3.5-5.6 IS STM":focal_length=18:aperture=8 -c:v h264 -b:v 8000k output.mov
22860
22861 • Apply the same as before, but only for the first 5 seconds of
22862 video.
22863
22864 ffmpeg -i input.mov -vf lensfun=make=Canon:model="Canon EOS 100D":lens_model="Canon EF-S 18-55mm f/3.5-5.6 IS STM":focal_length=18:aperture=8:enable='lte(t\,5)' -c:v h264 -b:v 8000k output.mov
22865
22866 libplacebo
22867 Flexible GPU-accelerated processing filter based on libplacebo
22868 (<https://code.videolan.org/videolan/libplacebo>). Note that this
22869 filter currently only accepts Vulkan input frames.
22870
22871 Options
22872
22873 The options for this filter are divided into the following sections:
22874
22875 Output mode
22876
22877 These options control the overall output mode. By default, libplacebo
22878 will try to preserve the source colorimetry and size as best as it can,
22879 but it will apply any embedded film grain, dolby vision metadata or
22880 anamorphic SAR present in source frames.
22881
22882 w
22883 h Set the output video dimension expression. Default value is the
22884 input dimension.
22885
22886 Allows for the same expressions as the scale filter.
22887
22888 format
22889 Set the output format override. If unset (the default), frames will
22890 be output in the same format as the respective input frames.
22891 Otherwise, format conversion will be performed.
22892
22893 force_original_aspect_ratio
22894 force_divisible_by
22895 Work the same as the identical scale filter options.
22896
22897 normalize_sar
22898 If enabled (the default), output frames will always have a pixel
22899 aspect ratio of 1:1. If disabled, any aspect ratio mismatches,
22900 including those from e.g. anamorphic video sources, are forwarded
22901 to the output pixel aspect ratio.
22902
22903 pad_crop_ratio
22904 Specifies a ratio (between 0.0 and 1.0) between padding and
22905 cropping when the input aspect ratio does not match the output
22906 aspect ratio and normalize_sar is in effect. The default of 0.0
22907 always pads the content with black borders, while a value of 1.0
22908 always crops off parts of the content. Intermediate values are
22909 possible, leading to a mix of the two approaches.
22910
22911 colorspace
22912 color_primaries
22913 color_trc
22914 range
22915 Configure the colorspace that output frames will be delivered in.
22916 The default value of "auto" outputs frames in the same format as
22917 the input frames, leading to no change. For any other value,
22918 conversion will be performed.
22919
22920 See the setparams filter for a list of possible values.
22921
22922 apply_filmgrain
22923 Apply film grain (e.g. AV1 or H.274) if present in source frames,
22924 and strip it from the output. Enabled by default.
22925
22926 apply_dolbyvision
22927 Apply Dolby Vision RPU metadata if present in source frames, and
22928 strip it from the output. Enabled by default. Note that Dolby
22929 Vision will always output BT.2020+PQ, overriding the usual input
22930 frame metadata. These will also be picked as the values of "auto"
22931 for the respective frame output options.
22932
22933 Scaling
22934
22935 The options in this section control how libplacebo performs upscaling
22936 and (if necessary) downscaling. Note that libplacebo will always
22937 internally operate on 4:4:4 content, so any sub-sampled chroma formats
22938 such as "yuv420p" will necessarily be upsampled and downsampled as part
22939 of the rendering process. That means scaling might be in effect even if
22940 the source and destination resolution are the same.
22941
22942 upscaler
22943 downscaler
22944 Configure the filter kernel used for upscaling and downscaling. The
22945 respective defaults are "spline36" and "mitchell". For a full list
22946 of possible values, pass "help" to these options. The most
22947 important values are:
22948
22949 none
22950 Forces the use of built-in GPU texture sampling (typically
22951 bilinear). Extremely fast but poor quality, especially when
22952 downscaling.
22953
22954 bilinear
22955 Bilinear interpolation. Can generally be done for free on GPUs,
22956 except when doing so would lead to aliasing. Fast and low
22957 quality.
22958
22959 nearest
22960 Nearest-neighbour interpolation. Sharp but highly aliasing.
22961
22962 oversample
22963 Algorithm that looks visually similar to nearest-neighbour
22964 interpolation but tries to preserve pixel aspect ratio. Good
22965 for pixel art, since it results in minimal distortion of the
22966 artistic appearance.
22967
22968 lanczos
22969 Standard sinc-sinc interpolation kernel.
22970
22971 spline36
22972 Cubic spline approximation of lanczos. No difference in
22973 performance, but has very slightly less ringing.
22974
22975 ewa_lanczos
22976 Elliptically weighted average version of lanczos, based on a
22977 jinc-sinc kernel. This is also popularly referred to as just
22978 "Jinc scaling". Slow but very high quality.
22979
22980 gaussian
22981 Gaussian kernel. Has certain ideal mathematical properties, but
22982 subjectively very blurry.
22983
22984 mitchell
22985 Cubic BC spline with parameters recommended by Mitchell and
22986 Netravali. Very little ringing.
22987
22988 lut_entries
22989 Configures the size of scaler LUTs, ranging from 1 to 256. The
22990 default of 0 will pick libplacebo's internal default, typically 64.
22991
22992 antiringing
22993 Enables anti-ringing (for non-EWA filters). The value (between 0.0
22994 and 1.0) configures the strength of the anti-ringing algorithm. May
22995 increase aliasing if set too high. Disabled by default.
22996
22997 sigmoid
22998 Enable sigmoidal compression during upscaling. Reduces ringing
22999 slightly. Enabled by default.
23000
23001 Debanding
23002
23003 Libplacebo comes with a built-in debanding filter that is good at
23004 counteracting many common sources of banding and blocking. Turning this
23005 on is highly recommended whenever quality is desired.
23006
23007 deband
23008 Enable (fast) debanding algorithm. Disabled by default.
23009
23010 deband_iterations
23011 Number of deband iterations of the debanding algorithm. Each
23012 iteration is performed with progressively increased radius (and
23013 diminished threshold). Recommended values are in the range 1 to 4.
23014 Defaults to 1.
23015
23016 deband_threshold
23017 Debanding filter strength. Higher numbers lead to more aggressive
23018 debanding. Defaults to 4.0.
23019
23020 deband_radius
23021 Debanding filter radius. A higher radius is better for slow
23022 gradients, while a lower radius is better for steep gradients.
23023 Defaults to 16.0.
23024
23025 deband_grain
23026 Amount of extra output grain to add. Helps hide imperfections.
23027 Defaults to 6.0.
23028
23029 Color adjustment
23030
23031 A collection of subjective color controls. Not very rigorous, so the
23032 exact effect will vary somewhat depending on the input primaries and
23033 colorspace.
23034
23035 brightness
23036 Brightness boost, between "-1.0" and 1.0. Defaults to 0.0.
23037
23038 contrast
23039 Contrast gain, between 0.0 and 16.0. Defaults to 1.0.
23040
23041 saturation
23042 Saturation gain, between 0.0 and 16.0. Defaults to 1.0.
23043
23044 hue Hue shift in radians, between "-3.14" and 3.14. Defaults to 0.0.
23045 This will rotate the UV subvector, defaulting to BT.709
23046 coefficients for RGB inputs.
23047
23048 gamma
23049 Gamma adjustment, between 0.0 and 16.0. Defaults to 1.0.
23050
23051 cones
23052 Cone model to use for color blindness simulation. Accepts any
23053 combination of "l", "m" and "s". Here are some examples:
23054
23055 m Deuteranomaly / deuteranopia (affecting 3%-4% of the
23056 population)
23057
23058 l Protanomaly / protanopia (affecting 1%-2% of the population)
23059
23060 l+m Monochromacy (very rare)
23061
23062 l+m+s
23063 Achromatopsy (complete loss of daytime vision, extremely rare)
23064
23065 cone-strength
23066 Gain factor for the cones specified by "cones", between 0.0 and
23067 10.0. A value of 1.0 results in no change to color vision. A value
23068 of 0.0 (the default) simulates complete loss of those cones. Values
23069 above 1.0 result in exaggerating the differences between cones,
23070 which may help compensate for reduced color vision.
23071
23072 Peak detection
23073
23074 To help deal with sources that only have static HDR10 metadata (or no
23075 tagging whatsoever), libplacebo uses its own internal frame analysis
23076 compute shader to analyze source frames and adapt the tone mapping
23077 function in realtime. If this is too slow, or if exactly reproducible
23078 frame-perfect results are needed, it's recommended to turn this feature
23079 off.
23080
23081 peak_detect
23082 Enable HDR peak detection. Ignores static MaxCLL/MaxFALL values in
23083 favor of dynamic detection from the input. Note that the detected
23084 values do not get written back to the output frames, they merely
23085 guide the internal tone mapping process. Enabled by default.
23086
23087 smoothing_period
23088 Peak detection smoothing period, between 0.0 and 1000.0. Higher
23089 values result in peak detection becoming less responsive to changes
23090 in the input. Defaults to 100.0.
23091
23092 minimum_peak
23093 Lower bound on the detected peak (relative to SDR white), between
23094 0.0 and 100.0. Defaults to 1.0.
23095
23096 scene_threshold_low
23097 scene_threshold_high
23098 Lower and upper thresholds for scene change detection. Expressed in
23099 a logarithmic scale between 0.0 and 100.0. Default to 5.5 and 10.0,
23100 respectively. Setting either to a negative value disables this
23101 functionality.
23102
23103 overshoot
23104 Peak smoothing overshoot margin, between 0.0 and 1.0. Provides a
23105 safety margin to prevent clipping as a result of peak smoothing.
23106 Defaults to 0.05, corresponding to a margin of 5%.
23107
23108 Tone mapping
23109
23110 The options in this section control how libplacebo performs tone-
23111 mapping and gamut-mapping when dealing with mismatches between wide-
23112 gamut or HDR content. In general, libplacebo relies on accurate source
23113 tagging and mastering display gamut information to produce the best
23114 results.
23115
23116 intent
23117 Rendering intent to use when adapting between different primary
23118 color gamuts (after tone-mapping).
23119
23120 perceptual
23121 Perceptual gamut mapping. Currently equivalent to relative
23122 colorimetric.
23123
23124 relative
23125 Relative colorimetric. This is the default.
23126
23127 absolute
23128 Absolute colorimetric.
23129
23130 saturation
23131 Saturation mapping. Forcibly stretches the source gamut to the
23132 target gamut.
23133
23134 gamut_mode
23135 How to handle out-of-gamut colors that can occur as a result of
23136 colorimetric gamut mapping.
23137
23138 clip
23139 Do nothing, simply clip out-of-range colors to the RGB volume.
23140 This is the default.
23141
23142 warn
23143 Highlight out-of-gamut pixels (by coloring them pink).
23144
23145 darken
23146 Linearly reduces content brightness to preserves saturated
23147 details, followed by clipping the remaining out-of-gamut
23148 colors. As the name implies, this makes everything darker, but
23149 provides a good balance between preserving details and colors.
23150
23151 desaturate
23152 Hard-desaturates out-of-gamut colors towards white, while
23153 preserving the luminance. Has a tendency to shift colors.
23154
23155 tonemapping
23156 Tone-mapping algorithm to use. Available values are:
23157
23158 auto
23159 Automatic selection based on internal heuristics. This is the
23160 default.
23161
23162 clip
23163 Performs no tone-mapping, just clips out-of-range colors.
23164 Retains perfect color accuracy for in-range colors but
23165 completely destroys out-of-range information. Does not perform
23166 any black point adaptation. Not configurable.
23167
23168 bt.2390
23169 EETF from the ITU-R Report BT.2390, a hermite spline roll-off
23170 with linear segment. The knee point offset is configurable.
23171 Note that this parameter defaults to 1.0, rather than the value
23172 of 0.5 from the ITU-R spec.
23173
23174 bt.2446a
23175 EETF from ITU-R Report BT.2446, method A. Designed for well-
23176 mastered HDR sources. Can be used for both forward and inverse
23177 tone mapping. Not configurable.
23178
23179 spline
23180 Simple spline consisting of two polynomials, joined by a single
23181 pivot point. The parameter gives the pivot point (in PQ
23182 space), defaulting to 0.30. Can be used for both forward and
23183 inverse tone mapping.
23184
23185 reinhard
23186 Simple non-linear, global tone mapping algorithm. The parameter
23187 specifies the local contrast coefficient at the display peak.
23188 Essentially, a parameter of 0.5 implies that the reference
23189 white will be about half as bright as when clipping. Defaults
23190 to 0.5, which results in the simplest formulation of this
23191 function.
23192
23193 mobius
23194 Generalization of the reinhard tone mapping algorithm to
23195 support an additional linear slope near black. The tone mapping
23196 parameter indicates the trade-off between the linear section
23197 and the non-linear section. Essentially, for a given parameter
23198 x, every color value below x will be mapped linearly, while
23199 higher values get non-linearly tone-mapped. Values near 1.0
23200 make this curve behave like "clip", while values near 0.0 make
23201 this curve behave like "reinhard". The default value is 0.3,
23202 which provides a good balance between colorimetric accuracy and
23203 preserving out-of-gamut details.
23204
23205 hable
23206 Piece-wise, filmic tone-mapping algorithm developed by John
23207 Hable for use in Uncharted 2, inspired by a similar tone-
23208 mapping algorithm used by Kodak. Popularized by its use in
23209 video games with HDR rendering. Preserves both dark and bright
23210 details very well, but comes with the drawback of changing the
23211 average brightness quite significantly. This is sort of similar
23212 to "reinhard" with parameter 0.24.
23213
23214 gamma
23215 Fits a gamma (power) function to transfer between the source
23216 and target color spaces, effectively resulting in a perceptual
23217 hard-knee joining two roughly linear sections. This preserves
23218 details at all scales fairly accurately, but can result in an
23219 image with a muted or dull appearance. The parameter is used as
23220 the cutoff point, defaulting to 0.5.
23221
23222 linear
23223 Linearly stretches the input range to the output range, in PQ
23224 space. This will preserve all details accurately, but results
23225 in a significantly different average brightness. Can be used
23226 for inverse tone-mapping in addition to regular tone-mapping.
23227 The parameter can be used as an additional linear gain
23228 coefficient (defaulting to 1.0).
23229
23230 tonemapping_param
23231 For tunable tone mapping functions, this parameter can be used to
23232 fine-tune the curve behavior. Refer to the documentation of
23233 "tonemapping". The default value of 0.0 is replaced by the curve's
23234 preferred default setting.
23235
23236 tonemapping_mode
23237 This option determines how the tone mapping function specified by
23238 "tonemapping" is applied to the colors in a scene. Possible values
23239 are:
23240
23241 auto
23242 Automatic selection based on internal heuristics. This is the
23243 default.
23244
23245 rgb Apply the function per-channel in the RGB colorspace. Per-
23246 channel tone-mapping in RGB. Guarantees no clipping and heavily
23247 desaturates the output, but distorts the colors quite
23248 significantly. Very similar to the "Hollywood" look and feel.
23249
23250 max Tone-mapping is performed on the brightest component found in
23251 the signal. Good at preserving details in highlights, but has a
23252 tendency to crush blacks.
23253
23254 hybrid
23255 Tone-map per-channel for highlights and linearly (luma-based)
23256 for midtones/shadows, based on a fixed gamma 2.4 coefficient
23257 curve.
23258
23259 luma
23260 Tone-map linearly on the luma component (CIE Y), and adjust
23261 (desaturate) the chromaticities to compensate using a simple
23262 constant factor. This is essentially the mode used in ITU-R
23263 BT.2446 method A.
23264
23265 inverse_tonemapping
23266 If enabled, this filter will also attempt stretching SDR signals to
23267 fill HDR output color volumes. Disabled by default.
23268
23269 tonemapping_crosstalk
23270 Extra tone-mapping crosstalk factor, between 0.0 and 0.3. This can
23271 help reduce issues tone-mapping certain bright spectral colors.
23272 Defaults to 0.04.
23273
23274 tonemapping_lut_size
23275 Size of the tone-mapping LUT, between 2 and 1024. Defaults to 256.
23276 Note that this figure is squared when combined with "peak_detect".
23277
23278 Dithering
23279
23280 By default, libplacebo will dither whenever necessary, which includes
23281 rendering to any integer format below 16-bit precision. It's
23282 recommended to always leave this on, since not doing so may result in
23283 visible banding in the output, even if the "debanding" filter is
23284 enabled. If maximum performance is needed, use "ordered_fixed" instead
23285 of disabling dithering.
23286
23287 dithering
23288 Dithering method to use. Accepts the following values:
23289
23290 none
23291 Disables dithering completely. May result in visible banding.
23292
23293 blue
23294 Dither with pseudo-blue noise. This is the default.
23295
23296 ordered
23297 Tunable ordered dither pattern.
23298
23299 ordered_fixed
23300 Faster ordered dither with a fixed size of 6. Texture-less.
23301
23302 white
23303 Dither with white noise. Texture-less.
23304
23305 dither_lut_size
23306 Dither LUT size, as log base2 between 1 and 8. Defaults to 6,
23307 corresponding to a LUT size of "64x64".
23308
23309 dither_temporal
23310 Enables temporal dithering. Disabled by default.
23311
23312 Custom shaders
23313
23314 libplacebo supports a number of custom shaders based on the mpv .hook
23315 GLSL syntax. A collection of such shaders can be found here:
23316 <https://github.com/mpv-player/mpv/wiki/User-Scripts#user-shaders>
23317
23318 A full description of the mpv shader format is beyond the scope of this
23319 section, but a summary can be found here:
23320 <https://mpv.io/manual/master/#options-glsl-shader>
23321
23322 custom_shader_path
23323 Specifies a path to a custom shader file to load at runtime.
23324
23325 custom_shader_bin
23326 Specifies a complete custom shader as a raw string.
23327
23328 Debugging / performance
23329
23330 All of the options in this section default off. They may be of
23331 assistance when attempting to squeeze the maximum performance at the
23332 cost of quality.
23333
23334 skip_aa
23335 Disable anti-aliasing when downscaling.
23336
23337 polar_cutoff
23338 Truncate polar (EWA) scaler kernels below this absolute magnitude,
23339 between 0.0 and 1.0.
23340
23341 disable_linear
23342 Disable linear light scaling.
23343
23344 disable_builtin
23345 Disable built-in GPU sampling (forces LUT).
23346
23347 force_icc_lut
23348 Force the use of a full ICC 3DLUT for gamut mapping.
23349
23350 disable_fbos
23351 Forcibly disable FBOs, resulting in loss of almost all
23352 functionality, but offering the maximum possible speed.
23353
23354 Commands
23355
23356 This filter supports almost all of the above options as commands.
23357
23358 Examples
23359
23360 • Complete example for how to initialize the Vulkan device, upload
23361 frames to the GPU, perform filter conversion to yuv420p, and
23362 download frames back to the CPU for output. Note that in specific
23363 cases you can get around the need to perform format conversion by
23364 specifying the correct "format" filter option corresponding to the
23365 input frames.
23366
23367 ffmpeg -i $INPUT -init_hw_device vulkan -vf hwupload,libplacebo=format=yuv420p,hwdownload,format=yuv420p $OUTPUT
23368
23369 • Tone-map input to standard gamut BT.709 output:
23370
23371 libplacebo=colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv
23372
23373 • Rescale input to fit into standard 1080p, with high quality
23374 scaling:
23375
23376 libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos
23377
23378 • Convert input to standard sRGB JPEG:
23379
23380 libplacebo=format=yuv420p:colorspace=bt470bg:color_primaries=bt709:color_trc=iec61966-2-1:range=pc
23381
23382 • Use higher quality debanding settings:
23383
23384 libplacebo=deband=true:deband_iterations=3:deband_radius=8:deband_threshold=6
23385
23386 • Run this filter on the CPU, on systems with Mesa installed (and
23387 with the most expensive options disabled):
23388
23389 ffmpeg ... -init_hw_device vulkan:llvmpipe ... -vf libplacebo=upscaler=none:downscaler=none:peak_detect=false
23390
23391 • Suppress CPU-based AV1/H.274 film grain application in the decoder,
23392 in favor of doing it with this filter. Note that this is only a
23393 gain if the frames are either already on the GPU, or if you're
23394 using libplacebo for other purposes, since otherwise the VRAM
23395 roundtrip will more than offset any expected speedup.
23396
23397 ffmpeg -export_side_data +film_grain ... -vf libplacebo=apply_filmgrain=true
23398
23399 libvmaf
23400 Calulate the VMAF (Video Multi-Method Assessment Fusion) score for a
23401 reference/distorted pair of input videos.
23402
23403 The first input is the distorted video, and the second input is the
23404 reference video.
23405
23406 The obtained VMAF score is printed through the logging system.
23407
23408 It requires Netflix's vmaf library (libvmaf) as a pre-requisite. After
23409 installing the library it can be enabled using: "./configure
23410 --enable-libvmaf".
23411
23412 The filter has following options:
23413
23414 model
23415 A `|` delimited list of vmaf models. Each model can be configured
23416 with a number of parameters. Default value: "version=vmaf_v0.6.1"
23417
23418 model_path
23419 Deprecated, use model='path=...'.
23420
23421 enable_transform
23422 Deprecated, use model='enable_transform=true'.
23423
23424 phone_model
23425 Deprecated, use model='enable_transform=true'.
23426
23427 enable_conf_interval
23428 Deprecated, use model='enable_conf_interval=true'.
23429
23430 feature
23431 A `|` delimited list of features. Each feature can be configured
23432 with a number of parameters.
23433
23434 psnr
23435 Deprecated, use feature='name=psnr'.
23436
23437 ssim
23438 Deprecated, use feature='name=ssim'.
23439
23440 ms_ssim
23441 Deprecated, use feature='name=ms_ssim'.
23442
23443 log_path
23444 Set the file path to be used to store log files.
23445
23446 log_fmt
23447 Set the format of the log file (xml, json, csv, or sub).
23448
23449 n_threads
23450 Set number of threads to be used when initializing libvmaf.
23451 Default value: 0, no threads.
23452
23453 n_subsample
23454 Set frame subsampling interval to be used.
23455
23456 This filter also supports the framesync options.
23457
23458 Examples
23459
23460 • In the examples below, a distorted video distorted.mpg is compared
23461 with a reference file reference.mpg.
23462
23463 • Basic usage:
23464
23465 ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf=log_path=output.xml -f null -
23466
23467 • Example with multiple models:
23468
23469 ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='model=version=vmaf_v0.6.1\\:name=vmaf|version=vmaf_v0.6.1neg\\:name=vmaf_neg' -f null -
23470
23471 • Example with multiple addtional features:
23472
23473 ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='feature=name=psnr|name=ciede' -f null -
23474
23475 • Example with options and different containers:
23476
23477 ffmpeg -i distorted.mpg -i reference.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]libvmaf=log_fmt=json:log_path=output.json" -f null -
23478
23479 limitdiff
23480 Apply limited difference filter using second and optionally third video
23481 stream.
23482
23483 The filter accepts the following options:
23484
23485 threshold
23486 Set the threshold to use when allowing certain differences between
23487 video streams. Any absolute difference value lower or exact than
23488 this threshold will pick pixel components from first video stream.
23489
23490 elasticity
23491 Set the elasticity of soft thresholding when processing video
23492 streams. This value multiplied with first one sets second
23493 threshold. Any absolute difference value greater or exact than
23494 second threshold will pick pixel components from second video
23495 stream. For values between those two threshold linear interpolation
23496 between first and second video stream will be used.
23497
23498 reference
23499 Enable the reference (third) video stream processing. By default is
23500 disabled. If set, this video stream will be used for calculating
23501 absolute difference with first video stream.
23502
23503 planes
23504 Specify which planes will be processed. Defaults to all available.
23505
23506 Commands
23507
23508 This filter supports the all above options as commands except option
23509 reference.
23510
23511 limiter
23512 Limits the pixel components values to the specified range [min, max].
23513
23514 The filter accepts the following options:
23515
23516 min Lower bound. Defaults to the lowest allowed value for the input.
23517
23518 max Upper bound. Defaults to the highest allowed value for the input.
23519
23520 planes
23521 Specify which planes will be processed. Defaults to all available.
23522
23523 Commands
23524
23525 This filter supports the all above options as commands.
23526
23527 loop
23528 Loop video frames.
23529
23530 The filter accepts the following options:
23531
23532 loop
23533 Set the number of loops. Setting this value to -1 will result in
23534 infinite loops. Default is 0.
23535
23536 size
23537 Set maximal size in number of frames. Default is 0.
23538
23539 start
23540 Set first frame of loop. Default is 0.
23541
23542 Examples
23543
23544 • Loop single first frame infinitely:
23545
23546 loop=loop=-1:size=1:start=0
23547
23548 • Loop single first frame 10 times:
23549
23550 loop=loop=10:size=1:start=0
23551
23552 • Loop 10 first frames 5 times:
23553
23554 loop=loop=5:size=10:start=0
23555
23556 lut1d
23557 Apply a 1D LUT to an input video.
23558
23559 The filter accepts the following options:
23560
23561 file
23562 Set the 1D LUT file name.
23563
23564 Currently supported formats:
23565
23566 cube
23567 Iridas
23568
23569 csp cineSpace
23570
23571 interp
23572 Select interpolation mode.
23573
23574 Available values are:
23575
23576 nearest
23577 Use values from the nearest defined point.
23578
23579 linear
23580 Interpolate values using the linear interpolation.
23581
23582 cosine
23583 Interpolate values using the cosine interpolation.
23584
23585 cubic
23586 Interpolate values using the cubic interpolation.
23587
23588 spline
23589 Interpolate values using the spline interpolation.
23590
23591 Commands
23592
23593 This filter supports the all above options as commands.
23594
23595 lut3d
23596 Apply a 3D LUT to an input video.
23597
23598 The filter accepts the following options:
23599
23600 file
23601 Set the 3D LUT file name.
23602
23603 Currently supported formats:
23604
23605 3dl AfterEffects
23606
23607 cube
23608 Iridas
23609
23610 dat DaVinci
23611
23612 m3d Pandora
23613
23614 csp cineSpace
23615
23616 interp
23617 Select interpolation mode.
23618
23619 Available values are:
23620
23621 nearest
23622 Use values from the nearest defined point.
23623
23624 trilinear
23625 Interpolate values using the 8 points defining a cube.
23626
23627 tetrahedral
23628 Interpolate values using a tetrahedron.
23629
23630 pyramid
23631 Interpolate values using a pyramid.
23632
23633 prism
23634 Interpolate values using a prism.
23635
23636 Commands
23637
23638 This filter supports the "interp" option as commands.
23639
23640 lumakey
23641 Turn certain luma values into transparency.
23642
23643 The filter accepts the following options:
23644
23645 threshold
23646 Set the luma which will be used as base for transparency. Default
23647 value is 0.
23648
23649 tolerance
23650 Set the range of luma values to be keyed out. Default value is
23651 0.01.
23652
23653 softness
23654 Set the range of softness. Default value is 0. Use this to control
23655 gradual transition from zero to full transparency.
23656
23657 Commands
23658
23659 This filter supports same commands as options. The command accepts the
23660 same syntax of the corresponding option.
23661
23662 If the specified expression is not valid, it is kept at its current
23663 value.
23664
23665 lut, lutrgb, lutyuv
23666 Compute a look-up table for binding each pixel component input value to
23667 an output value, and apply it to the input video.
23668
23669 lutyuv applies a lookup table to a YUV input video, lutrgb to an RGB
23670 input video.
23671
23672 These filters accept the following parameters:
23673
23674 c0 set first pixel component expression
23675
23676 c1 set second pixel component expression
23677
23678 c2 set third pixel component expression
23679
23680 c3 set fourth pixel component expression, corresponds to the alpha
23681 component
23682
23683 r set red component expression
23684
23685 g set green component expression
23686
23687 b set blue component expression
23688
23689 a alpha component expression
23690
23691 y set Y/luminance component expression
23692
23693 u set U/Cb component expression
23694
23695 v set V/Cr component expression
23696
23697 Each of them specifies the expression to use for computing the lookup
23698 table for the corresponding pixel component values.
23699
23700 The exact component associated to each of the c* options depends on the
23701 format in input.
23702
23703 The lut filter requires either YUV or RGB pixel formats in input,
23704 lutrgb requires RGB pixel formats in input, and lutyuv requires YUV.
23705
23706 The expressions can contain the following constants and functions:
23707
23708 w
23709 h The input width and height.
23710
23711 val The input value for the pixel component.
23712
23713 clipval
23714 The input value, clipped to the minval-maxval range.
23715
23716 maxval
23717 The maximum value for the pixel component.
23718
23719 minval
23720 The minimum value for the pixel component.
23721
23722 negval
23723 The negated value for the pixel component value, clipped to the
23724 minval-maxval range; it corresponds to the expression
23725 "maxval-clipval+minval".
23726
23727 clip(val)
23728 The computed value in val, clipped to the minval-maxval range.
23729
23730 gammaval(gamma)
23731 The computed gamma correction value of the pixel component value,
23732 clipped to the minval-maxval range. It corresponds to the
23733 expression
23734 "pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+minval"
23735
23736 All expressions default to "clipval".
23737
23738 Commands
23739
23740 This filter supports same commands as options.
23741
23742 Examples
23743
23744 • Negate input video:
23745
23746 lutrgb="r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val"
23747 lutyuv="y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val"
23748
23749 The above is the same as:
23750
23751 lutrgb="r=negval:g=negval:b=negval"
23752 lutyuv="y=negval:u=negval:v=negval"
23753
23754 • Negate luminance:
23755
23756 lutyuv=y=negval
23757
23758 • Remove chroma components, turning the video into a graytone image:
23759
23760 lutyuv="u=128:v=128"
23761
23762 • Apply a luma burning effect:
23763
23764 lutyuv="y=2*val"
23765
23766 • Remove green and blue components:
23767
23768 lutrgb="g=0:b=0"
23769
23770 • Set a constant alpha channel value on input:
23771
23772 format=rgba,lutrgb=a="maxval-minval/2"
23773
23774 • Correct luminance gamma by a factor of 0.5:
23775
23776 lutyuv=y=gammaval(0.5)
23777
23778 • Discard least significant bits of luma:
23779
23780 lutyuv=y='bitand(val, 128+64+32)'
23781
23782 • Technicolor like effect:
23783
23784 lutyuv=u='(val-maxval/2)*2+maxval/2':v='(val-maxval/2)*2+maxval/2'
23785
23786 lut2, tlut2
23787 The "lut2" filter takes two input streams and outputs one stream.
23788
23789 The "tlut2" (time lut2) filter takes two consecutive frames from one
23790 single stream.
23791
23792 This filter accepts the following parameters:
23793
23794 c0 set first pixel component expression
23795
23796 c1 set second pixel component expression
23797
23798 c2 set third pixel component expression
23799
23800 c3 set fourth pixel component expression, corresponds to the alpha
23801 component
23802
23803 d set output bit depth, only available for "lut2" filter. By default
23804 is 0, which means bit depth is automatically picked from first
23805 input format.
23806
23807 The "lut2" filter also supports the framesync options.
23808
23809 Each of them specifies the expression to use for computing the lookup
23810 table for the corresponding pixel component values.
23811
23812 The exact component associated to each of the c* options depends on the
23813 format in inputs.
23814
23815 The expressions can contain the following constants:
23816
23817 w
23818 h The input width and height.
23819
23820 x The first input value for the pixel component.
23821
23822 y The second input value for the pixel component.
23823
23824 bdx The first input video bit depth.
23825
23826 bdy The second input video bit depth.
23827
23828 All expressions default to "x".
23829
23830 Commands
23831
23832 This filter supports the all above options as commands except option
23833 "d".
23834
23835 Examples
23836
23837 • Highlight differences between two RGB video streams:
23838
23839 lut2='ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,0,pow(2,bdx)-1)'
23840
23841 • Highlight differences between two YUV video streams:
23842
23843 lut2='ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,pow(2,bdx-1),pow(2,bdx)-1):ifnot(x-y,pow(2,bdx-1),pow(2,bdx)-1)'
23844
23845 • Show max difference between two video streams:
23846
23847 lut2='if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1))):if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1))):if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1)))'
23848
23849 maskedclamp
23850 Clamp the first input stream with the second input and third input
23851 stream.
23852
23853 Returns the value of first stream to be between second input stream -
23854 "undershoot" and third input stream + "overshoot".
23855
23856 This filter accepts the following options:
23857
23858 undershoot
23859 Default value is 0.
23860
23861 overshoot
23862 Default value is 0.
23863
23864 planes
23865 Set which planes will be processed as bitmap, unprocessed planes
23866 will be copied from first stream. By default value 0xf, all planes
23867 will be processed.
23868
23869 Commands
23870
23871 This filter supports the all above options as commands.
23872
23873 maskedmax
23874 Merge the second and third input stream into output stream using
23875 absolute differences between second input stream and first input stream
23876 and absolute difference between third input stream and first input
23877 stream. The picked value will be from second input stream if second
23878 absolute difference is greater than first one or from third input
23879 stream otherwise.
23880
23881 This filter accepts the following options:
23882
23883 planes
23884 Set which planes will be processed as bitmap, unprocessed planes
23885 will be copied from first stream. By default value 0xf, all planes
23886 will be processed.
23887
23888 Commands
23889
23890 This filter supports the all above options as commands.
23891
23892 maskedmerge
23893 Merge the first input stream with the second input stream using per
23894 pixel weights in the third input stream.
23895
23896 A value of 0 in the third stream pixel component means that pixel
23897 component from first stream is returned unchanged, while maximum value
23898 (eg. 255 for 8-bit videos) means that pixel component from second
23899 stream is returned unchanged. Intermediate values define the amount of
23900 merging between both input stream's pixel components.
23901
23902 This filter accepts the following options:
23903
23904 planes
23905 Set which planes will be processed as bitmap, unprocessed planes
23906 will be copied from first stream. By default value 0xf, all planes
23907 will be processed.
23908
23909 Commands
23910
23911 This filter supports the all above options as commands.
23912
23913 maskedmin
23914 Merge the second and third input stream into output stream using
23915 absolute differences between second input stream and first input stream
23916 and absolute difference between third input stream and first input
23917 stream. The picked value will be from second input stream if second
23918 absolute difference is less than first one or from third input stream
23919 otherwise.
23920
23921 This filter accepts the following options:
23922
23923 planes
23924 Set which planes will be processed as bitmap, unprocessed planes
23925 will be copied from first stream. By default value 0xf, all planes
23926 will be processed.
23927
23928 Commands
23929
23930 This filter supports the all above options as commands.
23931
23932 maskedthreshold
23933 Pick pixels comparing absolute difference of two video streams with
23934 fixed threshold.
23935
23936 If absolute difference between pixel component of first and second
23937 video stream is equal or lower than user supplied threshold than pixel
23938 component from first video stream is picked, otherwise pixel component
23939 from second video stream is picked.
23940
23941 This filter accepts the following options:
23942
23943 threshold
23944 Set threshold used when picking pixels from absolute difference
23945 from two input video streams.
23946
23947 planes
23948 Set which planes will be processed as bitmap, unprocessed planes
23949 will be copied from second stream. By default value 0xf, all
23950 planes will be processed.
23951
23952 Commands
23953
23954 This filter supports the all above options as commands.
23955
23956 maskfun
23957 Create mask from input video.
23958
23959 For example it is useful to create motion masks after "tblend" filter.
23960
23961 This filter accepts the following options:
23962
23963 low Set low threshold. Any pixel component lower or exact than this
23964 value will be set to 0.
23965
23966 high
23967 Set high threshold. Any pixel component higher than this value will
23968 be set to max value allowed for current pixel format.
23969
23970 planes
23971 Set planes to filter, by default all available planes are filtered.
23972
23973 fill
23974 Fill all frame pixels with this value.
23975
23976 sum Set max average pixel value for frame. If sum of all pixel
23977 components is higher that this average, output frame will be
23978 completely filled with value set by fill option. Typically useful
23979 for scene changes when used in combination with "tblend" filter.
23980
23981 Commands
23982
23983 This filter supports the all above options as commands.
23984
23985 mcdeint
23986 Apply motion-compensation deinterlacing.
23987
23988 It needs one field per frame as input and must thus be used together
23989 with yadif=1/3 or equivalent.
23990
23991 This filter is only available in ffmpeg version 4.4 or earlier.
23992
23993 This filter accepts the following options:
23994
23995 mode
23996 Set the deinterlacing mode.
23997
23998 It accepts one of the following values:
23999
24000 fast
24001 medium
24002 slow
24003 use iterative motion estimation
24004
24005 extra_slow
24006 like slow, but use multiple reference frames.
24007
24008 Default value is fast.
24009
24010 parity
24011 Set the picture field parity assumed for the input video. It must
24012 be one of the following values:
24013
24014 0, tff
24015 assume top field first
24016
24017 1, bff
24018 assume bottom field first
24019
24020 Default value is bff.
24021
24022 qp Set per-block quantization parameter (QP) used by the internal
24023 encoder.
24024
24025 Higher values should result in a smoother motion vector field but
24026 less optimal individual vectors. Default value is 1.
24027
24028 median
24029 Pick median pixel from certain rectangle defined by radius.
24030
24031 This filter accepts the following options:
24032
24033 radius
24034 Set horizontal radius size. Default value is 1. Allowed range is
24035 integer from 1 to 127.
24036
24037 planes
24038 Set which planes to process. Default is 15, which is all available
24039 planes.
24040
24041 radiusV
24042 Set vertical radius size. Default value is 0. Allowed range is
24043 integer from 0 to 127. If it is 0, value will be picked from
24044 horizontal "radius" option.
24045
24046 percentile
24047 Set median percentile. Default value is 0.5. Default value of 0.5
24048 will pick always median values, while 0 will pick minimum values,
24049 and 1 maximum values.
24050
24051 Commands
24052
24053 This filter supports same commands as options. The command accepts the
24054 same syntax of the corresponding option.
24055
24056 If the specified expression is not valid, it is kept at its current
24057 value.
24058
24059 mergeplanes
24060 Merge color channel components from several video streams.
24061
24062 The filter accepts up to 4 input streams, and merge selected input
24063 planes to the output video.
24064
24065 This filter accepts the following options:
24066
24067 mapping
24068 Set input to output plane mapping. Default is 0.
24069
24070 The mappings is specified as a bitmap. It should be specified as a
24071 hexadecimal number in the form 0xAa[Bb[Cc[Dd]]]. 'Aa' describes the
24072 mapping for the first plane of the output stream. 'A' sets the
24073 number of the input stream to use (from 0 to 3), and 'a' the plane
24074 number of the corresponding input to use (from 0 to 3). The rest of
24075 the mappings is similar, 'Bb' describes the mapping for the output
24076 stream second plane, 'Cc' describes the mapping for the output
24077 stream third plane and 'Dd' describes the mapping for the output
24078 stream fourth plane.
24079
24080 format
24081 Set output pixel format. Default is "yuva444p".
24082
24083 map0s
24084 map1s
24085 map2s
24086 map3s
24087 Set input to output stream mapping for output Nth plane. Default is
24088 0.
24089
24090 map0p
24091 map1p
24092 map2p
24093 map3p
24094 Set input to output plane mapping for output Nth plane. Default is
24095 0.
24096
24097 Examples
24098
24099 • Merge three gray video streams of same width and height into single
24100 video stream:
24101
24102 [a0][a1][a2]mergeplanes=0x001020:yuv444p
24103
24104 • Merge 1st yuv444p stream and 2nd gray video stream into yuva444p
24105 video stream:
24106
24107 [a0][a1]mergeplanes=0x00010210:yuva444p
24108
24109 • Swap Y and A plane in yuva444p stream:
24110
24111 format=yuva444p,mergeplanes=0x03010200:yuva444p
24112
24113 • Swap U and V plane in yuv420p stream:
24114
24115 format=yuv420p,mergeplanes=0x000201:yuv420p
24116
24117 • Cast a rgb24 clip to yuv444p:
24118
24119 format=rgb24,mergeplanes=0x000102:yuv444p
24120
24121 mestimate
24122 Estimate and export motion vectors using block matching algorithms.
24123 Motion vectors are stored in frame side data to be used by other
24124 filters.
24125
24126 This filter accepts the following options:
24127
24128 method
24129 Specify the motion estimation method. Accepts one of the following
24130 values:
24131
24132 esa Exhaustive search algorithm.
24133
24134 tss Three step search algorithm.
24135
24136 tdls
24137 Two dimensional logarithmic search algorithm.
24138
24139 ntss
24140 New three step search algorithm.
24141
24142 fss Four step search algorithm.
24143
24144 ds Diamond search algorithm.
24145
24146 hexbs
24147 Hexagon-based search algorithm.
24148
24149 epzs
24150 Enhanced predictive zonal search algorithm.
24151
24152 umh Uneven multi-hexagon search algorithm.
24153
24154 Default value is esa.
24155
24156 mb_size
24157 Macroblock size. Default 16.
24158
24159 search_param
24160 Search parameter. Default 7.
24161
24162 midequalizer
24163 Apply Midway Image Equalization effect using two video streams.
24164
24165 Midway Image Equalization adjusts a pair of images to have the same
24166 histogram, while maintaining their dynamics as much as possible. It's
24167 useful for e.g. matching exposures from a pair of stereo cameras.
24168
24169 This filter has two inputs and one output, which must be of same pixel
24170 format, but may be of different sizes. The output of filter is first
24171 input adjusted with midway histogram of both inputs.
24172
24173 This filter accepts the following option:
24174
24175 planes
24176 Set which planes to process. Default is 15, which is all available
24177 planes.
24178
24179 minterpolate
24180 Convert the video to specified frame rate using motion interpolation.
24181
24182 This filter accepts the following options:
24183
24184 fps Specify the output frame rate. This can be rational e.g.
24185 "60000/1001". Frames are dropped if fps is lower than source fps.
24186 Default 60.
24187
24188 mi_mode
24189 Motion interpolation mode. Following values are accepted:
24190
24191 dup Duplicate previous or next frame for interpolating new ones.
24192
24193 blend
24194 Blend source frames. Interpolated frame is mean of previous and
24195 next frames.
24196
24197 mci Motion compensated interpolation. Following options are
24198 effective when this mode is selected:
24199
24200 mc_mode
24201 Motion compensation mode. Following values are accepted:
24202
24203 obmc
24204 Overlapped block motion compensation.
24205
24206 aobmc
24207 Adaptive overlapped block motion compensation. Window
24208 weighting coefficients are controlled adaptively
24209 according to the reliabilities of the neighboring
24210 motion vectors to reduce oversmoothing.
24211
24212 Default mode is obmc.
24213
24214 me_mode
24215 Motion estimation mode. Following values are accepted:
24216
24217 bidir
24218 Bidirectional motion estimation. Motion vectors are
24219 estimated for each source frame in both forward and
24220 backward directions.
24221
24222 bilat
24223 Bilateral motion estimation. Motion vectors are
24224 estimated directly for interpolated frame.
24225
24226 Default mode is bilat.
24227
24228 me The algorithm to be used for motion estimation. Following
24229 values are accepted:
24230
24231 esa Exhaustive search algorithm.
24232
24233 tss Three step search algorithm.
24234
24235 tdls
24236 Two dimensional logarithmic search algorithm.
24237
24238 ntss
24239 New three step search algorithm.
24240
24241 fss Four step search algorithm.
24242
24243 ds Diamond search algorithm.
24244
24245 hexbs
24246 Hexagon-based search algorithm.
24247
24248 epzs
24249 Enhanced predictive zonal search algorithm.
24250
24251 umh Uneven multi-hexagon search algorithm.
24252
24253 Default algorithm is epzs.
24254
24255 mb_size
24256 Macroblock size. Default 16.
24257
24258 search_param
24259 Motion estimation search parameter. Default 32.
24260
24261 vsbmc
24262 Enable variable-size block motion compensation. Motion
24263 estimation is applied with smaller block sizes at object
24264 boundaries in order to make the them less blur. Default is
24265 0 (disabled).
24266
24267 scd Scene change detection method. Scene change leads motion vectors to
24268 be in random direction. Scene change detection replace interpolated
24269 frames by duplicate ones. May not be needed for other modes.
24270 Following values are accepted:
24271
24272 none
24273 Disable scene change detection.
24274
24275 fdiff
24276 Frame difference. Corresponding pixel values are compared and
24277 if it satisfies scd_threshold scene change is detected.
24278
24279 Default method is fdiff.
24280
24281 scd_threshold
24282 Scene change detection threshold. Default is 10..
24283
24284 mix
24285 Mix several video input streams into one video stream.
24286
24287 A description of the accepted options follows.
24288
24289 inputs
24290 The number of inputs. If unspecified, it defaults to 2.
24291
24292 weights
24293 Specify weight of each input video stream as sequence. Each weight
24294 is separated by space. If number of weights is smaller than number
24295 of frames last specified weight will be used for all remaining
24296 unset weights.
24297
24298 scale
24299 Specify scale, if it is set it will be multiplied with sum of each
24300 weight multiplied with pixel values to give final destination pixel
24301 value. By default scale is auto scaled to sum of weights.
24302
24303 planes
24304 Set which planes to filter. Default is all. Allowed range is from 0
24305 to 15.
24306
24307 duration
24308 Specify how end of stream is determined.
24309
24310 longest
24311 The duration of the longest input. (default)
24312
24313 shortest
24314 The duration of the shortest input.
24315
24316 first
24317 The duration of the first input.
24318
24319 Commands
24320
24321 This filter supports the following commands:
24322
24323 weights
24324 scale
24325 planes
24326 Syntax is same as option with same name.
24327
24328 monochrome
24329 Convert video to gray using custom color filter.
24330
24331 A description of the accepted options follows.
24332
24333 cb Set the chroma blue spot. Allowed range is from -1 to 1. Default
24334 value is 0.
24335
24336 cr Set the chroma red spot. Allowed range is from -1 to 1. Default
24337 value is 0.
24338
24339 size
24340 Set the color filter size. Allowed range is from .1 to 10. Default
24341 value is 1.
24342
24343 high
24344 Set the highlights strength. Allowed range is from 0 to 1. Default
24345 value is 0.
24346
24347 Commands
24348
24349 This filter supports the all above options as commands.
24350
24351 morpho
24352 This filter allows to apply main morphological grayscale transforms,
24353 erode and dilate with arbitrary structures set in second input stream.
24354
24355 Unlike naive implementation and much slower performance in erosion and
24356 dilation filters, when speed is critical "morpho" filter should be used
24357 instead.
24358
24359 A description of accepted options follows,
24360
24361 mode
24362 Set morphological transform to apply, can be:
24363
24364 erode
24365 dilate
24366 open
24367 close
24368 gradient
24369 tophat
24370 blackhat
24371
24372 Default is "erode".
24373
24374 planes
24375 Set planes to filter, by default all planes except alpha are
24376 filtered.
24377
24378 structure
24379 Set which structure video frames will be processed from second
24380 input stream, can be first or all. Default is all.
24381
24382 The "morpho" filter also supports the framesync options.
24383
24384 Commands
24385
24386 This filter supports same commands as options.
24387
24388 mpdecimate
24389 Drop frames that do not differ greatly from the previous frame in order
24390 to reduce frame rate.
24391
24392 The main use of this filter is for very-low-bitrate encoding (e.g.
24393 streaming over dialup modem), but it could in theory be used for fixing
24394 movies that were inverse-telecined incorrectly.
24395
24396 A description of the accepted options follows.
24397
24398 max Set the maximum number of consecutive frames which can be dropped
24399 (if positive), or the minimum interval between dropped frames (if
24400 negative). If the value is 0, the frame is dropped disregarding the
24401 number of previous sequentially dropped frames.
24402
24403 Default value is 0.
24404
24405 hi
24406 lo
24407 frac
24408 Set the dropping threshold values.
24409
24410 Values for hi and lo are for 8x8 pixel blocks and represent actual
24411 pixel value differences, so a threshold of 64 corresponds to 1 unit
24412 of difference for each pixel, or the same spread out differently
24413 over the block.
24414
24415 A frame is a candidate for dropping if no 8x8 blocks differ by more
24416 than a threshold of hi, and if no more than frac blocks (1 meaning
24417 the whole image) differ by more than a threshold of lo.
24418
24419 Default value for hi is 64*12, default value for lo is 64*5, and
24420 default value for frac is 0.33.
24421
24422 msad
24423 Obtain the MSAD (Mean Sum of Absolute Differences) between two input
24424 videos.
24425
24426 This filter takes two input videos.
24427
24428 Both input videos must have the same resolution and pixel format for
24429 this filter to work correctly. Also it assumes that both inputs have
24430 the same number of frames, which are compared one by one.
24431
24432 The obtained per component, average, min and max MSAD is printed
24433 through the logging system.
24434
24435 The filter stores the calculated MSAD of each frame in frame metadata.
24436
24437 In the below example the input file main.mpg being processed is
24438 compared with the reference file ref.mpg.
24439
24440 ffmpeg -i main.mpg -i ref.mpg -lavfi msad -f null -
24441
24442 multiply
24443 Multiply first video stream pixels values with second video stream
24444 pixels values.
24445
24446 The filter accepts the following options:
24447
24448 scale
24449 Set the scale applied to second video stream. By default is 1.
24450 Allowed range is from 0 to 9.
24451
24452 offset
24453 Set the offset applied to second video stream. By default is 0.5.
24454 Allowed range is from "-1" to 1.
24455
24456 planes
24457 Specify planes from input video stream that will be processed. By
24458 default all planes are processed.
24459
24460 Commands
24461
24462 This filter supports same commands as options.
24463
24464 negate
24465 Negate (invert) the input video.
24466
24467 It accepts the following option:
24468
24469 components
24470 Set components to negate.
24471
24472 Available values for components are:
24473
24474 y
24475 u
24476 v
24477 a
24478 r
24479 g
24480 b
24481 negate_alpha
24482 With value 1, it negates the alpha component, if present. Default
24483 value is 0.
24484
24485 Commands
24486
24487 This filter supports same commands as options.
24488
24489 nlmeans
24490 Denoise frames using Non-Local Means algorithm.
24491
24492 Each pixel is adjusted by looking for other pixels with similar
24493 contexts. This context similarity is defined by comparing their
24494 surrounding patches of size pxp. Patches are searched in an area of rxr
24495 around the pixel.
24496
24497 Note that the research area defines centers for patches, which means
24498 some patches will be made of pixels outside that research area.
24499
24500 The filter accepts the following options.
24501
24502 s Set denoising strength. Default is 1.0. Must be in range [1.0,
24503 30.0].
24504
24505 p Set patch size. Default is 7. Must be odd number in range [0, 99].
24506
24507 pc Same as p but for chroma planes.
24508
24509 The default value is 0 and means automatic.
24510
24511 r Set research size. Default is 15. Must be odd number in range [0,
24512 99].
24513
24514 rc Same as r but for chroma planes.
24515
24516 The default value is 0 and means automatic.
24517
24518 nnedi
24519 Deinterlace video using neural network edge directed interpolation.
24520
24521 This filter accepts the following options:
24522
24523 weights
24524 Mandatory option, without binary file filter can not work.
24525 Currently file can be found here:
24526 https://github.com/dubhater/vapoursynth-nnedi3/blob/master/src/nnedi3_weights.bin
24527
24528 deint
24529 Set which frames to deinterlace, by default it is "all". Can be
24530 "all" or "interlaced".
24531
24532 field
24533 Set mode of operation.
24534
24535 Can be one of the following:
24536
24537 af Use frame flags, both fields.
24538
24539 a Use frame flags, single field.
24540
24541 t Use top field only.
24542
24543 b Use bottom field only.
24544
24545 tf Use both fields, top first.
24546
24547 bf Use both fields, bottom first.
24548
24549 planes
24550 Set which planes to process, by default filter process all frames.
24551
24552 nsize
24553 Set size of local neighborhood around each pixel, used by the
24554 predictor neural network.
24555
24556 Can be one of the following:
24557
24558 s8x6
24559 s16x6
24560 s32x6
24561 s48x6
24562 s8x4
24563 s16x4
24564 s32x4
24565 nns Set the number of neurons in predictor neural network. Can be one
24566 of the following:
24567
24568 n16
24569 n32
24570 n64
24571 n128
24572 n256
24573 qual
24574 Controls the number of different neural network predictions that
24575 are blended together to compute the final output value. Can be
24576 "fast", default or "slow".
24577
24578 etype
24579 Set which set of weights to use in the predictor. Can be one of
24580 the following:
24581
24582 a, abs
24583 weights trained to minimize absolute error
24584
24585 s, mse
24586 weights trained to minimize squared error
24587
24588 pscrn
24589 Controls whether or not the prescreener neural network is used to
24590 decide which pixels should be processed by the predictor neural
24591 network and which can be handled by simple cubic interpolation.
24592 The prescreener is trained to know whether cubic interpolation will
24593 be sufficient for a pixel or whether it should be predicted by the
24594 predictor nn. The computational complexity of the prescreener nn
24595 is much less than that of the predictor nn. Since most pixels can
24596 be handled by cubic interpolation, using the prescreener generally
24597 results in much faster processing. The prescreener is pretty
24598 accurate, so the difference between using it and not using it is
24599 almost always unnoticeable.
24600
24601 Can be one of the following:
24602
24603 none
24604 original
24605 new
24606 new2
24607 new3
24608
24609 Default is "new".
24610
24611 Commands
24612
24613 This filter supports same commands as options, excluding weights
24614 option.
24615
24616 noformat
24617 Force libavfilter not to use any of the specified pixel formats for the
24618 input to the next filter.
24619
24620 It accepts the following parameters:
24621
24622 pix_fmts
24623 A '|'-separated list of pixel format names, such as
24624 pix_fmts=yuv420p|monow|rgb24".
24625
24626 Examples
24627
24628 • Force libavfilter to use a format different from yuv420p for the
24629 input to the vflip filter:
24630
24631 noformat=pix_fmts=yuv420p,vflip
24632
24633 • Convert the input video to any of the formats not contained in the
24634 list:
24635
24636 noformat=yuv420p|yuv444p|yuv410p
24637
24638 noise
24639 Add noise on video input frame.
24640
24641 The filter accepts the following options:
24642
24643 all_seed
24644 c0_seed
24645 c1_seed
24646 c2_seed
24647 c3_seed
24648 Set noise seed for specific pixel component or all pixel components
24649 in case of all_seed. Default value is 123457.
24650
24651 all_strength, alls
24652 c0_strength, c0s
24653 c1_strength, c1s
24654 c2_strength, c2s
24655 c3_strength, c3s
24656 Set noise strength for specific pixel component or all pixel
24657 components in case all_strength. Default value is 0. Allowed range
24658 is [0, 100].
24659
24660 all_flags, allf
24661 c0_flags, c0f
24662 c1_flags, c1f
24663 c2_flags, c2f
24664 c3_flags, c3f
24665 Set pixel component flags or set flags for all components if
24666 all_flags. Available values for component flags are:
24667
24668 a averaged temporal noise (smoother)
24669
24670 p mix random noise with a (semi)regular pattern
24671
24672 t temporal noise (noise pattern changes between frames)
24673
24674 u uniform noise (gaussian otherwise)
24675
24676 Examples
24677
24678 Add temporal and uniform noise to input video:
24679
24680 noise=alls=20:allf=t+u
24681
24682 normalize
24683 Normalize RGB video (aka histogram stretching, contrast stretching).
24684 See: https://en.wikipedia.org/wiki/Normalization_(image_processing)
24685
24686 For each channel of each frame, the filter computes the input range and
24687 maps it linearly to the user-specified output range. The output range
24688 defaults to the full dynamic range from pure black to pure white.
24689
24690 Temporal smoothing can be used on the input range to reduce flickering
24691 (rapid changes in brightness) caused when small dark or bright objects
24692 enter or leave the scene. This is similar to the auto-exposure
24693 (automatic gain control) on a video camera, and, like a video camera,
24694 it may cause a period of over- or under-exposure of the video.
24695
24696 The R,G,B channels can be normalized independently, which may cause
24697 some color shifting, or linked together as a single channel, which
24698 prevents color shifting. Linked normalization preserves hue.
24699 Independent normalization does not, so it can be used to remove some
24700 color casts. Independent and linked normalization can be combined in
24701 any ratio.
24702
24703 The normalize filter accepts the following options:
24704
24705 blackpt
24706 whitept
24707 Colors which define the output range. The minimum input value is
24708 mapped to the blackpt. The maximum input value is mapped to the
24709 whitept. The defaults are black and white respectively. Specifying
24710 white for blackpt and black for whitept will give color-inverted,
24711 normalized video. Shades of grey can be used to reduce the dynamic
24712 range (contrast). Specifying saturated colors here can create some
24713 interesting effects.
24714
24715 smoothing
24716 The number of previous frames to use for temporal smoothing. The
24717 input range of each channel is smoothed using a rolling average
24718 over the current frame and the smoothing previous frames. The
24719 default is 0 (no temporal smoothing).
24720
24721 independence
24722 Controls the ratio of independent (color shifting) channel
24723 normalization to linked (color preserving) normalization. 0.0 is
24724 fully linked, 1.0 is fully independent. Defaults to 1.0 (fully
24725 independent).
24726
24727 strength
24728 Overall strength of the filter. 1.0 is full strength. 0.0 is a
24729 rather expensive no-op. Defaults to 1.0 (full strength).
24730
24731 Commands
24732
24733 This filter supports same commands as options, excluding smoothing
24734 option. The command accepts the same syntax of the corresponding
24735 option.
24736
24737 If the specified expression is not valid, it is kept at its current
24738 value.
24739
24740 Examples
24741
24742 Stretch video contrast to use the full dynamic range, with no temporal
24743 smoothing; may flicker depending on the source content:
24744
24745 normalize=blackpt=black:whitept=white:smoothing=0
24746
24747 As above, but with 50 frames of temporal smoothing; flicker should be
24748 reduced, depending on the source content:
24749
24750 normalize=blackpt=black:whitept=white:smoothing=50
24751
24752 As above, but with hue-preserving linked channel normalization:
24753
24754 normalize=blackpt=black:whitept=white:smoothing=50:independence=0
24755
24756 As above, but with half strength:
24757
24758 normalize=blackpt=black:whitept=white:smoothing=50:independence=0:strength=0.5
24759
24760 Map the darkest input color to red, the brightest input color to cyan:
24761
24762 normalize=blackpt=red:whitept=cyan
24763
24764 null
24765 Pass the video source unchanged to the output.
24766
24767 ocr
24768 Optical Character Recognition
24769
24770 This filter uses Tesseract for optical character recognition. To enable
24771 compilation of this filter, you need to configure FFmpeg with
24772 "--enable-libtesseract".
24773
24774 It accepts the following options:
24775
24776 datapath
24777 Set datapath to tesseract data. Default is to use whatever was set
24778 at installation.
24779
24780 language
24781 Set language, default is "eng".
24782
24783 whitelist
24784 Set character whitelist.
24785
24786 blacklist
24787 Set character blacklist.
24788
24789 The filter exports recognized text as the frame metadata
24790 "lavfi.ocr.text". The filter exports confidence of recognized words as
24791 the frame metadata "lavfi.ocr.confidence".
24792
24793 ocv
24794 Apply a video transform using libopencv.
24795
24796 To enable this filter, install the libopencv library and headers and
24797 configure FFmpeg with "--enable-libopencv".
24798
24799 It accepts the following parameters:
24800
24801 filter_name
24802 The name of the libopencv filter to apply.
24803
24804 filter_params
24805 The parameters to pass to the libopencv filter. If not specified,
24806 the default values are assumed.
24807
24808 Refer to the official libopencv documentation for more precise
24809 information:
24810 <http://docs.opencv.org/master/modules/imgproc/doc/filtering.html>
24811
24812 Several libopencv filters are supported; see the following subsections.
24813
24814 dilate
24815
24816 Dilate an image by using a specific structuring element. It
24817 corresponds to the libopencv function "cvDilate".
24818
24819 It accepts the parameters: struct_el|nb_iterations.
24820
24821 struct_el represents a structuring element, and has the syntax:
24822 colsxrows+anchor_xxanchor_y/shape
24823
24824 cols and rows represent the number of columns and rows of the
24825 structuring element, anchor_x and anchor_y the anchor point, and shape
24826 the shape for the structuring element. shape must be "rect", "cross",
24827 "ellipse", or "custom".
24828
24829 If the value for shape is "custom", it must be followed by a string of
24830 the form "=filename". The file with name filename is assumed to
24831 represent a binary image, with each printable character corresponding
24832 to a bright pixel. When a custom shape is used, cols and rows are
24833 ignored, the number or columns and rows of the read file are assumed
24834 instead.
24835
24836 The default value for struct_el is "3x3+0x0/rect".
24837
24838 nb_iterations specifies the number of times the transform is applied to
24839 the image, and defaults to 1.
24840
24841 Some examples:
24842
24843 # Use the default values
24844 ocv=dilate
24845
24846 # Dilate using a structuring element with a 5x5 cross, iterating two times
24847 ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2
24848
24849 # Read the shape from the file diamond.shape, iterating two times.
24850 # The file diamond.shape may contain a pattern of characters like this
24851 # *
24852 # ***
24853 # *****
24854 # ***
24855 # *
24856 # The specified columns and rows are ignored
24857 # but the anchor point coordinates are not
24858 ocv=dilate:0x0+2x2/custom=diamond.shape|2
24859
24860 erode
24861
24862 Erode an image by using a specific structuring element. It corresponds
24863 to the libopencv function "cvErode".
24864
24865 It accepts the parameters: struct_el:nb_iterations, with the same
24866 syntax and semantics as the dilate filter.
24867
24868 smooth
24869
24870 Smooth the input video.
24871
24872 The filter takes the following parameters:
24873 type|param1|param2|param3|param4.
24874
24875 type is the type of smooth filter to apply, and must be one of the
24876 following values: "blur", "blur_no_scale", "median", "gaussian", or
24877 "bilateral". The default value is "gaussian".
24878
24879 The meaning of param1, param2, param3, and param4 depends on the smooth
24880 type. param1 and param2 accept integer positive values or 0. param3 and
24881 param4 accept floating point values.
24882
24883 The default value for param1 is 3. The default value for the other
24884 parameters is 0.
24885
24886 These parameters correspond to the parameters assigned to the libopencv
24887 function "cvSmooth".
24888
24889 oscilloscope
24890 2D Video Oscilloscope.
24891
24892 Useful to measure spatial impulse, step responses, chroma delays, etc.
24893
24894 It accepts the following parameters:
24895
24896 x Set scope center x position.
24897
24898 y Set scope center y position.
24899
24900 s Set scope size, relative to frame diagonal.
24901
24902 t Set scope tilt/rotation.
24903
24904 o Set trace opacity.
24905
24906 tx Set trace center x position.
24907
24908 ty Set trace center y position.
24909
24910 tw Set trace width, relative to width of frame.
24911
24912 th Set trace height, relative to height of frame.
24913
24914 c Set which components to trace. By default it traces first three
24915 components.
24916
24917 g Draw trace grid. By default is enabled.
24918
24919 st Draw some statistics. By default is enabled.
24920
24921 sc Draw scope. By default is enabled.
24922
24923 Commands
24924
24925 This filter supports same commands as options. The command accepts the
24926 same syntax of the corresponding option.
24927
24928 If the specified expression is not valid, it is kept at its current
24929 value.
24930
24931 Examples
24932
24933 • Inspect full first row of video frame.
24934
24935 oscilloscope=x=0.5:y=0:s=1
24936
24937 • Inspect full last row of video frame.
24938
24939 oscilloscope=x=0.5:y=1:s=1
24940
24941 • Inspect full 5th line of video frame of height 1080.
24942
24943 oscilloscope=x=0.5:y=5/1080:s=1
24944
24945 • Inspect full last column of video frame.
24946
24947 oscilloscope=x=1:y=0.5:s=1:t=1
24948
24949 overlay
24950 Overlay one video on top of another.
24951
24952 It takes two inputs and has one output. The first input is the "main"
24953 video on which the second input is overlaid.
24954
24955 It accepts the following parameters:
24956
24957 A description of the accepted options follows.
24958
24959 x
24960 y Set the expression for the x and y coordinates of the overlaid
24961 video on the main video. Default value is "0" for both expressions.
24962 In case the expression is invalid, it is set to a huge value
24963 (meaning that the overlay will not be displayed within the output
24964 visible area).
24965
24966 eof_action
24967 See framesync.
24968
24969 eval
24970 Set when the expressions for x, and y are evaluated.
24971
24972 It accepts the following values:
24973
24974 init
24975 only evaluate expressions once during the filter initialization
24976 or when a command is processed
24977
24978 frame
24979 evaluate expressions for each incoming frame
24980
24981 Default value is frame.
24982
24983 shortest
24984 See framesync.
24985
24986 format
24987 Set the format for the output video.
24988
24989 It accepts the following values:
24990
24991 yuv420
24992 force YUV420 output
24993
24994 yuv420p10
24995 force YUV420p10 output
24996
24997 yuv422
24998 force YUV422 output
24999
25000 yuv422p10
25001 force YUV422p10 output
25002
25003 yuv444
25004 force YUV444 output
25005
25006 rgb force packed RGB output
25007
25008 gbrp
25009 force planar RGB output
25010
25011 auto
25012 automatically pick format
25013
25014 Default value is yuv420.
25015
25016 repeatlast
25017 See framesync.
25018
25019 alpha
25020 Set format of alpha of the overlaid video, it can be straight or
25021 premultiplied. Default is straight.
25022
25023 The x, and y expressions can contain the following parameters.
25024
25025 main_w, W
25026 main_h, H
25027 The main input width and height.
25028
25029 overlay_w, w
25030 overlay_h, h
25031 The overlay input width and height.
25032
25033 x
25034 y The computed values for x and y. They are evaluated for each new
25035 frame.
25036
25037 hsub
25038 vsub
25039 horizontal and vertical chroma subsample values of the output
25040 format. For example for the pixel format "yuv422p" hsub is 2 and
25041 vsub is 1.
25042
25043 n the number of input frame, starting from 0
25044
25045 pos the position in the file of the input frame, NAN if unknown
25046
25047 t The timestamp, expressed in seconds. It's NAN if the input
25048 timestamp is unknown.
25049
25050 This filter also supports the framesync options.
25051
25052 Note that the n, pos, t variables are available only when evaluation is
25053 done per frame, and will evaluate to NAN when eval is set to init.
25054
25055 Be aware that frames are taken from each input video in timestamp
25056 order, hence, if their initial timestamps differ, it is a good idea to
25057 pass the two inputs through a setpts=PTS-STARTPTS filter to have them
25058 begin in the same zero timestamp, as the example for the movie filter
25059 does.
25060
25061 You can chain together more overlays but you should test the efficiency
25062 of such approach.
25063
25064 Commands
25065
25066 This filter supports the following commands:
25067
25068 x
25069 y Modify the x and y of the overlay input. The command accepts the
25070 same syntax of the corresponding option.
25071
25072 If the specified expression is not valid, it is kept at its current
25073 value.
25074
25075 Examples
25076
25077 • Draw the overlay at 10 pixels from the bottom right corner of the
25078 main video:
25079
25080 overlay=main_w-overlay_w-10:main_h-overlay_h-10
25081
25082 Using named options the example above becomes:
25083
25084 overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
25085
25086 • Insert a transparent PNG logo in the bottom left corner of the
25087 input, using the ffmpeg tool with the "-filter_complex" option:
25088
25089 ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
25090
25091 • Insert 2 different transparent PNG logos (second logo on bottom
25092 right corner) using the ffmpeg tool:
25093
25094 ffmpeg -i input -i logo1 -i logo2 -filter_complex 'overlay=x=10:y=H-h-10,overlay=x=W-w-10:y=H-h-10' output
25095
25096 • Add a transparent color layer on top of the main video; "WxH" must
25097 specify the size of the main input to the overlay filter:
25098
25099 color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
25100
25101 • Play an original video and a filtered version (here with the
25102 deshake filter) side by side using the ffplay tool:
25103
25104 ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
25105
25106 The above command is the same as:
25107
25108 ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
25109
25110 • Make a sliding overlay appearing from the left to the right top
25111 part of the screen starting since time 2:
25112
25113 overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
25114
25115 • Compose output by putting two input videos side to side:
25116
25117 ffmpeg -i left.avi -i right.avi -filter_complex "
25118 nullsrc=size=200x100 [background];
25119 [0:v] setpts=PTS-STARTPTS, scale=100x100 [left];
25120 [1:v] setpts=PTS-STARTPTS, scale=100x100 [right];
25121 [background][left] overlay=shortest=1 [background+left];
25122 [background+left][right] overlay=shortest=1:x=100 [left+right]
25123 "
25124
25125 • Mask 10-20 seconds of a video by applying the delogo filter to a
25126 section
25127
25128 ffmpeg -i test.avi -codec:v:0 wmv2 -ar 11025 -b:v 9000k
25129 -vf '[in]split[split_main][split_delogo];[split_delogo]trim=start=360:end=371,delogo=0:0:640:480[delogoed];[split_main][delogoed]overlay=eof_action=pass[out]'
25130 masked.avi
25131
25132 • Chain several overlays in cascade:
25133
25134 nullsrc=s=200x200 [bg];
25135 testsrc=s=100x100, split=4 [in0][in1][in2][in3];
25136 [in0] lutrgb=r=0, [bg] overlay=0:0 [mid0];
25137 [in1] lutrgb=g=0, [mid0] overlay=100:0 [mid1];
25138 [in2] lutrgb=b=0, [mid1] overlay=0:100 [mid2];
25139 [in3] null, [mid2] overlay=100:100 [out0]
25140
25141 overlay_cuda
25142 Overlay one video on top of another.
25143
25144 This is the CUDA variant of the overlay filter. It only accepts CUDA
25145 frames. The underlying input pixel formats have to match.
25146
25147 It takes two inputs and has one output. The first input is the "main"
25148 video on which the second input is overlaid.
25149
25150 It accepts the following parameters:
25151
25152 x
25153 y Set expressions for the x and y coordinates of the overlaid video
25154 on the main video.
25155
25156 They can contain the following parameters:
25157
25158 main_w, W
25159 main_h, H
25160 The main input width and height.
25161
25162 overlay_w, w
25163 overlay_h, h
25164 The overlay input width and height.
25165
25166 x
25167 y The computed values for x and y. They are evaluated for each
25168 new frame.
25169
25170 n The ordinal index of the main input frame, starting from 0.
25171
25172 pos The byte offset position in the file of the main input frame,
25173 NAN if unknown.
25174
25175 t The timestamp of the main input frame, expressed in seconds,
25176 NAN if unknown.
25177
25178 Default value is "0" for both expressions.
25179
25180 eval
25181 Set when the expressions for x and y are evaluated.
25182
25183 It accepts the following values:
25184
25185 init
25186 Evaluate expressions once during filter initialization or when
25187 a command is processed.
25188
25189 frame
25190 Evaluate expressions for each incoming frame
25191
25192 Default value is frame.
25193
25194 eof_action
25195 See framesync.
25196
25197 shortest
25198 See framesync.
25199
25200 repeatlast
25201 See framesync.
25202
25203 This filter also supports the framesync options.
25204
25205 owdenoise
25206 Apply Overcomplete Wavelet denoiser.
25207
25208 The filter accepts the following options:
25209
25210 depth
25211 Set depth.
25212
25213 Larger depth values will denoise lower frequency components more,
25214 but slow down filtering.
25215
25216 Must be an int in the range 8-16, default is 8.
25217
25218 luma_strength, ls
25219 Set luma strength.
25220
25221 Must be a double value in the range 0-1000, default is 1.0.
25222
25223 chroma_strength, cs
25224 Set chroma strength.
25225
25226 Must be a double value in the range 0-1000, default is 1.0.
25227
25228 pad
25229 Add paddings to the input image, and place the original input at the
25230 provided x, y coordinates.
25231
25232 It accepts the following parameters:
25233
25234 width, w
25235 height, h
25236 Specify an expression for the size of the output image with the
25237 paddings added. If the value for width or height is 0, the
25238 corresponding input size is used for the output.
25239
25240 The width expression can reference the value set by the height
25241 expression, and vice versa.
25242
25243 The default value of width and height is 0.
25244
25245 x
25246 y Specify the offsets to place the input image at within the padded
25247 area, with respect to the top/left border of the output image.
25248
25249 The x expression can reference the value set by the y expression,
25250 and vice versa.
25251
25252 The default value of x and y is 0.
25253
25254 If x or y evaluate to a negative number, they'll be changed so the
25255 input image is centered on the padded area.
25256
25257 color
25258 Specify the color of the padded area. For the syntax of this
25259 option, check the "Color" section in the ffmpeg-utils manual.
25260
25261 The default value of color is "black".
25262
25263 eval
25264 Specify when to evaluate width, height, x and y expression.
25265
25266 It accepts the following values:
25267
25268 init
25269 Only evaluate expressions once during the filter initialization
25270 or when a command is processed.
25271
25272 frame
25273 Evaluate expressions for each incoming frame.
25274
25275 Default value is init.
25276
25277 aspect
25278 Pad to aspect instead to a resolution.
25279
25280 The value for the width, height, x, and y options are expressions
25281 containing the following constants:
25282
25283 in_w
25284 in_h
25285 The input video width and height.
25286
25287 iw
25288 ih These are the same as in_w and in_h.
25289
25290 out_w
25291 out_h
25292 The output width and height (the size of the padded area), as
25293 specified by the width and height expressions.
25294
25295 ow
25296 oh These are the same as out_w and out_h.
25297
25298 x
25299 y The x and y offsets as specified by the x and y expressions, or NAN
25300 if not yet specified.
25301
25302 a same as iw / ih
25303
25304 sar input sample aspect ratio
25305
25306 dar input display aspect ratio, it is the same as (iw / ih) * sar
25307
25308 hsub
25309 vsub
25310 The horizontal and vertical chroma subsample values. For example
25311 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
25312
25313 Examples
25314
25315 • Add paddings with the color "violet" to the input video. The output
25316 video size is 640x480, and the top-left corner of the input video
25317 is placed at column 0, row 40
25318
25319 pad=640:480:0:40:violet
25320
25321 The example above is equivalent to the following command:
25322
25323 pad=width=640:height=480:x=0:y=40:color=violet
25324
25325 • Pad the input to get an output with dimensions increased by 3/2,
25326 and put the input video at the center of the padded area:
25327
25328 pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
25329
25330 • Pad the input to get a squared output with size equal to the
25331 maximum value between the input width and height, and put the input
25332 video at the center of the padded area:
25333
25334 pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
25335
25336 • Pad the input to get a final w/h ratio of 16:9:
25337
25338 pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
25339
25340 • In case of anamorphic video, in order to set the output display
25341 aspect correctly, it is necessary to use sar in the expression,
25342 according to the relation:
25343
25344 (ih * X / ih) * sar = output_dar
25345 X = output_dar / sar
25346
25347 Thus the previous example needs to be modified to:
25348
25349 pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
25350
25351 • Double the output size and put the input video in the bottom-right
25352 corner of the output padded area:
25353
25354 pad="2*iw:2*ih:ow-iw:oh-ih"
25355
25356 palettegen
25357 Generate one palette for a whole video stream.
25358
25359 It accepts the following options:
25360
25361 max_colors
25362 Set the maximum number of colors to quantize in the palette. Note:
25363 the palette will still contain 256 colors; the unused palette
25364 entries will be black.
25365
25366 reserve_transparent
25367 Create a palette of 255 colors maximum and reserve the last one for
25368 transparency. Reserving the transparency color is useful for GIF
25369 optimization. If not set, the maximum of colors in the palette
25370 will be 256. You probably want to disable this option for a
25371 standalone image. Set by default.
25372
25373 transparency_color
25374 Set the color that will be used as background for transparency.
25375
25376 stats_mode
25377 Set statistics mode.
25378
25379 It accepts the following values:
25380
25381 full
25382 Compute full frame histograms.
25383
25384 diff
25385 Compute histograms only for the part that differs from previous
25386 frame. This might be relevant to give more importance to the
25387 moving part of your input if the background is static.
25388
25389 single
25390 Compute new histogram for each frame.
25391
25392 Default value is full.
25393
25394 use_alpha
25395 Create a palette of colors with alpha components. Setting this,
25396 will automatically disable 'reserve_transparent'.
25397
25398 The filter also exports the frame metadata "lavfi.color_quant_ratio"
25399 ("nb_color_in / nb_color_out") which you can use to evaluate the degree
25400 of color quantization of the palette. This information is also visible
25401 at info logging level.
25402
25403 Examples
25404
25405 • Generate a representative palette of a given video using ffmpeg:
25406
25407 ffmpeg -i input.mkv -vf palettegen palette.png
25408
25409 paletteuse
25410 Use a palette to downsample an input video stream.
25411
25412 The filter takes two inputs: one video stream and a palette. The
25413 palette must be a 256 pixels image.
25414
25415 It accepts the following options:
25416
25417 dither
25418 Select dithering mode. Available algorithms are:
25419
25420 bayer
25421 Ordered 8x8 bayer dithering (deterministic)
25422
25423 heckbert
25424 Dithering as defined by Paul Heckbert in 1982 (simple error
25425 diffusion). Note: this dithering is sometimes considered
25426 "wrong" and is included as a reference.
25427
25428 floyd_steinberg
25429 Floyd and Steingberg dithering (error diffusion)
25430
25431 sierra2
25432 Frankie Sierra dithering v2 (error diffusion)
25433
25434 sierra2_4a
25435 Frankie Sierra dithering v2 "Lite" (error diffusion)
25436
25437 Default is sierra2_4a.
25438
25439 bayer_scale
25440 When bayer dithering is selected, this option defines the scale of
25441 the pattern (how much the crosshatch pattern is visible). A low
25442 value means more visible pattern for less banding, and higher value
25443 means less visible pattern at the cost of more banding.
25444
25445 The option must be an integer value in the range [0,5]. Default is
25446 2.
25447
25448 diff_mode
25449 If set, define the zone to process
25450
25451 rectangle
25452 Only the changing rectangle will be reprocessed. This is
25453 similar to GIF cropping/offsetting compression mechanism. This
25454 option can be useful for speed if only a part of the image is
25455 changing, and has use cases such as limiting the scope of the
25456 error diffusal dither to the rectangle that bounds the moving
25457 scene (it leads to more deterministic output if the scene
25458 doesn't change much, and as a result less moving noise and
25459 better GIF compression).
25460
25461 Default is none.
25462
25463 new Take new palette for each output frame.
25464
25465 alpha_threshold
25466 Sets the alpha threshold for transparency. Alpha values above this
25467 threshold will be treated as completely opaque, and values below
25468 this threshold will be treated as completely transparent.
25469
25470 The option must be an integer value in the range [0,255]. Default
25471 is 128.
25472
25473 use_alpha
25474 Apply the palette by taking alpha values into account. Only useful
25475 with palettes that are containing multiple colors with alpha
25476 components. Setting this will automatically disable
25477 'alpha_treshold'.
25478
25479 Examples
25480
25481 • Use a palette (generated for example with palettegen) to encode a
25482 GIF using ffmpeg:
25483
25484 ffmpeg -i input.mkv -i palette.png -lavfi paletteuse output.gif
25485
25486 perspective
25487 Correct perspective of video not recorded perpendicular to the screen.
25488
25489 A description of the accepted parameters follows.
25490
25491 x0
25492 y0
25493 x1
25494 y1
25495 x2
25496 y2
25497 x3
25498 y3 Set coordinates expression for top left, top right, bottom left and
25499 bottom right corners. Default values are "0:0:W:0:0:H:W:H" with
25500 which perspective will remain unchanged. If the "sense" option is
25501 set to "source", then the specified points will be sent to the
25502 corners of the destination. If the "sense" option is set to
25503 "destination", then the corners of the source will be sent to the
25504 specified coordinates.
25505
25506 The expressions can use the following variables:
25507
25508 W
25509 H the width and height of video frame.
25510
25511 in Input frame count.
25512
25513 on Output frame count.
25514
25515 interpolation
25516 Set interpolation for perspective correction.
25517
25518 It accepts the following values:
25519
25520 linear
25521 cubic
25522
25523 Default value is linear.
25524
25525 sense
25526 Set interpretation of coordinate options.
25527
25528 It accepts the following values:
25529
25530 0, source
25531 Send point in the source specified by the given coordinates to
25532 the corners of the destination.
25533
25534 1, destination
25535 Send the corners of the source to the point in the destination
25536 specified by the given coordinates.
25537
25538 Default value is source.
25539
25540 eval
25541 Set when the expressions for coordinates x0,y0,...x3,y3 are
25542 evaluated.
25543
25544 It accepts the following values:
25545
25546 init
25547 only evaluate expressions once during the filter initialization
25548 or when a command is processed
25549
25550 frame
25551 evaluate expressions for each incoming frame
25552
25553 Default value is init.
25554
25555 phase
25556 Delay interlaced video by one field time so that the field order
25557 changes.
25558
25559 The intended use is to fix PAL movies that have been captured with the
25560 opposite field order to the film-to-video transfer.
25561
25562 A description of the accepted parameters follows.
25563
25564 mode
25565 Set phase mode.
25566
25567 It accepts the following values:
25568
25569 t Capture field order top-first, transfer bottom-first. Filter
25570 will delay the bottom field.
25571
25572 b Capture field order bottom-first, transfer top-first. Filter
25573 will delay the top field.
25574
25575 p Capture and transfer with the same field order. This mode only
25576 exists for the documentation of the other options to refer to,
25577 but if you actually select it, the filter will faithfully do
25578 nothing.
25579
25580 a Capture field order determined automatically by field flags,
25581 transfer opposite. Filter selects among t and b modes on a
25582 frame by frame basis using field flags. If no field information
25583 is available, then this works just like u.
25584
25585 u Capture unknown or varying, transfer opposite. Filter selects
25586 among t and b on a frame by frame basis by analyzing the images
25587 and selecting the alternative that produces best match between
25588 the fields.
25589
25590 T Capture top-first, transfer unknown or varying. Filter selects
25591 among t and p using image analysis.
25592
25593 B Capture bottom-first, transfer unknown or varying. Filter
25594 selects among b and p using image analysis.
25595
25596 A Capture determined by field flags, transfer unknown or varying.
25597 Filter selects among t, b and p using field flags and image
25598 analysis. If no field information is available, then this works
25599 just like U. This is the default mode.
25600
25601 U Both capture and transfer unknown or varying. Filter selects
25602 among t, b and p using image analysis only.
25603
25604 Commands
25605
25606 This filter supports the all above options as commands.
25607
25608 photosensitivity
25609 Reduce various flashes in video, so to help users with epilepsy.
25610
25611 It accepts the following options:
25612
25613 frames, f
25614 Set how many frames to use when filtering. Default is 30.
25615
25616 threshold, t
25617 Set detection threshold factor. Default is 1. Lower is stricter.
25618
25619 skip
25620 Set how many pixels to skip when sampling frames. Default is 1.
25621 Allowed range is from 1 to 1024.
25622
25623 bypass
25624 Leave frames unchanged. Default is disabled.
25625
25626 pixdesctest
25627 Pixel format descriptor test filter, mainly useful for internal
25628 testing. The output video should be equal to the input video.
25629
25630 For example:
25631
25632 format=monow, pixdesctest
25633
25634 can be used to test the monowhite pixel format descriptor definition.
25635
25636 pixelize
25637 Apply pixelization to video stream.
25638
25639 The filter accepts the following options:
25640
25641 width, w
25642 height, h
25643 Set block dimensions that will be used for pixelization. Default
25644 value is 16.
25645
25646 mode, m
25647 Set the mode of pixelization used.
25648
25649 Possible values are:
25650
25651 avg
25652 min
25653 max
25654
25655 Default value is "avg".
25656
25657 planes, p
25658 Set what planes to filter. Default is to filter all planes.
25659
25660 Commands
25661
25662 This filter supports all options as commands.
25663
25664 pixscope
25665 Display sample values of color channels. Mainly useful for checking
25666 color and levels. Minimum supported resolution is 640x480.
25667
25668 The filters accept the following options:
25669
25670 x Set scope X position, relative offset on X axis.
25671
25672 y Set scope Y position, relative offset on Y axis.
25673
25674 w Set scope width.
25675
25676 h Set scope height.
25677
25678 o Set window opacity. This window also holds statistics about pixel
25679 area.
25680
25681 wx Set window X position, relative offset on X axis.
25682
25683 wy Set window Y position, relative offset on Y axis.
25684
25685 Commands
25686
25687 This filter supports same commands as options.
25688
25689 pp
25690 Enable the specified chain of postprocessing subfilters using
25691 libpostproc. This library should be automatically selected with a GPL
25692 build ("--enable-gpl"). Subfilters must be separated by '/' and can be
25693 disabled by prepending a '-'. Each subfilter and some options have a
25694 short and a long name that can be used interchangeably, i.e. dr/dering
25695 are the same.
25696
25697 The filters accept the following options:
25698
25699 subfilters
25700 Set postprocessing subfilters string.
25701
25702 All subfilters share common options to determine their scope:
25703
25704 a/autoq
25705 Honor the quality commands for this subfilter.
25706
25707 c/chrom
25708 Do chrominance filtering, too (default).
25709
25710 y/nochrom
25711 Do luminance filtering only (no chrominance).
25712
25713 n/noluma
25714 Do chrominance filtering only (no luminance).
25715
25716 These options can be appended after the subfilter name, separated by a
25717 '|'.
25718
25719 Available subfilters are:
25720
25721 hb/hdeblock[|difference[|flatness]]
25722 Horizontal deblocking filter
25723
25724 difference
25725 Difference factor where higher values mean more deblocking
25726 (default: 32).
25727
25728 flatness
25729 Flatness threshold where lower values mean more deblocking
25730 (default: 39).
25731
25732 vb/vdeblock[|difference[|flatness]]
25733 Vertical deblocking filter
25734
25735 difference
25736 Difference factor where higher values mean more deblocking
25737 (default: 32).
25738
25739 flatness
25740 Flatness threshold where lower values mean more deblocking
25741 (default: 39).
25742
25743 ha/hadeblock[|difference[|flatness]]
25744 Accurate horizontal deblocking filter
25745
25746 difference
25747 Difference factor where higher values mean more deblocking
25748 (default: 32).
25749
25750 flatness
25751 Flatness threshold where lower values mean more deblocking
25752 (default: 39).
25753
25754 va/vadeblock[|difference[|flatness]]
25755 Accurate vertical deblocking filter
25756
25757 difference
25758 Difference factor where higher values mean more deblocking
25759 (default: 32).
25760
25761 flatness
25762 Flatness threshold where lower values mean more deblocking
25763 (default: 39).
25764
25765 The horizontal and vertical deblocking filters share the difference and
25766 flatness values so you cannot set different horizontal and vertical
25767 thresholds.
25768
25769 h1/x1hdeblock
25770 Experimental horizontal deblocking filter
25771
25772 v1/x1vdeblock
25773 Experimental vertical deblocking filter
25774
25775 dr/dering
25776 Deringing filter
25777
25778 tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise
25779 reducer
25780 threshold1
25781 larger -> stronger filtering
25782
25783 threshold2
25784 larger -> stronger filtering
25785
25786 threshold3
25787 larger -> stronger filtering
25788
25789 al/autolevels[:f/fullyrange], automatic brightness / contrast
25790 correction
25791 f/fullyrange
25792 Stretch luminance to "0-255".
25793
25794 lb/linblenddeint
25795 Linear blend deinterlacing filter that deinterlaces the given block
25796 by filtering all lines with a "(1 2 1)" filter.
25797
25798 li/linipoldeint
25799 Linear interpolating deinterlacing filter that deinterlaces the
25800 given block by linearly interpolating every second line.
25801
25802 ci/cubicipoldeint
25803 Cubic interpolating deinterlacing filter deinterlaces the given
25804 block by cubically interpolating every second line.
25805
25806 md/mediandeint
25807 Median deinterlacing filter that deinterlaces the given block by
25808 applying a median filter to every second line.
25809
25810 fd/ffmpegdeint
25811 FFmpeg deinterlacing filter that deinterlaces the given block by
25812 filtering every second line with a "(-1 4 2 4 -1)" filter.
25813
25814 l5/lowpass5
25815 Vertically applied FIR lowpass deinterlacing filter that
25816 deinterlaces the given block by filtering all lines with a "(-1 2 6
25817 2 -1)" filter.
25818
25819 fq/forceQuant[|quantizer]
25820 Overrides the quantizer table from the input with the constant
25821 quantizer you specify.
25822
25823 quantizer
25824 Quantizer to use
25825
25826 de/default
25827 Default pp filter combination ("hb|a,vb|a,dr|a")
25828
25829 fa/fast
25830 Fast pp filter combination ("h1|a,v1|a,dr|a")
25831
25832 ac High quality pp filter combination ("ha|a|128|7,va|a,dr|a")
25833
25834 Examples
25835
25836 • Apply horizontal and vertical deblocking, deringing and automatic
25837 brightness/contrast:
25838
25839 pp=hb/vb/dr/al
25840
25841 • Apply default filters without brightness/contrast correction:
25842
25843 pp=de/-al
25844
25845 • Apply default filters and temporal denoiser:
25846
25847 pp=default/tmpnoise|1|2|3
25848
25849 • Apply deblocking on luminance only, and switch vertical deblocking
25850 on or off automatically depending on available CPU time:
25851
25852 pp=hb|y/vb|a
25853
25854 pp7
25855 Apply Postprocessing filter 7. It is variant of the spp filter, similar
25856 to spp = 6 with 7 point DCT, where only the center sample is used after
25857 IDCT.
25858
25859 The filter accepts the following options:
25860
25861 qp Force a constant quantization parameter. It accepts an integer in
25862 range 0 to 63. If not set, the filter will use the QP from the
25863 video stream (if available).
25864
25865 mode
25866 Set thresholding mode. Available modes are:
25867
25868 hard
25869 Set hard thresholding.
25870
25871 soft
25872 Set soft thresholding (better de-ringing effect, but likely
25873 blurrier).
25874
25875 medium
25876 Set medium thresholding (good results, default).
25877
25878 premultiply
25879 Apply alpha premultiply effect to input video stream using first plane
25880 of second stream as alpha.
25881
25882 Both streams must have same dimensions and same pixel format.
25883
25884 The filter accepts the following option:
25885
25886 planes
25887 Set which planes will be processed, unprocessed planes will be
25888 copied. By default value 0xf, all planes will be processed.
25889
25890 inplace
25891 Do not require 2nd input for processing, instead use alpha plane
25892 from input stream.
25893
25894 prewitt
25895 Apply prewitt operator to input video stream.
25896
25897 The filter accepts the following option:
25898
25899 planes
25900 Set which planes will be processed, unprocessed planes will be
25901 copied. By default value 0xf, all planes will be processed.
25902
25903 scale
25904 Set value which will be multiplied with filtered result.
25905
25906 delta
25907 Set value which will be added to filtered result.
25908
25909 Commands
25910
25911 This filter supports the all above options as commands.
25912
25913 pseudocolor
25914 Alter frame colors in video with pseudocolors.
25915
25916 This filter accepts the following options:
25917
25918 c0 set pixel first component expression
25919
25920 c1 set pixel second component expression
25921
25922 c2 set pixel third component expression
25923
25924 c3 set pixel fourth component expression, corresponds to the alpha
25925 component
25926
25927 index, i
25928 set component to use as base for altering colors
25929
25930 preset, p
25931 Pick one of built-in LUTs. By default is set to none.
25932
25933 Available LUTs:
25934
25935 magma
25936 inferno
25937 plasma
25938 viridis
25939 turbo
25940 cividis
25941 range1
25942 range2
25943 shadows
25944 highlights
25945 solar
25946 nominal
25947 preferred
25948 total
25949 opacity
25950 Set opacity of output colors. Allowed range is from 0 to 1.
25951 Default value is set to 1.
25952
25953 Each of the expression options specifies the expression to use for
25954 computing the lookup table for the corresponding pixel component
25955 values.
25956
25957 The expressions can contain the following constants and functions:
25958
25959 w
25960 h The input width and height.
25961
25962 val The input value for the pixel component.
25963
25964 ymin, umin, vmin, amin
25965 The minimum allowed component value.
25966
25967 ymax, umax, vmax, amax
25968 The maximum allowed component value.
25969
25970 All expressions default to "val".
25971
25972 Commands
25973
25974 This filter supports the all above options as commands.
25975
25976 Examples
25977
25978 • Change too high luma values to gradient:
25979
25980 pseudocolor="'if(between(val,ymax,amax),lerp(ymin,ymax,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(umax,umin,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(vmin,vmax,(val-ymax)/(amax-ymax)),-1):-1'"
25981
25982 psnr
25983 Obtain the average, maximum and minimum PSNR (Peak Signal to Noise
25984 Ratio) between two input videos.
25985
25986 This filter takes in input two input videos, the first input is
25987 considered the "main" source and is passed unchanged to the output. The
25988 second input is used as a "reference" video for computing the PSNR.
25989
25990 Both video inputs must have the same resolution and pixel format for
25991 this filter to work correctly. Also it assumes that both inputs have
25992 the same number of frames, which are compared one by one.
25993
25994 The obtained average PSNR is printed through the logging system.
25995
25996 The filter stores the accumulated MSE (mean squared error) of each
25997 frame, and at the end of the processing it is averaged across all
25998 frames equally, and the following formula is applied to obtain the
25999 PSNR:
26000
26001 PSNR = 10*log10(MAX^2/MSE)
26002
26003 Where MAX is the average of the maximum values of each component of the
26004 image.
26005
26006 The description of the accepted parameters follows.
26007
26008 stats_file, f
26009 If specified the filter will use the named file to save the PSNR of
26010 each individual frame. When filename equals "-" the data is sent to
26011 standard output.
26012
26013 stats_version
26014 Specifies which version of the stats file format to use. Details of
26015 each format are written below. Default value is 1.
26016
26017 stats_add_max
26018 Determines whether the max value is output to the stats log.
26019 Default value is 0. Requires stats_version >= 2. If this is set
26020 and stats_version < 2, the filter will return an error.
26021
26022 This filter also supports the framesync options.
26023
26024 The file printed if stats_file is selected, contains a sequence of
26025 key/value pairs of the form key:value for each compared couple of
26026 frames.
26027
26028 If a stats_version greater than 1 is specified, a header line precedes
26029 the list of per-frame-pair stats, with key value pairs following the
26030 frame format with the following parameters:
26031
26032 psnr_log_version
26033 The version of the log file format. Will match stats_version.
26034
26035 fields
26036 A comma separated list of the per-frame-pair parameters included in
26037 the log.
26038
26039 A description of each shown per-frame-pair parameter follows:
26040
26041 n sequential number of the input frame, starting from 1
26042
26043 mse_avg
26044 Mean Square Error pixel-by-pixel average difference of the compared
26045 frames, averaged over all the image components.
26046
26047 mse_y, mse_u, mse_v, mse_r, mse_g, mse_b, mse_a
26048 Mean Square Error pixel-by-pixel average difference of the compared
26049 frames for the component specified by the suffix.
26050
26051 psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
26052 Peak Signal to Noise ratio of the compared frames for the component
26053 specified by the suffix.
26054
26055 max_avg, max_y, max_u, max_v
26056 Maximum allowed value for each channel, and average over all
26057 channels.
26058
26059 Examples
26060
26061 • For example:
26062
26063 movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
26064 [main][ref] psnr="stats_file=stats.log" [out]
26065
26066 On this example the input file being processed is compared with the
26067 reference file ref_movie.mpg. The PSNR of each individual frame is
26068 stored in stats.log.
26069
26070 • Another example with different containers:
26071
26072 ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]psnr" -f null -
26073
26074 pullup
26075 Pulldown reversal (inverse telecine) filter, capable of handling mixed
26076 hard-telecine, 24000/1001 fps progressive, and 30000/1001 fps
26077 progressive content.
26078
26079 The pullup filter is designed to take advantage of future context in
26080 making its decisions. This filter is stateless in the sense that it
26081 does not lock onto a pattern to follow, but it instead looks forward to
26082 the following fields in order to identify matches and rebuild
26083 progressive frames.
26084
26085 To produce content with an even framerate, insert the fps filter after
26086 pullup, use "fps=24000/1001" if the input frame rate is 29.97fps,
26087 "fps=24" for 30fps and the (rare) telecined 25fps input.
26088
26089 The filter accepts the following options:
26090
26091 jl
26092 jr
26093 jt
26094 jb These options set the amount of "junk" to ignore at the left,
26095 right, top, and bottom of the image, respectively. Left and right
26096 are in units of 8 pixels, while top and bottom are in units of 2
26097 lines. The default is 8 pixels on each side.
26098
26099 sb Set the strict breaks. Setting this option to 1 will reduce the
26100 chances of filter generating an occasional mismatched frame, but it
26101 may also cause an excessive number of frames to be dropped during
26102 high motion sequences. Conversely, setting it to -1 will make
26103 filter match fields more easily. This may help processing of video
26104 where there is slight blurring between the fields, but may also
26105 cause there to be interlaced frames in the output. Default value
26106 is 0.
26107
26108 mp Set the metric plane to use. It accepts the following values:
26109
26110 l Use luma plane.
26111
26112 u Use chroma blue plane.
26113
26114 v Use chroma red plane.
26115
26116 This option may be set to use chroma plane instead of the default
26117 luma plane for doing filter's computations. This may improve
26118 accuracy on very clean source material, but more likely will
26119 decrease accuracy, especially if there is chroma noise (rainbow
26120 effect) or any grayscale video. The main purpose of setting mp to
26121 a chroma plane is to reduce CPU load and make pullup usable in
26122 realtime on slow machines.
26123
26124 For best results (without duplicated frames in the output file) it is
26125 necessary to change the output frame rate. For example, to inverse
26126 telecine NTSC input:
26127
26128 ffmpeg -i input -vf pullup -r 24000/1001 ...
26129
26130 qp
26131 Change video quantization parameters (QP).
26132
26133 The filter accepts the following option:
26134
26135 qp Set expression for quantization parameter.
26136
26137 The expression is evaluated through the eval API and can contain, among
26138 others, the following constants:
26139
26140 known
26141 1 if index is not 129, 0 otherwise.
26142
26143 qp Sequential index starting from -129 to 128.
26144
26145 Examples
26146
26147 • Some equation like:
26148
26149 qp=2+2*sin(PI*qp)
26150
26151 random
26152 Flush video frames from internal cache of frames into a random order.
26153 No frame is discarded. Inspired by frei0r nervous filter.
26154
26155 frames
26156 Set size in number of frames of internal cache, in range from 2 to
26157 512. Default is 30.
26158
26159 seed
26160 Set seed for random number generator, must be an integer included
26161 between 0 and "UINT32_MAX". If not specified, or if explicitly set
26162 to less than 0, the filter will try to use a good random seed on a
26163 best effort basis.
26164
26165 readeia608
26166 Read closed captioning (EIA-608) information from the top lines of a
26167 video frame.
26168
26169 This filter adds frame metadata for "lavfi.readeia608.X.cc" and
26170 "lavfi.readeia608.X.line", where "X" is the number of the identified
26171 line with EIA-608 data (starting from 0). A description of each
26172 metadata value follows:
26173
26174 lavfi.readeia608.X.cc
26175 The two bytes stored as EIA-608 data (printed in hexadecimal).
26176
26177 lavfi.readeia608.X.line
26178 The number of the line on which the EIA-608 data was identified and
26179 read.
26180
26181 This filter accepts the following options:
26182
26183 scan_min
26184 Set the line to start scanning for EIA-608 data. Default is 0.
26185
26186 scan_max
26187 Set the line to end scanning for EIA-608 data. Default is 29.
26188
26189 spw Set the ratio of width reserved for sync code detection. Default
26190 is 0.27. Allowed range is "[0.1 - 0.7]".
26191
26192 chp Enable checking the parity bit. In the event of a parity error, the
26193 filter will output 0x00 for that character. Default is false.
26194
26195 lp Lowpass lines prior to further processing. Default is enabled.
26196
26197 Commands
26198
26199 This filter supports the all above options as commands.
26200
26201 Examples
26202
26203 • Output a csv with presentation time and the first two lines of
26204 identified EIA-608 captioning data.
26205
26206 ffprobe -f lavfi -i movie=captioned_video.mov,readeia608 -show_entries frame=pts_time:frame_tags=lavfi.readeia608.0.cc,lavfi.readeia608.1.cc -of csv
26207
26208 readvitc
26209 Read vertical interval timecode (VITC) information from the top lines
26210 of a video frame.
26211
26212 The filter adds frame metadata key "lavfi.readvitc.tc_str" with the
26213 timecode value, if a valid timecode has been detected. Further metadata
26214 key "lavfi.readvitc.found" is set to 0/1 depending on whether timecode
26215 data has been found or not.
26216
26217 This filter accepts the following options:
26218
26219 scan_max
26220 Set the maximum number of lines to scan for VITC data. If the value
26221 is set to "-1" the full video frame is scanned. Default is 45.
26222
26223 thr_b
26224 Set the luma threshold for black. Accepts float numbers in the
26225 range [0.0,1.0], default value is 0.2. The value must be equal or
26226 less than "thr_w".
26227
26228 thr_w
26229 Set the luma threshold for white. Accepts float numbers in the
26230 range [0.0,1.0], default value is 0.6. The value must be equal or
26231 greater than "thr_b".
26232
26233 Examples
26234
26235 • Detect and draw VITC data onto the video frame; if no valid VITC is
26236 detected, draw "--:--:--:--" as a placeholder:
26237
26238 ffmpeg -i input.avi -filter:v 'readvitc,drawtext=fontfile=FreeMono.ttf:text=%{metadata\\:lavfi.readvitc.tc_str\\:--\\\\\\:--\\\\\\:--\\\\\\:--}:x=(w-tw)/2:y=400-ascent'
26239
26240 remap
26241 Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
26242
26243 Destination pixel at position (X, Y) will be picked from source (x, y)
26244 position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
26245 out of range, zero value for pixel will be used for destination pixel.
26246
26247 Xmap and Ymap input video streams must be of same dimensions. Output
26248 video stream will have Xmap/Ymap video stream dimensions. Xmap and
26249 Ymap input video streams are 16bit depth, single channel.
26250
26251 format
26252 Specify pixel format of output from this filter. Can be "color" or
26253 "gray". Default is "color".
26254
26255 fill
26256 Specify the color of the unmapped pixels. For the syntax of this
26257 option, check the "Color" section in the ffmpeg-utils manual.
26258 Default color is "black".
26259
26260 removegrain
26261 The removegrain filter is a spatial denoiser for progressive video.
26262
26263 m0 Set mode for the first plane.
26264
26265 m1 Set mode for the second plane.
26266
26267 m2 Set mode for the third plane.
26268
26269 m3 Set mode for the fourth plane.
26270
26271 Range of mode is from 0 to 24. Description of each mode follows:
26272
26273 0 Leave input plane unchanged. Default.
26274
26275 1 Clips the pixel with the minimum and maximum of the 8 neighbour
26276 pixels.
26277
26278 2 Clips the pixel with the second minimum and maximum of the 8
26279 neighbour pixels.
26280
26281 3 Clips the pixel with the third minimum and maximum of the 8
26282 neighbour pixels.
26283
26284 4 Clips the pixel with the fourth minimum and maximum of the 8
26285 neighbour pixels. This is equivalent to a median filter.
26286
26287 5 Line-sensitive clipping giving the minimal change.
26288
26289 6 Line-sensitive clipping, intermediate.
26290
26291 7 Line-sensitive clipping, intermediate.
26292
26293 8 Line-sensitive clipping, intermediate.
26294
26295 9 Line-sensitive clipping on a line where the neighbours pixels are
26296 the closest.
26297
26298 10 Replaces the target pixel with the closest neighbour.
26299
26300 11 [1 2 1] horizontal and vertical kernel blur.
26301
26302 12 Same as mode 11.
26303
26304 13 Bob mode, interpolates top field from the line where the neighbours
26305 pixels are the closest.
26306
26307 14 Bob mode, interpolates bottom field from the line where the
26308 neighbours pixels are the closest.
26309
26310 15 Bob mode, interpolates top field. Same as 13 but with a more
26311 complicated interpolation formula.
26312
26313 16 Bob mode, interpolates bottom field. Same as 14 but with a more
26314 complicated interpolation formula.
26315
26316 17 Clips the pixel with the minimum and maximum of respectively the
26317 maximum and minimum of each pair of opposite neighbour pixels.
26318
26319 18 Line-sensitive clipping using opposite neighbours whose greatest
26320 distance from the current pixel is minimal.
26321
26322 19 Replaces the pixel with the average of its 8 neighbours.
26323
26324 20 Averages the 9 pixels ([1 1 1] horizontal and vertical blur).
26325
26326 21 Clips pixels using the averages of opposite neighbour.
26327
26328 22 Same as mode 21 but simpler and faster.
26329
26330 23 Small edge and halo removal, but reputed useless.
26331
26332 24 Similar as 23.
26333
26334 removelogo
26335 Suppress a TV station logo, using an image file to determine which
26336 pixels comprise the logo. It works by filling in the pixels that
26337 comprise the logo with neighboring pixels.
26338
26339 The filter accepts the following options:
26340
26341 filename, f
26342 Set the filter bitmap file, which can be any image format supported
26343 by libavformat. The width and height of the image file must match
26344 those of the video stream being processed.
26345
26346 Pixels in the provided bitmap image with a value of zero are not
26347 considered part of the logo, non-zero pixels are considered part of the
26348 logo. If you use white (255) for the logo and black (0) for the rest,
26349 you will be safe. For making the filter bitmap, it is recommended to
26350 take a screen capture of a black frame with the logo visible, and then
26351 using a threshold filter followed by the erode filter once or twice.
26352
26353 If needed, little splotches can be fixed manually. Remember that if
26354 logo pixels are not covered, the filter quality will be much reduced.
26355 Marking too many pixels as part of the logo does not hurt as much, but
26356 it will increase the amount of blurring needed to cover over the image
26357 and will destroy more information than necessary, and extra pixels will
26358 slow things down on a large logo.
26359
26360 repeatfields
26361 This filter uses the repeat_field flag from the Video ES headers and
26362 hard repeats fields based on its value.
26363
26364 reverse
26365 Reverse a video clip.
26366
26367 Warning: This filter requires memory to buffer the entire clip, so
26368 trimming is suggested.
26369
26370 Examples
26371
26372 • Take the first 5 seconds of a clip, and reverse it.
26373
26374 trim=end=5,reverse
26375
26376 rgbashift
26377 Shift R/G/B/A pixels horizontally and/or vertically.
26378
26379 The filter accepts the following options:
26380
26381 rh Set amount to shift red horizontally.
26382
26383 rv Set amount to shift red vertically.
26384
26385 gh Set amount to shift green horizontally.
26386
26387 gv Set amount to shift green vertically.
26388
26389 bh Set amount to shift blue horizontally.
26390
26391 bv Set amount to shift blue vertically.
26392
26393 ah Set amount to shift alpha horizontally.
26394
26395 av Set amount to shift alpha vertically.
26396
26397 edge
26398 Set edge mode, can be smear, default, or warp.
26399
26400 Commands
26401
26402 This filter supports the all above options as commands.
26403
26404 roberts
26405 Apply roberts cross operator to input video stream.
26406
26407 The filter accepts the following option:
26408
26409 planes
26410 Set which planes will be processed, unprocessed planes will be
26411 copied. By default value 0xf, all planes will be processed.
26412
26413 scale
26414 Set value which will be multiplied with filtered result.
26415
26416 delta
26417 Set value which will be added to filtered result.
26418
26419 Commands
26420
26421 This filter supports the all above options as commands.
26422
26423 rotate
26424 Rotate video by an arbitrary angle expressed in radians.
26425
26426 The filter accepts the following options:
26427
26428 A description of the optional parameters follows.
26429
26430 angle, a
26431 Set an expression for the angle by which to rotate the input video
26432 clockwise, expressed as a number of radians. A negative value will
26433 result in a counter-clockwise rotation. By default it is set to
26434 "0".
26435
26436 This expression is evaluated for each frame.
26437
26438 out_w, ow
26439 Set the output width expression, default value is "iw". This
26440 expression is evaluated just once during configuration.
26441
26442 out_h, oh
26443 Set the output height expression, default value is "ih". This
26444 expression is evaluated just once during configuration.
26445
26446 bilinear
26447 Enable bilinear interpolation if set to 1, a value of 0 disables
26448 it. Default value is 1.
26449
26450 fillcolor, c
26451 Set the color used to fill the output area not covered by the
26452 rotated image. For the general syntax of this option, check the
26453 "Color" section in the ffmpeg-utils manual. If the special value
26454 "none" is selected then no background is printed (useful for
26455 example if the background is never shown).
26456
26457 Default value is "black".
26458
26459 The expressions for the angle and the output size can contain the
26460 following constants and functions:
26461
26462 n sequential number of the input frame, starting from 0. It is always
26463 NAN before the first frame is filtered.
26464
26465 t time in seconds of the input frame, it is set to 0 when the filter
26466 is configured. It is always NAN before the first frame is filtered.
26467
26468 hsub
26469 vsub
26470 horizontal and vertical chroma subsample values. For example for
26471 the pixel format "yuv422p" hsub is 2 and vsub is 1.
26472
26473 in_w, iw
26474 in_h, ih
26475 the input video width and height
26476
26477 out_w, ow
26478 out_h, oh
26479 the output width and height, that is the size of the padded area as
26480 specified by the width and height expressions
26481
26482 rotw(a)
26483 roth(a)
26484 the minimal width/height required for completely containing the
26485 input video rotated by a radians.
26486
26487 These are only available when computing the out_w and out_h
26488 expressions.
26489
26490 Examples
26491
26492 • Rotate the input by PI/6 radians clockwise:
26493
26494 rotate=PI/6
26495
26496 • Rotate the input by PI/6 radians counter-clockwise:
26497
26498 rotate=-PI/6
26499
26500 • Rotate the input by 45 degrees clockwise:
26501
26502 rotate=45*PI/180
26503
26504 • Apply a constant rotation with period T, starting from an angle of
26505 PI/3:
26506
26507 rotate=PI/3+2*PI*t/T
26508
26509 • Make the input video rotation oscillating with a period of T
26510 seconds and an amplitude of A radians:
26511
26512 rotate=A*sin(2*PI/T*t)
26513
26514 • Rotate the video, output size is chosen so that the whole rotating
26515 input video is always completely contained in the output:
26516
26517 rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
26518
26519 • Rotate the video, reduce the output size so that no background is
26520 ever shown:
26521
26522 rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
26523
26524 Commands
26525
26526 The filter supports the following commands:
26527
26528 a, angle
26529 Set the angle expression. The command accepts the same syntax of
26530 the corresponding option.
26531
26532 If the specified expression is not valid, it is kept at its current
26533 value.
26534
26535 sab
26536 Apply Shape Adaptive Blur.
26537
26538 The filter accepts the following options:
26539
26540 luma_radius, lr
26541 Set luma blur filter strength, must be a value in range 0.1-4.0,
26542 default value is 1.0. A greater value will result in a more blurred
26543 image, and in slower processing.
26544
26545 luma_pre_filter_radius, lpfr
26546 Set luma pre-filter radius, must be a value in the 0.1-2.0 range,
26547 default value is 1.0.
26548
26549 luma_strength, ls
26550 Set luma maximum difference between pixels to still be considered,
26551 must be a value in the 0.1-100.0 range, default value is 1.0.
26552
26553 chroma_radius, cr
26554 Set chroma blur filter strength, must be a value in range -0.9-4.0.
26555 A greater value will result in a more blurred image, and in slower
26556 processing.
26557
26558 chroma_pre_filter_radius, cpfr
26559 Set chroma pre-filter radius, must be a value in the -0.9-2.0
26560 range.
26561
26562 chroma_strength, cs
26563 Set chroma maximum difference between pixels to still be
26564 considered, must be a value in the -0.9-100.0 range.
26565
26566 Each chroma option value, if not explicitly specified, is set to the
26567 corresponding luma option value.
26568
26569 scale
26570 Scale (resize) the input video, using the libswscale library.
26571
26572 The scale filter forces the output display aspect ratio to be the same
26573 of the input, by changing the output sample aspect ratio.
26574
26575 If the input image format is different from the format requested by the
26576 next filter, the scale filter will convert the input to the requested
26577 format.
26578
26579 Options
26580
26581 The filter accepts the following options, or any of the options
26582 supported by the libswscale scaler.
26583
26584 See the ffmpeg-scaler manual for the complete list of scaler options.
26585
26586 width, w
26587 height, h
26588 Set the output video dimension expression. Default value is the
26589 input dimension.
26590
26591 If the width or w value is 0, the input width is used for the
26592 output. If the height or h value is 0, the input height is used for
26593 the output.
26594
26595 If one and only one of the values is -n with n >= 1, the scale
26596 filter will use a value that maintains the aspect ratio of the
26597 input image, calculated from the other specified dimension. After
26598 that it will, however, make sure that the calculated dimension is
26599 divisible by n and adjust the value if necessary.
26600
26601 If both values are -n with n >= 1, the behavior will be identical
26602 to both values being set to 0 as previously detailed.
26603
26604 See below for the list of accepted constants for use in the
26605 dimension expression.
26606
26607 eval
26608 Specify when to evaluate width and height expression. It accepts
26609 the following values:
26610
26611 init
26612 Only evaluate expressions once during the filter initialization
26613 or when a command is processed.
26614
26615 frame
26616 Evaluate expressions for each incoming frame.
26617
26618 Default value is init.
26619
26620 interl
26621 Set the interlacing mode. It accepts the following values:
26622
26623 1 Force interlaced aware scaling.
26624
26625 0 Do not apply interlaced scaling.
26626
26627 -1 Select interlaced aware scaling depending on whether the source
26628 frames are flagged as interlaced or not.
26629
26630 Default value is 0.
26631
26632 flags
26633 Set libswscale scaling flags. See the ffmpeg-scaler manual for the
26634 complete list of values. If not explicitly specified the filter
26635 applies the default flags.
26636
26637 param0, param1
26638 Set libswscale input parameters for scaling algorithms that need
26639 them. See the ffmpeg-scaler manual for the complete documentation.
26640 If not explicitly specified the filter applies empty parameters.
26641
26642 size, s
26643 Set the video size. For the syntax of this option, check the "Video
26644 size" section in the ffmpeg-utils manual.
26645
26646 in_color_matrix
26647 out_color_matrix
26648 Set in/output YCbCr color space type.
26649
26650 This allows the autodetected value to be overridden as well as
26651 allows forcing a specific value used for the output and encoder.
26652
26653 If not specified, the color space type depends on the pixel format.
26654
26655 Possible values:
26656
26657 auto
26658 Choose automatically.
26659
26660 bt709
26661 Format conforming to International Telecommunication Union
26662 (ITU) Recommendation BT.709.
26663
26664 fcc Set color space conforming to the United States Federal
26665 Communications Commission (FCC) Code of Federal Regulations
26666 (CFR) Title 47 (2003) 73.682 (a).
26667
26668 bt601
26669 bt470
26670 smpte170m
26671 Set color space conforming to:
26672
26673 • ITU Radiocommunication Sector (ITU-R) Recommendation BT.601
26674
26675 • ITU-R Rec. BT.470-6 (1998) Systems B, B1, and G
26676
26677 • Society of Motion Picture and Television Engineers (SMPTE)
26678 ST 170:2004
26679
26680 smpte240m
26681 Set color space conforming to SMPTE ST 240:1999.
26682
26683 bt2020
26684 Set color space conforming to ITU-R BT.2020 non-constant
26685 luminance system.
26686
26687 in_range
26688 out_range
26689 Set in/output YCbCr sample range.
26690
26691 This allows the autodetected value to be overridden as well as
26692 allows forcing a specific value used for the output and encoder. If
26693 not specified, the range depends on the pixel format. Possible
26694 values:
26695
26696 auto/unknown
26697 Choose automatically.
26698
26699 jpeg/full/pc
26700 Set full range (0-255 in case of 8-bit luma).
26701
26702 mpeg/limited/tv
26703 Set "MPEG" range (16-235 in case of 8-bit luma).
26704
26705 force_original_aspect_ratio
26706 Enable decreasing or increasing output video width or height if
26707 necessary to keep the original aspect ratio. Possible values:
26708
26709 disable
26710 Scale the video as specified and disable this feature.
26711
26712 decrease
26713 The output video dimensions will automatically be decreased if
26714 needed.
26715
26716 increase
26717 The output video dimensions will automatically be increased if
26718 needed.
26719
26720 One useful instance of this option is that when you know a specific
26721 device's maximum allowed resolution, you can use this to limit the
26722 output video to that, while retaining the aspect ratio. For
26723 example, device A allows 1280x720 playback, and your video is
26724 1920x800. Using this option (set it to decrease) and specifying
26725 1280x720 to the command line makes the output 1280x533.
26726
26727 Please note that this is a different thing than specifying -1 for w
26728 or h, you still need to specify the output resolution for this
26729 option to work.
26730
26731 force_divisible_by
26732 Ensures that both the output dimensions, width and height, are
26733 divisible by the given integer when used together with
26734 force_original_aspect_ratio. This works similar to using "-n" in
26735 the w and h options.
26736
26737 This option respects the value set for force_original_aspect_ratio,
26738 increasing or decreasing the resolution accordingly. The video's
26739 aspect ratio may be slightly modified.
26740
26741 This option can be handy if you need to have a video fit within or
26742 exceed a defined resolution using force_original_aspect_ratio but
26743 also have encoder restrictions on width or height divisibility.
26744
26745 The values of the w and h options are expressions containing the
26746 following constants:
26747
26748 in_w
26749 in_h
26750 The input width and height
26751
26752 iw
26753 ih These are the same as in_w and in_h.
26754
26755 out_w
26756 out_h
26757 The output (scaled) width and height
26758
26759 ow
26760 oh These are the same as out_w and out_h
26761
26762 a The same as iw / ih
26763
26764 sar input sample aspect ratio
26765
26766 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
26767
26768 hsub
26769 vsub
26770 horizontal and vertical input chroma subsample values. For example
26771 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
26772
26773 ohsub
26774 ovsub
26775 horizontal and vertical output chroma subsample values. For example
26776 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
26777
26778 n The (sequential) number of the input frame, starting from 0. Only
26779 available with "eval=frame".
26780
26781 t The presentation timestamp of the input frame, expressed as a
26782 number of seconds. Only available with "eval=frame".
26783
26784 pos The position (byte offset) of the frame in the input stream, or NaN
26785 if this information is unavailable and/or meaningless (for example
26786 in case of synthetic video). Only available with "eval=frame".
26787
26788 Examples
26789
26790 • Scale the input video to a size of 200x100
26791
26792 scale=w=200:h=100
26793
26794 This is equivalent to:
26795
26796 scale=200:100
26797
26798 or:
26799
26800 scale=200x100
26801
26802 • Specify a size abbreviation for the output size:
26803
26804 scale=qcif
26805
26806 which can also be written as:
26807
26808 scale=size=qcif
26809
26810 • Scale the input to 2x:
26811
26812 scale=w=2*iw:h=2*ih
26813
26814 • The above is the same as:
26815
26816 scale=2*in_w:2*in_h
26817
26818 • Scale the input to 2x with forced interlaced scaling:
26819
26820 scale=2*iw:2*ih:interl=1
26821
26822 • Scale the input to half size:
26823
26824 scale=w=iw/2:h=ih/2
26825
26826 • Increase the width, and set the height to the same size:
26827
26828 scale=3/2*iw:ow
26829
26830 • Seek Greek harmony:
26831
26832 scale=iw:1/PHI*iw
26833 scale=ih*PHI:ih
26834
26835 • Increase the height, and set the width to 3/2 of the height:
26836
26837 scale=w=3/2*oh:h=3/5*ih
26838
26839 • Increase the size, making the size a multiple of the chroma
26840 subsample values:
26841
26842 scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
26843
26844 • Increase the width to a maximum of 500 pixels, keeping the same
26845 aspect ratio as the input:
26846
26847 scale=w='min(500\, iw*3/2):h=-1'
26848
26849 • Make pixels square by combining scale and setsar:
26850
26851 scale='trunc(ih*dar):ih',setsar=1/1
26852
26853 • Make pixels square by combining scale and setsar, making sure the
26854 resulting resolution is even (required by some codecs):
26855
26856 scale='trunc(ih*dar/2)*2:trunc(ih/2)*2',setsar=1/1
26857
26858 Commands
26859
26860 This filter supports the following commands:
26861
26862 width, w
26863 height, h
26864 Set the output video dimension expression. The command accepts the
26865 same syntax of the corresponding option.
26866
26867 If the specified expression is not valid, it is kept at its current
26868 value.
26869
26870 scale_cuda
26871 Scale (resize) and convert (pixel format) the input video, using
26872 accelerated CUDA kernels. Setting the output width and height works in
26873 the same way as for the scale filter.
26874
26875 The filter accepts the following options:
26876
26877 w
26878 h Set the output video dimension expression. Default value is the
26879 input dimension.
26880
26881 Allows for the same expressions as the scale filter.
26882
26883 interp_algo
26884 Sets the algorithm used for scaling:
26885
26886 nearest
26887 Nearest neighbour
26888
26889 Used by default if input parameters match the desired output.
26890
26891 bilinear
26892 Bilinear
26893
26894 bicubic
26895 Bicubic
26896
26897 This is the default.
26898
26899 lanczos
26900 Lanczos
26901
26902 format
26903 Controls the output pixel format. By default, or if none is
26904 specified, the input pixel format is used.
26905
26906 The filter does not support converting between YUV and RGB pixel
26907 formats.
26908
26909 passthrough
26910 If set to 0, every frame is processed, even if no conversion is
26911 neccesary. This mode can be useful to use the filter as a buffer
26912 for a downstream frame-consumer that exhausts the limited decoder
26913 frame pool.
26914
26915 If set to 1, frames are passed through as-is if they match the
26916 desired output parameters. This is the default behaviour.
26917
26918 param
26919 Algorithm-Specific parameter.
26920
26921 Affects the curves of the bicubic algorithm.
26922
26923 force_original_aspect_ratio
26924 force_divisible_by
26925 Work the same as the identical scale filter options.
26926
26927 Examples
26928
26929 • Scale input to 720p, keeping aspect ratio and ensuring the output
26930 is yuv420p.
26931
26932 scale_cuda=-2:720:format=yuv420p
26933
26934 • Upscale to 4K using nearest neighbour algorithm.
26935
26936 scale_cuda=4096:2160:interp_algo=nearest
26937
26938 • Don't do any conversion or scaling, but copy all input frames into
26939 newly allocated ones. This can be useful to deal with a filter and
26940 encode chain that otherwise exhausts the decoders frame pool.
26941
26942 scale_cuda=passthrough=0
26943
26944 scale_npp
26945 Use the NVIDIA Performance Primitives (libnpp) to perform scaling
26946 and/or pixel format conversion on CUDA video frames. Setting the output
26947 width and height works in the same way as for the scale filter.
26948
26949 The following additional options are accepted:
26950
26951 format
26952 The pixel format of the output CUDA frames. If set to the string
26953 "same" (the default), the input format will be kept. Note that
26954 automatic format negotiation and conversion is not yet supported
26955 for hardware frames
26956
26957 interp_algo
26958 The interpolation algorithm used for resizing. One of the
26959 following:
26960
26961 nn Nearest neighbour.
26962
26963 linear
26964 cubic
26965 cubic2p_bspline
26966 2-parameter cubic (B=1, C=0)
26967
26968 cubic2p_catmullrom
26969 2-parameter cubic (B=0, C=1/2)
26970
26971 cubic2p_b05c03
26972 2-parameter cubic (B=1/2, C=3/10)
26973
26974 super
26975 Supersampling
26976
26977 lanczos
26978 force_original_aspect_ratio
26979 Enable decreasing or increasing output video width or height if
26980 necessary to keep the original aspect ratio. Possible values:
26981
26982 disable
26983 Scale the video as specified and disable this feature.
26984
26985 decrease
26986 The output video dimensions will automatically be decreased if
26987 needed.
26988
26989 increase
26990 The output video dimensions will automatically be increased if
26991 needed.
26992
26993 One useful instance of this option is that when you know a specific
26994 device's maximum allowed resolution, you can use this to limit the
26995 output video to that, while retaining the aspect ratio. For
26996 example, device A allows 1280x720 playback, and your video is
26997 1920x800. Using this option (set it to decrease) and specifying
26998 1280x720 to the command line makes the output 1280x533.
26999
27000 Please note that this is a different thing than specifying -1 for w
27001 or h, you still need to specify the output resolution for this
27002 option to work.
27003
27004 force_divisible_by
27005 Ensures that both the output dimensions, width and height, are
27006 divisible by the given integer when used together with
27007 force_original_aspect_ratio. This works similar to using "-n" in
27008 the w and h options.
27009
27010 This option respects the value set for force_original_aspect_ratio,
27011 increasing or decreasing the resolution accordingly. The video's
27012 aspect ratio may be slightly modified.
27013
27014 This option can be handy if you need to have a video fit within or
27015 exceed a defined resolution using force_original_aspect_ratio but
27016 also have encoder restrictions on width or height divisibility.
27017
27018 eval
27019 Specify when to evaluate width and height expression. It accepts
27020 the following values:
27021
27022 init
27023 Only evaluate expressions once during the filter initialization
27024 or when a command is processed.
27025
27026 frame
27027 Evaluate expressions for each incoming frame.
27028
27029 The values of the w and h options are expressions containing the
27030 following constants:
27031
27032 in_w
27033 in_h
27034 The input width and height
27035
27036 iw
27037 ih These are the same as in_w and in_h.
27038
27039 out_w
27040 out_h
27041 The output (scaled) width and height
27042
27043 ow
27044 oh These are the same as out_w and out_h
27045
27046 a The same as iw / ih
27047
27048 sar input sample aspect ratio
27049
27050 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
27051
27052 n The (sequential) number of the input frame, starting from 0. Only
27053 available with "eval=frame".
27054
27055 t The presentation timestamp of the input frame, expressed as a
27056 number of seconds. Only available with "eval=frame".
27057
27058 pos The position (byte offset) of the frame in the input stream, or NaN
27059 if this information is unavailable and/or meaningless (for example
27060 in case of synthetic video). Only available with "eval=frame".
27061
27062 scale2ref
27063 Scale (resize) the input video, based on a reference video.
27064
27065 See the scale filter for available options, scale2ref supports the same
27066 but uses the reference video instead of the main input as basis.
27067 scale2ref also supports the following additional constants for the w
27068 and h options:
27069
27070 main_w
27071 main_h
27072 The main input video's width and height
27073
27074 main_a
27075 The same as main_w / main_h
27076
27077 main_sar
27078 The main input video's sample aspect ratio
27079
27080 main_dar, mdar
27081 The main input video's display aspect ratio. Calculated from
27082 "(main_w / main_h) * main_sar".
27083
27084 main_hsub
27085 main_vsub
27086 The main input video's horizontal and vertical chroma subsample
27087 values. For example for the pixel format "yuv422p" hsub is 2 and
27088 vsub is 1.
27089
27090 main_n
27091 The (sequential) number of the main input frame, starting from 0.
27092 Only available with "eval=frame".
27093
27094 main_t
27095 The presentation timestamp of the main input frame, expressed as a
27096 number of seconds. Only available with "eval=frame".
27097
27098 main_pos
27099 The position (byte offset) of the frame in the main input stream,
27100 or NaN if this information is unavailable and/or meaningless (for
27101 example in case of synthetic video). Only available with
27102 "eval=frame".
27103
27104 Examples
27105
27106 • Scale a subtitle stream (b) to match the main video (a) in size
27107 before overlaying
27108
27109 'scale2ref[b][a];[a][b]overlay'
27110
27111 • Scale a logo to 1/10th the height of a video, while preserving its
27112 display aspect ratio.
27113
27114 [logo-in][video-in]scale2ref=w=oh*mdar:h=ih/10[logo-out][video-out]
27115
27116 Commands
27117
27118 This filter supports the following commands:
27119
27120 width, w
27121 height, h
27122 Set the output video dimension expression. The command accepts the
27123 same syntax of the corresponding option.
27124
27125 If the specified expression is not valid, it is kept at its current
27126 value.
27127
27128 scale2ref_npp
27129 Use the NVIDIA Performance Primitives (libnpp) to scale (resize) the
27130 input video, based on a reference video.
27131
27132 See the scale_npp filter for available options, scale2ref_npp supports
27133 the same but uses the reference video instead of the main input as
27134 basis. scale2ref_npp also supports the following additional constants
27135 for the w and h options:
27136
27137 main_w
27138 main_h
27139 The main input video's width and height
27140
27141 main_a
27142 The same as main_w / main_h
27143
27144 main_sar
27145 The main input video's sample aspect ratio
27146
27147 main_dar, mdar
27148 The main input video's display aspect ratio. Calculated from
27149 "(main_w / main_h) * main_sar".
27150
27151 main_n
27152 The (sequential) number of the main input frame, starting from 0.
27153 Only available with "eval=frame".
27154
27155 main_t
27156 The presentation timestamp of the main input frame, expressed as a
27157 number of seconds. Only available with "eval=frame".
27158
27159 main_pos
27160 The position (byte offset) of the frame in the main input stream,
27161 or NaN if this information is unavailable and/or meaningless (for
27162 example in case of synthetic video). Only available with
27163 "eval=frame".
27164
27165 Examples
27166
27167 • Scale a subtitle stream (b) to match the main video (a) in size
27168 before overlaying
27169
27170 'scale2ref_npp[b][a];[a][b]overlay_cuda'
27171
27172 • Scale a logo to 1/10th the height of a video, while preserving its
27173 display aspect ratio.
27174
27175 [logo-in][video-in]scale2ref_npp=w=oh*mdar:h=ih/10[logo-out][video-out]
27176
27177 scharr
27178 Apply scharr operator to input video stream.
27179
27180 The filter accepts the following option:
27181
27182 planes
27183 Set which planes will be processed, unprocessed planes will be
27184 copied. By default value 0xf, all planes will be processed.
27185
27186 scale
27187 Set value which will be multiplied with filtered result.
27188
27189 delta
27190 Set value which will be added to filtered result.
27191
27192 Commands
27193
27194 This filter supports the all above options as commands.
27195
27196 scroll
27197 Scroll input video horizontally and/or vertically by constant speed.
27198
27199 The filter accepts the following options:
27200
27201 horizontal, h
27202 Set the horizontal scrolling speed. Default is 0. Allowed range is
27203 from -1 to 1. Negative values changes scrolling direction.
27204
27205 vertical, v
27206 Set the vertical scrolling speed. Default is 0. Allowed range is
27207 from -1 to 1. Negative values changes scrolling direction.
27208
27209 hpos
27210 Set the initial horizontal scrolling position. Default is 0.
27211 Allowed range is from 0 to 1.
27212
27213 vpos
27214 Set the initial vertical scrolling position. Default is 0. Allowed
27215 range is from 0 to 1.
27216
27217 Commands
27218
27219 This filter supports the following commands:
27220
27221 horizontal, h
27222 Set the horizontal scrolling speed.
27223
27224 vertical, v
27225 Set the vertical scrolling speed.
27226
27227 scdet
27228 Detect video scene change.
27229
27230 This filter sets frame metadata with mafd between frame, the scene
27231 score, and forward the frame to the next filter, so they can use these
27232 metadata to detect scene change or others.
27233
27234 In addition, this filter logs a message and sets frame metadata when it
27235 detects a scene change by threshold.
27236
27237 "lavfi.scd.mafd" metadata keys are set with mafd for every frame.
27238
27239 "lavfi.scd.score" metadata keys are set with scene change score for
27240 every frame to detect scene change.
27241
27242 "lavfi.scd.time" metadata keys are set with current filtered frame time
27243 which detect scene change with threshold.
27244
27245 The filter accepts the following options:
27246
27247 threshold, t
27248 Set the scene change detection threshold as a percentage of maximum
27249 change. Good values are in the "[8.0, 14.0]" range. The range for
27250 threshold is "[0., 100.]".
27251
27252 Default value is 10..
27253
27254 sc_pass, s
27255 Set the flag to pass scene change frames to the next filter.
27256 Default value is 0 You can enable it if you want to get snapshot of
27257 scene change frames only.
27258
27259 selectivecolor
27260 Adjust cyan, magenta, yellow and black (CMYK) to certain ranges of
27261 colors (such as "reds", "yellows", "greens", "cyans", ...). The
27262 adjustment range is defined by the "purity" of the color (that is, how
27263 saturated it already is).
27264
27265 This filter is similar to the Adobe Photoshop Selective Color tool.
27266
27267 The filter accepts the following options:
27268
27269 correction_method
27270 Select color correction method.
27271
27272 Available values are:
27273
27274 absolute
27275 Specified adjustments are applied "as-is" (added/subtracted to
27276 original pixel component value).
27277
27278 relative
27279 Specified adjustments are relative to the original component
27280 value.
27281
27282 Default is "absolute".
27283
27284 reds
27285 Adjustments for red pixels (pixels where the red component is the
27286 maximum)
27287
27288 yellows
27289 Adjustments for yellow pixels (pixels where the blue component is
27290 the minimum)
27291
27292 greens
27293 Adjustments for green pixels (pixels where the green component is
27294 the maximum)
27295
27296 cyans
27297 Adjustments for cyan pixels (pixels where the red component is the
27298 minimum)
27299
27300 blues
27301 Adjustments for blue pixels (pixels where the blue component is the
27302 maximum)
27303
27304 magentas
27305 Adjustments for magenta pixels (pixels where the green component is
27306 the minimum)
27307
27308 whites
27309 Adjustments for white pixels (pixels where all components are
27310 greater than 128)
27311
27312 neutrals
27313 Adjustments for all pixels except pure black and pure white
27314
27315 blacks
27316 Adjustments for black pixels (pixels where all components are
27317 lesser than 128)
27318
27319 psfile
27320 Specify a Photoshop selective color file (".asv") to import the
27321 settings from.
27322
27323 All the adjustment settings (reds, yellows, ...) accept up to 4 space
27324 separated floating point adjustment values in the [-1,1] range,
27325 respectively to adjust the amount of cyan, magenta, yellow and black
27326 for the pixels of its range.
27327
27328 Examples
27329
27330 • Increase cyan by 50% and reduce yellow by 33% in every green areas,
27331 and increase magenta by 27% in blue areas:
27332
27333 selectivecolor=greens=.5 0 -.33 0:blues=0 .27
27334
27335 • Use a Photoshop selective color preset:
27336
27337 selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
27338
27339 separatefields
27340 The "separatefields" takes a frame-based video input and splits each
27341 frame into its components fields, producing a new half height clip with
27342 twice the frame rate and twice the frame count.
27343
27344 This filter use field-dominance information in frame to decide which of
27345 each pair of fields to place first in the output. If it gets it wrong
27346 use setfield filter before "separatefields" filter.
27347
27348 setdar, setsar
27349 The "setdar" filter sets the Display Aspect Ratio for the filter output
27350 video.
27351
27352 This is done by changing the specified Sample (aka Pixel) Aspect Ratio,
27353 according to the following equation:
27354
27355 <DAR> = <HORIZONTAL_RESOLUTION> / <VERTICAL_RESOLUTION> * <SAR>
27356
27357 Keep in mind that the "setdar" filter does not modify the pixel
27358 dimensions of the video frame. Also, the display aspect ratio set by
27359 this filter may be changed by later filters in the filterchain, e.g. in
27360 case of scaling or if another "setdar" or a "setsar" filter is applied.
27361
27362 The "setsar" filter sets the Sample (aka Pixel) Aspect Ratio for the
27363 filter output video.
27364
27365 Note that as a consequence of the application of this filter, the
27366 output display aspect ratio will change according to the equation
27367 above.
27368
27369 Keep in mind that the sample aspect ratio set by the "setsar" filter
27370 may be changed by later filters in the filterchain, e.g. if another
27371 "setsar" or a "setdar" filter is applied.
27372
27373 It accepts the following parameters:
27374
27375 r, ratio, dar ("setdar" only), sar ("setsar" only)
27376 Set the aspect ratio used by the filter.
27377
27378 The parameter can be a floating point number string, an expression,
27379 or a string of the form num:den, where num and den are the
27380 numerator and denominator of the aspect ratio. If the parameter is
27381 not specified, it is assumed the value "0". In case the form
27382 "num:den" is used, the ":" character should be escaped.
27383
27384 max Set the maximum integer value to use for expressing numerator and
27385 denominator when reducing the expressed aspect ratio to a rational.
27386 Default value is 100.
27387
27388 The parameter sar is an expression containing the following constants:
27389
27390 E, PI, PHI
27391 These are approximated values for the mathematical constants e
27392 (Euler's number), pi (Greek pi), and phi (the golden ratio).
27393
27394 w, h
27395 The input width and height.
27396
27397 a These are the same as w / h.
27398
27399 sar The input sample aspect ratio.
27400
27401 dar The input display aspect ratio. It is the same as (w / h) * sar.
27402
27403 hsub, vsub
27404 Horizontal and vertical chroma subsample values. For example, for
27405 the pixel format "yuv422p" hsub is 2 and vsub is 1.
27406
27407 Examples
27408
27409 • To change the display aspect ratio to 16:9, specify one of the
27410 following:
27411
27412 setdar=dar=1.77777
27413 setdar=dar=16/9
27414
27415 • To change the sample aspect ratio to 10:11, specify:
27416
27417 setsar=sar=10/11
27418
27419 • To set a display aspect ratio of 16:9, and specify a maximum
27420 integer value of 1000 in the aspect ratio reduction, use the
27421 command:
27422
27423 setdar=ratio=16/9:max=1000
27424
27425 setfield
27426 Force field for the output video frame.
27427
27428 The "setfield" filter marks the interlace type field for the output
27429 frames. It does not change the input frame, but only sets the
27430 corresponding property, which affects how the frame is treated by
27431 following filters (e.g. "fieldorder" or "yadif").
27432
27433 The filter accepts the following options:
27434
27435 mode
27436 Available values are:
27437
27438 auto
27439 Keep the same field property.
27440
27441 bff Mark the frame as bottom-field-first.
27442
27443 tff Mark the frame as top-field-first.
27444
27445 prog
27446 Mark the frame as progressive.
27447
27448 setparams
27449 Force frame parameter for the output video frame.
27450
27451 The "setparams" filter marks interlace and color range for the output
27452 frames. It does not change the input frame, but only sets the
27453 corresponding property, which affects how the frame is treated by
27454 filters/encoders.
27455
27456 field_mode
27457 Available values are:
27458
27459 auto
27460 Keep the same field property (default).
27461
27462 bff Mark the frame as bottom-field-first.
27463
27464 tff Mark the frame as top-field-first.
27465
27466 prog
27467 Mark the frame as progressive.
27468
27469 range
27470 Available values are:
27471
27472 auto
27473 Keep the same color range property (default).
27474
27475 unspecified, unknown
27476 Mark the frame as unspecified color range.
27477
27478 limited, tv, mpeg
27479 Mark the frame as limited range.
27480
27481 full, pc, jpeg
27482 Mark the frame as full range.
27483
27484 color_primaries
27485 Set the color primaries. Available values are:
27486
27487 auto
27488 Keep the same color primaries property (default).
27489
27490 bt709
27491 unknown
27492 bt470m
27493 bt470bg
27494 smpte170m
27495 smpte240m
27496 film
27497 bt2020
27498 smpte428
27499 smpte431
27500 smpte432
27501 jedec-p22
27502 color_trc
27503 Set the color transfer. Available values are:
27504
27505 auto
27506 Keep the same color trc property (default).
27507
27508 bt709
27509 unknown
27510 bt470m
27511 bt470bg
27512 smpte170m
27513 smpte240m
27514 linear
27515 log100
27516 log316
27517 iec61966-2-4
27518 bt1361e
27519 iec61966-2-1
27520 bt2020-10
27521 bt2020-12
27522 smpte2084
27523 smpte428
27524 arib-std-b67
27525 colorspace
27526 Set the colorspace. Available values are:
27527
27528 auto
27529 Keep the same colorspace property (default).
27530
27531 gbr
27532 bt709
27533 unknown
27534 fcc
27535 bt470bg
27536 smpte170m
27537 smpte240m
27538 ycgco
27539 bt2020nc
27540 bt2020c
27541 smpte2085
27542 chroma-derived-nc
27543 chroma-derived-c
27544 ictcp
27545
27546 sharpen_npp
27547 Use the NVIDIA Performance Primitives (libnpp) to perform image
27548 sharpening with border control.
27549
27550 The following additional options are accepted:
27551
27552 border_type
27553 Type of sampling to be used ad frame borders. One of the following:
27554
27555 replicate
27556 Replicate pixel values.
27557
27558 shear
27559 Apply shear transform to input video.
27560
27561 This filter supports the following options:
27562
27563 shx Shear factor in X-direction. Default value is 0. Allowed range is
27564 from -2 to 2.
27565
27566 shy Shear factor in Y-direction. Default value is 0. Allowed range is
27567 from -2 to 2.
27568
27569 fillcolor, c
27570 Set the color used to fill the output area not covered by the
27571 transformed video. For the general syntax of this option, check the
27572 "Color" section in the ffmpeg-utils manual. If the special value
27573 "none" is selected then no background is printed (useful for
27574 example if the background is never shown).
27575
27576 Default value is "black".
27577
27578 interp
27579 Set interpolation type. Can be "bilinear" or "nearest". Default is
27580 "bilinear".
27581
27582 Commands
27583
27584 This filter supports the all above options as commands.
27585
27586 showinfo
27587 Show a line containing various information for each input video frame.
27588 The input video is not modified.
27589
27590 This filter supports the following options:
27591
27592 checksum
27593 Calculate checksums of each plane. By default enabled.
27594
27595 The shown line contains a sequence of key/value pairs of the form
27596 key:value.
27597
27598 The following values are shown in the output:
27599
27600 n The (sequential) number of the input frame, starting from 0.
27601
27602 pts The Presentation TimeStamp of the input frame, expressed as a
27603 number of time base units. The time base unit depends on the filter
27604 input pad.
27605
27606 pts_time
27607 The Presentation TimeStamp of the input frame, expressed as a
27608 number of seconds.
27609
27610 pos The position of the frame in the input stream, or -1 if this
27611 information is unavailable and/or meaningless (for example in case
27612 of synthetic video).
27613
27614 fmt The pixel format name.
27615
27616 sar The sample aspect ratio of the input frame, expressed in the form
27617 num/den.
27618
27619 s The size of the input frame. For the syntax of this option, check
27620 the "Video size" section in the ffmpeg-utils manual.
27621
27622 i The type of interlaced mode ("P" for "progressive", "T" for top
27623 field first, "B" for bottom field first).
27624
27625 iskey
27626 This is 1 if the frame is a key frame, 0 otherwise.
27627
27628 type
27629 The picture type of the input frame ("I" for an I-frame, "P" for a
27630 P-frame, "B" for a B-frame, or "?" for an unknown type). Also
27631 refer to the documentation of the "AVPictureType" enum and of the
27632 "av_get_picture_type_char" function defined in libavutil/avutil.h.
27633
27634 checksum
27635 The Adler-32 checksum (printed in hexadecimal) of all the planes of
27636 the input frame.
27637
27638 plane_checksum
27639 The Adler-32 checksum (printed in hexadecimal) of each plane of the
27640 input frame, expressed in the form "[c0 c1 c2 c3]".
27641
27642 mean
27643 The mean value of pixels in each plane of the input frame,
27644 expressed in the form "[mean0 mean1 mean2 mean3]".
27645
27646 stdev
27647 The standard deviation of pixel values in each plane of the input
27648 frame, expressed in the form "[stdev0 stdev1 stdev2 stdev3]".
27649
27650 showpalette
27651 Displays the 256 colors palette of each frame. This filter is only
27652 relevant for pal8 pixel format frames.
27653
27654 It accepts the following option:
27655
27656 s Set the size of the box used to represent one palette color entry.
27657 Default is 30 (for a "30x30" pixel box).
27658
27659 shuffleframes
27660 Reorder and/or duplicate and/or drop video frames.
27661
27662 It accepts the following parameters:
27663
27664 mapping
27665 Set the destination indexes of input frames. This is space or '|'
27666 separated list of indexes that maps input frames to output frames.
27667 Number of indexes also sets maximal value that each index may have.
27668 '-1' index have special meaning and that is to drop frame.
27669
27670 The first frame has the index 0. The default is to keep the input
27671 unchanged.
27672
27673 Examples
27674
27675 • Swap second and third frame of every three frames of the input:
27676
27677 ffmpeg -i INPUT -vf "shuffleframes=0 2 1" OUTPUT
27678
27679 • Swap 10th and 1st frame of every ten frames of the input:
27680
27681 ffmpeg -i INPUT -vf "shuffleframes=9 1 2 3 4 5 6 7 8 0" OUTPUT
27682
27683 shufflepixels
27684 Reorder pixels in video frames.
27685
27686 This filter accepts the following options:
27687
27688 direction, d
27689 Set shuffle direction. Can be forward or inverse direction.
27690 Default direction is forward.
27691
27692 mode, m
27693 Set shuffle mode. Can be horizontal, vertical or block mode.
27694
27695 width, w
27696 height, h
27697 Set shuffle block_size. In case of horizontal shuffle mode only
27698 width part of size is used, and in case of vertical shuffle mode
27699 only height part of size is used.
27700
27701 seed, s
27702 Set random seed used with shuffling pixels. Mainly useful to set to
27703 be able to reverse filtering process to get original input. For
27704 example, to reverse forward shuffle you need to use same parameters
27705 and exact same seed and to set direction to inverse.
27706
27707 shuffleplanes
27708 Reorder and/or duplicate video planes.
27709
27710 It accepts the following parameters:
27711
27712 map0
27713 The index of the input plane to be used as the first output plane.
27714
27715 map1
27716 The index of the input plane to be used as the second output plane.
27717
27718 map2
27719 The index of the input plane to be used as the third output plane.
27720
27721 map3
27722 The index of the input plane to be used as the fourth output plane.
27723
27724 The first plane has the index 0. The default is to keep the input
27725 unchanged.
27726
27727 Examples
27728
27729 • Swap the second and third planes of the input:
27730
27731 ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
27732
27733 signalstats
27734 Evaluate various visual metrics that assist in determining issues
27735 associated with the digitization of analog video media.
27736
27737 By default the filter will log these metadata values:
27738
27739 YMIN
27740 Display the minimal Y value contained within the input frame.
27741 Expressed in range of [0-255].
27742
27743 YLOW
27744 Display the Y value at the 10% percentile within the input frame.
27745 Expressed in range of [0-255].
27746
27747 YAVG
27748 Display the average Y value within the input frame. Expressed in
27749 range of [0-255].
27750
27751 YHIGH
27752 Display the Y value at the 90% percentile within the input frame.
27753 Expressed in range of [0-255].
27754
27755 YMAX
27756 Display the maximum Y value contained within the input frame.
27757 Expressed in range of [0-255].
27758
27759 UMIN
27760 Display the minimal U value contained within the input frame.
27761 Expressed in range of [0-255].
27762
27763 ULOW
27764 Display the U value at the 10% percentile within the input frame.
27765 Expressed in range of [0-255].
27766
27767 UAVG
27768 Display the average U value within the input frame. Expressed in
27769 range of [0-255].
27770
27771 UHIGH
27772 Display the U value at the 90% percentile within the input frame.
27773 Expressed in range of [0-255].
27774
27775 UMAX
27776 Display the maximum U value contained within the input frame.
27777 Expressed in range of [0-255].
27778
27779 VMIN
27780 Display the minimal V value contained within the input frame.
27781 Expressed in range of [0-255].
27782
27783 VLOW
27784 Display the V value at the 10% percentile within the input frame.
27785 Expressed in range of [0-255].
27786
27787 VAVG
27788 Display the average V value within the input frame. Expressed in
27789 range of [0-255].
27790
27791 VHIGH
27792 Display the V value at the 90% percentile within the input frame.
27793 Expressed in range of [0-255].
27794
27795 VMAX
27796 Display the maximum V value contained within the input frame.
27797 Expressed in range of [0-255].
27798
27799 SATMIN
27800 Display the minimal saturation value contained within the input
27801 frame. Expressed in range of [0-~181.02].
27802
27803 SATLOW
27804 Display the saturation value at the 10% percentile within the input
27805 frame. Expressed in range of [0-~181.02].
27806
27807 SATAVG
27808 Display the average saturation value within the input frame.
27809 Expressed in range of [0-~181.02].
27810
27811 SATHIGH
27812 Display the saturation value at the 90% percentile within the input
27813 frame. Expressed in range of [0-~181.02].
27814
27815 SATMAX
27816 Display the maximum saturation value contained within the input
27817 frame. Expressed in range of [0-~181.02].
27818
27819 HUEMED
27820 Display the median value for hue within the input frame. Expressed
27821 in range of [0-360].
27822
27823 HUEAVG
27824 Display the average value for hue within the input frame. Expressed
27825 in range of [0-360].
27826
27827 YDIF
27828 Display the average of sample value difference between all values
27829 of the Y plane in the current frame and corresponding values of the
27830 previous input frame. Expressed in range of [0-255].
27831
27832 UDIF
27833 Display the average of sample value difference between all values
27834 of the U plane in the current frame and corresponding values of the
27835 previous input frame. Expressed in range of [0-255].
27836
27837 VDIF
27838 Display the average of sample value difference between all values
27839 of the V plane in the current frame and corresponding values of the
27840 previous input frame. Expressed in range of [0-255].
27841
27842 YBITDEPTH
27843 Display bit depth of Y plane in current frame. Expressed in range
27844 of [0-16].
27845
27846 UBITDEPTH
27847 Display bit depth of U plane in current frame. Expressed in range
27848 of [0-16].
27849
27850 VBITDEPTH
27851 Display bit depth of V plane in current frame. Expressed in range
27852 of [0-16].
27853
27854 The filter accepts the following options:
27855
27856 stat
27857 out stat specify an additional form of image analysis. out output
27858 video with the specified type of pixel highlighted.
27859
27860 Both options accept the following values:
27861
27862 tout
27863 Identify temporal outliers pixels. A temporal outlier is a
27864 pixel unlike the neighboring pixels of the same field. Examples
27865 of temporal outliers include the results of video dropouts,
27866 head clogs, or tape tracking issues.
27867
27868 vrep
27869 Identify vertical line repetition. Vertical line repetition
27870 includes similar rows of pixels within a frame. In born-digital
27871 video vertical line repetition is common, but this pattern is
27872 uncommon in video digitized from an analog source. When it
27873 occurs in video that results from the digitization of an analog
27874 source it can indicate concealment from a dropout compensator.
27875
27876 brng
27877 Identify pixels that fall outside of legal broadcast range.
27878
27879 color, c
27880 Set the highlight color for the out option. The default color is
27881 yellow.
27882
27883 Examples
27884
27885 • Output data of various video metrics:
27886
27887 ffprobe -f lavfi movie=example.mov,signalstats="stat=tout+vrep+brng" -show_frames
27888
27889 • Output specific data about the minimum and maximum values of the Y
27890 plane per frame:
27891
27892 ffprobe -f lavfi movie=example.mov,signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN
27893
27894 • Playback video while highlighting pixels that are outside of
27895 broadcast range in red.
27896
27897 ffplay example.mov -vf signalstats="out=brng:color=red"
27898
27899 • Playback video with signalstats metadata drawn over the frame.
27900
27901 ffplay example.mov -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=FreeSerif.ttf:textfile=signalstat_drawtext.txt
27902
27903 The contents of signalstat_drawtext.txt used in the command are:
27904
27905 time %{pts:hms}
27906 Y (%{metadata:lavfi.signalstats.YMIN}-%{metadata:lavfi.signalstats.YMAX})
27907 U (%{metadata:lavfi.signalstats.UMIN}-%{metadata:lavfi.signalstats.UMAX})
27908 V (%{metadata:lavfi.signalstats.VMIN}-%{metadata:lavfi.signalstats.VMAX})
27909 saturation maximum: %{metadata:lavfi.signalstats.SATMAX}
27910
27911 signature
27912 Calculates the MPEG-7 Video Signature. The filter can handle more than
27913 one input. In this case the matching between the inputs can be
27914 calculated additionally. The filter always passes through the first
27915 input. The signature of each stream can be written into a file.
27916
27917 It accepts the following options:
27918
27919 detectmode
27920 Enable or disable the matching process.
27921
27922 Available values are:
27923
27924 off Disable the calculation of a matching (default).
27925
27926 full
27927 Calculate the matching for the whole video and output whether
27928 the whole video matches or only parts.
27929
27930 fast
27931 Calculate only until a matching is found or the video ends.
27932 Should be faster in some cases.
27933
27934 nb_inputs
27935 Set the number of inputs. The option value must be a non negative
27936 integer. Default value is 1.
27937
27938 filename
27939 Set the path to which the output is written. If there is more than
27940 one input, the path must be a prototype, i.e. must contain %d or
27941 %0nd (where n is a positive integer), that will be replaced with
27942 the input number. If no filename is specified, no output will be
27943 written. This is the default.
27944
27945 format
27946 Choose the output format.
27947
27948 Available values are:
27949
27950 binary
27951 Use the specified binary representation (default).
27952
27953 xml Use the specified xml representation.
27954
27955 th_d
27956 Set threshold to detect one word as similar. The option value must
27957 be an integer greater than zero. The default value is 9000.
27958
27959 th_dc
27960 Set threshold to detect all words as similar. The option value must
27961 be an integer greater than zero. The default value is 60000.
27962
27963 th_xh
27964 Set threshold to detect frames as similar. The option value must be
27965 an integer greater than zero. The default value is 116.
27966
27967 th_di
27968 Set the minimum length of a sequence in frames to recognize it as
27969 matching sequence. The option value must be a non negative integer
27970 value. The default value is 0.
27971
27972 th_it
27973 Set the minimum relation, that matching frames to all frames must
27974 have. The option value must be a double value between 0 and 1. The
27975 default value is 0.5.
27976
27977 Examples
27978
27979 • To calculate the signature of an input video and store it in
27980 signature.bin:
27981
27982 ffmpeg -i input.mkv -vf signature=filename=signature.bin -map 0:v -f null -
27983
27984 • To detect whether two videos match and store the signatures in XML
27985 format in signature0.xml and signature1.xml:
27986
27987 ffmpeg -i input1.mkv -i input2.mkv -filter_complex "[0:v][1:v] signature=nb_inputs=2:detectmode=full:format=xml:filename=signature%d.xml" -map :v -f null -
27988
27989 siti
27990 Calculate Spatial Info (SI) and Temporal Info (TI) scores for a video,
27991 as defined in ITU-T P.910: Subjective video quality assessment methods
27992 for multimedia applications. Available PDF at
27993 <https://www.itu.int/rec/T-REC-P.910-199909-S/en >.
27994
27995 It accepts the following option:
27996
27997 print_summary
27998 If set to 1, Summary statistics will be printed to the console.
27999 Default 0.
28000
28001 Examples
28002
28003 • To calculate SI/TI metrics and print summary:
28004
28005 ffmpeg -i input.mp4 -vf siti=print_summary=1 -f null -
28006
28007 smartblur
28008 Blur the input video without impacting the outlines.
28009
28010 It accepts the following options:
28011
28012 luma_radius, lr
28013 Set the luma radius. The option value must be a float number in the
28014 range [0.1,5.0] that specifies the variance of the gaussian filter
28015 used to blur the image (slower if larger). Default value is 1.0.
28016
28017 luma_strength, ls
28018 Set the luma strength. The option value must be a float number in
28019 the range [-1.0,1.0] that configures the blurring. A value included
28020 in [0.0,1.0] will blur the image whereas a value included in
28021 [-1.0,0.0] will sharpen the image. Default value is 1.0.
28022
28023 luma_threshold, lt
28024 Set the luma threshold used as a coefficient to determine whether a
28025 pixel should be blurred or not. The option value must be an integer
28026 in the range [-30,30]. A value of 0 will filter all the image, a
28027 value included in [0,30] will filter flat areas and a value
28028 included in [-30,0] will filter edges. Default value is 0.
28029
28030 chroma_radius, cr
28031 Set the chroma radius. The option value must be a float number in
28032 the range [0.1,5.0] that specifies the variance of the gaussian
28033 filter used to blur the image (slower if larger). Default value is
28034 luma_radius.
28035
28036 chroma_strength, cs
28037 Set the chroma strength. The option value must be a float number in
28038 the range [-1.0,1.0] that configures the blurring. A value included
28039 in [0.0,1.0] will blur the image whereas a value included in
28040 [-1.0,0.0] will sharpen the image. Default value is luma_strength.
28041
28042 chroma_threshold, ct
28043 Set the chroma threshold used as a coefficient to determine whether
28044 a pixel should be blurred or not. The option value must be an
28045 integer in the range [-30,30]. A value of 0 will filter all the
28046 image, a value included in [0,30] will filter flat areas and a
28047 value included in [-30,0] will filter edges. Default value is
28048 luma_threshold.
28049
28050 If a chroma option is not explicitly set, the corresponding luma value
28051 is set.
28052
28053 sobel
28054 Apply sobel operator to input video stream.
28055
28056 The filter accepts the following option:
28057
28058 planes
28059 Set which planes will be processed, unprocessed planes will be
28060 copied. By default value 0xf, all planes will be processed.
28061
28062 scale
28063 Set value which will be multiplied with filtered result.
28064
28065 delta
28066 Set value which will be added to filtered result.
28067
28068 Commands
28069
28070 This filter supports the all above options as commands.
28071
28072 spp
28073 Apply a simple postprocessing filter that compresses and decompresses
28074 the image at several (or - in the case of quality level 6 - all) shifts
28075 and average the results.
28076
28077 The filter accepts the following options:
28078
28079 quality
28080 Set quality. This option defines the number of levels for
28081 averaging. It accepts an integer in the range 0-6. If set to 0, the
28082 filter will have no effect. A value of 6 means the higher quality.
28083 For each increment of that value the speed drops by a factor of
28084 approximately 2. Default value is 3.
28085
28086 qp Force a constant quantization parameter. If not set, the filter
28087 will use the QP from the video stream (if available).
28088
28089 mode
28090 Set thresholding mode. Available modes are:
28091
28092 hard
28093 Set hard thresholding (default).
28094
28095 soft
28096 Set soft thresholding (better de-ringing effect, but likely
28097 blurrier).
28098
28099 use_bframe_qp
28100 Enable the use of the QP from the B-Frames if set to 1. Using this
28101 option may cause flicker since the B-Frames have often larger QP.
28102 Default is 0 (not enabled).
28103
28104 Commands
28105
28106 This filter supports the following commands:
28107
28108 quality, level
28109 Set quality level. The value "max" can be used to set the maximum
28110 level, currently 6.
28111
28112 sr
28113 Scale the input by applying one of the super-resolution methods based
28114 on convolutional neural networks. Supported models:
28115
28116 • Super-Resolution Convolutional Neural Network model (SRCNN). See
28117 <https://arxiv.org/abs/1501.00092>.
28118
28119 • Efficient Sub-Pixel Convolutional Neural Network model (ESPCN).
28120 See <https://arxiv.org/abs/1609.05158>.
28121
28122 Training scripts as well as scripts for model file (.pb) saving can be
28123 found at <https://github.com/XueweiMeng/sr/tree/sr_dnn_native>.
28124 Original repository is at
28125 <https://github.com/HighVoltageRocknRoll/sr.git>.
28126
28127 Native model files (.model) can be generated from TensorFlow model
28128 files (.pb) by using tools/python/convert.py
28129
28130 The filter accepts the following options:
28131
28132 dnn_backend
28133 Specify which DNN backend to use for model loading and execution.
28134 This option accepts the following values:
28135
28136 native
28137 Native implementation of DNN loading and execution.
28138
28139 tensorflow
28140 TensorFlow backend. To enable this backend you need to install
28141 the TensorFlow for C library (see
28142 <https://www.tensorflow.org/install/lang_c>) and configure
28143 FFmpeg with "--enable-libtensorflow"
28144
28145 Default value is native.
28146
28147 model
28148 Set path to model file specifying network architecture and its
28149 parameters. Note that different backends use different file
28150 formats. TensorFlow backend can load files for both formats, while
28151 native backend can load files for only its format.
28152
28153 scale_factor
28154 Set scale factor for SRCNN model. Allowed values are 2, 3 and 4.
28155 Default value is 2. Scale factor is necessary for SRCNN model,
28156 because it accepts input upscaled using bicubic upscaling with
28157 proper scale factor.
28158
28159 To get full functionality (such as async execution), please use the
28160 dnn_processing filter.
28161
28162 ssim
28163 Obtain the SSIM (Structural SImilarity Metric) between two input
28164 videos.
28165
28166 This filter takes in input two input videos, the first input is
28167 considered the "main" source and is passed unchanged to the output. The
28168 second input is used as a "reference" video for computing the SSIM.
28169
28170 Both video inputs must have the same resolution and pixel format for
28171 this filter to work correctly. Also it assumes that both inputs have
28172 the same number of frames, which are compared one by one.
28173
28174 The filter stores the calculated SSIM of each frame.
28175
28176 The description of the accepted parameters follows.
28177
28178 stats_file, f
28179 If specified the filter will use the named file to save the SSIM of
28180 each individual frame. When filename equals "-" the data is sent to
28181 standard output.
28182
28183 The file printed if stats_file is selected, contains a sequence of
28184 key/value pairs of the form key:value for each compared couple of
28185 frames.
28186
28187 A description of each shown parameter follows:
28188
28189 n sequential number of the input frame, starting from 1
28190
28191 Y, U, V, R, G, B
28192 SSIM of the compared frames for the component specified by the
28193 suffix.
28194
28195 All SSIM of the compared frames for the whole frame.
28196
28197 dB Same as above but in dB representation.
28198
28199 This filter also supports the framesync options.
28200
28201 Examples
28202
28203 • For example:
28204
28205 movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
28206 [main][ref] ssim="stats_file=stats.log" [out]
28207
28208 On this example the input file being processed is compared with the
28209 reference file ref_movie.mpg. The SSIM of each individual frame is
28210 stored in stats.log.
28211
28212 • Another example with both psnr and ssim at same time:
28213
28214 ffmpeg -i main.mpg -i ref.mpg -lavfi "ssim;[0:v][1:v]psnr" -f null -
28215
28216 • Another example with different containers:
28217
28218 ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]ssim" -f null -
28219
28220 stereo3d
28221 Convert between different stereoscopic image formats.
28222
28223 The filters accept the following options:
28224
28225 in Set stereoscopic image format of input.
28226
28227 Available values for input image formats are:
28228
28229 sbsl
28230 side by side parallel (left eye left, right eye right)
28231
28232 sbsr
28233 side by side crosseye (right eye left, left eye right)
28234
28235 sbs2l
28236 side by side parallel with half width resolution (left eye
28237 left, right eye right)
28238
28239 sbs2r
28240 side by side crosseye with half width resolution (right eye
28241 left, left eye right)
28242
28243 abl
28244 tbl above-below (left eye above, right eye below)
28245
28246 abr
28247 tbr above-below (right eye above, left eye below)
28248
28249 ab2l
28250 tb2l
28251 above-below with half height resolution (left eye above, right
28252 eye below)
28253
28254 ab2r
28255 tb2r
28256 above-below with half height resolution (right eye above, left
28257 eye below)
28258
28259 al alternating frames (left eye first, right eye second)
28260
28261 ar alternating frames (right eye first, left eye second)
28262
28263 irl interleaved rows (left eye has top row, right eye starts on
28264 next row)
28265
28266 irr interleaved rows (right eye has top row, left eye starts on
28267 next row)
28268
28269 icl interleaved columns, left eye first
28270
28271 icr interleaved columns, right eye first
28272
28273 Default value is sbsl.
28274
28275 out Set stereoscopic image format of output.
28276
28277 sbsl
28278 side by side parallel (left eye left, right eye right)
28279
28280 sbsr
28281 side by side crosseye (right eye left, left eye right)
28282
28283 sbs2l
28284 side by side parallel with half width resolution (left eye
28285 left, right eye right)
28286
28287 sbs2r
28288 side by side crosseye with half width resolution (right eye
28289 left, left eye right)
28290
28291 abl
28292 tbl above-below (left eye above, right eye below)
28293
28294 abr
28295 tbr above-below (right eye above, left eye below)
28296
28297 ab2l
28298 tb2l
28299 above-below with half height resolution (left eye above, right
28300 eye below)
28301
28302 ab2r
28303 tb2r
28304 above-below with half height resolution (right eye above, left
28305 eye below)
28306
28307 al alternating frames (left eye first, right eye second)
28308
28309 ar alternating frames (right eye first, left eye second)
28310
28311 irl interleaved rows (left eye has top row, right eye starts on
28312 next row)
28313
28314 irr interleaved rows (right eye has top row, left eye starts on
28315 next row)
28316
28317 arbg
28318 anaglyph red/blue gray (red filter on left eye, blue filter on
28319 right eye)
28320
28321 argg
28322 anaglyph red/green gray (red filter on left eye, green filter
28323 on right eye)
28324
28325 arcg
28326 anaglyph red/cyan gray (red filter on left eye, cyan filter on
28327 right eye)
28328
28329 arch
28330 anaglyph red/cyan half colored (red filter on left eye, cyan
28331 filter on right eye)
28332
28333 arcc
28334 anaglyph red/cyan color (red filter on left eye, cyan filter on
28335 right eye)
28336
28337 arcd
28338 anaglyph red/cyan color optimized with the least squares
28339 projection of dubois (red filter on left eye, cyan filter on
28340 right eye)
28341
28342 agmg
28343 anaglyph green/magenta gray (green filter on left eye, magenta
28344 filter on right eye)
28345
28346 agmh
28347 anaglyph green/magenta half colored (green filter on left eye,
28348 magenta filter on right eye)
28349
28350 agmc
28351 anaglyph green/magenta colored (green filter on left eye,
28352 magenta filter on right eye)
28353
28354 agmd
28355 anaglyph green/magenta color optimized with the least squares
28356 projection of dubois (green filter on left eye, magenta filter
28357 on right eye)
28358
28359 aybg
28360 anaglyph yellow/blue gray (yellow filter on left eye, blue
28361 filter on right eye)
28362
28363 aybh
28364 anaglyph yellow/blue half colored (yellow filter on left eye,
28365 blue filter on right eye)
28366
28367 aybc
28368 anaglyph yellow/blue colored (yellow filter on left eye, blue
28369 filter on right eye)
28370
28371 aybd
28372 anaglyph yellow/blue color optimized with the least squares
28373 projection of dubois (yellow filter on left eye, blue filter on
28374 right eye)
28375
28376 ml mono output (left eye only)
28377
28378 mr mono output (right eye only)
28379
28380 chl checkerboard, left eye first
28381
28382 chr checkerboard, right eye first
28383
28384 icl interleaved columns, left eye first
28385
28386 icr interleaved columns, right eye first
28387
28388 hdmi
28389 HDMI frame pack
28390
28391 Default value is arcd.
28392
28393 Examples
28394
28395 • Convert input video from side by side parallel to anaglyph
28396 yellow/blue dubois:
28397
28398 stereo3d=sbsl:aybd
28399
28400 • Convert input video from above below (left eye above, right eye
28401 below) to side by side crosseye.
28402
28403 stereo3d=abl:sbsr
28404
28405 streamselect, astreamselect
28406 Select video or audio streams.
28407
28408 The filter accepts the following options:
28409
28410 inputs
28411 Set number of inputs. Default is 2.
28412
28413 map Set input indexes to remap to outputs.
28414
28415 Commands
28416
28417 The "streamselect" and "astreamselect" filter supports the following
28418 commands:
28419
28420 map Set input indexes to remap to outputs.
28421
28422 Examples
28423
28424 • Select first 5 seconds 1st stream and rest of time 2nd stream:
28425
28426 sendcmd='5.0 streamselect map 1',streamselect=inputs=2:map=0
28427
28428 • Same as above, but for audio:
28429
28430 asendcmd='5.0 astreamselect map 1',astreamselect=inputs=2:map=0
28431
28432 subtitles
28433 Draw subtitles on top of input video using the libass library.
28434
28435 To enable compilation of this filter you need to configure FFmpeg with
28436 "--enable-libass". This filter also requires a build with libavcodec
28437 and libavformat to convert the passed subtitles file to ASS (Advanced
28438 Substation Alpha) subtitles format.
28439
28440 The filter accepts the following options:
28441
28442 filename, f
28443 Set the filename of the subtitle file to read. It must be
28444 specified.
28445
28446 original_size
28447 Specify the size of the original video, the video for which the ASS
28448 file was composed. For the syntax of this option, check the "Video
28449 size" section in the ffmpeg-utils manual. Due to a misdesign in
28450 ASS aspect ratio arithmetic, this is necessary to correctly scale
28451 the fonts if the aspect ratio has been changed.
28452
28453 fontsdir
28454 Set a directory path containing fonts that can be used by the
28455 filter. These fonts will be used in addition to whatever the font
28456 provider uses.
28457
28458 alpha
28459 Process alpha channel, by default alpha channel is untouched.
28460
28461 charenc
28462 Set subtitles input character encoding. "subtitles" filter only.
28463 Only useful if not UTF-8.
28464
28465 stream_index, si
28466 Set subtitles stream index. "subtitles" filter only.
28467
28468 force_style
28469 Override default style or script info parameters of the subtitles.
28470 It accepts a string containing ASS style format "KEY=VALUE" couples
28471 separated by ",".
28472
28473 If the first key is not specified, it is assumed that the first value
28474 specifies the filename.
28475
28476 For example, to render the file sub.srt on top of the input video, use
28477 the command:
28478
28479 subtitles=sub.srt
28480
28481 which is equivalent to:
28482
28483 subtitles=filename=sub.srt
28484
28485 To render the default subtitles stream from file video.mkv, use:
28486
28487 subtitles=video.mkv
28488
28489 To render the second subtitles stream from that file, use:
28490
28491 subtitles=video.mkv:si=1
28492
28493 To make the subtitles stream from sub.srt appear in 80% transparent
28494 blue "DejaVu Serif", use:
28495
28496 subtitles=sub.srt:force_style='Fontname=DejaVu Serif,PrimaryColour=&HCCFF0000'
28497
28498 super2xsai
28499 Scale the input by 2x and smooth using the Super2xSaI (Scale and
28500 Interpolate) pixel art scaling algorithm.
28501
28502 Useful for enlarging pixel art images without reducing sharpness.
28503
28504 swaprect
28505 Swap two rectangular objects in video.
28506
28507 This filter accepts the following options:
28508
28509 w Set object width.
28510
28511 h Set object height.
28512
28513 x1 Set 1st rect x coordinate.
28514
28515 y1 Set 1st rect y coordinate.
28516
28517 x2 Set 2nd rect x coordinate.
28518
28519 y2 Set 2nd rect y coordinate.
28520
28521 All expressions are evaluated once for each frame.
28522
28523 The all options are expressions containing the following constants:
28524
28525 w
28526 h The input width and height.
28527
28528 a same as w / h
28529
28530 sar input sample aspect ratio
28531
28532 dar input display aspect ratio, it is the same as (w / h) * sar
28533
28534 n The number of the input frame, starting from 0.
28535
28536 t The timestamp expressed in seconds. It's NAN if the input timestamp
28537 is unknown.
28538
28539 pos the position in the file of the input frame, NAN if unknown
28540
28541 Commands
28542
28543 This filter supports the all above options as commands.
28544
28545 swapuv
28546 Swap U & V plane.
28547
28548 tblend
28549 Blend successive video frames.
28550
28551 See blend
28552
28553 telecine
28554 Apply telecine process to the video.
28555
28556 This filter accepts the following options:
28557
28558 first_field
28559 top, t
28560 top field first
28561
28562 bottom, b
28563 bottom field first The default value is "top".
28564
28565 pattern
28566 A string of numbers representing the pulldown pattern you wish to
28567 apply. The default value is 23.
28568
28569 Some typical patterns:
28570
28571 NTSC output (30i):
28572 27.5p: 32222
28573 24p: 23 (classic)
28574 24p: 2332 (preferred)
28575 20p: 33
28576 18p: 334
28577 16p: 3444
28578
28579 PAL output (25i):
28580 27.5p: 12222
28581 24p: 222222222223 ("Euro pulldown")
28582 16.67p: 33
28583 16p: 33333334
28584
28585 thistogram
28586 Compute and draw a color distribution histogram for the input video
28587 across time.
28588
28589 Unlike histogram video filter which only shows histogram of single
28590 input frame at certain time, this filter shows also past histograms of
28591 number of frames defined by "width" option.
28592
28593 The computed histogram is a representation of the color component
28594 distribution in an image.
28595
28596 The filter accepts the following options:
28597
28598 width, w
28599 Set width of single color component output. Default value is 0.
28600 Value of 0 means width will be picked from input video. This also
28601 set number of passed histograms to keep. Allowed range is [0,
28602 8192].
28603
28604 display_mode, d
28605 Set display mode. It accepts the following values:
28606
28607 stack
28608 Per color component graphs are placed below each other.
28609
28610 parade
28611 Per color component graphs are placed side by side.
28612
28613 overlay
28614 Presents information identical to that in the "parade", except
28615 that the graphs representing color components are superimposed
28616 directly over one another.
28617
28618 Default is "stack".
28619
28620 levels_mode, m
28621 Set mode. Can be either "linear", or "logarithmic". Default is
28622 "linear".
28623
28624 components, c
28625 Set what color components to display. Default is 7.
28626
28627 bgopacity, b
28628 Set background opacity. Default is 0.9.
28629
28630 envelope, e
28631 Show envelope. Default is disabled.
28632
28633 ecolor, ec
28634 Set envelope color. Default is "gold".
28635
28636 slide
28637 Set slide mode.
28638
28639 Available values for slide is:
28640
28641 frame
28642 Draw new frame when right border is reached.
28643
28644 replace
28645 Replace old columns with new ones.
28646
28647 scroll
28648 Scroll from right to left.
28649
28650 rscroll
28651 Scroll from left to right.
28652
28653 picture
28654 Draw single picture.
28655
28656 Default is "replace".
28657
28658 threshold
28659 Apply threshold effect to video stream.
28660
28661 This filter needs four video streams to perform thresholding. First
28662 stream is stream we are filtering. Second stream is holding threshold
28663 values, third stream is holding min values, and last, fourth stream is
28664 holding max values.
28665
28666 The filter accepts the following option:
28667
28668 planes
28669 Set which planes will be processed, unprocessed planes will be
28670 copied. By default value 0xf, all planes will be processed.
28671
28672 For example if first stream pixel's component value is less then
28673 threshold value of pixel component from 2nd threshold stream, third
28674 stream value will picked, otherwise fourth stream pixel component value
28675 will be picked.
28676
28677 Using color source filter one can perform various types of
28678 thresholding:
28679
28680 Commands
28681
28682 This filter supports the all options as commands.
28683
28684 Examples
28685
28686 • Binary threshold, using gray color as threshold:
28687
28688 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=black -f lavfi -i color=white -lavfi threshold output.avi
28689
28690 • Inverted binary threshold, using gray color as threshold:
28691
28692 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -f lavfi -i color=black -lavfi threshold output.avi
28693
28694 • Truncate binary threshold, using gray color as threshold:
28695
28696 ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=gray -lavfi threshold output.avi
28697
28698 • Threshold to zero, using gray color as threshold:
28699
28700 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -i 320x240.avi -lavfi threshold output.avi
28701
28702 • Inverted threshold to zero, using gray color as threshold:
28703
28704 ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=white -lavfi threshold output.avi
28705
28706 thumbnail
28707 Select the most representative frame in a given sequence of consecutive
28708 frames.
28709
28710 The filter accepts the following options:
28711
28712 n Set the frames batch size to analyze; in a set of n frames, the
28713 filter will pick one of them, and then handle the next batch of n
28714 frames until the end. Default is 100.
28715
28716 Since the filter keeps track of the whole frames sequence, a bigger n
28717 value will result in a higher memory usage, so a high value is not
28718 recommended.
28719
28720 Examples
28721
28722 • Extract one picture each 50 frames:
28723
28724 thumbnail=50
28725
28726 • Complete example of a thumbnail creation with ffmpeg:
28727
28728 ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
28729
28730 tile
28731 Tile several successive frames together.
28732
28733 The untile filter can do the reverse.
28734
28735 The filter accepts the following options:
28736
28737 layout
28738 Set the grid size in the form "COLUMNSxROWS". Range is upto
28739 UINT_MAX cells. Default is "6x5".
28740
28741 nb_frames
28742 Set the maximum number of frames to render in the given area. It
28743 must be less than or equal to wxh. The default value is 0, meaning
28744 all the area will be used.
28745
28746 margin
28747 Set the outer border margin in pixels. Range is 0 to 1024. Default
28748 is 0.
28749
28750 padding
28751 Set the inner border thickness (i.e. the number of pixels between
28752 frames). For more advanced padding options (such as having
28753 different values for the edges), refer to the pad video filter.
28754 Range is 0 to 1024. Default is 0.
28755
28756 color
28757 Specify the color of the unused area. For the syntax of this
28758 option, check the "Color" section in the ffmpeg-utils manual. The
28759 default value of color is "black".
28760
28761 overlap
28762 Set the number of frames to overlap when tiling several successive
28763 frames together. The value must be between 0 and nb_frames - 1.
28764 Default is 0.
28765
28766 init_padding
28767 Set the number of frames to initially be empty before displaying
28768 first output frame. This controls how soon will one get first
28769 output frame. The value must be between 0 and nb_frames - 1.
28770 Default is 0.
28771
28772 Examples
28773
28774 • Produce 8x8 PNG tiles of all keyframes (-skip_frame nokey) in a
28775 movie:
28776
28777 ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
28778
28779 The -vsync 0 is necessary to prevent ffmpeg from duplicating each
28780 output frame to accommodate the originally detected frame rate.
28781
28782 • Display 5 pictures in an area of "3x2" frames, with 7 pixels
28783 between them, and 2 pixels of initial margin, using mixed flat and
28784 named options:
28785
28786 tile=3x2:nb_frames=5:padding=7:margin=2
28787
28788 tinterlace
28789 Perform various types of temporal field interlacing.
28790
28791 Frames are counted starting from 1, so the first input frame is
28792 considered odd.
28793
28794 The filter accepts the following options:
28795
28796 mode
28797 Specify the mode of the interlacing. This option can also be
28798 specified as a value alone. See below for a list of values for this
28799 option.
28800
28801 Available values are:
28802
28803 merge, 0
28804 Move odd frames into the upper field, even into the lower
28805 field, generating a double height frame at half frame rate.
28806
28807 ------> time
28808 Input:
28809 Frame 1 Frame 2 Frame 3 Frame 4
28810
28811 11111 22222 33333 44444
28812 11111 22222 33333 44444
28813 11111 22222 33333 44444
28814 11111 22222 33333 44444
28815
28816 Output:
28817 11111 33333
28818 22222 44444
28819 11111 33333
28820 22222 44444
28821 11111 33333
28822 22222 44444
28823 11111 33333
28824 22222 44444
28825
28826 drop_even, 1
28827 Only output odd frames, even frames are dropped, generating a
28828 frame with unchanged height at half frame rate.
28829
28830 ------> time
28831 Input:
28832 Frame 1 Frame 2 Frame 3 Frame 4
28833
28834 11111 22222 33333 44444
28835 11111 22222 33333 44444
28836 11111 22222 33333 44444
28837 11111 22222 33333 44444
28838
28839 Output:
28840 11111 33333
28841 11111 33333
28842 11111 33333
28843 11111 33333
28844
28845 drop_odd, 2
28846 Only output even frames, odd frames are dropped, generating a
28847 frame with unchanged height at half frame rate.
28848
28849 ------> time
28850 Input:
28851 Frame 1 Frame 2 Frame 3 Frame 4
28852
28853 11111 22222 33333 44444
28854 11111 22222 33333 44444
28855 11111 22222 33333 44444
28856 11111 22222 33333 44444
28857
28858 Output:
28859 22222 44444
28860 22222 44444
28861 22222 44444
28862 22222 44444
28863
28864 pad, 3
28865 Expand each frame to full height, but pad alternate lines with
28866 black, generating a frame with double height at the same input
28867 frame rate.
28868
28869 ------> time
28870 Input:
28871 Frame 1 Frame 2 Frame 3 Frame 4
28872
28873 11111 22222 33333 44444
28874 11111 22222 33333 44444
28875 11111 22222 33333 44444
28876 11111 22222 33333 44444
28877
28878 Output:
28879 11111 ..... 33333 .....
28880 ..... 22222 ..... 44444
28881 11111 ..... 33333 .....
28882 ..... 22222 ..... 44444
28883 11111 ..... 33333 .....
28884 ..... 22222 ..... 44444
28885 11111 ..... 33333 .....
28886 ..... 22222 ..... 44444
28887
28888 interleave_top, 4
28889 Interleave the upper field from odd frames with the lower field
28890 from even frames, generating a frame with unchanged height at
28891 half frame rate.
28892
28893 ------> time
28894 Input:
28895 Frame 1 Frame 2 Frame 3 Frame 4
28896
28897 11111<- 22222 33333<- 44444
28898 11111 22222<- 33333 44444<-
28899 11111<- 22222 33333<- 44444
28900 11111 22222<- 33333 44444<-
28901
28902 Output:
28903 11111 33333
28904 22222 44444
28905 11111 33333
28906 22222 44444
28907
28908 interleave_bottom, 5
28909 Interleave the lower field from odd frames with the upper field
28910 from even frames, generating a frame with unchanged height at
28911 half frame rate.
28912
28913 ------> time
28914 Input:
28915 Frame 1 Frame 2 Frame 3 Frame 4
28916
28917 11111 22222<- 33333 44444<-
28918 11111<- 22222 33333<- 44444
28919 11111 22222<- 33333 44444<-
28920 11111<- 22222 33333<- 44444
28921
28922 Output:
28923 22222 44444
28924 11111 33333
28925 22222 44444
28926 11111 33333
28927
28928 interlacex2, 6
28929 Double frame rate with unchanged height. Frames are inserted
28930 each containing the second temporal field from the previous
28931 input frame and the first temporal field from the next input
28932 frame. This mode relies on the top_field_first flag. Useful for
28933 interlaced video displays with no field synchronisation.
28934
28935 ------> time
28936 Input:
28937 Frame 1 Frame 2 Frame 3 Frame 4
28938
28939 11111 22222 33333 44444
28940 11111 22222 33333 44444
28941 11111 22222 33333 44444
28942 11111 22222 33333 44444
28943
28944 Output:
28945 11111 22222 22222 33333 33333 44444 44444
28946 11111 11111 22222 22222 33333 33333 44444
28947 11111 22222 22222 33333 33333 44444 44444
28948 11111 11111 22222 22222 33333 33333 44444
28949
28950 mergex2, 7
28951 Move odd frames into the upper field, even into the lower
28952 field, generating a double height frame at same frame rate.
28953
28954 ------> time
28955 Input:
28956 Frame 1 Frame 2 Frame 3 Frame 4
28957
28958 11111 22222 33333 44444
28959 11111 22222 33333 44444
28960 11111 22222 33333 44444
28961 11111 22222 33333 44444
28962
28963 Output:
28964 11111 33333 33333 55555
28965 22222 22222 44444 44444
28966 11111 33333 33333 55555
28967 22222 22222 44444 44444
28968 11111 33333 33333 55555
28969 22222 22222 44444 44444
28970 11111 33333 33333 55555
28971 22222 22222 44444 44444
28972
28973 Numeric values are deprecated but are accepted for backward
28974 compatibility reasons.
28975
28976 Default mode is "merge".
28977
28978 flags
28979 Specify flags influencing the filter process.
28980
28981 Available value for flags is:
28982
28983 low_pass_filter, vlpf
28984 Enable linear vertical low-pass filtering in the filter.
28985 Vertical low-pass filtering is required when creating an
28986 interlaced destination from a progressive source which contains
28987 high-frequency vertical detail. Filtering will reduce interlace
28988 'twitter' and Moire patterning.
28989
28990 complex_filter, cvlpf
28991 Enable complex vertical low-pass filtering. This will slightly
28992 less reduce interlace 'twitter' and Moire patterning but better
28993 retain detail and subjective sharpness impression.
28994
28995 bypass_il
28996 Bypass already interlaced frames, only adjust the frame rate.
28997
28998 Vertical low-pass filtering and bypassing already interlaced frames
28999 can only be enabled for mode interleave_top and interleave_bottom.
29000
29001 tmedian
29002 Pick median pixels from several successive input video frames.
29003
29004 The filter accepts the following options:
29005
29006 radius
29007 Set radius of median filter. Default is 1. Allowed range is from 1
29008 to 127.
29009
29010 planes
29011 Set which planes to filter. Default value is 15, by which all
29012 planes are processed.
29013
29014 percentile
29015 Set median percentile. Default value is 0.5. Default value of 0.5
29016 will pick always median values, while 0 will pick minimum values,
29017 and 1 maximum values.
29018
29019 Commands
29020
29021 This filter supports all above options as commands, excluding option
29022 "radius".
29023
29024 tmidequalizer
29025 Apply Temporal Midway Video Equalization effect.
29026
29027 Midway Video Equalization adjusts a sequence of video frames to have
29028 the same histograms, while maintaining their dynamics as much as
29029 possible. It's useful for e.g. matching exposures from a video frames
29030 sequence.
29031
29032 This filter accepts the following option:
29033
29034 radius
29035 Set filtering radius. Default is 5. Allowed range is from 1 to 127.
29036
29037 sigma
29038 Set filtering sigma. Default is 0.5. This controls strength of
29039 filtering. Setting this option to 0 effectively does nothing.
29040
29041 planes
29042 Set which planes to process. Default is 15, which is all available
29043 planes.
29044
29045 tmix
29046 Mix successive video frames.
29047
29048 A description of the accepted options follows.
29049
29050 frames
29051 The number of successive frames to mix. If unspecified, it defaults
29052 to 3.
29053
29054 weights
29055 Specify weight of each input video frame. Each weight is separated
29056 by space. If number of weights is smaller than number of frames
29057 last specified weight will be used for all remaining unset weights.
29058
29059 scale
29060 Specify scale, if it is set it will be multiplied with sum of each
29061 weight multiplied with pixel values to give final destination pixel
29062 value. By default scale is auto scaled to sum of weights.
29063
29064 planes
29065 Set which planes to filter. Default is all. Allowed range is from 0
29066 to 15.
29067
29068 Examples
29069
29070 • Average 7 successive frames:
29071
29072 tmix=frames=7:weights="1 1 1 1 1 1 1"
29073
29074 • Apply simple temporal convolution:
29075
29076 tmix=frames=3:weights="-1 3 -1"
29077
29078 • Similar as above but only showing temporal differences:
29079
29080 tmix=frames=3:weights="-1 2 -1":scale=1
29081
29082 Commands
29083
29084 This filter supports the following commands:
29085
29086 weights
29087 scale
29088 planes
29089 Syntax is same as option with same name.
29090
29091 tonemap
29092 Tone map colors from different dynamic ranges.
29093
29094 This filter expects data in single precision floating point, as it
29095 needs to operate on (and can output) out-of-range values. Another
29096 filter, such as zscale, is needed to convert the resulting frame to a
29097 usable format.
29098
29099 The tonemapping algorithms implemented only work on linear light, so
29100 input data should be linearized beforehand (and possibly correctly
29101 tagged).
29102
29103 ffmpeg -i INPUT -vf zscale=transfer=linear,tonemap=clip,zscale=transfer=bt709,format=yuv420p OUTPUT
29104
29105 Options
29106
29107 The filter accepts the following options.
29108
29109 tonemap
29110 Set the tone map algorithm to use.
29111
29112 Possible values are:
29113
29114 none
29115 Do not apply any tone map, only desaturate overbright pixels.
29116
29117 clip
29118 Hard-clip any out-of-range values. Use it for perfect color
29119 accuracy for in-range values, while distorting out-of-range
29120 values.
29121
29122 linear
29123 Stretch the entire reference gamut to a linear multiple of the
29124 display.
29125
29126 gamma
29127 Fit a logarithmic transfer between the tone curves.
29128
29129 reinhard
29130 Preserve overall image brightness with a simple curve, using
29131 nonlinear contrast, which results in flattening details and
29132 degrading color accuracy.
29133
29134 hable
29135 Preserve both dark and bright details better than reinhard, at
29136 the cost of slightly darkening everything. Use it when detail
29137 preservation is more important than color and brightness
29138 accuracy.
29139
29140 mobius
29141 Smoothly map out-of-range values, while retaining contrast and
29142 colors for in-range material as much as possible. Use it when
29143 color accuracy is more important than detail preservation.
29144
29145 Default is none.
29146
29147 param
29148 Tune the tone mapping algorithm.
29149
29150 This affects the following algorithms:
29151
29152 none
29153 Ignored.
29154
29155 linear
29156 Specifies the scale factor to use while stretching. Default to
29157 1.0.
29158
29159 gamma
29160 Specifies the exponent of the function. Default to 1.8.
29161
29162 clip
29163 Specify an extra linear coefficient to multiply into the signal
29164 before clipping. Default to 1.0.
29165
29166 reinhard
29167 Specify the local contrast coefficient at the display peak.
29168 Default to 0.5, which means that in-gamut values will be about
29169 half as bright as when clipping.
29170
29171 hable
29172 Ignored.
29173
29174 mobius
29175 Specify the transition point from linear to mobius transform.
29176 Every value below this point is guaranteed to be mapped 1:1.
29177 The higher the value, the more accurate the result will be, at
29178 the cost of losing bright details. Default to 0.3, which due
29179 to the steep initial slope still preserves in-range colors
29180 fairly accurately.
29181
29182 desat
29183 Apply desaturation for highlights that exceed this level of
29184 brightness. The higher the parameter, the more color information
29185 will be preserved. This setting helps prevent unnaturally blown-out
29186 colors for super-highlights, by (smoothly) turning into white
29187 instead. This makes images feel more natural, at the cost of
29188 reducing information about out-of-range colors.
29189
29190 The default of 2.0 is somewhat conservative and will mostly just
29191 apply to skies or directly sunlit surfaces. A setting of 0.0
29192 disables this option.
29193
29194 This option works only if the input frame has a supported color
29195 tag.
29196
29197 peak
29198 Override signal/nominal/reference peak with this value. Useful when
29199 the embedded peak information in display metadata is not reliable
29200 or when tone mapping from a lower range to a higher range.
29201
29202 tpad
29203 Temporarily pad video frames.
29204
29205 The filter accepts the following options:
29206
29207 start
29208 Specify number of delay frames before input video stream. Default
29209 is 0.
29210
29211 stop
29212 Specify number of padding frames after input video stream. Set to
29213 -1 to pad indefinitely. Default is 0.
29214
29215 start_mode
29216 Set kind of frames added to beginning of stream. Can be either add
29217 or clone. With add frames of solid-color are added. With clone
29218 frames are clones of first frame. Default is add.
29219
29220 stop_mode
29221 Set kind of frames added to end of stream. Can be either add or
29222 clone. With add frames of solid-color are added. With clone
29223 frames are clones of last frame. Default is add.
29224
29225 start_duration, stop_duration
29226 Specify the duration of the start/stop delay. See the Time duration
29227 section in the ffmpeg-utils(1) manual for the accepted syntax.
29228 These options override start and stop. Default is 0.
29229
29230 color
29231 Specify the color of the padded area. For the syntax of this
29232 option, check the "Color" section in the ffmpeg-utils manual.
29233
29234 The default value of color is "black".
29235
29236 transpose
29237 Transpose rows with columns in the input video and optionally flip it.
29238
29239 It accepts the following parameters:
29240
29241 dir Specify the transposition direction.
29242
29243 Can assume the following values:
29244
29245 0, 4, cclock_flip
29246 Rotate by 90 degrees counterclockwise and vertically flip
29247 (default), that is:
29248
29249 L.R L.l
29250 . . -> . .
29251 l.r R.r
29252
29253 1, 5, clock
29254 Rotate by 90 degrees clockwise, that is:
29255
29256 L.R l.L
29257 . . -> . .
29258 l.r r.R
29259
29260 2, 6, cclock
29261 Rotate by 90 degrees counterclockwise, that is:
29262
29263 L.R R.r
29264 . . -> . .
29265 l.r L.l
29266
29267 3, 7, clock_flip
29268 Rotate by 90 degrees clockwise and vertically flip, that is:
29269
29270 L.R r.R
29271 . . -> . .
29272 l.r l.L
29273
29274 For values between 4-7, the transposition is only done if the input
29275 video geometry is portrait and not landscape. These values are
29276 deprecated, the "passthrough" option should be used instead.
29277
29278 Numerical values are deprecated, and should be dropped in favor of
29279 symbolic constants.
29280
29281 passthrough
29282 Do not apply the transposition if the input geometry matches the
29283 one specified by the specified value. It accepts the following
29284 values:
29285
29286 none
29287 Always apply transposition.
29288
29289 portrait
29290 Preserve portrait geometry (when height >= width).
29291
29292 landscape
29293 Preserve landscape geometry (when width >= height).
29294
29295 Default value is "none".
29296
29297 For example to rotate by 90 degrees clockwise and preserve portrait
29298 layout:
29299
29300 transpose=dir=1:passthrough=portrait
29301
29302 The command above can also be specified as:
29303
29304 transpose=1:portrait
29305
29306 transpose_npp
29307 Transpose rows with columns in the input video and optionally flip it.
29308 For more in depth examples see the transpose video filter, which shares
29309 mostly the same options.
29310
29311 It accepts the following parameters:
29312
29313 dir Specify the transposition direction.
29314
29315 Can assume the following values:
29316
29317 cclock_flip
29318 Rotate by 90 degrees counterclockwise and vertically flip.
29319 (default)
29320
29321 clock
29322 Rotate by 90 degrees clockwise.
29323
29324 cclock
29325 Rotate by 90 degrees counterclockwise.
29326
29327 clock_flip
29328 Rotate by 90 degrees clockwise and vertically flip.
29329
29330 passthrough
29331 Do not apply the transposition if the input geometry matches the
29332 one specified by the specified value. It accepts the following
29333 values:
29334
29335 none
29336 Always apply transposition. (default)
29337
29338 portrait
29339 Preserve portrait geometry (when height >= width).
29340
29341 landscape
29342 Preserve landscape geometry (when width >= height).
29343
29344 trim
29345 Trim the input so that the output contains one continuous subpart of
29346 the input.
29347
29348 It accepts the following parameters:
29349
29350 start
29351 Specify the time of the start of the kept section, i.e. the frame
29352 with the timestamp start will be the first frame in the output.
29353
29354 end Specify the time of the first frame that will be dropped, i.e. the
29355 frame immediately preceding the one with the timestamp end will be
29356 the last frame in the output.
29357
29358 start_pts
29359 This is the same as start, except this option sets the start
29360 timestamp in timebase units instead of seconds.
29361
29362 end_pts
29363 This is the same as end, except this option sets the end timestamp
29364 in timebase units instead of seconds.
29365
29366 duration
29367 The maximum duration of the output in seconds.
29368
29369 start_frame
29370 The number of the first frame that should be passed to the output.
29371
29372 end_frame
29373 The number of the first frame that should be dropped.
29374
29375 start, end, and duration are expressed as time duration specifications;
29376 see the Time duration section in the ffmpeg-utils(1) manual for the
29377 accepted syntax.
29378
29379 Note that the first two sets of the start/end options and the duration
29380 option look at the frame timestamp, while the _frame variants simply
29381 count the frames that pass through the filter. Also note that this
29382 filter does not modify the timestamps. If you wish for the output
29383 timestamps to start at zero, insert a setpts filter after the trim
29384 filter.
29385
29386 If multiple start or end options are set, this filter tries to be
29387 greedy and keep all the frames that match at least one of the specified
29388 constraints. To keep only the part that matches all the constraints at
29389 once, chain multiple trim filters.
29390
29391 The defaults are such that all the input is kept. So it is possible to
29392 set e.g. just the end values to keep everything before the specified
29393 time.
29394
29395 Examples:
29396
29397 • Drop everything except the second minute of input:
29398
29399 ffmpeg -i INPUT -vf trim=60:120
29400
29401 • Keep only the first second:
29402
29403 ffmpeg -i INPUT -vf trim=duration=1
29404
29405 unpremultiply
29406 Apply alpha unpremultiply effect to input video stream using first
29407 plane of second stream as alpha.
29408
29409 Both streams must have same dimensions and same pixel format.
29410
29411 The filter accepts the following option:
29412
29413 planes
29414 Set which planes will be processed, unprocessed planes will be
29415 copied. By default value 0xf, all planes will be processed.
29416
29417 If the format has 1 or 2 components, then luma is bit 0. If the
29418 format has 3 or 4 components: for RGB formats bit 0 is green, bit 1
29419 is blue and bit 2 is red; for YUV formats bit 0 is luma, bit 1 is
29420 chroma-U and bit 2 is chroma-V. If present, the alpha channel is
29421 always the last bit.
29422
29423 inplace
29424 Do not require 2nd input for processing, instead use alpha plane
29425 from input stream.
29426
29427 unsharp
29428 Sharpen or blur the input video.
29429
29430 It accepts the following parameters:
29431
29432 luma_msize_x, lx
29433 Set the luma matrix horizontal size. It must be an odd integer
29434 between 3 and 23. The default value is 5.
29435
29436 luma_msize_y, ly
29437 Set the luma matrix vertical size. It must be an odd integer
29438 between 3 and 23. The default value is 5.
29439
29440 luma_amount, la
29441 Set the luma effect strength. It must be a floating point number,
29442 reasonable values lay between -1.5 and 1.5.
29443
29444 Negative values will blur the input video, while positive values
29445 will sharpen it, a value of zero will disable the effect.
29446
29447 Default value is 1.0.
29448
29449 chroma_msize_x, cx
29450 Set the chroma matrix horizontal size. It must be an odd integer
29451 between 3 and 23. The default value is 5.
29452
29453 chroma_msize_y, cy
29454 Set the chroma matrix vertical size. It must be an odd integer
29455 between 3 and 23. The default value is 5.
29456
29457 chroma_amount, ca
29458 Set the chroma effect strength. It must be a floating point number,
29459 reasonable values lay between -1.5 and 1.5.
29460
29461 Negative values will blur the input video, while positive values
29462 will sharpen it, a value of zero will disable the effect.
29463
29464 Default value is 0.0.
29465
29466 alpha_msize_x, ax
29467 Set the alpha matrix horizontal size. It must be an odd integer
29468 between 3 and 23. The default value is 5.
29469
29470 alpha_msize_y, ay
29471 Set the alpha matrix vertical size. It must be an odd integer
29472 between 3 and 23. The default value is 5.
29473
29474 alpha_amount, aa
29475 Set the alpha effect strength. It must be a floating point number,
29476 reasonable values lay between -1.5 and 1.5.
29477
29478 Negative values will blur the input video, while positive values
29479 will sharpen it, a value of zero will disable the effect.
29480
29481 Default value is 0.0.
29482
29483 All parameters are optional and default to the equivalent of the string
29484 '5:5:1.0:5:5:0.0'.
29485
29486 Examples
29487
29488 • Apply strong luma sharpen effect:
29489
29490 unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
29491
29492 • Apply a strong blur of both luma and chroma parameters:
29493
29494 unsharp=7:7:-2:7:7:-2
29495
29496 untile
29497 Decompose a video made of tiled images into the individual images.
29498
29499 The frame rate of the output video is the frame rate of the input video
29500 multiplied by the number of tiles.
29501
29502 This filter does the reverse of tile.
29503
29504 The filter accepts the following options:
29505
29506 layout
29507 Set the grid size (i.e. the number of lines and columns). For the
29508 syntax of this option, check the "Video size" section in the
29509 ffmpeg-utils manual.
29510
29511 Examples
29512
29513 • Produce a 1-second video from a still image file made of 25 frames
29514 stacked vertically, like an analogic film reel:
29515
29516 ffmpeg -r 1 -i image.jpg -vf untile=1x25 movie.mkv
29517
29518 uspp
29519 Apply ultra slow/simple postprocessing filter that compresses and
29520 decompresses the image at several (or - in the case of quality level 8
29521 - all) shifts and average the results.
29522
29523 The way this differs from the behavior of spp is that uspp actually
29524 encodes & decodes each case with libavcodec Snow, whereas spp uses a
29525 simplified intra only 8x8 DCT similar to MJPEG.
29526
29527 This filter is only available in ffmpeg version 4.4 or earlier.
29528
29529 The filter accepts the following options:
29530
29531 quality
29532 Set quality. This option defines the number of levels for
29533 averaging. It accepts an integer in the range 0-8. If set to 0, the
29534 filter will have no effect. A value of 8 means the higher quality.
29535 For each increment of that value the speed drops by a factor of
29536 approximately 2. Default value is 3.
29537
29538 qp Force a constant quantization parameter. If not set, the filter
29539 will use the QP from the video stream (if available).
29540
29541 v360
29542 Convert 360 videos between various formats.
29543
29544 The filter accepts the following options:
29545
29546 input
29547 output
29548 Set format of the input/output video.
29549
29550 Available formats:
29551
29552 e
29553 equirect
29554 Equirectangular projection.
29555
29556 c3x2
29557 c6x1
29558 c1x6
29559 Cubemap with 3x2/6x1/1x6 layout.
29560
29561 Format specific options:
29562
29563 in_pad
29564 out_pad
29565 Set padding proportion for the input/output cubemap. Values
29566 in decimals.
29567
29568 Example values:
29569
29570 0 No padding.
29571
29572 0.01
29573 1% of face is padding. For example, with 1920x1280
29574 resolution face size would be 640x640 and padding would
29575 be 3 pixels from each side. (640 * 0.01 = 6 pixels)
29576
29577 Default value is @samp{0}. Maximum value is @samp{0.1}.
29578
29579 fin_pad
29580 fout_pad
29581 Set fixed padding for the input/output cubemap. Values in
29582 pixels.
29583
29584 Default value is @samp{0}. If greater than zero it
29585 overrides other padding options.
29586
29587 in_forder
29588 out_forder
29589 Set order of faces for the input/output cubemap. Choose one
29590 direction for each position.
29591
29592 Designation of directions:
29593
29594 r right
29595
29596 l left
29597
29598 u up
29599
29600 d down
29601
29602 f forward
29603
29604 b back
29605
29606 Default value is @samp{rludfb}.
29607
29608 in_frot
29609 out_frot
29610 Set rotation of faces for the input/output cubemap. Choose
29611 one angle for each position.
29612
29613 Designation of angles:
29614
29615 0 0 degrees clockwise
29616
29617 1 90 degrees clockwise
29618
29619 2 180 degrees clockwise
29620
29621 3 270 degrees clockwise
29622
29623 Default value is @samp{000000}.
29624
29625 eac Equi-Angular Cubemap.
29626
29627 flat
29628 gnomonic
29629 rectilinear
29630 Regular video.
29631
29632 Format specific options:
29633
29634 h_fov
29635 v_fov
29636 d_fov
29637 Set output horizontal/vertical/diagonal field of view.
29638 Values in degrees.
29639
29640 If diagonal field of view is set it overrides horizontal
29641 and vertical field of view.
29642
29643 ih_fov
29644 iv_fov
29645 id_fov
29646 Set input horizontal/vertical/diagonal field of view.
29647 Values in degrees.
29648
29649 If diagonal field of view is set it overrides horizontal
29650 and vertical field of view.
29651
29652 dfisheye
29653 Dual fisheye.
29654
29655 Format specific options:
29656
29657 h_fov
29658 v_fov
29659 d_fov
29660 Set output horizontal/vertical/diagonal field of view.
29661 Values in degrees.
29662
29663 If diagonal field of view is set it overrides horizontal
29664 and vertical field of view.
29665
29666 ih_fov
29667 iv_fov
29668 id_fov
29669 Set input horizontal/vertical/diagonal field of view.
29670 Values in degrees.
29671
29672 If diagonal field of view is set it overrides horizontal
29673 and vertical field of view.
29674
29675 barrel
29676 fb
29677 barrelsplit
29678 Facebook's 360 formats.
29679
29680 sg Stereographic format.
29681
29682 Format specific options:
29683
29684 h_fov
29685 v_fov
29686 d_fov
29687 Set output horizontal/vertical/diagonal field of view.
29688 Values in degrees.
29689
29690 If diagonal field of view is set it overrides horizontal
29691 and vertical field of view.
29692
29693 ih_fov
29694 iv_fov
29695 id_fov
29696 Set input horizontal/vertical/diagonal field of view.
29697 Values in degrees.
29698
29699 If diagonal field of view is set it overrides horizontal
29700 and vertical field of view.
29701
29702 mercator
29703 Mercator format.
29704
29705 ball
29706 Ball format, gives significant distortion toward the back.
29707
29708 hammer
29709 Hammer-Aitoff map projection format.
29710
29711 sinusoidal
29712 Sinusoidal map projection format.
29713
29714 fisheye
29715 Fisheye projection.
29716
29717 Format specific options:
29718
29719 h_fov
29720 v_fov
29721 d_fov
29722 Set output horizontal/vertical/diagonal field of view.
29723 Values in degrees.
29724
29725 If diagonal field of view is set it overrides horizontal
29726 and vertical field of view.
29727
29728 ih_fov
29729 iv_fov
29730 id_fov
29731 Set input horizontal/vertical/diagonal field of view.
29732 Values in degrees.
29733
29734 If diagonal field of view is set it overrides horizontal
29735 and vertical field of view.
29736
29737 pannini
29738 Pannini projection.
29739
29740 Format specific options:
29741
29742 h_fov
29743 Set output pannini parameter.
29744
29745 ih_fov
29746 Set input pannini parameter.
29747
29748 cylindrical
29749 Cylindrical projection.
29750
29751 Format specific options:
29752
29753 h_fov
29754 v_fov
29755 d_fov
29756 Set output horizontal/vertical/diagonal field of view.
29757 Values in degrees.
29758
29759 If diagonal field of view is set it overrides horizontal
29760 and vertical field of view.
29761
29762 ih_fov
29763 iv_fov
29764 id_fov
29765 Set input horizontal/vertical/diagonal field of view.
29766 Values in degrees.
29767
29768 If diagonal field of view is set it overrides horizontal
29769 and vertical field of view.
29770
29771 perspective
29772 Perspective projection. (output only)
29773
29774 Format specific options:
29775
29776 v_fov
29777 Set perspective parameter.
29778
29779 tetrahedron
29780 Tetrahedron projection.
29781
29782 tsp Truncated square pyramid projection.
29783
29784 he
29785 hequirect
29786 Half equirectangular projection.
29787
29788 equisolid
29789 Equisolid format.
29790
29791 Format specific options:
29792
29793 h_fov
29794 v_fov
29795 d_fov
29796 Set output horizontal/vertical/diagonal field of view.
29797 Values in degrees.
29798
29799 If diagonal field of view is set it overrides horizontal
29800 and vertical field of view.
29801
29802 ih_fov
29803 iv_fov
29804 id_fov
29805 Set input horizontal/vertical/diagonal field of view.
29806 Values in degrees.
29807
29808 If diagonal field of view is set it overrides horizontal
29809 and vertical field of view.
29810
29811 og Orthographic format.
29812
29813 Format specific options:
29814
29815 h_fov
29816 v_fov
29817 d_fov
29818 Set output horizontal/vertical/diagonal field of view.
29819 Values in degrees.
29820
29821 If diagonal field of view is set it overrides horizontal
29822 and vertical field of view.
29823
29824 ih_fov
29825 iv_fov
29826 id_fov
29827 Set input horizontal/vertical/diagonal field of view.
29828 Values in degrees.
29829
29830 If diagonal field of view is set it overrides horizontal
29831 and vertical field of view.
29832
29833 octahedron
29834 Octahedron projection.
29835
29836 cylindricalea
29837 Cylindrical Equal Area projection.
29838
29839 interp
29840 Set interpolation method.Note: more complex interpolation methods
29841 require much more memory to run.
29842
29843 Available methods:
29844
29845 near
29846 nearest
29847 Nearest neighbour.
29848
29849 line
29850 linear
29851 Bilinear interpolation.
29852
29853 lagrange9
29854 Lagrange9 interpolation.
29855
29856 cube
29857 cubic
29858 Bicubic interpolation.
29859
29860 lanc
29861 lanczos
29862 Lanczos interpolation.
29863
29864 sp16
29865 spline16
29866 Spline16 interpolation.
29867
29868 gauss
29869 gaussian
29870 Gaussian interpolation.
29871
29872 mitchell
29873 Mitchell interpolation.
29874
29875 Default value is @samp{line}.
29876
29877 w
29878 h Set the output video resolution.
29879
29880 Default resolution depends on formats.
29881
29882 in_stereo
29883 out_stereo
29884 Set the input/output stereo format.
29885
29886 2d 2D mono
29887
29888 sbs Side by side
29889
29890 tb Top bottom
29891
29892 Default value is @samp{2d} for input and output format.
29893
29894 yaw
29895 pitch
29896 roll
29897 Set rotation for the output video. Values in degrees.
29898
29899 rorder
29900 Set rotation order for the output video. Choose one item for each
29901 position.
29902
29903 y, Y
29904 yaw
29905
29906 p, P
29907 pitch
29908
29909 r, R
29910 roll
29911
29912 Default value is @samp{ypr}.
29913
29914 h_flip
29915 v_flip
29916 d_flip
29917 Flip the output video horizontally(swaps
29918 left-right)/vertically(swaps up-down)/in-depth(swaps back-forward).
29919 Boolean values.
29920
29921 ih_flip
29922 iv_flip
29923 Set if input video is flipped horizontally/vertically. Boolean
29924 values.
29925
29926 in_trans
29927 Set if input video is transposed. Boolean value, by default
29928 disabled.
29929
29930 out_trans
29931 Set if output video needs to be transposed. Boolean value, by
29932 default disabled.
29933
29934 h_offset
29935 v_offset
29936 Set output horizontal/vertical off-axis offset. Default is set to
29937 0. Allowed range is from -1 to 1.
29938
29939 alpha_mask
29940 Build mask in alpha plane for all unmapped pixels by marking them
29941 fully transparent. Boolean value, by default disabled.
29942
29943 reset_rot
29944 Reset rotation of output video. Boolean value, by default disabled.
29945
29946 Examples
29947
29948 • Convert equirectangular video to cubemap with 3x2 layout and 1%
29949 padding using bicubic interpolation:
29950
29951 ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_pad=0.01 output.mkv
29952
29953 • Extract back view of Equi-Angular Cubemap:
29954
29955 ffmpeg -i input.mkv -vf v360=eac:flat:yaw=180 output.mkv
29956
29957 • Convert transposed and horizontally flipped Equi-Angular Cubemap in
29958 side-by-side stereo format to equirectangular top-bottom stereo
29959 format:
29960
29961 v360=eac:equirect:in_stereo=sbs:in_trans=1:ih_flip=1:out_stereo=tb
29962
29963 Commands
29964
29965 This filter supports subset of above options as commands.
29966
29967 vaguedenoiser
29968 Apply a wavelet based denoiser.
29969
29970 It transforms each frame from the video input into the wavelet domain,
29971 using Cohen-Daubechies-Feauveau 9/7. Then it applies some filtering to
29972 the obtained coefficients. It does an inverse wavelet transform after.
29973 Due to wavelet properties, it should give a nice smoothed result, and
29974 reduced noise, without blurring picture features.
29975
29976 This filter accepts the following options:
29977
29978 threshold
29979 The filtering strength. The higher, the more filtered the video
29980 will be. Hard thresholding can use a higher threshold than soft
29981 thresholding before the video looks overfiltered. Default value is
29982 2.
29983
29984 method
29985 The filtering method the filter will use.
29986
29987 It accepts the following values:
29988
29989 hard
29990 All values under the threshold will be zeroed.
29991
29992 soft
29993 All values under the threshold will be zeroed. All values above
29994 will be reduced by the threshold.
29995
29996 garrote
29997 Scales or nullifies coefficients - intermediary between (more)
29998 soft and (less) hard thresholding.
29999
30000 Default is garrote.
30001
30002 nsteps
30003 Number of times, the wavelet will decompose the picture. Picture
30004 can't be decomposed beyond a particular point (typically, 8 for a
30005 640x480 frame - as 2^9 = 512 > 480). Valid values are integers
30006 between 1 and 32. Default value is 6.
30007
30008 percent
30009 Partial of full denoising (limited coefficients shrinking), from 0
30010 to 100. Default value is 85.
30011
30012 planes
30013 A list of the planes to process. By default all planes are
30014 processed.
30015
30016 type
30017 The threshold type the filter will use.
30018
30019 It accepts the following values:
30020
30021 universal
30022 Threshold used is same for all decompositions.
30023
30024 bayes
30025 Threshold used depends also on each decomposition coefficients.
30026
30027 Default is universal.
30028
30029 varblur
30030 Apply variable blur filter by using 2nd video stream to set blur
30031 radius. The 2nd stream must have the same dimensions.
30032
30033 This filter accepts the following options:
30034
30035 min_r
30036 Set min allowed radius. Allowed range is from 0 to 254. Default is
30037 0.
30038
30039 max_r
30040 Set max allowed radius. Allowed range is from 1 to 255. Default is
30041 8.
30042
30043 planes
30044 Set which planes to process. By default, all are used.
30045
30046 The "varblur" filter also supports the framesync options.
30047
30048 Commands
30049
30050 This filter supports all the above options as commands.
30051
30052 vectorscope
30053 Display 2 color component values in the two dimensional graph (which is
30054 called a vectorscope).
30055
30056 This filter accepts the following options:
30057
30058 mode, m
30059 Set vectorscope mode.
30060
30061 It accepts the following values:
30062
30063 gray
30064 tint
30065 Gray values are displayed on graph, higher brightness means
30066 more pixels have same component color value on location in
30067 graph. This is the default mode.
30068
30069 color
30070 Gray values are displayed on graph. Surrounding pixels values
30071 which are not present in video frame are drawn in gradient of 2
30072 color components which are set by option "x" and "y". The 3rd
30073 color component is static.
30074
30075 color2
30076 Actual color components values present in video frame are
30077 displayed on graph.
30078
30079 color3
30080 Similar as color2 but higher frequency of same values "x" and
30081 "y" on graph increases value of another color component, which
30082 is luminance by default values of "x" and "y".
30083
30084 color4
30085 Actual colors present in video frame are displayed on graph. If
30086 two different colors map to same position on graph then color
30087 with higher value of component not present in graph is picked.
30088
30089 color5
30090 Gray values are displayed on graph. Similar to "color" but with
30091 3rd color component picked from radial gradient.
30092
30093 x Set which color component will be represented on X-axis. Default is
30094 1.
30095
30096 y Set which color component will be represented on Y-axis. Default is
30097 2.
30098
30099 intensity, i
30100 Set intensity, used by modes: gray, color, color3 and color5 for
30101 increasing brightness of color component which represents frequency
30102 of (X, Y) location in graph.
30103
30104 envelope, e
30105 none
30106 No envelope, this is default.
30107
30108 instant
30109 Instant envelope, even darkest single pixel will be clearly
30110 highlighted.
30111
30112 peak
30113 Hold maximum and minimum values presented in graph over time.
30114 This way you can still spot out of range values without
30115 constantly looking at vectorscope.
30116
30117 peak+instant
30118 Peak and instant envelope combined together.
30119
30120 graticule, g
30121 Set what kind of graticule to draw.
30122
30123 none
30124 green
30125 color
30126 invert
30127 opacity, o
30128 Set graticule opacity.
30129
30130 flags, f
30131 Set graticule flags.
30132
30133 white
30134 Draw graticule for white point.
30135
30136 black
30137 Draw graticule for black point.
30138
30139 name
30140 Draw color points short names.
30141
30142 bgopacity, b
30143 Set background opacity.
30144
30145 lthreshold, l
30146 Set low threshold for color component not represented on X or Y
30147 axis. Values lower than this value will be ignored. Default is 0.
30148 Note this value is multiplied with actual max possible value one
30149 pixel component can have. So for 8-bit input and low threshold
30150 value of 0.1 actual threshold is 0.1 * 255 = 25.
30151
30152 hthreshold, h
30153 Set high threshold for color component not represented on X or Y
30154 axis. Values higher than this value will be ignored. Default is 1.
30155 Note this value is multiplied with actual max possible value one
30156 pixel component can have. So for 8-bit input and high threshold
30157 value of 0.9 actual threshold is 0.9 * 255 = 230.
30158
30159 colorspace, c
30160 Set what kind of colorspace to use when drawing graticule.
30161
30162 auto
30163 601
30164 709
30165
30166 Default is auto.
30167
30168 tint0, t0
30169 tint1, t1
30170 Set color tint for gray/tint vectorscope mode. By default both
30171 options are zero. This means no tint, and output will remain gray.
30172
30173 vidstabdetect
30174 Analyze video stabilization/deshaking. Perform pass 1 of 2, see
30175 vidstabtransform for pass 2.
30176
30177 This filter generates a file with relative translation and rotation
30178 transform information about subsequent frames, which is then used by
30179 the vidstabtransform filter.
30180
30181 To enable compilation of this filter you need to configure FFmpeg with
30182 "--enable-libvidstab".
30183
30184 This filter accepts the following options:
30185
30186 result
30187 Set the path to the file used to write the transforms information.
30188 Default value is transforms.trf.
30189
30190 shakiness
30191 Set how shaky the video is and how quick the camera is. It accepts
30192 an integer in the range 1-10, a value of 1 means little shakiness,
30193 a value of 10 means strong shakiness. Default value is 5.
30194
30195 accuracy
30196 Set the accuracy of the detection process. It must be a value in
30197 the range 1-15. A value of 1 means low accuracy, a value of 15
30198 means high accuracy. Default value is 15.
30199
30200 stepsize
30201 Set stepsize of the search process. The region around minimum is
30202 scanned with 1 pixel resolution. Default value is 6.
30203
30204 mincontrast
30205 Set minimum contrast. Below this value a local measurement field is
30206 discarded. Must be a floating point value in the range 0-1. Default
30207 value is 0.3.
30208
30209 tripod
30210 Set reference frame number for tripod mode.
30211
30212 If enabled, the motion of the frames is compared to a reference
30213 frame in the filtered stream, identified by the specified number.
30214 The idea is to compensate all movements in a more-or-less static
30215 scene and keep the camera view absolutely still.
30216
30217 If set to 0, it is disabled. The frames are counted starting from
30218 1.
30219
30220 show
30221 Show fields and transforms in the resulting frames. It accepts an
30222 integer in the range 0-2. Default value is 0, which disables any
30223 visualization.
30224
30225 Examples
30226
30227 • Use default values:
30228
30229 vidstabdetect
30230
30231 • Analyze strongly shaky movie and put the results in file
30232 mytransforms.trf:
30233
30234 vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
30235
30236 • Visualize the result of internal transformations in the resulting
30237 video:
30238
30239 vidstabdetect=show=1
30240
30241 • Analyze a video with medium shakiness using ffmpeg:
30242
30243 ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
30244
30245 vidstabtransform
30246 Video stabilization/deshaking: pass 2 of 2, see vidstabdetect for pass
30247 1.
30248
30249 Read a file with transform information for each frame and
30250 apply/compensate them. Together with the vidstabdetect filter this can
30251 be used to deshake videos. See also
30252 <http://public.hronopik.de/vid.stab>. It is important to also use the
30253 unsharp filter, see below.
30254
30255 To enable compilation of this filter you need to configure FFmpeg with
30256 "--enable-libvidstab".
30257
30258 Options
30259
30260 input
30261 Set path to the file used to read the transforms. Default value is
30262 transforms.trf.
30263
30264 smoothing
30265 Set the number of frames (value*2 + 1) used for lowpass filtering
30266 the camera movements. Default value is 10.
30267
30268 For example a number of 10 means that 21 frames are used (10 in the
30269 past and 10 in the future) to smoothen the motion in the video. A
30270 larger value leads to a smoother video, but limits the acceleration
30271 of the camera (pan/tilt movements). 0 is a special case where a
30272 static camera is simulated.
30273
30274 optalgo
30275 Set the camera path optimization algorithm.
30276
30277 Accepted values are:
30278
30279 gauss
30280 gaussian kernel low-pass filter on camera motion (default)
30281
30282 avg averaging on transformations
30283
30284 maxshift
30285 Set maximal number of pixels to translate frames. Default value is
30286 -1, meaning no limit.
30287
30288 maxangle
30289 Set maximal angle in radians (degree*PI/180) to rotate frames.
30290 Default value is -1, meaning no limit.
30291
30292 crop
30293 Specify how to deal with borders that may be visible due to
30294 movement compensation.
30295
30296 Available values are:
30297
30298 keep
30299 keep image information from previous frame (default)
30300
30301 black
30302 fill the border black
30303
30304 invert
30305 Invert transforms if set to 1. Default value is 0.
30306
30307 relative
30308 Consider transforms as relative to previous frame if set to 1,
30309 absolute if set to 0. Default value is 0.
30310
30311 zoom
30312 Set percentage to zoom. A positive value will result in a zoom-in
30313 effect, a negative value in a zoom-out effect. Default value is 0
30314 (no zoom).
30315
30316 optzoom
30317 Set optimal zooming to avoid borders.
30318
30319 Accepted values are:
30320
30321 0 disabled
30322
30323 1 optimal static zoom value is determined (only very strong
30324 movements will lead to visible borders) (default)
30325
30326 2 optimal adaptive zoom value is determined (no borders will be
30327 visible), see zoomspeed
30328
30329 Note that the value given at zoom is added to the one calculated
30330 here.
30331
30332 zoomspeed
30333 Set percent to zoom maximally each frame (enabled when optzoom is
30334 set to 2). Range is from 0 to 5, default value is 0.25.
30335
30336 interpol
30337 Specify type of interpolation.
30338
30339 Available values are:
30340
30341 no no interpolation
30342
30343 linear
30344 linear only horizontal
30345
30346 bilinear
30347 linear in both directions (default)
30348
30349 bicubic
30350 cubic in both directions (slow)
30351
30352 tripod
30353 Enable virtual tripod mode if set to 1, which is equivalent to
30354 "relative=0:smoothing=0". Default value is 0.
30355
30356 Use also "tripod" option of vidstabdetect.
30357
30358 debug
30359 Increase log verbosity if set to 1. Also the detected global
30360 motions are written to the temporary file global_motions.trf.
30361 Default value is 0.
30362
30363 Examples
30364
30365 • Use ffmpeg for a typical stabilization with default values:
30366
30367 ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
30368
30369 Note the use of the unsharp filter which is always recommended.
30370
30371 • Zoom in a bit more and load transform data from a given file:
30372
30373 vidstabtransform=zoom=5:input="mytransforms.trf"
30374
30375 • Smoothen the video even more:
30376
30377 vidstabtransform=smoothing=30
30378
30379 vflip
30380 Flip the input video vertically.
30381
30382 For example, to vertically flip a video with ffmpeg:
30383
30384 ffmpeg -i in.avi -vf "vflip" out.avi
30385
30386 vfrdet
30387 Detect variable frame rate video.
30388
30389 This filter tries to detect if the input is variable or constant frame
30390 rate.
30391
30392 At end it will output number of frames detected as having variable
30393 delta pts, and ones with constant delta pts. If there was frames with
30394 variable delta, than it will also show min, max and average delta
30395 encountered.
30396
30397 vibrance
30398 Boost or alter saturation.
30399
30400 The filter accepts the following options:
30401
30402 intensity
30403 Set strength of boost if positive value or strength of alter if
30404 negative value. Default is 0. Allowed range is from -2 to 2.
30405
30406 rbal
30407 Set the red balance. Default is 1. Allowed range is from -10 to 10.
30408
30409 gbal
30410 Set the green balance. Default is 1. Allowed range is from -10 to
30411 10.
30412
30413 bbal
30414 Set the blue balance. Default is 1. Allowed range is from -10 to
30415 10.
30416
30417 rlum
30418 Set the red luma coefficient.
30419
30420 glum
30421 Set the green luma coefficient.
30422
30423 blum
30424 Set the blue luma coefficient.
30425
30426 alternate
30427 If "intensity" is negative and this is set to 1, colors will
30428 change, otherwise colors will be less saturated, more towards gray.
30429
30430 Commands
30431
30432 This filter supports the all above options as commands.
30433
30434 vif
30435 Obtain the average VIF (Visual Information Fidelity) between two input
30436 videos.
30437
30438 This filter takes two input videos.
30439
30440 Both input videos must have the same resolution and pixel format for
30441 this filter to work correctly. Also it assumes that both inputs have
30442 the same number of frames, which are compared one by one.
30443
30444 The obtained average VIF score is printed through the logging system.
30445
30446 The filter stores the calculated VIF score of each frame.
30447
30448 In the below example the input file main.mpg being processed is
30449 compared with the reference file ref.mpg.
30450
30451 ffmpeg -i main.mpg -i ref.mpg -lavfi vif -f null -
30452
30453 vignette
30454 Make or reverse a natural vignetting effect.
30455
30456 The filter accepts the following options:
30457
30458 angle, a
30459 Set lens angle expression as a number of radians.
30460
30461 The value is clipped in the "[0,PI/2]" range.
30462
30463 Default value: "PI/5"
30464
30465 x0
30466 y0 Set center coordinates expressions. Respectively "w/2" and "h/2" by
30467 default.
30468
30469 mode
30470 Set forward/backward mode.
30471
30472 Available modes are:
30473
30474 forward
30475 The larger the distance from the central point, the darker the
30476 image becomes.
30477
30478 backward
30479 The larger the distance from the central point, the brighter
30480 the image becomes. This can be used to reverse a vignette
30481 effect, though there is no automatic detection to extract the
30482 lens angle and other settings (yet). It can also be used to
30483 create a burning effect.
30484
30485 Default value is forward.
30486
30487 eval
30488 Set evaluation mode for the expressions (angle, x0, y0).
30489
30490 It accepts the following values:
30491
30492 init
30493 Evaluate expressions only once during the filter
30494 initialization.
30495
30496 frame
30497 Evaluate expressions for each incoming frame. This is way
30498 slower than the init mode since it requires all the scalers to
30499 be re-computed, but it allows advanced dynamic expressions.
30500
30501 Default value is init.
30502
30503 dither
30504 Set dithering to reduce the circular banding effects. Default is 1
30505 (enabled).
30506
30507 aspect
30508 Set vignette aspect. This setting allows one to adjust the shape of
30509 the vignette. Setting this value to the SAR of the input will make
30510 a rectangular vignetting following the dimensions of the video.
30511
30512 Default is "1/1".
30513
30514 Expressions
30515
30516 The alpha, x0 and y0 expressions can contain the following parameters.
30517
30518 w
30519 h input width and height
30520
30521 n the number of input frame, starting from 0
30522
30523 pts the PTS (Presentation TimeStamp) time of the filtered video frame,
30524 expressed in TB units, NAN if undefined
30525
30526 r frame rate of the input video, NAN if the input frame rate is
30527 unknown
30528
30529 t the PTS (Presentation TimeStamp) of the filtered video frame,
30530 expressed in seconds, NAN if undefined
30531
30532 tb time base of the input video
30533
30534 Examples
30535
30536 • Apply simple strong vignetting effect:
30537
30538 vignette=PI/4
30539
30540 • Make a flickering vignetting:
30541
30542 vignette='PI/4+random(1)*PI/50':eval=frame
30543
30544 vmafmotion
30545 Obtain the average VMAF motion score of a video. It is one of the
30546 component metrics of VMAF.
30547
30548 The obtained average motion score is printed through the logging
30549 system.
30550
30551 The filter accepts the following options:
30552
30553 stats_file
30554 If specified, the filter will use the named file to save the motion
30555 score of each frame with respect to the previous frame. When
30556 filename equals "-" the data is sent to standard output.
30557
30558 Example:
30559
30560 ffmpeg -i ref.mpg -vf vmafmotion -f null -
30561
30562 vstack
30563 Stack input videos vertically.
30564
30565 All streams must be of same pixel format and of same width.
30566
30567 Note that this filter is faster than using overlay and pad filter to
30568 create same output.
30569
30570 The filter accepts the following options:
30571
30572 inputs
30573 Set number of input streams. Default is 2.
30574
30575 shortest
30576 If set to 1, force the output to terminate when the shortest input
30577 terminates. Default value is 0.
30578
30579 w3fdif
30580 Deinterlace the input video ("w3fdif" stands for "Weston 3 Field
30581 Deinterlacing Filter").
30582
30583 Based on the process described by Martin Weston for BBC R&D, and
30584 implemented based on the de-interlace algorithm written by Jim
30585 Easterbrook for BBC R&D, the Weston 3 field deinterlacing filter uses
30586 filter coefficients calculated by BBC R&D.
30587
30588 This filter uses field-dominance information in frame to decide which
30589 of each pair of fields to place first in the output. If it gets it
30590 wrong use setfield filter before "w3fdif" filter.
30591
30592 There are two sets of filter coefficients, so called "simple" and
30593 "complex". Which set of filter coefficients is used can be set by
30594 passing an optional parameter:
30595
30596 filter
30597 Set the interlacing filter coefficients. Accepts one of the
30598 following values:
30599
30600 simple
30601 Simple filter coefficient set.
30602
30603 complex
30604 More-complex filter coefficient set.
30605
30606 Default value is complex.
30607
30608 mode
30609 The interlacing mode to adopt. It accepts one of the following
30610 values:
30611
30612 frame
30613 Output one frame for each frame.
30614
30615 field
30616 Output one frame for each field.
30617
30618 The default value is "field".
30619
30620 parity
30621 The picture field parity assumed for the input interlaced video. It
30622 accepts one of the following values:
30623
30624 tff Assume the top field is first.
30625
30626 bff Assume the bottom field is first.
30627
30628 auto
30629 Enable automatic detection of field parity.
30630
30631 The default value is "auto". If the interlacing is unknown or the
30632 decoder does not export this information, top field first will be
30633 assumed.
30634
30635 deint
30636 Specify which frames to deinterlace. Accepts one of the following
30637 values:
30638
30639 all Deinterlace all frames,
30640
30641 interlaced
30642 Only deinterlace frames marked as interlaced.
30643
30644 Default value is all.
30645
30646 Commands
30647
30648 This filter supports same commands as options.
30649
30650 waveform
30651 Video waveform monitor.
30652
30653 The waveform monitor plots color component intensity. By default
30654 luminance only. Each column of the waveform corresponds to a column of
30655 pixels in the source video.
30656
30657 It accepts the following options:
30658
30659 mode, m
30660 Can be either "row", or "column". Default is "column". In row
30661 mode, the graph on the left side represents color component value 0
30662 and the right side represents value = 255. In column mode, the top
30663 side represents color component value = 0 and bottom side
30664 represents value = 255.
30665
30666 intensity, i
30667 Set intensity. Smaller values are useful to find out how many
30668 values of the same luminance are distributed across input
30669 rows/columns. Default value is 0.04. Allowed range is [0, 1].
30670
30671 mirror, r
30672 Set mirroring mode. 0 means unmirrored, 1 means mirrored. In
30673 mirrored mode, higher values will be represented on the left side
30674 for "row" mode and at the top for "column" mode. Default is 1
30675 (mirrored).
30676
30677 display, d
30678 Set display mode. It accepts the following values:
30679
30680 overlay
30681 Presents information identical to that in the "parade", except
30682 that the graphs representing color components are superimposed
30683 directly over one another.
30684
30685 This display mode makes it easier to spot relative differences
30686 or similarities in overlapping areas of the color components
30687 that are supposed to be identical, such as neutral whites,
30688 grays, or blacks.
30689
30690 stack
30691 Display separate graph for the color components side by side in
30692 "row" mode or one below the other in "column" mode.
30693
30694 parade
30695 Display separate graph for the color components side by side in
30696 "column" mode or one below the other in "row" mode.
30697
30698 Using this display mode makes it easy to spot color casts in
30699 the highlights and shadows of an image, by comparing the
30700 contours of the top and the bottom graphs of each waveform.
30701 Since whites, grays, and blacks are characterized by exactly
30702 equal amounts of red, green, and blue, neutral areas of the
30703 picture should display three waveforms of roughly equal
30704 width/height. If not, the correction is easy to perform by
30705 making level adjustments the three waveforms.
30706
30707 Default is "stack".
30708
30709 components, c
30710 Set which color components to display. Default is 1, which means
30711 only luminance or red color component if input is in RGB
30712 colorspace. If is set for example to 7 it will display all 3 (if)
30713 available color components.
30714
30715 envelope, e
30716 none
30717 No envelope, this is default.
30718
30719 instant
30720 Instant envelope, minimum and maximum values presented in graph
30721 will be easily visible even with small "step" value.
30722
30723 peak
30724 Hold minimum and maximum values presented in graph across time.
30725 This way you can still spot out of range values without
30726 constantly looking at waveforms.
30727
30728 peak+instant
30729 Peak and instant envelope combined together.
30730
30731 filter, f
30732 lowpass
30733 No filtering, this is default.
30734
30735 flat
30736 Luma and chroma combined together.
30737
30738 aflat
30739 Similar as above, but shows difference between blue and red
30740 chroma.
30741
30742 xflat
30743 Similar as above, but use different colors.
30744
30745 yflat
30746 Similar as above, but again with different colors.
30747
30748 chroma
30749 Displays only chroma.
30750
30751 color
30752 Displays actual color value on waveform.
30753
30754 acolor
30755 Similar as above, but with luma showing frequency of chroma
30756 values.
30757
30758 graticule, g
30759 Set which graticule to display.
30760
30761 none
30762 Do not display graticule.
30763
30764 green
30765 Display green graticule showing legal broadcast ranges.
30766
30767 orange
30768 Display orange graticule showing legal broadcast ranges.
30769
30770 invert
30771 Display invert graticule showing legal broadcast ranges.
30772
30773 opacity, o
30774 Set graticule opacity.
30775
30776 flags, fl
30777 Set graticule flags.
30778
30779 numbers
30780 Draw numbers above lines. By default enabled.
30781
30782 dots
30783 Draw dots instead of lines.
30784
30785 scale, s
30786 Set scale used for displaying graticule.
30787
30788 digital
30789 millivolts
30790 ire
30791
30792 Default is digital.
30793
30794 bgopacity, b
30795 Set background opacity.
30796
30797 tint0, t0
30798 tint1, t1
30799 Set tint for output. Only used with lowpass filter and when
30800 display is not overlay and input pixel formats are not RGB.
30801
30802 fitmode, fm
30803 Set sample aspect ratio of video output frames. Can be used to
30804 configure waveform so it is not streched too much in one of
30805 directions.
30806
30807 none
30808 Set sample aspect ration to 1/1.
30809
30810 size
30811 Set sample aspect ratio to match input size of video
30812
30813 Default is none.
30814
30815 weave, doubleweave
30816 The "weave" takes a field-based video input and join each two
30817 sequential fields into single frame, producing a new double height clip
30818 with half the frame rate and half the frame count.
30819
30820 The "doubleweave" works same as "weave" but without halving frame rate
30821 and frame count.
30822
30823 It accepts the following option:
30824
30825 first_field
30826 Set first field. Available values are:
30827
30828 top, t
30829 Set the frame as top-field-first.
30830
30831 bottom, b
30832 Set the frame as bottom-field-first.
30833
30834 Examples
30835
30836 • Interlace video using select and separatefields filter:
30837
30838 separatefields,select=eq(mod(n,4),0)+eq(mod(n,4),3),weave
30839
30840 xbr
30841 Apply the xBR high-quality magnification filter which is designed for
30842 pixel art. It follows a set of edge-detection rules, see
30843 <https://forums.libretro.com/t/xbr-algorithm-tutorial/123>.
30844
30845 It accepts the following option:
30846
30847 n Set the scaling dimension: 2 for "2xBR", 3 for "3xBR" and 4 for
30848 "4xBR". Default is 3.
30849
30850 xcorrelate
30851 Apply normalized cross-correlation between first and second input video
30852 stream.
30853
30854 Second input video stream dimensions must be lower than first input
30855 video stream.
30856
30857 The filter accepts the following options:
30858
30859 planes
30860 Set which planes to process.
30861
30862 secondary
30863 Set which secondary video frames will be processed from second
30864 input video stream, can be first or all. Default is all.
30865
30866 The "xcorrelate" filter also supports the framesync options.
30867
30868 xfade
30869 Apply cross fade from one input video stream to another input video
30870 stream. The cross fade is applied for specified duration.
30871
30872 Both inputs must be constant frame-rate and have the same resolution,
30873 pixel format, frame rate and timebase.
30874
30875 The filter accepts the following options:
30876
30877 transition
30878 Set one of available transition effects:
30879
30880 custom
30881 fade
30882 wipeleft
30883 wiperight
30884 wipeup
30885 wipedown
30886 slideleft
30887 slideright
30888 slideup
30889 slidedown
30890 circlecrop
30891 rectcrop
30892 distance
30893 fadeblack
30894 fadewhite
30895 radial
30896 smoothleft
30897 smoothright
30898 smoothup
30899 smoothdown
30900 circleopen
30901 circleclose
30902 vertopen
30903 vertclose
30904 horzopen
30905 horzclose
30906 dissolve
30907 pixelize
30908 diagtl
30909 diagtr
30910 diagbl
30911 diagbr
30912 hlslice
30913 hrslice
30914 vuslice
30915 vdslice
30916 hblur
30917 fadegrays
30918 wipetl
30919 wipetr
30920 wipebl
30921 wipebr
30922 squeezeh
30923 squeezev
30924 zoomin
30925 fadefast
30926 fadeslow
30927
30928 Default transition effect is fade.
30929
30930 duration
30931 Set cross fade duration in seconds. Range is 0 to 60 seconds.
30932 Default duration is 1 second.
30933
30934 offset
30935 Set cross fade start relative to first input stream in seconds.
30936 Default offset is 0.
30937
30938 expr
30939 Set expression for custom transition effect.
30940
30941 The expressions can use the following variables and functions:
30942
30943 X
30944 Y The coordinates of the current sample.
30945
30946 W
30947 H The width and height of the image.
30948
30949 P Progress of transition effect.
30950
30951 PLANE
30952 Currently processed plane.
30953
30954 A Return value of first input at current location and plane.
30955
30956 B Return value of second input at current location and plane.
30957
30958 a0(x, y)
30959 a1(x, y)
30960 a2(x, y)
30961 a3(x, y)
30962 Return the value of the pixel at location (x,y) of the
30963 first/second/third/fourth component of first input.
30964
30965 b0(x, y)
30966 b1(x, y)
30967 b2(x, y)
30968 b3(x, y)
30969 Return the value of the pixel at location (x,y) of the
30970 first/second/third/fourth component of second input.
30971
30972 Examples
30973
30974 • Cross fade from one input video to another input video, with fade
30975 transition and duration of transition of 2 seconds starting at
30976 offset of 5 seconds:
30977
30978 ffmpeg -i first.mp4 -i second.mp4 -filter_complex xfade=transition=fade:duration=2:offset=5 output.mp4
30979
30980 xmedian
30981 Pick median pixels from several input videos.
30982
30983 The filter accepts the following options:
30984
30985 inputs
30986 Set number of inputs. Default is 3. Allowed range is from 3 to
30987 255. If number of inputs is even number, than result will be mean
30988 value between two median values.
30989
30990 planes
30991 Set which planes to filter. Default value is 15, by which all
30992 planes are processed.
30993
30994 percentile
30995 Set median percentile. Default value is 0.5. Default value of 0.5
30996 will pick always median values, while 0 will pick minimum values,
30997 and 1 maximum values.
30998
30999 Commands
31000
31001 This filter supports all above options as commands, excluding option
31002 "inputs".
31003
31004 xstack
31005 Stack video inputs into custom layout.
31006
31007 All streams must be of same pixel format.
31008
31009 The filter accepts the following options:
31010
31011 inputs
31012 Set number of input streams. Default is 2.
31013
31014 layout
31015 Specify layout of inputs. This option requires the desired layout
31016 configuration to be explicitly set by the user. This sets position
31017 of each video input in output. Each input is separated by '|'. The
31018 first number represents the column, and the second number
31019 represents the row. Numbers start at 0 and are separated by '_'.
31020 Optionally one can use wX and hX, where X is video input from which
31021 to take width or height. Multiple values can be used when
31022 separated by '+'. In such case values are summed together.
31023
31024 Note that if inputs are of different sizes gaps may appear, as not
31025 all of the output video frame will be filled. Similarly, videos can
31026 overlap each other if their position doesn't leave enough space for
31027 the full frame of adjoining videos.
31028
31029 For 2 inputs, a default layout of "0_0|w0_0" (equivalent to
31030 "grid=2x1") is set. In all other cases, a layout or a grid must be
31031 set by the user. Either "grid" or "layout" can be specified at a
31032 time. Specifying both will result in an error.
31033
31034 grid
31035 Specify a fixed size grid of inputs. This option is used to create
31036 a fixed size grid of the input streams. Set the grid size in the
31037 form "COLUMNSxROWS". There must be "ROWS * COLUMNS" input streams
31038 and they will be arranged as a grid with "ROWS" rows and "COLUMNS"
31039 columns. When using this option, each input stream within a row
31040 must have the same height and all the rows must have the same
31041 width.
31042
31043 If "grid" is set, then "inputs" option is ignored and is implicitly
31044 set to "ROWS * COLUMNS".
31045
31046 For 2 inputs, a default grid of "2x1" (equivalent to
31047 "layout=0_0|w0_0") is set. In all other cases, a layout or a grid
31048 must be set by the user. Either "grid" or "layout" can be specified
31049 at a time. Specifying both will result in an error.
31050
31051 shortest
31052 If set to 1, force the output to terminate when the shortest input
31053 terminates. Default value is 0.
31054
31055 fill
31056 If set to valid color, all unused pixels will be filled with that
31057 color. By default fill is set to none, so it is disabled.
31058
31059 Examples
31060
31061 • Display 4 inputs into 2x2 grid.
31062
31063 Layout:
31064
31065 input1(0, 0) | input3(w0, 0)
31066 input2(0, h0) | input4(w0, h0)
31067
31068
31069
31070 xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0
31071
31072 Note that if inputs are of different sizes, gaps or overlaps may
31073 occur.
31074
31075 • Display 4 inputs into 1x4 grid.
31076
31077 Layout:
31078
31079 input1(0, 0)
31080 input2(0, h0)
31081 input3(0, h0+h1)
31082 input4(0, h0+h1+h2)
31083
31084
31085
31086 xstack=inputs=4:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2
31087
31088 Note that if inputs are of different widths, unused space will
31089 appear.
31090
31091 • Display 9 inputs into 3x3 grid.
31092
31093 Layout:
31094
31095 input1(0, 0) | input4(w0, 0) | input7(w0+w3, 0)
31096 input2(0, h0) | input5(w0, h0) | input8(w0+w3, h0)
31097 input3(0, h0+h1) | input6(w0, h0+h1) | input9(w0+w3, h0+h1)
31098
31099
31100
31101 xstack=inputs=9:layout=0_0|0_h0|0_h0+h1|w0_0|w0_h0|w0_h0+h1|w0+w3_0|w0+w3_h0|w0+w3_h0+h1
31102
31103 Note that if inputs are of different sizes, gaps or overlaps may
31104 occur.
31105
31106 • Display 16 inputs into 4x4 grid.
31107
31108 Layout:
31109
31110 input1(0, 0) | input5(w0, 0) | input9 (w0+w4, 0) | input13(w0+w4+w8, 0)
31111 input2(0, h0) | input6(w0, h0) | input10(w0+w4, h0) | input14(w0+w4+w8, h0)
31112 input3(0, h0+h1) | input7(w0, h0+h1) | input11(w0+w4, h0+h1) | input15(w0+w4+w8, h0+h1)
31113 input4(0, h0+h1+h2)| input8(w0, h0+h1+h2)| input12(w0+w4, h0+h1+h2)| input16(w0+w4+w8, h0+h1+h2)
31114
31115
31116
31117 xstack=inputs=16:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2|w0_0|w0_h0|w0_h0+h1|w0_h0+h1+h2|w0+w4_0|
31118 w0+w4_h0|w0+w4_h0+h1|w0+w4_h0+h1+h2|w0+w4+w8_0|w0+w4+w8_h0|w0+w4+w8_h0+h1|w0+w4+w8_h0+h1+h2
31119
31120 Note that if inputs are of different sizes, gaps or overlaps may
31121 occur.
31122
31123 yadif
31124 Deinterlace the input video ("yadif" means "yet another deinterlacing
31125 filter").
31126
31127 It accepts the following parameters:
31128
31129 mode
31130 The interlacing mode to adopt. It accepts one of the following
31131 values:
31132
31133 0, send_frame
31134 Output one frame for each frame.
31135
31136 1, send_field
31137 Output one frame for each field.
31138
31139 2, send_frame_nospatial
31140 Like "send_frame", but it skips the spatial interlacing check.
31141
31142 3, send_field_nospatial
31143 Like "send_field", but it skips the spatial interlacing check.
31144
31145 The default value is "send_frame".
31146
31147 parity
31148 The picture field parity assumed for the input interlaced video. It
31149 accepts one of the following values:
31150
31151 0, tff
31152 Assume the top field is first.
31153
31154 1, bff
31155 Assume the bottom field is first.
31156
31157 -1, auto
31158 Enable automatic detection of field parity.
31159
31160 The default value is "auto". If the interlacing is unknown or the
31161 decoder does not export this information, top field first will be
31162 assumed.
31163
31164 deint
31165 Specify which frames to deinterlace. Accepts one of the following
31166 values:
31167
31168 0, all
31169 Deinterlace all frames.
31170
31171 1, interlaced
31172 Only deinterlace frames marked as interlaced.
31173
31174 The default value is "all".
31175
31176 yadif_cuda
31177 Deinterlace the input video using the yadif algorithm, but implemented
31178 in CUDA so that it can work as part of a GPU accelerated pipeline with
31179 nvdec and/or nvenc.
31180
31181 It accepts the following parameters:
31182
31183 mode
31184 The interlacing mode to adopt. It accepts one of the following
31185 values:
31186
31187 0, send_frame
31188 Output one frame for each frame.
31189
31190 1, send_field
31191 Output one frame for each field.
31192
31193 2, send_frame_nospatial
31194 Like "send_frame", but it skips the spatial interlacing check.
31195
31196 3, send_field_nospatial
31197 Like "send_field", but it skips the spatial interlacing check.
31198
31199 The default value is "send_frame".
31200
31201 parity
31202 The picture field parity assumed for the input interlaced video. It
31203 accepts one of the following values:
31204
31205 0, tff
31206 Assume the top field is first.
31207
31208 1, bff
31209 Assume the bottom field is first.
31210
31211 -1, auto
31212 Enable automatic detection of field parity.
31213
31214 The default value is "auto". If the interlacing is unknown or the
31215 decoder does not export this information, top field first will be
31216 assumed.
31217
31218 deint
31219 Specify which frames to deinterlace. Accepts one of the following
31220 values:
31221
31222 0, all
31223 Deinterlace all frames.
31224
31225 1, interlaced
31226 Only deinterlace frames marked as interlaced.
31227
31228 The default value is "all".
31229
31230 yaepblur
31231 Apply blur filter while preserving edges ("yaepblur" means "yet another
31232 edge preserving blur filter"). The algorithm is described in "J. S.
31233 Lee, Digital image enhancement and noise filtering by use of local
31234 statistics, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-2, 1980."
31235
31236 It accepts the following parameters:
31237
31238 radius, r
31239 Set the window radius. Default value is 3.
31240
31241 planes, p
31242 Set which planes to filter. Default is only the first plane.
31243
31244 sigma, s
31245 Set blur strength. Default value is 128.
31246
31247 Commands
31248
31249 This filter supports same commands as options.
31250
31251 zoompan
31252 Apply Zoom & Pan effect.
31253
31254 This filter accepts the following options:
31255
31256 zoom, z
31257 Set the zoom expression. Range is 1-10. Default is 1.
31258
31259 x
31260 y Set the x and y expression. Default is 0.
31261
31262 d Set the duration expression in number of frames. This sets for how
31263 many number of frames effect will last for single input image.
31264 Default is 90.
31265
31266 s Set the output image size, default is 'hd720'.
31267
31268 fps Set the output frame rate, default is '25'.
31269
31270 Each expression can contain the following constants:
31271
31272 in_w, iw
31273 Input width.
31274
31275 in_h, ih
31276 Input height.
31277
31278 out_w, ow
31279 Output width.
31280
31281 out_h, oh
31282 Output height.
31283
31284 in Input frame count.
31285
31286 on Output frame count.
31287
31288 in_time, it
31289 The input timestamp expressed in seconds. It's NAN if the input
31290 timestamp is unknown.
31291
31292 out_time, time, ot
31293 The output timestamp expressed in seconds.
31294
31295 x
31296 y Last calculated 'x' and 'y' position from 'x' and 'y' expression
31297 for current input frame.
31298
31299 px
31300 py 'x' and 'y' of last output frame of previous input frame or 0 when
31301 there was not yet such frame (first input frame).
31302
31303 zoom
31304 Last calculated zoom from 'z' expression for current input frame.
31305
31306 pzoom
31307 Last calculated zoom of last output frame of previous input frame.
31308
31309 duration
31310 Number of output frames for current input frame. Calculated from
31311 'd' expression for each input frame.
31312
31313 pduration
31314 number of output frames created for previous input frame
31315
31316 a Rational number: input width / input height
31317
31318 sar sample aspect ratio
31319
31320 dar display aspect ratio
31321
31322 Examples
31323
31324 • Zoom in up to 1.5x and pan at same time to some spot near center of
31325 picture:
31326
31327 zoompan=z='min(zoom+0.0015,1.5)':d=700:x='if(gte(zoom,1.5),x,x+1/a)':y='if(gte(zoom,1.5),y,y+1)':s=640x360
31328
31329 • Zoom in up to 1.5x and pan always at center of picture:
31330
31331 zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31332
31333 • Same as above but without pausing:
31334
31335 zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31336
31337 • Zoom in 2x into center of picture only for the first second of the
31338 input video:
31339
31340 zoompan=z='if(between(in_time,0,1),2,1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31341
31342 zscale
31343 Scale (resize) the input video, using the z.lib library:
31344 <https://github.com/sekrit-twc/zimg>. To enable compilation of this
31345 filter, you need to configure FFmpeg with "--enable-libzimg".
31346
31347 The zscale filter forces the output display aspect ratio to be the same
31348 as the input, by changing the output sample aspect ratio.
31349
31350 If the input image format is different from the format requested by the
31351 next filter, the zscale filter will convert the input to the requested
31352 format.
31353
31354 Options
31355
31356 The filter accepts the following options.
31357
31358 width, w
31359 height, h
31360 Set the output video dimension expression. Default value is the
31361 input dimension.
31362
31363 If the width or w value is 0, the input width is used for the
31364 output. If the height or h value is 0, the input height is used for
31365 the output.
31366
31367 If one and only one of the values is -n with n >= 1, the zscale
31368 filter will use a value that maintains the aspect ratio of the
31369 input image, calculated from the other specified dimension. After
31370 that it will, however, make sure that the calculated dimension is
31371 divisible by n and adjust the value if necessary.
31372
31373 If both values are -n with n >= 1, the behavior will be identical
31374 to both values being set to 0 as previously detailed.
31375
31376 See below for the list of accepted constants for use in the
31377 dimension expression.
31378
31379 size, s
31380 Set the video size. For the syntax of this option, check the "Video
31381 size" section in the ffmpeg-utils manual.
31382
31383 dither, d
31384 Set the dither type.
31385
31386 Possible values are:
31387
31388 none
31389 ordered
31390 random
31391 error_diffusion
31392
31393 Default is none.
31394
31395 filter, f
31396 Set the resize filter type.
31397
31398 Possible values are:
31399
31400 point
31401 bilinear
31402 bicubic
31403 spline16
31404 spline36
31405 lanczos
31406
31407 Default is bilinear.
31408
31409 range, r
31410 Set the color range.
31411
31412 Possible values are:
31413
31414 input
31415 limited
31416 full
31417
31418 Default is same as input.
31419
31420 primaries, p
31421 Set the color primaries.
31422
31423 Possible values are:
31424
31425 input
31426 709
31427 unspecified
31428 170m
31429 240m
31430 2020
31431
31432 Default is same as input.
31433
31434 transfer, t
31435 Set the transfer characteristics.
31436
31437 Possible values are:
31438
31439 input
31440 709
31441 unspecified
31442 601
31443 linear
31444 2020_10
31445 2020_12
31446 smpte2084
31447 iec61966-2-1
31448 arib-std-b67
31449
31450 Default is same as input.
31451
31452 matrix, m
31453 Set the colorspace matrix.
31454
31455 Possible value are:
31456
31457 input
31458 709
31459 unspecified
31460 470bg
31461 170m
31462 2020_ncl
31463 2020_cl
31464
31465 Default is same as input.
31466
31467 rangein, rin
31468 Set the input color range.
31469
31470 Possible values are:
31471
31472 input
31473 limited
31474 full
31475
31476 Default is same as input.
31477
31478 primariesin, pin
31479 Set the input color primaries.
31480
31481 Possible values are:
31482
31483 input
31484 709
31485 unspecified
31486 170m
31487 240m
31488 2020
31489
31490 Default is same as input.
31491
31492 transferin, tin
31493 Set the input transfer characteristics.
31494
31495 Possible values are:
31496
31497 input
31498 709
31499 unspecified
31500 601
31501 linear
31502 2020_10
31503 2020_12
31504
31505 Default is same as input.
31506
31507 matrixin, min
31508 Set the input colorspace matrix.
31509
31510 Possible value are:
31511
31512 input
31513 709
31514 unspecified
31515 470bg
31516 170m
31517 2020_ncl
31518 2020_cl
31519 chromal, c
31520 Set the output chroma location.
31521
31522 Possible values are:
31523
31524 input
31525 left
31526 center
31527 topleft
31528 top
31529 bottomleft
31530 bottom
31531 chromalin, cin
31532 Set the input chroma location.
31533
31534 Possible values are:
31535
31536 input
31537 left
31538 center
31539 topleft
31540 top
31541 bottomleft
31542 bottom
31543 npl Set the nominal peak luminance.
31544
31545 param_a
31546 Parameter A for scaling filters. Parameter "b" for bicubic, and the
31547 number of filter taps for lanczos.
31548
31549 param_b
31550 Parameter B for scaling filters. Parameter "c" for bicubic.
31551
31552 The values of the w and h options are expressions containing the
31553 following constants:
31554
31555 in_w
31556 in_h
31557 The input width and height
31558
31559 iw
31560 ih These are the same as in_w and in_h.
31561
31562 out_w
31563 out_h
31564 The output (scaled) width and height
31565
31566 ow
31567 oh These are the same as out_w and out_h
31568
31569 a The same as iw / ih
31570
31571 sar input sample aspect ratio
31572
31573 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
31574
31575 hsub
31576 vsub
31577 horizontal and vertical input chroma subsample values. For example
31578 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
31579
31580 ohsub
31581 ovsub
31582 horizontal and vertical output chroma subsample values. For example
31583 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
31584
31585 Commands
31586
31587 This filter supports the following commands:
31588
31589 width, w
31590 height, h
31591 Set the output video dimension expression. The command accepts the
31592 same syntax of the corresponding option.
31593
31594 If the specified expression is not valid, it is kept at its current
31595 value.
31596
31598 Below is a description of the currently available OpenCL video filters.
31599
31600 To enable compilation of these filters you need to configure FFmpeg
31601 with "--enable-opencl".
31602
31603 Running OpenCL filters requires you to initialize a hardware device and
31604 to pass that device to all filters in any filter graph.
31605
31606 -init_hw_device opencl[=name][:device[,key=value...]]
31607 Initialise a new hardware device of type opencl called name, using
31608 the given device parameters.
31609
31610 -filter_hw_device name
31611 Pass the hardware device called name to all filters in any filter
31612 graph.
31613
31614 For more detailed information see
31615 <https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options>
31616
31617 • Example of choosing the first device on the second platform and
31618 running avgblur_opencl filter with default parameters on it.
31619
31620 -init_hw_device opencl=gpu:1.0 -filter_hw_device gpu -i INPUT -vf "hwupload, avgblur_opencl, hwdownload" OUTPUT
31621
31622 Since OpenCL filters are not able to access frame data in normal
31623 memory, all frame data needs to be uploaded(hwupload) to hardware
31624 surfaces connected to the appropriate device before being used and then
31625 downloaded(hwdownload) back to normal memory. Note that hwupload will
31626 upload to a surface with the same layout as the software frame, so it
31627 may be necessary to add a format filter immediately before to get the
31628 input into the right format and hwdownload does not support all formats
31629 on the output - it may be necessary to insert an additional format
31630 filter immediately following in the graph to get the output in a
31631 supported format.
31632
31633 avgblur_opencl
31634 Apply average blur filter.
31635
31636 The filter accepts the following options:
31637
31638 sizeX
31639 Set horizontal radius size. Range is "[1, 1024]" and default value
31640 is 1.
31641
31642 planes
31643 Set which planes to filter. Default value is 0xf, by which all
31644 planes are processed.
31645
31646 sizeY
31647 Set vertical radius size. Range is "[1, 1024]" and default value is
31648 0. If zero, "sizeX" value will be used.
31649
31650 Example
31651
31652 • Apply average blur filter with horizontal and vertical size of 3,
31653 setting each pixel of the output to the average value of the 7x7
31654 region centered on it in the input. For pixels on the edges of the
31655 image, the region does not extend beyond the image boundaries, and
31656 so out-of-range coordinates are not used in the calculations.
31657
31658 -i INPUT -vf "hwupload, avgblur_opencl=3, hwdownload" OUTPUT
31659
31660 boxblur_opencl
31661 Apply a boxblur algorithm to the input video.
31662
31663 It accepts the following parameters:
31664
31665 luma_radius, lr
31666 luma_power, lp
31667 chroma_radius, cr
31668 chroma_power, cp
31669 alpha_radius, ar
31670 alpha_power, ap
31671
31672 A description of the accepted options follows.
31673
31674 luma_radius, lr
31675 chroma_radius, cr
31676 alpha_radius, ar
31677 Set an expression for the box radius in pixels used for blurring
31678 the corresponding input plane.
31679
31680 The radius value must be a non-negative number, and must not be
31681 greater than the value of the expression "min(w,h)/2" for the luma
31682 and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
31683
31684 Default value for luma_radius is "2". If not specified,
31685 chroma_radius and alpha_radius default to the corresponding value
31686 set for luma_radius.
31687
31688 The expressions can contain the following constants:
31689
31690 w
31691 h The input width and height in pixels.
31692
31693 cw
31694 ch The input chroma image width and height in pixels.
31695
31696 hsub
31697 vsub
31698 The horizontal and vertical chroma subsample values. For
31699 example, for the pixel format "yuv422p", hsub is 2 and vsub is
31700 1.
31701
31702 luma_power, lp
31703 chroma_power, cp
31704 alpha_power, ap
31705 Specify how many times the boxblur filter is applied to the
31706 corresponding plane.
31707
31708 Default value for luma_power is 2. If not specified, chroma_power
31709 and alpha_power default to the corresponding value set for
31710 luma_power.
31711
31712 A value of 0 will disable the effect.
31713
31714 Examples
31715
31716 Apply boxblur filter, setting each pixel of the output to the average
31717 value of box-radiuses luma_radius, chroma_radius, alpha_radius for each
31718 plane respectively. The filter will apply luma_power, chroma_power,
31719 alpha_power times onto the corresponding plane. For pixels on the edges
31720 of the image, the radius does not extend beyond the image boundaries,
31721 and so out-of-range coordinates are not used in the calculations.
31722
31723 • Apply a boxblur filter with the luma, chroma, and alpha radius set
31724 to 2 and luma, chroma, and alpha power set to 3. The filter will
31725 run 3 times with box-radius set to 2 for every plane of the image.
31726
31727 -i INPUT -vf "hwupload, boxblur_opencl=luma_radius=2:luma_power=3, hwdownload" OUTPUT
31728 -i INPUT -vf "hwupload, boxblur_opencl=2:3, hwdownload" OUTPUT
31729
31730 • Apply a boxblur filter with luma radius set to 2, luma_power to 1,
31731 chroma_radius to 4, chroma_power to 5, alpha_radius to 3 and
31732 alpha_power to 7.
31733
31734 For the luma plane, a 2x2 box radius will be run once.
31735
31736 For the chroma plane, a 4x4 box radius will be run 5 times.
31737
31738 For the alpha plane, a 3x3 box radius will be run 7 times.
31739
31740 -i INPUT -vf "hwupload, boxblur_opencl=2:1:4:5:3:7, hwdownload" OUTPUT
31741
31742 colorkey_opencl
31743 RGB colorspace color keying.
31744
31745 The filter accepts the following options:
31746
31747 color
31748 The color which will be replaced with transparency.
31749
31750 similarity
31751 Similarity percentage with the key color.
31752
31753 0.01 matches only the exact key color, while 1.0 matches
31754 everything.
31755
31756 blend
31757 Blend percentage.
31758
31759 0.0 makes pixels either fully transparent, or not transparent at
31760 all.
31761
31762 Higher values result in semi-transparent pixels, with a higher
31763 transparency the more similar the pixels color is to the key color.
31764
31765 Examples
31766
31767 • Make every semi-green pixel in the input transparent with some
31768 slight blending:
31769
31770 -i INPUT -vf "hwupload, colorkey_opencl=green:0.3:0.1, hwdownload" OUTPUT
31771
31772 convolution_opencl
31773 Apply convolution of 3x3, 5x5, 7x7 matrix.
31774
31775 The filter accepts the following options:
31776
31777 0m
31778 1m
31779 2m
31780 3m Set matrix for each plane. Matrix is sequence of 9, 25 or 49
31781 signed numbers. Default value for each plane is "0 0 0 0 1 0 0 0
31782 0".
31783
31784 0rdiv
31785 1rdiv
31786 2rdiv
31787 3rdiv
31788 Set multiplier for calculated value for each plane. If unset or 0,
31789 it will be sum of all matrix elements. The option value must be a
31790 float number greater or equal to 0.0. Default value is 1.0.
31791
31792 0bias
31793 1bias
31794 2bias
31795 3bias
31796 Set bias for each plane. This value is added to the result of the
31797 multiplication. Useful for making the overall image brighter or
31798 darker. The option value must be a float number greater or equal
31799 to 0.0. Default value is 0.0.
31800
31801 Examples
31802
31803 • Apply sharpen:
31804
31805 -i INPUT -vf "hwupload, convolution_opencl=0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0, hwdownload" OUTPUT
31806
31807 • Apply blur:
31808
31809 -i INPUT -vf "hwupload, convolution_opencl=1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1/9:1/9:1/9:1/9, hwdownload" OUTPUT
31810
31811 • Apply edge enhance:
31812
31813 -i INPUT -vf "hwupload, convolution_opencl=0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:5:1:1:1:0:128:128:128, hwdownload" OUTPUT
31814
31815 • Apply edge detect:
31816
31817 -i INPUT -vf "hwupload, convolution_opencl=0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:5:5:5:1:0:128:128:128, hwdownload" OUTPUT
31818
31819 • Apply laplacian edge detector which includes diagonals:
31820
31821 -i INPUT -vf "hwupload, convolution_opencl=1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:5:5:5:1:0:128:128:0, hwdownload" OUTPUT
31822
31823 • Apply emboss:
31824
31825 -i INPUT -vf "hwupload, convolution_opencl=-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2, hwdownload" OUTPUT
31826
31827 erosion_opencl
31828 Apply erosion effect to the video.
31829
31830 This filter replaces the pixel by the local(3x3) minimum.
31831
31832 It accepts the following options:
31833
31834 threshold0
31835 threshold1
31836 threshold2
31837 threshold3
31838 Limit the maximum change for each plane. Range is "[0, 65535]" and
31839 default value is 65535. If 0, plane will remain unchanged.
31840
31841 coordinates
31842 Flag which specifies the pixel to refer to. Range is "[0, 255]"
31843 and default value is 255, i.e. all eight pixels are used.
31844
31845 Flags to local 3x3 coordinates region centered on "x":
31846
31847 1 2 3
31848
31849 4 x 5
31850
31851 6 7 8
31852
31853 Example
31854
31855 • Apply erosion filter with threshold0 set to 30, threshold1 set 40,
31856 threshold2 set to 50 and coordinates set to 231, setting each pixel
31857 of the output to the local minimum between pixels: 1, 2, 3, 6, 7, 8
31858 of the 3x3 region centered on it in the input. If the difference
31859 between input pixel and local minimum is more then threshold of the
31860 corresponding plane, output pixel will be set to input pixel -
31861 threshold of corresponding plane.
31862
31863 -i INPUT -vf "hwupload, erosion_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
31864
31865 deshake_opencl
31866 Feature-point based video stabilization filter.
31867
31868 The filter accepts the following options:
31869
31870 tripod
31871 Simulates a tripod by preventing any camera movement whatsoever
31872 from the original frame. Defaults to 0.
31873
31874 debug
31875 Whether or not additional debug info should be displayed, both in
31876 the processed output and in the console.
31877
31878 Note that in order to see console debug output you will also need
31879 to pass "-v verbose" to ffmpeg.
31880
31881 Viewing point matches in the output video is only supported for RGB
31882 input.
31883
31884 Defaults to 0.
31885
31886 adaptive_crop
31887 Whether or not to do a tiny bit of cropping at the borders to cut
31888 down on the amount of mirrored pixels.
31889
31890 Defaults to 1.
31891
31892 refine_features
31893 Whether or not feature points should be refined at a sub-pixel
31894 level.
31895
31896 This can be turned off for a slight performance gain at the cost of
31897 precision.
31898
31899 Defaults to 1.
31900
31901 smooth_strength
31902 The strength of the smoothing applied to the camera path from 0.0
31903 to 1.0.
31904
31905 1.0 is the maximum smoothing strength while values less than that
31906 result in less smoothing.
31907
31908 0.0 causes the filter to adaptively choose a smoothing strength on
31909 a per-frame basis.
31910
31911 Defaults to 0.0.
31912
31913 smooth_window_multiplier
31914 Controls the size of the smoothing window (the number of frames
31915 buffered to determine motion information from).
31916
31917 The size of the smoothing window is determined by multiplying the
31918 framerate of the video by this number.
31919
31920 Acceptable values range from 0.1 to 10.0.
31921
31922 Larger values increase the amount of motion data available for
31923 determining how to smooth the camera path, potentially improving
31924 smoothness, but also increase latency and memory usage.
31925
31926 Defaults to 2.0.
31927
31928 Examples
31929
31930 • Stabilize a video with a fixed, medium smoothing strength:
31931
31932 -i INPUT -vf "hwupload, deshake_opencl=smooth_strength=0.5, hwdownload" OUTPUT
31933
31934 • Stabilize a video with debugging (both in console and in rendered
31935 video):
31936
31937 -i INPUT -filter_complex "[0:v]format=rgba, hwupload, deshake_opencl=debug=1, hwdownload, format=rgba, format=yuv420p" -v verbose OUTPUT
31938
31939 dilation_opencl
31940 Apply dilation effect to the video.
31941
31942 This filter replaces the pixel by the local(3x3) maximum.
31943
31944 It accepts the following options:
31945
31946 threshold0
31947 threshold1
31948 threshold2
31949 threshold3
31950 Limit the maximum change for each plane. Range is "[0, 65535]" and
31951 default value is 65535. If 0, plane will remain unchanged.
31952
31953 coordinates
31954 Flag which specifies the pixel to refer to. Range is "[0, 255]"
31955 and default value is 255, i.e. all eight pixels are used.
31956
31957 Flags to local 3x3 coordinates region centered on "x":
31958
31959 1 2 3
31960
31961 4 x 5
31962
31963 6 7 8
31964
31965 Example
31966
31967 • Apply dilation filter with threshold0 set to 30, threshold1 set 40,
31968 threshold2 set to 50 and coordinates set to 231, setting each pixel
31969 of the output to the local maximum between pixels: 1, 2, 3, 6, 7, 8
31970 of the 3x3 region centered on it in the input. If the difference
31971 between input pixel and local maximum is more then threshold of the
31972 corresponding plane, output pixel will be set to input pixel +
31973 threshold of corresponding plane.
31974
31975 -i INPUT -vf "hwupload, dilation_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
31976
31977 nlmeans_opencl
31978 Non-local Means denoise filter through OpenCL, this filter accepts same
31979 options as nlmeans.
31980
31981 overlay_opencl
31982 Overlay one video on top of another.
31983
31984 It takes two inputs and has one output. The first input is the "main"
31985 video on which the second input is overlaid. This filter requires same
31986 memory layout for all the inputs. So, format conversion may be needed.
31987
31988 The filter accepts the following options:
31989
31990 x Set the x coordinate of the overlaid video on the main video.
31991 Default value is 0.
31992
31993 y Set the y coordinate of the overlaid video on the main video.
31994 Default value is 0.
31995
31996 Examples
31997
31998 • Overlay an image LOGO at the top-left corner of the INPUT video.
31999 Both inputs are yuv420p format.
32000
32001 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
32002
32003 • The inputs have same memory layout for color channels , the overlay
32004 has additional alpha plane, like INPUT is yuv420p, and the LOGO is
32005 yuva420p.
32006
32007 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
32008
32009 pad_opencl
32010 Add paddings to the input image, and place the original input at the
32011 provided x, y coordinates.
32012
32013 It accepts the following options:
32014
32015 width, w
32016 height, h
32017 Specify an expression for the size of the output image with the
32018 paddings added. If the value for width or height is 0, the
32019 corresponding input size is used for the output.
32020
32021 The width expression can reference the value set by the height
32022 expression, and vice versa.
32023
32024 The default value of width and height is 0.
32025
32026 x
32027 y Specify the offsets to place the input image at within the padded
32028 area, with respect to the top/left border of the output image.
32029
32030 The x expression can reference the value set by the y expression,
32031 and vice versa.
32032
32033 The default value of x and y is 0.
32034
32035 If x or y evaluate to a negative number, they'll be changed so the
32036 input image is centered on the padded area.
32037
32038 color
32039 Specify the color of the padded area. For the syntax of this
32040 option, check the "Color" section in the ffmpeg-utils manual.
32041
32042 aspect
32043 Pad to an aspect instead to a resolution.
32044
32045 The value for the width, height, x, and y options are expressions
32046 containing the following constants:
32047
32048 in_w
32049 in_h
32050 The input video width and height.
32051
32052 iw
32053 ih These are the same as in_w and in_h.
32054
32055 out_w
32056 out_h
32057 The output width and height (the size of the padded area), as
32058 specified by the width and height expressions.
32059
32060 ow
32061 oh These are the same as out_w and out_h.
32062
32063 x
32064 y The x and y offsets as specified by the x and y expressions, or NAN
32065 if not yet specified.
32066
32067 a same as iw / ih
32068
32069 sar input sample aspect ratio
32070
32071 dar input display aspect ratio, it is the same as (iw / ih) * sar
32072
32073 prewitt_opencl
32074 Apply the Prewitt operator
32075 (<https://en.wikipedia.org/wiki/Prewitt_operator>) to input video
32076 stream.
32077
32078 The filter accepts the following option:
32079
32080 planes
32081 Set which planes to filter. Default value is 0xf, by which all
32082 planes are processed.
32083
32084 scale
32085 Set value which will be multiplied with filtered result. Range is
32086 "[0.0, 65535]" and default value is 1.0.
32087
32088 delta
32089 Set value which will be added to filtered result. Range is
32090 "[-65535, 65535]" and default value is 0.0.
32091
32092 Example
32093
32094 • Apply the Prewitt operator with scale set to 2 and delta set to 10.
32095
32096 -i INPUT -vf "hwupload, prewitt_opencl=scale=2:delta=10, hwdownload" OUTPUT
32097
32098 program_opencl
32099 Filter video using an OpenCL program.
32100
32101 source
32102 OpenCL program source file.
32103
32104 kernel
32105 Kernel name in program.
32106
32107 inputs
32108 Number of inputs to the filter. Defaults to 1.
32109
32110 size, s
32111 Size of output frames. Defaults to the same as the first input.
32112
32113 The "program_opencl" filter also supports the framesync options.
32114
32115 The program source file must contain a kernel function with the given
32116 name, which will be run once for each plane of the output. Each run on
32117 a plane gets enqueued as a separate 2D global NDRange with one work-
32118 item for each pixel to be generated. The global ID offset for each
32119 work-item is therefore the coordinates of a pixel in the destination
32120 image.
32121
32122 The kernel function needs to take the following arguments:
32123
32124 • Destination image, __write_only image2d_t.
32125
32126 This image will become the output; the kernel should write all of
32127 it.
32128
32129 • Frame index, unsigned int.
32130
32131 This is a counter starting from zero and increasing by one for each
32132 frame.
32133
32134 • Source images, __read_only image2d_t.
32135
32136 These are the most recent images on each input. The kernel may
32137 read from them to generate the output, but they can't be written
32138 to.
32139
32140 Example programs:
32141
32142 • Copy the input to the output (output must be the same size as the
32143 input).
32144
32145 __kernel void copy(__write_only image2d_t destination,
32146 unsigned int index,
32147 __read_only image2d_t source)
32148 {
32149 const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE;
32150
32151 int2 location = (int2)(get_global_id(0), get_global_id(1));
32152
32153 float4 value = read_imagef(source, sampler, location);
32154
32155 write_imagef(destination, location, value);
32156 }
32157
32158 • Apply a simple transformation, rotating the input by an amount
32159 increasing with the index counter. Pixel values are linearly
32160 interpolated by the sampler, and the output need not have the same
32161 dimensions as the input.
32162
32163 __kernel void rotate_image(__write_only image2d_t dst,
32164 unsigned int index,
32165 __read_only image2d_t src)
32166 {
32167 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
32168 CLK_FILTER_LINEAR);
32169
32170 float angle = (float)index / 100.0f;
32171
32172 float2 dst_dim = convert_float2(get_image_dim(dst));
32173 float2 src_dim = convert_float2(get_image_dim(src));
32174
32175 float2 dst_cen = dst_dim / 2.0f;
32176 float2 src_cen = src_dim / 2.0f;
32177
32178 int2 dst_loc = (int2)(get_global_id(0), get_global_id(1));
32179
32180 float2 dst_pos = convert_float2(dst_loc) - dst_cen;
32181 float2 src_pos = {
32182 cos(angle) * dst_pos.x - sin(angle) * dst_pos.y,
32183 sin(angle) * dst_pos.x + cos(angle) * dst_pos.y
32184 };
32185 src_pos = src_pos * src_dim / dst_dim;
32186
32187 float2 src_loc = src_pos + src_cen;
32188
32189 if (src_loc.x < 0.0f || src_loc.y < 0.0f ||
32190 src_loc.x > src_dim.x || src_loc.y > src_dim.y)
32191 write_imagef(dst, dst_loc, 0.5f);
32192 else
32193 write_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc));
32194 }
32195
32196 • Blend two inputs together, with the amount of each input used
32197 varying with the index counter.
32198
32199 __kernel void blend_images(__write_only image2d_t dst,
32200 unsigned int index,
32201 __read_only image2d_t src1,
32202 __read_only image2d_t src2)
32203 {
32204 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
32205 CLK_FILTER_LINEAR);
32206
32207 float blend = (cos((float)index / 50.0f) + 1.0f) / 2.0f;
32208
32209 int2 dst_loc = (int2)(get_global_id(0), get_global_id(1));
32210 int2 src1_loc = dst_loc * get_image_dim(src1) / get_image_dim(dst);
32211 int2 src2_loc = dst_loc * get_image_dim(src2) / get_image_dim(dst);
32212
32213 float4 val1 = read_imagef(src1, sampler, src1_loc);
32214 float4 val2 = read_imagef(src2, sampler, src2_loc);
32215
32216 write_imagef(dst, dst_loc, val1 * blend + val2 * (1.0f - blend));
32217 }
32218
32219 remap_opencl
32220 Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
32221
32222 Destination pixel at position (X, Y) will be picked from source (x, y)
32223 position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
32224 out of range, zero value for pixel will be used for destination pixel.
32225
32226 Xmap and Ymap input video streams must be of same dimensions. Output
32227 video stream will have Xmap/Ymap video stream dimensions. Xmap and
32228 Ymap input video streams are 32bit float pixel format, single channel.
32229
32230 interp
32231 Specify interpolation used for remapping of pixels. Allowed values
32232 are "near" and "linear". Default value is "linear".
32233
32234 fill
32235 Specify the color of the unmapped pixels. For the syntax of this
32236 option, check the "Color" section in the ffmpeg-utils manual.
32237 Default color is "black".
32238
32239 roberts_opencl
32240 Apply the Roberts cross operator
32241 (<https://en.wikipedia.org/wiki/Roberts_cross>) to input video stream.
32242
32243 The filter accepts the following option:
32244
32245 planes
32246 Set which planes to filter. Default value is 0xf, by which all
32247 planes are processed.
32248
32249 scale
32250 Set value which will be multiplied with filtered result. Range is
32251 "[0.0, 65535]" and default value is 1.0.
32252
32253 delta
32254 Set value which will be added to filtered result. Range is
32255 "[-65535, 65535]" and default value is 0.0.
32256
32257 Example
32258
32259 • Apply the Roberts cross operator with scale set to 2 and delta set
32260 to 10
32261
32262 -i INPUT -vf "hwupload, roberts_opencl=scale=2:delta=10, hwdownload" OUTPUT
32263
32264 sobel_opencl
32265 Apply the Sobel operator
32266 (<https://en.wikipedia.org/wiki/Sobel_operator>) to input video stream.
32267
32268 The filter accepts the following option:
32269
32270 planes
32271 Set which planes to filter. Default value is 0xf, by which all
32272 planes are processed.
32273
32274 scale
32275 Set value which will be multiplied with filtered result. Range is
32276 "[0.0, 65535]" and default value is 1.0.
32277
32278 delta
32279 Set value which will be added to filtered result. Range is
32280 "[-65535, 65535]" and default value is 0.0.
32281
32282 Example
32283
32284 • Apply sobel operator with scale set to 2 and delta set to 10
32285
32286 -i INPUT -vf "hwupload, sobel_opencl=scale=2:delta=10, hwdownload" OUTPUT
32287
32288 tonemap_opencl
32289 Perform HDR(PQ/HLG) to SDR conversion with tone-mapping.
32290
32291 It accepts the following parameters:
32292
32293 tonemap
32294 Specify the tone-mapping operator to be used. Same as tonemap
32295 option in tonemap.
32296
32297 param
32298 Tune the tone mapping algorithm. same as param option in tonemap.
32299
32300 desat
32301 Apply desaturation for highlights that exceed this level of
32302 brightness. The higher the parameter, the more color information
32303 will be preserved. This setting helps prevent unnaturally blown-out
32304 colors for super-highlights, by (smoothly) turning into white
32305 instead. This makes images feel more natural, at the cost of
32306 reducing information about out-of-range colors.
32307
32308 The default value is 0.5, and the algorithm here is a little
32309 different from the cpu version tonemap currently. A setting of 0.0
32310 disables this option.
32311
32312 threshold
32313 The tonemapping algorithm parameters is fine-tuned per each scene.
32314 And a threshold is used to detect whether the scene has changed or
32315 not. If the distance between the current frame average brightness
32316 and the current running average exceeds a threshold value, we would
32317 re-calculate scene average and peak brightness. The default value
32318 is 0.2.
32319
32320 format
32321 Specify the output pixel format.
32322
32323 Currently supported formats are:
32324
32325 p010
32326 nv12
32327 range, r
32328 Set the output color range.
32329
32330 Possible values are:
32331
32332 tv/mpeg
32333 pc/jpeg
32334
32335 Default is same as input.
32336
32337 primaries, p
32338 Set the output color primaries.
32339
32340 Possible values are:
32341
32342 bt709
32343 bt2020
32344
32345 Default is same as input.
32346
32347 transfer, t
32348 Set the output transfer characteristics.
32349
32350 Possible values are:
32351
32352 bt709
32353 bt2020
32354
32355 Default is bt709.
32356
32357 matrix, m
32358 Set the output colorspace matrix.
32359
32360 Possible value are:
32361
32362 bt709
32363 bt2020
32364
32365 Default is same as input.
32366
32367 Example
32368
32369 • Convert HDR(PQ/HLG) video to bt2020-transfer-characteristic p010
32370 format using linear operator.
32371
32372 -i INPUT -vf "format=p010,hwupload,tonemap_opencl=t=bt2020:tonemap=linear:format=p010,hwdownload,format=p010" OUTPUT
32373
32374 unsharp_opencl
32375 Sharpen or blur the input video.
32376
32377 It accepts the following parameters:
32378
32379 luma_msize_x, lx
32380 Set the luma matrix horizontal size. Range is "[1, 23]" and
32381 default value is 5.
32382
32383 luma_msize_y, ly
32384 Set the luma matrix vertical size. Range is "[1, 23]" and default
32385 value is 5.
32386
32387 luma_amount, la
32388 Set the luma effect strength. Range is "[-10, 10]" and default
32389 value is 1.0.
32390
32391 Negative values will blur the input video, while positive values
32392 will sharpen it, a value of zero will disable the effect.
32393
32394 chroma_msize_x, cx
32395 Set the chroma matrix horizontal size. Range is "[1, 23]" and
32396 default value is 5.
32397
32398 chroma_msize_y, cy
32399 Set the chroma matrix vertical size. Range is "[1, 23]" and
32400 default value is 5.
32401
32402 chroma_amount, ca
32403 Set the chroma effect strength. Range is "[-10, 10]" and default
32404 value is 0.0.
32405
32406 Negative values will blur the input video, while positive values
32407 will sharpen it, a value of zero will disable the effect.
32408
32409 All parameters are optional and default to the equivalent of the string
32410 '5:5:1.0:5:5:0.0'.
32411
32412 Examples
32413
32414 • Apply strong luma sharpen effect:
32415
32416 -i INPUT -vf "hwupload, unsharp_opencl=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5, hwdownload" OUTPUT
32417
32418 • Apply a strong blur of both luma and chroma parameters:
32419
32420 -i INPUT -vf "hwupload, unsharp_opencl=7:7:-2:7:7:-2, hwdownload" OUTPUT
32421
32422 xfade_opencl
32423 Cross fade two videos with custom transition effect by using OpenCL.
32424
32425 It accepts the following options:
32426
32427 transition
32428 Set one of possible transition effects.
32429
32430 custom
32431 Select custom transition effect, the actual transition
32432 description will be picked from source and kernel options.
32433
32434 fade
32435 wipeleft
32436 wiperight
32437 wipeup
32438 wipedown
32439 slideleft
32440 slideright
32441 slideup
32442 slidedown
32443 Default transition is fade.
32444
32445 source
32446 OpenCL program source file for custom transition.
32447
32448 kernel
32449 Set name of kernel to use for custom transition from program source
32450 file.
32451
32452 duration
32453 Set duration of video transition.
32454
32455 offset
32456 Set time of start of transition relative to first video.
32457
32458 The program source file must contain a kernel function with the given
32459 name, which will be run once for each plane of the output. Each run on
32460 a plane gets enqueued as a separate 2D global NDRange with one work-
32461 item for each pixel to be generated. The global ID offset for each
32462 work-item is therefore the coordinates of a pixel in the destination
32463 image.
32464
32465 The kernel function needs to take the following arguments:
32466
32467 • Destination image, __write_only image2d_t.
32468
32469 This image will become the output; the kernel should write all of
32470 it.
32471
32472 • First Source image, __read_only image2d_t. Second Source image,
32473 __read_only image2d_t.
32474
32475 These are the most recent images on each input. The kernel may
32476 read from them to generate the output, but they can't be written
32477 to.
32478
32479 • Transition progress, float. This value is always between 0 and 1
32480 inclusive.
32481
32482 Example programs:
32483
32484 • Apply dots curtain transition effect:
32485
32486 __kernel void blend_images(__write_only image2d_t dst,
32487 __read_only image2d_t src1,
32488 __read_only image2d_t src2,
32489 float progress)
32490 {
32491 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
32492 CLK_FILTER_LINEAR);
32493 int2 p = (int2)(get_global_id(0), get_global_id(1));
32494 float2 rp = (float2)(get_global_id(0), get_global_id(1));
32495 float2 dim = (float2)(get_image_dim(src1).x, get_image_dim(src1).y);
32496 rp = rp / dim;
32497
32498 float2 dots = (float2)(20.0, 20.0);
32499 float2 center = (float2)(0,0);
32500 float2 unused;
32501
32502 float4 val1 = read_imagef(src1, sampler, p);
32503 float4 val2 = read_imagef(src2, sampler, p);
32504 bool next = distance(fract(rp * dots, &unused), (float2)(0.5, 0.5)) < (progress / distance(rp, center));
32505
32506 write_imagef(dst, p, next ? val1 : val2);
32507 }
32508
32510 VAAPI Video filters are usually used with VAAPI decoder and VAAPI
32511 encoder. Below is a description of VAAPI video filters.
32512
32513 To enable compilation of these filters you need to configure FFmpeg
32514 with "--enable-vaapi".
32515
32516 To use vaapi filters, you need to setup the vaapi device correctly. For
32517 more information, please read
32518 <https://trac.ffmpeg.org/wiki/Hardware/VAAPI>
32519
32520 overlay_vaapi
32521 Overlay one video on the top of another.
32522
32523 It takes two inputs and has one output. The first input is the "main"
32524 video on which the second input is overlaid. This filter requires same
32525 memory layout for all the inputs. So, format conversion may be needed.
32526
32527 The filter accepts the following options:
32528
32529 x Set the x coordinate of the overlaid video on the main video.
32530 Default value is 0.
32531
32532 y Set the y coordinate of the overlaid video on the main video.
32533 Default value is 0.
32534
32535 w Set the width of the overlaid video on the main video. Default
32536 value is the width of input overlay video.
32537
32538 h Set the height of the overlaid video on the main video. Default
32539 value is the height of input overlay video.
32540
32541 alpha
32542 Set blocking detection thresholds. Allowed range is 0.0 to 1.0, it
32543 requires an input video with alpha channel. Default value is 0.0.
32544
32545 Examples
32546
32547 • Overlay an image LOGO at the top-left corner of the INPUT video.
32548 Both inputs for this filter are yuv420p format.
32549
32550 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_vaapi" OUTPUT
32551
32552 • Overlay an image LOGO at the offset (200, 100) from the top-left
32553 corner of the INPUT video. The inputs have same memory layout for
32554 color channels, the overlay has additional alpha plane, like INPUT
32555 is yuv420p, and the LOGO is yuva420p.
32556
32557 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_vaapi=x=200:y=100:w=400:h=300:alpha=1.0, hwdownload, format=nv12" OUTPUT
32558
32559 tonemap_vaapi
32560 Perform HDR(High Dynamic Range) to SDR(Standard Dynamic Range)
32561 conversion with tone-mapping. It maps the dynamic range of HDR10
32562 content to the SDR content. It currently only accepts HDR10 as input.
32563
32564 It accepts the following parameters:
32565
32566 format
32567 Specify the output pixel format.
32568
32569 Currently supported formats are:
32570
32571 p010
32572 nv12
32573
32574 Default is nv12.
32575
32576 primaries, p
32577 Set the output color primaries.
32578
32579 Default is same as input.
32580
32581 transfer, t
32582 Set the output transfer characteristics.
32583
32584 Default is bt709.
32585
32586 matrix, m
32587 Set the output colorspace matrix.
32588
32589 Default is same as input.
32590
32591 Example
32592
32593 • Convert HDR(HDR10) video to bt2020-transfer-characteristic p010
32594 format
32595
32596 tonemap_vaapi=format=p010:t=bt2020-10
32597
32599 Below is a description of the currently available video sources.
32600
32601 buffer
32602 Buffer video frames, and make them available to the filter chain.
32603
32604 This source is mainly intended for a programmatic use, in particular
32605 through the interface defined in libavfilter/buffersrc.h.
32606
32607 It accepts the following parameters:
32608
32609 video_size
32610 Specify the size (width and height) of the buffered video frames.
32611 For the syntax of this option, check the "Video size" section in
32612 the ffmpeg-utils manual.
32613
32614 width
32615 The input video width.
32616
32617 height
32618 The input video height.
32619
32620 pix_fmt
32621 A string representing the pixel format of the buffered video
32622 frames. It may be a number corresponding to a pixel format, or a
32623 pixel format name.
32624
32625 time_base
32626 Specify the timebase assumed by the timestamps of the buffered
32627 frames.
32628
32629 frame_rate
32630 Specify the frame rate expected for the video stream.
32631
32632 pixel_aspect, sar
32633 The sample (pixel) aspect ratio of the input video.
32634
32635 sws_param
32636 This option is deprecated and ignored. Prepend "sws_flags=flags;"
32637 to the filtergraph description to specify swscale flags for
32638 automatically inserted scalers. See Filtergraph syntax.
32639
32640 hw_frames_ctx
32641 When using a hardware pixel format, this should be a reference to
32642 an AVHWFramesContext describing input frames.
32643
32644 For example:
32645
32646 buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
32647
32648 will instruct the source to accept video frames with size 320x240 and
32649 with format "yuv410p", assuming 1/24 as the timestamps timebase and
32650 square pixels (1:1 sample aspect ratio). Since the pixel format with
32651 name "yuv410p" corresponds to the number 6 (check the enum
32652 AVPixelFormat definition in libavutil/pixfmt.h), this example
32653 corresponds to:
32654
32655 buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
32656
32657 Alternatively, the options can be specified as a flat string, but this
32658 syntax is deprecated:
32659
32660 width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den
32661
32662 cellauto
32663 Create a pattern generated by an elementary cellular automaton.
32664
32665 The initial state of the cellular automaton can be defined through the
32666 filename and pattern options. If such options are not specified an
32667 initial state is created randomly.
32668
32669 At each new frame a new row in the video is filled with the result of
32670 the cellular automaton next generation. The behavior when the whole
32671 frame is filled is defined by the scroll option.
32672
32673 This source accepts the following options:
32674
32675 filename, f
32676 Read the initial cellular automaton state, i.e. the starting row,
32677 from the specified file. In the file, each non-whitespace
32678 character is considered an alive cell, a newline will terminate the
32679 row, and further characters in the file will be ignored.
32680
32681 pattern, p
32682 Read the initial cellular automaton state, i.e. the starting row,
32683 from the specified string.
32684
32685 Each non-whitespace character in the string is considered an alive
32686 cell, a newline will terminate the row, and further characters in
32687 the string will be ignored.
32688
32689 rate, r
32690 Set the video rate, that is the number of frames generated per
32691 second. Default is 25.
32692
32693 random_fill_ratio, ratio
32694 Set the random fill ratio for the initial cellular automaton row.
32695 It is a floating point number value ranging from 0 to 1, defaults
32696 to 1/PHI.
32697
32698 This option is ignored when a file or a pattern is specified.
32699
32700 random_seed, seed
32701 Set the seed for filling randomly the initial row, must be an
32702 integer included between 0 and UINT32_MAX. If not specified, or if
32703 explicitly set to -1, the filter will try to use a good random seed
32704 on a best effort basis.
32705
32706 rule
32707 Set the cellular automaton rule, it is a number ranging from 0 to
32708 255. Default value is 110.
32709
32710 size, s
32711 Set the size of the output video. For the syntax of this option,
32712 check the "Video size" section in the ffmpeg-utils manual.
32713
32714 If filename or pattern is specified, the size is set by default to
32715 the width of the specified initial state row, and the height is set
32716 to width * PHI.
32717
32718 If size is set, it must contain the width of the specified pattern
32719 string, and the specified pattern will be centered in the larger
32720 row.
32721
32722 If a filename or a pattern string is not specified, the size value
32723 defaults to "320x518" (used for a randomly generated initial
32724 state).
32725
32726 scroll
32727 If set to 1, scroll the output upward when all the rows in the
32728 output have been already filled. If set to 0, the new generated row
32729 will be written over the top row just after the bottom row is
32730 filled. Defaults to 1.
32731
32732 start_full, full
32733 If set to 1, completely fill the output with generated rows before
32734 outputting the first frame. This is the default behavior, for
32735 disabling set the value to 0.
32736
32737 stitch
32738 If set to 1, stitch the left and right row edges together. This is
32739 the default behavior, for disabling set the value to 0.
32740
32741 Examples
32742
32743 • Read the initial state from pattern, and specify an output of size
32744 200x400.
32745
32746 cellauto=f=pattern:s=200x400
32747
32748 • Generate a random initial row with a width of 200 cells, with a
32749 fill ratio of 2/3:
32750
32751 cellauto=ratio=2/3:s=200x200
32752
32753 • Create a pattern generated by rule 18 starting by a single alive
32754 cell centered on an initial row with width 100:
32755
32756 cellauto=p=@s=100x400:full=0:rule=18
32757
32758 • Specify a more elaborated initial pattern:
32759
32760 cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
32761
32762 coreimagesrc
32763 Video source generated on GPU using Apple's CoreImage API on OSX.
32764
32765 This video source is a specialized version of the coreimage video
32766 filter. Use a core image generator at the beginning of the applied
32767 filterchain to generate the content.
32768
32769 The coreimagesrc video source accepts the following options:
32770
32771 list_generators
32772 List all available generators along with all their respective
32773 options as well as possible minimum and maximum values along with
32774 the default values.
32775
32776 list_generators=true
32777
32778 size, s
32779 Specify the size of the sourced video. For the syntax of this
32780 option, check the "Video size" section in the ffmpeg-utils manual.
32781 The default value is "320x240".
32782
32783 rate, r
32784 Specify the frame rate of the sourced video, as the number of
32785 frames generated per second. It has to be a string in the format
32786 frame_rate_num/frame_rate_den, an integer number, a floating point
32787 number or a valid video frame rate abbreviation. The default value
32788 is "25".
32789
32790 sar Set the sample aspect ratio of the sourced video.
32791
32792 duration, d
32793 Set the duration of the sourced video. See the Time duration
32794 section in the ffmpeg-utils(1) manual for the accepted syntax.
32795
32796 If not specified, or the expressed duration is negative, the video
32797 is supposed to be generated forever.
32798
32799 Additionally, all options of the coreimage video filter are accepted.
32800 A complete filterchain can be used for further processing of the
32801 generated input without CPU-HOST transfer. See coreimage documentation
32802 and examples for details.
32803
32804 Examples
32805
32806 • Use CIQRCodeGenerator to create a QR code for the FFmpeg homepage,
32807 given as complete and escaped command-line for Apple's standard
32808 bash shell:
32809
32810 ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
32811
32812 This example is equivalent to the QRCode example of coreimage
32813 without the need for a nullsrc video source.
32814
32815 gradients
32816 Generate several gradients.
32817
32818 size, s
32819 Set frame size. For the syntax of this option, check the "Video
32820 size" section in the ffmpeg-utils manual. Default value is
32821 "640x480".
32822
32823 rate, r
32824 Set frame rate, expressed as number of frames per second. Default
32825 value is "25".
32826
32827 c0, c1, c2, c3, c4, c5, c6, c7
32828 Set 8 colors. Default values for colors is to pick random one.
32829
32830 x0, y0, y0, y1
32831 Set gradient line source and destination points. If negative or out
32832 of range, random ones are picked.
32833
32834 nb_colors, n
32835 Set number of colors to use at once. Allowed range is from 2 to 8.
32836 Default value is 2.
32837
32838 seed
32839 Set seed for picking gradient line points.
32840
32841 duration, d
32842 Set the duration of the sourced video. See the Time duration
32843 section in the ffmpeg-utils(1) manual for the accepted syntax.
32844
32845 If not specified, or the expressed duration is negative, the video
32846 is supposed to be generated forever.
32847
32848 speed
32849 Set speed of gradients rotation.
32850
32851 type, t
32852 Set type of gradients, can be "linear" or "radial" or "circular" or
32853 "spiral".
32854
32855 mandelbrot
32856 Generate a Mandelbrot set fractal, and progressively zoom towards the
32857 point specified with start_x and start_y.
32858
32859 This source accepts the following options:
32860
32861 end_pts
32862 Set the terminal pts value. Default value is 400.
32863
32864 end_scale
32865 Set the terminal scale value. Must be a floating point value.
32866 Default value is 0.3.
32867
32868 inner
32869 Set the inner coloring mode, that is the algorithm used to draw the
32870 Mandelbrot fractal internal region.
32871
32872 It shall assume one of the following values:
32873
32874 black
32875 Set black mode.
32876
32877 convergence
32878 Show time until convergence.
32879
32880 mincol
32881 Set color based on point closest to the origin of the
32882 iterations.
32883
32884 period
32885 Set period mode.
32886
32887 Default value is mincol.
32888
32889 bailout
32890 Set the bailout value. Default value is 10.0.
32891
32892 maxiter
32893 Set the maximum of iterations performed by the rendering algorithm.
32894 Default value is 7189.
32895
32896 outer
32897 Set outer coloring mode. It shall assume one of following values:
32898
32899 iteration_count
32900 Set iteration count mode.
32901
32902 normalized_iteration_count
32903 set normalized iteration count mode.
32904
32905 Default value is normalized_iteration_count.
32906
32907 rate, r
32908 Set frame rate, expressed as number of frames per second. Default
32909 value is "25".
32910
32911 size, s
32912 Set frame size. For the syntax of this option, check the "Video
32913 size" section in the ffmpeg-utils manual. Default value is
32914 "640x480".
32915
32916 start_scale
32917 Set the initial scale value. Default value is 3.0.
32918
32919 start_x
32920 Set the initial x position. Must be a floating point value between
32921 -100 and 100. Default value is
32922 -0.743643887037158704752191506114774.
32923
32924 start_y
32925 Set the initial y position. Must be a floating point value between
32926 -100 and 100. Default value is
32927 -0.131825904205311970493132056385139.
32928
32929 mptestsrc
32930 Generate various test patterns, as generated by the MPlayer test
32931 filter.
32932
32933 The size of the generated video is fixed, and is 256x256. This source
32934 is useful in particular for testing encoding features.
32935
32936 This source accepts the following options:
32937
32938 rate, r
32939 Specify the frame rate of the sourced video, as the number of
32940 frames generated per second. It has to be a string in the format
32941 frame_rate_num/frame_rate_den, an integer number, a floating point
32942 number or a valid video frame rate abbreviation. The default value
32943 is "25".
32944
32945 duration, d
32946 Set the duration of the sourced video. See the Time duration
32947 section in the ffmpeg-utils(1) manual for the accepted syntax.
32948
32949 If not specified, or the expressed duration is negative, the video
32950 is supposed to be generated forever.
32951
32952 test, t
32953 Set the number or the name of the test to perform. Supported tests
32954 are:
32955
32956 dc_luma
32957 dc_chroma
32958 freq_luma
32959 freq_chroma
32960 amp_luma
32961 amp_chroma
32962 cbp
32963 mv
32964 ring1
32965 ring2
32966 all
32967 max_frames, m
32968 Set the maximum number of frames generated for each test,
32969 default value is 30.
32970
32971 Default value is "all", which will cycle through the list of all
32972 tests.
32973
32974 Some examples:
32975
32976 mptestsrc=t=dc_luma
32977
32978 will generate a "dc_luma" test pattern.
32979
32980 frei0r_src
32981 Provide a frei0r source.
32982
32983 To enable compilation of this filter you need to install the frei0r
32984 header and configure FFmpeg with "--enable-frei0r".
32985
32986 This source accepts the following parameters:
32987
32988 size
32989 The size of the video to generate. For the syntax of this option,
32990 check the "Video size" section in the ffmpeg-utils manual.
32991
32992 framerate
32993 The framerate of the generated video. It may be a string of the
32994 form num/den or a frame rate abbreviation.
32995
32996 filter_name
32997 The name to the frei0r source to load. For more information
32998 regarding frei0r and how to set the parameters, read the frei0r
32999 section in the video filters documentation.
33000
33001 filter_params
33002 A '|'-separated list of parameters to pass to the frei0r source.
33003
33004 For example, to generate a frei0r partik0l source with size 200x200 and
33005 frame rate 10 which is overlaid on the overlay filter main input:
33006
33007 frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
33008
33009 life
33010 Generate a life pattern.
33011
33012 This source is based on a generalization of John Conway's life game.
33013
33014 The sourced input represents a life grid, each pixel represents a cell
33015 which can be in one of two possible states, alive or dead. Every cell
33016 interacts with its eight neighbours, which are the cells that are
33017 horizontally, vertically, or diagonally adjacent.
33018
33019 At each interaction the grid evolves according to the adopted rule,
33020 which specifies the number of neighbor alive cells which will make a
33021 cell stay alive or born. The rule option allows one to specify the rule
33022 to adopt.
33023
33024 This source accepts the following options:
33025
33026 filename, f
33027 Set the file from which to read the initial grid state. In the
33028 file, each non-whitespace character is considered an alive cell,
33029 and newline is used to delimit the end of each row.
33030
33031 If this option is not specified, the initial grid is generated
33032 randomly.
33033
33034 rate, r
33035 Set the video rate, that is the number of frames generated per
33036 second. Default is 25.
33037
33038 random_fill_ratio, ratio
33039 Set the random fill ratio for the initial random grid. It is a
33040 floating point number value ranging from 0 to 1, defaults to 1/PHI.
33041 It is ignored when a file is specified.
33042
33043 random_seed, seed
33044 Set the seed for filling the initial random grid, must be an
33045 integer included between 0 and UINT32_MAX. If not specified, or if
33046 explicitly set to -1, the filter will try to use a good random seed
33047 on a best effort basis.
33048
33049 rule
33050 Set the life rule.
33051
33052 A rule can be specified with a code of the kind "SNS/BNB", where NS
33053 and NB are sequences of numbers in the range 0-8, NS specifies the
33054 number of alive neighbor cells which make a live cell stay alive,
33055 and NB the number of alive neighbor cells which make a dead cell to
33056 become alive (i.e. to "born"). "s" and "b" can be used in place of
33057 "S" and "B", respectively.
33058
33059 Alternatively a rule can be specified by an 18-bits integer. The 9
33060 high order bits are used to encode the next cell state if it is
33061 alive for each number of neighbor alive cells, the low order bits
33062 specify the rule for "borning" new cells. Higher order bits encode
33063 for an higher number of neighbor cells. For example the number
33064 6153 = "(12<<9)+9" specifies a stay alive rule of 12 and a born
33065 rule of 9, which corresponds to "S23/B03".
33066
33067 Default value is "S23/B3", which is the original Conway's game of
33068 life rule, and will keep a cell alive if it has 2 or 3 neighbor
33069 alive cells, and will born a new cell if there are three alive
33070 cells around a dead cell.
33071
33072 size, s
33073 Set the size of the output video. For the syntax of this option,
33074 check the "Video size" section in the ffmpeg-utils manual.
33075
33076 If filename is specified, the size is set by default to the same
33077 size of the input file. If size is set, it must contain the size
33078 specified in the input file, and the initial grid defined in that
33079 file is centered in the larger resulting area.
33080
33081 If a filename is not specified, the size value defaults to
33082 "320x240" (used for a randomly generated initial grid).
33083
33084 stitch
33085 If set to 1, stitch the left and right grid edges together, and the
33086 top and bottom edges also. Defaults to 1.
33087
33088 mold
33089 Set cell mold speed. If set, a dead cell will go from death_color
33090 to mold_color with a step of mold. mold can have a value from 0 to
33091 255.
33092
33093 life_color
33094 Set the color of living (or new born) cells.
33095
33096 death_color
33097 Set the color of dead cells. If mold is set, this is the first
33098 color used to represent a dead cell.
33099
33100 mold_color
33101 Set mold color, for definitely dead and moldy cells.
33102
33103 For the syntax of these 3 color options, check the "Color" section
33104 in the ffmpeg-utils manual.
33105
33106 Examples
33107
33108 • Read a grid from pattern, and center it on a grid of size 300x300
33109 pixels:
33110
33111 life=f=pattern:s=300x300
33112
33113 • Generate a random grid of size 200x200, with a fill ratio of 2/3:
33114
33115 life=ratio=2/3:s=200x200
33116
33117 • Specify a custom rule for evolving a randomly generated grid:
33118
33119 life=rule=S14/B34
33120
33121 • Full example with slow death effect (mold) using ffplay:
33122
33123 ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
33124
33125 allrgb, allyuv, color, colorchart, colorspectrum, haldclutsrc, nullsrc,
33126 pal75bars, pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc,
33127 testsrc2, yuvtestsrc
33128 The "allrgb" source returns frames of size 4096x4096 of all rgb colors.
33129
33130 The "allyuv" source returns frames of size 4096x4096 of all yuv colors.
33131
33132 The "color" source provides an uniformly colored input.
33133
33134 The "colorchart" source provides a colors checker chart.
33135
33136 The "colorspectrum" source provides a color spectrum input.
33137
33138 The "haldclutsrc" source provides an identity Hald CLUT. See also
33139 haldclut filter.
33140
33141 The "nullsrc" source returns unprocessed video frames. It is mainly
33142 useful to be employed in analysis / debugging tools, or as the source
33143 for filters which ignore the input data.
33144
33145 The "pal75bars" source generates a color bars pattern, based on EBU PAL
33146 recommendations with 75% color levels.
33147
33148 The "pal100bars" source generates a color bars pattern, based on EBU
33149 PAL recommendations with 100% color levels.
33150
33151 The "rgbtestsrc" source generates an RGB test pattern useful for
33152 detecting RGB vs BGR issues. You should see a red, green and blue
33153 stripe from top to bottom.
33154
33155 The "smptebars" source generates a color bars pattern, based on the
33156 SMPTE Engineering Guideline EG 1-1990.
33157
33158 The "smptehdbars" source generates a color bars pattern, based on the
33159 SMPTE RP 219-2002.
33160
33161 The "testsrc" source generates a test video pattern, showing a color
33162 pattern, a scrolling gradient and a timestamp. This is mainly intended
33163 for testing purposes.
33164
33165 The "testsrc2" source is similar to testsrc, but supports more pixel
33166 formats instead of just "rgb24". This allows using it as an input for
33167 other tests without requiring a format conversion.
33168
33169 The "yuvtestsrc" source generates an YUV test pattern. You should see a
33170 y, cb and cr stripe from top to bottom.
33171
33172 The sources accept the following parameters:
33173
33174 level
33175 Specify the level of the Hald CLUT, only available in the
33176 "haldclutsrc" source. A level of "N" generates a picture of "N*N*N"
33177 by "N*N*N" pixels to be used as identity matrix for 3D lookup
33178 tables. Each component is coded on a "1/(N*N)" scale.
33179
33180 color, c
33181 Specify the color of the source, only available in the "color"
33182 source. For the syntax of this option, check the "Color" section in
33183 the ffmpeg-utils manual.
33184
33185 size, s
33186 Specify the size of the sourced video. For the syntax of this
33187 option, check the "Video size" section in the ffmpeg-utils manual.
33188 The default value is "320x240".
33189
33190 This option is not available with the "allrgb", "allyuv", and
33191 "haldclutsrc" filters.
33192
33193 rate, r
33194 Specify the frame rate of the sourced video, as the number of
33195 frames generated per second. It has to be a string in the format
33196 frame_rate_num/frame_rate_den, an integer number, a floating point
33197 number or a valid video frame rate abbreviation. The default value
33198 is "25".
33199
33200 duration, d
33201 Set the duration of the sourced video. See the Time duration
33202 section in the ffmpeg-utils(1) manual for the accepted syntax.
33203
33204 If not specified, or the expressed duration is negative, the video
33205 is supposed to be generated forever.
33206
33207 Since the frame rate is used as time base, all frames including the
33208 last one will have their full duration. If the specified duration
33209 is not a multiple of the frame duration, it will be rounded up.
33210
33211 sar Set the sample aspect ratio of the sourced video.
33212
33213 alpha
33214 Specify the alpha (opacity) of the background, only available in
33215 the "testsrc2" source. The value must be between 0 (fully
33216 transparent) and 255 (fully opaque, the default).
33217
33218 decimals, n
33219 Set the number of decimals to show in the timestamp, only available
33220 in the "testsrc" source.
33221
33222 The displayed timestamp value will correspond to the original
33223 timestamp value multiplied by the power of 10 of the specified
33224 value. Default value is 0.
33225
33226 type
33227 Set the type of the color spectrum, only available in the
33228 "colorspectrum" source. Can be one of the following:
33229
33230 black
33231 white
33232 all
33233 patch_size
33234 Set patch size of single color patch, only available in the
33235 "colorchart" source. Default is "64x64".
33236
33237 preset
33238 Set colorchecker colors preset, only available in the "colorchart"
33239 source.
33240
33241 Available values are:
33242
33243 reference
33244 skintones
33245
33246 Default value is "reference".
33247
33248 Examples
33249
33250 • Generate a video with a duration of 5.3 seconds, with size 176x144
33251 and a frame rate of 10 frames per second:
33252
33253 testsrc=duration=5.3:size=qcif:rate=10
33254
33255 • The following graph description will generate a red source with an
33256 opacity of 0.2, with size "qcif" and a frame rate of 10 frames per
33257 second:
33258
33259 color=c=red@0.2:s=qcif:r=10
33260
33261 • If the input content is to be ignored, "nullsrc" can be used. The
33262 following command generates noise in the luminance plane by
33263 employing the "geq" filter:
33264
33265 nullsrc=s=256x256, geq=random(1)*255:128:128
33266
33267 Commands
33268
33269 The "color" source supports the following commands:
33270
33271 c, color
33272 Set the color of the created image. Accepts the same syntax of the
33273 corresponding color option.
33274
33275 openclsrc
33276 Generate video using an OpenCL program.
33277
33278 source
33279 OpenCL program source file.
33280
33281 kernel
33282 Kernel name in program.
33283
33284 size, s
33285 Size of frames to generate. This must be set.
33286
33287 format
33288 Pixel format to use for the generated frames. This must be set.
33289
33290 rate, r
33291 Number of frames generated every second. Default value is '25'.
33292
33293 For details of how the program loading works, see the program_opencl
33294 filter.
33295
33296 Example programs:
33297
33298 • Generate a colour ramp by setting pixel values from the position of
33299 the pixel in the output image. (Note that this will work with all
33300 pixel formats, but the generated output will not be the same.)
33301
33302 __kernel void ramp(__write_only image2d_t dst,
33303 unsigned int index)
33304 {
33305 int2 loc = (int2)(get_global_id(0), get_global_id(1));
33306
33307 float4 val;
33308 val.xy = val.zw = convert_float2(loc) / convert_float2(get_image_dim(dst));
33309
33310 write_imagef(dst, loc, val);
33311 }
33312
33313 • Generate a Sierpinski carpet pattern, panning by a single pixel
33314 each frame.
33315
33316 __kernel void sierpinski_carpet(__write_only image2d_t dst,
33317 unsigned int index)
33318 {
33319 int2 loc = (int2)(get_global_id(0), get_global_id(1));
33320
33321 float4 value = 0.0f;
33322 int x = loc.x + index;
33323 int y = loc.y + index;
33324 while (x > 0 || y > 0) {
33325 if (x % 3 == 1 && y % 3 == 1) {
33326 value = 1.0f;
33327 break;
33328 }
33329 x /= 3;
33330 y /= 3;
33331 }
33332
33333 write_imagef(dst, loc, value);
33334 }
33335
33336 sierpinski
33337 Generate a Sierpinski carpet/triangle fractal, and randomly pan around.
33338
33339 This source accepts the following options:
33340
33341 size, s
33342 Set frame size. For the syntax of this option, check the "Video
33343 size" section in the ffmpeg-utils manual. Default value is
33344 "640x480".
33345
33346 rate, r
33347 Set frame rate, expressed as number of frames per second. Default
33348 value is "25".
33349
33350 seed
33351 Set seed which is used for random panning.
33352
33353 jump
33354 Set max jump for single pan destination. Allowed range is from 1 to
33355 10000.
33356
33357 type
33358 Set fractal type, can be default "carpet" or "triangle".
33359
33361 Below is a description of the currently available video sinks.
33362
33363 buffersink
33364 Buffer video frames, and make them available to the end of the filter
33365 graph.
33366
33367 This sink is mainly intended for programmatic use, in particular
33368 through the interface defined in libavfilter/buffersink.h or the
33369 options system.
33370
33371 It accepts a pointer to an AVBufferSinkContext structure, which defines
33372 the incoming buffers' formats, to be passed as the opaque parameter to
33373 "avfilter_init_filter" for initialization.
33374
33375 nullsink
33376 Null video sink: do absolutely nothing with the input video. It is
33377 mainly useful as a template and for use in analysis / debugging tools.
33378
33380 Below is a description of the currently available multimedia filters.
33381
33382 abitscope
33383 Convert input audio to a video output, displaying the audio bit scope.
33384
33385 The filter accepts the following options:
33386
33387 rate, r
33388 Set frame rate, expressed as number of frames per second. Default
33389 value is "25".
33390
33391 size, s
33392 Specify the video size for the output. For the syntax of this
33393 option, check the "Video size" section in the ffmpeg-utils manual.
33394 Default value is "1024x256".
33395
33396 colors
33397 Specify list of colors separated by space or by '|' which will be
33398 used to draw channels. Unrecognized or missing colors will be
33399 replaced by white color.
33400
33401 mode, m
33402 Set output mode. Can be "bars" or "trace". Default is "bars".
33403
33404 adrawgraph
33405 Draw a graph using input audio metadata.
33406
33407 See drawgraph
33408
33409 agraphmonitor
33410 See graphmonitor.
33411
33412 ahistogram
33413 Convert input audio to a video output, displaying the volume histogram.
33414
33415 The filter accepts the following options:
33416
33417 dmode
33418 Specify how histogram is calculated.
33419
33420 It accepts the following values:
33421
33422 single
33423 Use single histogram for all channels.
33424
33425 separate
33426 Use separate histogram for each channel.
33427
33428 Default is "single".
33429
33430 rate, r
33431 Set frame rate, expressed as number of frames per second. Default
33432 value is "25".
33433
33434 size, s
33435 Specify the video size for the output. For the syntax of this
33436 option, check the "Video size" section in the ffmpeg-utils manual.
33437 Default value is "hd720".
33438
33439 scale
33440 Set display scale.
33441
33442 It accepts the following values:
33443
33444 log logarithmic
33445
33446 sqrt
33447 square root
33448
33449 cbrt
33450 cubic root
33451
33452 lin linear
33453
33454 rlog
33455 reverse logarithmic
33456
33457 Default is "log".
33458
33459 ascale
33460 Set amplitude scale.
33461
33462 It accepts the following values:
33463
33464 log logarithmic
33465
33466 lin linear
33467
33468 Default is "log".
33469
33470 acount
33471 Set how much frames to accumulate in histogram. Default is 1.
33472 Setting this to -1 accumulates all frames.
33473
33474 rheight
33475 Set histogram ratio of window height.
33476
33477 slide
33478 Set sonogram sliding.
33479
33480 It accepts the following values:
33481
33482 replace
33483 replace old rows with new ones.
33484
33485 scroll
33486 scroll from top to bottom.
33487
33488 Default is "replace".
33489
33490 hmode
33491 Set histogram mode.
33492
33493 It accepts the following values:
33494
33495 abs Use absolute values of samples.
33496
33497 sign
33498 Use untouched values of samples.
33499
33500 Default is "abs".
33501
33502 aphasemeter
33503 Measures phase of input audio, which is exported as metadata
33504 "lavfi.aphasemeter.phase", representing mean phase of current audio
33505 frame. A video output can also be produced and is enabled by default.
33506 The audio is passed through as first output.
33507
33508 Audio will be rematrixed to stereo if it has a different channel
33509 layout. Phase value is in range "[-1, 1]" where "-1" means left and
33510 right channels are completely out of phase and 1 means channels are in
33511 phase.
33512
33513 The filter accepts the following options, all related to its video
33514 output:
33515
33516 rate, r
33517 Set the output frame rate. Default value is 25.
33518
33519 size, s
33520 Set the video size for the output. For the syntax of this option,
33521 check the "Video size" section in the ffmpeg-utils manual. Default
33522 value is "800x400".
33523
33524 rc
33525 gc
33526 bc Specify the red, green, blue contrast. Default values are 2, 7 and
33527 1. Allowed range is "[0, 255]".
33528
33529 mpc Set color which will be used for drawing median phase. If color is
33530 "none" which is default, no median phase value will be drawn.
33531
33532 video
33533 Enable video output. Default is enabled.
33534
33535 phasing detection
33536
33537 The filter also detects out of phase and mono sequences in stereo
33538 streams. It logs the sequence start, end and duration when it lasts
33539 longer or as long as the minimum set.
33540
33541 The filter accepts the following options for this detection:
33542
33543 phasing
33544 Enable mono and out of phase detection. Default is disabled.
33545
33546 tolerance, t
33547 Set phase tolerance for mono detection, in amplitude ratio. Default
33548 is 0. Allowed range is "[0, 1]".
33549
33550 angle, a
33551 Set angle threshold for out of phase detection, in degree. Default
33552 is 170. Allowed range is "[90, 180]".
33553
33554 duration, d
33555 Set mono or out of phase duration until notification, expressed in
33556 seconds. Default is 2.
33557
33558 Examples
33559
33560 • Complete example with ffmpeg to detect 1 second of mono with 0.001
33561 phase tolerance:
33562
33563 ffmpeg -i stereo.wav -af aphasemeter=video=0:phasing=1:duration=1:tolerance=0.001 -f null -
33564
33565 avectorscope
33566 Convert input audio to a video output, representing the audio vector
33567 scope.
33568
33569 The filter is used to measure the difference between channels of stereo
33570 audio stream. A monaural signal, consisting of identical left and right
33571 signal, results in straight vertical line. Any stereo separation is
33572 visible as a deviation from this line, creating a Lissajous figure. If
33573 the straight (or deviation from it) but horizontal line appears this
33574 indicates that the left and right channels are out of phase.
33575
33576 The filter accepts the following options:
33577
33578 mode, m
33579 Set the vectorscope mode.
33580
33581 Available values are:
33582
33583 lissajous
33584 Lissajous rotated by 45 degrees.
33585
33586 lissajous_xy
33587 Same as above but not rotated.
33588
33589 polar
33590 Shape resembling half of circle.
33591
33592 Default value is lissajous.
33593
33594 size, s
33595 Set the video size for the output. For the syntax of this option,
33596 check the "Video size" section in the ffmpeg-utils manual. Default
33597 value is "400x400".
33598
33599 rate, r
33600 Set the output frame rate. Default value is 25.
33601
33602 rc
33603 gc
33604 bc
33605 ac Specify the red, green, blue and alpha contrast. Default values are
33606 40, 160, 80 and 255. Allowed range is "[0, 255]".
33607
33608 rf
33609 gf
33610 bf
33611 af Specify the red, green, blue and alpha fade. Default values are 15,
33612 10, 5 and 5. Allowed range is "[0, 255]".
33613
33614 zoom
33615 Set the zoom factor. Default value is 1. Allowed range is "[0,
33616 10]". Values lower than 1 will auto adjust zoom factor to maximal
33617 possible value.
33618
33619 draw
33620 Set the vectorscope drawing mode.
33621
33622 Available values are:
33623
33624 dot Draw dot for each sample.
33625
33626 line
33627 Draw line between previous and current sample.
33628
33629 Default value is dot.
33630
33631 scale
33632 Specify amplitude scale of audio samples.
33633
33634 Available values are:
33635
33636 lin Linear.
33637
33638 sqrt
33639 Square root.
33640
33641 cbrt
33642 Cubic root.
33643
33644 log Logarithmic.
33645
33646 swap
33647 Swap left channel axis with right channel axis.
33648
33649 mirror
33650 Mirror axis.
33651
33652 none
33653 No mirror.
33654
33655 x Mirror only x axis.
33656
33657 y Mirror only y axis.
33658
33659 xy Mirror both axis.
33660
33661 Examples
33662
33663 • Complete example using ffplay:
33664
33665 ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
33666 [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
33667
33668 Commands
33669
33670 This filter supports the all above options as commands except options
33671 "size" and "rate".
33672
33673 bench, abench
33674 Benchmark part of a filtergraph.
33675
33676 The filter accepts the following options:
33677
33678 action
33679 Start or stop a timer.
33680
33681 Available values are:
33682
33683 start
33684 Get the current time, set it as frame metadata (using the key
33685 "lavfi.bench.start_time"), and forward the frame to the next
33686 filter.
33687
33688 stop
33689 Get the current time and fetch the "lavfi.bench.start_time"
33690 metadata from the input frame metadata to get the time
33691 difference. Time difference, average, maximum and minimum time
33692 (respectively "t", "avg", "max" and "min") are then printed.
33693 The timestamps are expressed in seconds.
33694
33695 Examples
33696
33697 • Benchmark selectivecolor filter:
33698
33699 bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
33700
33701 concat
33702 Concatenate audio and video streams, joining them together one after
33703 the other.
33704
33705 The filter works on segments of synchronized video and audio streams.
33706 All segments must have the same number of streams of each type, and
33707 that will also be the number of streams at output.
33708
33709 The filter accepts the following options:
33710
33711 n Set the number of segments. Default is 2.
33712
33713 v Set the number of output video streams, that is also the number of
33714 video streams in each segment. Default is 1.
33715
33716 a Set the number of output audio streams, that is also the number of
33717 audio streams in each segment. Default is 0.
33718
33719 unsafe
33720 Activate unsafe mode: do not fail if segments have a different
33721 format.
33722
33723 The filter has v+a outputs: first v video outputs, then a audio
33724 outputs.
33725
33726 There are nx(v+a) inputs: first the inputs for the first segment, in
33727 the same order as the outputs, then the inputs for the second segment,
33728 etc.
33729
33730 Related streams do not always have exactly the same duration, for
33731 various reasons including codec frame size or sloppy authoring. For
33732 that reason, related synchronized streams (e.g. a video and its audio
33733 track) should be concatenated at once. The concat filter will use the
33734 duration of the longest stream in each segment (except the last one),
33735 and if necessary pad shorter audio streams with silence.
33736
33737 For this filter to work correctly, all segments must start at timestamp
33738 0.
33739
33740 All corresponding streams must have the same parameters in all
33741 segments; the filtering system will automatically select a common pixel
33742 format for video streams, and a common sample format, sample rate and
33743 channel layout for audio streams, but other settings, such as
33744 resolution, must be converted explicitly by the user.
33745
33746 Different frame rates are acceptable but will result in variable frame
33747 rate at output; be sure to configure the output file to handle it.
33748
33749 Examples
33750
33751 • Concatenate an opening, an episode and an ending, all in bilingual
33752 version (video in stream 0, audio in streams 1 and 2):
33753
33754 ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \
33755 '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]
33756 concat=n=3:v=1:a=2 [v] [a1] [a2]' \
33757 -map '[v]' -map '[a1]' -map '[a2]' output.mkv
33758
33759 • Concatenate two parts, handling audio and video separately, using
33760 the (a)movie sources, and adjusting the resolution:
33761
33762 movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
33763 movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
33764 [v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
33765
33766 Note that a desync will happen at the stitch if the audio and video
33767 streams do not have exactly the same duration in the first file.
33768
33769 Commands
33770
33771 This filter supports the following commands:
33772
33773 next
33774 Close the current segment and step to the next one
33775
33776 ebur128
33777 EBU R128 scanner filter. This filter takes an audio stream and analyzes
33778 its loudness level. By default, it logs a message at a frequency of
33779 10Hz with the Momentary loudness (identified by "M"), Short-term
33780 loudness ("S"), Integrated loudness ("I") and Loudness Range ("LRA").
33781
33782 The filter can only analyze streams which have sample format is double-
33783 precision floating point. The input stream will be converted to this
33784 specification, if needed. Users may need to insert aformat and/or
33785 aresample filters after this filter to obtain the original parameters.
33786
33787 The filter also has a video output (see the video option) with a real
33788 time graph to observe the loudness evolution. The graphic contains the
33789 logged message mentioned above, so it is not printed anymore when this
33790 option is set, unless the verbose logging is set. The main graphing
33791 area contains the short-term loudness (3 seconds of analysis), and the
33792 gauge on the right is for the momentary loudness (400 milliseconds),
33793 but can optionally be configured to instead display short-term loudness
33794 (see gauge).
33795
33796 The green area marks a +/- 1LU target range around the target loudness
33797 (-23LUFS by default, unless modified through target).
33798
33799 More information about the Loudness Recommendation EBU R128 on
33800 <http://tech.ebu.ch/loudness>.
33801
33802 The filter accepts the following options:
33803
33804 video
33805 Activate the video output. The audio stream is passed unchanged
33806 whether this option is set or no. The video stream will be the
33807 first output stream if activated. Default is 0.
33808
33809 size
33810 Set the video size. This option is for video only. For the syntax
33811 of this option, check the "Video size" section in the ffmpeg-utils
33812 manual. Default and minimum resolution is "640x480".
33813
33814 meter
33815 Set the EBU scale meter. Default is 9. Common values are 9 and 18,
33816 respectively for EBU scale meter +9 and EBU scale meter +18. Any
33817 other integer value between this range is allowed.
33818
33819 metadata
33820 Set metadata injection. If set to 1, the audio input will be
33821 segmented into 100ms output frames, each of them containing various
33822 loudness information in metadata. All the metadata keys are
33823 prefixed with "lavfi.r128.".
33824
33825 Default is 0.
33826
33827 framelog
33828 Force the frame logging level.
33829
33830 Available values are:
33831
33832 info
33833 information logging level
33834
33835 verbose
33836 verbose logging level
33837
33838 By default, the logging level is set to info. If the video or the
33839 metadata options are set, it switches to verbose.
33840
33841 peak
33842 Set peak mode(s).
33843
33844 Available modes can be cumulated (the option is a "flag" type).
33845 Possible values are:
33846
33847 none
33848 Disable any peak mode (default).
33849
33850 sample
33851 Enable sample-peak mode.
33852
33853 Simple peak mode looking for the higher sample value. It logs a
33854 message for sample-peak (identified by "SPK").
33855
33856 true
33857 Enable true-peak mode.
33858
33859 If enabled, the peak lookup is done on an over-sampled version
33860 of the input stream for better peak accuracy. It logs a message
33861 for true-peak. (identified by "TPK") and true-peak per frame
33862 (identified by "FTPK"). This mode requires a build with
33863 "libswresample".
33864
33865 dualmono
33866 Treat mono input files as "dual mono". If a mono file is intended
33867 for playback on a stereo system, its EBU R128 measurement will be
33868 perceptually incorrect. If set to "true", this option will
33869 compensate for this effect. Multi-channel input files are not
33870 affected by this option.
33871
33872 panlaw
33873 Set a specific pan law to be used for the measurement of dual mono
33874 files. This parameter is optional, and has a default value of
33875 -3.01dB.
33876
33877 target
33878 Set a specific target level (in LUFS) used as relative zero in the
33879 visualization. This parameter is optional and has a default value
33880 of -23LUFS as specified by EBU R128. However, material published
33881 online may prefer a level of -16LUFS (e.g. for use with podcasts or
33882 video platforms).
33883
33884 gauge
33885 Set the value displayed by the gauge. Valid values are "momentary"
33886 and s "shortterm". By default the momentary value will be used, but
33887 in certain scenarios it may be more useful to observe the short
33888 term value instead (e.g. live mixing).
33889
33890 scale
33891 Sets the display scale for the loudness. Valid parameters are
33892 "absolute" (in LUFS) or "relative" (LU) relative to the target.
33893 This only affects the video output, not the summary or continuous
33894 log output.
33895
33896 Examples
33897
33898 • Real-time graph using ffplay, with a EBU scale meter +18:
33899
33900 ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
33901
33902 • Run an analysis with ffmpeg:
33903
33904 ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
33905
33906 interleave, ainterleave
33907 Temporally interleave frames from several inputs.
33908
33909 "interleave" works with video inputs, "ainterleave" with audio.
33910
33911 These filters read frames from several inputs and send the oldest
33912 queued frame to the output.
33913
33914 Input streams must have well defined, monotonically increasing frame
33915 timestamp values.
33916
33917 In order to submit one frame to output, these filters need to enqueue
33918 at least one frame for each input, so they cannot work in case one
33919 input is not yet terminated and will not receive incoming frames.
33920
33921 For example consider the case when one input is a "select" filter which
33922 always drops input frames. The "interleave" filter will keep reading
33923 from that input, but it will never be able to send new frames to output
33924 until the input sends an end-of-stream signal.
33925
33926 Also, depending on inputs synchronization, the filters will drop frames
33927 in case one input receives more frames than the other ones, and the
33928 queue is already filled.
33929
33930 These filters accept the following options:
33931
33932 nb_inputs, n
33933 Set the number of different inputs, it is 2 by default.
33934
33935 duration
33936 How to determine the end-of-stream.
33937
33938 longest
33939 The duration of the longest input. (default)
33940
33941 shortest
33942 The duration of the shortest input.
33943
33944 first
33945 The duration of the first input.
33946
33947 Examples
33948
33949 • Interleave frames belonging to different streams using ffmpeg:
33950
33951 ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
33952
33953 • Add flickering blur effect:
33954
33955 select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
33956
33957 latency, alatency
33958 Measure filtering latency.
33959
33960 Report previous filter filtering latency, delay in number of audio
33961 samples for audio filters or number of video frames for video filters.
33962
33963 On end of input stream, filter will report min and max measured latency
33964 for previous running filter in filtergraph.
33965
33966 metadata, ametadata
33967 Manipulate frame metadata.
33968
33969 This filter accepts the following options:
33970
33971 mode
33972 Set mode of operation of the filter.
33973
33974 Can be one of the following:
33975
33976 select
33977 If both "value" and "key" is set, select frames which have such
33978 metadata. If only "key" is set, select every frame that has
33979 such key in metadata.
33980
33981 add Add new metadata "key" and "value". If key is already available
33982 do nothing.
33983
33984 modify
33985 Modify value of already present key.
33986
33987 delete
33988 If "value" is set, delete only keys that have such value.
33989 Otherwise, delete key. If "key" is not set, delete all metadata
33990 values in the frame.
33991
33992 print
33993 Print key and its value if metadata was found. If "key" is not
33994 set print all metadata values available in frame.
33995
33996 key Set key used with all modes. Must be set for all modes except
33997 "print" and "delete".
33998
33999 value
34000 Set metadata value which will be used. This option is mandatory for
34001 "modify" and "add" mode.
34002
34003 function
34004 Which function to use when comparing metadata value and "value".
34005
34006 Can be one of following:
34007
34008 same_str
34009 Values are interpreted as strings, returns true if metadata
34010 value is same as "value".
34011
34012 starts_with
34013 Values are interpreted as strings, returns true if metadata
34014 value starts with the "value" option string.
34015
34016 less
34017 Values are interpreted as floats, returns true if metadata
34018 value is less than "value".
34019
34020 equal
34021 Values are interpreted as floats, returns true if "value" is
34022 equal with metadata value.
34023
34024 greater
34025 Values are interpreted as floats, returns true if metadata
34026 value is greater than "value".
34027
34028 expr
34029 Values are interpreted as floats, returns true if expression
34030 from option "expr" evaluates to true.
34031
34032 ends_with
34033 Values are interpreted as strings, returns true if metadata
34034 value ends with the "value" option string.
34035
34036 expr
34037 Set expression which is used when "function" is set to "expr". The
34038 expression is evaluated through the eval API and can contain the
34039 following constants:
34040
34041 VALUE1, FRAMEVAL
34042 Float representation of "value" from metadata key.
34043
34044 VALUE2, USERVAL
34045 Float representation of "value" as supplied by user in "value"
34046 option.
34047
34048 file
34049 If specified in "print" mode, output is written to the named file.
34050 Instead of plain filename any writable url can be specified.
34051 Filename ``-'' is a shorthand for standard output. If "file" option
34052 is not set, output is written to the log with AV_LOG_INFO loglevel.
34053
34054 direct
34055 Reduces buffering in print mode when output is written to a URL set
34056 using file.
34057
34058 Examples
34059
34060 • Print all metadata values for frames with key
34061 "lavfi.signalstats.YDIF" with values between 0 and 1.
34062
34063 signalstats,metadata=print:key=lavfi.signalstats.YDIF:value=0:function=expr:expr='between(VALUE1,0,1)'
34064
34065 • Print silencedetect output to file metadata.txt.
34066
34067 silencedetect,ametadata=mode=print:file=metadata.txt
34068
34069 • Direct all metadata to a pipe with file descriptor 4.
34070
34071 metadata=mode=print:file='pipe\:4'
34072
34073 perms, aperms
34074 Set read/write permissions for the output frames.
34075
34076 These filters are mainly aimed at developers to test direct path in the
34077 following filter in the filtergraph.
34078
34079 The filters accept the following options:
34080
34081 mode
34082 Select the permissions mode.
34083
34084 It accepts the following values:
34085
34086 none
34087 Do nothing. This is the default.
34088
34089 ro Set all the output frames read-only.
34090
34091 rw Set all the output frames directly writable.
34092
34093 toggle
34094 Make the frame read-only if writable, and writable if read-
34095 only.
34096
34097 random
34098 Set each output frame read-only or writable randomly.
34099
34100 seed
34101 Set the seed for the random mode, must be an integer included
34102 between 0 and "UINT32_MAX". If not specified, or if explicitly set
34103 to "-1", the filter will try to use a good random seed on a best
34104 effort basis.
34105
34106 Note: in case of auto-inserted filter between the permission filter and
34107 the following one, the permission might not be received as expected in
34108 that following filter. Inserting a format or aformat filter before the
34109 perms/aperms filter can avoid this problem.
34110
34111 realtime, arealtime
34112 Slow down filtering to match real time approximately.
34113
34114 These filters will pause the filtering for a variable amount of time to
34115 match the output rate with the input timestamps. They are similar to
34116 the re option to "ffmpeg".
34117
34118 They accept the following options:
34119
34120 limit
34121 Time limit for the pauses. Any pause longer than that will be
34122 considered a timestamp discontinuity and reset the timer. Default
34123 is 2 seconds.
34124
34125 speed
34126 Speed factor for processing. The value must be a float larger than
34127 zero. Values larger than 1.0 will result in faster than realtime
34128 processing, smaller will slow processing down. The limit is
34129 automatically adapted accordingly. Default is 1.0.
34130
34131 A processing speed faster than what is possible without these
34132 filters cannot be achieved.
34133
34134 Commands
34135
34136 Both filters supports the all above options as commands.
34137
34138 segment, asegment
34139 Split single input stream into multiple streams.
34140
34141 This filter does opposite of concat filters.
34142
34143 "segment" works on video frames, "asegment" on audio samples.
34144
34145 This filter accepts the following options:
34146
34147 timestamps
34148 Timestamps of output segments separated by '|'. The first segment
34149 will run from the beginning of the input stream. The last segment
34150 will run until the end of the input stream
34151
34152 frames, samples
34153 Exact frame/sample count to split the segments.
34154
34155 In all cases, prefixing an each segment with '+' will make it relative
34156 to the previous segment.
34157
34158 Examples
34159
34160 • Split input audio stream into three output audio streams, starting
34161 at start of input audio stream and storing that in 1st output audio
34162 stream, then following at 60th second and storing than in 2nd
34163 output audio stream, and last after 150th second of input audio
34164 stream store in 3rd output audio stream:
34165
34166 asegment=timestamps="60|150"
34167
34168 select, aselect
34169 Select frames to pass in output.
34170
34171 This filter accepts the following options:
34172
34173 expr, e
34174 Set expression, which is evaluated for each input frame.
34175
34176 If the expression is evaluated to zero, the frame is discarded.
34177
34178 If the evaluation result is negative or NaN, the frame is sent to
34179 the first output; otherwise it is sent to the output with index
34180 "ceil(val)-1", assuming that the input index starts from 0.
34181
34182 For example a value of 1.2 corresponds to the output with index
34183 "ceil(1.2)-1 = 2-1 = 1", that is the second output.
34184
34185 outputs, n
34186 Set the number of outputs. The output to which to send the selected
34187 frame is based on the result of the evaluation. Default value is 1.
34188
34189 The expression can contain the following constants:
34190
34191 n The (sequential) number of the filtered frame, starting from 0.
34192
34193 selected_n
34194 The (sequential) number of the selected frame, starting from 0.
34195
34196 prev_selected_n
34197 The sequential number of the last selected frame. It's NAN if
34198 undefined.
34199
34200 TB The timebase of the input timestamps.
34201
34202 pts The PTS (Presentation TimeStamp) of the filtered frame, expressed
34203 in TB units. It's NAN if undefined.
34204
34205 t The PTS of the filtered frame, expressed in seconds. It's NAN if
34206 undefined.
34207
34208 prev_pts
34209 The PTS of the previously filtered frame. It's NAN if undefined.
34210
34211 prev_selected_pts
34212 The PTS of the last previously filtered frame. It's NAN if
34213 undefined.
34214
34215 prev_selected_t
34216 The PTS of the last previously selected frame, expressed in
34217 seconds. It's NAN if undefined.
34218
34219 start_pts
34220 The first PTS in the stream which is not NAN. It remains NAN if not
34221 found.
34222
34223 start_t
34224 The first PTS, in seconds, in the stream which is not NAN. It
34225 remains NAN if not found.
34226
34227 pict_type (video only)
34228 The type of the filtered frame. It can assume one of the following
34229 values:
34230
34231 I
34232 P
34233 B
34234 S
34235 SI
34236 SP
34237 BI
34238 interlace_type (video only)
34239 The frame interlace type. It can assume one of the following
34240 values:
34241
34242 PROGRESSIVE
34243 The frame is progressive (not interlaced).
34244
34245 TOPFIRST
34246 The frame is top-field-first.
34247
34248 BOTTOMFIRST
34249 The frame is bottom-field-first.
34250
34251 consumed_sample_n (audio only)
34252 the number of selected samples before the current frame
34253
34254 samples_n (audio only)
34255 the number of samples in the current frame
34256
34257 sample_rate (audio only)
34258 the input sample rate
34259
34260 key This is 1 if the filtered frame is a key-frame, 0 otherwise.
34261
34262 pos the position in the file of the filtered frame, -1 if the
34263 information is not available (e.g. for synthetic video)
34264
34265 scene (video only)
34266 value between 0 and 1 to indicate a new scene; a low value reflects
34267 a low probability for the current frame to introduce a new scene,
34268 while a higher value means the current frame is more likely to be
34269 one (see the example below)
34270
34271 concatdec_select
34272 The concat demuxer can select only part of a concat input file by
34273 setting an inpoint and an outpoint, but the output packets may not
34274 be entirely contained in the selected interval. By using this
34275 variable, it is possible to skip frames generated by the concat
34276 demuxer which are not exactly contained in the selected interval.
34277
34278 This works by comparing the frame pts against the
34279 lavf.concat.start_time and the lavf.concat.duration packet metadata
34280 values which are also present in the decoded frames.
34281
34282 The concatdec_select variable is -1 if the frame pts is at least
34283 start_time and either the duration metadata is missing or the frame
34284 pts is less than start_time + duration, 0 otherwise, and NaN if the
34285 start_time metadata is missing.
34286
34287 That basically means that an input frame is selected if its pts is
34288 within the interval set by the concat demuxer.
34289
34290 The default value of the select expression is "1".
34291
34292 Examples
34293
34294 • Select all frames in input:
34295
34296 select
34297
34298 The example above is the same as:
34299
34300 select=1
34301
34302 • Skip all frames:
34303
34304 select=0
34305
34306 • Select only I-frames:
34307
34308 select='eq(pict_type\,I)'
34309
34310 • Select one frame every 100:
34311
34312 select='not(mod(n\,100))'
34313
34314 • Select only frames contained in the 10-20 time interval:
34315
34316 select=between(t\,10\,20)
34317
34318 • Select only I-frames contained in the 10-20 time interval:
34319
34320 select=between(t\,10\,20)*eq(pict_type\,I)
34321
34322 • Select frames with a minimum distance of 10 seconds:
34323
34324 select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
34325
34326 • Use aselect to select only audio frames with samples number > 100:
34327
34328 aselect='gt(samples_n\,100)'
34329
34330 • Create a mosaic of the first scenes:
34331
34332 ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
34333
34334 Comparing scene against a value between 0.3 and 0.5 is generally a
34335 sane choice.
34336
34337 • Send even and odd frames to separate outputs, and compose them:
34338
34339 select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
34340
34341 • Select useful frames from an ffconcat file which is using inpoints
34342 and outpoints but where the source files are not intra frame only.
34343
34344 ffmpeg -copyts -vsync 0 -segment_time_metadata 1 -i input.ffconcat -vf select=concatdec_select -af aselect=concatdec_select output.avi
34345
34346 sendcmd, asendcmd
34347 Send commands to filters in the filtergraph.
34348
34349 These filters read commands to be sent to other filters in the
34350 filtergraph.
34351
34352 "sendcmd" must be inserted between two video filters, "asendcmd" must
34353 be inserted between two audio filters, but apart from that they act the
34354 same way.
34355
34356 The specification of commands can be provided in the filter arguments
34357 with the commands option, or in a file specified by the filename
34358 option.
34359
34360 These filters accept the following options:
34361
34362 commands, c
34363 Set the commands to be read and sent to the other filters.
34364
34365 filename, f
34366 Set the filename of the commands to be read and sent to the other
34367 filters.
34368
34369 Commands syntax
34370
34371 A commands description consists of a sequence of interval
34372 specifications, comprising a list of commands to be executed when a
34373 particular event related to that interval occurs. The occurring event
34374 is typically the current frame time entering or leaving a given time
34375 interval.
34376
34377 An interval is specified by the following syntax:
34378
34379 <START>[-<END>] <COMMANDS>;
34380
34381 The time interval is specified by the START and END times. END is
34382 optional and defaults to the maximum time.
34383
34384 The current frame time is considered within the specified interval if
34385 it is included in the interval [START, END), that is when the time is
34386 greater or equal to START and is lesser than END.
34387
34388 COMMANDS consists of a sequence of one or more command specifications,
34389 separated by ",", relating to that interval. The syntax of a command
34390 specification is given by:
34391
34392 [<FLAGS>] <TARGET> <COMMAND> <ARG>
34393
34394 FLAGS is optional and specifies the type of events relating to the time
34395 interval which enable sending the specified command, and must be a non-
34396 null sequence of identifier flags separated by "+" or "|" and enclosed
34397 between "[" and "]".
34398
34399 The following flags are recognized:
34400
34401 enter
34402 The command is sent when the current frame timestamp enters the
34403 specified interval. In other words, the command is sent when the
34404 previous frame timestamp was not in the given interval, and the
34405 current is.
34406
34407 leave
34408 The command is sent when the current frame timestamp leaves the
34409 specified interval. In other words, the command is sent when the
34410 previous frame timestamp was in the given interval, and the current
34411 is not.
34412
34413 expr
34414 The command ARG is interpreted as expression and result of
34415 expression is passed as ARG.
34416
34417 The expression is evaluated through the eval API and can contain
34418 the following constants:
34419
34420 POS Original position in the file of the frame, or undefined if
34421 undefined for the current frame.
34422
34423 PTS The presentation timestamp in input.
34424
34425 N The count of the input frame for video or audio, starting from
34426 0.
34427
34428 T The time in seconds of the current frame.
34429
34430 TS The start time in seconds of the current command interval.
34431
34432 TE The end time in seconds of the current command interval.
34433
34434 TI The interpolated time of the current command interval, TI = (T
34435 - TS) / (TE - TS).
34436
34437 W The video frame width.
34438
34439 H The video frame height.
34440
34441 If FLAGS is not specified, a default value of "[enter]" is assumed.
34442
34443 TARGET specifies the target of the command, usually the name of the
34444 filter class or a specific filter instance name.
34445
34446 COMMAND specifies the name of the command for the target filter.
34447
34448 ARG is optional and specifies the optional list of argument for the
34449 given COMMAND.
34450
34451 Between one interval specification and another, whitespaces, or
34452 sequences of characters starting with "#" until the end of line, are
34453 ignored and can be used to annotate comments.
34454
34455 A simplified BNF description of the commands specification syntax
34456 follows:
34457
34458 <COMMAND_FLAG> ::= "enter" | "leave"
34459 <COMMAND_FLAGS> ::= <COMMAND_FLAG> [(+|"|")<COMMAND_FLAG>]
34460 <COMMAND> ::= ["[" <COMMAND_FLAGS> "]"] <TARGET> <COMMAND> [<ARG>]
34461 <COMMANDS> ::= <COMMAND> [,<COMMANDS>]
34462 <INTERVAL> ::= <START>[-<END>] <COMMANDS>
34463 <INTERVALS> ::= <INTERVAL>[;<INTERVALS>]
34464
34465 Examples
34466
34467 • Specify audio tempo change at second 4:
34468
34469 asendcmd=c='4.0 atempo tempo 1.5',atempo
34470
34471 • Target a specific filter instance:
34472
34473 asendcmd=c='4.0 atempo@my tempo 1.5',atempo@my
34474
34475 • Specify a list of drawtext and hue commands in a file.
34476
34477 # show text in the interval 5-10
34478 5.0-10.0 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=hello world',
34479 [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=';
34480
34481 # desaturate the image in the interval 15-20
34482 15.0-20.0 [enter] hue s 0,
34483 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor',
34484 [leave] hue s 1,
34485 [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color';
34486
34487 # apply an exponential saturation fade-out effect, starting from time 25
34488 25 [enter] hue s exp(25-t)
34489
34490 A filtergraph allowing to read and process the above command list
34491 stored in a file test.cmd, can be specified with:
34492
34493 sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
34494
34495 setpts, asetpts
34496 Change the PTS (presentation timestamp) of the input frames.
34497
34498 "setpts" works on video frames, "asetpts" on audio frames.
34499
34500 This filter accepts the following options:
34501
34502 expr
34503 The expression which is evaluated for each frame to construct its
34504 timestamp.
34505
34506 The expression is evaluated through the eval API and can contain the
34507 following constants:
34508
34509 FRAME_RATE, FR
34510 frame rate, only defined for constant frame-rate video
34511
34512 PTS The presentation timestamp in input
34513
34514 N The count of the input frame for video or the number of consumed
34515 samples, not including the current frame for audio, starting from
34516 0.
34517
34518 NB_CONSUMED_SAMPLES
34519 The number of consumed samples, not including the current frame
34520 (only audio)
34521
34522 NB_SAMPLES, S
34523 The number of samples in the current frame (only audio)
34524
34525 SAMPLE_RATE, SR
34526 The audio sample rate.
34527
34528 STARTPTS
34529 The PTS of the first frame.
34530
34531 STARTT
34532 the time in seconds of the first frame
34533
34534 INTERLACED
34535 State whether the current frame is interlaced.
34536
34537 T the time in seconds of the current frame
34538
34539 POS original position in the file of the frame, or undefined if
34540 undefined for the current frame
34541
34542 PREV_INPTS
34543 The previous input PTS.
34544
34545 PREV_INT
34546 previous input time in seconds
34547
34548 PREV_OUTPTS
34549 The previous output PTS.
34550
34551 PREV_OUTT
34552 previous output time in seconds
34553
34554 RTCTIME
34555 The wallclock (RTC) time in microseconds. This is deprecated, use
34556 time(0) instead.
34557
34558 RTCSTART
34559 The wallclock (RTC) time at the start of the movie in microseconds.
34560
34561 TB The timebase of the input timestamps.
34562
34563 Examples
34564
34565 • Start counting PTS from zero
34566
34567 setpts=PTS-STARTPTS
34568
34569 • Apply fast motion effect:
34570
34571 setpts=0.5*PTS
34572
34573 • Apply slow motion effect:
34574
34575 setpts=2.0*PTS
34576
34577 • Set fixed rate of 25 frames per second:
34578
34579 setpts=N/(25*TB)
34580
34581 • Set fixed rate 25 fps with some jitter:
34582
34583 setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
34584
34585 • Apply an offset of 10 seconds to the input PTS:
34586
34587 setpts=PTS+10/TB
34588
34589 • Generate timestamps from a "live source" and rebase onto the
34590 current timebase:
34591
34592 setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
34593
34594 • Generate timestamps by counting samples:
34595
34596 asetpts=N/SR/TB
34597
34598 setrange
34599 Force color range for the output video frame.
34600
34601 The "setrange" filter marks the color range property for the output
34602 frames. It does not change the input frame, but only sets the
34603 corresponding property, which affects how the frame is treated by
34604 following filters.
34605
34606 The filter accepts the following options:
34607
34608 range
34609 Available values are:
34610
34611 auto
34612 Keep the same color range property.
34613
34614 unspecified, unknown
34615 Set the color range as unspecified.
34616
34617 limited, tv, mpeg
34618 Set the color range as limited.
34619
34620 full, pc, jpeg
34621 Set the color range as full.
34622
34623 settb, asettb
34624 Set the timebase to use for the output frames timestamps. It is mainly
34625 useful for testing timebase configuration.
34626
34627 It accepts the following parameters:
34628
34629 expr, tb
34630 The expression which is evaluated into the output timebase.
34631
34632 The value for tb is an arithmetic expression representing a rational.
34633 The expression can contain the constants "AVTB" (the default timebase),
34634 "intb" (the input timebase) and "sr" (the sample rate, audio only).
34635 Default value is "intb".
34636
34637 Examples
34638
34639 • Set the timebase to 1/25:
34640
34641 settb=expr=1/25
34642
34643 • Set the timebase to 1/10:
34644
34645 settb=expr=0.1
34646
34647 • Set the timebase to 1001/1000:
34648
34649 settb=1+0.001
34650
34651 • Set the timebase to 2*intb:
34652
34653 settb=2*intb
34654
34655 • Set the default timebase value:
34656
34657 settb=AVTB
34658
34659 showcqt
34660 Convert input audio to a video output representing frequency spectrum
34661 logarithmically using Brown-Puckette constant Q transform algorithm
34662 with direct frequency domain coefficient calculation (but the transform
34663 itself is not really constant Q, instead the Q factor is actually
34664 variable/clamped), with musical tone scale, from E0 to D#10.
34665
34666 The filter accepts the following options:
34667
34668 size, s
34669 Specify the video size for the output. It must be even. For the
34670 syntax of this option, check the "Video size" section in the
34671 ffmpeg-utils manual. Default value is "1920x1080".
34672
34673 fps, rate, r
34674 Set the output frame rate. Default value is 25.
34675
34676 bar_h
34677 Set the bargraph height. It must be even. Default value is "-1"
34678 which computes the bargraph height automatically.
34679
34680 axis_h
34681 Set the axis height. It must be even. Default value is "-1" which
34682 computes the axis height automatically.
34683
34684 sono_h
34685 Set the sonogram height. It must be even. Default value is "-1"
34686 which computes the sonogram height automatically.
34687
34688 fullhd
34689 Set the fullhd resolution. This option is deprecated, use size, s
34690 instead. Default value is 1.
34691
34692 sono_v, volume
34693 Specify the sonogram volume expression. It can contain variables:
34694
34695 bar_v
34696 the bar_v evaluated expression
34697
34698 frequency, freq, f
34699 the frequency where it is evaluated
34700
34701 timeclamp, tc
34702 the value of timeclamp option
34703
34704 and functions:
34705
34706 a_weighting(f)
34707 A-weighting of equal loudness
34708
34709 b_weighting(f)
34710 B-weighting of equal loudness
34711
34712 c_weighting(f)
34713 C-weighting of equal loudness.
34714
34715 Default value is 16.
34716
34717 bar_v, volume2
34718 Specify the bargraph volume expression. It can contain variables:
34719
34720 sono_v
34721 the sono_v evaluated expression
34722
34723 frequency, freq, f
34724 the frequency where it is evaluated
34725
34726 timeclamp, tc
34727 the value of timeclamp option
34728
34729 and functions:
34730
34731 a_weighting(f)
34732 A-weighting of equal loudness
34733
34734 b_weighting(f)
34735 B-weighting of equal loudness
34736
34737 c_weighting(f)
34738 C-weighting of equal loudness.
34739
34740 Default value is "sono_v".
34741
34742 sono_g, gamma
34743 Specify the sonogram gamma. Lower gamma makes the spectrum more
34744 contrast, higher gamma makes the spectrum having more range.
34745 Default value is 3. Acceptable range is "[1, 7]".
34746
34747 bar_g, gamma2
34748 Specify the bargraph gamma. Default value is 1. Acceptable range is
34749 "[1, 7]".
34750
34751 bar_t
34752 Specify the bargraph transparency level. Lower value makes the
34753 bargraph sharper. Default value is 1. Acceptable range is "[0,
34754 1]".
34755
34756 timeclamp, tc
34757 Specify the transform timeclamp. At low frequency, there is trade-
34758 off between accuracy in time domain and frequency domain. If
34759 timeclamp is lower, event in time domain is represented more
34760 accurately (such as fast bass drum), otherwise event in frequency
34761 domain is represented more accurately (such as bass guitar).
34762 Acceptable range is "[0.002, 1]". Default value is 0.17.
34763
34764 attack
34765 Set attack time in seconds. The default is 0 (disabled). Otherwise,
34766 it limits future samples by applying asymmetric windowing in time
34767 domain, useful when low latency is required. Accepted range is "[0,
34768 1]".
34769
34770 basefreq
34771 Specify the transform base frequency. Default value is
34772 20.01523126408007475, which is frequency 50 cents below E0.
34773 Acceptable range is "[10, 100000]".
34774
34775 endfreq
34776 Specify the transform end frequency. Default value is
34777 20495.59681441799654, which is frequency 50 cents above D#10.
34778 Acceptable range is "[10, 100000]".
34779
34780 coeffclamp
34781 This option is deprecated and ignored.
34782
34783 tlength
34784 Specify the transform length in time domain. Use this option to
34785 control accuracy trade-off between time domain and frequency domain
34786 at every frequency sample. It can contain variables:
34787
34788 frequency, freq, f
34789 the frequency where it is evaluated
34790
34791 timeclamp, tc
34792 the value of timeclamp option.
34793
34794 Default value is "384*tc/(384+tc*f)".
34795
34796 count
34797 Specify the transform count for every video frame. Default value is
34798 6. Acceptable range is "[1, 30]".
34799
34800 fcount
34801 Specify the transform count for every single pixel. Default value
34802 is 0, which makes it computed automatically. Acceptable range is
34803 "[0, 10]".
34804
34805 fontfile
34806 Specify font file for use with freetype to draw the axis. If not
34807 specified, use embedded font. Note that drawing with font file or
34808 embedded font is not implemented with custom basefreq and endfreq,
34809 use axisfile option instead.
34810
34811 font
34812 Specify fontconfig pattern. This has lower priority than fontfile.
34813 The ":" in the pattern may be replaced by "|" to avoid unnecessary
34814 escaping.
34815
34816 fontcolor
34817 Specify font color expression. This is arithmetic expression that
34818 should return integer value 0xRRGGBB. It can contain variables:
34819
34820 frequency, freq, f
34821 the frequency where it is evaluated
34822
34823 timeclamp, tc
34824 the value of timeclamp option
34825
34826 and functions:
34827
34828 midi(f)
34829 midi number of frequency f, some midi numbers: E0(16), C1(24),
34830 C2(36), A4(69)
34831
34832 r(x), g(x), b(x)
34833 red, green, and blue value of intensity x.
34834
34835 Default value is "st(0, (midi(f)-59.5)/12); st(1,
34836 if(between(ld(0),0,1), 0.5-0.5*cos(2*PI*ld(0)), 0)); r(1-ld(1)) +
34837 b(ld(1))".
34838
34839 axisfile
34840 Specify image file to draw the axis. This option override fontfile
34841 and fontcolor option.
34842
34843 axis, text
34844 Enable/disable drawing text to the axis. If it is set to 0, drawing
34845 to the axis is disabled, ignoring fontfile and axisfile option.
34846 Default value is 1.
34847
34848 csp Set colorspace. The accepted values are:
34849
34850 unspecified
34851 Unspecified (default)
34852
34853 bt709
34854 BT.709
34855
34856 fcc FCC
34857
34858 bt470bg
34859 BT.470BG or BT.601-6 625
34860
34861 smpte170m
34862 SMPTE-170M or BT.601-6 525
34863
34864 smpte240m
34865 SMPTE-240M
34866
34867 bt2020ncl
34868 BT.2020 with non-constant luminance
34869
34870 cscheme
34871 Set spectrogram color scheme. This is list of floating point values
34872 with format "left_r|left_g|left_b|right_r|right_g|right_b". The
34873 default is "1|0.5|0|0|0.5|1".
34874
34875 Examples
34876
34877 • Playing audio while showing the spectrum:
34878
34879 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt [out0]'
34880
34881 • Same as above, but with frame rate 30 fps:
34882
34883 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=fps=30:count=5 [out0]'
34884
34885 • Playing at 1280x720:
34886
34887 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=s=1280x720:count=4 [out0]'
34888
34889 • Disable sonogram display:
34890
34891 sono_h=0
34892
34893 • A1 and its harmonics: A1, A2, (near)E3, A3:
34894
34895 ffplay -f lavfi 'aevalsrc=0.1*sin(2*PI*55*t)+0.1*sin(4*PI*55*t)+0.1*sin(6*PI*55*t)+0.1*sin(8*PI*55*t),
34896 asplit[a][out1]; [a] showcqt [out0]'
34897
34898 • Same as above, but with more accuracy in frequency domain:
34899
34900 ffplay -f lavfi 'aevalsrc=0.1*sin(2*PI*55*t)+0.1*sin(4*PI*55*t)+0.1*sin(6*PI*55*t)+0.1*sin(8*PI*55*t),
34901 asplit[a][out1]; [a] showcqt=timeclamp=0.5 [out0]'
34902
34903 • Custom volume:
34904
34905 bar_v=10:sono_v=bar_v*a_weighting(f)
34906
34907 • Custom gamma, now spectrum is linear to the amplitude.
34908
34909 bar_g=2:sono_g=2
34910
34911 • Custom tlength equation:
34912
34913 tc=0.33:tlength='st(0,0.17); 384*tc / (384 / ld(0) + tc*f /(1-ld(0))) + 384*tc / (tc*f / ld(0) + 384 /(1-ld(0)))'
34914
34915 • Custom fontcolor and fontfile, C-note is colored green, others are
34916 colored blue:
34917
34918 fontcolor='if(mod(floor(midi(f)+0.5),12), 0x0000FF, g(1))':fontfile=myfont.ttf
34919
34920 • Custom font using fontconfig:
34921
34922 font='Courier New,Monospace,mono|bold'
34923
34924 • Custom frequency range with custom axis using image file:
34925
34926 axisfile=myaxis.png:basefreq=40:endfreq=10000
34927
34928 showfreqs
34929 Convert input audio to video output representing the audio power
34930 spectrum. Audio amplitude is on Y-axis while frequency is on X-axis.
34931
34932 The filter accepts the following options:
34933
34934 size, s
34935 Specify size of video. For the syntax of this option, check the
34936 "Video size" section in the ffmpeg-utils manual. Default is
34937 "1024x512".
34938
34939 rate, r
34940 Set video rate. Default is 25.
34941
34942 mode
34943 Set display mode. This set how each frequency bin will be
34944 represented.
34945
34946 It accepts the following values:
34947
34948 line
34949 bar
34950 dot
34951
34952 Default is "bar".
34953
34954 ascale
34955 Set amplitude scale.
34956
34957 It accepts the following values:
34958
34959 lin Linear scale.
34960
34961 sqrt
34962 Square root scale.
34963
34964 cbrt
34965 Cubic root scale.
34966
34967 log Logarithmic scale.
34968
34969 Default is "log".
34970
34971 fscale
34972 Set frequency scale.
34973
34974 It accepts the following values:
34975
34976 lin Linear scale.
34977
34978 log Logarithmic scale.
34979
34980 rlog
34981 Reverse logarithmic scale.
34982
34983 Default is "lin".
34984
34985 win_size
34986 Set window size. Allowed range is from 16 to 65536.
34987
34988 Default is 2048
34989
34990 win_func
34991 Set windowing function.
34992
34993 It accepts the following values:
34994
34995 rect
34996 bartlett
34997 hanning
34998 hamming
34999 blackman
35000 welch
35001 flattop
35002 bharris
35003 bnuttall
35004 bhann
35005 sine
35006 nuttall
35007 lanczos
35008 gauss
35009 tukey
35010 dolph
35011 cauchy
35012 parzen
35013 poisson
35014 bohman
35015
35016 Default is "hanning".
35017
35018 overlap
35019 Set window overlap. In range "[0, 1]". Default is 1, which means
35020 optimal overlap for selected window function will be picked.
35021
35022 averaging
35023 Set time averaging. Setting this to 0 will display current maximal
35024 peaks. Default is 1, which means time averaging is disabled.
35025
35026 colors
35027 Specify list of colors separated by space or by '|' which will be
35028 used to draw channel frequencies. Unrecognized or missing colors
35029 will be replaced by white color.
35030
35031 cmode
35032 Set channel display mode.
35033
35034 It accepts the following values:
35035
35036 combined
35037 separate
35038
35039 Default is "combined".
35040
35041 minamp
35042 Set minimum amplitude used in "log" amplitude scaler.
35043
35044 data
35045 Set data display mode.
35046
35047 It accepts the following values:
35048
35049 magnitude
35050 phase
35051 delay
35052
35053 Default is "magnitude".
35054
35055 channels
35056 Set channels to use when processing audio. By default all are
35057 processed.
35058
35059 showspatial
35060 Convert stereo input audio to a video output, representing the spatial
35061 relationship between two channels.
35062
35063 The filter accepts the following options:
35064
35065 size, s
35066 Specify the video size for the output. For the syntax of this
35067 option, check the "Video size" section in the ffmpeg-utils manual.
35068 Default value is "512x512".
35069
35070 win_size
35071 Set window size. Allowed range is from 1024 to 65536. Default size
35072 is 4096.
35073
35074 win_func
35075 Set window function.
35076
35077 It accepts the following values:
35078
35079 rect
35080 bartlett
35081 hann
35082 hanning
35083 hamming
35084 blackman
35085 welch
35086 flattop
35087 bharris
35088 bnuttall
35089 bhann
35090 sine
35091 nuttall
35092 lanczos
35093 gauss
35094 tukey
35095 dolph
35096 cauchy
35097 parzen
35098 poisson
35099 bohman
35100
35101 Default value is "hann".
35102
35103 overlap
35104 Set ratio of overlap window. Default value is 0.5. When value is 1
35105 overlap is set to recommended size for specific window function
35106 currently used.
35107
35108 showspectrum
35109 Convert input audio to a video output, representing the audio frequency
35110 spectrum.
35111
35112 The filter accepts the following options:
35113
35114 size, s
35115 Specify the video size for the output. For the syntax of this
35116 option, check the "Video size" section in the ffmpeg-utils manual.
35117 Default value is "640x512".
35118
35119 slide
35120 Specify how the spectrum should slide along the window.
35121
35122 It accepts the following values:
35123
35124 replace
35125 the samples start again on the left when they reach the right
35126
35127 scroll
35128 the samples scroll from right to left
35129
35130 fullframe
35131 frames are only produced when the samples reach the right
35132
35133 rscroll
35134 the samples scroll from left to right
35135
35136 lreplace
35137 the samples start again on the right when they reach the left
35138
35139 Default value is "replace".
35140
35141 mode
35142 Specify display mode.
35143
35144 It accepts the following values:
35145
35146 combined
35147 all channels are displayed in the same row
35148
35149 separate
35150 all channels are displayed in separate rows
35151
35152 Default value is combined.
35153
35154 color
35155 Specify display color mode.
35156
35157 It accepts the following values:
35158
35159 channel
35160 each channel is displayed in a separate color
35161
35162 intensity
35163 each channel is displayed using the same color scheme
35164
35165 rainbow
35166 each channel is displayed using the rainbow color scheme
35167
35168 moreland
35169 each channel is displayed using the moreland color scheme
35170
35171 nebulae
35172 each channel is displayed using the nebulae color scheme
35173
35174 fire
35175 each channel is displayed using the fire color scheme
35176
35177 fiery
35178 each channel is displayed using the fiery color scheme
35179
35180 fruit
35181 each channel is displayed using the fruit color scheme
35182
35183 cool
35184 each channel is displayed using the cool color scheme
35185
35186 magma
35187 each channel is displayed using the magma color scheme
35188
35189 green
35190 each channel is displayed using the green color scheme
35191
35192 viridis
35193 each channel is displayed using the viridis color scheme
35194
35195 plasma
35196 each channel is displayed using the plasma color scheme
35197
35198 cividis
35199 each channel is displayed using the cividis color scheme
35200
35201 terrain
35202 each channel is displayed using the terrain color scheme
35203
35204 Default value is channel.
35205
35206 scale
35207 Specify scale used for calculating intensity color values.
35208
35209 It accepts the following values:
35210
35211 lin linear
35212
35213 sqrt
35214 square root, default
35215
35216 cbrt
35217 cubic root
35218
35219 log logarithmic
35220
35221 4thrt
35222 4th root
35223
35224 5thrt
35225 5th root
35226
35227 Default value is sqrt.
35228
35229 fscale
35230 Specify frequency scale.
35231
35232 It accepts the following values:
35233
35234 lin linear
35235
35236 log logarithmic
35237
35238 Default value is lin.
35239
35240 saturation
35241 Set saturation modifier for displayed colors. Negative values
35242 provide alternative color scheme. 0 is no saturation at all.
35243 Saturation must be in [-10.0, 10.0] range. Default value is 1.
35244
35245 win_func
35246 Set window function.
35247
35248 It accepts the following values:
35249
35250 rect
35251 bartlett
35252 hann
35253 hanning
35254 hamming
35255 blackman
35256 welch
35257 flattop
35258 bharris
35259 bnuttall
35260 bhann
35261 sine
35262 nuttall
35263 lanczos
35264 gauss
35265 tukey
35266 dolph
35267 cauchy
35268 parzen
35269 poisson
35270 bohman
35271
35272 Default value is "hann".
35273
35274 orientation
35275 Set orientation of time vs frequency axis. Can be "vertical" or
35276 "horizontal". Default is "vertical".
35277
35278 overlap
35279 Set ratio of overlap window. Default value is 0. When value is 1
35280 overlap is set to recommended size for specific window function
35281 currently used.
35282
35283 gain
35284 Set scale gain for calculating intensity color values. Default
35285 value is 1.
35286
35287 data
35288 Set which data to display. Can be "magnitude", default or "phase",
35289 or unwrapped phase: "uphase".
35290
35291 rotation
35292 Set color rotation, must be in [-1.0, 1.0] range. Default value is
35293 0.
35294
35295 start
35296 Set start frequency from which to display spectrogram. Default is
35297 0.
35298
35299 stop
35300 Set stop frequency to which to display spectrogram. Default is 0.
35301
35302 fps Set upper frame rate limit. Default is "auto", unlimited.
35303
35304 legend
35305 Draw time and frequency axes and legends. Default is disabled.
35306
35307 drange
35308 Set dynamic range used to calculate intensity color values. Default
35309 is 120 dBFS. Allowed range is from 10 to 200.
35310
35311 limit
35312 Set upper limit of input audio samples volume in dBFS. Default is 0
35313 dBFS. Allowed range is from -100 to 100.
35314
35315 opacity
35316 Set opacity strength when using pixel format output with alpha
35317 component.
35318
35319 The usage is very similar to the showwaves filter; see the examples in
35320 that section.
35321
35322 Examples
35323
35324 • Large window with logarithmic color scaling:
35325
35326 showspectrum=s=1280x480:scale=log
35327
35328 • Complete example for a colored and sliding spectrum per channel
35329 using ffplay:
35330
35331 ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
35332 [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
35333
35334 showspectrumpic
35335 Convert input audio to a single video frame, representing the audio
35336 frequency spectrum.
35337
35338 The filter accepts the following options:
35339
35340 size, s
35341 Specify the video size for the output. For the syntax of this
35342 option, check the "Video size" section in the ffmpeg-utils manual.
35343 Default value is "4096x2048".
35344
35345 mode
35346 Specify display mode.
35347
35348 It accepts the following values:
35349
35350 combined
35351 all channels are displayed in the same row
35352
35353 separate
35354 all channels are displayed in separate rows
35355
35356 Default value is combined.
35357
35358 color
35359 Specify display color mode.
35360
35361 It accepts the following values:
35362
35363 channel
35364 each channel is displayed in a separate color
35365
35366 intensity
35367 each channel is displayed using the same color scheme
35368
35369 rainbow
35370 each channel is displayed using the rainbow color scheme
35371
35372 moreland
35373 each channel is displayed using the moreland color scheme
35374
35375 nebulae
35376 each channel is displayed using the nebulae color scheme
35377
35378 fire
35379 each channel is displayed using the fire color scheme
35380
35381 fiery
35382 each channel is displayed using the fiery color scheme
35383
35384 fruit
35385 each channel is displayed using the fruit color scheme
35386
35387 cool
35388 each channel is displayed using the cool color scheme
35389
35390 magma
35391 each channel is displayed using the magma color scheme
35392
35393 green
35394 each channel is displayed using the green color scheme
35395
35396 viridis
35397 each channel is displayed using the viridis color scheme
35398
35399 plasma
35400 each channel is displayed using the plasma color scheme
35401
35402 cividis
35403 each channel is displayed using the cividis color scheme
35404
35405 terrain
35406 each channel is displayed using the terrain color scheme
35407
35408 Default value is intensity.
35409
35410 scale
35411 Specify scale used for calculating intensity color values.
35412
35413 It accepts the following values:
35414
35415 lin linear
35416
35417 sqrt
35418 square root, default
35419
35420 cbrt
35421 cubic root
35422
35423 log logarithmic
35424
35425 4thrt
35426 4th root
35427
35428 5thrt
35429 5th root
35430
35431 Default value is log.
35432
35433 fscale
35434 Specify frequency scale.
35435
35436 It accepts the following values:
35437
35438 lin linear
35439
35440 log logarithmic
35441
35442 Default value is lin.
35443
35444 saturation
35445 Set saturation modifier for displayed colors. Negative values
35446 provide alternative color scheme. 0 is no saturation at all.
35447 Saturation must be in [-10.0, 10.0] range. Default value is 1.
35448
35449 win_func
35450 Set window function.
35451
35452 It accepts the following values:
35453
35454 rect
35455 bartlett
35456 hann
35457 hanning
35458 hamming
35459 blackman
35460 welch
35461 flattop
35462 bharris
35463 bnuttall
35464 bhann
35465 sine
35466 nuttall
35467 lanczos
35468 gauss
35469 tukey
35470 dolph
35471 cauchy
35472 parzen
35473 poisson
35474 bohman
35475
35476 Default value is "hann".
35477
35478 orientation
35479 Set orientation of time vs frequency axis. Can be "vertical" or
35480 "horizontal". Default is "vertical".
35481
35482 gain
35483 Set scale gain for calculating intensity color values. Default
35484 value is 1.
35485
35486 legend
35487 Draw time and frequency axes and legends. Default is enabled.
35488
35489 rotation
35490 Set color rotation, must be in [-1.0, 1.0] range. Default value is
35491 0.
35492
35493 start
35494 Set start frequency from which to display spectrogram. Default is
35495 0.
35496
35497 stop
35498 Set stop frequency to which to display spectrogram. Default is 0.
35499
35500 drange
35501 Set dynamic range used to calculate intensity color values. Default
35502 is 120 dBFS. Allowed range is from 10 to 200.
35503
35504 limit
35505 Set upper limit of input audio samples volume in dBFS. Default is 0
35506 dBFS. Allowed range is from -100 to 100.
35507
35508 opacity
35509 Set opacity strength when using pixel format output with alpha
35510 component.
35511
35512 Examples
35513
35514 • Extract an audio spectrogram of a whole audio track in a 1024x1024
35515 picture using ffmpeg:
35516
35517 ffmpeg -i audio.flac -lavfi showspectrumpic=s=1024x1024 spectrogram.png
35518
35519 showvolume
35520 Convert input audio volume to a video output.
35521
35522 The filter accepts the following options:
35523
35524 rate, r
35525 Set video rate.
35526
35527 b Set border width, allowed range is [0, 5]. Default is 1.
35528
35529 w Set channel width, allowed range is [80, 8192]. Default is 400.
35530
35531 h Set channel height, allowed range is [1, 900]. Default is 20.
35532
35533 f Set fade, allowed range is [0, 1]. Default is 0.95.
35534
35535 c Set volume color expression.
35536
35537 The expression can use the following variables:
35538
35539 VOLUME
35540 Current max volume of channel in dB.
35541
35542 PEAK
35543 Current peak.
35544
35545 CHANNEL
35546 Current channel number, starting from 0.
35547
35548 t If set, displays channel names. Default is enabled.
35549
35550 v If set, displays volume values. Default is enabled.
35551
35552 o Set orientation, can be horizontal: "h" or vertical: "v", default
35553 is "h".
35554
35555 s Set step size, allowed range is [0, 5]. Default is 0, which means
35556 step is disabled.
35557
35558 p Set background opacity, allowed range is [0, 1]. Default is 0.
35559
35560 m Set metering mode, can be peak: "p" or rms: "r", default is "p".
35561
35562 ds Set display scale, can be linear: "lin" or log: "log", default is
35563 "lin".
35564
35565 dm In second. If set to > 0., display a line for the max level in the
35566 previous seconds. default is disabled: 0.
35567
35568 dmc The color of the max line. Use when "dm" option is set to > 0.
35569 default is: "orange"
35570
35571 showwaves
35572 Convert input audio to a video output, representing the samples waves.
35573
35574 The filter accepts the following options:
35575
35576 size, s
35577 Specify the video size for the output. For the syntax of this
35578 option, check the "Video size" section in the ffmpeg-utils manual.
35579 Default value is "600x240".
35580
35581 mode
35582 Set display mode.
35583
35584 Available values are:
35585
35586 point
35587 Draw a point for each sample.
35588
35589 line
35590 Draw a vertical line for each sample.
35591
35592 p2p Draw a point for each sample and a line between them.
35593
35594 cline
35595 Draw a centered vertical line for each sample.
35596
35597 Default value is "point".
35598
35599 n Set the number of samples which are printed on the same column. A
35600 larger value will decrease the frame rate. Must be a positive
35601 integer. This option can be set only if the value for rate is not
35602 explicitly specified.
35603
35604 rate, r
35605 Set the (approximate) output frame rate. This is done by setting
35606 the option n. Default value is "25".
35607
35608 split_channels
35609 Set if channels should be drawn separately or overlap. Default
35610 value is 0.
35611
35612 colors
35613 Set colors separated by '|' which are going to be used for drawing
35614 of each channel.
35615
35616 scale
35617 Set amplitude scale.
35618
35619 Available values are:
35620
35621 lin Linear.
35622
35623 log Logarithmic.
35624
35625 sqrt
35626 Square root.
35627
35628 cbrt
35629 Cubic root.
35630
35631 Default is linear.
35632
35633 draw
35634 Set the draw mode. This is mostly useful to set for high n.
35635
35636 Available values are:
35637
35638 scale
35639 Scale pixel values for each drawn sample.
35640
35641 full
35642 Draw every sample directly.
35643
35644 Default value is "scale".
35645
35646 Examples
35647
35648 • Output the input file audio and the corresponding video
35649 representation at the same time:
35650
35651 amovie=a.mp3,asplit[out0],showwaves[out1]
35652
35653 • Create a synthetic signal and show it with showwaves, forcing a
35654 frame rate of 30 frames per second:
35655
35656 aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
35657
35658 showwavespic
35659 Convert input audio to a single video frame, representing the samples
35660 waves.
35661
35662 The filter accepts the following options:
35663
35664 size, s
35665 Specify the video size for the output. For the syntax of this
35666 option, check the "Video size" section in the ffmpeg-utils manual.
35667 Default value is "600x240".
35668
35669 split_channels
35670 Set if channels should be drawn separately or overlap. Default
35671 value is 0.
35672
35673 colors
35674 Set colors separated by '|' which are going to be used for drawing
35675 of each channel.
35676
35677 scale
35678 Set amplitude scale.
35679
35680 Available values are:
35681
35682 lin Linear.
35683
35684 log Logarithmic.
35685
35686 sqrt
35687 Square root.
35688
35689 cbrt
35690 Cubic root.
35691
35692 Default is linear.
35693
35694 draw
35695 Set the draw mode.
35696
35697 Available values are:
35698
35699 scale
35700 Scale pixel values for each drawn sample.
35701
35702 full
35703 Draw every sample directly.
35704
35705 Default value is "scale".
35706
35707 filter
35708 Set the filter mode.
35709
35710 Available values are:
35711
35712 average
35713 Use average samples values for each drawn sample.
35714
35715 peak
35716 Use peak samples values for each drawn sample.
35717
35718 Default value is "average".
35719
35720 Examples
35721
35722 • Extract a channel split representation of the wave form of a whole
35723 audio track in a 1024x800 picture using ffmpeg:
35724
35725 ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
35726
35727 sidedata, asidedata
35728 Delete frame side data, or select frames based on it.
35729
35730 This filter accepts the following options:
35731
35732 mode
35733 Set mode of operation of the filter.
35734
35735 Can be one of the following:
35736
35737 select
35738 Select every frame with side data of "type".
35739
35740 delete
35741 Delete side data of "type". If "type" is not set, delete all
35742 side data in the frame.
35743
35744 type
35745 Set side data type used with all modes. Must be set for "select"
35746 mode. For the list of frame side data types, refer to the
35747 "AVFrameSideDataType" enum in libavutil/frame.h. For example, to
35748 choose "AV_FRAME_DATA_PANSCAN" side data, you must specify
35749 "PANSCAN".
35750
35751 spectrumsynth
35752 Synthesize audio from 2 input video spectrums, first input stream
35753 represents magnitude across time and second represents phase across
35754 time. The filter will transform from frequency domain as displayed in
35755 videos back to time domain as presented in audio output.
35756
35757 This filter is primarily created for reversing processed showspectrum
35758 filter outputs, but can synthesize sound from other spectrograms too.
35759 But in such case results are going to be poor if the phase data is not
35760 available, because in such cases phase data need to be recreated,
35761 usually it's just recreated from random noise. For best results use
35762 gray only output ("channel" color mode in showspectrum filter) and
35763 "log" scale for magnitude video and "lin" scale for phase video. To
35764 produce phase, for 2nd video, use "data" option. Inputs videos should
35765 generally use "fullframe" slide mode as that saves resources needed for
35766 decoding video.
35767
35768 The filter accepts the following options:
35769
35770 sample_rate
35771 Specify sample rate of output audio, the sample rate of audio from
35772 which spectrum was generated may differ.
35773
35774 channels
35775 Set number of channels represented in input video spectrums.
35776
35777 scale
35778 Set scale which was used when generating magnitude input spectrum.
35779 Can be "lin" or "log". Default is "log".
35780
35781 slide
35782 Set slide which was used when generating inputs spectrums. Can be
35783 "replace", "scroll", "fullframe" or "rscroll". Default is
35784 "fullframe".
35785
35786 win_func
35787 Set window function used for resynthesis.
35788
35789 overlap
35790 Set window overlap. In range "[0, 1]". Default is 1, which means
35791 optimal overlap for selected window function will be picked.
35792
35793 orientation
35794 Set orientation of input videos. Can be "vertical" or "horizontal".
35795 Default is "vertical".
35796
35797 Examples
35798
35799 • First create magnitude and phase videos from audio, assuming audio
35800 is stereo with 44100 sample rate, then resynthesize videos back to
35801 audio with spectrumsynth:
35802
35803 ffmpeg -i input.flac -lavfi showspectrum=mode=separate:scale=log:overlap=0.875:color=channel:slide=fullframe:data=magnitude -an -c:v rawvideo magnitude.nut
35804 ffmpeg -i input.flac -lavfi showspectrum=mode=separate:scale=lin:overlap=0.875:color=channel:slide=fullframe:data=phase -an -c:v rawvideo phase.nut
35805 ffmpeg -i magnitude.nut -i phase.nut -lavfi spectrumsynth=channels=2:sample_rate=44100:win_func=hann:overlap=0.875:slide=fullframe output.flac
35806
35807 split, asplit
35808 Split input into several identical outputs.
35809
35810 "asplit" works with audio input, "split" with video.
35811
35812 The filter accepts a single parameter which specifies the number of
35813 outputs. If unspecified, it defaults to 2.
35814
35815 Examples
35816
35817 • Create two separate outputs from the same input:
35818
35819 [in] split [out0][out1]
35820
35821 • To create 3 or more outputs, you need to specify the number of
35822 outputs, like in:
35823
35824 [in] asplit=3 [out0][out1][out2]
35825
35826 • Create two separate outputs from the same input, one cropped and
35827 one padded:
35828
35829 [in] split [splitout1][splitout2];
35830 [splitout1] crop=100:100:0:0 [cropout];
35831 [splitout2] pad=200:200:100:100 [padout];
35832
35833 • Create 5 copies of the input audio with ffmpeg:
35834
35835 ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
35836
35837 zmq, azmq
35838 Receive commands sent through a libzmq client, and forward them to
35839 filters in the filtergraph.
35840
35841 "zmq" and "azmq" work as a pass-through filters. "zmq" must be inserted
35842 between two video filters, "azmq" between two audio filters. Both are
35843 capable to send messages to any filter type.
35844
35845 To enable these filters you need to install the libzmq library and
35846 headers and configure FFmpeg with "--enable-libzmq".
35847
35848 For more information about libzmq see: <http://www.zeromq.org/>
35849
35850 The "zmq" and "azmq" filters work as a libzmq server, which receives
35851 messages sent through a network interface defined by the bind_address
35852 (or the abbreviation "b") option. Default value of this option is
35853 tcp://localhost:5555. You may want to alter this value to your needs,
35854 but do not forget to escape any ':' signs (see filtergraph escaping).
35855
35856 The received message must be in the form:
35857
35858 <TARGET> <COMMAND> [<ARG>]
35859
35860 TARGET specifies the target of the command, usually the name of the
35861 filter class or a specific filter instance name. The default filter
35862 instance name uses the pattern Parsed_<filter_name>_<index>, but you
35863 can override this by using the filter_name@id syntax (see Filtergraph
35864 syntax).
35865
35866 COMMAND specifies the name of the command for the target filter.
35867
35868 ARG is optional and specifies the optional argument list for the given
35869 COMMAND.
35870
35871 Upon reception, the message is processed and the corresponding command
35872 is injected into the filtergraph. Depending on the result, the filter
35873 will send a reply to the client, adopting the format:
35874
35875 <ERROR_CODE> <ERROR_REASON>
35876 <MESSAGE>
35877
35878 MESSAGE is optional.
35879
35880 Examples
35881
35882 Look at tools/zmqsend for an example of a zmq client which can be used
35883 to send commands processed by these filters.
35884
35885 Consider the following filtergraph generated by ffplay. In this
35886 example the last overlay filter has an instance name. All other filters
35887 will have default instance names.
35888
35889 ffplay -dumpgraph 1 -f lavfi "
35890 color=s=100x100:c=red [l];
35891 color=s=100x100:c=blue [r];
35892 nullsrc=s=200x100, zmq [bg];
35893 [bg][l] overlay [bg+l];
35894 [bg+l][r] overlay@my=x=100 "
35895
35896 To change the color of the left side of the video, the following
35897 command can be used:
35898
35899 echo Parsed_color_0 c yellow | tools/zmqsend
35900
35901 To change the right side:
35902
35903 echo Parsed_color_1 c pink | tools/zmqsend
35904
35905 To change the position of the right side:
35906
35907 echo overlay@my x 150 | tools/zmqsend
35908
35910 Below is a description of the currently available multimedia sources.
35911
35912 amovie
35913 This is the same as movie source, except it selects an audio stream by
35914 default.
35915
35916 avsynctest
35917 Generate an Audio/Video Sync Test.
35918
35919 Generated stream periodically shows flash video frame and emits beep in
35920 audio. Useful to inspect A/V sync issues.
35921
35922 It accepts the following options:
35923
35924 size, s
35925 Set output video size. Default value is "hd720".
35926
35927 framerate, fr
35928 Set output video frame rate. Default value is 30.
35929
35930 samplerate, sr
35931 Set output audio sample rate. Default value is 44100.
35932
35933 amplitude, a
35934 Set output audio beep amplitude. Default value is 0.7.
35935
35936 period, p
35937 Set output audio beep period in seconds. Default value is 3.
35938
35939 delay, dl
35940 Set output video flash delay in number of frames. Default value is
35941 0.
35942
35943 cycle, c
35944 Enable cycling of video delays, by default is disabled.
35945
35946 duration, d
35947 Set stream output duration. By default duration is unlimited.
35948
35949 fg, bg, ag
35950 Set foreground/background/additional color.
35951
35952 movie
35953 Read audio and/or video stream(s) from a movie container.
35954
35955 It accepts the following parameters:
35956
35957 filename
35958 The name of the resource to read (not necessarily a file; it can
35959 also be a device or a stream accessed through some protocol).
35960
35961 format_name, f
35962 Specifies the format assumed for the movie to read, and can be
35963 either the name of a container or an input device. If not
35964 specified, the format is guessed from movie_name or by probing.
35965
35966 seek_point, sp
35967 Specifies the seek point in seconds. The frames will be output
35968 starting from this seek point. The parameter is evaluated with
35969 "av_strtod", so the numerical value may be suffixed by an IS
35970 postfix. The default value is "0".
35971
35972 streams, s
35973 Specifies the streams to read. Several streams can be specified,
35974 separated by "+". The source will then have as many outputs, in the
35975 same order. The syntax is explained in the "Stream specifiers"
35976 section in the ffmpeg manual. Two special names, "dv" and "da"
35977 specify respectively the default (best suited) video and audio
35978 stream. Default is "dv", or "da" if the filter is called as
35979 "amovie".
35980
35981 stream_index, si
35982 Specifies the index of the video stream to read. If the value is
35983 -1, the most suitable video stream will be automatically selected.
35984 The default value is "-1". Deprecated. If the filter is called
35985 "amovie", it will select audio instead of video.
35986
35987 loop
35988 Specifies how many times to read the stream in sequence. If the
35989 value is 0, the stream will be looped infinitely. Default value is
35990 "1".
35991
35992 Note that when the movie is looped the source timestamps are not
35993 changed, so it will generate non monotonically increasing
35994 timestamps.
35995
35996 discontinuity
35997 Specifies the time difference between frames above which the point
35998 is considered a timestamp discontinuity which is removed by
35999 adjusting the later timestamps.
36000
36001 dec_threads
36002 Specifies the number of threads for decoding
36003
36004 format_opts
36005 Specify format options for the opened file. Format options can be
36006 specified as a list of key=value pairs separated by ':'. The
36007 following example shows how to add protocol_whitelist and
36008 protocol_blacklist options:
36009
36010 ffplay -f lavfi
36011 "movie=filename='1.sdp':format_opts='protocol_whitelist=file,rtp,udp\:protocol_blacklist=http'"
36012
36013 It allows overlaying a second video on top of the main input of a
36014 filtergraph, as shown in this graph:
36015
36016 input -----------> deltapts0 --> overlay --> output
36017 ^
36018 |
36019 movie --> scale--> deltapts1 -------+
36020
36021 Examples
36022
36023 • Skip 3.2 seconds from the start of the AVI file in.avi, and overlay
36024 it on top of the input labelled "in":
36025
36026 movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over];
36027 [in] setpts=PTS-STARTPTS [main];
36028 [main][over] overlay=16:16 [out]
36029
36030 • Read from a video4linux2 device, and overlay it on top of the input
36031 labelled "in":
36032
36033 movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over];
36034 [in] setpts=PTS-STARTPTS [main];
36035 [main][over] overlay=16:16 [out]
36036
36037 • Read the first video stream and the audio stream with id 0x81 from
36038 dvd.vob; the video is connected to the pad named "video" and the
36039 audio is connected to the pad named "audio":
36040
36041 movie=dvd.vob:s=v:0+#0x81 [video] [audio]
36042
36043 Commands
36044
36045 Both movie and amovie support the following commands:
36046
36047 seek
36048 Perform seek using "av_seek_frame". The syntax is: seek
36049 stream_index|timestamp|flags
36050
36051 • stream_index: If stream_index is -1, a default stream is
36052 selected, and timestamp is automatically converted from
36053 AV_TIME_BASE units to the stream specific time_base.
36054
36055 • timestamp: Timestamp in AVStream.time_base units or, if no
36056 stream is specified, in AV_TIME_BASE units.
36057
36058 • flags: Flags which select direction and seeking mode.
36059
36060 get_duration
36061 Get movie duration in AV_TIME_BASE units.
36062
36064 FFmpeg can be hooked up with a number of external libraries to add
36065 support for more formats. None of them are used by default, their use
36066 has to be explicitly requested by passing the appropriate flags to
36067 ./configure.
36068
36069 Alliance for Open Media (AOM)
36070 FFmpeg can make use of the AOM library for AV1 decoding and encoding.
36071
36072 Go to <http://aomedia.org/> and follow the instructions for installing
36073 the library. Then pass "--enable-libaom" to configure to enable it.
36074
36075 AMD AMF/VCE
36076 FFmpeg can use the AMD Advanced Media Framework library for accelerated
36077 H.264 and HEVC(only windows) encoding on hardware with Video Coding
36078 Engine (VCE).
36079
36080 To enable support you must obtain the AMF framework header
36081 files(version 1.4.9+) from
36082 <https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git>.
36083
36084 Create an "AMF/" directory in the system include path. Copy the
36085 contents of "AMF/amf/public/include/" into that directory. Then
36086 configure FFmpeg with "--enable-amf".
36087
36088 Initialization of amf encoder occurs in this order: 1) trying to
36089 initialize through dx11(only windows) 2) trying to initialize through
36090 dx9(only windows) 3) trying to initialize through vulkan
36091
36092 To use h.264(AMD VCE) encoder on linux amdgru-pro version 19.20+ and
36093 amf-amdgpu-pro package(amdgru-pro contains, but does not install
36094 automatically) are required.
36095
36096 This driver can be installed using amdgpu-pro-install script in
36097 official amd driver archive.
36098
36099 AviSynth
36100 FFmpeg can read AviSynth scripts as input. To enable support, pass
36101 "--enable-avisynth" to configure after installing the headers provided
36102 by <https://github.com/AviSynth/AviSynthPlus>. AviSynth+ can be
36103 configured to install only the headers by either passing
36104 "-DHEADERS_ONLY:bool=on" to the normal CMake-based build system, or by
36105 using the supplied "GNUmakefile".
36106
36107 For Windows, supported AviSynth variants are <http://avisynth.nl> for
36108 32-bit builds and <http://avisynth.nl/index.php/AviSynth+> for 32-bit
36109 and 64-bit builds.
36110
36111 For Linux, macOS, and BSD, the only supported AviSynth variant is
36112 <https://github.com/AviSynth/AviSynthPlus>, starting with version 3.5.
36113
36114 In 2016, AviSynth+ added support for building with GCC. However,
36115 due to the eccentricities of Windows' calling conventions, 32-bit
36116 GCC builds of AviSynth+ are not compatible with typical 32-bit
36117 builds of FFmpeg.
36118
36119 By default, FFmpeg assumes compatibility with 32-bit MSVC builds of
36120 AviSynth+ since that is the most widely-used and entrenched build
36121 configuration. Users can override this and enable support for
36122 32-bit GCC builds of AviSynth+ by passing "-DAVSC_WIN32_GCC32" to
36123 "--extra-cflags" when configuring FFmpeg.
36124
36125 64-bit builds of FFmpeg are not affected, and can use either MSVC
36126 or GCC builds of AviSynth+ without any special flags.
36127
36128 AviSynth(+) is loaded dynamically. Distributors can build FFmpeg
36129 with "--enable-avisynth", and the binaries will work regardless of
36130 the end user having AviSynth installed. If/when an end user would
36131 like to use AviSynth scripts, then they can install AviSynth(+) and
36132 FFmpeg will be able to find and use it to open scripts.
36133
36134 Chromaprint
36135 FFmpeg can make use of the Chromaprint library for generating audio
36136 fingerprints. Pass "--enable-chromaprint" to configure to enable it.
36137 See <https://acoustid.org/chromaprint>.
36138
36139 codec2
36140 FFmpeg can make use of the codec2 library for codec2 decoding and
36141 encoding. There is currently no native decoder, so libcodec2 must be
36142 used for decoding.
36143
36144 Go to <http://freedv.org/>, download "Codec 2 source archive". Build
36145 and install using CMake. Debian users can install the libcodec2-dev
36146 package instead. Once libcodec2 is installed you can pass
36147 "--enable-libcodec2" to configure to enable it.
36148
36149 The easiest way to use codec2 is with .c2 files, since they contain the
36150 mode information required for decoding. To encode such a file, use a
36151 .c2 file extension and give the libcodec2 encoder the -mode option:
36152 "ffmpeg -i input.wav -mode 700C output.c2". Playback is as simple as
36153 "ffplay output.c2". For a list of supported modes, run "ffmpeg -h
36154 encoder=libcodec2". Raw codec2 files are also supported. To make
36155 sense of them the mode in use needs to be specified as a format option:
36156 "ffmpeg -f codec2raw -mode 1300 -i input.raw output.wav".
36157
36158 dav1d
36159 FFmpeg can make use of the dav1d library for AV1 video decoding.
36160
36161 Go to <https://code.videolan.org/videolan/dav1d> and follow the
36162 instructions for installing the library. Then pass "--enable-libdav1d"
36163 to configure to enable it.
36164
36165 davs2
36166 FFmpeg can make use of the davs2 library for AVS2-P2/IEEE1857.4 video
36167 decoding.
36168
36169 Go to <https://github.com/pkuvcl/davs2> and follow the instructions for
36170 installing the library. Then pass "--enable-libdavs2" to configure to
36171 enable it.
36172
36173 libdavs2 is under the GNU Public License Version 2 or later (see
36174 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
36175 details), you must upgrade FFmpeg's license to GPL in order to use
36176 it.
36177
36178 uavs3d
36179 FFmpeg can make use of the uavs3d library for AVS3-P2/IEEE1857.10 video
36180 decoding.
36181
36182 Go to <https://github.com/uavs3/uavs3d> and follow the instructions for
36183 installing the library. Then pass "--enable-libuavs3d" to configure to
36184 enable it.
36185
36186 Game Music Emu
36187 FFmpeg can make use of the Game Music Emu library to read audio from
36188 supported video game music file formats. Pass "--enable-libgme" to
36189 configure to enable it. See
36190 <https://bitbucket.org/mpyne/game-music-emu/overview>.
36191
36192 Intel QuickSync Video
36193 FFmpeg can use Intel QuickSync Video (QSV) for accelerated decoding and
36194 encoding of multiple codecs. To use QSV, FFmpeg must be linked against
36195 the "libmfx" dispatcher, which loads the actual decoding libraries.
36196
36197 The dispatcher is open source and can be downloaded from
36198 <https://github.com/lu-zero/mfx_dispatch.git>. FFmpeg needs to be
36199 configured with the "--enable-libmfx" option and "pkg-config" needs to
36200 be able to locate the dispatcher's ".pc" files.
36201
36202 Kvazaar
36203 FFmpeg can make use of the Kvazaar library for HEVC encoding.
36204
36205 Go to <https://github.com/ultravideo/kvazaar> and follow the
36206 instructions for installing the library. Then pass
36207 "--enable-libkvazaar" to configure to enable it.
36208
36209 LAME
36210 FFmpeg can make use of the LAME library for MP3 encoding.
36211
36212 Go to <http://lame.sourceforge.net/> and follow the instructions for
36213 installing the library. Then pass "--enable-libmp3lame" to configure
36214 to enable it.
36215
36216 libilbc
36217 iLBC is a narrowband speech codec that has been made freely available
36218 by Google as part of the WebRTC project. libilbc is a packaging
36219 friendly copy of the iLBC codec. FFmpeg can make use of the libilbc
36220 library for iLBC decoding and encoding.
36221
36222 Go to <https://github.com/TimothyGu/libilbc> and follow the
36223 instructions for installing the library. Then pass "--enable-libilbc"
36224 to configure to enable it.
36225
36226 libjxl
36227 JPEG XL is an image format intended to fully replace legacy JPEG for an
36228 extended period of life. See <https://jpegxl.info/> for more
36229 information, and see <https://github.com/libjxl/libjxl> for the library
36230 source. You can pass "--enable-libjxl" to configure in order enable the
36231 libjxl wrapper.
36232
36233 libvpx
36234 FFmpeg can make use of the libvpx library for VP8/VP9 decoding and
36235 encoding.
36236
36237 Go to <http://www.webmproject.org/> and follow the instructions for
36238 installing the library. Then pass "--enable-libvpx" to configure to
36239 enable it.
36240
36241 ModPlug
36242 FFmpeg can make use of this library, originating in Modplug-XMMS, to
36243 read from MOD-like music files. See
36244 <https://github.com/Konstanty/libmodplug>. Pass "--enable-libmodplug"
36245 to configure to enable it.
36246
36247 OpenCORE, VisualOn, and Fraunhofer libraries
36248 Spun off Google Android sources, OpenCore, VisualOn and Fraunhofer
36249 libraries provide encoders for a number of audio codecs.
36250
36251 OpenCORE and VisualOn libraries are under the Apache License 2.0
36252 (see <http://www.apache.org/licenses/LICENSE-2.0> for details),
36253 which is incompatible to the LGPL version 2.1 and GPL version 2.
36254 You have to upgrade FFmpeg's license to LGPL version 3 (or if you
36255 have enabled GPL components, GPL version 3) by passing
36256 "--enable-version3" to configure in order to use it.
36257
36258 The license of the Fraunhofer AAC library is incompatible with the
36259 GPL. Therefore, for GPL builds, you have to pass
36260 "--enable-nonfree" to configure in order to use it. To the best of
36261 our knowledge, it is compatible with the LGPL.
36262
36263 OpenCORE AMR
36264
36265 FFmpeg can make use of the OpenCORE libraries for AMR-NB
36266 decoding/encoding and AMR-WB decoding.
36267
36268 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
36269 instructions for installing the libraries. Then pass
36270 "--enable-libopencore-amrnb" and/or "--enable-libopencore-amrwb" to
36271 configure to enable them.
36272
36273 VisualOn AMR-WB encoder library
36274
36275 FFmpeg can make use of the VisualOn AMR-WBenc library for AMR-WB
36276 encoding.
36277
36278 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
36279 instructions for installing the library. Then pass
36280 "--enable-libvo-amrwbenc" to configure to enable it.
36281
36282 Fraunhofer AAC library
36283
36284 FFmpeg can make use of the Fraunhofer AAC library for AAC decoding &
36285 encoding.
36286
36287 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
36288 instructions for installing the library. Then pass
36289 "--enable-libfdk-aac" to configure to enable it.
36290
36291 OpenH264
36292 FFmpeg can make use of the OpenH264 library for H.264 decoding and
36293 encoding.
36294
36295 Go to <http://www.openh264.org/> and follow the instructions for
36296 installing the library. Then pass "--enable-libopenh264" to configure
36297 to enable it.
36298
36299 For decoding, this library is much more limited than the built-in
36300 decoder in libavcodec; currently, this library lacks support for
36301 decoding B-frames and some other main/high profile features. (It
36302 currently only supports constrained baseline profile and CABAC.) Using
36303 it is mostly useful for testing and for taking advantage of Cisco's
36304 patent portfolio license
36305 (<http://www.openh264.org/BINARY_LICENSE.txt>).
36306
36307 OpenJPEG
36308 FFmpeg can use the OpenJPEG libraries for decoding/encoding J2K videos.
36309 Go to <http://www.openjpeg.org/> to get the libraries and follow the
36310 installation instructions. To enable using OpenJPEG in FFmpeg, pass
36311 "--enable-libopenjpeg" to ./configure.
36312
36313 rav1e
36314 FFmpeg can make use of rav1e (Rust AV1 Encoder) via its C bindings to
36315 encode videos. Go to <https://github.com/xiph/rav1e/> and follow the
36316 instructions to build the C library. To enable using rav1e in FFmpeg,
36317 pass "--enable-librav1e" to ./configure.
36318
36319 SVT-AV1
36320 FFmpeg can make use of the Scalable Video Technology for AV1 library
36321 for AV1 encoding.
36322
36323 Go to <https://gitlab.com/AOMediaCodec/SVT-AV1/> and follow the
36324 instructions for installing the library. Then pass "--enable-libsvtav1"
36325 to configure to enable it.
36326
36327 TwoLAME
36328 FFmpeg can make use of the TwoLAME library for MP2 encoding.
36329
36330 Go to <http://www.twolame.org/> and follow the instructions for
36331 installing the library. Then pass "--enable-libtwolame" to configure
36332 to enable it.
36333
36334 VapourSynth
36335 FFmpeg can read VapourSynth scripts as input. To enable support, pass
36336 "--enable-vapoursynth" to configure. Vapoursynth is detected via
36337 "pkg-config". Versions 42 or greater supported. See
36338 <http://www.vapoursynth.com/>.
36339
36340 Due to security concerns, Vapoursynth scripts will not be autodetected
36341 so the input format has to be forced. For ff* CLI tools, add "-f
36342 vapoursynth" before the input "-i yourscript.vpy".
36343
36344 x264
36345 FFmpeg can make use of the x264 library for H.264 encoding.
36346
36347 Go to <http://www.videolan.org/developers/x264.html> and follow the
36348 instructions for installing the library. Then pass "--enable-libx264"
36349 to configure to enable it.
36350
36351 x264 is under the GNU Public License Version 2 or later (see
36352 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
36353 details), you must upgrade FFmpeg's license to GPL in order to use
36354 it.
36355
36356 x265
36357 FFmpeg can make use of the x265 library for HEVC encoding.
36358
36359 Go to <http://x265.org/developers.html> and follow the instructions for
36360 installing the library. Then pass "--enable-libx265" to configure to
36361 enable it.
36362
36363 x265 is under the GNU Public License Version 2 or later (see
36364 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
36365 details), you must upgrade FFmpeg's license to GPL in order to use
36366 it.
36367
36368 xavs
36369 FFmpeg can make use of the xavs library for AVS encoding.
36370
36371 Go to <http://xavs.sf.net/> and follow the instructions for installing
36372 the library. Then pass "--enable-libxavs" to configure to enable it.
36373
36374 xavs2
36375 FFmpeg can make use of the xavs2 library for AVS2-P2/IEEE1857.4 video
36376 encoding.
36377
36378 Go to <https://github.com/pkuvcl/xavs2> and follow the instructions for
36379 installing the library. Then pass "--enable-libxavs2" to configure to
36380 enable it.
36381
36382 libxavs2 is under the GNU Public License Version 2 or later (see
36383 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
36384 details), you must upgrade FFmpeg's license to GPL in order to use
36385 it.
36386
36387 ZVBI
36388 ZVBI is a VBI decoding library which can be used by FFmpeg to decode
36389 DVB teletext pages and DVB teletext subtitles.
36390
36391 Go to <http://sourceforge.net/projects/zapping/> and follow the
36392 instructions for installing the library. Then pass "--enable-libzvbi"
36393 to configure to enable it.
36394
36396 You can use the "-formats" and "-codecs" options to have an exhaustive
36397 list.
36398
36399 File Formats
36400 FFmpeg supports the following file formats through the "libavformat"
36401 library:
36402
36403 Name : Encoding @tab Decoding @tab Comments
36404 3dostr : @tab X
36405 4xm : @tab X
36406 @tab 4X Technologies format, used in some games.
36407
36408 8088flex TMV : @tab X
36409 AAX : @tab X
36410 @tab Audible Enhanced Audio format, used in audiobooks.
36411
36412 AA : @tab X
36413 @tab Audible Format 2, 3, and 4, used in audiobooks.
36414
36415 ACT Voice : @tab X
36416 @tab contains G.729 audio
36417
36418 Adobe Filmstrip : X @tab X
36419 Audio IFF (AIFF) : X @tab X
36420 American Laser Games MM : @tab X
36421 @tab Multimedia format used in games like Mad Dog McCree.
36422
36423 3GPP AMR : X @tab X
36424 Amazing Studio Packed Animation File : @tab X
36425 @tab Multimedia format used in game Heart Of Darkness.
36426
36427 Apple HTTP Live Streaming : @tab X
36428 Artworx Data Format : @tab X
36429 Interplay ACM : @tab X
36430 @tab Audio only format used in some Interplay games.
36431
36432 ADP : @tab X
36433 @tab Audio format used on the Nintendo Gamecube.
36434
36435 AFC : @tab X
36436 @tab Audio format used on the Nintendo Gamecube.
36437
36438 ADS/SS2 : @tab X
36439 @tab Audio format used on the PS2.
36440
36441 APNG : X @tab X
36442 ASF : X @tab X
36443 @tab Advanced / Active Streaming Format.
36444
36445 AST : X @tab X
36446 @tab Audio format used on the Nintendo Wii.
36447
36448 AVI : X @tab X
36449 AviSynth : @tab X
36450 AVR : @tab X
36451 @tab Audio format used on Mac.
36452
36453 AVS : @tab X
36454 @tab Multimedia format used by the Creature Shock game.
36455
36456 Beam Software SIFF : @tab X
36457 @tab Audio and video format used in some games by Beam Software.
36458
36459 Bethesda Softworks VID : @tab X
36460 @tab Used in some games from Bethesda Softworks.
36461
36462 Binary text : @tab X
36463 Bink : @tab X
36464 @tab Multimedia format used by many games.
36465
36466 Bink Audio : @tab X
36467 @tab Audio only multimedia format used by some games.
36468
36469 Bitmap Brothers JV : @tab X
36470 @tab Used in Z and Z95 games.
36471
36472 BRP : @tab X
36473 @tab Argonaut Games format.
36474
36475 Brute Force & Ignorance : @tab X
36476 @tab Used in the game Flash Traffic: City of Angels.
36477
36478 BFSTM : @tab X
36479 @tab Audio format used on the Nintendo WiiU (based on BRSTM).
36480
36481 BRSTM : @tab X
36482 @tab Audio format used on the Nintendo Wii.
36483
36484 BW64 : @tab X
36485 @tab Broadcast Wave 64bit.
36486
36487 BWF : X @tab X
36488 codec2 (raw) : X @tab X
36489 @tab Must be given -mode format option to decode correctly.
36490
36491 codec2 (.c2 files) : X @tab X
36492 @tab Contains header with version and mode info, simplifying playback.
36493
36494 CRI ADX : X @tab X
36495 @tab Audio-only format used in console video games.
36496
36497 CRI AIX : @tab X
36498 CRI HCA : @tab X
36499 @tab Audio-only format used in console video games.
36500
36501 Discworld II BMV : @tab X
36502 Interplay C93 : @tab X
36503 @tab Used in the game Cyberia from Interplay.
36504
36505 Delphine Software International CIN : @tab X
36506 @tab Multimedia format used by Delphine Software games.
36507
36508 Digital Speech Standard (DSS) : @tab X
36509 CD+G : @tab X
36510 @tab Video format used by CD+G karaoke disks
36511
36512 Phantom Cine : @tab X
36513 Commodore CDXL : @tab X
36514 @tab Amiga CD video format
36515
36516 Core Audio Format : X @tab X
36517 @tab Apple Core Audio Format
36518
36519 CRC testing format : X @tab
36520 Creative Voice : X @tab X
36521 @tab Created for the Sound Blaster Pro.
36522
36523 CRYO APC : @tab X
36524 @tab Audio format used in some games by CRYO Interactive Entertainment.
36525
36526 D-Cinema audio : X @tab X
36527 Deluxe Paint Animation : @tab X
36528 DCSTR : @tab X
36529 DFA : @tab X
36530 @tab This format is used in Chronomaster game
36531
36532 DirectDraw Surface : @tab X
36533 DSD Stream File (DSF) : @tab X
36534 DV video : X @tab X
36535 DXA : @tab X
36536 @tab This format is used in the non-Windows version of the Feeble Files
36537 game and different game cutscenes repacked for use with ScummVM.
36538
36539 Electronic Arts cdata : @tab X
36540 Electronic Arts Multimedia : @tab X
36541 @tab Used in various EA games; files have extensions like WVE and UV2.
36542
36543 Ensoniq Paris Audio File : @tab X
36544 FFM (FFserver live feed) : X @tab X
36545 Flash (SWF) : X @tab X
36546 Flash 9 (AVM2) : X @tab X
36547 @tab Only embedded audio is decoded.
36548
36549 FLI/FLC/FLX animation : @tab X
36550 @tab .fli/.flc files
36551
36552 Flash Video (FLV) : X @tab X
36553 @tab Macromedia Flash video files
36554
36555 framecrc testing format : X @tab
36556 FunCom ISS : @tab X
36557 @tab Audio format used in various games from FunCom like The Longest Journey.
36558
36559 G.723.1 : X @tab X
36560 G.726 : @tab X @tab Both left- and right-
36561 justified.
36562 G.729 BIT : X @tab X
36563 G.729 raw : @tab X
36564 GENH : @tab X
36565 @tab Audio format for various games.
36566
36567 GIF Animation : X @tab X
36568 GXF : X @tab X
36569 @tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley
36570 playout servers.
36571
36572 HNM : @tab X
36573 @tab Only version 4 supported, used in some games from Cryo Interactive
36574
36575 iCEDraw File : @tab X
36576 ICO : X @tab X
36577 @tab Microsoft Windows ICO
36578
36579 id Quake II CIN video : @tab X
36580 id RoQ : X @tab X
36581 @tab Used in Quake III, Jedi Knight 2 and other computer games.
36582
36583 IEC61937 encapsulation : X @tab X
36584 IFF : @tab X
36585 @tab Interchange File Format
36586
36587 IFV : @tab X
36588 @tab A format used by some old CCTV DVRs.
36589
36590 iLBC : X @tab X
36591 Interplay MVE : @tab X
36592 @tab Format used in various Interplay computer games.
36593
36594 Iterated Systems ClearVideo : @tab X
36595 @tab I-frames only
36596
36597 IV8 : @tab X
36598 @tab A format generated by IndigoVision 8000 video server.
36599
36600 IVF (On2) : X @tab X
36601 @tab A format used by libvpx
36602
36603 Internet Video Recording : @tab X
36604 IRCAM : X @tab X
36605 LATM : X @tab X
36606 LMLM4 : @tab X
36607 @tab Used by Linux Media Labs MPEG-4 PCI boards
36608
36609 LOAS : @tab X
36610 @tab contains LATM multiplexed AAC audio
36611
36612 LRC : X @tab X
36613 LVF : @tab X
36614 LXF : @tab X
36615 @tab VR native stream format, used by Leitch/Harris' video servers.
36616
36617 Magic Lantern Video (MLV) : @tab X
36618 Matroska : X @tab X
36619 Matroska audio : X @tab
36620 FFmpeg metadata : X @tab X
36621 @tab Metadata in text format.
36622
36623 MAXIS XA : @tab X
36624 @tab Used in Sim City 3000; file extension .xa.
36625
36626 MCA : @tab X
36627 @tab Used in some games from Capcom; file extension .mca.
36628
36629 MD Studio : @tab X
36630 Metal Gear Solid: The Twin Snakes : @tab X
36631 Megalux Frame : @tab X
36632 @tab Used by Megalux Ultimate Paint
36633
36634 Mobotix .mxg : @tab X
36635 Monkey's Audio : @tab X
36636 Motion Pixels MVI : @tab X
36637 MOV/QuickTime/MP4 : X @tab X
36638 @tab 3GP, 3GP2, PSP, iPod variants supported
36639
36640 MP2 : X @tab X
36641 MP3 : X @tab X
36642 MPEG-1 System : X @tab X
36643 @tab muxed audio and video, VCD format supported
36644
36645 MPEG-PS (program stream) : X @tab X
36646 @tab also known as C<VOB> file, SVCD and DVD format supported
36647
36648 MPEG-TS (transport stream) : X @tab X
36649 @tab also known as DVB Transport Stream
36650
36651 MPEG-4 : X @tab X
36652 @tab MPEG-4 is a variant of QuickTime.
36653
36654 MSF : @tab X
36655 @tab Audio format used on the PS3.
36656
36657 Mirillis FIC video : @tab X
36658 @tab No cursor rendering.
36659
36660 MIDI Sample Dump Standard : @tab X
36661 MIME multipart JPEG : X @tab
36662 MSN TCP webcam : @tab X
36663 @tab Used by MSN Messenger webcam streams.
36664
36665 MTV : @tab X
36666 Musepack : @tab X
36667 Musepack SV8 : @tab X
36668 Material eXchange Format (MXF) : X @tab X
36669 @tab SMPTE 377M, used by D-Cinema, broadcast industry.
36670
36671 Material eXchange Format (MXF), D-10 Mapping : X @tab X
36672 @tab SMPTE 386M, D-10/IMX Mapping.
36673
36674 NC camera feed : @tab X
36675 @tab NC (AVIP NC4600) camera streams
36676
36677 NIST SPeech HEader REsources : @tab X
36678 Computerized Speech Lab NSP : @tab X
36679 NTT TwinVQ (VQF) : @tab X
36680 @tab Nippon Telegraph and Telephone Corporation TwinVQ.
36681
36682 Nullsoft Streaming Video : @tab X
36683 NuppelVideo : @tab X
36684 NUT : X @tab X
36685 @tab NUT Open Container Format
36686
36687 Ogg : X @tab X
36688 Playstation Portable PMP : @tab X
36689 Portable Voice Format : @tab X
36690 TechnoTrend PVA : @tab X
36691 @tab Used by TechnoTrend DVB PCI boards.
36692
36693 QCP : @tab X
36694 raw ADTS (AAC) : X @tab X
36695 raw AC-3 : X @tab X
36696 raw AMR-NB : @tab X
36697 raw AMR-WB : @tab X
36698 raw aptX : X @tab X
36699 raw aptX HD : X @tab X
36700 raw Chinese AVS video : X @tab X
36701 raw DFPWM : X @tab X
36702 raw Dirac : X @tab X
36703 raw DNxHD : X @tab X
36704 raw DTS : X @tab X
36705 raw DTS-HD : @tab X
36706 raw E-AC-3 : X @tab X
36707 raw FLAC : X @tab X
36708 raw GSM : @tab X
36709 raw H.261 : X @tab X
36710 raw H.263 : X @tab X
36711 raw H.264 : X @tab X
36712 raw HEVC : X @tab X
36713 raw Ingenient MJPEG : @tab X
36714 raw MJPEG : X @tab X
36715 raw MLP : @tab X
36716 raw MPEG : @tab X
36717 raw MPEG-1 : @tab X
36718 raw MPEG-2 : @tab X
36719 raw MPEG-4 : X @tab X
36720 raw NULL : X @tab
36721 raw video : X @tab X
36722 raw id RoQ : X @tab
36723 raw OBU : X @tab X
36724 raw SBC : X @tab X
36725 raw Shorten : @tab X
36726 raw TAK : @tab X
36727 raw TrueHD : X @tab X
36728 raw VC-1 : X @tab X
36729 raw PCM A-law : X @tab X
36730 raw PCM mu-law : X @tab X
36731 raw PCM Archimedes VIDC : X @tab X
36732 raw PCM signed 8 bit : X @tab X
36733 raw PCM signed 16 bit big-endian : X @tab X
36734 raw PCM signed 16 bit little-endian : X @tab X
36735 raw PCM signed 24 bit big-endian : X @tab X
36736 raw PCM signed 24 bit little-endian : X @tab X
36737 raw PCM signed 32 bit big-endian : X @tab X
36738 raw PCM signed 32 bit little-endian : X @tab X
36739 raw PCM signed 64 bit big-endian : X @tab X
36740 raw PCM signed 64 bit little-endian : X @tab X
36741 raw PCM unsigned 8 bit : X @tab X
36742 raw PCM unsigned 16 bit big-endian : X @tab X
36743 raw PCM unsigned 16 bit little-endian : X @tab X
36744 raw PCM unsigned 24 bit big-endian : X @tab X
36745 raw PCM unsigned 24 bit little-endian : X @tab X
36746 raw PCM unsigned 32 bit big-endian : X @tab X
36747 raw PCM unsigned 32 bit little-endian : X @tab X
36748 raw PCM 16.8 floating point little-endian : @tab X
36749 raw PCM 24.0 floating point little-endian : @tab X
36750 raw PCM floating-point 32 bit big-endian : X @tab X
36751 raw PCM floating-point 32 bit little-endian : X @tab X
36752 raw PCM floating-point 64 bit big-endian : X @tab X
36753 raw PCM floating-point 64 bit little-endian : X @tab X
36754 RDT : @tab X
36755 REDCODE R3D : @tab X
36756 @tab File format used by RED Digital cameras, contains JPEG 2000 frames and PCM audio.
36757
36758 RealMedia : X @tab X
36759 Redirector : @tab X
36760 RedSpark : @tab X
36761 Renderware TeXture Dictionary : @tab X
36762 Resolume DXV : @tab X
36763 RF64 : @tab X
36764 RL2 : @tab X
36765 @tab Audio and video format used in some games by Entertainment Software Partners.
36766
36767 RPL/ARMovie : @tab X
36768 Lego Mindstorms RSO : X @tab X
36769 RSD : @tab X
36770 RTMP : X @tab X
36771 @tab Output is performed by publishing stream to RTMP server
36772
36773 RTP : X @tab X
36774 RTSP : X @tab X
36775 Sample Dump eXchange : @tab X
36776 SAP : X @tab X
36777 SBG : @tab X
36778 SDP : @tab X
36779 SER : @tab X
36780 Sega FILM/CPK : X @tab X
36781 @tab Used in many Sega Saturn console games.
36782
36783 Silicon Graphics Movie : @tab X
36784 Sierra SOL : @tab X
36785 @tab .sol files used in Sierra Online games.
36786
36787 Sierra VMD : @tab X
36788 @tab Used in Sierra CD-ROM games.
36789
36790 Smacker : @tab X
36791 @tab Multimedia format used by many games.
36792
36793 SMJPEG : X @tab X
36794 @tab Used in certain Loki game ports.
36795
36796 SMPTE 337M encapsulation : @tab X
36797 Smush : @tab X
36798 @tab Multimedia format used in some LucasArts games.
36799
36800 Sony OpenMG (OMA) : X @tab X
36801 @tab Audio format used in Sony Sonic Stage and Sony Vegas.
36802
36803 Sony PlayStation STR : @tab X
36804 Sony Wave64 (W64) : X @tab X
36805 SoX native format : X @tab X
36806 SUN AU format : X @tab X
36807 SUP raw PGS subtitles : X @tab X
36808 SVAG : @tab X
36809 @tab Audio format used in Konami PS2 games.
36810
36811 TDSC : @tab X
36812 Text files : @tab X
36813 THP : @tab X
36814 @tab Used on the Nintendo GameCube.
36815
36816 Tiertex Limited SEQ : @tab X
36817 @tab Tiertex .seq files used in the DOS CD-ROM version of the game Flashback.
36818
36819 True Audio : X @tab X
36820 VAG : @tab X
36821 @tab Audio format used in many Sony PS2 games.
36822
36823 VC-1 test bitstream : X @tab X
36824 Vidvox Hap : X @tab X
36825 Vivo : @tab X
36826 VPK : @tab X
36827 @tab Audio format used in Sony PS games.
36828
36829 WAV : X @tab X
36830 WavPack : X @tab X
36831 WebM : X @tab X
36832 Windows Televison (WTV) : X @tab X
36833 Wing Commander III movie : @tab X
36834 @tab Multimedia format used in Origin's Wing Commander III computer game.
36835
36836 Westwood Studios audio : X @tab X
36837 @tab Multimedia format used in Westwood Studios games.
36838
36839 Westwood Studios VQA : @tab X
36840 @tab Multimedia format used in Westwood Studios games.
36841
36842 Wideband Single-bit Data (WSD) : @tab X
36843 WVE : @tab X
36844 XMV : @tab X
36845 @tab Microsoft video container used in Xbox games.
36846
36847 XVAG : @tab X
36848 @tab Audio format used on the PS3.
36849
36850 xWMA : @tab X
36851 @tab Microsoft audio container used by XAudio 2.
36852
36853 eXtended BINary text (XBIN) : @tab X
36854 YUV4MPEG pipe : X @tab X
36855 Psygnosis YOP : @tab X
36856
36857 "X" means that the feature in that column (encoding / decoding) is
36858 supported.
36859
36860 Image Formats
36861 FFmpeg can read and write images for each frame of a video sequence.
36862 The following image formats are supported:
36863
36864 Name : Encoding @tab Decoding @tab Comments
36865 .Y.U.V : X @tab X
36866 @tab one raw file per component
36867
36868 Alias PIX : X @tab X
36869 @tab Alias/Wavefront PIX image format
36870
36871 animated GIF : X @tab X
36872 APNG : X @tab X
36873 @tab Animated Portable Network Graphics
36874
36875 BMP : X @tab X
36876 @tab Microsoft BMP image
36877
36878 BRender PIX : @tab X
36879 @tab Argonaut BRender 3D engine image format.
36880
36881 CRI : @tab X
36882 @tab Cintel RAW
36883
36884 DPX : X @tab X
36885 @tab Digital Picture Exchange
36886
36887 EXR : @tab X
36888 @tab OpenEXR
36889
36890 FITS : X @tab X
36891 @tab Flexible Image Transport System
36892
36893 IMG : @tab X
36894 @tab GEM Raster image
36895
36896 JPEG : X @tab X
36897 @tab Progressive JPEG is not supported.
36898
36899 JPEG 2000 : X @tab X
36900 JPEG-LS : X @tab X
36901 LJPEG : X @tab
36902 @tab Lossless JPEG
36903
36904 MSP : @tab X
36905 @tab Microsoft Paint image
36906
36907 PAM : X @tab X
36908 @tab PAM is a PNM extension with alpha support.
36909
36910 PBM : X @tab X
36911 @tab Portable BitMap image
36912
36913 PCD : @tab X
36914 @tab PhotoCD
36915
36916 PCX : X @tab X
36917 @tab PC Paintbrush
36918
36919 PFM : X @tab X
36920 @tab Portable FloatMap image
36921
36922 PGM : X @tab X
36923 @tab Portable GrayMap image
36924
36925 PGMYUV : X @tab X
36926 @tab PGM with U and V components in YUV 4:2:0
36927
36928 PGX : @tab X
36929 @tab PGX file decoder
36930
36931 PHM : X @tab X
36932 @tab Portable HalfFloatMap image
36933
36934 PIC : @tab X
36935 @tab Pictor/PC Paint
36936
36937 PNG : X @tab X
36938 @tab Portable Network Graphics image
36939
36940 PPM : X @tab X
36941 @tab Portable PixelMap image
36942
36943 PSD : @tab X
36944 @tab Photoshop
36945
36946 PTX : @tab X
36947 @tab V.Flash PTX format
36948
36949 QOI : X @tab X
36950 @tab Quite OK Image format
36951
36952 SGI : X @tab X
36953 @tab SGI RGB image format
36954
36955 Sun Rasterfile : X @tab X
36956 @tab Sun RAS image format
36957
36958 TIFF : X @tab X
36959 @tab YUV, JPEG and some extension is not supported yet.
36960
36961 Truevision Targa : X @tab X
36962 @tab Targa (.TGA) image format
36963
36964 VBN : X @tab X
36965 @tab Vizrt Binary Image format
36966
36967 WebP : E @tab X
36968 @tab WebP image format, encoding supported through external library libwebp
36969
36970 XBM : X @tab X
36971 @tab X BitMap image format
36972
36973 XFace : X @tab X
36974 @tab X-Face image format
36975
36976 XPM : @tab X
36977 @tab X PixMap image format
36978
36979 XWD : X @tab X
36980 @tab X Window Dump image format
36981
36982 "X" means that the feature in that column (encoding / decoding) is
36983 supported.
36984
36985 "E" means that support is provided through an external library.
36986
36987 Video Codecs
36988 Name : Encoding @tab Decoding @tab Comments
36989 4X Movie : @tab X
36990 @tab Used in certain computer games.
36991
36992 8088flex TMV : @tab X
36993 A64 multicolor : X @tab
36994 @tab Creates video suitable to be played on a commodore 64 (multicolor mode).
36995
36996 Amazing Studio PAF Video : @tab X
36997 American Laser Games MM : @tab X
36998 @tab Used in games like Mad Dog McCree.
36999
37000 Amuse Graphics Movie : @tab X
37001 AMV Video : X @tab X
37002 @tab Used in Chinese MP3 players.
37003
37004 ANSI/ASCII art : @tab X
37005 Apple Intermediate Codec : @tab X
37006 Apple MJPEG-B : @tab X
37007 Apple Pixlet : @tab X
37008 Apple ProRes : X @tab X
37009 @tab fourcc: apch,apcn,apcs,apco,ap4h,ap4x
37010
37011 Apple QuickDraw : @tab X
37012 @tab fourcc: qdrw
37013
37014 Argonaut Video : @tab X
37015 @tab Used in some Argonaut games.
37016
37017 Asus v1 : X @tab X
37018 @tab fourcc: ASV1
37019
37020 Asus v2 : X @tab X
37021 @tab fourcc: ASV2
37022
37023 ATI VCR1 : @tab X
37024 @tab fourcc: VCR1
37025
37026 ATI VCR2 : @tab X
37027 @tab fourcc: VCR2
37028
37029 Auravision Aura : @tab X
37030 Auravision Aura 2 : @tab X
37031 Autodesk Animator Flic video : @tab X
37032 Autodesk RLE : @tab X
37033 @tab fourcc: AASC
37034
37035 AV1 : E @tab E
37036 @tab Supported through external libraries libaom, libdav1d, librav1e and libsvtav1
37037
37038 Avid 1:1 10-bit RGB Packer : X @tab X
37039 @tab fourcc: AVrp
37040
37041 AVS (Audio Video Standard) video : @tab X
37042 @tab Video encoding used by the Creature Shock game.
37043
37044 AVS2-P2/IEEE1857.4 : E @tab E
37045 @tab Supported through external libraries libxavs2 and libdavs2
37046
37047 AVS3-P2/IEEE1857.10 : @tab E
37048 @tab Supported through external library libuavs3d
37049
37050 AYUV : X @tab X
37051 @tab Microsoft uncompressed packed 4:4:4:4
37052
37053 Beam Software VB : @tab X
37054 Bethesda VID video : @tab X
37055 @tab Used in some games from Bethesda Softworks.
37056
37057 Bink Video : @tab X
37058 BitJazz SheerVideo : @tab X
37059 Bitmap Brothers JV video : @tab X
37060 y41p Brooktree uncompressed 4:1:1 12-bit : X @tab X
37061 Brooktree ProSumer Video : @tab X
37062 @tab fourcc: BT20
37063
37064 Brute Force & Ignorance : @tab X
37065 @tab Used in the game Flash Traffic: City of Angels.
37066
37067 C93 video : @tab X
37068 @tab Codec used in Cyberia game.
37069
37070 CamStudio : @tab X
37071 @tab fourcc: CSCD
37072
37073 CD+G : @tab X
37074 @tab Video codec for CD+G karaoke disks
37075
37076 CDXL : @tab X
37077 @tab Amiga CD video codec
37078
37079 Chinese AVS video : E @tab X
37080 @tab AVS1-P2, JiZhun profile, encoding through external library libxavs
37081
37082 Delphine Software International CIN video : @tab X
37083 @tab Codec used in Delphine Software International games.
37084
37085 Discworld II BMV Video : @tab X
37086 CineForm HD : X @tab X
37087 Canopus HQ : @tab X
37088 Canopus HQA : @tab X
37089 Canopus HQX : @tab X
37090 Canopus Lossless Codec : @tab X
37091 CDToons : @tab X
37092 @tab Codec used in various Broderbund games.
37093
37094 Cinepak : @tab X
37095 Cirrus Logic AccuPak : X @tab X
37096 @tab fourcc: CLJR
37097
37098 CPiA Video Format : @tab X
37099 Creative YUV (CYUV) : @tab X
37100 DFA : @tab X
37101 @tab Codec used in Chronomaster game.
37102
37103 Dirac : E @tab X
37104 @tab supported though the native vc2 (Dirac Pro) encoder
37105
37106 Deluxe Paint Animation : @tab X
37107 DNxHD : X @tab X
37108 @tab aka SMPTE VC3
37109
37110 Duck TrueMotion 1.0 : @tab X
37111 @tab fourcc: DUCK
37112
37113 Duck TrueMotion 2.0 : @tab X
37114 @tab fourcc: TM20
37115
37116 Duck TrueMotion 2.0 RT : @tab X
37117 @tab fourcc: TR20
37118
37119 DV (Digital Video) : X @tab X
37120 Dxtory capture format : @tab X
37121 Feeble Files/ScummVM DXA : @tab X
37122 @tab Codec originally used in Feeble Files game.
37123
37124 Electronic Arts CMV video : @tab X
37125 @tab Used in NHL 95 game.
37126
37127 Electronic Arts Madcow video : @tab X
37128 Electronic Arts TGV video : @tab X
37129 Electronic Arts TGQ video : @tab X
37130 Electronic Arts TQI video : @tab X
37131 Escape 124 : @tab X
37132 Escape 130 : @tab X
37133 FFmpeg video codec #1 : X @tab X
37134 @tab lossless codec (fourcc: FFV1)
37135
37136 Flash Screen Video v1 : X @tab X
37137 @tab fourcc: FSV1
37138
37139 Flash Screen Video v2 : X @tab X
37140 Flash Video (FLV) : X @tab X
37141 @tab Sorenson H.263 used in Flash
37142
37143 FM Screen Capture Codec : @tab X
37144 Forward Uncompressed : @tab X
37145 Fraps : @tab X
37146 Go2Meeting : @tab X
37147 @tab fourcc: G2M2, G2M3
37148
37149 Go2Webinar : @tab X
37150 @tab fourcc: G2M4
37151
37152 Gremlin Digital Video : @tab X
37153 H.261 : X @tab X
37154 H.263 / H.263-1996 : X @tab X
37155 H.263+ / H.263-1998 / H.263 version 2 : X @tab X
37156 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 : E @tab X
37157 @tab encoding supported through external library libx264 and OpenH264
37158
37159 HEVC : X @tab X
37160 @tab encoding supported through external library libx265 and libkvazaar
37161
37162 HNM version 4 : @tab X
37163 HuffYUV : X @tab X
37164 HuffYUV FFmpeg variant : X @tab X
37165 IBM Ultimotion : @tab X
37166 @tab fourcc: ULTI
37167
37168 id Cinematic video : @tab X
37169 @tab Used in Quake II.
37170
37171 id RoQ video : X @tab X
37172 @tab Used in Quake III, Jedi Knight 2, other computer games.
37173
37174 IFF ILBM : @tab X
37175 @tab IFF interleaved bitmap
37176
37177 IFF ByteRun1 : @tab X
37178 @tab IFF run length encoded bitmap
37179
37180 Infinity IMM4 : @tab X
37181 Intel H.263 : @tab X
37182 Intel Indeo 2 : @tab X
37183 Intel Indeo 3 : @tab X
37184 Intel Indeo 4 : @tab X
37185 Intel Indeo 5 : @tab X
37186 Interplay C93 : @tab X
37187 @tab Used in the game Cyberia from Interplay.
37188
37189 Interplay MVE video : @tab X
37190 @tab Used in Interplay .MVE files.
37191
37192 J2K : X @tab X
37193 Karl Morton's video codec : @tab X
37194 @tab Codec used in Worms games.
37195
37196 Kega Game Video (KGV1) : @tab X
37197 @tab Kega emulator screen capture codec.
37198
37199 Lagarith : @tab X
37200 LCL (LossLess Codec Library) MSZH : @tab X
37201 LCL (LossLess Codec Library) ZLIB : E @tab E
37202 LOCO : @tab X
37203 LucasArts SANM/Smush : @tab X
37204 @tab Used in LucasArts games / SMUSH animations.
37205
37206 lossless MJPEG : X @tab X
37207 MagicYUV Video : X @tab X
37208 Mandsoft Screen Capture Codec : @tab X
37209 Microsoft ATC Screen : @tab X
37210 @tab Also known as Microsoft Screen 3.
37211
37212 Microsoft Expression Encoder Screen : @tab X
37213 @tab Also known as Microsoft Titanium Screen 2.
37214
37215 Microsoft RLE : @tab X
37216 Microsoft Screen 1 : @tab X
37217 @tab Also known as Windows Media Video V7 Screen.
37218
37219 Microsoft Screen 2 : @tab X
37220 @tab Also known as Windows Media Video V9 Screen.
37221
37222 Microsoft Video 1 : @tab X
37223 Mimic : @tab X
37224 @tab Used in MSN Messenger Webcam streams.
37225
37226 Miro VideoXL : @tab X
37227 @tab fourcc: VIXL
37228
37229 MJPEG (Motion JPEG) : X @tab X
37230 Mobotix MxPEG video : @tab X
37231 Motion Pixels video : @tab X
37232 MPEG-1 video : X @tab X
37233 MPEG-2 video : X @tab X
37234 MPEG-4 part 2 : X @tab X
37235 @tab libxvidcore can be used alternatively for encoding.
37236
37237 MPEG-4 part 2 Microsoft variant version 1 : @tab X
37238 MPEG-4 part 2 Microsoft variant version 2 : X @tab X
37239 MPEG-4 part 2 Microsoft variant version 3 : X @tab X
37240 Newtek SpeedHQ : X @tab X
37241 Nintendo Gamecube THP video : @tab X
37242 NotchLC : @tab X
37243 NuppelVideo/RTjpeg : @tab X
37244 @tab Video encoding used in NuppelVideo files.
37245
37246 On2 VP3 : @tab X
37247 @tab still experimental
37248
37249 On2 VP4 : @tab X
37250 @tab fourcc: VP40
37251
37252 On2 VP5 : @tab X
37253 @tab fourcc: VP50
37254
37255 On2 VP6 : @tab X
37256 @tab fourcc: VP60,VP61,VP62
37257
37258 On2 VP7 : @tab X
37259 @tab fourcc: VP70,VP71
37260
37261 VP8 : E @tab X
37262 @tab fourcc: VP80, encoding supported through external library libvpx
37263
37264 VP9 : E @tab X
37265 @tab encoding supported through external library libvpx
37266
37267 Pinnacle TARGA CineWave YUV16 : @tab X
37268 @tab fourcc: Y216
37269
37270 Q-team QPEG : @tab X
37271 @tab fourccs: QPEG, Q1.0, Q1.1
37272
37273 QuickTime 8BPS video : @tab X
37274 QuickTime Animation (RLE) video : X @tab X
37275 @tab fourcc: 'rle '
37276
37277 QuickTime Graphics (SMC) : X @tab X
37278 @tab fourcc: 'smc '
37279
37280 QuickTime video (RPZA) : X @tab X
37281 @tab fourcc: rpza
37282
37283 R10K AJA Kona 10-bit RGB Codec : X @tab X
37284 R210 Quicktime Uncompressed RGB 10-bit : X @tab X
37285 Raw Video : X @tab X
37286 RealVideo 1.0 : X @tab X
37287 RealVideo 2.0 : X @tab X
37288 RealVideo 3.0 : @tab X
37289 @tab still far from ideal
37290
37291 RealVideo 4.0 : @tab X
37292 Renderware TXD (TeXture Dictionary) : @tab X
37293 @tab Texture dictionaries used by the Renderware Engine.
37294
37295 RL2 video : @tab X
37296 @tab used in some games by Entertainment Software Partners
37297
37298 ScreenPressor : @tab X
37299 Screenpresso : @tab X
37300 Screen Recorder Gold Codec : @tab X
37301 Sierra VMD video : @tab X
37302 @tab Used in Sierra VMD files.
37303
37304 Silicon Graphics Motion Video Compressor 1 (MVC1) : @tab X
37305 Silicon Graphics Motion Video Compressor 2 (MVC2) : @tab X
37306 Silicon Graphics RLE 8-bit video : @tab X
37307 Smacker video : @tab X
37308 @tab Video encoding used in Smacker.
37309
37310 SMPTE VC-1 : @tab X
37311 Snow : X @tab X
37312 @tab experimental wavelet codec (fourcc: SNOW)
37313
37314 Sony PlayStation MDEC (Motion DECoder) : @tab X
37315 Sorenson Vector Quantizer 1 : X @tab X
37316 @tab fourcc: SVQ1
37317
37318 Sorenson Vector Quantizer 3 : @tab X
37319 @tab fourcc: SVQ3
37320
37321 Sunplus JPEG (SP5X) : @tab X
37322 @tab fourcc: SP5X
37323
37324 TechSmith Screen Capture Codec : @tab X
37325 @tab fourcc: TSCC
37326
37327 TechSmith Screen Capture Codec 2 : @tab X
37328 @tab fourcc: TSC2
37329
37330 Theora : E @tab X
37331 @tab encoding supported through external library libtheora
37332
37333 Tiertex Limited SEQ video : @tab X
37334 @tab Codec used in DOS CD-ROM FlashBack game.
37335
37336 Ut Video : X @tab X
37337 v210 QuickTime uncompressed 4:2:2 10-bit : X @tab X
37338 v308 QuickTime uncompressed 4:4:4 : X @tab X
37339 v408 QuickTime uncompressed 4:4:4:4 : X @tab X
37340 v410 QuickTime uncompressed 4:4:4 10-bit : X @tab X
37341 VBLE Lossless Codec : @tab X
37342 VMware Screen Codec / VMware Video : @tab X
37343 @tab Codec used in videos captured by VMware.
37344
37345 Westwood Studios VQA (Vector Quantized Animation) video : @tab
37346 X
37347 Windows Media Image : @tab X
37348 Windows Media Video 7 : X @tab X
37349 Windows Media Video 8 : X @tab X
37350 Windows Media Video 9 : @tab X
37351 @tab not completely working
37352
37353 Wing Commander III / Xan : @tab X
37354 @tab Used in Wing Commander III .MVE files.
37355
37356 Wing Commander IV / Xan : @tab X
37357 @tab Used in Wing Commander IV.
37358
37359 Winnov WNV1 : @tab X
37360 WMV7 : X @tab X
37361 YAMAHA SMAF : X @tab X
37362 Psygnosis YOP Video : @tab X
37363 yuv4 : X @tab X
37364 @tab libquicktime uncompressed packed 4:2:0
37365
37366 ZeroCodec Lossless Video : @tab X
37367 ZLIB : X @tab X
37368 @tab part of LCL, encoder experimental
37369
37370 Zip Motion Blocks Video : X @tab X
37371 @tab Encoder works only in PAL8.
37372
37373 "X" means that the feature in that column (encoding / decoding) is
37374 supported.
37375
37376 "E" means that support is provided through an external library.
37377
37378 Audio Codecs
37379 Name : Encoding @tab Decoding @tab Comments
37380 8SVX exponential : @tab X
37381 8SVX fibonacci : @tab X
37382 AAC : EX @tab X
37383 @tab encoding supported through internal encoder and external library libfdk-aac
37384
37385 AAC+ : E @tab IX
37386 @tab encoding supported through external library libfdk-aac
37387
37388 AC-3 : IX @tab IX
37389 ACELP.KELVIN : @tab X
37390 ADPCM 4X Movie : @tab X
37391 ADPCM Yamaha AICA : @tab X
37392 ADPCM AmuseGraphics Movie : @tab X
37393 ADPCM Argonaut Games : X @tab X
37394 ADPCM CDROM XA : @tab X
37395 ADPCM Creative Technology : @tab X
37396 @tab 16 -E<gt> 4, 8 -E<gt> 4, 8 -E<gt> 3, 8 -E<gt> 2
37397
37398 ADPCM Electronic Arts : @tab X
37399 @tab Used in various EA titles.
37400
37401 ADPCM Electronic Arts Maxis CDROM XS : @tab X
37402 @tab Used in Sim City 3000.
37403
37404 ADPCM Electronic Arts R1 : @tab X
37405 ADPCM Electronic Arts R2 : @tab X
37406 ADPCM Electronic Arts R3 : @tab X
37407 ADPCM Electronic Arts XAS : @tab X
37408 ADPCM G.722 : X @tab X
37409 ADPCM G.726 : X @tab X
37410 ADPCM IMA Acorn Replay : @tab X
37411 ADPCM IMA AMV : X @tab X
37412 @tab Used in AMV files
37413
37414 ADPCM IMA Cunning Developments : @tab X
37415 ADPCM IMA Electronic Arts EACS : @tab X
37416 ADPCM IMA Electronic Arts SEAD : @tab X
37417 ADPCM IMA Funcom : @tab X
37418 ADPCM IMA High Voltage Software ALP : X @tab X
37419 ADPCM IMA QuickTime : X @tab X
37420 ADPCM IMA Simon & Schuster Interactive : X @tab X
37421 ADPCM IMA Ubisoft APM : X @tab X
37422 ADPCM IMA Loki SDL MJPEG : @tab X
37423 ADPCM IMA WAV : X @tab X
37424 ADPCM IMA Westwood : @tab X
37425 ADPCM ISS IMA : @tab X
37426 @tab Used in FunCom games.
37427
37428 ADPCM IMA Dialogic : @tab X
37429 ADPCM IMA Duck DK3 : @tab X
37430 @tab Used in some Sega Saturn console games.
37431
37432 ADPCM IMA Duck DK4 : @tab X
37433 @tab Used in some Sega Saturn console games.
37434
37435 ADPCM IMA Radical : @tab X
37436 ADPCM Microsoft : X @tab X
37437 ADPCM MS IMA : X @tab X
37438 ADPCM Nintendo Gamecube AFC : @tab X
37439 ADPCM Nintendo Gamecube DTK : @tab X
37440 ADPCM Nintendo THP : @tab X
37441 ADPCM Playstation : @tab X
37442 ADPCM QT IMA : X @tab X
37443 ADPCM SEGA CRI ADX : X @tab X
37444 @tab Used in Sega Dreamcast games.
37445
37446 ADPCM Shockwave Flash : X @tab X
37447 ADPCM Sound Blaster Pro 2-bit : @tab X
37448 ADPCM Sound Blaster Pro 2.6-bit : @tab X
37449 ADPCM Sound Blaster Pro 4-bit : @tab X
37450 ADPCM VIMA : @tab X
37451 @tab Used in LucasArts SMUSH animations.
37452
37453 ADPCM Westwood Studios IMA : X @tab X
37454 @tab Used in Westwood Studios games like Command and Conquer.
37455
37456 ADPCM Yamaha : X @tab X
37457 ADPCM Zork : @tab X
37458 AMR-NB : E @tab X
37459 @tab encoding supported through external library libopencore-amrnb
37460
37461 AMR-WB : E @tab X
37462 @tab encoding supported through external library libvo-amrwbenc
37463
37464 Amazing Studio PAF Audio : @tab X
37465 Apple lossless audio : X @tab X
37466 @tab QuickTime fourcc 'alac'
37467
37468 aptX : X @tab X
37469 @tab Used in Bluetooth A2DP
37470
37471 aptX HD : X @tab X
37472 @tab Used in Bluetooth A2DP
37473
37474 ATRAC1 : @tab X
37475 ATRAC3 : @tab X
37476 ATRAC3+ : @tab X
37477 ATRAC9 : @tab X
37478 Bink Audio : @tab X
37479 @tab Used in Bink and Smacker files in many games.
37480
37481 CELT : @tab E
37482 @tab decoding supported through external library libcelt
37483
37484 codec2 : E @tab E
37485 @tab en/decoding supported through external library libcodec2
37486
37487 CRI HCA : @tab X
37488 Delphine Software International CIN audio : @tab X
37489 @tab Codec used in Delphine Software International games.
37490
37491 DFPWM : X @tab X
37492 Digital Speech Standard - Standard Play mode (DSS SP) : @tab X
37493 Discworld II BMV Audio : @tab X
37494 COOK : @tab X
37495 @tab All versions except 5.1 are supported.
37496
37497 DCA (DTS Coherent Acoustics) : X @tab X
37498 @tab supported extensions: XCh, XXCH, X96, XBR, XLL, LBR (partially)
37499
37500 Dolby E : @tab X
37501 DPCM Gremlin : @tab X
37502 DPCM id RoQ : X @tab X
37503 @tab Used in Quake III, Jedi Knight 2 and other computer games.
37504
37505 DPCM Interplay : @tab X
37506 @tab Used in various Interplay computer games.
37507
37508 DPCM Squareroot-Delta-Exact : @tab X
37509 @tab Used in various games.
37510
37511 DPCM Sierra Online : @tab X
37512 @tab Used in Sierra Online game audio files.
37513
37514 DPCM Sol : @tab X
37515 DPCM Xan : @tab X
37516 @tab Used in Origin's Wing Commander IV AVI files.
37517
37518 DPCM Xilam DERF : @tab X
37519 DSD (Direct Stream Digital), least significant bit first : @tab X
37520 DSD (Direct Stream Digital), most significant bit first : @tab X
37521 DSD (Direct Stream Digital), least significant bit first, planar :
37522 @tab X
37523 DSD (Direct Stream Digital), most significant bit first, planar :
37524 @tab X
37525 DSP Group TrueSpeech : @tab X
37526 DST (Direct Stream Transfer) : @tab X
37527 DV audio : @tab X
37528 Enhanced AC-3 : X @tab X
37529 EVRC (Enhanced Variable Rate Codec) : @tab X
37530 FLAC (Free Lossless Audio Codec) : X @tab IX
37531 G.723.1 : X @tab X
37532 G.729 : @tab X
37533 GSM : E @tab X
37534 @tab encoding supported through external library libgsm
37535
37536 GSM Microsoft variant : E @tab X
37537 @tab encoding supported through external library libgsm
37538
37539 IAC (Indeo Audio Coder) : @tab X
37540 iLBC (Internet Low Bitrate Codec) : E @tab EX
37541 @tab encoding and decoding supported through external library libilbc
37542
37543 IMC (Intel Music Coder) : @tab X
37544 Interplay ACM : @tab X
37545 MACE (Macintosh Audio Compression/Expansion) 3:1 : @tab X
37546 MACE (Macintosh Audio Compression/Expansion) 6:1 : @tab X
37547 MLP (Meridian Lossless Packing) : X @tab X
37548 @tab Used in DVD-Audio discs.
37549
37550 Monkey's Audio : @tab X
37551 MP1 (MPEG audio layer 1) : @tab IX
37552 MP2 (MPEG audio layer 2) : IX @tab IX
37553 @tab encoding supported also through external library TwoLAME
37554
37555 MP3 (MPEG audio layer 3) : E @tab IX
37556 @tab encoding supported through external library LAME, ADU MP3 and MP3onMP4 also supported
37557
37558 MPEG-4 Audio Lossless Coding (ALS) : @tab X
37559 Musepack SV7 : @tab X
37560 Musepack SV8 : @tab X
37561 Nellymoser Asao : X @tab X
37562 On2 AVC (Audio for Video Codec) : @tab X
37563 Opus : E @tab X
37564 @tab encoding supported through external library libopus
37565
37566 PCM A-law : X @tab X
37567 PCM mu-law : X @tab X
37568 PCM Archimedes VIDC : X @tab X
37569 PCM signed 8-bit planar : X @tab X
37570 PCM signed 16-bit big-endian planar : X @tab X
37571 PCM signed 16-bit little-endian planar : X @tab X
37572 PCM signed 24-bit little-endian planar : X @tab X
37573 PCM signed 32-bit little-endian planar : X @tab X
37574 PCM 32-bit floating point big-endian : X @tab X
37575 PCM 32-bit floating point little-endian : X @tab X
37576 PCM 64-bit floating point big-endian : X @tab X
37577 PCM 64-bit floating point little-endian : X @tab X
37578 PCM D-Cinema audio signed 24-bit : X @tab X
37579 PCM signed 8-bit : X @tab X
37580 PCM signed 16-bit big-endian : X @tab X
37581 PCM signed 16-bit little-endian : X @tab X
37582 PCM signed 24-bit big-endian : X @tab X
37583 PCM signed 24-bit little-endian : X @tab X
37584 PCM signed 32-bit big-endian : X @tab X
37585 PCM signed 32-bit little-endian : X @tab X
37586 PCM signed 16/20/24-bit big-endian in MPEG-TS : @tab X
37587 PCM unsigned 8-bit : X @tab X
37588 PCM unsigned 16-bit big-endian : X @tab X
37589 PCM unsigned 16-bit little-endian : X @tab X
37590 PCM unsigned 24-bit big-endian : X @tab X
37591 PCM unsigned 24-bit little-endian : X @tab X
37592 PCM unsigned 32-bit big-endian : X @tab X
37593 PCM unsigned 32-bit little-endian : X @tab X
37594 QCELP / PureVoice : @tab X
37595 QDesign Music Codec 1 : @tab X
37596 QDesign Music Codec 2 : @tab X
37597 @tab There are still some distortions.
37598
37599 RealAudio 1.0 (14.4K) : X @tab X
37600 @tab Real 14400 bit/s codec
37601
37602 RealAudio 2.0 (28.8K) : @tab X
37603 @tab Real 28800 bit/s codec
37604
37605 RealAudio 3.0 (dnet) : IX @tab X
37606 @tab Real low bitrate AC-3 codec
37607
37608 RealAudio Lossless : @tab X
37609 RealAudio SIPR / ACELP.NET : @tab X
37610 SBC (low-complexity subband codec) : X @tab X
37611 @tab Used in Bluetooth A2DP
37612
37613 Shorten : @tab X
37614 Sierra VMD audio : @tab X
37615 @tab Used in Sierra VMD files.
37616
37617 Smacker audio : @tab X
37618 SMPTE 302M AES3 audio : X @tab X
37619 Sonic : X @tab X
37620 @tab experimental codec
37621
37622 Sonic lossless : X @tab X
37623 @tab experimental codec
37624
37625 Speex : E @tab EX
37626 @tab supported through external library libspeex
37627
37628 TAK (Tom's lossless Audio Kompressor) : @tab X
37629 True Audio (TTA) : X @tab X
37630 TrueHD : X @tab X
37631 @tab Used in HD-DVD and Blu-Ray discs.
37632
37633 TwinVQ (VQF flavor) : @tab X
37634 VIMA : @tab X
37635 @tab Used in LucasArts SMUSH animations.
37636
37637 Vorbis : E @tab X
37638 @tab A native but very primitive encoder exists.
37639
37640 Voxware MetaSound : @tab X
37641 WavPack : X @tab X
37642 Westwood Audio (SND1) : @tab X
37643 Windows Media Audio 1 : X @tab X
37644 Windows Media Audio 2 : X @tab X
37645 Windows Media Audio Lossless : @tab X
37646 Windows Media Audio Pro : @tab X
37647 Windows Media Audio Voice : @tab X
37648 Xbox Media Audio 1 : @tab X
37649 Xbox Media Audio 2 : @tab X
37650
37651 "X" means that the feature in that column (encoding / decoding) is
37652 supported.
37653
37654 "E" means that support is provided through an external library.
37655
37656 "I" means that an integer-only version is available, too (ensures high
37657 performance on systems without hardware floating point support).
37658
37659 Subtitle Formats
37660 Name : Muxing @tab Demuxing @tab Encoding @tab Decoding
37661 3GPP Timed Text : @tab @tab X @tab X
37662 AQTitle : @tab X @tab @tab X
37663 DVB : X @tab X @tab X @tab X
37664 DVB teletext : @tab X @tab @tab E
37665 DVD : X @tab X @tab X @tab X
37666 JACOsub : X @tab X @tab @tab X
37667 MicroDVD : X @tab X @tab @tab X
37668 MPL2 : @tab X @tab @tab X
37669 MPsub (MPlayer) : @tab X @tab @tab X
37670 PGS : @tab @tab @tab X
37671 PJS (Phoenix) : @tab X @tab @tab X
37672 RealText : @tab X @tab @tab X
37673 SAMI : @tab X @tab @tab X
37674 Spruce format (STL) : @tab X @tab @tab X
37675 SSA/ASS : X @tab X @tab X @tab X
37676 SubRip (SRT) : X @tab X @tab X @tab X
37677 SubViewer v1 : @tab X @tab @tab X
37678 SubViewer : @tab X @tab @tab X
37679 TED Talks captions : @tab X @tab @tab X
37680 TTML : X @tab @tab X @tab
37681 VobSub (IDX+SUB) : @tab X @tab @tab X
37682 VPlayer : @tab X @tab @tab X
37683 WebVTT : X @tab X @tab X @tab X
37684 XSUB : @tab @tab X @tab X
37685
37686 "X" means that the feature is supported.
37687
37688 "E" means that support is provided through an external library.
37689
37690 Network Protocols
37691 Name : Support
37692 AMQP : E
37693 file : X
37694 FTP : X
37695 Gopher : X
37696 Gophers : X
37697 HLS : X
37698 HTTP : X
37699 HTTPS : X
37700 Icecast : X
37701 MMSH : X
37702 MMST : X
37703 pipe : X
37704 Pro-MPEG FEC : X
37705 RTMP : X
37706 RTMPE : X
37707 RTMPS : X
37708 RTMPT : X
37709 RTMPTE : X
37710 RTMPTS : X
37711 RTP : X
37712 SAMBA : E
37713 SCTP : X
37714 SFTP : E
37715 TCP : X
37716 TLS : X
37717 UDP : X
37718 ZMQ : E
37719
37720 "X" means that the protocol is supported.
37721
37722 "E" means that support is provided through an external library.
37723
37724 Input/Output Devices
37725 Name : Input @tab Output
37726 ALSA : X @tab X
37727 BKTR : X @tab
37728 caca : @tab X
37729 DV1394 : X @tab
37730 Lavfi virtual device : X @tab
37731 Linux framebuffer : X @tab X
37732 JACK : X @tab
37733 LIBCDIO : X
37734 LIBDC1394 : X @tab
37735 OpenAL : X
37736 OpenGL : @tab X
37737 OSS : X @tab X
37738 PulseAudio : X @tab X
37739 SDL : @tab X
37740 Video4Linux2 : X @tab X
37741 VfW capture : X @tab
37742 X11 grabbing : X @tab
37743 Win32 grabbing : X @tab
37744
37745 "X" means that input/output is supported.
37746
37747 Timecode
37748 Codec/format : Read @tab Write
37749 AVI : X @tab X
37750 DV : X @tab X
37751 GXF : X @tab X
37752 MOV : X @tab X
37753 MPEG1/2 : X @tab X
37754 MXF : X @tab X
37755
37757 ffprobe(1), ffmpeg(1), ffplay(1), ffmpeg-utils(1), ffmpeg-scaler(1),
37758 ffmpeg-resampler(1), ffmpeg-codecs(1), ffmpeg-bitstream-filters(1),
37759 ffmpeg-formats(1), ffmpeg-devices(1), ffmpeg-protocols(1),
37760 ffmpeg-filters(1)
37761
37763 The FFmpeg developers.
37764
37765 For details about the authorship, see the Git history of the project
37766 (git://source.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
37767 the FFmpeg source directory, or browsing the online repository at
37768 <http://source.ffmpeg.org>.
37769
37770 Maintainers for the specific components are listed in the file
37771 MAINTAINERS in the source code tree.
37772
37773
37774
37775 FFPROBE-ALL(1)