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 7.1(top)
1824 FL+FR+FC+LFE+BL+BR+TFL+TFR
1825
1826 octagonal
1827 FL+FR+FC+BL+BR+BC+SL+SR
1828
1829 cube
1830 FL+FR+BL+BR+TFL+TFR+TBL+TBR
1831
1832 hexadecagonal
1833 FL+FR+FC+BL+BR+BC+SL+SR+WL+WR+TBL+TBR+TBC+TFC+TFL+TFR
1834
1835 downmix
1836 DL+DR
1837
1838 22.2
1839 FL+FR+FC+LFE+BL+BR+FLC+FRC+BC+SL+SR+TC+TFL+TFC+TFR+TBL+TBC+TBR+LFE2+TSL+TSR+BFC+BFL+BFR
1840
1841 A custom channel layout can be specified as a sequence of terms,
1842 separated by '+'. Each term can be:
1843
1844 • the name of a single channel (e.g. FL, FR, FC, LFE, etc.), each
1845 optionally containing a custom name after a '@', (e.g. FL@Left,
1846 FR@Right, FC@Center, LFE@Low_Frequency, etc.)
1847
1848 A standard channel layout can be specified by the following:
1849
1850 • the name of a single channel (e.g. FL, FR, FC, LFE, etc.)
1851
1852 • the name of a standard channel layout (e.g. mono, stereo, 4.0,
1853 quad, 5.0, etc.)
1854
1855 • a number of channels, in decimal, followed by 'c', yielding the
1856 default channel layout for that number of channels (see the
1857 function "av_channel_layout_default"). Note that not all channel
1858 counts have a default layout.
1859
1860 • a number of channels, in decimal, followed by 'C', yielding an
1861 unknown channel layout with the specified number of channels. Note
1862 that not all channel layout specification strings support unknown
1863 channel layouts.
1864
1865 • a channel layout mask, in hexadecimal starting with "0x" (see the
1866 "AV_CH_*" macros in libavutil/channel_layout.h.
1867
1868 Before libavutil version 53 the trailing character "c" to specify a
1869 number of channels was optional, but now it is required, while a
1870 channel layout mask can also be specified as a decimal number (if and
1871 only if not followed by "c" or "C").
1872
1873 See also the function "av_channel_layout_from_string" defined in
1874 libavutil/channel_layout.h.
1875
1877 When evaluating an arithmetic expression, FFmpeg uses an internal
1878 formula evaluator, implemented through the libavutil/eval.h interface.
1879
1880 An expression may contain unary, binary operators, constants, and
1881 functions.
1882
1883 Two expressions expr1 and expr2 can be combined to form another
1884 expression "expr1;expr2". expr1 and expr2 are evaluated in turn, and
1885 the new expression evaluates to the value of expr2.
1886
1887 The following binary operators are available: "+", "-", "*", "/", "^".
1888
1889 The following unary operators are available: "+", "-".
1890
1891 The following functions are available:
1892
1893 abs(x)
1894 Compute absolute value of x.
1895
1896 acos(x)
1897 Compute arccosine of x.
1898
1899 asin(x)
1900 Compute arcsine of x.
1901
1902 atan(x)
1903 Compute arctangent of x.
1904
1905 atan2(x, y)
1906 Compute principal value of the arc tangent of y/x.
1907
1908 between(x, min, max)
1909 Return 1 if x is greater than or equal to min and lesser than or
1910 equal to max, 0 otherwise.
1911
1912 bitand(x, y)
1913 bitor(x, y)
1914 Compute bitwise and/or operation on x and y.
1915
1916 The results of the evaluation of x and y are converted to integers
1917 before executing the bitwise operation.
1918
1919 Note that both the conversion to integer and the conversion back to
1920 floating point can lose precision. Beware of unexpected results for
1921 large numbers (usually 2^53 and larger).
1922
1923 ceil(expr)
1924 Round the value of expression expr upwards to the nearest integer.
1925 For example, "ceil(1.5)" is "2.0".
1926
1927 clip(x, min, max)
1928 Return the value of x clipped between min and max.
1929
1930 cos(x)
1931 Compute cosine of x.
1932
1933 cosh(x)
1934 Compute hyperbolic cosine of x.
1935
1936 eq(x, y)
1937 Return 1 if x and y are equivalent, 0 otherwise.
1938
1939 exp(x)
1940 Compute exponential of x (with base "e", the Euler's number).
1941
1942 floor(expr)
1943 Round the value of expression expr downwards to the nearest
1944 integer. For example, "floor(-1.5)" is "-2.0".
1945
1946 gauss(x)
1947 Compute Gauss function of x, corresponding to "exp(-x*x/2) /
1948 sqrt(2*PI)".
1949
1950 gcd(x, y)
1951 Return the greatest common divisor of x and y. If both x and y are
1952 0 or either or both are less than zero then behavior is undefined.
1953
1954 gt(x, y)
1955 Return 1 if x is greater than y, 0 otherwise.
1956
1957 gte(x, y)
1958 Return 1 if x is greater than or equal to y, 0 otherwise.
1959
1960 hypot(x, y)
1961 This function is similar to the C function with the same name; it
1962 returns "sqrt(x*x + y*y)", the length of the hypotenuse of a right
1963 triangle with sides of length x and y, or the distance of the point
1964 (x, y) from the origin.
1965
1966 if(x, y)
1967 Evaluate x, and if the result is non-zero return the result of the
1968 evaluation of y, return 0 otherwise.
1969
1970 if(x, y, z)
1971 Evaluate x, and if the result is non-zero return the evaluation
1972 result of y, otherwise the evaluation result of z.
1973
1974 ifnot(x, y)
1975 Evaluate x, and if the result is zero return the result of the
1976 evaluation of y, return 0 otherwise.
1977
1978 ifnot(x, y, z)
1979 Evaluate x, and if the result is zero return the evaluation result
1980 of y, otherwise the evaluation result of z.
1981
1982 isinf(x)
1983 Return 1.0 if x is +/-INFINITY, 0.0 otherwise.
1984
1985 isnan(x)
1986 Return 1.0 if x is NAN, 0.0 otherwise.
1987
1988 ld(var)
1989 Load the value of the internal variable with number var, which was
1990 previously stored with st(var, expr). The function returns the
1991 loaded value.
1992
1993 lerp(x, y, z)
1994 Return linear interpolation between x and y by amount of z.
1995
1996 log(x)
1997 Compute natural logarithm of x.
1998
1999 lt(x, y)
2000 Return 1 if x is lesser than y, 0 otherwise.
2001
2002 lte(x, y)
2003 Return 1 if x is lesser than or equal to y, 0 otherwise.
2004
2005 max(x, y)
2006 Return the maximum between x and y.
2007
2008 min(x, y)
2009 Return the minimum between x and y.
2010
2011 mod(x, y)
2012 Compute the remainder of division of x by y.
2013
2014 not(expr)
2015 Return 1.0 if expr is zero, 0.0 otherwise.
2016
2017 pow(x, y)
2018 Compute the power of x elevated y, it is equivalent to "(x)^(y)".
2019
2020 print(t)
2021 print(t, l)
2022 Print the value of expression t with loglevel l. If l is not
2023 specified then a default log level is used. Returns the value of
2024 the expression printed.
2025
2026 Prints t with loglevel l
2027
2028 random(x)
2029 Return a pseudo random value between 0.0 and 1.0. x is the index of
2030 the internal variable which will be used to save the seed/state.
2031
2032 root(expr, max)
2033 Find an input value for which the function represented by expr with
2034 argument ld(0) is 0 in the interval 0..max.
2035
2036 The expression in expr must denote a continuous function or the
2037 result is undefined.
2038
2039 ld(0) is used to represent the function input value, which means
2040 that the given expression will be evaluated multiple times with
2041 various input values that the expression can access through ld(0).
2042 When the expression evaluates to 0 then the corresponding input
2043 value will be returned.
2044
2045 round(expr)
2046 Round the value of expression expr to the nearest integer. For
2047 example, "round(1.5)" is "2.0".
2048
2049 sgn(x)
2050 Compute sign of x.
2051
2052 sin(x)
2053 Compute sine of x.
2054
2055 sinh(x)
2056 Compute hyperbolic sine of x.
2057
2058 sqrt(expr)
2059 Compute the square root of expr. This is equivalent to "(expr)^.5".
2060
2061 squish(x)
2062 Compute expression "1/(1 + exp(4*x))".
2063
2064 st(var, expr)
2065 Store the value of the expression expr in an internal variable. var
2066 specifies the number of the variable where to store the value, and
2067 it is a value ranging from 0 to 9. The function returns the value
2068 stored in the internal variable. Note, Variables are currently not
2069 shared between expressions.
2070
2071 tan(x)
2072 Compute tangent of x.
2073
2074 tanh(x)
2075 Compute hyperbolic tangent of x.
2076
2077 taylor(expr, x)
2078 taylor(expr, x, id)
2079 Evaluate a Taylor series at x, given an expression representing the
2080 ld(id)-th derivative of a function at 0.
2081
2082 When the series does not converge the result is undefined.
2083
2084 ld(id) is used to represent the derivative order in expr, which
2085 means that the given expression will be evaluated multiple times
2086 with various input values that the expression can access through
2087 ld(id). If id is not specified then 0 is assumed.
2088
2089 Note, when you have the derivatives at y instead of 0,
2090 "taylor(expr, x-y)" can be used.
2091
2092 time(0)
2093 Return the current (wallclock) time in seconds.
2094
2095 trunc(expr)
2096 Round the value of expression expr towards zero to the nearest
2097 integer. For example, "trunc(-1.5)" is "-1.0".
2098
2099 while(cond, expr)
2100 Evaluate expression expr while the expression cond is non-zero, and
2101 returns the value of the last expr evaluation, or NAN if cond was
2102 always false.
2103
2104 The following constants are available:
2105
2106 PI area of the unit disc, approximately 3.14
2107
2108 E exp(1) (Euler's number), approximately 2.718
2109
2110 PHI golden ratio (1+sqrt(5))/2, approximately 1.618
2111
2112 Assuming that an expression is considered "true" if it has a non-zero
2113 value, note that:
2114
2115 "*" works like AND
2116
2117 "+" works like OR
2118
2119 For example the construct:
2120
2121 if (A AND B) then C
2122
2123 is equivalent to:
2124
2125 if(A*B, C)
2126
2127 In your C code, you can extend the list of unary and binary functions,
2128 and define recognized constants, so that they are available for your
2129 expressions.
2130
2131 The evaluator also recognizes the International System unit prefixes.
2132 If 'i' is appended after the prefix, binary prefixes are used, which
2133 are based on powers of 1024 instead of powers of 1000. The 'B' postfix
2134 multiplies the value by 8, and can be appended after a unit prefix or
2135 used alone. This allows using for example 'KB', 'MiB', 'G' and 'B' as
2136 number postfix.
2137
2138 The list of available International System prefixes follows, with
2139 indication of the corresponding powers of 10 and of 2.
2140
2141 y 10^-24 / 2^-80
2142
2143 z 10^-21 / 2^-70
2144
2145 a 10^-18 / 2^-60
2146
2147 f 10^-15 / 2^-50
2148
2149 p 10^-12 / 2^-40
2150
2151 n 10^-9 / 2^-30
2152
2153 u 10^-6 / 2^-20
2154
2155 m 10^-3 / 2^-10
2156
2157 c 10^-2
2158
2159 d 10^-1
2160
2161 h 10^2
2162
2163 k 10^3 / 2^10
2164
2165 K 10^3 / 2^10
2166
2167 M 10^6 / 2^20
2168
2169 G 10^9 / 2^30
2170
2171 T 10^12 / 2^40
2172
2173 P 10^15 / 2^50
2174
2175 E 10^18 / 2^60
2176
2177 Z 10^21 / 2^70
2178
2179 Y 10^24 / 2^80
2180
2182 libavcodec provides some generic global options, which can be set on
2183 all the encoders and decoders. In addition each codec may support so-
2184 called private options, which are specific for a given codec.
2185
2186 Sometimes, a global option may only affect a specific kind of codec,
2187 and may be nonsensical or ignored by another, so you need to be aware
2188 of the meaning of the specified options. Also some options are meant
2189 only for decoding or encoding.
2190
2191 Options may be set by specifying -option value in the FFmpeg tools, or
2192 by setting the value explicitly in the "AVCodecContext" options or
2193 using the libavutil/opt.h API for programmatic use.
2194
2195 The list of supported options follow:
2196
2197 b integer (encoding,audio,video)
2198 Set bitrate in bits/s. Default value is 200K.
2199
2200 ab integer (encoding,audio)
2201 Set audio bitrate (in bits/s). Default value is 128K.
2202
2203 bt integer (encoding,video)
2204 Set video bitrate tolerance (in bits/s). In 1-pass mode, bitrate
2205 tolerance specifies how far ratecontrol is willing to deviate from
2206 the target average bitrate value. This is not related to min/max
2207 bitrate. Lowering tolerance too much has an adverse effect on
2208 quality.
2209
2210 flags flags (decoding/encoding,audio,video,subtitles)
2211 Set generic flags.
2212
2213 Possible values:
2214
2215 mv4 Use four motion vector by macroblock (mpeg4).
2216
2217 qpel
2218 Use 1/4 pel motion compensation.
2219
2220 loop
2221 Use loop filter.
2222
2223 qscale
2224 Use fixed qscale.
2225
2226 pass1
2227 Use internal 2pass ratecontrol in first pass mode.
2228
2229 pass2
2230 Use internal 2pass ratecontrol in second pass mode.
2231
2232 gray
2233 Only decode/encode grayscale.
2234
2235 psnr
2236 Set error[?] variables during encoding.
2237
2238 truncated
2239 Input bitstream might be randomly truncated.
2240
2241 drop_changed
2242 Don't output frames whose parameters differ from first decoded
2243 frame in stream. Error AVERROR_INPUT_CHANGED is returned when
2244 a frame is dropped.
2245
2246 ildct
2247 Use interlaced DCT.
2248
2249 low_delay
2250 Force low delay.
2251
2252 global_header
2253 Place global headers in extradata instead of every keyframe.
2254
2255 bitexact
2256 Only write platform-, build- and time-independent data. (except
2257 (I)DCT). This ensures that file and data checksums are
2258 reproducible and match between platforms. Its primary use is
2259 for regression testing.
2260
2261 aic Apply H263 advanced intra coding / mpeg4 ac prediction.
2262
2263 ilme
2264 Apply interlaced motion estimation.
2265
2266 cgop
2267 Use closed gop.
2268
2269 output_corrupt
2270 Output even potentially corrupted frames.
2271
2272 time_base rational number
2273 Set codec time base.
2274
2275 It is the fundamental unit of time (in seconds) in terms of which
2276 frame timestamps are represented. For fixed-fps content, timebase
2277 should be "1 / frame_rate" and timestamp increments should be
2278 identically 1.
2279
2280 g integer (encoding,video)
2281 Set the group of picture (GOP) size. Default value is 12.
2282
2283 ar integer (decoding/encoding,audio)
2284 Set audio sampling rate (in Hz).
2285
2286 ac integer (decoding/encoding,audio)
2287 Set number of audio channels.
2288
2289 cutoff integer (encoding,audio)
2290 Set cutoff bandwidth. (Supported only by selected encoders, see
2291 their respective documentation sections.)
2292
2293 frame_size integer (encoding,audio)
2294 Set audio frame size.
2295
2296 Each submitted frame except the last must contain exactly
2297 frame_size samples per channel. May be 0 when the codec has
2298 CODEC_CAP_VARIABLE_FRAME_SIZE set, in that case the frame size is
2299 not restricted. It is set by some decoders to indicate constant
2300 frame size.
2301
2302 frame_number integer
2303 Set the frame number.
2304
2305 delay integer
2306 qcomp float (encoding,video)
2307 Set video quantizer scale compression (VBR). It is used as a
2308 constant in the ratecontrol equation. Recommended range for default
2309 rc_eq: 0.0-1.0.
2310
2311 qblur float (encoding,video)
2312 Set video quantizer scale blur (VBR).
2313
2314 qmin integer (encoding,video)
2315 Set min video quantizer scale (VBR). Must be included between -1
2316 and 69, default value is 2.
2317
2318 qmax integer (encoding,video)
2319 Set max video quantizer scale (VBR). Must be included between -1
2320 and 1024, default value is 31.
2321
2322 qdiff integer (encoding,video)
2323 Set max difference between the quantizer scale (VBR).
2324
2325 bf integer (encoding,video)
2326 Set max number of B frames between non-B-frames.
2327
2328 Must be an integer between -1 and 16. 0 means that B-frames are
2329 disabled. If a value of -1 is used, it will choose an automatic
2330 value depending on the encoder.
2331
2332 Default value is 0.
2333
2334 b_qfactor float (encoding,video)
2335 Set qp factor between P and B frames.
2336
2337 codec_tag integer
2338 bug flags (decoding,video)
2339 Workaround not auto detected encoder bugs.
2340
2341 Possible values:
2342
2343 autodetect
2344 xvid_ilace
2345 Xvid interlacing bug (autodetected if fourcc==XVIX)
2346
2347 ump4
2348 (autodetected if fourcc==UMP4)
2349
2350 no_padding
2351 padding bug (autodetected)
2352
2353 amv
2354 qpel_chroma
2355 std_qpel
2356 old standard qpel (autodetected per fourcc/version)
2357
2358 qpel_chroma2
2359 direct_blocksize
2360 direct-qpel-blocksize bug (autodetected per fourcc/version)
2361
2362 edge
2363 edge padding bug (autodetected per fourcc/version)
2364
2365 hpel_chroma
2366 dc_clip
2367 ms Workaround various bugs in microsoft broken decoders.
2368
2369 trunc
2370 trancated frames
2371
2372 strict integer (decoding/encoding,audio,video)
2373 Specify how strictly to follow the standards.
2374
2375 Possible values:
2376
2377 very
2378 strictly conform to an older more strict version of the spec or
2379 reference software
2380
2381 strict
2382 strictly conform to all the things in the spec no matter what
2383 consequences
2384
2385 normal
2386 unofficial
2387 allow unofficial extensions
2388
2389 experimental
2390 allow non standardized experimental things, experimental
2391 (unfinished/work in progress/not well tested) decoders and
2392 encoders. Note: experimental decoders can pose a security
2393 risk, do not use this for decoding untrusted input.
2394
2395 b_qoffset float (encoding,video)
2396 Set QP offset between P and B frames.
2397
2398 err_detect flags (decoding,audio,video)
2399 Set error detection flags.
2400
2401 Possible values:
2402
2403 crccheck
2404 verify embedded CRCs
2405
2406 bitstream
2407 detect bitstream specification deviations
2408
2409 buffer
2410 detect improper bitstream length
2411
2412 explode
2413 abort decoding on minor error detection
2414
2415 ignore_err
2416 ignore decoding errors, and continue decoding. This is useful
2417 if you want to analyze the content of a video and thus want
2418 everything to be decoded no matter what. This option will not
2419 result in a video that is pleasing to watch in case of errors.
2420
2421 careful
2422 consider things that violate the spec and have not been seen in
2423 the wild as errors
2424
2425 compliant
2426 consider all spec non compliancies as errors
2427
2428 aggressive
2429 consider things that a sane encoder should not do as an error
2430
2431 has_b_frames integer
2432 block_align integer
2433 rc_override_count integer
2434 maxrate integer (encoding,audio,video)
2435 Set max bitrate tolerance (in bits/s). Requires bufsize to be set.
2436
2437 minrate integer (encoding,audio,video)
2438 Set min bitrate tolerance (in bits/s). Most useful in setting up a
2439 CBR encode. It is of little use elsewise.
2440
2441 bufsize integer (encoding,audio,video)
2442 Set ratecontrol buffer size (in bits).
2443
2444 i_qfactor float (encoding,video)
2445 Set QP factor between P and I frames.
2446
2447 i_qoffset float (encoding,video)
2448 Set QP offset between P and I frames.
2449
2450 dct integer (encoding,video)
2451 Set DCT algorithm.
2452
2453 Possible values:
2454
2455 auto
2456 autoselect a good one (default)
2457
2458 fastint
2459 fast integer
2460
2461 int accurate integer
2462
2463 mmx
2464 altivec
2465 faan
2466 floating point AAN DCT
2467
2468 lumi_mask float (encoding,video)
2469 Compress bright areas stronger than medium ones.
2470
2471 tcplx_mask float (encoding,video)
2472 Set temporal complexity masking.
2473
2474 scplx_mask float (encoding,video)
2475 Set spatial complexity masking.
2476
2477 p_mask float (encoding,video)
2478 Set inter masking.
2479
2480 dark_mask float (encoding,video)
2481 Compress dark areas stronger than medium ones.
2482
2483 idct integer (decoding/encoding,video)
2484 Select IDCT implementation.
2485
2486 Possible values:
2487
2488 auto
2489 int
2490 simple
2491 simplemmx
2492 simpleauto
2493 Automatically pick a IDCT compatible with the simple one
2494
2495 arm
2496 altivec
2497 sh4
2498 simplearm
2499 simplearmv5te
2500 simplearmv6
2501 simpleneon
2502 xvid
2503 faani
2504 floating point AAN IDCT
2505
2506 slice_count integer
2507 ec flags (decoding,video)
2508 Set error concealment strategy.
2509
2510 Possible values:
2511
2512 guess_mvs
2513 iterative motion vector (MV) search (slow)
2514
2515 deblock
2516 use strong deblock filter for damaged MBs
2517
2518 favor_inter
2519 favor predicting from the previous frame instead of the current
2520
2521 bits_per_coded_sample integer
2522 aspect rational number (encoding,video)
2523 Set sample aspect ratio.
2524
2525 sar rational number (encoding,video)
2526 Set sample aspect ratio. Alias to aspect.
2527
2528 debug flags (decoding/encoding,audio,video,subtitles)
2529 Print specific debug info.
2530
2531 Possible values:
2532
2533 pict
2534 picture info
2535
2536 rc rate control
2537
2538 bitstream
2539 mb_type
2540 macroblock (MB) type
2541
2542 qp per-block quantization parameter (QP)
2543
2544 dct_coeff
2545 green_metadata
2546 display complexity metadata for the upcoming frame, GoP or for
2547 a given duration.
2548
2549 skip
2550 startcode
2551 er error recognition
2552
2553 mmco
2554 memory management control operations (H.264)
2555
2556 bugs
2557 buffers
2558 picture buffer allocations
2559
2560 thread_ops
2561 threading operations
2562
2563 nomc
2564 skip motion compensation
2565
2566 cmp integer (encoding,video)
2567 Set full pel me compare function.
2568
2569 Possible values:
2570
2571 sad sum of absolute differences, fast (default)
2572
2573 sse sum of squared errors
2574
2575 satd
2576 sum of absolute Hadamard transformed differences
2577
2578 dct sum of absolute DCT transformed differences
2579
2580 psnr
2581 sum of squared quantization errors (avoid, low quality)
2582
2583 bit number of bits needed for the block
2584
2585 rd rate distortion optimal, slow
2586
2587 zero
2588 0
2589
2590 vsad
2591 sum of absolute vertical differences
2592
2593 vsse
2594 sum of squared vertical differences
2595
2596 nsse
2597 noise preserving sum of squared differences
2598
2599 w53 5/3 wavelet, only used in snow
2600
2601 w97 9/7 wavelet, only used in snow
2602
2603 dctmax
2604 chroma
2605 subcmp integer (encoding,video)
2606 Set sub pel me compare function.
2607
2608 Possible values:
2609
2610 sad sum of absolute differences, fast (default)
2611
2612 sse sum of squared errors
2613
2614 satd
2615 sum of absolute Hadamard transformed differences
2616
2617 dct sum of absolute DCT transformed differences
2618
2619 psnr
2620 sum of squared quantization errors (avoid, low quality)
2621
2622 bit number of bits needed for the block
2623
2624 rd rate distortion optimal, slow
2625
2626 zero
2627 0
2628
2629 vsad
2630 sum of absolute vertical differences
2631
2632 vsse
2633 sum of squared vertical differences
2634
2635 nsse
2636 noise preserving sum of squared differences
2637
2638 w53 5/3 wavelet, only used in snow
2639
2640 w97 9/7 wavelet, only used in snow
2641
2642 dctmax
2643 chroma
2644 mbcmp integer (encoding,video)
2645 Set macroblock compare function.
2646
2647 Possible values:
2648
2649 sad sum of absolute differences, fast (default)
2650
2651 sse sum of squared errors
2652
2653 satd
2654 sum of absolute Hadamard transformed differences
2655
2656 dct sum of absolute DCT transformed differences
2657
2658 psnr
2659 sum of squared quantization errors (avoid, low quality)
2660
2661 bit number of bits needed for the block
2662
2663 rd rate distortion optimal, slow
2664
2665 zero
2666 0
2667
2668 vsad
2669 sum of absolute vertical differences
2670
2671 vsse
2672 sum of squared vertical differences
2673
2674 nsse
2675 noise preserving sum of squared differences
2676
2677 w53 5/3 wavelet, only used in snow
2678
2679 w97 9/7 wavelet, only used in snow
2680
2681 dctmax
2682 chroma
2683 ildctcmp integer (encoding,video)
2684 Set interlaced dct compare function.
2685
2686 Possible values:
2687
2688 sad sum of absolute differences, fast (default)
2689
2690 sse sum of squared errors
2691
2692 satd
2693 sum of absolute Hadamard transformed differences
2694
2695 dct sum of absolute DCT transformed differences
2696
2697 psnr
2698 sum of squared quantization errors (avoid, low quality)
2699
2700 bit number of bits needed for the block
2701
2702 rd rate distortion optimal, slow
2703
2704 zero
2705 0
2706
2707 vsad
2708 sum of absolute vertical differences
2709
2710 vsse
2711 sum of squared vertical differences
2712
2713 nsse
2714 noise preserving sum of squared differences
2715
2716 w53 5/3 wavelet, only used in snow
2717
2718 w97 9/7 wavelet, only used in snow
2719
2720 dctmax
2721 chroma
2722 dia_size integer (encoding,video)
2723 Set diamond type & size for motion estimation.
2724
2725 (1024, INT_MAX)
2726 full motion estimation(slowest)
2727
2728 (768, 1024]
2729 umh motion estimation
2730
2731 (512, 768]
2732 hex motion estimation
2733
2734 (256, 512]
2735 l2s diamond motion estimation
2736
2737 [2,256]
2738 var diamond motion estimation
2739
2740 (-1, 2)
2741 small diamond motion estimation
2742
2743 -1 funny diamond motion estimation
2744
2745 (INT_MIN, -1)
2746 sab diamond motion estimation
2747
2748 last_pred integer (encoding,video)
2749 Set amount of motion predictors from the previous frame.
2750
2751 precmp integer (encoding,video)
2752 Set pre motion estimation compare function.
2753
2754 Possible values:
2755
2756 sad sum of absolute differences, fast (default)
2757
2758 sse sum of squared errors
2759
2760 satd
2761 sum of absolute Hadamard transformed differences
2762
2763 dct sum of absolute DCT transformed differences
2764
2765 psnr
2766 sum of squared quantization errors (avoid, low quality)
2767
2768 bit number of bits needed for the block
2769
2770 rd rate distortion optimal, slow
2771
2772 zero
2773 0
2774
2775 vsad
2776 sum of absolute vertical differences
2777
2778 vsse
2779 sum of squared vertical differences
2780
2781 nsse
2782 noise preserving sum of squared differences
2783
2784 w53 5/3 wavelet, only used in snow
2785
2786 w97 9/7 wavelet, only used in snow
2787
2788 dctmax
2789 chroma
2790 pre_dia_size integer (encoding,video)
2791 Set diamond type & size for motion estimation pre-pass.
2792
2793 subq integer (encoding,video)
2794 Set sub pel motion estimation quality.
2795
2796 me_range integer (encoding,video)
2797 Set limit motion vectors range (1023 for DivX player).
2798
2799 global_quality integer (encoding,audio,video)
2800 slice_flags integer
2801 mbd integer (encoding,video)
2802 Set macroblock decision algorithm (high quality mode).
2803
2804 Possible values:
2805
2806 simple
2807 use mbcmp (default)
2808
2809 bits
2810 use fewest bits
2811
2812 rd use best rate distortion
2813
2814 rc_init_occupancy integer (encoding,video)
2815 Set number of bits which should be loaded into the rc buffer before
2816 decoding starts.
2817
2818 flags2 flags (decoding/encoding,audio,video,subtitles)
2819 Possible values:
2820
2821 fast
2822 Allow non spec compliant speedup tricks.
2823
2824 noout
2825 Skip bitstream encoding.
2826
2827 ignorecrop
2828 Ignore cropping information from sps.
2829
2830 local_header
2831 Place global headers at every keyframe instead of in extradata.
2832
2833 chunks
2834 Frame data might be split into multiple chunks.
2835
2836 showall
2837 Show all frames before the first keyframe.
2838
2839 export_mvs
2840 Export motion vectors into frame side-data (see
2841 "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
2842 also doc/examples/export_mvs.c.
2843
2844 skip_manual
2845 Do not skip samples and export skip information as frame side
2846 data.
2847
2848 ass_ro_flush_noop
2849 Do not reset ASS ReadOrder field on flush.
2850
2851 icc_profiles
2852 Generate/parse embedded ICC profiles from/to colorimetry tags.
2853
2854 export_side_data flags (decoding/encoding,audio,video,subtitles)
2855 Possible values:
2856
2857 mvs Export motion vectors into frame side-data (see
2858 "AV_FRAME_DATA_MOTION_VECTORS") for codecs that support it. See
2859 also doc/examples/export_mvs.c.
2860
2861 prft
2862 Export encoder Producer Reference Time into packet side-data
2863 (see "AV_PKT_DATA_PRFT") for codecs that support it.
2864
2865 venc_params
2866 Export video encoding parameters through frame side data (see
2867 "AV_FRAME_DATA_VIDEO_ENC_PARAMS") for codecs that support it.
2868 At present, those are H.264 and VP9.
2869
2870 film_grain
2871 Export film grain parameters through frame side data (see
2872 "AV_FRAME_DATA_FILM_GRAIN_PARAMS"). Supported at present by
2873 AV1 decoders.
2874
2875 threads integer (decoding/encoding,video)
2876 Set the number of threads to be used, in case the selected codec
2877 implementation supports multi-threading.
2878
2879 Possible values:
2880
2881 auto, 0
2882 automatically select the number of threads to set
2883
2884 Default value is auto.
2885
2886 dc integer (encoding,video)
2887 Set intra_dc_precision.
2888
2889 nssew integer (encoding,video)
2890 Set nsse weight.
2891
2892 skip_top integer (decoding,video)
2893 Set number of macroblock rows at the top which are skipped.
2894
2895 skip_bottom integer (decoding,video)
2896 Set number of macroblock rows at the bottom which are skipped.
2897
2898 profile integer (encoding,audio,video)
2899 Set encoder codec profile. Default value is unknown. Encoder
2900 specific profiles are documented in the relevant encoder
2901 documentation.
2902
2903 level integer (encoding,audio,video)
2904 Possible values:
2905
2906 unknown
2907 lowres integer (decoding,audio,video)
2908 Decode at 1= 1/2, 2=1/4, 3=1/8 resolutions.
2909
2910 mblmin integer (encoding,video)
2911 Set min macroblock lagrange factor (VBR).
2912
2913 mblmax integer (encoding,video)
2914 Set max macroblock lagrange factor (VBR).
2915
2916 skip_loop_filter integer (decoding,video)
2917 skip_idct integer (decoding,video)
2918 skip_frame integer (decoding,video)
2919 Make decoder discard processing depending on the frame type
2920 selected by the option value.
2921
2922 skip_loop_filter skips frame loop filtering, skip_idct skips frame
2923 IDCT/dequantization, skip_frame skips decoding.
2924
2925 Possible values:
2926
2927 none
2928 Discard no frame.
2929
2930 default
2931 Discard useless frames like 0-sized frames.
2932
2933 noref
2934 Discard all non-reference frames.
2935
2936 bidir
2937 Discard all bidirectional frames.
2938
2939 nokey
2940 Discard all frames excepts keyframes.
2941
2942 nointra
2943 Discard all frames except I frames.
2944
2945 all Discard all frames.
2946
2947 Default value is default.
2948
2949 bidir_refine integer (encoding,video)
2950 Refine the two motion vectors used in bidirectional macroblocks.
2951
2952 keyint_min integer (encoding,video)
2953 Set minimum interval between IDR-frames.
2954
2955 refs integer (encoding,video)
2956 Set reference frames to consider for motion compensation.
2957
2958 trellis integer (encoding,audio,video)
2959 Set rate-distortion optimal quantization.
2960
2961 mv0_threshold integer (encoding,video)
2962 compression_level integer (encoding,audio,video)
2963 bits_per_raw_sample integer
2964 channel_layout integer (decoding/encoding,audio)
2965 Possible values:
2966
2967 request_channel_layout integer (decoding,audio)
2968 Possible values:
2969
2970 rc_max_vbv_use float (encoding,video)
2971 rc_min_vbv_use float (encoding,video)
2972 ticks_per_frame integer (decoding/encoding,audio,video)
2973 color_primaries integer (decoding/encoding,video)
2974 Possible values:
2975
2976 bt709
2977 BT.709
2978
2979 bt470m
2980 BT.470 M
2981
2982 bt470bg
2983 BT.470 BG
2984
2985 smpte170m
2986 SMPTE 170 M
2987
2988 smpte240m
2989 SMPTE 240 M
2990
2991 film
2992 Film
2993
2994 bt2020
2995 BT.2020
2996
2997 smpte428
2998 smpte428_1
2999 SMPTE ST 428-1
3000
3001 smpte431
3002 SMPTE 431-2
3003
3004 smpte432
3005 SMPTE 432-1
3006
3007 jedec-p22
3008 JEDEC P22
3009
3010 color_trc integer (decoding/encoding,video)
3011 Possible values:
3012
3013 bt709
3014 BT.709
3015
3016 gamma22
3017 BT.470 M
3018
3019 gamma28
3020 BT.470 BG
3021
3022 smpte170m
3023 SMPTE 170 M
3024
3025 smpte240m
3026 SMPTE 240 M
3027
3028 linear
3029 Linear
3030
3031 log
3032 log100
3033 Log
3034
3035 log_sqrt
3036 log316
3037 Log square root
3038
3039 iec61966_2_4
3040 iec61966-2-4
3041 IEC 61966-2-4
3042
3043 bt1361
3044 bt1361e
3045 BT.1361
3046
3047 iec61966_2_1
3048 iec61966-2-1
3049 IEC 61966-2-1
3050
3051 bt2020_10
3052 bt2020_10bit
3053 BT.2020 - 10 bit
3054
3055 bt2020_12
3056 bt2020_12bit
3057 BT.2020 - 12 bit
3058
3059 smpte2084
3060 SMPTE ST 2084
3061
3062 smpte428
3063 smpte428_1
3064 SMPTE ST 428-1
3065
3066 arib-std-b67
3067 ARIB STD-B67
3068
3069 colorspace integer (decoding/encoding,video)
3070 Possible values:
3071
3072 rgb RGB
3073
3074 bt709
3075 BT.709
3076
3077 fcc FCC
3078
3079 bt470bg
3080 BT.470 BG
3081
3082 smpte170m
3083 SMPTE 170 M
3084
3085 smpte240m
3086 SMPTE 240 M
3087
3088 ycocg
3089 YCOCG
3090
3091 bt2020nc
3092 bt2020_ncl
3093 BT.2020 NCL
3094
3095 bt2020c
3096 bt2020_cl
3097 BT.2020 CL
3098
3099 smpte2085
3100 SMPTE 2085
3101
3102 chroma-derived-nc
3103 Chroma-derived NCL
3104
3105 chroma-derived-c
3106 Chroma-derived CL
3107
3108 ictcp
3109 ICtCp
3110
3111 color_range integer (decoding/encoding,video)
3112 If used as input parameter, it serves as a hint to the decoder,
3113 which color_range the input has. Possible values:
3114
3115 tv
3116 mpeg
3117 MPEG (219*2^(n-8))
3118
3119 pc
3120 jpeg
3121 JPEG (2^n-1)
3122
3123 chroma_sample_location integer (decoding/encoding,video)
3124 Possible values:
3125
3126 left
3127 center
3128 topleft
3129 top
3130 bottomleft
3131 bottom
3132 log_level_offset integer
3133 Set the log level offset.
3134
3135 slices integer (encoding,video)
3136 Number of slices, used in parallelized encoding.
3137
3138 thread_type flags (decoding/encoding,video)
3139 Select which multithreading methods to use.
3140
3141 Use of frame will increase decoding delay by one frame per thread,
3142 so clients which cannot provide future frames should not use it.
3143
3144 Possible values:
3145
3146 slice
3147 Decode more than one part of a single frame at once.
3148
3149 Multithreading using slices works only when the video was
3150 encoded with slices.
3151
3152 frame
3153 Decode more than one frame at once.
3154
3155 Default value is slice+frame.
3156
3157 audio_service_type integer (encoding,audio)
3158 Set audio service type.
3159
3160 Possible values:
3161
3162 ma Main Audio Service
3163
3164 ef Effects
3165
3166 vi Visually Impaired
3167
3168 hi Hearing Impaired
3169
3170 di Dialogue
3171
3172 co Commentary
3173
3174 em Emergency
3175
3176 vo Voice Over
3177
3178 ka Karaoke
3179
3180 request_sample_fmt sample_fmt (decoding,audio)
3181 Set sample format audio decoders should prefer. Default value is
3182 "none".
3183
3184 pkt_timebase rational number
3185 sub_charenc encoding (decoding,subtitles)
3186 Set the input subtitles character encoding.
3187
3188 field_order field_order (video)
3189 Set/override the field order of the video. Possible values:
3190
3191 progressive
3192 Progressive video
3193
3194 tt Interlaced video, top field coded and displayed first
3195
3196 bb Interlaced video, bottom field coded and displayed first
3197
3198 tb Interlaced video, top coded first, bottom displayed first
3199
3200 bt Interlaced video, bottom coded first, top displayed first
3201
3202 skip_alpha bool (decoding,video)
3203 Set to 1 to disable processing alpha (transparency). This works
3204 like the gray flag in the flags option which skips chroma
3205 information instead of alpha. Default is 0.
3206
3207 codec_whitelist list (input)
3208 "," separated list of allowed decoders. By default all are allowed.
3209
3210 dump_separator string (input)
3211 Separator used to separate the fields printed on the command line
3212 about the Stream parameters. For example, to separate the fields
3213 with newlines and indentation:
3214
3215 ffprobe -dump_separator "
3216 " -i ~/videos/matrixbench_mpeg2.mpg
3217
3218 max_pixels integer (decoding/encoding,video)
3219 Maximum number of pixels per image. This value can be used to avoid
3220 out of memory failures due to large images.
3221
3222 apply_cropping bool (decoding,video)
3223 Enable cropping if cropping parameters are multiples of the
3224 required alignment for the left and top parameters. If the
3225 alignment is not met the cropping will be partially applied to
3226 maintain alignment. Default is 1 (enabled). Note: The required
3227 alignment depends on if "AV_CODEC_FLAG_UNALIGNED" is set and the
3228 CPU. "AV_CODEC_FLAG_UNALIGNED" cannot be changed from the command
3229 line. Also hardware decoders will not apply left/top Cropping.
3230
3232 Decoders are configured elements in FFmpeg which allow the decoding of
3233 multimedia streams.
3234
3235 When you configure your FFmpeg build, all the supported native decoders
3236 are enabled by default. Decoders requiring an external library must be
3237 enabled manually via the corresponding "--enable-lib" option. You can
3238 list all available decoders using the configure option
3239 "--list-decoders".
3240
3241 You can disable all the decoders with the configure option
3242 "--disable-decoders" and selectively enable / disable single decoders
3243 with the options "--enable-decoder=DECODER" /
3244 "--disable-decoder=DECODER".
3245
3246 The option "-decoders" of the ff* tools will display the list of
3247 enabled decoders.
3248
3250 A description of some of the currently available video decoders
3251 follows.
3252
3253 av1
3254 AOMedia Video 1 (AV1) decoder.
3255
3256 Options
3257
3258 operating_point
3259 Select an operating point of a scalable AV1 bitstream (0 - 31).
3260 Default is 0.
3261
3262 rawvideo
3263 Raw video decoder.
3264
3265 This decoder decodes rawvideo streams.
3266
3267 Options
3268
3269 top top_field_first
3270 Specify the assumed field type of the input video.
3271
3272 -1 the video is assumed to be progressive (default)
3273
3274 0 bottom-field-first is assumed
3275
3276 1 top-field-first is assumed
3277
3278 libdav1d
3279 dav1d AV1 decoder.
3280
3281 libdav1d allows libavcodec to decode the AOMedia Video 1 (AV1) codec.
3282 Requires the presence of the libdav1d headers and library during
3283 configuration. You need to explicitly configure the build with
3284 "--enable-libdav1d".
3285
3286 Options
3287
3288 The following options are supported by the libdav1d wrapper.
3289
3290 framethreads
3291 Set amount of frame threads to use during decoding. The default
3292 value is 0 (autodetect). This option is deprecated for libdav1d >=
3293 1.0 and will be removed in the future. Use the option
3294 "max_frame_delay" and the global option "threads" instead.
3295
3296 tilethreads
3297 Set amount of tile threads to use during decoding. The default
3298 value is 0 (autodetect). This option is deprecated for libdav1d >=
3299 1.0 and will be removed in the future. Use the global option
3300 "threads" instead.
3301
3302 max_frame_delay
3303 Set max amount of frames the decoder may buffer internally. The
3304 default value is 0 (autodetect).
3305
3306 filmgrain
3307 Apply film grain to the decoded video if present in the bitstream.
3308 Defaults to the internal default of the library. This option is
3309 deprecated and will be removed in the future. See the global option
3310 "export_side_data" to export Film Grain parameters instead of
3311 applying it.
3312
3313 oppoint
3314 Select an operating point of a scalable AV1 bitstream (0 - 31).
3315 Defaults to the internal default of the library.
3316
3317 alllayers
3318 Output all spatial layers of a scalable AV1 bitstream. The default
3319 value is false.
3320
3321 libdavs2
3322 AVS2-P2/IEEE1857.4 video decoder wrapper.
3323
3324 This decoder allows libavcodec to decode AVS2 streams with davs2
3325 library.
3326
3327 libuavs3d
3328 AVS3-P2/IEEE1857.10 video decoder.
3329
3330 libuavs3d allows libavcodec to decode AVS3 streams. Requires the
3331 presence of the libuavs3d headers and library during configuration.
3332 You need to explicitly configure the build with "--enable-libuavs3d".
3333
3334 Options
3335
3336 The following option is supported by the libuavs3d wrapper.
3337
3338 frame_threads
3339 Set amount of frame threads to use during decoding. The default
3340 value is 0 (autodetect).
3341
3342 QSV Decoders
3343 The family of Intel QuickSync Video decoders (VC1, MPEG-2, H.264, HEVC,
3344 JPEG/MJPEG, VP8, VP9, AV1).
3345
3346 Common Options
3347
3348 The following options are supported by all qsv decoders.
3349
3350 async_depth
3351 Internal parallelization depth, the higher the value the higher the
3352 latency.
3353
3354 gpu_copy
3355 A GPU-accelerated copy between video and system memory
3356
3357 default
3358 on
3359 off
3360
3361 HEVC Options
3362
3363 Extra options for hevc_qsv.
3364
3365 load_plugin
3366 A user plugin to load in an internal session
3367
3368 none
3369 hevc_sw
3370 hevc_hw
3371 load_plugins
3372 A :-separate list of hexadecimal plugin UIDs to load in an internal
3373 session
3374
3375 v210
3376 Uncompressed 4:2:2 10-bit decoder.
3377
3378 Options
3379
3380 custom_stride
3381 Set the line size of the v210 data in bytes. The default value is 0
3382 (autodetect). You can use the special -1 value for a strideless
3383 v210 as seen in BOXX files.
3384
3386 A description of some of the currently available audio decoders
3387 follows.
3388
3389 ac3
3390 AC-3 audio decoder.
3391
3392 This decoder implements part of ATSC A/52:2010 and ETSI TS 102 366, as
3393 well as the undocumented RealAudio 3 (a.k.a. dnet).
3394
3395 AC-3 Decoder Options
3396
3397 -drc_scale value
3398 Dynamic Range Scale Factor. The factor to apply to dynamic range
3399 values from the AC-3 stream. This factor is applied exponentially.
3400 The default value is 1. There are 3 notable scale factor ranges:
3401
3402 drc_scale == 0
3403 DRC disabled. Produces full range audio.
3404
3405 0 < drc_scale <= 1
3406 DRC enabled. Applies a fraction of the stream DRC value.
3407 Audio reproduction is between full range and full compression.
3408
3409 drc_scale > 1
3410 DRC enabled. Applies drc_scale asymmetrically. Loud sounds are
3411 fully compressed. Soft sounds are enhanced.
3412
3413 flac
3414 FLAC audio decoder.
3415
3416 This decoder aims to implement the complete FLAC specification from
3417 Xiph.
3418
3419 FLAC Decoder options
3420
3421 -use_buggy_lpc
3422 The lavc FLAC encoder used to produce buggy streams with high lpc
3423 values (like the default value). This option makes it possible to
3424 decode such streams correctly by using lavc's old buggy lpc logic
3425 for decoding.
3426
3427 ffwavesynth
3428 Internal wave synthesizer.
3429
3430 This decoder generates wave patterns according to predefined sequences.
3431 Its use is purely internal and the format of the data it accepts is not
3432 publicly documented.
3433
3434 libcelt
3435 libcelt decoder wrapper.
3436
3437 libcelt allows libavcodec to decode the Xiph CELT ultra-low delay audio
3438 codec. Requires the presence of the libcelt headers and library during
3439 configuration. You need to explicitly configure the build with
3440 "--enable-libcelt".
3441
3442 libgsm
3443 libgsm decoder wrapper.
3444
3445 libgsm allows libavcodec to decode the GSM full rate audio codec.
3446 Requires the presence of the libgsm headers and library during
3447 configuration. You need to explicitly configure the build with
3448 "--enable-libgsm".
3449
3450 This decoder supports both the ordinary GSM and the Microsoft variant.
3451
3452 libilbc
3453 libilbc decoder wrapper.
3454
3455 libilbc allows libavcodec to decode the Internet Low Bitrate Codec
3456 (iLBC) audio codec. Requires the presence of the libilbc headers and
3457 library during configuration. You need to explicitly configure the
3458 build with "--enable-libilbc".
3459
3460 Options
3461
3462 The following option is supported by the libilbc wrapper.
3463
3464 enhance
3465 Enable the enhancement of the decoded audio when set to 1. The
3466 default value is 0 (disabled).
3467
3468 libopencore-amrnb
3469 libopencore-amrnb decoder wrapper.
3470
3471 libopencore-amrnb allows libavcodec to decode the Adaptive Multi-Rate
3472 Narrowband audio codec. Using it requires the presence of the
3473 libopencore-amrnb headers and library during configuration. You need to
3474 explicitly configure the build with "--enable-libopencore-amrnb".
3475
3476 An FFmpeg native decoder for AMR-NB exists, so users can decode AMR-NB
3477 without this library.
3478
3479 libopencore-amrwb
3480 libopencore-amrwb decoder wrapper.
3481
3482 libopencore-amrwb allows libavcodec to decode the Adaptive Multi-Rate
3483 Wideband audio codec. Using it requires the presence of the
3484 libopencore-amrwb headers and library during configuration. You need to
3485 explicitly configure the build with "--enable-libopencore-amrwb".
3486
3487 An FFmpeg native decoder for AMR-WB exists, so users can decode AMR-WB
3488 without this library.
3489
3490 libopus
3491 libopus decoder wrapper.
3492
3493 libopus allows libavcodec to decode the Opus Interactive Audio Codec.
3494 Requires the presence of the libopus headers and library during
3495 configuration. You need to explicitly configure the build with
3496 "--enable-libopus".
3497
3498 An FFmpeg native decoder for Opus exists, so users can decode Opus
3499 without this library.
3500
3502 libaribb24
3503 ARIB STD-B24 caption decoder.
3504
3505 Implements profiles A and C of the ARIB STD-B24 standard.
3506
3507 libaribb24 Decoder Options
3508
3509 -aribb24-base-path path
3510 Sets the base path for the libaribb24 library. This is utilized for
3511 reading of configuration files (for custom unicode conversions),
3512 and for dumping of non-text symbols as images under that location.
3513
3514 Unset by default.
3515
3516 -aribb24-skip-ruby-text boolean
3517 Tells the decoder wrapper to skip text blocks that contain half-
3518 height ruby text.
3519
3520 Enabled by default.
3521
3522 dvbsub
3523 Options
3524
3525 compute_clut
3526 -2 Compute clut once if no matching CLUT is in the stream.
3527
3528 -1 Compute clut if no matching CLUT is in the stream.
3529
3530 0 Never compute CLUT
3531
3532 1 Always compute CLUT and override the one provided in the
3533 stream.
3534
3535 dvb_substream
3536 Selects the dvb substream, or all substreams if -1 which is
3537 default.
3538
3539 dvdsub
3540 This codec decodes the bitmap subtitles used in DVDs; the same
3541 subtitles can also be found in VobSub file pairs and in some Matroska
3542 files.
3543
3544 Options
3545
3546 palette
3547 Specify the global palette used by the bitmaps. When stored in
3548 VobSub, the palette is normally specified in the index file; in
3549 Matroska, the palette is stored in the codec extra-data in the same
3550 format as in VobSub. In DVDs, the palette is stored in the IFO
3551 file, and therefore not available when reading from dumped VOB
3552 files.
3553
3554 The format for this option is a string containing 16 24-bits
3555 hexadecimal numbers (without 0x prefix) separated by commas, for
3556 example "0d00ee, ee450d, 101010, eaeaea, 0ce60b, ec14ed, ebff0b,
3557 0d617a, 7b7b7b, d1d1d1, 7b2a0e, 0d950c, 0f007b, cf0dec, cfa80c,
3558 7c127b".
3559
3560 ifo_palette
3561 Specify the IFO file from which the global palette is obtained.
3562 (experimental)
3563
3564 forced_subs_only
3565 Only decode subtitle entries marked as forced. Some titles have
3566 forced and non-forced subtitles in the same track. Setting this
3567 flag to 1 will only keep the forced subtitles. Default value is 0.
3568
3569 libzvbi-teletext
3570 Libzvbi allows libavcodec to decode DVB teletext pages and DVB teletext
3571 subtitles. Requires the presence of the libzvbi headers and library
3572 during configuration. You need to explicitly configure the build with
3573 "--enable-libzvbi".
3574
3575 Options
3576
3577 txt_page
3578 List of teletext page numbers to decode. Pages that do not match
3579 the specified list are dropped. You may use the special "*" string
3580 to match all pages, or "subtitle" to match all subtitle pages.
3581 Default value is *.
3582
3583 txt_default_region
3584 Set default character set used for decoding, a value between 0 and
3585 87 (see ETS 300 706, Section 15, Table 32). Default value is -1,
3586 which does not override the libzvbi default. This option is needed
3587 for some legacy level 1.0 transmissions which cannot signal the
3588 proper charset.
3589
3590 txt_chop_top
3591 Discards the top teletext line. Default value is 1.
3592
3593 txt_format
3594 Specifies the format of the decoded subtitles.
3595
3596 bitmap
3597 The default format, you should use this for teletext pages,
3598 because certain graphics and colors cannot be expressed in
3599 simple text or even ASS.
3600
3601 text
3602 Simple text based output without formatting.
3603
3604 ass Formatted ASS output, subtitle pages and teletext pages are
3605 returned in different styles, subtitle pages are stripped down
3606 to text, but an effort is made to keep the text alignment and
3607 the formatting.
3608
3609 txt_left
3610 X offset of generated bitmaps, default is 0.
3611
3612 txt_top
3613 Y offset of generated bitmaps, default is 0.
3614
3615 txt_chop_spaces
3616 Chops leading and trailing spaces and removes empty lines from the
3617 generated text. This option is useful for teletext based subtitles
3618 where empty spaces may be present at the start or at the end of the
3619 lines or empty lines may be present between the subtitle lines
3620 because of double-sized teletext characters. Default value is 1.
3621
3622 txt_duration
3623 Sets the display duration of the decoded teletext pages or
3624 subtitles in milliseconds. Default value is -1 which means infinity
3625 or until the next subtitle event comes.
3626
3627 txt_transparent
3628 Force transparent background of the generated teletext bitmaps.
3629 Default value is 0 which means an opaque background.
3630
3631 txt_opacity
3632 Sets the opacity (0-255) of the teletext background. If
3633 txt_transparent is not set, it only affects characters between a
3634 start box and an end box, typically subtitles. Default value is 0
3635 if txt_transparent is set, 255 otherwise.
3636
3638 When you configure your FFmpeg build, all the supported bitstream
3639 filters are enabled by default. You can list all available ones using
3640 the configure option "--list-bsfs".
3641
3642 You can disable all the bitstream filters using the configure option
3643 "--disable-bsfs", and selectively enable any bitstream filter using the
3644 option "--enable-bsf=BSF", or you can disable a particular bitstream
3645 filter using the option "--disable-bsf=BSF".
3646
3647 The option "-bsfs" of the ff* tools will display the list of all the
3648 supported bitstream filters included in your build.
3649
3650 The ff* tools have a -bsf option applied per stream, taking a comma-
3651 separated list of filters, whose parameters follow the filter name
3652 after a '='.
3653
3654 ffmpeg -i INPUT -c:v copy -bsf:v filter1[=opt1=str1:opt2=str2][,filter2] OUTPUT
3655
3656 Below is a description of the currently available bitstream filters,
3657 with their parameters, if any.
3658
3659 aac_adtstoasc
3660 Convert MPEG-2/4 AAC ADTS to an MPEG-4 Audio Specific Configuration
3661 bitstream.
3662
3663 This filter creates an MPEG-4 AudioSpecificConfig from an MPEG-2/4 ADTS
3664 header and removes the ADTS header.
3665
3666 This filter is required for example when copying an AAC stream from a
3667 raw ADTS AAC or an MPEG-TS container to MP4A-LATM, to an FLV file, or
3668 to MOV/MP4 files and related formats such as 3GP or M4A. Please note
3669 that it is auto-inserted for MP4A-LATM and MOV/MP4 and related formats.
3670
3671 av1_metadata
3672 Modify metadata embedded in an AV1 stream.
3673
3674 td Insert or remove temporal delimiter OBUs in all temporal units of
3675 the stream.
3676
3677 insert
3678 Insert a TD at the beginning of every TU which does not already
3679 have one.
3680
3681 remove
3682 Remove the TD from the beginning of every TU which has one.
3683
3684 color_primaries
3685 transfer_characteristics
3686 matrix_coefficients
3687 Set the color description fields in the stream (see AV1 section
3688 6.4.2).
3689
3690 color_range
3691 Set the color range in the stream (see AV1 section 6.4.2; note that
3692 this cannot be set for streams using BT.709 primaries, sRGB
3693 transfer characteristic and identity (RGB) matrix coefficients).
3694
3695 tv Limited range.
3696
3697 pc Full range.
3698
3699 chroma_sample_position
3700 Set the chroma sample location in the stream (see AV1 section
3701 6.4.2). This can only be set for 4:2:0 streams.
3702
3703 vertical
3704 Left position (matching the default in MPEG-2 and H.264).
3705
3706 colocated
3707 Top-left position.
3708
3709 tick_rate
3710 Set the tick rate (time_scale / num_units_in_display_tick) in the
3711 timing info in the sequence header.
3712
3713 num_ticks_per_picture
3714 Set the number of ticks in each picture, to indicate that the
3715 stream has a fixed framerate. Ignored if tick_rate is not also
3716 set.
3717
3718 delete_padding
3719 Deletes Padding OBUs.
3720
3721 chomp
3722 Remove zero padding at the end of a packet.
3723
3724 dca_core
3725 Extract the core from a DCA/DTS stream, dropping extensions such as
3726 DTS-HD.
3727
3728 dump_extra
3729 Add extradata to the beginning of the filtered packets except when said
3730 packets already exactly begin with the extradata that is intended to be
3731 added.
3732
3733 freq
3734 The additional argument specifies which packets should be filtered.
3735 It accepts the values:
3736
3737 k
3738 keyframe
3739 add extradata to all key packets
3740
3741 e
3742 all add extradata to all packets
3743
3744 If not specified it is assumed k.
3745
3746 For example the following ffmpeg command forces a global header (thus
3747 disabling individual packet headers) in the H.264 packets generated by
3748 the "libx264" encoder, but corrects them by adding the header stored in
3749 extradata to the key packets:
3750
3751 ffmpeg -i INPUT -map 0 -flags:v +global_header -c:v libx264 -bsf:v dump_extra out.ts
3752
3753 dv_error_marker
3754 Blocks in DV which are marked as damaged are replaced by blocks of the
3755 specified color.
3756
3757 color
3758 The color to replace damaged blocks by
3759
3760 sta A 16 bit mask which specifies which of the 16 possible error status
3761 values are to be replaced by colored blocks. 0xFFFE is the default
3762 which replaces all non 0 error status values.
3763
3764 ok No error, no concealment
3765
3766 err Error, No concealment
3767
3768 res Reserved
3769
3770 notok
3771 Error or concealment
3772
3773 notres
3774 Not reserved
3775
3776 Aa, Ba, Ca, Ab, Bb, Cb, A, B, C, a, b, erri, erru
3777 The specific error status code
3778
3779 see page 44-46 or section 5.5 of
3780 <http://web.archive.org/web/20060927044735/http://www.smpte.org/smpte_store/standards/pdf/s314m.pdf>
3781
3782 eac3_core
3783 Extract the core from a E-AC-3 stream, dropping extra channels.
3784
3785 extract_extradata
3786 Extract the in-band extradata.
3787
3788 Certain codecs allow the long-term headers (e.g. MPEG-2 sequence
3789 headers, or H.264/HEVC (VPS/)SPS/PPS) to be transmitted either "in-
3790 band" (i.e. as a part of the bitstream containing the coded frames) or
3791 "out of band" (e.g. on the container level). This latter form is called
3792 "extradata" in FFmpeg terminology.
3793
3794 This bitstream filter detects the in-band headers and makes them
3795 available as extradata.
3796
3797 remove
3798 When this option is enabled, the long-term headers are removed from
3799 the bitstream after extraction.
3800
3801 filter_units
3802 Remove units with types in or not in a given set from the stream.
3803
3804 pass_types
3805 List of unit types or ranges of unit types to pass through while
3806 removing all others. This is specified as a '|'-separated list of
3807 unit type values or ranges of values with '-'.
3808
3809 remove_types
3810 Identical to pass_types, except the units in the given set removed
3811 and all others passed through.
3812
3813 Extradata is unchanged by this transformation, but note that if the
3814 stream contains inline parameter sets then the output may be unusable
3815 if they are removed.
3816
3817 For example, to remove all non-VCL NAL units from an H.264 stream:
3818
3819 ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=pass_types=1-5' OUTPUT
3820
3821 To remove all AUDs, SEI and filler from an H.265 stream:
3822
3823 ffmpeg -i INPUT -c:v copy -bsf:v 'filter_units=remove_types=35|38-40' OUTPUT
3824
3825 hapqa_extract
3826 Extract Rgb or Alpha part of an HAPQA file, without recompression, in
3827 order to create an HAPQ or an HAPAlphaOnly file.
3828
3829 texture
3830 Specifies the texture to keep.
3831
3832 color
3833 alpha
3834
3835 Convert HAPQA to HAPQ
3836
3837 ffmpeg -i hapqa_inputfile.mov -c copy -bsf:v hapqa_extract=texture=color -tag:v HapY -metadata:s:v:0 encoder="HAPQ" hapq_file.mov
3838
3839 Convert HAPQA to HAPAlphaOnly
3840
3841 ffmpeg -i hapqa_inputfile.mov -c copy -bsf:v hapqa_extract=texture=alpha -tag:v HapA -metadata:s:v:0 encoder="HAPAlpha Only" hapalphaonly_file.mov
3842
3843 h264_metadata
3844 Modify metadata embedded in an H.264 stream.
3845
3846 aud Insert or remove AUD NAL units in all access units of the stream.
3847
3848 pass
3849 insert
3850 remove
3851
3852 Default is pass.
3853
3854 sample_aspect_ratio
3855 Set the sample aspect ratio of the stream in the VUI parameters.
3856 See H.264 table E-1.
3857
3858 overscan_appropriate_flag
3859 Set whether the stream is suitable for display using overscan or
3860 not (see H.264 section E.2.1).
3861
3862 video_format
3863 video_full_range_flag
3864 Set the video format in the stream (see H.264 section E.2.1 and
3865 table E-2).
3866
3867 colour_primaries
3868 transfer_characteristics
3869 matrix_coefficients
3870 Set the colour description in the stream (see H.264 section E.2.1
3871 and tables E-3, E-4 and E-5).
3872
3873 chroma_sample_loc_type
3874 Set the chroma sample location in the stream (see H.264 section
3875 E.2.1 and figure E-1).
3876
3877 tick_rate
3878 Set the tick rate (time_scale / num_units_in_tick) in the VUI
3879 parameters. This is the smallest time unit representable in the
3880 stream, and in many cases represents the field rate of the stream
3881 (double the frame rate).
3882
3883 fixed_frame_rate_flag
3884 Set whether the stream has fixed framerate - typically this
3885 indicates that the framerate is exactly half the tick rate, but the
3886 exact meaning is dependent on interlacing and the picture structure
3887 (see H.264 section E.2.1 and table E-6).
3888
3889 zero_new_constraint_set_flags
3890 Zero constraint_set4_flag and constraint_set5_flag in the SPS.
3891 These bits were reserved in a previous version of the H.264 spec,
3892 and thus some hardware decoders require these to be zero. The
3893 result of zeroing this is still a valid bitstream.
3894
3895 crop_left
3896 crop_right
3897 crop_top
3898 crop_bottom
3899 Set the frame cropping offsets in the SPS. These values will
3900 replace the current ones if the stream is already cropped.
3901
3902 These fields are set in pixels. Note that some sizes may not be
3903 representable if the chroma is subsampled or the stream is
3904 interlaced (see H.264 section 7.4.2.1.1).
3905
3906 sei_user_data
3907 Insert a string as SEI unregistered user data. The argument must
3908 be of the form UUID+string, where the UUID is as hex digits
3909 possibly separated by hyphens, and the string can be anything.
3910
3911 For example, 086f3693-b7b3-4f2c-9653-21492feee5b8+hello will insert
3912 the string ``hello'' associated with the given UUID.
3913
3914 delete_filler
3915 Deletes both filler NAL units and filler SEI messages.
3916
3917 display_orientation
3918 Insert, extract or remove Display orientation SEI messages. See
3919 H.264 section D.1.27 and D.2.27 for syntax and semantics.
3920
3921 pass
3922 insert
3923 remove
3924 extract
3925
3926 Default is pass.
3927
3928 Insert mode works in conjunction with "rotate" and "flip" options.
3929 Any pre-existing Display orientation messages will be removed in
3930 insert or remove mode. Extract mode attaches the display matrix to
3931 the packet as side data.
3932
3933 rotate
3934 Set rotation in display orientation SEI (anticlockwise angle in
3935 degrees). Range is -360 to +360. Default is NaN.
3936
3937 flip
3938 Set flip in display orientation SEI.
3939
3940 horizontal
3941 vertical
3942
3943 Default is unset.
3944
3945 level
3946 Set the level in the SPS. Refer to H.264 section A.3 and tables
3947 A-1 to A-5.
3948
3949 The argument must be the name of a level (for example, 4.2), a
3950 level_idc value (for example, 42), or the special name auto
3951 indicating that the filter should attempt to guess the level from
3952 the input stream properties.
3953
3954 h264_mp4toannexb
3955 Convert an H.264 bitstream from length prefixed mode to start code
3956 prefixed mode (as defined in the Annex B of the ITU-T H.264
3957 specification).
3958
3959 This is required by some streaming formats, typically the MPEG-2
3960 transport stream format (muxer "mpegts").
3961
3962 For example to remux an MP4 file containing an H.264 stream to mpegts
3963 format with ffmpeg, you can use the command:
3964
3965 ffmpeg -i INPUT.mp4 -codec copy -bsf:v h264_mp4toannexb OUTPUT.ts
3966
3967 Please note that this filter is auto-inserted for MPEG-TS (muxer
3968 "mpegts") and raw H.264 (muxer "h264") output formats.
3969
3970 h264_redundant_pps
3971 This applies a specific fixup to some Blu-ray streams which contain
3972 redundant PPSs modifying irrelevant parameters of the stream which
3973 confuse other transformations which require correct extradata.
3974
3975 hevc_metadata
3976 Modify metadata embedded in an HEVC stream.
3977
3978 aud Insert or remove AUD NAL units in all access units of the stream.
3979
3980 insert
3981 remove
3982 sample_aspect_ratio
3983 Set the sample aspect ratio in the stream in the VUI parameters.
3984
3985 video_format
3986 video_full_range_flag
3987 Set the video format in the stream (see H.265 section E.3.1 and
3988 table E.2).
3989
3990 colour_primaries
3991 transfer_characteristics
3992 matrix_coefficients
3993 Set the colour description in the stream (see H.265 section E.3.1
3994 and tables E.3, E.4 and E.5).
3995
3996 chroma_sample_loc_type
3997 Set the chroma sample location in the stream (see H.265 section
3998 E.3.1 and figure E.1).
3999
4000 tick_rate
4001 Set the tick rate in the VPS and VUI parameters (time_scale /
4002 num_units_in_tick). Combined with num_ticks_poc_diff_one, this can
4003 set a constant framerate in the stream. Note that it is likely to
4004 be overridden by container parameters when the stream is in a
4005 container.
4006
4007 num_ticks_poc_diff_one
4008 Set poc_proportional_to_timing_flag in VPS and VUI and use this
4009 value to set num_ticks_poc_diff_one_minus1 (see H.265 sections
4010 7.4.3.1 and E.3.1). Ignored if tick_rate is not also set.
4011
4012 crop_left
4013 crop_right
4014 crop_top
4015 crop_bottom
4016 Set the conformance window cropping offsets in the SPS. These
4017 values will replace the current ones if the stream is already
4018 cropped.
4019
4020 These fields are set in pixels. Note that some sizes may not be
4021 representable if the chroma is subsampled (H.265 section
4022 7.4.3.2.1).
4023
4024 level
4025 Set the level in the VPS and SPS. See H.265 section A.4 and tables
4026 A.6 and A.7.
4027
4028 The argument must be the name of a level (for example, 5.1), a
4029 general_level_idc value (for example, 153 for level 5.1), or the
4030 special name auto indicating that the filter should attempt to
4031 guess the level from the input stream properties.
4032
4033 hevc_mp4toannexb
4034 Convert an HEVC/H.265 bitstream from length prefixed mode to start code
4035 prefixed mode (as defined in the Annex B of the ITU-T H.265
4036 specification).
4037
4038 This is required by some streaming formats, typically the MPEG-2
4039 transport stream format (muxer "mpegts").
4040
4041 For example to remux an MP4 file containing an HEVC stream to mpegts
4042 format with ffmpeg, you can use the command:
4043
4044 ffmpeg -i INPUT.mp4 -codec copy -bsf:v hevc_mp4toannexb OUTPUT.ts
4045
4046 Please note that this filter is auto-inserted for MPEG-TS (muxer
4047 "mpegts") and raw HEVC/H.265 (muxer "h265" or "hevc") output formats.
4048
4049 imxdump
4050 Modifies the bitstream to fit in MOV and to be usable by the Final Cut
4051 Pro decoder. This filter only applies to the mpeg2video codec, and is
4052 likely not needed for Final Cut Pro 7 and newer with the appropriate
4053 -tag:v.
4054
4055 For example, to remux 30 MB/sec NTSC IMX to MOV:
4056
4057 ffmpeg -i input.mxf -c copy -bsf:v imxdump -tag:v mx3n output.mov
4058
4059 mjpeg2jpeg
4060 Convert MJPEG/AVI1 packets to full JPEG/JFIF packets.
4061
4062 MJPEG is a video codec wherein each video frame is essentially a JPEG
4063 image. The individual frames can be extracted without loss, e.g. by
4064
4065 ffmpeg -i ../some_mjpeg.avi -c:v copy frames_%d.jpg
4066
4067 Unfortunately, these chunks are incomplete JPEG images, because they
4068 lack the DHT segment required for decoding. Quoting from
4069 <http://www.digitalpreservation.gov/formats/fdd/fdd000063.shtml>:
4070
4071 Avery Lee, writing in the rec.video.desktop newsgroup in 2001,
4072 commented that "MJPEG, or at least the MJPEG in AVIs having the MJPG
4073 fourcc, is restricted JPEG with a fixed -- and *omitted* -- Huffman
4074 table. The JPEG must be YCbCr colorspace, it must be 4:2:2, and it must
4075 use basic Huffman encoding, not arithmetic or progressive. . . . You
4076 can indeed extract the MJPEG frames and decode them with a regular JPEG
4077 decoder, but you have to prepend the DHT segment to them, or else the
4078 decoder won't have any idea how to decompress the data. The exact table
4079 necessary is given in the OpenDML spec."
4080
4081 This bitstream filter patches the header of frames extracted from an
4082 MJPEG stream (carrying the AVI1 header ID and lacking a DHT segment) to
4083 produce fully qualified JPEG images.
4084
4085 ffmpeg -i mjpeg-movie.avi -c:v copy -bsf:v mjpeg2jpeg frame_%d.jpg
4086 exiftran -i -9 frame*.jpg
4087 ffmpeg -i frame_%d.jpg -c:v copy rotated.avi
4088
4089 mjpegadump
4090 Add an MJPEG A header to the bitstream, to enable decoding by
4091 Quicktime.
4092
4093 mov2textsub
4094 Extract a representable text file from MOV subtitles, stripping the
4095 metadata header from each subtitle packet.
4096
4097 See also the text2movsub filter.
4098
4099 mp3decomp
4100 Decompress non-standard compressed MP3 audio headers.
4101
4102 mpeg2_metadata
4103 Modify metadata embedded in an MPEG-2 stream.
4104
4105 display_aspect_ratio
4106 Set the display aspect ratio in the stream.
4107
4108 The following fixed values are supported:
4109
4110 4/3
4111 16/9
4112 221/100
4113
4114 Any other value will result in square pixels being signalled
4115 instead (see H.262 section 6.3.3 and table 6-3).
4116
4117 frame_rate
4118 Set the frame rate in the stream. This is constructed from a table
4119 of known values combined with a small multiplier and divisor - if
4120 the supplied value is not exactly representable, the nearest
4121 representable value will be used instead (see H.262 section 6.3.3
4122 and table 6-4).
4123
4124 video_format
4125 Set the video format in the stream (see H.262 section 6.3.6 and
4126 table 6-6).
4127
4128 colour_primaries
4129 transfer_characteristics
4130 matrix_coefficients
4131 Set the colour description in the stream (see H.262 section 6.3.6
4132 and tables 6-7, 6-8 and 6-9).
4133
4134 mpeg4_unpack_bframes
4135 Unpack DivX-style packed B-frames.
4136
4137 DivX-style packed B-frames are not valid MPEG-4 and were only a
4138 workaround for the broken Video for Windows subsystem. They use more
4139 space, can cause minor AV sync issues, require more CPU power to decode
4140 (unless the player has some decoded picture queue to compensate the
4141 2,0,2,0 frame per packet style) and cause trouble if copied into a
4142 standard container like mp4 or mpeg-ps/ts, because MPEG-4 decoders may
4143 not be able to decode them, since they are not valid MPEG-4.
4144
4145 For example to fix an AVI file containing an MPEG-4 stream with DivX-
4146 style packed B-frames using ffmpeg, you can use the command:
4147
4148 ffmpeg -i INPUT.avi -codec copy -bsf:v mpeg4_unpack_bframes OUTPUT.avi
4149
4150 noise
4151 Damages the contents of packets or simply drops them without damaging
4152 the container. Can be used for fuzzing or testing error
4153 resilience/concealment.
4154
4155 Parameters:
4156
4157 amount
4158 Accepts an expression whose evaluation per-packet determines how
4159 often bytes in that packet will be modified. A value below 0 will
4160 result in a variable frequency. Default is 0 which results in no
4161 modification. However, if neither amount nor drop is specified,
4162 amount will be set to -1. See below for accepted variables.
4163
4164 drop
4165 Accepts an expression evaluated per-packet whose value determines
4166 whether that packet is dropped. Evaluation to a positive value
4167 results in the packet being dropped. Evaluation to a negative value
4168 results in a variable chance of it being dropped, roughly inverse
4169 in proportion to the magnitude of the value. Default is 0 which
4170 results in no drops. See below for accepted variables.
4171
4172 dropamount
4173 Accepts a non-negative integer, which assigns a variable chance of
4174 it being dropped, roughly inverse in proportion to the value.
4175 Default is 0 which results in no drops. This option is kept for
4176 backwards compatibility and is equivalent to setting drop to a
4177 negative value with the same magnitude i.e. "dropamount=4" is the
4178 same as "drop=-4". Ignored if drop is also specified.
4179
4180 Both "amount" and "drop" accept expressions containing the following
4181 variables:
4182
4183 n The index of the packet, starting from zero.
4184
4185 tb The timebase for packet timestamps.
4186
4187 pts Packet presentation timestamp.
4188
4189 dts Packet decoding timestamp.
4190
4191 nopts
4192 Constant representing AV_NOPTS_VALUE.
4193
4194 startpts
4195 First non-AV_NOPTS_VALUE PTS seen in the stream.
4196
4197 startdts
4198 First non-AV_NOPTS_VALUE DTS seen in the stream.
4199
4200 duration
4201 d Packet duration, in timebase units.
4202
4203 pos Packet position in input; may be -1 when unknown or not set.
4204
4205 size
4206 Packet size, in bytes.
4207
4208 key Whether packet is marked as a keyframe.
4209
4210 state
4211 A pseudo random integer, primarily derived from the content of
4212 packet payload.
4213
4214 Examples
4215
4216 Apply modification to every byte but don't drop any packets.
4217
4218 ffmpeg -i INPUT -c copy -bsf noise=1 output.mkv
4219
4220 Drop every video packet not marked as a keyframe after timestamp 30s
4221 but do not modify any of the remaining packets.
4222
4223 ffmpeg -i INPUT -c copy -bsf:v noise=drop='gt(t\,30)*not(key)' output.mkv
4224
4225 Drop one second of audio every 10 seconds and add some random noise to
4226 the rest.
4227
4228 ffmpeg -i INPUT -c copy -bsf:a noise=amount=-1:drop='between(mod(t\,10)\,9\,10)' output.mkv
4229
4230 null
4231 This bitstream filter passes the packets through unchanged.
4232
4233 pcm_rechunk
4234 Repacketize PCM audio to a fixed number of samples per packet or a
4235 fixed packet rate per second. This is similar to the asetnsamples audio
4236 filter but works on audio packets instead of audio frames.
4237
4238 nb_out_samples, n
4239 Set the number of samples per each output audio packet. The number
4240 is intended as the number of samples per each channel. Default
4241 value is 1024.
4242
4243 pad, p
4244 If set to 1, the filter will pad the last audio packet with
4245 silence, so that it will contain the same number of samples (or
4246 roughly the same number of samples, see frame_rate) as the previous
4247 ones. Default value is 1.
4248
4249 frame_rate, r
4250 This option makes the filter output a fixed number of packets per
4251 second instead of a fixed number of samples per packet. If the
4252 audio sample rate is not divisible by the frame rate then the
4253 number of samples will not be constant but will vary slightly so
4254 that each packet will start as close to the frame boundary as
4255 possible. Using this option has precedence over nb_out_samples.
4256
4257 You can generate the well known 1602-1601-1602-1601-1602 pattern of
4258 48kHz audio for NTSC frame rate using the frame_rate option.
4259
4260 ffmpeg -f lavfi -i sine=r=48000:d=1 -c pcm_s16le -bsf pcm_rechunk=r=30000/1001 -f framecrc -
4261
4262 pgs_frame_merge
4263 Merge a sequence of PGS Subtitle segments ending with an "end of
4264 display set" segment into a single packet.
4265
4266 This is required by some containers that support PGS subtitles (muxer
4267 "matroska").
4268
4269 prores_metadata
4270 Modify color property metadata embedded in prores stream.
4271
4272 color_primaries
4273 Set the color primaries. Available values are:
4274
4275 auto
4276 Keep the same color primaries property (default).
4277
4278 unknown
4279 bt709
4280 bt470bg
4281 BT601 625
4282
4283 smpte170m
4284 BT601 525
4285
4286 bt2020
4287 smpte431
4288 DCI P3
4289
4290 smpte432
4291 P3 D65
4292
4293 transfer_characteristics
4294 Set the color transfer. Available values are:
4295
4296 auto
4297 Keep the same transfer characteristics property (default).
4298
4299 unknown
4300 bt709
4301 BT 601, BT 709, BT 2020
4302
4303 smpte2084
4304 SMPTE ST 2084
4305
4306 arib-std-b67
4307 ARIB STD-B67
4308
4309 matrix_coefficients
4310 Set the matrix coefficient. Available values are:
4311
4312 auto
4313 Keep the same colorspace property (default).
4314
4315 unknown
4316 bt709
4317 smpte170m
4318 BT 601
4319
4320 bt2020nc
4321
4322 Set Rec709 colorspace for each frame of the file
4323
4324 ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt709:color_trc=bt709:colorspace=bt709 output.mov
4325
4326 Set Hybrid Log-Gamma parameters for each frame of the file
4327
4328 ffmpeg -i INPUT -c copy -bsf:v prores_metadata=color_primaries=bt2020:color_trc=arib-std-b67:colorspace=bt2020nc output.mov
4329
4330 remove_extra
4331 Remove extradata from packets.
4332
4333 It accepts the following parameter:
4334
4335 freq
4336 Set which frame types to remove extradata from.
4337
4338 k Remove extradata from non-keyframes only.
4339
4340 keyframe
4341 Remove extradata from keyframes only.
4342
4343 e, all
4344 Remove extradata from all frames.
4345
4346 setts
4347 Set PTS and DTS in packets.
4348
4349 It accepts the following parameters:
4350
4351 ts
4352 pts
4353 dts Set expressions for PTS, DTS or both.
4354
4355 duration
4356 Set expression for duration.
4357
4358 time_base
4359 Set output time base.
4360
4361 The expressions are evaluated through the eval API and can contain the
4362 following constants:
4363
4364 N The count of the input packet. Starting from 0.
4365
4366 TS The demux timestamp in input in case of "ts" or "dts" option or
4367 presentation timestamp in case of "pts" option.
4368
4369 POS The original position in the file of the packet, or undefined if
4370 undefined for the current packet
4371
4372 DTS The demux timestamp in input.
4373
4374 PTS The presentation timestamp in input.
4375
4376 DURATION
4377 The duration in input.
4378
4379 STARTDTS
4380 The DTS of the first packet.
4381
4382 STARTPTS
4383 The PTS of the first packet.
4384
4385 PREV_INDTS
4386 The previous input DTS.
4387
4388 PREV_INPTS
4389 The previous input PTS.
4390
4391 PREV_INDURATION
4392 The previous input duration.
4393
4394 PREV_OUTDTS
4395 The previous output DTS.
4396
4397 PREV_OUTPTS
4398 The previous output PTS.
4399
4400 PREV_OUTDURATION
4401 The previous output duration.
4402
4403 NEXT_DTS
4404 The next input DTS.
4405
4406 NEXT_PTS
4407 The next input PTS.
4408
4409 NEXT_DURATION
4410 The next input duration.
4411
4412 TB The timebase of stream packet belongs.
4413
4414 TB_OUT
4415 The output timebase.
4416
4417 SR The sample rate of stream packet belongs.
4418
4419 NOPTS
4420 The AV_NOPTS_VALUE constant.
4421
4422 text2movsub
4423 Convert text subtitles to MOV subtitles (as used by the "mov_text"
4424 codec) with metadata headers.
4425
4426 See also the mov2textsub filter.
4427
4428 trace_headers
4429 Log trace output containing all syntax elements in the coded stream
4430 headers (everything above the level of individual coded blocks). This
4431 can be useful for debugging low-level stream issues.
4432
4433 Supports AV1, H.264, H.265, (M)JPEG, MPEG-2 and VP9, but depending on
4434 the build only a subset of these may be available.
4435
4436 truehd_core
4437 Extract the core from a TrueHD stream, dropping ATMOS data.
4438
4439 vp9_metadata
4440 Modify metadata embedded in a VP9 stream.
4441
4442 color_space
4443 Set the color space value in the frame header. Note that any frame
4444 set to RGB will be implicitly set to PC range and that RGB is
4445 incompatible with profiles 0 and 2.
4446
4447 unknown
4448 bt601
4449 bt709
4450 smpte170
4451 smpte240
4452 bt2020
4453 rgb
4454 color_range
4455 Set the color range value in the frame header. Note that any value
4456 imposed by the color space will take precedence over this value.
4457
4458 tv
4459 pc
4460
4461 vp9_superframe
4462 Merge VP9 invisible (alt-ref) frames back into VP9 superframes. This
4463 fixes merging of split/segmented VP9 streams where the alt-ref frame
4464 was split from its visible counterpart.
4465
4466 vp9_superframe_split
4467 Split VP9 superframes into single frames.
4468
4469 vp9_raw_reorder
4470 Given a VP9 stream with correct timestamps but possibly out of order,
4471 insert additional show-existing-frame packets to correct the ordering.
4472
4474 The libavformat library provides some generic global options, which can
4475 be set on all the muxers and demuxers. In addition each muxer or
4476 demuxer may support so-called private options, which are specific for
4477 that component.
4478
4479 Options may be set by specifying -option value in the FFmpeg tools, or
4480 by setting the value explicitly in the "AVFormatContext" options or
4481 using the libavutil/opt.h API for programmatic use.
4482
4483 The list of supported options follows:
4484
4485 avioflags flags (input/output)
4486 Possible values:
4487
4488 direct
4489 Reduce buffering.
4490
4491 probesize integer (input)
4492 Set probing size in bytes, i.e. the size of the data to analyze to
4493 get stream information. A higher value will enable detecting more
4494 information in case it is dispersed into the stream, but will
4495 increase latency. Must be an integer not lesser than 32. It is
4496 5000000 by default.
4497
4498 max_probe_packets integer (input)
4499 Set the maximum number of buffered packets when probing a codec.
4500 Default is 2500 packets.
4501
4502 packetsize integer (output)
4503 Set packet size.
4504
4505 fflags flags
4506 Set format flags. Some are implemented for a limited number of
4507 formats.
4508
4509 Possible values for input files:
4510
4511 discardcorrupt
4512 Discard corrupted packets.
4513
4514 fastseek
4515 Enable fast, but inaccurate seeks for some formats.
4516
4517 genpts
4518 Generate missing PTS if DTS is present.
4519
4520 igndts
4521 Ignore DTS if PTS is set. Inert when nofillin is set.
4522
4523 ignidx
4524 Ignore index.
4525
4526 nobuffer
4527 Reduce the latency introduced by buffering during initial input
4528 streams analysis.
4529
4530 nofillin
4531 Do not fill in missing values in packet fields that can be
4532 exactly calculated.
4533
4534 noparse
4535 Disable AVParsers, this needs "+nofillin" too.
4536
4537 sortdts
4538 Try to interleave output packets by DTS. At present, available
4539 only for AVIs with an index.
4540
4541 Possible values for output files:
4542
4543 autobsf
4544 Automatically apply bitstream filters as required by the output
4545 format. Enabled by default.
4546
4547 bitexact
4548 Only write platform-, build- and time-independent data. This
4549 ensures that file and data checksums are reproducible and match
4550 between platforms. Its primary use is for regression testing.
4551
4552 flush_packets
4553 Write out packets immediately.
4554
4555 shortest
4556 Stop muxing at the end of the shortest stream. It may be
4557 needed to increase max_interleave_delta to avoid flushing the
4558 longer streams before EOF.
4559
4560 seek2any integer (input)
4561 Allow seeking to non-keyframes on demuxer level when supported if
4562 set to 1. Default is 0.
4563
4564 analyzeduration integer (input)
4565 Specify how many microseconds are analyzed to probe the input. A
4566 higher value will enable detecting more accurate information, but
4567 will increase latency. It defaults to 5,000,000 microseconds = 5
4568 seconds.
4569
4570 cryptokey hexadecimal string (input)
4571 Set decryption key.
4572
4573 indexmem integer (input)
4574 Set max memory used for timestamp index (per stream).
4575
4576 rtbufsize integer (input)
4577 Set max memory used for buffering real-time frames.
4578
4579 fdebug flags (input/output)
4580 Print specific debug info.
4581
4582 Possible values:
4583
4584 ts
4585 max_delay integer (input/output)
4586 Set maximum muxing or demuxing delay in microseconds.
4587
4588 fpsprobesize integer (input)
4589 Set number of frames used to probe fps.
4590
4591 audio_preload integer (output)
4592 Set microseconds by which audio packets should be interleaved
4593 earlier.
4594
4595 chunk_duration integer (output)
4596 Set microseconds for each chunk.
4597
4598 chunk_size integer (output)
4599 Set size in bytes for each chunk.
4600
4601 err_detect, f_err_detect flags (input)
4602 Set error detection flags. "f_err_detect" is deprecated and should
4603 be used only via the ffmpeg tool.
4604
4605 Possible values:
4606
4607 crccheck
4608 Verify embedded CRCs.
4609
4610 bitstream
4611 Detect bitstream specification deviations.
4612
4613 buffer
4614 Detect improper bitstream length.
4615
4616 explode
4617 Abort decoding on minor error detection.
4618
4619 careful
4620 Consider things that violate the spec and have not been seen in
4621 the wild as errors.
4622
4623 compliant
4624 Consider all spec non compliancies as errors.
4625
4626 aggressive
4627 Consider things that a sane encoder should not do as an error.
4628
4629 max_interleave_delta integer (output)
4630 Set maximum buffering duration for interleaving. The duration is
4631 expressed in microseconds, and defaults to 10000000 (10 seconds).
4632
4633 To ensure all the streams are interleaved correctly, libavformat
4634 will wait until it has at least one packet for each stream before
4635 actually writing any packets to the output file. When some streams
4636 are "sparse" (i.e. there are large gaps between successive
4637 packets), this can result in excessive buffering.
4638
4639 This field specifies the maximum difference between the timestamps
4640 of the first and the last packet in the muxing queue, above which
4641 libavformat will output a packet regardless of whether it has
4642 queued a packet for all the streams.
4643
4644 If set to 0, libavformat will continue buffering packets until it
4645 has a packet for each stream, regardless of the maximum timestamp
4646 difference between the buffered packets.
4647
4648 use_wallclock_as_timestamps integer (input)
4649 Use wallclock as timestamps if set to 1. Default is 0.
4650
4651 avoid_negative_ts integer (output)
4652 Possible values:
4653
4654 make_non_negative
4655 Shift timestamps to make them non-negative. Also note that
4656 this affects only leading negative timestamps, and not non-
4657 monotonic negative timestamps.
4658
4659 make_zero
4660 Shift timestamps so that the first timestamp is 0.
4661
4662 auto (default)
4663 Enables shifting when required by the target format.
4664
4665 disabled
4666 Disables shifting of timestamp.
4667
4668 When shifting is enabled, all output timestamps are shifted by the
4669 same amount. Audio, video, and subtitles desynching and relative
4670 timestamp differences are preserved compared to how they would have
4671 been without shifting.
4672
4673 skip_initial_bytes integer (input)
4674 Set number of bytes to skip before reading header and frames if set
4675 to 1. Default is 0.
4676
4677 correct_ts_overflow integer (input)
4678 Correct single timestamp overflows if set to 1. Default is 1.
4679
4680 flush_packets integer (output)
4681 Flush the underlying I/O stream after each packet. Default is -1
4682 (auto), which means that the underlying protocol will decide, 1
4683 enables it, and has the effect of reducing the latency, 0 disables
4684 it and may increase IO throughput in some cases.
4685
4686 output_ts_offset offset (output)
4687 Set the output time offset.
4688
4689 offset must be a time duration specification, see the Time duration
4690 section in the ffmpeg-utils(1) manual.
4691
4692 The offset is added by the muxer to the output timestamps.
4693
4694 Specifying a positive offset means that the corresponding streams
4695 are delayed bt the time duration specified in offset. Default value
4696 is 0 (meaning that no offset is applied).
4697
4698 format_whitelist list (input)
4699 "," separated list of allowed demuxers. By default all are allowed.
4700
4701 dump_separator string (input)
4702 Separator used to separate the fields printed on the command line
4703 about the Stream parameters. For example, to separate the fields
4704 with newlines and indentation:
4705
4706 ffprobe -dump_separator "
4707 " -i ~/videos/matrixbench_mpeg2.mpg
4708
4709 max_streams integer (input)
4710 Specifies the maximum number of streams. This can be used to reject
4711 files that would require too many resources due to a large number
4712 of streams.
4713
4714 skip_estimate_duration_from_pts bool (input)
4715 Skip estimation of input duration when calculated using PTS. At
4716 present, applicable for MPEG-PS and MPEG-TS.
4717
4718 strict, f_strict integer (input/output)
4719 Specify how strictly to follow the standards. "f_strict" is
4720 deprecated and should be used only via the ffmpeg tool.
4721
4722 Possible values:
4723
4724 very
4725 strictly conform to an older more strict version of the spec or
4726 reference software
4727
4728 strict
4729 strictly conform to all the things in the spec no matter what
4730 consequences
4731
4732 normal
4733 unofficial
4734 allow unofficial extensions
4735
4736 experimental
4737 allow non standardized experimental things, experimental
4738 (unfinished/work in progress/not well tested) decoders and
4739 encoders. Note: experimental decoders can pose a security
4740 risk, do not use this for decoding untrusted input.
4741
4742 Format stream specifiers
4743 Format stream specifiers allow selection of one or more streams that
4744 match specific properties.
4745
4746 The exact semantics of stream specifiers is defined by the
4747 avformat_match_stream_specifier() function declared in the
4748 libavformat/avformat.h header and documented in the Stream specifiers
4749 section in the ffmpeg(1) manual.
4750
4752 Demuxers are configured elements in FFmpeg that can read the multimedia
4753 streams from a particular type of file.
4754
4755 When you configure your FFmpeg build, all the supported demuxers are
4756 enabled by default. You can list all available ones using the configure
4757 option "--list-demuxers".
4758
4759 You can disable all the demuxers using the configure option
4760 "--disable-demuxers", and selectively enable a single demuxer with the
4761 option "--enable-demuxer=DEMUXER", or disable it with the option
4762 "--disable-demuxer=DEMUXER".
4763
4764 The option "-demuxers" of the ff* tools will display the list of
4765 enabled demuxers. Use "-formats" to view a combined list of enabled
4766 demuxers and muxers.
4767
4768 The description of some of the currently available demuxers follows.
4769
4770 aa
4771 Audible Format 2, 3, and 4 demuxer.
4772
4773 This demuxer is used to demux Audible Format 2, 3, and 4 (.aa) files.
4774
4775 aac
4776 Raw Audio Data Transport Stream AAC demuxer.
4777
4778 This demuxer is used to demux an ADTS input containing a single AAC
4779 stream alongwith any ID3v1/2 or APE tags in it.
4780
4781 apng
4782 Animated Portable Network Graphics demuxer.
4783
4784 This demuxer is used to demux APNG files. All headers, but the PNG
4785 signature, up to (but not including) the first fcTL chunk are
4786 transmitted as extradata. Frames are then split as being all the
4787 chunks between two fcTL ones, or between the last fcTL and IEND chunks.
4788
4789 -ignore_loop bool
4790 Ignore the loop variable in the file if set. Default is enabled.
4791
4792 -max_fps int
4793 Maximum framerate in frames per second. Default of 0 imposes no
4794 limit.
4795
4796 -default_fps int
4797 Default framerate in frames per second when none is specified in
4798 the file (0 meaning as fast as possible). Default is 15.
4799
4800 asf
4801 Advanced Systems Format demuxer.
4802
4803 This demuxer is used to demux ASF files and MMS network streams.
4804
4805 -no_resync_search bool
4806 Do not try to resynchronize by looking for a certain optional start
4807 code.
4808
4809 concat
4810 Virtual concatenation script demuxer.
4811
4812 This demuxer reads a list of files and other directives from a text
4813 file and demuxes them one after the other, as if all their packets had
4814 been muxed together.
4815
4816 The timestamps in the files are adjusted so that the first file starts
4817 at 0 and each next file starts where the previous one finishes. Note
4818 that it is done globally and may cause gaps if all streams do not have
4819 exactly the same length.
4820
4821 All files must have the same streams (same codecs, same time base,
4822 etc.).
4823
4824 The duration of each file is used to adjust the timestamps of the next
4825 file: if the duration is incorrect (because it was computed using the
4826 bit-rate or because the file is truncated, for example), it can cause
4827 artifacts. The "duration" directive can be used to override the
4828 duration stored in each file.
4829
4830 Syntax
4831
4832 The script is a text file in extended-ASCII, with one directive per
4833 line. Empty lines, leading spaces and lines starting with '#' are
4834 ignored. The following directive is recognized:
4835
4836 "file path"
4837 Path to a file to read; special characters and spaces must be
4838 escaped with backslash or single quotes.
4839
4840 All subsequent file-related directives apply to that file.
4841
4842 "ffconcat version 1.0"
4843 Identify the script type and version.
4844
4845 To make FFmpeg recognize the format automatically, this directive
4846 must appear exactly as is (no extra space or byte-order-mark) on
4847 the very first line of the script.
4848
4849 "duration dur"
4850 Duration of the file. This information can be specified from the
4851 file; specifying it here may be more efficient or help if the
4852 information from the file is not available or accurate.
4853
4854 If the duration is set for all files, then it is possible to seek
4855 in the whole concatenated video.
4856
4857 "inpoint timestamp"
4858 In point of the file. When the demuxer opens the file it instantly
4859 seeks to the specified timestamp. Seeking is done so that all
4860 streams can be presented successfully at In point.
4861
4862 This directive works best with intra frame codecs, because for non-
4863 intra frame ones you will usually get extra packets before the
4864 actual In point and the decoded content will most likely contain
4865 frames before In point too.
4866
4867 For each file, packets before the file In point will have
4868 timestamps less than the calculated start timestamp of the file
4869 (negative in case of the first file), and the duration of the files
4870 (if not specified by the "duration" directive) will be reduced
4871 based on their specified In point.
4872
4873 Because of potential packets before the specified In point, packet
4874 timestamps may overlap between two concatenated files.
4875
4876 "outpoint timestamp"
4877 Out point of the file. When the demuxer reaches the specified
4878 decoding timestamp in any of the streams, it handles it as an end
4879 of file condition and skips the current and all the remaining
4880 packets from all streams.
4881
4882 Out point is exclusive, which means that the demuxer will not
4883 output packets with a decoding timestamp greater or equal to Out
4884 point.
4885
4886 This directive works best with intra frame codecs and formats where
4887 all streams are tightly interleaved. For non-intra frame codecs you
4888 will usually get additional packets with presentation timestamp
4889 after Out point therefore the decoded content will most likely
4890 contain frames after Out point too. If your streams are not tightly
4891 interleaved you may not get all the packets from all streams before
4892 Out point and you may only will be able to decode the earliest
4893 stream until Out point.
4894
4895 The duration of the files (if not specified by the "duration"
4896 directive) will be reduced based on their specified Out point.
4897
4898 "file_packet_metadata key=value"
4899 Metadata of the packets of the file. The specified metadata will be
4900 set for each file packet. You can specify this directive multiple
4901 times to add multiple metadata entries. This directive is
4902 deprecated, use "file_packet_meta" instead.
4903
4904 "file_packet_meta key value"
4905 Metadata of the packets of the file. The specified metadata will be
4906 set for each file packet. You can specify this directive multiple
4907 times to add multiple metadata entries.
4908
4909 "option key value"
4910 Option to access, open and probe the file. Can be present multiple
4911 times.
4912
4913 "stream"
4914 Introduce a stream in the virtual file. All subsequent stream-
4915 related directives apply to the last introduced stream. Some
4916 streams properties must be set in order to allow identifying the
4917 matching streams in the subfiles. If no streams are defined in the
4918 script, the streams from the first file are copied.
4919
4920 "exact_stream_id id"
4921 Set the id of the stream. If this directive is given, the string
4922 with the corresponding id in the subfiles will be used. This is
4923 especially useful for MPEG-PS (VOB) files, where the order of the
4924 streams is not reliable.
4925
4926 "stream_meta key value"
4927 Metadata for the stream. Can be present multiple times.
4928
4929 "stream_codec value"
4930 Codec for the stream.
4931
4932 "stream_extradata hex_string"
4933 Extradata for the string, encoded in hexadecimal.
4934
4935 "chapter id start end"
4936 Add a chapter. id is an unique identifier, possibly small and
4937 consecutive.
4938
4939 Options
4940
4941 This demuxer accepts the following option:
4942
4943 safe
4944 If set to 1, reject unsafe file paths and directives. A file path
4945 is considered safe if it does not contain a protocol specification
4946 and is relative and all components only contain characters from the
4947 portable character set (letters, digits, period, underscore and
4948 hyphen) and have no period at the beginning of a component.
4949
4950 If set to 0, any file name is accepted.
4951
4952 The default is 1.
4953
4954 auto_convert
4955 If set to 1, try to perform automatic conversions on packet data to
4956 make the streams concatenable. The default is 1.
4957
4958 Currently, the only conversion is adding the h264_mp4toannexb
4959 bitstream filter to H.264 streams in MP4 format. This is necessary
4960 in particular if there are resolution changes.
4961
4962 segment_time_metadata
4963 If set to 1, every packet will contain the lavf.concat.start_time
4964 and the lavf.concat.duration packet metadata values which are the
4965 start_time and the duration of the respective file segments in the
4966 concatenated output expressed in microseconds. The duration
4967 metadata is only set if it is known based on the concat file. The
4968 default is 0.
4969
4970 Examples
4971
4972 • Use absolute filenames and include some comments:
4973
4974 # my first filename
4975 file /mnt/share/file-1.wav
4976 # my second filename including whitespace
4977 file '/mnt/share/file 2.wav'
4978 # my third filename including whitespace plus single quote
4979 file '/mnt/share/file 3'\''.wav'
4980
4981 • Allow for input format auto-probing, use safe filenames and set the
4982 duration of the first file:
4983
4984 ffconcat version 1.0
4985
4986 file file-1.wav
4987 duration 20.0
4988
4989 file subdir/file-2.wav
4990
4991 dash
4992 Dynamic Adaptive Streaming over HTTP demuxer.
4993
4994 This demuxer presents all AVStreams found in the manifest. By setting
4995 the discard flags on AVStreams the caller can decide which streams to
4996 actually receive. Each stream mirrors the "id" and "bandwidth"
4997 properties from the "<Representation>" as metadata keys named "id" and
4998 "variant_bitrate" respectively.
4999
5000 Options
5001
5002 This demuxer accepts the following option:
5003
5004 cenc_decryption_key
5005 16-byte key, in hex, to decrypt files encrypted using ISO Common
5006 Encryption (CENC/AES-128 CTR; ISO/IEC 23001-7).
5007
5008 ea
5009 Electronic Arts Multimedia format demuxer.
5010
5011 This format is used by various Electronic Arts games.
5012
5013 Options
5014
5015 merge_alpha bool
5016 Normally the VP6 alpha channel (if exists) is returned as a
5017 secondary video stream, by setting this option you can make the
5018 demuxer return a single video stream which contains the alpha
5019 channel in addition to the ordinary video.
5020
5021 imf
5022 Interoperable Master Format demuxer.
5023
5024 This demuxer presents audio and video streams found in an IMF
5025 Composition.
5026
5027 flv, live_flv, kux
5028 Adobe Flash Video Format demuxer.
5029
5030 This demuxer is used to demux FLV files and RTMP network streams. In
5031 case of live network streams, if you force format, you may use live_flv
5032 option instead of flv to survive timestamp discontinuities. KUX is a
5033 flv variant used on the Youku platform.
5034
5035 ffmpeg -f flv -i myfile.flv ...
5036 ffmpeg -f live_flv -i rtmp://<any.server>/anything/key ....
5037
5038 -flv_metadata bool
5039 Allocate the streams according to the onMetaData array content.
5040
5041 -flv_ignore_prevtag bool
5042 Ignore the size of previous tag value.
5043
5044 -flv_full_metadata bool
5045 Output all context of the onMetadata.
5046
5047 gif
5048 Animated GIF demuxer.
5049
5050 It accepts the following options:
5051
5052 min_delay
5053 Set the minimum valid delay between frames in hundredths of
5054 seconds. Range is 0 to 6000. Default value is 2.
5055
5056 max_gif_delay
5057 Set the maximum valid delay between frames in hundredth of seconds.
5058 Range is 0 to 65535. Default value is 65535 (nearly eleven
5059 minutes), the maximum value allowed by the specification.
5060
5061 default_delay
5062 Set the default delay between frames in hundredths of seconds.
5063 Range is 0 to 6000. Default value is 10.
5064
5065 ignore_loop
5066 GIF files can contain information to loop a certain number of times
5067 (or infinitely). If ignore_loop is set to 1, then the loop setting
5068 from the input will be ignored and looping will not occur. If set
5069 to 0, then looping will occur and will cycle the number of times
5070 according to the GIF. Default value is 1.
5071
5072 For example, with the overlay filter, place an infinitely looping GIF
5073 over another video:
5074
5075 ffmpeg -i input.mp4 -ignore_loop 0 -i input.gif -filter_complex overlay=shortest=1 out.mkv
5076
5077 Note that in the above example the shortest option for overlay filter
5078 is used to end the output video at the length of the shortest input
5079 file, which in this case is input.mp4 as the GIF in this example loops
5080 infinitely.
5081
5082 hls
5083 HLS demuxer
5084
5085 Apple HTTP Live Streaming demuxer.
5086
5087 This demuxer presents all AVStreams from all variant streams. The id
5088 field is set to the bitrate variant index number. By setting the
5089 discard flags on AVStreams (by pressing 'a' or 'v' in ffplay), the
5090 caller can decide which variant streams to actually receive. The total
5091 bitrate of the variant that the stream belongs to is available in a
5092 metadata key named "variant_bitrate".
5093
5094 It accepts the following options:
5095
5096 live_start_index
5097 segment index to start live streams at (negative values are from
5098 the end).
5099
5100 prefer_x_start
5101 prefer to use #EXT-X-START if it's in playlist instead of
5102 live_start_index.
5103
5104 allowed_extensions
5105 ',' separated list of file extensions that hls is allowed to
5106 access.
5107
5108 max_reload
5109 Maximum number of times a insufficient list is attempted to be
5110 reloaded. Default value is 1000.
5111
5112 m3u8_hold_counters
5113 The maximum number of times to load m3u8 when it refreshes without
5114 new segments. Default value is 1000.
5115
5116 http_persistent
5117 Use persistent HTTP connections. Applicable only for HTTP streams.
5118 Enabled by default.
5119
5120 http_multiple
5121 Use multiple HTTP connections for downloading HTTP segments.
5122 Enabled by default for HTTP/1.1 servers.
5123
5124 http_seekable
5125 Use HTTP partial requests for downloading HTTP segments. 0 =
5126 disable, 1 = enable, -1 = auto, Default is auto.
5127
5128 seg_format_options
5129 Set options for the demuxer of media segments using a list of
5130 key=value pairs separated by ":".
5131
5132 seg_max_retry
5133 Maximum number of times to reload a segment on error, useful when
5134 segment skip on network error is not desired. Default value is 0.
5135
5136 image2
5137 Image file demuxer.
5138
5139 This demuxer reads from a list of image files specified by a pattern.
5140 The syntax and meaning of the pattern is specified by the option
5141 pattern_type.
5142
5143 The pattern may contain a suffix which is used to automatically
5144 determine the format of the images contained in the files.
5145
5146 The size, the pixel format, and the format of each image must be the
5147 same for all the files in the sequence.
5148
5149 This demuxer accepts the following options:
5150
5151 framerate
5152 Set the frame rate for the video stream. It defaults to 25.
5153
5154 loop
5155 If set to 1, loop over the input. Default value is 0.
5156
5157 pattern_type
5158 Select the pattern type used to interpret the provided filename.
5159
5160 pattern_type accepts one of the following values.
5161
5162 none
5163 Disable pattern matching, therefore the video will only contain
5164 the specified image. You should use this option if you do not
5165 want to create sequences from multiple images and your
5166 filenames may contain special pattern characters.
5167
5168 sequence
5169 Select a sequence pattern type, used to specify a sequence of
5170 files indexed by sequential numbers.
5171
5172 A sequence pattern may contain the string "%d" or "%0Nd", which
5173 specifies the position of the characters representing a
5174 sequential number in each filename matched by the pattern. If
5175 the form "%d0Nd" is used, the string representing the number in
5176 each filename is 0-padded and N is the total number of 0-padded
5177 digits representing the number. The literal character '%' can
5178 be specified in the pattern with the string "%%".
5179
5180 If the sequence pattern contains "%d" or "%0Nd", the first
5181 filename of the file list specified by the pattern must contain
5182 a number inclusively contained between start_number and
5183 start_number+start_number_range-1, and all the following
5184 numbers must be sequential.
5185
5186 For example the pattern "img-%03d.bmp" will match a sequence of
5187 filenames of the form img-001.bmp, img-002.bmp, ...,
5188 img-010.bmp, etc.; the pattern "i%%m%%g-%d.jpg" will match a
5189 sequence of filenames of the form i%m%g-1.jpg, i%m%g-2.jpg,
5190 ..., i%m%g-10.jpg, etc.
5191
5192 Note that the pattern must not necessarily contain "%d" or
5193 "%0Nd", for example to convert a single image file img.jpeg you
5194 can employ the command:
5195
5196 ffmpeg -i img.jpeg img.png
5197
5198 glob
5199 Select a glob wildcard pattern type.
5200
5201 The pattern is interpreted like a glob() pattern. This is only
5202 selectable if libavformat was compiled with globbing support.
5203
5204 glob_sequence (deprecated, will be removed)
5205 Select a mixed glob wildcard/sequence pattern.
5206
5207 If your version of libavformat was compiled with globbing
5208 support, and the provided pattern contains at least one glob
5209 meta character among "%*?[]{}" that is preceded by an unescaped
5210 "%", the pattern is interpreted like a glob() pattern,
5211 otherwise it is interpreted like a sequence pattern.
5212
5213 All glob special characters "%*?[]{}" must be prefixed with
5214 "%". To escape a literal "%" you shall use "%%".
5215
5216 For example the pattern "foo-%*.jpeg" will match all the
5217 filenames prefixed by "foo-" and terminating with ".jpeg", and
5218 "foo-%?%?%?.jpeg" will match all the filenames prefixed with
5219 "foo-", followed by a sequence of three characters, and
5220 terminating with ".jpeg".
5221
5222 This pattern type is deprecated in favor of glob and sequence.
5223
5224 Default value is glob_sequence.
5225
5226 pixel_format
5227 Set the pixel format of the images to read. If not specified the
5228 pixel format is guessed from the first image file in the sequence.
5229
5230 start_number
5231 Set the index of the file matched by the image file pattern to
5232 start to read from. Default value is 0.
5233
5234 start_number_range
5235 Set the index interval range to check when looking for the first
5236 image file in the sequence, starting from start_number. Default
5237 value is 5.
5238
5239 ts_from_file
5240 If set to 1, will set frame timestamp to modification time of image
5241 file. Note that monotonity of timestamps is not provided: images go
5242 in the same order as without this option. Default value is 0. If
5243 set to 2, will set frame timestamp to the modification time of the
5244 image file in nanosecond precision.
5245
5246 video_size
5247 Set the video size of the images to read. If not specified the
5248 video size is guessed from the first image file in the sequence.
5249
5250 export_path_metadata
5251 If set to 1, will add two extra fields to the metadata found in
5252 input, making them also available for other filters (see drawtext
5253 filter for examples). Default value is 0. The extra fields are
5254 described below:
5255
5256 lavf.image2dec.source_path
5257 Corresponds to the full path to the input file being read.
5258
5259 lavf.image2dec.source_basename
5260 Corresponds to the name of the file being read.
5261
5262 Examples
5263
5264 • Use ffmpeg for creating a video from the images in the file
5265 sequence img-001.jpeg, img-002.jpeg, ..., assuming an input frame
5266 rate of 10 frames per second:
5267
5268 ffmpeg -framerate 10 -i 'img-%03d.jpeg' out.mkv
5269
5270 • As above, but start by reading from a file with index 100 in the
5271 sequence:
5272
5273 ffmpeg -framerate 10 -start_number 100 -i 'img-%03d.jpeg' out.mkv
5274
5275 • Read images matching the "*.png" glob pattern , that is all the
5276 files terminating with the ".png" suffix:
5277
5278 ffmpeg -framerate 10 -pattern_type glob -i "*.png" out.mkv
5279
5280 libgme
5281 The Game Music Emu library is a collection of video game music file
5282 emulators.
5283
5284 See <https://bitbucket.org/mpyne/game-music-emu/overview> for more
5285 information.
5286
5287 It accepts the following options:
5288
5289 track_index
5290 Set the index of which track to demux. The demuxer can only export
5291 one track. Track indexes start at 0. Default is to pick the first
5292 track. Number of tracks is exported as tracks metadata entry.
5293
5294 sample_rate
5295 Set the sampling rate of the exported track. Range is 1000 to
5296 999999. Default is 44100.
5297
5298 max_size (bytes)
5299 The demuxer buffers the entire file into memory. Adjust this value
5300 to set the maximum buffer size, which in turn, acts as a ceiling
5301 for the size of files that can be read. Default is 50 MiB.
5302
5303 libmodplug
5304 ModPlug based module demuxer
5305
5306 See <https://github.com/Konstanty/libmodplug>
5307
5308 It will export one 2-channel 16-bit 44.1 kHz audio stream. Optionally,
5309 a "pal8" 16-color video stream can be exported with or without printed
5310 metadata.
5311
5312 It accepts the following options:
5313
5314 noise_reduction
5315 Apply a simple low-pass filter. Can be 1 (on) or 0 (off). Default
5316 is 0.
5317
5318 reverb_depth
5319 Set amount of reverb. Range 0-100. Default is 0.
5320
5321 reverb_delay
5322 Set delay in ms, clamped to 40-250 ms. Default is 0.
5323
5324 bass_amount
5325 Apply bass expansion a.k.a. XBass or megabass. Range is 0 (quiet)
5326 to 100 (loud). Default is 0.
5327
5328 bass_range
5329 Set cutoff i.e. upper-bound for bass frequencies. Range is 10-100
5330 Hz. Default is 0.
5331
5332 surround_depth
5333 Apply a Dolby Pro-Logic surround effect. Range is 0 (quiet) to 100
5334 (heavy). Default is 0.
5335
5336 surround_delay
5337 Set surround delay in ms, clamped to 5-40 ms. Default is 0.
5338
5339 max_size
5340 The demuxer buffers the entire file into memory. Adjust this value
5341 to set the maximum buffer size, which in turn, acts as a ceiling
5342 for the size of files that can be read. Range is 0 to 100 MiB. 0
5343 removes buffer size limit (not recommended). Default is 5 MiB.
5344
5345 video_stream_expr
5346 String which is evaluated using the eval API to assign colors to
5347 the generated video stream. Variables which can be used are "x",
5348 "y", "w", "h", "t", "speed", "tempo", "order", "pattern" and "row".
5349
5350 video_stream
5351 Generate video stream. Can be 1 (on) or 0 (off). Default is 0.
5352
5353 video_stream_w
5354 Set video frame width in 'chars' where one char indicates 8 pixels.
5355 Range is 20-512. Default is 30.
5356
5357 video_stream_h
5358 Set video frame height in 'chars' where one char indicates 8
5359 pixels. Range is 20-512. Default is 30.
5360
5361 video_stream_ptxt
5362 Print metadata on video stream. Includes "speed", "tempo", "order",
5363 "pattern", "row" and "ts" (time in ms). Can be 1 (on) or 0 (off).
5364 Default is 1.
5365
5366 libopenmpt
5367 libopenmpt based module demuxer
5368
5369 See <https://lib.openmpt.org/libopenmpt/> for more information.
5370
5371 Some files have multiple subsongs (tracks) this can be set with the
5372 subsong option.
5373
5374 It accepts the following options:
5375
5376 subsong
5377 Set the subsong index. This can be either 'all', 'auto', or the
5378 index of the subsong. Subsong indexes start at 0. The default is
5379 'auto'.
5380
5381 The default value is to let libopenmpt choose.
5382
5383 layout
5384 Set the channel layout. Valid values are 1, 2, and 4 channel
5385 layouts. The default value is STEREO.
5386
5387 sample_rate
5388 Set the sample rate for libopenmpt to output. Range is from 1000
5389 to INT_MAX. The value default is 48000.
5390
5391 mov/mp4/3gp
5392 Demuxer for Quicktime File Format & ISO/IEC Base Media File Format
5393 (ISO/IEC 14496-12 or MPEG-4 Part 12, ISO/IEC 15444-12 or JPEG 2000 Part
5394 12).
5395
5396 Registered extensions: mov, mp4, m4a, 3gp, 3g2, mj2, psp, m4b, ism,
5397 ismv, isma, f4v
5398
5399 Options
5400
5401 This demuxer accepts the following options:
5402
5403 enable_drefs
5404 Enable loading of external tracks, disabled by default. Enabling
5405 this can theoretically leak information in some use cases.
5406
5407 use_absolute_path
5408 Allows loading of external tracks via absolute paths, disabled by
5409 default. Enabling this poses a security risk. It should only be
5410 enabled if the source is known to be non-malicious.
5411
5412 seek_streams_individually
5413 When seeking, identify the closest point in each stream
5414 individually and demux packets in that stream from identified
5415 point. This can lead to a different sequence of packets compared to
5416 demuxing linearly from the beginning. Default is true.
5417
5418 ignore_editlist
5419 Ignore any edit list atoms. The demuxer, by default, modifies the
5420 stream index to reflect the timeline described by the edit list.
5421 Default is false.
5422
5423 advanced_editlist
5424 Modify the stream index to reflect the timeline described by the
5425 edit list. "ignore_editlist" must be set to false for this option
5426 to be effective. If both "ignore_editlist" and this option are set
5427 to false, then only the start of the stream index is modified to
5428 reflect initial dwell time or starting timestamp described by the
5429 edit list. Default is true.
5430
5431 ignore_chapters
5432 Don't parse chapters. This includes GoPro 'HiLight' tags/moments.
5433 Note that chapters are only parsed when input is seekable. Default
5434 is false.
5435
5436 use_mfra_for
5437 For seekable fragmented input, set fragment's starting timestamp
5438 from media fragment random access box, if present.
5439
5440 Following options are available:
5441
5442 auto
5443 Auto-detect whether to set mfra timestamps as PTS or DTS
5444 (default)
5445
5446 dts Set mfra timestamps as DTS
5447
5448 pts Set mfra timestamps as PTS
5449
5450 0 Don't use mfra box to set timestamps
5451
5452 use_tfdt
5453 For fragmented input, set fragment's starting timestamp to
5454 "baseMediaDecodeTime" from the "tfdt" box. Default is enabled,
5455 which will prefer to use the "tfdt" box to set DTS. Disable to use
5456 the "earliest_presentation_time" from the "sidx" box. In either
5457 case, the timestamp from the "mfra" box will be used if it's
5458 available and "use_mfra_for" is set to pts or dts.
5459
5460 export_all
5461 Export unrecognized boxes within the udta box as metadata entries.
5462 The first four characters of the box type are set as the key.
5463 Default is false.
5464
5465 export_xmp
5466 Export entire contents of XMP_ box and uuid box as a string with
5467 key "xmp". Note that if "export_all" is set and this option isn't,
5468 the contents of XMP_ box are still exported but with key "XMP_".
5469 Default is false.
5470
5471 activation_bytes
5472 4-byte key required to decrypt Audible AAX and AAX+ files. See
5473 Audible AAX subsection below.
5474
5475 audible_fixed_key
5476 Fixed key used for handling Audible AAX/AAX+ files. It has been
5477 pre-set so should not be necessary to specify.
5478
5479 decryption_key
5480 16-byte key, in hex, to decrypt files encrypted using ISO Common
5481 Encryption (CENC/AES-128 CTR; ISO/IEC 23001-7).
5482
5483 max_stts_delta
5484 Very high sample deltas written in a trak's stts box may
5485 occasionally be intended but usually they are written in error or
5486 used to store a negative value for dts correction when treated as
5487 signed 32-bit integers. This option lets the user set an upper
5488 limit, beyond which the delta is clamped to 1. Values greater than
5489 the limit if negative when cast to int32 are used to adjust onward
5490 dts.
5491
5492 Unit is the track time scale. Range is 0 to UINT_MAX. Default is
5493 "UINT_MAX - 48000*10" which allows upto a 10 second dts correction
5494 for 48 kHz audio streams while accommodating 99.9% of "uint32"
5495 range.
5496
5497 Audible AAX
5498
5499 Audible AAX files are encrypted M4B files, and they can be decrypted by
5500 specifying a 4 byte activation secret.
5501
5502 ffmpeg -activation_bytes 1CEB00DA -i test.aax -vn -c:a copy output.mp4
5503
5504 mpegts
5505 MPEG-2 transport stream demuxer.
5506
5507 This demuxer accepts the following options:
5508
5509 resync_size
5510 Set size limit for looking up a new synchronization. Default value
5511 is 65536.
5512
5513 skip_unknown_pmt
5514 Skip PMTs for programs not defined in the PAT. Default value is 0.
5515
5516 fix_teletext_pts
5517 Override teletext packet PTS and DTS values with the timestamps
5518 calculated from the PCR of the first program which the teletext
5519 stream is part of and is not discarded. Default value is 1, set
5520 this option to 0 if you want your teletext packet PTS and DTS
5521 values untouched.
5522
5523 ts_packetsize
5524 Output option carrying the raw packet size in bytes. Show the
5525 detected raw packet size, cannot be set by the user.
5526
5527 scan_all_pmts
5528 Scan and combine all PMTs. The value is an integer with value from
5529 -1 to 1 (-1 means automatic setting, 1 means enabled, 0 means
5530 disabled). Default value is -1.
5531
5532 merge_pmt_versions
5533 Re-use existing streams when a PMT's version is updated and
5534 elementary streams move to different PIDs. Default value is 0.
5535
5536 max_packet_size
5537 Set maximum size, in bytes, of packet emitted by the demuxer.
5538 Payloads above this size are split across multiple packets. Range
5539 is 1 to INT_MAX/2. Default is 204800 bytes.
5540
5541 mpjpeg
5542 MJPEG encapsulated in multi-part MIME demuxer.
5543
5544 This demuxer allows reading of MJPEG, where each frame is represented
5545 as a part of multipart/x-mixed-replace stream.
5546
5547 strict_mime_boundary
5548 Default implementation applies a relaxed standard to multi-part
5549 MIME boundary detection, to prevent regression with numerous
5550 existing endpoints not generating a proper MIME MJPEG stream.
5551 Turning this option on by setting it to 1 will result in a stricter
5552 check of the boundary value.
5553
5554 rawvideo
5555 Raw video demuxer.
5556
5557 This demuxer allows one to read raw video data. Since there is no
5558 header specifying the assumed video parameters, the user must specify
5559 them in order to be able to decode the data correctly.
5560
5561 This demuxer accepts the following options:
5562
5563 framerate
5564 Set input video frame rate. Default value is 25.
5565
5566 pixel_format
5567 Set the input video pixel format. Default value is "yuv420p".
5568
5569 video_size
5570 Set the input video size. This value must be specified explicitly.
5571
5572 For example to read a rawvideo file input.raw with ffplay, assuming a
5573 pixel format of "rgb24", a video size of "320x240", and a frame rate of
5574 10 images per second, use the command:
5575
5576 ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw
5577
5578 sbg
5579 SBaGen script demuxer.
5580
5581 This demuxer reads the script language used by SBaGen
5582 <http://uazu.net/sbagen/> to generate binaural beats sessions. A SBG
5583 script looks like that:
5584
5585 -SE
5586 a: 300-2.5/3 440+4.5/0
5587 b: 300-2.5/0 440+4.5/3
5588 off: -
5589 NOW == a
5590 +0:07:00 == b
5591 +0:14:00 == a
5592 +0:21:00 == b
5593 +0:30:00 off
5594
5595 A SBG script can mix absolute and relative timestamps. If the script
5596 uses either only absolute timestamps (including the script start time)
5597 or only relative ones, then its layout is fixed, and the conversion is
5598 straightforward. On the other hand, if the script mixes both kind of
5599 timestamps, then the NOW reference for relative timestamps will be
5600 taken from the current time of day at the time the script is read, and
5601 the script layout will be frozen according to that reference. That
5602 means that if the script is directly played, the actual times will
5603 match the absolute timestamps up to the sound controller's clock
5604 accuracy, but if the user somehow pauses the playback or seeks, all
5605 times will be shifted accordingly.
5606
5607 tedcaptions
5608 JSON captions used for <http://www.ted.com/>.
5609
5610 TED does not provide links to the captions, but they can be guessed
5611 from the page. The file tools/bookmarklets.html from the FFmpeg source
5612 tree contains a bookmarklet to expose them.
5613
5614 This demuxer accepts the following option:
5615
5616 start_time
5617 Set the start time of the TED talk, in milliseconds. The default is
5618 15000 (15s). It is used to sync the captions with the downloadable
5619 videos, because they include a 15s intro.
5620
5621 Example: convert the captions to a format most players understand:
5622
5623 ffmpeg -i http://www.ted.com/talks/subtitles/id/1/lang/en talk1-en.srt
5624
5625 vapoursynth
5626 Vapoursynth wrapper.
5627
5628 Due to security concerns, Vapoursynth scripts will not be autodetected
5629 so the input format has to be forced. For ff* CLI tools, add "-f
5630 vapoursynth" before the input "-i yourscript.vpy".
5631
5632 This demuxer accepts the following option:
5633
5634 max_script_size
5635 The demuxer buffers the entire script into memory. Adjust this
5636 value to set the maximum buffer size, which in turn, acts as a
5637 ceiling for the size of scripts that can be read. Default is 1
5638 MiB.
5639
5641 FFmpeg is able to dump metadata from media files into a simple
5642 UTF-8-encoded INI-like text file and then load it back using the
5643 metadata muxer/demuxer.
5644
5645 The file format is as follows:
5646
5647 1. A file consists of a header and a number of metadata tags divided
5648 into sections, each on its own line.
5649
5650 2. The header is a ;FFMETADATA string, followed by a version number
5651 (now 1).
5652
5653 3. Metadata tags are of the form key=value
5654
5655 4. Immediately after header follows global metadata
5656
5657 5. After global metadata there may be sections with
5658 per-stream/per-chapter metadata.
5659
5660 6. A section starts with the section name in uppercase (i.e. STREAM or
5661 CHAPTER) in brackets ([, ]) and ends with next section or end of
5662 file.
5663
5664 7. At the beginning of a chapter section there may be an optional
5665 timebase to be used for start/end values. It must be in form
5666 TIMEBASE=num/den, where num and den are integers. If the timebase
5667 is missing then start/end times are assumed to be in nanoseconds.
5668
5669 Next a chapter section must contain chapter start and end times in
5670 form START=num, END=num, where num is a positive integer.
5671
5672 8. Empty lines and lines starting with ; or # are ignored.
5673
5674 9. Metadata keys or values containing special characters (=, ;, #, \
5675 and a newline) must be escaped with a backslash \.
5676
5677 10. Note that whitespace in metadata (e.g. foo = bar) is considered to
5678 be a part of the tag (in the example above key is foo , value is
5679 bar).
5680
5681 A ffmetadata file might look like this:
5682
5683 ;FFMETADATA1
5684 title=bike\\shed
5685 ;this is a comment
5686 artist=FFmpeg troll team
5687
5688 [CHAPTER]
5689 TIMEBASE=1/1000
5690 START=0
5691 #chapter ends at 0:01:00
5692 END=60000
5693 title=chapter \#1
5694 [STREAM]
5695 title=multi\
5696 line
5697
5698 By using the ffmetadata muxer and demuxer it is possible to extract
5699 metadata from an input file to an ffmetadata file, and then transcode
5700 the file into an output file with the edited ffmetadata file.
5701
5702 Extracting an ffmetadata file with ffmpeg goes as follows:
5703
5704 ffmpeg -i INPUT -f ffmetadata FFMETADATAFILE
5705
5706 Reinserting edited metadata information from the FFMETADATAFILE file
5707 can be done as:
5708
5709 ffmpeg -i INPUT -i FFMETADATAFILE -map_metadata 1 -codec copy OUTPUT
5710
5712 The libavformat library provides some generic global options, which can
5713 be set on all the protocols. In addition each protocol may support so-
5714 called private options, which are specific for that component.
5715
5716 Options may be set by specifying -option value in the FFmpeg tools, or
5717 by setting the value explicitly in the "AVFormatContext" options or
5718 using the libavutil/opt.h API for programmatic use.
5719
5720 The list of supported options follows:
5721
5722 protocol_whitelist list (input)
5723 Set a ","-separated list of allowed protocols. "ALL" matches all
5724 protocols. Protocols prefixed by "-" are disabled. All protocols
5725 are allowed by default but protocols used by an another protocol
5726 (nested protocols) are restricted to a per protocol subset.
5727
5729 Protocols are configured elements in FFmpeg that enable access to
5730 resources that require specific protocols.
5731
5732 When you configure your FFmpeg build, all the supported protocols are
5733 enabled by default. You can list all available ones using the configure
5734 option "--list-protocols".
5735
5736 You can disable all the protocols using the configure option
5737 "--disable-protocols", and selectively enable a protocol using the
5738 option "--enable-protocol=PROTOCOL", or you can disable a particular
5739 protocol using the option "--disable-protocol=PROTOCOL".
5740
5741 The option "-protocols" of the ff* tools will display the list of
5742 supported protocols.
5743
5744 All protocols accept the following options:
5745
5746 rw_timeout
5747 Maximum time to wait for (network) read/write operations to
5748 complete, in microseconds.
5749
5750 A description of the currently available protocols follows.
5751
5752 amqp
5753 Advanced Message Queueing Protocol (AMQP) version 0-9-1 is a broker
5754 based publish-subscribe communication protocol.
5755
5756 FFmpeg must be compiled with --enable-librabbitmq to support AMQP. A
5757 separate AMQP broker must also be run. An example open-source AMQP
5758 broker is RabbitMQ.
5759
5760 After starting the broker, an FFmpeg client may stream data to the
5761 broker using the command:
5762
5763 ffmpeg -re -i input -f mpegts amqp://[[user]:[password]@]hostname[:port][/vhost]
5764
5765 Where hostname and port (default is 5672) is the address of the broker.
5766 The client may also set a user/password for authentication. The default
5767 for both fields is "guest". Name of virtual host on broker can be set
5768 with vhost. The default value is "/".
5769
5770 Muliple subscribers may stream from the broker using the command:
5771
5772 ffplay amqp://[[user]:[password]@]hostname[:port][/vhost]
5773
5774 In RabbitMQ all data published to the broker flows through a specific
5775 exchange, and each subscribing client has an assigned queue/buffer.
5776 When a packet arrives at an exchange, it may be copied to a client's
5777 queue depending on the exchange and routing_key fields.
5778
5779 The following options are supported:
5780
5781 exchange
5782 Sets the exchange to use on the broker. RabbitMQ has several
5783 predefined exchanges: "amq.direct" is the default exchange, where
5784 the publisher and subscriber must have a matching routing_key;
5785 "amq.fanout" is the same as a broadcast operation (i.e. the data is
5786 forwarded to all queues on the fanout exchange independent of the
5787 routing_key); and "amq.topic" is similar to "amq.direct", but
5788 allows for more complex pattern matching (refer to the RabbitMQ
5789 documentation).
5790
5791 routing_key
5792 Sets the routing key. The default value is "amqp". The routing key
5793 is used on the "amq.direct" and "amq.topic" exchanges to decide
5794 whether packets are written to the queue of a subscriber.
5795
5796 pkt_size
5797 Maximum size of each packet sent/received to the broker. Default is
5798 131072. Minimum is 4096 and max is any large value (representable
5799 by an int). When receiving packets, this sets an internal buffer
5800 size in FFmpeg. It should be equal to or greater than the size of
5801 the published packets to the broker. Otherwise the received message
5802 may be truncated causing decoding errors.
5803
5804 connection_timeout
5805 The timeout in seconds during the initial connection to the broker.
5806 The default value is rw_timeout, or 5 seconds if rw_timeout is not
5807 set.
5808
5809 delivery_mode mode
5810 Sets the delivery mode of each message sent to broker. The
5811 following values are accepted:
5812
5813 persistent
5814 Delivery mode set to "persistent" (2). This is the default
5815 value. Messages may be written to the broker's disk depending
5816 on its setup.
5817
5818 non-persistent
5819 Delivery mode set to "non-persistent" (1). Messages will stay
5820 in broker's memory unless the broker is under memory pressure.
5821
5822 async
5823 Asynchronous data filling wrapper for input stream.
5824
5825 Fill data in a background thread, to decouple I/O operation from demux
5826 thread.
5827
5828 async:<URL>
5829 async:http://host/resource
5830 async:cache:http://host/resource
5831
5832 bluray
5833 Read BluRay playlist.
5834
5835 The accepted options are:
5836
5837 angle
5838 BluRay angle
5839
5840 chapter
5841 Start chapter (1...N)
5842
5843 playlist
5844 Playlist to read (BDMV/PLAYLIST/?????.mpls)
5845
5846 Examples:
5847
5848 Read longest playlist from BluRay mounted to /mnt/bluray:
5849
5850 bluray:/mnt/bluray
5851
5852 Read angle 2 of playlist 4 from BluRay mounted to /mnt/bluray, start
5853 from chapter 2:
5854
5855 -playlist 4 -angle 2 -chapter 2 bluray:/mnt/bluray
5856
5857 cache
5858 Caching wrapper for input stream.
5859
5860 Cache the input stream to temporary file. It brings seeking capability
5861 to live streams.
5862
5863 The accepted options are:
5864
5865 read_ahead_limit
5866 Amount in bytes that may be read ahead when seeking isn't
5867 supported. Range is -1 to INT_MAX. -1 for unlimited. Default is
5868 65536.
5869
5870 URL Syntax is
5871
5872 cache:<URL>
5873
5874 concat
5875 Physical concatenation protocol.
5876
5877 Read and seek from many resources in sequence as if they were a unique
5878 resource.
5879
5880 A URL accepted by this protocol has the syntax:
5881
5882 concat:<URL1>|<URL2>|...|<URLN>
5883
5884 where URL1, URL2, ..., URLN are the urls of the resource to be
5885 concatenated, each one possibly specifying a distinct protocol.
5886
5887 For example to read a sequence of files split1.mpeg, split2.mpeg,
5888 split3.mpeg with ffplay use the command:
5889
5890 ffplay concat:split1.mpeg\|split2.mpeg\|split3.mpeg
5891
5892 Note that you may need to escape the character "|" which is special for
5893 many shells.
5894
5895 concatf
5896 Physical concatenation protocol using a line break delimited list of
5897 resources.
5898
5899 Read and seek from many resources in sequence as if they were a unique
5900 resource.
5901
5902 A URL accepted by this protocol has the syntax:
5903
5904 concatf:<URL>
5905
5906 where URL is the url containing a line break delimited list of
5907 resources to be concatenated, each one possibly specifying a distinct
5908 protocol. Special characters must be escaped with backslash or single
5909 quotes. See the "Quoting and escaping" section in the ffmpeg-utils(1)
5910 manual.
5911
5912 For example to read a sequence of files split1.mpeg, split2.mpeg,
5913 split3.mpeg listed in separate lines within a file split.txt with
5914 ffplay use the command:
5915
5916 ffplay concatf:split.txt
5917
5918 Where split.txt contains the lines:
5919
5920 split1.mpeg
5921 split2.mpeg
5922 split3.mpeg
5923
5924 crypto
5925 AES-encrypted stream reading protocol.
5926
5927 The accepted options are:
5928
5929 key Set the AES decryption key binary block from given hexadecimal
5930 representation.
5931
5932 iv Set the AES decryption initialization vector binary block from
5933 given hexadecimal representation.
5934
5935 Accepted URL formats:
5936
5937 crypto:<URL>
5938 crypto+<URL>
5939
5940 data
5941 Data in-line in the URI. See
5942 <http://en.wikipedia.org/wiki/Data_URI_scheme>.
5943
5944 For example, to convert a GIF file given inline with ffmpeg:
5945
5946 ffmpeg -i "data:image/gif;base64,R0lGODdhCAAIAMIEAAAAAAAA//8AAP//AP///////////////ywAAAAACAAIAAADF0gEDLojDgdGiJdJqUX02iB4E8Q9jUMkADs=" smiley.png
5947
5948 fd
5949 File descriptor access protocol.
5950
5951 The accepted syntax is:
5952
5953 fd: -fd <file_descriptor>
5954
5955 If fd is not specified, by default the stdout file descriptor will be
5956 used for writing, stdin for reading. Unlike the pipe protocol, fd
5957 protocol has seek support if it corresponding to a regular file. fd
5958 protocol doesn't support pass file descriptor via URL for security.
5959
5960 This protocol accepts the following options:
5961
5962 blocksize
5963 Set I/O operation maximum block size, in bytes. Default value is
5964 "INT_MAX", which results in not limiting the requested block size.
5965 Setting this value reasonably low improves user termination request
5966 reaction time, which is valuable if data transmission is slow.
5967
5968 fd Set file descriptor.
5969
5970 file
5971 File access protocol.
5972
5973 Read from or write to a file.
5974
5975 A file URL can have the form:
5976
5977 file:<filename>
5978
5979 where filename is the path of the file to read.
5980
5981 An URL that does not have a protocol prefix will be assumed to be a
5982 file URL. Depending on the build, an URL that looks like a Windows path
5983 with the drive letter at the beginning will also be assumed to be a
5984 file URL (usually not the case in builds for unix-like systems).
5985
5986 For example to read from a file input.mpeg with ffmpeg use the command:
5987
5988 ffmpeg -i file:input.mpeg output.mpeg
5989
5990 This protocol accepts the following options:
5991
5992 truncate
5993 Truncate existing files on write, if set to 1. A value of 0
5994 prevents truncating. Default value is 1.
5995
5996 blocksize
5997 Set I/O operation maximum block size, in bytes. Default value is
5998 "INT_MAX", which results in not limiting the requested block size.
5999 Setting this value reasonably low improves user termination request
6000 reaction time, which is valuable for files on slow medium.
6001
6002 follow
6003 If set to 1, the protocol will retry reading at the end of the
6004 file, allowing reading files that still are being written. In order
6005 for this to terminate, you either need to use the rw_timeout
6006 option, or use the interrupt callback (for API users).
6007
6008 seekable
6009 Controls if seekability is advertised on the file. 0 means non-
6010 seekable, -1 means auto (seekable for normal files, non-seekable
6011 for named pipes).
6012
6013 Many demuxers handle seekable and non-seekable resources
6014 differently, overriding this might speed up opening certain files
6015 at the cost of losing some features (e.g. accurate seeking).
6016
6017 ftp
6018 FTP (File Transfer Protocol).
6019
6020 Read from or write to remote resources using FTP protocol.
6021
6022 Following syntax is required.
6023
6024 ftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
6025
6026 This protocol accepts the following options.
6027
6028 timeout
6029 Set timeout in microseconds of socket I/O operations used by the
6030 underlying low level operation. By default it is set to -1, which
6031 means that the timeout is not specified.
6032
6033 ftp-user
6034 Set a user to be used for authenticating to the FTP server. This is
6035 overridden by the user in the FTP URL.
6036
6037 ftp-password
6038 Set a password to be used for authenticating to the FTP server.
6039 This is overridden by the password in the FTP URL, or by ftp-
6040 anonymous-password if no user is set.
6041
6042 ftp-anonymous-password
6043 Password used when login as anonymous user. Typically an e-mail
6044 address should be used.
6045
6046 ftp-write-seekable
6047 Control seekability of connection during encoding. If set to 1 the
6048 resource is supposed to be seekable, if set to 0 it is assumed not
6049 to be seekable. Default value is 0.
6050
6051 NOTE: Protocol can be used as output, but it is recommended to not do
6052 it, unless special care is taken (tests, customized server
6053 configuration etc.). Different FTP servers behave in different way
6054 during seek operation. ff* tools may produce incomplete content due to
6055 server limitations.
6056
6057 gopher
6058 Gopher protocol.
6059
6060 gophers
6061 Gophers protocol.
6062
6063 The Gopher protocol with TLS encapsulation.
6064
6065 hls
6066 Read Apple HTTP Live Streaming compliant segmented stream as a uniform
6067 one. The M3U8 playlists describing the segments can be remote HTTP
6068 resources or local files, accessed using the standard file protocol.
6069 The nested protocol is declared by specifying "+proto" after the hls
6070 URI scheme name, where proto is either "file" or "http".
6071
6072 hls+http://host/path/to/remote/resource.m3u8
6073 hls+file://path/to/local/resource.m3u8
6074
6075 Using this protocol is discouraged - the hls demuxer should work just
6076 as well (if not, please report the issues) and is more complete. To
6077 use the hls demuxer instead, simply use the direct URLs to the m3u8
6078 files.
6079
6080 http
6081 HTTP (Hyper Text Transfer Protocol).
6082
6083 This protocol accepts the following options:
6084
6085 seekable
6086 Control seekability of connection. If set to 1 the resource is
6087 supposed to be seekable, if set to 0 it is assumed not to be
6088 seekable, if set to -1 it will try to autodetect if it is seekable.
6089 Default value is -1.
6090
6091 chunked_post
6092 If set to 1 use chunked Transfer-Encoding for posts, default is 1.
6093
6094 content_type
6095 Set a specific content type for the POST messages or for listen
6096 mode.
6097
6098 http_proxy
6099 set HTTP proxy to tunnel through e.g. http://example.com:1234
6100
6101 headers
6102 Set custom HTTP headers, can override built in default headers. The
6103 value must be a string encoding the headers.
6104
6105 multiple_requests
6106 Use persistent connections if set to 1, default is 0.
6107
6108 post_data
6109 Set custom HTTP post data.
6110
6111 referer
6112 Set the Referer header. Include 'Referer: URL' header in HTTP
6113 request.
6114
6115 user_agent
6116 Override the User-Agent header. If not specified the protocol will
6117 use a string describing the libavformat build. ("Lavf/<version>")
6118
6119 reconnect_at_eof
6120 If set then eof is treated like an error and causes reconnection,
6121 this is useful for live / endless streams.
6122
6123 reconnect_streamed
6124 If set then even streamed/non seekable streams will be reconnected
6125 on errors.
6126
6127 reconnect_on_network_error
6128 Reconnect automatically in case of TCP/TLS errors during connect.
6129
6130 reconnect_on_http_error
6131 A comma separated list of HTTP status codes to reconnect on. The
6132 list can include specific status codes (e.g. '503') or the strings
6133 '4xx' / '5xx'.
6134
6135 reconnect_delay_max
6136 Sets the maximum delay in seconds after which to give up
6137 reconnecting
6138
6139 mime_type
6140 Export the MIME type.
6141
6142 http_version
6143 Exports the HTTP response version number. Usually "1.0" or "1.1".
6144
6145 icy If set to 1 request ICY (SHOUTcast) metadata from the server. If
6146 the server supports this, the metadata has to be retrieved by the
6147 application by reading the icy_metadata_headers and
6148 icy_metadata_packet options. The default is 1.
6149
6150 icy_metadata_headers
6151 If the server supports ICY metadata, this contains the ICY-specific
6152 HTTP reply headers, separated by newline characters.
6153
6154 icy_metadata_packet
6155 If the server supports ICY metadata, and icy was set to 1, this
6156 contains the last non-empty metadata packet sent by the server. It
6157 should be polled in regular intervals by applications interested in
6158 mid-stream metadata updates.
6159
6160 cookies
6161 Set the cookies to be sent in future requests. The format of each
6162 cookie is the same as the value of a Set-Cookie HTTP response
6163 field. Multiple cookies can be delimited by a newline character.
6164
6165 offset
6166 Set initial byte offset.
6167
6168 end_offset
6169 Try to limit the request to bytes preceding this offset.
6170
6171 method
6172 When used as a client option it sets the HTTP method for the
6173 request.
6174
6175 When used as a server option it sets the HTTP method that is going
6176 to be expected from the client(s). If the expected and the
6177 received HTTP method do not match the client will be given a Bad
6178 Request response. When unset the HTTP method is not checked for
6179 now. This will be replaced by autodetection in the future.
6180
6181 listen
6182 If set to 1 enables experimental HTTP server. This can be used to
6183 send data when used as an output option, or read data from a client
6184 with HTTP POST when used as an input option. If set to 2 enables
6185 experimental multi-client HTTP server. This is not yet implemented
6186 in ffmpeg.c and thus must not be used as a command line option.
6187
6188 # Server side (sending):
6189 ffmpeg -i somefile.ogg -c copy -listen 1 -f ogg http://<server>:<port>
6190
6191 # Client side (receiving):
6192 ffmpeg -i http://<server>:<port> -c copy somefile.ogg
6193
6194 # Client can also be done with wget:
6195 wget http://<server>:<port> -O somefile.ogg
6196
6197 # Server side (receiving):
6198 ffmpeg -listen 1 -i http://<server>:<port> -c copy somefile.ogg
6199
6200 # Client side (sending):
6201 ffmpeg -i somefile.ogg -chunked_post 0 -c copy -f ogg http://<server>:<port>
6202
6203 # Client can also be done with wget:
6204 wget --post-file=somefile.ogg http://<server>:<port>
6205
6206 send_expect_100
6207 Send an Expect: 100-continue header for POST. If set to 1 it will
6208 send, if set to 0 it won't, if set to -1 it will try to send if it
6209 is applicable. Default value is -1.
6210
6211 auth_type
6212 Set HTTP authentication type. No option for Digest, since this
6213 method requires getting nonce parameters from the server first and
6214 can't be used straight away like Basic.
6215
6216 none
6217 Choose the HTTP authentication type automatically. This is the
6218 default.
6219
6220 basic
6221 Choose the HTTP basic authentication.
6222
6223 Basic authentication sends a Base64-encoded string that
6224 contains a user name and password for the client. Base64 is not
6225 a form of encryption and should be considered the same as
6226 sending the user name and password in clear text (Base64 is a
6227 reversible encoding). If a resource needs to be protected,
6228 strongly consider using an authentication scheme other than
6229 basic authentication. HTTPS/TLS should be used with basic
6230 authentication. Without these additional security
6231 enhancements, basic authentication should not be used to
6232 protect sensitive or valuable information.
6233
6234 HTTP Cookies
6235
6236 Some HTTP requests will be denied unless cookie values are passed in
6237 with the request. The cookies option allows these cookies to be
6238 specified. At the very least, each cookie must specify a value along
6239 with a path and domain. HTTP requests that match both the domain and
6240 path will automatically include the cookie value in the HTTP Cookie
6241 header field. Multiple cookies can be delimited by a newline.
6242
6243 The required syntax to play a stream specifying a cookie is:
6244
6245 ffplay -cookies "nlqptid=nltid=tsn; path=/; domain=somedomain.com;" http://somedomain.com/somestream.m3u8
6246
6247 Icecast
6248 Icecast protocol (stream to Icecast servers)
6249
6250 This protocol accepts the following options:
6251
6252 ice_genre
6253 Set the stream genre.
6254
6255 ice_name
6256 Set the stream name.
6257
6258 ice_description
6259 Set the stream description.
6260
6261 ice_url
6262 Set the stream website URL.
6263
6264 ice_public
6265 Set if the stream should be public. The default is 0 (not public).
6266
6267 user_agent
6268 Override the User-Agent header. If not specified a string of the
6269 form "Lavf/<version>" will be used.
6270
6271 password
6272 Set the Icecast mountpoint password.
6273
6274 content_type
6275 Set the stream content type. This must be set if it is different
6276 from audio/mpeg.
6277
6278 legacy_icecast
6279 This enables support for Icecast versions < 2.4.0, that do not
6280 support the HTTP PUT method but the SOURCE method.
6281
6282 tls Establish a TLS (HTTPS) connection to Icecast.
6283
6284 icecast://[<username>[:<password>]@]<server>:<port>/<mountpoint>
6285
6286 ipfs
6287 InterPlanetary File System (IPFS) protocol support. One can access
6288 files stored on the IPFS network through so-called gateways. These are
6289 http(s) endpoints. This protocol wraps the IPFS native protocols
6290 (ipfs:// and ipns://) to be sent to such a gateway. Users can (and
6291 should) host their own node which means this protocol will use one's
6292 local gateway to access files on the IPFS network.
6293
6294 This protocol accepts the following options:
6295
6296 gateway
6297 Defines the gateway to use. When not set, the protocol will first
6298 try locating the local gateway by looking at $IPFS_GATEWAY,
6299 $IPFS_PATH and "$HOME/.ipfs/", in that order.
6300
6301 One can use this protocol in 2 ways. Using IPFS:
6302
6303 ffplay ipfs://<hash>
6304
6305 Or the IPNS protocol (IPNS is mutable IPFS):
6306
6307 ffplay ipns://<hash>
6308
6309 mmst
6310 MMS (Microsoft Media Server) protocol over TCP.
6311
6312 mmsh
6313 MMS (Microsoft Media Server) protocol over HTTP.
6314
6315 The required syntax is:
6316
6317 mmsh://<server>[:<port>][/<app>][/<playpath>]
6318
6319 md5
6320 MD5 output protocol.
6321
6322 Computes the MD5 hash of the data to be written, and on close writes
6323 this to the designated output or stdout if none is specified. It can be
6324 used to test muxers without writing an actual file.
6325
6326 Some examples follow.
6327
6328 # Write the MD5 hash of the encoded AVI file to the file output.avi.md5.
6329 ffmpeg -i input.flv -f avi -y md5:output.avi.md5
6330
6331 # Write the MD5 hash of the encoded AVI file to stdout.
6332 ffmpeg -i input.flv -f avi -y md5:
6333
6334 Note that some formats (typically MOV) require the output protocol to
6335 be seekable, so they will fail with the MD5 output protocol.
6336
6337 pipe
6338 UNIX pipe access protocol.
6339
6340 Read and write from UNIX pipes.
6341
6342 The accepted syntax is:
6343
6344 pipe:[<number>]
6345
6346 If fd isn't specified, number is the number corresponding to the file
6347 descriptor of the pipe (e.g. 0 for stdin, 1 for stdout, 2 for stderr).
6348 If number is not specified, by default the stdout file descriptor will
6349 be used for writing, stdin for reading.
6350
6351 For example to read from stdin with ffmpeg:
6352
6353 cat test.wav | ffmpeg -i pipe:0
6354 # ...this is the same as...
6355 cat test.wav | ffmpeg -i pipe:
6356
6357 For writing to stdout with ffmpeg:
6358
6359 ffmpeg -i test.wav -f avi pipe:1 | cat > test.avi
6360 # ...this is the same as...
6361 ffmpeg -i test.wav -f avi pipe: | cat > test.avi
6362
6363 This protocol accepts the following options:
6364
6365 blocksize
6366 Set I/O operation maximum block size, in bytes. Default value is
6367 "INT_MAX", which results in not limiting the requested block size.
6368 Setting this value reasonably low improves user termination request
6369 reaction time, which is valuable if data transmission is slow.
6370
6371 fd Set file descriptor.
6372
6373 Note that some formats (typically MOV), require the output protocol to
6374 be seekable, so they will fail with the pipe output protocol.
6375
6376 prompeg
6377 Pro-MPEG Code of Practice #3 Release 2 FEC protocol.
6378
6379 The Pro-MPEG CoP#3 FEC is a 2D parity-check forward error correction
6380 mechanism for MPEG-2 Transport Streams sent over RTP.
6381
6382 This protocol must be used in conjunction with the "rtp_mpegts" muxer
6383 and the "rtp" protocol.
6384
6385 The required syntax is:
6386
6387 -f rtp_mpegts -fec prompeg=<option>=<val>... rtp://<hostname>:<port>
6388
6389 The destination UDP ports are "port + 2" for the column FEC stream and
6390 "port + 4" for the row FEC stream.
6391
6392 This protocol accepts the following options:
6393
6394 l=n The number of columns (4-20, LxD <= 100)
6395
6396 d=n The number of rows (4-20, LxD <= 100)
6397
6398 Example usage:
6399
6400 -f rtp_mpegts -fec prompeg=l=8:d=4 rtp://<hostname>:<port>
6401
6402 rist
6403 Reliable Internet Streaming Transport protocol
6404
6405 The accepted options are:
6406
6407 rist_profile
6408 Supported values:
6409
6410 simple
6411 main
6412 This one is default.
6413
6414 advanced
6415 buffer_size
6416 Set internal RIST buffer size in milliseconds for retransmission of
6417 data. Default value is 0 which means the librist default (1 sec).
6418 Maximum value is 30 seconds.
6419
6420 fifo_size
6421 Size of the librist receiver output fifo in number of packets. This
6422 must be a power of 2. Defaults to 8192 (vs the librist default of
6423 1024).
6424
6425 overrun_nonfatal=1|0
6426 Survive in case of librist fifo buffer overrun. Default value is 0.
6427
6428 pkt_size
6429 Set maximum packet size for sending data. 1316 by default.
6430
6431 log_level
6432 Set loglevel for RIST logging messages. You only need to set this
6433 if you explicitly want to enable debug level messages or packet
6434 loss simulation, otherwise the regular loglevel is respected.
6435
6436 secret
6437 Set override of encryption secret, by default is unset.
6438
6439 encryption
6440 Set encryption type, by default is disabled. Acceptable values are
6441 128 and 256.
6442
6443 rtmp
6444 Real-Time Messaging Protocol.
6445
6446 The Real-Time Messaging Protocol (RTMP) is used for streaming
6447 multimedia content across a TCP/IP network.
6448
6449 The required syntax is:
6450
6451 rtmp://[<username>:<password>@]<server>[:<port>][/<app>][/<instance>][/<playpath>]
6452
6453 The accepted parameters are:
6454
6455 username
6456 An optional username (mostly for publishing).
6457
6458 password
6459 An optional password (mostly for publishing).
6460
6461 server
6462 The address of the RTMP server.
6463
6464 port
6465 The number of the TCP port to use (by default is 1935).
6466
6467 app It is the name of the application to access. It usually corresponds
6468 to the path where the application is installed on the RTMP server
6469 (e.g. /ondemand/, /flash/live/, etc.). You can override the value
6470 parsed from the URI through the "rtmp_app" option, too.
6471
6472 playpath
6473 It is the path or name of the resource to play with reference to
6474 the application specified in app, may be prefixed by "mp4:". You
6475 can override the value parsed from the URI through the
6476 "rtmp_playpath" option, too.
6477
6478 listen
6479 Act as a server, listening for an incoming connection.
6480
6481 timeout
6482 Maximum time to wait for the incoming connection. Implies listen.
6483
6484 Additionally, the following parameters can be set via command line
6485 options (or in code via "AVOption"s):
6486
6487 rtmp_app
6488 Name of application to connect on the RTMP server. This option
6489 overrides the parameter specified in the URI.
6490
6491 rtmp_buffer
6492 Set the client buffer time in milliseconds. The default is 3000.
6493
6494 rtmp_conn
6495 Extra arbitrary AMF connection parameters, parsed from a string,
6496 e.g. like "B:1 S:authMe O:1 NN:code:1.23 NS:flag:ok O:0". Each
6497 value is prefixed by a single character denoting the type, B for
6498 Boolean, N for number, S for string, O for object, or Z for null,
6499 followed by a colon. For Booleans the data must be either 0 or 1
6500 for FALSE or TRUE, respectively. Likewise for Objects the data
6501 must be 0 or 1 to end or begin an object, respectively. Data items
6502 in subobjects may be named, by prefixing the type with 'N' and
6503 specifying the name before the value (i.e. "NB:myFlag:1"). This
6504 option may be used multiple times to construct arbitrary AMF
6505 sequences.
6506
6507 rtmp_flashver
6508 Version of the Flash plugin used to run the SWF player. The default
6509 is LNX 9,0,124,2. (When publishing, the default is FMLE/3.0
6510 (compatible; <libavformat version>).)
6511
6512 rtmp_flush_interval
6513 Number of packets flushed in the same request (RTMPT only). The
6514 default is 10.
6515
6516 rtmp_live
6517 Specify that the media is a live stream. No resuming or seeking in
6518 live streams is possible. The default value is "any", which means
6519 the subscriber first tries to play the live stream specified in the
6520 playpath. If a live stream of that name is not found, it plays the
6521 recorded stream. The other possible values are "live" and
6522 "recorded".
6523
6524 rtmp_pageurl
6525 URL of the web page in which the media was embedded. By default no
6526 value will be sent.
6527
6528 rtmp_playpath
6529 Stream identifier to play or to publish. This option overrides the
6530 parameter specified in the URI.
6531
6532 rtmp_subscribe
6533 Name of live stream to subscribe to. By default no value will be
6534 sent. It is only sent if the option is specified or if rtmp_live
6535 is set to live.
6536
6537 rtmp_swfhash
6538 SHA256 hash of the decompressed SWF file (32 bytes).
6539
6540 rtmp_swfsize
6541 Size of the decompressed SWF file, required for SWFVerification.
6542
6543 rtmp_swfurl
6544 URL of the SWF player for the media. By default no value will be
6545 sent.
6546
6547 rtmp_swfverify
6548 URL to player swf file, compute hash/size automatically.
6549
6550 rtmp_tcurl
6551 URL of the target stream. Defaults to proto://host[:port]/app.
6552
6553 tcp_nodelay=1|0
6554 Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
6555
6556 Remark: Writing to the socket is currently not optimized to
6557 minimize system calls and reduces the efficiency / effect of
6558 TCP_NODELAY.
6559
6560 For example to read with ffplay a multimedia resource named "sample"
6561 from the application "vod" from an RTMP server "myserver":
6562
6563 ffplay rtmp://myserver/vod/sample
6564
6565 To publish to a password protected server, passing the playpath and app
6566 names separately:
6567
6568 ffmpeg -re -i <input> -f flv -rtmp_playpath some/long/path -rtmp_app long/app/name rtmp://username:password@myserver/
6569
6570 rtmpe
6571 Encrypted Real-Time Messaging Protocol.
6572
6573 The Encrypted Real-Time Messaging Protocol (RTMPE) is used for
6574 streaming multimedia content within standard cryptographic primitives,
6575 consisting of Diffie-Hellman key exchange and HMACSHA256, generating a
6576 pair of RC4 keys.
6577
6578 rtmps
6579 Real-Time Messaging Protocol over a secure SSL connection.
6580
6581 The Real-Time Messaging Protocol (RTMPS) is used for streaming
6582 multimedia content across an encrypted connection.
6583
6584 rtmpt
6585 Real-Time Messaging Protocol tunneled through HTTP.
6586
6587 The Real-Time Messaging Protocol tunneled through HTTP (RTMPT) is used
6588 for streaming multimedia content within HTTP requests to traverse
6589 firewalls.
6590
6591 rtmpte
6592 Encrypted Real-Time Messaging Protocol tunneled through HTTP.
6593
6594 The Encrypted Real-Time Messaging Protocol tunneled through HTTP
6595 (RTMPTE) is used for streaming multimedia content within HTTP requests
6596 to traverse firewalls.
6597
6598 rtmpts
6599 Real-Time Messaging Protocol tunneled through HTTPS.
6600
6601 The Real-Time Messaging Protocol tunneled through HTTPS (RTMPTS) is
6602 used for streaming multimedia content within HTTPS requests to traverse
6603 firewalls.
6604
6605 libsmbclient
6606 libsmbclient permits one to manipulate CIFS/SMB network resources.
6607
6608 Following syntax is required.
6609
6610 smb://[[domain:]user[:password@]]server[/share[/path[/file]]]
6611
6612 This protocol accepts the following options.
6613
6614 timeout
6615 Set timeout in milliseconds of socket I/O operations used by the
6616 underlying low level operation. By default it is set to -1, which
6617 means that the timeout is not specified.
6618
6619 truncate
6620 Truncate existing files on write, if set to 1. A value of 0
6621 prevents truncating. Default value is 1.
6622
6623 workgroup
6624 Set the workgroup used for making connections. By default workgroup
6625 is not specified.
6626
6627 For more information see: <http://www.samba.org/>.
6628
6629 libssh
6630 Secure File Transfer Protocol via libssh
6631
6632 Read from or write to remote resources using SFTP protocol.
6633
6634 Following syntax is required.
6635
6636 sftp://[user[:password]@]server[:port]/path/to/remote/resource.mpeg
6637
6638 This protocol accepts the following options.
6639
6640 timeout
6641 Set timeout of socket I/O operations used by the underlying low
6642 level operation. By default it is set to -1, which means that the
6643 timeout is not specified.
6644
6645 truncate
6646 Truncate existing files on write, if set to 1. A value of 0
6647 prevents truncating. Default value is 1.
6648
6649 private_key
6650 Specify the path of the file containing private key to use during
6651 authorization. By default libssh searches for keys in the ~/.ssh/
6652 directory.
6653
6654 Example: Play a file stored on remote server.
6655
6656 ffplay sftp://user:password@server_address:22/home/user/resource.mpeg
6657
6658 librtmp rtmp, rtmpe, rtmps, rtmpt, rtmpte
6659 Real-Time Messaging Protocol and its variants supported through
6660 librtmp.
6661
6662 Requires the presence of the librtmp headers and library during
6663 configuration. You need to explicitly configure the build with
6664 "--enable-librtmp". If enabled this will replace the native RTMP
6665 protocol.
6666
6667 This protocol provides most client functions and a few server functions
6668 needed to support RTMP, RTMP tunneled in HTTP (RTMPT), encrypted RTMP
6669 (RTMPE), RTMP over SSL/TLS (RTMPS) and tunneled variants of these
6670 encrypted types (RTMPTE, RTMPTS).
6671
6672 The required syntax is:
6673
6674 <rtmp_proto>://<server>[:<port>][/<app>][/<playpath>] <options>
6675
6676 where rtmp_proto is one of the strings "rtmp", "rtmpt", "rtmpe",
6677 "rtmps", "rtmpte", "rtmpts" corresponding to each RTMP variant, and
6678 server, port, app and playpath have the same meaning as specified for
6679 the RTMP native protocol. options contains a list of space-separated
6680 options of the form key=val.
6681
6682 See the librtmp manual page (man 3 librtmp) for more information.
6683
6684 For example, to stream a file in real-time to an RTMP server using
6685 ffmpeg:
6686
6687 ffmpeg -re -i myfile -f flv rtmp://myserver/live/mystream
6688
6689 To play the same stream using ffplay:
6690
6691 ffplay "rtmp://myserver/live/mystream live=1"
6692
6693 rtp
6694 Real-time Transport Protocol.
6695
6696 The required syntax for an RTP URL is:
6697 rtp://hostname[:port][?option=val...]
6698
6699 port specifies the RTP port to use.
6700
6701 The following URL options are supported:
6702
6703 ttl=n
6704 Set the TTL (Time-To-Live) value (for multicast only).
6705
6706 rtcpport=n
6707 Set the remote RTCP port to n.
6708
6709 localrtpport=n
6710 Set the local RTP port to n.
6711
6712 localrtcpport=n'
6713 Set the local RTCP port to n.
6714
6715 pkt_size=n
6716 Set max packet size (in bytes) to n.
6717
6718 buffer_size=size
6719 Set the maximum UDP socket buffer size in bytes.
6720
6721 connect=0|1
6722 Do a connect() on the UDP socket (if set to 1) or not (if set to
6723 0).
6724
6725 sources=ip[,ip]
6726 List allowed source IP addresses.
6727
6728 block=ip[,ip]
6729 List disallowed (blocked) source IP addresses.
6730
6731 write_to_source=0|1
6732 Send packets to the source address of the latest received packet
6733 (if set to 1) or to a default remote address (if set to 0).
6734
6735 localport=n
6736 Set the local RTP port to n.
6737
6738 localaddr=addr
6739 Local IP address of a network interface used for sending packets or
6740 joining multicast groups.
6741
6742 timeout=n
6743 Set timeout (in microseconds) of socket I/O operations to n.
6744
6745 This is a deprecated option. Instead, localrtpport should be used.
6746
6747 Important notes:
6748
6749 1. If rtcpport is not set the RTCP port will be set to the RTP port
6750 value plus 1.
6751
6752 2. If localrtpport (the local RTP port) is not set any available port
6753 will be used for the local RTP and RTCP ports.
6754
6755 3. If localrtcpport (the local RTCP port) is not set it will be set to
6756 the local RTP port value plus 1.
6757
6758 rtsp
6759 Real-Time Streaming Protocol.
6760
6761 RTSP is not technically a protocol handler in libavformat, it is a
6762 demuxer and muxer. The demuxer supports both normal RTSP (with data
6763 transferred over RTP; this is used by e.g. Apple and Microsoft) and
6764 Real-RTSP (with data transferred over RDT).
6765
6766 The muxer can be used to send a stream using RTSP ANNOUNCE to a server
6767 supporting it (currently Darwin Streaming Server and Mischa
6768 Spiegelmock's <https://github.com/revmischa/rtsp-server>).
6769
6770 The required syntax for a RTSP url is:
6771
6772 rtsp://<hostname>[:<port>]/<path>
6773
6774 Options can be set on the ffmpeg/ffplay command line, or set in code
6775 via "AVOption"s or in "avformat_open_input".
6776
6777 Muxer
6778
6779 The following options are supported.
6780
6781 rtsp_transport
6782 Set RTSP transport protocols.
6783
6784 It accepts the following values:
6785
6786 udp Use UDP as lower transport protocol.
6787
6788 tcp Use TCP (interleaving within the RTSP control channel) as lower
6789 transport protocol.
6790
6791 Default value is 0.
6792
6793 rtsp_flags
6794 Set RTSP flags.
6795
6796 The following values are accepted:
6797
6798 latm
6799 Use MP4A-LATM packetization instead of MPEG4-GENERIC for AAC.
6800
6801 rfc2190
6802 Use RFC 2190 packetization instead of RFC 4629 for H.263.
6803
6804 skip_rtcp
6805 Don't send RTCP sender reports.
6806
6807 h264_mode0
6808 Use mode 0 for H.264 in RTP.
6809
6810 send_bye
6811 Send RTCP BYE packets when finishing.
6812
6813 Default value is 0.
6814
6815 min_port
6816 Set minimum local UDP port. Default value is 5000.
6817
6818 max_port
6819 Set maximum local UDP port. Default value is 65000.
6820
6821 buffer_size
6822 Set the maximum socket buffer size in bytes.
6823
6824 pkt_size
6825 Set max send packet size (in bytes). Default value is 1472.
6826
6827 Demuxer
6828
6829 The following options are supported.
6830
6831 initial_pause
6832 Do not start playing the stream immediately if set to 1. Default
6833 value is 0.
6834
6835 rtsp_transport
6836 Set RTSP transport protocols.
6837
6838 It accepts the following values:
6839
6840 udp Use UDP as lower transport protocol.
6841
6842 tcp Use TCP (interleaving within the RTSP control channel) as lower
6843 transport protocol.
6844
6845 udp_multicast
6846 Use UDP multicast as lower transport protocol.
6847
6848 http
6849 Use HTTP tunneling as lower transport protocol, which is useful
6850 for passing proxies.
6851
6852 https
6853 Use HTTPs tunneling as lower transport protocol, which is
6854 useful for passing proxies and widely used for security
6855 consideration.
6856
6857 Multiple lower transport protocols may be specified, in that case
6858 they are tried one at a time (if the setup of one fails, the next
6859 one is tried). For the muxer, only the tcp and udp options are
6860 supported.
6861
6862 rtsp_flags
6863 Set RTSP flags.
6864
6865 The following values are accepted:
6866
6867 filter_src
6868 Accept packets only from negotiated peer address and port.
6869
6870 listen
6871 Act as a server, listening for an incoming connection.
6872
6873 prefer_tcp
6874 Try TCP for RTP transport first, if TCP is available as RTSP
6875 RTP transport.
6876
6877 satip_raw
6878 Export raw MPEG-TS stream instead of demuxing. The flag will
6879 simply write out the raw stream, with the original PAT/PMT/PIDs
6880 intact.
6881
6882 Default value is none.
6883
6884 allowed_media_types
6885 Set media types to accept from the server.
6886
6887 The following flags are accepted:
6888
6889 video
6890 audio
6891 data
6892 subtitle
6893
6894 By default it accepts all media types.
6895
6896 min_port
6897 Set minimum local UDP port. Default value is 5000.
6898
6899 max_port
6900 Set maximum local UDP port. Default value is 65000.
6901
6902 listen_timeout
6903 Set maximum timeout (in seconds) to establish an initial
6904 connection. Setting listen_timeout > 0 sets rtsp_flags to listen.
6905 Default is -1 which means an infinite timeout when listen mode is
6906 set.
6907
6908 reorder_queue_size
6909 Set number of packets to buffer for handling of reordered packets.
6910
6911 timeout
6912 Set socket TCP I/O timeout in microseconds.
6913
6914 user_agent
6915 Override User-Agent header. If not specified, it defaults to the
6916 libavformat identifier string.
6917
6918 buffer_size
6919 Set the maximum socket buffer size in bytes.
6920
6921 When receiving data over UDP, the demuxer tries to reorder received
6922 packets (since they may arrive out of order, or packets may get lost
6923 totally). This can be disabled by setting the maximum demuxing delay to
6924 zero (via the "max_delay" field of AVFormatContext).
6925
6926 When watching multi-bitrate Real-RTSP streams with ffplay, the streams
6927 to display can be chosen with "-vst" n and "-ast" n for video and audio
6928 respectively, and can be switched on the fly by pressing "v" and "a".
6929
6930 Examples
6931
6932 The following examples all make use of the ffplay and ffmpeg tools.
6933
6934 • Watch a stream over UDP, with a max reordering delay of 0.5
6935 seconds:
6936
6937 ffplay -max_delay 500000 -rtsp_transport udp rtsp://server/video.mp4
6938
6939 • Watch a stream tunneled over HTTP:
6940
6941 ffplay -rtsp_transport http rtsp://server/video.mp4
6942
6943 • Send a stream in realtime to a RTSP server, for others to watch:
6944
6945 ffmpeg -re -i <input> -f rtsp -muxdelay 0.1 rtsp://server/live.sdp
6946
6947 • Receive a stream in realtime:
6948
6949 ffmpeg -rtsp_flags listen -i rtsp://ownaddress/live.sdp <output>
6950
6951 sap
6952 Session Announcement Protocol (RFC 2974). This is not technically a
6953 protocol handler in libavformat, it is a muxer and demuxer. It is used
6954 for signalling of RTP streams, by announcing the SDP for the streams
6955 regularly on a separate port.
6956
6957 Muxer
6958
6959 The syntax for a SAP url given to the muxer is:
6960
6961 sap://<destination>[:<port>][?<options>]
6962
6963 The RTP packets are sent to destination on port port, or to port 5004
6964 if no port is specified. options is a "&"-separated list. The
6965 following options are supported:
6966
6967 announce_addr=address
6968 Specify the destination IP address for sending the announcements
6969 to. If omitted, the announcements are sent to the commonly used
6970 SAP announcement multicast address 224.2.127.254 (sap.mcast.net),
6971 or ff0e::2:7ffe if destination is an IPv6 address.
6972
6973 announce_port=port
6974 Specify the port to send the announcements on, defaults to 9875 if
6975 not specified.
6976
6977 ttl=ttl
6978 Specify the time to live value for the announcements and RTP
6979 packets, defaults to 255.
6980
6981 same_port=0|1
6982 If set to 1, send all RTP streams on the same port pair. If zero
6983 (the default), all streams are sent on unique ports, with each
6984 stream on a port 2 numbers higher than the previous. VLC/Live555
6985 requires this to be set to 1, to be able to receive the stream.
6986 The RTP stack in libavformat for receiving requires all streams to
6987 be sent on unique ports.
6988
6989 Example command lines follow.
6990
6991 To broadcast a stream on the local subnet, for watching in VLC:
6992
6993 ffmpeg -re -i <input> -f sap sap://224.0.0.255?same_port=1
6994
6995 Similarly, for watching in ffplay:
6996
6997 ffmpeg -re -i <input> -f sap sap://224.0.0.255
6998
6999 And for watching in ffplay, over IPv6:
7000
7001 ffmpeg -re -i <input> -f sap sap://[ff0e::1:2:3:4]
7002
7003 Demuxer
7004
7005 The syntax for a SAP url given to the demuxer is:
7006
7007 sap://[<address>][:<port>]
7008
7009 address is the multicast address to listen for announcements on, if
7010 omitted, the default 224.2.127.254 (sap.mcast.net) is used. port is the
7011 port that is listened on, 9875 if omitted.
7012
7013 The demuxers listens for announcements on the given address and port.
7014 Once an announcement is received, it tries to receive that particular
7015 stream.
7016
7017 Example command lines follow.
7018
7019 To play back the first stream announced on the normal SAP multicast
7020 address:
7021
7022 ffplay sap://
7023
7024 To play back the first stream announced on one the default IPv6 SAP
7025 multicast address:
7026
7027 ffplay sap://[ff0e::2:7ffe]
7028
7029 sctp
7030 Stream Control Transmission Protocol.
7031
7032 The accepted URL syntax is:
7033
7034 sctp://<host>:<port>[?<options>]
7035
7036 The protocol accepts the following options:
7037
7038 listen
7039 If set to any value, listen for an incoming connection. Outgoing
7040 connection is done by default.
7041
7042 max_streams
7043 Set the maximum number of streams. By default no limit is set.
7044
7045 srt
7046 Haivision Secure Reliable Transport Protocol via libsrt.
7047
7048 The supported syntax for a SRT URL is:
7049
7050 srt://<hostname>:<port>[?<options>]
7051
7052 options contains a list of &-separated options of the form key=val.
7053
7054 or
7055
7056 <options> srt://<hostname>:<port>
7057
7058 options contains a list of '-key val' options.
7059
7060 This protocol accepts the following options.
7061
7062 connect_timeout=milliseconds
7063 Connection timeout; SRT cannot connect for RTT > 1500 msec (2
7064 handshake exchanges) with the default connect timeout of 3 seconds.
7065 This option applies to the caller and rendezvous connection modes.
7066 The connect timeout is 10 times the value set for the rendezvous
7067 mode (which can be used as a workaround for this connection problem
7068 with earlier versions).
7069
7070 ffs=bytes
7071 Flight Flag Size (Window Size), in bytes. FFS is actually an
7072 internal parameter and you should set it to not less than
7073 recv_buffer_size and mss. The default value is relatively large,
7074 therefore unless you set a very large receiver buffer, you do not
7075 need to change this option. Default value is 25600.
7076
7077 inputbw=bytes/seconds
7078 Sender nominal input rate, in bytes per seconds. Used along with
7079 oheadbw, when maxbw is set to relative (0), to calculate maximum
7080 sending rate when recovery packets are sent along with the main
7081 media stream: inputbw * (100 + oheadbw) / 100 if inputbw is not set
7082 while maxbw is set to relative (0), the actual input rate is
7083 evaluated inside the library. Default value is 0.
7084
7085 iptos=tos
7086 IP Type of Service. Applies to sender only. Default value is 0xB8.
7087
7088 ipttl=ttl
7089 IP Time To Live. Applies to sender only. Default value is 64.
7090
7091 latency=microseconds
7092 Timestamp-based Packet Delivery Delay. Used to absorb bursts of
7093 missed packet retransmissions. This flag sets both rcvlatency and
7094 peerlatency to the same value. Note that prior to version 1.3.0
7095 this is the only flag to set the latency, however this is
7096 effectively equivalent to setting peerlatency, when side is sender
7097 and rcvlatency when side is receiver, and the bidirectional stream
7098 sending is not supported.
7099
7100 listen_timeout=microseconds
7101 Set socket listen timeout.
7102
7103 maxbw=bytes/seconds
7104 Maximum sending bandwidth, in bytes per seconds. -1 infinite
7105 (CSRTCC limit is 30mbps) 0 relative to input rate (see inputbw) >0
7106 absolute limit value Default value is 0 (relative)
7107
7108 mode=caller|listener|rendezvous
7109 Connection mode. caller opens client connection. listener starts
7110 server to listen for incoming connections. rendezvous use Rendez-
7111 Vous connection mode. Default value is caller.
7112
7113 mss=bytes
7114 Maximum Segment Size, in bytes. Used for buffer allocation and rate
7115 calculation using a packet counter assuming fully filled packets.
7116 The smallest MSS between the peers is used. This is 1500 by default
7117 in the overall internet. This is the maximum size of the UDP
7118 packet and can be only decreased, unless you have some unusual
7119 dedicated network settings. Default value is 1500.
7120
7121 nakreport=1|0
7122 If set to 1, Receiver will send `UMSG_LOSSREPORT` messages
7123 periodically until a lost packet is retransmitted or intentionally
7124 dropped. Default value is 1.
7125
7126 oheadbw=percents
7127 Recovery bandwidth overhead above input rate, in percents. See
7128 inputbw. Default value is 25%.
7129
7130 passphrase=string
7131 HaiCrypt Encryption/Decryption Passphrase string, length from 10 to
7132 79 characters. The passphrase is the shared secret between the
7133 sender and the receiver. It is used to generate the Key Encrypting
7134 Key using PBKDF2 (Password-Based Key Derivation Function). It is
7135 used only if pbkeylen is non-zero. It is used on the receiver only
7136 if the received data is encrypted. The configured passphrase
7137 cannot be recovered (write-only).
7138
7139 enforced_encryption=1|0
7140 If true, both connection parties must have the same password set
7141 (including empty, that is, with no encryption). If the password
7142 doesn't match or only one side is unencrypted, the connection is
7143 rejected. Default is true.
7144
7145 kmrefreshrate=packets
7146 The number of packets to be transmitted after which the encryption
7147 key is switched to a new key. Default is -1. -1 means auto
7148 (0x1000000 in srt library). The range for this option is integers
7149 in the 0 - "INT_MAX".
7150
7151 kmpreannounce=packets
7152 The interval between when a new encryption key is sent and when
7153 switchover occurs. This value also applies to the subsequent
7154 interval between when switchover occurs and when the old encryption
7155 key is decommissioned. Default is -1. -1 means auto (0x1000 in srt
7156 library). The range for this option is integers in the 0 -
7157 "INT_MAX".
7158
7159 snddropdelay=microseconds
7160 The sender's extra delay before dropping packets. This delay is
7161 added to the default drop delay time interval value.
7162
7163 Special value -1: Do not drop packets on the sender at all.
7164
7165 payload_size=bytes
7166 Sets the maximum declared size of a packet transferred during the
7167 single call to the sending function in Live mode. Use 0 if this
7168 value isn't used (which is default in file mode). Default is -1
7169 (automatic), which typically means MPEG-TS; if you are going to use
7170 SRT to send any different kind of payload, such as, for example,
7171 wrapping a live stream in very small frames, then you can use a
7172 bigger maximum frame size, though not greater than 1456 bytes.
7173
7174 pkt_size=bytes
7175 Alias for payload_size.
7176
7177 peerlatency=microseconds
7178 The latency value (as described in rcvlatency) that is set by the
7179 sender side as a minimum value for the receiver.
7180
7181 pbkeylen=bytes
7182 Sender encryption key length, in bytes. Only can be set to 0, 16,
7183 24 and 32. Enable sender encryption if not 0. Not required on
7184 receiver (set to 0), key size obtained from sender in HaiCrypt
7185 handshake. Default value is 0.
7186
7187 rcvlatency=microseconds
7188 The time that should elapse since the moment when the packet was
7189 sent and the moment when it's delivered to the receiver application
7190 in the receiving function. This time should be a buffer time large
7191 enough to cover the time spent for sending, unexpectedly extended
7192 RTT time, and the time needed to retransmit the lost UDP packet.
7193 The effective latency value will be the maximum of this options'
7194 value and the value of peerlatency set by the peer side. Before
7195 version 1.3.0 this option is only available as latency.
7196
7197 recv_buffer_size=bytes
7198 Set UDP receive buffer size, expressed in bytes.
7199
7200 send_buffer_size=bytes
7201 Set UDP send buffer size, expressed in bytes.
7202
7203 timeout=microseconds
7204 Set raise error timeouts for read, write and connect operations.
7205 Note that the SRT library has internal timeouts which can be
7206 controlled separately, the value set here is only a cap on those.
7207
7208 tlpktdrop=1|0
7209 Too-late Packet Drop. When enabled on receiver, it skips missing
7210 packets that have not been delivered in time and delivers the
7211 following packets to the application when their time-to-play has
7212 come. It also sends a fake ACK to the sender. When enabled on
7213 sender and enabled on the receiving peer, the sender drops the
7214 older packets that have no chance of being delivered in time. It
7215 was automatically enabled in the sender if the receiver supports
7216 it.
7217
7218 sndbuf=bytes
7219 Set send buffer size, expressed in bytes.
7220
7221 rcvbuf=bytes
7222 Set receive buffer size, expressed in bytes.
7223
7224 Receive buffer must not be greater than ffs.
7225
7226 lossmaxttl=packets
7227 The value up to which the Reorder Tolerance may grow. When Reorder
7228 Tolerance is > 0, then packet loss report is delayed until that
7229 number of packets come in. Reorder Tolerance increases every time a
7230 "belated" packet has come, but it wasn't due to retransmission
7231 (that is, when UDP packets tend to come out of order), with the
7232 difference between the latest sequence and this packet's sequence,
7233 and not more than the value of this option. By default it's 0,
7234 which means that this mechanism is turned off, and the loss report
7235 is always sent immediately upon experiencing a "gap" in sequences.
7236
7237 minversion
7238 The minimum SRT version that is required from the peer. A
7239 connection to a peer that does not satisfy the minimum version
7240 requirement will be rejected.
7241
7242 The version format in hex is 0xXXYYZZ for x.y.z in human readable
7243 form.
7244
7245 streamid=string
7246 A string limited to 512 characters that can be set on the socket
7247 prior to connecting. This stream ID will be able to be retrieved by
7248 the listener side from the socket that is returned from srt_accept
7249 and was connected by a socket with that set stream ID. SRT does not
7250 enforce any special interpretation of the contents of this string.
7251 This option doesn’t make sense in Rendezvous connection; the result
7252 might be that simply one side will override the value from the
7253 other side and it’s the matter of luck which one would win
7254
7255 srt_streamid=string
7256 Alias for streamid to avoid conflict with ffmpeg command line
7257 option.
7258
7259 smoother=live|file
7260 The type of Smoother used for the transmission for that socket,
7261 which is responsible for the transmission and congestion control.
7262 The Smoother type must be exactly the same on both connecting
7263 parties, otherwise the connection is rejected.
7264
7265 messageapi=1|0
7266 When set, this socket uses the Message API, otherwise it uses
7267 Buffer API. Note that in live mode (see transtype) there’s only
7268 message API available. In File mode you can chose to use one of two
7269 modes:
7270
7271 Stream API (default, when this option is false). In this mode you
7272 may send as many data as you wish with one sending instruction, or
7273 even use dedicated functions that read directly from a file. The
7274 internal facility will take care of any speed and congestion
7275 control. When receiving, you can also receive as many data as
7276 desired, the data not extracted will be waiting for the next call.
7277 There is no boundary between data portions in the Stream mode.
7278
7279 Message API. In this mode your single sending instruction passes
7280 exactly one piece of data that has boundaries (a message). Contrary
7281 to Live mode, this message may span across multiple UDP packets and
7282 the only size limitation is that it shall fit as a whole in the
7283 sending buffer. The receiver shall use as large buffer as necessary
7284 to receive the message, otherwise the message will not be given up.
7285 When the message is not complete (not all packets received or there
7286 was a packet loss) it will not be given up.
7287
7288 transtype=live|file
7289 Sets the transmission type for the socket, in particular, setting
7290 this option sets multiple other parameters to their default values
7291 as required for a particular transmission type.
7292
7293 live: Set options as for live transmission. In this mode, you
7294 should send by one sending instruction only so many data that fit
7295 in one UDP packet, and limited to the value defined first in
7296 payload_size (1316 is default in this mode). There is no speed
7297 control in this mode, only the bandwidth control, if configured, in
7298 order to not exceed the bandwidth with the overhead transmission
7299 (retransmitted and control packets).
7300
7301 file: Set options as for non-live transmission. See messageapi for
7302 further explanations
7303
7304 linger=seconds
7305 The number of seconds that the socket waits for unsent data when
7306 closing. Default is -1. -1 means auto (off with 0 seconds in live
7307 mode, on with 180 seconds in file mode). The range for this option
7308 is integers in the 0 - "INT_MAX".
7309
7310 tsbpd=1|0
7311 When true, use Timestamp-based Packet Delivery mode. The default
7312 behavior depends on the transmission type: enabled in live mode,
7313 disabled in file mode.
7314
7315 For more information see: <https://github.com/Haivision/srt>.
7316
7317 srtp
7318 Secure Real-time Transport Protocol.
7319
7320 The accepted options are:
7321
7322 srtp_in_suite
7323 srtp_out_suite
7324 Select input and output encoding suites.
7325
7326 Supported values:
7327
7328 AES_CM_128_HMAC_SHA1_80
7329 SRTP_AES128_CM_HMAC_SHA1_80
7330 AES_CM_128_HMAC_SHA1_32
7331 SRTP_AES128_CM_HMAC_SHA1_32
7332 srtp_in_params
7333 srtp_out_params
7334 Set input and output encoding parameters, which are expressed by a
7335 base64-encoded representation of a binary block. The first 16 bytes
7336 of this binary block are used as master key, the following 14 bytes
7337 are used as master salt.
7338
7339 subfile
7340 Virtually extract a segment of a file or another stream. The
7341 underlying stream must be seekable.
7342
7343 Accepted options:
7344
7345 start
7346 Start offset of the extracted segment, in bytes.
7347
7348 end End offset of the extracted segment, in bytes. If set to 0,
7349 extract till end of file.
7350
7351 Examples:
7352
7353 Extract a chapter from a DVD VOB file (start and end sectors obtained
7354 externally and multiplied by 2048):
7355
7356 subfile,,start,153391104,end,268142592,,:/media/dvd/VIDEO_TS/VTS_08_1.VOB
7357
7358 Play an AVI file directly from a TAR archive:
7359
7360 subfile,,start,183241728,end,366490624,,:archive.tar
7361
7362 Play a MPEG-TS file from start offset till end:
7363
7364 subfile,,start,32815239,end,0,,:video.ts
7365
7366 tee
7367 Writes the output to multiple protocols. The individual outputs are
7368 separated by |
7369
7370 tee:file://path/to/local/this.avi|file://path/to/local/that.avi
7371
7372 tcp
7373 Transmission Control Protocol.
7374
7375 The required syntax for a TCP url is:
7376
7377 tcp://<hostname>:<port>[?<options>]
7378
7379 options contains a list of &-separated options of the form key=val.
7380
7381 The list of supported options follows.
7382
7383 listen=2|1|0
7384 Listen for an incoming connection. 0 disables listen, 1 enables
7385 listen in single client mode, 2 enables listen in multi-client
7386 mode. Default value is 0.
7387
7388 timeout=microseconds
7389 Set raise error timeout, expressed in microseconds.
7390
7391 This option is only relevant in read mode: if no data arrived in
7392 more than this time interval, raise error.
7393
7394 listen_timeout=milliseconds
7395 Set listen timeout, expressed in milliseconds.
7396
7397 recv_buffer_size=bytes
7398 Set receive buffer size, expressed bytes.
7399
7400 send_buffer_size=bytes
7401 Set send buffer size, expressed bytes.
7402
7403 tcp_nodelay=1|0
7404 Set TCP_NODELAY to disable Nagle's algorithm. Default value is 0.
7405
7406 Remark: Writing to the socket is currently not optimized to
7407 minimize system calls and reduces the efficiency / effect of
7408 TCP_NODELAY.
7409
7410 tcp_mss=bytes
7411 Set maximum segment size for outgoing TCP packets, expressed in
7412 bytes.
7413
7414 The following example shows how to setup a listening TCP connection
7415 with ffmpeg, which is then accessed with ffplay:
7416
7417 ffmpeg -i <input> -f <format> tcp://<hostname>:<port>?listen
7418 ffplay tcp://<hostname>:<port>
7419
7420 tls
7421 Transport Layer Security (TLS) / Secure Sockets Layer (SSL)
7422
7423 The required syntax for a TLS/SSL url is:
7424
7425 tls://<hostname>:<port>[?<options>]
7426
7427 The following parameters can be set via command line options (or in
7428 code via "AVOption"s):
7429
7430 ca_file, cafile=filename
7431 A file containing certificate authority (CA) root certificates to
7432 treat as trusted. If the linked TLS library contains a default this
7433 might not need to be specified for verification to work, but not
7434 all libraries and setups have defaults built in. The file must be
7435 in OpenSSL PEM format.
7436
7437 tls_verify=1|0
7438 If enabled, try to verify the peer that we are communicating with.
7439 Note, if using OpenSSL, this currently only makes sure that the
7440 peer certificate is signed by one of the root certificates in the
7441 CA database, but it does not validate that the certificate actually
7442 matches the host name we are trying to connect to. (With other
7443 backends, the host name is validated as well.)
7444
7445 This is disabled by default since it requires a CA database to be
7446 provided by the caller in many cases.
7447
7448 cert_file, cert=filename
7449 A file containing a certificate to use in the handshake with the
7450 peer. (When operating as server, in listen mode, this is more
7451 often required by the peer, while client certificates only are
7452 mandated in certain setups.)
7453
7454 key_file, key=filename
7455 A file containing the private key for the certificate.
7456
7457 listen=1|0
7458 If enabled, listen for connections on the provided port, and assume
7459 the server role in the handshake instead of the client role.
7460
7461 http_proxy
7462 The HTTP proxy to tunnel through, e.g. "http://example.com:1234".
7463 The proxy must support the CONNECT method.
7464
7465 Example command lines:
7466
7467 To create a TLS/SSL server that serves an input stream.
7468
7469 ffmpeg -i <input> -f <format> tls://<hostname>:<port>?listen&cert=<server.crt>&key=<server.key>
7470
7471 To play back a stream from the TLS/SSL server using ffplay:
7472
7473 ffplay tls://<hostname>:<port>
7474
7475 udp
7476 User Datagram Protocol.
7477
7478 The required syntax for an UDP URL is:
7479
7480 udp://<hostname>:<port>[?<options>]
7481
7482 options contains a list of &-separated options of the form key=val.
7483
7484 In case threading is enabled on the system, a circular buffer is used
7485 to store the incoming data, which allows one to reduce loss of data due
7486 to UDP socket buffer overruns. The fifo_size and overrun_nonfatal
7487 options are related to this buffer.
7488
7489 The list of supported options follows.
7490
7491 buffer_size=size
7492 Set the UDP maximum socket buffer size in bytes. This is used to
7493 set either the receive or send buffer size, depending on what the
7494 socket is used for. Default is 32 KB for output, 384 KB for input.
7495 See also fifo_size.
7496
7497 bitrate=bitrate
7498 If set to nonzero, the output will have the specified constant
7499 bitrate if the input has enough packets to sustain it.
7500
7501 burst_bits=bits
7502 When using bitrate this specifies the maximum number of bits in
7503 packet bursts.
7504
7505 localport=port
7506 Override the local UDP port to bind with.
7507
7508 localaddr=addr
7509 Local IP address of a network interface used for sending packets or
7510 joining multicast groups.
7511
7512 pkt_size=size
7513 Set the size in bytes of UDP packets.
7514
7515 reuse=1|0
7516 Explicitly allow or disallow reusing UDP sockets.
7517
7518 ttl=ttl
7519 Set the time to live value (for multicast only).
7520
7521 connect=1|0
7522 Initialize the UDP socket with connect(). In this case, the
7523 destination address can't be changed with ff_udp_set_remote_url
7524 later. If the destination address isn't known at the start, this
7525 option can be specified in ff_udp_set_remote_url, too. This allows
7526 finding out the source address for the packets with getsockname,
7527 and makes writes return with AVERROR(ECONNREFUSED) if "destination
7528 unreachable" is received. For receiving, this gives the benefit of
7529 only receiving packets from the specified peer address/port.
7530
7531 sources=address[,address]
7532 Only receive packets sent from the specified addresses. In case of
7533 multicast, also subscribe to multicast traffic coming from these
7534 addresses only.
7535
7536 block=address[,address]
7537 Ignore packets sent from the specified addresses. In case of
7538 multicast, also exclude the source addresses in the multicast
7539 subscription.
7540
7541 fifo_size=units
7542 Set the UDP receiving circular buffer size, expressed as a number
7543 of packets with size of 188 bytes. If not specified defaults to
7544 7*4096.
7545
7546 overrun_nonfatal=1|0
7547 Survive in case of UDP receiving circular buffer overrun. Default
7548 value is 0.
7549
7550 timeout=microseconds
7551 Set raise error timeout, expressed in microseconds.
7552
7553 This option is only relevant in read mode: if no data arrived in
7554 more than this time interval, raise error.
7555
7556 broadcast=1|0
7557 Explicitly allow or disallow UDP broadcasting.
7558
7559 Note that broadcasting may not work properly on networks having a
7560 broadcast storm protection.
7561
7562 Examples
7563
7564 • Use ffmpeg to stream over UDP to a remote endpoint:
7565
7566 ffmpeg -i <input> -f <format> udp://<hostname>:<port>
7567
7568 • Use ffmpeg to stream in mpegts format over UDP using 188 sized UDP
7569 packets, using a large input buffer:
7570
7571 ffmpeg -i <input> -f mpegts udp://<hostname>:<port>?pkt_size=188&buffer_size=65535
7572
7573 • Use ffmpeg to receive over UDP from a remote endpoint:
7574
7575 ffmpeg -i udp://[<multicast-address>]:<port> ...
7576
7577 unix
7578 Unix local socket
7579
7580 The required syntax for a Unix socket URL is:
7581
7582 unix://<filepath>
7583
7584 The following parameters can be set via command line options (or in
7585 code via "AVOption"s):
7586
7587 timeout
7588 Timeout in ms.
7589
7590 listen
7591 Create the Unix socket in listening mode.
7592
7593 zmq
7594 ZeroMQ asynchronous messaging using the libzmq library.
7595
7596 This library supports unicast streaming to multiple clients without
7597 relying on an external server.
7598
7599 The required syntax for streaming or connecting to a stream is:
7600
7601 zmq:tcp://ip-address:port
7602
7603 Example: Create a localhost stream on port 5555:
7604
7605 ffmpeg -re -i input -f mpegts zmq:tcp://127.0.0.1:5555
7606
7607 Multiple clients may connect to the stream using:
7608
7609 ffplay zmq:tcp://127.0.0.1:5555
7610
7611 Streaming to multiple clients is implemented using a ZeroMQ Pub-Sub
7612 pattern. The server side binds to a port and publishes data. Clients
7613 connect to the server (via IP address/port) and subscribe to the
7614 stream. The order in which the server and client start generally does
7615 not matter.
7616
7617 ffmpeg must be compiled with the --enable-libzmq option to support this
7618 protocol.
7619
7620 Options can be set on the ffmpeg/ffplay command line. The following
7621 options are supported:
7622
7623 pkt_size
7624 Forces the maximum packet size for sending/receiving data. The
7625 default value is 131,072 bytes. On the server side, this sets the
7626 maximum size of sent packets via ZeroMQ. On the clients, it sets an
7627 internal buffer size for receiving packets. Note that pkt_size on
7628 the clients should be equal to or greater than pkt_size on the
7629 server. Otherwise the received message may be truncated causing
7630 decoding errors.
7631
7633 The libavdevice library provides the same interface as libavformat.
7634 Namely, an input device is considered like a demuxer, and an output
7635 device like a muxer, and the interface and generic device options are
7636 the same provided by libavformat (see the ffmpeg-formats manual).
7637
7638 In addition each input or output device may support so-called private
7639 options, which are specific for that component.
7640
7641 Options may be set by specifying -option value in the FFmpeg tools, or
7642 by setting the value explicitly in the device "AVFormatContext" options
7643 or using the libavutil/opt.h API for programmatic use.
7644
7646 Input devices are configured elements in FFmpeg which enable accessing
7647 the data coming from a multimedia device attached to your system.
7648
7649 When you configure your FFmpeg build, all the supported input devices
7650 are enabled by default. You can list all available ones using the
7651 configure option "--list-indevs".
7652
7653 You can disable all the input devices using the configure option
7654 "--disable-indevs", and selectively enable an input device using the
7655 option "--enable-indev=INDEV", or you can disable a particular input
7656 device using the option "--disable-indev=INDEV".
7657
7658 The option "-devices" of the ff* tools will display the list of
7659 supported input devices.
7660
7661 A description of the currently available input devices follows.
7662
7663 alsa
7664 ALSA (Advanced Linux Sound Architecture) input device.
7665
7666 To enable this input device during configuration you need libasound
7667 installed on your system.
7668
7669 This device allows capturing from an ALSA device. The name of the
7670 device to capture has to be an ALSA card identifier.
7671
7672 An ALSA identifier has the syntax:
7673
7674 hw:<CARD>[,<DEV>[,<SUBDEV>]]
7675
7676 where the DEV and SUBDEV components are optional.
7677
7678 The three arguments (in order: CARD,DEV,SUBDEV) specify card number or
7679 identifier, device number and subdevice number (-1 means any).
7680
7681 To see the list of cards currently recognized by your system check the
7682 files /proc/asound/cards and /proc/asound/devices.
7683
7684 For example to capture with ffmpeg from an ALSA device with card id 0,
7685 you may run the command:
7686
7687 ffmpeg -f alsa -i hw:0 alsaout.wav
7688
7689 For more information see:
7690 <http://www.alsa-project.org/alsa-doc/alsa-lib/pcm.html>
7691
7692 Options
7693
7694 sample_rate
7695 Set the sample rate in Hz. Default is 48000.
7696
7697 channels
7698 Set the number of channels. Default is 2.
7699
7700 android_camera
7701 Android camera input device.
7702
7703 This input devices uses the Android Camera2 NDK API which is available
7704 on devices with API level 24+. The availability of android_camera is
7705 autodetected during configuration.
7706
7707 This device allows capturing from all cameras on an Android device,
7708 which are integrated into the Camera2 NDK API.
7709
7710 The available cameras are enumerated internally and can be selected
7711 with the camera_index parameter. The input file string is discarded.
7712
7713 Generally the back facing camera has index 0 while the front facing
7714 camera has index 1.
7715
7716 Options
7717
7718 video_size
7719 Set the video size given as a string such as 640x480 or hd720.
7720 Falls back to the first available configuration reported by Android
7721 if requested video size is not available or by default.
7722
7723 framerate
7724 Set the video framerate. Falls back to the first available
7725 configuration reported by Android if requested framerate is not
7726 available or by default (-1).
7727
7728 camera_index
7729 Set the index of the camera to use. Default is 0.
7730
7731 input_queue_size
7732 Set the maximum number of frames to buffer. Default is 5.
7733
7734 avfoundation
7735 AVFoundation input device.
7736
7737 AVFoundation is the currently recommended framework by Apple for
7738 streamgrabbing on OSX >= 10.7 as well as on iOS.
7739
7740 The input filename has to be given in the following syntax:
7741
7742 -i "[[VIDEO]:[AUDIO]]"
7743
7744 The first entry selects the video input while the latter selects the
7745 audio input. The stream has to be specified by the device name or the
7746 device index as shown by the device list. Alternatively, the video
7747 and/or audio input device can be chosen by index using the
7748
7749 B<-video_device_index E<lt>INDEXE<gt>>
7750
7751 and/or
7752
7753 B<-audio_device_index E<lt>INDEXE<gt>>
7754
7755 , overriding any device name or index given in the input filename.
7756
7757 All available devices can be enumerated by using -list_devices true,
7758 listing all device names and corresponding indices.
7759
7760 There are two device name aliases:
7761
7762 "default"
7763 Select the AVFoundation default device of the corresponding type.
7764
7765 "none"
7766 Do not record the corresponding media type. This is equivalent to
7767 specifying an empty device name or index.
7768
7769 Options
7770
7771 AVFoundation supports the following options:
7772
7773 -list_devices <TRUE|FALSE>
7774 If set to true, a list of all available input devices is given
7775 showing all device names and indices.
7776
7777 -video_device_index <INDEX>
7778 Specify the video device by its index. Overrides anything given in
7779 the input filename.
7780
7781 -audio_device_index <INDEX>
7782 Specify the audio device by its index. Overrides anything given in
7783 the input filename.
7784
7785 -pixel_format <FORMAT>
7786 Request the video device to use a specific pixel format. If the
7787 specified format is not supported, a list of available formats is
7788 given and the first one in this list is used instead. Available
7789 pixel formats are: "monob, rgb555be, rgb555le, rgb565be, rgb565le,
7790 rgb24, bgr24, 0rgb, bgr0, 0bgr, rgb0,
7791 bgr48be, uyvy422, yuva444p, yuva444p16le, yuv444p, yuv422p16,
7792 yuv422p10, yuv444p10,
7793 yuv420p, nv12, yuyv422, gray"
7794
7795 -framerate
7796 Set the grabbing frame rate. Default is "ntsc", corresponding to a
7797 frame rate of "30000/1001".
7798
7799 -video_size
7800 Set the video frame size.
7801
7802 -capture_cursor
7803 Capture the mouse pointer. Default is 0.
7804
7805 -capture_mouse_clicks
7806 Capture the screen mouse clicks. Default is 0.
7807
7808 -capture_raw_data
7809 Capture the raw device data. Default is 0. Using this option may
7810 result in receiving the underlying data delivered to the
7811 AVFoundation framework. E.g. for muxed devices that sends raw DV
7812 data to the framework (like tape-based camcorders), setting this
7813 option to false results in extracted video frames captured in the
7814 designated pixel format only. Setting this option to true results
7815 in receiving the raw DV stream untouched.
7816
7817 Examples
7818
7819 • Print the list of AVFoundation supported devices and exit:
7820
7821 $ ffmpeg -f avfoundation -list_devices true -i ""
7822
7823 • Record video from video device 0 and audio from audio device 0 into
7824 out.avi:
7825
7826 $ ffmpeg -f avfoundation -i "0:0" out.avi
7827
7828 • Record video from video device 2 and audio from audio device 1 into
7829 out.avi:
7830
7831 $ ffmpeg -f avfoundation -video_device_index 2 -i ":1" out.avi
7832
7833 • Record video from the system default video device using the pixel
7834 format bgr0 and do not record any audio into out.avi:
7835
7836 $ ffmpeg -f avfoundation -pixel_format bgr0 -i "default:none" out.avi
7837
7838 • Record raw DV data from a suitable input device and write the
7839 output into out.dv:
7840
7841 $ ffmpeg -f avfoundation -capture_raw_data true -i "zr100:none" out.dv
7842
7843 bktr
7844 BSD video input device.
7845
7846 Options
7847
7848 framerate
7849 Set the frame rate.
7850
7851 video_size
7852 Set the video frame size. Default is "vga".
7853
7854 standard
7855 Available values are:
7856
7857 pal
7858 ntsc
7859 secam
7860 paln
7861 palm
7862 ntscj
7863
7864 decklink
7865 The decklink input device provides capture capabilities for Blackmagic
7866 DeckLink devices.
7867
7868 To enable this input device, you need the Blackmagic DeckLink SDK and
7869 you need to configure with the appropriate "--extra-cflags" and
7870 "--extra-ldflags". On Windows, you need to run the IDL files through
7871 widl.
7872
7873 DeckLink is very picky about the formats it supports. Pixel format of
7874 the input can be set with raw_format. Framerate and video size must be
7875 determined for your device with -list_formats 1. Audio sample rate is
7876 always 48 kHz and the number of channels can be 2, 8 or 16. Note that
7877 all audio channels are bundled in one single audio track.
7878
7879 Options
7880
7881 list_devices
7882 If set to true, print a list of devices and exit. Defaults to
7883 false. This option is deprecated, please use the "-sources" option
7884 of ffmpeg to list the available input devices.
7885
7886 list_formats
7887 If set to true, print a list of supported formats and exit.
7888 Defaults to false.
7889
7890 format_code <FourCC>
7891 This sets the input video format to the format given by the FourCC.
7892 To see the supported values of your device(s) use list_formats.
7893 Note that there is a FourCC 'pal ' that can also be used as pal (3
7894 letters). Default behavior is autodetection of the input video
7895 format, if the hardware supports it.
7896
7897 raw_format
7898 Set the pixel format of the captured video. Available values are:
7899
7900 auto
7901 This is the default which means 8-bit YUV 422 or 8-bit ARGB if
7902 format autodetection is used, 8-bit YUV 422 otherwise.
7903
7904 uyvy422
7905 8-bit YUV 422.
7906
7907 yuv422p10
7908 10-bit YUV 422.
7909
7910 argb
7911 8-bit RGB.
7912
7913 bgra
7914 8-bit RGB.
7915
7916 rgb10
7917 10-bit RGB.
7918
7919 teletext_lines
7920 If set to nonzero, an additional teletext stream will be captured
7921 from the vertical ancillary data. Both SD PAL (576i) and HD (1080i
7922 or 1080p) sources are supported. In case of HD sources, OP47
7923 packets are decoded.
7924
7925 This option is a bitmask of the SD PAL VBI lines captured,
7926 specifically lines 6 to 22, and lines 318 to 335. Line 6 is the LSB
7927 in the mask. Selected lines which do not contain teletext
7928 information will be ignored. You can use the special all constant
7929 to select all possible lines, or standard to skip lines 6, 318 and
7930 319, which are not compatible with all receivers.
7931
7932 For SD sources, ffmpeg needs to be compiled with
7933 "--enable-libzvbi". For HD sources, on older (pre-4K) DeckLink card
7934 models you have to capture in 10 bit mode.
7935
7936 channels
7937 Defines number of audio channels to capture. Must be 2, 8 or 16.
7938 Defaults to 2.
7939
7940 duplex_mode
7941 Sets the decklink device duplex/profile mode. Must be unset, half,
7942 full, one_sub_device_full, one_sub_device_half,
7943 two_sub_device_full, four_sub_device_half Defaults to unset.
7944
7945 Note: DeckLink SDK 11.0 have replaced the duplex property by a
7946 profile property. For the DeckLink Duo 2 and DeckLink Quad 2, a
7947 profile is shared between any 2 sub-devices that utilize the same
7948 connectors. For the DeckLink 8K Pro, a profile is shared between
7949 all 4 sub-devices. So DeckLink 8K Pro support four profiles.
7950
7951 Valid profile modes for DeckLink 8K Pro(with DeckLink SDK >= 11.0):
7952 one_sub_device_full, one_sub_device_half, two_sub_device_full,
7953 four_sub_device_half
7954
7955 Valid profile modes for DeckLink Quad 2 and DeckLink Duo 2: half,
7956 full
7957
7958 timecode_format
7959 Timecode type to include in the frame and video stream metadata.
7960 Must be none, rp188vitc, rp188vitc2, rp188ltc, rp188hfr, rp188any,
7961 vitc, vitc2, or serial. Defaults to none (not included).
7962
7963 In order to properly support 50/60 fps timecodes, the ordering of
7964 the queried timecode types for rp188any is HFR, VITC1, VITC2 and
7965 LTC for >30 fps content. Note that this is slightly different to
7966 the ordering used by the DeckLink API, which is HFR, VITC1, LTC,
7967 VITC2.
7968
7969 video_input
7970 Sets the video input source. Must be unset, sdi, hdmi, optical_sdi,
7971 component, composite or s_video. Defaults to unset.
7972
7973 audio_input
7974 Sets the audio input source. Must be unset, embedded, aes_ebu,
7975 analog, analog_xlr, analog_rca or microphone. Defaults to unset.
7976
7977 video_pts
7978 Sets the video packet timestamp source. Must be video, audio,
7979 reference, wallclock or abs_wallclock. Defaults to video.
7980
7981 audio_pts
7982 Sets the audio packet timestamp source. Must be video, audio,
7983 reference, wallclock or abs_wallclock. Defaults to audio.
7984
7985 draw_bars
7986 If set to true, color bars are drawn in the event of a signal loss.
7987 Defaults to true.
7988
7989 queue_size
7990 Sets maximum input buffer size in bytes. If the buffering reaches
7991 this value, incoming frames will be dropped. Defaults to
7992 1073741824.
7993
7994 audio_depth
7995 Sets the audio sample bit depth. Must be 16 or 32. Defaults to 16.
7996
7997 decklink_copyts
7998 If set to true, timestamps are forwarded as they are without
7999 removing the initial offset. Defaults to false.
8000
8001 timestamp_align
8002 Capture start time alignment in seconds. If set to nonzero, input
8003 frames are dropped till the system timestamp aligns with configured
8004 value. Alignment difference of up to one frame duration is
8005 tolerated. This is useful for maintaining input synchronization
8006 across N different hardware devices deployed for 'N-way'
8007 redundancy. The system time of different hardware devices should be
8008 synchronized with protocols such as NTP or PTP, before using this
8009 option. Note that this method is not foolproof. In some border
8010 cases input synchronization may not happen due to thread scheduling
8011 jitters in the OS. Either sync could go wrong by 1 frame or in a
8012 rarer case timestamp_align seconds. Defaults to 0.
8013
8014 wait_for_tc (bool)
8015 Drop frames till a frame with timecode is received. Sometimes
8016 serial timecode isn't received with the first input frame. If that
8017 happens, the stored stream timecode will be inaccurate. If this
8018 option is set to true, input frames are dropped till a frame with
8019 timecode is received. Option timecode_format must be specified.
8020 Defaults to false.
8021
8022 enable_klv(bool)
8023 If set to true, extracts KLV data from VANC and outputs KLV
8024 packets. KLV VANC packets are joined based on MID and PSC fields
8025 and aggregated into one KLV packet. Defaults to false.
8026
8027 Examples
8028
8029 • List input devices:
8030
8031 ffmpeg -sources decklink
8032
8033 • List supported formats:
8034
8035 ffmpeg -f decklink -list_formats 1 -i 'Intensity Pro'
8036
8037 • Capture video clip at 1080i50:
8038
8039 ffmpeg -format_code Hi50 -f decklink -i 'Intensity Pro' -c:a copy -c:v copy output.avi
8040
8041 • Capture video clip at 1080i50 10 bit:
8042
8043 ffmpeg -raw_format yuv422p10 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
8044
8045 • Capture video clip at 1080i50 with 16 audio channels:
8046
8047 ffmpeg -channels 16 -format_code Hi50 -f decklink -i 'UltraStudio Mini Recorder' -c:a copy -c:v copy output.avi
8048
8049 dshow
8050 Windows DirectShow input device.
8051
8052 DirectShow support is enabled when FFmpeg is built with the mingw-w64
8053 project. Currently only audio and video devices are supported.
8054
8055 Multiple devices may be opened as separate inputs, but they may also be
8056 opened on the same input, which should improve synchronism between
8057 them.
8058
8059 The input name should be in the format:
8060
8061 <TYPE>=<NAME>[:<TYPE>=<NAME>]
8062
8063 where TYPE can be either audio or video, and NAME is the device's name
8064 or alternative name..
8065
8066 Options
8067
8068 If no options are specified, the device's defaults are used. If the
8069 device does not support the requested options, it will fail to open.
8070
8071 video_size
8072 Set the video size in the captured video.
8073
8074 framerate
8075 Set the frame rate in the captured video.
8076
8077 sample_rate
8078 Set the sample rate (in Hz) of the captured audio.
8079
8080 sample_size
8081 Set the sample size (in bits) of the captured audio.
8082
8083 channels
8084 Set the number of channels in the captured audio.
8085
8086 list_devices
8087 If set to true, print a list of devices and exit.
8088
8089 list_options
8090 If set to true, print a list of selected device's options and exit.
8091
8092 video_device_number
8093 Set video device number for devices with the same name (starts at
8094 0, defaults to 0).
8095
8096 audio_device_number
8097 Set audio device number for devices with the same name (starts at
8098 0, defaults to 0).
8099
8100 pixel_format
8101 Select pixel format to be used by DirectShow. This may only be set
8102 when the video codec is not set or set to rawvideo.
8103
8104 audio_buffer_size
8105 Set audio device buffer size in milliseconds (which can directly
8106 impact latency, depending on the device). Defaults to using the
8107 audio device's default buffer size (typically some multiple of
8108 500ms). Setting this value too low can degrade performance. See
8109 also
8110 <http://msdn.microsoft.com/en-us/library/windows/desktop/dd377582(v=vs.85).aspx>
8111
8112 video_pin_name
8113 Select video capture pin to use by name or alternative name.
8114
8115 audio_pin_name
8116 Select audio capture pin to use by name or alternative name.
8117
8118 crossbar_video_input_pin_number
8119 Select video input pin number for crossbar device. This will be
8120 routed to the crossbar device's Video Decoder output pin. Note
8121 that changing this value can affect future invocations (sets a new
8122 default) until system reboot occurs.
8123
8124 crossbar_audio_input_pin_number
8125 Select audio input pin number for crossbar device. This will be
8126 routed to the crossbar device's Audio Decoder output pin. Note
8127 that changing this value can affect future invocations (sets a new
8128 default) until system reboot occurs.
8129
8130 show_video_device_dialog
8131 If set to true, before capture starts, popup a display dialog to
8132 the end user, allowing them to change video filter properties and
8133 configurations manually. Note that for crossbar devices, adjusting
8134 values in this dialog may be needed at times to toggle between PAL
8135 (25 fps) and NTSC (29.97) input frame rates, sizes, interlacing,
8136 etc. Changing these values can enable different scan rates/frame
8137 rates and avoiding green bars at the bottom, flickering scan lines,
8138 etc. Note that with some devices, changing these properties can
8139 also affect future invocations (sets new defaults) until system
8140 reboot occurs.
8141
8142 show_audio_device_dialog
8143 If set to true, before capture starts, popup a display dialog to
8144 the end user, allowing them to change audio filter properties and
8145 configurations manually.
8146
8147 show_video_crossbar_connection_dialog
8148 If set to true, before capture starts, popup a display dialog to
8149 the end user, allowing them to manually modify crossbar pin
8150 routings, when it opens a video device.
8151
8152 show_audio_crossbar_connection_dialog
8153 If set to true, before capture starts, popup a display dialog to
8154 the end user, allowing them to manually modify crossbar pin
8155 routings, when it opens an audio device.
8156
8157 show_analog_tv_tuner_dialog
8158 If set to true, before capture starts, popup a display dialog to
8159 the end user, allowing them to manually modify TV channels and
8160 frequencies.
8161
8162 show_analog_tv_tuner_audio_dialog
8163 If set to true, before capture starts, popup a display dialog to
8164 the end user, allowing them to manually modify TV audio (like mono
8165 vs. stereo, Language A,B or C).
8166
8167 audio_device_load
8168 Load an audio capture filter device from file instead of searching
8169 it by name. It may load additional parameters too, if the filter
8170 supports the serialization of its properties to. To use this an
8171 audio capture source has to be specified, but it can be anything
8172 even fake one.
8173
8174 audio_device_save
8175 Save the currently used audio capture filter device and its
8176 parameters (if the filter supports it) to a file. If a file with
8177 the same name exists it will be overwritten.
8178
8179 video_device_load
8180 Load a video capture filter device from file instead of searching
8181 it by name. It may load additional parameters too, if the filter
8182 supports the serialization of its properties to. To use this a
8183 video capture source has to be specified, but it can be anything
8184 even fake one.
8185
8186 video_device_save
8187 Save the currently used video capture filter device and its
8188 parameters (if the filter supports it) to a file. If a file with
8189 the same name exists it will be overwritten.
8190
8191 use_video_device_timestamps
8192 If set to false, the timestamp for video frames will be derived
8193 from the wallclock instead of the timestamp provided by the capture
8194 device. This allows working around devices that provide unreliable
8195 timestamps.
8196
8197 Examples
8198
8199 • Print the list of DirectShow supported devices and exit:
8200
8201 $ ffmpeg -list_devices true -f dshow -i dummy
8202
8203 • Open video device Camera:
8204
8205 $ ffmpeg -f dshow -i video="Camera"
8206
8207 • Open second video device with name Camera:
8208
8209 $ ffmpeg -f dshow -video_device_number 1 -i video="Camera"
8210
8211 • Open video device Camera and audio device Microphone:
8212
8213 $ ffmpeg -f dshow -i video="Camera":audio="Microphone"
8214
8215 • Print the list of supported options in selected device and exit:
8216
8217 $ ffmpeg -list_options true -f dshow -i video="Camera"
8218
8219 • Specify pin names to capture by name or alternative name, specify
8220 alternative device name:
8221
8222 $ ffmpeg -f dshow -audio_pin_name "Audio Out" -video_pin_name 2 -i video=video="@device_pnp_\\?\pci#ven_1a0a&dev_6200&subsys_62021461&rev_01#4&e2c7dd6&0&00e1#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\{ca465100-deb0-4d59-818f-8c477184adf6}":audio="Microphone"
8223
8224 • Configure a crossbar device, specifying crossbar pins, allow user
8225 to adjust video capture properties at startup:
8226
8227 $ ffmpeg -f dshow -show_video_device_dialog true -crossbar_video_input_pin_number 0
8228 -crossbar_audio_input_pin_number 3 -i video="AVerMedia BDA Analog Capture":audio="AVerMedia BDA Analog Capture"
8229
8230 fbdev
8231 Linux framebuffer input device.
8232
8233 The Linux framebuffer is a graphic hardware-independent abstraction
8234 layer to show graphics on a computer monitor, typically on the console.
8235 It is accessed through a file device node, usually /dev/fb0.
8236
8237 For more detailed information read the file
8238 Documentation/fb/framebuffer.txt included in the Linux source tree.
8239
8240 See also <http://linux-fbdev.sourceforge.net/>, and fbset(1).
8241
8242 To record from the framebuffer device /dev/fb0 with ffmpeg:
8243
8244 ffmpeg -f fbdev -framerate 10 -i /dev/fb0 out.avi
8245
8246 You can take a single screenshot image with the command:
8247
8248 ffmpeg -f fbdev -framerate 1 -i /dev/fb0 -frames:v 1 screenshot.jpeg
8249
8250 Options
8251
8252 framerate
8253 Set the frame rate. Default is 25.
8254
8255 gdigrab
8256 Win32 GDI-based screen capture device.
8257
8258 This device allows you to capture a region of the display on Windows.
8259
8260 There are two options for the input filename:
8261
8262 desktop
8263
8264 or
8265
8266 title=<window_title>
8267
8268 The first option will capture the entire desktop, or a fixed region of
8269 the desktop. The second option will instead capture the contents of a
8270 single window, regardless of its position on the screen.
8271
8272 For example, to grab the entire desktop using ffmpeg:
8273
8274 ffmpeg -f gdigrab -framerate 6 -i desktop out.mpg
8275
8276 Grab a 640x480 region at position "10,20":
8277
8278 ffmpeg -f gdigrab -framerate 6 -offset_x 10 -offset_y 20 -video_size vga -i desktop out.mpg
8279
8280 Grab the contents of the window named "Calculator"
8281
8282 ffmpeg -f gdigrab -framerate 6 -i title=Calculator out.mpg
8283
8284 Options
8285
8286 draw_mouse
8287 Specify whether to draw the mouse pointer. Use the value 0 to not
8288 draw the pointer. Default value is 1.
8289
8290 framerate
8291 Set the grabbing frame rate. Default value is "ntsc", corresponding
8292 to a frame rate of "30000/1001".
8293
8294 show_region
8295 Show grabbed region on screen.
8296
8297 If show_region is specified with 1, then the grabbing region will
8298 be indicated on screen. With this option, it is easy to know what
8299 is being grabbed if only a portion of the screen is grabbed.
8300
8301 Note that show_region is incompatible with grabbing the contents of
8302 a single window.
8303
8304 For example:
8305
8306 ffmpeg -f gdigrab -show_region 1 -framerate 6 -video_size cif -offset_x 10 -offset_y 20 -i desktop out.mpg
8307
8308 video_size
8309 Set the video frame size. The default is to capture the full screen
8310 if desktop is selected, or the full window size if
8311 title=window_title is selected.
8312
8313 offset_x
8314 When capturing a region with video_size, set the distance from the
8315 left edge of the screen or desktop.
8316
8317 Note that the offset calculation is from the top left corner of the
8318 primary monitor on Windows. If you have a monitor positioned to the
8319 left of your primary monitor, you will need to use a negative
8320 offset_x value to move the region to that monitor.
8321
8322 offset_y
8323 When capturing a region with video_size, set the distance from the
8324 top edge of the screen or desktop.
8325
8326 Note that the offset calculation is from the top left corner of the
8327 primary monitor on Windows. If you have a monitor positioned above
8328 your primary monitor, you will need to use a negative offset_y
8329 value to move the region to that monitor.
8330
8331 iec61883
8332 FireWire DV/HDV input device using libiec61883.
8333
8334 To enable this input device, you need libiec61883, libraw1394 and
8335 libavc1394 installed on your system. Use the configure option
8336 "--enable-libiec61883" to compile with the device enabled.
8337
8338 The iec61883 capture device supports capturing from a video device
8339 connected via IEEE1394 (FireWire), using libiec61883 and the new Linux
8340 FireWire stack (juju). This is the default DV/HDV input method in Linux
8341 Kernel 2.6.37 and later, since the old FireWire stack was removed.
8342
8343 Specify the FireWire port to be used as input file, or "auto" to choose
8344 the first port connected.
8345
8346 Options
8347
8348 dvtype
8349 Override autodetection of DV/HDV. This should only be used if auto
8350 detection does not work, or if usage of a different device type
8351 should be prohibited. Treating a DV device as HDV (or vice versa)
8352 will not work and result in undefined behavior. The values auto,
8353 dv and hdv are supported.
8354
8355 dvbuffer
8356 Set maximum size of buffer for incoming data, in frames. For DV,
8357 this is an exact value. For HDV, it is not frame exact, since HDV
8358 does not have a fixed frame size.
8359
8360 dvguid
8361 Select the capture device by specifying its GUID. Capturing will
8362 only be performed from the specified device and fails if no device
8363 with the given GUID is found. This is useful to select the input if
8364 multiple devices are connected at the same time. Look at
8365 /sys/bus/firewire/devices to find out the GUIDs.
8366
8367 Examples
8368
8369 • Grab and show the input of a FireWire DV/HDV device.
8370
8371 ffplay -f iec61883 -i auto
8372
8373 • Grab and record the input of a FireWire DV/HDV device, using a
8374 packet buffer of 100000 packets if the source is HDV.
8375
8376 ffmpeg -f iec61883 -i auto -dvbuffer 100000 out.mpg
8377
8378 jack
8379 JACK input device.
8380
8381 To enable this input device during configuration you need libjack
8382 installed on your system.
8383
8384 A JACK input device creates one or more JACK writable clients, one for
8385 each audio channel, with name client_name:input_N, where client_name is
8386 the name provided by the application, and N is a number which
8387 identifies the channel. Each writable client will send the acquired
8388 data to the FFmpeg input device.
8389
8390 Once you have created one or more JACK readable clients, you need to
8391 connect them to one or more JACK writable clients.
8392
8393 To connect or disconnect JACK clients you can use the jack_connect and
8394 jack_disconnect programs, or do it through a graphical interface, for
8395 example with qjackctl.
8396
8397 To list the JACK clients and their properties you can invoke the
8398 command jack_lsp.
8399
8400 Follows an example which shows how to capture a JACK readable client
8401 with ffmpeg.
8402
8403 # Create a JACK writable client with name "ffmpeg".
8404 $ ffmpeg -f jack -i ffmpeg -y out.wav
8405
8406 # Start the sample jack_metro readable client.
8407 $ jack_metro -b 120 -d 0.2 -f 4000
8408
8409 # List the current JACK clients.
8410 $ jack_lsp -c
8411 system:capture_1
8412 system:capture_2
8413 system:playback_1
8414 system:playback_2
8415 ffmpeg:input_1
8416 metro:120_bpm
8417
8418 # Connect metro to the ffmpeg writable client.
8419 $ jack_connect metro:120_bpm ffmpeg:input_1
8420
8421 For more information read: <http://jackaudio.org/>
8422
8423 Options
8424
8425 channels
8426 Set the number of channels. Default is 2.
8427
8428 kmsgrab
8429 KMS video input device.
8430
8431 Captures the KMS scanout framebuffer associated with a specified CRTC
8432 or plane as a DRM object that can be passed to other hardware
8433 functions.
8434
8435 Requires either DRM master or CAP_SYS_ADMIN to run.
8436
8437 If you don't understand what all of that means, you probably don't want
8438 this. Look at x11grab instead.
8439
8440 Options
8441
8442 device
8443 DRM device to capture on. Defaults to /dev/dri/card0.
8444
8445 format
8446 Pixel format of the framebuffer. This can be autodetected if you
8447 are running Linux 5.7 or later, but needs to be provided for
8448 earlier versions. Defaults to bgr0, which is the most common
8449 format used by the Linux console and Xorg X server.
8450
8451 format_modifier
8452 Format modifier to signal on output frames. This is necessary to
8453 import correctly into some APIs. It can be autodetected if you are
8454 running Linux 5.7 or later, but will need to be provided explicitly
8455 when needed in earlier versions. See the libdrm documentation for
8456 possible values.
8457
8458 crtc_id
8459 KMS CRTC ID to define the capture source. The first active plane
8460 on the given CRTC will be used.
8461
8462 plane_id
8463 KMS plane ID to define the capture source. Defaults to the first
8464 active plane found if neither crtc_id nor plane_id are specified.
8465
8466 framerate
8467 Framerate to capture at. This is not synchronised to any page
8468 flipping or framebuffer changes - it just defines the interval at
8469 which the framebuffer is sampled. Sampling faster than the
8470 framebuffer update rate will generate independent frames with the
8471 same content. Defaults to 30.
8472
8473 Examples
8474
8475 • Capture from the first active plane, download the result to normal
8476 frames and encode. This will only work if the framebuffer is both
8477 linear and mappable - if not, the result may be scrambled or fail
8478 to download.
8479
8480 ffmpeg -f kmsgrab -i - -vf 'hwdownload,format=bgr0' output.mp4
8481
8482 • Capture from CRTC ID 42 at 60fps, map the result to VAAPI, convert
8483 to NV12 and encode as H.264.
8484
8485 ffmpeg -crtc_id 42 -framerate 60 -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,scale_vaapi=w=1920:h=1080:format=nv12' -c:v h264_vaapi output.mp4
8486
8487 • To capture only part of a plane the output can be cropped - this
8488 can be used to capture a single window, as long as it has a known
8489 absolute position and size. For example, to capture and encode the
8490 middle quarter of a 1920x1080 plane:
8491
8492 ffmpeg -f kmsgrab -i - -vf 'hwmap=derive_device=vaapi,crop=960:540:480:270,scale_vaapi=960:540:nv12' -c:v h264_vaapi output.mp4
8493
8494 lavfi
8495 Libavfilter input virtual device.
8496
8497 This input device reads data from the open output pads of a libavfilter
8498 filtergraph.
8499
8500 For each filtergraph open output, the input device will create a
8501 corresponding stream which is mapped to the generated output. Currently
8502 only video data is supported. The filtergraph is specified through the
8503 option graph.
8504
8505 Options
8506
8507 graph
8508 Specify the filtergraph to use as input. Each video open output
8509 must be labelled by a unique string of the form "outN", where N is
8510 a number starting from 0 corresponding to the mapped input stream
8511 generated by the device. The first unlabelled output is
8512 automatically assigned to the "out0" label, but all the others need
8513 to be specified explicitly.
8514
8515 The suffix "+subcc" can be appended to the output label to create
8516 an extra stream with the closed captions packets attached to that
8517 output (experimental; only for EIA-608 / CEA-708 for now). The
8518 subcc streams are created after all the normal streams, in the
8519 order of the corresponding stream. For example, if there is
8520 "out19+subcc", "out7+subcc" and up to "out42", the stream #43 is
8521 subcc for stream #7 and stream #44 is subcc for stream #19.
8522
8523 If not specified defaults to the filename specified for the input
8524 device.
8525
8526 graph_file
8527 Set the filename of the filtergraph to be read and sent to the
8528 other filters. Syntax of the filtergraph is the same as the one
8529 specified by the option graph.
8530
8531 dumpgraph
8532 Dump graph to stderr.
8533
8534 Examples
8535
8536 • Create a color video stream and play it back with ffplay:
8537
8538 ffplay -f lavfi -graph "color=c=pink [out0]" dummy
8539
8540 • As the previous example, but use filename for specifying the graph
8541 description, and omit the "out0" label:
8542
8543 ffplay -f lavfi color=c=pink
8544
8545 • Create three different video test filtered sources and play them:
8546
8547 ffplay -f lavfi -graph "testsrc [out0]; testsrc,hflip [out1]; testsrc,negate [out2]" test3
8548
8549 • Read an audio stream from a file using the amovie source and play
8550 it back with ffplay:
8551
8552 ffplay -f lavfi "amovie=test.wav"
8553
8554 • Read an audio stream and a video stream and play it back with
8555 ffplay:
8556
8557 ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]"
8558
8559 • Dump decoded frames to images and closed captions to a file
8560 (experimental):
8561
8562 ffmpeg -f lavfi -i "movie=test.ts[out0+subcc]" -map v frame%08d.png -map s -c copy -f rawvideo subcc.bin
8563
8564 libcdio
8565 Audio-CD input device based on libcdio.
8566
8567 To enable this input device during configuration you need libcdio
8568 installed on your system. It requires the configure option
8569 "--enable-libcdio".
8570
8571 This device allows playing and grabbing from an Audio-CD.
8572
8573 For example to copy with ffmpeg the entire Audio-CD in /dev/sr0, you
8574 may run the command:
8575
8576 ffmpeg -f libcdio -i /dev/sr0 cd.wav
8577
8578 Options
8579
8580 speed
8581 Set drive reading speed. Default value is 0.
8582
8583 The speed is specified CD-ROM speed units. The speed is set through
8584 the libcdio "cdio_cddap_speed_set" function. On many CD-ROM drives,
8585 specifying a value too large will result in using the fastest
8586 speed.
8587
8588 paranoia_mode
8589 Set paranoia recovery mode flags. It accepts one of the following
8590 values:
8591
8592 disable
8593 verify
8594 overlap
8595 neverskip
8596 full
8597
8598 Default value is disable.
8599
8600 For more information about the available recovery modes, consult
8601 the paranoia project documentation.
8602
8603 libdc1394
8604 IIDC1394 input device, based on libdc1394 and libraw1394.
8605
8606 Requires the configure option "--enable-libdc1394".
8607
8608 Options
8609
8610 framerate
8611 Set the frame rate. Default is "ntsc", corresponding to a frame
8612 rate of "30000/1001".
8613
8614 pixel_format
8615 Select the pixel format. Default is "uyvy422".
8616
8617 video_size
8618 Set the video size given as a string such as "640x480" or "hd720".
8619 Default is "qvga".
8620
8621 openal
8622 The OpenAL input device provides audio capture on all systems with a
8623 working OpenAL 1.1 implementation.
8624
8625 To enable this input device during configuration, you need OpenAL
8626 headers and libraries installed on your system, and need to configure
8627 FFmpeg with "--enable-openal".
8628
8629 OpenAL headers and libraries should be provided as part of your OpenAL
8630 implementation, or as an additional download (an SDK). Depending on
8631 your installation you may need to specify additional flags via the
8632 "--extra-cflags" and "--extra-ldflags" for allowing the build system to
8633 locate the OpenAL headers and libraries.
8634
8635 An incomplete list of OpenAL implementations follows:
8636
8637 Creative
8638 The official Windows implementation, providing hardware
8639 acceleration with supported devices and software fallback. See
8640 <http://openal.org/>.
8641
8642 OpenAL Soft
8643 Portable, open source (LGPL) software implementation. Includes
8644 backends for the most common sound APIs on the Windows, Linux,
8645 Solaris, and BSD operating systems. See
8646 <http://kcat.strangesoft.net/openal.html>.
8647
8648 Apple
8649 OpenAL is part of Core Audio, the official Mac OS X Audio
8650 interface. See
8651 <http://developer.apple.com/technologies/mac/audio-and-video.html>
8652
8653 This device allows one to capture from an audio input device handled
8654 through OpenAL.
8655
8656 You need to specify the name of the device to capture in the provided
8657 filename. If the empty string is provided, the device will
8658 automatically select the default device. You can get the list of the
8659 supported devices by using the option list_devices.
8660
8661 Options
8662
8663 channels
8664 Set the number of channels in the captured audio. Only the values 1
8665 (monaural) and 2 (stereo) are currently supported. Defaults to 2.
8666
8667 sample_size
8668 Set the sample size (in bits) of the captured audio. Only the
8669 values 8 and 16 are currently supported. Defaults to 16.
8670
8671 sample_rate
8672 Set the sample rate (in Hz) of the captured audio. Defaults to
8673 44.1k.
8674
8675 list_devices
8676 If set to true, print a list of devices and exit. Defaults to
8677 false.
8678
8679 Examples
8680
8681 Print the list of OpenAL supported devices and exit:
8682
8683 $ ffmpeg -list_devices true -f openal -i dummy out.ogg
8684
8685 Capture from the OpenAL device DR-BT101 via PulseAudio:
8686
8687 $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out.ogg
8688
8689 Capture from the default device (note the empty string '' as filename):
8690
8691 $ ffmpeg -f openal -i '' out.ogg
8692
8693 Capture from two devices simultaneously, writing to two different
8694 files, within the same ffmpeg command:
8695
8696 $ ffmpeg -f openal -i 'DR-BT101 via PulseAudio' out1.ogg -f openal -i 'ALSA Default' out2.ogg
8697
8698 Note: not all OpenAL implementations support multiple simultaneous
8699 capture - try the latest OpenAL Soft if the above does not work.
8700
8701 oss
8702 Open Sound System input device.
8703
8704 The filename to provide to the input device is the device node
8705 representing the OSS input device, and is usually set to /dev/dsp.
8706
8707 For example to grab from /dev/dsp using ffmpeg use the command:
8708
8709 ffmpeg -f oss -i /dev/dsp /tmp/oss.wav
8710
8711 For more information about OSS see:
8712 <http://manuals.opensound.com/usersguide/dsp.html>
8713
8714 Options
8715
8716 sample_rate
8717 Set the sample rate in Hz. Default is 48000.
8718
8719 channels
8720 Set the number of channels. Default is 2.
8721
8722 pulse
8723 PulseAudio input device.
8724
8725 To enable this output device you need to configure FFmpeg with
8726 "--enable-libpulse".
8727
8728 The filename to provide to the input device is a source device or the
8729 string "default"
8730
8731 To list the PulseAudio source devices and their properties you can
8732 invoke the command pactl list sources.
8733
8734 More information about PulseAudio can be found on
8735 <http://www.pulseaudio.org>.
8736
8737 Options
8738
8739 server
8740 Connect to a specific PulseAudio server, specified by an IP
8741 address. Default server is used when not provided.
8742
8743 name
8744 Specify the application name PulseAudio will use when showing
8745 active clients, by default it is the "LIBAVFORMAT_IDENT" string.
8746
8747 stream_name
8748 Specify the stream name PulseAudio will use when showing active
8749 streams, by default it is "record".
8750
8751 sample_rate
8752 Specify the samplerate in Hz, by default 48kHz is used.
8753
8754 channels
8755 Specify the channels in use, by default 2 (stereo) is set.
8756
8757 frame_size
8758 This option does nothing and is deprecated.
8759
8760 fragment_size
8761 Specify the size in bytes of the minimal buffering fragment in
8762 PulseAudio, it will affect the audio latency. By default it is set
8763 to 50 ms amount of data.
8764
8765 wallclock
8766 Set the initial PTS using the current time. Default is 1.
8767
8768 Examples
8769
8770 Record a stream from default device:
8771
8772 ffmpeg -f pulse -i default /tmp/pulse.wav
8773
8774 sndio
8775 sndio input device.
8776
8777 To enable this input device during configuration you need libsndio
8778 installed on your system.
8779
8780 The filename to provide to the input device is the device node
8781 representing the sndio input device, and is usually set to /dev/audio0.
8782
8783 For example to grab from /dev/audio0 using ffmpeg use the command:
8784
8785 ffmpeg -f sndio -i /dev/audio0 /tmp/oss.wav
8786
8787 Options
8788
8789 sample_rate
8790 Set the sample rate in Hz. Default is 48000.
8791
8792 channels
8793 Set the number of channels. Default is 2.
8794
8795 video4linux2, v4l2
8796 Video4Linux2 input video device.
8797
8798 "v4l2" can be used as alias for "video4linux2".
8799
8800 If FFmpeg is built with v4l-utils support (by using the
8801 "--enable-libv4l2" configure option), it is possible to use it with the
8802 "-use_libv4l2" input device option.
8803
8804 The name of the device to grab is a file device node, usually Linux
8805 systems tend to automatically create such nodes when the device (e.g.
8806 an USB webcam) is plugged into the system, and has a name of the kind
8807 /dev/videoN, where N is a number associated to the device.
8808
8809 Video4Linux2 devices usually support a limited set of widthxheight
8810 sizes and frame rates. You can check which are supported using
8811 -list_formats all for Video4Linux2 devices. Some devices, like TV
8812 cards, support one or more standards. It is possible to list all the
8813 supported standards using -list_standards all.
8814
8815 The time base for the timestamps is 1 microsecond. Depending on the
8816 kernel version and configuration, the timestamps may be derived from
8817 the real time clock (origin at the Unix Epoch) or the monotonic clock
8818 (origin usually at boot time, unaffected by NTP or manual changes to
8819 the clock). The -timestamps abs or -ts abs option can be used to force
8820 conversion into the real time clock.
8821
8822 Some usage examples of the video4linux2 device with ffmpeg and ffplay:
8823
8824 • List supported formats for a video4linux2 device:
8825
8826 ffplay -f video4linux2 -list_formats all /dev/video0
8827
8828 • Grab and show the input of a video4linux2 device:
8829
8830 ffplay -f video4linux2 -framerate 30 -video_size hd720 /dev/video0
8831
8832 • Grab and record the input of a video4linux2 device, leave the frame
8833 rate and size as previously set:
8834
8835 ffmpeg -f video4linux2 -input_format mjpeg -i /dev/video0 out.mpeg
8836
8837 For more information about Video4Linux, check <http://linuxtv.org/>.
8838
8839 Options
8840
8841 standard
8842 Set the standard. Must be the name of a supported standard. To get
8843 a list of the supported standards, use the list_standards option.
8844
8845 channel
8846 Set the input channel number. Default to -1, which means using the
8847 previously selected channel.
8848
8849 video_size
8850 Set the video frame size. The argument must be a string in the form
8851 WIDTHxHEIGHT or a valid size abbreviation.
8852
8853 pixel_format
8854 Select the pixel format (only valid for raw video input).
8855
8856 input_format
8857 Set the preferred pixel format (for raw video) or a codec name.
8858 This option allows one to select the input format, when several are
8859 available.
8860
8861 framerate
8862 Set the preferred video frame rate.
8863
8864 list_formats
8865 List available formats (supported pixel formats, codecs, and frame
8866 sizes) and exit.
8867
8868 Available values are:
8869
8870 all Show all available (compressed and non-compressed) formats.
8871
8872 raw Show only raw video (non-compressed) formats.
8873
8874 compressed
8875 Show only compressed formats.
8876
8877 list_standards
8878 List supported standards and exit.
8879
8880 Available values are:
8881
8882 all Show all supported standards.
8883
8884 timestamps, ts
8885 Set type of timestamps for grabbed frames.
8886
8887 Available values are:
8888
8889 default
8890 Use timestamps from the kernel.
8891
8892 abs Use absolute timestamps (wall clock).
8893
8894 mono2abs
8895 Force conversion from monotonic to absolute timestamps.
8896
8897 Default value is "default".
8898
8899 use_libv4l2
8900 Use libv4l2 (v4l-utils) conversion functions. Default is 0.
8901
8902 vfwcap
8903 VfW (Video for Windows) capture input device.
8904
8905 The filename passed as input is the capture driver number, ranging from
8906 0 to 9. You may use "list" as filename to print a list of drivers. Any
8907 other filename will be interpreted as device number 0.
8908
8909 Options
8910
8911 video_size
8912 Set the video frame size.
8913
8914 framerate
8915 Set the grabbing frame rate. Default value is "ntsc", corresponding
8916 to a frame rate of "30000/1001".
8917
8918 x11grab
8919 X11 video input device.
8920
8921 To enable this input device during configuration you need libxcb
8922 installed on your system. It will be automatically detected during
8923 configuration.
8924
8925 This device allows one to capture a region of an X11 display.
8926
8927 The filename passed as input has the syntax:
8928
8929 [<hostname>]:<display_number>.<screen_number>[+<x_offset>,<y_offset>]
8930
8931 hostname:display_number.screen_number specifies the X11 display name of
8932 the screen to grab from. hostname can be omitted, and defaults to
8933 "localhost". The environment variable DISPLAY contains the default
8934 display name.
8935
8936 x_offset and y_offset specify the offsets of the grabbed area with
8937 respect to the top-left border of the X11 screen. They default to 0.
8938
8939 Check the X11 documentation (e.g. man X) for more detailed information.
8940
8941 Use the xdpyinfo program for getting basic information about the
8942 properties of your X11 display (e.g. grep for "name" or "dimensions").
8943
8944 For example to grab from :0.0 using ffmpeg:
8945
8946 ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0 out.mpg
8947
8948 Grab at position "10,20":
8949
8950 ffmpeg -f x11grab -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
8951
8952 Options
8953
8954 select_region
8955 Specify whether to select the grabbing area graphically using the
8956 pointer. A value of 1 prompts the user to select the grabbing area
8957 graphically by clicking and dragging. A single click with no
8958 dragging will select the whole screen. A region with zero width or
8959 height will also select the whole screen. This option overwrites
8960 the video_size, grab_x, and grab_y options. Default value is 0.
8961
8962 draw_mouse
8963 Specify whether to draw the mouse pointer. A value of 0 specifies
8964 not to draw the pointer. Default value is 1.
8965
8966 follow_mouse
8967 Make the grabbed area follow the mouse. The argument can be
8968 "centered" or a number of pixels PIXELS.
8969
8970 When it is specified with "centered", the grabbing region follows
8971 the mouse pointer and keeps the pointer at the center of region;
8972 otherwise, the region follows only when the mouse pointer reaches
8973 within PIXELS (greater than zero) to the edge of region.
8974
8975 For example:
8976
8977 ffmpeg -f x11grab -follow_mouse centered -framerate 25 -video_size cif -i :0.0 out.mpg
8978
8979 To follow only when the mouse pointer reaches within 100 pixels to
8980 edge:
8981
8982 ffmpeg -f x11grab -follow_mouse 100 -framerate 25 -video_size cif -i :0.0 out.mpg
8983
8984 framerate
8985 Set the grabbing frame rate. Default value is "ntsc", corresponding
8986 to a frame rate of "30000/1001".
8987
8988 show_region
8989 Show grabbed region on screen.
8990
8991 If show_region is specified with 1, then the grabbing region will
8992 be indicated on screen. With this option, it is easy to know what
8993 is being grabbed if only a portion of the screen is grabbed.
8994
8995 region_border
8996 Set the region border thickness if -show_region 1 is used. Range
8997 is 1 to 128 and default is 3 (XCB-based x11grab only).
8998
8999 For example:
9000
9001 ffmpeg -f x11grab -show_region 1 -framerate 25 -video_size cif -i :0.0+10,20 out.mpg
9002
9003 With follow_mouse:
9004
9005 ffmpeg -f x11grab -follow_mouse centered -show_region 1 -framerate 25 -video_size cif -i :0.0 out.mpg
9006
9007 window_id
9008 Grab this window, instead of the whole screen. Default value is 0,
9009 which maps to the whole screen (root window).
9010
9011 The id of a window can be found using the xwininfo program,
9012 possibly with options -tree and -root.
9013
9014 If the window is later enlarged, the new area is not recorded.
9015 Video ends when the window is closed, unmapped (i.e., iconified) or
9016 shrunk beyond the video size (which defaults to the initial window
9017 size).
9018
9019 This option disables options follow_mouse and select_region.
9020
9021 video_size
9022 Set the video frame size. Default is the full desktop or window.
9023
9024 grab_x
9025 grab_y
9026 Set the grabbing region coordinates. They are expressed as offset
9027 from the top left corner of the X11 window and correspond to the
9028 x_offset and y_offset parameters in the device name. The default
9029 value for both options is 0.
9030
9032 The audio resampler supports the following named options.
9033
9034 Options may be set by specifying -option value in the FFmpeg tools,
9035 option=value for the aresample filter, by setting the value explicitly
9036 in the "SwrContext" options or using the libavutil/opt.h API for
9037 programmatic use.
9038
9039 uchl, used_chlayout
9040 Set used input channel layout. Default is unset. This option is
9041 only used for special remapping.
9042
9043 isr, in_sample_rate
9044 Set the input sample rate. Default value is 0.
9045
9046 osr, out_sample_rate
9047 Set the output sample rate. Default value is 0.
9048
9049 isf, in_sample_fmt
9050 Specify the input sample format. It is set by default to "none".
9051
9052 osf, out_sample_fmt
9053 Specify the output sample format. It is set by default to "none".
9054
9055 tsf, internal_sample_fmt
9056 Set the internal sample format. Default value is "none". This will
9057 automatically be chosen when it is not explicitly set.
9058
9059 ichl, in_chlayout
9060 ochl, out_chlayout
9061 Set the input/output channel layout.
9062
9063 See the Channel Layout section in the ffmpeg-utils(1) manual for
9064 the required syntax.
9065
9066 clev, center_mix_level
9067 Set the center mix level. It is a value expressed in deciBel, and
9068 must be in the interval [-32,32].
9069
9070 slev, surround_mix_level
9071 Set the surround mix level. It is a value expressed in deciBel, and
9072 must be in the interval [-32,32].
9073
9074 lfe_mix_level
9075 Set LFE mix into non LFE level. It is used when there is a LFE
9076 input but no LFE output. It is a value expressed in deciBel, and
9077 must be in the interval [-32,32].
9078
9079 rmvol, rematrix_volume
9080 Set rematrix volume. Default value is 1.0.
9081
9082 rematrix_maxval
9083 Set maximum output value for rematrixing. This can be used to
9084 prevent clipping vs. preventing volume reduction. A value of 1.0
9085 prevents clipping.
9086
9087 flags, swr_flags
9088 Set flags used by the converter. Default value is 0.
9089
9090 It supports the following individual flags:
9091
9092 res force resampling, this flag forces resampling to be used even
9093 when the input and output sample rates match.
9094
9095 dither_scale
9096 Set the dither scale. Default value is 1.
9097
9098 dither_method
9099 Set dither method. Default value is 0.
9100
9101 Supported values:
9102
9103 rectangular
9104 select rectangular dither
9105
9106 triangular
9107 select triangular dither
9108
9109 triangular_hp
9110 select triangular dither with high pass
9111
9112 lipshitz
9113 select Lipshitz noise shaping dither.
9114
9115 shibata
9116 select Shibata noise shaping dither.
9117
9118 low_shibata
9119 select low Shibata noise shaping dither.
9120
9121 high_shibata
9122 select high Shibata noise shaping dither.
9123
9124 f_weighted
9125 select f-weighted noise shaping dither
9126
9127 modified_e_weighted
9128 select modified-e-weighted noise shaping dither
9129
9130 improved_e_weighted
9131 select improved-e-weighted noise shaping dither
9132
9133 resampler
9134 Set resampling engine. Default value is swr.
9135
9136 Supported values:
9137
9138 swr select the native SW Resampler; filter options precision and
9139 cheby are not applicable in this case.
9140
9141 soxr
9142 select the SoX Resampler (where available); compensation, and
9143 filter options filter_size, phase_shift, exact_rational,
9144 filter_type & kaiser_beta, are not applicable in this case.
9145
9146 filter_size
9147 For swr only, set resampling filter size, default value is 32.
9148
9149 phase_shift
9150 For swr only, set resampling phase shift, default value is 10, and
9151 must be in the interval [0,30].
9152
9153 linear_interp
9154 Use linear interpolation when enabled (the default). Disable it if
9155 you want to preserve speed instead of quality when exact_rational
9156 fails.
9157
9158 exact_rational
9159 For swr only, when enabled, try to use exact phase_count based on
9160 input and output sample rate. However, if it is larger than "1 <<
9161 phase_shift", the phase_count will be "1 << phase_shift" as
9162 fallback. Default is enabled.
9163
9164 cutoff
9165 Set cutoff frequency (swr: 6dB point; soxr: 0dB point) ratio; must
9166 be a float value between 0 and 1. Default value is 0.97 with swr,
9167 and 0.91 with soxr (which, with a sample-rate of 44100, preserves
9168 the entire audio band to 20kHz).
9169
9170 precision
9171 For soxr only, the precision in bits to which the resampled signal
9172 will be calculated. The default value of 20 (which, with suitable
9173 dithering, is appropriate for a destination bit-depth of 16) gives
9174 SoX's 'High Quality'; a value of 28 gives SoX's 'Very High
9175 Quality'.
9176
9177 cheby
9178 For soxr only, selects passband rolloff none (Chebyshev) & higher-
9179 precision approximation for 'irrational' ratios. Default value is
9180 0.
9181
9182 async
9183 For swr only, simple 1 parameter audio sync to timestamps using
9184 stretching, squeezing, filling and trimming. Setting this to 1 will
9185 enable filling and trimming, larger values represent the maximum
9186 amount in samples that the data may be stretched or squeezed for
9187 each second. Default value is 0, thus no compensation is applied
9188 to make the samples match the audio timestamps.
9189
9190 first_pts
9191 For swr only, assume the first pts should be this value. The time
9192 unit is 1 / sample rate. This allows for padding/trimming at the
9193 start of stream. By default, no assumption is made about the first
9194 frame's expected pts, so no padding or trimming is done. For
9195 example, this could be set to 0 to pad the beginning with silence
9196 if an audio stream starts after the video stream or to trim any
9197 samples with a negative pts due to encoder delay.
9198
9199 min_comp
9200 For swr only, set the minimum difference between timestamps and
9201 audio data (in seconds) to trigger stretching/squeezing/filling or
9202 trimming of the data to make it match the timestamps. The default
9203 is that stretching/squeezing/filling and trimming is disabled
9204 (min_comp = "FLT_MAX").
9205
9206 min_hard_comp
9207 For swr only, set the minimum difference between timestamps and
9208 audio data (in seconds) to trigger adding/dropping samples to make
9209 it match the timestamps. This option effectively is a threshold to
9210 select between hard (trim/fill) and soft (squeeze/stretch)
9211 compensation. Note that all compensation is by default disabled
9212 through min_comp. The default is 0.1.
9213
9214 comp_duration
9215 For swr only, set duration (in seconds) over which data is
9216 stretched/squeezed to make it match the timestamps. Must be a non-
9217 negative double float value, default value is 1.0.
9218
9219 max_soft_comp
9220 For swr only, set maximum factor by which data is
9221 stretched/squeezed to make it match the timestamps. Must be a non-
9222 negative double float value, default value is 0.
9223
9224 matrix_encoding
9225 Select matrixed stereo encoding.
9226
9227 It accepts the following values:
9228
9229 none
9230 select none
9231
9232 dolby
9233 select Dolby
9234
9235 dplii
9236 select Dolby Pro Logic II
9237
9238 Default value is "none".
9239
9240 filter_type
9241 For swr only, select resampling filter type. This only affects
9242 resampling operations.
9243
9244 It accepts the following values:
9245
9246 cubic
9247 select cubic
9248
9249 blackman_nuttall
9250 select Blackman Nuttall windowed sinc
9251
9252 kaiser
9253 select Kaiser windowed sinc
9254
9255 kaiser_beta
9256 For swr only, set Kaiser window beta value. Must be a double float
9257 value in the interval [2,16], default value is 9.
9258
9259 output_sample_bits
9260 For swr only, set number of used output sample bits for dithering.
9261 Must be an integer in the interval [0,64], default value is 0,
9262 which means it's not used.
9263
9265 The video scaler supports the following named options.
9266
9267 Options may be set by specifying -option value in the FFmpeg tools,
9268 with a few API-only exceptions noted below. For programmatic use, they
9269 can be set explicitly in the "SwsContext" options or through the
9270 libavutil/opt.h API.
9271
9272 sws_flags
9273 Set the scaler flags. This is also used to set the scaling
9274 algorithm. Only a single algorithm should be selected. Default
9275 value is bicubic.
9276
9277 It accepts the following values:
9278
9279 fast_bilinear
9280 Select fast bilinear scaling algorithm.
9281
9282 bilinear
9283 Select bilinear scaling algorithm.
9284
9285 bicubic
9286 Select bicubic scaling algorithm.
9287
9288 experimental
9289 Select experimental scaling algorithm.
9290
9291 neighbor
9292 Select nearest neighbor rescaling algorithm.
9293
9294 area
9295 Select averaging area rescaling algorithm.
9296
9297 bicublin
9298 Select bicubic scaling algorithm for the luma component,
9299 bilinear for chroma components.
9300
9301 gauss
9302 Select Gaussian rescaling algorithm.
9303
9304 sinc
9305 Select sinc rescaling algorithm.
9306
9307 lanczos
9308 Select Lanczos rescaling algorithm. The default width (alpha)
9309 is 3 and can be changed by setting "param0".
9310
9311 spline
9312 Select natural bicubic spline rescaling algorithm.
9313
9314 print_info
9315 Enable printing/debug logging.
9316
9317 accurate_rnd
9318 Enable accurate rounding.
9319
9320 full_chroma_int
9321 Enable full chroma interpolation.
9322
9323 full_chroma_inp
9324 Select full chroma input.
9325
9326 bitexact
9327 Enable bitexact output.
9328
9329 srcw (API only)
9330 Set source width.
9331
9332 srch (API only)
9333 Set source height.
9334
9335 dstw (API only)
9336 Set destination width.
9337
9338 dsth (API only)
9339 Set destination height.
9340
9341 src_format (API only)
9342 Set source pixel format (must be expressed as an integer).
9343
9344 dst_format (API only)
9345 Set destination pixel format (must be expressed as an integer).
9346
9347 src_range (boolean)
9348 If value is set to 1, indicates source is full range. Default value
9349 is 0, which indicates source is limited range.
9350
9351 dst_range (boolean)
9352 If value is set to 1, enable full range for destination. Default
9353 value is 0, which enables limited range.
9354
9355 param0, param1
9356 Set scaling algorithm parameters. The specified values are specific
9357 of some scaling algorithms and ignored by others. The specified
9358 values are floating point number values.
9359
9360 sws_dither
9361 Set the dithering algorithm. Accepts one of the following values.
9362 Default value is auto.
9363
9364 auto
9365 automatic choice
9366
9367 none
9368 no dithering
9369
9370 bayer
9371 bayer dither
9372
9373 ed error diffusion dither
9374
9375 a_dither
9376 arithmetic dither, based using addition
9377
9378 x_dither
9379 arithmetic dither, based using xor (more random/less apparent
9380 patterning that a_dither).
9381
9382 alphablend
9383 Set the alpha blending to use when the input has alpha but the
9384 output does not. Default value is none.
9385
9386 uniform_color
9387 Blend onto a uniform background color
9388
9389 checkerboard
9390 Blend onto a checkerboard
9391
9392 none
9393 No blending
9394
9396 Filtering in FFmpeg is enabled through the libavfilter library.
9397
9398 In libavfilter, a filter can have multiple inputs and multiple outputs.
9399 To illustrate the sorts of things that are possible, we consider the
9400 following filtergraph.
9401
9402 [main]
9403 input --> split ---------------------> overlay --> output
9404 | ^
9405 |[tmp] [flip]|
9406 +-----> crop --> vflip -------+
9407
9408 This filtergraph splits the input stream in two streams, then sends one
9409 stream through the crop filter and the vflip filter, before merging it
9410 back with the other stream by overlaying it on top. You can use the
9411 following command to achieve this:
9412
9413 ffmpeg -i INPUT -vf "split [main][tmp]; [tmp] crop=iw:ih/2:0:0, vflip [flip]; [main][flip] overlay=0:H/2" OUTPUT
9414
9415 The result will be that the top half of the video is mirrored onto the
9416 bottom half of the output video.
9417
9418 Filters in the same linear chain are separated by commas, and distinct
9419 linear chains of filters are separated by semicolons. In our example,
9420 crop,vflip are in one linear chain, split and overlay are separately in
9421 another. The points where the linear chains join are labelled by names
9422 enclosed in square brackets. In the example, the split filter generates
9423 two outputs that are associated to the labels [main] and [tmp].
9424
9425 The stream sent to the second output of split, labelled as [tmp], is
9426 processed through the crop filter, which crops away the lower half part
9427 of the video, and then vertically flipped. The overlay filter takes in
9428 input the first unchanged output of the split filter (which was
9429 labelled as [main]), and overlay on its lower half the output generated
9430 by the crop,vflip filterchain.
9431
9432 Some filters take in input a list of parameters: they are specified
9433 after the filter name and an equal sign, and are separated from each
9434 other by a colon.
9435
9436 There exist so-called source filters that do not have an audio/video
9437 input, and sink filters that will not have audio/video output.
9438
9440 The graph2dot program included in the FFmpeg tools directory can be
9441 used to parse a filtergraph description and issue a corresponding
9442 textual representation in the dot language.
9443
9444 Invoke the command:
9445
9446 graph2dot -h
9447
9448 to see how to use graph2dot.
9449
9450 You can then pass the dot description to the dot program (from the
9451 graphviz suite of programs) and obtain a graphical representation of
9452 the filtergraph.
9453
9454 For example the sequence of commands:
9455
9456 echo <GRAPH_DESCRIPTION> | \
9457 tools/graph2dot -o graph.tmp && \
9458 dot -Tpng graph.tmp -o graph.png && \
9459 display graph.png
9460
9461 can be used to create and display an image representing the graph
9462 described by the GRAPH_DESCRIPTION string. Note that this string must
9463 be a complete self-contained graph, with its inputs and outputs
9464 explicitly defined. For example if your command line is of the form:
9465
9466 ffmpeg -i infile -vf scale=640:360 outfile
9467
9468 your GRAPH_DESCRIPTION string will need to be of the form:
9469
9470 nullsrc,scale=640:360,nullsink
9471
9472 you may also need to set the nullsrc parameters and add a format filter
9473 in order to simulate a specific input file.
9474
9476 A filtergraph is a directed graph of connected filters. It can contain
9477 cycles, and there can be multiple links between a pair of filters. Each
9478 link has one input pad on one side connecting it to one filter from
9479 which it takes its input, and one output pad on the other side
9480 connecting it to one filter accepting its output.
9481
9482 Each filter in a filtergraph is an instance of a filter class
9483 registered in the application, which defines the features and the
9484 number of input and output pads of the filter.
9485
9486 A filter with no input pads is called a "source", and a filter with no
9487 output pads is called a "sink".
9488
9489 Filtergraph syntax
9490 A filtergraph has a textual representation, which is recognized by the
9491 -filter/-vf/-af and -filter_complex options in ffmpeg and -vf/-af in
9492 ffplay, and by the avfilter_graph_parse_ptr() function defined in
9493 libavfilter/avfilter.h.
9494
9495 A filterchain consists of a sequence of connected filters, each one
9496 connected to the previous one in the sequence. A filterchain is
9497 represented by a list of ","-separated filter descriptions.
9498
9499 A filtergraph consists of a sequence of filterchains. A sequence of
9500 filterchains is represented by a list of ";"-separated filterchain
9501 descriptions.
9502
9503 A filter is represented by a string of the form:
9504 [in_link_1]...[in_link_N]filter_name@id=arguments[out_link_1]...[out_link_M]
9505
9506 filter_name is the name of the filter class of which the described
9507 filter is an instance of, and has to be the name of one of the filter
9508 classes registered in the program optionally followed by "@id". The
9509 name of the filter class is optionally followed by a string
9510 "=arguments".
9511
9512 arguments is a string which contains the parameters used to initialize
9513 the filter instance. It may have one of two forms:
9514
9515 • A ':'-separated list of key=value pairs.
9516
9517 • A ':'-separated list of value. In this case, the keys are assumed
9518 to be the option names in the order they are declared. E.g. the
9519 "fade" filter declares three options in this order -- type,
9520 start_frame and nb_frames. Then the parameter list in:0:30 means
9521 that the value in is assigned to the option type, 0 to start_frame
9522 and 30 to nb_frames.
9523
9524 • A ':'-separated list of mixed direct value and long key=value
9525 pairs. The direct value must precede the key=value pairs, and
9526 follow the same constraints order of the previous point. The
9527 following key=value pairs can be set in any preferred order.
9528
9529 If the option value itself is a list of items (e.g. the "format" filter
9530 takes a list of pixel formats), the items in the list are usually
9531 separated by |.
9532
9533 The list of arguments can be quoted using the character ' as initial
9534 and ending mark, and the character \ for escaping the characters within
9535 the quoted text; otherwise the argument string is considered terminated
9536 when the next special character (belonging to the set []=;,) is
9537 encountered.
9538
9539 A special syntax implemented in the ffmpeg CLI tool allows loading
9540 option values from files. This is done be prepending a slash '/' to the
9541 option name, then the supplied value is interpreted as a path from
9542 which the actual value is loaded. E.g.
9543
9544 ffmpeg -i <INPUT> -vf drawtext=/text=/tmp/some_text <OUTPUT>
9545
9546 will load the text to be drawn from /tmp/some_text. API users wishing
9547 to implement a similar feature should use the
9548 "avfilter_graph_segment_*()" functions together with custom IO code.
9549
9550 The name and arguments of the filter are optionally preceded and
9551 followed by a list of link labels. A link label allows one to name a
9552 link and associate it to a filter output or input pad. The preceding
9553 labels in_link_1 ... in_link_N, are associated to the filter input
9554 pads, the following labels out_link_1 ... out_link_M, are associated to
9555 the output pads.
9556
9557 When two link labels with the same name are found in the filtergraph, a
9558 link between the corresponding input and output pad is created.
9559
9560 If an output pad is not labelled, it is linked by default to the first
9561 unlabelled input pad of the next filter in the filterchain. For
9562 example in the filterchain
9563
9564 nullsrc, split[L1], [L2]overlay, nullsink
9565
9566 the split filter instance has two output pads, and the overlay filter
9567 instance two input pads. The first output pad of split is labelled
9568 "L1", the first input pad of overlay is labelled "L2", and the second
9569 output pad of split is linked to the second input pad of overlay, which
9570 are both unlabelled.
9571
9572 In a filter description, if the input label of the first filter is not
9573 specified, "in" is assumed; if the output label of the last filter is
9574 not specified, "out" is assumed.
9575
9576 In a complete filterchain all the unlabelled filter input and output
9577 pads must be connected. A filtergraph is considered valid if all the
9578 filter input and output pads of all the filterchains are connected.
9579
9580 Libavfilter will automatically insert scale filters where format
9581 conversion is required. It is possible to specify swscale flags for
9582 those automatically inserted scalers by prepending "sws_flags=flags;"
9583 to the filtergraph description.
9584
9585 Here is a BNF description of the filtergraph syntax:
9586
9587 <NAME> ::= sequence of alphanumeric characters and '_'
9588 <FILTER_NAME> ::= <NAME>["@"<NAME>]
9589 <LINKLABEL> ::= "[" <NAME> "]"
9590 <LINKLABELS> ::= <LINKLABEL> [<LINKLABELS>]
9591 <FILTER_ARGUMENTS> ::= sequence of chars (possibly quoted)
9592 <FILTER> ::= [<LINKLABELS>] <FILTER_NAME> ["=" <FILTER_ARGUMENTS>] [<LINKLABELS>]
9593 <FILTERCHAIN> ::= <FILTER> [,<FILTERCHAIN>]
9594 <FILTERGRAPH> ::= [sws_flags=<flags>;] <FILTERCHAIN> [;<FILTERGRAPH>]
9595
9596 Notes on filtergraph escaping
9597 Filtergraph description composition entails several levels of escaping.
9598 See the "Quoting and escaping" section in the ffmpeg-utils(1) manual
9599 for more information about the employed escaping procedure.
9600
9601 A first level escaping affects the content of each filter option value,
9602 which may contain the special character ":" used to separate values, or
9603 one of the escaping characters "\'".
9604
9605 A second level escaping affects the whole filter description, which may
9606 contain the escaping characters "\'" or the special characters "[],;"
9607 used by the filtergraph description.
9608
9609 Finally, when you specify a filtergraph on a shell commandline, you
9610 need to perform a third level escaping for the shell special characters
9611 contained within it.
9612
9613 For example, consider the following string to be embedded in the
9614 drawtext filter description text value:
9615
9616 this is a 'string': may contain one, or more, special characters
9617
9618 This string contains the "'" special escaping character, and the ":"
9619 special character, so it needs to be escaped in this way:
9620
9621 text=this is a \'string\'\: may contain one, or more, special characters
9622
9623 A second level of escaping is required when embedding the filter
9624 description in a filtergraph description, in order to escape all the
9625 filtergraph special characters. Thus the example above becomes:
9626
9627 drawtext=text=this is a \\\'string\\\'\\: may contain one\, or more\, special characters
9628
9629 (note that in addition to the "\'" escaping special characters, also
9630 "," needs to be escaped).
9631
9632 Finally an additional level of escaping is needed when writing the
9633 filtergraph description in a shell command, which depends on the
9634 escaping rules of the adopted shell. For example, assuming that "\" is
9635 special and needs to be escaped with another "\", the previous string
9636 will finally result in:
9637
9638 -vf "drawtext=text=this is a \\\\\\'string\\\\\\'\\\\: may contain one\\, or more\\, special characters"
9639
9641 Some filters support a generic enable option. For the filters
9642 supporting timeline editing, this option can be set to an expression
9643 which is evaluated before sending a frame to the filter. If the
9644 evaluation is non-zero, the filter will be enabled, otherwise the frame
9645 will be sent unchanged to the next filter in the filtergraph.
9646
9647 The expression accepts the following values:
9648
9649 t timestamp expressed in seconds, NAN if the input timestamp is
9650 unknown
9651
9652 n sequential number of the input frame, starting from 0
9653
9654 pos the position in the file of the input frame, NAN if unknown
9655
9656 w
9657 h width and height of the input frame if video
9658
9659 Additionally, these filters support an enable command that can be used
9660 to re-define the expression.
9661
9662 Like any other filtering option, the enable option follows the same
9663 rules.
9664
9665 For example, to enable a blur filter (smartblur) from 10 seconds to 3
9666 minutes, and a curves filter starting at 3 seconds:
9667
9668 smartblur = enable='between(t,10,3*60)',
9669 curves = enable='gte(t,3)' : preset=cross_process
9670
9671 See "ffmpeg -filters" to view which filters have timeline support.
9672
9674 Some options can be changed during the operation of the filter using a
9675 command. These options are marked 'T' on the output of ffmpeg -h
9676 filter=<name of filter>. The name of the command is the name of the
9677 option and the argument is the new value.
9678
9680 Some filters with several inputs support a common set of options.
9681 These options can only be set by name, not with the short notation.
9682
9683 eof_action
9684 The action to take when EOF is encountered on the secondary input;
9685 it accepts one of the following values:
9686
9687 repeat
9688 Repeat the last frame (the default).
9689
9690 endall
9691 End both streams.
9692
9693 pass
9694 Pass the main input through.
9695
9696 shortest
9697 If set to 1, force the output to terminate when the shortest input
9698 terminates. Default value is 0.
9699
9700 repeatlast
9701 If set to 1, force the filter to extend the last frame of secondary
9702 streams until the end of the primary stream. A value of 0 disables
9703 this behavior. Default value is 1.
9704
9705 ts_sync_mode
9706 How strictly to sync streams based on secondary input timestamps;
9707 it accepts one of the following values:
9708
9709 default
9710 Frame from secondary input with the nearest lower or equal
9711 timestamp to the primary input frame.
9712
9713 nearest
9714 Frame from secondary input with the absolute nearest timestamp
9715 to the primary input frame.
9716
9718 When you configure your FFmpeg build, you can disable any of the
9719 existing filters using "--disable-filters". The configure output will
9720 show the audio filters included in your build.
9721
9722 Below is a description of the currently available audio filters.
9723
9724 acompressor
9725 A compressor is mainly used to reduce the dynamic range of a signal.
9726 Especially modern music is mostly compressed at a high ratio to improve
9727 the overall loudness. It's done to get the highest attention of a
9728 listener, "fatten" the sound and bring more "power" to the track. If a
9729 signal is compressed too much it may sound dull or "dead" afterwards or
9730 it may start to "pump" (which could be a powerful effect but can also
9731 destroy a track completely). The right compression is the key to reach
9732 a professional sound and is the high art of mixing and mastering.
9733 Because of its complex settings it may take a long time to get the
9734 right feeling for this kind of effect.
9735
9736 Compression is done by detecting the volume above a chosen level
9737 "threshold" and dividing it by the factor set with "ratio". So if you
9738 set the threshold to -12dB and your signal reaches -6dB a ratio of 2:1
9739 will result in a signal at -9dB. Because an exact manipulation of the
9740 signal would cause distortion of the waveform the reduction can be
9741 levelled over the time. This is done by setting "Attack" and "Release".
9742 "attack" determines how long the signal has to rise above the threshold
9743 before any reduction will occur and "release" sets the time the signal
9744 has to fall below the threshold to reduce the reduction again. Shorter
9745 signals than the chosen attack time will be left untouched. The
9746 overall reduction of the signal can be made up afterwards with the
9747 "makeup" setting. So compressing the peaks of a signal about 6dB and
9748 raising the makeup to this level results in a signal twice as loud than
9749 the source. To gain a softer entry in the compression the "knee"
9750 flattens the hard edge at the threshold in the range of the chosen
9751 decibels.
9752
9753 The filter accepts the following options:
9754
9755 level_in
9756 Set input gain. Default is 1. Range is between 0.015625 and 64.
9757
9758 mode
9759 Set mode of compressor operation. Can be "upward" or "downward".
9760 Default is "downward".
9761
9762 threshold
9763 If a signal of stream rises above this level it will affect the
9764 gain reduction. By default it is 0.125. Range is between
9765 0.00097563 and 1.
9766
9767 ratio
9768 Set a ratio by which the signal is reduced. 1:2 means that if the
9769 level rose 4dB above the threshold, it will be only 2dB above after
9770 the reduction. Default is 2. Range is between 1 and 20.
9771
9772 attack
9773 Amount of milliseconds the signal has to rise above the threshold
9774 before gain reduction starts. Default is 20. Range is between 0.01
9775 and 2000.
9776
9777 release
9778 Amount of milliseconds the signal has to fall below the threshold
9779 before reduction is decreased again. Default is 250. Range is
9780 between 0.01 and 9000.
9781
9782 makeup
9783 Set the amount by how much signal will be amplified after
9784 processing. Default is 1. Range is from 1 to 64.
9785
9786 knee
9787 Curve the sharp knee around the threshold to enter gain reduction
9788 more softly. Default is 2.82843. Range is between 1 and 8.
9789
9790 link
9791 Choose if the "average" level between all channels of input stream
9792 or the louder("maximum") channel of input stream affects the
9793 reduction. Default is "average".
9794
9795 detection
9796 Should the exact signal be taken in case of "peak" or an RMS one in
9797 case of "rms". Default is "rms" which is mostly smoother.
9798
9799 mix How much to use compressed signal in output. Default is 1. Range
9800 is between 0 and 1.
9801
9802 Commands
9803
9804 This filter supports the all above options as commands.
9805
9806 acontrast
9807 Simple audio dynamic range compression/expansion filter.
9808
9809 The filter accepts the following options:
9810
9811 contrast
9812 Set contrast. Default is 33. Allowed range is between 0 and 100.
9813
9814 acopy
9815 Copy the input audio source unchanged to the output. This is mainly
9816 useful for testing purposes.
9817
9818 acrossfade
9819 Apply cross fade from one input audio stream to another input audio
9820 stream. The cross fade is applied for specified duration near the end
9821 of first stream.
9822
9823 The filter accepts the following options:
9824
9825 nb_samples, ns
9826 Specify the number of samples for which the cross fade effect has
9827 to last. At the end of the cross fade effect the first input audio
9828 will be completely silent. Default is 44100.
9829
9830 duration, d
9831 Specify the duration of the cross fade effect. See the Time
9832 duration section in the ffmpeg-utils(1) manual for the accepted
9833 syntax. By default the duration is determined by nb_samples. If
9834 set this option is used instead of nb_samples.
9835
9836 overlap, o
9837 Should first stream end overlap with second stream start. Default
9838 is enabled.
9839
9840 curve1
9841 Set curve for cross fade transition for first stream.
9842
9843 curve2
9844 Set curve for cross fade transition for second stream.
9845
9846 For description of available curve types see afade filter
9847 description.
9848
9849 Examples
9850
9851 • Cross fade from one input to another:
9852
9853 ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:c1=exp:c2=exp output.flac
9854
9855 • Cross fade from one input to another but without overlapping:
9856
9857 ffmpeg -i first.flac -i second.flac -filter_complex acrossfade=d=10:o=0:c1=exp:c2=exp output.flac
9858
9859 acrossover
9860 Split audio stream into several bands.
9861
9862 This filter splits audio stream into two or more frequency ranges.
9863 Summing all streams back will give flat output.
9864
9865 The filter accepts the following options:
9866
9867 split
9868 Set split frequencies. Those must be positive and increasing.
9869
9870 order
9871 Set filter order for each band split. This controls filter roll-off
9872 or steepness of filter transfer function. Available values are:
9873
9874 2nd 12 dB per octave.
9875
9876 4th 24 dB per octave.
9877
9878 6th 36 dB per octave.
9879
9880 8th 48 dB per octave.
9881
9882 10th
9883 60 dB per octave.
9884
9885 12th
9886 72 dB per octave.
9887
9888 14th
9889 84 dB per octave.
9890
9891 16th
9892 96 dB per octave.
9893
9894 18th
9895 108 dB per octave.
9896
9897 20th
9898 120 dB per octave.
9899
9900 Default is 4th.
9901
9902 level
9903 Set input gain level. Allowed range is from 0 to 1. Default value
9904 is 1.
9905
9906 gains
9907 Set output gain for each band. Default value is 1 for all bands.
9908
9909 precision
9910 Set which precision to use when processing samples.
9911
9912 auto
9913 Auto pick internal sample format depending on other filters.
9914
9915 float
9916 Always use single-floating point precision sample format.
9917
9918 double
9919 Always use double-floating point precision sample format.
9920
9921 Default value is "auto".
9922
9923 Examples
9924
9925 • Split input audio stream into two bands (low and high) with split
9926 frequency of 1500 Hz, each band will be in separate stream:
9927
9928 ffmpeg -i in.flac -filter_complex 'acrossover=split=1500[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
9929
9930 • Same as above, but with higher filter order:
9931
9932 ffmpeg -i in.flac -filter_complex 'acrossover=split=1500:order=8th[LOW][HIGH]' -map '[LOW]' low.wav -map '[HIGH]' high.wav
9933
9934 • Same as above, but also with additional middle band (frequencies
9935 between 1500 and 8000):
9936
9937 ffmpeg -i in.flac -filter_complex 'acrossover=split=1500 8000:order=8th[LOW][MID][HIGH]' -map '[LOW]' low.wav -map '[MID]' mid.wav -map '[HIGH]' high.wav
9938
9939 acrusher
9940 Reduce audio bit resolution.
9941
9942 This filter is bit crusher with enhanced functionality. A bit crusher
9943 is used to audibly reduce number of bits an audio signal is sampled
9944 with. This doesn't change the bit depth at all, it just produces the
9945 effect. Material reduced in bit depth sounds more harsh and "digital".
9946 This filter is able to even round to continuous values instead of
9947 discrete bit depths. Additionally it has a D/C offset which results in
9948 different crushing of the lower and the upper half of the signal. An
9949 Anti-Aliasing setting is able to produce "softer" crushing sounds.
9950
9951 Another feature of this filter is the logarithmic mode. This setting
9952 switches from linear distances between bits to logarithmic ones. The
9953 result is a much more "natural" sounding crusher which doesn't gate low
9954 signals for example. The human ear has a logarithmic perception, so
9955 this kind of crushing is much more pleasant. Logarithmic crushing is
9956 also able to get anti-aliased.
9957
9958 The filter accepts the following options:
9959
9960 level_in
9961 Set level in.
9962
9963 level_out
9964 Set level out.
9965
9966 bits
9967 Set bit reduction.
9968
9969 mix Set mixing amount.
9970
9971 mode
9972 Can be linear: "lin" or logarithmic: "log".
9973
9974 dc Set DC.
9975
9976 aa Set anti-aliasing.
9977
9978 samples
9979 Set sample reduction.
9980
9981 lfo Enable LFO. By default disabled.
9982
9983 lforange
9984 Set LFO range.
9985
9986 lforate
9987 Set LFO rate.
9988
9989 Commands
9990
9991 This filter supports the all above options as commands.
9992
9993 acue
9994 Delay audio filtering until a given wallclock timestamp. See the cue
9995 filter.
9996
9997 adeclick
9998 Remove impulsive noise from input audio.
9999
10000 Samples detected as impulsive noise are replaced by interpolated
10001 samples using autoregressive modelling.
10002
10003 window, w
10004 Set window size, in milliseconds. Allowed range is from 10 to 100.
10005 Default value is 55 milliseconds. This sets size of window which
10006 will be processed at once.
10007
10008 overlap, o
10009 Set window overlap, in percentage of window size. Allowed range is
10010 from 50 to 95. Default value is 75 percent. Setting this to a very
10011 high value increases impulsive noise removal but makes whole
10012 process much slower.
10013
10014 arorder, a
10015 Set autoregression order, in percentage of window size. Allowed
10016 range is from 0 to 25. Default value is 2 percent. This option also
10017 controls quality of interpolated samples using neighbour good
10018 samples.
10019
10020 threshold, t
10021 Set threshold value. Allowed range is from 1 to 100. Default value
10022 is 2. This controls the strength of impulsive noise which is going
10023 to be removed. The lower value, the more samples will be detected
10024 as impulsive noise.
10025
10026 burst, b
10027 Set burst fusion, in percentage of window size. Allowed range is 0
10028 to 10. Default value is 2. If any two samples detected as noise
10029 are spaced less than this value then any sample between those two
10030 samples will be also detected as noise.
10031
10032 method, m
10033 Set overlap method.
10034
10035 It accepts the following values:
10036
10037 add, a
10038 Select overlap-add method. Even not interpolated samples are
10039 slightly changed with this method.
10040
10041 save, s
10042 Select overlap-save method. Not interpolated samples remain
10043 unchanged.
10044
10045 Default value is "a".
10046
10047 adeclip
10048 Remove clipped samples from input audio.
10049
10050 Samples detected as clipped are replaced by interpolated samples using
10051 autoregressive modelling.
10052
10053 window, w
10054 Set window size, in milliseconds. Allowed range is from 10 to 100.
10055 Default value is 55 milliseconds. This sets size of window which
10056 will be processed at once.
10057
10058 overlap, o
10059 Set window overlap, in percentage of window size. Allowed range is
10060 from 50 to 95. Default value is 75 percent.
10061
10062 arorder, a
10063 Set autoregression order, in percentage of window size. Allowed
10064 range is from 0 to 25. Default value is 8 percent. This option also
10065 controls quality of interpolated samples using neighbour good
10066 samples.
10067
10068 threshold, t
10069 Set threshold value. Allowed range is from 1 to 100. Default value
10070 is 10. Higher values make clip detection less aggressive.
10071
10072 hsize, n
10073 Set size of histogram used to detect clips. Allowed range is from
10074 100 to 9999. Default value is 1000. Higher values make clip
10075 detection less aggressive.
10076
10077 method, m
10078 Set overlap method.
10079
10080 It accepts the following values:
10081
10082 add, a
10083 Select overlap-add method. Even not interpolated samples are
10084 slightly changed with this method.
10085
10086 save, s
10087 Select overlap-save method. Not interpolated samples remain
10088 unchanged.
10089
10090 Default value is "a".
10091
10092 adecorrelate
10093 Apply decorrelation to input audio stream.
10094
10095 The filter accepts the following options:
10096
10097 stages
10098 Set decorrelation stages of filtering. Allowed range is from 1 to
10099 16. Default value is 6.
10100
10101 seed
10102 Set random seed used for setting delay in samples across channels.
10103
10104 adelay
10105 Delay one or more audio channels.
10106
10107 Samples in delayed channel are filled with silence.
10108
10109 The filter accepts the following option:
10110
10111 delays
10112 Set list of delays in milliseconds for each channel separated by
10113 '|'. Unused delays will be silently ignored. If number of given
10114 delays is smaller than number of channels all remaining channels
10115 will not be delayed. If you want to delay exact number of samples,
10116 append 'S' to number. If you want instead to delay in seconds,
10117 append 's' to number.
10118
10119 all Use last set delay for all remaining channels. By default is
10120 disabled. This option if enabled changes how option "delays" is
10121 interpreted.
10122
10123 Examples
10124
10125 • Delay first channel by 1.5 seconds, the third channel by 0.5
10126 seconds and leave the second channel (and any other channels that
10127 may be present) unchanged.
10128
10129 adelay=1500|0|500
10130
10131 • Delay second channel by 500 samples, the third channel by 700
10132 samples and leave the first channel (and any other channels that
10133 may be present) unchanged.
10134
10135 adelay=0|500S|700S
10136
10137 • Delay all channels by same number of samples:
10138
10139 adelay=delays=64S:all=1
10140
10141 adenorm
10142 Remedy denormals in audio by adding extremely low-level noise.
10143
10144 This filter shall be placed before any filter that can produce
10145 denormals.
10146
10147 A description of the accepted parameters follows.
10148
10149 level
10150 Set level of added noise in dB. Default is -351. Allowed range is
10151 from -451 to -90.
10152
10153 type
10154 Set type of added noise.
10155
10156 dc Add DC signal.
10157
10158 ac Add AC signal.
10159
10160 square
10161 Add square signal.
10162
10163 pulse
10164 Add pulse signal.
10165
10166 Default is "dc".
10167
10168 Commands
10169
10170 This filter supports the all above options as commands.
10171
10172 aderivative, aintegral
10173 Compute derivative/integral of audio stream.
10174
10175 Applying both filters one after another produces original audio.
10176
10177 adrc
10178 Apply spectral dynamic range controller filter to input audio stream.
10179
10180 A description of the accepted options follows.
10181
10182 transfer
10183 Set the transfer expression.
10184
10185 The expression can contain the following constants:
10186
10187 ch current channel number
10188
10189 sn current sample number
10190
10191 nb_channels
10192 number of channels
10193
10194 t timestamp expressed in seconds
10195
10196 sr sample rate
10197
10198 p current frequency power value, in dB
10199
10200 f current frequency in Hz
10201
10202 Default value is "p".
10203
10204 attack
10205 Set the attack in milliseconds. Default is 50 milliseconds.
10206 Allowed range is from 1 to 1000 milliseconds.
10207
10208 release
10209 Set the release in milliseconds. Default is 100 milliseconds.
10210 Allowed range is from 5 to 2000 milliseconds.
10211
10212 channels
10213 Set which channels to filter, by default "all" channels in audio
10214 stream are filtered.
10215
10216 Commands
10217
10218 This filter supports the all above options as commands.
10219
10220 Examples
10221
10222 • Apply spectral compression to all frequencies with threshold of -50
10223 dB and 1:6 ratio:
10224
10225 adrc=transfer='if(gt(p,-50),-50+(p-(-50))/6,p)':attack=50:release=100
10226
10227 • Similar to above but with 1:2 ratio and filtering only front center
10228 channel:
10229
10230 adrc=transfer='if(gt(p,-50),-50+(p-(-50))/2,p)':attack=50:release=100:channels=FC
10231
10232 • Apply spectral noise gate to all frequencies with threshold of -85
10233 dB and with short attack time and short release time:
10234
10235 adrc=transfer='if(lte(p,-85),p-800,p)':attack=1:release=5
10236
10237 • Apply spectral expansion to all frequencies with threshold of -10
10238 dB and 1:2 ratio:
10239
10240 adrc=transfer='if(lt(p,-10),-10+(p-(-10))*2,p)':attack=50:release=100
10241
10242 • Apply limiter to max -60 dB to all frequencies, with attack of 2 ms
10243 and release of 10 ms:
10244
10245 adrc=transfer='min(p,-60)':attack=2:release=10
10246
10247 adynamicequalizer
10248 Apply dynamic equalization to input audio stream.
10249
10250 A description of the accepted options follows.
10251
10252 threshold
10253 Set the detection threshold used to trigger equalization.
10254 Threshold detection is using bandpass filter. Default value is 0.
10255 Allowed range is from 0 to 100.
10256
10257 dfrequency
10258 Set the detection frequency in Hz used for bandpass filter used to
10259 trigger equalization. Default value is 1000 Hz. Allowed range is
10260 between 2 and 1000000 Hz.
10261
10262 dqfactor
10263 Set the detection resonance factor for bandpass filter used to
10264 trigger equalization. Default value is 1. Allowed range is from
10265 0.001 to 1000.
10266
10267 tfrequency
10268 Set the target frequency of equalization filter. Default value is
10269 1000 Hz. Allowed range is between 2 and 1000000 Hz.
10270
10271 tqfactor
10272 Set the target resonance factor for target equalization filter.
10273 Default value is 1. Allowed range is from 0.001 to 1000.
10274
10275 attack
10276 Set the amount of milliseconds the signal from detection has to
10277 rise above the detection threshold before equalization starts.
10278 Default is 20. Allowed range is between 1 and 2000.
10279
10280 release
10281 Set the amount of milliseconds the signal from detection has to
10282 fall below the detection threshold before equalization ends.
10283 Default is 200. Allowed range is between 1 and 2000.
10284
10285 ratio
10286 Set the ratio by which the equalization gain is raised. Default is
10287 1. Allowed range is between 0 and 30.
10288
10289 makeup
10290 Set the makeup offset by which the equalization gain is raised.
10291 Default is 0. Allowed range is between 0 and 100.
10292
10293 range
10294 Set the max allowed cut/boost amount. Default is 50. Allowed range
10295 is from 1 to 200.
10296
10297 mode
10298 Set the mode of filter operation, can be one of the following:
10299
10300 listen
10301 Output only isolated bandpass signal.
10302
10303 cut Cut frequencies above detection threshold.
10304
10305 boost
10306 Boost frequencies bellow detection threshold.
10307
10308 Default mode is cut.
10309
10310 tftype
10311 Set the type of target filter, can be one of the following:
10312
10313 bell
10314 lowshelf
10315 highshelf
10316
10317 Default type is bell.
10318
10319 direction
10320 Set processing direction relative to threshold.
10321
10322 downward
10323 Boost/Cut if threshold is higher/lower than detected volume.
10324
10325 upward
10326 Boost/Cut if threshold is lower/higher than detected volume.
10327
10328 Default direction is downward.
10329
10330 auto
10331 Automatically gather threshold from detection filter. By default is
10332 disabled. This option is useful to detect threshold in certain
10333 time frame of input audio stream, in such case option value is
10334 changed at runtime.
10335
10336 Available values are:
10337
10338 disabled
10339 Disable using automatically gathered threshold value.
10340
10341 off Stop picking threshold value.
10342
10343 on Start picking threshold value.
10344
10345 Commands
10346
10347 This filter supports the all above options as commands.
10348
10349 adynamicsmooth
10350 Apply dynamic smoothing to input audio stream.
10351
10352 A description of the accepted options follows.
10353
10354 sensitivity
10355 Set an amount of sensitivity to frequency fluctations. Default is
10356 2. Allowed range is from 0 to 1e+06.
10357
10358 basefreq
10359 Set a base frequency for smoothing. Default value is 22050.
10360 Allowed range is from 2 to 1e+06.
10361
10362 Commands
10363
10364 This filter supports the all above options as commands.
10365
10366 aecho
10367 Apply echoing to the input audio.
10368
10369 Echoes are reflected sound and can occur naturally amongst mountains
10370 (and sometimes large buildings) when talking or shouting; digital echo
10371 effects emulate this behaviour and are often used to help fill out the
10372 sound of a single instrument or vocal. The time difference between the
10373 original signal and the reflection is the "delay", and the loudness of
10374 the reflected signal is the "decay". Multiple echoes can have
10375 different delays and decays.
10376
10377 A description of the accepted parameters follows.
10378
10379 in_gain
10380 Set input gain of reflected signal. Default is 0.6.
10381
10382 out_gain
10383 Set output gain of reflected signal. Default is 0.3.
10384
10385 delays
10386 Set list of time intervals in milliseconds between original signal
10387 and reflections separated by '|'. Allowed range for each "delay" is
10388 "(0 - 90000.0]". Default is 1000.
10389
10390 decays
10391 Set list of loudness of reflected signals separated by '|'.
10392 Allowed range for each "decay" is "(0 - 1.0]". Default is 0.5.
10393
10394 Examples
10395
10396 • Make it sound as if there are twice as many instruments as are
10397 actually playing:
10398
10399 aecho=0.8:0.88:60:0.4
10400
10401 • If delay is very short, then it sounds like a (metallic) robot
10402 playing music:
10403
10404 aecho=0.8:0.88:6:0.4
10405
10406 • A longer delay will sound like an open air concert in the
10407 mountains:
10408
10409 aecho=0.8:0.9:1000:0.3
10410
10411 • Same as above but with one more mountain:
10412
10413 aecho=0.8:0.9:1000|1800:0.3|0.25
10414
10415 aemphasis
10416 Audio emphasis filter creates or restores material directly taken from
10417 LPs or emphased CDs with different filter curves. E.g. to store music
10418 on vinyl the signal has to be altered by a filter first to even out the
10419 disadvantages of this recording medium. Once the material is played
10420 back the inverse filter has to be applied to restore the distortion of
10421 the frequency response.
10422
10423 The filter accepts the following options:
10424
10425 level_in
10426 Set input gain.
10427
10428 level_out
10429 Set output gain.
10430
10431 mode
10432 Set filter mode. For restoring material use "reproduction" mode,
10433 otherwise use "production" mode. Default is "reproduction" mode.
10434
10435 type
10436 Set filter type. Selects medium. Can be one of the following:
10437
10438 col select Columbia.
10439
10440 emi select EMI.
10441
10442 bsi select BSI (78RPM).
10443
10444 riaa
10445 select RIAA.
10446
10447 cd select Compact Disc (CD).
10448
10449 50fm
10450 select 50µs (FM).
10451
10452 75fm
10453 select 75µs (FM).
10454
10455 50kf
10456 select 50µs (FM-KF).
10457
10458 75kf
10459 select 75µs (FM-KF).
10460
10461 Commands
10462
10463 This filter supports the all above options as commands.
10464
10465 aeval
10466 Modify an audio signal according to the specified expressions.
10467
10468 This filter accepts one or more expressions (one for each channel),
10469 which are evaluated and used to modify a corresponding audio signal.
10470
10471 It accepts the following parameters:
10472
10473 exprs
10474 Set the '|'-separated expressions list for each separate channel.
10475 If the number of input channels is greater than the number of
10476 expressions, the last specified expression is used for the
10477 remaining output channels.
10478
10479 channel_layout, c
10480 Set output channel layout. If not specified, the channel layout is
10481 specified by the number of expressions. If set to same, it will use
10482 by default the same input channel layout.
10483
10484 Each expression in exprs can contain the following constants and
10485 functions:
10486
10487 ch channel number of the current expression
10488
10489 n number of the evaluated sample, starting from 0
10490
10491 s sample rate
10492
10493 t time of the evaluated sample expressed in seconds
10494
10495 nb_in_channels
10496 nb_out_channels
10497 input and output number of channels
10498
10499 val(CH)
10500 the value of input channel with number CH
10501
10502 Note: this filter is slow. For faster processing you should use a
10503 dedicated filter.
10504
10505 Examples
10506
10507 • Half volume:
10508
10509 aeval=val(ch)/2:c=same
10510
10511 • Invert phase of the second channel:
10512
10513 aeval=val(0)|-val(1)
10514
10515 aexciter
10516 An exciter is used to produce high sound that is not present in the
10517 original signal. This is done by creating harmonic distortions of the
10518 signal which are restricted in range and added to the original signal.
10519 An Exciter raises the upper end of an audio signal without simply
10520 raising the higher frequencies like an equalizer would do to create a
10521 more "crisp" or "brilliant" sound.
10522
10523 The filter accepts the following options:
10524
10525 level_in
10526 Set input level prior processing of signal. Allowed range is from
10527 0 to 64. Default value is 1.
10528
10529 level_out
10530 Set output level after processing of signal. Allowed range is from
10531 0 to 64. Default value is 1.
10532
10533 amount
10534 Set the amount of harmonics added to original signal. Allowed
10535 range is from 0 to 64. Default value is 1.
10536
10537 drive
10538 Set the amount of newly created harmonics. Allowed range is from
10539 0.1 to 10. Default value is 8.5.
10540
10541 blend
10542 Set the octave of newly created harmonics. Allowed range is from
10543 -10 to 10. Default value is 0.
10544
10545 freq
10546 Set the lower frequency limit of producing harmonics in Hz.
10547 Allowed range is from 2000 to 12000 Hz. Default is 7500 Hz.
10548
10549 ceil
10550 Set the upper frequency limit of producing harmonics. Allowed
10551 range is from 9999 to 20000 Hz. If value is lower than 10000 Hz no
10552 limit is applied.
10553
10554 listen
10555 Mute the original signal and output only added harmonics. By
10556 default is disabled.
10557
10558 Commands
10559
10560 This filter supports the all above options as commands.
10561
10562 afade
10563 Apply fade-in/out effect to input audio.
10564
10565 A description of the accepted parameters follows.
10566
10567 type, t
10568 Specify the effect type, can be either "in" for fade-in, or "out"
10569 for a fade-out effect. Default is "in".
10570
10571 start_sample, ss
10572 Specify the number of the start sample for starting to apply the
10573 fade effect. Default is 0.
10574
10575 nb_samples, ns
10576 Specify the number of samples for which the fade effect has to
10577 last. At the end of the fade-in effect the output audio will have
10578 the same volume as the input audio, at the end of the fade-out
10579 transition the output audio will be silence. Default is 44100.
10580
10581 start_time, st
10582 Specify the start time of the fade effect. Default is 0. The value
10583 must be specified as a time duration; see the Time duration section
10584 in the ffmpeg-utils(1) manual for the accepted syntax. If set this
10585 option is used instead of start_sample.
10586
10587 duration, d
10588 Specify the duration of the fade effect. See the Time duration
10589 section in the ffmpeg-utils(1) manual for the accepted syntax. At
10590 the end of the fade-in effect the output audio will have the same
10591 volume as the input audio, at the end of the fade-out transition
10592 the output audio will be silence. By default the duration is
10593 determined by nb_samples. If set this option is used instead of
10594 nb_samples.
10595
10596 curve
10597 Set curve for fade transition.
10598
10599 It accepts the following values:
10600
10601 tri select triangular, linear slope (default)
10602
10603 qsin
10604 select quarter of sine wave
10605
10606 hsin
10607 select half of sine wave
10608
10609 esin
10610 select exponential sine wave
10611
10612 log select logarithmic
10613
10614 ipar
10615 select inverted parabola
10616
10617 qua select quadratic
10618
10619 cub select cubic
10620
10621 squ select square root
10622
10623 cbr select cubic root
10624
10625 par select parabola
10626
10627 exp select exponential
10628
10629 iqsin
10630 select inverted quarter of sine wave
10631
10632 ihsin
10633 select inverted half of sine wave
10634
10635 dese
10636 select double-exponential seat
10637
10638 desi
10639 select double-exponential sigmoid
10640
10641 losi
10642 select logistic sigmoid
10643
10644 sinc
10645 select sine cardinal function
10646
10647 isinc
10648 select inverted sine cardinal function
10649
10650 nofade
10651 no fade applied
10652
10653 silence
10654 Set the initial gain for fade-in or final gain for fade-out.
10655 Default value is 0.0.
10656
10657 unity
10658 Set the initial gain for fade-out or final gain for fade-in.
10659 Default value is 1.0.
10660
10661 Commands
10662
10663 This filter supports the all above options as commands.
10664
10665 Examples
10666
10667 • Fade in first 15 seconds of audio:
10668
10669 afade=t=in:ss=0:d=15
10670
10671 • Fade out last 25 seconds of a 900 seconds audio:
10672
10673 afade=t=out:st=875:d=25
10674
10675 afftdn
10676 Denoise audio samples with FFT.
10677
10678 A description of the accepted parameters follows.
10679
10680 noise_reduction, nr
10681 Set the noise reduction in dB, allowed range is 0.01 to 97.
10682 Default value is 12 dB.
10683
10684 noise_floor, nf
10685 Set the noise floor in dB, allowed range is -80 to -20. Default
10686 value is -50 dB.
10687
10688 noise_type, nt
10689 Set the noise type.
10690
10691 It accepts the following values:
10692
10693 white, w
10694 Select white noise.
10695
10696 vinyl, v
10697 Select vinyl noise.
10698
10699 shellac, s
10700 Select shellac noise.
10701
10702 custom, c
10703 Select custom noise, defined in "bn" option.
10704
10705 Default value is white noise.
10706
10707 band_noise, bn
10708 Set custom band noise profile for every one of 15 bands. Bands are
10709 separated by ' ' or '|'.
10710
10711 residual_floor, rf
10712 Set the residual floor in dB, allowed range is -80 to -20. Default
10713 value is -38 dB.
10714
10715 track_noise, tn
10716 Enable noise floor tracking. By default is disabled. With this
10717 enabled, noise floor is automatically adjusted.
10718
10719 track_residual, tr
10720 Enable residual tracking. By default is disabled.
10721
10722 output_mode, om
10723 Set the output mode.
10724
10725 It accepts the following values:
10726
10727 input, i
10728 Pass input unchanged.
10729
10730 output, o
10731 Pass noise filtered out.
10732
10733 noise, n
10734 Pass only noise.
10735
10736 Default value is output.
10737
10738 adaptivity, ad
10739 Set the adaptivity factor, used how fast to adapt gains adjustments
10740 per each frequency bin. Value 0 enables instant adaptation, while
10741 higher values react much slower. Allowed range is from 0 to 1.
10742 Default value is 0.5.
10743
10744 floor_offset, fo
10745 Set the noise floor offset factor. This option is used to adjust
10746 offset applied to measured noise floor. It is only effective when
10747 noise floor tracking is enabled. Allowed range is from -2.0 to
10748 2.0. Default value is 1.0.
10749
10750 noise_link, nl
10751 Set the noise link used for multichannel audio.
10752
10753 It accepts the following values:
10754
10755 none
10756 Use unchanged channel's noise floor.
10757
10758 min Use measured min noise floor of all channels.
10759
10760 max Use measured max noise floor of all channels.
10761
10762 average
10763 Use measured average noise floor of all channels.
10764
10765 Default value is min.
10766
10767 band_multiplier, bm
10768 Set the band multiplier factor, used how much to spread bands
10769 across frequency bins. Allowed range is from 0.2 to 5. Default
10770 value is 1.25.
10771
10772 sample_noise, sn
10773 Toggle capturing and measurement of noise profile from input audio.
10774
10775 It accepts the following values:
10776
10777 start, begin
10778 Start sample noise capture.
10779
10780 stop, end
10781 Stop sample noise capture and measure new noise band profile.
10782
10783 Default value is "none".
10784
10785 gain_smooth, gs
10786 Set gain smooth spatial radius, used to smooth gains applied to
10787 each frequency bin. Useful to reduce random music noise artefacts.
10788 Higher values increases smoothing of gains. Allowed range is from
10789 0 to 50. Default value is 0.
10790
10791 Commands
10792
10793 This filter supports the some above mentioned options as commands.
10794
10795 Examples
10796
10797 • Reduce white noise by 10dB, and use previously measured noise floor
10798 of -40dB:
10799
10800 afftdn=nr=10:nf=-40
10801
10802 • Reduce white noise by 10dB, also set initial noise floor to -80dB
10803 and enable automatic tracking of noise floor so noise floor will
10804 gradually change during processing:
10805
10806 afftdn=nr=10:nf=-80:tn=1
10807
10808 • Reduce noise by 20dB, using noise floor of -40dB and using commands
10809 to take noise profile of first 0.4 seconds of input audio:
10810
10811 asendcmd=0.0 afftdn sn start,asendcmd=0.4 afftdn sn stop,afftdn=nr=20:nf=-40
10812
10813 afftfilt
10814 Apply arbitrary expressions to samples in frequency domain.
10815
10816 real
10817 Set frequency domain real expression for each separate channel
10818 separated by '|'. Default is "re". If the number of input channels
10819 is greater than the number of expressions, the last specified
10820 expression is used for the remaining output channels.
10821
10822 imag
10823 Set frequency domain imaginary expression for each separate channel
10824 separated by '|'. Default is "im".
10825
10826 Each expression in real and imag can contain the following
10827 constants and functions:
10828
10829 sr sample rate
10830
10831 b current frequency bin number
10832
10833 nb number of available bins
10834
10835 ch channel number of the current expression
10836
10837 chs number of channels
10838
10839 pts current frame pts
10840
10841 re current real part of frequency bin of current channel
10842
10843 im current imaginary part of frequency bin of current channel
10844
10845 real(b, ch)
10846 Return the value of real part of frequency bin at location
10847 (bin,channel)
10848
10849 imag(b, ch)
10850 Return the value of imaginary part of frequency bin at location
10851 (bin,channel)
10852
10853 win_size
10854 Set window size. Allowed range is from 16 to 131072. Default is
10855 4096
10856
10857 win_func
10858 Set window function.
10859
10860 It accepts the following values:
10861
10862 rect
10863 bartlett
10864 hann, hanning
10865 hamming
10866 blackman
10867 welch
10868 flattop
10869 bharris
10870 bnuttall
10871 bhann
10872 sine
10873 nuttall
10874 lanczos
10875 gauss
10876 tukey
10877 dolph
10878 cauchy
10879 parzen
10880 poisson
10881 bohman
10882 kaiser
10883
10884 Default is "hann".
10885
10886 overlap
10887 Set window overlap. If set to 1, the recommended overlap for
10888 selected window function will be picked. Default is 0.75.
10889
10890 Examples
10891
10892 • Leave almost only low frequencies in audio:
10893
10894 afftfilt="'real=re * (1-clip((b/nb)*b,0,1))':imag='im * (1-clip((b/nb)*b,0,1))'"
10895
10896 • Apply robotize effect:
10897
10898 afftfilt="real='hypot(re,im)*sin(0)':imag='hypot(re,im)*cos(0)':win_size=512:overlap=0.75"
10899
10900 • Apply whisper effect:
10901
10902 afftfilt="real='hypot(re,im)*cos((random(0)*2-1)*2*3.14)':imag='hypot(re,im)*sin((random(1)*2-1)*2*3.14)':win_size=128:overlap=0.8"
10903
10904 • Apply phase shift:
10905
10906 afftfilt="real=re*cos(1)-im*sin(1):imag=re*sin(1)+im*cos(1)"
10907
10908 afir
10909 Apply an arbitrary Finite Impulse Response filter.
10910
10911 This filter is designed for applying long FIR filters, up to 60 seconds
10912 long.
10913
10914 It can be used as component for digital crossover filters, room
10915 equalization, cross talk cancellation, wavefield synthesis,
10916 auralization, ambiophonics, ambisonics and spatialization.
10917
10918 This filter uses the streams higher than first one as FIR coefficients.
10919 If the non-first stream holds a single channel, it will be used for all
10920 input channels in the first stream, otherwise the number of channels in
10921 the non-first stream must be same as the number of channels in the
10922 first stream.
10923
10924 It accepts the following parameters:
10925
10926 dry Set dry gain. This sets input gain.
10927
10928 wet Set wet gain. This sets final output gain.
10929
10930 length
10931 Set Impulse Response filter length. Default is 1, which means whole
10932 IR is processed.
10933
10934 gtype
10935 Enable applying gain measured from power of IR.
10936
10937 Set which approach to use for auto gain measurement.
10938
10939 none
10940 Do not apply any gain.
10941
10942 peak
10943 select peak gain, very conservative approach. This is default
10944 value.
10945
10946 dc select DC gain, limited application.
10947
10948 gn select gain to noise approach, this is most popular one.
10949
10950 ac select AC gain.
10951
10952 rms select RMS gain.
10953
10954 irgain
10955 Set gain to be applied to IR coefficients before filtering.
10956 Allowed range is 0 to 1. This gain is applied after any gain
10957 applied with gtype option.
10958
10959 irfmt
10960 Set format of IR stream. Can be "mono" or "input". Default is
10961 "input".
10962
10963 maxir
10964 Set max allowed Impulse Response filter duration in seconds.
10965 Default is 30 seconds. Allowed range is 0.1 to 60 seconds.
10966
10967 response
10968 Show IR frequency response, magnitude(magenta), phase(green) and
10969 group delay(yellow) in additional video stream. By default it is
10970 disabled.
10971
10972 channel
10973 Set for which IR channel to display frequency response. By default
10974 is first channel displayed. This option is used only when response
10975 is enabled.
10976
10977 size
10978 Set video stream size. This option is used only when response is
10979 enabled.
10980
10981 rate
10982 Set video stream frame rate. This option is used only when response
10983 is enabled.
10984
10985 minp
10986 Set minimal partition size used for convolution. Default is 8192.
10987 Allowed range is from 1 to 65536. Lower values decreases latency
10988 at cost of higher CPU usage.
10989
10990 maxp
10991 Set maximal partition size used for convolution. Default is 8192.
10992 Allowed range is from 8 to 65536. Lower values may increase CPU
10993 usage.
10994
10995 nbirs
10996 Set number of input impulse responses streams which will be
10997 switchable at runtime. Allowed range is from 1 to 32. Default is
10998 1.
10999
11000 ir Set IR stream which will be used for convolution, starting from 0,
11001 should always be lower than supplied value by "nbirs" option.
11002 Default is 0. This option can be changed at runtime via commands.
11003
11004 precision
11005 Set which precision to use when processing samples.
11006
11007 auto
11008 Auto pick internal sample format depending on other filters.
11009
11010 float
11011 Always use single-floating point precision sample format.
11012
11013 double
11014 Always use double-floating point precision sample format.
11015
11016 Default value is auto.
11017
11018 Examples
11019
11020 • Apply reverb to stream using mono IR file as second input, complete
11021 command using ffmpeg:
11022
11023 ffmpeg -i input.wav -i middle_tunnel_1way_mono.wav -lavfi afir output.wav
11024
11025 • Apply true stereo processing given input stereo stream, and two
11026 stereo impulse responses for left and right channel, the impulse
11027 response files are files with names l_ir.wav and r_ir.wav:
11028
11029 "pan=4C|c0=FL|c1=FL|c2=FR|c3=FR[a];amovie=l_ir.wav[LIR];amovie=r_ir.wav[RIR];[LIR][RIR]amerge[ir];[a][ir]afir=irfmt=input:gtype=gn:irgain=-5dB,pan=stereo|FL<c0+c2|FR<c1+c3"
11030
11031 aformat
11032 Set output format constraints for the input audio. The framework will
11033 negotiate the most appropriate format to minimize conversions.
11034
11035 It accepts the following parameters:
11036
11037 sample_fmts, f
11038 A '|'-separated list of requested sample formats.
11039
11040 sample_rates, r
11041 A '|'-separated list of requested sample rates.
11042
11043 channel_layouts, cl
11044 A '|'-separated list of requested channel layouts.
11045
11046 See the Channel Layout section in the ffmpeg-utils(1) manual for
11047 the required syntax.
11048
11049 If a parameter is omitted, all values are allowed.
11050
11051 Force the output to either unsigned 8-bit or signed 16-bit stereo
11052
11053 aformat=sample_fmts=u8|s16:channel_layouts=stereo
11054
11055 afreqshift
11056 Apply frequency shift to input audio samples.
11057
11058 The filter accepts the following options:
11059
11060 shift
11061 Specify frequency shift. Allowed range is -INT_MAX to INT_MAX.
11062 Default value is 0.0.
11063
11064 level
11065 Set output gain applied to final output. Allowed range is from 0.0
11066 to 1.0. Default value is 1.0.
11067
11068 order
11069 Set filter order used for filtering. Allowed range is from 1 to 16.
11070 Default value is 8.
11071
11072 Commands
11073
11074 This filter supports the all above options as commands.
11075
11076 afwtdn
11077 Reduce broadband noise from input samples using Wavelets.
11078
11079 A description of the accepted options follows.
11080
11081 sigma
11082 Set the noise sigma, allowed range is from 0 to 1. Default value
11083 is 0. This option controls strength of denoising applied to input
11084 samples. Most useful way to set this option is via decibels, eg.
11085 -45dB.
11086
11087 levels
11088 Set the number of wavelet levels of decomposition. Allowed range
11089 is from 1 to 12. Default value is 10. Setting this too low make
11090 denoising performance very poor.
11091
11092 wavet
11093 Set wavelet type for decomposition of input frame. They are sorted
11094 by number of coefficients, from lowest to highest. More
11095 coefficients means worse filtering speed, but overall better
11096 quality. Available wavelets are:
11097
11098 sym2
11099 sym4
11100 rbior68
11101 deb10
11102 sym10
11103 coif5
11104 bl3
11105 percent
11106 Set percent of full denoising. Allowed range is from 0 to 100
11107 percent. Default value is 85 percent or partial denoising.
11108
11109 profile
11110 If enabled, first input frame will be used as noise profile. If
11111 first frame samples contain non-noise performance will be very
11112 poor.
11113
11114 adaptive
11115 If enabled, input frames are analyzed for presence of noise. If
11116 noise is detected with high possibility then input frame profile
11117 will be used for processing following frames, until new noise frame
11118 is detected.
11119
11120 samples
11121 Set size of single frame in number of samples. Allowed range is
11122 from 512 to 65536. Default frame size is 8192 samples.
11123
11124 softness
11125 Set softness applied inside thresholding function. Allowed range is
11126 from 0 to 10. Default softness is 1.
11127
11128 Commands
11129
11130 This filter supports the all above options as commands.
11131
11132 agate
11133 A gate is mainly used to reduce lower parts of a signal. This kind of
11134 signal processing reduces disturbing noise between useful signals.
11135
11136 Gating is done by detecting the volume below a chosen level threshold
11137 and dividing it by the factor set with ratio. The bottom of the noise
11138 floor is set via range. Because an exact manipulation of the signal
11139 would cause distortion of the waveform the reduction can be levelled
11140 over time. This is done by setting attack and release.
11141
11142 attack determines how long the signal has to fall below the threshold
11143 before any reduction will occur and release sets the time the signal
11144 has to rise above the threshold to reduce the reduction again. Shorter
11145 signals than the chosen attack time will be left untouched.
11146
11147 level_in
11148 Set input level before filtering. Default is 1. Allowed range is
11149 from 0.015625 to 64.
11150
11151 mode
11152 Set the mode of operation. Can be "upward" or "downward". Default
11153 is "downward". If set to "upward" mode, higher parts of signal will
11154 be amplified, expanding dynamic range in upward direction.
11155 Otherwise, in case of "downward" lower parts of signal will be
11156 reduced.
11157
11158 range
11159 Set the level of gain reduction when the signal is below the
11160 threshold. Default is 0.06125. Allowed range is from 0 to 1.
11161 Setting this to 0 disables reduction and then filter behaves like
11162 expander.
11163
11164 threshold
11165 If a signal rises above this level the gain reduction is released.
11166 Default is 0.125. Allowed range is from 0 to 1.
11167
11168 ratio
11169 Set a ratio by which the signal is reduced. Default is 2. Allowed
11170 range is from 1 to 9000.
11171
11172 attack
11173 Amount of milliseconds the signal has to rise above the threshold
11174 before gain reduction stops. Default is 20 milliseconds. Allowed
11175 range is from 0.01 to 9000.
11176
11177 release
11178 Amount of milliseconds the signal has to fall below the threshold
11179 before the reduction is increased again. Default is 250
11180 milliseconds. Allowed range is from 0.01 to 9000.
11181
11182 makeup
11183 Set amount of amplification of signal after processing. Default is
11184 1. Allowed range is from 1 to 64.
11185
11186 knee
11187 Curve the sharp knee around the threshold to enter gain reduction
11188 more softly. Default is 2.828427125. Allowed range is from 1 to 8.
11189
11190 detection
11191 Choose if exact signal should be taken for detection or an RMS like
11192 one. Default is "rms". Can be "peak" or "rms".
11193
11194 link
11195 Choose if the average level between all channels or the louder
11196 channel affects the reduction. Default is "average". Can be
11197 "average" or "maximum".
11198
11199 Commands
11200
11201 This filter supports the all above options as commands.
11202
11203 aiir
11204 Apply an arbitrary Infinite Impulse Response filter.
11205
11206 It accepts the following parameters:
11207
11208 zeros, z
11209 Set B/numerator/zeros/reflection coefficients.
11210
11211 poles, p
11212 Set A/denominator/poles/ladder coefficients.
11213
11214 gains, k
11215 Set channels gains.
11216
11217 dry_gain
11218 Set input gain.
11219
11220 wet_gain
11221 Set output gain.
11222
11223 format, f
11224 Set coefficients format.
11225
11226 ll lattice-ladder function
11227
11228 sf analog transfer function
11229
11230 tf digital transfer function
11231
11232 zp Z-plane zeros/poles, cartesian (default)
11233
11234 pr Z-plane zeros/poles, polar radians
11235
11236 pd Z-plane zeros/poles, polar degrees
11237
11238 sp S-plane zeros/poles
11239
11240 process, r
11241 Set type of processing.
11242
11243 d direct processing
11244
11245 s serial processing
11246
11247 p parallel processing
11248
11249 precision, e
11250 Set filtering precision.
11251
11252 dbl double-precision floating-point (default)
11253
11254 flt single-precision floating-point
11255
11256 i32 32-bit integers
11257
11258 i16 16-bit integers
11259
11260 normalize, n
11261 Normalize filter coefficients, by default is enabled. Enabling it
11262 will normalize magnitude response at DC to 0dB.
11263
11264 mix How much to use filtered signal in output. Default is 1. Range is
11265 between 0 and 1.
11266
11267 response
11268 Show IR frequency response, magnitude(magenta), phase(green) and
11269 group delay(yellow) in additional video stream. By default it is
11270 disabled.
11271
11272 channel
11273 Set for which IR channel to display frequency response. By default
11274 is first channel displayed. This option is used only when response
11275 is enabled.
11276
11277 size
11278 Set video stream size. This option is used only when response is
11279 enabled.
11280
11281 Coefficients in "tf" and "sf" format are separated by spaces and are in
11282 ascending order.
11283
11284 Coefficients in "zp" format are separated by spaces and order of
11285 coefficients doesn't matter. Coefficients in "zp" format are complex
11286 numbers with i imaginary unit.
11287
11288 Different coefficients and gains can be provided for every channel, in
11289 such case use '|' to separate coefficients or gains. Last provided
11290 coefficients will be used for all remaining channels.
11291
11292 Examples
11293
11294 • Apply 2 pole elliptic notch at around 5000Hz for 48000 Hz sample
11295 rate:
11296
11297 aiir=k=1:z=7.957584807809675810E-1 -2.575128568908332300 3.674839853930788710 -2.57512875289799137 7.957586296317130880E-1:p=1 -2.86950072432325953 3.63022088054647218 -2.28075678147272232 6.361362326477423500E-1:f=tf:r=d
11298
11299 • Same as above but in "zp" format:
11300
11301 aiir=k=0.79575848078096756:z=0.80918701+0.58773007i 0.80918701-0.58773007i 0.80884700+0.58784055i 0.80884700-0.58784055i:p=0.63892345+0.59951235i 0.63892345-0.59951235i 0.79582691+0.44198673i 0.79582691-0.44198673i:f=zp:r=s
11302
11303 • Apply 3-rd order analog normalized Butterworth low-pass filter,
11304 using analog transfer function format:
11305
11306 aiir=z=1.3057 0 0 0:p=1.3057 2.3892 2.1860 1:f=sf:r=d
11307
11308 alimiter
11309 The limiter prevents an input signal from rising over a desired
11310 threshold. This limiter uses lookahead technology to prevent your
11311 signal from distorting. It means that there is a small delay after the
11312 signal is processed. Keep in mind that the delay it produces is the
11313 attack time you set.
11314
11315 The filter accepts the following options:
11316
11317 level_in
11318 Set input gain. Default is 1.
11319
11320 level_out
11321 Set output gain. Default is 1.
11322
11323 limit
11324 Don't let signals above this level pass the limiter. Default is 1.
11325
11326 attack
11327 The limiter will reach its attenuation level in this amount of time
11328 in milliseconds. Default is 5 milliseconds.
11329
11330 release
11331 Come back from limiting to attenuation 1.0 in this amount of
11332 milliseconds. Default is 50 milliseconds.
11333
11334 asc When gain reduction is always needed ASC takes care of releasing to
11335 an average reduction level rather than reaching a reduction of 0 in
11336 the release time.
11337
11338 asc_level
11339 Select how much the release time is affected by ASC, 0 means nearly
11340 no changes in release time while 1 produces higher release times.
11341
11342 level
11343 Auto level output signal. Default is enabled. This normalizes
11344 audio back to 0dB if enabled.
11345
11346 latency
11347 Compensate the delay introduced by using the lookahead buffer set
11348 with attack parameter. Also flush the valid audio data in the
11349 lookahead buffer when the stream hits EOF.
11350
11351 Depending on picked setting it is recommended to upsample input 2x or
11352 4x times with aresample before applying this filter.
11353
11354 allpass
11355 Apply a two-pole all-pass filter with central frequency (in Hz)
11356 frequency, and filter-width width. An all-pass filter changes the
11357 audio's frequency to phase relationship without changing its frequency
11358 to amplitude relationship.
11359
11360 The filter accepts the following options:
11361
11362 frequency, f
11363 Set frequency in Hz.
11364
11365 width_type, t
11366 Set method to specify band-width of filter.
11367
11368 h Hz
11369
11370 q Q-Factor
11371
11372 o octave
11373
11374 s slope
11375
11376 k kHz
11377
11378 width, w
11379 Specify the band-width of a filter in width_type units.
11380
11381 mix, m
11382 How much to use filtered signal in output. Default is 1. Range is
11383 between 0 and 1.
11384
11385 channels, c
11386 Specify which channels to filter, by default all available are
11387 filtered.
11388
11389 normalize, n
11390 Normalize biquad coefficients, by default is disabled. Enabling it
11391 will normalize magnitude response at DC to 0dB.
11392
11393 order, o
11394 Set the filter order, can be 1 or 2. Default is 2.
11395
11396 transform, a
11397 Set transform type of IIR filter.
11398
11399 di
11400 dii
11401 tdi
11402 tdii
11403 latt
11404 svf
11405 zdf
11406 precision, r
11407 Set precison of filtering.
11408
11409 auto
11410 Pick automatic sample format depending on surround filters.
11411
11412 s16 Always use signed 16-bit.
11413
11414 s32 Always use signed 32-bit.
11415
11416 f32 Always use float 32-bit.
11417
11418 f64 Always use float 64-bit.
11419
11420 Commands
11421
11422 This filter supports the following commands:
11423
11424 frequency, f
11425 Change allpass frequency. Syntax for the command is : "frequency"
11426
11427 width_type, t
11428 Change allpass width_type. Syntax for the command is :
11429 "width_type"
11430
11431 width, w
11432 Change allpass width. Syntax for the command is : "width"
11433
11434 mix, m
11435 Change allpass mix. Syntax for the command is : "mix"
11436
11437 aloop
11438 Loop audio samples.
11439
11440 The filter accepts the following options:
11441
11442 loop
11443 Set the number of loops. Setting this value to -1 will result in
11444 infinite loops. Default is 0.
11445
11446 size
11447 Set maximal number of samples. Default is 0.
11448
11449 start
11450 Set first sample of loop. Default is 0.
11451
11452 amerge
11453 Merge two or more audio streams into a single multi-channel stream.
11454
11455 The filter accepts the following options:
11456
11457 inputs
11458 Set the number of inputs. Default is 2.
11459
11460 If the channel layouts of the inputs are disjoint, and therefore
11461 compatible, the channel layout of the output will be set accordingly
11462 and the channels will be reordered as necessary. If the channel layouts
11463 of the inputs are not disjoint, the output will have all the channels
11464 of the first input then all the channels of the second input, in that
11465 order, and the channel layout of the output will be the default value
11466 corresponding to the total number of channels.
11467
11468 For example, if the first input is in 2.1 (FL+FR+LF) and the second
11469 input is FC+BL+BR, then the output will be in 5.1, with the channels in
11470 the following order: a1, a2, b1, a3, b2, b3 (a1 is the first channel of
11471 the first input, b1 is the first channel of the second input).
11472
11473 On the other hand, if both input are in stereo, the output channels
11474 will be in the default order: a1, a2, b1, b2, and the channel layout
11475 will be arbitrarily set to 4.0, which may or may not be the expected
11476 value.
11477
11478 All inputs must have the same sample rate, and format.
11479
11480 If inputs do not have the same duration, the output will stop with the
11481 shortest.
11482
11483 Examples
11484
11485 • Merge two mono files into a stereo stream:
11486
11487 amovie=left.wav [l] ; amovie=right.mp3 [r] ; [l] [r] amerge
11488
11489 • Multiple merges assuming 1 video stream and 6 audio streams in
11490 input.mkv:
11491
11492 ffmpeg -i input.mkv -filter_complex "[0:1][0:2][0:3][0:4][0:5][0:6] amerge=inputs=6" -c:a pcm_s16le output.mkv
11493
11494 amix
11495 Mixes multiple audio inputs into a single output.
11496
11497 Note that this filter only supports float samples (the amerge and pan
11498 audio filters support many formats). If the amix input has integer
11499 samples then aresample will be automatically inserted to perform the
11500 conversion to float samples.
11501
11502 It accepts the following parameters:
11503
11504 inputs
11505 The number of inputs. If unspecified, it defaults to 2.
11506
11507 duration
11508 How to determine the end-of-stream.
11509
11510 longest
11511 The duration of the longest input. (default)
11512
11513 shortest
11514 The duration of the shortest input.
11515
11516 first
11517 The duration of the first input.
11518
11519 dropout_transition
11520 The transition time, in seconds, for volume renormalization when an
11521 input stream ends. The default value is 2 seconds.
11522
11523 weights
11524 Specify weight of each input audio stream as a sequence of numbers
11525 separated by a space. If fewer weights are specified compared to
11526 number of inputs, the last weight is assigned to the remaining
11527 inputs. Default weight for each input is 1.
11528
11529 normalize
11530 Always scale inputs instead of only doing summation of samples.
11531 Beware of heavy clipping if inputs are not normalized prior or
11532 after filtering by this filter if this option is disabled. By
11533 default is enabled.
11534
11535 Examples
11536
11537 • This will mix 3 input audio streams to a single output with the
11538 same duration as the first input and a dropout transition time of 3
11539 seconds:
11540
11541 ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex amix=inputs=3:duration=first:dropout_transition=3 OUTPUT
11542
11543 • This will mix one vocal and one music input audio stream to a
11544 single output with the same duration as the longest input. The
11545 music will have quarter the weight as the vocals, and the inputs
11546 are not normalized:
11547
11548 ffmpeg -i VOCALS -i MUSIC -filter_complex amix=inputs=2:duration=longest:dropout_transition=0:weights="1 0.25":normalize=0 OUTPUT
11549
11550 Commands
11551
11552 This filter supports the following commands:
11553
11554 weights
11555 normalize
11556 Syntax is same as option with same name.
11557
11558 amultiply
11559 Multiply first audio stream with second audio stream and store result
11560 in output audio stream. Multiplication is done by multiplying each
11561 sample from first stream with sample at same position from second
11562 stream.
11563
11564 With this element-wise multiplication one can create amplitude fades
11565 and amplitude modulations.
11566
11567 anequalizer
11568 High-order parametric multiband equalizer for each channel.
11569
11570 It accepts the following parameters:
11571
11572 params
11573 This option string is in format: "cchn f=cf w=w g=g t=f | ..."
11574 Each equalizer band is separated by '|'.
11575
11576 chn Set channel number to which equalization will be applied. If
11577 input doesn't have that channel the entry is ignored.
11578
11579 f Set central frequency for band. If input doesn't have that
11580 frequency the entry is ignored.
11581
11582 w Set band width in Hertz.
11583
11584 g Set band gain in dB.
11585
11586 t Set filter type for band, optional, can be:
11587
11588 0 Butterworth, this is default.
11589
11590 1 Chebyshev type 1.
11591
11592 2 Chebyshev type 2.
11593
11594 curves
11595 With this option activated frequency response of anequalizer is
11596 displayed in video stream.
11597
11598 size
11599 Set video stream size. Only useful if curves option is activated.
11600
11601 mgain
11602 Set max gain that will be displayed. Only useful if curves option
11603 is activated. Setting this to a reasonable value makes it possible
11604 to display gain which is derived from neighbour bands which are too
11605 close to each other and thus produce higher gain when both are
11606 activated.
11607
11608 fscale
11609 Set frequency scale used to draw frequency response in video
11610 output. Can be linear or logarithmic. Default is logarithmic.
11611
11612 colors
11613 Set color for each channel curve which is going to be displayed in
11614 video stream. This is list of color names separated by space or by
11615 '|'. Unrecognised or missing colors will be replaced by white
11616 color.
11617
11618 Examples
11619
11620 • Lower gain by 10 of central frequency 200Hz and width 100 Hz for
11621 first 2 channels using Chebyshev type 1 filter:
11622
11623 anequalizer=c0 f=200 w=100 g=-10 t=1|c1 f=200 w=100 g=-10 t=1
11624
11625 Commands
11626
11627 This filter supports the following commands:
11628
11629 change
11630 Alter existing filter parameters. Syntax for the commands is :
11631 "fN|f=freq|w=width|g=gain"
11632
11633 fN is existing filter number, starting from 0, if no such filter is
11634 available error is returned. freq set new frequency parameter.
11635 width set new width parameter in Hertz. gain set new gain
11636 parameter in dB.
11637
11638 Full filter invocation with asendcmd may look like this:
11639 asendcmd=c='4.0 anequalizer change
11640 0|f=200|w=50|g=1',anequalizer=...
11641
11642 anlmdn
11643 Reduce broadband noise in audio samples using Non-Local Means
11644 algorithm.
11645
11646 Each sample is adjusted by looking for other samples with similar
11647 contexts. This context similarity is defined by comparing their
11648 surrounding patches of size p. Patches are searched in an area of r
11649 around the sample.
11650
11651 The filter accepts the following options:
11652
11653 strength, s
11654 Set denoising strength. Allowed range is from 0.00001 to 10000.
11655 Default value is 0.00001.
11656
11657 patch, p
11658 Set patch radius duration. Allowed range is from 1 to 100
11659 milliseconds. Default value is 2 milliseconds.
11660
11661 research, r
11662 Set research radius duration. Allowed range is from 2 to 300
11663 milliseconds. Default value is 6 milliseconds.
11664
11665 output, o
11666 Set the output mode.
11667
11668 It accepts the following values:
11669
11670 i Pass input unchanged.
11671
11672 o Pass noise filtered out.
11673
11674 n Pass only noise.
11675
11676 Default value is o.
11677
11678 smooth, m
11679 Set smooth factor. Default value is 11. Allowed range is from 1 to
11680 1000.
11681
11682 Commands
11683
11684 This filter supports the all above options as commands.
11685
11686 anlmf, anlms
11687 Apply Normalized Least-Mean-(Squares|Fourth) algorithm to the first
11688 audio stream using the second audio stream.
11689
11690 This adaptive filter is used to mimic a desired filter by finding the
11691 filter coefficients that relate to producing the least mean square of
11692 the error signal (difference between the desired, 2nd input audio
11693 stream and the actual signal, the 1st input audio stream).
11694
11695 A description of the accepted options follows.
11696
11697 order
11698 Set filter order.
11699
11700 mu Set filter mu.
11701
11702 eps Set the filter eps.
11703
11704 leakage
11705 Set the filter leakage.
11706
11707 out_mode
11708 It accepts the following values:
11709
11710 i Pass the 1st input.
11711
11712 d Pass the 2nd input.
11713
11714 o Pass filtered samples.
11715
11716 n Pass difference between desired and filtered samples.
11717
11718 Default value is o.
11719
11720 Examples
11721
11722 • One of many usages of this filter is noise reduction, input audio
11723 is filtered with same samples that are delayed by fixed amount, one
11724 such example for stereo audio is:
11725
11726 asplit[a][b],[a]adelay=32S|32S[a],[b][a]anlms=order=128:leakage=0.0005:mu=.5:out_mode=o
11727
11728 Commands
11729
11730 This filter supports the same commands as options, excluding option
11731 "order".
11732
11733 anull
11734 Pass the audio source unchanged to the output.
11735
11736 apad
11737 Pad the end of an audio stream with silence.
11738
11739 This can be used together with ffmpeg -shortest to extend audio streams
11740 to the same length as the video stream.
11741
11742 A description of the accepted options follows.
11743
11744 packet_size
11745 Set silence packet size. Default value is 4096.
11746
11747 pad_len
11748 Set the number of samples of silence to add to the end. After the
11749 value is reached, the stream is terminated. This option is mutually
11750 exclusive with whole_len.
11751
11752 whole_len
11753 Set the minimum total number of samples in the output audio stream.
11754 If the value is longer than the input audio length, silence is
11755 added to the end, until the value is reached. This option is
11756 mutually exclusive with pad_len.
11757
11758 pad_dur
11759 Specify the duration of samples of silence to add. See the Time
11760 duration section in the ffmpeg-utils(1) manual for the accepted
11761 syntax. Used only if set to non-negative value.
11762
11763 whole_dur
11764 Specify the minimum total duration in the output audio stream. See
11765 the Time duration section in the ffmpeg-utils(1) manual for the
11766 accepted syntax. Used only if set to non-negative value. If the
11767 value is longer than the input audio length, silence is added to
11768 the end, until the value is reached. This option is mutually
11769 exclusive with pad_dur
11770
11771 If neither the pad_len nor the whole_len nor pad_dur nor whole_dur
11772 option is set, the filter will add silence to the end of the input
11773 stream indefinitely.
11774
11775 Note that for ffmpeg 4.4 and earlier a zero pad_dur or whole_dur also
11776 caused the filter to add silence indefinitely.
11777
11778 Examples
11779
11780 • Add 1024 samples of silence to the end of the input:
11781
11782 apad=pad_len=1024
11783
11784 • Make sure the audio output will contain at least 10000 samples, pad
11785 the input with silence if required:
11786
11787 apad=whole_len=10000
11788
11789 • Use ffmpeg to pad the audio input with silence, so that the video
11790 stream will always result the shortest and will be converted until
11791 the end in the output file when using the shortest option:
11792
11793 ffmpeg -i VIDEO -i AUDIO -filter_complex "[1:0]apad" -shortest OUTPUT
11794
11795 aphaser
11796 Add a phasing effect to the input audio.
11797
11798 A phaser filter creates series of peaks and troughs in the frequency
11799 spectrum. The position of the peaks and troughs are modulated so that
11800 they vary over time, creating a sweeping effect.
11801
11802 A description of the accepted parameters follows.
11803
11804 in_gain
11805 Set input gain. Default is 0.4.
11806
11807 out_gain
11808 Set output gain. Default is 0.74
11809
11810 delay
11811 Set delay in milliseconds. Default is 3.0.
11812
11813 decay
11814 Set decay. Default is 0.4.
11815
11816 speed
11817 Set modulation speed in Hz. Default is 0.5.
11818
11819 type
11820 Set modulation type. Default is triangular.
11821
11822 It accepts the following values:
11823
11824 triangular, t
11825 sinusoidal, s
11826
11827 aphaseshift
11828 Apply phase shift to input audio samples.
11829
11830 The filter accepts the following options:
11831
11832 shift
11833 Specify phase shift. Allowed range is from -1.0 to 1.0. Default
11834 value is 0.0.
11835
11836 level
11837 Set output gain applied to final output. Allowed range is from 0.0
11838 to 1.0. Default value is 1.0.
11839
11840 order
11841 Set filter order used for filtering. Allowed range is from 1 to 16.
11842 Default value is 8.
11843
11844 Commands
11845
11846 This filter supports the all above options as commands.
11847
11848 apsyclip
11849 Apply Psychoacoustic clipper to input audio stream.
11850
11851 The filter accepts the following options:
11852
11853 level_in
11854 Set input gain. By default it is 1. Range is [0.015625 - 64].
11855
11856 level_out
11857 Set output gain. By default it is 1. Range is [0.015625 - 64].
11858
11859 clip
11860 Set the clipping start value. Default value is 0dBFS or 1.
11861
11862 diff
11863 Output only difference samples, useful to hear introduced
11864 distortions. By default is disabled.
11865
11866 adaptive
11867 Set strength of adaptive distortion applied. Default value is 0.5.
11868 Allowed range is from 0 to 1.
11869
11870 iterations
11871 Set number of iterations of psychoacoustic clipper. Allowed range
11872 is from 1 to 20. Default value is 10.
11873
11874 level
11875 Auto level output signal. Default is disabled. This normalizes
11876 audio back to 0dBFS if enabled.
11877
11878 Commands
11879
11880 This filter supports the all above options as commands.
11881
11882 apulsator
11883 Audio pulsator is something between an autopanner and a tremolo. But
11884 it can produce funny stereo effects as well. Pulsator changes the
11885 volume of the left and right channel based on a LFO (low frequency
11886 oscillator) with different waveforms and shifted phases. This filter
11887 have the ability to define an offset between left and right channel. An
11888 offset of 0 means that both LFO shapes match each other. The left and
11889 right channel are altered equally - a conventional tremolo. An offset
11890 of 50% means that the shape of the right channel is exactly shifted in
11891 phase (or moved backwards about half of the frequency) - pulsator acts
11892 as an autopanner. At 1 both curves match again. Every setting in
11893 between moves the phase shift gapless between all stages and produces
11894 some "bypassing" sounds with sine and triangle waveforms. The more you
11895 set the offset near 1 (starting from the 0.5) the faster the signal
11896 passes from the left to the right speaker.
11897
11898 The filter accepts the following options:
11899
11900 level_in
11901 Set input gain. By default it is 1. Range is [0.015625 - 64].
11902
11903 level_out
11904 Set output gain. By default it is 1. Range is [0.015625 - 64].
11905
11906 mode
11907 Set waveform shape the LFO will use. Can be one of: sine, triangle,
11908 square, sawup or sawdown. Default is sine.
11909
11910 amount
11911 Set modulation. Define how much of original signal is affected by
11912 the LFO.
11913
11914 offset_l
11915 Set left channel offset. Default is 0. Allowed range is [0 - 1].
11916
11917 offset_r
11918 Set right channel offset. Default is 0.5. Allowed range is [0 - 1].
11919
11920 width
11921 Set pulse width. Default is 1. Allowed range is [0 - 2].
11922
11923 timing
11924 Set possible timing mode. Can be one of: bpm, ms or hz. Default is
11925 hz.
11926
11927 bpm Set bpm. Default is 120. Allowed range is [30 - 300]. Only used if
11928 timing is set to bpm.
11929
11930 ms Set ms. Default is 500. Allowed range is [10 - 2000]. Only used if
11931 timing is set to ms.
11932
11933 hz Set frequency in Hz. Default is 2. Allowed range is [0.01 - 100].
11934 Only used if timing is set to hz.
11935
11936 aresample
11937 Resample the input audio to the specified parameters, using the
11938 libswresample library. If none are specified then the filter will
11939 automatically convert between its input and output.
11940
11941 This filter is also able to stretch/squeeze the audio data to make it
11942 match the timestamps or to inject silence / cut out audio to make it
11943 match the timestamps, do a combination of both or do neither.
11944
11945 The filter accepts the syntax [sample_rate:]resampler_options, where
11946 sample_rate expresses a sample rate and resampler_options is a list of
11947 key=value pairs, separated by ":". See the "Resampler Options" section
11948 in the ffmpeg-resampler(1) manual for the complete list of supported
11949 options.
11950
11951 Examples
11952
11953 • Resample the input audio to 44100Hz:
11954
11955 aresample=44100
11956
11957 • Stretch/squeeze samples to the given timestamps, with a maximum of
11958 1000 samples per second compensation:
11959
11960 aresample=async=1000
11961
11962 areverse
11963 Reverse an audio clip.
11964
11965 Warning: This filter requires memory to buffer the entire clip, so
11966 trimming is suggested.
11967
11968 Examples
11969
11970 • Take the first 5 seconds of a clip, and reverse it.
11971
11972 atrim=end=5,areverse
11973
11974 arnndn
11975 Reduce noise from speech using Recurrent Neural Networks.
11976
11977 This filter accepts the following options:
11978
11979 model, m
11980 Set train model file to load. This option is always required.
11981
11982 mix Set how much to mix filtered samples into final output. Allowed
11983 range is from -1 to 1. Default value is 1. Negative values are
11984 special, they set how much to keep filtered noise in the final
11985 filter output. Set this option to -1 to hear actual noise removed
11986 from input signal.
11987
11988 Commands
11989
11990 This filter supports the all above options as commands.
11991
11992 asdr
11993 Measure Audio Signal-to-Distortion Ratio.
11994
11995 This filter takes two audio streams for input, and outputs first audio
11996 stream. Results are in dB per channel at end of either input.
11997
11998 asetnsamples
11999 Set the number of samples per each output audio frame.
12000
12001 The last output packet may contain a different number of samples, as
12002 the filter will flush all the remaining samples when the input audio
12003 signals its end.
12004
12005 The filter accepts the following options:
12006
12007 nb_out_samples, n
12008 Set the number of frames per each output audio frame. The number is
12009 intended as the number of samples per each channel. Default value
12010 is 1024.
12011
12012 pad, p
12013 If set to 1, the filter will pad the last audio frame with zeroes,
12014 so that the last frame will contain the same number of samples as
12015 the previous ones. Default value is 1.
12016
12017 For example, to set the number of per-frame samples to 1234 and disable
12018 padding for the last frame, use:
12019
12020 asetnsamples=n=1234:p=0
12021
12022 asetrate
12023 Set the sample rate without altering the PCM data. This will result in
12024 a change of speed and pitch.
12025
12026 The filter accepts the following options:
12027
12028 sample_rate, r
12029 Set the output sample rate. Default is 44100 Hz.
12030
12031 ashowinfo
12032 Show a line containing various information for each input audio frame.
12033 The input audio is not modified.
12034
12035 The shown line contains a sequence of key/value pairs of the form
12036 key:value.
12037
12038 The following values are shown in the output:
12039
12040 n The (sequential) number of the input frame, starting from 0.
12041
12042 pts The presentation timestamp of the input frame, in time base units;
12043 the time base depends on the filter input pad, and is usually
12044 1/sample_rate.
12045
12046 pts_time
12047 The presentation timestamp of the input frame in seconds.
12048
12049 pos position of the frame in the input stream, -1 if this information
12050 in unavailable and/or meaningless (for example in case of synthetic
12051 audio)
12052
12053 fmt The sample format.
12054
12055 chlayout
12056 The channel layout.
12057
12058 rate
12059 The sample rate for the audio frame.
12060
12061 nb_samples
12062 The number of samples (per channel) in the frame.
12063
12064 checksum
12065 The Adler-32 checksum (printed in hexadecimal) of the audio data.
12066 For planar audio, the data is treated as if all the planes were
12067 concatenated.
12068
12069 plane_checksums
12070 A list of Adler-32 checksums for each data plane.
12071
12072 asoftclip
12073 Apply audio soft clipping.
12074
12075 Soft clipping is a type of distortion effect where the amplitude of a
12076 signal is saturated along a smooth curve, rather than the abrupt shape
12077 of hard-clipping.
12078
12079 This filter accepts the following options:
12080
12081 type
12082 Set type of soft-clipping.
12083
12084 It accepts the following values:
12085
12086 hard
12087 tanh
12088 atan
12089 cubic
12090 exp
12091 alg
12092 quintic
12093 sin
12094 erf
12095 threshold
12096 Set threshold from where to start clipping. Default value is 0dB or
12097 1.
12098
12099 output
12100 Set gain applied to output. Default value is 0dB or 1.
12101
12102 param
12103 Set additional parameter which controls sigmoid function.
12104
12105 oversample
12106 Set oversampling factor.
12107
12108 Commands
12109
12110 This filter supports the all above options as commands.
12111
12112 aspectralstats
12113 Display frequency domain statistical information about the audio
12114 channels. Statistics are calculated and stored as metadata for each
12115 audio channel and for each audio frame.
12116
12117 It accepts the following option:
12118
12119 win_size
12120 Set the window length in samples. Default value is 2048. Allowed
12121 range is from 32 to 65536.
12122
12123 win_func
12124 Set window function.
12125
12126 It accepts the following values:
12127
12128 rect
12129 bartlett
12130 hann, hanning
12131 hamming
12132 blackman
12133 welch
12134 flattop
12135 bharris
12136 bnuttall
12137 bhann
12138 sine
12139 nuttall
12140 lanczos
12141 gauss
12142 tukey
12143 dolph
12144 cauchy
12145 parzen
12146 poisson
12147 bohman
12148 kaiser
12149
12150 Default is "hann".
12151
12152 overlap
12153 Set window overlap. Allowed range is from 0 to 1. Default value is
12154 0.5.
12155
12156 measure
12157 Select the parameters which are measured. The metadata keys can be
12158 used as flags, default is all which measures everything. none
12159 disables all measurement.
12160
12161 A list of each metadata key follows:
12162
12163 mean
12164 variance
12165 centroid
12166 spread
12167 skewness
12168 kurtosis
12169 entropy
12170 flatness
12171 crest
12172 flux
12173 slope
12174 decrease
12175 rolloff
12176
12177 asr
12178 Automatic Speech Recognition
12179
12180 This filter uses PocketSphinx for speech recognition. To enable
12181 compilation of this filter, you need to configure FFmpeg with
12182 "--enable-pocketsphinx".
12183
12184 It accepts the following options:
12185
12186 rate
12187 Set sampling rate of input audio. Defaults is 16000. This need to
12188 match speech models, otherwise one will get poor results.
12189
12190 hmm Set dictionary containing acoustic model files.
12191
12192 dict
12193 Set pronunciation dictionary.
12194
12195 lm Set language model file.
12196
12197 lmctl
12198 Set language model set.
12199
12200 lmname
12201 Set which language model to use.
12202
12203 logfn
12204 Set output for log messages.
12205
12206 The filter exports recognized speech as the frame metadata
12207 "lavfi.asr.text".
12208
12209 astats
12210 Display time domain statistical information about the audio channels.
12211 Statistics are calculated and displayed for each audio channel and,
12212 where applicable, an overall figure is also given.
12213
12214 It accepts the following option:
12215
12216 length
12217 Short window length in seconds, used for peak and trough RMS
12218 measurement. Default is 0.05 (50 milliseconds). Allowed range is
12219 "[0 - 10]".
12220
12221 metadata
12222 Set metadata injection. All the metadata keys are prefixed with
12223 "lavfi.astats.X", where "X" is channel number starting from 1 or
12224 string "Overall". Default is disabled.
12225
12226 Available keys for each channel are: Bit_depth Crest_factor
12227 DC_offset Dynamic_range Entropy Flat_factor Max_difference
12228 Max_level Mean_difference Min_difference Min_level Noise_floor
12229 Noise_floor_count Number_of_Infs Number_of_NaNs Number_of_denormals
12230 Peak_count Peak_level RMS_difference RMS_peak RMS_trough
12231 Zero_crossings Zero_crossings_rate
12232
12233 and for "Overall": Bit_depth DC_offset Entropy Flat_factor
12234 Max_difference Max_level Mean_difference Min_difference Min_level
12235 Noise_floor Noise_floor_count Number_of_Infs Number_of_NaNs
12236 Number_of_denormals Number_of_samples Peak_count Peak_level
12237 RMS_difference RMS_level RMS_peak RMS_trough
12238
12239 For example, a full key looks like "lavfi.astats.1.DC_offset" or
12240 "lavfi.astats.Overall.Peak_count".
12241
12242 Read below for the description of the keys.
12243
12244 reset
12245 Set the number of frames over which cumulative stats are calculated
12246 before being reset. Default is disabled.
12247
12248 measure_perchannel
12249 Select the parameters which are measured per channel. The metadata
12250 keys can be used as flags, default is all which measures
12251 everything. none disables all per channel measurement.
12252
12253 measure_overall
12254 Select the parameters which are measured overall. The metadata keys
12255 can be used as flags, default is all which measures everything.
12256 none disables all overall measurement.
12257
12258 A description of the measure keys follow:
12259
12260 none
12261 no measures
12262
12263 all all measures
12264
12265 Bit_depth
12266 overall bit depth of audio, i.e. number of bits used for each
12267 sample
12268
12269 Crest_factor
12270 standard ratio of peak to RMS level (note: not in dB)
12271
12272 DC_offset
12273 mean amplitude displacement from zero
12274
12275 Dynamic_range
12276 measured dynamic range of audio in dB
12277
12278 Entropy
12279 entropy measured across whole audio, entropy of value near 1.0 is
12280 typically measured for white noise
12281
12282 Flat_factor
12283 flatness (i.e. consecutive samples with the same value) of the
12284 signal at its peak levels (i.e. either Min_level or Max_level)
12285
12286 Max_difference
12287 maximal difference between two consecutive samples
12288
12289 Max_level
12290 maximal sample level
12291
12292 Mean_difference
12293 mean difference between two consecutive samples, i.e. the average
12294 of each difference between two consecutive samples
12295
12296 Min_difference
12297 minimal difference between two consecutive samples
12298
12299 Min_level
12300 minimal sample level
12301
12302 Noise_floor
12303 minimum local peak measured in dBFS over a short window
12304
12305 Noise_floor_count
12306 number of occasions (not the number of samples) that the signal
12307 attained Noise floor
12308
12309 Number_of_Infs
12310 number of samples with an infinite value
12311
12312 Number_of_NaNs
12313 number of samples with a NaN (not a number) value
12314
12315 Number_of_denormals
12316 number of samples with a subnormal value
12317
12318 Number_of_samples
12319 number of samples
12320
12321 Peak_count
12322 number of occasions (not the number of samples) that the signal
12323 attained either Min_level or Max_level
12324
12325 Peak_level
12326 standard peak level measured in dBFS
12327
12328 RMS_difference
12329 Root Mean Square difference between two consecutive samples
12330
12331 RMS_level
12332 standard RMS level measured in dBFS
12333
12334 RMS_peak
12335 RMS_trough
12336 peak and trough values for RMS level measured over a short window,
12337 measured in dBFS.
12338
12339 Zero crossings
12340 number of points where the waveform crosses the zero level axis
12341
12342 Zero crossings rate
12343 rate of Zero crossings and number of audio samples
12344
12345 asubboost
12346 Boost subwoofer frequencies.
12347
12348 The filter accepts the following options:
12349
12350 dry Set dry gain, how much of original signal is kept. Allowed range is
12351 from 0 to 1. Default value is 1.0.
12352
12353 wet Set wet gain, how much of filtered signal is kept. Allowed range is
12354 from 0 to 1. Default value is 1.0.
12355
12356 boost
12357 Set max boost factor. Allowed range is from 1 to 12. Default value
12358 is 2.
12359
12360 decay
12361 Set delay line decay gain value. Allowed range is from 0 to 1.
12362 Default value is 0.0.
12363
12364 feedback
12365 Set delay line feedback gain value. Allowed range is from 0 to 1.
12366 Default value is 0.9.
12367
12368 cutoff
12369 Set cutoff frequency in Hertz. Allowed range is 50 to 900. Default
12370 value is 100.
12371
12372 slope
12373 Set slope amount for cutoff frequency. Allowed range is 0.0001 to
12374 1. Default value is 0.5.
12375
12376 delay
12377 Set delay. Allowed range is from 1 to 100. Default value is 20.
12378
12379 channels
12380 Set the channels to process. Default value is all available.
12381
12382 Commands
12383
12384 This filter supports the all above options as commands.
12385
12386 asubcut
12387 Cut subwoofer frequencies.
12388
12389 This filter allows to set custom, steeper roll off than highpass
12390 filter, and thus is able to more attenuate frequency content in stop-
12391 band.
12392
12393 The filter accepts the following options:
12394
12395 cutoff
12396 Set cutoff frequency in Hertz. Allowed range is 2 to 200. Default
12397 value is 20.
12398
12399 order
12400 Set filter order. Available values are from 3 to 20. Default value
12401 is 10.
12402
12403 level
12404 Set input gain level. Allowed range is from 0 to 1. Default value
12405 is 1.
12406
12407 Commands
12408
12409 This filter supports the all above options as commands.
12410
12411 asupercut
12412 Cut super frequencies.
12413
12414 The filter accepts the following options:
12415
12416 cutoff
12417 Set cutoff frequency in Hertz. Allowed range is 20000 to 192000.
12418 Default value is 20000.
12419
12420 order
12421 Set filter order. Available values are from 3 to 20. Default value
12422 is 10.
12423
12424 level
12425 Set input gain level. Allowed range is from 0 to 1. Default value
12426 is 1.
12427
12428 Commands
12429
12430 This filter supports the all above options as commands.
12431
12432 asuperpass
12433 Apply high order Butterworth band-pass filter.
12434
12435 The filter accepts the following options:
12436
12437 centerf
12438 Set center frequency in Hertz. Allowed range is 2 to 999999.
12439 Default value is 1000.
12440
12441 order
12442 Set filter order. Available values are from 4 to 20. Default value
12443 is 4.
12444
12445 qfactor
12446 Set Q-factor. Allowed range is from 0.01 to 100. Default value is
12447 1.
12448
12449 level
12450 Set input gain level. Allowed range is from 0 to 2. Default value
12451 is 1.
12452
12453 Commands
12454
12455 This filter supports the all above options as commands.
12456
12457 asuperstop
12458 Apply high order Butterworth band-stop filter.
12459
12460 The filter accepts the following options:
12461
12462 centerf
12463 Set center frequency in Hertz. Allowed range is 2 to 999999.
12464 Default value is 1000.
12465
12466 order
12467 Set filter order. Available values are from 4 to 20. Default value
12468 is 4.
12469
12470 qfactor
12471 Set Q-factor. Allowed range is from 0.01 to 100. Default value is
12472 1.
12473
12474 level
12475 Set input gain level. Allowed range is from 0 to 2. Default value
12476 is 1.
12477
12478 Commands
12479
12480 This filter supports the all above options as commands.
12481
12482 atempo
12483 Adjust audio tempo.
12484
12485 The filter accepts exactly one parameter, the audio tempo. If not
12486 specified then the filter will assume nominal 1.0 tempo. Tempo must be
12487 in the [0.5, 100.0] range.
12488
12489 Note that tempo greater than 2 will skip some samples rather than blend
12490 them in. If for any reason this is a concern it is always possible to
12491 daisy-chain several instances of atempo to achieve the desired product
12492 tempo.
12493
12494 Examples
12495
12496 • Slow down audio to 80% tempo:
12497
12498 atempo=0.8
12499
12500 • To speed up audio to 300% tempo:
12501
12502 atempo=3
12503
12504 • To speed up audio to 300% tempo by daisy-chaining two atempo
12505 instances:
12506
12507 atempo=sqrt(3),atempo=sqrt(3)
12508
12509 Commands
12510
12511 This filter supports the following commands:
12512
12513 tempo
12514 Change filter tempo scale factor. Syntax for the command is :
12515 "tempo"
12516
12517 atilt
12518 Apply spectral tilt filter to audio stream.
12519
12520 This filter apply any spectral roll-off slope over any specified
12521 frequency band.
12522
12523 The filter accepts the following options:
12524
12525 freq
12526 Set central frequency of tilt in Hz. Default is 10000 Hz.
12527
12528 slope
12529 Set slope direction of tilt. Default is 0. Allowed range is from -1
12530 to 1.
12531
12532 width
12533 Set width of tilt. Default is 1000. Allowed range is from 100 to
12534 10000.
12535
12536 order
12537 Set order of tilt filter.
12538
12539 level
12540 Set input volume level. Allowed range is from 0 to 4. Defalt is 1.
12541
12542 Commands
12543
12544 This filter supports the all above options as commands.
12545
12546 atrim
12547 Trim the input so that the output contains one continuous subpart of
12548 the input.
12549
12550 It accepts the following parameters:
12551
12552 start
12553 Timestamp (in seconds) of the start of the section to keep. I.e.
12554 the audio sample with the timestamp start will be the first sample
12555 in the output.
12556
12557 end Specify time of the first audio sample that will be dropped, i.e.
12558 the audio sample immediately preceding the one with the timestamp
12559 end will be the last sample in the output.
12560
12561 start_pts
12562 Same as start, except this option sets the start timestamp in
12563 samples instead of seconds.
12564
12565 end_pts
12566 Same as end, except this option sets the end timestamp in samples
12567 instead of seconds.
12568
12569 duration
12570 The maximum duration of the output in seconds.
12571
12572 start_sample
12573 The number of the first sample that should be output.
12574
12575 end_sample
12576 The number of the first sample that should be dropped.
12577
12578 start, end, and duration are expressed as time duration specifications;
12579 see the Time duration section in the ffmpeg-utils(1) manual.
12580
12581 Note that the first two sets of the start/end options and the duration
12582 option look at the frame timestamp, while the _sample options simply
12583 count the samples that pass through the filter. So start/end_pts and
12584 start/end_sample will give different results when the timestamps are
12585 wrong, inexact or do not start at zero. Also note that this filter does
12586 not modify the timestamps. If you wish to have the output timestamps
12587 start at zero, insert the asetpts filter after the atrim filter.
12588
12589 If multiple start or end options are set, this filter tries to be
12590 greedy and keep all samples that match at least one of the specified
12591 constraints. To keep only the part that matches all the constraints at
12592 once, chain multiple atrim filters.
12593
12594 The defaults are such that all the input is kept. So it is possible to
12595 set e.g. just the end values to keep everything before the specified
12596 time.
12597
12598 Examples:
12599
12600 • Drop everything except the second minute of input:
12601
12602 ffmpeg -i INPUT -af atrim=60:120
12603
12604 • Keep only the first 1000 samples:
12605
12606 ffmpeg -i INPUT -af atrim=end_sample=1000
12607
12608 axcorrelate
12609 Calculate normalized windowed cross-correlation between two input audio
12610 streams.
12611
12612 Resulted samples are always between -1 and 1 inclusive. If result is 1
12613 it means two input samples are highly correlated in that selected
12614 segment. Result 0 means they are not correlated at all. If result is
12615 -1 it means two input samples are out of phase, which means they cancel
12616 each other.
12617
12618 The filter accepts the following options:
12619
12620 size
12621 Set size of segment over which cross-correlation is calculated.
12622 Default is 256. Allowed range is from 2 to 131072.
12623
12624 algo
12625 Set algorithm for cross-correlation. Can be "slow" or "fast".
12626 Default is "slow". Fast algorithm assumes mean values over any
12627 given segment are always zero and thus need much less calculations
12628 to make. This is generally not true, but is valid for typical
12629 audio streams.
12630
12631 Examples
12632
12633 • Calculate correlation between channels in stereo audio stream:
12634
12635 ffmpeg -i stereo.wav -af channelsplit,axcorrelate=size=1024:algo=fast correlation.wav
12636
12637 bandpass
12638 Apply a two-pole Butterworth band-pass filter with central frequency
12639 frequency, and (3dB-point) band-width width. The csg option selects a
12640 constant skirt gain (peak gain = Q) instead of the default: constant
12641 0dB peak gain. The filter roll off at 6dB per octave (20dB per
12642 decade).
12643
12644 The filter accepts the following options:
12645
12646 frequency, f
12647 Set the filter's central frequency. Default is 3000.
12648
12649 csg Constant skirt gain if set to 1. Defaults to 0.
12650
12651 width_type, t
12652 Set method to specify band-width of filter.
12653
12654 h Hz
12655
12656 q Q-Factor
12657
12658 o octave
12659
12660 s slope
12661
12662 k kHz
12663
12664 width, w
12665 Specify the band-width of a filter in width_type units.
12666
12667 mix, m
12668 How much to use filtered signal in output. Default is 1. Range is
12669 between 0 and 1.
12670
12671 channels, c
12672 Specify which channels to filter, by default all available are
12673 filtered.
12674
12675 normalize, n
12676 Normalize biquad coefficients, by default is disabled. Enabling it
12677 will normalize magnitude response at DC to 0dB.
12678
12679 transform, a
12680 Set transform type of IIR filter.
12681
12682 di
12683 dii
12684 tdi
12685 tdii
12686 latt
12687 svf
12688 zdf
12689 precision, r
12690 Set precison of filtering.
12691
12692 auto
12693 Pick automatic sample format depending on surround filters.
12694
12695 s16 Always use signed 16-bit.
12696
12697 s32 Always use signed 32-bit.
12698
12699 f32 Always use float 32-bit.
12700
12701 f64 Always use float 64-bit.
12702
12703 block_size, b
12704 Set block size used for reverse IIR processing. If this value is
12705 set to high enough value (higher than impulse response length
12706 truncated when reaches near zero values) filtering will become
12707 linear phase otherwise if not big enough it will just produce nasty
12708 artifacts.
12709
12710 Note that filter delay will be exactly this many samples when set
12711 to non-zero value.
12712
12713 Commands
12714
12715 This filter supports the following commands:
12716
12717 frequency, f
12718 Change bandpass frequency. Syntax for the command is : "frequency"
12719
12720 width_type, t
12721 Change bandpass width_type. Syntax for the command is :
12722 "width_type"
12723
12724 width, w
12725 Change bandpass width. Syntax for the command is : "width"
12726
12727 mix, m
12728 Change bandpass mix. Syntax for the command is : "mix"
12729
12730 bandreject
12731 Apply a two-pole Butterworth band-reject filter with central frequency
12732 frequency, and (3dB-point) band-width width. The filter roll off at
12733 6dB per octave (20dB per decade).
12734
12735 The filter accepts the following options:
12736
12737 frequency, f
12738 Set the filter's central frequency. Default is 3000.
12739
12740 width_type, t
12741 Set method to specify band-width of filter.
12742
12743 h Hz
12744
12745 q Q-Factor
12746
12747 o octave
12748
12749 s slope
12750
12751 k kHz
12752
12753 width, w
12754 Specify the band-width of a filter in width_type units.
12755
12756 mix, m
12757 How much to use filtered signal in output. Default is 1. Range is
12758 between 0 and 1.
12759
12760 channels, c
12761 Specify which channels to filter, by default all available are
12762 filtered.
12763
12764 normalize, n
12765 Normalize biquad coefficients, by default is disabled. Enabling it
12766 will normalize magnitude response at DC to 0dB.
12767
12768 transform, a
12769 Set transform type of IIR filter.
12770
12771 di
12772 dii
12773 tdi
12774 tdii
12775 latt
12776 svf
12777 zdf
12778 precision, r
12779 Set precison of filtering.
12780
12781 auto
12782 Pick automatic sample format depending on surround filters.
12783
12784 s16 Always use signed 16-bit.
12785
12786 s32 Always use signed 32-bit.
12787
12788 f32 Always use float 32-bit.
12789
12790 f64 Always use float 64-bit.
12791
12792 block_size, b
12793 Set block size used for reverse IIR processing. If this value is
12794 set to high enough value (higher than impulse response length
12795 truncated when reaches near zero values) filtering will become
12796 linear phase otherwise if not big enough it will just produce nasty
12797 artifacts.
12798
12799 Note that filter delay will be exactly this many samples when set
12800 to non-zero value.
12801
12802 Commands
12803
12804 This filter supports the following commands:
12805
12806 frequency, f
12807 Change bandreject frequency. Syntax for the command is :
12808 "frequency"
12809
12810 width_type, t
12811 Change bandreject width_type. Syntax for the command is :
12812 "width_type"
12813
12814 width, w
12815 Change bandreject width. Syntax for the command is : "width"
12816
12817 mix, m
12818 Change bandreject mix. Syntax for the command is : "mix"
12819
12820 bass, lowshelf
12821 Boost or cut the bass (lower) frequencies of the audio using a two-pole
12822 shelving filter with a response similar to that of a standard hi-fi's
12823 tone-controls. This is also known as shelving equalisation (EQ).
12824
12825 The filter accepts the following options:
12826
12827 gain, g
12828 Give the gain at 0 Hz. Its useful range is about -20 (for a large
12829 cut) to +20 (for a large boost). Beware of clipping when using a
12830 positive gain.
12831
12832 frequency, f
12833 Set the filter's central frequency and so can be used to extend or
12834 reduce the frequency range to be boosted or cut. The default value
12835 is 100 Hz.
12836
12837 width_type, t
12838 Set method to specify band-width of filter.
12839
12840 h Hz
12841
12842 q Q-Factor
12843
12844 o octave
12845
12846 s slope
12847
12848 k kHz
12849
12850 width, w
12851 Determine how steep is the filter's shelf transition.
12852
12853 poles, p
12854 Set number of poles. Default is 2.
12855
12856 mix, m
12857 How much to use filtered signal in output. Default is 1. Range is
12858 between 0 and 1.
12859
12860 channels, c
12861 Specify which channels to filter, by default all available are
12862 filtered.
12863
12864 normalize, n
12865 Normalize biquad coefficients, by default is disabled. Enabling it
12866 will normalize magnitude response at DC to 0dB.
12867
12868 transform, a
12869 Set transform type of IIR filter.
12870
12871 di
12872 dii
12873 tdi
12874 tdii
12875 latt
12876 svf
12877 zdf
12878 precision, r
12879 Set precison of filtering.
12880
12881 auto
12882 Pick automatic sample format depending on surround filters.
12883
12884 s16 Always use signed 16-bit.
12885
12886 s32 Always use signed 32-bit.
12887
12888 f32 Always use float 32-bit.
12889
12890 f64 Always use float 64-bit.
12891
12892 block_size, b
12893 Set block size used for reverse IIR processing. If this value is
12894 set to high enough value (higher than impulse response length
12895 truncated when reaches near zero values) filtering will become
12896 linear phase otherwise if not big enough it will just produce nasty
12897 artifacts.
12898
12899 Note that filter delay will be exactly this many samples when set
12900 to non-zero value.
12901
12902 Commands
12903
12904 This filter supports the following commands:
12905
12906 frequency, f
12907 Change bass frequency. Syntax for the command is : "frequency"
12908
12909 width_type, t
12910 Change bass width_type. Syntax for the command is : "width_type"
12911
12912 width, w
12913 Change bass width. Syntax for the command is : "width"
12914
12915 gain, g
12916 Change bass gain. Syntax for the command is : "gain"
12917
12918 mix, m
12919 Change bass mix. Syntax for the command is : "mix"
12920
12921 biquad
12922 Apply a biquad IIR filter with the given coefficients. Where b0, b1,
12923 b2 and a0, a1, a2 are the numerator and denominator coefficients
12924 respectively. and channels, c specify which channels to filter, by
12925 default all available are filtered.
12926
12927 Commands
12928
12929 This filter supports the following commands:
12930
12931 a0
12932 a1
12933 a2
12934 b0
12935 b1
12936 b2 Change biquad parameter. Syntax for the command is : "value"
12937
12938 mix, m
12939 How much to use filtered signal in output. Default is 1. Range is
12940 between 0 and 1.
12941
12942 channels, c
12943 Specify which channels to filter, by default all available are
12944 filtered.
12945
12946 normalize, n
12947 Normalize biquad coefficients, by default is disabled. Enabling it
12948 will normalize magnitude response at DC to 0dB.
12949
12950 transform, a
12951 Set transform type of IIR filter.
12952
12953 di
12954 dii
12955 tdi
12956 tdii
12957 latt
12958 svf
12959 zdf
12960 precision, r
12961 Set precison of filtering.
12962
12963 auto
12964 Pick automatic sample format depending on surround filters.
12965
12966 s16 Always use signed 16-bit.
12967
12968 s32 Always use signed 32-bit.
12969
12970 f32 Always use float 32-bit.
12971
12972 f64 Always use float 64-bit.
12973
12974 block_size, b
12975 Set block size used for reverse IIR processing. If this value is
12976 set to high enough value (higher than impulse response length
12977 truncated when reaches near zero values) filtering will become
12978 linear phase otherwise if not big enough it will just produce nasty
12979 artifacts.
12980
12981 Note that filter delay will be exactly this many samples when set
12982 to non-zero value.
12983
12984 bs2b
12985 Bauer stereo to binaural transformation, which improves headphone
12986 listening of stereo audio records.
12987
12988 To enable compilation of this filter you need to configure FFmpeg with
12989 "--enable-libbs2b".
12990
12991 It accepts the following parameters:
12992
12993 profile
12994 Pre-defined crossfeed level.
12995
12996 default
12997 Default level (fcut=700, feed=50).
12998
12999 cmoy
13000 Chu Moy circuit (fcut=700, feed=60).
13001
13002 jmeier
13003 Jan Meier circuit (fcut=650, feed=95).
13004
13005 fcut
13006 Cut frequency (in Hz).
13007
13008 feed
13009 Feed level (in Hz).
13010
13011 channelmap
13012 Remap input channels to new locations.
13013
13014 It accepts the following parameters:
13015
13016 map Map channels from input to output. The argument is a '|'-separated
13017 list of mappings, each in the "in_channel-out_channel" or
13018 in_channel form. in_channel can be either the name of the input
13019 channel (e.g. FL for front left) or its index in the input channel
13020 layout. out_channel is the name of the output channel or its index
13021 in the output channel layout. If out_channel is not given then it
13022 is implicitly an index, starting with zero and increasing by one
13023 for each mapping.
13024
13025 channel_layout
13026 The channel layout of the output stream.
13027
13028 If no mapping is present, the filter will implicitly map input channels
13029 to output channels, preserving indices.
13030
13031 Examples
13032
13033 • For example, assuming a 5.1+downmix input MOV file,
13034
13035 ffmpeg -i in.mov -filter 'channelmap=map=DL-FL|DR-FR' out.wav
13036
13037 will create an output WAV file tagged as stereo from the downmix
13038 channels of the input.
13039
13040 • To fix a 5.1 WAV improperly encoded in AAC's native channel order
13041
13042 ffmpeg -i in.wav -filter 'channelmap=1|2|0|5|3|4:5.1' out.wav
13043
13044 channelsplit
13045 Split each channel from an input audio stream into a separate output
13046 stream.
13047
13048 It accepts the following parameters:
13049
13050 channel_layout
13051 The channel layout of the input stream. The default is "stereo".
13052
13053 channels
13054 A channel layout describing the channels to be extracted as
13055 separate output streams or "all" to extract each input channel as a
13056 separate stream. The default is "all".
13057
13058 Choosing channels not present in channel layout in the input will
13059 result in an error.
13060
13061 Examples
13062
13063 • For example, assuming a stereo input MP3 file,
13064
13065 ffmpeg -i in.mp3 -filter_complex channelsplit out.mkv
13066
13067 will create an output Matroska file with two audio streams, one
13068 containing only the left channel and the other the right channel.
13069
13070 • Split a 5.1 WAV file into per-channel files:
13071
13072 ffmpeg -i in.wav -filter_complex
13073 'channelsplit=channel_layout=5.1[FL][FR][FC][LFE][SL][SR]'
13074 -map '[FL]' front_left.wav -map '[FR]' front_right.wav -map '[FC]'
13075 front_center.wav -map '[LFE]' lfe.wav -map '[SL]' side_left.wav -map '[SR]'
13076 side_right.wav
13077
13078 • Extract only LFE from a 5.1 WAV file:
13079
13080 ffmpeg -i in.wav -filter_complex 'channelsplit=channel_layout=5.1:channels=LFE[LFE]'
13081 -map '[LFE]' lfe.wav
13082
13083 chorus
13084 Add a chorus effect to the audio.
13085
13086 Can make a single vocal sound like a chorus, but can also be applied to
13087 instrumentation.
13088
13089 Chorus resembles an echo effect with a short delay, but whereas with
13090 echo the delay is constant, with chorus, it is varied using using
13091 sinusoidal or triangular modulation. The modulation depth defines the
13092 range the modulated delay is played before or after the delay. Hence
13093 the delayed sound will sound slower or faster, that is the delayed
13094 sound tuned around the original one, like in a chorus where some vocals
13095 are slightly off key.
13096
13097 It accepts the following parameters:
13098
13099 in_gain
13100 Set input gain. Default is 0.4.
13101
13102 out_gain
13103 Set output gain. Default is 0.4.
13104
13105 delays
13106 Set delays. A typical delay is around 40ms to 60ms.
13107
13108 decays
13109 Set decays.
13110
13111 speeds
13112 Set speeds.
13113
13114 depths
13115 Set depths.
13116
13117 Examples
13118
13119 • A single delay:
13120
13121 chorus=0.7:0.9:55:0.4:0.25:2
13122
13123 • Two delays:
13124
13125 chorus=0.6:0.9:50|60:0.4|0.32:0.25|0.4:2|1.3
13126
13127 • Fuller sounding chorus with three delays:
13128
13129 chorus=0.5:0.9:50|60|40:0.4|0.32|0.3:0.25|0.4|0.3:2|2.3|1.3
13130
13131 compand
13132 Compress or expand the audio's dynamic range.
13133
13134 It accepts the following parameters:
13135
13136 attacks
13137 decays
13138 A list of times in seconds for each channel over which the
13139 instantaneous level of the input signal is averaged to determine
13140 its volume. attacks refers to increase of volume and decays refers
13141 to decrease of volume. For most situations, the attack time
13142 (response to the audio getting louder) should be shorter than the
13143 decay time, because the human ear is more sensitive to sudden loud
13144 audio than sudden soft audio. A typical value for attack is 0.3
13145 seconds and a typical value for decay is 0.8 seconds. If specified
13146 number of attacks & decays is lower than number of channels, the
13147 last set attack/decay will be used for all remaining channels.
13148
13149 points
13150 A list of points for the transfer function, specified in dB
13151 relative to the maximum possible signal amplitude. Each key points
13152 list must be defined using the following syntax:
13153 "x0/y0|x1/y1|x2/y2|...." or "x0/y0 x1/y1 x2/y2 ...."
13154
13155 The input values must be in strictly increasing order but the
13156 transfer function does not have to be monotonically rising. The
13157 point "0/0" is assumed but may be overridden (by "0/out-dBn").
13158 Typical values for the transfer function are "-70/-70|-60/-20|1/0".
13159
13160 soft-knee
13161 Set the curve radius in dB for all joints. It defaults to 0.01.
13162
13163 gain
13164 Set the additional gain in dB to be applied at all points on the
13165 transfer function. This allows for easy adjustment of the overall
13166 gain. It defaults to 0.
13167
13168 volume
13169 Set an initial volume, in dB, to be assumed for each channel when
13170 filtering starts. This permits the user to supply a nominal level
13171 initially, so that, for example, a very large gain is not applied
13172 to initial signal levels before the companding has begun to
13173 operate. A typical value for audio which is initially quiet is -90
13174 dB. It defaults to 0.
13175
13176 delay
13177 Set a delay, in seconds. The input audio is analyzed immediately,
13178 but audio is delayed before being fed to the volume adjuster.
13179 Specifying a delay approximately equal to the attack/decay times
13180 allows the filter to effectively operate in predictive rather than
13181 reactive mode. It defaults to 0.
13182
13183 Examples
13184
13185 • Make music with both quiet and loud passages suitable for listening
13186 to in a noisy environment:
13187
13188 compand=.3|.3:1|1:-90/-60|-60/-40|-40/-30|-20/-20:6:0:-90:0.2
13189
13190 Another example for audio with whisper and explosion parts:
13191
13192 compand=0|0:1|1:-90/-900|-70/-70|-30/-9|0/-3:6:0:0:0
13193
13194 • A noise gate for when the noise is at a lower level than the
13195 signal:
13196
13197 compand=.1|.1:.2|.2:-900/-900|-50.1/-900|-50/-50:.01:0:-90:.1
13198
13199 • Here is another noise gate, this time for when the noise is at a
13200 higher level than the signal (making it, in some ways, similar to
13201 squelch):
13202
13203 compand=.1|.1:.1|.1:-45.1/-45.1|-45/-900|0/-900:.01:45:-90:.1
13204
13205 • 2:1 compression starting at -6dB:
13206
13207 compand=points=-80/-80|-6/-6|0/-3.8|20/3.5
13208
13209 • 2:1 compression starting at -9dB:
13210
13211 compand=points=-80/-80|-9/-9|0/-5.3|20/2.9
13212
13213 • 2:1 compression starting at -12dB:
13214
13215 compand=points=-80/-80|-12/-12|0/-6.8|20/1.9
13216
13217 • 2:1 compression starting at -18dB:
13218
13219 compand=points=-80/-80|-18/-18|0/-9.8|20/0.7
13220
13221 • 3:1 compression starting at -15dB:
13222
13223 compand=points=-80/-80|-15/-15|0/-10.8|20/-5.2
13224
13225 • Compressor/Gate:
13226
13227 compand=points=-80/-105|-62/-80|-15.4/-15.4|0/-12|20/-7.6
13228
13229 • Expander:
13230
13231 compand=attacks=0:points=-80/-169|-54/-80|-49.5/-64.6|-41.1/-41.1|-25.8/-15|-10.8/-4.5|0/0|20/8.3
13232
13233 • Hard limiter at -6dB:
13234
13235 compand=attacks=0:points=-80/-80|-6/-6|20/-6
13236
13237 • Hard limiter at -12dB:
13238
13239 compand=attacks=0:points=-80/-80|-12/-12|20/-12
13240
13241 • Hard noise gate at -35 dB:
13242
13243 compand=attacks=0:points=-80/-115|-35.1/-80|-35/-35|20/20
13244
13245 • Soft limiter:
13246
13247 compand=attacks=0:points=-80/-80|-12.4/-12.4|-6/-8|0/-6.8|20/-2.8
13248
13249 compensationdelay
13250 Compensation Delay Line is a metric based delay to compensate differing
13251 positions of microphones or speakers.
13252
13253 For example, you have recorded guitar with two microphones placed in
13254 different locations. Because the front of sound wave has fixed speed in
13255 normal conditions, the phasing of microphones can vary and depends on
13256 their location and interposition. The best sound mix can be achieved
13257 when these microphones are in phase (synchronized). Note that a
13258 distance of ~30 cm between microphones makes one microphone capture the
13259 signal in antiphase to the other microphone. That makes the final mix
13260 sound moody. This filter helps to solve phasing problems by adding
13261 different delays to each microphone track and make them synchronized.
13262
13263 The best result can be reached when you take one track as base and
13264 synchronize other tracks one by one with it. Remember that
13265 synchronization/delay tolerance depends on sample rate, too. Higher
13266 sample rates will give more tolerance.
13267
13268 The filter accepts the following parameters:
13269
13270 mm Set millimeters distance. This is compensation distance for fine
13271 tuning. Default is 0.
13272
13273 cm Set cm distance. This is compensation distance for tightening
13274 distance setup. Default is 0.
13275
13276 m Set meters distance. This is compensation distance for hard
13277 distance setup. Default is 0.
13278
13279 dry Set dry amount. Amount of unprocessed (dry) signal. Default is 0.
13280
13281 wet Set wet amount. Amount of processed (wet) signal. Default is 1.
13282
13283 temp
13284 Set temperature in degrees Celsius. This is the temperature of the
13285 environment. Default is 20.
13286
13287 Commands
13288
13289 This filter supports the all above options as commands.
13290
13291 crossfeed
13292 Apply headphone crossfeed filter.
13293
13294 Crossfeed is the process of blending the left and right channels of
13295 stereo audio recording. It is mainly used to reduce extreme stereo
13296 separation of low frequencies.
13297
13298 The intent is to produce more speaker like sound to the listener.
13299
13300 The filter accepts the following options:
13301
13302 strength
13303 Set strength of crossfeed. Default is 0.2. Allowed range is from 0
13304 to 1. This sets gain of low shelf filter for side part of stereo
13305 image. Default is -6dB. Max allowed is -30db when strength is set
13306 to 1.
13307
13308 range
13309 Set soundstage wideness. Default is 0.5. Allowed range is from 0 to
13310 1. This sets cut off frequency of low shelf filter. Default is cut
13311 off near 1550 Hz. With range set to 1 cut off frequency is set to
13312 2100 Hz.
13313
13314 slope
13315 Set curve slope of low shelf filter. Default is 0.5. Allowed range
13316 is from 0.01 to 1.
13317
13318 level_in
13319 Set input gain. Default is 0.9.
13320
13321 level_out
13322 Set output gain. Default is 1.
13323
13324 block_size
13325 Set block size used for reverse IIR processing. If this value is
13326 set to high enough value (higher than impulse response length
13327 truncated when reaches near zero values) filtering will become
13328 linear phase otherwise if not big enough it will just produce nasty
13329 artifacts.
13330
13331 Note that filter delay will be exactly this many samples when set
13332 to non-zero value.
13333
13334 Commands
13335
13336 This filter supports the all above options as commands.
13337
13338 crystalizer
13339 Simple algorithm for audio noise sharpening.
13340
13341 This filter linearly increases differences betweeen each audio sample.
13342
13343 The filter accepts the following options:
13344
13345 i Sets the intensity of effect (default: 2.0). Must be in range
13346 between -10.0 to 0 (unchanged sound) to 10.0 (maximum effect). To
13347 inverse filtering use negative value.
13348
13349 c Enable clipping. By default is enabled.
13350
13351 Commands
13352
13353 This filter supports the all above options as commands.
13354
13355 dcshift
13356 Apply a DC shift to the audio.
13357
13358 This can be useful to remove a DC offset (caused perhaps by a hardware
13359 problem in the recording chain) from the audio. The effect of a DC
13360 offset is reduced headroom and hence volume. The astats filter can be
13361 used to determine if a signal has a DC offset.
13362
13363 shift
13364 Set the DC shift, allowed range is [-1, 1]. It indicates the amount
13365 to shift the audio.
13366
13367 limitergain
13368 Optional. It should have a value much less than 1 (e.g. 0.05 or
13369 0.02) and is used to prevent clipping.
13370
13371 deesser
13372 Apply de-essing to the audio samples.
13373
13374 i Set intensity for triggering de-essing. Allowed range is from 0 to
13375 1. Default is 0.
13376
13377 m Set amount of ducking on treble part of sound. Allowed range is
13378 from 0 to 1. Default is 0.5.
13379
13380 f How much of original frequency content to keep when de-essing.
13381 Allowed range is from 0 to 1. Default is 0.5.
13382
13383 s Set the output mode.
13384
13385 It accepts the following values:
13386
13387 i Pass input unchanged.
13388
13389 o Pass ess filtered out.
13390
13391 e Pass only ess.
13392
13393 Default value is o.
13394
13395 dialoguenhance
13396 Enhance dialogue in stereo audio.
13397
13398 This filter accepts stereo input and produce surround (3.0) channels
13399 output. The newly produced front center channel have enhanced speech
13400 dialogue originally available in both stereo channels. This filter
13401 outputs front left and front right channels same as available in stereo
13402 input.
13403
13404 The filter accepts the following options:
13405
13406 original
13407 Set the original center factor to keep in front center channel
13408 output. Allowed range is from 0 to 1. Default value is 1.
13409
13410 enhance
13411 Set the dialogue enhance factor to put in front center channel
13412 output. Allowed range is from 0 to 3. Default value is 1.
13413
13414 voice
13415 Set the voice detection factor. Allowed range is from 2 to 32.
13416 Default value is 2.
13417
13418 Commands
13419
13420 This filter supports the all above options as commands.
13421
13422 drmeter
13423 Measure audio dynamic range.
13424
13425 DR values of 14 and higher is found in very dynamic material. DR of 8
13426 to 13 is found in transition material. And anything less that 8 have
13427 very poor dynamics and is very compressed.
13428
13429 The filter accepts the following options:
13430
13431 length
13432 Set window length in seconds used to split audio into segments of
13433 equal length. Default is 3 seconds.
13434
13435 dynaudnorm
13436 Dynamic Audio Normalizer.
13437
13438 This filter applies a certain amount of gain to the input audio in
13439 order to bring its peak magnitude to a target level (e.g. 0 dBFS).
13440 However, in contrast to more "simple" normalization algorithms, the
13441 Dynamic Audio Normalizer *dynamically* re-adjusts the gain factor to
13442 the input audio. This allows for applying extra gain to the "quiet"
13443 sections of the audio while avoiding distortions or clipping the "loud"
13444 sections. In other words: The Dynamic Audio Normalizer will "even out"
13445 the volume of quiet and loud sections, in the sense that the volume of
13446 each section is brought to the same target level. Note, however, that
13447 the Dynamic Audio Normalizer achieves this goal *without* applying
13448 "dynamic range compressing". It will retain 100% of the dynamic range
13449 *within* each section of the audio file.
13450
13451 framelen, f
13452 Set the frame length in milliseconds. In range from 10 to 8000
13453 milliseconds. Default is 500 milliseconds. The Dynamic Audio
13454 Normalizer processes the input audio in small chunks, referred to
13455 as frames. This is required, because a peak magnitude has no
13456 meaning for just a single sample value. Instead, we need to
13457 determine the peak magnitude for a contiguous sequence of sample
13458 values. While a "standard" normalizer would simply use the peak
13459 magnitude of the complete file, the Dynamic Audio Normalizer
13460 determines the peak magnitude individually for each frame. The
13461 length of a frame is specified in milliseconds. By default, the
13462 Dynamic Audio Normalizer uses a frame length of 500 milliseconds,
13463 which has been found to give good results with most files. Note
13464 that the exact frame length, in number of samples, will be
13465 determined automatically, based on the sampling rate of the
13466 individual input audio file.
13467
13468 gausssize, g
13469 Set the Gaussian filter window size. In range from 3 to 301, must
13470 be odd number. Default is 31. Probably the most important
13471 parameter of the Dynamic Audio Normalizer is the "window size" of
13472 the Gaussian smoothing filter. The filter's window size is
13473 specified in frames, centered around the current frame. For the
13474 sake of simplicity, this must be an odd number. Consequently, the
13475 default value of 31 takes into account the current frame, as well
13476 as the 15 preceding frames and the 15 subsequent frames. Using a
13477 larger window results in a stronger smoothing effect and thus in
13478 less gain variation, i.e. slower gain adaptation. Conversely, using
13479 a smaller window results in a weaker smoothing effect and thus in
13480 more gain variation, i.e. faster gain adaptation. In other words,
13481 the more you increase this value, the more the Dynamic Audio
13482 Normalizer will behave like a "traditional" normalization filter.
13483 On the contrary, the more you decrease this value, the more the
13484 Dynamic Audio Normalizer will behave like a dynamic range
13485 compressor.
13486
13487 peak, p
13488 Set the target peak value. This specifies the highest permissible
13489 magnitude level for the normalized audio input. This filter will
13490 try to approach the target peak magnitude as closely as possible,
13491 but at the same time it also makes sure that the normalized signal
13492 will never exceed the peak magnitude. A frame's maximum local gain
13493 factor is imposed directly by the target peak magnitude. The
13494 default value is 0.95 and thus leaves a headroom of 5%*. It is not
13495 recommended to go above this value.
13496
13497 maxgain, m
13498 Set the maximum gain factor. In range from 1.0 to 100.0. Default is
13499 10.0. The Dynamic Audio Normalizer determines the maximum possible
13500 (local) gain factor for each input frame, i.e. the maximum gain
13501 factor that does not result in clipping or distortion. The maximum
13502 gain factor is determined by the frame's highest magnitude sample.
13503 However, the Dynamic Audio Normalizer additionally bounds the
13504 frame's maximum gain factor by a predetermined (global) maximum
13505 gain factor. This is done in order to avoid excessive gain factors
13506 in "silent" or almost silent frames. By default, the maximum gain
13507 factor is 10.0, For most inputs the default value should be
13508 sufficient and it usually is not recommended to increase this
13509 value. Though, for input with an extremely low overall volume
13510 level, it may be necessary to allow even higher gain factors. Note,
13511 however, that the Dynamic Audio Normalizer does not simply apply a
13512 "hard" threshold (i.e. cut off values above the threshold).
13513 Instead, a "sigmoid" threshold function will be applied. This way,
13514 the gain factors will smoothly approach the threshold value, but
13515 never exceed that value.
13516
13517 targetrms, r
13518 Set the target RMS. In range from 0.0 to 1.0. Default is 0.0 -
13519 disabled. By default, the Dynamic Audio Normalizer performs "peak"
13520 normalization. This means that the maximum local gain factor for
13521 each frame is defined (only) by the frame's highest magnitude
13522 sample. This way, the samples can be amplified as much as possible
13523 without exceeding the maximum signal level, i.e. without clipping.
13524 Optionally, however, the Dynamic Audio Normalizer can also take
13525 into account the frame's root mean square, abbreviated RMS. In
13526 electrical engineering, the RMS is commonly used to determine the
13527 power of a time-varying signal. It is therefore considered that the
13528 RMS is a better approximation of the "perceived loudness" than just
13529 looking at the signal's peak magnitude. Consequently, by adjusting
13530 all frames to a constant RMS value, a uniform "perceived loudness"
13531 can be established. If a target RMS value has been specified, a
13532 frame's local gain factor is defined as the factor that would
13533 result in exactly that RMS value. Note, however, that the maximum
13534 local gain factor is still restricted by the frame's highest
13535 magnitude sample, in order to prevent clipping.
13536
13537 coupling, n
13538 Enable channels coupling. By default is enabled. By default, the
13539 Dynamic Audio Normalizer will amplify all channels by the same
13540 amount. This means the same gain factor will be applied to all
13541 channels, i.e. the maximum possible gain factor is determined by
13542 the "loudest" channel. However, in some recordings, it may happen
13543 that the volume of the different channels is uneven, e.g. one
13544 channel may be "quieter" than the other one(s). In this case, this
13545 option can be used to disable the channel coupling. This way, the
13546 gain factor will be determined independently for each channel,
13547 depending only on the individual channel's highest magnitude
13548 sample. This allows for harmonizing the volume of the different
13549 channels.
13550
13551 correctdc, c
13552 Enable DC bias correction. By default is disabled. An audio signal
13553 (in the time domain) is a sequence of sample values. In the
13554 Dynamic Audio Normalizer these sample values are represented in the
13555 -1.0 to 1.0 range, regardless of the original input format.
13556 Normally, the audio signal, or "waveform", should be centered
13557 around the zero point. That means if we calculate the mean value
13558 of all samples in a file, or in a single frame, then the result
13559 should be 0.0 or at least very close to that value. If, however,
13560 there is a significant deviation of the mean value from 0.0, in
13561 either positive or negative direction, this is referred to as a DC
13562 bias or DC offset. Since a DC bias is clearly undesirable, the
13563 Dynamic Audio Normalizer provides optional DC bias correction.
13564 With DC bias correction enabled, the Dynamic Audio Normalizer will
13565 determine the mean value, or "DC correction" offset, of each input
13566 frame and subtract that value from all of the frame's sample values
13567 which ensures those samples are centered around 0.0 again. Also, in
13568 order to avoid "gaps" at the frame boundaries, the DC correction
13569 offset values will be interpolated smoothly between neighbouring
13570 frames.
13571
13572 altboundary, b
13573 Enable alternative boundary mode. By default is disabled. The
13574 Dynamic Audio Normalizer takes into account a certain neighbourhood
13575 around each frame. This includes the preceding frames as well as
13576 the subsequent frames. However, for the "boundary" frames, located
13577 at the very beginning and at the very end of the audio file, not
13578 all neighbouring frames are available. In particular, for the first
13579 few frames in the audio file, the preceding frames are not known.
13580 And, similarly, for the last few frames in the audio file, the
13581 subsequent frames are not known. Thus, the question arises which
13582 gain factors should be assumed for the missing frames in the
13583 "boundary" region. The Dynamic Audio Normalizer implements two
13584 modes to deal with this situation. The default boundary mode
13585 assumes a gain factor of exactly 1.0 for the missing frames,
13586 resulting in a smooth "fade in" and "fade out" at the beginning and
13587 at the end of the input, respectively.
13588
13589 compress, s
13590 Set the compress factor. In range from 0.0 to 30.0. Default is 0.0.
13591 By default, the Dynamic Audio Normalizer does not apply
13592 "traditional" compression. This means that signal peaks will not be
13593 pruned and thus the full dynamic range will be retained within each
13594 local neighbourhood. However, in some cases it may be desirable to
13595 combine the Dynamic Audio Normalizer's normalization algorithm with
13596 a more "traditional" compression. For this purpose, the Dynamic
13597 Audio Normalizer provides an optional compression (thresholding)
13598 function. If (and only if) the compression feature is enabled, all
13599 input frames will be processed by a soft knee thresholding function
13600 prior to the actual normalization process. Put simply, the
13601 thresholding function is going to prune all samples whose magnitude
13602 exceeds a certain threshold value. However, the Dynamic Audio
13603 Normalizer does not simply apply a fixed threshold value. Instead,
13604 the threshold value will be adjusted for each individual frame. In
13605 general, smaller parameters result in stronger compression, and
13606 vice versa. Values below 3.0 are not recommended, because audible
13607 distortion may appear.
13608
13609 threshold, t
13610 Set the target threshold value. This specifies the lowest
13611 permissible magnitude level for the audio input which will be
13612 normalized. If input frame volume is above this value frame will
13613 be normalized. Otherwise frame may not be normalized at all. The
13614 default value is set to 0, which means all input frames will be
13615 normalized. This option is mostly useful if digital noise is not
13616 wanted to be amplified.
13617
13618 channels, h
13619 Specify which channels to filter, by default all available channels
13620 are filtered.
13621
13622 overlap, o
13623 Specify overlap for frames. If set to 0 (default) no frame
13624 overlapping is done. Using >0 and <1 values will make less
13625 conservative gain adjustments, like when framelen option is set to
13626 smaller value, if framelen option value is compensated for non-zero
13627 overlap then gain adjustments will be smoother across time compared
13628 to zero overlap case.
13629
13630 curve, v
13631 Specify the peak mapping curve expression which is going to be used
13632 when calculating gain applied to frames. The max output frame gain
13633 will still be limited by other options mentioned previously for
13634 this filter.
13635
13636 The expression can contain the following constants:
13637
13638 ch current channel number
13639
13640 sn current sample number
13641
13642 nb_channels
13643 number of channels
13644
13645 t timestamp expressed in seconds
13646
13647 sr sample rate
13648
13649 p current frame peak value
13650
13651 Commands
13652
13653 This filter supports the all above options as commands.
13654
13655 earwax
13656 Make audio easier to listen to on headphones.
13657
13658 This filter adds `cues' to 44.1kHz stereo (i.e. audio CD format) audio
13659 so that when listened to on headphones the stereo image is moved from
13660 inside your head (standard for headphones) to outside and in front of
13661 the listener (standard for speakers).
13662
13663 Ported from SoX.
13664
13665 equalizer
13666 Apply a two-pole peaking equalisation (EQ) filter. With this filter,
13667 the signal-level at and around a selected frequency can be increased or
13668 decreased, whilst (unlike bandpass and bandreject filters) that at all
13669 other frequencies is unchanged.
13670
13671 In order to produce complex equalisation curves, this filter can be
13672 given several times, each with a different central frequency.
13673
13674 The filter accepts the following options:
13675
13676 frequency, f
13677 Set the filter's central frequency in Hz.
13678
13679 width_type, t
13680 Set method to specify band-width of filter.
13681
13682 h Hz
13683
13684 q Q-Factor
13685
13686 o octave
13687
13688 s slope
13689
13690 k kHz
13691
13692 width, w
13693 Specify the band-width of a filter in width_type units.
13694
13695 gain, g
13696 Set the required gain or attenuation in dB. Beware of clipping
13697 when using a positive gain.
13698
13699 mix, m
13700 How much to use filtered signal in output. Default is 1. Range is
13701 between 0 and 1.
13702
13703 channels, c
13704 Specify which channels to filter, by default all available are
13705 filtered.
13706
13707 normalize, n
13708 Normalize biquad coefficients, by default is disabled. Enabling it
13709 will normalize magnitude response at DC to 0dB.
13710
13711 transform, a
13712 Set transform type of IIR filter.
13713
13714 di
13715 dii
13716 tdi
13717 tdii
13718 latt
13719 svf
13720 zdf
13721 precision, r
13722 Set precison of filtering.
13723
13724 auto
13725 Pick automatic sample format depending on surround filters.
13726
13727 s16 Always use signed 16-bit.
13728
13729 s32 Always use signed 32-bit.
13730
13731 f32 Always use float 32-bit.
13732
13733 f64 Always use float 64-bit.
13734
13735 block_size, b
13736 Set block size used for reverse IIR processing. If this value is
13737 set to high enough value (higher than impulse response length
13738 truncated when reaches near zero values) filtering will become
13739 linear phase otherwise if not big enough it will just produce nasty
13740 artifacts.
13741
13742 Note that filter delay will be exactly this many samples when set
13743 to non-zero value.
13744
13745 Examples
13746
13747 • Attenuate 10 dB at 1000 Hz, with a bandwidth of 200 Hz:
13748
13749 equalizer=f=1000:t=h:width=200:g=-10
13750
13751 • Apply 2 dB gain at 1000 Hz with Q 1 and attenuate 5 dB at 100 Hz
13752 with Q 2:
13753
13754 equalizer=f=1000:t=q:w=1:g=2,equalizer=f=100:t=q:w=2:g=-5
13755
13756 Commands
13757
13758 This filter supports the following commands:
13759
13760 frequency, f
13761 Change equalizer frequency. Syntax for the command is :
13762 "frequency"
13763
13764 width_type, t
13765 Change equalizer width_type. Syntax for the command is :
13766 "width_type"
13767
13768 width, w
13769 Change equalizer width. Syntax for the command is : "width"
13770
13771 gain, g
13772 Change equalizer gain. Syntax for the command is : "gain"
13773
13774 mix, m
13775 Change equalizer mix. Syntax for the command is : "mix"
13776
13777 extrastereo
13778 Linearly increases the difference between left and right channels which
13779 adds some sort of "live" effect to playback.
13780
13781 The filter accepts the following options:
13782
13783 m Sets the difference coefficient (default: 2.5). 0.0 means mono
13784 sound (average of both channels), with 1.0 sound will be unchanged,
13785 with -1.0 left and right channels will be swapped.
13786
13787 c Enable clipping. By default is enabled.
13788
13789 Commands
13790
13791 This filter supports the all above options as commands.
13792
13793 firequalizer
13794 Apply FIR Equalization using arbitrary frequency response.
13795
13796 The filter accepts the following option:
13797
13798 gain
13799 Set gain curve equation (in dB). The expression can contain
13800 variables:
13801
13802 f the evaluated frequency
13803
13804 sr sample rate
13805
13806 ch channel number, set to 0 when multichannels evaluation is
13807 disabled
13808
13809 chid
13810 channel id, see libavutil/channel_layout.h, set to the first
13811 channel id when multichannels evaluation is disabled
13812
13813 chs number of channels
13814
13815 chlayout
13816 channel_layout, see libavutil/channel_layout.h
13817
13818 and functions:
13819
13820 gain_interpolate(f)
13821 interpolate gain on frequency f based on gain_entry
13822
13823 cubic_interpolate(f)
13824 same as gain_interpolate, but smoother
13825
13826 This option is also available as command. Default is
13827 gain_interpolate(f).
13828
13829 gain_entry
13830 Set gain entry for gain_interpolate function. The expression can
13831 contain functions:
13832
13833 entry(f, g)
13834 store gain entry at frequency f with value g
13835
13836 This option is also available as command.
13837
13838 delay
13839 Set filter delay in seconds. Higher value means more accurate.
13840 Default is 0.01.
13841
13842 accuracy
13843 Set filter accuracy in Hz. Lower value means more accurate.
13844 Default is 5.
13845
13846 wfunc
13847 Set window function. Acceptable values are:
13848
13849 rectangular
13850 rectangular window, useful when gain curve is already smooth
13851
13852 hann
13853 hann window (default)
13854
13855 hamming
13856 hamming window
13857
13858 blackman
13859 blackman window
13860
13861 nuttall3
13862 3-terms continuous 1st derivative nuttall window
13863
13864 mnuttall3
13865 minimum 3-terms discontinuous nuttall window
13866
13867 nuttall
13868 4-terms continuous 1st derivative nuttall window
13869
13870 bnuttall
13871 minimum 4-terms discontinuous nuttall (blackman-nuttall) window
13872
13873 bharris
13874 blackman-harris window
13875
13876 tukey
13877 tukey window
13878
13879 fixed
13880 If enabled, use fixed number of audio samples. This improves speed
13881 when filtering with large delay. Default is disabled.
13882
13883 multi
13884 Enable multichannels evaluation on gain. Default is disabled.
13885
13886 zero_phase
13887 Enable zero phase mode by subtracting timestamp to compensate
13888 delay. Default is disabled.
13889
13890 scale
13891 Set scale used by gain. Acceptable values are:
13892
13893 linlin
13894 linear frequency, linear gain
13895
13896 linlog
13897 linear frequency, logarithmic (in dB) gain (default)
13898
13899 loglin
13900 logarithmic (in octave scale where 20 Hz is 0) frequency,
13901 linear gain
13902
13903 loglog
13904 logarithmic frequency, logarithmic gain
13905
13906 dumpfile
13907 Set file for dumping, suitable for gnuplot.
13908
13909 dumpscale
13910 Set scale for dumpfile. Acceptable values are same with scale
13911 option. Default is linlog.
13912
13913 fft2
13914 Enable 2-channel convolution using complex FFT. This improves speed
13915 significantly. Default is disabled.
13916
13917 min_phase
13918 Enable minimum phase impulse response. Default is disabled.
13919
13920 Examples
13921
13922 • lowpass at 1000 Hz:
13923
13924 firequalizer=gain='if(lt(f,1000), 0, -INF)'
13925
13926 • lowpass at 1000 Hz with gain_entry:
13927
13928 firequalizer=gain_entry='entry(1000,0); entry(1001, -INF)'
13929
13930 • custom equalization:
13931
13932 firequalizer=gain_entry='entry(100,0); entry(400, -4); entry(1000, -6); entry(2000, 0)'
13933
13934 • higher delay with zero phase to compensate delay:
13935
13936 firequalizer=delay=0.1:fixed=on:zero_phase=on
13937
13938 • lowpass on left channel, highpass on right channel:
13939
13940 firequalizer=gain='if(eq(chid,1), gain_interpolate(f), if(eq(chid,2), gain_interpolate(1e6+f), 0))'
13941 :gain_entry='entry(1000, 0); entry(1001,-INF); entry(1e6+1000,0)':multi=on
13942
13943 flanger
13944 Apply a flanging effect to the audio.
13945
13946 The filter accepts the following options:
13947
13948 delay
13949 Set base delay in milliseconds. Range from 0 to 30. Default value
13950 is 0.
13951
13952 depth
13953 Set added sweep delay in milliseconds. Range from 0 to 10. Default
13954 value is 2.
13955
13956 regen
13957 Set percentage regeneration (delayed signal feedback). Range from
13958 -95 to 95. Default value is 0.
13959
13960 width
13961 Set percentage of delayed signal mixed with original. Range from 0
13962 to 100. Default value is 71.
13963
13964 speed
13965 Set sweeps per second (Hz). Range from 0.1 to 10. Default value is
13966 0.5.
13967
13968 shape
13969 Set swept wave shape, can be triangular or sinusoidal. Default
13970 value is sinusoidal.
13971
13972 phase
13973 Set swept wave percentage-shift for multi channel. Range from 0 to
13974 100. Default value is 25.
13975
13976 interp
13977 Set delay-line interpolation, linear or quadratic. Default is
13978 linear.
13979
13980 haas
13981 Apply Haas effect to audio.
13982
13983 Note that this makes most sense to apply on mono signals. With this
13984 filter applied to mono signals it give some directionality and
13985 stretches its stereo image.
13986
13987 The filter accepts the following options:
13988
13989 level_in
13990 Set input level. By default is 1, or 0dB
13991
13992 level_out
13993 Set output level. By default is 1, or 0dB.
13994
13995 side_gain
13996 Set gain applied to side part of signal. By default is 1.
13997
13998 middle_source
13999 Set kind of middle source. Can be one of the following:
14000
14001 left
14002 Pick left channel.
14003
14004 right
14005 Pick right channel.
14006
14007 mid Pick middle part signal of stereo image.
14008
14009 side
14010 Pick side part signal of stereo image.
14011
14012 middle_phase
14013 Change middle phase. By default is disabled.
14014
14015 left_delay
14016 Set left channel delay. By default is 2.05 milliseconds.
14017
14018 left_balance
14019 Set left channel balance. By default is -1.
14020
14021 left_gain
14022 Set left channel gain. By default is 1.
14023
14024 left_phase
14025 Change left phase. By default is disabled.
14026
14027 right_delay
14028 Set right channel delay. By defaults is 2.12 milliseconds.
14029
14030 right_balance
14031 Set right channel balance. By default is 1.
14032
14033 right_gain
14034 Set right channel gain. By default is 1.
14035
14036 right_phase
14037 Change right phase. By default is enabled.
14038
14039 hdcd
14040 Decodes High Definition Compatible Digital (HDCD) data. A 16-bit PCM
14041 stream with embedded HDCD codes is expanded into a 20-bit PCM stream.
14042
14043 The filter supports the Peak Extend and Low-level Gain Adjustment
14044 features of HDCD, and detects the Transient Filter flag.
14045
14046 ffmpeg -i HDCD16.flac -af hdcd OUT24.flac
14047
14048 When using the filter with wav, note the default encoding for wav is
14049 16-bit, so the resulting 20-bit stream will be truncated back to
14050 16-bit. Use something like -acodec pcm_s24le after the filter to get
14051 24-bit PCM output.
14052
14053 ffmpeg -i HDCD16.wav -af hdcd OUT16.wav
14054 ffmpeg -i HDCD16.wav -af hdcd -c:a pcm_s24le OUT24.wav
14055
14056 The filter accepts the following options:
14057
14058 disable_autoconvert
14059 Disable any automatic format conversion or resampling in the filter
14060 graph.
14061
14062 process_stereo
14063 Process the stereo channels together. If target_gain does not match
14064 between channels, consider it invalid and use the last valid
14065 target_gain.
14066
14067 cdt_ms
14068 Set the code detect timer period in ms.
14069
14070 force_pe
14071 Always extend peaks above -3dBFS even if PE isn't signaled.
14072
14073 analyze_mode
14074 Replace audio with a solid tone and adjust the amplitude to signal
14075 some specific aspect of the decoding process. The output file can
14076 be loaded in an audio editor alongside the original to aid
14077 analysis.
14078
14079 "analyze_mode=pe:force_pe=true" can be used to see all samples
14080 above the PE level.
14081
14082 Modes are:
14083
14084 0, off
14085 Disabled
14086
14087 1, lle
14088 Gain adjustment level at each sample
14089
14090 2, pe
14091 Samples where peak extend occurs
14092
14093 3, cdt
14094 Samples where the code detect timer is active
14095
14096 4, tgm
14097 Samples where the target gain does not match between channels
14098
14099 headphone
14100 Apply head-related transfer functions (HRTFs) to create virtual
14101 loudspeakers around the user for binaural listening via headphones.
14102 The HRIRs are provided via additional streams, for each channel one
14103 stereo input stream is needed.
14104
14105 The filter accepts the following options:
14106
14107 map Set mapping of input streams for convolution. The argument is a
14108 '|'-separated list of channel names in order as they are given as
14109 additional stream inputs for filter. This also specify number of
14110 input streams. Number of input streams must be not less than number
14111 of channels in first stream plus one.
14112
14113 gain
14114 Set gain applied to audio. Value is in dB. Default is 0.
14115
14116 type
14117 Set processing type. Can be time or freq. time is processing audio
14118 in time domain which is slow. freq is processing audio in
14119 frequency domain which is fast. Default is freq.
14120
14121 lfe Set custom gain for LFE channels. Value is in dB. Default is 0.
14122
14123 size
14124 Set size of frame in number of samples which will be processed at
14125 once. Default value is 1024. Allowed range is from 1024 to 96000.
14126
14127 hrir
14128 Set format of hrir stream. Default value is stereo. Alternative
14129 value is multich. If value is set to stereo, number of additional
14130 streams should be greater or equal to number of input channels in
14131 first input stream. Also each additional stream should have stereo
14132 number of channels. If value is set to multich, number of
14133 additional streams should be exactly one. Also number of input
14134 channels of additional stream should be equal or greater than twice
14135 number of channels of first input stream.
14136
14137 Examples
14138
14139 • Full example using wav files as coefficients with amovie filters
14140 for 7.1 downmix, each amovie filter use stereo file with IR
14141 coefficients as input. The files give coefficients for each
14142 position of virtual loudspeaker:
14143
14144 ffmpeg -i input.wav
14145 -filter_complex "amovie=azi_270_ele_0_DFC.wav[sr];amovie=azi_90_ele_0_DFC.wav[sl];amovie=azi_225_ele_0_DFC.wav[br];amovie=azi_135_ele_0_DFC.wav[bl];amovie=azi_0_ele_0_DFC.wav,asplit[fc][lfe];amovie=azi_35_ele_0_DFC.wav[fl];amovie=azi_325_ele_0_DFC.wav[fr];[0:a][fl][fr][fc][lfe][bl][br][sl][sr]headphone=FL|FR|FC|LFE|BL|BR|SL|SR"
14146 output.wav
14147
14148 • Full example using wav files as coefficients with amovie filters
14149 for 7.1 downmix, but now in multich hrir format.
14150
14151 ffmpeg -i input.wav -filter_complex "amovie=minp.wav[hrirs];[0:a][hrirs]headphone=map=FL|FR|FC|LFE|BL|BR|SL|SR:hrir=multich"
14152 output.wav
14153
14154 highpass
14155 Apply a high-pass filter with 3dB point frequency. The filter can be
14156 either single-pole, or double-pole (the default). The filter roll off
14157 at 6dB per pole per octave (20dB per pole per decade).
14158
14159 The filter accepts the following options:
14160
14161 frequency, f
14162 Set frequency in Hz. Default is 3000.
14163
14164 poles, p
14165 Set number of poles. Default is 2.
14166
14167 width_type, t
14168 Set method to specify band-width of filter.
14169
14170 h Hz
14171
14172 q Q-Factor
14173
14174 o octave
14175
14176 s slope
14177
14178 k kHz
14179
14180 width, w
14181 Specify the band-width of a filter in width_type units. Applies
14182 only to double-pole filter. The default is 0.707q and gives a
14183 Butterworth response.
14184
14185 mix, m
14186 How much to use filtered signal in output. Default is 1. Range is
14187 between 0 and 1.
14188
14189 channels, c
14190 Specify which channels to filter, by default all available are
14191 filtered.
14192
14193 normalize, n
14194 Normalize biquad coefficients, by default is disabled. Enabling it
14195 will normalize magnitude response at DC to 0dB.
14196
14197 transform, a
14198 Set transform type of IIR filter.
14199
14200 di
14201 dii
14202 tdi
14203 tdii
14204 latt
14205 svf
14206 zdf
14207 precision, r
14208 Set precison of filtering.
14209
14210 auto
14211 Pick automatic sample format depending on surround filters.
14212
14213 s16 Always use signed 16-bit.
14214
14215 s32 Always use signed 32-bit.
14216
14217 f32 Always use float 32-bit.
14218
14219 f64 Always use float 64-bit.
14220
14221 block_size, b
14222 Set block size used for reverse IIR processing. If this value is
14223 set to high enough value (higher than impulse response length
14224 truncated when reaches near zero values) filtering will become
14225 linear phase otherwise if not big enough it will just produce nasty
14226 artifacts.
14227
14228 Note that filter delay will be exactly this many samples when set
14229 to non-zero value.
14230
14231 Commands
14232
14233 This filter supports the following commands:
14234
14235 frequency, f
14236 Change highpass frequency. Syntax for the command is : "frequency"
14237
14238 width_type, t
14239 Change highpass width_type. Syntax for the command is :
14240 "width_type"
14241
14242 width, w
14243 Change highpass width. Syntax for the command is : "width"
14244
14245 mix, m
14246 Change highpass mix. Syntax for the command is : "mix"
14247
14248 join
14249 Join multiple input streams into one multi-channel stream.
14250
14251 It accepts the following parameters:
14252
14253 inputs
14254 The number of input streams. It defaults to 2.
14255
14256 channel_layout
14257 The desired output channel layout. It defaults to stereo.
14258
14259 map Map channels from inputs to output. The argument is a '|'-separated
14260 list of mappings, each in the "input_idx.in_channel-out_channel"
14261 form. input_idx is the 0-based index of the input stream.
14262 in_channel can be either the name of the input channel (e.g. FL for
14263 front left) or its index in the specified input stream. out_channel
14264 is the name of the output channel.
14265
14266 The filter will attempt to guess the mappings when they are not
14267 specified explicitly. It does so by first trying to find an unused
14268 matching input channel and if that fails it picks the first unused
14269 input channel.
14270
14271 Join 3 inputs (with properly set channel layouts):
14272
14273 ffmpeg -i INPUT1 -i INPUT2 -i INPUT3 -filter_complex join=inputs=3 OUTPUT
14274
14275 Build a 5.1 output from 6 single-channel streams:
14276
14277 ffmpeg -i fl -i fr -i fc -i sl -i sr -i lfe -filter_complex
14278 'join=inputs=6:channel_layout=5.1:map=0.0-FL|1.0-FR|2.0-FC|3.0-SL|4.0-SR|5.0-LFE'
14279 out
14280
14281 ladspa
14282 Load a LADSPA (Linux Audio Developer's Simple Plugin API) plugin.
14283
14284 To enable compilation of this filter you need to configure FFmpeg with
14285 "--enable-ladspa".
14286
14287 file, f
14288 Specifies the name of LADSPA plugin library to load. If the
14289 environment variable LADSPA_PATH is defined, the LADSPA plugin is
14290 searched in each one of the directories specified by the colon
14291 separated list in LADSPA_PATH, otherwise in the standard LADSPA
14292 paths, which are in this order: HOME/.ladspa/lib/,
14293 /usr/local/lib/ladspa/, /usr/lib/ladspa/.
14294
14295 plugin, p
14296 Specifies the plugin within the library. Some libraries contain
14297 only one plugin, but others contain many of them. If this is not
14298 set filter will list all available plugins within the specified
14299 library.
14300
14301 controls, c
14302 Set the '|' separated list of controls which are zero or more
14303 floating point values that determine the behavior of the loaded
14304 plugin (for example delay, threshold or gain). Controls need to be
14305 defined using the following syntax:
14306 c0=value0|c1=value1|c2=value2|..., where valuei is the value set on
14307 the i-th control. Alternatively they can be also defined using the
14308 following syntax: value0|value1|value2|..., where valuei is the
14309 value set on the i-th control. If controls is set to "help", all
14310 available controls and their valid ranges are printed.
14311
14312 sample_rate, s
14313 Specify the sample rate, default to 44100. Only used if plugin have
14314 zero inputs.
14315
14316 nb_samples, n
14317 Set the number of samples per channel per each output frame,
14318 default is 1024. Only used if plugin have zero inputs.
14319
14320 duration, d
14321 Set the minimum duration of the sourced audio. See the Time
14322 duration section in the ffmpeg-utils(1) manual for the accepted
14323 syntax. Note that the resulting duration may be greater than the
14324 specified duration, as the generated audio is always cut at the end
14325 of a complete frame. If not specified, or the expressed duration
14326 is negative, the audio is supposed to be generated forever. Only
14327 used if plugin have zero inputs.
14328
14329 latency, l
14330 Enable latency compensation, by default is disabled. Only used if
14331 plugin have inputs.
14332
14333 Examples
14334
14335 • List all available plugins within amp (LADSPA example plugin)
14336 library:
14337
14338 ladspa=file=amp
14339
14340 • List all available controls and their valid ranges for "vcf_notch"
14341 plugin from "VCF" library:
14342
14343 ladspa=f=vcf:p=vcf_notch:c=help
14344
14345 • Simulate low quality audio equipment using "Computer Music Toolkit"
14346 (CMT) plugin library:
14347
14348 ladspa=file=cmt:plugin=lofi:controls=c0=22|c1=12|c2=12
14349
14350 • Add reverberation to the audio using TAP-plugins (Tom's Audio
14351 Processing plugins):
14352
14353 ladspa=file=tap_reverb:tap_reverb
14354
14355 • Generate white noise, with 0.2 amplitude:
14356
14357 ladspa=file=cmt:noise_source_white:c=c0=.2
14358
14359 • Generate 20 bpm clicks using plugin "C* Click - Metronome" from the
14360 "C* Audio Plugin Suite" (CAPS) library:
14361
14362 ladspa=file=caps:Click:c=c1=20'
14363
14364 • Apply "C* Eq10X2 - Stereo 10-band equaliser" effect:
14365
14366 ladspa=caps:Eq10X2:c=c0=-48|c9=-24|c3=12|c4=2
14367
14368 • Increase volume by 20dB using fast lookahead limiter from Steve
14369 Harris "SWH Plugins" collection:
14370
14371 ladspa=fast_lookahead_limiter_1913:fastLookaheadLimiter:20|0|2
14372
14373 • Attenuate low frequencies using Multiband EQ from Steve Harris "SWH
14374 Plugins" collection:
14375
14376 ladspa=mbeq_1197:mbeq:-24|-24|-24|0|0|0|0|0|0|0|0|0|0|0|0
14377
14378 • Reduce stereo image using "Narrower" from the "C* Audio Plugin
14379 Suite" (CAPS) library:
14380
14381 ladspa=caps:Narrower
14382
14383 • Another white noise, now using "C* Audio Plugin Suite" (CAPS)
14384 library:
14385
14386 ladspa=caps:White:.2
14387
14388 • Some fractal noise, using "C* Audio Plugin Suite" (CAPS) library:
14389
14390 ladspa=caps:Fractal:c=c1=1
14391
14392 • Dynamic volume normalization using "VLevel" plugin:
14393
14394 ladspa=vlevel-ladspa:vlevel_mono
14395
14396 Commands
14397
14398 This filter supports the following commands:
14399
14400 cN Modify the N-th control value.
14401
14402 If the specified value is not valid, it is ignored and prior one is
14403 kept.
14404
14405 loudnorm
14406 EBU R128 loudness normalization. Includes both dynamic and linear
14407 normalization modes. Support for both single pass (livestreams, files)
14408 and double pass (files) modes. This algorithm can target IL, LRA, and
14409 maximum true peak. In dynamic mode, to accurately detect true peaks,
14410 the audio stream will be upsampled to 192 kHz. Use the "-ar" option or
14411 "aresample" filter to explicitly set an output sample rate.
14412
14413 The filter accepts the following options:
14414
14415 I, i
14416 Set integrated loudness target. Range is -70.0 - -5.0. Default
14417 value is -24.0.
14418
14419 LRA, lra
14420 Set loudness range target. Range is 1.0 - 50.0. Default value is
14421 7.0.
14422
14423 TP, tp
14424 Set maximum true peak. Range is -9.0 - +0.0. Default value is
14425 -2.0.
14426
14427 measured_I, measured_i
14428 Measured IL of input file. Range is -99.0 - +0.0.
14429
14430 measured_LRA, measured_lra
14431 Measured LRA of input file. Range is 0.0 - 99.0.
14432
14433 measured_TP, measured_tp
14434 Measured true peak of input file. Range is -99.0 - +99.0.
14435
14436 measured_thresh
14437 Measured threshold of input file. Range is -99.0 - +0.0.
14438
14439 offset
14440 Set offset gain. Gain is applied before the true-peak limiter.
14441 Range is -99.0 - +99.0. Default is +0.0.
14442
14443 linear
14444 Normalize by linearly scaling the source audio. "measured_I",
14445 "measured_LRA", "measured_TP", and "measured_thresh" must all be
14446 specified. Target LRA shouldn't be lower than source LRA and the
14447 change in integrated loudness shouldn't result in a true peak which
14448 exceeds the target TP. If any of these conditions aren't met,
14449 normalization mode will revert to dynamic. Options are "true" or
14450 "false". Default is "true".
14451
14452 dual_mono
14453 Treat mono input files as "dual-mono". If a mono file is intended
14454 for playback on a stereo system, its EBU R128 measurement will be
14455 perceptually incorrect. If set to "true", this option will
14456 compensate for this effect. Multi-channel input files are not
14457 affected by this option. Options are true or false. Default is
14458 false.
14459
14460 print_format
14461 Set print format for stats. Options are summary, json, or none.
14462 Default value is none.
14463
14464 lowpass
14465 Apply a low-pass filter with 3dB point frequency. The filter can be
14466 either single-pole or double-pole (the default). The filter roll off
14467 at 6dB per pole per octave (20dB per pole per decade).
14468
14469 The filter accepts the following options:
14470
14471 frequency, f
14472 Set frequency in Hz. Default is 500.
14473
14474 poles, p
14475 Set number of poles. Default is 2.
14476
14477 width_type, t
14478 Set method to specify band-width of filter.
14479
14480 h Hz
14481
14482 q Q-Factor
14483
14484 o octave
14485
14486 s slope
14487
14488 k kHz
14489
14490 width, w
14491 Specify the band-width of a filter in width_type units. Applies
14492 only to double-pole filter. The default is 0.707q and gives a
14493 Butterworth response.
14494
14495 mix, m
14496 How much to use filtered signal in output. Default is 1. Range is
14497 between 0 and 1.
14498
14499 channels, c
14500 Specify which channels to filter, by default all available are
14501 filtered.
14502
14503 normalize, n
14504 Normalize biquad coefficients, by default is disabled. Enabling it
14505 will normalize magnitude response at DC to 0dB.
14506
14507 transform, a
14508 Set transform type of IIR filter.
14509
14510 di
14511 dii
14512 tdi
14513 tdii
14514 latt
14515 svf
14516 zdf
14517 precision, r
14518 Set precison of filtering.
14519
14520 auto
14521 Pick automatic sample format depending on surround filters.
14522
14523 s16 Always use signed 16-bit.
14524
14525 s32 Always use signed 32-bit.
14526
14527 f32 Always use float 32-bit.
14528
14529 f64 Always use float 64-bit.
14530
14531 block_size, b
14532 Set block size used for reverse IIR processing. If this value is
14533 set to high enough value (higher than impulse response length
14534 truncated when reaches near zero values) filtering will become
14535 linear phase otherwise if not big enough it will just produce nasty
14536 artifacts.
14537
14538 Note that filter delay will be exactly this many samples when set
14539 to non-zero value.
14540
14541 Examples
14542
14543 • Lowpass only LFE channel, it LFE is not present it does nothing:
14544
14545 lowpass=c=LFE
14546
14547 Commands
14548
14549 This filter supports the following commands:
14550
14551 frequency, f
14552 Change lowpass frequency. Syntax for the command is : "frequency"
14553
14554 width_type, t
14555 Change lowpass width_type. Syntax for the command is :
14556 "width_type"
14557
14558 width, w
14559 Change lowpass width. Syntax for the command is : "width"
14560
14561 mix, m
14562 Change lowpass mix. Syntax for the command is : "mix"
14563
14564 lv2
14565 Load a LV2 (LADSPA Version 2) plugin.
14566
14567 To enable compilation of this filter you need to configure FFmpeg with
14568 "--enable-lv2".
14569
14570 plugin, p
14571 Specifies the plugin URI. You may need to escape ':'.
14572
14573 controls, c
14574 Set the '|' separated list of controls which are zero or more
14575 floating point values that determine the behavior of the loaded
14576 plugin (for example delay, threshold or gain). If controls is set
14577 to "help", all available controls and their valid ranges are
14578 printed.
14579
14580 sample_rate, s
14581 Specify the sample rate, default to 44100. Only used if plugin have
14582 zero inputs.
14583
14584 nb_samples, n
14585 Set the number of samples per channel per each output frame,
14586 default is 1024. Only used if plugin have zero inputs.
14587
14588 duration, d
14589 Set the minimum duration of the sourced audio. See the Time
14590 duration section in the ffmpeg-utils(1) manual for the accepted
14591 syntax. Note that the resulting duration may be greater than the
14592 specified duration, as the generated audio is always cut at the end
14593 of a complete frame. If not specified, or the expressed duration
14594 is negative, the audio is supposed to be generated forever. Only
14595 used if plugin have zero inputs.
14596
14597 Examples
14598
14599 • Apply bass enhancer plugin from Calf:
14600
14601 lv2=p=http\\\\://calf.sourceforge.net/plugins/BassEnhancer:c=amount=2
14602
14603 • Apply vinyl plugin from Calf:
14604
14605 lv2=p=http\\\\://calf.sourceforge.net/plugins/Vinyl:c=drone=0.2|aging=0.5
14606
14607 • Apply bit crusher plugin from ArtyFX:
14608
14609 lv2=p=http\\\\://www.openavproductions.com/artyfx#bitta:c=crush=0.3
14610
14611 Commands
14612
14613 This filter supports all options that are exported by plugin as
14614 commands.
14615
14616 mcompand
14617 Multiband Compress or expand the audio's dynamic range.
14618
14619 The input audio is divided into bands using 4th order Linkwitz-Riley
14620 IIRs. This is akin to the crossover of a loudspeaker, and results in
14621 flat frequency response when absent compander action.
14622
14623 It accepts the following parameters:
14624
14625 args
14626 This option syntax is: attack,decay,[attack,decay..] soft-knee
14627 points crossover_frequency [delay [initial_volume [gain]]] |
14628 attack,decay ... For explanation of each item refer to compand
14629 filter documentation.
14630
14631 pan
14632 Mix channels with specific gain levels. The filter accepts the output
14633 channel layout followed by a set of channels definitions.
14634
14635 This filter is also designed to efficiently remap the channels of an
14636 audio stream.
14637
14638 The filter accepts parameters of the form: "l|outdef|outdef|..."
14639
14640 l output channel layout or number of channels
14641
14642 outdef
14643 output channel specification, of the form:
14644 "out_name=[gain*]in_name[(+-)[gain*]in_name...]"
14645
14646 out_name
14647 output channel to define, either a channel name (FL, FR, etc.) or a
14648 channel number (c0, c1, etc.)
14649
14650 gain
14651 multiplicative coefficient for the channel, 1 leaving the volume
14652 unchanged
14653
14654 in_name
14655 input channel to use, see out_name for details; it is not possible
14656 to mix named and numbered input channels
14657
14658 If the `=' in a channel specification is replaced by `<', then the
14659 gains for that specification will be renormalized so that the total is
14660 1, thus avoiding clipping noise.
14661
14662 Mixing examples
14663
14664 For example, if you want to down-mix from stereo to mono, but with a
14665 bigger factor for the left channel:
14666
14667 pan=1c|c0=0.9*c0+0.1*c1
14668
14669 A customized down-mix to stereo that works automatically for 3-, 4-, 5-
14670 and 7-channels surround:
14671
14672 pan=stereo| FL < FL + 0.5*FC + 0.6*BL + 0.6*SL | FR < FR + 0.5*FC + 0.6*BR + 0.6*SR
14673
14674 Note that ffmpeg integrates a default down-mix (and up-mix) system that
14675 should be preferred (see "-ac" option) unless you have very specific
14676 needs.
14677
14678 Remapping examples
14679
14680 The channel remapping will be effective if, and only if:
14681
14682 *<gain coefficients are zeroes or ones,>
14683 *<only one input per channel output,>
14684
14685 If all these conditions are satisfied, the filter will notify the user
14686 ("Pure channel mapping detected"), and use an optimized and lossless
14687 method to do the remapping.
14688
14689 For example, if you have a 5.1 source and want a stereo audio stream by
14690 dropping the extra channels:
14691
14692 pan="stereo| c0=FL | c1=FR"
14693
14694 Given the same source, you can also switch front left and front right
14695 channels and keep the input channel layout:
14696
14697 pan="5.1| c0=c1 | c1=c0 | c2=c2 | c3=c3 | c4=c4 | c5=c5"
14698
14699 If the input is a stereo audio stream, you can mute the front left
14700 channel (and still keep the stereo channel layout) with:
14701
14702 pan="stereo|c1=c1"
14703
14704 Still with a stereo audio stream input, you can copy the right channel
14705 in both front left and right:
14706
14707 pan="stereo| c0=FR | c1=FR"
14708
14709 replaygain
14710 ReplayGain scanner filter. This filter takes an audio stream as an
14711 input and outputs it unchanged. At end of filtering it displays
14712 "track_gain" and "track_peak".
14713
14714 resample
14715 Convert the audio sample format, sample rate and channel layout. It is
14716 not meant to be used directly.
14717
14718 rubberband
14719 Apply time-stretching and pitch-shifting with librubberband.
14720
14721 To enable compilation of this filter, you need to configure FFmpeg with
14722 "--enable-librubberband".
14723
14724 The filter accepts the following options:
14725
14726 tempo
14727 Set tempo scale factor.
14728
14729 pitch
14730 Set pitch scale factor.
14731
14732 transients
14733 Set transients detector. Possible values are:
14734
14735 crisp
14736 mixed
14737 smooth
14738 detector
14739 Set detector. Possible values are:
14740
14741 compound
14742 percussive
14743 soft
14744 phase
14745 Set phase. Possible values are:
14746
14747 laminar
14748 independent
14749 window
14750 Set processing window size. Possible values are:
14751
14752 standard
14753 short
14754 long
14755 smoothing
14756 Set smoothing. Possible values are:
14757
14758 off
14759 on
14760 formant
14761 Enable formant preservation when shift pitching. Possible values
14762 are:
14763
14764 shifted
14765 preserved
14766 pitchq
14767 Set pitch quality. Possible values are:
14768
14769 quality
14770 speed
14771 consistency
14772 channels
14773 Set channels. Possible values are:
14774
14775 apart
14776 together
14777
14778 Commands
14779
14780 This filter supports the following commands:
14781
14782 tempo
14783 Change filter tempo scale factor. Syntax for the command is :
14784 "tempo"
14785
14786 pitch
14787 Change filter pitch scale factor. Syntax for the command is :
14788 "pitch"
14789
14790 sidechaincompress
14791 This filter acts like normal compressor but has the ability to compress
14792 detected signal using second input signal. It needs two input streams
14793 and returns one output stream. First input stream will be processed
14794 depending on second stream signal. The filtered signal then can be
14795 filtered with other filters in later stages of processing. See pan and
14796 amerge filter.
14797
14798 The filter accepts the following options:
14799
14800 level_in
14801 Set input gain. Default is 1. Range is between 0.015625 and 64.
14802
14803 mode
14804 Set mode of compressor operation. Can be "upward" or "downward".
14805 Default is "downward".
14806
14807 threshold
14808 If a signal of second stream raises above this level it will affect
14809 the gain reduction of first stream. By default is 0.125. Range is
14810 between 0.00097563 and 1.
14811
14812 ratio
14813 Set a ratio about which the signal is reduced. 1:2 means that if
14814 the level raised 4dB above the threshold, it will be only 2dB above
14815 after the reduction. Default is 2. Range is between 1 and 20.
14816
14817 attack
14818 Amount of milliseconds the signal has to rise above the threshold
14819 before gain reduction starts. Default is 20. Range is between 0.01
14820 and 2000.
14821
14822 release
14823 Amount of milliseconds the signal has to fall below the threshold
14824 before reduction is decreased again. Default is 250. Range is
14825 between 0.01 and 9000.
14826
14827 makeup
14828 Set the amount by how much signal will be amplified after
14829 processing. Default is 1. Range is from 1 to 64.
14830
14831 knee
14832 Curve the sharp knee around the threshold to enter gain reduction
14833 more softly. Default is 2.82843. Range is between 1 and 8.
14834
14835 link
14836 Choose if the "average" level between all channels of side-chain
14837 stream or the louder("maximum") channel of side-chain stream
14838 affects the reduction. Default is "average".
14839
14840 detection
14841 Should the exact signal be taken in case of "peak" or an RMS one in
14842 case of "rms". Default is "rms" which is mainly smoother.
14843
14844 level_sc
14845 Set sidechain gain. Default is 1. Range is between 0.015625 and 64.
14846
14847 mix How much to use compressed signal in output. Default is 1. Range
14848 is between 0 and 1.
14849
14850 Commands
14851
14852 This filter supports the all above options as commands.
14853
14854 Examples
14855
14856 • Full ffmpeg example taking 2 audio inputs, 1st input to be
14857 compressed depending on the signal of 2nd input and later
14858 compressed signal to be merged with 2nd input:
14859
14860 ffmpeg -i main.flac -i sidechain.flac -filter_complex "[1:a]asplit=2[sc][mix];[0:a][sc]sidechaincompress[compr];[compr][mix]amerge"
14861
14862 sidechaingate
14863 A sidechain gate acts like a normal (wideband) gate but has the ability
14864 to filter the detected signal before sending it to the gain reduction
14865 stage. Normally a gate uses the full range signal to detect a level
14866 above the threshold. For example: If you cut all lower frequencies
14867 from your sidechain signal the gate will decrease the volume of your
14868 track only if not enough highs appear. With this technique you are able
14869 to reduce the resonation of a natural drum or remove "rumbling" of
14870 muted strokes from a heavily distorted guitar. It needs two input
14871 streams and returns one output stream. First input stream will be
14872 processed depending on second stream signal.
14873
14874 The filter accepts the following options:
14875
14876 level_in
14877 Set input level before filtering. Default is 1. Allowed range is
14878 from 0.015625 to 64.
14879
14880 mode
14881 Set the mode of operation. Can be "upward" or "downward". Default
14882 is "downward". If set to "upward" mode, higher parts of signal will
14883 be amplified, expanding dynamic range in upward direction.
14884 Otherwise, in case of "downward" lower parts of signal will be
14885 reduced.
14886
14887 range
14888 Set the level of gain reduction when the signal is below the
14889 threshold. Default is 0.06125. Allowed range is from 0 to 1.
14890 Setting this to 0 disables reduction and then filter behaves like
14891 expander.
14892
14893 threshold
14894 If a signal rises above this level the gain reduction is released.
14895 Default is 0.125. Allowed range is from 0 to 1.
14896
14897 ratio
14898 Set a ratio about which the signal is reduced. Default is 2.
14899 Allowed range is from 1 to 9000.
14900
14901 attack
14902 Amount of milliseconds the signal has to rise above the threshold
14903 before gain reduction stops. Default is 20 milliseconds. Allowed
14904 range is from 0.01 to 9000.
14905
14906 release
14907 Amount of milliseconds the signal has to fall below the threshold
14908 before the reduction is increased again. Default is 250
14909 milliseconds. Allowed range is from 0.01 to 9000.
14910
14911 makeup
14912 Set amount of amplification of signal after processing. Default is
14913 1. Allowed range is from 1 to 64.
14914
14915 knee
14916 Curve the sharp knee around the threshold to enter gain reduction
14917 more softly. Default is 2.828427125. Allowed range is from 1 to 8.
14918
14919 detection
14920 Choose if exact signal should be taken for detection or an RMS like
14921 one. Default is rms. Can be peak or rms.
14922
14923 link
14924 Choose if the average level between all channels or the louder
14925 channel affects the reduction. Default is average. Can be average
14926 or maximum.
14927
14928 level_sc
14929 Set sidechain gain. Default is 1. Range is from 0.015625 to 64.
14930
14931 Commands
14932
14933 This filter supports the all above options as commands.
14934
14935 silencedetect
14936 Detect silence in an audio stream.
14937
14938 This filter logs a message when it detects that the input audio volume
14939 is less or equal to a noise tolerance value for a duration greater or
14940 equal to the minimum detected noise duration.
14941
14942 The printed times and duration are expressed in seconds. The
14943 "lavfi.silence_start" or "lavfi.silence_start.X" metadata key is set on
14944 the first frame whose timestamp equals or exceeds the detection
14945 duration and it contains the timestamp of the first frame of the
14946 silence.
14947
14948 The "lavfi.silence_duration" or "lavfi.silence_duration.X" and
14949 "lavfi.silence_end" or "lavfi.silence_end.X" metadata keys are set on
14950 the first frame after the silence. If mono is enabled, and each channel
14951 is evaluated separately, the ".X" suffixed keys are used, and "X"
14952 corresponds to the channel number.
14953
14954 The filter accepts the following options:
14955
14956 noise, n
14957 Set noise tolerance. Can be specified in dB (in case "dB" is
14958 appended to the specified value) or amplitude ratio. Default is
14959 -60dB, or 0.001.
14960
14961 duration, d
14962 Set silence duration until notification (default is 2 seconds). See
14963 the Time duration section in the ffmpeg-utils(1) manual for the
14964 accepted syntax.
14965
14966 mono, m
14967 Process each channel separately, instead of combined. By default is
14968 disabled.
14969
14970 Examples
14971
14972 • Detect 5 seconds of silence with -50dB noise tolerance:
14973
14974 silencedetect=n=-50dB:d=5
14975
14976 • Complete example with ffmpeg to detect silence with 0.0001 noise
14977 tolerance in silence.mp3:
14978
14979 ffmpeg -i silence.mp3 -af silencedetect=noise=0.0001 -f null -
14980
14981 silenceremove
14982 Remove silence from the beginning, middle or end of the audio.
14983
14984 The filter accepts the following options:
14985
14986 start_periods
14987 This value is used to indicate if audio should be trimmed at
14988 beginning of the audio. A value of zero indicates no silence should
14989 be trimmed from the beginning. When specifying a non-zero value, it
14990 trims audio up until it finds non-silence. Normally, when trimming
14991 silence from beginning of audio the start_periods will be 1 but it
14992 can be increased to higher values to trim all audio up to specific
14993 count of non-silence periods. Default value is 0.
14994
14995 start_duration
14996 Specify the amount of time that non-silence must be detected before
14997 it stops trimming audio. By increasing the duration, bursts of
14998 noises can be treated as silence and trimmed off. Default value is
14999 0.
15000
15001 start_threshold
15002 This indicates what sample value should be treated as silence. For
15003 digital audio, a value of 0 may be fine but for audio recorded from
15004 analog, you may wish to increase the value to account for
15005 background noise. Can be specified in dB (in case "dB" is appended
15006 to the specified value) or amplitude ratio. Default value is 0.
15007
15008 start_silence
15009 Specify max duration of silence at beginning that will be kept
15010 after trimming. Default is 0, which is equal to trimming all
15011 samples detected as silence.
15012
15013 start_mode
15014 Specify mode of detection of silence end in start of multi-channel
15015 audio. Can be any or all. Default is any. With any, any sample
15016 that is detected as non-silence will cause stopped trimming of
15017 silence. With all, only if all channels are detected as non-
15018 silence will cause stopped trimming of silence.
15019
15020 stop_periods
15021 Set the count for trimming silence from the end of audio. To
15022 remove silence from the middle of a file, specify a stop_periods
15023 that is negative. This value is then treated as a positive value
15024 and is used to indicate the effect should restart processing as
15025 specified by start_periods, making it suitable for removing periods
15026 of silence in the middle of the audio. Default value is 0.
15027
15028 stop_duration
15029 Specify a duration of silence that must exist before audio is not
15030 copied any more. By specifying a higher duration, silence that is
15031 wanted can be left in the audio. Default value is 0.
15032
15033 stop_threshold
15034 This is the same as start_threshold but for trimming silence from
15035 the end of audio. Can be specified in dB (in case "dB" is appended
15036 to the specified value) or amplitude ratio. Default value is 0.
15037
15038 stop_silence
15039 Specify max duration of silence at end that will be kept after
15040 trimming. Default is 0, which is equal to trimming all samples
15041 detected as silence.
15042
15043 stop_mode
15044 Specify mode of detection of silence start in end of multi-channel
15045 audio. Can be any or all. Default is any. With any, any sample
15046 that is detected as non-silence will cause stopped trimming of
15047 silence. With all, only if all channels are detected as non-
15048 silence will cause stopped trimming of silence.
15049
15050 detection
15051 Set how is silence detected. Can be "rms" or "peak". Second is
15052 faster and works better with digital silence which is exactly 0.
15053 Default value is "rms".
15054
15055 window
15056 Set duration in number of seconds used to calculate size of window
15057 in number of samples for detecting silence. Default value is 0.02.
15058 Allowed range is from 0 to 10.
15059
15060 Examples
15061
15062 • The following example shows how this filter can be used to start a
15063 recording that does not contain the delay at the start which
15064 usually occurs between pressing the record button and the start of
15065 the performance:
15066
15067 silenceremove=start_periods=1:start_duration=5:start_threshold=0.02
15068
15069 • Trim all silence encountered from beginning to end where there is
15070 more than 1 second of silence in audio:
15071
15072 silenceremove=stop_periods=-1:stop_duration=1:stop_threshold=-90dB
15073
15074 • Trim all digital silence samples, using peak detection, from
15075 beginning to end where there is more than 0 samples of digital
15076 silence in audio and digital silence is detected in all channels at
15077 same positions in stream:
15078
15079 silenceremove=window=0:detection=peak:stop_mode=all:start_mode=all:stop_periods=-1:stop_threshold=0
15080
15081 sofalizer
15082 SOFAlizer uses head-related transfer functions (HRTFs) to create
15083 virtual loudspeakers around the user for binaural listening via
15084 headphones (audio formats up to 9 channels supported). The HRTFs are
15085 stored in SOFA files (see <http://www.sofacoustics.org/> for a
15086 database). SOFAlizer is developed at the Acoustics Research Institute
15087 (ARI) of the Austrian Academy of Sciences.
15088
15089 To enable compilation of this filter you need to configure FFmpeg with
15090 "--enable-libmysofa".
15091
15092 The filter accepts the following options:
15093
15094 sofa
15095 Set the SOFA file used for rendering.
15096
15097 gain
15098 Set gain applied to audio. Value is in dB. Default is 0.
15099
15100 rotation
15101 Set rotation of virtual loudspeakers in deg. Default is 0.
15102
15103 elevation
15104 Set elevation of virtual speakers in deg. Default is 0.
15105
15106 radius
15107 Set distance in meters between loudspeakers and the listener with
15108 near-field HRTFs. Default is 1.
15109
15110 type
15111 Set processing type. Can be time or freq. time is processing audio
15112 in time domain which is slow. freq is processing audio in
15113 frequency domain which is fast. Default is freq.
15114
15115 speakers
15116 Set custom positions of virtual loudspeakers. Syntax for this
15117 option is: <CH> <AZIM> <ELEV>[|<CH> <AZIM> <ELEV>|...]. Each
15118 virtual loudspeaker is described with short channel name following
15119 with azimuth and elevation in degrees. Each virtual loudspeaker
15120 description is separated by '|'. For example to override front
15121 left and front right channel positions use: 'speakers=FL 45 15|FR
15122 345 15'. Descriptions with unrecognised channel names are ignored.
15123
15124 lfegain
15125 Set custom gain for LFE channels. Value is in dB. Default is 0.
15126
15127 framesize
15128 Set custom frame size in number of samples. Default is 1024.
15129 Allowed range is from 1024 to 96000. Only used if option type is
15130 set to freq.
15131
15132 normalize
15133 Should all IRs be normalized upon importing SOFA file. By default
15134 is enabled.
15135
15136 interpolate
15137 Should nearest IRs be interpolated with neighbor IRs if exact
15138 position does not match. By default is disabled.
15139
15140 minphase
15141 Minphase all IRs upon loading of SOFA file. By default is disabled.
15142
15143 anglestep
15144 Set neighbor search angle step. Only used if option interpolate is
15145 enabled.
15146
15147 radstep
15148 Set neighbor search radius step. Only used if option interpolate is
15149 enabled.
15150
15151 Examples
15152
15153 • Using ClubFritz6 sofa file:
15154
15155 sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=1
15156
15157 • Using ClubFritz12 sofa file and bigger radius with small rotation:
15158
15159 sofalizer=sofa=/path/to/ClubFritz12.sofa:type=freq:radius=2:rotation=5
15160
15161 • Similar as above but with custom speaker positions for front left,
15162 front right, back left and back right and also with custom gain:
15163
15164 "sofalizer=sofa=/path/to/ClubFritz6.sofa:type=freq:radius=2:speakers=FL 45|FR 315|BL 135|BR 225:gain=28"
15165
15166 speechnorm
15167 Speech Normalizer.
15168
15169 This filter expands or compresses each half-cycle of audio samples
15170 (local set of samples all above or all below zero and between two
15171 nearest zero crossings) depending on threshold value, so audio reaches
15172 target peak value under conditions controlled by below options.
15173
15174 The filter accepts the following options:
15175
15176 peak, p
15177 Set the expansion target peak value. This specifies the highest
15178 allowed absolute amplitude level for the normalized audio input.
15179 Default value is 0.95. Allowed range is from 0.0 to 1.0.
15180
15181 expansion, e
15182 Set the maximum expansion factor. Allowed range is from 1.0 to
15183 50.0. Default value is 2.0. This option controls maximum local
15184 half-cycle of samples expansion. The maximum expansion would be
15185 such that local peak value reaches target peak value but never to
15186 surpass it and that ratio between new and previous peak value does
15187 not surpass this option value.
15188
15189 compression, c
15190 Set the maximum compression factor. Allowed range is from 1.0 to
15191 50.0. Default value is 2.0. This option controls maximum local
15192 half-cycle of samples compression. This option is used only if
15193 threshold option is set to value greater than 0.0, then in such
15194 cases when local peak is lower or same as value set by threshold
15195 all samples belonging to that peak's half-cycle will be compressed
15196 by current compression factor.
15197
15198 threshold, t
15199 Set the threshold value. Default value is 0.0. Allowed range is
15200 from 0.0 to 1.0. This option specifies which half-cycles of
15201 samples will be compressed and which will be expanded. Any half-
15202 cycle samples with their local peak value below or same as this
15203 option value will be compressed by current compression factor,
15204 otherwise, if greater than threshold value they will be expanded
15205 with expansion factor so that it could reach peak target value but
15206 never surpass it.
15207
15208 raise, r
15209 Set the expansion raising amount per each half-cycle of samples.
15210 Default value is 0.001. Allowed range is from 0.0 to 1.0. This
15211 controls how fast expansion factor is raised per each new half-
15212 cycle until it reaches expansion value. Setting this options too
15213 high may lead to distortions.
15214
15215 fall, f
15216 Set the compression raising amount per each half-cycle of samples.
15217 Default value is 0.001. Allowed range is from 0.0 to 1.0. This
15218 controls how fast compression factor is raised per each new half-
15219 cycle until it reaches compression value.
15220
15221 channels, h
15222 Specify which channels to filter, by default all available channels
15223 are filtered.
15224
15225 invert, i
15226 Enable inverted filtering, by default is disabled. This inverts
15227 interpretation of threshold option. When enabled any half-cycle of
15228 samples with their local peak value below or same as threshold
15229 option will be expanded otherwise it will be compressed.
15230
15231 link, l
15232 Link channels when calculating gain applied to each filtered
15233 channel sample, by default is disabled. When disabled each
15234 filtered channel gain calculation is independent, otherwise when
15235 this option is enabled the minimum of all possible gains for each
15236 filtered channel is used.
15237
15238 rms, m
15239 Set the expansion target RMS value. This specifies the highest
15240 allowed RMS level for the normalized audio input. Default value is
15241 0.0, thus disabled. Allowed range is from 0.0 to 1.0.
15242
15243 Commands
15244
15245 This filter supports the all above options as commands.
15246
15247 Examples
15248
15249 • Weak and slow amplification:
15250
15251 speechnorm=e=3:r=0.00001:l=1
15252
15253 • Moderate and slow amplification:
15254
15255 speechnorm=e=6.25:r=0.00001:l=1
15256
15257 • Strong and fast amplification:
15258
15259 speechnorm=e=12.5:r=0.0001:l=1
15260
15261 • Very strong and fast amplification:
15262
15263 speechnorm=e=25:r=0.0001:l=1
15264
15265 • Extreme and fast amplification:
15266
15267 speechnorm=e=50:r=0.0001:l=1
15268
15269 stereotools
15270 This filter has some handy utilities to manage stereo signals, for
15271 converting M/S stereo recordings to L/R signal while having control
15272 over the parameters or spreading the stereo image of master track.
15273
15274 The filter accepts the following options:
15275
15276 level_in
15277 Set input level before filtering for both channels. Defaults is 1.
15278 Allowed range is from 0.015625 to 64.
15279
15280 level_out
15281 Set output level after filtering for both channels. Defaults is 1.
15282 Allowed range is from 0.015625 to 64.
15283
15284 balance_in
15285 Set input balance between both channels. Default is 0. Allowed
15286 range is from -1 to 1.
15287
15288 balance_out
15289 Set output balance between both channels. Default is 0. Allowed
15290 range is from -1 to 1.
15291
15292 softclip
15293 Enable softclipping. Results in analog distortion instead of harsh
15294 digital 0dB clipping. Disabled by default.
15295
15296 mutel
15297 Mute the left channel. Disabled by default.
15298
15299 muter
15300 Mute the right channel. Disabled by default.
15301
15302 phasel
15303 Change the phase of the left channel. Disabled by default.
15304
15305 phaser
15306 Change the phase of the right channel. Disabled by default.
15307
15308 mode
15309 Set stereo mode. Available values are:
15310
15311 lr>lr
15312 Left/Right to Left/Right, this is default.
15313
15314 lr>ms
15315 Left/Right to Mid/Side.
15316
15317 ms>lr
15318 Mid/Side to Left/Right.
15319
15320 lr>ll
15321 Left/Right to Left/Left.
15322
15323 lr>rr
15324 Left/Right to Right/Right.
15325
15326 lr>l+r
15327 Left/Right to Left + Right.
15328
15329 lr>rl
15330 Left/Right to Right/Left.
15331
15332 ms>ll
15333 Mid/Side to Left/Left.
15334
15335 ms>rr
15336 Mid/Side to Right/Right.
15337
15338 ms>rl
15339 Mid/Side to Right/Left.
15340
15341 lr>l-r
15342 Left/Right to Left - Right.
15343
15344 slev
15345 Set level of side signal. Default is 1. Allowed range is from
15346 0.015625 to 64.
15347
15348 sbal
15349 Set balance of side signal. Default is 0. Allowed range is from -1
15350 to 1.
15351
15352 mlev
15353 Set level of the middle signal. Default is 1. Allowed range is
15354 from 0.015625 to 64.
15355
15356 mpan
15357 Set middle signal pan. Default is 0. Allowed range is from -1 to 1.
15358
15359 base
15360 Set stereo base between mono and inversed channels. Default is 0.
15361 Allowed range is from -1 to 1.
15362
15363 delay
15364 Set delay in milliseconds how much to delay left from right channel
15365 and vice versa. Default is 0. Allowed range is from -20 to 20.
15366
15367 sclevel
15368 Set S/C level. Default is 1. Allowed range is from 1 to 100.
15369
15370 phase
15371 Set the stereo phase in degrees. Default is 0. Allowed range is
15372 from 0 to 360.
15373
15374 bmode_in, bmode_out
15375 Set balance mode for balance_in/balance_out option.
15376
15377 Can be one of the following:
15378
15379 balance
15380 Classic balance mode. Attenuate one channel at time. Gain is
15381 raised up to 1.
15382
15383 amplitude
15384 Similar as classic mode above but gain is raised up to 2.
15385
15386 power
15387 Equal power distribution, from -6dB to +6dB range.
15388
15389 Commands
15390
15391 This filter supports the all above options as commands.
15392
15393 Examples
15394
15395 • Apply karaoke like effect:
15396
15397 stereotools=mlev=0.015625
15398
15399 • Convert M/S signal to L/R:
15400
15401 "stereotools=mode=ms>lr"
15402
15403 stereowiden
15404 This filter enhance the stereo effect by suppressing signal common to
15405 both channels and by delaying the signal of left into right and vice
15406 versa, thereby widening the stereo effect.
15407
15408 The filter accepts the following options:
15409
15410 delay
15411 Time in milliseconds of the delay of left signal into right and
15412 vice versa. Default is 20 milliseconds.
15413
15414 feedback
15415 Amount of gain in delayed signal into right and vice versa. Gives a
15416 delay effect of left signal in right output and vice versa which
15417 gives widening effect. Default is 0.3.
15418
15419 crossfeed
15420 Cross feed of left into right with inverted phase. This helps in
15421 suppressing the mono. If the value is 1 it will cancel all the
15422 signal common to both channels. Default is 0.3.
15423
15424 drymix
15425 Set level of input signal of original channel. Default is 0.8.
15426
15427 Commands
15428
15429 This filter supports the all above options except "delay" as commands.
15430
15431 superequalizer
15432 Apply 18 band equalizer.
15433
15434 The filter accepts the following options:
15435
15436 1b Set 65Hz band gain.
15437
15438 2b Set 92Hz band gain.
15439
15440 3b Set 131Hz band gain.
15441
15442 4b Set 185Hz band gain.
15443
15444 5b Set 262Hz band gain.
15445
15446 6b Set 370Hz band gain.
15447
15448 7b Set 523Hz band gain.
15449
15450 8b Set 740Hz band gain.
15451
15452 9b Set 1047Hz band gain.
15453
15454 10b Set 1480Hz band gain.
15455
15456 11b Set 2093Hz band gain.
15457
15458 12b Set 2960Hz band gain.
15459
15460 13b Set 4186Hz band gain.
15461
15462 14b Set 5920Hz band gain.
15463
15464 15b Set 8372Hz band gain.
15465
15466 16b Set 11840Hz band gain.
15467
15468 17b Set 16744Hz band gain.
15469
15470 18b Set 20000Hz band gain.
15471
15472 surround
15473 Apply audio surround upmix filter.
15474
15475 This filter allows to produce multichannel output from audio stream.
15476
15477 The filter accepts the following options:
15478
15479 chl_out
15480 Set output channel layout. By default, this is 5.1.
15481
15482 See the Channel Layout section in the ffmpeg-utils(1) manual for
15483 the required syntax.
15484
15485 chl_in
15486 Set input channel layout. By default, this is stereo.
15487
15488 See the Channel Layout section in the ffmpeg-utils(1) manual for
15489 the required syntax.
15490
15491 level_in
15492 Set input volume level. By default, this is 1.
15493
15494 level_out
15495 Set output volume level. By default, this is 1.
15496
15497 lfe Enable LFE channel output if output channel layout has it. By
15498 default, this is enabled.
15499
15500 lfe_low
15501 Set LFE low cut off frequency. By default, this is 128 Hz.
15502
15503 lfe_high
15504 Set LFE high cut off frequency. By default, this is 256 Hz.
15505
15506 lfe_mode
15507 Set LFE mode, can be add or sub. Default is add. In add mode, LFE
15508 channel is created from input audio and added to output. In sub
15509 mode, LFE channel is created from input audio and added to output
15510 but also all non-LFE output channels are subtracted with output LFE
15511 channel.
15512
15513 smooth
15514 Set temporal smoothness strength, used to gradually change factors
15515 when transforming stereo sound in time. Allowed range is from 0.0
15516 to 1.0. Useful to improve output quality with focus option values
15517 greater than 0.0. Default is 0.0. Only values inside this range
15518 and without edges are effective.
15519
15520 angle
15521 Set angle of stereo surround transform, Allowed range is from 0 to
15522 360. Default is 90.
15523
15524 focus
15525 Set focus of stereo surround transform, Allowed range is from -1 to
15526 1. Default is 0.
15527
15528 fc_in
15529 Set front center input volume. By default, this is 1.
15530
15531 fc_out
15532 Set front center output volume. By default, this is 1.
15533
15534 fl_in
15535 Set front left input volume. By default, this is 1.
15536
15537 fl_out
15538 Set front left output volume. By default, this is 1.
15539
15540 fr_in
15541 Set front right input volume. By default, this is 1.
15542
15543 fr_out
15544 Set front right output volume. By default, this is 1.
15545
15546 sl_in
15547 Set side left input volume. By default, this is 1.
15548
15549 sl_out
15550 Set side left output volume. By default, this is 1.
15551
15552 sr_in
15553 Set side right input volume. By default, this is 1.
15554
15555 sr_out
15556 Set side right output volume. By default, this is 1.
15557
15558 bl_in
15559 Set back left input volume. By default, this is 1.
15560
15561 bl_out
15562 Set back left output volume. By default, this is 1.
15563
15564 br_in
15565 Set back right input volume. By default, this is 1.
15566
15567 br_out
15568 Set back right output volume. By default, this is 1.
15569
15570 bc_in
15571 Set back center input volume. By default, this is 1.
15572
15573 bc_out
15574 Set back center output volume. By default, this is 1.
15575
15576 lfe_in
15577 Set LFE input volume. By default, this is 1.
15578
15579 lfe_out
15580 Set LFE output volume. By default, this is 1.
15581
15582 allx
15583 Set spread usage of stereo image across X axis for all channels.
15584 Allowed range is from -1 to 15. By default this value is negative
15585 -1, and thus unused.
15586
15587 ally
15588 Set spread usage of stereo image across Y axis for all channels.
15589 Allowed range is from -1 to 15. By default this value is negative
15590 -1, and thus unused.
15591
15592 fcx, flx, frx, blx, brx, slx, srx, bcx
15593 Set spread usage of stereo image across X axis for each channel.
15594 Allowed range is from 0.06 to 15. By default this value is 0.5.
15595
15596 fcy, fly, fry, bly, bry, sly, sry, bcy
15597 Set spread usage of stereo image across Y axis for each channel.
15598 Allowed range is from 0.06 to 15. By default this value is 0.5.
15599
15600 win_size
15601 Set window size. Allowed range is from 1024 to 65536. Default size
15602 is 4096.
15603
15604 win_func
15605 Set window function.
15606
15607 It accepts the following values:
15608
15609 rect
15610 bartlett
15611 hann, hanning
15612 hamming
15613 blackman
15614 welch
15615 flattop
15616 bharris
15617 bnuttall
15618 bhann
15619 sine
15620 nuttall
15621 lanczos
15622 gauss
15623 tukey
15624 dolph
15625 cauchy
15626 parzen
15627 poisson
15628 bohman
15629 kaiser
15630
15631 Default is "hann".
15632
15633 overlap
15634 Set window overlap. If set to 1, the recommended overlap for
15635 selected window function will be picked. Default is 0.5.
15636
15637 tiltshelf
15638 Boost or cut the lower frequencies and cut or boost higher frequencies
15639 of the audio using a two-pole shelving filter with a response similar
15640 to that of a standard hi-fi's tone-controls. This is also known as
15641 shelving equalisation (EQ).
15642
15643 The filter accepts the following options:
15644
15645 gain, g
15646 Give the gain at 0 Hz. Its useful range is about -20 (for a large
15647 cut) to +20 (for a large boost). Beware of clipping when using a
15648 positive gain.
15649
15650 frequency, f
15651 Set the filter's central frequency and so can be used to extend or
15652 reduce the frequency range to be boosted or cut. The default value
15653 is 3000 Hz.
15654
15655 width_type, t
15656 Set method to specify band-width of filter.
15657
15658 h Hz
15659
15660 q Q-Factor
15661
15662 o octave
15663
15664 s slope
15665
15666 k kHz
15667
15668 width, w
15669 Determine how steep is the filter's shelf transition.
15670
15671 poles, p
15672 Set number of poles. Default is 2.
15673
15674 mix, m
15675 How much to use filtered signal in output. Default is 1. Range is
15676 between 0 and 1.
15677
15678 channels, c
15679 Specify which channels to filter, by default all available are
15680 filtered.
15681
15682 normalize, n
15683 Normalize biquad coefficients, by default is disabled. Enabling it
15684 will normalize magnitude response at DC to 0dB.
15685
15686 transform, a
15687 Set transform type of IIR filter.
15688
15689 di
15690 dii
15691 tdi
15692 tdii
15693 latt
15694 svf
15695 zdf
15696 precision, r
15697 Set precison of filtering.
15698
15699 auto
15700 Pick automatic sample format depending on surround filters.
15701
15702 s16 Always use signed 16-bit.
15703
15704 s32 Always use signed 32-bit.
15705
15706 f32 Always use float 32-bit.
15707
15708 f64 Always use float 64-bit.
15709
15710 block_size, b
15711 Set block size used for reverse IIR processing. If this value is
15712 set to high enough value (higher than impulse response length
15713 truncated when reaches near zero values) filtering will become
15714 linear phase otherwise if not big enough it will just produce nasty
15715 artifacts.
15716
15717 Note that filter delay will be exactly this many samples when set
15718 to non-zero value.
15719
15720 Commands
15721
15722 This filter supports some options as commands.
15723
15724 treble, highshelf
15725 Boost or cut treble (upper) frequencies of the audio using a two-pole
15726 shelving filter with a response similar to that of a standard hi-fi's
15727 tone-controls. This is also known as shelving equalisation (EQ).
15728
15729 The filter accepts the following options:
15730
15731 gain, g
15732 Give the gain at whichever is the lower of ~22 kHz and the Nyquist
15733 frequency. Its useful range is about -20 (for a large cut) to +20
15734 (for a large boost). Beware of clipping when using a positive gain.
15735
15736 frequency, f
15737 Set the filter's central frequency and so can be used to extend or
15738 reduce the frequency range to be boosted or cut. The default value
15739 is 3000 Hz.
15740
15741 width_type, t
15742 Set method to specify band-width of filter.
15743
15744 h Hz
15745
15746 q Q-Factor
15747
15748 o octave
15749
15750 s slope
15751
15752 k kHz
15753
15754 width, w
15755 Determine how steep is the filter's shelf transition.
15756
15757 poles, p
15758 Set number of poles. Default is 2.
15759
15760 mix, m
15761 How much to use filtered signal in output. Default is 1. Range is
15762 between 0 and 1.
15763
15764 channels, c
15765 Specify which channels to filter, by default all available are
15766 filtered.
15767
15768 normalize, n
15769 Normalize biquad coefficients, by default is disabled. Enabling it
15770 will normalize magnitude response at DC to 0dB.
15771
15772 transform, a
15773 Set transform type of IIR filter.
15774
15775 di
15776 dii
15777 tdi
15778 tdii
15779 latt
15780 svf
15781 zdf
15782 precision, r
15783 Set precison of filtering.
15784
15785 auto
15786 Pick automatic sample format depending on surround filters.
15787
15788 s16 Always use signed 16-bit.
15789
15790 s32 Always use signed 32-bit.
15791
15792 f32 Always use float 32-bit.
15793
15794 f64 Always use float 64-bit.
15795
15796 block_size, b
15797 Set block size used for reverse IIR processing. If this value is
15798 set to high enough value (higher than impulse response length
15799 truncated when reaches near zero values) filtering will become
15800 linear phase otherwise if not big enough it will just produce nasty
15801 artifacts.
15802
15803 Note that filter delay will be exactly this many samples when set
15804 to non-zero value.
15805
15806 Commands
15807
15808 This filter supports the following commands:
15809
15810 frequency, f
15811 Change treble frequency. Syntax for the command is : "frequency"
15812
15813 width_type, t
15814 Change treble width_type. Syntax for the command is : "width_type"
15815
15816 width, w
15817 Change treble width. Syntax for the command is : "width"
15818
15819 gain, g
15820 Change treble gain. Syntax for the command is : "gain"
15821
15822 mix, m
15823 Change treble mix. Syntax for the command is : "mix"
15824
15825 tremolo
15826 Sinusoidal amplitude modulation.
15827
15828 The filter accepts the following options:
15829
15830 f Modulation frequency in Hertz. Modulation frequencies in the
15831 subharmonic range (20 Hz or lower) will result in a tremolo effect.
15832 This filter may also be used as a ring modulator by specifying a
15833 modulation frequency higher than 20 Hz. Range is 0.1 - 20000.0.
15834 Default value is 5.0 Hz.
15835
15836 d Depth of modulation as a percentage. Range is 0.0 - 1.0. Default
15837 value is 0.5.
15838
15839 vibrato
15840 Sinusoidal phase modulation.
15841
15842 The filter accepts the following options:
15843
15844 f Modulation frequency in Hertz. Range is 0.1 - 20000.0. Default
15845 value is 5.0 Hz.
15846
15847 d Depth of modulation as a percentage. Range is 0.0 - 1.0. Default
15848 value is 0.5.
15849
15850 virtualbass
15851 Apply audio Virtual Bass filter.
15852
15853 This filter accepts stereo input and produce stereo with LFE (2.1)
15854 channels output. The newly produced LFE channel have enhanced virtual
15855 bass originally obtained from both stereo channels. This filter
15856 outputs front left and front right channels unchanged as available in
15857 stereo input.
15858
15859 The filter accepts the following options:
15860
15861 cutoff
15862 Set the virtual bass cutoff frequency. Default value is 250 Hz.
15863 Allowed range is from 100 to 500 Hz.
15864
15865 strength
15866 Set the virtual bass strength. Allowed range is from 0.5 to 3.
15867 Default value is 3.
15868
15869 volume
15870 Adjust the input audio volume.
15871
15872 It accepts the following parameters:
15873
15874 volume
15875 Set audio volume expression.
15876
15877 Output values are clipped to the maximum value.
15878
15879 The output audio volume is given by the relation:
15880
15881 <output_volume> = <volume> * <input_volume>
15882
15883 The default value for volume is "1.0".
15884
15885 precision
15886 This parameter represents the mathematical precision.
15887
15888 It determines which input sample formats will be allowed, which
15889 affects the precision of the volume scaling.
15890
15891 fixed
15892 8-bit fixed-point; this limits input sample format to U8, S16,
15893 and S32.
15894
15895 float
15896 32-bit floating-point; this limits input sample format to FLT.
15897 (default)
15898
15899 double
15900 64-bit floating-point; this limits input sample format to DBL.
15901
15902 replaygain
15903 Choose the behaviour on encountering ReplayGain side data in input
15904 frames.
15905
15906 drop
15907 Remove ReplayGain side data, ignoring its contents (the
15908 default).
15909
15910 ignore
15911 Ignore ReplayGain side data, but leave it in the frame.
15912
15913 track
15914 Prefer the track gain, if present.
15915
15916 album
15917 Prefer the album gain, if present.
15918
15919 replaygain_preamp
15920 Pre-amplification gain in dB to apply to the selected replaygain
15921 gain.
15922
15923 Default value for replaygain_preamp is 0.0.
15924
15925 replaygain_noclip
15926 Prevent clipping by limiting the gain applied.
15927
15928 Default value for replaygain_noclip is 1.
15929
15930 eval
15931 Set when the volume expression is evaluated.
15932
15933 It accepts the following values:
15934
15935 once
15936 only evaluate expression once during the filter initialization,
15937 or when the volume command is sent
15938
15939 frame
15940 evaluate expression for each incoming frame
15941
15942 Default value is once.
15943
15944 The volume expression can contain the following parameters.
15945
15946 n frame number (starting at zero)
15947
15948 nb_channels
15949 number of channels
15950
15951 nb_consumed_samples
15952 number of samples consumed by the filter
15953
15954 nb_samples
15955 number of samples in the current frame
15956
15957 pos original frame position in the file
15958
15959 pts frame PTS
15960
15961 sample_rate
15962 sample rate
15963
15964 startpts
15965 PTS at start of stream
15966
15967 startt
15968 time at start of stream
15969
15970 t frame time
15971
15972 tb timestamp timebase
15973
15974 volume
15975 last set volume value
15976
15977 Note that when eval is set to once only the sample_rate and tb
15978 variables are available, all other variables will evaluate to NAN.
15979
15980 Commands
15981
15982 This filter supports the following commands:
15983
15984 volume
15985 Modify the volume expression. The command accepts the same syntax
15986 of the corresponding option.
15987
15988 If the specified expression is not valid, it is kept at its current
15989 value.
15990
15991 Examples
15992
15993 • Halve the input audio volume:
15994
15995 volume=volume=0.5
15996 volume=volume=1/2
15997 volume=volume=-6.0206dB
15998
15999 In all the above example the named key for volume can be omitted,
16000 for example like in:
16001
16002 volume=0.5
16003
16004 • Increase input audio power by 6 decibels using fixed-point
16005 precision:
16006
16007 volume=volume=6dB:precision=fixed
16008
16009 • Fade volume after time 10 with an annihilation period of 5 seconds:
16010
16011 volume='if(lt(t,10),1,max(1-(t-10)/5,0))':eval=frame
16012
16013 volumedetect
16014 Detect the volume of the input video.
16015
16016 The filter has no parameters. It supports only 16-bit signed integer
16017 samples, so the input will be converted when needed. Statistics about
16018 the volume will be printed in the log when the input stream end is
16019 reached.
16020
16021 In particular it will show the mean volume (root mean square), maximum
16022 volume (on a per-sample basis), and the beginning of a histogram of the
16023 registered volume values (from the maximum value to a cumulated 1/1000
16024 of the samples).
16025
16026 All volumes are in decibels relative to the maximum PCM value.
16027
16028 Examples
16029
16030 Here is an excerpt of the output:
16031
16032 [Parsed_volumedetect_0 0xa23120] mean_volume: -27 dB
16033 [Parsed_volumedetect_0 0xa23120] max_volume: -4 dB
16034 [Parsed_volumedetect_0 0xa23120] histogram_4db: 6
16035 [Parsed_volumedetect_0 0xa23120] histogram_5db: 62
16036 [Parsed_volumedetect_0 0xa23120] histogram_6db: 286
16037 [Parsed_volumedetect_0 0xa23120] histogram_7db: 1042
16038 [Parsed_volumedetect_0 0xa23120] histogram_8db: 2551
16039 [Parsed_volumedetect_0 0xa23120] histogram_9db: 4609
16040 [Parsed_volumedetect_0 0xa23120] histogram_10db: 8409
16041
16042 It means that:
16043
16044 • The mean square energy is approximately -27 dB, or 10^-2.7.
16045
16046 • The largest sample is at -4 dB, or more precisely between -4 dB and
16047 -5 dB.
16048
16049 • There are 6 samples at -4 dB, 62 at -5 dB, 286 at -6 dB, etc.
16050
16051 In other words, raising the volume by +4 dB does not cause any
16052 clipping, raising it by +5 dB causes clipping for 6 samples, etc.
16053
16055 Below is a description of the currently available audio sources.
16056
16057 abuffer
16058 Buffer audio frames, and make them available to the filter chain.
16059
16060 This source is mainly intended for a programmatic use, in particular
16061 through the interface defined in libavfilter/buffersrc.h.
16062
16063 It accepts the following parameters:
16064
16065 time_base
16066 The timebase which will be used for timestamps of submitted frames.
16067 It must be either a floating-point number or in
16068 numerator/denominator form.
16069
16070 sample_rate
16071 The sample rate of the incoming audio buffers.
16072
16073 sample_fmt
16074 The sample format of the incoming audio buffers. Either a sample
16075 format name or its corresponding integer representation from the
16076 enum AVSampleFormat in libavutil/samplefmt.h
16077
16078 channel_layout
16079 The channel layout of the incoming audio buffers. Either a channel
16080 layout name from channel_layout_map in libavutil/channel_layout.c
16081 or its corresponding integer representation from the AV_CH_LAYOUT_*
16082 macros in libavutil/channel_layout.h
16083
16084 channels
16085 The number of channels of the incoming audio buffers. If both
16086 channels and channel_layout are specified, then they must be
16087 consistent.
16088
16089 Examples
16090
16091 abuffer=sample_rate=44100:sample_fmt=s16p:channel_layout=stereo
16092
16093 will instruct the source to accept planar 16bit signed stereo at
16094 44100Hz. Since the sample format with name "s16p" corresponds to the
16095 number 6 and the "stereo" channel layout corresponds to the value 0x3,
16096 this is equivalent to:
16097
16098 abuffer=sample_rate=44100:sample_fmt=6:channel_layout=0x3
16099
16100 aevalsrc
16101 Generate an audio signal specified by an expression.
16102
16103 This source accepts in input one or more expressions (one for each
16104 channel), which are evaluated and used to generate a corresponding
16105 audio signal.
16106
16107 This source accepts the following options:
16108
16109 exprs
16110 Set the '|'-separated expressions list for each separate channel.
16111 In case the channel_layout option is not specified, the selected
16112 channel layout depends on the number of provided expressions.
16113 Otherwise the last specified expression is applied to the remaining
16114 output channels.
16115
16116 channel_layout, c
16117 Set the channel layout. The number of channels in the specified
16118 layout must be equal to the number of specified expressions.
16119
16120 duration, d
16121 Set the minimum duration of the sourced audio. See the Time
16122 duration section in the ffmpeg-utils(1) manual for the accepted
16123 syntax. Note that the resulting duration may be greater than the
16124 specified duration, as the generated audio is always cut at the end
16125 of a complete frame.
16126
16127 If not specified, or the expressed duration is negative, the audio
16128 is supposed to be generated forever.
16129
16130 nb_samples, n
16131 Set the number of samples per channel per each output frame,
16132 default to 1024.
16133
16134 sample_rate, s
16135 Specify the sample rate, default to 44100.
16136
16137 Each expression in exprs can contain the following constants:
16138
16139 n number of the evaluated sample, starting from 0
16140
16141 t time of the evaluated sample expressed in seconds, starting from 0
16142
16143 s sample rate
16144
16145 Examples
16146
16147 • Generate silence:
16148
16149 aevalsrc=0
16150
16151 • Generate a sin signal with frequency of 440 Hz, set sample rate to
16152 8000 Hz:
16153
16154 aevalsrc="sin(440*2*PI*t):s=8000"
16155
16156 • Generate a two channels signal, specify the channel layout (Front
16157 Center + Back Center) explicitly:
16158
16159 aevalsrc="sin(420*2*PI*t)|cos(430*2*PI*t):c=FC|BC"
16160
16161 • Generate white noise:
16162
16163 aevalsrc="-2+random(0)"
16164
16165 • Generate an amplitude modulated signal:
16166
16167 aevalsrc="sin(10*2*PI*t)*sin(880*2*PI*t)"
16168
16169 • Generate 2.5 Hz binaural beats on a 360 Hz carrier:
16170
16171 aevalsrc="0.1*sin(2*PI*(360-2.5/2)*t) | 0.1*sin(2*PI*(360+2.5/2)*t)"
16172
16173 afdelaysrc
16174 Generate a fractional delay FIR coefficients.
16175
16176 The resulting stream can be used with afir filter for filtering the
16177 audio signal.
16178
16179 The filter accepts the following options:
16180
16181 delay, d
16182 Set the fractional delay. Default is 0.
16183
16184 sample_rate, r
16185 Set the sample rate, default is 44100.
16186
16187 nb_samples, n
16188 Set the number of samples per each frame. Default is 1024.
16189
16190 taps, t
16191 Set the number of filter coefficents in output audio stream.
16192 Default value is 0.
16193
16194 channel_layout, c
16195 Specifies the channel layout, and can be a string representing a
16196 channel layout. The default value of channel_layout is "stereo".
16197
16198 afirsrc
16199 Generate a FIR coefficients using frequency sampling method.
16200
16201 The resulting stream can be used with afir filter for filtering the
16202 audio signal.
16203
16204 The filter accepts the following options:
16205
16206 taps, t
16207 Set number of filter coefficents in output audio stream. Default
16208 value is 1025.
16209
16210 frequency, f
16211 Set frequency points from where magnitude and phase are set. This
16212 must be in non decreasing order, and first element must be 0, while
16213 last element must be 1. Elements are separated by white spaces.
16214
16215 magnitude, m
16216 Set magnitude value for every frequency point set by frequency.
16217 Number of values must be same as number of frequency points.
16218 Values are separated by white spaces.
16219
16220 phase, p
16221 Set phase value for every frequency point set by frequency. Number
16222 of values must be same as number of frequency points. Values are
16223 separated by white spaces.
16224
16225 sample_rate, r
16226 Set sample rate, default is 44100.
16227
16228 nb_samples, n
16229 Set number of samples per each frame. Default is 1024.
16230
16231 win_func, w
16232 Set window function. Default is blackman.
16233
16234 anullsrc
16235 The null audio source, return unprocessed audio frames. It is mainly
16236 useful as a template and to be employed in analysis / debugging tools,
16237 or as the source for filters which ignore the input data (for example
16238 the sox synth filter).
16239
16240 This source accepts the following options:
16241
16242 channel_layout, cl
16243 Specifies the channel layout, and can be either an integer or a
16244 string representing a channel layout. The default value of
16245 channel_layout is "stereo".
16246
16247 Check the channel_layout_map definition in
16248 libavutil/channel_layout.c for the mapping between strings and
16249 channel layout values.
16250
16251 sample_rate, r
16252 Specifies the sample rate, and defaults to 44100.
16253
16254 nb_samples, n
16255 Set the number of samples per requested frames.
16256
16257 duration, d
16258 Set the duration of the sourced audio. See the Time duration
16259 section in the ffmpeg-utils(1) manual for the accepted syntax.
16260
16261 If not specified, or the expressed duration is negative, the audio
16262 is supposed to be generated forever.
16263
16264 Examples
16265
16266 • Set the sample rate to 48000 Hz and the channel layout to
16267 AV_CH_LAYOUT_MONO.
16268
16269 anullsrc=r=48000:cl=4
16270
16271 • Do the same operation with a more obvious syntax:
16272
16273 anullsrc=r=48000:cl=mono
16274
16275 All the parameters need to be explicitly defined.
16276
16277 flite
16278 Synthesize a voice utterance using the libflite library.
16279
16280 To enable compilation of this filter you need to configure FFmpeg with
16281 "--enable-libflite".
16282
16283 Note that versions of the flite library prior to 2.0 are not thread-
16284 safe.
16285
16286 The filter accepts the following options:
16287
16288 list_voices
16289 If set to 1, list the names of the available voices and exit
16290 immediately. Default value is 0.
16291
16292 nb_samples, n
16293 Set the maximum number of samples per frame. Default value is 512.
16294
16295 textfile
16296 Set the filename containing the text to speak.
16297
16298 text
16299 Set the text to speak.
16300
16301 voice, v
16302 Set the voice to use for the speech synthesis. Default value is
16303 "kal". See also the list_voices option.
16304
16305 Examples
16306
16307 • Read from file speech.txt, and synthesize the text using the
16308 standard flite voice:
16309
16310 flite=textfile=speech.txt
16311
16312 • Read the specified text selecting the "slt" voice:
16313
16314 flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
16315
16316 • Input text to ffmpeg:
16317
16318 ffmpeg -f lavfi -i flite=text='So fare thee well, poor devil of a Sub-Sub, whose commentator I am':voice=slt
16319
16320 • Make ffplay speak the specified text, using "flite" and the "lavfi"
16321 device:
16322
16323 ffplay -f lavfi flite=text='No more be grieved for which that thou hast done.'
16324
16325 For more information about libflite, check:
16326 <http://www.festvox.org/flite/>
16327
16328 anoisesrc
16329 Generate a noise audio signal.
16330
16331 The filter accepts the following options:
16332
16333 sample_rate, r
16334 Specify the sample rate. Default value is 48000 Hz.
16335
16336 amplitude, a
16337 Specify the amplitude (0.0 - 1.0) of the generated audio stream.
16338 Default value is 1.0.
16339
16340 duration, d
16341 Specify the duration of the generated audio stream. Not specifying
16342 this option results in noise with an infinite length.
16343
16344 color, colour, c
16345 Specify the color of noise. Available noise colors are white, pink,
16346 brown, blue, violet and velvet. Default color is white.
16347
16348 seed, s
16349 Specify a value used to seed the PRNG.
16350
16351 nb_samples, n
16352 Set the number of samples per each output frame, default is 1024.
16353
16354 Examples
16355
16356 • Generate 60 seconds of pink noise, with a 44.1 kHz sampling rate
16357 and an amplitude of 0.5:
16358
16359 anoisesrc=d=60:c=pink:r=44100:a=0.5
16360
16361 hilbert
16362 Generate odd-tap Hilbert transform FIR coefficients.
16363
16364 The resulting stream can be used with afir filter for phase-shifting
16365 the signal by 90 degrees.
16366
16367 This is used in many matrix coding schemes and for analytic signal
16368 generation. The process is often written as a multiplication by i (or
16369 j), the imaginary unit.
16370
16371 The filter accepts the following options:
16372
16373 sample_rate, s
16374 Set sample rate, default is 44100.
16375
16376 taps, t
16377 Set length of FIR filter, default is 22051.
16378
16379 nb_samples, n
16380 Set number of samples per each frame.
16381
16382 win_func, w
16383 Set window function to be used when generating FIR coefficients.
16384
16385 sinc
16386 Generate a sinc kaiser-windowed low-pass, high-pass, band-pass, or
16387 band-reject FIR coefficients.
16388
16389 The resulting stream can be used with afir filter for filtering the
16390 audio signal.
16391
16392 The filter accepts the following options:
16393
16394 sample_rate, r
16395 Set sample rate, default is 44100.
16396
16397 nb_samples, n
16398 Set number of samples per each frame. Default is 1024.
16399
16400 hp Set high-pass frequency. Default is 0.
16401
16402 lp Set low-pass frequency. Default is 0. If high-pass frequency is
16403 lower than low-pass frequency and low-pass frequency is higher than
16404 0 then filter will create band-pass filter coefficients, otherwise
16405 band-reject filter coefficients.
16406
16407 phase
16408 Set filter phase response. Default is 50. Allowed range is from 0
16409 to 100.
16410
16411 beta
16412 Set Kaiser window beta.
16413
16414 att Set stop-band attenuation. Default is 120dB, allowed range is from
16415 40 to 180 dB.
16416
16417 round
16418 Enable rounding, by default is disabled.
16419
16420 hptaps
16421 Set number of taps for high-pass filter.
16422
16423 lptaps
16424 Set number of taps for low-pass filter.
16425
16426 sine
16427 Generate an audio signal made of a sine wave with amplitude 1/8.
16428
16429 The audio signal is bit-exact.
16430
16431 The filter accepts the following options:
16432
16433 frequency, f
16434 Set the carrier frequency. Default is 440 Hz.
16435
16436 beep_factor, b
16437 Enable a periodic beep every second with frequency beep_factor
16438 times the carrier frequency. Default is 0, meaning the beep is
16439 disabled.
16440
16441 sample_rate, r
16442 Specify the sample rate, default is 44100.
16443
16444 duration, d
16445 Specify the duration of the generated audio stream.
16446
16447 samples_per_frame
16448 Set the number of samples per output frame.
16449
16450 The expression can contain the following constants:
16451
16452 n The (sequential) number of the output audio frame, starting
16453 from 0.
16454
16455 pts The PTS (Presentation TimeStamp) of the output audio frame,
16456 expressed in TB units.
16457
16458 t The PTS of the output audio frame, expressed in seconds.
16459
16460 TB The timebase of the output audio frames.
16461
16462 Default is 1024.
16463
16464 Examples
16465
16466 • Generate a simple 440 Hz sine wave:
16467
16468 sine
16469
16470 • Generate a 220 Hz sine wave with a 880 Hz beep each second, for 5
16471 seconds:
16472
16473 sine=220:4:d=5
16474 sine=f=220:b=4:d=5
16475 sine=frequency=220:beep_factor=4:duration=5
16476
16477 • Generate a 1 kHz sine wave following "1602,1601,1602,1601,1602"
16478 NTSC pattern:
16479
16480 sine=1000:samples_per_frame='st(0,mod(n,5)); 1602-not(not(eq(ld(0),1)+eq(ld(0),3)))'
16481
16483 Below is a description of the currently available audio sinks.
16484
16485 abuffersink
16486 Buffer audio frames, and make them available to the end of filter
16487 chain.
16488
16489 This sink is mainly intended for programmatic use, in particular
16490 through the interface defined in libavfilter/buffersink.h or the
16491 options system.
16492
16493 It accepts a pointer to an AVABufferSinkContext structure, which
16494 defines the incoming buffers' formats, to be passed as the opaque
16495 parameter to "avfilter_init_filter" for initialization.
16496
16497 anullsink
16498 Null audio sink; do absolutely nothing with the input audio. It is
16499 mainly useful as a template and for use in analysis / debugging tools.
16500
16502 When you configure your FFmpeg build, you can disable any of the
16503 existing filters using "--disable-filters". The configure output will
16504 show the video filters included in your build.
16505
16506 Below is a description of the currently available video filters.
16507
16508 addroi
16509 Mark a region of interest in a video frame.
16510
16511 The frame data is passed through unchanged, but metadata is attached to
16512 the frame indicating regions of interest which can affect the behaviour
16513 of later encoding. Multiple regions can be marked by applying the
16514 filter multiple times.
16515
16516 x Region distance in pixels from the left edge of the frame.
16517
16518 y Region distance in pixels from the top edge of the frame.
16519
16520 w Region width in pixels.
16521
16522 h Region height in pixels.
16523
16524 The parameters x, y, w and h are expressions, and may contain the
16525 following variables:
16526
16527 iw Width of the input frame.
16528
16529 ih Height of the input frame.
16530
16531 qoffset
16532 Quantisation offset to apply within the region.
16533
16534 This must be a real value in the range -1 to +1. A value of zero
16535 indicates no quality change. A negative value asks for better
16536 quality (less quantisation), while a positive value asks for worse
16537 quality (greater quantisation).
16538
16539 The range is calibrated so that the extreme values indicate the
16540 largest possible offset - if the rest of the frame is encoded with
16541 the worst possible quality, an offset of -1 indicates that this
16542 region should be encoded with the best possible quality anyway.
16543 Intermediate values are then interpolated in some codec-dependent
16544 way.
16545
16546 For example, in 10-bit H.264 the quantisation parameter varies
16547 between -12 and 51. A typical qoffset value of -1/10 therefore
16548 indicates that this region should be encoded with a QP around one-
16549 tenth of the full range better than the rest of the frame. So, if
16550 most of the frame were to be encoded with a QP of around 30, this
16551 region would get a QP of around 24 (an offset of approximately
16552 -1/10 * (51 - -12) = -6.3). An extreme value of -1 would indicate
16553 that this region should be encoded with the best possible quality
16554 regardless of the treatment of the rest of the frame - that is,
16555 should be encoded at a QP of -12.
16556
16557 clear
16558 If set to true, remove any existing regions of interest marked on
16559 the frame before adding the new one.
16560
16561 Examples
16562
16563 • Mark the centre quarter of the frame as interesting.
16564
16565 addroi=iw/4:ih/4:iw/2:ih/2:-1/10
16566
16567 • Mark the 100-pixel-wide region on the left edge of the frame as
16568 very uninteresting (to be encoded at much lower quality than the
16569 rest of the frame).
16570
16571 addroi=0:0:100:ih:+1/5
16572
16573 alphaextract
16574 Extract the alpha component from the input as a grayscale video. This
16575 is especially useful with the alphamerge filter.
16576
16577 alphamerge
16578 Add or replace the alpha component of the primary input with the
16579 grayscale value of a second input. This is intended for use with
16580 alphaextract to allow the transmission or storage of frame sequences
16581 that have alpha in a format that doesn't support an alpha channel.
16582
16583 For example, to reconstruct full frames from a normal YUV-encoded video
16584 and a separate video created with alphaextract, you might use:
16585
16586 movie=in_alpha.mkv [alpha]; [in][alpha] alphamerge [out]
16587
16588 amplify
16589 Amplify differences between current pixel and pixels of adjacent frames
16590 in same pixel location.
16591
16592 This filter accepts the following options:
16593
16594 radius
16595 Set frame radius. Default is 2. Allowed range is from 1 to 63. For
16596 example radius of 3 will instruct filter to calculate average of 7
16597 frames.
16598
16599 factor
16600 Set factor to amplify difference. Default is 2. Allowed range is
16601 from 0 to 65535.
16602
16603 threshold
16604 Set threshold for difference amplification. Any difference greater
16605 or equal to this value will not alter source pixel. Default is 10.
16606 Allowed range is from 0 to 65535.
16607
16608 tolerance
16609 Set tolerance for difference amplification. Any difference lower to
16610 this value will not alter source pixel. Default is 0. Allowed
16611 range is from 0 to 65535.
16612
16613 low Set lower limit for changing source pixel. Default is 65535.
16614 Allowed range is from 0 to 65535. This option controls maximum
16615 possible value that will decrease source pixel value.
16616
16617 high
16618 Set high limit for changing source pixel. Default is 65535. Allowed
16619 range is from 0 to 65535. This option controls maximum possible
16620 value that will increase source pixel value.
16621
16622 planes
16623 Set which planes to filter. Default is all. Allowed range is from 0
16624 to 15.
16625
16626 Commands
16627
16628 This filter supports the following commands that corresponds to option
16629 of same name:
16630
16631 factor
16632 threshold
16633 tolerance
16634 low
16635 high
16636 planes
16637
16638 ass
16639 Same as the subtitles filter, except that it doesn't require libavcodec
16640 and libavformat to work. On the other hand, it is limited to ASS
16641 (Advanced Substation Alpha) subtitles files.
16642
16643 This filter accepts the following option in addition to the common
16644 options from the subtitles filter:
16645
16646 shaping
16647 Set the shaping engine
16648
16649 Available values are:
16650
16651 auto
16652 The default libass shaping engine, which is the best available.
16653
16654 simple
16655 Fast, font-agnostic shaper that can do only substitutions
16656
16657 complex
16658 Slower shaper using OpenType for substitutions and positioning
16659
16660 The default is "auto".
16661
16662 atadenoise
16663 Apply an Adaptive Temporal Averaging Denoiser to the video input.
16664
16665 The filter accepts the following options:
16666
16667 0a Set threshold A for 1st plane. Default is 0.02. Valid range is 0
16668 to 0.3.
16669
16670 0b Set threshold B for 1st plane. Default is 0.04. Valid range is 0
16671 to 5.
16672
16673 1a Set threshold A for 2nd plane. Default is 0.02. Valid range is 0
16674 to 0.3.
16675
16676 1b Set threshold B for 2nd plane. Default is 0.04. Valid range is 0
16677 to 5.
16678
16679 2a Set threshold A for 3rd plane. Default is 0.02. Valid range is 0
16680 to 0.3.
16681
16682 2b Set threshold B for 3rd plane. Default is 0.04. Valid range is 0
16683 to 5.
16684
16685 Threshold A is designed to react on abrupt changes in the input
16686 signal and threshold B is designed to react on continuous changes
16687 in the input signal.
16688
16689 s Set number of frames filter will use for averaging. Default is 9.
16690 Must be odd number in range [5, 129].
16691
16692 p Set what planes of frame filter will use for averaging. Default is
16693 all.
16694
16695 a Set what variant of algorithm filter will use for averaging.
16696 Default is "p" parallel. Alternatively can be set to "s" serial.
16697
16698 Parallel can be faster then serial, while other way around is never
16699 true. Parallel will abort early on first change being greater then
16700 thresholds, while serial will continue processing other side of
16701 frames if they are equal or below thresholds.
16702
16703 0s
16704 1s
16705 2s Set sigma for 1st plane, 2nd plane or 3rd plane. Default is 32767.
16706 Valid range is from 0 to 32767. This options controls weight for
16707 each pixel in radius defined by size. Default value means every
16708 pixel have same weight. Setting this option to 0 effectively
16709 disables filtering.
16710
16711 Commands
16712
16713 This filter supports same commands as options except option "s". The
16714 command accepts the same syntax of the corresponding option.
16715
16716 avgblur
16717 Apply average blur filter.
16718
16719 The filter accepts the following options:
16720
16721 sizeX
16722 Set horizontal radius size.
16723
16724 planes
16725 Set which planes to filter. By default all planes are filtered.
16726
16727 sizeY
16728 Set vertical radius size, if zero it will be same as "sizeX".
16729 Default is 0.
16730
16731 Commands
16732
16733 This filter supports same commands as options. The command accepts the
16734 same syntax of the corresponding option.
16735
16736 If the specified expression is not valid, it is kept at its current
16737 value.
16738
16739 backgroundkey
16740 Turns a static background into transparency.
16741
16742 The filter accepts the following option:
16743
16744 threshold
16745 Threshold for scene change detection.
16746
16747 similarity
16748 Similarity percentage with the background.
16749
16750 blend
16751 Set the blend amount for pixels that are not similar.
16752
16753 Commands
16754
16755 This filter supports the all above options as commands.
16756
16757 bbox
16758 Compute the bounding box for the non-black pixels in the input frame
16759 luminance plane.
16760
16761 This filter computes the bounding box containing all the pixels with a
16762 luminance value greater than the minimum allowed value. The parameters
16763 describing the bounding box are printed on the filter log.
16764
16765 The filter accepts the following option:
16766
16767 min_val
16768 Set the minimal luminance value. Default is 16.
16769
16770 Commands
16771
16772 This filter supports the all above options as commands.
16773
16774 bilateral
16775 Apply bilateral filter, spatial smoothing while preserving edges.
16776
16777 The filter accepts the following options:
16778
16779 sigmaS
16780 Set sigma of gaussian function to calculate spatial weight.
16781 Allowed range is 0 to 512. Default is 0.1.
16782
16783 sigmaR
16784 Set sigma of gaussian function to calculate range weight. Allowed
16785 range is 0 to 1. Default is 0.1.
16786
16787 planes
16788 Set planes to filter. Default is first only.
16789
16790 Commands
16791
16792 This filter supports the all above options as commands.
16793
16794 bilateral_cuda
16795 CUDA accelerated bilateral filter, an edge preserving filter. This
16796 filter is mathematically accurate thanks to the use of GPU
16797 acceleration. For best output quality, use one to one chroma
16798 subsampling, i.e. yuv444p format.
16799
16800 The filter accepts the following options:
16801
16802 sigmaS
16803 Set sigma of gaussian function to calculate spatial weight, also
16804 called sigma space. Allowed range is 0.1 to 512. Default is 0.1.
16805
16806 sigmaR
16807 Set sigma of gaussian function to calculate color range weight,
16808 also called sigma color. Allowed range is 0.1 to 512. Default is
16809 0.1.
16810
16811 window_size
16812 Set window size of the bilateral function to determine the number
16813 of neighbours to loop on. If the number entered is even, one will
16814 be added automatically. Allowed range is 1 to 255. Default is 1.
16815
16816 Examples
16817
16818 • Apply the bilateral filter on a video.
16819
16820 ./ffmpeg -v verbose \
16821 -hwaccel cuda -hwaccel_output_format cuda -i input.mp4 \
16822 -init_hw_device cuda \
16823 -filter_complex \
16824 " \
16825 [0:v]scale_cuda=format=yuv444p[scaled_video];
16826 [scaled_video]bilateral_cuda=window_size=9:sigmaS=3.0:sigmaR=50.0" \
16827 -an -sn -c:v h264_nvenc -cq 20 out.mp4
16828
16829 bitplanenoise
16830 Show and measure bit plane noise.
16831
16832 The filter accepts the following options:
16833
16834 bitplane
16835 Set which plane to analyze. Default is 1.
16836
16837 filter
16838 Filter out noisy pixels from "bitplane" set above. Default is
16839 disabled.
16840
16841 blackdetect
16842 Detect video intervals that are (almost) completely black. Can be
16843 useful to detect chapter transitions, commercials, or invalid
16844 recordings.
16845
16846 The filter outputs its detection analysis to both the log as well as
16847 frame metadata. If a black segment of at least the specified minimum
16848 duration is found, a line with the start and end timestamps as well as
16849 duration is printed to the log with level "info". In addition, a log
16850 line with level "debug" is printed per frame showing the black amount
16851 detected for that frame.
16852
16853 The filter also attaches metadata to the first frame of a black segment
16854 with key "lavfi.black_start" and to the first frame after the black
16855 segment ends with key "lavfi.black_end". The value is the frame's
16856 timestamp. This metadata is added regardless of the minimum duration
16857 specified.
16858
16859 The filter accepts the following options:
16860
16861 black_min_duration, d
16862 Set the minimum detected black duration expressed in seconds. It
16863 must be a non-negative floating point number.
16864
16865 Default value is 2.0.
16866
16867 picture_black_ratio_th, pic_th
16868 Set the threshold for considering a picture "black". Express the
16869 minimum value for the ratio:
16870
16871 <nb_black_pixels> / <nb_pixels>
16872
16873 for which a picture is considered black. Default value is 0.98.
16874
16875 pixel_black_th, pix_th
16876 Set the threshold for considering a pixel "black".
16877
16878 The threshold expresses the maximum pixel luminance value for which
16879 a pixel is considered "black". The provided value is scaled
16880 according to the following equation:
16881
16882 <absolute_threshold> = <luminance_minimum_value> + <pixel_black_th> * <luminance_range_size>
16883
16884 luminance_range_size and luminance_minimum_value depend on the
16885 input video format, the range is [0-255] for YUV full-range formats
16886 and [16-235] for YUV non full-range formats.
16887
16888 Default value is 0.10.
16889
16890 The following example sets the maximum pixel threshold to the minimum
16891 value, and detects only black intervals of 2 or more seconds:
16892
16893 blackdetect=d=2:pix_th=0.00
16894
16895 blackframe
16896 Detect frames that are (almost) completely black. Can be useful to
16897 detect chapter transitions or commercials. Output lines consist of the
16898 frame number of the detected frame, the percentage of blackness, the
16899 position in the file if known or -1 and the timestamp in seconds.
16900
16901 In order to display the output lines, you need to set the loglevel at
16902 least to the AV_LOG_INFO value.
16903
16904 This filter exports frame metadata "lavfi.blackframe.pblack". The
16905 value represents the percentage of pixels in the picture that are below
16906 the threshold value.
16907
16908 It accepts the following parameters:
16909
16910 amount
16911 The percentage of the pixels that have to be below the threshold;
16912 it defaults to 98.
16913
16914 threshold, thresh
16915 The threshold below which a pixel value is considered black; it
16916 defaults to 32.
16917
16918 blend
16919 Blend two video frames into each other.
16920
16921 The "blend" filter takes two input streams and outputs one stream, the
16922 first input is the "top" layer and second input is "bottom" layer. By
16923 default, the output terminates when the longest input terminates.
16924
16925 The "tblend" (time blend) filter takes two consecutive frames from one
16926 single stream, and outputs the result obtained by blending the new
16927 frame on top of the old frame.
16928
16929 A description of the accepted options follows.
16930
16931 c0_mode
16932 c1_mode
16933 c2_mode
16934 c3_mode
16935 all_mode
16936 Set blend mode for specific pixel component or all pixel components
16937 in case of all_mode. Default value is "normal".
16938
16939 Available values for component modes are:
16940
16941 addition
16942 and
16943 average
16944 bleach
16945 burn
16946 darken
16947 difference
16948 divide
16949 dodge
16950 exclusion
16951 extremity
16952 freeze
16953 geometric
16954 glow
16955 grainextract
16956 grainmerge
16957 hardlight
16958 hardmix
16959 hardoverlay
16960 harmonic
16961 heat
16962 interpolate
16963 lighten
16964 linearlight
16965 multiply
16966 multiply128
16967 negation
16968 normal
16969 or
16970 overlay
16971 phoenix
16972 pinlight
16973 reflect
16974 screen
16975 softdifference
16976 softlight
16977 stain
16978 subtract
16979 vividlight
16980 xor
16981 c0_opacity
16982 c1_opacity
16983 c2_opacity
16984 c3_opacity
16985 all_opacity
16986 Set blend opacity for specific pixel component or all pixel
16987 components in case of all_opacity. Only used in combination with
16988 pixel component blend modes.
16989
16990 c0_expr
16991 c1_expr
16992 c2_expr
16993 c3_expr
16994 all_expr
16995 Set blend expression for specific pixel component or all pixel
16996 components in case of all_expr. Note that related mode options will
16997 be ignored if those are set.
16998
16999 The expressions can use the following variables:
17000
17001 N The sequential number of the filtered frame, starting from 0.
17002
17003 X
17004 Y the coordinates of the current sample
17005
17006 W
17007 H the width and height of currently filtered plane
17008
17009 SW
17010 SH Width and height scale for the plane being filtered. It is the
17011 ratio between the dimensions of the current plane to the luma
17012 plane, e.g. for a "yuv420p" frame, the values are "1,1" for the
17013 luma plane and "0.5,0.5" for the chroma planes.
17014
17015 T Time of the current frame, expressed in seconds.
17016
17017 TOP, A
17018 Value of pixel component at current location for first video
17019 frame (top layer).
17020
17021 BOTTOM, B
17022 Value of pixel component at current location for second video
17023 frame (bottom layer).
17024
17025 The "blend" filter also supports the framesync options.
17026
17027 Examples
17028
17029 • Apply transition from bottom layer to top layer in first 10
17030 seconds:
17031
17032 blend=all_expr='A*(if(gte(T,10),1,T/10))+B*(1-(if(gte(T,10),1,T/10)))'
17033
17034 • Apply linear horizontal transition from top layer to bottom layer:
17035
17036 blend=all_expr='A*(X/W)+B*(1-X/W)'
17037
17038 • Apply 1x1 checkerboard effect:
17039
17040 blend=all_expr='if(eq(mod(X,2),mod(Y,2)),A,B)'
17041
17042 • Apply uncover left effect:
17043
17044 blend=all_expr='if(gte(N*SW+X,W),A,B)'
17045
17046 • Apply uncover down effect:
17047
17048 blend=all_expr='if(gte(Y-N*SH,0),A,B)'
17049
17050 • Apply uncover up-left effect:
17051
17052 blend=all_expr='if(gte(T*SH*40+Y,H)*gte((T*40*SW+X)*W/H,W),A,B)'
17053
17054 • Split diagonally video and shows top and bottom layer on each side:
17055
17056 blend=all_expr='if(gt(X,Y*(W/H)),A,B)'
17057
17058 • Display differences between the current and the previous frame:
17059
17060 tblend=all_mode=grainextract
17061
17062 Commands
17063
17064 This filter supports same commands as options.
17065
17066 blockdetect
17067 Determines blockiness of frames without altering the input frames.
17068
17069 Based on Remco Muijs and Ihor Kirenko: "A no-reference blocking
17070 artifact measure for adaptive video processing." 2005 13th European
17071 signal processing conference.
17072
17073 The filter accepts the following options:
17074
17075 period_min
17076 period_max
17077 Set minimum and maximum values for determining pixel grids
17078 (periods). Default values are [3,24].
17079
17080 planes
17081 Set planes to filter. Default is first only.
17082
17083 Examples
17084
17085 • Determine blockiness for the first plane and search for periods
17086 within [8,32]:
17087
17088 blockdetect=period_min=8:period_max=32:planes=1
17089
17090 blurdetect
17091 Determines blurriness of frames without altering the input frames.
17092
17093 Based on Marziliano, Pina, et al. "A no-reference perceptual blur
17094 metric." Allows for a block-based abbreviation.
17095
17096 The filter accepts the following options:
17097
17098 low
17099 high
17100 Set low and high threshold values used by the Canny thresholding
17101 algorithm.
17102
17103 The high threshold selects the "strong" edge pixels, which are then
17104 connected through 8-connectivity with the "weak" edge pixels
17105 selected by the low threshold.
17106
17107 low and high threshold values must be chosen in the range [0,1],
17108 and low should be lesser or equal to high.
17109
17110 Default value for low is "20/255", and default value for high is
17111 "50/255".
17112
17113 radius
17114 Define the radius to search around an edge pixel for local maxima.
17115
17116 block_pct
17117 Determine blurriness only for the most significant blocks, given in
17118 percentage.
17119
17120 block_width
17121 Determine blurriness for blocks of width block_width. If set to any
17122 value smaller 1, no blocks are used and the whole image is
17123 processed as one no matter of block_height.
17124
17125 block_height
17126 Determine blurriness for blocks of height block_height. If set to
17127 any value smaller 1, no blocks are used and the whole image is
17128 processed as one no matter of block_width.
17129
17130 planes
17131 Set planes to filter. Default is first only.
17132
17133 Examples
17134
17135 • Determine blur for 80% of most significant 32x32 blocks:
17136
17137 blurdetect=block_width=32:block_height=32:block_pct=80
17138
17139 bm3d
17140 Denoise frames using Block-Matching 3D algorithm.
17141
17142 The filter accepts the following options.
17143
17144 sigma
17145 Set denoising strength. Default value is 1. Allowed range is from
17146 0 to 999.9. The denoising algorithm is very sensitive to sigma, so
17147 adjust it according to the source.
17148
17149 block
17150 Set local patch size. This sets dimensions in 2D.
17151
17152 bstep
17153 Set sliding step for processing blocks. Default value is 4.
17154 Allowed range is from 1 to 64. Smaller values allows processing
17155 more reference blocks and is slower.
17156
17157 group
17158 Set maximal number of similar blocks for 3rd dimension. Default
17159 value is 1. When set to 1, no block matching is done. Larger
17160 values allows more blocks in single group. Allowed range is from 1
17161 to 256.
17162
17163 range
17164 Set radius for search block matching. Default is 9. Allowed range
17165 is from 1 to INT32_MAX.
17166
17167 mstep
17168 Set step between two search locations for block matching. Default
17169 is 1. Allowed range is from 1 to 64. Smaller is slower.
17170
17171 thmse
17172 Set threshold of mean square error for block matching. Valid range
17173 is 0 to INT32_MAX.
17174
17175 hdthr
17176 Set thresholding parameter for hard thresholding in 3D transformed
17177 domain. Larger values results in stronger hard-thresholding
17178 filtering in frequency domain.
17179
17180 estim
17181 Set filtering estimation mode. Can be "basic" or "final". Default
17182 is "basic".
17183
17184 ref If enabled, filter will use 2nd stream for block matching. Default
17185 is disabled for "basic" value of estim option, and always enabled
17186 if value of estim is "final".
17187
17188 planes
17189 Set planes to filter. Default is all available except alpha.
17190
17191 Examples
17192
17193 • Basic filtering with bm3d:
17194
17195 bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic
17196
17197 • Same as above, but filtering only luma:
17198
17199 bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic:planes=1
17200
17201 • Same as above, but with both estimation modes:
17202
17203 split[a][b],[a]bm3d=sigma=3:block=4:bstep=2:group=1:estim=basic[a],[b][a]bm3d=sigma=3:block=4:bstep=2:group=16:estim=final:ref=1
17204
17205 • Same as above, but prefilter with nlmeans filter instead:
17206
17207 split[a][b],[a]nlmeans=s=3:r=7:p=3[a],[b][a]bm3d=sigma=3:block=4:bstep=2:group=16:estim=final:ref=1
17208
17209 boxblur
17210 Apply a boxblur algorithm to the input video.
17211
17212 It accepts the following parameters:
17213
17214 luma_radius, lr
17215 luma_power, lp
17216 chroma_radius, cr
17217 chroma_power, cp
17218 alpha_radius, ar
17219 alpha_power, ap
17220
17221 A description of the accepted options follows.
17222
17223 luma_radius, lr
17224 chroma_radius, cr
17225 alpha_radius, ar
17226 Set an expression for the box radius in pixels used for blurring
17227 the corresponding input plane.
17228
17229 The radius value must be a non-negative number, and must not be
17230 greater than the value of the expression "min(w,h)/2" for the luma
17231 and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
17232
17233 Default value for luma_radius is "2". If not specified,
17234 chroma_radius and alpha_radius default to the corresponding value
17235 set for luma_radius.
17236
17237 The expressions can contain the following constants:
17238
17239 w
17240 h The input width and height in pixels.
17241
17242 cw
17243 ch The input chroma image width and height in pixels.
17244
17245 hsub
17246 vsub
17247 The horizontal and vertical chroma subsample values. For
17248 example, for the pixel format "yuv422p", hsub is 2 and vsub is
17249 1.
17250
17251 luma_power, lp
17252 chroma_power, cp
17253 alpha_power, ap
17254 Specify how many times the boxblur filter is applied to the
17255 corresponding plane.
17256
17257 Default value for luma_power is 2. If not specified, chroma_power
17258 and alpha_power default to the corresponding value set for
17259 luma_power.
17260
17261 A value of 0 will disable the effect.
17262
17263 Examples
17264
17265 • Apply a boxblur filter with the luma, chroma, and alpha radii set
17266 to 2:
17267
17268 boxblur=luma_radius=2:luma_power=1
17269 boxblur=2:1
17270
17271 • Set the luma radius to 2, and alpha and chroma radius to 0:
17272
17273 boxblur=2:1:cr=0:ar=0
17274
17275 • Set the luma and chroma radii to a fraction of the video dimension:
17276
17277 boxblur=luma_radius=min(h\,w)/10:luma_power=1:chroma_radius=min(cw\,ch)/10:chroma_power=1
17278
17279 bwdif
17280 Deinterlace the input video ("bwdif" stands for "Bob Weaver
17281 Deinterlacing Filter").
17282
17283 Motion adaptive deinterlacing based on yadif with the use of w3fdif and
17284 cubic interpolation algorithms. It accepts the following parameters:
17285
17286 mode
17287 The interlacing mode to adopt. It accepts one of the following
17288 values:
17289
17290 0, send_frame
17291 Output one frame for each frame.
17292
17293 1, send_field
17294 Output one frame for each field.
17295
17296 The default value is "send_field".
17297
17298 parity
17299 The picture field parity assumed for the input interlaced video. It
17300 accepts one of the following values:
17301
17302 0, tff
17303 Assume the top field is first.
17304
17305 1, bff
17306 Assume the bottom field is first.
17307
17308 -1, auto
17309 Enable automatic detection of field parity.
17310
17311 The default value is "auto". If the interlacing is unknown or the
17312 decoder does not export this information, top field first will be
17313 assumed.
17314
17315 deint
17316 Specify which frames to deinterlace. Accepts one of the following
17317 values:
17318
17319 0, all
17320 Deinterlace all frames.
17321
17322 1, interlaced
17323 Only deinterlace frames marked as interlaced.
17324
17325 The default value is "all".
17326
17327 cas
17328 Apply Contrast Adaptive Sharpen filter to video stream.
17329
17330 The filter accepts the following options:
17331
17332 strength
17333 Set the sharpening strength. Default value is 0.
17334
17335 planes
17336 Set planes to filter. Default value is to filter all planes except
17337 alpha plane.
17338
17339 Commands
17340
17341 This filter supports same commands as options.
17342
17343 chromahold
17344 Remove all color information for all colors except for certain one.
17345
17346 The filter accepts the following options:
17347
17348 color
17349 The color which will not be replaced with neutral chroma.
17350
17351 similarity
17352 Similarity percentage with the above color. 0.01 matches only the
17353 exact key color, while 1.0 matches everything.
17354
17355 blend
17356 Blend percentage. 0.0 makes pixels either fully gray, or not gray
17357 at all. Higher values result in more preserved color.
17358
17359 yuv Signals that the color passed is already in YUV instead of RGB.
17360
17361 Literal colors like "green" or "red" don't make sense with this
17362 enabled anymore. This can be used to pass exact YUV values as
17363 hexadecimal numbers.
17364
17365 Commands
17366
17367 This filter supports same commands as options. The command accepts the
17368 same syntax of the corresponding option.
17369
17370 If the specified expression is not valid, it is kept at its current
17371 value.
17372
17373 chromakey
17374 YUV colorspace color/chroma keying.
17375
17376 The filter accepts the following options:
17377
17378 color
17379 The color which will be replaced with transparency.
17380
17381 similarity
17382 Similarity percentage with the key color.
17383
17384 0.01 matches only the exact key color, while 1.0 matches
17385 everything.
17386
17387 blend
17388 Blend percentage.
17389
17390 0.0 makes pixels either fully transparent, or not transparent at
17391 all.
17392
17393 Higher values result in semi-transparent pixels, with a higher
17394 transparency the more similar the pixels color is to the key color.
17395
17396 yuv Signals that the color passed is already in YUV instead of RGB.
17397
17398 Literal colors like "green" or "red" don't make sense with this
17399 enabled anymore. This can be used to pass exact YUV values as
17400 hexadecimal numbers.
17401
17402 Commands
17403
17404 This filter supports same commands as options. The command accepts the
17405 same syntax of the corresponding option.
17406
17407 If the specified expression is not valid, it is kept at its current
17408 value.
17409
17410 Examples
17411
17412 • Make every green pixel in the input image transparent:
17413
17414 ffmpeg -i input.png -vf chromakey=green out.png
17415
17416 • Overlay a greenscreen-video on top of a static black background.
17417
17418 ffmpeg -f lavfi -i color=c=black:s=1280x720 -i video.mp4 -shortest -filter_complex "[1:v]chromakey=0x70de77:0.1:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.mkv
17419
17420 chromakey_cuda
17421 CUDA accelerated YUV colorspace color/chroma keying.
17422
17423 This filter works like normal chromakey filter but operates on CUDA
17424 frames. for more details and parameters see chromakey.
17425
17426 Examples
17427
17428 • Make all the green pixels in the input video transparent and use it
17429 as an overlay for another video:
17430
17431 ./ffmpeg \
17432 -hwaccel cuda -hwaccel_output_format cuda -i input_green.mp4 \
17433 -hwaccel cuda -hwaccel_output_format cuda -i base_video.mp4 \
17434 -init_hw_device cuda \
17435 -filter_complex \
17436 " \
17437 [0:v]chromakey_cuda=0x25302D:0.1:0.12:1[overlay_video]; \
17438 [1:v]scale_cuda=format=yuv420p[base]; \
17439 [base][overlay_video]overlay_cuda" \
17440 -an -sn -c:v h264_nvenc -cq 20 output.mp4
17441
17442 • Process two software sources, explicitly uploading the frames:
17443
17444 ./ffmpeg -init_hw_device cuda=cuda -filter_hw_device cuda \
17445 -f lavfi -i color=size=800x600:color=white,format=yuv420p \
17446 -f lavfi -i yuvtestsrc=size=200x200,format=yuv420p \
17447 -filter_complex \
17448 " \
17449 [0]hwupload[under]; \
17450 [1]hwupload,chromakey_cuda=green:0.1:0.12[over]; \
17451 [under][over]overlay_cuda" \
17452 -c:v hevc_nvenc -cq 18 -preset slow output.mp4
17453
17454 chromanr
17455 Reduce chrominance noise.
17456
17457 The filter accepts the following options:
17458
17459 thres
17460 Set threshold for averaging chrominance values. Sum of absolute
17461 difference of Y, U and V pixel components of current pixel and
17462 neighbour pixels lower than this threshold will be used in
17463 averaging. Luma component is left unchanged and is copied to
17464 output. Default value is 30. Allowed range is from 1 to 200.
17465
17466 sizew
17467 Set horizontal radius of rectangle used for averaging. Allowed
17468 range is from 1 to 100. Default value is 5.
17469
17470 sizeh
17471 Set vertical radius of rectangle used for averaging. Allowed range
17472 is from 1 to 100. Default value is 5.
17473
17474 stepw
17475 Set horizontal step when averaging. Default value is 1. Allowed
17476 range is from 1 to 50. Mostly useful to speed-up filtering.
17477
17478 steph
17479 Set vertical step when averaging. Default value is 1. Allowed
17480 range is from 1 to 50. Mostly useful to speed-up filtering.
17481
17482 threy
17483 Set Y threshold for averaging chrominance values. Set finer
17484 control for max allowed difference between Y components of current
17485 pixel and neigbour pixels. Default value is 200. Allowed range is
17486 from 1 to 200.
17487
17488 threu
17489 Set U threshold for averaging chrominance values. Set finer
17490 control for max allowed difference between U components of current
17491 pixel and neigbour pixels. Default value is 200. Allowed range is
17492 from 1 to 200.
17493
17494 threv
17495 Set V threshold for averaging chrominance values. Set finer
17496 control for max allowed difference between V components of current
17497 pixel and neigbour pixels. Default value is 200. Allowed range is
17498 from 1 to 200.
17499
17500 distance
17501 Set distance type used in calculations.
17502
17503 manhattan
17504 Absolute difference.
17505
17506 euclidean
17507 Difference squared.
17508
17509 Default distance type is manhattan.
17510
17511 Commands
17512
17513 This filter supports same commands as options. The command accepts the
17514 same syntax of the corresponding option.
17515
17516 chromashift
17517 Shift chroma pixels horizontally and/or vertically.
17518
17519 The filter accepts the following options:
17520
17521 cbh Set amount to shift chroma-blue horizontally.
17522
17523 cbv Set amount to shift chroma-blue vertically.
17524
17525 crh Set amount to shift chroma-red horizontally.
17526
17527 crv Set amount to shift chroma-red vertically.
17528
17529 edge
17530 Set edge mode, can be smear, default, or warp.
17531
17532 Commands
17533
17534 This filter supports the all above options as commands.
17535
17536 ciescope
17537 Display CIE color diagram with pixels overlaid onto it.
17538
17539 The filter accepts the following options:
17540
17541 system
17542 Set color system.
17543
17544 ntsc, 470m
17545 ebu, 470bg
17546 smpte
17547 240m
17548 apple
17549 widergb
17550 cie1931
17551 rec709, hdtv
17552 uhdtv, rec2020
17553 dcip3
17554 cie Set CIE system.
17555
17556 xyy
17557 ucs
17558 luv
17559 gamuts
17560 Set what gamuts to draw.
17561
17562 See "system" option for available values.
17563
17564 size, s
17565 Set ciescope size, by default set to 512.
17566
17567 intensity, i
17568 Set intensity used to map input pixel values to CIE diagram.
17569
17570 contrast
17571 Set contrast used to draw tongue colors that are out of active
17572 color system gamut.
17573
17574 corrgamma
17575 Correct gamma displayed on scope, by default enabled.
17576
17577 showwhite
17578 Show white point on CIE diagram, by default disabled.
17579
17580 gamma
17581 Set input gamma. Used only with XYZ input color space.
17582
17583 fill
17584 Fill with CIE colors. By default is enabled.
17585
17586 codecview
17587 Visualize information exported by some codecs.
17588
17589 Some codecs can export information through frames using side-data or
17590 other means. For example, some MPEG based codecs export motion vectors
17591 through the export_mvs flag in the codec flags2 option.
17592
17593 The filter accepts the following option:
17594
17595 block
17596 Display block partition structure using the luma plane.
17597
17598 mv Set motion vectors to visualize.
17599
17600 Available flags for mv are:
17601
17602 pf forward predicted MVs of P-frames
17603
17604 bf forward predicted MVs of B-frames
17605
17606 bb backward predicted MVs of B-frames
17607
17608 qp Display quantization parameters using the chroma planes.
17609
17610 mv_type, mvt
17611 Set motion vectors type to visualize. Includes MVs from all frames
17612 unless specified by frame_type option.
17613
17614 Available flags for mv_type are:
17615
17616 fp forward predicted MVs
17617
17618 bp backward predicted MVs
17619
17620 frame_type, ft
17621 Set frame type to visualize motion vectors of.
17622
17623 Available flags for frame_type are:
17624
17625 if intra-coded frames (I-frames)
17626
17627 pf predicted frames (P-frames)
17628
17629 bf bi-directionally predicted frames (B-frames)
17630
17631 Examples
17632
17633 • Visualize forward predicted MVs of all frames using ffplay:
17634
17635 ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv_type=fp
17636
17637 • Visualize multi-directionals MVs of P and B-Frames using ffplay:
17638
17639 ffplay -flags2 +export_mvs input.mp4 -vf codecview=mv=pf+bf+bb
17640
17641 colorbalance
17642 Modify intensity of primary colors (red, green and blue) of input
17643 frames.
17644
17645 The filter allows an input frame to be adjusted in the shadows,
17646 midtones or highlights regions for the red-cyan, green-magenta or blue-
17647 yellow balance.
17648
17649 A positive adjustment value shifts the balance towards the primary
17650 color, a negative value towards the complementary color.
17651
17652 The filter accepts the following options:
17653
17654 rs
17655 gs
17656 bs Adjust red, green and blue shadows (darkest pixels).
17657
17658 rm
17659 gm
17660 bm Adjust red, green and blue midtones (medium pixels).
17661
17662 rh
17663 gh
17664 bh Adjust red, green and blue highlights (brightest pixels).
17665
17666 Allowed ranges for options are "[-1.0, 1.0]". Defaults are 0.
17667
17668 pl Preserve lightness when changing color balance. Default is
17669 disabled.
17670
17671 Examples
17672
17673 • Add red color cast to shadows:
17674
17675 colorbalance=rs=.3
17676
17677 Commands
17678
17679 This filter supports the all above options as commands.
17680
17681 colorcontrast
17682 Adjust color contrast between RGB components.
17683
17684 The filter accepts the following options:
17685
17686 rc Set the red-cyan contrast. Defaults is 0.0. Allowed range is from
17687 -1.0 to 1.0.
17688
17689 gm Set the green-magenta contrast. Defaults is 0.0. Allowed range is
17690 from -1.0 to 1.0.
17691
17692 by Set the blue-yellow contrast. Defaults is 0.0. Allowed range is
17693 from -1.0 to 1.0.
17694
17695 rcw
17696 gmw
17697 byw Set the weight of each "rc", "gm", "by" option value. Default value
17698 is 0.0. Allowed range is from 0.0 to 1.0. If all weights are 0.0
17699 filtering is disabled.
17700
17701 pl Set the amount of preserving lightness. Default value is 0.0.
17702 Allowed range is from 0.0 to 1.0.
17703
17704 Commands
17705
17706 This filter supports the all above options as commands.
17707
17708 colorcorrect
17709 Adjust color white balance selectively for blacks and whites. This
17710 filter operates in YUV colorspace.
17711
17712 The filter accepts the following options:
17713
17714 rl Set the red shadow spot. Allowed range is from -1.0 to 1.0.
17715 Default value is 0.
17716
17717 bl Set the blue shadow spot. Allowed range is from -1.0 to 1.0.
17718 Default value is 0.
17719
17720 rh Set the red highlight spot. Allowed range is from -1.0 to 1.0.
17721 Default value is 0.
17722
17723 bh Set the red highlight spot. Allowed range is from -1.0 to 1.0.
17724 Default value is 0.
17725
17726 saturation
17727 Set the amount of saturation. Allowed range is from -3.0 to 3.0.
17728 Default value is 1.
17729
17730 analyze
17731 If set to anything other than "manual" it will analyze every frame
17732 and use derived parameters for filtering output frame.
17733
17734 Possible values are:
17735
17736 manual
17737 average
17738 minmax
17739 median
17740
17741 Default value is "manual".
17742
17743 Commands
17744
17745 This filter supports the all above options as commands.
17746
17747 colorchannelmixer
17748 Adjust video input frames by re-mixing color channels.
17749
17750 This filter modifies a color channel by adding the values associated to
17751 the other channels of the same pixels. For example if the value to
17752 modify is red, the output value will be:
17753
17754 <red>=<red>*<rr> + <blue>*<rb> + <green>*<rg> + <alpha>*<ra>
17755
17756 The filter accepts the following options:
17757
17758 rr
17759 rg
17760 rb
17761 ra Adjust contribution of input red, green, blue and alpha channels
17762 for output red channel. Default is 1 for rr, and 0 for rg, rb and
17763 ra.
17764
17765 gr
17766 gg
17767 gb
17768 ga Adjust contribution of input red, green, blue and alpha channels
17769 for output green channel. Default is 1 for gg, and 0 for gr, gb
17770 and ga.
17771
17772 br
17773 bg
17774 bb
17775 ba Adjust contribution of input red, green, blue and alpha channels
17776 for output blue channel. Default is 1 for bb, and 0 for br, bg and
17777 ba.
17778
17779 ar
17780 ag
17781 ab
17782 aa Adjust contribution of input red, green, blue and alpha channels
17783 for output alpha channel. Default is 1 for aa, and 0 for ar, ag
17784 and ab.
17785
17786 Allowed ranges for options are "[-2.0, 2.0]".
17787
17788 pc Set preserve color mode. The accepted values are:
17789
17790 none
17791 Disable color preserving, this is default.
17792
17793 lum Preserve luminance.
17794
17795 max Preserve max value of RGB triplet.
17796
17797 avg Preserve average value of RGB triplet.
17798
17799 sum Preserve sum value of RGB triplet.
17800
17801 nrm Preserve normalized value of RGB triplet.
17802
17803 pwr Preserve power value of RGB triplet.
17804
17805 pa Set the preserve color amount when changing colors. Allowed range
17806 is from "[0.0, 1.0]". Default is 0.0, thus disabled.
17807
17808 Examples
17809
17810 • Convert source to grayscale:
17811
17812 colorchannelmixer=.3:.4:.3:0:.3:.4:.3:0:.3:.4:.3
17813
17814 • Simulate sepia tones:
17815
17816 colorchannelmixer=.393:.769:.189:0:.349:.686:.168:0:.272:.534:.131
17817
17818 Commands
17819
17820 This filter supports the all above options as commands.
17821
17822 colorize
17823 Overlay a solid color on the video stream.
17824
17825 The filter accepts the following options:
17826
17827 hue Set the color hue. Allowed range is from 0 to 360. Default value
17828 is 0.
17829
17830 saturation
17831 Set the color saturation. Allowed range is from 0 to 1. Default
17832 value is 0.5.
17833
17834 lightness
17835 Set the color lightness. Allowed range is from 0 to 1. Default
17836 value is 0.5.
17837
17838 mix Set the mix of source lightness. By default is set to 1.0. Allowed
17839 range is from 0.0 to 1.0.
17840
17841 Commands
17842
17843 This filter supports the all above options as commands.
17844
17845 colorkey
17846 RGB colorspace color keying. This filter operates on 8-bit RGB format
17847 frames by setting the alpha component of each pixel which falls within
17848 the similarity radius of the key color to 0. The alpha value for pixels
17849 outside the similarity radius depends on the value of the blend option.
17850
17851 The filter accepts the following options:
17852
17853 color
17854 Set the color for which alpha will be set to 0 (full transparency).
17855 See "Color" section in the ffmpeg-utils manual. Default is
17856 "black".
17857
17858 similarity
17859 Set the radius from the key color within which other colors also
17860 have full transparency. The computed distance is related to the
17861 unit fractional distance in 3D space between the RGB values of the
17862 key color and the pixel's color. Range is 0.01 to 1.0. 0.01 matches
17863 within a very small radius around the exact key color, while 1.0
17864 matches everything. Default is 0.01.
17865
17866 blend
17867 Set how the alpha value for pixels that fall outside the similarity
17868 radius is computed. 0.0 makes pixels either fully transparent or
17869 fully opaque. Higher values result in semi-transparent pixels,
17870 with greater transparency the more similar the pixel color is to
17871 the key color. Range is 0.0 to 1.0. Default is 0.0.
17872
17873 Examples
17874
17875 • Make every green pixel in the input image transparent:
17876
17877 ffmpeg -i input.png -vf colorkey=green out.png
17878
17879 • Overlay a greenscreen-video on top of a static background image.
17880
17881 ffmpeg -i background.png -i video.mp4 -filter_complex "[1:v]colorkey=0x3BBD1E:0.3:0.2[ckout];[0:v][ckout]overlay[out]" -map "[out]" output.flv
17882
17883 Commands
17884
17885 This filter supports same commands as options. The command accepts the
17886 same syntax of the corresponding option.
17887
17888 If the specified expression is not valid, it is kept at its current
17889 value.
17890
17891 colorhold
17892 Remove all color information for all RGB colors except for certain one.
17893
17894 The filter accepts the following options:
17895
17896 color
17897 The color which will not be replaced with neutral gray.
17898
17899 similarity
17900 Similarity percentage with the above color. 0.01 matches only the
17901 exact key color, while 1.0 matches everything.
17902
17903 blend
17904 Blend percentage. 0.0 makes pixels fully gray. Higher values
17905 result in more preserved color.
17906
17907 Commands
17908
17909 This filter supports same commands as options. The command accepts the
17910 same syntax of the corresponding option.
17911
17912 If the specified expression is not valid, it is kept at its current
17913 value.
17914
17915 colorlevels
17916 Adjust video input frames using levels.
17917
17918 The filter accepts the following options:
17919
17920 rimin
17921 gimin
17922 bimin
17923 aimin
17924 Adjust red, green, blue and alpha input black point. Allowed
17925 ranges for options are "[-1.0, 1.0]". Defaults are 0.
17926
17927 rimax
17928 gimax
17929 bimax
17930 aimax
17931 Adjust red, green, blue and alpha input white point. Allowed
17932 ranges for options are "[-1.0, 1.0]". Defaults are 1.
17933
17934 Input levels are used to lighten highlights (bright tones), darken
17935 shadows (dark tones), change the balance of bright and dark tones.
17936
17937 romin
17938 gomin
17939 bomin
17940 aomin
17941 Adjust red, green, blue and alpha output black point. Allowed
17942 ranges for options are "[0, 1.0]". Defaults are 0.
17943
17944 romax
17945 gomax
17946 bomax
17947 aomax
17948 Adjust red, green, blue and alpha output white point. Allowed
17949 ranges for options are "[0, 1.0]". Defaults are 1.
17950
17951 Output levels allows manual selection of a constrained output level
17952 range.
17953
17954 preserve
17955 Set preserve color mode. The accepted values are:
17956
17957 none
17958 Disable color preserving, this is default.
17959
17960 lum Preserve luminance.
17961
17962 max Preserve max value of RGB triplet.
17963
17964 avg Preserve average value of RGB triplet.
17965
17966 sum Preserve sum value of RGB triplet.
17967
17968 nrm Preserve normalized value of RGB triplet.
17969
17970 pwr Preserve power value of RGB triplet.
17971
17972 Examples
17973
17974 • Make video output darker:
17975
17976 colorlevels=rimin=0.058:gimin=0.058:bimin=0.058
17977
17978 • Increase contrast:
17979
17980 colorlevels=rimin=0.039:gimin=0.039:bimin=0.039:rimax=0.96:gimax=0.96:bimax=0.96
17981
17982 • Make video output lighter:
17983
17984 colorlevels=rimax=0.902:gimax=0.902:bimax=0.902
17985
17986 • Increase brightness:
17987
17988 colorlevels=romin=0.5:gomin=0.5:bomin=0.5
17989
17990 Commands
17991
17992 This filter supports the all above options as commands.
17993
17994 colormap
17995 Apply custom color maps to video stream.
17996
17997 This filter needs three input video streams. First stream is video
17998 stream that is going to be filtered out. Second and third video stream
17999 specify color patches for source color to target color mapping.
18000
18001 The filter accepts the following options:
18002
18003 patch_size
18004 Set the source and target video stream patch size in pixels.
18005
18006 nb_patches
18007 Set the max number of used patches from source and target video
18008 stream. Default value is number of patches available in additional
18009 video streams. Max allowed number of patches is 64.
18010
18011 type
18012 Set the adjustments used for target colors. Can be "relative" or
18013 "absolute". Defaults is "absolute".
18014
18015 kernel
18016 Set the kernel used to measure color differences between mapped
18017 colors.
18018
18019 The accepted values are:
18020
18021 euclidean
18022 weuclidean
18023
18024 Default is "euclidean".
18025
18026 colormatrix
18027 Convert color matrix.
18028
18029 The filter accepts the following options:
18030
18031 src
18032 dst Specify the source and destination color matrix. Both values must
18033 be specified.
18034
18035 The accepted values are:
18036
18037 bt709
18038 BT.709
18039
18040 fcc FCC
18041
18042 bt601
18043 BT.601
18044
18045 bt470
18046 BT.470
18047
18048 bt470bg
18049 BT.470BG
18050
18051 smpte170m
18052 SMPTE-170M
18053
18054 smpte240m
18055 SMPTE-240M
18056
18057 bt2020
18058 BT.2020
18059
18060 For example to convert from BT.601 to SMPTE-240M, use the command:
18061
18062 colormatrix=bt601:smpte240m
18063
18064 colorspace
18065 Convert colorspace, transfer characteristics or color primaries. Input
18066 video needs to have an even size.
18067
18068 The filter accepts the following options:
18069
18070 all Specify all color properties at once.
18071
18072 The accepted values are:
18073
18074 bt470m
18075 BT.470M
18076
18077 bt470bg
18078 BT.470BG
18079
18080 bt601-6-525
18081 BT.601-6 525
18082
18083 bt601-6-625
18084 BT.601-6 625
18085
18086 bt709
18087 BT.709
18088
18089 smpte170m
18090 SMPTE-170M
18091
18092 smpte240m
18093 SMPTE-240M
18094
18095 bt2020
18096 BT.2020
18097
18098 space
18099 Specify output colorspace.
18100
18101 The accepted values are:
18102
18103 bt709
18104 BT.709
18105
18106 fcc FCC
18107
18108 bt470bg
18109 BT.470BG or BT.601-6 625
18110
18111 smpte170m
18112 SMPTE-170M or BT.601-6 525
18113
18114 smpte240m
18115 SMPTE-240M
18116
18117 ycgco
18118 YCgCo
18119
18120 bt2020ncl
18121 BT.2020 with non-constant luminance
18122
18123 trc Specify output transfer characteristics.
18124
18125 The accepted values are:
18126
18127 bt709
18128 BT.709
18129
18130 bt470m
18131 BT.470M
18132
18133 bt470bg
18134 BT.470BG
18135
18136 gamma22
18137 Constant gamma of 2.2
18138
18139 gamma28
18140 Constant gamma of 2.8
18141
18142 smpte170m
18143 SMPTE-170M, BT.601-6 625 or BT.601-6 525
18144
18145 smpte240m
18146 SMPTE-240M
18147
18148 srgb
18149 SRGB
18150
18151 iec61966-2-1
18152 iec61966-2-1
18153
18154 iec61966-2-4
18155 iec61966-2-4
18156
18157 xvycc
18158 xvycc
18159
18160 bt2020-10
18161 BT.2020 for 10-bits content
18162
18163 bt2020-12
18164 BT.2020 for 12-bits content
18165
18166 primaries
18167 Specify output color primaries.
18168
18169 The accepted values are:
18170
18171 bt709
18172 BT.709
18173
18174 bt470m
18175 BT.470M
18176
18177 bt470bg
18178 BT.470BG or BT.601-6 625
18179
18180 smpte170m
18181 SMPTE-170M or BT.601-6 525
18182
18183 smpte240m
18184 SMPTE-240M
18185
18186 film
18187 film
18188
18189 smpte431
18190 SMPTE-431
18191
18192 smpte432
18193 SMPTE-432
18194
18195 bt2020
18196 BT.2020
18197
18198 jedec-p22
18199 JEDEC P22 phosphors
18200
18201 range
18202 Specify output color range.
18203
18204 The accepted values are:
18205
18206 tv TV (restricted) range
18207
18208 mpeg
18209 MPEG (restricted) range
18210
18211 pc PC (full) range
18212
18213 jpeg
18214 JPEG (full) range
18215
18216 format
18217 Specify output color format.
18218
18219 The accepted values are:
18220
18221 yuv420p
18222 YUV 4:2:0 planar 8-bits
18223
18224 yuv420p10
18225 YUV 4:2:0 planar 10-bits
18226
18227 yuv420p12
18228 YUV 4:2:0 planar 12-bits
18229
18230 yuv422p
18231 YUV 4:2:2 planar 8-bits
18232
18233 yuv422p10
18234 YUV 4:2:2 planar 10-bits
18235
18236 yuv422p12
18237 YUV 4:2:2 planar 12-bits
18238
18239 yuv444p
18240 YUV 4:4:4 planar 8-bits
18241
18242 yuv444p10
18243 YUV 4:4:4 planar 10-bits
18244
18245 yuv444p12
18246 YUV 4:4:4 planar 12-bits
18247
18248 fast
18249 Do a fast conversion, which skips gamma/primary correction. This
18250 will take significantly less CPU, but will be mathematically
18251 incorrect. To get output compatible with that produced by the
18252 colormatrix filter, use fast=1.
18253
18254 dither
18255 Specify dithering mode.
18256
18257 The accepted values are:
18258
18259 none
18260 No dithering
18261
18262 fsb Floyd-Steinberg dithering
18263
18264 wpadapt
18265 Whitepoint adaptation mode.
18266
18267 The accepted values are:
18268
18269 bradford
18270 Bradford whitepoint adaptation
18271
18272 vonkries
18273 von Kries whitepoint adaptation
18274
18275 identity
18276 identity whitepoint adaptation (i.e. no whitepoint adaptation)
18277
18278 iall
18279 Override all input properties at once. Same accepted values as all.
18280
18281 ispace
18282 Override input colorspace. Same accepted values as space.
18283
18284 iprimaries
18285 Override input color primaries. Same accepted values as primaries.
18286
18287 itrc
18288 Override input transfer characteristics. Same accepted values as
18289 trc.
18290
18291 irange
18292 Override input color range. Same accepted values as range.
18293
18294 The filter converts the transfer characteristics, color space and color
18295 primaries to the specified user values. The output value, if not
18296 specified, is set to a default value based on the "all" property. If
18297 that property is also not specified, the filter will log an error. The
18298 output color range and format default to the same value as the input
18299 color range and format. The input transfer characteristics, color
18300 space, color primaries and color range should be set on the input data.
18301 If any of these are missing, the filter will log an error and no
18302 conversion will take place.
18303
18304 For example to convert the input to SMPTE-240M, use the command:
18305
18306 colorspace=smpte240m
18307
18308 colorspace_cuda
18309 CUDA accelerated implementation of the colorspace filter.
18310
18311 It is by no means feature complete compared to the software colorspace
18312 filter, and at the current time only supports color range conversion
18313 between jpeg/full and mpeg/limited range.
18314
18315 The filter accepts the following options:
18316
18317 range
18318 Specify output color range.
18319
18320 The accepted values are:
18321
18322 tv TV (restricted) range
18323
18324 mpeg
18325 MPEG (restricted) range
18326
18327 pc PC (full) range
18328
18329 jpeg
18330 JPEG (full) range
18331
18332 colortemperature
18333 Adjust color temperature in video to simulate variations in ambient
18334 color temperature.
18335
18336 The filter accepts the following options:
18337
18338 temperature
18339 Set the temperature in Kelvin. Allowed range is from 1000 to 40000.
18340 Default value is 6500 K.
18341
18342 mix Set mixing with filtered output. Allowed range is from 0 to 1.
18343 Default value is 1.
18344
18345 pl Set the amount of preserving lightness. Allowed range is from 0 to
18346 1. Default value is 0.
18347
18348 Commands
18349
18350 This filter supports same commands as options.
18351
18352 convolution
18353 Apply convolution of 3x3, 5x5, 7x7 or horizontal/vertical up to 49
18354 elements.
18355
18356 The filter accepts the following options:
18357
18358 0m
18359 1m
18360 2m
18361 3m Set matrix for each plane. Matrix is sequence of 9, 25 or 49
18362 signed integers in square mode, and from 1 to 49 odd number of
18363 signed integers in row mode.
18364
18365 0rdiv
18366 1rdiv
18367 2rdiv
18368 3rdiv
18369 Set multiplier for calculated value for each plane. If unset or 0,
18370 it will be sum of all matrix elements.
18371
18372 0bias
18373 1bias
18374 2bias
18375 3bias
18376 Set bias for each plane. This value is added to the result of the
18377 multiplication. Useful for making the overall image brighter or
18378 darker. Default is 0.0.
18379
18380 0mode
18381 1mode
18382 2mode
18383 3mode
18384 Set matrix mode for each plane. Can be square, row or column.
18385 Default is square.
18386
18387 Commands
18388
18389 This filter supports the all above options as commands.
18390
18391 Examples
18392
18393 • Apply sharpen:
18394
18395 convolution="0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0"
18396
18397 • Apply blur:
18398
18399 convolution="1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1/9:1/9:1/9:1/9"
18400
18401 • Apply edge enhance:
18402
18403 convolution="0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:5:1:1:1:0:128:128:128"
18404
18405 • Apply edge detect:
18406
18407 convolution="0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:5:5:5:1:0:128:128:128"
18408
18409 • Apply laplacian edge detector which includes diagonals:
18410
18411 convolution="1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:5:5:5:1:0:128:128:0"
18412
18413 • Apply emboss:
18414
18415 convolution="-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2"
18416
18417 convolve
18418 Apply 2D convolution of video stream in frequency domain using second
18419 stream as impulse.
18420
18421 The filter accepts the following options:
18422
18423 planes
18424 Set which planes to process.
18425
18426 impulse
18427 Set which impulse video frames will be processed, can be first or
18428 all. Default is all.
18429
18430 The "convolve" filter also supports the framesync options.
18431
18432 copy
18433 Copy the input video source unchanged to the output. This is mainly
18434 useful for testing purposes.
18435
18436 coreimage
18437 Video filtering on GPU using Apple's CoreImage API on OSX.
18438
18439 Hardware acceleration is based on an OpenGL context. Usually, this
18440 means it is processed by video hardware. However, software-based OpenGL
18441 implementations exist which means there is no guarantee for hardware
18442 processing. It depends on the respective OSX.
18443
18444 There are many filters and image generators provided by Apple that come
18445 with a large variety of options. The filter has to be referenced by its
18446 name along with its options.
18447
18448 The coreimage filter accepts the following options:
18449
18450 list_filters
18451 List all available filters and generators along with all their
18452 respective options as well as possible minimum and maximum values
18453 along with the default values.
18454
18455 list_filters=true
18456
18457 filter
18458 Specify all filters by their respective name and options. Use
18459 list_filters to determine all valid filter names and options.
18460 Numerical options are specified by a float value and are
18461 automatically clamped to their respective value range. Vector and
18462 color options have to be specified by a list of space separated
18463 float values. Character escaping has to be done. A special option
18464 name "default" is available to use default options for a filter.
18465
18466 It is required to specify either "default" or at least one of the
18467 filter options. All omitted options are used with their default
18468 values. The syntax of the filter string is as follows:
18469
18470 filter=<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...][#<NAME>@<OPTION>=<VALUE>[@<OPTION>=<VALUE>][@...]][#...]
18471
18472 output_rect
18473 Specify a rectangle where the output of the filter chain is copied
18474 into the input image. It is given by a list of space separated
18475 float values:
18476
18477 output_rect=x\ y\ width\ height
18478
18479 If not given, the output rectangle equals the dimensions of the
18480 input image. The output rectangle is automatically cropped at the
18481 borders of the input image. Negative values are valid for each
18482 component.
18483
18484 output_rect=25\ 25\ 100\ 100
18485
18486 Several filters can be chained for successive processing without GPU-
18487 HOST transfers allowing for fast processing of complex filter chains.
18488 Currently, only filters with zero (generators) or exactly one (filters)
18489 input image and one output image are supported. Also, transition
18490 filters are not yet usable as intended.
18491
18492 Some filters generate output images with additional padding depending
18493 on the respective filter kernel. The padding is automatically removed
18494 to ensure the filter output has the same size as the input image.
18495
18496 For image generators, the size of the output image is determined by the
18497 previous output image of the filter chain or the input image of the
18498 whole filterchain, respectively. The generators do not use the pixel
18499 information of this image to generate their output. However, the
18500 generated output is blended onto this image, resulting in partial or
18501 complete coverage of the output image.
18502
18503 The coreimagesrc video source can be used for generating input images
18504 which are directly fed into the filter chain. By using it, providing
18505 input images by another video source or an input video is not required.
18506
18507 Examples
18508
18509 • List all filters available:
18510
18511 coreimage=list_filters=true
18512
18513 • Use the CIBoxBlur filter with default options to blur an image:
18514
18515 coreimage=filter=CIBoxBlur@default
18516
18517 • Use a filter chain with CISepiaTone at default values and
18518 CIVignetteEffect with its center at 100x100 and a radius of 50
18519 pixels:
18520
18521 coreimage=filter=CIBoxBlur@default#CIVignetteEffect@inputCenter=100\ 100@inputRadius=50
18522
18523 • Use nullsrc and CIQRCodeGenerator to create a QR code for the
18524 FFmpeg homepage, given as complete and escaped command-line for
18525 Apple's standard bash shell:
18526
18527 ffmpeg -f lavfi -i nullsrc=s=100x100,coreimage=filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
18528
18529 corr
18530 Obtain the correlation between two input videos.
18531
18532 This filter takes two input videos.
18533
18534 Both input videos must have the same resolution and pixel format for
18535 this filter to work correctly. Also it assumes that both inputs have
18536 the same number of frames, which are compared one by one.
18537
18538 The obtained per component, average, min and max correlation is printed
18539 through the logging system.
18540
18541 The filter stores the calculated correlation of each frame in frame
18542 metadata.
18543
18544 This filter also supports the framesync options.
18545
18546 In the below example the input file main.mpg being processed is
18547 compared with the reference file ref.mpg.
18548
18549 ffmpeg -i main.mpg -i ref.mpg -lavfi corr -f null -
18550
18551 cover_rect
18552 Cover a rectangular object
18553
18554 It accepts the following options:
18555
18556 cover
18557 Filepath of the optional cover image, needs to be in yuv420.
18558
18559 mode
18560 Set covering mode.
18561
18562 It accepts the following values:
18563
18564 cover
18565 cover it by the supplied image
18566
18567 blur
18568 cover it by interpolating the surrounding pixels
18569
18570 Default value is blur.
18571
18572 Examples
18573
18574 • Cover a rectangular object by the supplied image of a given video
18575 using ffmpeg:
18576
18577 ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
18578
18579 crop
18580 Crop the input video to given dimensions.
18581
18582 It accepts the following parameters:
18583
18584 w, out_w
18585 The width of the output video. It defaults to "iw". This
18586 expression is evaluated only once during the filter configuration,
18587 or when the w or out_w command is sent.
18588
18589 h, out_h
18590 The height of the output video. It defaults to "ih". This
18591 expression is evaluated only once during the filter configuration,
18592 or when the h or out_h command is sent.
18593
18594 x The horizontal position, in the input video, of the left edge of
18595 the output video. It defaults to "(in_w-out_w)/2". This expression
18596 is evaluated per-frame.
18597
18598 y The vertical position, in the input video, of the top edge of the
18599 output video. It defaults to "(in_h-out_h)/2". This expression is
18600 evaluated per-frame.
18601
18602 keep_aspect
18603 If set to 1 will force the output display aspect ratio to be the
18604 same of the input, by changing the output sample aspect ratio. It
18605 defaults to 0.
18606
18607 exact
18608 Enable exact cropping. If enabled, subsampled videos will be
18609 cropped at exact width/height/x/y as specified and will not be
18610 rounded to nearest smaller value. It defaults to 0.
18611
18612 The out_w, out_h, x, y parameters are expressions containing the
18613 following constants:
18614
18615 x
18616 y The computed values for x and y. They are evaluated for each new
18617 frame.
18618
18619 in_w
18620 in_h
18621 The input width and height.
18622
18623 iw
18624 ih These are the same as in_w and in_h.
18625
18626 out_w
18627 out_h
18628 The output (cropped) width and height.
18629
18630 ow
18631 oh These are the same as out_w and out_h.
18632
18633 a same as iw / ih
18634
18635 sar input sample aspect ratio
18636
18637 dar input display aspect ratio, it is the same as (iw / ih) * sar
18638
18639 hsub
18640 vsub
18641 horizontal and vertical chroma subsample values. For example for
18642 the pixel format "yuv422p" hsub is 2 and vsub is 1.
18643
18644 n The number of the input frame, starting from 0.
18645
18646 pos the position in the file of the input frame, NAN if unknown
18647
18648 t The timestamp expressed in seconds. It's NAN if the input timestamp
18649 is unknown.
18650
18651 The expression for out_w may depend on the value of out_h, and the
18652 expression for out_h may depend on out_w, but they cannot depend on x
18653 and y, as x and y are evaluated after out_w and out_h.
18654
18655 The x and y parameters specify the expressions for the position of the
18656 top-left corner of the output (non-cropped) area. They are evaluated
18657 for each frame. If the evaluated value is not valid, it is approximated
18658 to the nearest valid value.
18659
18660 The expression for x may depend on y, and the expression for y may
18661 depend on x.
18662
18663 Examples
18664
18665 • Crop area with size 100x100 at position (12,34).
18666
18667 crop=100:100:12:34
18668
18669 Using named options, the example above becomes:
18670
18671 crop=w=100:h=100:x=12:y=34
18672
18673 • Crop the central input area with size 100x100:
18674
18675 crop=100:100
18676
18677 • Crop the central input area with size 2/3 of the input video:
18678
18679 crop=2/3*in_w:2/3*in_h
18680
18681 • Crop the input video central square:
18682
18683 crop=out_w=in_h
18684 crop=in_h
18685
18686 • Delimit the rectangle with the top-left corner placed at position
18687 100:100 and the right-bottom corner corresponding to the right-
18688 bottom corner of the input image.
18689
18690 crop=in_w-100:in_h-100:100:100
18691
18692 • Crop 10 pixels from the left and right borders, and 20 pixels from
18693 the top and bottom borders
18694
18695 crop=in_w-2*10:in_h-2*20
18696
18697 • Keep only the bottom right quarter of the input image:
18698
18699 crop=in_w/2:in_h/2:in_w/2:in_h/2
18700
18701 • Crop height for getting Greek harmony:
18702
18703 crop=in_w:1/PHI*in_w
18704
18705 • Apply trembling effect:
18706
18707 crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(n/10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(n/7)
18708
18709 • Apply erratic camera effect depending on timestamp:
18710
18711 crop=in_w/2:in_h/2:(in_w-out_w)/2+((in_w-out_w)/2)*sin(t*10):(in_h-out_h)/2 +((in_h-out_h)/2)*sin(t*13)"
18712
18713 • Set x depending on the value of y:
18714
18715 crop=in_w/2:in_h/2:y:10+10*sin(n/10)
18716
18717 Commands
18718
18719 This filter supports the following commands:
18720
18721 w, out_w
18722 h, out_h
18723 x
18724 y Set width/height of the output video and the horizontal/vertical
18725 position in the input video. The command accepts the same syntax
18726 of the corresponding option.
18727
18728 If the specified expression is not valid, it is kept at its current
18729 value.
18730
18731 cropdetect
18732 Auto-detect the crop size.
18733
18734 It calculates the necessary cropping parameters and prints the
18735 recommended parameters via the logging system. The detected dimensions
18736 correspond to the non-black or video area of the input video according
18737 to mode.
18738
18739 It accepts the following parameters:
18740
18741 mode
18742 Depending on mode crop detection is based on either the mere black
18743 value of surrounding pixels or a combination of motion vectors and
18744 edge pixels.
18745
18746 black
18747 Detect black pixels surrounding the playing video. For fine
18748 control use option limit.
18749
18750 mvedges
18751 Detect the playing video by the motion vectors inside the video
18752 and scanning for edge pixels typically forming the border of a
18753 playing video.
18754
18755 limit
18756 Set higher black value threshold, which can be optionally specified
18757 from nothing (0) to everything (255 for 8-bit based formats). An
18758 intensity value greater to the set value is considered non-black.
18759 It defaults to 24. You can also specify a value between 0.0 and
18760 1.0 which will be scaled depending on the bitdepth of the pixel
18761 format.
18762
18763 round
18764 The value which the width/height should be divisible by. It
18765 defaults to 16. The offset is automatically adjusted to center the
18766 video. Use 2 to get only even dimensions (needed for 4:2:2 video).
18767 16 is best when encoding to most video codecs.
18768
18769 skip
18770 Set the number of initial frames for which evaluation is skipped.
18771 Default is 2. Range is 0 to INT_MAX.
18772
18773 reset_count, reset
18774 Set the counter that determines after how many frames cropdetect
18775 will reset the previously detected largest video area and start
18776 over to detect the current optimal crop area. Default value is 0.
18777
18778 This can be useful when channel logos distort the video area. 0
18779 indicates 'never reset', and returns the largest area encountered
18780 during playback.
18781
18782 mv_threshold
18783 Set motion in pixel units as threshold for motion detection. It
18784 defaults to 8.
18785
18786 low
18787 high
18788 Set low and high threshold values used by the Canny thresholding
18789 algorithm.
18790
18791 The high threshold selects the "strong" edge pixels, which are then
18792 connected through 8-connectivity with the "weak" edge pixels
18793 selected by the low threshold.
18794
18795 low and high threshold values must be chosen in the range [0,1],
18796 and low should be lesser or equal to high.
18797
18798 Default value for low is "5/255", and default value for high is
18799 "15/255".
18800
18801 Examples
18802
18803 • Find video area surrounded by black borders:
18804
18805 ffmpeg -i file.mp4 -vf cropdetect,metadata=mode=print -f null -
18806
18807 • Find an embedded video area, generate motion vectors beforehand:
18808
18809 ffmpeg -i file.mp4 -vf mestimate,cropdetect=mode=mvedges,metadata=mode=print -f null -
18810
18811 • Find an embedded video area, use motion vectors from decoder:
18812
18813 ffmpeg -flags2 +export_mvs -i file.mp4 -vf cropdetect=mode=mvedges,metadata=mode=print -f null -
18814
18815 Commands
18816
18817 This filter supports the following commands:
18818
18819 limit
18820 The command accepts the same syntax of the corresponding option.
18821 If the specified expression is not valid, it is kept at its current
18822 value.
18823
18824 cue
18825 Delay video filtering until a given wallclock timestamp. The filter
18826 first passes on preroll amount of frames, then it buffers at most
18827 buffer amount of frames and waits for the cue. After reaching the cue
18828 it forwards the buffered frames and also any subsequent frames coming
18829 in its input.
18830
18831 The filter can be used synchronize the output of multiple ffmpeg
18832 processes for realtime output devices like decklink. By putting the
18833 delay in the filtering chain and pre-buffering frames the process can
18834 pass on data to output almost immediately after the target wallclock
18835 timestamp is reached.
18836
18837 Perfect frame accuracy cannot be guaranteed, but the result is good
18838 enough for some use cases.
18839
18840 cue The cue timestamp expressed in a UNIX timestamp in microseconds.
18841 Default is 0.
18842
18843 preroll
18844 The duration of content to pass on as preroll expressed in seconds.
18845 Default is 0.
18846
18847 buffer
18848 The maximum duration of content to buffer before waiting for the
18849 cue expressed in seconds. Default is 0.
18850
18851 curves
18852 Apply color adjustments using curves.
18853
18854 This filter is similar to the Adobe Photoshop and GIMP curves tools.
18855 Each component (red, green and blue) has its values defined by N key
18856 points tied from each other using a smooth curve. The x-axis represents
18857 the pixel values from the input frame, and the y-axis the new pixel
18858 values to be set for the output frame.
18859
18860 By default, a component curve is defined by the two points (0;0) and
18861 (1;1). This creates a straight line where each original pixel value is
18862 "adjusted" to its own value, which means no change to the image.
18863
18864 The filter allows you to redefine these two points and add some more. A
18865 new curve will be define to pass smoothly through all these new
18866 coordinates. The new defined points needs to be strictly increasing
18867 over the x-axis, and their x and y values must be in the [0;1]
18868 interval. The curve is formed by using a natural or monotonic cubic
18869 spline interpolation, depending on the interp option (default:
18870 "natural"). The "natural" spline produces a smoother curve in general
18871 while the monotonic ("pchip") spline guarantees the transitions between
18872 the specified points to be monotonic. If the computed curves happened
18873 to go outside the vector spaces, the values will be clipped
18874 accordingly.
18875
18876 The filter accepts the following options:
18877
18878 preset
18879 Select one of the available color presets. This option can be used
18880 in addition to the r, g, b parameters; in this case, the later
18881 options takes priority on the preset values. Available presets
18882 are:
18883
18884 none
18885 color_negative
18886 cross_process
18887 darker
18888 increase_contrast
18889 lighter
18890 linear_contrast
18891 medium_contrast
18892 negative
18893 strong_contrast
18894 vintage
18895
18896 Default is "none".
18897
18898 master, m
18899 Set the master key points. These points will define a second pass
18900 mapping. It is sometimes called a "luminance" or "value" mapping.
18901 It can be used with r, g, b or all since it acts like a post-
18902 processing LUT.
18903
18904 red, r
18905 Set the key points for the red component.
18906
18907 green, g
18908 Set the key points for the green component.
18909
18910 blue, b
18911 Set the key points for the blue component.
18912
18913 all Set the key points for all components (not including master). Can
18914 be used in addition to the other key points component options. In
18915 this case, the unset component(s) will fallback on this all
18916 setting.
18917
18918 psfile
18919 Specify a Photoshop curves file (".acv") to import the settings
18920 from.
18921
18922 plot
18923 Save Gnuplot script of the curves in specified file.
18924
18925 interp
18926 Specify the kind of interpolation. Available algorithms are:
18927
18928 natural
18929 Natural cubic spline using a piece-wise cubic polynomial that
18930 is twice continuously differentiable.
18931
18932 pchip
18933 Monotonic cubic spline using a piecewise cubic Hermite
18934 interpolating polynomial (PCHIP).
18935
18936 To avoid some filtergraph syntax conflicts, each key points list need
18937 to be defined using the following syntax: "x0/y0 x1/y1 x2/y2 ...".
18938
18939 Commands
18940
18941 This filter supports same commands as options.
18942
18943 Examples
18944
18945 • Increase slightly the middle level of blue:
18946
18947 curves=blue='0/0 0.5/0.58 1/1'
18948
18949 • Vintage effect:
18950
18951 curves=r='0/0.11 .42/.51 1/0.95':g='0/0 0.50/0.48 1/1':b='0/0.22 .49/.44 1/0.8'
18952
18953 Here we obtain the following coordinates for each components:
18954
18955 red "(0;0.11) (0.42;0.51) (1;0.95)"
18956
18957 green
18958 "(0;0) (0.50;0.48) (1;1)"
18959
18960 blue
18961 "(0;0.22) (0.49;0.44) (1;0.80)"
18962
18963 • The previous example can also be achieved with the associated
18964 built-in preset:
18965
18966 curves=preset=vintage
18967
18968 • Or simply:
18969
18970 curves=vintage
18971
18972 • Use a Photoshop preset and redefine the points of the green
18973 component:
18974
18975 curves=psfile='MyCurvesPresets/purple.acv':green='0/0 0.45/0.53 1/1'
18976
18977 • Check out the curves of the "cross_process" profile using ffmpeg
18978 and gnuplot:
18979
18980 ffmpeg -f lavfi -i color -vf curves=cross_process:plot=/tmp/curves.plt -frames:v 1 -f null -
18981 gnuplot -p /tmp/curves.plt
18982
18983 datascope
18984 Video data analysis filter.
18985
18986 This filter shows hexadecimal pixel values of part of video.
18987
18988 The filter accepts the following options:
18989
18990 size, s
18991 Set output video size.
18992
18993 x Set x offset from where to pick pixels.
18994
18995 y Set y offset from where to pick pixels.
18996
18997 mode
18998 Set scope mode, can be one of the following:
18999
19000 mono
19001 Draw hexadecimal pixel values with white color on black
19002 background.
19003
19004 color
19005 Draw hexadecimal pixel values with input video pixel color on
19006 black background.
19007
19008 color2
19009 Draw hexadecimal pixel values on color background picked from
19010 input video, the text color is picked in such way so its always
19011 visible.
19012
19013 axis
19014 Draw rows and columns numbers on left and top of video.
19015
19016 opacity
19017 Set background opacity.
19018
19019 format
19020 Set display number format. Can be "hex", or "dec". Default is
19021 "hex".
19022
19023 components
19024 Set pixel components to display. By default all pixel components
19025 are displayed.
19026
19027 Commands
19028
19029 This filter supports same commands as options excluding "size" option.
19030
19031 dblur
19032 Apply Directional blur filter.
19033
19034 The filter accepts the following options:
19035
19036 angle
19037 Set angle of directional blur. Default is 45.
19038
19039 radius
19040 Set radius of directional blur. Default is 5.
19041
19042 planes
19043 Set which planes to filter. By default all planes are filtered.
19044
19045 Commands
19046
19047 This filter supports same commands as options. The command accepts the
19048 same syntax of the corresponding option.
19049
19050 If the specified expression is not valid, it is kept at its current
19051 value.
19052
19053 dctdnoiz
19054 Denoise frames using 2D DCT (frequency domain filtering).
19055
19056 This filter is not designed for real time.
19057
19058 The filter accepts the following options:
19059
19060 sigma, s
19061 Set the noise sigma constant.
19062
19063 This sigma defines a hard threshold of "3 * sigma"; every DCT
19064 coefficient (absolute value) below this threshold with be dropped.
19065
19066 If you need a more advanced filtering, see expr.
19067
19068 Default is 0.
19069
19070 overlap
19071 Set number overlapping pixels for each block. Since the filter can
19072 be slow, you may want to reduce this value, at the cost of a less
19073 effective filter and the risk of various artefacts.
19074
19075 If the overlapping value doesn't permit processing the whole input
19076 width or height, a warning will be displayed and according borders
19077 won't be denoised.
19078
19079 Default value is blocksize-1, which is the best possible setting.
19080
19081 expr, e
19082 Set the coefficient factor expression.
19083
19084 For each coefficient of a DCT block, this expression will be
19085 evaluated as a multiplier value for the coefficient.
19086
19087 If this is option is set, the sigma option will be ignored.
19088
19089 The absolute value of the coefficient can be accessed through the c
19090 variable.
19091
19092 n Set the blocksize using the number of bits. "1<<n" defines the
19093 blocksize, which is the width and height of the processed blocks.
19094
19095 The default value is 3 (8x8) and can be raised to 4 for a blocksize
19096 of 16x16. Note that changing this setting has huge consequences on
19097 the speed processing. Also, a larger block size does not
19098 necessarily means a better de-noising.
19099
19100 Examples
19101
19102 Apply a denoise with a sigma of 4.5:
19103
19104 dctdnoiz=4.5
19105
19106 The same operation can be achieved using the expression system:
19107
19108 dctdnoiz=e='gte(c, 4.5*3)'
19109
19110 Violent denoise using a block size of "16x16":
19111
19112 dctdnoiz=15:n=4
19113
19114 deband
19115 Remove banding artifacts from input video. It works by replacing
19116 banded pixels with average value of referenced pixels.
19117
19118 The filter accepts the following options:
19119
19120 1thr
19121 2thr
19122 3thr
19123 4thr
19124 Set banding detection threshold for each plane. Default is 0.02.
19125 Valid range is 0.00003 to 0.5. If difference between current pixel
19126 and reference pixel is less than threshold, it will be considered
19127 as banded.
19128
19129 range, r
19130 Banding detection range in pixels. Default is 16. If positive,
19131 random number in range 0 to set value will be used. If negative,
19132 exact absolute value will be used. The range defines square of
19133 four pixels around current pixel.
19134
19135 direction, d
19136 Set direction in radians from which four pixel will be compared. If
19137 positive, random direction from 0 to set direction will be picked.
19138 If negative, exact of absolute value will be picked. For example
19139 direction 0, -PI or -2*PI radians will pick only pixels on same row
19140 and -PI/2 will pick only pixels on same column.
19141
19142 blur, b
19143 If enabled, current pixel is compared with average value of all
19144 four surrounding pixels. The default is enabled. If disabled
19145 current pixel is compared with all four surrounding pixels. The
19146 pixel is considered banded if only all four differences with
19147 surrounding pixels are less than threshold.
19148
19149 coupling, c
19150 If enabled, current pixel is changed if and only if all pixel
19151 components are banded, e.g. banding detection threshold is
19152 triggered for all color components. The default is disabled.
19153
19154 Commands
19155
19156 This filter supports the all above options as commands.
19157
19158 deblock
19159 Remove blocking artifacts from input video.
19160
19161 The filter accepts the following options:
19162
19163 filter
19164 Set filter type, can be weak or strong. Default is strong. This
19165 controls what kind of deblocking is applied.
19166
19167 block
19168 Set size of block, allowed range is from 4 to 512. Default is 8.
19169
19170 alpha
19171 beta
19172 gamma
19173 delta
19174 Set blocking detection thresholds. Allowed range is 0 to 1.
19175 Defaults are: 0.098 for alpha and 0.05 for the rest. Using higher
19176 threshold gives more deblocking strength. Setting alpha controls
19177 threshold detection at exact edge of block. Remaining options
19178 controls threshold detection near the edge. Each one for
19179 below/above or left/right. Setting any of those to 0 disables
19180 deblocking.
19181
19182 planes
19183 Set planes to filter. Default is to filter all available planes.
19184
19185 Examples
19186
19187 • Deblock using weak filter and block size of 4 pixels.
19188
19189 deblock=filter=weak:block=4
19190
19191 • Deblock using strong filter, block size of 4 pixels and custom
19192 thresholds for deblocking more edges.
19193
19194 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05
19195
19196 • Similar as above, but filter only first plane.
19197
19198 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=1
19199
19200 • Similar as above, but filter only second and third plane.
19201
19202 deblock=filter=strong:block=4:alpha=0.12:beta=0.07:gamma=0.06:delta=0.05:planes=6
19203
19204 Commands
19205
19206 This filter supports the all above options as commands.
19207
19208 decimate
19209 Drop duplicated frames at regular intervals.
19210
19211 The filter accepts the following options:
19212
19213 cycle
19214 Set the number of frames from which one will be dropped. Setting
19215 this to N means one frame in every batch of N frames will be
19216 dropped. Default is 5.
19217
19218 dupthresh
19219 Set the threshold for duplicate detection. If the difference metric
19220 for a frame is less than or equal to this value, then it is
19221 declared as duplicate. Default is 1.1
19222
19223 scthresh
19224 Set scene change threshold. Default is 15.
19225
19226 blockx
19227 blocky
19228 Set the size of the x and y-axis blocks used during metric
19229 calculations. Larger blocks give better noise suppression, but
19230 also give worse detection of small movements. Must be a power of
19231 two. Default is 32.
19232
19233 ppsrc
19234 Mark main input as a pre-processed input and activate clean source
19235 input stream. This allows the input to be pre-processed with
19236 various filters to help the metrics calculation while keeping the
19237 frame selection lossless. When set to 1, the first stream is for
19238 the pre-processed input, and the second stream is the clean source
19239 from where the kept frames are chosen. Default is 0.
19240
19241 chroma
19242 Set whether or not chroma is considered in the metric calculations.
19243 Default is 1.
19244
19245 mixed
19246 Set whether or not the input only partially contains content to be
19247 decimated. Default is "false". If enabled video output stream
19248 will be in variable frame rate.
19249
19250 deconvolve
19251 Apply 2D deconvolution of video stream in frequency domain using second
19252 stream as impulse.
19253
19254 The filter accepts the following options:
19255
19256 planes
19257 Set which planes to process.
19258
19259 impulse
19260 Set which impulse video frames will be processed, can be first or
19261 all. Default is all.
19262
19263 noise
19264 Set noise when doing divisions. Default is 0.0000001. Useful when
19265 width and height are not same and not power of 2 or if stream prior
19266 to convolving had noise.
19267
19268 The "deconvolve" filter also supports the framesync options.
19269
19270 dedot
19271 Reduce cross-luminance (dot-crawl) and cross-color (rainbows) from
19272 video.
19273
19274 It accepts the following options:
19275
19276 m Set mode of operation. Can be combination of dotcrawl for cross-
19277 luminance reduction and/or rainbows for cross-color reduction.
19278
19279 lt Set spatial luma threshold. Lower values increases reduction of
19280 cross-luminance.
19281
19282 tl Set tolerance for temporal luma. Higher values increases reduction
19283 of cross-luminance.
19284
19285 tc Set tolerance for chroma temporal variation. Higher values
19286 increases reduction of cross-color.
19287
19288 ct Set temporal chroma threshold. Lower values increases reduction of
19289 cross-color.
19290
19291 deflate
19292 Apply deflate effect to the video.
19293
19294 This filter replaces the pixel by the local(3x3) average by taking into
19295 account only values lower than the pixel.
19296
19297 It accepts the following options:
19298
19299 threshold0
19300 threshold1
19301 threshold2
19302 threshold3
19303 Limit the maximum change for each plane, default is 65535. If 0,
19304 plane will remain unchanged.
19305
19306 Commands
19307
19308 This filter supports the all above options as commands.
19309
19310 deflicker
19311 Remove temporal frame luminance variations.
19312
19313 It accepts the following options:
19314
19315 size, s
19316 Set moving-average filter size in frames. Default is 5. Allowed
19317 range is 2 - 129.
19318
19319 mode, m
19320 Set averaging mode to smooth temporal luminance variations.
19321
19322 Available values are:
19323
19324 am Arithmetic mean
19325
19326 gm Geometric mean
19327
19328 hm Harmonic mean
19329
19330 qm Quadratic mean
19331
19332 cm Cubic mean
19333
19334 pm Power mean
19335
19336 median
19337 Median
19338
19339 bypass
19340 Do not actually modify frame. Useful when one only wants metadata.
19341
19342 dejudder
19343 Remove judder produced by partially interlaced telecined content.
19344
19345 Judder can be introduced, for instance, by pullup filter. If the
19346 original source was partially telecined content then the output of
19347 "pullup,dejudder" will have a variable frame rate. May change the
19348 recorded frame rate of the container. Aside from that change, this
19349 filter will not affect constant frame rate video.
19350
19351 The option available in this filter is:
19352
19353 cycle
19354 Specify the length of the window over which the judder repeats.
19355
19356 Accepts any integer greater than 1. Useful values are:
19357
19358 4 If the original was telecined from 24 to 30 fps (Film to NTSC).
19359
19360 5 If the original was telecined from 25 to 30 fps (PAL to NTSC).
19361
19362 20 If a mixture of the two.
19363
19364 The default is 4.
19365
19366 delogo
19367 Suppress a TV station logo by a simple interpolation of the surrounding
19368 pixels. Just set a rectangle covering the logo and watch it disappear
19369 (and sometimes something even uglier appear - your mileage may vary).
19370
19371 It accepts the following parameters:
19372
19373 x
19374 y Specify the top left corner coordinates of the logo. They must be
19375 specified.
19376
19377 w
19378 h Specify the width and height of the logo to clear. They must be
19379 specified.
19380
19381 show
19382 When set to 1, a green rectangle is drawn on the screen to simplify
19383 finding the right x, y, w, and h parameters. The default value is
19384 0.
19385
19386 The rectangle is drawn on the outermost pixels which will be
19387 (partly) replaced with interpolated values. The values of the next
19388 pixels immediately outside this rectangle in each direction will be
19389 used to compute the interpolated pixel values inside the rectangle.
19390
19391 Examples
19392
19393 • Set a rectangle covering the area with top left corner coordinates
19394 0,0 and size 100x77:
19395
19396 delogo=x=0:y=0:w=100:h=77
19397
19398 derain
19399 Remove the rain in the input image/video by applying the derain methods
19400 based on convolutional neural networks. Supported models:
19401
19402 • Recurrent Squeeze-and-Excitation Context Aggregation Net (RESCAN).
19403 See
19404 <http://openaccess.thecvf.com/content_ECCV_2018/papers/Xia_Li_Recurrent_Squeeze-and-Excitation_Context_ECCV_2018_paper.pdf>.
19405
19406 Training as well as model generation scripts are provided in the
19407 repository at <https://github.com/XueweiMeng/derain_filter.git>.
19408
19409 Native model files (.model) can be generated from TensorFlow model
19410 files (.pb) by using tools/python/convert.py
19411
19412 The filter accepts the following options:
19413
19414 filter_type
19415 Specify which filter to use. This option accepts the following
19416 values:
19417
19418 derain
19419 Derain filter. To conduct derain filter, you need to use a
19420 derain model.
19421
19422 dehaze
19423 Dehaze filter. To conduct dehaze filter, you need to use a
19424 dehaze model.
19425
19426 Default value is derain.
19427
19428 dnn_backend
19429 Specify which DNN backend to use for model loading and execution.
19430 This option accepts the following values:
19431
19432 native
19433 Native implementation of DNN loading and execution.
19434
19435 tensorflow
19436 TensorFlow backend. To enable this backend you need to install
19437 the TensorFlow for C library (see
19438 <https://www.tensorflow.org/install/lang_c>) and configure
19439 FFmpeg with "--enable-libtensorflow"
19440
19441 Default value is native.
19442
19443 model
19444 Set path to model file specifying network architecture and its
19445 parameters. Note that different backends use different file
19446 formats. TensorFlow and native backend can load files for only its
19447 format.
19448
19449 To get full functionality (such as async execution), please use the
19450 dnn_processing filter.
19451
19452 deshake
19453 Attempt to fix small changes in horizontal and/or vertical shift. This
19454 filter helps remove camera shake from hand-holding a camera, bumping a
19455 tripod, moving on a vehicle, etc.
19456
19457 The filter accepts the following options:
19458
19459 x
19460 y
19461 w
19462 h Specify a rectangular area where to limit the search for motion
19463 vectors. If desired the search for motion vectors can be limited
19464 to a rectangular area of the frame defined by its top left corner,
19465 width and height. These parameters have the same meaning as the
19466 drawbox filter which can be used to visualise the position of the
19467 bounding box.
19468
19469 This is useful when simultaneous movement of subjects within the
19470 frame might be confused for camera motion by the motion vector
19471 search.
19472
19473 If any or all of x, y, w and h are set to -1 then the full frame is
19474 used. This allows later options to be set without specifying the
19475 bounding box for the motion vector search.
19476
19477 Default - search the whole frame.
19478
19479 rx
19480 ry Specify the maximum extent of movement in x and y directions in the
19481 range 0-64 pixels. Default 16.
19482
19483 edge
19484 Specify how to generate pixels to fill blanks at the edge of the
19485 frame. Available values are:
19486
19487 blank, 0
19488 Fill zeroes at blank locations
19489
19490 original, 1
19491 Original image at blank locations
19492
19493 clamp, 2
19494 Extruded edge value at blank locations
19495
19496 mirror, 3
19497 Mirrored edge at blank locations
19498
19499 Default value is mirror.
19500
19501 blocksize
19502 Specify the blocksize to use for motion search. Range 4-128 pixels,
19503 default 8.
19504
19505 contrast
19506 Specify the contrast threshold for blocks. Only blocks with more
19507 than the specified contrast (difference between darkest and
19508 lightest pixels) will be considered. Range 1-255, default 125.
19509
19510 search
19511 Specify the search strategy. Available values are:
19512
19513 exhaustive, 0
19514 Set exhaustive search
19515
19516 less, 1
19517 Set less exhaustive search.
19518
19519 Default value is exhaustive.
19520
19521 filename
19522 If set then a detailed log of the motion search is written to the
19523 specified file.
19524
19525 despill
19526 Remove unwanted contamination of foreground colors, caused by reflected
19527 color of greenscreen or bluescreen.
19528
19529 This filter accepts the following options:
19530
19531 type
19532 Set what type of despill to use.
19533
19534 mix Set how spillmap will be generated.
19535
19536 expand
19537 Set how much to get rid of still remaining spill.
19538
19539 red Controls amount of red in spill area.
19540
19541 green
19542 Controls amount of green in spill area. Should be -1 for
19543 greenscreen.
19544
19545 blue
19546 Controls amount of blue in spill area. Should be -1 for
19547 bluescreen.
19548
19549 brightness
19550 Controls brightness of spill area, preserving colors.
19551
19552 alpha
19553 Modify alpha from generated spillmap.
19554
19555 Commands
19556
19557 This filter supports the all above options as commands.
19558
19559 detelecine
19560 Apply an exact inverse of the telecine operation. It requires a
19561 predefined pattern specified using the pattern option which must be the
19562 same as that passed to the telecine filter.
19563
19564 This filter accepts the following options:
19565
19566 first_field
19567 top, t
19568 top field first
19569
19570 bottom, b
19571 bottom field first The default value is "top".
19572
19573 pattern
19574 A string of numbers representing the pulldown pattern you wish to
19575 apply. The default value is 23.
19576
19577 start_frame
19578 A number representing position of the first frame with respect to
19579 the telecine pattern. This is to be used if the stream is cut. The
19580 default value is 0.
19581
19582 dilation
19583 Apply dilation effect to the video.
19584
19585 This filter replaces the pixel by the local(3x3) maximum.
19586
19587 It accepts the following options:
19588
19589 threshold0
19590 threshold1
19591 threshold2
19592 threshold3
19593 Limit the maximum change for each plane, default is 65535. If 0,
19594 plane will remain unchanged.
19595
19596 coordinates
19597 Flag which specifies the pixel to refer to. Default is 255 i.e. all
19598 eight pixels are used.
19599
19600 Flags to local 3x3 coordinates maps like this:
19601
19602 1 2 3
19603 4 5
19604 6 7 8
19605
19606 Commands
19607
19608 This filter supports the all above options as commands.
19609
19610 displace
19611 Displace pixels as indicated by second and third input stream.
19612
19613 It takes three input streams and outputs one stream, the first input is
19614 the source, and second and third input are displacement maps.
19615
19616 The second input specifies how much to displace pixels along the
19617 x-axis, while the third input specifies how much to displace pixels
19618 along the y-axis. If one of displacement map streams terminates, last
19619 frame from that displacement map will be used.
19620
19621 Note that once generated, displacements maps can be reused over and
19622 over again.
19623
19624 A description of the accepted options follows.
19625
19626 edge
19627 Set displace behavior for pixels that are out of range.
19628
19629 Available values are:
19630
19631 blank
19632 Missing pixels are replaced by black pixels.
19633
19634 smear
19635 Adjacent pixels will spread out to replace missing pixels.
19636
19637 wrap
19638 Out of range pixels are wrapped so they point to pixels of
19639 other side.
19640
19641 mirror
19642 Out of range pixels will be replaced with mirrored pixels.
19643
19644 Default is smear.
19645
19646 Examples
19647
19648 • Add ripple effect to rgb input of video size hd720:
19649
19650 ffmpeg -i INPUT -f lavfi -i nullsrc=s=hd720,lutrgb=128:128:128 -f lavfi -i nullsrc=s=hd720,geq='r=128+30*sin(2*PI*X/400+T):g=128+30*sin(2*PI*X/400+T):b=128+30*sin(2*PI*X/400+T)' -lavfi '[0][1][2]displace' OUTPUT
19651
19652 • Add wave effect to rgb input of video size hd720:
19653
19654 ffmpeg -i INPUT -f lavfi -i nullsrc=hd720,geq='r=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T)):g=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T)):b=128+80*(sin(sqrt((X-W/2)*(X-W/2)+(Y-H/2)*(Y-H/2))/220*2*PI+T))' -lavfi '[1]split[x][y],[0][x][y]displace' OUTPUT
19655
19656 dnn_classify
19657 Do classification with deep neural networks based on bounding boxes.
19658
19659 The filter accepts the following options:
19660
19661 dnn_backend
19662 Specify which DNN backend to use for model loading and execution.
19663 This option accepts only openvino now, tensorflow backends will be
19664 added.
19665
19666 model
19667 Set path to model file specifying network architecture and its
19668 parameters. Note that different backends use different file
19669 formats.
19670
19671 input
19672 Set the input name of the dnn network.
19673
19674 output
19675 Set the output name of the dnn network.
19676
19677 confidence
19678 Set the confidence threshold (default: 0.5).
19679
19680 labels
19681 Set path to label file specifying the mapping between label id and
19682 name. Each label name is written in one line, tailing spaces and
19683 empty lines are skipped. The first line is the name of label id 0,
19684 and the second line is the name of label id 1, etc. The label id
19685 is considered as name if the label file is not provided.
19686
19687 backend_configs
19688 Set the configs to be passed into backend
19689
19690 For tensorflow backend, you can set its configs with sess_config
19691 options, please use tools/python/tf_sess_config.py to get the
19692 configs for your system.
19693
19694 dnn_detect
19695 Do object detection with deep neural networks.
19696
19697 The filter accepts the following options:
19698
19699 dnn_backend
19700 Specify which DNN backend to use for model loading and execution.
19701 This option accepts only openvino now, tensorflow backends will be
19702 added.
19703
19704 model
19705 Set path to model file specifying network architecture and its
19706 parameters. Note that different backends use different file
19707 formats.
19708
19709 input
19710 Set the input name of the dnn network.
19711
19712 output
19713 Set the output name of the dnn network.
19714
19715 confidence
19716 Set the confidence threshold (default: 0.5).
19717
19718 labels
19719 Set path to label file specifying the mapping between label id and
19720 name. Each label name is written in one line, tailing spaces and
19721 empty lines are skipped. The first line is the name of label id 0
19722 (usually it is 'background'), and the second line is the name of
19723 label id 1, etc. The label id is considered as name if the label
19724 file is not provided.
19725
19726 backend_configs
19727 Set the configs to be passed into backend. To use async execution,
19728 set async (default: set). Roll back to sync execution if the
19729 backend does not support async.
19730
19731 dnn_processing
19732 Do image processing with deep neural networks. It works together with
19733 another filter which converts the pixel format of the Frame to what the
19734 dnn network requires.
19735
19736 The filter accepts the following options:
19737
19738 dnn_backend
19739 Specify which DNN backend to use for model loading and execution.
19740 This option accepts the following values:
19741
19742 native
19743 Native implementation of DNN loading and execution.
19744
19745 tensorflow
19746 TensorFlow backend. To enable this backend you need to install
19747 the TensorFlow for C library (see
19748 <https://www.tensorflow.org/install/lang_c>) and configure
19749 FFmpeg with "--enable-libtensorflow"
19750
19751 openvino
19752 OpenVINO backend. To enable this backend you need to build and
19753 install the OpenVINO for C library (see
19754 <https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md>)
19755 and configure FFmpeg with "--enable-libopenvino"
19756 (--extra-cflags=-I... --extra-ldflags=-L... might be needed if
19757 the header files and libraries are not installed into system
19758 path)
19759
19760 Default value is native.
19761
19762 model
19763 Set path to model file specifying network architecture and its
19764 parameters. Note that different backends use different file
19765 formats. TensorFlow, OpenVINO and native backend can load files for
19766 only its format.
19767
19768 Native model file (.model) can be generated from TensorFlow model
19769 file (.pb) by using tools/python/convert.py
19770
19771 input
19772 Set the input name of the dnn network.
19773
19774 output
19775 Set the output name of the dnn network.
19776
19777 backend_configs
19778 Set the configs to be passed into backend. To use async execution,
19779 set async (default: set). Roll back to sync execution if the
19780 backend does not support async.
19781
19782 For tensorflow backend, you can set its configs with sess_config
19783 options, please use tools/python/tf_sess_config.py to get the
19784 configs of TensorFlow backend for your system.
19785
19786 Examples
19787
19788 • Remove rain in rgb24 frame with can.pb (see derain filter):
19789
19790 ./ffmpeg -i rain.jpg -vf format=rgb24,dnn_processing=dnn_backend=tensorflow:model=can.pb:input=x:output=y derain.jpg
19791
19792 • Halve the pixel value of the frame with format gray32f:
19793
19794 ffmpeg -i input.jpg -vf format=grayf32,dnn_processing=model=halve_gray_float.model:input=dnn_in:output=dnn_out:dnn_backend=native -y out.native.png
19795
19796 • Handle the Y channel with srcnn.pb (see sr filter) for frame with
19797 yuv420p (planar YUV formats supported):
19798
19799 ./ffmpeg -i 480p.jpg -vf format=yuv420p,scale=w=iw*2:h=ih*2,dnn_processing=dnn_backend=tensorflow:model=srcnn.pb:input=x:output=y -y srcnn.jpg
19800
19801 • Handle the Y channel with espcn.pb (see sr filter), which changes
19802 frame size, for format yuv420p (planar YUV formats supported),
19803 please use tools/python/tf_sess_config.py to get the configs of
19804 TensorFlow backend for your system.
19805
19806 ./ffmpeg -i 480p.jpg -vf format=yuv420p,dnn_processing=dnn_backend=tensorflow:model=espcn.pb:input=x:output=y:backend_configs=sess_config=0x10022805320e09cdccccccccccec3f20012a01303801 -y tmp.espcn.jpg
19807
19808 drawbox
19809 Draw a colored box on the input image.
19810
19811 It accepts the following parameters:
19812
19813 x
19814 y The expressions which specify the top left corner coordinates of
19815 the box. It defaults to 0.
19816
19817 width, w
19818 height, h
19819 The expressions which specify the width and height of the box; if 0
19820 they are interpreted as the input width and height. It defaults to
19821 0.
19822
19823 color, c
19824 Specify the color of the box to write. For the general syntax of
19825 this option, check the "Color" section in the ffmpeg-utils manual.
19826 If the special value "invert" is used, the box edge color is the
19827 same as the video with inverted luma.
19828
19829 thickness, t
19830 The expression which sets the thickness of the box edge. A value
19831 of "fill" will create a filled box. Default value is 3.
19832
19833 See below for the list of accepted constants.
19834
19835 replace
19836 Applicable if the input has alpha. With value 1, the pixels of the
19837 painted box will overwrite the video's color and alpha pixels.
19838 Default is 0, which composites the box onto the input, leaving the
19839 video's alpha intact.
19840
19841 The parameters for x, y, w and h and t are expressions containing the
19842 following constants:
19843
19844 dar The input display aspect ratio, it is the same as (w / h) * sar.
19845
19846 hsub
19847 vsub
19848 horizontal and vertical chroma subsample values. For example for
19849 the pixel format "yuv422p" hsub is 2 and vsub is 1.
19850
19851 in_h, ih
19852 in_w, iw
19853 The input width and height.
19854
19855 sar The input sample aspect ratio.
19856
19857 x
19858 y The x and y offset coordinates where the box is drawn.
19859
19860 w
19861 h The width and height of the drawn box.
19862
19863 box_source
19864 Box source can be set as side_data_detection_bboxes if you want to
19865 use box data in detection bboxes of side data.
19866
19867 If box_source is set, the x, y, width and height will be ignored
19868 and still use box data in detection bboxes of side data. So please
19869 do not use this parameter if you were not sure about the box
19870 source.
19871
19872 t The thickness of the drawn box.
19873
19874 These constants allow the x, y, w, h and t expressions to refer to
19875 each other, so you may for example specify "y=x/dar" or "h=w/dar".
19876
19877 Examples
19878
19879 • Draw a black box around the edge of the input image:
19880
19881 drawbox
19882
19883 • Draw a box with color red and an opacity of 50%:
19884
19885 drawbox=10:20:200:60:red@0.5
19886
19887 The previous example can be specified as:
19888
19889 drawbox=x=10:y=20:w=200:h=60:color=red@0.5
19890
19891 • Fill the box with pink color:
19892
19893 drawbox=x=10:y=10:w=100:h=100:color=pink@0.5:t=fill
19894
19895 • Draw a 2-pixel red 2.40:1 mask:
19896
19897 drawbox=x=-t:y=0.5*(ih-iw/2.4)-t:w=iw+t*2:h=iw/2.4+t*2:t=2:c=red
19898
19899 Commands
19900
19901 This filter supports same commands as options. The command accepts the
19902 same syntax of the corresponding option.
19903
19904 If the specified expression is not valid, it is kept at its current
19905 value.
19906
19907 drawgraph
19908 Draw a graph using input video metadata.
19909
19910 It accepts the following parameters:
19911
19912 m1 Set 1st frame metadata key from which metadata values will be used
19913 to draw a graph.
19914
19915 fg1 Set 1st foreground color expression.
19916
19917 m2 Set 2nd frame metadata key from which metadata values will be used
19918 to draw a graph.
19919
19920 fg2 Set 2nd foreground color expression.
19921
19922 m3 Set 3rd frame metadata key from which metadata values will be used
19923 to draw a graph.
19924
19925 fg3 Set 3rd foreground color expression.
19926
19927 m4 Set 4th frame metadata key from which metadata values will be used
19928 to draw a graph.
19929
19930 fg4 Set 4th foreground color expression.
19931
19932 min Set minimal value of metadata value.
19933
19934 max Set maximal value of metadata value.
19935
19936 bg Set graph background color. Default is white.
19937
19938 mode
19939 Set graph mode.
19940
19941 Available values for mode is:
19942
19943 bar
19944 dot
19945 line
19946
19947 Default is "line".
19948
19949 slide
19950 Set slide mode.
19951
19952 Available values for slide is:
19953
19954 frame
19955 Draw new frame when right border is reached.
19956
19957 replace
19958 Replace old columns with new ones.
19959
19960 scroll
19961 Scroll from right to left.
19962
19963 rscroll
19964 Scroll from left to right.
19965
19966 picture
19967 Draw single picture.
19968
19969 Default is "frame".
19970
19971 size
19972 Set size of graph video. For the syntax of this option, check the
19973 "Video size" section in the ffmpeg-utils manual. The default value
19974 is "900x256".
19975
19976 rate, r
19977 Set the output frame rate. Default value is 25.
19978
19979 The foreground color expressions can use the following variables:
19980
19981 MIN Minimal value of metadata value.
19982
19983 MAX Maximal value of metadata value.
19984
19985 VAL Current metadata key value.
19986
19987 The color is defined as 0xAABBGGRR.
19988
19989 Example using metadata from signalstats filter:
19990
19991 signalstats,drawgraph=lavfi.signalstats.YAVG:min=0:max=255
19992
19993 Example using metadata from ebur128 filter:
19994
19995 ebur128=metadata=1,adrawgraph=lavfi.r128.M:min=-120:max=5
19996
19997 drawgrid
19998 Draw a grid on the input image.
19999
20000 It accepts the following parameters:
20001
20002 x
20003 y The expressions which specify the coordinates of some point of grid
20004 intersection (meant to configure offset). Both default to 0.
20005
20006 width, w
20007 height, h
20008 The expressions which specify the width and height of the grid
20009 cell, if 0 they are interpreted as the input width and height,
20010 respectively, minus "thickness", so image gets framed. Default to
20011 0.
20012
20013 color, c
20014 Specify the color of the grid. For the general syntax of this
20015 option, check the "Color" section in the ffmpeg-utils manual. If
20016 the special value "invert" is used, the grid color is the same as
20017 the video with inverted luma.
20018
20019 thickness, t
20020 The expression which sets the thickness of the grid line. Default
20021 value is 1.
20022
20023 See below for the list of accepted constants.
20024
20025 replace
20026 Applicable if the input has alpha. With 1 the pixels of the painted
20027 grid will overwrite the video's color and alpha pixels. Default is
20028 0, which composites the grid onto the input, leaving the video's
20029 alpha intact.
20030
20031 The parameters for x, y, w and h and t are expressions containing the
20032 following constants:
20033
20034 dar The input display aspect ratio, it is the same as (w / h) * sar.
20035
20036 hsub
20037 vsub
20038 horizontal and vertical chroma subsample values. For example for
20039 the pixel format "yuv422p" hsub is 2 and vsub is 1.
20040
20041 in_h, ih
20042 in_w, iw
20043 The input grid cell width and height.
20044
20045 sar The input sample aspect ratio.
20046
20047 x
20048 y The x and y coordinates of some point of grid intersection (meant
20049 to configure offset).
20050
20051 w
20052 h The width and height of the drawn cell.
20053
20054 t The thickness of the drawn cell.
20055
20056 These constants allow the x, y, w, h and t expressions to refer to
20057 each other, so you may for example specify "y=x/dar" or "h=w/dar".
20058
20059 Examples
20060
20061 • Draw a grid with cell 100x100 pixels, thickness 2 pixels, with
20062 color red and an opacity of 50%:
20063
20064 drawgrid=width=100:height=100:thickness=2:color=red@0.5
20065
20066 • Draw a white 3x3 grid with an opacity of 50%:
20067
20068 drawgrid=w=iw/3:h=ih/3:t=2:c=white@0.5
20069
20070 Commands
20071
20072 This filter supports same commands as options. The command accepts the
20073 same syntax of the corresponding option.
20074
20075 If the specified expression is not valid, it is kept at its current
20076 value.
20077
20078 drawtext
20079 Draw a text string or text from a specified file on top of a video,
20080 using the libfreetype library.
20081
20082 To enable compilation of this filter, you need to configure FFmpeg with
20083 "--enable-libfreetype". To enable default font fallback and the font
20084 option you need to configure FFmpeg with "--enable-libfontconfig". To
20085 enable the text_shaping option, you need to configure FFmpeg with
20086 "--enable-libfribidi".
20087
20088 Syntax
20089
20090 It accepts the following parameters:
20091
20092 box Used to draw a box around text using the background color. The
20093 value must be either 1 (enable) or 0 (disable). The default value
20094 of box is 0.
20095
20096 boxborderw
20097 Set the width of the border to be drawn around the box using
20098 boxcolor. The default value of boxborderw is 0.
20099
20100 boxcolor
20101 The color to be used for drawing box around text. For the syntax of
20102 this option, check the "Color" section in the ffmpeg-utils manual.
20103
20104 The default value of boxcolor is "white".
20105
20106 line_spacing
20107 Set the line spacing in pixels of the border to be drawn around the
20108 box using box. The default value of line_spacing is 0.
20109
20110 borderw
20111 Set the width of the border to be drawn around the text using
20112 bordercolor. The default value of borderw is 0.
20113
20114 bordercolor
20115 Set the color to be used for drawing border around text. For the
20116 syntax of this option, check the "Color" section in the ffmpeg-
20117 utils manual.
20118
20119 The default value of bordercolor is "black".
20120
20121 expansion
20122 Select how the text is expanded. Can be either "none", "strftime"
20123 (deprecated) or "normal" (default). See the drawtext_expansion,
20124 Text expansion section below for details.
20125
20126 basetime
20127 Set a start time for the count. Value is in microseconds. Only
20128 applied in the deprecated strftime expansion mode. To emulate in
20129 normal expansion mode use the "pts" function, supplying the start
20130 time (in seconds) as the second argument.
20131
20132 fix_bounds
20133 If true, check and fix text coords to avoid clipping.
20134
20135 fontcolor
20136 The color to be used for drawing fonts. For the syntax of this
20137 option, check the "Color" section in the ffmpeg-utils manual.
20138
20139 The default value of fontcolor is "black".
20140
20141 fontcolor_expr
20142 String which is expanded the same way as text to obtain dynamic
20143 fontcolor value. By default this option has empty value and is not
20144 processed. When this option is set, it overrides fontcolor option.
20145
20146 font
20147 The font family to be used for drawing text. By default Sans.
20148
20149 fontfile
20150 The font file to be used for drawing text. The path must be
20151 included. This parameter is mandatory if the fontconfig support is
20152 disabled.
20153
20154 alpha
20155 Draw the text applying alpha blending. The value can be a number
20156 between 0.0 and 1.0. The expression accepts the same variables x,
20157 y as well. The default value is 1. Please see fontcolor_expr.
20158
20159 fontsize
20160 The font size to be used for drawing text. The default value of
20161 fontsize is 16.
20162
20163 text_shaping
20164 If set to 1, attempt to shape the text (for example, reverse the
20165 order of right-to-left text and join Arabic characters) before
20166 drawing it. Otherwise, just draw the text exactly as given. By
20167 default 1 (if supported).
20168
20169 ft_load_flags
20170 The flags to be used for loading the fonts.
20171
20172 The flags map the corresponding flags supported by libfreetype, and
20173 are a combination of the following values:
20174
20175 default
20176 no_scale
20177 no_hinting
20178 render
20179 no_bitmap
20180 vertical_layout
20181 force_autohint
20182 crop_bitmap
20183 pedantic
20184 ignore_global_advance_width
20185 no_recurse
20186 ignore_transform
20187 monochrome
20188 linear_design
20189 no_autohint
20190
20191 Default value is "default".
20192
20193 For more information consult the documentation for the FT_LOAD_*
20194 libfreetype flags.
20195
20196 shadowcolor
20197 The color to be used for drawing a shadow behind the drawn text.
20198 For the syntax of this option, check the "Color" section in the
20199 ffmpeg-utils manual.
20200
20201 The default value of shadowcolor is "black".
20202
20203 shadowx
20204 shadowy
20205 The x and y offsets for the text shadow position with respect to
20206 the position of the text. They can be either positive or negative
20207 values. The default value for both is "0".
20208
20209 start_number
20210 The starting frame number for the n/frame_num variable. The default
20211 value is "0".
20212
20213 tabsize
20214 The size in number of spaces to use for rendering the tab. Default
20215 value is 4.
20216
20217 timecode
20218 Set the initial timecode representation in "hh:mm:ss[:;.]ff"
20219 format. It can be used with or without text parameter.
20220 timecode_rate option must be specified.
20221
20222 timecode_rate, rate, r
20223 Set the timecode frame rate (timecode only). Value will be rounded
20224 to nearest integer. Minimum value is "1". Drop-frame timecode is
20225 supported for frame rates 30 & 60.
20226
20227 tc24hmax
20228 If set to 1, the output of the timecode option will wrap around at
20229 24 hours. Default is 0 (disabled).
20230
20231 text
20232 The text string to be drawn. The text must be a sequence of UTF-8
20233 encoded characters. This parameter is mandatory if no file is
20234 specified with the parameter textfile.
20235
20236 textfile
20237 A text file containing text to be drawn. The text must be a
20238 sequence of UTF-8 encoded characters.
20239
20240 This parameter is mandatory if no text string is specified with the
20241 parameter text.
20242
20243 If both text and textfile are specified, an error is thrown.
20244
20245 text_source
20246 Text source should be set as side_data_detection_bboxes if you want
20247 to use text data in detection bboxes of side data.
20248
20249 If text source is set, text and textfile will be ignored and still
20250 use text data in detection bboxes of side data. So please do not
20251 use this parameter if you are not sure about the text source.
20252
20253 reload
20254 The textfile will be reloaded at specified frame interval. Be sure
20255 to update textfile atomically, or it may be read partially, or even
20256 fail. Range is 0 to INT_MAX. Default is 0.
20257
20258 x
20259 y The expressions which specify the offsets where text will be drawn
20260 within the video frame. They are relative to the top/left border of
20261 the output image.
20262
20263 The default value of x and y is "0".
20264
20265 See below for the list of accepted constants and functions.
20266
20267 The parameters for x and y are expressions containing the following
20268 constants and functions:
20269
20270 dar input display aspect ratio, it is the same as (w / h) * sar
20271
20272 hsub
20273 vsub
20274 horizontal and vertical chroma subsample values. For example for
20275 the pixel format "yuv422p" hsub is 2 and vsub is 1.
20276
20277 line_h, lh
20278 the height of each text line
20279
20280 main_h, h, H
20281 the input height
20282
20283 main_w, w, W
20284 the input width
20285
20286 max_glyph_a, ascent
20287 the maximum distance from the baseline to the highest/upper grid
20288 coordinate used to place a glyph outline point, for all the
20289 rendered glyphs. It is a positive value, due to the grid's
20290 orientation with the Y axis upwards.
20291
20292 max_glyph_d, descent
20293 the maximum distance from the baseline to the lowest grid
20294 coordinate used to place a glyph outline point, for all the
20295 rendered glyphs. This is a negative value, due to the grid's
20296 orientation, with the Y axis upwards.
20297
20298 max_glyph_h
20299 maximum glyph height, that is the maximum height for all the glyphs
20300 contained in the rendered text, it is equivalent to ascent -
20301 descent.
20302
20303 max_glyph_w
20304 maximum glyph width, that is the maximum width for all the glyphs
20305 contained in the rendered text
20306
20307 n the number of input frame, starting from 0
20308
20309 rand(min, max)
20310 return a random number included between min and max
20311
20312 sar The input sample aspect ratio.
20313
20314 t timestamp expressed in seconds, NAN if the input timestamp is
20315 unknown
20316
20317 text_h, th
20318 the height of the rendered text
20319
20320 text_w, tw
20321 the width of the rendered text
20322
20323 x
20324 y the x and y offset coordinates where the text is drawn.
20325
20326 These parameters allow the x and y expressions to refer to each
20327 other, so you can for example specify "y=x/dar".
20328
20329 pict_type
20330 A one character description of the current frame's picture type.
20331
20332 pkt_pos
20333 The current packet's position in the input file or stream (in
20334 bytes, from the start of the input). A value of -1 indicates this
20335 info is not available.
20336
20337 duration
20338 The current packet's duration, in seconds.
20339
20340 pkt_size
20341 The current packet's size (in bytes).
20342
20343 Text expansion
20344
20345 If expansion is set to "strftime", the filter recognizes strftime()
20346 sequences in the provided text and expands them accordingly. Check the
20347 documentation of strftime(). This feature is deprecated.
20348
20349 If expansion is set to "none", the text is printed verbatim.
20350
20351 If expansion is set to "normal" (which is the default), the following
20352 expansion mechanism is used.
20353
20354 The backslash character \, followed by any character, always expands to
20355 the second character.
20356
20357 Sequences of the form "%{...}" are expanded. The text between the
20358 braces is a function name, possibly followed by arguments separated by
20359 ':'. If the arguments contain special characters or delimiters (':' or
20360 '}'), they should be escaped.
20361
20362 Note that they probably must also be escaped as the value for the text
20363 option in the filter argument string and as the filter argument in the
20364 filtergraph description, and possibly also for the shell, that makes up
20365 to four levels of escaping; using a text file avoids these problems.
20366
20367 The following functions are available:
20368
20369 expr, e
20370 The expression evaluation result.
20371
20372 It must take one argument specifying the expression to be
20373 evaluated, which accepts the same constants and functions as the x
20374 and y values. Note that not all constants should be used, for
20375 example the text size is not known when evaluating the expression,
20376 so the constants text_w and text_h will have an undefined value.
20377
20378 expr_int_format, eif
20379 Evaluate the expression's value and output as formatted integer.
20380
20381 The first argument is the expression to be evaluated, just as for
20382 the expr function. The second argument specifies the output
20383 format. Allowed values are x, X, d and u. They are treated exactly
20384 as in the "printf" function. The third parameter is optional and
20385 sets the number of positions taken by the output. It can be used
20386 to add padding with zeros from the left.
20387
20388 gmtime
20389 The time at which the filter is running, expressed in UTC. It can
20390 accept an argument: a strftime() format string. The format string
20391 is extended to support the variable %[1-6]N which prints fractions
20392 of the second with optionally specified number of digits.
20393
20394 localtime
20395 The time at which the filter is running, expressed in the local
20396 time zone. It can accept an argument: a strftime() format string.
20397 The format string is extended to support the variable %[1-6]N which
20398 prints fractions of the second with optionally specified number of
20399 digits.
20400
20401 metadata
20402 Frame metadata. Takes one or two arguments.
20403
20404 The first argument is mandatory and specifies the metadata key.
20405
20406 The second argument is optional and specifies a default value, used
20407 when the metadata key is not found or empty.
20408
20409 Available metadata can be identified by inspecting entries starting
20410 with TAG included within each frame section printed by running
20411 "ffprobe -show_frames".
20412
20413 String metadata generated in filters leading to the drawtext filter
20414 are also available.
20415
20416 n, frame_num
20417 The frame number, starting from 0.
20418
20419 pict_type
20420 A one character description of the current picture type.
20421
20422 pts The timestamp of the current frame. It can take up to three
20423 arguments.
20424
20425 The first argument is the format of the timestamp; it defaults to
20426 "flt" for seconds as a decimal number with microsecond accuracy;
20427 "hms" stands for a formatted [-]HH:MM:SS.mmm timestamp with
20428 millisecond accuracy. "gmtime" stands for the timestamp of the
20429 frame formatted as UTC time; "localtime" stands for the timestamp
20430 of the frame formatted as local time zone time.
20431
20432 The second argument is an offset added to the timestamp.
20433
20434 If the format is set to "hms", a third argument "24HH" may be
20435 supplied to present the hour part of the formatted timestamp in 24h
20436 format (00-23).
20437
20438 If the format is set to "localtime" or "gmtime", a third argument
20439 may be supplied: a strftime() format string. By default, YYYY-MM-
20440 DD HH:MM:SS format will be used.
20441
20442 Commands
20443
20444 This filter supports altering parameters via commands:
20445
20446 reinit
20447 Alter existing filter parameters.
20448
20449 Syntax for the argument is the same as for filter invocation, e.g.
20450
20451 fontsize=56:fontcolor=green:text='Hello World'
20452
20453 Full filter invocation with sendcmd would look like this:
20454
20455 sendcmd=c='56.0 drawtext reinit fontsize=56\:fontcolor=green\:text=Hello\\ World'
20456
20457 If the entire argument can't be parsed or applied as valid values then
20458 the filter will continue with its existing parameters.
20459
20460 Examples
20461
20462 • Draw "Test Text" with font FreeSerif, using the default values for
20463 the optional parameters.
20464
20465 drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text'"
20466
20467 • Draw 'Test Text' with font FreeSerif of size 24 at position x=100
20468 and y=50 (counting from the top-left corner of the screen), text is
20469 yellow with a red box around it. Both the text and the box have an
20470 opacity of 20%.
20471
20472 drawtext="fontfile=/usr/share/fonts/truetype/freefont/FreeSerif.ttf: text='Test Text':\
20473 x=100: y=50: fontsize=24: fontcolor=yellow@0.2: box=1: boxcolor=red@0.2"
20474
20475 Note that the double quotes are not necessary if spaces are not
20476 used within the parameter list.
20477
20478 • Show the text at the center of the video frame:
20479
20480 drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=(w-text_w)/2:y=(h-text_h)/2"
20481
20482 • Show the text at a random position, switching to a new position
20483 every 30 seconds:
20484
20485 drawtext="fontsize=30:fontfile=FreeSerif.ttf:text='hello world':x=if(eq(mod(t\,30)\,0)\,rand(0\,(w-text_w))\,x):y=if(eq(mod(t\,30)\,0)\,rand(0\,(h-text_h))\,y)"
20486
20487 • Show a text line sliding from right to left in the last row of the
20488 video frame. The file LONG_LINE is assumed to contain a single line
20489 with no newlines.
20490
20491 drawtext="fontsize=15:fontfile=FreeSerif.ttf:text=LONG_LINE:y=h-line_h:x=-50*t"
20492
20493 • Show the content of file CREDITS off the bottom of the frame and
20494 scroll up.
20495
20496 drawtext="fontsize=20:fontfile=FreeSerif.ttf:textfile=CREDITS:y=h-20*t"
20497
20498 • Draw a single green letter "g", at the center of the input video.
20499 The glyph baseline is placed at half screen height.
20500
20501 drawtext="fontsize=60:fontfile=FreeSerif.ttf:fontcolor=green:text=g:x=(w-max_glyph_w)/2:y=h/2-ascent"
20502
20503 • Show text for 1 second every 3 seconds:
20504
20505 drawtext="fontfile=FreeSerif.ttf:fontcolor=white:x=100:y=x/dar:enable=lt(mod(t\,3)\,1):text='blink'"
20506
20507 • Use fontconfig to set the font. Note that the colons need to be
20508 escaped.
20509
20510 drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg'
20511
20512 • Draw "Test Text" with font size dependent on height of the video.
20513
20514 drawtext="text='Test Text': fontsize=h/30: x=(w-text_w)/2: y=(h-text_h*2)"
20515
20516 • Print the date of a real-time encoding (see strftime(3)):
20517
20518 drawtext='fontfile=FreeSans.ttf:text=%{localtime\:%a %b %d %Y}'
20519
20520 • Show text fading in and out (appearing/disappearing):
20521
20522 #!/bin/sh
20523 DS=1.0 # display start
20524 DE=10.0 # display end
20525 FID=1.5 # fade in duration
20526 FOD=5 # fade out duration
20527 ffplay -f lavfi "color,drawtext=text=TEST:fontsize=50:fontfile=FreeSerif.ttf:fontcolor_expr=ff0000%{eif\\\\: clip(255*(1*between(t\\, $DS + $FID\\, $DE - $FOD) + ((t - $DS)/$FID)*between(t\\, $DS\\, $DS + $FID) + (-(t - $DE)/$FOD)*between(t\\, $DE - $FOD\\, $DE) )\\, 0\\, 255) \\\\: x\\\\: 2 }"
20528
20529 • Horizontally align multiple separate texts. Note that max_glyph_a
20530 and the fontsize value are included in the y offset.
20531
20532 drawtext=fontfile=FreeSans.ttf:text=DOG:fontsize=24:x=10:y=20+24-max_glyph_a,
20533 drawtext=fontfile=FreeSans.ttf:text=cow:fontsize=24:x=80:y=20+24-max_glyph_a
20534
20535 • Plot special lavf.image2dec.source_basename metadata onto each
20536 frame if such metadata exists. Otherwise, plot the string "NA".
20537 Note that image2 demuxer must have option -export_path_metadata 1
20538 for the special metadata fields to be available for filters.
20539
20540 drawtext="fontsize=20:fontcolor=white:fontfile=FreeSans.ttf:text='%{metadata\:lavf.image2dec.source_basename\:NA}':x=10:y=10"
20541
20542 For more information about libfreetype, check:
20543 <http://www.freetype.org/>.
20544
20545 For more information about fontconfig, check:
20546 <http://freedesktop.org/software/fontconfig/fontconfig-user.html>.
20547
20548 For more information about libfribidi, check: <http://fribidi.org/>.
20549
20550 edgedetect
20551 Detect and draw edges. The filter uses the Canny Edge Detection
20552 algorithm.
20553
20554 The filter accepts the following options:
20555
20556 low
20557 high
20558 Set low and high threshold values used by the Canny thresholding
20559 algorithm.
20560
20561 The high threshold selects the "strong" edge pixels, which are then
20562 connected through 8-connectivity with the "weak" edge pixels
20563 selected by the low threshold.
20564
20565 low and high threshold values must be chosen in the range [0,1],
20566 and low should be lesser or equal to high.
20567
20568 Default value for low is "20/255", and default value for high is
20569 "50/255".
20570
20571 mode
20572 Define the drawing mode.
20573
20574 wires
20575 Draw white/gray wires on black background.
20576
20577 colormix
20578 Mix the colors to create a paint/cartoon effect.
20579
20580 canny
20581 Apply Canny edge detector on all selected planes.
20582
20583 Default value is wires.
20584
20585 planes
20586 Select planes for filtering. By default all available planes are
20587 filtered.
20588
20589 Examples
20590
20591 • Standard edge detection with custom values for the hysteresis
20592 thresholding:
20593
20594 edgedetect=low=0.1:high=0.4
20595
20596 • Painting effect without thresholding:
20597
20598 edgedetect=mode=colormix:high=0
20599
20600 elbg
20601 Apply a posterize effect using the ELBG (Enhanced LBG) algorithm.
20602
20603 For each input image, the filter will compute the optimal mapping from
20604 the input to the output given the codebook length, that is the number
20605 of distinct output colors.
20606
20607 This filter accepts the following options.
20608
20609 codebook_length, l
20610 Set codebook length. The value must be a positive integer, and
20611 represents the number of distinct output colors. Default value is
20612 256.
20613
20614 nb_steps, n
20615 Set the maximum number of iterations to apply for computing the
20616 optimal mapping. The higher the value the better the result and the
20617 higher the computation time. Default value is 1.
20618
20619 seed, s
20620 Set a random seed, must be an integer included between 0 and
20621 UINT32_MAX. If not specified, or if explicitly set to -1, the
20622 filter will try to use a good random seed on a best effort basis.
20623
20624 pal8
20625 Set pal8 output pixel format. This option does not work with
20626 codebook length greater than 256. Default is disabled.
20627
20628 use_alpha
20629 Include alpha values in the quantization calculation. Allows
20630 creating palettized output images (e.g. PNG8) with multiple alpha
20631 smooth blending.
20632
20633 entropy
20634 Measure graylevel entropy in histogram of color channels of video
20635 frames.
20636
20637 It accepts the following parameters:
20638
20639 mode
20640 Can be either normal or diff. Default is normal.
20641
20642 diff mode measures entropy of histogram delta values, absolute
20643 differences between neighbour histogram values.
20644
20645 epx
20646 Apply the EPX magnification filter which is designed for pixel art.
20647
20648 It accepts the following option:
20649
20650 n Set the scaling dimension: 2 for "2xEPX", 3 for "3xEPX". Default
20651 is 3.
20652
20653 eq
20654 Set brightness, contrast, saturation and approximate gamma adjustment.
20655
20656 The filter accepts the following options:
20657
20658 contrast
20659 Set the contrast expression. The value must be a float value in
20660 range -1000.0 to 1000.0. The default value is "1".
20661
20662 brightness
20663 Set the brightness expression. The value must be a float value in
20664 range -1.0 to 1.0. The default value is "0".
20665
20666 saturation
20667 Set the saturation expression. The value must be a float in range
20668 0.0 to 3.0. The default value is "1".
20669
20670 gamma
20671 Set the gamma expression. The value must be a float in range 0.1 to
20672 10.0. The default value is "1".
20673
20674 gamma_r
20675 Set the gamma expression for red. The value must be a float in
20676 range 0.1 to 10.0. The default value is "1".
20677
20678 gamma_g
20679 Set the gamma expression for green. The value must be a float in
20680 range 0.1 to 10.0. The default value is "1".
20681
20682 gamma_b
20683 Set the gamma expression for blue. The value must be a float in
20684 range 0.1 to 10.0. The default value is "1".
20685
20686 gamma_weight
20687 Set the gamma weight expression. It can be used to reduce the
20688 effect of a high gamma value on bright image areas, e.g. keep them
20689 from getting overamplified and just plain white. The value must be
20690 a float in range 0.0 to 1.0. A value of 0.0 turns the gamma
20691 correction all the way down while 1.0 leaves it at its full
20692 strength. Default is "1".
20693
20694 eval
20695 Set when the expressions for brightness, contrast, saturation and
20696 gamma expressions are evaluated.
20697
20698 It accepts the following values:
20699
20700 init
20701 only evaluate expressions once during the filter initialization
20702 or when a command is processed
20703
20704 frame
20705 evaluate expressions for each incoming frame
20706
20707 Default value is init.
20708
20709 The expressions accept the following parameters:
20710
20711 n frame count of the input frame starting from 0
20712
20713 pos byte position of the corresponding packet in the input file, NAN if
20714 unspecified
20715
20716 r frame rate of the input video, NAN if the input frame rate is
20717 unknown
20718
20719 t timestamp expressed in seconds, NAN if the input timestamp is
20720 unknown
20721
20722 Commands
20723
20724 The filter supports the following commands:
20725
20726 contrast
20727 Set the contrast expression.
20728
20729 brightness
20730 Set the brightness expression.
20731
20732 saturation
20733 Set the saturation expression.
20734
20735 gamma
20736 Set the gamma expression.
20737
20738 gamma_r
20739 Set the gamma_r expression.
20740
20741 gamma_g
20742 Set gamma_g expression.
20743
20744 gamma_b
20745 Set gamma_b expression.
20746
20747 gamma_weight
20748 Set gamma_weight expression.
20749
20750 The command accepts the same syntax of the corresponding option.
20751
20752 If the specified expression is not valid, it is kept at its current
20753 value.
20754
20755 erosion
20756 Apply erosion effect to the video.
20757
20758 This filter replaces the pixel by the local(3x3) minimum.
20759
20760 It accepts the following options:
20761
20762 threshold0
20763 threshold1
20764 threshold2
20765 threshold3
20766 Limit the maximum change for each plane, default is 65535. If 0,
20767 plane will remain unchanged.
20768
20769 coordinates
20770 Flag which specifies the pixel to refer to. Default is 255 i.e. all
20771 eight pixels are used.
20772
20773 Flags to local 3x3 coordinates maps like this:
20774
20775 1 2 3
20776 4 5
20777 6 7 8
20778
20779 Commands
20780
20781 This filter supports the all above options as commands.
20782
20783 estdif
20784 Deinterlace the input video ("estdif" stands for "Edge Slope Tracing
20785 Deinterlacing Filter").
20786
20787 Spatial only filter that uses edge slope tracing algorithm to
20788 interpolate missing lines. It accepts the following parameters:
20789
20790 mode
20791 The interlacing mode to adopt. It accepts one of the following
20792 values:
20793
20794 frame
20795 Output one frame for each frame.
20796
20797 field
20798 Output one frame for each field.
20799
20800 The default value is "field".
20801
20802 parity
20803 The picture field parity assumed for the input interlaced video. It
20804 accepts one of the following values:
20805
20806 tff Assume the top field is first.
20807
20808 bff Assume the bottom field is first.
20809
20810 auto
20811 Enable automatic detection of field parity.
20812
20813 The default value is "auto". If the interlacing is unknown or the
20814 decoder does not export this information, top field first will be
20815 assumed.
20816
20817 deint
20818 Specify which frames to deinterlace. Accepts one of the following
20819 values:
20820
20821 all Deinterlace all frames.
20822
20823 interlaced
20824 Only deinterlace frames marked as interlaced.
20825
20826 The default value is "all".
20827
20828 rslope
20829 Specify the search radius for edge slope tracing. Default value is
20830 1. Allowed range is from 1 to 15.
20831
20832 redge
20833 Specify the search radius for best edge matching. Default value is
20834 2. Allowed range is from 0 to 15.
20835
20836 ecost
20837 Specify the edge cost for edge matching. Default value is 1.0.
20838 Allowed range is from 0 to 9.
20839
20840 mcost
20841 Specify the middle cost for edge matching. Default value is 0.5.
20842 Allowed range is from 0 to 1.
20843
20844 dcost
20845 Specify the distance cost for edge matching. Default value is 0.5.
20846 Allowed range is from 0 to 1.
20847
20848 interp
20849 Specify the interpolation used. Default is 4-point interpolation.
20850 It accepts one of the following values:
20851
20852 2p Two-point interpolation.
20853
20854 4p Four-point interpolation.
20855
20856 6p Six-point interpolation.
20857
20858 Commands
20859
20860 This filter supports same commands as options.
20861
20862 exposure
20863 Adjust exposure of the video stream.
20864
20865 The filter accepts the following options:
20866
20867 exposure
20868 Set the exposure correction in EV. Allowed range is from -3.0 to
20869 3.0 EV Default value is 0 EV.
20870
20871 black
20872 Set the black level correction. Allowed range is from -1.0 to 1.0.
20873 Default value is 0.
20874
20875 Commands
20876
20877 This filter supports same commands as options.
20878
20879 extractplanes
20880 Extract color channel components from input video stream into separate
20881 grayscale video streams.
20882
20883 The filter accepts the following option:
20884
20885 planes
20886 Set plane(s) to extract.
20887
20888 Available values for planes are:
20889
20890 y
20891 u
20892 v
20893 a
20894 r
20895 g
20896 b
20897
20898 Choosing planes not available in the input will result in an error.
20899 That means you cannot select "r", "g", "b" planes with "y", "u",
20900 "v" planes at same time.
20901
20902 Examples
20903
20904 • Extract luma, u and v color channel component from input video
20905 frame into 3 grayscale outputs:
20906
20907 ffmpeg -i video.avi -filter_complex 'extractplanes=y+u+v[y][u][v]' -map '[y]' y.avi -map '[u]' u.avi -map '[v]' v.avi
20908
20909 fade
20910 Apply a fade-in/out effect to the input video.
20911
20912 It accepts the following parameters:
20913
20914 type, t
20915 The effect type can be either "in" for a fade-in, or "out" for a
20916 fade-out effect. Default is "in".
20917
20918 start_frame, s
20919 Specify the number of the frame to start applying the fade effect
20920 at. Default is 0.
20921
20922 nb_frames, n
20923 The number of frames that the fade effect lasts. At the end of the
20924 fade-in effect, the output video will have the same intensity as
20925 the input video. At the end of the fade-out transition, the output
20926 video will be filled with the selected color. Default is 25.
20927
20928 alpha
20929 If set to 1, fade only alpha channel, if one exists on the input.
20930 Default value is 0.
20931
20932 start_time, st
20933 Specify the timestamp (in seconds) of the frame to start to apply
20934 the fade effect. If both start_frame and start_time are specified,
20935 the fade will start at whichever comes last. Default is 0.
20936
20937 duration, d
20938 The number of seconds for which the fade effect has to last. At the
20939 end of the fade-in effect the output video will have the same
20940 intensity as the input video, at the end of the fade-out transition
20941 the output video will be filled with the selected color. If both
20942 duration and nb_frames are specified, duration is used. Default is
20943 0 (nb_frames is used by default).
20944
20945 color, c
20946 Specify the color of the fade. Default is "black".
20947
20948 Examples
20949
20950 • Fade in the first 30 frames of video:
20951
20952 fade=in:0:30
20953
20954 The command above is equivalent to:
20955
20956 fade=t=in:s=0:n=30
20957
20958 • Fade out the last 45 frames of a 200-frame video:
20959
20960 fade=out:155:45
20961 fade=type=out:start_frame=155:nb_frames=45
20962
20963 • Fade in the first 25 frames and fade out the last 25 frames of a
20964 1000-frame video:
20965
20966 fade=in:0:25, fade=out:975:25
20967
20968 • Make the first 5 frames yellow, then fade in from frame 5-24:
20969
20970 fade=in:5:20:color=yellow
20971
20972 • Fade in alpha over first 25 frames of video:
20973
20974 fade=in:0:25:alpha=1
20975
20976 • Make the first 5.5 seconds black, then fade in for 0.5 seconds:
20977
20978 fade=t=in:st=5.5:d=0.5
20979
20980 feedback
20981 Apply feedback video filter.
20982
20983 This filter pass cropped input frames to 2nd output. From there it can
20984 be filtered with other video filters. After filter receives frame from
20985 2nd input, that frame is combined on top of original frame from 1st
20986 input and passed to 1st output.
20987
20988 The typical usage is filter only part of frame.
20989
20990 The filter accepts the following options:
20991
20992 x
20993 y Set the top left crop position.
20994
20995 w
20996 h Set the crop size.
20997
20998 Examples
20999
21000 • Blur only top left rectangular part of video frame size 100x100
21001 with gblur filter.
21002
21003 [in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]gblur=8[blurin]
21004
21005 • Draw black box on top left part of video frame of size 100x100 with
21006 drawbox filter.
21007
21008 [in][blurin]feedback=x=0:y=0:w=100:h=100[out][blurout];[blurout]drawbox=x=0:y=0:w=100:h=100:t=100[blurin]
21009
21010 fftdnoiz
21011 Denoise frames using 3D FFT (frequency domain filtering).
21012
21013 The filter accepts the following options:
21014
21015 sigma
21016 Set the noise sigma constant. This sets denoising strength.
21017 Default value is 1. Allowed range is from 0 to 30. Using very high
21018 sigma with low overlap may give blocking artifacts.
21019
21020 amount
21021 Set amount of denoising. By default all detected noise is reduced.
21022 Default value is 1. Allowed range is from 0 to 1.
21023
21024 block
21025 Set size of block in pixels, Default is 32, can be 8 to 256.
21026
21027 overlap
21028 Set block overlap. Default is 0.5. Allowed range is from 0.2 to
21029 0.8.
21030
21031 method
21032 Set denoising method. Default is "wiener", can also be "hard".
21033
21034 prev
21035 Set number of previous frames to use for denoising. By default is
21036 set to 0.
21037
21038 next
21039 Set number of next frames to to use for denoising. By default is
21040 set to 0.
21041
21042 planes
21043 Set planes which will be filtered, by default are all available
21044 filtered except alpha.
21045
21046 fftfilt
21047 Apply arbitrary expressions to samples in frequency domain
21048
21049 dc_Y
21050 Adjust the dc value (gain) of the luma plane of the image. The
21051 filter accepts an integer value in range 0 to 1000. The default
21052 value is set to 0.
21053
21054 dc_U
21055 Adjust the dc value (gain) of the 1st chroma plane of the image.
21056 The filter accepts an integer value in range 0 to 1000. The default
21057 value is set to 0.
21058
21059 dc_V
21060 Adjust the dc value (gain) of the 2nd chroma plane of the image.
21061 The filter accepts an integer value in range 0 to 1000. The default
21062 value is set to 0.
21063
21064 weight_Y
21065 Set the frequency domain weight expression for the luma plane.
21066
21067 weight_U
21068 Set the frequency domain weight expression for the 1st chroma
21069 plane.
21070
21071 weight_V
21072 Set the frequency domain weight expression for the 2nd chroma
21073 plane.
21074
21075 eval
21076 Set when the expressions are evaluated.
21077
21078 It accepts the following values:
21079
21080 init
21081 Only evaluate expressions once during the filter
21082 initialization.
21083
21084 frame
21085 Evaluate expressions for each incoming frame.
21086
21087 Default value is init.
21088
21089 The filter accepts the following variables:
21090
21091 X
21092 Y The coordinates of the current sample.
21093
21094 W
21095 H The width and height of the image.
21096
21097 N The number of input frame, starting from 0.
21098
21099 WS
21100 HS The size of FFT array for horizontal and vertical processing.
21101
21102 Examples
21103
21104 • High-pass:
21105
21106 fftfilt=dc_Y=128:weight_Y='squish(1-(Y+X)/100)'
21107
21108 • Low-pass:
21109
21110 fftfilt=dc_Y=0:weight_Y='squish((Y+X)/100-1)'
21111
21112 • Sharpen:
21113
21114 fftfilt=dc_Y=0:weight_Y='1+squish(1-(Y+X)/100)'
21115
21116 • Blur:
21117
21118 fftfilt=dc_Y=0:weight_Y='exp(-4 * ((Y+X)/(W+H)))'
21119
21120 field
21121 Extract a single field from an interlaced image using stride arithmetic
21122 to avoid wasting CPU time. The output frames are marked as non-
21123 interlaced.
21124
21125 The filter accepts the following options:
21126
21127 type
21128 Specify whether to extract the top (if the value is 0 or "top") or
21129 the bottom field (if the value is 1 or "bottom").
21130
21131 fieldhint
21132 Create new frames by copying the top and bottom fields from surrounding
21133 frames supplied as numbers by the hint file.
21134
21135 hint
21136 Set file containing hints: absolute/relative frame numbers.
21137
21138 There must be one line for each frame in a clip. Each line must
21139 contain two numbers separated by the comma, optionally followed by
21140 "-" or "+". Numbers supplied on each line of file can not be out
21141 of [N-1,N+1] where N is current frame number for "absolute" mode or
21142 out of [-1, 1] range for "relative" mode. First number tells from
21143 which frame to pick up top field and second number tells from which
21144 frame to pick up bottom field.
21145
21146 If optionally followed by "+" output frame will be marked as
21147 interlaced, else if followed by "-" output frame will be marked as
21148 progressive, else it will be marked same as input frame. If
21149 optionally followed by "t" output frame will use only top field, or
21150 in case of "b" it will use only bottom field. If line starts with
21151 "#" or ";" that line is skipped.
21152
21153 mode
21154 Can be item "absolute" or "relative" or "pattern". Default is
21155 "absolute". The "pattern" mode is same as "relative" mode, except
21156 at last entry of file if there are more frames to process than
21157 "hint" file is seek back to start.
21158
21159 Example of first several lines of "hint" file for "relative" mode:
21160
21161 0,0 - # first frame
21162 1,0 - # second frame, use third's frame top field and second's frame bottom field
21163 1,0 - # third frame, use fourth's frame top field and third's frame bottom field
21164 1,0 -
21165 0,0 -
21166 0,0 -
21167 1,0 -
21168 1,0 -
21169 1,0 -
21170 0,0 -
21171 0,0 -
21172 1,0 -
21173 1,0 -
21174 1,0 -
21175 0,0 -
21176
21177 fieldmatch
21178 Field matching filter for inverse telecine. It is meant to reconstruct
21179 the progressive frames from a telecined stream. The filter does not
21180 drop duplicated frames, so to achieve a complete inverse telecine
21181 "fieldmatch" needs to be followed by a decimation filter such as
21182 decimate in the filtergraph.
21183
21184 The separation of the field matching and the decimation is notably
21185 motivated by the possibility of inserting a de-interlacing filter
21186 fallback between the two. If the source has mixed telecined and real
21187 interlaced content, "fieldmatch" will not be able to match fields for
21188 the interlaced parts. But these remaining combed frames will be marked
21189 as interlaced, and thus can be de-interlaced by a later filter such as
21190 yadif before decimation.
21191
21192 In addition to the various configuration options, "fieldmatch" can take
21193 an optional second stream, activated through the ppsrc option. If
21194 enabled, the frames reconstruction will be based on the fields and
21195 frames from this second stream. This allows the first input to be pre-
21196 processed in order to help the various algorithms of the filter, while
21197 keeping the output lossless (assuming the fields are matched properly).
21198 Typically, a field-aware denoiser, or brightness/contrast adjustments
21199 can help.
21200
21201 Note that this filter uses the same algorithms as TIVTC/TFM (AviSynth
21202 project) and VIVTC/VFM (VapourSynth project). The later is a light
21203 clone of TFM from which "fieldmatch" is based on. While the semantic
21204 and usage are very close, some behaviour and options names can differ.
21205
21206 The decimate filter currently only works for constant frame rate input.
21207 If your input has mixed telecined (30fps) and progressive content with
21208 a lower framerate like 24fps use the following filterchain to produce
21209 the necessary cfr stream:
21210 "dejudder,fps=30000/1001,fieldmatch,decimate".
21211
21212 The filter accepts the following options:
21213
21214 order
21215 Specify the assumed field order of the input stream. Available
21216 values are:
21217
21218 auto
21219 Auto detect parity (use FFmpeg's internal parity value).
21220
21221 bff Assume bottom field first.
21222
21223 tff Assume top field first.
21224
21225 Note that it is sometimes recommended not to trust the parity
21226 announced by the stream.
21227
21228 Default value is auto.
21229
21230 mode
21231 Set the matching mode or strategy to use. pc mode is the safest in
21232 the sense that it won't risk creating jerkiness due to duplicate
21233 frames when possible, but if there are bad edits or blended fields
21234 it will end up outputting combed frames when a good match might
21235 actually exist. On the other hand, pcn_ub mode is the most risky in
21236 terms of creating jerkiness, but will almost always find a good
21237 frame if there is one. The other values are all somewhere in
21238 between pc and pcn_ub in terms of risking jerkiness and creating
21239 duplicate frames versus finding good matches in sections with bad
21240 edits, orphaned fields, blended fields, etc.
21241
21242 More details about p/c/n/u/b are available in p/c/n/u/b meaning
21243 section.
21244
21245 Available values are:
21246
21247 pc 2-way matching (p/c)
21248
21249 pc_n
21250 2-way matching, and trying 3rd match if still combed (p/c + n)
21251
21252 pc_u
21253 2-way matching, and trying 3rd match (same order) if still
21254 combed (p/c + u)
21255
21256 pc_n_ub
21257 2-way matching, trying 3rd match if still combed, and trying
21258 4th/5th matches if still combed (p/c + n + u/b)
21259
21260 pcn 3-way matching (p/c/n)
21261
21262 pcn_ub
21263 3-way matching, and trying 4th/5th matches if all 3 of the
21264 original matches are detected as combed (p/c/n + u/b)
21265
21266 The parenthesis at the end indicate the matches that would be used
21267 for that mode assuming order=tff (and field on auto or top).
21268
21269 In terms of speed pc mode is by far the fastest and pcn_ub is the
21270 slowest.
21271
21272 Default value is pc_n.
21273
21274 ppsrc
21275 Mark the main input stream as a pre-processed input, and enable the
21276 secondary input stream as the clean source to pick the fields from.
21277 See the filter introduction for more details. It is similar to the
21278 clip2 feature from VFM/TFM.
21279
21280 Default value is 0 (disabled).
21281
21282 field
21283 Set the field to match from. It is recommended to set this to the
21284 same value as order unless you experience matching failures with
21285 that setting. In certain circumstances changing the field that is
21286 used to match from can have a large impact on matching performance.
21287 Available values are:
21288
21289 auto
21290 Automatic (same value as order).
21291
21292 bottom
21293 Match from the bottom field.
21294
21295 top Match from the top field.
21296
21297 Default value is auto.
21298
21299 mchroma
21300 Set whether or not chroma is included during the match comparisons.
21301 In most cases it is recommended to leave this enabled. You should
21302 set this to 0 only if your clip has bad chroma problems such as
21303 heavy rainbowing or other artifacts. Setting this to 0 could also
21304 be used to speed things up at the cost of some accuracy.
21305
21306 Default value is 1.
21307
21308 y0
21309 y1 These define an exclusion band which excludes the lines between y0
21310 and y1 from being included in the field matching decision. An
21311 exclusion band can be used to ignore subtitles, a logo, or other
21312 things that may interfere with the matching. y0 sets the starting
21313 scan line and y1 sets the ending line; all lines in between y0 and
21314 y1 (including y0 and y1) will be ignored. Setting y0 and y1 to the
21315 same value will disable the feature. y0 and y1 defaults to 0.
21316
21317 scthresh
21318 Set the scene change detection threshold as a percentage of maximum
21319 change on the luma plane. Good values are in the "[8.0, 14.0]"
21320 range. Scene change detection is only relevant in case
21321 combmatch=sc. The range for scthresh is "[0.0, 100.0]".
21322
21323 Default value is 12.0.
21324
21325 combmatch
21326 When combatch is not none, "fieldmatch" will take into account the
21327 combed scores of matches when deciding what match to use as the
21328 final match. Available values are:
21329
21330 none
21331 No final matching based on combed scores.
21332
21333 sc Combed scores are only used when a scene change is detected.
21334
21335 full
21336 Use combed scores all the time.
21337
21338 Default is sc.
21339
21340 combdbg
21341 Force "fieldmatch" to calculate the combed metrics for certain
21342 matches and print them. This setting is known as micout in TFM/VFM
21343 vocabulary. Available values are:
21344
21345 none
21346 No forced calculation.
21347
21348 pcn Force p/c/n calculations.
21349
21350 pcnub
21351 Force p/c/n/u/b calculations.
21352
21353 Default value is none.
21354
21355 cthresh
21356 This is the area combing threshold used for combed frame detection.
21357 This essentially controls how "strong" or "visible" combing must be
21358 to be detected. Larger values mean combing must be more visible
21359 and smaller values mean combing can be less visible or strong and
21360 still be detected. Valid settings are from -1 (every pixel will be
21361 detected as combed) to 255 (no pixel will be detected as combed).
21362 This is basically a pixel difference value. A good range is "[8,
21363 12]".
21364
21365 Default value is 9.
21366
21367 chroma
21368 Sets whether or not chroma is considered in the combed frame
21369 decision. Only disable this if your source has chroma problems
21370 (rainbowing, etc.) that are causing problems for the combed frame
21371 detection with chroma enabled. Actually, using chroma=0 is usually
21372 more reliable, except for the case where there is chroma only
21373 combing in the source.
21374
21375 Default value is 0.
21376
21377 blockx
21378 blocky
21379 Respectively set the x-axis and y-axis size of the window used
21380 during combed frame detection. This has to do with the size of the
21381 area in which combpel pixels are required to be detected as combed
21382 for a frame to be declared combed. See the combpel parameter
21383 description for more info. Possible values are any number that is
21384 a power of 2 starting at 4 and going up to 512.
21385
21386 Default value is 16.
21387
21388 combpel
21389 The number of combed pixels inside any of the blocky by blockx size
21390 blocks on the frame for the frame to be detected as combed. While
21391 cthresh controls how "visible" the combing must be, this setting
21392 controls "how much" combing there must be in any localized area (a
21393 window defined by the blockx and blocky settings) on the frame.
21394 Minimum value is 0 and maximum is "blocky x blockx" (at which point
21395 no frames will ever be detected as combed). This setting is known
21396 as MI in TFM/VFM vocabulary.
21397
21398 Default value is 80.
21399
21400 p/c/n/u/b meaning
21401
21402 p/c/n
21403
21404 We assume the following telecined stream:
21405
21406 Top fields: 1 2 2 3 4
21407 Bottom fields: 1 2 3 4 4
21408
21409 The numbers correspond to the progressive frame the fields relate to.
21410 Here, the first two frames are progressive, the 3rd and 4th are combed,
21411 and so on.
21412
21413 When "fieldmatch" is configured to run a matching from bottom
21414 (field=bottom) this is how this input stream get transformed:
21415
21416 Input stream:
21417 T 1 2 2 3 4
21418 B 1 2 3 4 4 <-- matching reference
21419
21420 Matches: c c n n c
21421
21422 Output stream:
21423 T 1 2 3 4 4
21424 B 1 2 3 4 4
21425
21426 As a result of the field matching, we can see that some frames get
21427 duplicated. To perform a complete inverse telecine, you need to rely
21428 on a decimation filter after this operation. See for instance the
21429 decimate filter.
21430
21431 The same operation now matching from top fields (field=top) looks like
21432 this:
21433
21434 Input stream:
21435 T 1 2 2 3 4 <-- matching reference
21436 B 1 2 3 4 4
21437
21438 Matches: c c p p c
21439
21440 Output stream:
21441 T 1 2 2 3 4
21442 B 1 2 2 3 4
21443
21444 In these examples, we can see what p, c and n mean; basically, they
21445 refer to the frame and field of the opposite parity:
21446
21447 *<p matches the field of the opposite parity in the previous frame>
21448 *<c matches the field of the opposite parity in the current frame>
21449 *<n matches the field of the opposite parity in the next frame>
21450
21451 u/b
21452
21453 The u and b matching are a bit special in the sense that they match
21454 from the opposite parity flag. In the following examples, we assume
21455 that we are currently matching the 2nd frame (Top:2, bottom:2).
21456 According to the match, a 'x' is placed above and below each matched
21457 fields.
21458
21459 With bottom matching (field=bottom):
21460
21461 Match: c p n b u
21462
21463 x x x x x
21464 Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
21465 Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
21466 x x x x x
21467
21468 Output frames:
21469 2 1 2 2 2
21470 2 2 2 1 3
21471
21472 With top matching (field=top):
21473
21474 Match: c p n b u
21475
21476 x x x x x
21477 Top 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2
21478 Bottom 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
21479 x x x x x
21480
21481 Output frames:
21482 2 2 2 1 2
21483 2 1 3 2 2
21484
21485 Examples
21486
21487 Simple IVTC of a top field first telecined stream:
21488
21489 fieldmatch=order=tff:combmatch=none, decimate
21490
21491 Advanced IVTC, with fallback on yadif for still combed frames:
21492
21493 fieldmatch=order=tff:combmatch=full, yadif=deint=interlaced, decimate
21494
21495 fieldorder
21496 Transform the field order of the input video.
21497
21498 It accepts the following parameters:
21499
21500 order
21501 The output field order. Valid values are tff for top field first or
21502 bff for bottom field first.
21503
21504 The default value is tff.
21505
21506 The transformation is done by shifting the picture content up or down
21507 by one line, and filling the remaining line with appropriate picture
21508 content. This method is consistent with most broadcast field order
21509 converters.
21510
21511 If the input video is not flagged as being interlaced, or it is already
21512 flagged as being of the required output field order, then this filter
21513 does not alter the incoming video.
21514
21515 It is very useful when converting to or from PAL DV material, which is
21516 bottom field first.
21517
21518 For example:
21519
21520 ffmpeg -i in.vob -vf "fieldorder=bff" out.dv
21521
21522 fifo, afifo
21523 Buffer input images and send them when they are requested.
21524
21525 It is mainly useful when auto-inserted by the libavfilter framework.
21526
21527 It does not take parameters.
21528
21529 fillborders
21530 Fill borders of the input video, without changing video stream
21531 dimensions. Sometimes video can have garbage at the four edges and you
21532 may not want to crop video input to keep size multiple of some number.
21533
21534 This filter accepts the following options:
21535
21536 left
21537 Number of pixels to fill from left border.
21538
21539 right
21540 Number of pixels to fill from right border.
21541
21542 top Number of pixels to fill from top border.
21543
21544 bottom
21545 Number of pixels to fill from bottom border.
21546
21547 mode
21548 Set fill mode.
21549
21550 It accepts the following values:
21551
21552 smear
21553 fill pixels using outermost pixels
21554
21555 mirror
21556 fill pixels using mirroring (half sample symmetric)
21557
21558 fixed
21559 fill pixels with constant value
21560
21561 reflect
21562 fill pixels using reflecting (whole sample symmetric)
21563
21564 wrap
21565 fill pixels using wrapping
21566
21567 fade
21568 fade pixels to constant value
21569
21570 margins
21571 fill pixels at top and bottom with weighted averages pixels
21572 near borders
21573
21574 Default is smear.
21575
21576 color
21577 Set color for pixels in fixed or fade mode. Default is black.
21578
21579 Commands
21580
21581 This filter supports same commands as options. The command accepts the
21582 same syntax of the corresponding option.
21583
21584 If the specified expression is not valid, it is kept at its current
21585 value.
21586
21587 find_rect
21588 Find a rectangular object
21589
21590 It accepts the following options:
21591
21592 object
21593 Filepath of the object image, needs to be in gray8.
21594
21595 threshold
21596 Detection threshold, default is 0.5.
21597
21598 mipmaps
21599 Number of mipmaps, default is 3.
21600
21601 xmin, ymin, xmax, ymax
21602 Specifies the rectangle in which to search.
21603
21604 discard
21605 Discard frames where object is not detected. Default is disabled.
21606
21607 Examples
21608
21609 • Cover a rectangular object by the supplied image of a given video
21610 using ffmpeg:
21611
21612 ffmpeg -i file.ts -vf find_rect=newref.pgm,cover_rect=cover.jpg:mode=cover new.mkv
21613
21614 floodfill
21615 Flood area with values of same pixel components with another values.
21616
21617 It accepts the following options:
21618
21619 x Set pixel x coordinate.
21620
21621 y Set pixel y coordinate.
21622
21623 s0 Set source #0 component value.
21624
21625 s1 Set source #1 component value.
21626
21627 s2 Set source #2 component value.
21628
21629 s3 Set source #3 component value.
21630
21631 d0 Set destination #0 component value.
21632
21633 d1 Set destination #1 component value.
21634
21635 d2 Set destination #2 component value.
21636
21637 d3 Set destination #3 component value.
21638
21639 format
21640 Convert the input video to one of the specified pixel formats.
21641 Libavfilter will try to pick one that is suitable as input to the next
21642 filter.
21643
21644 It accepts the following parameters:
21645
21646 pix_fmts
21647 A '|'-separated list of pixel format names, such as
21648 "pix_fmts=yuv420p|monow|rgb24".
21649
21650 Examples
21651
21652 • Convert the input video to the yuv420p format
21653
21654 format=pix_fmts=yuv420p
21655
21656 Convert the input video to any of the formats in the list
21657
21658 format=pix_fmts=yuv420p|yuv444p|yuv410p
21659
21660 fps
21661 Convert the video to specified constant frame rate by duplicating or
21662 dropping frames as necessary.
21663
21664 It accepts the following parameters:
21665
21666 fps The desired output frame rate. It accepts expressions containing
21667 the following constants:
21668
21669 source_fps
21670 The input's frame rate
21671
21672 ntsc
21673 NTSC frame rate of "30000/1001"
21674
21675 pal PAL frame rate of 25.0
21676
21677 film
21678 Film frame rate of 24.0
21679
21680 ntsc_film
21681 NTSC-film frame rate of "24000/1001"
21682
21683 The default is 25.
21684
21685 start_time
21686 Assume the first PTS should be the given value, in seconds. This
21687 allows for padding/trimming at the start of stream. By default, no
21688 assumption is made about the first frame's expected PTS, so no
21689 padding or trimming is done. For example, this could be set to 0
21690 to pad the beginning with duplicates of the first frame if a video
21691 stream starts after the audio stream or to trim any frames with a
21692 negative PTS.
21693
21694 round
21695 Timestamp (PTS) rounding method.
21696
21697 Possible values are:
21698
21699 zero
21700 round towards 0
21701
21702 inf round away from 0
21703
21704 down
21705 round towards -infinity
21706
21707 up round towards +infinity
21708
21709 near
21710 round to nearest
21711
21712 The default is "near".
21713
21714 eof_action
21715 Action performed when reading the last frame.
21716
21717 Possible values are:
21718
21719 round
21720 Use same timestamp rounding method as used for other frames.
21721
21722 pass
21723 Pass through last frame if input duration has not been reached
21724 yet.
21725
21726 The default is "round".
21727
21728 Alternatively, the options can be specified as a flat string:
21729 fps[:start_time[:round]].
21730
21731 See also the setpts filter.
21732
21733 Examples
21734
21735 • A typical usage in order to set the fps to 25:
21736
21737 fps=fps=25
21738
21739 • Sets the fps to 24, using abbreviation and rounding method to round
21740 to nearest:
21741
21742 fps=fps=film:round=near
21743
21744 framepack
21745 Pack two different video streams into a stereoscopic video, setting
21746 proper metadata on supported codecs. The two views should have the same
21747 size and framerate and processing will stop when the shorter video
21748 ends. Please note that you may conveniently adjust view properties with
21749 the scale and fps filters.
21750
21751 It accepts the following parameters:
21752
21753 format
21754 The desired packing format. Supported values are:
21755
21756 sbs The views are next to each other (default).
21757
21758 tab The views are on top of each other.
21759
21760 lines
21761 The views are packed by line.
21762
21763 columns
21764 The views are packed by column.
21765
21766 frameseq
21767 The views are temporally interleaved.
21768
21769 Some examples:
21770
21771 # Convert left and right views into a frame-sequential video
21772 ffmpeg -i LEFT -i RIGHT -filter_complex framepack=frameseq OUTPUT
21773
21774 # Convert views into a side-by-side video with the same output resolution as the input
21775 ffmpeg -i LEFT -i RIGHT -filter_complex [0:v]scale=w=iw/2[left],[1:v]scale=w=iw/2[right],[left][right]framepack=sbs OUTPUT
21776
21777 framerate
21778 Change the frame rate by interpolating new video output frames from the
21779 source frames.
21780
21781 This filter is not designed to function correctly with interlaced
21782 media. If you wish to change the frame rate of interlaced media then
21783 you are required to deinterlace before this filter and re-interlace
21784 after this filter.
21785
21786 A description of the accepted options follows.
21787
21788 fps Specify the output frames per second. This option can also be
21789 specified as a value alone. The default is 50.
21790
21791 interp_start
21792 Specify the start of a range where the output frame will be created
21793 as a linear interpolation of two frames. The range is [0-255], the
21794 default is 15.
21795
21796 interp_end
21797 Specify the end of a range where the output frame will be created
21798 as a linear interpolation of two frames. The range is [0-255], the
21799 default is 240.
21800
21801 scene
21802 Specify the level at which a scene change is detected as a value
21803 between 0 and 100 to indicate a new scene; a low value reflects a
21804 low probability for the current frame to introduce a new scene,
21805 while a higher value means the current frame is more likely to be
21806 one. The default is 8.2.
21807
21808 flags
21809 Specify flags influencing the filter process.
21810
21811 Available value for flags is:
21812
21813 scene_change_detect, scd
21814 Enable scene change detection using the value of the option
21815 scene. This flag is enabled by default.
21816
21817 framestep
21818 Select one frame every N-th frame.
21819
21820 This filter accepts the following option:
21821
21822 step
21823 Select frame after every "step" frames. Allowed values are
21824 positive integers higher than 0. Default value is 1.
21825
21826 freezedetect
21827 Detect frozen video.
21828
21829 This filter logs a message and sets frame metadata when it detects that
21830 the input video has no significant change in content during a specified
21831 duration. Video freeze detection calculates the mean average absolute
21832 difference of all the components of video frames and compares it to a
21833 noise floor.
21834
21835 The printed times and duration are expressed in seconds. The
21836 "lavfi.freezedetect.freeze_start" metadata key is set on the first
21837 frame whose timestamp equals or exceeds the detection duration and it
21838 contains the timestamp of the first frame of the freeze. The
21839 "lavfi.freezedetect.freeze_duration" and
21840 "lavfi.freezedetect.freeze_end" metadata keys are set on the first
21841 frame after the freeze.
21842
21843 The filter accepts the following options:
21844
21845 noise, n
21846 Set noise tolerance. Can be specified in dB (in case "dB" is
21847 appended to the specified value) or as a difference ratio between 0
21848 and 1. Default is -60dB, or 0.001.
21849
21850 duration, d
21851 Set freeze duration until notification (default is 2 seconds).
21852
21853 freezeframes
21854 Freeze video frames.
21855
21856 This filter freezes video frames using frame from 2nd input.
21857
21858 The filter accepts the following options:
21859
21860 first
21861 Set number of first frame from which to start freeze.
21862
21863 last
21864 Set number of last frame from which to end freeze.
21865
21866 replace
21867 Set number of frame from 2nd input which will be used instead of
21868 replaced frames.
21869
21870 frei0r
21871 Apply a frei0r effect to the input video.
21872
21873 To enable the compilation of this filter, you need to install the
21874 frei0r header and configure FFmpeg with "--enable-frei0r".
21875
21876 It accepts the following parameters:
21877
21878 filter_name
21879 The name of the frei0r effect to load. If the environment variable
21880 FREI0R_PATH is defined, the frei0r effect is searched for in each
21881 of the directories specified by the colon-separated list in
21882 FREI0R_PATH. Otherwise, the standard frei0r paths are searched, in
21883 this order: HOME/.frei0r-1/lib/, /usr/local/lib/frei0r-1/,
21884 /usr/lib/frei0r-1/.
21885
21886 filter_params
21887 A '|'-separated list of parameters to pass to the frei0r effect.
21888
21889 A frei0r effect parameter can be a boolean (its value is either "y" or
21890 "n"), a double, a color (specified as R/G/B, where R, G, and B are
21891 floating point numbers between 0.0 and 1.0, inclusive) or a color
21892 description as specified in the "Color" section in the ffmpeg-utils
21893 manual, a position (specified as X/Y, where X and Y are floating point
21894 numbers) and/or a string.
21895
21896 The number and types of parameters depend on the loaded effect. If an
21897 effect parameter is not specified, the default value is set.
21898
21899 Examples
21900
21901 • Apply the distort0r effect, setting the first two double
21902 parameters:
21903
21904 frei0r=filter_name=distort0r:filter_params=0.5|0.01
21905
21906 • Apply the colordistance effect, taking a color as the first
21907 parameter:
21908
21909 frei0r=colordistance:0.2/0.3/0.4
21910 frei0r=colordistance:violet
21911 frei0r=colordistance:0x112233
21912
21913 • Apply the perspective effect, specifying the top left and top right
21914 image positions:
21915
21916 frei0r=perspective:0.2/0.2|0.8/0.2
21917
21918 For more information, see <http://frei0r.dyne.org>
21919
21920 Commands
21921
21922 This filter supports the filter_params option as commands.
21923
21924 fspp
21925 Apply fast and simple postprocessing. It is a faster version of spp.
21926
21927 It splits (I)DCT into horizontal/vertical passes. Unlike the simple
21928 post- processing filter, one of them is performed once per block, not
21929 per pixel. This allows for much higher speed.
21930
21931 The filter accepts the following options:
21932
21933 quality
21934 Set quality. This option defines the number of levels for
21935 averaging. It accepts an integer in the range 4-5. Default value is
21936 4.
21937
21938 qp Force a constant quantization parameter. It accepts an integer in
21939 range 0-63. If not set, the filter will use the QP from the video
21940 stream (if available).
21941
21942 strength
21943 Set filter strength. It accepts an integer in range -15 to 32.
21944 Lower values mean more details but also more artifacts, while
21945 higher values make the image smoother but also blurrier. Default
21946 value is 0 − PSNR optimal.
21947
21948 use_bframe_qp
21949 Enable the use of the QP from the B-Frames if set to 1. Using this
21950 option may cause flicker since the B-Frames have often larger QP.
21951 Default is 0 (not enabled).
21952
21953 gblur
21954 Apply Gaussian blur filter.
21955
21956 The filter accepts the following options:
21957
21958 sigma
21959 Set horizontal sigma, standard deviation of Gaussian blur. Default
21960 is 0.5.
21961
21962 steps
21963 Set number of steps for Gaussian approximation. Default is 1.
21964
21965 planes
21966 Set which planes to filter. By default all planes are filtered.
21967
21968 sigmaV
21969 Set vertical sigma, if negative it will be same as "sigma".
21970 Default is -1.
21971
21972 Commands
21973
21974 This filter supports same commands as options. The command accepts the
21975 same syntax of the corresponding option.
21976
21977 If the specified expression is not valid, it is kept at its current
21978 value.
21979
21980 geq
21981 Apply generic equation to each pixel.
21982
21983 The filter accepts the following options:
21984
21985 lum_expr, lum
21986 Set the luminance expression.
21987
21988 cb_expr, cb
21989 Set the chrominance blue expression.
21990
21991 cr_expr, cr
21992 Set the chrominance red expression.
21993
21994 alpha_expr, a
21995 Set the alpha expression.
21996
21997 red_expr, r
21998 Set the red expression.
21999
22000 green_expr, g
22001 Set the green expression.
22002
22003 blue_expr, b
22004 Set the blue expression.
22005
22006 The colorspace is selected according to the specified options. If one
22007 of the lum_expr, cb_expr, or cr_expr options is specified, the filter
22008 will automatically select a YCbCr colorspace. If one of the red_expr,
22009 green_expr, or blue_expr options is specified, it will select an RGB
22010 colorspace.
22011
22012 If one of the chrominance expression is not defined, it falls back on
22013 the other one. If no alpha expression is specified it will evaluate to
22014 opaque value. If none of chrominance expressions are specified, they
22015 will evaluate to the luminance expression.
22016
22017 The expressions can use the following variables and functions:
22018
22019 N The sequential number of the filtered frame, starting from 0.
22020
22021 X
22022 Y The coordinates of the current sample.
22023
22024 W
22025 H The width and height of the image.
22026
22027 SW
22028 SH Width and height scale depending on the currently filtered plane.
22029 It is the ratio between the corresponding luma plane number of
22030 pixels and the current plane ones. E.g. for YUV4:2:0 the values are
22031 "1,1" for the luma plane, and "0.5,0.5" for chroma planes.
22032
22033 T Time of the current frame, expressed in seconds.
22034
22035 p(x, y)
22036 Return the value of the pixel at location (x,y) of the current
22037 plane.
22038
22039 lum(x, y)
22040 Return the value of the pixel at location (x,y) of the luminance
22041 plane.
22042
22043 cb(x, y)
22044 Return the value of the pixel at location (x,y) of the blue-
22045 difference chroma plane. Return 0 if there is no such plane.
22046
22047 cr(x, y)
22048 Return the value of the pixel at location (x,y) of the red-
22049 difference chroma plane. Return 0 if there is no such plane.
22050
22051 r(x, y)
22052 g(x, y)
22053 b(x, y)
22054 Return the value of the pixel at location (x,y) of the
22055 red/green/blue component. Return 0 if there is no such component.
22056
22057 alpha(x, y)
22058 Return the value of the pixel at location (x,y) of the alpha plane.
22059 Return 0 if there is no such plane.
22060
22061 psum(x,y), lumsum(x, y), cbsum(x,y), crsum(x,y), rsum(x,y), gsum(x,y),
22062 bsum(x,y), alphasum(x,y)
22063 Sum of sample values in the rectangle from (0,0) to (x,y), this
22064 allows obtaining sums of samples within a rectangle. See the
22065 functions without the sum postfix.
22066
22067 interpolation
22068 Set one of interpolation methods:
22069
22070 nearest, n
22071 bilinear, b
22072
22073 Default is bilinear.
22074
22075 For functions, if x and y are outside the area, the value will be
22076 automatically clipped to the closer edge.
22077
22078 Please note that this filter can use multiple threads in which case
22079 each slice will have its own expression state. If you want to use only
22080 a single expression state because your expressions depend on previous
22081 state then you should limit the number of filter threads to 1.
22082
22083 Examples
22084
22085 • Flip the image horizontally:
22086
22087 geq=p(W-X\,Y)
22088
22089 • Generate a bidimensional sine wave, with angle "PI/3" and a
22090 wavelength of 100 pixels:
22091
22092 geq=128 + 100*sin(2*(PI/100)*(cos(PI/3)*(X-50*T) + sin(PI/3)*Y)):128:128
22093
22094 • Generate a fancy enigmatic moving light:
22095
22096 nullsrc=s=256x256,geq=random(1)/hypot(X-cos(N*0.07)*W/2-W/2\,Y-sin(N*0.09)*H/2-H/2)^2*1000000*sin(N*0.02):128:128
22097
22098 • Generate a quick emboss effect:
22099
22100 format=gray,geq=lum_expr='(p(X,Y)+(256-p(X-4,Y-4)))/2'
22101
22102 • Modify RGB components depending on pixel position:
22103
22104 geq=r='X/W*r(X,Y)':g='(1-X/W)*g(X,Y)':b='(H-Y)/H*b(X,Y)'
22105
22106 • Create a radial gradient that is the same size as the input (also
22107 see the vignette filter):
22108
22109 geq=lum=255*gauss((X/W-0.5)*3)*gauss((Y/H-0.5)*3)/gauss(0)/gauss(0),format=gray
22110
22111 gradfun
22112 Fix the banding artifacts that are sometimes introduced into nearly
22113 flat regions by truncation to 8-bit color depth. Interpolate the
22114 gradients that should go where the bands are, and dither them.
22115
22116 It is designed for playback only. Do not use it prior to lossy
22117 compression, because compression tends to lose the dither and bring
22118 back the bands.
22119
22120 It accepts the following parameters:
22121
22122 strength
22123 The maximum amount by which the filter will change any one pixel.
22124 This is also the threshold for detecting nearly flat regions.
22125 Acceptable values range from .51 to 64; the default value is 1.2.
22126 Out-of-range values will be clipped to the valid range.
22127
22128 radius
22129 The neighborhood to fit the gradient to. A larger radius makes for
22130 smoother gradients, but also prevents the filter from modifying the
22131 pixels near detailed regions. Acceptable values are 8-32; the
22132 default value is 16. Out-of-range values will be clipped to the
22133 valid range.
22134
22135 Alternatively, the options can be specified as a flat string:
22136 strength[:radius]
22137
22138 Examples
22139
22140 • Apply the filter with a 3.5 strength and radius of 8:
22141
22142 gradfun=3.5:8
22143
22144 • Specify radius, omitting the strength (which will fall-back to the
22145 default value):
22146
22147 gradfun=radius=8
22148
22149 graphmonitor
22150 Show various filtergraph stats.
22151
22152 With this filter one can debug complete filtergraph. Especially issues
22153 with links filling with queued frames.
22154
22155 The filter accepts the following options:
22156
22157 size, s
22158 Set video output size. Default is hd720.
22159
22160 opacity, o
22161 Set video opacity. Default is 0.9. Allowed range is from 0 to 1.
22162
22163 mode, m
22164 Set output mode, can be fulll or compact. In compact mode only
22165 filters with some queued frames have displayed stats.
22166
22167 flags, f
22168 Set flags which enable which stats are shown in video.
22169
22170 Available values for flags are:
22171
22172 queue
22173 Display number of queued frames in each link.
22174
22175 frame_count_in
22176 Display number of frames taken from filter.
22177
22178 frame_count_out
22179 Display number of frames given out from filter.
22180
22181 frame_count_delta
22182 Display delta number of frames between above two values.
22183
22184 pts Display current filtered frame pts.
22185
22186 pts_delta
22187 Display pts delta between current and previous frame.
22188
22189 time
22190 Display current filtered frame time.
22191
22192 time_delta
22193 Display time delta between current and previous frame.
22194
22195 timebase
22196 Display time base for filter link.
22197
22198 format
22199 Display used format for filter link.
22200
22201 size
22202 Display video size or number of audio channels in case of audio
22203 used by filter link.
22204
22205 rate
22206 Display video frame rate or sample rate in case of audio used
22207 by filter link.
22208
22209 eof Display link output status.
22210
22211 sample_count_in
22212 Display number of samples taken from filter.
22213
22214 sample_count_out
22215 Display number of samples given out from filter.
22216
22217 sample_count_delta
22218 Display delta number of samples between above two values.
22219
22220 rate, r
22221 Set upper limit for video rate of output stream, Default value is
22222 25. This guarantee that output video frame rate will not be higher
22223 than this value.
22224
22225 grayworld
22226 A color constancy filter that applies color correction based on the
22227 grayworld assumption
22228
22229 See:
22230 <https://www.researchgate.net/publication/275213614_A_New_Color_Correction_Method_for_Underwater_Imaging>
22231
22232 The algorithm uses linear light, so input data should be linearized
22233 beforehand (and possibly correctly tagged).
22234
22235 ffmpeg -i INPUT -vf zscale=transfer=linear,grayworld,zscale=transfer=bt709,format=yuv420p OUTPUT
22236
22237 greyedge
22238 A color constancy variation filter which estimates scene illumination
22239 via grey edge algorithm and corrects the scene colors accordingly.
22240
22241 See: <https://staff.science.uva.nl/th.gevers/pub/GeversTIP07.pdf>
22242
22243 The filter accepts the following options:
22244
22245 difford
22246 The order of differentiation to be applied on the scene. Must be
22247 chosen in the range [0,2] and default value is 1.
22248
22249 minknorm
22250 The Minkowski parameter to be used for calculating the Minkowski
22251 distance. Must be chosen in the range [0,20] and default value is
22252 1. Set to 0 for getting max value instead of calculating Minkowski
22253 distance.
22254
22255 sigma
22256 The standard deviation of Gaussian blur to be applied on the scene.
22257 Must be chosen in the range [0,1024.0] and default value = 1.
22258 floor( sigma * break_off_sigma(3) ) can't be equal to 0 if difford
22259 is greater than 0.
22260
22261 Examples
22262
22263 • Grey Edge:
22264
22265 greyedge=difford=1:minknorm=5:sigma=2
22266
22267 • Max Edge:
22268
22269 greyedge=difford=1:minknorm=0:sigma=2
22270
22271 guided
22272 Apply guided filter for edge-preserving smoothing, dehazing and so on.
22273
22274 The filter accepts the following options:
22275
22276 radius
22277 Set the box radius in pixels. Allowed range is 1 to 20. Default is
22278 3.
22279
22280 eps Set regularization parameter (with square). Allowed range is 0 to
22281 1. Default is 0.01.
22282
22283 mode
22284 Set filter mode. Can be "basic" or "fast". Default is "basic".
22285
22286 sub Set subsampling ratio for "fast" mode. Range is 2 to 64. Default
22287 is 4. No subsampling occurs in "basic" mode.
22288
22289 guidance
22290 Set guidance mode. Can be "off" or "on". Default is "off". If
22291 "off", single input is required. If "on", two inputs of the same
22292 resolution and pixel format are required. The second input serves
22293 as the guidance.
22294
22295 planes
22296 Set planes to filter. Default is first only.
22297
22298 Commands
22299
22300 This filter supports the all above options as commands.
22301
22302 Examples
22303
22304 • Edge-preserving smoothing with guided filter:
22305
22306 ffmpeg -i in.png -vf guided out.png
22307
22308 • Dehazing, structure-transferring filtering, detail enhancement with
22309 guided filter. For the generation of guidance image, refer to
22310 paper "Guided Image Filtering". See:
22311 <http://kaiminghe.com/publications/pami12guidedfilter.pdf>.
22312
22313 ffmpeg -i in.png -i guidance.png -filter_complex guided=guidance=on out.png
22314
22315 haldclut
22316 Apply a Hald CLUT to a video stream.
22317
22318 First input is the video stream to process, and second one is the Hald
22319 CLUT. The Hald CLUT input can be a simple picture or a complete video
22320 stream.
22321
22322 The filter accepts the following options:
22323
22324 clut
22325 Set which CLUT video frames will be processed from second input
22326 stream, can be first or all. Default is all.
22327
22328 shortest
22329 Force termination when the shortest input terminates. Default is 0.
22330
22331 repeatlast
22332 Continue applying the last CLUT after the end of the stream. A
22333 value of 0 disable the filter after the last frame of the CLUT is
22334 reached. Default is 1.
22335
22336 "haldclut" also has the same interpolation options as lut3d (both
22337 filters share the same internals).
22338
22339 This filter also supports the framesync options.
22340
22341 More information about the Hald CLUT can be found on Eskil Steenberg's
22342 website (Hald CLUT author) at
22343 <http://www.quelsolaar.com/technology/clut.html>.
22344
22345 Commands
22346
22347 This filter supports the "interp" option as commands.
22348
22349 Workflow examples
22350
22351 Hald CLUT video stream
22352
22353 Generate an identity Hald CLUT stream altered with various effects:
22354
22355 ffmpeg -f lavfi -i B<haldclutsrc>=8 -vf "hue=H=2*PI*t:s=sin(2*PI*t)+1, curves=cross_process" -t 10 -c:v ffv1 clut.nut
22356
22357 Note: make sure you use a lossless codec.
22358
22359 Then use it with "haldclut" to apply it on some random stream:
22360
22361 ffmpeg -f lavfi -i mandelbrot -i clut.nut -filter_complex '[0][1] haldclut' -t 20 mandelclut.mkv
22362
22363 The Hald CLUT will be applied to the 10 first seconds (duration of
22364 clut.nut), then the latest picture of that CLUT stream will be applied
22365 to the remaining frames of the "mandelbrot" stream.
22366
22367 Hald CLUT with preview
22368
22369 A Hald CLUT is supposed to be a squared image of "Level*Level*Level" by
22370 "Level*Level*Level" pixels. For a given Hald CLUT, FFmpeg will select
22371 the biggest possible square starting at the top left of the picture.
22372 The remaining padding pixels (bottom or right) will be ignored. This
22373 area can be used to add a preview of the Hald CLUT.
22374
22375 Typically, the following generated Hald CLUT will be supported by the
22376 "haldclut" filter:
22377
22378 ffmpeg -f lavfi -i B<haldclutsrc>=8 -vf "
22379 pad=iw+320 [padded_clut];
22380 smptebars=s=320x256, split [a][b];
22381 [padded_clut][a] overlay=W-320:h, curves=color_negative [main];
22382 [main][b] overlay=W-320" -frames:v 1 clut.png
22383
22384 It contains the original and a preview of the effect of the CLUT: SMPTE
22385 color bars are displayed on the right-top, and below the same color
22386 bars processed by the color changes.
22387
22388 Then, the effect of this Hald CLUT can be visualized with:
22389
22390 ffplay input.mkv -vf "movie=clut.png, [in] haldclut"
22391
22392 hflip
22393 Flip the input video horizontally.
22394
22395 For example, to horizontally flip the input video with ffmpeg:
22396
22397 ffmpeg -i in.avi -vf "hflip" out.avi
22398
22399 histeq
22400 This filter applies a global color histogram equalization on a per-
22401 frame basis.
22402
22403 It can be used to correct video that has a compressed range of pixel
22404 intensities. The filter redistributes the pixel intensities to
22405 equalize their distribution across the intensity range. It may be
22406 viewed as an "automatically adjusting contrast filter". This filter is
22407 useful only for correcting degraded or poorly captured source video.
22408
22409 The filter accepts the following options:
22410
22411 strength
22412 Determine the amount of equalization to be applied. As the
22413 strength is reduced, the distribution of pixel intensities more-
22414 and-more approaches that of the input frame. The value must be a
22415 float number in the range [0,1] and defaults to 0.200.
22416
22417 intensity
22418 Set the maximum intensity that can generated and scale the output
22419 values appropriately. The strength should be set as desired and
22420 then the intensity can be limited if needed to avoid washing-out.
22421 The value must be a float number in the range [0,1] and defaults to
22422 0.210.
22423
22424 antibanding
22425 Set the antibanding level. If enabled the filter will randomly vary
22426 the luminance of output pixels by a small amount to avoid banding
22427 of the histogram. Possible values are "none", "weak" or "strong".
22428 It defaults to "none".
22429
22430 histogram
22431 Compute and draw a color distribution histogram for the input video.
22432
22433 The computed histogram is a representation of the color component
22434 distribution in an image.
22435
22436 Standard histogram displays the color components distribution in an
22437 image. Displays color graph for each color component. Shows
22438 distribution of the Y, U, V, A or R, G, B components, depending on
22439 input format, in the current frame. Below each graph a color component
22440 scale meter is shown.
22441
22442 The filter accepts the following options:
22443
22444 level_height
22445 Set height of level. Default value is 200. Allowed range is [50,
22446 2048].
22447
22448 scale_height
22449 Set height of color scale. Default value is 12. Allowed range is
22450 [0, 40].
22451
22452 display_mode
22453 Set display mode. It accepts the following values:
22454
22455 stack
22456 Per color component graphs are placed below each other.
22457
22458 parade
22459 Per color component graphs are placed side by side.
22460
22461 overlay
22462 Presents information identical to that in the "parade", except
22463 that the graphs representing color components are superimposed
22464 directly over one another.
22465
22466 Default is "stack".
22467
22468 levels_mode
22469 Set mode. Can be either "linear", or "logarithmic". Default is
22470 "linear".
22471
22472 components
22473 Set what color components to display. Default is 7.
22474
22475 fgopacity
22476 Set foreground opacity. Default is 0.7.
22477
22478 bgopacity
22479 Set background opacity. Default is 0.5.
22480
22481 colors_mode
22482 Set colors mode. It accepts the following values:
22483
22484 whiteonblack
22485 blackonwhite
22486 whiteongray
22487 blackongray
22488 coloronblack
22489 coloronwhite
22490 colorongray
22491 blackoncolor
22492 whiteoncolor
22493 grayoncolor
22494
22495 Default is "whiteonblack".
22496
22497 Examples
22498
22499 • Calculate and draw histogram:
22500
22501 ffplay -i input -vf histogram
22502
22503 hqdn3d
22504 This is a high precision/quality 3d denoise filter. It aims to reduce
22505 image noise, producing smooth images and making still images really
22506 still. It should enhance compressibility.
22507
22508 It accepts the following optional parameters:
22509
22510 luma_spatial
22511 A non-negative floating point number which specifies spatial luma
22512 strength. It defaults to 4.0.
22513
22514 chroma_spatial
22515 A non-negative floating point number which specifies spatial chroma
22516 strength. It defaults to 3.0*luma_spatial/4.0.
22517
22518 luma_tmp
22519 A floating point number which specifies luma temporal strength. It
22520 defaults to 6.0*luma_spatial/4.0.
22521
22522 chroma_tmp
22523 A floating point number which specifies chroma temporal strength.
22524 It defaults to luma_tmp*chroma_spatial/luma_spatial.
22525
22526 Commands
22527
22528 This filter supports same commands as options. The command accepts the
22529 same syntax of the corresponding option.
22530
22531 If the specified expression is not valid, it is kept at its current
22532 value.
22533
22534 hwdownload
22535 Download hardware frames to system memory.
22536
22537 The input must be in hardware frames, and the output a non-hardware
22538 format. Not all formats will be supported on the output - it may be
22539 necessary to insert an additional format filter immediately following
22540 in the graph to get the output in a supported format.
22541
22542 hwmap
22543 Map hardware frames to system memory or to another device.
22544
22545 This filter has several different modes of operation; which one is used
22546 depends on the input and output formats:
22547
22548 • Hardware frame input, normal frame output
22549
22550 Map the input frames to system memory and pass them to the output.
22551 If the original hardware frame is later required (for example,
22552 after overlaying something else on part of it), the hwmap filter
22553 can be used again in the next mode to retrieve it.
22554
22555 • Normal frame input, hardware frame output
22556
22557 If the input is actually a software-mapped hardware frame, then
22558 unmap it - that is, return the original hardware frame.
22559
22560 Otherwise, a device must be provided. Create new hardware surfaces
22561 on that device for the output, then map them back to the software
22562 format at the input and give those frames to the preceding filter.
22563 This will then act like the hwupload filter, but may be able to
22564 avoid an additional copy when the input is already in a compatible
22565 format.
22566
22567 • Hardware frame input and output
22568
22569 A device must be supplied for the output, either directly or with
22570 the derive_device option. The input and output devices must be of
22571 different types and compatible - the exact meaning of this is
22572 system-dependent, but typically it means that they must refer to
22573 the same underlying hardware context (for example, refer to the
22574 same graphics card).
22575
22576 If the input frames were originally created on the output device,
22577 then unmap to retrieve the original frames.
22578
22579 Otherwise, map the frames to the output device - create new
22580 hardware frames on the output corresponding to the frames on the
22581 input.
22582
22583 The following additional parameters are accepted:
22584
22585 mode
22586 Set the frame mapping mode. Some combination of:
22587
22588 read
22589 The mapped frame should be readable.
22590
22591 write
22592 The mapped frame should be writeable.
22593
22594 overwrite
22595 The mapping will always overwrite the entire frame.
22596
22597 This may improve performance in some cases, as the original
22598 contents of the frame need not be loaded.
22599
22600 direct
22601 The mapping must not involve any copying.
22602
22603 Indirect mappings to copies of frames are created in some cases
22604 where either direct mapping is not possible or it would have
22605 unexpected properties. Setting this flag ensures that the
22606 mapping is direct and will fail if that is not possible.
22607
22608 Defaults to read+write if not specified.
22609
22610 derive_device type
22611 Rather than using the device supplied at initialisation, instead
22612 derive a new device of type type from the device the input frames
22613 exist on.
22614
22615 reverse
22616 In a hardware to hardware mapping, map in reverse - create frames
22617 in the sink and map them back to the source. This may be necessary
22618 in some cases where a mapping in one direction is required but only
22619 the opposite direction is supported by the devices being used.
22620
22621 This option is dangerous - it may break the preceding filter in
22622 undefined ways if there are any additional constraints on that
22623 filter's output. Do not use it without fully understanding the
22624 implications of its use.
22625
22626 hwupload
22627 Upload system memory frames to hardware surfaces.
22628
22629 The device to upload to must be supplied when the filter is
22630 initialised. If using ffmpeg, select the appropriate device with the
22631 -filter_hw_device option or with the derive_device option. The input
22632 and output devices must be of different types and compatible - the
22633 exact meaning of this is system-dependent, but typically it means that
22634 they must refer to the same underlying hardware context (for example,
22635 refer to the same graphics card).
22636
22637 The following additional parameters are accepted:
22638
22639 derive_device type
22640 Rather than using the device supplied at initialisation, instead
22641 derive a new device of type type from the device the input frames
22642 exist on.
22643
22644 hwupload_cuda
22645 Upload system memory frames to a CUDA device.
22646
22647 It accepts the following optional parameters:
22648
22649 device
22650 The number of the CUDA device to use
22651
22652 hqx
22653 Apply a high-quality magnification filter designed for pixel art. This
22654 filter was originally created by Maxim Stepin.
22655
22656 It accepts the following option:
22657
22658 n Set the scaling dimension: 2 for "hq2x", 3 for "hq3x" and 4 for
22659 "hq4x". Default is 3.
22660
22661 hstack
22662 Stack input videos horizontally.
22663
22664 All streams must be of same pixel format and of same height.
22665
22666 Note that this filter is faster than using overlay and pad filter to
22667 create same output.
22668
22669 The filter accepts the following option:
22670
22671 inputs
22672 Set number of input streams. Default is 2.
22673
22674 shortest
22675 If set to 1, force the output to terminate when the shortest input
22676 terminates. Default value is 0.
22677
22678 hsvhold
22679 Turns a certain HSV range into gray values.
22680
22681 This filter measures color difference between set HSV color in options
22682 and ones measured in video stream. Depending on options, output colors
22683 can be changed to be gray or not.
22684
22685 The filter accepts the following options:
22686
22687 hue Set the hue value which will be used in color difference
22688 calculation. Allowed range is from -360 to 360. Default value is
22689 0.
22690
22691 sat Set the saturation value which will be used in color difference
22692 calculation. Allowed range is from -1 to 1. Default value is 0.
22693
22694 val Set the value which will be used in color difference calculation.
22695 Allowed range is from -1 to 1. Default value is 0.
22696
22697 similarity
22698 Set similarity percentage with the key color. Allowed range is
22699 from 0 to 1. Default value is 0.01.
22700
22701 0.00001 matches only the exact key color, while 1.0 matches
22702 everything.
22703
22704 blend
22705 Blend percentage. Allowed range is from 0 to 1. Default value is
22706 0.
22707
22708 0.0 makes pixels either fully gray, or not gray at all.
22709
22710 Higher values result in more gray pixels, with a higher gray pixel
22711 the more similar the pixels color is to the key color.
22712
22713 hsvkey
22714 Turns a certain HSV range into transparency.
22715
22716 This filter measures color difference between set HSV color in options
22717 and ones measured in video stream. Depending on options, output colors
22718 can be changed to transparent by adding alpha channel.
22719
22720 The filter accepts the following options:
22721
22722 hue Set the hue value which will be used in color difference
22723 calculation. Allowed range is from -360 to 360. Default value is
22724 0.
22725
22726 sat Set the saturation value which will be used in color difference
22727 calculation. Allowed range is from -1 to 1. Default value is 0.
22728
22729 val Set the value which will be used in color difference calculation.
22730 Allowed range is from -1 to 1. Default value is 0.
22731
22732 similarity
22733 Set similarity percentage with the key color. Allowed range is
22734 from 0 to 1. Default value is 0.01.
22735
22736 0.00001 matches only the exact key color, while 1.0 matches
22737 everything.
22738
22739 blend
22740 Blend percentage. Allowed range is from 0 to 1. Default value is
22741 0.
22742
22743 0.0 makes pixels either fully transparent, or not transparent at
22744 all.
22745
22746 Higher values result in semi-transparent pixels, with a higher
22747 transparency the more similar the pixels color is to the key color.
22748
22749 hue
22750 Modify the hue and/or the saturation of the input.
22751
22752 It accepts the following parameters:
22753
22754 h Specify the hue angle as a number of degrees. It accepts an
22755 expression, and defaults to "0".
22756
22757 s Specify the saturation in the [-10,10] range. It accepts an
22758 expression and defaults to "1".
22759
22760 H Specify the hue angle as a number of radians. It accepts an
22761 expression, and defaults to "0".
22762
22763 b Specify the brightness in the [-10,10] range. It accepts an
22764 expression and defaults to "0".
22765
22766 h and H are mutually exclusive, and can't be specified at the same
22767 time.
22768
22769 The b, h, H and s option values are expressions containing the
22770 following constants:
22771
22772 n frame count of the input frame starting from 0
22773
22774 pts presentation timestamp of the input frame expressed in time base
22775 units
22776
22777 r frame rate of the input video, NAN if the input frame rate is
22778 unknown
22779
22780 t timestamp expressed in seconds, NAN if the input timestamp is
22781 unknown
22782
22783 tb time base of the input video
22784
22785 Examples
22786
22787 • Set the hue to 90 degrees and the saturation to 1.0:
22788
22789 hue=h=90:s=1
22790
22791 • Same command but expressing the hue in radians:
22792
22793 hue=H=PI/2:s=1
22794
22795 • Rotate hue and make the saturation swing between 0 and 2 over a
22796 period of 1 second:
22797
22798 hue="H=2*PI*t: s=sin(2*PI*t)+1"
22799
22800 • Apply a 3 seconds saturation fade-in effect starting at 0:
22801
22802 hue="s=min(t/3\,1)"
22803
22804 The general fade-in expression can be written as:
22805
22806 hue="s=min(0\, max((t-START)/DURATION\, 1))"
22807
22808 • Apply a 3 seconds saturation fade-out effect starting at 5 seconds:
22809
22810 hue="s=max(0\, min(1\, (8-t)/3))"
22811
22812 The general fade-out expression can be written as:
22813
22814 hue="s=max(0\, min(1\, (START+DURATION-t)/DURATION))"
22815
22816 Commands
22817
22818 This filter supports the following commands:
22819
22820 b
22821 s
22822 h
22823 H Modify the hue and/or the saturation and/or brightness of the input
22824 video. The command accepts the same syntax of the corresponding
22825 option.
22826
22827 If the specified expression is not valid, it is kept at its current
22828 value.
22829
22830 huesaturation
22831 Apply hue-saturation-intensity adjustments to input video stream.
22832
22833 This filter operates in RGB colorspace.
22834
22835 This filter accepts the following options:
22836
22837 hue Set the hue shift in degrees to apply. Default is 0. Allowed range
22838 is from -180 to 180.
22839
22840 saturation
22841 Set the saturation shift. Default is 0. Allowed range is from -1
22842 to 1.
22843
22844 intensity
22845 Set the intensity shift. Default is 0. Allowed range is from -1 to
22846 1.
22847
22848 colors
22849 Set which primary and complementary colors are going to be
22850 adjusted. This options is set by providing one or multiple values.
22851 This can select multiple colors at once. By default all colors are
22852 selected.
22853
22854 r Adjust reds.
22855
22856 y Adjust yellows.
22857
22858 g Adjust greens.
22859
22860 c Adjust cyans.
22861
22862 b Adjust blues.
22863
22864 m Adjust magentas.
22865
22866 a Adjust all colors.
22867
22868 strength
22869 Set strength of filtering. Allowed range is from 0 to 100. Default
22870 value is 1.
22871
22872 rw, gw, bw
22873 Set weight for each RGB component. Allowed range is from 0 to 1.
22874 By default is set to 0.333, 0.334, 0.333. Those options are used
22875 in saturation and lightess processing.
22876
22877 lightness
22878 Set preserving lightness, by default is disabled. Adjusting hues
22879 can change lightness from original RGB triplet, with this option
22880 enabled lightness is kept at same value.
22881
22882 hysteresis
22883 Grow first stream into second stream by connecting components. This
22884 makes it possible to build more robust edge masks.
22885
22886 This filter accepts the following options:
22887
22888 planes
22889 Set which planes will be processed as bitmap, unprocessed planes
22890 will be copied from first stream. By default value 0xf, all planes
22891 will be processed.
22892
22893 threshold
22894 Set threshold which is used in filtering. If pixel component value
22895 is higher than this value filter algorithm for connecting
22896 components is activated. By default value is 0.
22897
22898 The "hysteresis" filter also supports the framesync options.
22899
22900 iccdetect
22901 Detect the colorspace from an embedded ICC profile (if present), and
22902 update the frame's tags accordingly.
22903
22904 This filter accepts the following options:
22905
22906 force
22907 If true, the frame's existing colorspace tags will always be
22908 overridden by values detected from an ICC profile. Otherwise, they
22909 will only be assigned if they contain "unknown". Enabled by
22910 default.
22911
22912 iccgen
22913 Generate ICC profiles and attach them to frames.
22914
22915 This filter accepts the following options:
22916
22917 color_primaries
22918 color_trc
22919 Configure the colorspace that the ICC profile will be generated
22920 for. The default value of "auto" infers the value from the input
22921 frame's metadata, defaulting to BT.709/sRGB as appropriate.
22922
22923 See the setparams filter for a list of possible values, but note
22924 that "unknown" are not valid values for this filter.
22925
22926 force
22927 If true, an ICC profile will be generated even if it would
22928 overwrite an already existing ICC profile. Disabled by default.
22929
22930 identity
22931 Obtain the identity score between two input videos.
22932
22933 This filter takes two input videos.
22934
22935 Both input videos must have the same resolution and pixel format for
22936 this filter to work correctly. Also it assumes that both inputs have
22937 the same number of frames, which are compared one by one.
22938
22939 The obtained per component, average, min and max identity score is
22940 printed through the logging system.
22941
22942 The filter stores the calculated identity scores of each frame in frame
22943 metadata.
22944
22945 This filter also supports the framesync options.
22946
22947 In the below example the input file main.mpg being processed is
22948 compared with the reference file ref.mpg.
22949
22950 ffmpeg -i main.mpg -i ref.mpg -lavfi identity -f null -
22951
22952 idet
22953 Detect video interlacing type.
22954
22955 This filter tries to detect if the input frames are interlaced,
22956 progressive, top or bottom field first. It will also try to detect
22957 fields that are repeated between adjacent frames (a sign of telecine).
22958
22959 Single frame detection considers only immediately adjacent frames when
22960 classifying each frame. Multiple frame detection incorporates the
22961 classification history of previous frames.
22962
22963 The filter will log these metadata values:
22964
22965 single.current_frame
22966 Detected type of current frame using single-frame detection. One
22967 of: ``tff'' (top field first), ``bff'' (bottom field first),
22968 ``progressive'', or ``undetermined''
22969
22970 single.tff
22971 Cumulative number of frames detected as top field first using
22972 single-frame detection.
22973
22974 multiple.tff
22975 Cumulative number of frames detected as top field first using
22976 multiple-frame detection.
22977
22978 single.bff
22979 Cumulative number of frames detected as bottom field first using
22980 single-frame detection.
22981
22982 multiple.current_frame
22983 Detected type of current frame using multiple-frame detection. One
22984 of: ``tff'' (top field first), ``bff'' (bottom field first),
22985 ``progressive'', or ``undetermined''
22986
22987 multiple.bff
22988 Cumulative number of frames detected as bottom field first using
22989 multiple-frame detection.
22990
22991 single.progressive
22992 Cumulative number of frames detected as progressive using single-
22993 frame detection.
22994
22995 multiple.progressive
22996 Cumulative number of frames detected as progressive using multiple-
22997 frame detection.
22998
22999 single.undetermined
23000 Cumulative number of frames that could not be classified using
23001 single-frame detection.
23002
23003 multiple.undetermined
23004 Cumulative number of frames that could not be classified using
23005 multiple-frame detection.
23006
23007 repeated.current_frame
23008 Which field in the current frame is repeated from the last. One of
23009 ``neither'', ``top'', or ``bottom''.
23010
23011 repeated.neither
23012 Cumulative number of frames with no repeated field.
23013
23014 repeated.top
23015 Cumulative number of frames with the top field repeated from the
23016 previous frame's top field.
23017
23018 repeated.bottom
23019 Cumulative number of frames with the bottom field repeated from the
23020 previous frame's bottom field.
23021
23022 The filter accepts the following options:
23023
23024 intl_thres
23025 Set interlacing threshold.
23026
23027 prog_thres
23028 Set progressive threshold.
23029
23030 rep_thres
23031 Threshold for repeated field detection.
23032
23033 half_life
23034 Number of frames after which a given frame's contribution to the
23035 statistics is halved (i.e., it contributes only 0.5 to its
23036 classification). The default of 0 means that all frames seen are
23037 given full weight of 1.0 forever.
23038
23039 analyze_interlaced_flag
23040 When this is not 0 then idet will use the specified number of
23041 frames to determine if the interlaced flag is accurate, it will not
23042 count undetermined frames. If the flag is found to be accurate it
23043 will be used without any further computations, if it is found to be
23044 inaccurate it will be cleared without any further computations.
23045 This allows inserting the idet filter as a low computational method
23046 to clean up the interlaced flag
23047
23048 il
23049 Deinterleave or interleave fields.
23050
23051 This filter allows one to process interlaced images fields without
23052 deinterlacing them. Deinterleaving splits the input frame into 2 fields
23053 (so called half pictures). Odd lines are moved to the top half of the
23054 output image, even lines to the bottom half. You can process (filter)
23055 them independently and then re-interleave them.
23056
23057 The filter accepts the following options:
23058
23059 luma_mode, l
23060 chroma_mode, c
23061 alpha_mode, a
23062 Available values for luma_mode, chroma_mode and alpha_mode are:
23063
23064 none
23065 Do nothing.
23066
23067 deinterleave, d
23068 Deinterleave fields, placing one above the other.
23069
23070 interleave, i
23071 Interleave fields. Reverse the effect of deinterleaving.
23072
23073 Default value is "none".
23074
23075 luma_swap, ls
23076 chroma_swap, cs
23077 alpha_swap, as
23078 Swap luma/chroma/alpha fields. Exchange even & odd lines. Default
23079 value is 0.
23080
23081 Commands
23082
23083 This filter supports the all above options as commands.
23084
23085 inflate
23086 Apply inflate effect to the video.
23087
23088 This filter replaces the pixel by the local(3x3) average by taking into
23089 account only values higher than the pixel.
23090
23091 It accepts the following options:
23092
23093 threshold0
23094 threshold1
23095 threshold2
23096 threshold3
23097 Limit the maximum change for each plane, default is 65535. If 0,
23098 plane will remain unchanged.
23099
23100 Commands
23101
23102 This filter supports the all above options as commands.
23103
23104 interlace
23105 Simple interlacing filter from progressive contents. This interleaves
23106 upper (or lower) lines from odd frames with lower (or upper) lines from
23107 even frames, halving the frame rate and preserving image height.
23108
23109 Original Original New Frame
23110 Frame 'j' Frame 'j+1' (tff)
23111 ========== =========== ==================
23112 Line 0 --------------------> Frame 'j' Line 0
23113 Line 1 Line 1 ----> Frame 'j+1' Line 1
23114 Line 2 ---------------------> Frame 'j' Line 2
23115 Line 3 Line 3 ----> Frame 'j+1' Line 3
23116 ... ... ...
23117 New Frame + 1 will be generated by Frame 'j+2' and Frame 'j+3' and so on
23118
23119 It accepts the following optional parameters:
23120
23121 scan
23122 This determines whether the interlaced frame is taken from the even
23123 (tff - default) or odd (bff) lines of the progressive frame.
23124
23125 lowpass
23126 Vertical lowpass filter to avoid twitter interlacing and reduce
23127 moire patterns.
23128
23129 0, off
23130 Disable vertical lowpass filter
23131
23132 1, linear
23133 Enable linear filter (default)
23134
23135 2, complex
23136 Enable complex filter. This will slightly less reduce twitter
23137 and moire but better retain detail and subjective sharpness
23138 impression.
23139
23140 kerndeint
23141 Deinterlace input video by applying Donald Graft's adaptive kernel
23142 deinterling. Work on interlaced parts of a video to produce progressive
23143 frames.
23144
23145 The description of the accepted parameters follows.
23146
23147 thresh
23148 Set the threshold which affects the filter's tolerance when
23149 determining if a pixel line must be processed. It must be an
23150 integer in the range [0,255] and defaults to 10. A value of 0 will
23151 result in applying the process on every pixels.
23152
23153 map Paint pixels exceeding the threshold value to white if set to 1.
23154 Default is 0.
23155
23156 order
23157 Set the fields order. Swap fields if set to 1, leave fields alone
23158 if 0. Default is 0.
23159
23160 sharp
23161 Enable additional sharpening if set to 1. Default is 0.
23162
23163 twoway
23164 Enable twoway sharpening if set to 1. Default is 0.
23165
23166 Examples
23167
23168 • Apply default values:
23169
23170 kerndeint=thresh=10:map=0:order=0:sharp=0:twoway=0
23171
23172 • Enable additional sharpening:
23173
23174 kerndeint=sharp=1
23175
23176 • Paint processed pixels in white:
23177
23178 kerndeint=map=1
23179
23180 kirsch
23181 Apply kirsch operator to input video stream.
23182
23183 The filter accepts the following option:
23184
23185 planes
23186 Set which planes will be processed, unprocessed planes will be
23187 copied. By default value 0xf, all planes will be processed.
23188
23189 scale
23190 Set value which will be multiplied with filtered result.
23191
23192 delta
23193 Set value which will be added to filtered result.
23194
23195 Commands
23196
23197 This filter supports the all above options as commands.
23198
23199 lagfun
23200 Slowly update darker pixels.
23201
23202 This filter makes short flashes of light appear longer. This filter
23203 accepts the following options:
23204
23205 decay
23206 Set factor for decaying. Default is .95. Allowed range is from 0 to
23207 1.
23208
23209 planes
23210 Set which planes to filter. Default is all. Allowed range is from 0
23211 to 15.
23212
23213 Commands
23214
23215 This filter supports the all above options as commands.
23216
23217 lenscorrection
23218 Correct radial lens distortion
23219
23220 This filter can be used to correct for radial distortion as can result
23221 from the use of wide angle lenses, and thereby re-rectify the image. To
23222 find the right parameters one can use tools available for example as
23223 part of opencv or simply trial-and-error. To use opencv use the
23224 calibration sample (under samples/cpp) from the opencv sources and
23225 extract the k1 and k2 coefficients from the resulting matrix.
23226
23227 Note that effectively the same filter is available in the open-source
23228 tools Krita and Digikam from the KDE project.
23229
23230 In contrast to the vignette filter, which can also be used to
23231 compensate lens errors, this filter corrects the distortion of the
23232 image, whereas vignette corrects the brightness distribution, so you
23233 may want to use both filters together in certain cases, though you will
23234 have to take care of ordering, i.e. whether vignetting should be
23235 applied before or after lens correction.
23236
23237 Options
23238
23239 The filter accepts the following options:
23240
23241 cx Relative x-coordinate of the focal point of the image, and thereby
23242 the center of the distortion. This value has a range [0,1] and is
23243 expressed as fractions of the image width. Default is 0.5.
23244
23245 cy Relative y-coordinate of the focal point of the image, and thereby
23246 the center of the distortion. This value has a range [0,1] and is
23247 expressed as fractions of the image height. Default is 0.5.
23248
23249 k1 Coefficient of the quadratic correction term. This value has a
23250 range [-1,1]. 0 means no correction. Default is 0.
23251
23252 k2 Coefficient of the double quadratic correction term. This value has
23253 a range [-1,1]. 0 means no correction. Default is 0.
23254
23255 i Set interpolation type. Can be "nearest" or "bilinear". Default is
23256 "nearest".
23257
23258 fc Specify the color of the unmapped pixels. For the syntax of this
23259 option, check the "Color" section in the ffmpeg-utils manual.
23260 Default color is "black@0".
23261
23262 The formula that generates the correction is:
23263
23264 r_src = r_tgt * (1 + k1 * (r_tgt / r_0)^2 + k2 * (r_tgt / r_0)^4)
23265
23266 where r_0 is halve of the image diagonal and r_src and r_tgt are the
23267 distances from the focal point in the source and target images,
23268 respectively.
23269
23270 Commands
23271
23272 This filter supports the all above options as commands.
23273
23274 lensfun
23275 Apply lens correction via the lensfun library
23276 (<http://lensfun.sourceforge.net/>).
23277
23278 The "lensfun" filter requires the camera make, camera model, and lens
23279 model to apply the lens correction. The filter will load the lensfun
23280 database and query it to find the corresponding camera and lens entries
23281 in the database. As long as these entries can be found with the given
23282 options, the filter can perform corrections on frames. Note that
23283 incomplete strings will result in the filter choosing the best match
23284 with the given options, and the filter will output the chosen camera
23285 and lens models (logged with level "info"). You must provide the make,
23286 camera model, and lens model as they are required.
23287
23288 To obtain a list of available makes and models, leave out one or both
23289 of "make" and "model" options. The filter will send the full list to
23290 the log with level "INFO". The first column is the make and the second
23291 column is the model. To obtain a list of available lenses, set any
23292 values for make and model and leave out the "lens_model" option. The
23293 filter will send the full list of lenses in the log with level "INFO".
23294 The ffmpeg tool will exit after the list is printed.
23295
23296 The filter accepts the following options:
23297
23298 make
23299 The make of the camera (for example, "Canon"). This option is
23300 required.
23301
23302 model
23303 The model of the camera (for example, "Canon EOS 100D"). This
23304 option is required.
23305
23306 lens_model
23307 The model of the lens (for example, "Canon EF-S 18-55mm f/3.5-5.6
23308 IS STM"). This option is required.
23309
23310 db_path
23311 The full path to the lens database folder. If not set, the filter
23312 will attempt to load the database from the install path when the
23313 library was built. Default is unset.
23314
23315 mode
23316 The type of correction to apply. The following values are valid
23317 options:
23318
23319 vignetting
23320 Enables fixing lens vignetting.
23321
23322 geometry
23323 Enables fixing lens geometry. This is the default.
23324
23325 subpixel
23326 Enables fixing chromatic aberrations.
23327
23328 vig_geo
23329 Enables fixing lens vignetting and lens geometry.
23330
23331 vig_subpixel
23332 Enables fixing lens vignetting and chromatic aberrations.
23333
23334 distortion
23335 Enables fixing both lens geometry and chromatic aberrations.
23336
23337 all Enables all possible corrections.
23338
23339 focal_length
23340 The focal length of the image/video (zoom; expected constant for
23341 video). For example, a 18--55mm lens has focal length range of
23342 [18--55], so a value in that range should be chosen when using that
23343 lens. Default 18.
23344
23345 aperture
23346 The aperture of the image/video (expected constant for video). Note
23347 that aperture is only used for vignetting correction. Default 3.5.
23348
23349 focus_distance
23350 The focus distance of the image/video (expected constant for
23351 video). Note that focus distance is only used for vignetting and
23352 only slightly affects the vignetting correction process. If
23353 unknown, leave it at the default value (which is 1000).
23354
23355 scale
23356 The scale factor which is applied after transformation. After
23357 correction the video is no longer necessarily rectangular. This
23358 parameter controls how much of the resulting image is visible. The
23359 value 0 means that a value will be chosen automatically such that
23360 there is little or no unmapped area in the output image. 1.0 means
23361 that no additional scaling is done. Lower values may result in more
23362 of the corrected image being visible, while higher values may avoid
23363 unmapped areas in the output.
23364
23365 target_geometry
23366 The target geometry of the output image/video. The following values
23367 are valid options:
23368
23369 rectilinear (default)
23370 fisheye
23371 panoramic
23372 equirectangular
23373 fisheye_orthographic
23374 fisheye_stereographic
23375 fisheye_equisolid
23376 fisheye_thoby
23377 reverse
23378 Apply the reverse of image correction (instead of correcting
23379 distortion, apply it).
23380
23381 interpolation
23382 The type of interpolation used when correcting distortion. The
23383 following values are valid options:
23384
23385 nearest
23386 linear (default)
23387 lanczos
23388
23389 Examples
23390
23391 • Apply lens correction with make "Canon", camera model "Canon EOS
23392 100D", and lens model "Canon EF-S 18-55mm f/3.5-5.6 IS STM" with
23393 focal length of "18" and aperture of "8.0".
23394
23395 ffmpeg -i input.mov -vf lensfun=make=Canon:model="Canon EOS 100D":lens_model="Canon EF-S 18-55mm f/3.5-5.6 IS STM":focal_length=18:aperture=8 -c:v h264 -b:v 8000k output.mov
23396
23397 • Apply the same as before, but only for the first 5 seconds of
23398 video.
23399
23400 ffmpeg -i input.mov -vf lensfun=make=Canon:model="Canon EOS 100D":lens_model="Canon EF-S 18-55mm f/3.5-5.6 IS STM":focal_length=18:aperture=8:enable='lte(t\,5)' -c:v h264 -b:v 8000k output.mov
23401
23402 libplacebo
23403 Flexible GPU-accelerated processing filter based on libplacebo
23404 (<https://code.videolan.org/videolan/libplacebo>). Note that this
23405 filter currently only accepts Vulkan input frames.
23406
23407 Options
23408
23409 The options for this filter are divided into the following sections:
23410
23411 Output mode
23412
23413 These options control the overall output mode. By default, libplacebo
23414 will try to preserve the source colorimetry and size as best as it can,
23415 but it will apply any embedded film grain, dolby vision metadata or
23416 anamorphic SAR present in source frames.
23417
23418 w
23419 h Set the output video dimension expression. Default value is the
23420 input dimension.
23421
23422 Allows for the same expressions as the scale filter.
23423
23424 format
23425 Set the output format override. If unset (the default), frames will
23426 be output in the same format as the respective input frames.
23427 Otherwise, format conversion will be performed.
23428
23429 force_original_aspect_ratio
23430 force_divisible_by
23431 Work the same as the identical scale filter options.
23432
23433 normalize_sar
23434 If enabled, output frames will always have a pixel aspect ratio of
23435 1:1. This will introduce padding/cropping as necessary. If disabled
23436 (the default), any aspect ratio mismatches, including those from
23437 e.g. anamorphic video sources, are forwarded to the output pixel
23438 aspect ratio.
23439
23440 pad_crop_ratio
23441 Specifies a ratio (between 0.0 and 1.0) between padding and
23442 cropping when the input aspect ratio does not match the output
23443 aspect ratio and normalize_sar is in effect. The default of 0.0
23444 always pads the content with black borders, while a value of 1.0
23445 always crops off parts of the content. Intermediate values are
23446 possible, leading to a mix of the two approaches.
23447
23448 colorspace
23449 color_primaries
23450 color_trc
23451 range
23452 Configure the colorspace that output frames will be delivered in.
23453 The default value of "auto" outputs frames in the same format as
23454 the input frames, leading to no change. For any other value,
23455 conversion will be performed.
23456
23457 See the setparams filter for a list of possible values.
23458
23459 apply_filmgrain
23460 Apply film grain (e.g. AV1 or H.274) if present in source frames,
23461 and strip it from the output. Enabled by default.
23462
23463 apply_dolbyvision
23464 Apply Dolby Vision RPU metadata if present in source frames, and
23465 strip it from the output. Enabled by default. Note that Dolby
23466 Vision will always output BT.2020+PQ, overriding the usual input
23467 frame metadata. These will also be picked as the values of "auto"
23468 for the respective frame output options.
23469
23470 Scaling
23471
23472 The options in this section control how libplacebo performs upscaling
23473 and (if necessary) downscaling. Note that libplacebo will always
23474 internally operate on 4:4:4 content, so any sub-sampled chroma formats
23475 such as "yuv420p" will necessarily be upsampled and downsampled as part
23476 of the rendering process. That means scaling might be in effect even if
23477 the source and destination resolution are the same.
23478
23479 upscaler
23480 downscaler
23481 Configure the filter kernel used for upscaling and downscaling. The
23482 respective defaults are "spline36" and "mitchell". For a full list
23483 of possible values, pass "help" to these options. The most
23484 important values are:
23485
23486 none
23487 Forces the use of built-in GPU texture sampling (typically
23488 bilinear). Extremely fast but poor quality, especially when
23489 downscaling.
23490
23491 bilinear
23492 Bilinear interpolation. Can generally be done for free on GPUs,
23493 except when doing so would lead to aliasing. Fast and low
23494 quality.
23495
23496 nearest
23497 Nearest-neighbour interpolation. Sharp but highly aliasing.
23498
23499 oversample
23500 Algorithm that looks visually similar to nearest-neighbour
23501 interpolation but tries to preserve pixel aspect ratio. Good
23502 for pixel art, since it results in minimal distortion of the
23503 artistic appearance.
23504
23505 lanczos
23506 Standard sinc-sinc interpolation kernel.
23507
23508 spline36
23509 Cubic spline approximation of lanczos. No difference in
23510 performance, but has very slightly less ringing.
23511
23512 ewa_lanczos
23513 Elliptically weighted average version of lanczos, based on a
23514 jinc-sinc kernel. This is also popularly referred to as just
23515 "Jinc scaling". Slow but very high quality.
23516
23517 gaussian
23518 Gaussian kernel. Has certain ideal mathematical properties, but
23519 subjectively very blurry.
23520
23521 mitchell
23522 Cubic BC spline with parameters recommended by Mitchell and
23523 Netravali. Very little ringing.
23524
23525 lut_entries
23526 Configures the size of scaler LUTs, ranging from 1 to 256. The
23527 default of 0 will pick libplacebo's internal default, typically 64.
23528
23529 antiringing
23530 Enables anti-ringing (for non-EWA filters). The value (between 0.0
23531 and 1.0) configures the strength of the anti-ringing algorithm. May
23532 increase aliasing if set too high. Disabled by default.
23533
23534 sigmoid
23535 Enable sigmoidal compression during upscaling. Reduces ringing
23536 slightly. Enabled by default.
23537
23538 Debanding
23539
23540 Libplacebo comes with a built-in debanding filter that is good at
23541 counteracting many common sources of banding and blocking. Turning this
23542 on is highly recommended whenever quality is desired.
23543
23544 deband
23545 Enable (fast) debanding algorithm. Disabled by default.
23546
23547 deband_iterations
23548 Number of deband iterations of the debanding algorithm. Each
23549 iteration is performed with progressively increased radius (and
23550 diminished threshold). Recommended values are in the range 1 to 4.
23551 Defaults to 1.
23552
23553 deband_threshold
23554 Debanding filter strength. Higher numbers lead to more aggressive
23555 debanding. Defaults to 4.0.
23556
23557 deband_radius
23558 Debanding filter radius. A higher radius is better for slow
23559 gradients, while a lower radius is better for steep gradients.
23560 Defaults to 16.0.
23561
23562 deband_grain
23563 Amount of extra output grain to add. Helps hide imperfections.
23564 Defaults to 6.0.
23565
23566 Color adjustment
23567
23568 A collection of subjective color controls. Not very rigorous, so the
23569 exact effect will vary somewhat depending on the input primaries and
23570 colorspace.
23571
23572 brightness
23573 Brightness boost, between -1.0 and 1.0. Defaults to 0.0.
23574
23575 contrast
23576 Contrast gain, between 0.0 and 16.0. Defaults to 1.0.
23577
23578 saturation
23579 Saturation gain, between 0.0 and 16.0. Defaults to 1.0.
23580
23581 hue Hue shift in radians, between -3.14 and 3.14. Defaults to 0.0. This
23582 will rotate the UV subvector, defaulting to BT.709 coefficients for
23583 RGB inputs.
23584
23585 gamma
23586 Gamma adjustment, between 0.0 and 16.0. Defaults to 1.0.
23587
23588 cones
23589 Cone model to use for color blindness simulation. Accepts any
23590 combination of "l", "m" and "s". Here are some examples:
23591
23592 m Deuteranomaly / deuteranopia (affecting 3%-4% of the
23593 population)
23594
23595 l Protanomaly / protanopia (affecting 1%-2% of the population)
23596
23597 l+m Monochromacy (very rare)
23598
23599 l+m+s
23600 Achromatopsy (complete loss of daytime vision, extremely rare)
23601
23602 cone-strength
23603 Gain factor for the cones specified by "cones", between 0.0 and
23604 10.0. A value of 1.0 results in no change to color vision. A value
23605 of 0.0 (the default) simulates complete loss of those cones. Values
23606 above 1.0 result in exaggerating the differences between cones,
23607 which may help compensate for reduced color vision.
23608
23609 Peak detection
23610
23611 To help deal with sources that only have static HDR10 metadata (or no
23612 tagging whatsoever), libplacebo uses its own internal frame analysis
23613 compute shader to analyze source frames and adapt the tone mapping
23614 function in realtime. If this is too slow, or if exactly reproducible
23615 frame-perfect results are needed, it's recommended to turn this feature
23616 off.
23617
23618 peak_detect
23619 Enable HDR peak detection. Ignores static MaxCLL/MaxFALL values in
23620 favor of dynamic detection from the input. Note that the detected
23621 values do not get written back to the output frames, they merely
23622 guide the internal tone mapping process. Enabled by default.
23623
23624 smoothing_period
23625 Peak detection smoothing period, between 0.0 and 1000.0. Higher
23626 values result in peak detection becoming less responsive to changes
23627 in the input. Defaults to 100.0.
23628
23629 minimum_peak
23630 Lower bound on the detected peak (relative to SDR white), between
23631 0.0 and 100.0. Defaults to 1.0.
23632
23633 scene_threshold_low
23634 scene_threshold_high
23635 Lower and upper thresholds for scene change detection. Expressed in
23636 a logarithmic scale between 0.0 and 100.0. Default to 5.5 and 10.0,
23637 respectively. Setting either to a negative value disables this
23638 functionality.
23639
23640 overshoot
23641 Peak smoothing overshoot margin, between 0.0 and 1.0. Provides a
23642 safety margin to prevent clipping as a result of peak smoothing.
23643 Defaults to 0.05, corresponding to a margin of 5%.
23644
23645 Tone mapping
23646
23647 The options in this section control how libplacebo performs tone-
23648 mapping and gamut-mapping when dealing with mismatches between wide-
23649 gamut or HDR content. In general, libplacebo relies on accurate source
23650 tagging and mastering display gamut information to produce the best
23651 results.
23652
23653 intent
23654 Rendering intent to use when adapting between different primary
23655 color gamuts (after tone-mapping).
23656
23657 perceptual
23658 Perceptual gamut mapping. Currently equivalent to relative
23659 colorimetric.
23660
23661 relative
23662 Relative colorimetric. This is the default.
23663
23664 absolute
23665 Absolute colorimetric.
23666
23667 saturation
23668 Saturation mapping. Forcibly stretches the source gamut to the
23669 target gamut.
23670
23671 gamut_mode
23672 How to handle out-of-gamut colors that can occur as a result of
23673 colorimetric gamut mapping.
23674
23675 clip
23676 Do nothing, simply clip out-of-range colors to the RGB volume.
23677 This is the default.
23678
23679 warn
23680 Highlight out-of-gamut pixels (by coloring them pink).
23681
23682 darken
23683 Linearly reduces content brightness to preserves saturated
23684 details, followed by clipping the remaining out-of-gamut
23685 colors. As the name implies, this makes everything darker, but
23686 provides a good balance between preserving details and colors.
23687
23688 desaturate
23689 Hard-desaturates out-of-gamut colors towards white, while
23690 preserving the luminance. Has a tendency to shift colors.
23691
23692 tonemapping
23693 Tone-mapping algorithm to use. Available values are:
23694
23695 auto
23696 Automatic selection based on internal heuristics. This is the
23697 default.
23698
23699 clip
23700 Performs no tone-mapping, just clips out-of-range colors.
23701 Retains perfect color accuracy for in-range colors but
23702 completely destroys out-of-range information. Does not perform
23703 any black point adaptation. Not configurable.
23704
23705 st2094-40
23706 EETF from SMPTE ST 2094-40 Annex B, which applies the Bezier
23707 curves from HDR10+ dynamic metadata based on Bezier curves to
23708 perform tone-mapping. The OOTF used is adjusted based on the
23709 ratio between the targeted and actual display peak luminances.
23710
23711 st2094-10
23712 EETF from SMPTE ST 2094-10 Annex B.2, which takes into account
23713 the input signal average luminance in addition to the
23714 maximum/minimum. The configurable contrast parameter influences
23715 the slope of the linear output segment, defaulting to 1.0 for
23716 no increase/decrease in contrast. Note that this does not
23717 currently include the subjective gain/offset/gamma controls
23718 defined in Annex B.3.
23719
23720 bt.2390
23721 EETF from the ITU-R Report BT.2390, a hermite spline roll-off
23722 with linear segment. The knee point offset is configurable.
23723 Note that this parameter defaults to 1.0, rather than the value
23724 of 0.5 from the ITU-R spec.
23725
23726 bt.2446a
23727 EETF from ITU-R Report BT.2446, method A. Designed for well-
23728 mastered HDR sources. Can be used for both forward and inverse
23729 tone mapping. Not configurable.
23730
23731 spline
23732 Simple spline consisting of two polynomials, joined by a single
23733 pivot point. The parameter gives the pivot point (in PQ
23734 space), defaulting to 0.30. Can be used for both forward and
23735 inverse tone mapping.
23736
23737 reinhard
23738 Simple non-linear, global tone mapping algorithm. The parameter
23739 specifies the local contrast coefficient at the display peak.
23740 Essentially, a parameter of 0.5 implies that the reference
23741 white will be about half as bright as when clipping. Defaults
23742 to 0.5, which results in the simplest formulation of this
23743 function.
23744
23745 mobius
23746 Generalization of the reinhard tone mapping algorithm to
23747 support an additional linear slope near black. The tone mapping
23748 parameter indicates the trade-off between the linear section
23749 and the non-linear section. Essentially, for a given parameter
23750 x, every color value below x will be mapped linearly, while
23751 higher values get non-linearly tone-mapped. Values near 1.0
23752 make this curve behave like "clip", while values near 0.0 make
23753 this curve behave like "reinhard". The default value is 0.3,
23754 which provides a good balance between colorimetric accuracy and
23755 preserving out-of-gamut details.
23756
23757 hable
23758 Piece-wise, filmic tone-mapping algorithm developed by John
23759 Hable for use in Uncharted 2, inspired by a similar tone-
23760 mapping algorithm used by Kodak. Popularized by its use in
23761 video games with HDR rendering. Preserves both dark and bright
23762 details very well, but comes with the drawback of changing the
23763 average brightness quite significantly. This is sort of similar
23764 to "reinhard" with parameter 0.24.
23765
23766 gamma
23767 Fits a gamma (power) function to transfer between the source
23768 and target color spaces, effectively resulting in a perceptual
23769 hard-knee joining two roughly linear sections. This preserves
23770 details at all scales fairly accurately, but can result in an
23771 image with a muted or dull appearance. The parameter is used as
23772 the cutoff point, defaulting to 0.5.
23773
23774 linear
23775 Linearly stretches the input range to the output range, in PQ
23776 space. This will preserve all details accurately, but results
23777 in a significantly different average brightness. Can be used
23778 for inverse tone-mapping in addition to regular tone-mapping.
23779 The parameter can be used as an additional linear gain
23780 coefficient (defaulting to 1.0).
23781
23782 tonemapping_param
23783 For tunable tone mapping functions, this parameter can be used to
23784 fine-tune the curve behavior. Refer to the documentation of
23785 "tonemapping". The default value of 0.0 is replaced by the curve's
23786 preferred default setting.
23787
23788 tonemapping_mode
23789 This option determines how the tone mapping function specified by
23790 "tonemapping" is applied to the colors in a scene. Possible values
23791 are:
23792
23793 auto
23794 Automatic selection based on internal heuristics. This is the
23795 default.
23796
23797 rgb Apply the function per-channel in the RGB colorspace. Per-
23798 channel tone-mapping in RGB. Guarantees no clipping and heavily
23799 desaturates the output, but distorts the colors quite
23800 significantly. Very similar to the "Hollywood" look and feel.
23801
23802 max Tone-mapping is performed on the brightest component found in
23803 the signal. Good at preserving details in highlights, but has a
23804 tendency to crush blacks.
23805
23806 hybrid
23807 Tone-map per-channel for highlights and linearly (luma-based)
23808 for midtones/shadows, based on a fixed gamma 2.4 coefficient
23809 curve.
23810
23811 luma
23812 Tone-map linearly on the luma component (CIE Y), and adjust
23813 (desaturate) the chromaticities to compensate using a simple
23814 constant factor. This is essentially the mode used in ITU-R
23815 BT.2446 method A.
23816
23817 inverse_tonemapping
23818 If enabled, this filter will also attempt stretching SDR signals to
23819 fill HDR output color volumes. Disabled by default.
23820
23821 tonemapping_crosstalk
23822 Extra tone-mapping crosstalk factor, between 0.0 and 0.3. This can
23823 help reduce issues tone-mapping certain bright spectral colors.
23824 Defaults to 0.04.
23825
23826 tonemapping_lut_size
23827 Size of the tone-mapping LUT, between 2 and 1024. Defaults to 256.
23828 Note that this figure is squared when combined with "peak_detect".
23829
23830 Dithering
23831
23832 By default, libplacebo will dither whenever necessary, which includes
23833 rendering to any integer format below 16-bit precision. It's
23834 recommended to always leave this on, since not doing so may result in
23835 visible banding in the output, even if the "debanding" filter is
23836 enabled. If maximum performance is needed, use "ordered_fixed" instead
23837 of disabling dithering.
23838
23839 dithering
23840 Dithering method to use. Accepts the following values:
23841
23842 none
23843 Disables dithering completely. May result in visible banding.
23844
23845 blue
23846 Dither with pseudo-blue noise. This is the default.
23847
23848 ordered
23849 Tunable ordered dither pattern.
23850
23851 ordered_fixed
23852 Faster ordered dither with a fixed size of 6. Texture-less.
23853
23854 white
23855 Dither with white noise. Texture-less.
23856
23857 dither_lut_size
23858 Dither LUT size, as log base2 between 1 and 8. Defaults to 6,
23859 corresponding to a LUT size of "64x64".
23860
23861 dither_temporal
23862 Enables temporal dithering. Disabled by default.
23863
23864 Custom shaders
23865
23866 libplacebo supports a number of custom shaders based on the mpv .hook
23867 GLSL syntax. A collection of such shaders can be found here:
23868 <https://github.com/mpv-player/mpv/wiki/User-Scripts#user-shaders>
23869
23870 A full description of the mpv shader format is beyond the scope of this
23871 section, but a summary can be found here:
23872 <https://mpv.io/manual/master/#options-glsl-shader>
23873
23874 custom_shader_path
23875 Specifies a path to a custom shader file to load at runtime.
23876
23877 custom_shader_bin
23878 Specifies a complete custom shader as a raw string.
23879
23880 Debugging / performance
23881
23882 All of the options in this section default off. They may be of
23883 assistance when attempting to squeeze the maximum performance at the
23884 cost of quality.
23885
23886 skip_aa
23887 Disable anti-aliasing when downscaling.
23888
23889 polar_cutoff
23890 Truncate polar (EWA) scaler kernels below this absolute magnitude,
23891 between 0.0 and 1.0.
23892
23893 disable_linear
23894 Disable linear light scaling.
23895
23896 disable_builtin
23897 Disable built-in GPU sampling (forces LUT).
23898
23899 disable_fbos
23900 Forcibly disable FBOs, resulting in loss of almost all
23901 functionality, but offering the maximum possible speed.
23902
23903 Commands
23904
23905 This filter supports almost all of the above options as commands.
23906
23907 Examples
23908
23909 • Complete example for how to initialize the Vulkan device, upload
23910 frames to the GPU, perform filter conversion to yuv420p, and
23911 download frames back to the CPU for output. Note that in specific
23912 cases you can get around the need to perform format conversion by
23913 specifying the correct "format" filter option corresponding to the
23914 input frames.
23915
23916 ffmpeg -i $INPUT -init_hw_device vulkan -vf hwupload,libplacebo=format=yuv420p,hwdownload,format=yuv420p $OUTPUT
23917
23918 • Tone-map input to standard gamut BT.709 output:
23919
23920 libplacebo=colorspace=bt709:color_primaries=bt709:color_trc=bt709:range=tv
23921
23922 • Rescale input to fit into standard 1080p, with high quality
23923 scaling:
23924
23925 libplacebo=w=1920:h=1080:force_original_aspect_ratio=decrease:normalize_sar=true:upscaler=ewa_lanczos:downscaler=ewa_lanczos
23926
23927 • Convert input to standard sRGB JPEG:
23928
23929 libplacebo=format=yuv420p:colorspace=bt470bg:color_primaries=bt709:color_trc=iec61966-2-1:range=pc
23930
23931 • Use higher quality debanding settings:
23932
23933 libplacebo=deband=true:deband_iterations=3:deband_radius=8:deband_threshold=6
23934
23935 • Run this filter on the CPU, on systems with Mesa installed (and
23936 with the most expensive options disabled):
23937
23938 ffmpeg ... -init_hw_device vulkan:llvmpipe ... -vf libplacebo=upscaler=none:downscaler=none:peak_detect=false
23939
23940 • Suppress CPU-based AV1/H.274 film grain application in the decoder,
23941 in favor of doing it with this filter. Note that this is only a
23942 gain if the frames are either already on the GPU, or if you're
23943 using libplacebo for other purposes, since otherwise the VRAM
23944 roundtrip will more than offset any expected speedup.
23945
23946 ffmpeg -export_side_data +film_grain ... -vf libplacebo=apply_filmgrain=true
23947
23948 libvmaf
23949 Calulate the VMAF (Video Multi-Method Assessment Fusion) score for a
23950 reference/distorted pair of input videos.
23951
23952 The first input is the distorted video, and the second input is the
23953 reference video.
23954
23955 The obtained VMAF score is printed through the logging system.
23956
23957 It requires Netflix's vmaf library (libvmaf) as a pre-requisite. After
23958 installing the library it can be enabled using: "./configure
23959 --enable-libvmaf".
23960
23961 The filter has following options:
23962
23963 model
23964 A `|` delimited list of vmaf models. Each model can be configured
23965 with a number of parameters. Default value: "version=vmaf_v0.6.1"
23966
23967 model_path
23968 Deprecated, use model='path=...'.
23969
23970 enable_transform
23971 Deprecated, use model='enable_transform=true'.
23972
23973 phone_model
23974 Deprecated, use model='enable_transform=true'.
23975
23976 enable_conf_interval
23977 Deprecated, use model='enable_conf_interval=true'.
23978
23979 feature
23980 A `|` delimited list of features. Each feature can be configured
23981 with a number of parameters.
23982
23983 psnr
23984 Deprecated, use feature='name=psnr'.
23985
23986 ssim
23987 Deprecated, use feature='name=ssim'.
23988
23989 ms_ssim
23990 Deprecated, use feature='name=ms_ssim'.
23991
23992 log_path
23993 Set the file path to be used to store log files.
23994
23995 log_fmt
23996 Set the format of the log file (xml, json, csv, or sub).
23997
23998 n_threads
23999 Set number of threads to be used when initializing libvmaf.
24000 Default value: 0, no threads.
24001
24002 n_subsample
24003 Set frame subsampling interval to be used.
24004
24005 This filter also supports the framesync options.
24006
24007 Examples
24008
24009 • In the examples below, a distorted video distorted.mpg is compared
24010 with a reference file reference.mpg.
24011
24012 • Basic usage:
24013
24014 ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf=log_path=output.xml -f null -
24015
24016 • Example with multiple models:
24017
24018 ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='model=version=vmaf_v0.6.1\\:name=vmaf|version=vmaf_v0.6.1neg\\:name=vmaf_neg' -f null -
24019
24020 • Example with multiple addtional features:
24021
24022 ffmpeg -i distorted.mpg -i reference.mpg -lavfi libvmaf='feature=name=psnr|name=ciede' -f null -
24023
24024 • Example with options and different containers:
24025
24026 ffmpeg -i distorted.mpg -i reference.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]libvmaf=log_fmt=json:log_path=output.json" -f null -
24027
24028 limitdiff
24029 Apply limited difference filter using second and optionally third video
24030 stream.
24031
24032 The filter accepts the following options:
24033
24034 threshold
24035 Set the threshold to use when allowing certain differences between
24036 video streams. Any absolute difference value lower or exact than
24037 this threshold will pick pixel components from first video stream.
24038
24039 elasticity
24040 Set the elasticity of soft thresholding when processing video
24041 streams. This value multiplied with first one sets second
24042 threshold. Any absolute difference value greater or exact than
24043 second threshold will pick pixel components from second video
24044 stream. For values between those two threshold linear interpolation
24045 between first and second video stream will be used.
24046
24047 reference
24048 Enable the reference (third) video stream processing. By default is
24049 disabled. If set, this video stream will be used for calculating
24050 absolute difference with first video stream.
24051
24052 planes
24053 Specify which planes will be processed. Defaults to all available.
24054
24055 Commands
24056
24057 This filter supports the all above options as commands except option
24058 reference.
24059
24060 limiter
24061 Limits the pixel components values to the specified range [min, max].
24062
24063 The filter accepts the following options:
24064
24065 min Lower bound. Defaults to the lowest allowed value for the input.
24066
24067 max Upper bound. Defaults to the highest allowed value for the input.
24068
24069 planes
24070 Specify which planes will be processed. Defaults to all available.
24071
24072 Commands
24073
24074 This filter supports the all above options as commands.
24075
24076 loop
24077 Loop video frames.
24078
24079 The filter accepts the following options:
24080
24081 loop
24082 Set the number of loops. Setting this value to -1 will result in
24083 infinite loops. Default is 0.
24084
24085 size
24086 Set maximal size in number of frames. Default is 0.
24087
24088 start
24089 Set first frame of loop. Default is 0.
24090
24091 Examples
24092
24093 • Loop single first frame infinitely:
24094
24095 loop=loop=-1:size=1:start=0
24096
24097 • Loop single first frame 10 times:
24098
24099 loop=loop=10:size=1:start=0
24100
24101 • Loop 10 first frames 5 times:
24102
24103 loop=loop=5:size=10:start=0
24104
24105 lut1d
24106 Apply a 1D LUT to an input video.
24107
24108 The filter accepts the following options:
24109
24110 file
24111 Set the 1D LUT file name.
24112
24113 Currently supported formats:
24114
24115 cube
24116 Iridas
24117
24118 csp cineSpace
24119
24120 interp
24121 Select interpolation mode.
24122
24123 Available values are:
24124
24125 nearest
24126 Use values from the nearest defined point.
24127
24128 linear
24129 Interpolate values using the linear interpolation.
24130
24131 cosine
24132 Interpolate values using the cosine interpolation.
24133
24134 cubic
24135 Interpolate values using the cubic interpolation.
24136
24137 spline
24138 Interpolate values using the spline interpolation.
24139
24140 Commands
24141
24142 This filter supports the all above options as commands.
24143
24144 lut3d
24145 Apply a 3D LUT to an input video.
24146
24147 The filter accepts the following options:
24148
24149 file
24150 Set the 3D LUT file name.
24151
24152 Currently supported formats:
24153
24154 3dl AfterEffects
24155
24156 cube
24157 Iridas
24158
24159 dat DaVinci
24160
24161 m3d Pandora
24162
24163 csp cineSpace
24164
24165 interp
24166 Select interpolation mode.
24167
24168 Available values are:
24169
24170 nearest
24171 Use values from the nearest defined point.
24172
24173 trilinear
24174 Interpolate values using the 8 points defining a cube.
24175
24176 tetrahedral
24177 Interpolate values using a tetrahedron.
24178
24179 pyramid
24180 Interpolate values using a pyramid.
24181
24182 prism
24183 Interpolate values using a prism.
24184
24185 Commands
24186
24187 This filter supports the "interp" option as commands.
24188
24189 lumakey
24190 Turn certain luma values into transparency.
24191
24192 The filter accepts the following options:
24193
24194 threshold
24195 Set the luma which will be used as base for transparency. Default
24196 value is 0.
24197
24198 tolerance
24199 Set the range of luma values to be keyed out. Default value is
24200 0.01.
24201
24202 softness
24203 Set the range of softness. Default value is 0. Use this to control
24204 gradual transition from zero to full transparency.
24205
24206 Commands
24207
24208 This filter supports same commands as options. The command accepts the
24209 same syntax of the corresponding option.
24210
24211 If the specified expression is not valid, it is kept at its current
24212 value.
24213
24214 lut, lutrgb, lutyuv
24215 Compute a look-up table for binding each pixel component input value to
24216 an output value, and apply it to the input video.
24217
24218 lutyuv applies a lookup table to a YUV input video, lutrgb to an RGB
24219 input video.
24220
24221 These filters accept the following parameters:
24222
24223 c0 set first pixel component expression
24224
24225 c1 set second pixel component expression
24226
24227 c2 set third pixel component expression
24228
24229 c3 set fourth pixel component expression, corresponds to the alpha
24230 component
24231
24232 r set red component expression
24233
24234 g set green component expression
24235
24236 b set blue component expression
24237
24238 a alpha component expression
24239
24240 y set Y/luminance component expression
24241
24242 u set U/Cb component expression
24243
24244 v set V/Cr component expression
24245
24246 Each of them specifies the expression to use for computing the lookup
24247 table for the corresponding pixel component values.
24248
24249 The exact component associated to each of the c* options depends on the
24250 format in input.
24251
24252 The lut filter requires either YUV or RGB pixel formats in input,
24253 lutrgb requires RGB pixel formats in input, and lutyuv requires YUV.
24254
24255 The expressions can contain the following constants and functions:
24256
24257 w
24258 h The input width and height.
24259
24260 val The input value for the pixel component.
24261
24262 clipval
24263 The input value, clipped to the minval-maxval range.
24264
24265 maxval
24266 The maximum value for the pixel component.
24267
24268 minval
24269 The minimum value for the pixel component.
24270
24271 negval
24272 The negated value for the pixel component value, clipped to the
24273 minval-maxval range; it corresponds to the expression
24274 "maxval-clipval+minval".
24275
24276 clip(val)
24277 The computed value in val, clipped to the minval-maxval range.
24278
24279 gammaval(gamma)
24280 The computed gamma correction value of the pixel component value,
24281 clipped to the minval-maxval range. It corresponds to the
24282 expression
24283 "pow((clipval-minval)/(maxval-minval)\,gamma)*(maxval-minval)+minval"
24284
24285 All expressions default to "clipval".
24286
24287 Commands
24288
24289 This filter supports same commands as options.
24290
24291 Examples
24292
24293 • Negate input video:
24294
24295 lutrgb="r=maxval+minval-val:g=maxval+minval-val:b=maxval+minval-val"
24296 lutyuv="y=maxval+minval-val:u=maxval+minval-val:v=maxval+minval-val"
24297
24298 The above is the same as:
24299
24300 lutrgb="r=negval:g=negval:b=negval"
24301 lutyuv="y=negval:u=negval:v=negval"
24302
24303 • Negate luminance:
24304
24305 lutyuv=y=negval
24306
24307 • Remove chroma components, turning the video into a graytone image:
24308
24309 lutyuv="u=128:v=128"
24310
24311 • Apply a luma burning effect:
24312
24313 lutyuv="y=2*val"
24314
24315 • Remove green and blue components:
24316
24317 lutrgb="g=0:b=0"
24318
24319 • Set a constant alpha channel value on input:
24320
24321 format=rgba,lutrgb=a="maxval-minval/2"
24322
24323 • Correct luminance gamma by a factor of 0.5:
24324
24325 lutyuv=y=gammaval(0.5)
24326
24327 • Discard least significant bits of luma:
24328
24329 lutyuv=y='bitand(val, 128+64+32)'
24330
24331 • Technicolor like effect:
24332
24333 lutyuv=u='(val-maxval/2)*2+maxval/2':v='(val-maxval/2)*2+maxval/2'
24334
24335 lut2, tlut2
24336 The "lut2" filter takes two input streams and outputs one stream.
24337
24338 The "tlut2" (time lut2) filter takes two consecutive frames from one
24339 single stream.
24340
24341 This filter accepts the following parameters:
24342
24343 c0 set first pixel component expression
24344
24345 c1 set second pixel component expression
24346
24347 c2 set third pixel component expression
24348
24349 c3 set fourth pixel component expression, corresponds to the alpha
24350 component
24351
24352 d set output bit depth, only available for "lut2" filter. By default
24353 is 0, which means bit depth is automatically picked from first
24354 input format.
24355
24356 The "lut2" filter also supports the framesync options.
24357
24358 Each of them specifies the expression to use for computing the lookup
24359 table for the corresponding pixel component values.
24360
24361 The exact component associated to each of the c* options depends on the
24362 format in inputs.
24363
24364 The expressions can contain the following constants:
24365
24366 w
24367 h The input width and height.
24368
24369 x The first input value for the pixel component.
24370
24371 y The second input value for the pixel component.
24372
24373 bdx The first input video bit depth.
24374
24375 bdy The second input video bit depth.
24376
24377 All expressions default to "x".
24378
24379 Commands
24380
24381 This filter supports the all above options as commands except option
24382 "d".
24383
24384 Examples
24385
24386 • Highlight differences between two RGB video streams:
24387
24388 lut2='ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,0,pow(2,bdx)-1)'
24389
24390 • Highlight differences between two YUV video streams:
24391
24392 lut2='ifnot(x-y,0,pow(2,bdx)-1):ifnot(x-y,pow(2,bdx-1),pow(2,bdx)-1):ifnot(x-y,pow(2,bdx-1),pow(2,bdx)-1)'
24393
24394 • Show max difference between two video streams:
24395
24396 lut2='if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1))):if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1))):if(lt(x,y),0,if(gt(x,y),pow(2,bdx)-1,pow(2,bdx-1)))'
24397
24398 maskedclamp
24399 Clamp the first input stream with the second input and third input
24400 stream.
24401
24402 Returns the value of first stream to be between second input stream -
24403 "undershoot" and third input stream + "overshoot".
24404
24405 This filter accepts the following options:
24406
24407 undershoot
24408 Default value is 0.
24409
24410 overshoot
24411 Default value is 0.
24412
24413 planes
24414 Set which planes will be processed as bitmap, unprocessed planes
24415 will be copied from first stream. By default value 0xf, all planes
24416 will be processed.
24417
24418 Commands
24419
24420 This filter supports the all above options as commands.
24421
24422 maskedmax
24423 Merge the second and third input stream into output stream using
24424 absolute differences between second input stream and first input stream
24425 and absolute difference between third input stream and first input
24426 stream. The picked value will be from second input stream if second
24427 absolute difference is greater than first one or from third input
24428 stream otherwise.
24429
24430 This filter accepts the following options:
24431
24432 planes
24433 Set which planes will be processed as bitmap, unprocessed planes
24434 will be copied from first stream. By default value 0xf, all planes
24435 will be processed.
24436
24437 Commands
24438
24439 This filter supports the all above options as commands.
24440
24441 maskedmerge
24442 Merge the first input stream with the second input stream using per
24443 pixel weights in the third input stream.
24444
24445 A value of 0 in the third stream pixel component means that pixel
24446 component from first stream is returned unchanged, while maximum value
24447 (eg. 255 for 8-bit videos) means that pixel component from second
24448 stream is returned unchanged. Intermediate values define the amount of
24449 merging between both input stream's pixel components.
24450
24451 This filter accepts the following options:
24452
24453 planes
24454 Set which planes will be processed as bitmap, unprocessed planes
24455 will be copied from first stream. By default value 0xf, all planes
24456 will be processed.
24457
24458 Commands
24459
24460 This filter supports the all above options as commands.
24461
24462 maskedmin
24463 Merge the second and third input stream into output stream using
24464 absolute differences between second input stream and first input stream
24465 and absolute difference between third input stream and first input
24466 stream. The picked value will be from second input stream if second
24467 absolute difference is less than first one or from third input stream
24468 otherwise.
24469
24470 This filter accepts the following options:
24471
24472 planes
24473 Set which planes will be processed as bitmap, unprocessed planes
24474 will be copied from first stream. By default value 0xf, all planes
24475 will be processed.
24476
24477 Commands
24478
24479 This filter supports the all above options as commands.
24480
24481 maskedthreshold
24482 Pick pixels comparing absolute difference of two video streams with
24483 fixed threshold.
24484
24485 If absolute difference between pixel component of first and second
24486 video stream is equal or lower than user supplied threshold than pixel
24487 component from first video stream is picked, otherwise pixel component
24488 from second video stream is picked.
24489
24490 This filter accepts the following options:
24491
24492 threshold
24493 Set threshold used when picking pixels from absolute difference
24494 from two input video streams.
24495
24496 planes
24497 Set which planes will be processed as bitmap, unprocessed planes
24498 will be copied from second stream. By default value 0xf, all
24499 planes will be processed.
24500
24501 mode
24502 Set mode of filter operation. Can be "abs" or "diff". Default is
24503 "abs".
24504
24505 Commands
24506
24507 This filter supports the all above options as commands.
24508
24509 maskfun
24510 Create mask from input video.
24511
24512 For example it is useful to create motion masks after "tblend" filter.
24513
24514 This filter accepts the following options:
24515
24516 low Set low threshold. Any pixel component lower or exact than this
24517 value will be set to 0.
24518
24519 high
24520 Set high threshold. Any pixel component higher than this value will
24521 be set to max value allowed for current pixel format.
24522
24523 planes
24524 Set planes to filter, by default all available planes are filtered.
24525
24526 fill
24527 Fill all frame pixels with this value.
24528
24529 sum Set max average pixel value for frame. If sum of all pixel
24530 components is higher that this average, output frame will be
24531 completely filled with value set by fill option. Typically useful
24532 for scene changes when used in combination with "tblend" filter.
24533
24534 Commands
24535
24536 This filter supports the all above options as commands.
24537
24538 mcdeint
24539 Apply motion-compensation deinterlacing.
24540
24541 It needs one field per frame as input and must thus be used together
24542 with yadif=1/3 or equivalent.
24543
24544 This filter is only available in ffmpeg version 4.4 or earlier.
24545
24546 This filter accepts the following options:
24547
24548 mode
24549 Set the deinterlacing mode.
24550
24551 It accepts one of the following values:
24552
24553 fast
24554 medium
24555 slow
24556 use iterative motion estimation
24557
24558 extra_slow
24559 like slow, but use multiple reference frames.
24560
24561 Default value is fast.
24562
24563 parity
24564 Set the picture field parity assumed for the input video. It must
24565 be one of the following values:
24566
24567 0, tff
24568 assume top field first
24569
24570 1, bff
24571 assume bottom field first
24572
24573 Default value is bff.
24574
24575 qp Set per-block quantization parameter (QP) used by the internal
24576 encoder.
24577
24578 Higher values should result in a smoother motion vector field but
24579 less optimal individual vectors. Default value is 1.
24580
24581 median
24582 Pick median pixel from certain rectangle defined by radius.
24583
24584 This filter accepts the following options:
24585
24586 radius
24587 Set horizontal radius size. Default value is 1. Allowed range is
24588 integer from 1 to 127.
24589
24590 planes
24591 Set which planes to process. Default is 15, which is all available
24592 planes.
24593
24594 radiusV
24595 Set vertical radius size. Default value is 0. Allowed range is
24596 integer from 0 to 127. If it is 0, value will be picked from
24597 horizontal "radius" option.
24598
24599 percentile
24600 Set median percentile. Default value is 0.5. Default value of 0.5
24601 will pick always median values, while 0 will pick minimum values,
24602 and 1 maximum values.
24603
24604 Commands
24605
24606 This filter supports same commands as options. The command accepts the
24607 same syntax of the corresponding option.
24608
24609 If the specified expression is not valid, it is kept at its current
24610 value.
24611
24612 mergeplanes
24613 Merge color channel components from several video streams.
24614
24615 The filter accepts up to 4 input streams, and merge selected input
24616 planes to the output video.
24617
24618 This filter accepts the following options:
24619
24620 mapping
24621 Set input to output plane mapping. Default is 0.
24622
24623 The mappings is specified as a bitmap. It should be specified as a
24624 hexadecimal number in the form 0xAa[Bb[Cc[Dd]]]. 'Aa' describes the
24625 mapping for the first plane of the output stream. 'A' sets the
24626 number of the input stream to use (from 0 to 3), and 'a' the plane
24627 number of the corresponding input to use (from 0 to 3). The rest of
24628 the mappings is similar, 'Bb' describes the mapping for the output
24629 stream second plane, 'Cc' describes the mapping for the output
24630 stream third plane and 'Dd' describes the mapping for the output
24631 stream fourth plane.
24632
24633 format
24634 Set output pixel format. Default is "yuva444p".
24635
24636 map0s
24637 map1s
24638 map2s
24639 map3s
24640 Set input to output stream mapping for output Nth plane. Default is
24641 0.
24642
24643 map0p
24644 map1p
24645 map2p
24646 map3p
24647 Set input to output plane mapping for output Nth plane. Default is
24648 0.
24649
24650 Examples
24651
24652 • Merge three gray video streams of same width and height into single
24653 video stream:
24654
24655 [a0][a1][a2]mergeplanes=0x001020:yuv444p
24656
24657 • Merge 1st yuv444p stream and 2nd gray video stream into yuva444p
24658 video stream:
24659
24660 [a0][a1]mergeplanes=0x00010210:yuva444p
24661
24662 • Swap Y and A plane in yuva444p stream:
24663
24664 format=yuva444p,mergeplanes=0x03010200:yuva444p
24665
24666 • Swap U and V plane in yuv420p stream:
24667
24668 format=yuv420p,mergeplanes=0x000201:yuv420p
24669
24670 • Cast a rgb24 clip to yuv444p:
24671
24672 format=rgb24,mergeplanes=0x000102:yuv444p
24673
24674 mestimate
24675 Estimate and export motion vectors using block matching algorithms.
24676 Motion vectors are stored in frame side data to be used by other
24677 filters.
24678
24679 This filter accepts the following options:
24680
24681 method
24682 Specify the motion estimation method. Accepts one of the following
24683 values:
24684
24685 esa Exhaustive search algorithm.
24686
24687 tss Three step search algorithm.
24688
24689 tdls
24690 Two dimensional logarithmic search algorithm.
24691
24692 ntss
24693 New three step search algorithm.
24694
24695 fss Four step search algorithm.
24696
24697 ds Diamond search algorithm.
24698
24699 hexbs
24700 Hexagon-based search algorithm.
24701
24702 epzs
24703 Enhanced predictive zonal search algorithm.
24704
24705 umh Uneven multi-hexagon search algorithm.
24706
24707 Default value is esa.
24708
24709 mb_size
24710 Macroblock size. Default 16.
24711
24712 search_param
24713 Search parameter. Default 7.
24714
24715 midequalizer
24716 Apply Midway Image Equalization effect using two video streams.
24717
24718 Midway Image Equalization adjusts a pair of images to have the same
24719 histogram, while maintaining their dynamics as much as possible. It's
24720 useful for e.g. matching exposures from a pair of stereo cameras.
24721
24722 This filter has two inputs and one output, which must be of same pixel
24723 format, but may be of different sizes. The output of filter is first
24724 input adjusted with midway histogram of both inputs.
24725
24726 This filter accepts the following option:
24727
24728 planes
24729 Set which planes to process. Default is 15, which is all available
24730 planes.
24731
24732 minterpolate
24733 Convert the video to specified frame rate using motion interpolation.
24734
24735 This filter accepts the following options:
24736
24737 fps Specify the output frame rate. This can be rational e.g.
24738 "60000/1001". Frames are dropped if fps is lower than source fps.
24739 Default 60.
24740
24741 mi_mode
24742 Motion interpolation mode. Following values are accepted:
24743
24744 dup Duplicate previous or next frame for interpolating new ones.
24745
24746 blend
24747 Blend source frames. Interpolated frame is mean of previous and
24748 next frames.
24749
24750 mci Motion compensated interpolation. Following options are
24751 effective when this mode is selected:
24752
24753 mc_mode
24754 Motion compensation mode. Following values are accepted:
24755
24756 obmc
24757 Overlapped block motion compensation.
24758
24759 aobmc
24760 Adaptive overlapped block motion compensation. Window
24761 weighting coefficients are controlled adaptively
24762 according to the reliabilities of the neighboring
24763 motion vectors to reduce oversmoothing.
24764
24765 Default mode is obmc.
24766
24767 me_mode
24768 Motion estimation mode. Following values are accepted:
24769
24770 bidir
24771 Bidirectional motion estimation. Motion vectors are
24772 estimated for each source frame in both forward and
24773 backward directions.
24774
24775 bilat
24776 Bilateral motion estimation. Motion vectors are
24777 estimated directly for interpolated frame.
24778
24779 Default mode is bilat.
24780
24781 me The algorithm to be used for motion estimation. Following
24782 values are accepted:
24783
24784 esa Exhaustive search algorithm.
24785
24786 tss Three step search algorithm.
24787
24788 tdls
24789 Two dimensional logarithmic search algorithm.
24790
24791 ntss
24792 New three step search algorithm.
24793
24794 fss Four step search algorithm.
24795
24796 ds Diamond search algorithm.
24797
24798 hexbs
24799 Hexagon-based search algorithm.
24800
24801 epzs
24802 Enhanced predictive zonal search algorithm.
24803
24804 umh Uneven multi-hexagon search algorithm.
24805
24806 Default algorithm is epzs.
24807
24808 mb_size
24809 Macroblock size. Default 16.
24810
24811 search_param
24812 Motion estimation search parameter. Default 32.
24813
24814 vsbmc
24815 Enable variable-size block motion compensation. Motion
24816 estimation is applied with smaller block sizes at object
24817 boundaries in order to make the them less blur. Default is
24818 0 (disabled).
24819
24820 scd Scene change detection method. Scene change leads motion vectors to
24821 be in random direction. Scene change detection replace interpolated
24822 frames by duplicate ones. May not be needed for other modes.
24823 Following values are accepted:
24824
24825 none
24826 Disable scene change detection.
24827
24828 fdiff
24829 Frame difference. Corresponding pixel values are compared and
24830 if it satisfies scd_threshold scene change is detected.
24831
24832 Default method is fdiff.
24833
24834 scd_threshold
24835 Scene change detection threshold. Default is 10..
24836
24837 mix
24838 Mix several video input streams into one video stream.
24839
24840 A description of the accepted options follows.
24841
24842 inputs
24843 The number of inputs. If unspecified, it defaults to 2.
24844
24845 weights
24846 Specify weight of each input video stream as sequence. Each weight
24847 is separated by space. If number of weights is smaller than number
24848 of frames last specified weight will be used for all remaining
24849 unset weights.
24850
24851 scale
24852 Specify scale, if it is set it will be multiplied with sum of each
24853 weight multiplied with pixel values to give final destination pixel
24854 value. By default scale is auto scaled to sum of weights.
24855
24856 planes
24857 Set which planes to filter. Default is all. Allowed range is from 0
24858 to 15.
24859
24860 duration
24861 Specify how end of stream is determined.
24862
24863 longest
24864 The duration of the longest input. (default)
24865
24866 shortest
24867 The duration of the shortest input.
24868
24869 first
24870 The duration of the first input.
24871
24872 Commands
24873
24874 This filter supports the following commands:
24875
24876 weights
24877 scale
24878 planes
24879 Syntax is same as option with same name.
24880
24881 monochrome
24882 Convert video to gray using custom color filter.
24883
24884 A description of the accepted options follows.
24885
24886 cb Set the chroma blue spot. Allowed range is from -1 to 1. Default
24887 value is 0.
24888
24889 cr Set the chroma red spot. Allowed range is from -1 to 1. Default
24890 value is 0.
24891
24892 size
24893 Set the color filter size. Allowed range is from .1 to 10. Default
24894 value is 1.
24895
24896 high
24897 Set the highlights strength. Allowed range is from 0 to 1. Default
24898 value is 0.
24899
24900 Commands
24901
24902 This filter supports the all above options as commands.
24903
24904 morpho
24905 This filter allows to apply main morphological grayscale transforms,
24906 erode and dilate with arbitrary structures set in second input stream.
24907
24908 Unlike naive implementation and much slower performance in erosion and
24909 dilation filters, when speed is critical "morpho" filter should be used
24910 instead.
24911
24912 A description of accepted options follows,
24913
24914 mode
24915 Set morphological transform to apply, can be:
24916
24917 erode
24918 dilate
24919 open
24920 close
24921 gradient
24922 tophat
24923 blackhat
24924
24925 Default is "erode".
24926
24927 planes
24928 Set planes to filter, by default all planes except alpha are
24929 filtered.
24930
24931 structure
24932 Set which structure video frames will be processed from second
24933 input stream, can be first or all. Default is all.
24934
24935 The "morpho" filter also supports the framesync options.
24936
24937 Commands
24938
24939 This filter supports same commands as options.
24940
24941 mpdecimate
24942 Drop frames that do not differ greatly from the previous frame in order
24943 to reduce frame rate.
24944
24945 The main use of this filter is for very-low-bitrate encoding (e.g.
24946 streaming over dialup modem), but it could in theory be used for fixing
24947 movies that were inverse-telecined incorrectly.
24948
24949 A description of the accepted options follows.
24950
24951 max Set the maximum number of consecutive frames which can be dropped
24952 (if positive), or the minimum interval between dropped frames (if
24953 negative). If the value is 0, the frame is dropped disregarding the
24954 number of previous sequentially dropped frames.
24955
24956 Default value is 0.
24957
24958 hi
24959 lo
24960 frac
24961 Set the dropping threshold values.
24962
24963 Values for hi and lo are for 8x8 pixel blocks and represent actual
24964 pixel value differences, so a threshold of 64 corresponds to 1 unit
24965 of difference for each pixel, or the same spread out differently
24966 over the block.
24967
24968 A frame is a candidate for dropping if no 8x8 blocks differ by more
24969 than a threshold of hi, and if no more than frac blocks (1 meaning
24970 the whole image) differ by more than a threshold of lo.
24971
24972 Default value for hi is 64*12, default value for lo is 64*5, and
24973 default value for frac is 0.33.
24974
24975 msad
24976 Obtain the MSAD (Mean Sum of Absolute Differences) between two input
24977 videos.
24978
24979 This filter takes two input videos.
24980
24981 Both input videos must have the same resolution and pixel format for
24982 this filter to work correctly. Also it assumes that both inputs have
24983 the same number of frames, which are compared one by one.
24984
24985 The obtained per component, average, min and max MSAD is printed
24986 through the logging system.
24987
24988 The filter stores the calculated MSAD of each frame in frame metadata.
24989
24990 This filter also supports the framesync options.
24991
24992 In the below example the input file main.mpg being processed is
24993 compared with the reference file ref.mpg.
24994
24995 ffmpeg -i main.mpg -i ref.mpg -lavfi msad -f null -
24996
24997 multiply
24998 Multiply first video stream pixels values with second video stream
24999 pixels values.
25000
25001 The filter accepts the following options:
25002
25003 scale
25004 Set the scale applied to second video stream. By default is 1.
25005 Allowed range is from 0 to 9.
25006
25007 offset
25008 Set the offset applied to second video stream. By default is 0.5.
25009 Allowed range is from -1 to 1.
25010
25011 planes
25012 Specify planes from input video stream that will be processed. By
25013 default all planes are processed.
25014
25015 Commands
25016
25017 This filter supports same commands as options.
25018
25019 negate
25020 Negate (invert) the input video.
25021
25022 It accepts the following option:
25023
25024 components
25025 Set components to negate.
25026
25027 Available values for components are:
25028
25029 y
25030 u
25031 v
25032 a
25033 r
25034 g
25035 b
25036 negate_alpha
25037 With value 1, it negates the alpha component, if present. Default
25038 value is 0.
25039
25040 Commands
25041
25042 This filter supports same commands as options.
25043
25044 nlmeans
25045 Denoise frames using Non-Local Means algorithm.
25046
25047 Each pixel is adjusted by looking for other pixels with similar
25048 contexts. This context similarity is defined by comparing their
25049 surrounding patches of size pxp. Patches are searched in an area of rxr
25050 around the pixel.
25051
25052 Note that the research area defines centers for patches, which means
25053 some patches will be made of pixels outside that research area.
25054
25055 The filter accepts the following options.
25056
25057 s Set denoising strength. Default is 1.0. Must be in range [1.0,
25058 30.0].
25059
25060 p Set patch size. Default is 7. Must be odd number in range [0, 99].
25061
25062 pc Same as p but for chroma planes.
25063
25064 The default value is 0 and means automatic.
25065
25066 r Set research size. Default is 15. Must be odd number in range [0,
25067 99].
25068
25069 rc Same as r but for chroma planes.
25070
25071 The default value is 0 and means automatic.
25072
25073 nnedi
25074 Deinterlace video using neural network edge directed interpolation.
25075
25076 This filter accepts the following options:
25077
25078 weights
25079 Mandatory option, without binary file filter can not work.
25080 Currently file can be found here:
25081 https://github.com/dubhater/vapoursynth-nnedi3/blob/master/src/nnedi3_weights.bin
25082
25083 deint
25084 Set which frames to deinterlace, by default it is "all". Can be
25085 "all" or "interlaced".
25086
25087 field
25088 Set mode of operation.
25089
25090 Can be one of the following:
25091
25092 af Use frame flags, both fields.
25093
25094 a Use frame flags, single field.
25095
25096 t Use top field only.
25097
25098 b Use bottom field only.
25099
25100 tf Use both fields, top first.
25101
25102 bf Use both fields, bottom first.
25103
25104 planes
25105 Set which planes to process, by default filter process all frames.
25106
25107 nsize
25108 Set size of local neighborhood around each pixel, used by the
25109 predictor neural network.
25110
25111 Can be one of the following:
25112
25113 s8x6
25114 s16x6
25115 s32x6
25116 s48x6
25117 s8x4
25118 s16x4
25119 s32x4
25120 nns Set the number of neurons in predictor neural network. Can be one
25121 of the following:
25122
25123 n16
25124 n32
25125 n64
25126 n128
25127 n256
25128 qual
25129 Controls the number of different neural network predictions that
25130 are blended together to compute the final output value. Can be
25131 "fast", default or "slow".
25132
25133 etype
25134 Set which set of weights to use in the predictor. Can be one of
25135 the following:
25136
25137 a, abs
25138 weights trained to minimize absolute error
25139
25140 s, mse
25141 weights trained to minimize squared error
25142
25143 pscrn
25144 Controls whether or not the prescreener neural network is used to
25145 decide which pixels should be processed by the predictor neural
25146 network and which can be handled by simple cubic interpolation.
25147 The prescreener is trained to know whether cubic interpolation will
25148 be sufficient for a pixel or whether it should be predicted by the
25149 predictor nn. The computational complexity of the prescreener nn
25150 is much less than that of the predictor nn. Since most pixels can
25151 be handled by cubic interpolation, using the prescreener generally
25152 results in much faster processing. The prescreener is pretty
25153 accurate, so the difference between using it and not using it is
25154 almost always unnoticeable.
25155
25156 Can be one of the following:
25157
25158 none
25159 original
25160 new
25161 new2
25162 new3
25163
25164 Default is "new".
25165
25166 Commands
25167
25168 This filter supports same commands as options, excluding weights
25169 option.
25170
25171 noformat
25172 Force libavfilter not to use any of the specified pixel formats for the
25173 input to the next filter.
25174
25175 It accepts the following parameters:
25176
25177 pix_fmts
25178 A '|'-separated list of pixel format names, such as
25179 pix_fmts=yuv420p|monow|rgb24".
25180
25181 Examples
25182
25183 • Force libavfilter to use a format different from yuv420p for the
25184 input to the vflip filter:
25185
25186 noformat=pix_fmts=yuv420p,vflip
25187
25188 • Convert the input video to any of the formats not contained in the
25189 list:
25190
25191 noformat=yuv420p|yuv444p|yuv410p
25192
25193 noise
25194 Add noise on video input frame.
25195
25196 The filter accepts the following options:
25197
25198 all_seed
25199 c0_seed
25200 c1_seed
25201 c2_seed
25202 c3_seed
25203 Set noise seed for specific pixel component or all pixel components
25204 in case of all_seed. Default value is 123457.
25205
25206 all_strength, alls
25207 c0_strength, c0s
25208 c1_strength, c1s
25209 c2_strength, c2s
25210 c3_strength, c3s
25211 Set noise strength for specific pixel component or all pixel
25212 components in case all_strength. Default value is 0. Allowed range
25213 is [0, 100].
25214
25215 all_flags, allf
25216 c0_flags, c0f
25217 c1_flags, c1f
25218 c2_flags, c2f
25219 c3_flags, c3f
25220 Set pixel component flags or set flags for all components if
25221 all_flags. Available values for component flags are:
25222
25223 a averaged temporal noise (smoother)
25224
25225 p mix random noise with a (semi)regular pattern
25226
25227 t temporal noise (noise pattern changes between frames)
25228
25229 u uniform noise (gaussian otherwise)
25230
25231 Examples
25232
25233 Add temporal and uniform noise to input video:
25234
25235 noise=alls=20:allf=t+u
25236
25237 normalize
25238 Normalize RGB video (aka histogram stretching, contrast stretching).
25239 See: https://en.wikipedia.org/wiki/Normalization_(image_processing)
25240
25241 For each channel of each frame, the filter computes the input range and
25242 maps it linearly to the user-specified output range. The output range
25243 defaults to the full dynamic range from pure black to pure white.
25244
25245 Temporal smoothing can be used on the input range to reduce flickering
25246 (rapid changes in brightness) caused when small dark or bright objects
25247 enter or leave the scene. This is similar to the auto-exposure
25248 (automatic gain control) on a video camera, and, like a video camera,
25249 it may cause a period of over- or under-exposure of the video.
25250
25251 The R,G,B channels can be normalized independently, which may cause
25252 some color shifting, or linked together as a single channel, which
25253 prevents color shifting. Linked normalization preserves hue.
25254 Independent normalization does not, so it can be used to remove some
25255 color casts. Independent and linked normalization can be combined in
25256 any ratio.
25257
25258 The normalize filter accepts the following options:
25259
25260 blackpt
25261 whitept
25262 Colors which define the output range. The minimum input value is
25263 mapped to the blackpt. The maximum input value is mapped to the
25264 whitept. The defaults are black and white respectively. Specifying
25265 white for blackpt and black for whitept will give color-inverted,
25266 normalized video. Shades of grey can be used to reduce the dynamic
25267 range (contrast). Specifying saturated colors here can create some
25268 interesting effects.
25269
25270 smoothing
25271 The number of previous frames to use for temporal smoothing. The
25272 input range of each channel is smoothed using a rolling average
25273 over the current frame and the smoothing previous frames. The
25274 default is 0 (no temporal smoothing).
25275
25276 independence
25277 Controls the ratio of independent (color shifting) channel
25278 normalization to linked (color preserving) normalization. 0.0 is
25279 fully linked, 1.0 is fully independent. Defaults to 1.0 (fully
25280 independent).
25281
25282 strength
25283 Overall strength of the filter. 1.0 is full strength. 0.0 is a
25284 rather expensive no-op. Defaults to 1.0 (full strength).
25285
25286 Commands
25287
25288 This filter supports same commands as options, excluding smoothing
25289 option. The command accepts the same syntax of the corresponding
25290 option.
25291
25292 If the specified expression is not valid, it is kept at its current
25293 value.
25294
25295 Examples
25296
25297 Stretch video contrast to use the full dynamic range, with no temporal
25298 smoothing; may flicker depending on the source content:
25299
25300 normalize=blackpt=black:whitept=white:smoothing=0
25301
25302 As above, but with 50 frames of temporal smoothing; flicker should be
25303 reduced, depending on the source content:
25304
25305 normalize=blackpt=black:whitept=white:smoothing=50
25306
25307 As above, but with hue-preserving linked channel normalization:
25308
25309 normalize=blackpt=black:whitept=white:smoothing=50:independence=0
25310
25311 As above, but with half strength:
25312
25313 normalize=blackpt=black:whitept=white:smoothing=50:independence=0:strength=0.5
25314
25315 Map the darkest input color to red, the brightest input color to cyan:
25316
25317 normalize=blackpt=red:whitept=cyan
25318
25319 null
25320 Pass the video source unchanged to the output.
25321
25322 ocr
25323 Optical Character Recognition
25324
25325 This filter uses Tesseract for optical character recognition. To enable
25326 compilation of this filter, you need to configure FFmpeg with
25327 "--enable-libtesseract".
25328
25329 It accepts the following options:
25330
25331 datapath
25332 Set datapath to tesseract data. Default is to use whatever was set
25333 at installation.
25334
25335 language
25336 Set language, default is "eng".
25337
25338 whitelist
25339 Set character whitelist.
25340
25341 blacklist
25342 Set character blacklist.
25343
25344 The filter exports recognized text as the frame metadata
25345 "lavfi.ocr.text". The filter exports confidence of recognized words as
25346 the frame metadata "lavfi.ocr.confidence".
25347
25348 ocv
25349 Apply a video transform using libopencv.
25350
25351 To enable this filter, install the libopencv library and headers and
25352 configure FFmpeg with "--enable-libopencv".
25353
25354 It accepts the following parameters:
25355
25356 filter_name
25357 The name of the libopencv filter to apply.
25358
25359 filter_params
25360 The parameters to pass to the libopencv filter. If not specified,
25361 the default values are assumed.
25362
25363 Refer to the official libopencv documentation for more precise
25364 information:
25365 <http://docs.opencv.org/master/modules/imgproc/doc/filtering.html>
25366
25367 Several libopencv filters are supported; see the following subsections.
25368
25369 dilate
25370
25371 Dilate an image by using a specific structuring element. It
25372 corresponds to the libopencv function "cvDilate".
25373
25374 It accepts the parameters: struct_el|nb_iterations.
25375
25376 struct_el represents a structuring element, and has the syntax:
25377 colsxrows+anchor_xxanchor_y/shape
25378
25379 cols and rows represent the number of columns and rows of the
25380 structuring element, anchor_x and anchor_y the anchor point, and shape
25381 the shape for the structuring element. shape must be "rect", "cross",
25382 "ellipse", or "custom".
25383
25384 If the value for shape is "custom", it must be followed by a string of
25385 the form "=filename". The file with name filename is assumed to
25386 represent a binary image, with each printable character corresponding
25387 to a bright pixel. When a custom shape is used, cols and rows are
25388 ignored, the number or columns and rows of the read file are assumed
25389 instead.
25390
25391 The default value for struct_el is "3x3+0x0/rect".
25392
25393 nb_iterations specifies the number of times the transform is applied to
25394 the image, and defaults to 1.
25395
25396 Some examples:
25397
25398 # Use the default values
25399 ocv=dilate
25400
25401 # Dilate using a structuring element with a 5x5 cross, iterating two times
25402 ocv=filter_name=dilate:filter_params=5x5+2x2/cross|2
25403
25404 # Read the shape from the file diamond.shape, iterating two times.
25405 # The file diamond.shape may contain a pattern of characters like this
25406 # *
25407 # ***
25408 # *****
25409 # ***
25410 # *
25411 # The specified columns and rows are ignored
25412 # but the anchor point coordinates are not
25413 ocv=dilate:0x0+2x2/custom=diamond.shape|2
25414
25415 erode
25416
25417 Erode an image by using a specific structuring element. It corresponds
25418 to the libopencv function "cvErode".
25419
25420 It accepts the parameters: struct_el:nb_iterations, with the same
25421 syntax and semantics as the dilate filter.
25422
25423 smooth
25424
25425 Smooth the input video.
25426
25427 The filter takes the following parameters:
25428 type|param1|param2|param3|param4.
25429
25430 type is the type of smooth filter to apply, and must be one of the
25431 following values: "blur", "blur_no_scale", "median", "gaussian", or
25432 "bilateral". The default value is "gaussian".
25433
25434 The meaning of param1, param2, param3, and param4 depends on the smooth
25435 type. param1 and param2 accept integer positive values or 0. param3 and
25436 param4 accept floating point values.
25437
25438 The default value for param1 is 3. The default value for the other
25439 parameters is 0.
25440
25441 These parameters correspond to the parameters assigned to the libopencv
25442 function "cvSmooth".
25443
25444 oscilloscope
25445 2D Video Oscilloscope.
25446
25447 Useful to measure spatial impulse, step responses, chroma delays, etc.
25448
25449 It accepts the following parameters:
25450
25451 x Set scope center x position.
25452
25453 y Set scope center y position.
25454
25455 s Set scope size, relative to frame diagonal.
25456
25457 t Set scope tilt/rotation.
25458
25459 o Set trace opacity.
25460
25461 tx Set trace center x position.
25462
25463 ty Set trace center y position.
25464
25465 tw Set trace width, relative to width of frame.
25466
25467 th Set trace height, relative to height of frame.
25468
25469 c Set which components to trace. By default it traces first three
25470 components.
25471
25472 g Draw trace grid. By default is enabled.
25473
25474 st Draw some statistics. By default is enabled.
25475
25476 sc Draw scope. By default is enabled.
25477
25478 Commands
25479
25480 This filter supports same commands as options. The command accepts the
25481 same syntax of the corresponding option.
25482
25483 If the specified expression is not valid, it is kept at its current
25484 value.
25485
25486 Examples
25487
25488 • Inspect full first row of video frame.
25489
25490 oscilloscope=x=0.5:y=0:s=1
25491
25492 • Inspect full last row of video frame.
25493
25494 oscilloscope=x=0.5:y=1:s=1
25495
25496 • Inspect full 5th line of video frame of height 1080.
25497
25498 oscilloscope=x=0.5:y=5/1080:s=1
25499
25500 • Inspect full last column of video frame.
25501
25502 oscilloscope=x=1:y=0.5:s=1:t=1
25503
25504 overlay
25505 Overlay one video on top of another.
25506
25507 It takes two inputs and has one output. The first input is the "main"
25508 video on which the second input is overlaid.
25509
25510 It accepts the following parameters:
25511
25512 A description of the accepted options follows.
25513
25514 x
25515 y Set the expression for the x and y coordinates of the overlaid
25516 video on the main video. Default value is "0" for both expressions.
25517 In case the expression is invalid, it is set to a huge value
25518 (meaning that the overlay will not be displayed within the output
25519 visible area).
25520
25521 eof_action
25522 See framesync.
25523
25524 eval
25525 Set when the expressions for x, and y are evaluated.
25526
25527 It accepts the following values:
25528
25529 init
25530 only evaluate expressions once during the filter initialization
25531 or when a command is processed
25532
25533 frame
25534 evaluate expressions for each incoming frame
25535
25536 Default value is frame.
25537
25538 shortest
25539 See framesync.
25540
25541 format
25542 Set the format for the output video.
25543
25544 It accepts the following values:
25545
25546 yuv420
25547 force YUV420 output
25548
25549 yuv420p10
25550 force YUV420p10 output
25551
25552 yuv422
25553 force YUV422 output
25554
25555 yuv422p10
25556 force YUV422p10 output
25557
25558 yuv444
25559 force YUV444 output
25560
25561 rgb force packed RGB output
25562
25563 gbrp
25564 force planar RGB output
25565
25566 auto
25567 automatically pick format
25568
25569 Default value is yuv420.
25570
25571 repeatlast
25572 See framesync.
25573
25574 alpha
25575 Set format of alpha of the overlaid video, it can be straight or
25576 premultiplied. Default is straight.
25577
25578 The x, and y expressions can contain the following parameters.
25579
25580 main_w, W
25581 main_h, H
25582 The main input width and height.
25583
25584 overlay_w, w
25585 overlay_h, h
25586 The overlay input width and height.
25587
25588 x
25589 y The computed values for x and y. They are evaluated for each new
25590 frame.
25591
25592 hsub
25593 vsub
25594 horizontal and vertical chroma subsample values of the output
25595 format. For example for the pixel format "yuv422p" hsub is 2 and
25596 vsub is 1.
25597
25598 n the number of input frame, starting from 0
25599
25600 pos the position in the file of the input frame, NAN if unknown
25601
25602 t The timestamp, expressed in seconds. It's NAN if the input
25603 timestamp is unknown.
25604
25605 This filter also supports the framesync options.
25606
25607 Note that the n, pos, t variables are available only when evaluation is
25608 done per frame, and will evaluate to NAN when eval is set to init.
25609
25610 Be aware that frames are taken from each input video in timestamp
25611 order, hence, if their initial timestamps differ, it is a good idea to
25612 pass the two inputs through a setpts=PTS-STARTPTS filter to have them
25613 begin in the same zero timestamp, as the example for the movie filter
25614 does.
25615
25616 You can chain together more overlays but you should test the efficiency
25617 of such approach.
25618
25619 Commands
25620
25621 This filter supports the following commands:
25622
25623 x
25624 y Modify the x and y of the overlay input. The command accepts the
25625 same syntax of the corresponding option.
25626
25627 If the specified expression is not valid, it is kept at its current
25628 value.
25629
25630 Examples
25631
25632 • Draw the overlay at 10 pixels from the bottom right corner of the
25633 main video:
25634
25635 overlay=main_w-overlay_w-10:main_h-overlay_h-10
25636
25637 Using named options the example above becomes:
25638
25639 overlay=x=main_w-overlay_w-10:y=main_h-overlay_h-10
25640
25641 • Insert a transparent PNG logo in the bottom left corner of the
25642 input, using the ffmpeg tool with the "-filter_complex" option:
25643
25644 ffmpeg -i input -i logo -filter_complex 'overlay=10:main_h-overlay_h-10' output
25645
25646 • Insert 2 different transparent PNG logos (second logo on bottom
25647 right corner) using the ffmpeg tool:
25648
25649 ffmpeg -i input -i logo1 -i logo2 -filter_complex 'overlay=x=10:y=H-h-10,overlay=x=W-w-10:y=H-h-10' output
25650
25651 • Add a transparent color layer on top of the main video; "WxH" must
25652 specify the size of the main input to the overlay filter:
25653
25654 color=color=red@.3:size=WxH [over]; [in][over] overlay [out]
25655
25656 • Play an original video and a filtered version (here with the
25657 deshake filter) side by side using the ffplay tool:
25658
25659 ffplay input.avi -vf 'split[a][b]; [a]pad=iw*2:ih[src]; [b]deshake[filt]; [src][filt]overlay=w'
25660
25661 The above command is the same as:
25662
25663 ffplay input.avi -vf 'split[b], pad=iw*2[src], [b]deshake, [src]overlay=w'
25664
25665 • Make a sliding overlay appearing from the left to the right top
25666 part of the screen starting since time 2:
25667
25668 overlay=x='if(gte(t,2), -w+(t-2)*20, NAN)':y=0
25669
25670 • Compose output by putting two input videos side to side:
25671
25672 ffmpeg -i left.avi -i right.avi -filter_complex "
25673 nullsrc=size=200x100 [background];
25674 [0:v] setpts=PTS-STARTPTS, scale=100x100 [left];
25675 [1:v] setpts=PTS-STARTPTS, scale=100x100 [right];
25676 [background][left] overlay=shortest=1 [background+left];
25677 [background+left][right] overlay=shortest=1:x=100 [left+right]
25678 "
25679
25680 • Mask 10-20 seconds of a video by applying the delogo filter to a
25681 section
25682
25683 ffmpeg -i test.avi -codec:v:0 wmv2 -ar 11025 -b:v 9000k
25684 -vf '[in]split[split_main][split_delogo];[split_delogo]trim=start=360:end=371,delogo=0:0:640:480[delogoed];[split_main][delogoed]overlay=eof_action=pass[out]'
25685 masked.avi
25686
25687 • Chain several overlays in cascade:
25688
25689 nullsrc=s=200x200 [bg];
25690 testsrc=s=100x100, split=4 [in0][in1][in2][in3];
25691 [in0] lutrgb=r=0, [bg] overlay=0:0 [mid0];
25692 [in1] lutrgb=g=0, [mid0] overlay=100:0 [mid1];
25693 [in2] lutrgb=b=0, [mid1] overlay=0:100 [mid2];
25694 [in3] null, [mid2] overlay=100:100 [out0]
25695
25696 overlay_cuda
25697 Overlay one video on top of another.
25698
25699 This is the CUDA variant of the overlay filter. It only accepts CUDA
25700 frames. The underlying input pixel formats have to match.
25701
25702 It takes two inputs and has one output. The first input is the "main"
25703 video on which the second input is overlaid.
25704
25705 It accepts the following parameters:
25706
25707 x
25708 y Set expressions for the x and y coordinates of the overlaid video
25709 on the main video.
25710
25711 They can contain the following parameters:
25712
25713 main_w, W
25714 main_h, H
25715 The main input width and height.
25716
25717 overlay_w, w
25718 overlay_h, h
25719 The overlay input width and height.
25720
25721 x
25722 y The computed values for x and y. They are evaluated for each
25723 new frame.
25724
25725 n The ordinal index of the main input frame, starting from 0.
25726
25727 pos The byte offset position in the file of the main input frame,
25728 NAN if unknown.
25729
25730 t The timestamp of the main input frame, expressed in seconds,
25731 NAN if unknown.
25732
25733 Default value is "0" for both expressions.
25734
25735 eval
25736 Set when the expressions for x and y are evaluated.
25737
25738 It accepts the following values:
25739
25740 init
25741 Evaluate expressions once during filter initialization or when
25742 a command is processed.
25743
25744 frame
25745 Evaluate expressions for each incoming frame
25746
25747 Default value is frame.
25748
25749 eof_action
25750 See framesync.
25751
25752 shortest
25753 See framesync.
25754
25755 repeatlast
25756 See framesync.
25757
25758 This filter also supports the framesync options.
25759
25760 owdenoise
25761 Apply Overcomplete Wavelet denoiser.
25762
25763 The filter accepts the following options:
25764
25765 depth
25766 Set depth.
25767
25768 Larger depth values will denoise lower frequency components more,
25769 but slow down filtering.
25770
25771 Must be an int in the range 8-16, default is 8.
25772
25773 luma_strength, ls
25774 Set luma strength.
25775
25776 Must be a double value in the range 0-1000, default is 1.0.
25777
25778 chroma_strength, cs
25779 Set chroma strength.
25780
25781 Must be a double value in the range 0-1000, default is 1.0.
25782
25783 pad
25784 Add paddings to the input image, and place the original input at the
25785 provided x, y coordinates.
25786
25787 It accepts the following parameters:
25788
25789 width, w
25790 height, h
25791 Specify an expression for the size of the output image with the
25792 paddings added. If the value for width or height is 0, the
25793 corresponding input size is used for the output.
25794
25795 The width expression can reference the value set by the height
25796 expression, and vice versa.
25797
25798 The default value of width and height is 0.
25799
25800 x
25801 y Specify the offsets to place the input image at within the padded
25802 area, with respect to the top/left border of the output image.
25803
25804 The x expression can reference the value set by the y expression,
25805 and vice versa.
25806
25807 The default value of x and y is 0.
25808
25809 If x or y evaluate to a negative number, they'll be changed so the
25810 input image is centered on the padded area.
25811
25812 color
25813 Specify the color of the padded area. For the syntax of this
25814 option, check the "Color" section in the ffmpeg-utils manual.
25815
25816 The default value of color is "black".
25817
25818 eval
25819 Specify when to evaluate width, height, x and y expression.
25820
25821 It accepts the following values:
25822
25823 init
25824 Only evaluate expressions once during the filter initialization
25825 or when a command is processed.
25826
25827 frame
25828 Evaluate expressions for each incoming frame.
25829
25830 Default value is init.
25831
25832 aspect
25833 Pad to aspect instead to a resolution.
25834
25835 The value for the width, height, x, and y options are expressions
25836 containing the following constants:
25837
25838 in_w
25839 in_h
25840 The input video width and height.
25841
25842 iw
25843 ih These are the same as in_w and in_h.
25844
25845 out_w
25846 out_h
25847 The output width and height (the size of the padded area), as
25848 specified by the width and height expressions.
25849
25850 ow
25851 oh These are the same as out_w and out_h.
25852
25853 x
25854 y The x and y offsets as specified by the x and y expressions, or NAN
25855 if not yet specified.
25856
25857 a same as iw / ih
25858
25859 sar input sample aspect ratio
25860
25861 dar input display aspect ratio, it is the same as (iw / ih) * sar
25862
25863 hsub
25864 vsub
25865 The horizontal and vertical chroma subsample values. For example
25866 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
25867
25868 Examples
25869
25870 • Add paddings with the color "violet" to the input video. The output
25871 video size is 640x480, and the top-left corner of the input video
25872 is placed at column 0, row 40
25873
25874 pad=640:480:0:40:violet
25875
25876 The example above is equivalent to the following command:
25877
25878 pad=width=640:height=480:x=0:y=40:color=violet
25879
25880 • Pad the input to get an output with dimensions increased by 3/2,
25881 and put the input video at the center of the padded area:
25882
25883 pad="3/2*iw:3/2*ih:(ow-iw)/2:(oh-ih)/2"
25884
25885 • Pad the input to get a squared output with size equal to the
25886 maximum value between the input width and height, and put the input
25887 video at the center of the padded area:
25888
25889 pad="max(iw\,ih):ow:(ow-iw)/2:(oh-ih)/2"
25890
25891 • Pad the input to get a final w/h ratio of 16:9:
25892
25893 pad="ih*16/9:ih:(ow-iw)/2:(oh-ih)/2"
25894
25895 • In case of anamorphic video, in order to set the output display
25896 aspect correctly, it is necessary to use sar in the expression,
25897 according to the relation:
25898
25899 (ih * X / ih) * sar = output_dar
25900 X = output_dar / sar
25901
25902 Thus the previous example needs to be modified to:
25903
25904 pad="ih*16/9/sar:ih:(ow-iw)/2:(oh-ih)/2"
25905
25906 • Double the output size and put the input video in the bottom-right
25907 corner of the output padded area:
25908
25909 pad="2*iw:2*ih:ow-iw:oh-ih"
25910
25911 palettegen
25912 Generate one palette for a whole video stream.
25913
25914 It accepts the following options:
25915
25916 max_colors
25917 Set the maximum number of colors to quantize in the palette. Note:
25918 the palette will still contain 256 colors; the unused palette
25919 entries will be black.
25920
25921 reserve_transparent
25922 Create a palette of 255 colors maximum and reserve the last one for
25923 transparency. Reserving the transparency color is useful for GIF
25924 optimization. If not set, the maximum of colors in the palette
25925 will be 256. You probably want to disable this option for a
25926 standalone image. Set by default.
25927
25928 transparency_color
25929 Set the color that will be used as background for transparency.
25930
25931 stats_mode
25932 Set statistics mode.
25933
25934 It accepts the following values:
25935
25936 full
25937 Compute full frame histograms.
25938
25939 diff
25940 Compute histograms only for the part that differs from previous
25941 frame. This might be relevant to give more importance to the
25942 moving part of your input if the background is static.
25943
25944 single
25945 Compute new histogram for each frame.
25946
25947 Default value is full.
25948
25949 The filter also exports the frame metadata "lavfi.color_quant_ratio"
25950 ("nb_color_in / nb_color_out") which you can use to evaluate the degree
25951 of color quantization of the palette. This information is also visible
25952 at info logging level.
25953
25954 Examples
25955
25956 • Generate a representative palette of a given video using ffmpeg:
25957
25958 ffmpeg -i input.mkv -vf palettegen palette.png
25959
25960 paletteuse
25961 Use a palette to downsample an input video stream.
25962
25963 The filter takes two inputs: one video stream and a palette. The
25964 palette must be a 256 pixels image.
25965
25966 It accepts the following options:
25967
25968 dither
25969 Select dithering mode. Available algorithms are:
25970
25971 bayer
25972 Ordered 8x8 bayer dithering (deterministic)
25973
25974 heckbert
25975 Dithering as defined by Paul Heckbert in 1982 (simple error
25976 diffusion). Note: this dithering is sometimes considered
25977 "wrong" and is included as a reference.
25978
25979 floyd_steinberg
25980 Floyd and Steingberg dithering (error diffusion)
25981
25982 sierra2
25983 Frankie Sierra dithering v2 (error diffusion)
25984
25985 sierra2_4a
25986 Frankie Sierra dithering v2 "Lite" (error diffusion)
25987
25988 sierra3
25989 Frankie Sierra dithering v3 (error diffusion)
25990
25991 burkes
25992 Burkes dithering (error diffusion)
25993
25994 atkinson
25995 Atkinson dithering by Bill Atkinson at Apple Computer (error
25996 diffusion)
25997
25998 Default is sierra2_4a.
25999
26000 bayer_scale
26001 When bayer dithering is selected, this option defines the scale of
26002 the pattern (how much the crosshatch pattern is visible). A low
26003 value means more visible pattern for less banding, and higher value
26004 means less visible pattern at the cost of more banding.
26005
26006 The option must be an integer value in the range [0,5]. Default is
26007 2.
26008
26009 diff_mode
26010 If set, define the zone to process
26011
26012 rectangle
26013 Only the changing rectangle will be reprocessed. This is
26014 similar to GIF cropping/offsetting compression mechanism. This
26015 option can be useful for speed if only a part of the image is
26016 changing, and has use cases such as limiting the scope of the
26017 error diffusal dither to the rectangle that bounds the moving
26018 scene (it leads to more deterministic output if the scene
26019 doesn't change much, and as a result less moving noise and
26020 better GIF compression).
26021
26022 Default is none.
26023
26024 new Take new palette for each output frame.
26025
26026 alpha_threshold
26027 Sets the alpha threshold for transparency. Alpha values above this
26028 threshold will be treated as completely opaque, and values below
26029 this threshold will be treated as completely transparent.
26030
26031 The option must be an integer value in the range [0,255]. Default
26032 is 128.
26033
26034 Examples
26035
26036 • Use a palette (generated for example with palettegen) to encode a
26037 GIF using ffmpeg:
26038
26039 ffmpeg -i input.mkv -i palette.png -lavfi paletteuse output.gif
26040
26041 perspective
26042 Correct perspective of video not recorded perpendicular to the screen.
26043
26044 A description of the accepted parameters follows.
26045
26046 x0
26047 y0
26048 x1
26049 y1
26050 x2
26051 y2
26052 x3
26053 y3 Set coordinates expression for top left, top right, bottom left and
26054 bottom right corners. Default values are "0:0:W:0:0:H:W:H" with
26055 which perspective will remain unchanged. If the "sense" option is
26056 set to "source", then the specified points will be sent to the
26057 corners of the destination. If the "sense" option is set to
26058 "destination", then the corners of the source will be sent to the
26059 specified coordinates.
26060
26061 The expressions can use the following variables:
26062
26063 W
26064 H the width and height of video frame.
26065
26066 in Input frame count.
26067
26068 on Output frame count.
26069
26070 interpolation
26071 Set interpolation for perspective correction.
26072
26073 It accepts the following values:
26074
26075 linear
26076 cubic
26077
26078 Default value is linear.
26079
26080 sense
26081 Set interpretation of coordinate options.
26082
26083 It accepts the following values:
26084
26085 0, source
26086 Send point in the source specified by the given coordinates to
26087 the corners of the destination.
26088
26089 1, destination
26090 Send the corners of the source to the point in the destination
26091 specified by the given coordinates.
26092
26093 Default value is source.
26094
26095 eval
26096 Set when the expressions for coordinates x0,y0,...x3,y3 are
26097 evaluated.
26098
26099 It accepts the following values:
26100
26101 init
26102 only evaluate expressions once during the filter initialization
26103 or when a command is processed
26104
26105 frame
26106 evaluate expressions for each incoming frame
26107
26108 Default value is init.
26109
26110 phase
26111 Delay interlaced video by one field time so that the field order
26112 changes.
26113
26114 The intended use is to fix PAL movies that have been captured with the
26115 opposite field order to the film-to-video transfer.
26116
26117 A description of the accepted parameters follows.
26118
26119 mode
26120 Set phase mode.
26121
26122 It accepts the following values:
26123
26124 t Capture field order top-first, transfer bottom-first. Filter
26125 will delay the bottom field.
26126
26127 b Capture field order bottom-first, transfer top-first. Filter
26128 will delay the top field.
26129
26130 p Capture and transfer with the same field order. This mode only
26131 exists for the documentation of the other options to refer to,
26132 but if you actually select it, the filter will faithfully do
26133 nothing.
26134
26135 a Capture field order determined automatically by field flags,
26136 transfer opposite. Filter selects among t and b modes on a
26137 frame by frame basis using field flags. If no field information
26138 is available, then this works just like u.
26139
26140 u Capture unknown or varying, transfer opposite. Filter selects
26141 among t and b on a frame by frame basis by analyzing the images
26142 and selecting the alternative that produces best match between
26143 the fields.
26144
26145 T Capture top-first, transfer unknown or varying. Filter selects
26146 among t and p using image analysis.
26147
26148 B Capture bottom-first, transfer unknown or varying. Filter
26149 selects among b and p using image analysis.
26150
26151 A Capture determined by field flags, transfer unknown or varying.
26152 Filter selects among t, b and p using field flags and image
26153 analysis. If no field information is available, then this works
26154 just like U. This is the default mode.
26155
26156 U Both capture and transfer unknown or varying. Filter selects
26157 among t, b and p using image analysis only.
26158
26159 Commands
26160
26161 This filter supports the all above options as commands.
26162
26163 photosensitivity
26164 Reduce various flashes in video, so to help users with epilepsy.
26165
26166 It accepts the following options:
26167
26168 frames, f
26169 Set how many frames to use when filtering. Default is 30.
26170
26171 threshold, t
26172 Set detection threshold factor. Default is 1. Lower is stricter.
26173
26174 skip
26175 Set how many pixels to skip when sampling frames. Default is 1.
26176 Allowed range is from 1 to 1024.
26177
26178 bypass
26179 Leave frames unchanged. Default is disabled.
26180
26181 pixdesctest
26182 Pixel format descriptor test filter, mainly useful for internal
26183 testing. The output video should be equal to the input video.
26184
26185 For example:
26186
26187 format=monow, pixdesctest
26188
26189 can be used to test the monowhite pixel format descriptor definition.
26190
26191 pixelize
26192 Apply pixelization to video stream.
26193
26194 The filter accepts the following options:
26195
26196 width, w
26197 height, h
26198 Set block dimensions that will be used for pixelization. Default
26199 value is 16.
26200
26201 mode, m
26202 Set the mode of pixelization used.
26203
26204 Possible values are:
26205
26206 avg
26207 min
26208 max
26209
26210 Default value is "avg".
26211
26212 planes, p
26213 Set what planes to filter. Default is to filter all planes.
26214
26215 Commands
26216
26217 This filter supports all options as commands.
26218
26219 pixscope
26220 Display sample values of color channels. Mainly useful for checking
26221 color and levels. Minimum supported resolution is 640x480.
26222
26223 The filters accept the following options:
26224
26225 x Set scope X position, relative offset on X axis.
26226
26227 y Set scope Y position, relative offset on Y axis.
26228
26229 w Set scope width.
26230
26231 h Set scope height.
26232
26233 o Set window opacity. This window also holds statistics about pixel
26234 area.
26235
26236 wx Set window X position, relative offset on X axis.
26237
26238 wy Set window Y position, relative offset on Y axis.
26239
26240 Commands
26241
26242 This filter supports same commands as options.
26243
26244 pp
26245 Enable the specified chain of postprocessing subfilters using
26246 libpostproc. This library should be automatically selected with a GPL
26247 build ("--enable-gpl"). Subfilters must be separated by '/' and can be
26248 disabled by prepending a '-'. Each subfilter and some options have a
26249 short and a long name that can be used interchangeably, i.e. dr/dering
26250 are the same.
26251
26252 The filters accept the following options:
26253
26254 subfilters
26255 Set postprocessing subfilters string.
26256
26257 All subfilters share common options to determine their scope:
26258
26259 a/autoq
26260 Honor the quality commands for this subfilter.
26261
26262 c/chrom
26263 Do chrominance filtering, too (default).
26264
26265 y/nochrom
26266 Do luminance filtering only (no chrominance).
26267
26268 n/noluma
26269 Do chrominance filtering only (no luminance).
26270
26271 These options can be appended after the subfilter name, separated by a
26272 '|'.
26273
26274 Available subfilters are:
26275
26276 hb/hdeblock[|difference[|flatness]]
26277 Horizontal deblocking filter
26278
26279 difference
26280 Difference factor where higher values mean more deblocking
26281 (default: 32).
26282
26283 flatness
26284 Flatness threshold where lower values mean more deblocking
26285 (default: 39).
26286
26287 vb/vdeblock[|difference[|flatness]]
26288 Vertical deblocking filter
26289
26290 difference
26291 Difference factor where higher values mean more deblocking
26292 (default: 32).
26293
26294 flatness
26295 Flatness threshold where lower values mean more deblocking
26296 (default: 39).
26297
26298 ha/hadeblock[|difference[|flatness]]
26299 Accurate horizontal deblocking filter
26300
26301 difference
26302 Difference factor where higher values mean more deblocking
26303 (default: 32).
26304
26305 flatness
26306 Flatness threshold where lower values mean more deblocking
26307 (default: 39).
26308
26309 va/vadeblock[|difference[|flatness]]
26310 Accurate vertical deblocking filter
26311
26312 difference
26313 Difference factor where higher values mean more deblocking
26314 (default: 32).
26315
26316 flatness
26317 Flatness threshold where lower values mean more deblocking
26318 (default: 39).
26319
26320 The horizontal and vertical deblocking filters share the difference and
26321 flatness values so you cannot set different horizontal and vertical
26322 thresholds.
26323
26324 h1/x1hdeblock
26325 Experimental horizontal deblocking filter
26326
26327 v1/x1vdeblock
26328 Experimental vertical deblocking filter
26329
26330 dr/dering
26331 Deringing filter
26332
26333 tn/tmpnoise[|threshold1[|threshold2[|threshold3]]], temporal noise
26334 reducer
26335 threshold1
26336 larger -> stronger filtering
26337
26338 threshold2
26339 larger -> stronger filtering
26340
26341 threshold3
26342 larger -> stronger filtering
26343
26344 al/autolevels[:f/fullyrange], automatic brightness / contrast
26345 correction
26346 f/fullyrange
26347 Stretch luminance to "0-255".
26348
26349 lb/linblenddeint
26350 Linear blend deinterlacing filter that deinterlaces the given block
26351 by filtering all lines with a "(1 2 1)" filter.
26352
26353 li/linipoldeint
26354 Linear interpolating deinterlacing filter that deinterlaces the
26355 given block by linearly interpolating every second line.
26356
26357 ci/cubicipoldeint
26358 Cubic interpolating deinterlacing filter deinterlaces the given
26359 block by cubically interpolating every second line.
26360
26361 md/mediandeint
26362 Median deinterlacing filter that deinterlaces the given block by
26363 applying a median filter to every second line.
26364
26365 fd/ffmpegdeint
26366 FFmpeg deinterlacing filter that deinterlaces the given block by
26367 filtering every second line with a "(-1 4 2 4 -1)" filter.
26368
26369 l5/lowpass5
26370 Vertically applied FIR lowpass deinterlacing filter that
26371 deinterlaces the given block by filtering all lines with a "(-1 2 6
26372 2 -1)" filter.
26373
26374 fq/forceQuant[|quantizer]
26375 Overrides the quantizer table from the input with the constant
26376 quantizer you specify.
26377
26378 quantizer
26379 Quantizer to use
26380
26381 de/default
26382 Default pp filter combination ("hb|a,vb|a,dr|a")
26383
26384 fa/fast
26385 Fast pp filter combination ("h1|a,v1|a,dr|a")
26386
26387 ac High quality pp filter combination ("ha|a|128|7,va|a,dr|a")
26388
26389 Examples
26390
26391 • Apply horizontal and vertical deblocking, deringing and automatic
26392 brightness/contrast:
26393
26394 pp=hb/vb/dr/al
26395
26396 • Apply default filters without brightness/contrast correction:
26397
26398 pp=de/-al
26399
26400 • Apply default filters and temporal denoiser:
26401
26402 pp=default/tmpnoise|1|2|3
26403
26404 • Apply deblocking on luminance only, and switch vertical deblocking
26405 on or off automatically depending on available CPU time:
26406
26407 pp=hb|y/vb|a
26408
26409 pp7
26410 Apply Postprocessing filter 7. It is variant of the spp filter, similar
26411 to spp = 6 with 7 point DCT, where only the center sample is used after
26412 IDCT.
26413
26414 The filter accepts the following options:
26415
26416 qp Force a constant quantization parameter. It accepts an integer in
26417 range 0 to 63. If not set, the filter will use the QP from the
26418 video stream (if available).
26419
26420 mode
26421 Set thresholding mode. Available modes are:
26422
26423 hard
26424 Set hard thresholding.
26425
26426 soft
26427 Set soft thresholding (better de-ringing effect, but likely
26428 blurrier).
26429
26430 medium
26431 Set medium thresholding (good results, default).
26432
26433 premultiply
26434 Apply alpha premultiply effect to input video stream using first plane
26435 of second stream as alpha.
26436
26437 Both streams must have same dimensions and same pixel format.
26438
26439 The filter accepts the following option:
26440
26441 planes
26442 Set which planes will be processed, unprocessed planes will be
26443 copied. By default value 0xf, all planes will be processed.
26444
26445 inplace
26446 Do not require 2nd input for processing, instead use alpha plane
26447 from input stream.
26448
26449 prewitt
26450 Apply prewitt operator to input video stream.
26451
26452 The filter accepts the following option:
26453
26454 planes
26455 Set which planes will be processed, unprocessed planes will be
26456 copied. By default value 0xf, all planes will be processed.
26457
26458 scale
26459 Set value which will be multiplied with filtered result.
26460
26461 delta
26462 Set value which will be added to filtered result.
26463
26464 Commands
26465
26466 This filter supports the all above options as commands.
26467
26468 pseudocolor
26469 Alter frame colors in video with pseudocolors.
26470
26471 This filter accepts the following options:
26472
26473 c0 set pixel first component expression
26474
26475 c1 set pixel second component expression
26476
26477 c2 set pixel third component expression
26478
26479 c3 set pixel fourth component expression, corresponds to the alpha
26480 component
26481
26482 index, i
26483 set component to use as base for altering colors
26484
26485 preset, p
26486 Pick one of built-in LUTs. By default is set to none.
26487
26488 Available LUTs:
26489
26490 magma
26491 inferno
26492 plasma
26493 viridis
26494 turbo
26495 cividis
26496 range1
26497 range2
26498 shadows
26499 highlights
26500 solar
26501 nominal
26502 preferred
26503 total
26504 spectral
26505 opacity
26506 Set opacity of output colors. Allowed range is from 0 to 1.
26507 Default value is set to 1.
26508
26509 Each of the expression options specifies the expression to use for
26510 computing the lookup table for the corresponding pixel component
26511 values.
26512
26513 The expressions can contain the following constants and functions:
26514
26515 w
26516 h The input width and height.
26517
26518 val The input value for the pixel component.
26519
26520 ymin, umin, vmin, amin
26521 The minimum allowed component value.
26522
26523 ymax, umax, vmax, amax
26524 The maximum allowed component value.
26525
26526 All expressions default to "val".
26527
26528 Commands
26529
26530 This filter supports the all above options as commands.
26531
26532 Examples
26533
26534 • Change too high luma values to gradient:
26535
26536 pseudocolor="'if(between(val,ymax,amax),lerp(ymin,ymax,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(umax,umin,(val-ymax)/(amax-ymax)),-1):if(between(val,ymax,amax),lerp(vmin,vmax,(val-ymax)/(amax-ymax)),-1):-1'"
26537
26538 psnr
26539 Obtain the average, maximum and minimum PSNR (Peak Signal to Noise
26540 Ratio) between two input videos.
26541
26542 This filter takes in input two input videos, the first input is
26543 considered the "main" source and is passed unchanged to the output. The
26544 second input is used as a "reference" video for computing the PSNR.
26545
26546 Both video inputs must have the same resolution and pixel format for
26547 this filter to work correctly. Also it assumes that both inputs have
26548 the same number of frames, which are compared one by one.
26549
26550 The obtained average PSNR is printed through the logging system.
26551
26552 The filter stores the accumulated MSE (mean squared error) of each
26553 frame, and at the end of the processing it is averaged across all
26554 frames equally, and the following formula is applied to obtain the
26555 PSNR:
26556
26557 PSNR = 10*log10(MAX^2/MSE)
26558
26559 Where MAX is the average of the maximum values of each component of the
26560 image.
26561
26562 The description of the accepted parameters follows.
26563
26564 stats_file, f
26565 If specified the filter will use the named file to save the PSNR of
26566 each individual frame. When filename equals "-" the data is sent to
26567 standard output.
26568
26569 stats_version
26570 Specifies which version of the stats file format to use. Details of
26571 each format are written below. Default value is 1.
26572
26573 stats_add_max
26574 Determines whether the max value is output to the stats log.
26575 Default value is 0. Requires stats_version >= 2. If this is set
26576 and stats_version < 2, the filter will return an error.
26577
26578 This filter also supports the framesync options.
26579
26580 The file printed if stats_file is selected, contains a sequence of
26581 key/value pairs of the form key:value for each compared couple of
26582 frames.
26583
26584 If a stats_version greater than 1 is specified, a header line precedes
26585 the list of per-frame-pair stats, with key value pairs following the
26586 frame format with the following parameters:
26587
26588 psnr_log_version
26589 The version of the log file format. Will match stats_version.
26590
26591 fields
26592 A comma separated list of the per-frame-pair parameters included in
26593 the log.
26594
26595 A description of each shown per-frame-pair parameter follows:
26596
26597 n sequential number of the input frame, starting from 1
26598
26599 mse_avg
26600 Mean Square Error pixel-by-pixel average difference of the compared
26601 frames, averaged over all the image components.
26602
26603 mse_y, mse_u, mse_v, mse_r, mse_g, mse_b, mse_a
26604 Mean Square Error pixel-by-pixel average difference of the compared
26605 frames for the component specified by the suffix.
26606
26607 psnr_y, psnr_u, psnr_v, psnr_r, psnr_g, psnr_b, psnr_a
26608 Peak Signal to Noise ratio of the compared frames for the component
26609 specified by the suffix.
26610
26611 max_avg, max_y, max_u, max_v
26612 Maximum allowed value for each channel, and average over all
26613 channels.
26614
26615 Examples
26616
26617 • For example:
26618
26619 movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
26620 [main][ref] psnr="stats_file=stats.log" [out]
26621
26622 On this example the input file being processed is compared with the
26623 reference file ref_movie.mpg. The PSNR of each individual frame is
26624 stored in stats.log.
26625
26626 • Another example with different containers:
26627
26628 ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]psnr" -f null -
26629
26630 pullup
26631 Pulldown reversal (inverse telecine) filter, capable of handling mixed
26632 hard-telecine, 24000/1001 fps progressive, and 30000/1001 fps
26633 progressive content.
26634
26635 The pullup filter is designed to take advantage of future context in
26636 making its decisions. This filter is stateless in the sense that it
26637 does not lock onto a pattern to follow, but it instead looks forward to
26638 the following fields in order to identify matches and rebuild
26639 progressive frames.
26640
26641 To produce content with an even framerate, insert the fps filter after
26642 pullup, use "fps=24000/1001" if the input frame rate is 29.97fps,
26643 "fps=24" for 30fps and the (rare) telecined 25fps input.
26644
26645 The filter accepts the following options:
26646
26647 jl
26648 jr
26649 jt
26650 jb These options set the amount of "junk" to ignore at the left,
26651 right, top, and bottom of the image, respectively. Left and right
26652 are in units of 8 pixels, while top and bottom are in units of 2
26653 lines. The default is 8 pixels on each side.
26654
26655 sb Set the strict breaks. Setting this option to 1 will reduce the
26656 chances of filter generating an occasional mismatched frame, but it
26657 may also cause an excessive number of frames to be dropped during
26658 high motion sequences. Conversely, setting it to -1 will make
26659 filter match fields more easily. This may help processing of video
26660 where there is slight blurring between the fields, but may also
26661 cause there to be interlaced frames in the output. Default value
26662 is 0.
26663
26664 mp Set the metric plane to use. It accepts the following values:
26665
26666 l Use luma plane.
26667
26668 u Use chroma blue plane.
26669
26670 v Use chroma red plane.
26671
26672 This option may be set to use chroma plane instead of the default
26673 luma plane for doing filter's computations. This may improve
26674 accuracy on very clean source material, but more likely will
26675 decrease accuracy, especially if there is chroma noise (rainbow
26676 effect) or any grayscale video. The main purpose of setting mp to
26677 a chroma plane is to reduce CPU load and make pullup usable in
26678 realtime on slow machines.
26679
26680 For best results (without duplicated frames in the output file) it is
26681 necessary to change the output frame rate. For example, to inverse
26682 telecine NTSC input:
26683
26684 ffmpeg -i input -vf pullup -r 24000/1001 ...
26685
26686 qp
26687 Change video quantization parameters (QP).
26688
26689 The filter accepts the following option:
26690
26691 qp Set expression for quantization parameter.
26692
26693 The expression is evaluated through the eval API and can contain, among
26694 others, the following constants:
26695
26696 known
26697 1 if index is not 129, 0 otherwise.
26698
26699 qp Sequential index starting from -129 to 128.
26700
26701 Examples
26702
26703 • Some equation like:
26704
26705 qp=2+2*sin(PI*qp)
26706
26707 random
26708 Flush video frames from internal cache of frames into a random order.
26709 No frame is discarded. Inspired by frei0r nervous filter.
26710
26711 frames
26712 Set size in number of frames of internal cache, in range from 2 to
26713 512. Default is 30.
26714
26715 seed
26716 Set seed for random number generator, must be an integer included
26717 between 0 and "UINT32_MAX". If not specified, or if explicitly set
26718 to less than 0, the filter will try to use a good random seed on a
26719 best effort basis.
26720
26721 readeia608
26722 Read closed captioning (EIA-608) information from the top lines of a
26723 video frame.
26724
26725 This filter adds frame metadata for "lavfi.readeia608.X.cc" and
26726 "lavfi.readeia608.X.line", where "X" is the number of the identified
26727 line with EIA-608 data (starting from 0). A description of each
26728 metadata value follows:
26729
26730 lavfi.readeia608.X.cc
26731 The two bytes stored as EIA-608 data (printed in hexadecimal).
26732
26733 lavfi.readeia608.X.line
26734 The number of the line on which the EIA-608 data was identified and
26735 read.
26736
26737 This filter accepts the following options:
26738
26739 scan_min
26740 Set the line to start scanning for EIA-608 data. Default is 0.
26741
26742 scan_max
26743 Set the line to end scanning for EIA-608 data. Default is 29.
26744
26745 spw Set the ratio of width reserved for sync code detection. Default
26746 is 0.27. Allowed range is "[0.1 - 0.7]".
26747
26748 chp Enable checking the parity bit. In the event of a parity error, the
26749 filter will output 0x00 for that character. Default is false.
26750
26751 lp Lowpass lines prior to further processing. Default is enabled.
26752
26753 Commands
26754
26755 This filter supports the all above options as commands.
26756
26757 Examples
26758
26759 • Output a csv with presentation time and the first two lines of
26760 identified EIA-608 captioning data.
26761
26762 ffprobe -f lavfi -i movie=captioned_video.mov,readeia608 -show_entries frame=pts_time:frame_tags=lavfi.readeia608.0.cc,lavfi.readeia608.1.cc -of csv
26763
26764 readvitc
26765 Read vertical interval timecode (VITC) information from the top lines
26766 of a video frame.
26767
26768 The filter adds frame metadata key "lavfi.readvitc.tc_str" with the
26769 timecode value, if a valid timecode has been detected. Further metadata
26770 key "lavfi.readvitc.found" is set to 0/1 depending on whether timecode
26771 data has been found or not.
26772
26773 This filter accepts the following options:
26774
26775 scan_max
26776 Set the maximum number of lines to scan for VITC data. If the value
26777 is set to -1 the full video frame is scanned. Default is 45.
26778
26779 thr_b
26780 Set the luma threshold for black. Accepts float numbers in the
26781 range [0.0,1.0], default value is 0.2. The value must be equal or
26782 less than "thr_w".
26783
26784 thr_w
26785 Set the luma threshold for white. Accepts float numbers in the
26786 range [0.0,1.0], default value is 0.6. The value must be equal or
26787 greater than "thr_b".
26788
26789 Examples
26790
26791 • Detect and draw VITC data onto the video frame; if no valid VITC is
26792 detected, draw "--:--:--:--" as a placeholder:
26793
26794 ffmpeg -i input.avi -filter:v 'readvitc,drawtext=fontfile=FreeMono.ttf:text=%{metadata\\:lavfi.readvitc.tc_str\\:--\\\\\\:--\\\\\\:--\\\\\\:--}:x=(w-tw)/2:y=400-ascent'
26795
26796 remap
26797 Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
26798
26799 Destination pixel at position (X, Y) will be picked from source (x, y)
26800 position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
26801 out of range, zero value for pixel will be used for destination pixel.
26802
26803 Xmap and Ymap input video streams must be of same dimensions. Output
26804 video stream will have Xmap/Ymap video stream dimensions. Xmap and
26805 Ymap input video streams are 16bit depth, single channel.
26806
26807 format
26808 Specify pixel format of output from this filter. Can be "color" or
26809 "gray". Default is "color".
26810
26811 fill
26812 Specify the color of the unmapped pixels. For the syntax of this
26813 option, check the "Color" section in the ffmpeg-utils manual.
26814 Default color is "black".
26815
26816 removegrain
26817 The removegrain filter is a spatial denoiser for progressive video.
26818
26819 m0 Set mode for the first plane.
26820
26821 m1 Set mode for the second plane.
26822
26823 m2 Set mode for the third plane.
26824
26825 m3 Set mode for the fourth plane.
26826
26827 Range of mode is from 0 to 24. Description of each mode follows:
26828
26829 0 Leave input plane unchanged. Default.
26830
26831 1 Clips the pixel with the minimum and maximum of the 8 neighbour
26832 pixels.
26833
26834 2 Clips the pixel with the second minimum and maximum of the 8
26835 neighbour pixels.
26836
26837 3 Clips the pixel with the third minimum and maximum of the 8
26838 neighbour pixels.
26839
26840 4 Clips the pixel with the fourth minimum and maximum of the 8
26841 neighbour pixels. This is equivalent to a median filter.
26842
26843 5 Line-sensitive clipping giving the minimal change.
26844
26845 6 Line-sensitive clipping, intermediate.
26846
26847 7 Line-sensitive clipping, intermediate.
26848
26849 8 Line-sensitive clipping, intermediate.
26850
26851 9 Line-sensitive clipping on a line where the neighbours pixels are
26852 the closest.
26853
26854 10 Replaces the target pixel with the closest neighbour.
26855
26856 11 [1 2 1] horizontal and vertical kernel blur.
26857
26858 12 Same as mode 11.
26859
26860 13 Bob mode, interpolates top field from the line where the neighbours
26861 pixels are the closest.
26862
26863 14 Bob mode, interpolates bottom field from the line where the
26864 neighbours pixels are the closest.
26865
26866 15 Bob mode, interpolates top field. Same as 13 but with a more
26867 complicated interpolation formula.
26868
26869 16 Bob mode, interpolates bottom field. Same as 14 but with a more
26870 complicated interpolation formula.
26871
26872 17 Clips the pixel with the minimum and maximum of respectively the
26873 maximum and minimum of each pair of opposite neighbour pixels.
26874
26875 18 Line-sensitive clipping using opposite neighbours whose greatest
26876 distance from the current pixel is minimal.
26877
26878 19 Replaces the pixel with the average of its 8 neighbours.
26879
26880 20 Averages the 9 pixels ([1 1 1] horizontal and vertical blur).
26881
26882 21 Clips pixels using the averages of opposite neighbour.
26883
26884 22 Same as mode 21 but simpler and faster.
26885
26886 23 Small edge and halo removal, but reputed useless.
26887
26888 24 Similar as 23.
26889
26890 removelogo
26891 Suppress a TV station logo, using an image file to determine which
26892 pixels comprise the logo. It works by filling in the pixels that
26893 comprise the logo with neighboring pixels.
26894
26895 The filter accepts the following options:
26896
26897 filename, f
26898 Set the filter bitmap file, which can be any image format supported
26899 by libavformat. The width and height of the image file must match
26900 those of the video stream being processed.
26901
26902 Pixels in the provided bitmap image with a value of zero are not
26903 considered part of the logo, non-zero pixels are considered part of the
26904 logo. If you use white (255) for the logo and black (0) for the rest,
26905 you will be safe. For making the filter bitmap, it is recommended to
26906 take a screen capture of a black frame with the logo visible, and then
26907 using a threshold filter followed by the erode filter once or twice.
26908
26909 If needed, little splotches can be fixed manually. Remember that if
26910 logo pixels are not covered, the filter quality will be much reduced.
26911 Marking too many pixels as part of the logo does not hurt as much, but
26912 it will increase the amount of blurring needed to cover over the image
26913 and will destroy more information than necessary, and extra pixels will
26914 slow things down on a large logo.
26915
26916 repeatfields
26917 This filter uses the repeat_field flag from the Video ES headers and
26918 hard repeats fields based on its value.
26919
26920 reverse
26921 Reverse a video clip.
26922
26923 Warning: This filter requires memory to buffer the entire clip, so
26924 trimming is suggested.
26925
26926 Examples
26927
26928 • Take the first 5 seconds of a clip, and reverse it.
26929
26930 trim=end=5,reverse
26931
26932 rgbashift
26933 Shift R/G/B/A pixels horizontally and/or vertically.
26934
26935 The filter accepts the following options:
26936
26937 rh Set amount to shift red horizontally.
26938
26939 rv Set amount to shift red vertically.
26940
26941 gh Set amount to shift green horizontally.
26942
26943 gv Set amount to shift green vertically.
26944
26945 bh Set amount to shift blue horizontally.
26946
26947 bv Set amount to shift blue vertically.
26948
26949 ah Set amount to shift alpha horizontally.
26950
26951 av Set amount to shift alpha vertically.
26952
26953 edge
26954 Set edge mode, can be smear, default, or warp.
26955
26956 Commands
26957
26958 This filter supports the all above options as commands.
26959
26960 roberts
26961 Apply roberts cross operator to input video stream.
26962
26963 The filter accepts the following option:
26964
26965 planes
26966 Set which planes will be processed, unprocessed planes will be
26967 copied. By default value 0xf, all planes will be processed.
26968
26969 scale
26970 Set value which will be multiplied with filtered result.
26971
26972 delta
26973 Set value which will be added to filtered result.
26974
26975 Commands
26976
26977 This filter supports the all above options as commands.
26978
26979 rotate
26980 Rotate video by an arbitrary angle expressed in radians.
26981
26982 The filter accepts the following options:
26983
26984 A description of the optional parameters follows.
26985
26986 angle, a
26987 Set an expression for the angle by which to rotate the input video
26988 clockwise, expressed as a number of radians. A negative value will
26989 result in a counter-clockwise rotation. By default it is set to
26990 "0".
26991
26992 This expression is evaluated for each frame.
26993
26994 out_w, ow
26995 Set the output width expression, default value is "iw". This
26996 expression is evaluated just once during configuration.
26997
26998 out_h, oh
26999 Set the output height expression, default value is "ih". This
27000 expression is evaluated just once during configuration.
27001
27002 bilinear
27003 Enable bilinear interpolation if set to 1, a value of 0 disables
27004 it. Default value is 1.
27005
27006 fillcolor, c
27007 Set the color used to fill the output area not covered by the
27008 rotated image. For the general syntax of this option, check the
27009 "Color" section in the ffmpeg-utils manual. If the special value
27010 "none" is selected then no background is printed (useful for
27011 example if the background is never shown).
27012
27013 Default value is "black".
27014
27015 The expressions for the angle and the output size can contain the
27016 following constants and functions:
27017
27018 n sequential number of the input frame, starting from 0. It is always
27019 NAN before the first frame is filtered.
27020
27021 t time in seconds of the input frame, it is set to 0 when the filter
27022 is configured. It is always NAN before the first frame is filtered.
27023
27024 hsub
27025 vsub
27026 horizontal and vertical chroma subsample values. For example for
27027 the pixel format "yuv422p" hsub is 2 and vsub is 1.
27028
27029 in_w, iw
27030 in_h, ih
27031 the input video width and height
27032
27033 out_w, ow
27034 out_h, oh
27035 the output width and height, that is the size of the padded area as
27036 specified by the width and height expressions
27037
27038 rotw(a)
27039 roth(a)
27040 the minimal width/height required for completely containing the
27041 input video rotated by a radians.
27042
27043 These are only available when computing the out_w and out_h
27044 expressions.
27045
27046 Examples
27047
27048 • Rotate the input by PI/6 radians clockwise:
27049
27050 rotate=PI/6
27051
27052 • Rotate the input by PI/6 radians counter-clockwise:
27053
27054 rotate=-PI/6
27055
27056 • Rotate the input by 45 degrees clockwise:
27057
27058 rotate=45*PI/180
27059
27060 • Apply a constant rotation with period T, starting from an angle of
27061 PI/3:
27062
27063 rotate=PI/3+2*PI*t/T
27064
27065 • Make the input video rotation oscillating with a period of T
27066 seconds and an amplitude of A radians:
27067
27068 rotate=A*sin(2*PI/T*t)
27069
27070 • Rotate the video, output size is chosen so that the whole rotating
27071 input video is always completely contained in the output:
27072
27073 rotate='2*PI*t:ow=hypot(iw,ih):oh=ow'
27074
27075 • Rotate the video, reduce the output size so that no background is
27076 ever shown:
27077
27078 rotate=2*PI*t:ow='min(iw,ih)/sqrt(2)':oh=ow:c=none
27079
27080 Commands
27081
27082 The filter supports the following commands:
27083
27084 a, angle
27085 Set the angle expression. The command accepts the same syntax of
27086 the corresponding option.
27087
27088 If the specified expression is not valid, it is kept at its current
27089 value.
27090
27091 sab
27092 Apply Shape Adaptive Blur.
27093
27094 The filter accepts the following options:
27095
27096 luma_radius, lr
27097 Set luma blur filter strength, must be a value in range 0.1-4.0,
27098 default value is 1.0. A greater value will result in a more blurred
27099 image, and in slower processing.
27100
27101 luma_pre_filter_radius, lpfr
27102 Set luma pre-filter radius, must be a value in the 0.1-2.0 range,
27103 default value is 1.0.
27104
27105 luma_strength, ls
27106 Set luma maximum difference between pixels to still be considered,
27107 must be a value in the 0.1-100.0 range, default value is 1.0.
27108
27109 chroma_radius, cr
27110 Set chroma blur filter strength, must be a value in range -0.9-4.0.
27111 A greater value will result in a more blurred image, and in slower
27112 processing.
27113
27114 chroma_pre_filter_radius, cpfr
27115 Set chroma pre-filter radius, must be a value in the -0.9-2.0
27116 range.
27117
27118 chroma_strength, cs
27119 Set chroma maximum difference between pixels to still be
27120 considered, must be a value in the -0.9-100.0 range.
27121
27122 Each chroma option value, if not explicitly specified, is set to the
27123 corresponding luma option value.
27124
27125 scale
27126 Scale (resize) the input video, using the libswscale library.
27127
27128 The scale filter forces the output display aspect ratio to be the same
27129 of the input, by changing the output sample aspect ratio.
27130
27131 If the input image format is different from the format requested by the
27132 next filter, the scale filter will convert the input to the requested
27133 format.
27134
27135 Options
27136
27137 The filter accepts the following options, or any of the options
27138 supported by the libswscale scaler.
27139
27140 See the ffmpeg-scaler manual for the complete list of scaler options.
27141
27142 width, w
27143 height, h
27144 Set the output video dimension expression. Default value is the
27145 input dimension.
27146
27147 If the width or w value is 0, the input width is used for the
27148 output. If the height or h value is 0, the input height is used for
27149 the output.
27150
27151 If one and only one of the values is -n with n >= 1, the scale
27152 filter will use a value that maintains the aspect ratio of the
27153 input image, calculated from the other specified dimension. After
27154 that it will, however, make sure that the calculated dimension is
27155 divisible by n and adjust the value if necessary.
27156
27157 If both values are -n with n >= 1, the behavior will be identical
27158 to both values being set to 0 as previously detailed.
27159
27160 See below for the list of accepted constants for use in the
27161 dimension expression.
27162
27163 eval
27164 Specify when to evaluate width and height expression. It accepts
27165 the following values:
27166
27167 init
27168 Only evaluate expressions once during the filter initialization
27169 or when a command is processed.
27170
27171 frame
27172 Evaluate expressions for each incoming frame.
27173
27174 Default value is init.
27175
27176 interl
27177 Set the interlacing mode. It accepts the following values:
27178
27179 1 Force interlaced aware scaling.
27180
27181 0 Do not apply interlaced scaling.
27182
27183 -1 Select interlaced aware scaling depending on whether the source
27184 frames are flagged as interlaced or not.
27185
27186 Default value is 0.
27187
27188 flags
27189 Set libswscale scaling flags. See the ffmpeg-scaler manual for the
27190 complete list of values. If not explicitly specified the filter
27191 applies the default flags.
27192
27193 param0, param1
27194 Set libswscale input parameters for scaling algorithms that need
27195 them. See the ffmpeg-scaler manual for the complete documentation.
27196 If not explicitly specified the filter applies empty parameters.
27197
27198 size, s
27199 Set the video size. For the syntax of this option, check the "Video
27200 size" section in the ffmpeg-utils manual.
27201
27202 in_color_matrix
27203 out_color_matrix
27204 Set in/output YCbCr color space type.
27205
27206 This allows the autodetected value to be overridden as well as
27207 allows forcing a specific value used for the output and encoder.
27208
27209 If not specified, the color space type depends on the pixel format.
27210
27211 Possible values:
27212
27213 auto
27214 Choose automatically.
27215
27216 bt709
27217 Format conforming to International Telecommunication Union
27218 (ITU) Recommendation BT.709.
27219
27220 fcc Set color space conforming to the United States Federal
27221 Communications Commission (FCC) Code of Federal Regulations
27222 (CFR) Title 47 (2003) 73.682 (a).
27223
27224 bt601
27225 bt470
27226 smpte170m
27227 Set color space conforming to:
27228
27229 • ITU Radiocommunication Sector (ITU-R) Recommendation BT.601
27230
27231 • ITU-R Rec. BT.470-6 (1998) Systems B, B1, and G
27232
27233 • Society of Motion Picture and Television Engineers (SMPTE)
27234 ST 170:2004
27235
27236 smpte240m
27237 Set color space conforming to SMPTE ST 240:1999.
27238
27239 bt2020
27240 Set color space conforming to ITU-R BT.2020 non-constant
27241 luminance system.
27242
27243 in_range
27244 out_range
27245 Set in/output YCbCr sample range.
27246
27247 This allows the autodetected value to be overridden as well as
27248 allows forcing a specific value used for the output and encoder. If
27249 not specified, the range depends on the pixel format. Possible
27250 values:
27251
27252 auto/unknown
27253 Choose automatically.
27254
27255 jpeg/full/pc
27256 Set full range (0-255 in case of 8-bit luma).
27257
27258 mpeg/limited/tv
27259 Set "MPEG" range (16-235 in case of 8-bit luma).
27260
27261 force_original_aspect_ratio
27262 Enable decreasing or increasing output video width or height if
27263 necessary to keep the original aspect ratio. Possible values:
27264
27265 disable
27266 Scale the video as specified and disable this feature.
27267
27268 decrease
27269 The output video dimensions will automatically be decreased if
27270 needed.
27271
27272 increase
27273 The output video dimensions will automatically be increased if
27274 needed.
27275
27276 One useful instance of this option is that when you know a specific
27277 device's maximum allowed resolution, you can use this to limit the
27278 output video to that, while retaining the aspect ratio. For
27279 example, device A allows 1280x720 playback, and your video is
27280 1920x800. Using this option (set it to decrease) and specifying
27281 1280x720 to the command line makes the output 1280x533.
27282
27283 Please note that this is a different thing than specifying -1 for w
27284 or h, you still need to specify the output resolution for this
27285 option to work.
27286
27287 force_divisible_by
27288 Ensures that both the output dimensions, width and height, are
27289 divisible by the given integer when used together with
27290 force_original_aspect_ratio. This works similar to using "-n" in
27291 the w and h options.
27292
27293 This option respects the value set for force_original_aspect_ratio,
27294 increasing or decreasing the resolution accordingly. The video's
27295 aspect ratio may be slightly modified.
27296
27297 This option can be handy if you need to have a video fit within or
27298 exceed a defined resolution using force_original_aspect_ratio but
27299 also have encoder restrictions on width or height divisibility.
27300
27301 The values of the w and h options are expressions containing the
27302 following constants:
27303
27304 in_w
27305 in_h
27306 The input width and height
27307
27308 iw
27309 ih These are the same as in_w and in_h.
27310
27311 out_w
27312 out_h
27313 The output (scaled) width and height
27314
27315 ow
27316 oh These are the same as out_w and out_h
27317
27318 a The same as iw / ih
27319
27320 sar input sample aspect ratio
27321
27322 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
27323
27324 hsub
27325 vsub
27326 horizontal and vertical input chroma subsample values. For example
27327 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
27328
27329 ohsub
27330 ovsub
27331 horizontal and vertical output chroma subsample values. For example
27332 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
27333
27334 n The (sequential) number of the input frame, starting from 0. Only
27335 available with "eval=frame".
27336
27337 t The presentation timestamp of the input frame, expressed as a
27338 number of seconds. Only available with "eval=frame".
27339
27340 pos The position (byte offset) of the frame in the input stream, or NaN
27341 if this information is unavailable and/or meaningless (for example
27342 in case of synthetic video). Only available with "eval=frame".
27343
27344 Examples
27345
27346 • Scale the input video to a size of 200x100
27347
27348 scale=w=200:h=100
27349
27350 This is equivalent to:
27351
27352 scale=200:100
27353
27354 or:
27355
27356 scale=200x100
27357
27358 • Specify a size abbreviation for the output size:
27359
27360 scale=qcif
27361
27362 which can also be written as:
27363
27364 scale=size=qcif
27365
27366 • Scale the input to 2x:
27367
27368 scale=w=2*iw:h=2*ih
27369
27370 • The above is the same as:
27371
27372 scale=2*in_w:2*in_h
27373
27374 • Scale the input to 2x with forced interlaced scaling:
27375
27376 scale=2*iw:2*ih:interl=1
27377
27378 • Scale the input to half size:
27379
27380 scale=w=iw/2:h=ih/2
27381
27382 • Increase the width, and set the height to the same size:
27383
27384 scale=3/2*iw:ow
27385
27386 • Seek Greek harmony:
27387
27388 scale=iw:1/PHI*iw
27389 scale=ih*PHI:ih
27390
27391 • Increase the height, and set the width to 3/2 of the height:
27392
27393 scale=w=3/2*oh:h=3/5*ih
27394
27395 • Increase the size, making the size a multiple of the chroma
27396 subsample values:
27397
27398 scale="trunc(3/2*iw/hsub)*hsub:trunc(3/2*ih/vsub)*vsub"
27399
27400 • Increase the width to a maximum of 500 pixels, keeping the same
27401 aspect ratio as the input:
27402
27403 scale=w='min(500\, iw*3/2):h=-1'
27404
27405 • Make pixels square by combining scale and setsar:
27406
27407 scale='trunc(ih*dar):ih',setsar=1/1
27408
27409 • Make pixels square by combining scale and setsar, making sure the
27410 resulting resolution is even (required by some codecs):
27411
27412 scale='trunc(ih*dar/2)*2:trunc(ih/2)*2',setsar=1/1
27413
27414 Commands
27415
27416 This filter supports the following commands:
27417
27418 width, w
27419 height, h
27420 Set the output video dimension expression. The command accepts the
27421 same syntax of the corresponding option.
27422
27423 If the specified expression is not valid, it is kept at its current
27424 value.
27425
27426 scale_cuda
27427 Scale (resize) and convert (pixel format) the input video, using
27428 accelerated CUDA kernels. Setting the output width and height works in
27429 the same way as for the scale filter.
27430
27431 The filter accepts the following options:
27432
27433 w
27434 h Set the output video dimension expression. Default value is the
27435 input dimension.
27436
27437 Allows for the same expressions as the scale filter.
27438
27439 interp_algo
27440 Sets the algorithm used for scaling:
27441
27442 nearest
27443 Nearest neighbour
27444
27445 Used by default if input parameters match the desired output.
27446
27447 bilinear
27448 Bilinear
27449
27450 bicubic
27451 Bicubic
27452
27453 This is the default.
27454
27455 lanczos
27456 Lanczos
27457
27458 format
27459 Controls the output pixel format. By default, or if none is
27460 specified, the input pixel format is used.
27461
27462 The filter does not support converting between YUV and RGB pixel
27463 formats.
27464
27465 passthrough
27466 If set to 0, every frame is processed, even if no conversion is
27467 neccesary. This mode can be useful to use the filter as a buffer
27468 for a downstream frame-consumer that exhausts the limited decoder
27469 frame pool.
27470
27471 If set to 1, frames are passed through as-is if they match the
27472 desired output parameters. This is the default behaviour.
27473
27474 param
27475 Algorithm-Specific parameter.
27476
27477 Affects the curves of the bicubic algorithm.
27478
27479 force_original_aspect_ratio
27480 force_divisible_by
27481 Work the same as the identical scale filter options.
27482
27483 Examples
27484
27485 • Scale input to 720p, keeping aspect ratio and ensuring the output
27486 is yuv420p.
27487
27488 scale_cuda=-2:720:format=yuv420p
27489
27490 • Upscale to 4K using nearest neighbour algorithm.
27491
27492 scale_cuda=4096:2160:interp_algo=nearest
27493
27494 • Don't do any conversion or scaling, but copy all input frames into
27495 newly allocated ones. This can be useful to deal with a filter and
27496 encode chain that otherwise exhausts the decoders frame pool.
27497
27498 scale_cuda=passthrough=0
27499
27500 scale_npp
27501 Use the NVIDIA Performance Primitives (libnpp) to perform scaling
27502 and/or pixel format conversion on CUDA video frames. Setting the output
27503 width and height works in the same way as for the scale filter.
27504
27505 The following additional options are accepted:
27506
27507 format
27508 The pixel format of the output CUDA frames. If set to the string
27509 "same" (the default), the input format will be kept. Note that
27510 automatic format negotiation and conversion is not yet supported
27511 for hardware frames
27512
27513 interp_algo
27514 The interpolation algorithm used for resizing. One of the
27515 following:
27516
27517 nn Nearest neighbour.
27518
27519 linear
27520 cubic
27521 cubic2p_bspline
27522 2-parameter cubic (B=1, C=0)
27523
27524 cubic2p_catmullrom
27525 2-parameter cubic (B=0, C=1/2)
27526
27527 cubic2p_b05c03
27528 2-parameter cubic (B=1/2, C=3/10)
27529
27530 super
27531 Supersampling
27532
27533 lanczos
27534 force_original_aspect_ratio
27535 Enable decreasing or increasing output video width or height if
27536 necessary to keep the original aspect ratio. Possible values:
27537
27538 disable
27539 Scale the video as specified and disable this feature.
27540
27541 decrease
27542 The output video dimensions will automatically be decreased if
27543 needed.
27544
27545 increase
27546 The output video dimensions will automatically be increased if
27547 needed.
27548
27549 One useful instance of this option is that when you know a specific
27550 device's maximum allowed resolution, you can use this to limit the
27551 output video to that, while retaining the aspect ratio. For
27552 example, device A allows 1280x720 playback, and your video is
27553 1920x800. Using this option (set it to decrease) and specifying
27554 1280x720 to the command line makes the output 1280x533.
27555
27556 Please note that this is a different thing than specifying -1 for w
27557 or h, you still need to specify the output resolution for this
27558 option to work.
27559
27560 force_divisible_by
27561 Ensures that both the output dimensions, width and height, are
27562 divisible by the given integer when used together with
27563 force_original_aspect_ratio. This works similar to using "-n" in
27564 the w and h options.
27565
27566 This option respects the value set for force_original_aspect_ratio,
27567 increasing or decreasing the resolution accordingly. The video's
27568 aspect ratio may be slightly modified.
27569
27570 This option can be handy if you need to have a video fit within or
27571 exceed a defined resolution using force_original_aspect_ratio but
27572 also have encoder restrictions on width or height divisibility.
27573
27574 eval
27575 Specify when to evaluate width and height expression. It accepts
27576 the following values:
27577
27578 init
27579 Only evaluate expressions once during the filter initialization
27580 or when a command is processed.
27581
27582 frame
27583 Evaluate expressions for each incoming frame.
27584
27585 The values of the w and h options are expressions containing the
27586 following constants:
27587
27588 in_w
27589 in_h
27590 The input width and height
27591
27592 iw
27593 ih These are the same as in_w and in_h.
27594
27595 out_w
27596 out_h
27597 The output (scaled) width and height
27598
27599 ow
27600 oh These are the same as out_w and out_h
27601
27602 a The same as iw / ih
27603
27604 sar input sample aspect ratio
27605
27606 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
27607
27608 n The (sequential) number of the input frame, starting from 0. Only
27609 available with "eval=frame".
27610
27611 t The presentation timestamp of the input frame, expressed as a
27612 number of seconds. Only available with "eval=frame".
27613
27614 pos The position (byte offset) of the frame in the input stream, or NaN
27615 if this information is unavailable and/or meaningless (for example
27616 in case of synthetic video). Only available with "eval=frame".
27617
27618 scale2ref
27619 Scale (resize) the input video, based on a reference video.
27620
27621 See the scale filter for available options, scale2ref supports the same
27622 but uses the reference video instead of the main input as basis.
27623 scale2ref also supports the following additional constants for the w
27624 and h options:
27625
27626 main_w
27627 main_h
27628 The main input video's width and height
27629
27630 main_a
27631 The same as main_w / main_h
27632
27633 main_sar
27634 The main input video's sample aspect ratio
27635
27636 main_dar, mdar
27637 The main input video's display aspect ratio. Calculated from
27638 "(main_w / main_h) * main_sar".
27639
27640 main_hsub
27641 main_vsub
27642 The main input video's horizontal and vertical chroma subsample
27643 values. For example for the pixel format "yuv422p" hsub is 2 and
27644 vsub is 1.
27645
27646 main_n
27647 The (sequential) number of the main input frame, starting from 0.
27648 Only available with "eval=frame".
27649
27650 main_t
27651 The presentation timestamp of the main input frame, expressed as a
27652 number of seconds. Only available with "eval=frame".
27653
27654 main_pos
27655 The position (byte offset) of the frame in the main input stream,
27656 or NaN if this information is unavailable and/or meaningless (for
27657 example in case of synthetic video). Only available with
27658 "eval=frame".
27659
27660 Examples
27661
27662 • Scale a subtitle stream (b) to match the main video (a) in size
27663 before overlaying
27664
27665 'scale2ref[b][a];[a][b]overlay'
27666
27667 • Scale a logo to 1/10th the height of a video, while preserving its
27668 display aspect ratio.
27669
27670 [logo-in][video-in]scale2ref=w=oh*mdar:h=ih/10[logo-out][video-out]
27671
27672 Commands
27673
27674 This filter supports the following commands:
27675
27676 width, w
27677 height, h
27678 Set the output video dimension expression. The command accepts the
27679 same syntax of the corresponding option.
27680
27681 If the specified expression is not valid, it is kept at its current
27682 value.
27683
27684 scale2ref_npp
27685 Use the NVIDIA Performance Primitives (libnpp) to scale (resize) the
27686 input video, based on a reference video.
27687
27688 See the scale_npp filter for available options, scale2ref_npp supports
27689 the same but uses the reference video instead of the main input as
27690 basis. scale2ref_npp also supports the following additional constants
27691 for the w and h options:
27692
27693 main_w
27694 main_h
27695 The main input video's width and height
27696
27697 main_a
27698 The same as main_w / main_h
27699
27700 main_sar
27701 The main input video's sample aspect ratio
27702
27703 main_dar, mdar
27704 The main input video's display aspect ratio. Calculated from
27705 "(main_w / main_h) * main_sar".
27706
27707 main_n
27708 The (sequential) number of the main input frame, starting from 0.
27709 Only available with "eval=frame".
27710
27711 main_t
27712 The presentation timestamp of the main input frame, expressed as a
27713 number of seconds. Only available with "eval=frame".
27714
27715 main_pos
27716 The position (byte offset) of the frame in the main input stream,
27717 or NaN if this information is unavailable and/or meaningless (for
27718 example in case of synthetic video). Only available with
27719 "eval=frame".
27720
27721 Examples
27722
27723 • Scale a subtitle stream (b) to match the main video (a) in size
27724 before overlaying
27725
27726 'scale2ref_npp[b][a];[a][b]overlay_cuda'
27727
27728 • Scale a logo to 1/10th the height of a video, while preserving its
27729 display aspect ratio.
27730
27731 [logo-in][video-in]scale2ref_npp=w=oh*mdar:h=ih/10[logo-out][video-out]
27732
27733 scharr
27734 Apply scharr operator to input video stream.
27735
27736 The filter accepts the following option:
27737
27738 planes
27739 Set which planes will be processed, unprocessed planes will be
27740 copied. By default value 0xf, all planes will be processed.
27741
27742 scale
27743 Set value which will be multiplied with filtered result.
27744
27745 delta
27746 Set value which will be added to filtered result.
27747
27748 Commands
27749
27750 This filter supports the all above options as commands.
27751
27752 scroll
27753 Scroll input video horizontally and/or vertically by constant speed.
27754
27755 The filter accepts the following options:
27756
27757 horizontal, h
27758 Set the horizontal scrolling speed. Default is 0. Allowed range is
27759 from -1 to 1. Negative values changes scrolling direction.
27760
27761 vertical, v
27762 Set the vertical scrolling speed. Default is 0. Allowed range is
27763 from -1 to 1. Negative values changes scrolling direction.
27764
27765 hpos
27766 Set the initial horizontal scrolling position. Default is 0.
27767 Allowed range is from 0 to 1.
27768
27769 vpos
27770 Set the initial vertical scrolling position. Default is 0. Allowed
27771 range is from 0 to 1.
27772
27773 Commands
27774
27775 This filter supports the following commands:
27776
27777 horizontal, h
27778 Set the horizontal scrolling speed.
27779
27780 vertical, v
27781 Set the vertical scrolling speed.
27782
27783 scdet
27784 Detect video scene change.
27785
27786 This filter sets frame metadata with mafd between frame, the scene
27787 score, and forward the frame to the next filter, so they can use these
27788 metadata to detect scene change or others.
27789
27790 In addition, this filter logs a message and sets frame metadata when it
27791 detects a scene change by threshold.
27792
27793 "lavfi.scd.mafd" metadata keys are set with mafd for every frame.
27794
27795 "lavfi.scd.score" metadata keys are set with scene change score for
27796 every frame to detect scene change.
27797
27798 "lavfi.scd.time" metadata keys are set with current filtered frame time
27799 which detect scene change with threshold.
27800
27801 The filter accepts the following options:
27802
27803 threshold, t
27804 Set the scene change detection threshold as a percentage of maximum
27805 change. Good values are in the "[8.0, 14.0]" range. The range for
27806 threshold is "[0., 100.]".
27807
27808 Default value is 10..
27809
27810 sc_pass, s
27811 Set the flag to pass scene change frames to the next filter.
27812 Default value is 0 You can enable it if you want to get snapshot of
27813 scene change frames only.
27814
27815 selectivecolor
27816 Adjust cyan, magenta, yellow and black (CMYK) to certain ranges of
27817 colors (such as "reds", "yellows", "greens", "cyans", ...). The
27818 adjustment range is defined by the "purity" of the color (that is, how
27819 saturated it already is).
27820
27821 This filter is similar to the Adobe Photoshop Selective Color tool.
27822
27823 The filter accepts the following options:
27824
27825 correction_method
27826 Select color correction method.
27827
27828 Available values are:
27829
27830 absolute
27831 Specified adjustments are applied "as-is" (added/subtracted to
27832 original pixel component value).
27833
27834 relative
27835 Specified adjustments are relative to the original component
27836 value.
27837
27838 Default is "absolute".
27839
27840 reds
27841 Adjustments for red pixels (pixels where the red component is the
27842 maximum)
27843
27844 yellows
27845 Adjustments for yellow pixels (pixels where the blue component is
27846 the minimum)
27847
27848 greens
27849 Adjustments for green pixels (pixels where the green component is
27850 the maximum)
27851
27852 cyans
27853 Adjustments for cyan pixels (pixels where the red component is the
27854 minimum)
27855
27856 blues
27857 Adjustments for blue pixels (pixels where the blue component is the
27858 maximum)
27859
27860 magentas
27861 Adjustments for magenta pixels (pixels where the green component is
27862 the minimum)
27863
27864 whites
27865 Adjustments for white pixels (pixels where all components are
27866 greater than 128)
27867
27868 neutrals
27869 Adjustments for all pixels except pure black and pure white
27870
27871 blacks
27872 Adjustments for black pixels (pixels where all components are
27873 lesser than 128)
27874
27875 psfile
27876 Specify a Photoshop selective color file (".asv") to import the
27877 settings from.
27878
27879 All the adjustment settings (reds, yellows, ...) accept up to 4 space
27880 separated floating point adjustment values in the [-1,1] range,
27881 respectively to adjust the amount of cyan, magenta, yellow and black
27882 for the pixels of its range.
27883
27884 Examples
27885
27886 • Increase cyan by 50% and reduce yellow by 33% in every green areas,
27887 and increase magenta by 27% in blue areas:
27888
27889 selectivecolor=greens=.5 0 -.33 0:blues=0 .27
27890
27891 • Use a Photoshop selective color preset:
27892
27893 selectivecolor=psfile=MySelectiveColorPresets/Misty.asv
27894
27895 separatefields
27896 The "separatefields" takes a frame-based video input and splits each
27897 frame into its components fields, producing a new half height clip with
27898 twice the frame rate and twice the frame count.
27899
27900 This filter use field-dominance information in frame to decide which of
27901 each pair of fields to place first in the output. If it gets it wrong
27902 use setfield filter before "separatefields" filter.
27903
27904 setdar, setsar
27905 The "setdar" filter sets the Display Aspect Ratio for the filter output
27906 video.
27907
27908 This is done by changing the specified Sample (aka Pixel) Aspect Ratio,
27909 according to the following equation:
27910
27911 <DAR> = <HORIZONTAL_RESOLUTION> / <VERTICAL_RESOLUTION> * <SAR>
27912
27913 Keep in mind that the "setdar" filter does not modify the pixel
27914 dimensions of the video frame. Also, the display aspect ratio set by
27915 this filter may be changed by later filters in the filterchain, e.g. in
27916 case of scaling or if another "setdar" or a "setsar" filter is applied.
27917
27918 The "setsar" filter sets the Sample (aka Pixel) Aspect Ratio for the
27919 filter output video.
27920
27921 Note that as a consequence of the application of this filter, the
27922 output display aspect ratio will change according to the equation
27923 above.
27924
27925 Keep in mind that the sample aspect ratio set by the "setsar" filter
27926 may be changed by later filters in the filterchain, e.g. if another
27927 "setsar" or a "setdar" filter is applied.
27928
27929 It accepts the following parameters:
27930
27931 r, ratio, dar ("setdar" only), sar ("setsar" only)
27932 Set the aspect ratio used by the filter.
27933
27934 The parameter can be a floating point number string, an expression,
27935 or a string of the form num:den, where num and den are the
27936 numerator and denominator of the aspect ratio. If the parameter is
27937 not specified, it is assumed the value "0". In case the form
27938 "num:den" is used, the ":" character should be escaped.
27939
27940 max Set the maximum integer value to use for expressing numerator and
27941 denominator when reducing the expressed aspect ratio to a rational.
27942 Default value is 100.
27943
27944 The parameter sar is an expression containing the following constants:
27945
27946 E, PI, PHI
27947 These are approximated values for the mathematical constants e
27948 (Euler's number), pi (Greek pi), and phi (the golden ratio).
27949
27950 w, h
27951 The input width and height.
27952
27953 a These are the same as w / h.
27954
27955 sar The input sample aspect ratio.
27956
27957 dar The input display aspect ratio. It is the same as (w / h) * sar.
27958
27959 hsub, vsub
27960 Horizontal and vertical chroma subsample values. For example, for
27961 the pixel format "yuv422p" hsub is 2 and vsub is 1.
27962
27963 Examples
27964
27965 • To change the display aspect ratio to 16:9, specify one of the
27966 following:
27967
27968 setdar=dar=1.77777
27969 setdar=dar=16/9
27970
27971 • To change the sample aspect ratio to 10:11, specify:
27972
27973 setsar=sar=10/11
27974
27975 • To set a display aspect ratio of 16:9, and specify a maximum
27976 integer value of 1000 in the aspect ratio reduction, use the
27977 command:
27978
27979 setdar=ratio=16/9:max=1000
27980
27981 setfield
27982 Force field for the output video frame.
27983
27984 The "setfield" filter marks the interlace type field for the output
27985 frames. It does not change the input frame, but only sets the
27986 corresponding property, which affects how the frame is treated by
27987 following filters (e.g. "fieldorder" or "yadif").
27988
27989 The filter accepts the following options:
27990
27991 mode
27992 Available values are:
27993
27994 auto
27995 Keep the same field property.
27996
27997 bff Mark the frame as bottom-field-first.
27998
27999 tff Mark the frame as top-field-first.
28000
28001 prog
28002 Mark the frame as progressive.
28003
28004 setparams
28005 Force frame parameter for the output video frame.
28006
28007 The "setparams" filter marks interlace and color range for the output
28008 frames. It does not change the input frame, but only sets the
28009 corresponding property, which affects how the frame is treated by
28010 filters/encoders.
28011
28012 field_mode
28013 Available values are:
28014
28015 auto
28016 Keep the same field property (default).
28017
28018 bff Mark the frame as bottom-field-first.
28019
28020 tff Mark the frame as top-field-first.
28021
28022 prog
28023 Mark the frame as progressive.
28024
28025 range
28026 Available values are:
28027
28028 auto
28029 Keep the same color range property (default).
28030
28031 unspecified, unknown
28032 Mark the frame as unspecified color range.
28033
28034 limited, tv, mpeg
28035 Mark the frame as limited range.
28036
28037 full, pc, jpeg
28038 Mark the frame as full range.
28039
28040 color_primaries
28041 Set the color primaries. Available values are:
28042
28043 auto
28044 Keep the same color primaries property (default).
28045
28046 bt709
28047 unknown
28048 bt470m
28049 bt470bg
28050 smpte170m
28051 smpte240m
28052 film
28053 bt2020
28054 smpte428
28055 smpte431
28056 smpte432
28057 jedec-p22
28058 color_trc
28059 Set the color transfer. Available values are:
28060
28061 auto
28062 Keep the same color trc property (default).
28063
28064 bt709
28065 unknown
28066 bt470m
28067 bt470bg
28068 smpte170m
28069 smpte240m
28070 linear
28071 log100
28072 log316
28073 iec61966-2-4
28074 bt1361e
28075 iec61966-2-1
28076 bt2020-10
28077 bt2020-12
28078 smpte2084
28079 smpte428
28080 arib-std-b67
28081 colorspace
28082 Set the colorspace. Available values are:
28083
28084 auto
28085 Keep the same colorspace property (default).
28086
28087 gbr
28088 bt709
28089 unknown
28090 fcc
28091 bt470bg
28092 smpte170m
28093 smpte240m
28094 ycgco
28095 bt2020nc
28096 bt2020c
28097 smpte2085
28098 chroma-derived-nc
28099 chroma-derived-c
28100 ictcp
28101
28102 sharpen_npp
28103 Use the NVIDIA Performance Primitives (libnpp) to perform image
28104 sharpening with border control.
28105
28106 The following additional options are accepted:
28107
28108 border_type
28109 Type of sampling to be used ad frame borders. One of the following:
28110
28111 replicate
28112 Replicate pixel values.
28113
28114 shear
28115 Apply shear transform to input video.
28116
28117 This filter supports the following options:
28118
28119 shx Shear factor in X-direction. Default value is 0. Allowed range is
28120 from -2 to 2.
28121
28122 shy Shear factor in Y-direction. Default value is 0. Allowed range is
28123 from -2 to 2.
28124
28125 fillcolor, c
28126 Set the color used to fill the output area not covered by the
28127 transformed video. For the general syntax of this option, check the
28128 "Color" section in the ffmpeg-utils manual. If the special value
28129 "none" is selected then no background is printed (useful for
28130 example if the background is never shown).
28131
28132 Default value is "black".
28133
28134 interp
28135 Set interpolation type. Can be "bilinear" or "nearest". Default is
28136 "bilinear".
28137
28138 Commands
28139
28140 This filter supports the all above options as commands.
28141
28142 showinfo
28143 Show a line containing various information for each input video frame.
28144 The input video is not modified.
28145
28146 This filter supports the following options:
28147
28148 checksum
28149 Calculate checksums of each plane. By default enabled.
28150
28151 The shown line contains a sequence of key/value pairs of the form
28152 key:value.
28153
28154 The following values are shown in the output:
28155
28156 n The (sequential) number of the input frame, starting from 0.
28157
28158 pts The Presentation TimeStamp of the input frame, expressed as a
28159 number of time base units. The time base unit depends on the filter
28160 input pad.
28161
28162 pts_time
28163 The Presentation TimeStamp of the input frame, expressed as a
28164 number of seconds.
28165
28166 pos The position of the frame in the input stream, or -1 if this
28167 information is unavailable and/or meaningless (for example in case
28168 of synthetic video).
28169
28170 fmt The pixel format name.
28171
28172 sar The sample aspect ratio of the input frame, expressed in the form
28173 num/den.
28174
28175 s The size of the input frame. For the syntax of this option, check
28176 the "Video size" section in the ffmpeg-utils manual.
28177
28178 i The type of interlaced mode ("P" for "progressive", "T" for top
28179 field first, "B" for bottom field first).
28180
28181 iskey
28182 This is 1 if the frame is a key frame, 0 otherwise.
28183
28184 type
28185 The picture type of the input frame ("I" for an I-frame, "P" for a
28186 P-frame, "B" for a B-frame, or "?" for an unknown type). Also
28187 refer to the documentation of the "AVPictureType" enum and of the
28188 "av_get_picture_type_char" function defined in libavutil/avutil.h.
28189
28190 checksum
28191 The Adler-32 checksum (printed in hexadecimal) of all the planes of
28192 the input frame.
28193
28194 plane_checksum
28195 The Adler-32 checksum (printed in hexadecimal) of each plane of the
28196 input frame, expressed in the form "[c0 c1 c2 c3]".
28197
28198 mean
28199 The mean value of pixels in each plane of the input frame,
28200 expressed in the form "[mean0 mean1 mean2 mean3]".
28201
28202 stdev
28203 The standard deviation of pixel values in each plane of the input
28204 frame, expressed in the form "[stdev0 stdev1 stdev2 stdev3]".
28205
28206 showpalette
28207 Displays the 256 colors palette of each frame. This filter is only
28208 relevant for pal8 pixel format frames.
28209
28210 It accepts the following option:
28211
28212 s Set the size of the box used to represent one palette color entry.
28213 Default is 30 (for a "30x30" pixel box).
28214
28215 shuffleframes
28216 Reorder and/or duplicate and/or drop video frames.
28217
28218 It accepts the following parameters:
28219
28220 mapping
28221 Set the destination indexes of input frames. This is space or '|'
28222 separated list of indexes that maps input frames to output frames.
28223 Number of indexes also sets maximal value that each index may have.
28224 '-1' index have special meaning and that is to drop frame.
28225
28226 The first frame has the index 0. The default is to keep the input
28227 unchanged.
28228
28229 Examples
28230
28231 • Swap second and third frame of every three frames of the input:
28232
28233 ffmpeg -i INPUT -vf "shuffleframes=0 2 1" OUTPUT
28234
28235 • Swap 10th and 1st frame of every ten frames of the input:
28236
28237 ffmpeg -i INPUT -vf "shuffleframes=9 1 2 3 4 5 6 7 8 0" OUTPUT
28238
28239 shufflepixels
28240 Reorder pixels in video frames.
28241
28242 This filter accepts the following options:
28243
28244 direction, d
28245 Set shuffle direction. Can be forward or inverse direction.
28246 Default direction is forward.
28247
28248 mode, m
28249 Set shuffle mode. Can be horizontal, vertical or block mode.
28250
28251 width, w
28252 height, h
28253 Set shuffle block_size. In case of horizontal shuffle mode only
28254 width part of size is used, and in case of vertical shuffle mode
28255 only height part of size is used.
28256
28257 seed, s
28258 Set random seed used with shuffling pixels. Mainly useful to set to
28259 be able to reverse filtering process to get original input. For
28260 example, to reverse forward shuffle you need to use same parameters
28261 and exact same seed and to set direction to inverse.
28262
28263 shuffleplanes
28264 Reorder and/or duplicate video planes.
28265
28266 It accepts the following parameters:
28267
28268 map0
28269 The index of the input plane to be used as the first output plane.
28270
28271 map1
28272 The index of the input plane to be used as the second output plane.
28273
28274 map2
28275 The index of the input plane to be used as the third output plane.
28276
28277 map3
28278 The index of the input plane to be used as the fourth output plane.
28279
28280 The first plane has the index 0. The default is to keep the input
28281 unchanged.
28282
28283 Examples
28284
28285 • Swap the second and third planes of the input:
28286
28287 ffmpeg -i INPUT -vf shuffleplanes=0:2:1:3 OUTPUT
28288
28289 signalstats
28290 Evaluate various visual metrics that assist in determining issues
28291 associated with the digitization of analog video media.
28292
28293 By default the filter will log these metadata values:
28294
28295 YMIN
28296 Display the minimal Y value contained within the input frame.
28297 Expressed in range of [0-255].
28298
28299 YLOW
28300 Display the Y value at the 10% percentile within the input frame.
28301 Expressed in range of [0-255].
28302
28303 YAVG
28304 Display the average Y value within the input frame. Expressed in
28305 range of [0-255].
28306
28307 YHIGH
28308 Display the Y value at the 90% percentile within the input frame.
28309 Expressed in range of [0-255].
28310
28311 YMAX
28312 Display the maximum Y value contained within the input frame.
28313 Expressed in range of [0-255].
28314
28315 UMIN
28316 Display the minimal U value contained within the input frame.
28317 Expressed in range of [0-255].
28318
28319 ULOW
28320 Display the U value at the 10% percentile within the input frame.
28321 Expressed in range of [0-255].
28322
28323 UAVG
28324 Display the average U value within the input frame. Expressed in
28325 range of [0-255].
28326
28327 UHIGH
28328 Display the U value at the 90% percentile within the input frame.
28329 Expressed in range of [0-255].
28330
28331 UMAX
28332 Display the maximum U value contained within the input frame.
28333 Expressed in range of [0-255].
28334
28335 VMIN
28336 Display the minimal V value contained within the input frame.
28337 Expressed in range of [0-255].
28338
28339 VLOW
28340 Display the V value at the 10% percentile within the input frame.
28341 Expressed in range of [0-255].
28342
28343 VAVG
28344 Display the average V value within the input frame. Expressed in
28345 range of [0-255].
28346
28347 VHIGH
28348 Display the V value at the 90% percentile within the input frame.
28349 Expressed in range of [0-255].
28350
28351 VMAX
28352 Display the maximum V value contained within the input frame.
28353 Expressed in range of [0-255].
28354
28355 SATMIN
28356 Display the minimal saturation value contained within the input
28357 frame. Expressed in range of [0-~181.02].
28358
28359 SATLOW
28360 Display the saturation value at the 10% percentile within the input
28361 frame. Expressed in range of [0-~181.02].
28362
28363 SATAVG
28364 Display the average saturation value within the input frame.
28365 Expressed in range of [0-~181.02].
28366
28367 SATHIGH
28368 Display the saturation value at the 90% percentile within the input
28369 frame. Expressed in range of [0-~181.02].
28370
28371 SATMAX
28372 Display the maximum saturation value contained within the input
28373 frame. Expressed in range of [0-~181.02].
28374
28375 HUEMED
28376 Display the median value for hue within the input frame. Expressed
28377 in range of [0-360].
28378
28379 HUEAVG
28380 Display the average value for hue within the input frame. Expressed
28381 in range of [0-360].
28382
28383 YDIF
28384 Display the average of sample value difference between all values
28385 of the Y plane in the current frame and corresponding values of the
28386 previous input frame. Expressed in range of [0-255].
28387
28388 UDIF
28389 Display the average of sample value difference between all values
28390 of the U plane in the current frame and corresponding values of the
28391 previous input frame. Expressed in range of [0-255].
28392
28393 VDIF
28394 Display the average of sample value difference between all values
28395 of the V plane in the current frame and corresponding values of the
28396 previous input frame. Expressed in range of [0-255].
28397
28398 YBITDEPTH
28399 Display bit depth of Y plane in current frame. Expressed in range
28400 of [0-16].
28401
28402 UBITDEPTH
28403 Display bit depth of U plane in current frame. Expressed in range
28404 of [0-16].
28405
28406 VBITDEPTH
28407 Display bit depth of V plane in current frame. Expressed in range
28408 of [0-16].
28409
28410 The filter accepts the following options:
28411
28412 stat
28413 out stat specify an additional form of image analysis. out output
28414 video with the specified type of pixel highlighted.
28415
28416 Both options accept the following values:
28417
28418 tout
28419 Identify temporal outliers pixels. A temporal outlier is a
28420 pixel unlike the neighboring pixels of the same field. Examples
28421 of temporal outliers include the results of video dropouts,
28422 head clogs, or tape tracking issues.
28423
28424 vrep
28425 Identify vertical line repetition. Vertical line repetition
28426 includes similar rows of pixels within a frame. In born-digital
28427 video vertical line repetition is common, but this pattern is
28428 uncommon in video digitized from an analog source. When it
28429 occurs in video that results from the digitization of an analog
28430 source it can indicate concealment from a dropout compensator.
28431
28432 brng
28433 Identify pixels that fall outside of legal broadcast range.
28434
28435 color, c
28436 Set the highlight color for the out option. The default color is
28437 yellow.
28438
28439 Examples
28440
28441 • Output data of various video metrics:
28442
28443 ffprobe -f lavfi movie=example.mov,signalstats="stat=tout+vrep+brng" -show_frames
28444
28445 • Output specific data about the minimum and maximum values of the Y
28446 plane per frame:
28447
28448 ffprobe -f lavfi movie=example.mov,signalstats -show_entries frame_tags=lavfi.signalstats.YMAX,lavfi.signalstats.YMIN
28449
28450 • Playback video while highlighting pixels that are outside of
28451 broadcast range in red.
28452
28453 ffplay example.mov -vf signalstats="out=brng:color=red"
28454
28455 • Playback video with signalstats metadata drawn over the frame.
28456
28457 ffplay example.mov -vf signalstats=stat=brng+vrep+tout,drawtext=fontfile=FreeSerif.ttf:textfile=signalstat_drawtext.txt
28458
28459 The contents of signalstat_drawtext.txt used in the command are:
28460
28461 time %{pts:hms}
28462 Y (%{metadata:lavfi.signalstats.YMIN}-%{metadata:lavfi.signalstats.YMAX})
28463 U (%{metadata:lavfi.signalstats.UMIN}-%{metadata:lavfi.signalstats.UMAX})
28464 V (%{metadata:lavfi.signalstats.VMIN}-%{metadata:lavfi.signalstats.VMAX})
28465 saturation maximum: %{metadata:lavfi.signalstats.SATMAX}
28466
28467 signature
28468 Calculates the MPEG-7 Video Signature. The filter can handle more than
28469 one input. In this case the matching between the inputs can be
28470 calculated additionally. The filter always passes through the first
28471 input. The signature of each stream can be written into a file.
28472
28473 It accepts the following options:
28474
28475 detectmode
28476 Enable or disable the matching process.
28477
28478 Available values are:
28479
28480 off Disable the calculation of a matching (default).
28481
28482 full
28483 Calculate the matching for the whole video and output whether
28484 the whole video matches or only parts.
28485
28486 fast
28487 Calculate only until a matching is found or the video ends.
28488 Should be faster in some cases.
28489
28490 nb_inputs
28491 Set the number of inputs. The option value must be a non negative
28492 integer. Default value is 1.
28493
28494 filename
28495 Set the path to which the output is written. If there is more than
28496 one input, the path must be a prototype, i.e. must contain %d or
28497 %0nd (where n is a positive integer), that will be replaced with
28498 the input number. If no filename is specified, no output will be
28499 written. This is the default.
28500
28501 format
28502 Choose the output format.
28503
28504 Available values are:
28505
28506 binary
28507 Use the specified binary representation (default).
28508
28509 xml Use the specified xml representation.
28510
28511 th_d
28512 Set threshold to detect one word as similar. The option value must
28513 be an integer greater than zero. The default value is 9000.
28514
28515 th_dc
28516 Set threshold to detect all words as similar. The option value must
28517 be an integer greater than zero. The default value is 60000.
28518
28519 th_xh
28520 Set threshold to detect frames as similar. The option value must be
28521 an integer greater than zero. The default value is 116.
28522
28523 th_di
28524 Set the minimum length of a sequence in frames to recognize it as
28525 matching sequence. The option value must be a non negative integer
28526 value. The default value is 0.
28527
28528 th_it
28529 Set the minimum relation, that matching frames to all frames must
28530 have. The option value must be a double value between 0 and 1. The
28531 default value is 0.5.
28532
28533 Examples
28534
28535 • To calculate the signature of an input video and store it in
28536 signature.bin:
28537
28538 ffmpeg -i input.mkv -vf signature=filename=signature.bin -map 0:v -f null -
28539
28540 • To detect whether two videos match and store the signatures in XML
28541 format in signature0.xml and signature1.xml:
28542
28543 ffmpeg -i input1.mkv -i input2.mkv -filter_complex "[0:v][1:v] signature=nb_inputs=2:detectmode=full:format=xml:filename=signature%d.xml" -map :v -f null -
28544
28545 siti
28546 Calculate Spatial Info (SI) and Temporal Info (TI) scores for a video,
28547 as defined in ITU-T P.910: Subjective video quality assessment methods
28548 for multimedia applications. Available PDF at
28549 <https://www.itu.int/rec/T-REC-P.910-199909-S/en >.
28550
28551 It accepts the following option:
28552
28553 print_summary
28554 If set to 1, Summary statistics will be printed to the console.
28555 Default 0.
28556
28557 Examples
28558
28559 • To calculate SI/TI metrics and print summary:
28560
28561 ffmpeg -i input.mp4 -vf siti=print_summary=1 -f null -
28562
28563 smartblur
28564 Blur the input video without impacting the outlines.
28565
28566 It accepts the following options:
28567
28568 luma_radius, lr
28569 Set the luma radius. The option value must be a float number in the
28570 range [0.1,5.0] that specifies the variance of the gaussian filter
28571 used to blur the image (slower if larger). Default value is 1.0.
28572
28573 luma_strength, ls
28574 Set the luma strength. The option value must be a float number in
28575 the range [-1.0,1.0] that configures the blurring. A value included
28576 in [0.0,1.0] will blur the image whereas a value included in
28577 [-1.0,0.0] will sharpen the image. Default value is 1.0.
28578
28579 luma_threshold, lt
28580 Set the luma threshold used as a coefficient to determine whether a
28581 pixel should be blurred or not. The option value must be an integer
28582 in the range [-30,30]. A value of 0 will filter all the image, a
28583 value included in [0,30] will filter flat areas and a value
28584 included in [-30,0] will filter edges. Default value is 0.
28585
28586 chroma_radius, cr
28587 Set the chroma radius. The option value must be a float number in
28588 the range [0.1,5.0] that specifies the variance of the gaussian
28589 filter used to blur the image (slower if larger). Default value is
28590 luma_radius.
28591
28592 chroma_strength, cs
28593 Set the chroma strength. The option value must be a float number in
28594 the range [-1.0,1.0] that configures the blurring. A value included
28595 in [0.0,1.0] will blur the image whereas a value included in
28596 [-1.0,0.0] will sharpen the image. Default value is luma_strength.
28597
28598 chroma_threshold, ct
28599 Set the chroma threshold used as a coefficient to determine whether
28600 a pixel should be blurred or not. The option value must be an
28601 integer in the range [-30,30]. A value of 0 will filter all the
28602 image, a value included in [0,30] will filter flat areas and a
28603 value included in [-30,0] will filter edges. Default value is
28604 luma_threshold.
28605
28606 If a chroma option is not explicitly set, the corresponding luma value
28607 is set.
28608
28609 sobel
28610 Apply sobel operator to input video stream.
28611
28612 The filter accepts the following option:
28613
28614 planes
28615 Set which planes will be processed, unprocessed planes will be
28616 copied. By default value 0xf, all planes will be processed.
28617
28618 scale
28619 Set value which will be multiplied with filtered result.
28620
28621 delta
28622 Set value which will be added to filtered result.
28623
28624 Commands
28625
28626 This filter supports the all above options as commands.
28627
28628 spp
28629 Apply a simple postprocessing filter that compresses and decompresses
28630 the image at several (or - in the case of quality level 6 - all) shifts
28631 and average the results.
28632
28633 The filter accepts the following options:
28634
28635 quality
28636 Set quality. This option defines the number of levels for
28637 averaging. It accepts an integer in the range 0-6. If set to 0, the
28638 filter will have no effect. A value of 6 means the higher quality.
28639 For each increment of that value the speed drops by a factor of
28640 approximately 2. Default value is 3.
28641
28642 qp Force a constant quantization parameter. If not set, the filter
28643 will use the QP from the video stream (if available).
28644
28645 mode
28646 Set thresholding mode. Available modes are:
28647
28648 hard
28649 Set hard thresholding (default).
28650
28651 soft
28652 Set soft thresholding (better de-ringing effect, but likely
28653 blurrier).
28654
28655 use_bframe_qp
28656 Enable the use of the QP from the B-Frames if set to 1. Using this
28657 option may cause flicker since the B-Frames have often larger QP.
28658 Default is 0 (not enabled).
28659
28660 Commands
28661
28662 This filter supports the following commands:
28663
28664 quality, level
28665 Set quality level. The value "max" can be used to set the maximum
28666 level, currently 6.
28667
28668 sr
28669 Scale the input by applying one of the super-resolution methods based
28670 on convolutional neural networks. Supported models:
28671
28672 • Super-Resolution Convolutional Neural Network model (SRCNN). See
28673 <https://arxiv.org/abs/1501.00092>.
28674
28675 • Efficient Sub-Pixel Convolutional Neural Network model (ESPCN).
28676 See <https://arxiv.org/abs/1609.05158>.
28677
28678 Training scripts as well as scripts for model file (.pb) saving can be
28679 found at <https://github.com/XueweiMeng/sr/tree/sr_dnn_native>.
28680 Original repository is at
28681 <https://github.com/HighVoltageRocknRoll/sr.git>.
28682
28683 Native model files (.model) can be generated from TensorFlow model
28684 files (.pb) by using tools/python/convert.py
28685
28686 The filter accepts the following options:
28687
28688 dnn_backend
28689 Specify which DNN backend to use for model loading and execution.
28690 This option accepts the following values:
28691
28692 native
28693 Native implementation of DNN loading and execution.
28694
28695 tensorflow
28696 TensorFlow backend. To enable this backend you need to install
28697 the TensorFlow for C library (see
28698 <https://www.tensorflow.org/install/lang_c>) and configure
28699 FFmpeg with "--enable-libtensorflow"
28700
28701 Default value is native.
28702
28703 model
28704 Set path to model file specifying network architecture and its
28705 parameters. Note that different backends use different file
28706 formats. TensorFlow backend can load files for both formats, while
28707 native backend can load files for only its format.
28708
28709 scale_factor
28710 Set scale factor for SRCNN model. Allowed values are 2, 3 and 4.
28711 Default value is 2. Scale factor is necessary for SRCNN model,
28712 because it accepts input upscaled using bicubic upscaling with
28713 proper scale factor.
28714
28715 To get full functionality (such as async execution), please use the
28716 dnn_processing filter.
28717
28718 ssim
28719 Obtain the SSIM (Structural SImilarity Metric) between two input
28720 videos.
28721
28722 This filter takes in input two input videos, the first input is
28723 considered the "main" source and is passed unchanged to the output. The
28724 second input is used as a "reference" video for computing the SSIM.
28725
28726 Both video inputs must have the same resolution and pixel format for
28727 this filter to work correctly. Also it assumes that both inputs have
28728 the same number of frames, which are compared one by one.
28729
28730 The filter stores the calculated SSIM of each frame.
28731
28732 The description of the accepted parameters follows.
28733
28734 stats_file, f
28735 If specified the filter will use the named file to save the SSIM of
28736 each individual frame. When filename equals "-" the data is sent to
28737 standard output.
28738
28739 The file printed if stats_file is selected, contains a sequence of
28740 key/value pairs of the form key:value for each compared couple of
28741 frames.
28742
28743 A description of each shown parameter follows:
28744
28745 n sequential number of the input frame, starting from 1
28746
28747 Y, U, V, R, G, B
28748 SSIM of the compared frames for the component specified by the
28749 suffix.
28750
28751 All SSIM of the compared frames for the whole frame.
28752
28753 dB Same as above but in dB representation.
28754
28755 This filter also supports the framesync options.
28756
28757 Examples
28758
28759 • For example:
28760
28761 movie=ref_movie.mpg, setpts=PTS-STARTPTS [main];
28762 [main][ref] ssim="stats_file=stats.log" [out]
28763
28764 On this example the input file being processed is compared with the
28765 reference file ref_movie.mpg. The SSIM of each individual frame is
28766 stored in stats.log.
28767
28768 • Another example with both psnr and ssim at same time:
28769
28770 ffmpeg -i main.mpg -i ref.mpg -lavfi "ssim;[0:v][1:v]psnr" -f null -
28771
28772 • Another example with different containers:
28773
28774 ffmpeg -i main.mpg -i ref.mkv -lavfi "[0:v]settb=AVTB,setpts=PTS-STARTPTS[main];[1:v]settb=AVTB,setpts=PTS-STARTPTS[ref];[main][ref]ssim" -f null -
28775
28776 stereo3d
28777 Convert between different stereoscopic image formats.
28778
28779 The filters accept the following options:
28780
28781 in Set stereoscopic image format of input.
28782
28783 Available values for input image formats are:
28784
28785 sbsl
28786 side by side parallel (left eye left, right eye right)
28787
28788 sbsr
28789 side by side crosseye (right eye left, left eye right)
28790
28791 sbs2l
28792 side by side parallel with half width resolution (left eye
28793 left, right eye right)
28794
28795 sbs2r
28796 side by side crosseye with half width resolution (right eye
28797 left, left eye right)
28798
28799 abl
28800 tbl above-below (left eye above, right eye below)
28801
28802 abr
28803 tbr above-below (right eye above, left eye below)
28804
28805 ab2l
28806 tb2l
28807 above-below with half height resolution (left eye above, right
28808 eye below)
28809
28810 ab2r
28811 tb2r
28812 above-below with half height resolution (right eye above, left
28813 eye below)
28814
28815 al alternating frames (left eye first, right eye second)
28816
28817 ar alternating frames (right eye first, left eye second)
28818
28819 irl interleaved rows (left eye has top row, right eye starts on
28820 next row)
28821
28822 irr interleaved rows (right eye has top row, left eye starts on
28823 next row)
28824
28825 icl interleaved columns, left eye first
28826
28827 icr interleaved columns, right eye first
28828
28829 Default value is sbsl.
28830
28831 out Set stereoscopic image format of output.
28832
28833 sbsl
28834 side by side parallel (left eye left, right eye right)
28835
28836 sbsr
28837 side by side crosseye (right eye left, left eye right)
28838
28839 sbs2l
28840 side by side parallel with half width resolution (left eye
28841 left, right eye right)
28842
28843 sbs2r
28844 side by side crosseye with half width resolution (right eye
28845 left, left eye right)
28846
28847 abl
28848 tbl above-below (left eye above, right eye below)
28849
28850 abr
28851 tbr above-below (right eye above, left eye below)
28852
28853 ab2l
28854 tb2l
28855 above-below with half height resolution (left eye above, right
28856 eye below)
28857
28858 ab2r
28859 tb2r
28860 above-below with half height resolution (right eye above, left
28861 eye below)
28862
28863 al alternating frames (left eye first, right eye second)
28864
28865 ar alternating frames (right eye first, left eye second)
28866
28867 irl interleaved rows (left eye has top row, right eye starts on
28868 next row)
28869
28870 irr interleaved rows (right eye has top row, left eye starts on
28871 next row)
28872
28873 arbg
28874 anaglyph red/blue gray (red filter on left eye, blue filter on
28875 right eye)
28876
28877 argg
28878 anaglyph red/green gray (red filter on left eye, green filter
28879 on right eye)
28880
28881 arcg
28882 anaglyph red/cyan gray (red filter on left eye, cyan filter on
28883 right eye)
28884
28885 arch
28886 anaglyph red/cyan half colored (red filter on left eye, cyan
28887 filter on right eye)
28888
28889 arcc
28890 anaglyph red/cyan color (red filter on left eye, cyan filter on
28891 right eye)
28892
28893 arcd
28894 anaglyph red/cyan color optimized with the least squares
28895 projection of dubois (red filter on left eye, cyan filter on
28896 right eye)
28897
28898 agmg
28899 anaglyph green/magenta gray (green filter on left eye, magenta
28900 filter on right eye)
28901
28902 agmh
28903 anaglyph green/magenta half colored (green filter on left eye,
28904 magenta filter on right eye)
28905
28906 agmc
28907 anaglyph green/magenta colored (green filter on left eye,
28908 magenta filter on right eye)
28909
28910 agmd
28911 anaglyph green/magenta color optimized with the least squares
28912 projection of dubois (green filter on left eye, magenta filter
28913 on right eye)
28914
28915 aybg
28916 anaglyph yellow/blue gray (yellow filter on left eye, blue
28917 filter on right eye)
28918
28919 aybh
28920 anaglyph yellow/blue half colored (yellow filter on left eye,
28921 blue filter on right eye)
28922
28923 aybc
28924 anaglyph yellow/blue colored (yellow filter on left eye, blue
28925 filter on right eye)
28926
28927 aybd
28928 anaglyph yellow/blue color optimized with the least squares
28929 projection of dubois (yellow filter on left eye, blue filter on
28930 right eye)
28931
28932 ml mono output (left eye only)
28933
28934 mr mono output (right eye only)
28935
28936 chl checkerboard, left eye first
28937
28938 chr checkerboard, right eye first
28939
28940 icl interleaved columns, left eye first
28941
28942 icr interleaved columns, right eye first
28943
28944 hdmi
28945 HDMI frame pack
28946
28947 Default value is arcd.
28948
28949 Examples
28950
28951 • Convert input video from side by side parallel to anaglyph
28952 yellow/blue dubois:
28953
28954 stereo3d=sbsl:aybd
28955
28956 • Convert input video from above below (left eye above, right eye
28957 below) to side by side crosseye.
28958
28959 stereo3d=abl:sbsr
28960
28961 streamselect, astreamselect
28962 Select video or audio streams.
28963
28964 The filter accepts the following options:
28965
28966 inputs
28967 Set number of inputs. Default is 2.
28968
28969 map Set input indexes to remap to outputs.
28970
28971 Commands
28972
28973 The "streamselect" and "astreamselect" filter supports the following
28974 commands:
28975
28976 map Set input indexes to remap to outputs.
28977
28978 Examples
28979
28980 • Select first 5 seconds 1st stream and rest of time 2nd stream:
28981
28982 sendcmd='5.0 streamselect map 1',streamselect=inputs=2:map=0
28983
28984 • Same as above, but for audio:
28985
28986 asendcmd='5.0 astreamselect map 1',astreamselect=inputs=2:map=0
28987
28988 subtitles
28989 Draw subtitles on top of input video using the libass library.
28990
28991 To enable compilation of this filter you need to configure FFmpeg with
28992 "--enable-libass". This filter also requires a build with libavcodec
28993 and libavformat to convert the passed subtitles file to ASS (Advanced
28994 Substation Alpha) subtitles format.
28995
28996 The filter accepts the following options:
28997
28998 filename, f
28999 Set the filename of the subtitle file to read. It must be
29000 specified.
29001
29002 original_size
29003 Specify the size of the original video, the video for which the ASS
29004 file was composed. For the syntax of this option, check the "Video
29005 size" section in the ffmpeg-utils manual. Due to a misdesign in
29006 ASS aspect ratio arithmetic, this is necessary to correctly scale
29007 the fonts if the aspect ratio has been changed.
29008
29009 fontsdir
29010 Set a directory path containing fonts that can be used by the
29011 filter. These fonts will be used in addition to whatever the font
29012 provider uses.
29013
29014 alpha
29015 Process alpha channel, by default alpha channel is untouched.
29016
29017 charenc
29018 Set subtitles input character encoding. "subtitles" filter only.
29019 Only useful if not UTF-8.
29020
29021 stream_index, si
29022 Set subtitles stream index. "subtitles" filter only.
29023
29024 force_style
29025 Override default style or script info parameters of the subtitles.
29026 It accepts a string containing ASS style format "KEY=VALUE" couples
29027 separated by ",".
29028
29029 If the first key is not specified, it is assumed that the first value
29030 specifies the filename.
29031
29032 For example, to render the file sub.srt on top of the input video, use
29033 the command:
29034
29035 subtitles=sub.srt
29036
29037 which is equivalent to:
29038
29039 subtitles=filename=sub.srt
29040
29041 To render the default subtitles stream from file video.mkv, use:
29042
29043 subtitles=video.mkv
29044
29045 To render the second subtitles stream from that file, use:
29046
29047 subtitles=video.mkv:si=1
29048
29049 To make the subtitles stream from sub.srt appear in 80% transparent
29050 blue "DejaVu Serif", use:
29051
29052 subtitles=sub.srt:force_style='Fontname=DejaVu Serif,PrimaryColour=&HCCFF0000'
29053
29054 super2xsai
29055 Scale the input by 2x and smooth using the Super2xSaI (Scale and
29056 Interpolate) pixel art scaling algorithm.
29057
29058 Useful for enlarging pixel art images without reducing sharpness.
29059
29060 swaprect
29061 Swap two rectangular objects in video.
29062
29063 This filter accepts the following options:
29064
29065 w Set object width.
29066
29067 h Set object height.
29068
29069 x1 Set 1st rect x coordinate.
29070
29071 y1 Set 1st rect y coordinate.
29072
29073 x2 Set 2nd rect x coordinate.
29074
29075 y2 Set 2nd rect y coordinate.
29076
29077 All expressions are evaluated once for each frame.
29078
29079 The all options are expressions containing the following constants:
29080
29081 w
29082 h The input width and height.
29083
29084 a same as w / h
29085
29086 sar input sample aspect ratio
29087
29088 dar input display aspect ratio, it is the same as (w / h) * sar
29089
29090 n The number of the input frame, starting from 0.
29091
29092 t The timestamp expressed in seconds. It's NAN if the input timestamp
29093 is unknown.
29094
29095 pos the position in the file of the input frame, NAN if unknown
29096
29097 Commands
29098
29099 This filter supports the all above options as commands.
29100
29101 swapuv
29102 Swap U & V plane.
29103
29104 tblend
29105 Blend successive video frames.
29106
29107 See blend
29108
29109 telecine
29110 Apply telecine process to the video.
29111
29112 This filter accepts the following options:
29113
29114 first_field
29115 top, t
29116 top field first
29117
29118 bottom, b
29119 bottom field first The default value is "top".
29120
29121 pattern
29122 A string of numbers representing the pulldown pattern you wish to
29123 apply. The default value is 23.
29124
29125 Some typical patterns:
29126
29127 NTSC output (30i):
29128 27.5p: 32222
29129 24p: 23 (classic)
29130 24p: 2332 (preferred)
29131 20p: 33
29132 18p: 334
29133 16p: 3444
29134
29135 PAL output (25i):
29136 27.5p: 12222
29137 24p: 222222222223 ("Euro pulldown")
29138 16.67p: 33
29139 16p: 33333334
29140
29141 thistogram
29142 Compute and draw a color distribution histogram for the input video
29143 across time.
29144
29145 Unlike histogram video filter which only shows histogram of single
29146 input frame at certain time, this filter shows also past histograms of
29147 number of frames defined by "width" option.
29148
29149 The computed histogram is a representation of the color component
29150 distribution in an image.
29151
29152 The filter accepts the following options:
29153
29154 width, w
29155 Set width of single color component output. Default value is 0.
29156 Value of 0 means width will be picked from input video. This also
29157 set number of passed histograms to keep. Allowed range is [0,
29158 8192].
29159
29160 display_mode, d
29161 Set display mode. It accepts the following values:
29162
29163 stack
29164 Per color component graphs are placed below each other.
29165
29166 parade
29167 Per color component graphs are placed side by side.
29168
29169 overlay
29170 Presents information identical to that in the "parade", except
29171 that the graphs representing color components are superimposed
29172 directly over one another.
29173
29174 Default is "stack".
29175
29176 levels_mode, m
29177 Set mode. Can be either "linear", or "logarithmic". Default is
29178 "linear".
29179
29180 components, c
29181 Set what color components to display. Default is 7.
29182
29183 bgopacity, b
29184 Set background opacity. Default is 0.9.
29185
29186 envelope, e
29187 Show envelope. Default is disabled.
29188
29189 ecolor, ec
29190 Set envelope color. Default is "gold".
29191
29192 slide
29193 Set slide mode.
29194
29195 Available values for slide is:
29196
29197 frame
29198 Draw new frame when right border is reached.
29199
29200 replace
29201 Replace old columns with new ones.
29202
29203 scroll
29204 Scroll from right to left.
29205
29206 rscroll
29207 Scroll from left to right.
29208
29209 picture
29210 Draw single picture.
29211
29212 Default is "replace".
29213
29214 threshold
29215 Apply threshold effect to video stream.
29216
29217 This filter needs four video streams to perform thresholding. First
29218 stream is stream we are filtering. Second stream is holding threshold
29219 values, third stream is holding min values, and last, fourth stream is
29220 holding max values.
29221
29222 The filter accepts the following option:
29223
29224 planes
29225 Set which planes will be processed, unprocessed planes will be
29226 copied. By default value 0xf, all planes will be processed.
29227
29228 For example if first stream pixel's component value is less then
29229 threshold value of pixel component from 2nd threshold stream, third
29230 stream value will picked, otherwise fourth stream pixel component value
29231 will be picked.
29232
29233 Using color source filter one can perform various types of
29234 thresholding:
29235
29236 Commands
29237
29238 This filter supports the all options as commands.
29239
29240 Examples
29241
29242 • Binary threshold, using gray color as threshold:
29243
29244 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=black -f lavfi -i color=white -lavfi threshold output.avi
29245
29246 • Inverted binary threshold, using gray color as threshold:
29247
29248 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -f lavfi -i color=black -lavfi threshold output.avi
29249
29250 • Truncate binary threshold, using gray color as threshold:
29251
29252 ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=gray -lavfi threshold output.avi
29253
29254 • Threshold to zero, using gray color as threshold:
29255
29256 ffmpeg -i 320x240.avi -f lavfi -i color=gray -f lavfi -i color=white -i 320x240.avi -lavfi threshold output.avi
29257
29258 • Inverted threshold to zero, using gray color as threshold:
29259
29260 ffmpeg -i 320x240.avi -f lavfi -i color=gray -i 320x240.avi -f lavfi -i color=white -lavfi threshold output.avi
29261
29262 thumbnail
29263 Select the most representative frame in a given sequence of consecutive
29264 frames.
29265
29266 The filter accepts the following options:
29267
29268 n Set the frames batch size to analyze; in a set of n frames, the
29269 filter will pick one of them, and then handle the next batch of n
29270 frames until the end. Default is 100.
29271
29272 log Set the log level to display picked frame stats. Default is
29273 "info".
29274
29275 Since the filter keeps track of the whole frames sequence, a bigger n
29276 value will result in a higher memory usage, so a high value is not
29277 recommended.
29278
29279 Examples
29280
29281 • Extract one picture each 50 frames:
29282
29283 thumbnail=50
29284
29285 • Complete example of a thumbnail creation with ffmpeg:
29286
29287 ffmpeg -i in.avi -vf thumbnail,scale=300:200 -frames:v 1 out.png
29288
29289 tile
29290 Tile several successive frames together.
29291
29292 The untile filter can do the reverse.
29293
29294 The filter accepts the following options:
29295
29296 layout
29297 Set the grid size in the form "COLUMNSxROWS". Range is upto
29298 UINT_MAX cells. Default is "6x5".
29299
29300 nb_frames
29301 Set the maximum number of frames to render in the given area. It
29302 must be less than or equal to wxh. The default value is 0, meaning
29303 all the area will be used.
29304
29305 margin
29306 Set the outer border margin in pixels. Range is 0 to 1024. Default
29307 is 0.
29308
29309 padding
29310 Set the inner border thickness (i.e. the number of pixels between
29311 frames). For more advanced padding options (such as having
29312 different values for the edges), refer to the pad video filter.
29313 Range is 0 to 1024. Default is 0.
29314
29315 color
29316 Specify the color of the unused area. For the syntax of this
29317 option, check the "Color" section in the ffmpeg-utils manual. The
29318 default value of color is "black".
29319
29320 overlap
29321 Set the number of frames to overlap when tiling several successive
29322 frames together. The value must be between 0 and nb_frames - 1.
29323 Default is 0.
29324
29325 init_padding
29326 Set the number of frames to initially be empty before displaying
29327 first output frame. This controls how soon will one get first
29328 output frame. The value must be between 0 and nb_frames - 1.
29329 Default is 0.
29330
29331 Examples
29332
29333 • Produce 8x8 PNG tiles of all keyframes (-skip_frame nokey) in a
29334 movie:
29335
29336 ffmpeg -skip_frame nokey -i file.avi -vf 'scale=128:72,tile=8x8' -an -vsync 0 keyframes%03d.png
29337
29338 The -vsync 0 is necessary to prevent ffmpeg from duplicating each
29339 output frame to accommodate the originally detected frame rate.
29340
29341 • Display 5 pictures in an area of "3x2" frames, with 7 pixels
29342 between them, and 2 pixels of initial margin, using mixed flat and
29343 named options:
29344
29345 tile=3x2:nb_frames=5:padding=7:margin=2
29346
29347 tinterlace
29348 Perform various types of temporal field interlacing.
29349
29350 Frames are counted starting from 1, so the first input frame is
29351 considered odd.
29352
29353 The filter accepts the following options:
29354
29355 mode
29356 Specify the mode of the interlacing. This option can also be
29357 specified as a value alone. See below for a list of values for this
29358 option.
29359
29360 Available values are:
29361
29362 merge, 0
29363 Move odd frames into the upper field, even into the lower
29364 field, generating a double height frame at half frame rate.
29365
29366 ------> time
29367 Input:
29368 Frame 1 Frame 2 Frame 3 Frame 4
29369
29370 11111 22222 33333 44444
29371 11111 22222 33333 44444
29372 11111 22222 33333 44444
29373 11111 22222 33333 44444
29374
29375 Output:
29376 11111 33333
29377 22222 44444
29378 11111 33333
29379 22222 44444
29380 11111 33333
29381 22222 44444
29382 11111 33333
29383 22222 44444
29384
29385 drop_even, 1
29386 Only output odd frames, even frames are dropped, generating a
29387 frame with unchanged height at half frame rate.
29388
29389 ------> time
29390 Input:
29391 Frame 1 Frame 2 Frame 3 Frame 4
29392
29393 11111 22222 33333 44444
29394 11111 22222 33333 44444
29395 11111 22222 33333 44444
29396 11111 22222 33333 44444
29397
29398 Output:
29399 11111 33333
29400 11111 33333
29401 11111 33333
29402 11111 33333
29403
29404 drop_odd, 2
29405 Only output even frames, odd frames are dropped, generating a
29406 frame with unchanged height at half frame rate.
29407
29408 ------> time
29409 Input:
29410 Frame 1 Frame 2 Frame 3 Frame 4
29411
29412 11111 22222 33333 44444
29413 11111 22222 33333 44444
29414 11111 22222 33333 44444
29415 11111 22222 33333 44444
29416
29417 Output:
29418 22222 44444
29419 22222 44444
29420 22222 44444
29421 22222 44444
29422
29423 pad, 3
29424 Expand each frame to full height, but pad alternate lines with
29425 black, generating a frame with double height at the same input
29426 frame rate.
29427
29428 ------> time
29429 Input:
29430 Frame 1 Frame 2 Frame 3 Frame 4
29431
29432 11111 22222 33333 44444
29433 11111 22222 33333 44444
29434 11111 22222 33333 44444
29435 11111 22222 33333 44444
29436
29437 Output:
29438 11111 ..... 33333 .....
29439 ..... 22222 ..... 44444
29440 11111 ..... 33333 .....
29441 ..... 22222 ..... 44444
29442 11111 ..... 33333 .....
29443 ..... 22222 ..... 44444
29444 11111 ..... 33333 .....
29445 ..... 22222 ..... 44444
29446
29447 interleave_top, 4
29448 Interleave the upper field from odd frames with the lower field
29449 from even frames, generating a frame with unchanged height at
29450 half frame rate.
29451
29452 ------> time
29453 Input:
29454 Frame 1 Frame 2 Frame 3 Frame 4
29455
29456 11111<- 22222 33333<- 44444
29457 11111 22222<- 33333 44444<-
29458 11111<- 22222 33333<- 44444
29459 11111 22222<- 33333 44444<-
29460
29461 Output:
29462 11111 33333
29463 22222 44444
29464 11111 33333
29465 22222 44444
29466
29467 interleave_bottom, 5
29468 Interleave the lower field from odd frames with the upper field
29469 from even frames, generating a frame with unchanged height at
29470 half frame rate.
29471
29472 ------> time
29473 Input:
29474 Frame 1 Frame 2 Frame 3 Frame 4
29475
29476 11111 22222<- 33333 44444<-
29477 11111<- 22222 33333<- 44444
29478 11111 22222<- 33333 44444<-
29479 11111<- 22222 33333<- 44444
29480
29481 Output:
29482 22222 44444
29483 11111 33333
29484 22222 44444
29485 11111 33333
29486
29487 interlacex2, 6
29488 Double frame rate with unchanged height. Frames are inserted
29489 each containing the second temporal field from the previous
29490 input frame and the first temporal field from the next input
29491 frame. This mode relies on the top_field_first flag. Useful for
29492 interlaced video displays with no field synchronisation.
29493
29494 ------> time
29495 Input:
29496 Frame 1 Frame 2 Frame 3 Frame 4
29497
29498 11111 22222 33333 44444
29499 11111 22222 33333 44444
29500 11111 22222 33333 44444
29501 11111 22222 33333 44444
29502
29503 Output:
29504 11111 22222 22222 33333 33333 44444 44444
29505 11111 11111 22222 22222 33333 33333 44444
29506 11111 22222 22222 33333 33333 44444 44444
29507 11111 11111 22222 22222 33333 33333 44444
29508
29509 mergex2, 7
29510 Move odd frames into the upper field, even into the lower
29511 field, generating a double height frame at same frame rate.
29512
29513 ------> time
29514 Input:
29515 Frame 1 Frame 2 Frame 3 Frame 4
29516
29517 11111 22222 33333 44444
29518 11111 22222 33333 44444
29519 11111 22222 33333 44444
29520 11111 22222 33333 44444
29521
29522 Output:
29523 11111 33333 33333 55555
29524 22222 22222 44444 44444
29525 11111 33333 33333 55555
29526 22222 22222 44444 44444
29527 11111 33333 33333 55555
29528 22222 22222 44444 44444
29529 11111 33333 33333 55555
29530 22222 22222 44444 44444
29531
29532 Numeric values are deprecated but are accepted for backward
29533 compatibility reasons.
29534
29535 Default mode is "merge".
29536
29537 flags
29538 Specify flags influencing the filter process.
29539
29540 Available value for flags is:
29541
29542 low_pass_filter, vlpf
29543 Enable linear vertical low-pass filtering in the filter.
29544 Vertical low-pass filtering is required when creating an
29545 interlaced destination from a progressive source which contains
29546 high-frequency vertical detail. Filtering will reduce interlace
29547 'twitter' and Moire patterning.
29548
29549 complex_filter, cvlpf
29550 Enable complex vertical low-pass filtering. This will slightly
29551 less reduce interlace 'twitter' and Moire patterning but better
29552 retain detail and subjective sharpness impression.
29553
29554 bypass_il
29555 Bypass already interlaced frames, only adjust the frame rate.
29556
29557 Vertical low-pass filtering and bypassing already interlaced frames
29558 can only be enabled for mode interleave_top and interleave_bottom.
29559
29560 tmedian
29561 Pick median pixels from several successive input video frames.
29562
29563 The filter accepts the following options:
29564
29565 radius
29566 Set radius of median filter. Default is 1. Allowed range is from 1
29567 to 127.
29568
29569 planes
29570 Set which planes to filter. Default value is 15, by which all
29571 planes are processed.
29572
29573 percentile
29574 Set median percentile. Default value is 0.5. Default value of 0.5
29575 will pick always median values, while 0 will pick minimum values,
29576 and 1 maximum values.
29577
29578 Commands
29579
29580 This filter supports all above options as commands, excluding option
29581 "radius".
29582
29583 tmidequalizer
29584 Apply Temporal Midway Video Equalization effect.
29585
29586 Midway Video Equalization adjusts a sequence of video frames to have
29587 the same histograms, while maintaining their dynamics as much as
29588 possible. It's useful for e.g. matching exposures from a video frames
29589 sequence.
29590
29591 This filter accepts the following option:
29592
29593 radius
29594 Set filtering radius. Default is 5. Allowed range is from 1 to 127.
29595
29596 sigma
29597 Set filtering sigma. Default is 0.5. This controls strength of
29598 filtering. Setting this option to 0 effectively does nothing.
29599
29600 planes
29601 Set which planes to process. Default is 15, which is all available
29602 planes.
29603
29604 tmix
29605 Mix successive video frames.
29606
29607 A description of the accepted options follows.
29608
29609 frames
29610 The number of successive frames to mix. If unspecified, it defaults
29611 to 3.
29612
29613 weights
29614 Specify weight of each input video frame. Each weight is separated
29615 by space. If number of weights is smaller than number of frames
29616 last specified weight will be used for all remaining unset weights.
29617
29618 scale
29619 Specify scale, if it is set it will be multiplied with sum of each
29620 weight multiplied with pixel values to give final destination pixel
29621 value. By default scale is auto scaled to sum of weights.
29622
29623 planes
29624 Set which planes to filter. Default is all. Allowed range is from 0
29625 to 15.
29626
29627 Examples
29628
29629 • Average 7 successive frames:
29630
29631 tmix=frames=7:weights="1 1 1 1 1 1 1"
29632
29633 • Apply simple temporal convolution:
29634
29635 tmix=frames=3:weights="-1 3 -1"
29636
29637 • Similar as above but only showing temporal differences:
29638
29639 tmix=frames=3:weights="-1 2 -1":scale=1
29640
29641 Commands
29642
29643 This filter supports the following commands:
29644
29645 weights
29646 scale
29647 planes
29648 Syntax is same as option with same name.
29649
29650 tonemap
29651 Tone map colors from different dynamic ranges.
29652
29653 This filter expects data in single precision floating point, as it
29654 needs to operate on (and can output) out-of-range values. Another
29655 filter, such as zscale, is needed to convert the resulting frame to a
29656 usable format.
29657
29658 The tonemapping algorithms implemented only work on linear light, so
29659 input data should be linearized beforehand (and possibly correctly
29660 tagged).
29661
29662 ffmpeg -i INPUT -vf zscale=transfer=linear,tonemap=clip,zscale=transfer=bt709,format=yuv420p OUTPUT
29663
29664 Options
29665
29666 The filter accepts the following options.
29667
29668 tonemap
29669 Set the tone map algorithm to use.
29670
29671 Possible values are:
29672
29673 none
29674 Do not apply any tone map, only desaturate overbright pixels.
29675
29676 clip
29677 Hard-clip any out-of-range values. Use it for perfect color
29678 accuracy for in-range values, while distorting out-of-range
29679 values.
29680
29681 linear
29682 Stretch the entire reference gamut to a linear multiple of the
29683 display.
29684
29685 gamma
29686 Fit a logarithmic transfer between the tone curves.
29687
29688 reinhard
29689 Preserve overall image brightness with a simple curve, using
29690 nonlinear contrast, which results in flattening details and
29691 degrading color accuracy.
29692
29693 hable
29694 Preserve both dark and bright details better than reinhard, at
29695 the cost of slightly darkening everything. Use it when detail
29696 preservation is more important than color and brightness
29697 accuracy.
29698
29699 mobius
29700 Smoothly map out-of-range values, while retaining contrast and
29701 colors for in-range material as much as possible. Use it when
29702 color accuracy is more important than detail preservation.
29703
29704 Default is none.
29705
29706 param
29707 Tune the tone mapping algorithm.
29708
29709 This affects the following algorithms:
29710
29711 none
29712 Ignored.
29713
29714 linear
29715 Specifies the scale factor to use while stretching. Default to
29716 1.0.
29717
29718 gamma
29719 Specifies the exponent of the function. Default to 1.8.
29720
29721 clip
29722 Specify an extra linear coefficient to multiply into the signal
29723 before clipping. Default to 1.0.
29724
29725 reinhard
29726 Specify the local contrast coefficient at the display peak.
29727 Default to 0.5, which means that in-gamut values will be about
29728 half as bright as when clipping.
29729
29730 hable
29731 Ignored.
29732
29733 mobius
29734 Specify the transition point from linear to mobius transform.
29735 Every value below this point is guaranteed to be mapped 1:1.
29736 The higher the value, the more accurate the result will be, at
29737 the cost of losing bright details. Default to 0.3, which due
29738 to the steep initial slope still preserves in-range colors
29739 fairly accurately.
29740
29741 desat
29742 Apply desaturation for highlights that exceed this level of
29743 brightness. The higher the parameter, the more color information
29744 will be preserved. This setting helps prevent unnaturally blown-out
29745 colors for super-highlights, by (smoothly) turning into white
29746 instead. This makes images feel more natural, at the cost of
29747 reducing information about out-of-range colors.
29748
29749 The default of 2.0 is somewhat conservative and will mostly just
29750 apply to skies or directly sunlit surfaces. A setting of 0.0
29751 disables this option.
29752
29753 This option works only if the input frame has a supported color
29754 tag.
29755
29756 peak
29757 Override signal/nominal/reference peak with this value. Useful when
29758 the embedded peak information in display metadata is not reliable
29759 or when tone mapping from a lower range to a higher range.
29760
29761 tpad
29762 Temporarily pad video frames.
29763
29764 The filter accepts the following options:
29765
29766 start
29767 Specify number of delay frames before input video stream. Default
29768 is 0.
29769
29770 stop
29771 Specify number of padding frames after input video stream. Set to
29772 -1 to pad indefinitely. Default is 0.
29773
29774 start_mode
29775 Set kind of frames added to beginning of stream. Can be either add
29776 or clone. With add frames of solid-color are added. With clone
29777 frames are clones of first frame. Default is add.
29778
29779 stop_mode
29780 Set kind of frames added to end of stream. Can be either add or
29781 clone. With add frames of solid-color are added. With clone
29782 frames are clones of last frame. Default is add.
29783
29784 start_duration, stop_duration
29785 Specify the duration of the start/stop delay. See the Time duration
29786 section in the ffmpeg-utils(1) manual for the accepted syntax.
29787 These options override start and stop. Default is 0.
29788
29789 color
29790 Specify the color of the padded area. For the syntax of this
29791 option, check the "Color" section in the ffmpeg-utils manual.
29792
29793 The default value of color is "black".
29794
29795 transpose
29796 Transpose rows with columns in the input video and optionally flip it.
29797
29798 It accepts the following parameters:
29799
29800 dir Specify the transposition direction.
29801
29802 Can assume the following values:
29803
29804 0, 4, cclock_flip
29805 Rotate by 90 degrees counterclockwise and vertically flip
29806 (default), that is:
29807
29808 L.R L.l
29809 . . -> . .
29810 l.r R.r
29811
29812 1, 5, clock
29813 Rotate by 90 degrees clockwise, that is:
29814
29815 L.R l.L
29816 . . -> . .
29817 l.r r.R
29818
29819 2, 6, cclock
29820 Rotate by 90 degrees counterclockwise, that is:
29821
29822 L.R R.r
29823 . . -> . .
29824 l.r L.l
29825
29826 3, 7, clock_flip
29827 Rotate by 90 degrees clockwise and vertically flip, that is:
29828
29829 L.R r.R
29830 . . -> . .
29831 l.r l.L
29832
29833 For values between 4-7, the transposition is only done if the input
29834 video geometry is portrait and not landscape. These values are
29835 deprecated, the "passthrough" option should be used instead.
29836
29837 Numerical values are deprecated, and should be dropped in favor of
29838 symbolic constants.
29839
29840 passthrough
29841 Do not apply the transposition if the input geometry matches the
29842 one specified by the specified value. It accepts the following
29843 values:
29844
29845 none
29846 Always apply transposition.
29847
29848 portrait
29849 Preserve portrait geometry (when height >= width).
29850
29851 landscape
29852 Preserve landscape geometry (when width >= height).
29853
29854 Default value is "none".
29855
29856 For example to rotate by 90 degrees clockwise and preserve portrait
29857 layout:
29858
29859 transpose=dir=1:passthrough=portrait
29860
29861 The command above can also be specified as:
29862
29863 transpose=1:portrait
29864
29865 transpose_npp
29866 Transpose rows with columns in the input video and optionally flip it.
29867 For more in depth examples see the transpose video filter, which shares
29868 mostly the same options.
29869
29870 It accepts the following parameters:
29871
29872 dir Specify the transposition direction.
29873
29874 Can assume the following values:
29875
29876 cclock_flip
29877 Rotate by 90 degrees counterclockwise and vertically flip.
29878 (default)
29879
29880 clock
29881 Rotate by 90 degrees clockwise.
29882
29883 cclock
29884 Rotate by 90 degrees counterclockwise.
29885
29886 clock_flip
29887 Rotate by 90 degrees clockwise and vertically flip.
29888
29889 passthrough
29890 Do not apply the transposition if the input geometry matches the
29891 one specified by the specified value. It accepts the following
29892 values:
29893
29894 none
29895 Always apply transposition. (default)
29896
29897 portrait
29898 Preserve portrait geometry (when height >= width).
29899
29900 landscape
29901 Preserve landscape geometry (when width >= height).
29902
29903 trim
29904 Trim the input so that the output contains one continuous subpart of
29905 the input.
29906
29907 It accepts the following parameters:
29908
29909 start
29910 Specify the time of the start of the kept section, i.e. the frame
29911 with the timestamp start will be the first frame in the output.
29912
29913 end Specify the time of the first frame that will be dropped, i.e. the
29914 frame immediately preceding the one with the timestamp end will be
29915 the last frame in the output.
29916
29917 start_pts
29918 This is the same as start, except this option sets the start
29919 timestamp in timebase units instead of seconds.
29920
29921 end_pts
29922 This is the same as end, except this option sets the end timestamp
29923 in timebase units instead of seconds.
29924
29925 duration
29926 The maximum duration of the output in seconds.
29927
29928 start_frame
29929 The number of the first frame that should be passed to the output.
29930
29931 end_frame
29932 The number of the first frame that should be dropped.
29933
29934 start, end, and duration are expressed as time duration specifications;
29935 see the Time duration section in the ffmpeg-utils(1) manual for the
29936 accepted syntax.
29937
29938 Note that the first two sets of the start/end options and the duration
29939 option look at the frame timestamp, while the _frame variants simply
29940 count the frames that pass through the filter. Also note that this
29941 filter does not modify the timestamps. If you wish for the output
29942 timestamps to start at zero, insert a setpts filter after the trim
29943 filter.
29944
29945 If multiple start or end options are set, this filter tries to be
29946 greedy and keep all the frames that match at least one of the specified
29947 constraints. To keep only the part that matches all the constraints at
29948 once, chain multiple trim filters.
29949
29950 The defaults are such that all the input is kept. So it is possible to
29951 set e.g. just the end values to keep everything before the specified
29952 time.
29953
29954 Examples:
29955
29956 • Drop everything except the second minute of input:
29957
29958 ffmpeg -i INPUT -vf trim=60:120
29959
29960 • Keep only the first second:
29961
29962 ffmpeg -i INPUT -vf trim=duration=1
29963
29964 unpremultiply
29965 Apply alpha unpremultiply effect to input video stream using first
29966 plane of second stream as alpha.
29967
29968 Both streams must have same dimensions and same pixel format.
29969
29970 The filter accepts the following option:
29971
29972 planes
29973 Set which planes will be processed, unprocessed planes will be
29974 copied. By default value 0xf, all planes will be processed.
29975
29976 If the format has 1 or 2 components, then luma is bit 0. If the
29977 format has 3 or 4 components: for RGB formats bit 0 is green, bit 1
29978 is blue and bit 2 is red; for YUV formats bit 0 is luma, bit 1 is
29979 chroma-U and bit 2 is chroma-V. If present, the alpha channel is
29980 always the last bit.
29981
29982 inplace
29983 Do not require 2nd input for processing, instead use alpha plane
29984 from input stream.
29985
29986 unsharp
29987 Sharpen or blur the input video.
29988
29989 It accepts the following parameters:
29990
29991 luma_msize_x, lx
29992 Set the luma matrix horizontal size. It must be an odd integer
29993 between 3 and 23. The default value is 5.
29994
29995 luma_msize_y, ly
29996 Set the luma matrix vertical size. It must be an odd integer
29997 between 3 and 23. The default value is 5.
29998
29999 luma_amount, la
30000 Set the luma effect strength. It must be a floating point number,
30001 reasonable values lay between -1.5 and 1.5.
30002
30003 Negative values will blur the input video, while positive values
30004 will sharpen it, a value of zero will disable the effect.
30005
30006 Default value is 1.0.
30007
30008 chroma_msize_x, cx
30009 Set the chroma matrix horizontal size. It must be an odd integer
30010 between 3 and 23. The default value is 5.
30011
30012 chroma_msize_y, cy
30013 Set the chroma matrix vertical size. It must be an odd integer
30014 between 3 and 23. The default value is 5.
30015
30016 chroma_amount, ca
30017 Set the chroma effect strength. It must be a floating point number,
30018 reasonable values lay between -1.5 and 1.5.
30019
30020 Negative values will blur the input video, while positive values
30021 will sharpen it, a value of zero will disable the effect.
30022
30023 Default value is 0.0.
30024
30025 alpha_msize_x, ax
30026 Set the alpha matrix horizontal size. It must be an odd integer
30027 between 3 and 23. The default value is 5.
30028
30029 alpha_msize_y, ay
30030 Set the alpha matrix vertical size. It must be an odd integer
30031 between 3 and 23. The default value is 5.
30032
30033 alpha_amount, aa
30034 Set the alpha effect strength. It must be a floating point number,
30035 reasonable values lay between -1.5 and 1.5.
30036
30037 Negative values will blur the input video, while positive values
30038 will sharpen it, a value of zero will disable the effect.
30039
30040 Default value is 0.0.
30041
30042 All parameters are optional and default to the equivalent of the string
30043 '5:5:1.0:5:5:0.0'.
30044
30045 Examples
30046
30047 • Apply strong luma sharpen effect:
30048
30049 unsharp=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5
30050
30051 • Apply a strong blur of both luma and chroma parameters:
30052
30053 unsharp=7:7:-2:7:7:-2
30054
30055 untile
30056 Decompose a video made of tiled images into the individual images.
30057
30058 The frame rate of the output video is the frame rate of the input video
30059 multiplied by the number of tiles.
30060
30061 This filter does the reverse of tile.
30062
30063 The filter accepts the following options:
30064
30065 layout
30066 Set the grid size (i.e. the number of lines and columns). For the
30067 syntax of this option, check the "Video size" section in the
30068 ffmpeg-utils manual.
30069
30070 Examples
30071
30072 • Produce a 1-second video from a still image file made of 25 frames
30073 stacked vertically, like an analogic film reel:
30074
30075 ffmpeg -r 1 -i image.jpg -vf untile=1x25 movie.mkv
30076
30077 uspp
30078 Apply ultra slow/simple postprocessing filter that compresses and
30079 decompresses the image at several (or - in the case of quality level 8
30080 - all) shifts and average the results.
30081
30082 The way this differs from the behavior of spp is that uspp actually
30083 encodes & decodes each case with libavcodec Snow, whereas spp uses a
30084 simplified intra only 8x8 DCT similar to MJPEG.
30085
30086 This filter is only available in ffmpeg version 4.4 or earlier.
30087
30088 The filter accepts the following options:
30089
30090 quality
30091 Set quality. This option defines the number of levels for
30092 averaging. It accepts an integer in the range 0-8. If set to 0, the
30093 filter will have no effect. A value of 8 means the higher quality.
30094 For each increment of that value the speed drops by a factor of
30095 approximately 2. Default value is 3.
30096
30097 qp Force a constant quantization parameter. If not set, the filter
30098 will use the QP from the video stream (if available).
30099
30100 v360
30101 Convert 360 videos between various formats.
30102
30103 The filter accepts the following options:
30104
30105 input
30106 output
30107 Set format of the input/output video.
30108
30109 Available formats:
30110
30111 e
30112 equirect
30113 Equirectangular projection.
30114
30115 c3x2
30116 c6x1
30117 c1x6
30118 Cubemap with 3x2/6x1/1x6 layout.
30119
30120 Format specific options:
30121
30122 in_pad
30123 out_pad
30124 Set padding proportion for the input/output cubemap. Values
30125 in decimals.
30126
30127 Example values:
30128
30129 0 No padding.
30130
30131 0.01
30132 1% of face is padding. For example, with 1920x1280
30133 resolution face size would be 640x640 and padding would
30134 be 3 pixels from each side. (640 * 0.01 = 6 pixels)
30135
30136 Default value is @samp{0}. Maximum value is @samp{0.1}.
30137
30138 fin_pad
30139 fout_pad
30140 Set fixed padding for the input/output cubemap. Values in
30141 pixels.
30142
30143 Default value is @samp{0}. If greater than zero it
30144 overrides other padding options.
30145
30146 in_forder
30147 out_forder
30148 Set order of faces for the input/output cubemap. Choose one
30149 direction for each position.
30150
30151 Designation of directions:
30152
30153 r right
30154
30155 l left
30156
30157 u up
30158
30159 d down
30160
30161 f forward
30162
30163 b back
30164
30165 Default value is @samp{rludfb}.
30166
30167 in_frot
30168 out_frot
30169 Set rotation of faces for the input/output cubemap. Choose
30170 one angle for each position.
30171
30172 Designation of angles:
30173
30174 0 0 degrees clockwise
30175
30176 1 90 degrees clockwise
30177
30178 2 180 degrees clockwise
30179
30180 3 270 degrees clockwise
30181
30182 Default value is @samp{000000}.
30183
30184 eac Equi-Angular Cubemap.
30185
30186 flat
30187 gnomonic
30188 rectilinear
30189 Regular video.
30190
30191 Format specific options:
30192
30193 h_fov
30194 v_fov
30195 d_fov
30196 Set output horizontal/vertical/diagonal field of view.
30197 Values in degrees.
30198
30199 If diagonal field of view is set it overrides horizontal
30200 and vertical field of view.
30201
30202 ih_fov
30203 iv_fov
30204 id_fov
30205 Set input horizontal/vertical/diagonal field of view.
30206 Values in degrees.
30207
30208 If diagonal field of view is set it overrides horizontal
30209 and vertical field of view.
30210
30211 dfisheye
30212 Dual fisheye.
30213
30214 Format specific options:
30215
30216 h_fov
30217 v_fov
30218 d_fov
30219 Set output horizontal/vertical/diagonal field of view.
30220 Values in degrees.
30221
30222 If diagonal field of view is set it overrides horizontal
30223 and vertical field of view.
30224
30225 ih_fov
30226 iv_fov
30227 id_fov
30228 Set input horizontal/vertical/diagonal field of view.
30229 Values in degrees.
30230
30231 If diagonal field of view is set it overrides horizontal
30232 and vertical field of view.
30233
30234 barrel
30235 fb
30236 barrelsplit
30237 Facebook's 360 formats.
30238
30239 sg Stereographic format.
30240
30241 Format specific options:
30242
30243 h_fov
30244 v_fov
30245 d_fov
30246 Set output horizontal/vertical/diagonal field of view.
30247 Values in degrees.
30248
30249 If diagonal field of view is set it overrides horizontal
30250 and vertical field of view.
30251
30252 ih_fov
30253 iv_fov
30254 id_fov
30255 Set input horizontal/vertical/diagonal field of view.
30256 Values in degrees.
30257
30258 If diagonal field of view is set it overrides horizontal
30259 and vertical field of view.
30260
30261 mercator
30262 Mercator format.
30263
30264 ball
30265 Ball format, gives significant distortion toward the back.
30266
30267 hammer
30268 Hammer-Aitoff map projection format.
30269
30270 sinusoidal
30271 Sinusoidal map projection format.
30272
30273 fisheye
30274 Fisheye projection.
30275
30276 Format specific options:
30277
30278 h_fov
30279 v_fov
30280 d_fov
30281 Set output horizontal/vertical/diagonal field of view.
30282 Values in degrees.
30283
30284 If diagonal field of view is set it overrides horizontal
30285 and vertical field of view.
30286
30287 ih_fov
30288 iv_fov
30289 id_fov
30290 Set input horizontal/vertical/diagonal field of view.
30291 Values in degrees.
30292
30293 If diagonal field of view is set it overrides horizontal
30294 and vertical field of view.
30295
30296 pannini
30297 Pannini projection.
30298
30299 Format specific options:
30300
30301 h_fov
30302 Set output pannini parameter.
30303
30304 ih_fov
30305 Set input pannini parameter.
30306
30307 cylindrical
30308 Cylindrical projection.
30309
30310 Format specific options:
30311
30312 h_fov
30313 v_fov
30314 d_fov
30315 Set output horizontal/vertical/diagonal field of view.
30316 Values in degrees.
30317
30318 If diagonal field of view is set it overrides horizontal
30319 and vertical field of view.
30320
30321 ih_fov
30322 iv_fov
30323 id_fov
30324 Set input horizontal/vertical/diagonal field of view.
30325 Values in degrees.
30326
30327 If diagonal field of view is set it overrides horizontal
30328 and vertical field of view.
30329
30330 perspective
30331 Perspective projection. (output only)
30332
30333 Format specific options:
30334
30335 v_fov
30336 Set perspective parameter.
30337
30338 tetrahedron
30339 Tetrahedron projection.
30340
30341 tsp Truncated square pyramid projection.
30342
30343 he
30344 hequirect
30345 Half equirectangular projection.
30346
30347 equisolid
30348 Equisolid format.
30349
30350 Format specific options:
30351
30352 h_fov
30353 v_fov
30354 d_fov
30355 Set output horizontal/vertical/diagonal field of view.
30356 Values in degrees.
30357
30358 If diagonal field of view is set it overrides horizontal
30359 and vertical field of view.
30360
30361 ih_fov
30362 iv_fov
30363 id_fov
30364 Set input horizontal/vertical/diagonal field of view.
30365 Values in degrees.
30366
30367 If diagonal field of view is set it overrides horizontal
30368 and vertical field of view.
30369
30370 og Orthographic format.
30371
30372 Format specific options:
30373
30374 h_fov
30375 v_fov
30376 d_fov
30377 Set output horizontal/vertical/diagonal field of view.
30378 Values in degrees.
30379
30380 If diagonal field of view is set it overrides horizontal
30381 and vertical field of view.
30382
30383 ih_fov
30384 iv_fov
30385 id_fov
30386 Set input horizontal/vertical/diagonal field of view.
30387 Values in degrees.
30388
30389 If diagonal field of view is set it overrides horizontal
30390 and vertical field of view.
30391
30392 octahedron
30393 Octahedron projection.
30394
30395 cylindricalea
30396 Cylindrical Equal Area projection.
30397
30398 interp
30399 Set interpolation method.Note: more complex interpolation methods
30400 require much more memory to run.
30401
30402 Available methods:
30403
30404 near
30405 nearest
30406 Nearest neighbour.
30407
30408 line
30409 linear
30410 Bilinear interpolation.
30411
30412 lagrange9
30413 Lagrange9 interpolation.
30414
30415 cube
30416 cubic
30417 Bicubic interpolation.
30418
30419 lanc
30420 lanczos
30421 Lanczos interpolation.
30422
30423 sp16
30424 spline16
30425 Spline16 interpolation.
30426
30427 gauss
30428 gaussian
30429 Gaussian interpolation.
30430
30431 mitchell
30432 Mitchell interpolation.
30433
30434 Default value is @samp{line}.
30435
30436 w
30437 h Set the output video resolution.
30438
30439 Default resolution depends on formats.
30440
30441 in_stereo
30442 out_stereo
30443 Set the input/output stereo format.
30444
30445 2d 2D mono
30446
30447 sbs Side by side
30448
30449 tb Top bottom
30450
30451 Default value is @samp{2d} for input and output format.
30452
30453 yaw
30454 pitch
30455 roll
30456 Set rotation for the output video. Values in degrees.
30457
30458 rorder
30459 Set rotation order for the output video. Choose one item for each
30460 position.
30461
30462 y, Y
30463 yaw
30464
30465 p, P
30466 pitch
30467
30468 r, R
30469 roll
30470
30471 Default value is @samp{ypr}.
30472
30473 h_flip
30474 v_flip
30475 d_flip
30476 Flip the output video horizontally(swaps
30477 left-right)/vertically(swaps up-down)/in-depth(swaps back-forward).
30478 Boolean values.
30479
30480 ih_flip
30481 iv_flip
30482 Set if input video is flipped horizontally/vertically. Boolean
30483 values.
30484
30485 in_trans
30486 Set if input video is transposed. Boolean value, by default
30487 disabled.
30488
30489 out_trans
30490 Set if output video needs to be transposed. Boolean value, by
30491 default disabled.
30492
30493 h_offset
30494 v_offset
30495 Set output horizontal/vertical off-axis offset. Default is set to
30496 0. Allowed range is from -1 to 1.
30497
30498 alpha_mask
30499 Build mask in alpha plane for all unmapped pixels by marking them
30500 fully transparent. Boolean value, by default disabled.
30501
30502 reset_rot
30503 Reset rotation of output video. Boolean value, by default disabled.
30504
30505 Examples
30506
30507 • Convert equirectangular video to cubemap with 3x2 layout and 1%
30508 padding using bicubic interpolation:
30509
30510 ffmpeg -i input.mkv -vf v360=e:c3x2:cubic:out_pad=0.01 output.mkv
30511
30512 • Extract back view of Equi-Angular Cubemap:
30513
30514 ffmpeg -i input.mkv -vf v360=eac:flat:yaw=180 output.mkv
30515
30516 • Convert transposed and horizontally flipped Equi-Angular Cubemap in
30517 side-by-side stereo format to equirectangular top-bottom stereo
30518 format:
30519
30520 v360=eac:equirect:in_stereo=sbs:in_trans=1:ih_flip=1:out_stereo=tb
30521
30522 Commands
30523
30524 This filter supports subset of above options as commands.
30525
30526 vaguedenoiser
30527 Apply a wavelet based denoiser.
30528
30529 It transforms each frame from the video input into the wavelet domain,
30530 using Cohen-Daubechies-Feauveau 9/7. Then it applies some filtering to
30531 the obtained coefficients. It does an inverse wavelet transform after.
30532 Due to wavelet properties, it should give a nice smoothed result, and
30533 reduced noise, without blurring picture features.
30534
30535 This filter accepts the following options:
30536
30537 threshold
30538 The filtering strength. The higher, the more filtered the video
30539 will be. Hard thresholding can use a higher threshold than soft
30540 thresholding before the video looks overfiltered. Default value is
30541 2.
30542
30543 method
30544 The filtering method the filter will use.
30545
30546 It accepts the following values:
30547
30548 hard
30549 All values under the threshold will be zeroed.
30550
30551 soft
30552 All values under the threshold will be zeroed. All values above
30553 will be reduced by the threshold.
30554
30555 garrote
30556 Scales or nullifies coefficients - intermediary between (more)
30557 soft and (less) hard thresholding.
30558
30559 Default is garrote.
30560
30561 nsteps
30562 Number of times, the wavelet will decompose the picture. Picture
30563 can't be decomposed beyond a particular point (typically, 8 for a
30564 640x480 frame - as 2^9 = 512 > 480). Valid values are integers
30565 between 1 and 32. Default value is 6.
30566
30567 percent
30568 Partial of full denoising (limited coefficients shrinking), from 0
30569 to 100. Default value is 85.
30570
30571 planes
30572 A list of the planes to process. By default all planes are
30573 processed.
30574
30575 type
30576 The threshold type the filter will use.
30577
30578 It accepts the following values:
30579
30580 universal
30581 Threshold used is same for all decompositions.
30582
30583 bayes
30584 Threshold used depends also on each decomposition coefficients.
30585
30586 Default is universal.
30587
30588 varblur
30589 Apply variable blur filter by using 2nd video stream to set blur
30590 radius. The 2nd stream must have the same dimensions.
30591
30592 This filter accepts the following options:
30593
30594 min_r
30595 Set min allowed radius. Allowed range is from 0 to 254. Default is
30596 0.
30597
30598 max_r
30599 Set max allowed radius. Allowed range is from 1 to 255. Default is
30600 8.
30601
30602 planes
30603 Set which planes to process. By default, all are used.
30604
30605 The "varblur" filter also supports the framesync options.
30606
30607 Commands
30608
30609 This filter supports all the above options as commands.
30610
30611 vectorscope
30612 Display 2 color component values in the two dimensional graph (which is
30613 called a vectorscope).
30614
30615 This filter accepts the following options:
30616
30617 mode, m
30618 Set vectorscope mode.
30619
30620 It accepts the following values:
30621
30622 gray
30623 tint
30624 Gray values are displayed on graph, higher brightness means
30625 more pixels have same component color value on location in
30626 graph. This is the default mode.
30627
30628 color
30629 Gray values are displayed on graph. Surrounding pixels values
30630 which are not present in video frame are drawn in gradient of 2
30631 color components which are set by option "x" and "y". The 3rd
30632 color component is static.
30633
30634 color2
30635 Actual color components values present in video frame are
30636 displayed on graph.
30637
30638 color3
30639 Similar as color2 but higher frequency of same values "x" and
30640 "y" on graph increases value of another color component, which
30641 is luminance by default values of "x" and "y".
30642
30643 color4
30644 Actual colors present in video frame are displayed on graph. If
30645 two different colors map to same position on graph then color
30646 with higher value of component not present in graph is picked.
30647
30648 color5
30649 Gray values are displayed on graph. Similar to "color" but with
30650 3rd color component picked from radial gradient.
30651
30652 x Set which color component will be represented on X-axis. Default is
30653 1.
30654
30655 y Set which color component will be represented on Y-axis. Default is
30656 2.
30657
30658 intensity, i
30659 Set intensity, used by modes: gray, color, color3 and color5 for
30660 increasing brightness of color component which represents frequency
30661 of (X, Y) location in graph.
30662
30663 envelope, e
30664 none
30665 No envelope, this is default.
30666
30667 instant
30668 Instant envelope, even darkest single pixel will be clearly
30669 highlighted.
30670
30671 peak
30672 Hold maximum and minimum values presented in graph over time.
30673 This way you can still spot out of range values without
30674 constantly looking at vectorscope.
30675
30676 peak+instant
30677 Peak and instant envelope combined together.
30678
30679 graticule, g
30680 Set what kind of graticule to draw.
30681
30682 none
30683 green
30684 color
30685 invert
30686 opacity, o
30687 Set graticule opacity.
30688
30689 flags, f
30690 Set graticule flags.
30691
30692 white
30693 Draw graticule for white point.
30694
30695 black
30696 Draw graticule for black point.
30697
30698 name
30699 Draw color points short names.
30700
30701 bgopacity, b
30702 Set background opacity.
30703
30704 lthreshold, l
30705 Set low threshold for color component not represented on X or Y
30706 axis. Values lower than this value will be ignored. Default is 0.
30707 Note this value is multiplied with actual max possible value one
30708 pixel component can have. So for 8-bit input and low threshold
30709 value of 0.1 actual threshold is 0.1 * 255 = 25.
30710
30711 hthreshold, h
30712 Set high threshold for color component not represented on X or Y
30713 axis. Values higher than this value will be ignored. Default is 1.
30714 Note this value is multiplied with actual max possible value one
30715 pixel component can have. So for 8-bit input and high threshold
30716 value of 0.9 actual threshold is 0.9 * 255 = 230.
30717
30718 colorspace, c
30719 Set what kind of colorspace to use when drawing graticule.
30720
30721 auto
30722 601
30723 709
30724
30725 Default is auto.
30726
30727 tint0, t0
30728 tint1, t1
30729 Set color tint for gray/tint vectorscope mode. By default both
30730 options are zero. This means no tint, and output will remain gray.
30731
30732 vidstabdetect
30733 Analyze video stabilization/deshaking. Perform pass 1 of 2, see
30734 vidstabtransform for pass 2.
30735
30736 This filter generates a file with relative translation and rotation
30737 transform information about subsequent frames, which is then used by
30738 the vidstabtransform filter.
30739
30740 To enable compilation of this filter you need to configure FFmpeg with
30741 "--enable-libvidstab".
30742
30743 This filter accepts the following options:
30744
30745 result
30746 Set the path to the file used to write the transforms information.
30747 Default value is transforms.trf.
30748
30749 shakiness
30750 Set how shaky the video is and how quick the camera is. It accepts
30751 an integer in the range 1-10, a value of 1 means little shakiness,
30752 a value of 10 means strong shakiness. Default value is 5.
30753
30754 accuracy
30755 Set the accuracy of the detection process. It must be a value in
30756 the range 1-15. A value of 1 means low accuracy, a value of 15
30757 means high accuracy. Default value is 15.
30758
30759 stepsize
30760 Set stepsize of the search process. The region around minimum is
30761 scanned with 1 pixel resolution. Default value is 6.
30762
30763 mincontrast
30764 Set minimum contrast. Below this value a local measurement field is
30765 discarded. Must be a floating point value in the range 0-1. Default
30766 value is 0.3.
30767
30768 tripod
30769 Set reference frame number for tripod mode.
30770
30771 If enabled, the motion of the frames is compared to a reference
30772 frame in the filtered stream, identified by the specified number.
30773 The idea is to compensate all movements in a more-or-less static
30774 scene and keep the camera view absolutely still.
30775
30776 If set to 0, it is disabled. The frames are counted starting from
30777 1.
30778
30779 show
30780 Show fields and transforms in the resulting frames. It accepts an
30781 integer in the range 0-2. Default value is 0, which disables any
30782 visualization.
30783
30784 Examples
30785
30786 • Use default values:
30787
30788 vidstabdetect
30789
30790 • Analyze strongly shaky movie and put the results in file
30791 mytransforms.trf:
30792
30793 vidstabdetect=shakiness=10:accuracy=15:result="mytransforms.trf"
30794
30795 • Visualize the result of internal transformations in the resulting
30796 video:
30797
30798 vidstabdetect=show=1
30799
30800 • Analyze a video with medium shakiness using ffmpeg:
30801
30802 ffmpeg -i input -vf vidstabdetect=shakiness=5:show=1 dummy.avi
30803
30804 vidstabtransform
30805 Video stabilization/deshaking: pass 2 of 2, see vidstabdetect for pass
30806 1.
30807
30808 Read a file with transform information for each frame and
30809 apply/compensate them. Together with the vidstabdetect filter this can
30810 be used to deshake videos. See also
30811 <http://public.hronopik.de/vid.stab>. It is important to also use the
30812 unsharp filter, see below.
30813
30814 To enable compilation of this filter you need to configure FFmpeg with
30815 "--enable-libvidstab".
30816
30817 Options
30818
30819 input
30820 Set path to the file used to read the transforms. Default value is
30821 transforms.trf.
30822
30823 smoothing
30824 Set the number of frames (value*2 + 1) used for lowpass filtering
30825 the camera movements. Default value is 10.
30826
30827 For example a number of 10 means that 21 frames are used (10 in the
30828 past and 10 in the future) to smoothen the motion in the video. A
30829 larger value leads to a smoother video, but limits the acceleration
30830 of the camera (pan/tilt movements). 0 is a special case where a
30831 static camera is simulated.
30832
30833 optalgo
30834 Set the camera path optimization algorithm.
30835
30836 Accepted values are:
30837
30838 gauss
30839 gaussian kernel low-pass filter on camera motion (default)
30840
30841 avg averaging on transformations
30842
30843 maxshift
30844 Set maximal number of pixels to translate frames. Default value is
30845 -1, meaning no limit.
30846
30847 maxangle
30848 Set maximal angle in radians (degree*PI/180) to rotate frames.
30849 Default value is -1, meaning no limit.
30850
30851 crop
30852 Specify how to deal with borders that may be visible due to
30853 movement compensation.
30854
30855 Available values are:
30856
30857 keep
30858 keep image information from previous frame (default)
30859
30860 black
30861 fill the border black
30862
30863 invert
30864 Invert transforms if set to 1. Default value is 0.
30865
30866 relative
30867 Consider transforms as relative to previous frame if set to 1,
30868 absolute if set to 0. Default value is 0.
30869
30870 zoom
30871 Set percentage to zoom. A positive value will result in a zoom-in
30872 effect, a negative value in a zoom-out effect. Default value is 0
30873 (no zoom).
30874
30875 optzoom
30876 Set optimal zooming to avoid borders.
30877
30878 Accepted values are:
30879
30880 0 disabled
30881
30882 1 optimal static zoom value is determined (only very strong
30883 movements will lead to visible borders) (default)
30884
30885 2 optimal adaptive zoom value is determined (no borders will be
30886 visible), see zoomspeed
30887
30888 Note that the value given at zoom is added to the one calculated
30889 here.
30890
30891 zoomspeed
30892 Set percent to zoom maximally each frame (enabled when optzoom is
30893 set to 2). Range is from 0 to 5, default value is 0.25.
30894
30895 interpol
30896 Specify type of interpolation.
30897
30898 Available values are:
30899
30900 no no interpolation
30901
30902 linear
30903 linear only horizontal
30904
30905 bilinear
30906 linear in both directions (default)
30907
30908 bicubic
30909 cubic in both directions (slow)
30910
30911 tripod
30912 Enable virtual tripod mode if set to 1, which is equivalent to
30913 "relative=0:smoothing=0". Default value is 0.
30914
30915 Use also "tripod" option of vidstabdetect.
30916
30917 debug
30918 Increase log verbosity if set to 1. Also the detected global
30919 motions are written to the temporary file global_motions.trf.
30920 Default value is 0.
30921
30922 Examples
30923
30924 • Use ffmpeg for a typical stabilization with default values:
30925
30926 ffmpeg -i inp.mpeg -vf vidstabtransform,unsharp=5:5:0.8:3:3:0.4 inp_stabilized.mpeg
30927
30928 Note the use of the unsharp filter which is always recommended.
30929
30930 • Zoom in a bit more and load transform data from a given file:
30931
30932 vidstabtransform=zoom=5:input="mytransforms.trf"
30933
30934 • Smoothen the video even more:
30935
30936 vidstabtransform=smoothing=30
30937
30938 vflip
30939 Flip the input video vertically.
30940
30941 For example, to vertically flip a video with ffmpeg:
30942
30943 ffmpeg -i in.avi -vf "vflip" out.avi
30944
30945 vfrdet
30946 Detect variable frame rate video.
30947
30948 This filter tries to detect if the input is variable or constant frame
30949 rate.
30950
30951 At end it will output number of frames detected as having variable
30952 delta pts, and ones with constant delta pts. If there was frames with
30953 variable delta, than it will also show min, max and average delta
30954 encountered.
30955
30956 vibrance
30957 Boost or alter saturation.
30958
30959 The filter accepts the following options:
30960
30961 intensity
30962 Set strength of boost if positive value or strength of alter if
30963 negative value. Default is 0. Allowed range is from -2 to 2.
30964
30965 rbal
30966 Set the red balance. Default is 1. Allowed range is from -10 to 10.
30967
30968 gbal
30969 Set the green balance. Default is 1. Allowed range is from -10 to
30970 10.
30971
30972 bbal
30973 Set the blue balance. Default is 1. Allowed range is from -10 to
30974 10.
30975
30976 rlum
30977 Set the red luma coefficient.
30978
30979 glum
30980 Set the green luma coefficient.
30981
30982 blum
30983 Set the blue luma coefficient.
30984
30985 alternate
30986 If "intensity" is negative and this is set to 1, colors will
30987 change, otherwise colors will be less saturated, more towards gray.
30988
30989 Commands
30990
30991 This filter supports the all above options as commands.
30992
30993 vif
30994 Obtain the average VIF (Visual Information Fidelity) between two input
30995 videos.
30996
30997 This filter takes two input videos.
30998
30999 Both input videos must have the same resolution and pixel format for
31000 this filter to work correctly. Also it assumes that both inputs have
31001 the same number of frames, which are compared one by one.
31002
31003 The obtained average VIF score is printed through the logging system.
31004
31005 The filter stores the calculated VIF score of each frame.
31006
31007 This filter also supports the framesync options.
31008
31009 In the below example the input file main.mpg being processed is
31010 compared with the reference file ref.mpg.
31011
31012 ffmpeg -i main.mpg -i ref.mpg -lavfi vif -f null -
31013
31014 vignette
31015 Make or reverse a natural vignetting effect.
31016
31017 The filter accepts the following options:
31018
31019 angle, a
31020 Set lens angle expression as a number of radians.
31021
31022 The value is clipped in the "[0,PI/2]" range.
31023
31024 Default value: "PI/5"
31025
31026 x0
31027 y0 Set center coordinates expressions. Respectively "w/2" and "h/2" by
31028 default.
31029
31030 mode
31031 Set forward/backward mode.
31032
31033 Available modes are:
31034
31035 forward
31036 The larger the distance from the central point, the darker the
31037 image becomes.
31038
31039 backward
31040 The larger the distance from the central point, the brighter
31041 the image becomes. This can be used to reverse a vignette
31042 effect, though there is no automatic detection to extract the
31043 lens angle and other settings (yet). It can also be used to
31044 create a burning effect.
31045
31046 Default value is forward.
31047
31048 eval
31049 Set evaluation mode for the expressions (angle, x0, y0).
31050
31051 It accepts the following values:
31052
31053 init
31054 Evaluate expressions only once during the filter
31055 initialization.
31056
31057 frame
31058 Evaluate expressions for each incoming frame. This is way
31059 slower than the init mode since it requires all the scalers to
31060 be re-computed, but it allows advanced dynamic expressions.
31061
31062 Default value is init.
31063
31064 dither
31065 Set dithering to reduce the circular banding effects. Default is 1
31066 (enabled).
31067
31068 aspect
31069 Set vignette aspect. This setting allows one to adjust the shape of
31070 the vignette. Setting this value to the SAR of the input will make
31071 a rectangular vignetting following the dimensions of the video.
31072
31073 Default is "1/1".
31074
31075 Expressions
31076
31077 The alpha, x0 and y0 expressions can contain the following parameters.
31078
31079 w
31080 h input width and height
31081
31082 n the number of input frame, starting from 0
31083
31084 pts the PTS (Presentation TimeStamp) time of the filtered video frame,
31085 expressed in TB units, NAN if undefined
31086
31087 r frame rate of the input video, NAN if the input frame rate is
31088 unknown
31089
31090 t the PTS (Presentation TimeStamp) of the filtered video frame,
31091 expressed in seconds, NAN if undefined
31092
31093 tb time base of the input video
31094
31095 Examples
31096
31097 • Apply simple strong vignetting effect:
31098
31099 vignette=PI/4
31100
31101 • Make a flickering vignetting:
31102
31103 vignette='PI/4+random(1)*PI/50':eval=frame
31104
31105 vmafmotion
31106 Obtain the average VMAF motion score of a video. It is one of the
31107 component metrics of VMAF.
31108
31109 The obtained average motion score is printed through the logging
31110 system.
31111
31112 The filter accepts the following options:
31113
31114 stats_file
31115 If specified, the filter will use the named file to save the motion
31116 score of each frame with respect to the previous frame. When
31117 filename equals "-" the data is sent to standard output.
31118
31119 Example:
31120
31121 ffmpeg -i ref.mpg -vf vmafmotion -f null -
31122
31123 vstack
31124 Stack input videos vertically.
31125
31126 All streams must be of same pixel format and of same width.
31127
31128 Note that this filter is faster than using overlay and pad filter to
31129 create same output.
31130
31131 The filter accepts the following options:
31132
31133 inputs
31134 Set number of input streams. Default is 2.
31135
31136 shortest
31137 If set to 1, force the output to terminate when the shortest input
31138 terminates. Default value is 0.
31139
31140 w3fdif
31141 Deinterlace the input video ("w3fdif" stands for "Weston 3 Field
31142 Deinterlacing Filter").
31143
31144 Based on the process described by Martin Weston for BBC R&D, and
31145 implemented based on the de-interlace algorithm written by Jim
31146 Easterbrook for BBC R&D, the Weston 3 field deinterlacing filter uses
31147 filter coefficients calculated by BBC R&D.
31148
31149 This filter uses field-dominance information in frame to decide which
31150 of each pair of fields to place first in the output. If it gets it
31151 wrong use setfield filter before "w3fdif" filter.
31152
31153 There are two sets of filter coefficients, so called "simple" and
31154 "complex". Which set of filter coefficients is used can be set by
31155 passing an optional parameter:
31156
31157 filter
31158 Set the interlacing filter coefficients. Accepts one of the
31159 following values:
31160
31161 simple
31162 Simple filter coefficient set.
31163
31164 complex
31165 More-complex filter coefficient set.
31166
31167 Default value is complex.
31168
31169 mode
31170 The interlacing mode to adopt. It accepts one of the following
31171 values:
31172
31173 frame
31174 Output one frame for each frame.
31175
31176 field
31177 Output one frame for each field.
31178
31179 The default value is "field".
31180
31181 parity
31182 The picture field parity assumed for the input interlaced video. It
31183 accepts one of the following values:
31184
31185 tff Assume the top field is first.
31186
31187 bff Assume the bottom field is first.
31188
31189 auto
31190 Enable automatic detection of field parity.
31191
31192 The default value is "auto". If the interlacing is unknown or the
31193 decoder does not export this information, top field first will be
31194 assumed.
31195
31196 deint
31197 Specify which frames to deinterlace. Accepts one of the following
31198 values:
31199
31200 all Deinterlace all frames,
31201
31202 interlaced
31203 Only deinterlace frames marked as interlaced.
31204
31205 Default value is all.
31206
31207 Commands
31208
31209 This filter supports same commands as options.
31210
31211 waveform
31212 Video waveform monitor.
31213
31214 The waveform monitor plots color component intensity. By default
31215 luminance only. Each column of the waveform corresponds to a column of
31216 pixels in the source video.
31217
31218 It accepts the following options:
31219
31220 mode, m
31221 Can be either "row", or "column". Default is "column". In row
31222 mode, the graph on the left side represents color component value 0
31223 and the right side represents value = 255. In column mode, the top
31224 side represents color component value = 0 and bottom side
31225 represents value = 255.
31226
31227 intensity, i
31228 Set intensity. Smaller values are useful to find out how many
31229 values of the same luminance are distributed across input
31230 rows/columns. Default value is 0.04. Allowed range is [0, 1].
31231
31232 mirror, r
31233 Set mirroring mode. 0 means unmirrored, 1 means mirrored. In
31234 mirrored mode, higher values will be represented on the left side
31235 for "row" mode and at the top for "column" mode. Default is 1
31236 (mirrored).
31237
31238 display, d
31239 Set display mode. It accepts the following values:
31240
31241 overlay
31242 Presents information identical to that in the "parade", except
31243 that the graphs representing color components are superimposed
31244 directly over one another.
31245
31246 This display mode makes it easier to spot relative differences
31247 or similarities in overlapping areas of the color components
31248 that are supposed to be identical, such as neutral whites,
31249 grays, or blacks.
31250
31251 stack
31252 Display separate graph for the color components side by side in
31253 "row" mode or one below the other in "column" mode.
31254
31255 parade
31256 Display separate graph for the color components side by side in
31257 "column" mode or one below the other in "row" mode.
31258
31259 Using this display mode makes it easy to spot color casts in
31260 the highlights and shadows of an image, by comparing the
31261 contours of the top and the bottom graphs of each waveform.
31262 Since whites, grays, and blacks are characterized by exactly
31263 equal amounts of red, green, and blue, neutral areas of the
31264 picture should display three waveforms of roughly equal
31265 width/height. If not, the correction is easy to perform by
31266 making level adjustments the three waveforms.
31267
31268 Default is "stack".
31269
31270 components, c
31271 Set which color components to display. Default is 1, which means
31272 only luminance or red color component if input is in RGB
31273 colorspace. If is set for example to 7 it will display all 3 (if)
31274 available color components.
31275
31276 envelope, e
31277 none
31278 No envelope, this is default.
31279
31280 instant
31281 Instant envelope, minimum and maximum values presented in graph
31282 will be easily visible even with small "step" value.
31283
31284 peak
31285 Hold minimum and maximum values presented in graph across time.
31286 This way you can still spot out of range values without
31287 constantly looking at waveforms.
31288
31289 peak+instant
31290 Peak and instant envelope combined together.
31291
31292 filter, f
31293 lowpass
31294 No filtering, this is default.
31295
31296 flat
31297 Luma and chroma combined together.
31298
31299 aflat
31300 Similar as above, but shows difference between blue and red
31301 chroma.
31302
31303 xflat
31304 Similar as above, but use different colors.
31305
31306 yflat
31307 Similar as above, but again with different colors.
31308
31309 chroma
31310 Displays only chroma.
31311
31312 color
31313 Displays actual color value on waveform.
31314
31315 acolor
31316 Similar as above, but with luma showing frequency of chroma
31317 values.
31318
31319 graticule, g
31320 Set which graticule to display.
31321
31322 none
31323 Do not display graticule.
31324
31325 green
31326 Display green graticule showing legal broadcast ranges.
31327
31328 orange
31329 Display orange graticule showing legal broadcast ranges.
31330
31331 invert
31332 Display invert graticule showing legal broadcast ranges.
31333
31334 opacity, o
31335 Set graticule opacity.
31336
31337 flags, fl
31338 Set graticule flags.
31339
31340 numbers
31341 Draw numbers above lines. By default enabled.
31342
31343 dots
31344 Draw dots instead of lines.
31345
31346 scale, s
31347 Set scale used for displaying graticule.
31348
31349 digital
31350 millivolts
31351 ire
31352
31353 Default is digital.
31354
31355 bgopacity, b
31356 Set background opacity.
31357
31358 tint0, t0
31359 tint1, t1
31360 Set tint for output. Only used with lowpass filter and when
31361 display is not overlay and input pixel formats are not RGB.
31362
31363 fitmode, fm
31364 Set sample aspect ratio of video output frames. Can be used to
31365 configure waveform so it is not streched too much in one of
31366 directions.
31367
31368 none
31369 Set sample aspect ration to 1/1.
31370
31371 size
31372 Set sample aspect ratio to match input size of video
31373
31374 Default is none.
31375
31376 weave, doubleweave
31377 The "weave" takes a field-based video input and join each two
31378 sequential fields into single frame, producing a new double height clip
31379 with half the frame rate and half the frame count.
31380
31381 The "doubleweave" works same as "weave" but without halving frame rate
31382 and frame count.
31383
31384 It accepts the following option:
31385
31386 first_field
31387 Set first field. Available values are:
31388
31389 top, t
31390 Set the frame as top-field-first.
31391
31392 bottom, b
31393 Set the frame as bottom-field-first.
31394
31395 Examples
31396
31397 • Interlace video using select and separatefields filter:
31398
31399 separatefields,select=eq(mod(n,4),0)+eq(mod(n,4),3),weave
31400
31401 xbr
31402 Apply the xBR high-quality magnification filter which is designed for
31403 pixel art. It follows a set of edge-detection rules, see
31404 <https://forums.libretro.com/t/xbr-algorithm-tutorial/123>.
31405
31406 It accepts the following option:
31407
31408 n Set the scaling dimension: 2 for "2xBR", 3 for "3xBR" and 4 for
31409 "4xBR". Default is 3.
31410
31411 xcorrelate
31412 Apply normalized cross-correlation between first and second input video
31413 stream.
31414
31415 Second input video stream dimensions must be lower than first input
31416 video stream.
31417
31418 The filter accepts the following options:
31419
31420 planes
31421 Set which planes to process.
31422
31423 secondary
31424 Set which secondary video frames will be processed from second
31425 input video stream, can be first or all. Default is all.
31426
31427 The "xcorrelate" filter also supports the framesync options.
31428
31429 xfade
31430 Apply cross fade from one input video stream to another input video
31431 stream. The cross fade is applied for specified duration.
31432
31433 Both inputs must be constant frame-rate and have the same resolution,
31434 pixel format, frame rate and timebase.
31435
31436 The filter accepts the following options:
31437
31438 transition
31439 Set one of available transition effects:
31440
31441 custom
31442 fade
31443 wipeleft
31444 wiperight
31445 wipeup
31446 wipedown
31447 slideleft
31448 slideright
31449 slideup
31450 slidedown
31451 circlecrop
31452 rectcrop
31453 distance
31454 fadeblack
31455 fadewhite
31456 radial
31457 smoothleft
31458 smoothright
31459 smoothup
31460 smoothdown
31461 circleopen
31462 circleclose
31463 vertopen
31464 vertclose
31465 horzopen
31466 horzclose
31467 dissolve
31468 pixelize
31469 diagtl
31470 diagtr
31471 diagbl
31472 diagbr
31473 hlslice
31474 hrslice
31475 vuslice
31476 vdslice
31477 hblur
31478 fadegrays
31479 wipetl
31480 wipetr
31481 wipebl
31482 wipebr
31483 squeezeh
31484 squeezev
31485 zoomin
31486 fadefast
31487 fadeslow
31488
31489 Default transition effect is fade.
31490
31491 duration
31492 Set cross fade duration in seconds. Range is 0 to 60 seconds.
31493 Default duration is 1 second.
31494
31495 offset
31496 Set cross fade start relative to first input stream in seconds.
31497 Default offset is 0.
31498
31499 expr
31500 Set expression for custom transition effect.
31501
31502 The expressions can use the following variables and functions:
31503
31504 X
31505 Y The coordinates of the current sample.
31506
31507 W
31508 H The width and height of the image.
31509
31510 P Progress of transition effect.
31511
31512 PLANE
31513 Currently processed plane.
31514
31515 A Return value of first input at current location and plane.
31516
31517 B Return value of second input at current location and plane.
31518
31519 a0(x, y)
31520 a1(x, y)
31521 a2(x, y)
31522 a3(x, y)
31523 Return the value of the pixel at location (x,y) of the
31524 first/second/third/fourth component of first input.
31525
31526 b0(x, y)
31527 b1(x, y)
31528 b2(x, y)
31529 b3(x, y)
31530 Return the value of the pixel at location (x,y) of the
31531 first/second/third/fourth component of second input.
31532
31533 Examples
31534
31535 • Cross fade from one input video to another input video, with fade
31536 transition and duration of transition of 2 seconds starting at
31537 offset of 5 seconds:
31538
31539 ffmpeg -i first.mp4 -i second.mp4 -filter_complex xfade=transition=fade:duration=2:offset=5 output.mp4
31540
31541 xmedian
31542 Pick median pixels from several input videos.
31543
31544 The filter accepts the following options:
31545
31546 inputs
31547 Set number of inputs. Default is 3. Allowed range is from 3 to
31548 255. If number of inputs is even number, than result will be mean
31549 value between two median values.
31550
31551 planes
31552 Set which planes to filter. Default value is 15, by which all
31553 planes are processed.
31554
31555 percentile
31556 Set median percentile. Default value is 0.5. Default value of 0.5
31557 will pick always median values, while 0 will pick minimum values,
31558 and 1 maximum values.
31559
31560 Commands
31561
31562 This filter supports all above options as commands, excluding option
31563 "inputs".
31564
31565 xstack
31566 Stack video inputs into custom layout.
31567
31568 All streams must be of same pixel format.
31569
31570 The filter accepts the following options:
31571
31572 inputs
31573 Set number of input streams. Default is 2.
31574
31575 layout
31576 Specify layout of inputs. This option requires the desired layout
31577 configuration to be explicitly set by the user. This sets position
31578 of each video input in output. Each input is separated by '|'. The
31579 first number represents the column, and the second number
31580 represents the row. Numbers start at 0 and are separated by '_'.
31581 Optionally one can use wX and hX, where X is video input from which
31582 to take width or height. Multiple values can be used when
31583 separated by '+'. In such case values are summed together.
31584
31585 Note that if inputs are of different sizes gaps may appear, as not
31586 all of the output video frame will be filled. Similarly, videos can
31587 overlap each other if their position doesn't leave enough space for
31588 the full frame of adjoining videos.
31589
31590 For 2 inputs, a default layout of "0_0|w0_0" (equivalent to
31591 "grid=2x1") is set. In all other cases, a layout or a grid must be
31592 set by the user. Either "grid" or "layout" can be specified at a
31593 time. Specifying both will result in an error.
31594
31595 grid
31596 Specify a fixed size grid of inputs. This option is used to create
31597 a fixed size grid of the input streams. Set the grid size in the
31598 form "COLUMNSxROWS". There must be "ROWS * COLUMNS" input streams
31599 and they will be arranged as a grid with "ROWS" rows and "COLUMNS"
31600 columns. When using this option, each input stream within a row
31601 must have the same height and all the rows must have the same
31602 width.
31603
31604 If "grid" is set, then "inputs" option is ignored and is implicitly
31605 set to "ROWS * COLUMNS".
31606
31607 For 2 inputs, a default grid of "2x1" (equivalent to
31608 "layout=0_0|w0_0") is set. In all other cases, a layout or a grid
31609 must be set by the user. Either "grid" or "layout" can be specified
31610 at a time. Specifying both will result in an error.
31611
31612 shortest
31613 If set to 1, force the output to terminate when the shortest input
31614 terminates. Default value is 0.
31615
31616 fill
31617 If set to valid color, all unused pixels will be filled with that
31618 color. By default fill is set to none, so it is disabled.
31619
31620 Examples
31621
31622 • Display 4 inputs into 2x2 grid.
31623
31624 Layout:
31625
31626 input1(0, 0) | input3(w0, 0)
31627 input2(0, h0) | input4(w0, h0)
31628
31629
31630
31631 xstack=inputs=4:layout=0_0|0_h0|w0_0|w0_h0
31632
31633 Note that if inputs are of different sizes, gaps or overlaps may
31634 occur.
31635
31636 • Display 4 inputs into 1x4 grid.
31637
31638 Layout:
31639
31640 input1(0, 0)
31641 input2(0, h0)
31642 input3(0, h0+h1)
31643 input4(0, h0+h1+h2)
31644
31645
31646
31647 xstack=inputs=4:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2
31648
31649 Note that if inputs are of different widths, unused space will
31650 appear.
31651
31652 • Display 9 inputs into 3x3 grid.
31653
31654 Layout:
31655
31656 input1(0, 0) | input4(w0, 0) | input7(w0+w3, 0)
31657 input2(0, h0) | input5(w0, h0) | input8(w0+w3, h0)
31658 input3(0, h0+h1) | input6(w0, h0+h1) | input9(w0+w3, h0+h1)
31659
31660
31661
31662 xstack=inputs=9:layout=0_0|0_h0|0_h0+h1|w0_0|w0_h0|w0_h0+h1|w0+w3_0|w0+w3_h0|w0+w3_h0+h1
31663
31664 Note that if inputs are of different sizes, gaps or overlaps may
31665 occur.
31666
31667 • Display 16 inputs into 4x4 grid.
31668
31669 Layout:
31670
31671 input1(0, 0) | input5(w0, 0) | input9 (w0+w4, 0) | input13(w0+w4+w8, 0)
31672 input2(0, h0) | input6(w0, h0) | input10(w0+w4, h0) | input14(w0+w4+w8, h0)
31673 input3(0, h0+h1) | input7(w0, h0+h1) | input11(w0+w4, h0+h1) | input15(w0+w4+w8, h0+h1)
31674 input4(0, h0+h1+h2)| input8(w0, h0+h1+h2)| input12(w0+w4, h0+h1+h2)| input16(w0+w4+w8, h0+h1+h2)
31675
31676
31677
31678 xstack=inputs=16:layout=0_0|0_h0|0_h0+h1|0_h0+h1+h2|w0_0|w0_h0|w0_h0+h1|w0_h0+h1+h2|w0+w4_0|
31679 w0+w4_h0|w0+w4_h0+h1|w0+w4_h0+h1+h2|w0+w4+w8_0|w0+w4+w8_h0|w0+w4+w8_h0+h1|w0+w4+w8_h0+h1+h2
31680
31681 Note that if inputs are of different sizes, gaps or overlaps may
31682 occur.
31683
31684 yadif
31685 Deinterlace the input video ("yadif" means "yet another deinterlacing
31686 filter").
31687
31688 It accepts the following parameters:
31689
31690 mode
31691 The interlacing mode to adopt. It accepts one of the following
31692 values:
31693
31694 0, send_frame
31695 Output one frame for each frame.
31696
31697 1, send_field
31698 Output one frame for each field.
31699
31700 2, send_frame_nospatial
31701 Like "send_frame", but it skips the spatial interlacing check.
31702
31703 3, send_field_nospatial
31704 Like "send_field", but it skips the spatial interlacing check.
31705
31706 The default value is "send_frame".
31707
31708 parity
31709 The picture field parity assumed for the input interlaced video. It
31710 accepts one of the following values:
31711
31712 0, tff
31713 Assume the top field is first.
31714
31715 1, bff
31716 Assume the bottom field is first.
31717
31718 -1, auto
31719 Enable automatic detection of field parity.
31720
31721 The default value is "auto". If the interlacing is unknown or the
31722 decoder does not export this information, top field first will be
31723 assumed.
31724
31725 deint
31726 Specify which frames to deinterlace. Accepts one of the following
31727 values:
31728
31729 0, all
31730 Deinterlace all frames.
31731
31732 1, interlaced
31733 Only deinterlace frames marked as interlaced.
31734
31735 The default value is "all".
31736
31737 yadif_cuda
31738 Deinterlace the input video using the yadif algorithm, but implemented
31739 in CUDA so that it can work as part of a GPU accelerated pipeline with
31740 nvdec and/or nvenc.
31741
31742 It accepts the following parameters:
31743
31744 mode
31745 The interlacing mode to adopt. It accepts one of the following
31746 values:
31747
31748 0, send_frame
31749 Output one frame for each frame.
31750
31751 1, send_field
31752 Output one frame for each field.
31753
31754 2, send_frame_nospatial
31755 Like "send_frame", but it skips the spatial interlacing check.
31756
31757 3, send_field_nospatial
31758 Like "send_field", but it skips the spatial interlacing check.
31759
31760 The default value is "send_frame".
31761
31762 parity
31763 The picture field parity assumed for the input interlaced video. It
31764 accepts one of the following values:
31765
31766 0, tff
31767 Assume the top field is first.
31768
31769 1, bff
31770 Assume the bottom field is first.
31771
31772 -1, auto
31773 Enable automatic detection of field parity.
31774
31775 The default value is "auto". If the interlacing is unknown or the
31776 decoder does not export this information, top field first will be
31777 assumed.
31778
31779 deint
31780 Specify which frames to deinterlace. Accepts one of the following
31781 values:
31782
31783 0, all
31784 Deinterlace all frames.
31785
31786 1, interlaced
31787 Only deinterlace frames marked as interlaced.
31788
31789 The default value is "all".
31790
31791 yaepblur
31792 Apply blur filter while preserving edges ("yaepblur" means "yet another
31793 edge preserving blur filter"). The algorithm is described in "J. S.
31794 Lee, Digital image enhancement and noise filtering by use of local
31795 statistics, IEEE Trans. Pattern Anal. Mach. Intell. PAMI-2, 1980."
31796
31797 It accepts the following parameters:
31798
31799 radius, r
31800 Set the window radius. Default value is 3.
31801
31802 planes, p
31803 Set which planes to filter. Default is only the first plane.
31804
31805 sigma, s
31806 Set blur strength. Default value is 128.
31807
31808 Commands
31809
31810 This filter supports same commands as options.
31811
31812 zoompan
31813 Apply Zoom & Pan effect.
31814
31815 This filter accepts the following options:
31816
31817 zoom, z
31818 Set the zoom expression. Range is 1-10. Default is 1.
31819
31820 x
31821 y Set the x and y expression. Default is 0.
31822
31823 d Set the duration expression in number of frames. This sets for how
31824 many number of frames effect will last for single input image.
31825 Default is 90.
31826
31827 s Set the output image size, default is 'hd720'.
31828
31829 fps Set the output frame rate, default is '25'.
31830
31831 Each expression can contain the following constants:
31832
31833 in_w, iw
31834 Input width.
31835
31836 in_h, ih
31837 Input height.
31838
31839 out_w, ow
31840 Output width.
31841
31842 out_h, oh
31843 Output height.
31844
31845 in Input frame count.
31846
31847 on Output frame count.
31848
31849 in_time, it
31850 The input timestamp expressed in seconds. It's NAN if the input
31851 timestamp is unknown.
31852
31853 out_time, time, ot
31854 The output timestamp expressed in seconds.
31855
31856 x
31857 y Last calculated 'x' and 'y' position from 'x' and 'y' expression
31858 for current input frame.
31859
31860 px
31861 py 'x' and 'y' of last output frame of previous input frame or 0 when
31862 there was not yet such frame (first input frame).
31863
31864 zoom
31865 Last calculated zoom from 'z' expression for current input frame.
31866
31867 pzoom
31868 Last calculated zoom of last output frame of previous input frame.
31869
31870 duration
31871 Number of output frames for current input frame. Calculated from
31872 'd' expression for each input frame.
31873
31874 pduration
31875 number of output frames created for previous input frame
31876
31877 a Rational number: input width / input height
31878
31879 sar sample aspect ratio
31880
31881 dar display aspect ratio
31882
31883 Examples
31884
31885 • Zoom in up to 1.5x and pan at same time to some spot near center of
31886 picture:
31887
31888 zoompan=z='min(zoom+0.0015,1.5)':d=700:x='if(gte(zoom,1.5),x,x+1/a)':y='if(gte(zoom,1.5),y,y+1)':s=640x360
31889
31890 • Zoom in up to 1.5x and pan always at center of picture:
31891
31892 zoompan=z='min(zoom+0.0015,1.5)':d=700:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31893
31894 • Same as above but without pausing:
31895
31896 zoompan=z='min(max(zoom,pzoom)+0.0015,1.5)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31897
31898 • Zoom in 2x into center of picture only for the first second of the
31899 input video:
31900
31901 zoompan=z='if(between(in_time,0,1),2,1)':d=1:x='iw/2-(iw/zoom/2)':y='ih/2-(ih/zoom/2)'
31902
31903 zscale
31904 Scale (resize) the input video, using the z.lib library:
31905 <https://github.com/sekrit-twc/zimg>. To enable compilation of this
31906 filter, you need to configure FFmpeg with "--enable-libzimg".
31907
31908 The zscale filter forces the output display aspect ratio to be the same
31909 as the input, by changing the output sample aspect ratio.
31910
31911 If the input image format is different from the format requested by the
31912 next filter, the zscale filter will convert the input to the requested
31913 format.
31914
31915 Options
31916
31917 The filter accepts the following options.
31918
31919 width, w
31920 height, h
31921 Set the output video dimension expression. Default value is the
31922 input dimension.
31923
31924 If the width or w value is 0, the input width is used for the
31925 output. If the height or h value is 0, the input height is used for
31926 the output.
31927
31928 If one and only one of the values is -n with n >= 1, the zscale
31929 filter will use a value that maintains the aspect ratio of the
31930 input image, calculated from the other specified dimension. After
31931 that it will, however, make sure that the calculated dimension is
31932 divisible by n and adjust the value if necessary.
31933
31934 If both values are -n with n >= 1, the behavior will be identical
31935 to both values being set to 0 as previously detailed.
31936
31937 See below for the list of accepted constants for use in the
31938 dimension expression.
31939
31940 size, s
31941 Set the video size. For the syntax of this option, check the "Video
31942 size" section in the ffmpeg-utils manual.
31943
31944 dither, d
31945 Set the dither type.
31946
31947 Possible values are:
31948
31949 none
31950 ordered
31951 random
31952 error_diffusion
31953
31954 Default is none.
31955
31956 filter, f
31957 Set the resize filter type.
31958
31959 Possible values are:
31960
31961 point
31962 bilinear
31963 bicubic
31964 spline16
31965 spline36
31966 lanczos
31967
31968 Default is bilinear.
31969
31970 range, r
31971 Set the color range.
31972
31973 Possible values are:
31974
31975 input
31976 limited
31977 full
31978
31979 Default is same as input.
31980
31981 primaries, p
31982 Set the color primaries.
31983
31984 Possible values are:
31985
31986 input
31987 709
31988 unspecified
31989 170m
31990 240m
31991 2020
31992
31993 Default is same as input.
31994
31995 transfer, t
31996 Set the transfer characteristics.
31997
31998 Possible values are:
31999
32000 input
32001 709
32002 unspecified
32003 601
32004 linear
32005 2020_10
32006 2020_12
32007 smpte2084
32008 iec61966-2-1
32009 arib-std-b67
32010
32011 Default is same as input.
32012
32013 matrix, m
32014 Set the colorspace matrix.
32015
32016 Possible value are:
32017
32018 input
32019 709
32020 unspecified
32021 470bg
32022 170m
32023 2020_ncl
32024 2020_cl
32025
32026 Default is same as input.
32027
32028 rangein, rin
32029 Set the input color range.
32030
32031 Possible values are:
32032
32033 input
32034 limited
32035 full
32036
32037 Default is same as input.
32038
32039 primariesin, pin
32040 Set the input color primaries.
32041
32042 Possible values are:
32043
32044 input
32045 709
32046 unspecified
32047 170m
32048 240m
32049 2020
32050
32051 Default is same as input.
32052
32053 transferin, tin
32054 Set the input transfer characteristics.
32055
32056 Possible values are:
32057
32058 input
32059 709
32060 unspecified
32061 601
32062 linear
32063 2020_10
32064 2020_12
32065
32066 Default is same as input.
32067
32068 matrixin, min
32069 Set the input colorspace matrix.
32070
32071 Possible value are:
32072
32073 input
32074 709
32075 unspecified
32076 470bg
32077 170m
32078 2020_ncl
32079 2020_cl
32080 chromal, c
32081 Set the output chroma location.
32082
32083 Possible values are:
32084
32085 input
32086 left
32087 center
32088 topleft
32089 top
32090 bottomleft
32091 bottom
32092 chromalin, cin
32093 Set the input chroma location.
32094
32095 Possible values are:
32096
32097 input
32098 left
32099 center
32100 topleft
32101 top
32102 bottomleft
32103 bottom
32104 npl Set the nominal peak luminance.
32105
32106 param_a
32107 Parameter A for scaling filters. Parameter "b" for bicubic, and the
32108 number of filter taps for lanczos.
32109
32110 param_b
32111 Parameter B for scaling filters. Parameter "c" for bicubic.
32112
32113 The values of the w and h options are expressions containing the
32114 following constants:
32115
32116 in_w
32117 in_h
32118 The input width and height
32119
32120 iw
32121 ih These are the same as in_w and in_h.
32122
32123 out_w
32124 out_h
32125 The output (scaled) width and height
32126
32127 ow
32128 oh These are the same as out_w and out_h
32129
32130 a The same as iw / ih
32131
32132 sar input sample aspect ratio
32133
32134 dar The input display aspect ratio. Calculated from "(iw / ih) * sar".
32135
32136 hsub
32137 vsub
32138 horizontal and vertical input chroma subsample values. For example
32139 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
32140
32141 ohsub
32142 ovsub
32143 horizontal and vertical output chroma subsample values. For example
32144 for the pixel format "yuv422p" hsub is 2 and vsub is 1.
32145
32146 Commands
32147
32148 This filter supports the following commands:
32149
32150 width, w
32151 height, h
32152 Set the output video dimension expression. The command accepts the
32153 same syntax of the corresponding option.
32154
32155 If the specified expression is not valid, it is kept at its current
32156 value.
32157
32159 Below is a description of the currently available OpenCL video filters.
32160
32161 To enable compilation of these filters you need to configure FFmpeg
32162 with "--enable-opencl".
32163
32164 Running OpenCL filters requires you to initialize a hardware device and
32165 to pass that device to all filters in any filter graph.
32166
32167 -init_hw_device opencl[=name][:device[,key=value...]]
32168 Initialise a new hardware device of type opencl called name, using
32169 the given device parameters.
32170
32171 -filter_hw_device name
32172 Pass the hardware device called name to all filters in any filter
32173 graph.
32174
32175 For more detailed information see
32176 <https://www.ffmpeg.org/ffmpeg.html#Advanced-Video-options>
32177
32178 • Example of choosing the first device on the second platform and
32179 running avgblur_opencl filter with default parameters on it.
32180
32181 -init_hw_device opencl=gpu:1.0 -filter_hw_device gpu -i INPUT -vf "hwupload, avgblur_opencl, hwdownload" OUTPUT
32182
32183 Since OpenCL filters are not able to access frame data in normal
32184 memory, all frame data needs to be uploaded(hwupload) to hardware
32185 surfaces connected to the appropriate device before being used and then
32186 downloaded(hwdownload) back to normal memory. Note that hwupload will
32187 upload to a surface with the same layout as the software frame, so it
32188 may be necessary to add a format filter immediately before to get the
32189 input into the right format and hwdownload does not support all formats
32190 on the output - it may be necessary to insert an additional format
32191 filter immediately following in the graph to get the output in a
32192 supported format.
32193
32194 avgblur_opencl
32195 Apply average blur filter.
32196
32197 The filter accepts the following options:
32198
32199 sizeX
32200 Set horizontal radius size. Range is "[1, 1024]" and default value
32201 is 1.
32202
32203 planes
32204 Set which planes to filter. Default value is 0xf, by which all
32205 planes are processed.
32206
32207 sizeY
32208 Set vertical radius size. Range is "[1, 1024]" and default value is
32209 0. If zero, "sizeX" value will be used.
32210
32211 Example
32212
32213 • Apply average blur filter with horizontal and vertical size of 3,
32214 setting each pixel of the output to the average value of the 7x7
32215 region centered on it in the input. For pixels on the edges of the
32216 image, the region does not extend beyond the image boundaries, and
32217 so out-of-range coordinates are not used in the calculations.
32218
32219 -i INPUT -vf "hwupload, avgblur_opencl=3, hwdownload" OUTPUT
32220
32221 boxblur_opencl
32222 Apply a boxblur algorithm to the input video.
32223
32224 It accepts the following parameters:
32225
32226 luma_radius, lr
32227 luma_power, lp
32228 chroma_radius, cr
32229 chroma_power, cp
32230 alpha_radius, ar
32231 alpha_power, ap
32232
32233 A description of the accepted options follows.
32234
32235 luma_radius, lr
32236 chroma_radius, cr
32237 alpha_radius, ar
32238 Set an expression for the box radius in pixels used for blurring
32239 the corresponding input plane.
32240
32241 The radius value must be a non-negative number, and must not be
32242 greater than the value of the expression "min(w,h)/2" for the luma
32243 and alpha planes, and of "min(cw,ch)/2" for the chroma planes.
32244
32245 Default value for luma_radius is "2". If not specified,
32246 chroma_radius and alpha_radius default to the corresponding value
32247 set for luma_radius.
32248
32249 The expressions can contain the following constants:
32250
32251 w
32252 h The input width and height in pixels.
32253
32254 cw
32255 ch The input chroma image width and height in pixels.
32256
32257 hsub
32258 vsub
32259 The horizontal and vertical chroma subsample values. For
32260 example, for the pixel format "yuv422p", hsub is 2 and vsub is
32261 1.
32262
32263 luma_power, lp
32264 chroma_power, cp
32265 alpha_power, ap
32266 Specify how many times the boxblur filter is applied to the
32267 corresponding plane.
32268
32269 Default value for luma_power is 2. If not specified, chroma_power
32270 and alpha_power default to the corresponding value set for
32271 luma_power.
32272
32273 A value of 0 will disable the effect.
32274
32275 Examples
32276
32277 Apply boxblur filter, setting each pixel of the output to the average
32278 value of box-radiuses luma_radius, chroma_radius, alpha_radius for each
32279 plane respectively. The filter will apply luma_power, chroma_power,
32280 alpha_power times onto the corresponding plane. For pixels on the edges
32281 of the image, the radius does not extend beyond the image boundaries,
32282 and so out-of-range coordinates are not used in the calculations.
32283
32284 • Apply a boxblur filter with the luma, chroma, and alpha radius set
32285 to 2 and luma, chroma, and alpha power set to 3. The filter will
32286 run 3 times with box-radius set to 2 for every plane of the image.
32287
32288 -i INPUT -vf "hwupload, boxblur_opencl=luma_radius=2:luma_power=3, hwdownload" OUTPUT
32289 -i INPUT -vf "hwupload, boxblur_opencl=2:3, hwdownload" OUTPUT
32290
32291 • Apply a boxblur filter with luma radius set to 2, luma_power to 1,
32292 chroma_radius to 4, chroma_power to 5, alpha_radius to 3 and
32293 alpha_power to 7.
32294
32295 For the luma plane, a 2x2 box radius will be run once.
32296
32297 For the chroma plane, a 4x4 box radius will be run 5 times.
32298
32299 For the alpha plane, a 3x3 box radius will be run 7 times.
32300
32301 -i INPUT -vf "hwupload, boxblur_opencl=2:1:4:5:3:7, hwdownload" OUTPUT
32302
32303 colorkey_opencl
32304 RGB colorspace color keying.
32305
32306 The filter accepts the following options:
32307
32308 color
32309 The color which will be replaced with transparency.
32310
32311 similarity
32312 Similarity percentage with the key color.
32313
32314 0.01 matches only the exact key color, while 1.0 matches
32315 everything.
32316
32317 blend
32318 Blend percentage.
32319
32320 0.0 makes pixels either fully transparent, or not transparent at
32321 all.
32322
32323 Higher values result in semi-transparent pixels, with a higher
32324 transparency the more similar the pixels color is to the key color.
32325
32326 Examples
32327
32328 • Make every semi-green pixel in the input transparent with some
32329 slight blending:
32330
32331 -i INPUT -vf "hwupload, colorkey_opencl=green:0.3:0.1, hwdownload" OUTPUT
32332
32333 convolution_opencl
32334 Apply convolution of 3x3, 5x5, 7x7 matrix.
32335
32336 The filter accepts the following options:
32337
32338 0m
32339 1m
32340 2m
32341 3m Set matrix for each plane. Matrix is sequence of 9, 25 or 49
32342 signed numbers. Default value for each plane is "0 0 0 0 1 0 0 0
32343 0".
32344
32345 0rdiv
32346 1rdiv
32347 2rdiv
32348 3rdiv
32349 Set multiplier for calculated value for each plane. If unset or 0,
32350 it will be sum of all matrix elements. The option value must be a
32351 float number greater or equal to 0.0. Default value is 1.0.
32352
32353 0bias
32354 1bias
32355 2bias
32356 3bias
32357 Set bias for each plane. This value is added to the result of the
32358 multiplication. Useful for making the overall image brighter or
32359 darker. The option value must be a float number greater or equal
32360 to 0.0. Default value is 0.0.
32361
32362 Examples
32363
32364 • Apply sharpen:
32365
32366 -i INPUT -vf "hwupload, convolution_opencl=0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0:0 -1 0 -1 5 -1 0 -1 0, hwdownload" OUTPUT
32367
32368 • Apply blur:
32369
32370 -i INPUT -vf "hwupload, convolution_opencl=1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1 1 1 1 1 1 1 1 1:1/9:1/9:1/9:1/9, hwdownload" OUTPUT
32371
32372 • Apply edge enhance:
32373
32374 -i INPUT -vf "hwupload, convolution_opencl=0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:0 0 0 -1 1 0 0 0 0:5:1:1:1:0:128:128:128, hwdownload" OUTPUT
32375
32376 • Apply edge detect:
32377
32378 -i INPUT -vf "hwupload, convolution_opencl=0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:0 1 0 1 -4 1 0 1 0:5:5:5:1:0:128:128:128, hwdownload" OUTPUT
32379
32380 • Apply laplacian edge detector which includes diagonals:
32381
32382 -i INPUT -vf "hwupload, convolution_opencl=1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:1 1 1 1 -8 1 1 1 1:5:5:5:1:0:128:128:0, hwdownload" OUTPUT
32383
32384 • Apply emboss:
32385
32386 -i INPUT -vf "hwupload, convolution_opencl=-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2:-2 -1 0 -1 1 1 0 1 2, hwdownload" OUTPUT
32387
32388 erosion_opencl
32389 Apply erosion effect to the video.
32390
32391 This filter replaces the pixel by the local(3x3) minimum.
32392
32393 It accepts the following options:
32394
32395 threshold0
32396 threshold1
32397 threshold2
32398 threshold3
32399 Limit the maximum change for each plane. Range is "[0, 65535]" and
32400 default value is 65535. If 0, plane will remain unchanged.
32401
32402 coordinates
32403 Flag which specifies the pixel to refer to. Range is "[0, 255]"
32404 and default value is 255, i.e. all eight pixels are used.
32405
32406 Flags to local 3x3 coordinates region centered on "x":
32407
32408 1 2 3
32409
32410 4 x 5
32411
32412 6 7 8
32413
32414 Example
32415
32416 • Apply erosion filter with threshold0 set to 30, threshold1 set 40,
32417 threshold2 set to 50 and coordinates set to 231, setting each pixel
32418 of the output to the local minimum between pixels: 1, 2, 3, 6, 7, 8
32419 of the 3x3 region centered on it in the input. If the difference
32420 between input pixel and local minimum is more then threshold of the
32421 corresponding plane, output pixel will be set to input pixel -
32422 threshold of corresponding plane.
32423
32424 -i INPUT -vf "hwupload, erosion_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
32425
32426 deshake_opencl
32427 Feature-point based video stabilization filter.
32428
32429 The filter accepts the following options:
32430
32431 tripod
32432 Simulates a tripod by preventing any camera movement whatsoever
32433 from the original frame. Defaults to 0.
32434
32435 debug
32436 Whether or not additional debug info should be displayed, both in
32437 the processed output and in the console.
32438
32439 Note that in order to see console debug output you will also need
32440 to pass "-v verbose" to ffmpeg.
32441
32442 Viewing point matches in the output video is only supported for RGB
32443 input.
32444
32445 Defaults to 0.
32446
32447 adaptive_crop
32448 Whether or not to do a tiny bit of cropping at the borders to cut
32449 down on the amount of mirrored pixels.
32450
32451 Defaults to 1.
32452
32453 refine_features
32454 Whether or not feature points should be refined at a sub-pixel
32455 level.
32456
32457 This can be turned off for a slight performance gain at the cost of
32458 precision.
32459
32460 Defaults to 1.
32461
32462 smooth_strength
32463 The strength of the smoothing applied to the camera path from 0.0
32464 to 1.0.
32465
32466 1.0 is the maximum smoothing strength while values less than that
32467 result in less smoothing.
32468
32469 0.0 causes the filter to adaptively choose a smoothing strength on
32470 a per-frame basis.
32471
32472 Defaults to 0.0.
32473
32474 smooth_window_multiplier
32475 Controls the size of the smoothing window (the number of frames
32476 buffered to determine motion information from).
32477
32478 The size of the smoothing window is determined by multiplying the
32479 framerate of the video by this number.
32480
32481 Acceptable values range from 0.1 to 10.0.
32482
32483 Larger values increase the amount of motion data available for
32484 determining how to smooth the camera path, potentially improving
32485 smoothness, but also increase latency and memory usage.
32486
32487 Defaults to 2.0.
32488
32489 Examples
32490
32491 • Stabilize a video with a fixed, medium smoothing strength:
32492
32493 -i INPUT -vf "hwupload, deshake_opencl=smooth_strength=0.5, hwdownload" OUTPUT
32494
32495 • Stabilize a video with debugging (both in console and in rendered
32496 video):
32497
32498 -i INPUT -filter_complex "[0:v]format=rgba, hwupload, deshake_opencl=debug=1, hwdownload, format=rgba, format=yuv420p" -v verbose OUTPUT
32499
32500 dilation_opencl
32501 Apply dilation effect to the video.
32502
32503 This filter replaces the pixel by the local(3x3) maximum.
32504
32505 It accepts the following options:
32506
32507 threshold0
32508 threshold1
32509 threshold2
32510 threshold3
32511 Limit the maximum change for each plane. Range is "[0, 65535]" and
32512 default value is 65535. If 0, plane will remain unchanged.
32513
32514 coordinates
32515 Flag which specifies the pixel to refer to. Range is "[0, 255]"
32516 and default value is 255, i.e. all eight pixels are used.
32517
32518 Flags to local 3x3 coordinates region centered on "x":
32519
32520 1 2 3
32521
32522 4 x 5
32523
32524 6 7 8
32525
32526 Example
32527
32528 • Apply dilation filter with threshold0 set to 30, threshold1 set 40,
32529 threshold2 set to 50 and coordinates set to 231, setting each pixel
32530 of the output to the local maximum between pixels: 1, 2, 3, 6, 7, 8
32531 of the 3x3 region centered on it in the input. If the difference
32532 between input pixel and local maximum is more then threshold of the
32533 corresponding plane, output pixel will be set to input pixel +
32534 threshold of corresponding plane.
32535
32536 -i INPUT -vf "hwupload, dilation_opencl=30:40:50:coordinates=231, hwdownload" OUTPUT
32537
32538 nlmeans_opencl
32539 Non-local Means denoise filter through OpenCL, this filter accepts same
32540 options as nlmeans.
32541
32542 overlay_opencl
32543 Overlay one video on top of another.
32544
32545 It takes two inputs and has one output. The first input is the "main"
32546 video on which the second input is overlaid. This filter requires same
32547 memory layout for all the inputs. So, format conversion may be needed.
32548
32549 The filter accepts the following options:
32550
32551 x Set the x coordinate of the overlaid video on the main video.
32552 Default value is 0.
32553
32554 y Set the y coordinate of the overlaid video on the main video.
32555 Default value is 0.
32556
32557 Examples
32558
32559 • Overlay an image LOGO at the top-left corner of the INPUT video.
32560 Both inputs are yuv420p format.
32561
32562 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
32563
32564 • The inputs have same memory layout for color channels , the overlay
32565 has additional alpha plane, like INPUT is yuv420p, and the LOGO is
32566 yuva420p.
32567
32568 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_opencl, hwdownload" OUTPUT
32569
32570 pad_opencl
32571 Add paddings to the input image, and place the original input at the
32572 provided x, y coordinates.
32573
32574 It accepts the following options:
32575
32576 width, w
32577 height, h
32578 Specify an expression for the size of the output image with the
32579 paddings added. If the value for width or height is 0, the
32580 corresponding input size is used for the output.
32581
32582 The width expression can reference the value set by the height
32583 expression, and vice versa.
32584
32585 The default value of width and height is 0.
32586
32587 x
32588 y Specify the offsets to place the input image at within the padded
32589 area, with respect to the top/left border of the output image.
32590
32591 The x expression can reference the value set by the y expression,
32592 and vice versa.
32593
32594 The default value of x and y is 0.
32595
32596 If x or y evaluate to a negative number, they'll be changed so the
32597 input image is centered on the padded area.
32598
32599 color
32600 Specify the color of the padded area. For the syntax of this
32601 option, check the "Color" section in the ffmpeg-utils manual.
32602
32603 aspect
32604 Pad to an aspect instead to a resolution.
32605
32606 The value for the width, height, x, and y options are expressions
32607 containing the following constants:
32608
32609 in_w
32610 in_h
32611 The input video width and height.
32612
32613 iw
32614 ih These are the same as in_w and in_h.
32615
32616 out_w
32617 out_h
32618 The output width and height (the size of the padded area), as
32619 specified by the width and height expressions.
32620
32621 ow
32622 oh These are the same as out_w and out_h.
32623
32624 x
32625 y The x and y offsets as specified by the x and y expressions, or NAN
32626 if not yet specified.
32627
32628 a same as iw / ih
32629
32630 sar input sample aspect ratio
32631
32632 dar input display aspect ratio, it is the same as (iw / ih) * sar
32633
32634 prewitt_opencl
32635 Apply the Prewitt operator
32636 (<https://en.wikipedia.org/wiki/Prewitt_operator>) to input video
32637 stream.
32638
32639 The filter accepts the following option:
32640
32641 planes
32642 Set which planes to filter. Default value is 0xf, by which all
32643 planes are processed.
32644
32645 scale
32646 Set value which will be multiplied with filtered result. Range is
32647 "[0.0, 65535]" and default value is 1.0.
32648
32649 delta
32650 Set value which will be added to filtered result. Range is
32651 "[-65535, 65535]" and default value is 0.0.
32652
32653 Example
32654
32655 • Apply the Prewitt operator with scale set to 2 and delta set to 10.
32656
32657 -i INPUT -vf "hwupload, prewitt_opencl=scale=2:delta=10, hwdownload" OUTPUT
32658
32659 program_opencl
32660 Filter video using an OpenCL program.
32661
32662 source
32663 OpenCL program source file.
32664
32665 kernel
32666 Kernel name in program.
32667
32668 inputs
32669 Number of inputs to the filter. Defaults to 1.
32670
32671 size, s
32672 Size of output frames. Defaults to the same as the first input.
32673
32674 The "program_opencl" filter also supports the framesync options.
32675
32676 The program source file must contain a kernel function with the given
32677 name, which will be run once for each plane of the output. Each run on
32678 a plane gets enqueued as a separate 2D global NDRange with one work-
32679 item for each pixel to be generated. The global ID offset for each
32680 work-item is therefore the coordinates of a pixel in the destination
32681 image.
32682
32683 The kernel function needs to take the following arguments:
32684
32685 • Destination image, __write_only image2d_t.
32686
32687 This image will become the output; the kernel should write all of
32688 it.
32689
32690 • Frame index, unsigned int.
32691
32692 This is a counter starting from zero and increasing by one for each
32693 frame.
32694
32695 • Source images, __read_only image2d_t.
32696
32697 These are the most recent images on each input. The kernel may
32698 read from them to generate the output, but they can't be written
32699 to.
32700
32701 Example programs:
32702
32703 • Copy the input to the output (output must be the same size as the
32704 input).
32705
32706 __kernel void copy(__write_only image2d_t destination,
32707 unsigned int index,
32708 __read_only image2d_t source)
32709 {
32710 const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE;
32711
32712 int2 location = (int2)(get_global_id(0), get_global_id(1));
32713
32714 float4 value = read_imagef(source, sampler, location);
32715
32716 write_imagef(destination, location, value);
32717 }
32718
32719 • Apply a simple transformation, rotating the input by an amount
32720 increasing with the index counter. Pixel values are linearly
32721 interpolated by the sampler, and the output need not have the same
32722 dimensions as the input.
32723
32724 __kernel void rotate_image(__write_only image2d_t dst,
32725 unsigned int index,
32726 __read_only image2d_t src)
32727 {
32728 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
32729 CLK_FILTER_LINEAR);
32730
32731 float angle = (float)index / 100.0f;
32732
32733 float2 dst_dim = convert_float2(get_image_dim(dst));
32734 float2 src_dim = convert_float2(get_image_dim(src));
32735
32736 float2 dst_cen = dst_dim / 2.0f;
32737 float2 src_cen = src_dim / 2.0f;
32738
32739 int2 dst_loc = (int2)(get_global_id(0), get_global_id(1));
32740
32741 float2 dst_pos = convert_float2(dst_loc) - dst_cen;
32742 float2 src_pos = {
32743 cos(angle) * dst_pos.x - sin(angle) * dst_pos.y,
32744 sin(angle) * dst_pos.x + cos(angle) * dst_pos.y
32745 };
32746 src_pos = src_pos * src_dim / dst_dim;
32747
32748 float2 src_loc = src_pos + src_cen;
32749
32750 if (src_loc.x < 0.0f || src_loc.y < 0.0f ||
32751 src_loc.x > src_dim.x || src_loc.y > src_dim.y)
32752 write_imagef(dst, dst_loc, 0.5f);
32753 else
32754 write_imagef(dst, dst_loc, read_imagef(src, sampler, src_loc));
32755 }
32756
32757 • Blend two inputs together, with the amount of each input used
32758 varying with the index counter.
32759
32760 __kernel void blend_images(__write_only image2d_t dst,
32761 unsigned int index,
32762 __read_only image2d_t src1,
32763 __read_only image2d_t src2)
32764 {
32765 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
32766 CLK_FILTER_LINEAR);
32767
32768 float blend = (cos((float)index / 50.0f) + 1.0f) / 2.0f;
32769
32770 int2 dst_loc = (int2)(get_global_id(0), get_global_id(1));
32771 int2 src1_loc = dst_loc * get_image_dim(src1) / get_image_dim(dst);
32772 int2 src2_loc = dst_loc * get_image_dim(src2) / get_image_dim(dst);
32773
32774 float4 val1 = read_imagef(src1, sampler, src1_loc);
32775 float4 val2 = read_imagef(src2, sampler, src2_loc);
32776
32777 write_imagef(dst, dst_loc, val1 * blend + val2 * (1.0f - blend));
32778 }
32779
32780 remap_opencl
32781 Remap pixels using 2nd: Xmap and 3rd: Ymap input video stream.
32782
32783 Destination pixel at position (X, Y) will be picked from source (x, y)
32784 position where x = Xmap(X, Y) and y = Ymap(X, Y). If mapping values are
32785 out of range, zero value for pixel will be used for destination pixel.
32786
32787 Xmap and Ymap input video streams must be of same dimensions. Output
32788 video stream will have Xmap/Ymap video stream dimensions. Xmap and
32789 Ymap input video streams are 32bit float pixel format, single channel.
32790
32791 interp
32792 Specify interpolation used for remapping of pixels. Allowed values
32793 are "near" and "linear". Default value is "linear".
32794
32795 fill
32796 Specify the color of the unmapped pixels. For the syntax of this
32797 option, check the "Color" section in the ffmpeg-utils manual.
32798 Default color is "black".
32799
32800 roberts_opencl
32801 Apply the Roberts cross operator
32802 (<https://en.wikipedia.org/wiki/Roberts_cross>) to input video stream.
32803
32804 The filter accepts the following option:
32805
32806 planes
32807 Set which planes to filter. Default value is 0xf, by which all
32808 planes are processed.
32809
32810 scale
32811 Set value which will be multiplied with filtered result. Range is
32812 "[0.0, 65535]" and default value is 1.0.
32813
32814 delta
32815 Set value which will be added to filtered result. Range is
32816 "[-65535, 65535]" and default value is 0.0.
32817
32818 Example
32819
32820 • Apply the Roberts cross operator with scale set to 2 and delta set
32821 to 10
32822
32823 -i INPUT -vf "hwupload, roberts_opencl=scale=2:delta=10, hwdownload" OUTPUT
32824
32825 sobel_opencl
32826 Apply the Sobel operator
32827 (<https://en.wikipedia.org/wiki/Sobel_operator>) to input video stream.
32828
32829 The filter accepts the following option:
32830
32831 planes
32832 Set which planes to filter. Default value is 0xf, by which all
32833 planes are processed.
32834
32835 scale
32836 Set value which will be multiplied with filtered result. Range is
32837 "[0.0, 65535]" and default value is 1.0.
32838
32839 delta
32840 Set value which will be added to filtered result. Range is
32841 "[-65535, 65535]" and default value is 0.0.
32842
32843 Example
32844
32845 • Apply sobel operator with scale set to 2 and delta set to 10
32846
32847 -i INPUT -vf "hwupload, sobel_opencl=scale=2:delta=10, hwdownload" OUTPUT
32848
32849 tonemap_opencl
32850 Perform HDR(PQ/HLG) to SDR conversion with tone-mapping.
32851
32852 It accepts the following parameters:
32853
32854 tonemap
32855 Specify the tone-mapping operator to be used. Same as tonemap
32856 option in tonemap.
32857
32858 param
32859 Tune the tone mapping algorithm. same as param option in tonemap.
32860
32861 desat
32862 Apply desaturation for highlights that exceed this level of
32863 brightness. The higher the parameter, the more color information
32864 will be preserved. This setting helps prevent unnaturally blown-out
32865 colors for super-highlights, by (smoothly) turning into white
32866 instead. This makes images feel more natural, at the cost of
32867 reducing information about out-of-range colors.
32868
32869 The default value is 0.5, and the algorithm here is a little
32870 different from the cpu version tonemap currently. A setting of 0.0
32871 disables this option.
32872
32873 threshold
32874 The tonemapping algorithm parameters is fine-tuned per each scene.
32875 And a threshold is used to detect whether the scene has changed or
32876 not. If the distance between the current frame average brightness
32877 and the current running average exceeds a threshold value, we would
32878 re-calculate scene average and peak brightness. The default value
32879 is 0.2.
32880
32881 format
32882 Specify the output pixel format.
32883
32884 Currently supported formats are:
32885
32886 p010
32887 nv12
32888 range, r
32889 Set the output color range.
32890
32891 Possible values are:
32892
32893 tv/mpeg
32894 pc/jpeg
32895
32896 Default is same as input.
32897
32898 primaries, p
32899 Set the output color primaries.
32900
32901 Possible values are:
32902
32903 bt709
32904 bt2020
32905
32906 Default is same as input.
32907
32908 transfer, t
32909 Set the output transfer characteristics.
32910
32911 Possible values are:
32912
32913 bt709
32914 bt2020
32915
32916 Default is bt709.
32917
32918 matrix, m
32919 Set the output colorspace matrix.
32920
32921 Possible value are:
32922
32923 bt709
32924 bt2020
32925
32926 Default is same as input.
32927
32928 Example
32929
32930 • Convert HDR(PQ/HLG) video to bt2020-transfer-characteristic p010
32931 format using linear operator.
32932
32933 -i INPUT -vf "format=p010,hwupload,tonemap_opencl=t=bt2020:tonemap=linear:format=p010,hwdownload,format=p010" OUTPUT
32934
32935 unsharp_opencl
32936 Sharpen or blur the input video.
32937
32938 It accepts the following parameters:
32939
32940 luma_msize_x, lx
32941 Set the luma matrix horizontal size. Range is "[1, 23]" and
32942 default value is 5.
32943
32944 luma_msize_y, ly
32945 Set the luma matrix vertical size. Range is "[1, 23]" and default
32946 value is 5.
32947
32948 luma_amount, la
32949 Set the luma effect strength. Range is "[-10, 10]" and default
32950 value is 1.0.
32951
32952 Negative values will blur the input video, while positive values
32953 will sharpen it, a value of zero will disable the effect.
32954
32955 chroma_msize_x, cx
32956 Set the chroma matrix horizontal size. Range is "[1, 23]" and
32957 default value is 5.
32958
32959 chroma_msize_y, cy
32960 Set the chroma matrix vertical size. Range is "[1, 23]" and
32961 default value is 5.
32962
32963 chroma_amount, ca
32964 Set the chroma effect strength. Range is "[-10, 10]" and default
32965 value is 0.0.
32966
32967 Negative values will blur the input video, while positive values
32968 will sharpen it, a value of zero will disable the effect.
32969
32970 All parameters are optional and default to the equivalent of the string
32971 '5:5:1.0:5:5:0.0'.
32972
32973 Examples
32974
32975 • Apply strong luma sharpen effect:
32976
32977 -i INPUT -vf "hwupload, unsharp_opencl=luma_msize_x=7:luma_msize_y=7:luma_amount=2.5, hwdownload" OUTPUT
32978
32979 • Apply a strong blur of both luma and chroma parameters:
32980
32981 -i INPUT -vf "hwupload, unsharp_opencl=7:7:-2:7:7:-2, hwdownload" OUTPUT
32982
32983 xfade_opencl
32984 Cross fade two videos with custom transition effect by using OpenCL.
32985
32986 It accepts the following options:
32987
32988 transition
32989 Set one of possible transition effects.
32990
32991 custom
32992 Select custom transition effect, the actual transition
32993 description will be picked from source and kernel options.
32994
32995 fade
32996 wipeleft
32997 wiperight
32998 wipeup
32999 wipedown
33000 slideleft
33001 slideright
33002 slideup
33003 slidedown
33004 Default transition is fade.
33005
33006 source
33007 OpenCL program source file for custom transition.
33008
33009 kernel
33010 Set name of kernel to use for custom transition from program source
33011 file.
33012
33013 duration
33014 Set duration of video transition.
33015
33016 offset
33017 Set time of start of transition relative to first video.
33018
33019 The program source file must contain a kernel function with the given
33020 name, which will be run once for each plane of the output. Each run on
33021 a plane gets enqueued as a separate 2D global NDRange with one work-
33022 item for each pixel to be generated. The global ID offset for each
33023 work-item is therefore the coordinates of a pixel in the destination
33024 image.
33025
33026 The kernel function needs to take the following arguments:
33027
33028 • Destination image, __write_only image2d_t.
33029
33030 This image will become the output; the kernel should write all of
33031 it.
33032
33033 • First Source image, __read_only image2d_t. Second Source image,
33034 __read_only image2d_t.
33035
33036 These are the most recent images on each input. The kernel may
33037 read from them to generate the output, but they can't be written
33038 to.
33039
33040 • Transition progress, float. This value is always between 0 and 1
33041 inclusive.
33042
33043 Example programs:
33044
33045 • Apply dots curtain transition effect:
33046
33047 __kernel void blend_images(__write_only image2d_t dst,
33048 __read_only image2d_t src1,
33049 __read_only image2d_t src2,
33050 float progress)
33051 {
33052 const sampler_t sampler = (CLK_NORMALIZED_COORDS_FALSE |
33053 CLK_FILTER_LINEAR);
33054 int2 p = (int2)(get_global_id(0), get_global_id(1));
33055 float2 rp = (float2)(get_global_id(0), get_global_id(1));
33056 float2 dim = (float2)(get_image_dim(src1).x, get_image_dim(src1).y);
33057 rp = rp / dim;
33058
33059 float2 dots = (float2)(20.0, 20.0);
33060 float2 center = (float2)(0,0);
33061 float2 unused;
33062
33063 float4 val1 = read_imagef(src1, sampler, p);
33064 float4 val2 = read_imagef(src2, sampler, p);
33065 bool next = distance(fract(rp * dots, &unused), (float2)(0.5, 0.5)) < (progress / distance(rp, center));
33066
33067 write_imagef(dst, p, next ? val1 : val2);
33068 }
33069
33071 VAAPI Video filters are usually used with VAAPI decoder and VAAPI
33072 encoder. Below is a description of VAAPI video filters.
33073
33074 To enable compilation of these filters you need to configure FFmpeg
33075 with "--enable-vaapi".
33076
33077 To use vaapi filters, you need to setup the vaapi device correctly. For
33078 more information, please read
33079 <https://trac.ffmpeg.org/wiki/Hardware/VAAPI>
33080
33081 overlay_vaapi
33082 Overlay one video on the top of another.
33083
33084 It takes two inputs and has one output. The first input is the "main"
33085 video on which the second input is overlaid.
33086
33087 The filter accepts the following options:
33088
33089 x
33090 y Set expressions for the x and y coordinates of the overlaid video
33091 on the main video.
33092
33093 Default value is "0" for both expressions.
33094
33095 w
33096 h Set expressions for the width and height the overlaid video on the
33097 main video.
33098
33099 Default values are 'overlay_iw' for 'w' and
33100 'overlay_ih*w/overlay_iw' for 'h'.
33101
33102 The expressions can contain the following parameters:
33103
33104 main_w, W
33105 main_h, H
33106 The main input width and height.
33107
33108 overlay_iw
33109 overlay_ih
33110 The overlay input width and height.
33111
33112 overlay_w, w
33113 overlay_h, h
33114 The overlay output width and height.
33115
33116 overlay_x, x
33117 overlay_y, y
33118 Position of the overlay layer inside of main
33119
33120 alpha
33121 Set transparency of overlaid video. Allowed range is 0.0 to 1.0.
33122 Higher value means lower transparency. Default value is 1.0.
33123
33124 eof_action
33125 See framesync.
33126
33127 shortest
33128 See framesync.
33129
33130 repeatlast
33131 See framesync.
33132
33133 This filter also supports the framesync options.
33134
33135 Examples
33136
33137 • Overlay an image LOGO at the top-left corner of the INPUT video.
33138 Both inputs for this filter are yuv420p format.
33139
33140 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuv420p, hwupload[b], [a][b]overlay_vaapi" OUTPUT
33141
33142 • Overlay an image LOGO at the offset (200, 100) from the top-left
33143 corner of the INPUT video. The inputs have same memory layout for
33144 color channels, the overlay has additional alpha plane, like INPUT
33145 is yuv420p, and the LOGO is yuva420p.
33146
33147 -i INPUT -i LOGO -filter_complex "[0:v]hwupload[a], [1:v]format=yuva420p, hwupload[b], [a][b]overlay_vaapi=x=200:y=100:w=400:h=300:alpha=1.0, hwdownload, format=nv12" OUTPUT
33148
33149 tonemap_vaapi
33150 Perform HDR(High Dynamic Range) to SDR(Standard Dynamic Range)
33151 conversion with tone-mapping. It maps the dynamic range of HDR10
33152 content to the SDR content. It currently only accepts HDR10 as input.
33153
33154 It accepts the following parameters:
33155
33156 format
33157 Specify the output pixel format.
33158
33159 Currently supported formats are:
33160
33161 p010
33162 nv12
33163
33164 Default is nv12.
33165
33166 primaries, p
33167 Set the output color primaries.
33168
33169 Default is same as input.
33170
33171 transfer, t
33172 Set the output transfer characteristics.
33173
33174 Default is bt709.
33175
33176 matrix, m
33177 Set the output colorspace matrix.
33178
33179 Default is same as input.
33180
33181 Example
33182
33183 • Convert HDR(HDR10) video to bt2020-transfer-characteristic p010
33184 format
33185
33186 tonemap_vaapi=format=p010:t=bt2020-10
33187
33188 hstack_vaapi
33189 Stack input videos horizontally.
33190
33191 This is the VA-API variant of the hstack filter, each input stream may
33192 have different height, this filter will scale down/up each input stream
33193 while keeping the orignal aspect.
33194
33195 It accepts the following options:
33196
33197 inputs
33198 See hstack.
33199
33200 shortest
33201 See hstack.
33202
33203 height
33204 Set height of output. If set to 0, this filter will set height of
33205 output to height of the first input stream. Default value is 0.
33206
33207 vstack_vaapi
33208 Stack input videos vertically.
33209
33210 This is the VA-API variant of the vstack filter, each input stream may
33211 have different width, this filter will scale down/up each input stream
33212 while keeping the orignal aspect.
33213
33214 It accepts the following options:
33215
33216 inputs
33217 See vstack.
33218
33219 shortest
33220 See vstack.
33221
33222 width
33223 Set width of output. If set to 0, this filter will set width of
33224 output to width of the first input stream. Default value is 0.
33225
33226 xstack_vaapi
33227 Stack video inputs into custom layout.
33228
33229 This is the VA-API variant of the xstack filter, each input stream may
33230 have different size, this filter will scale down/up each input stream
33231 to the given output size, or the size of the first input stream.
33232
33233 It accepts the following options:
33234
33235 inputs
33236 See xstack.
33237
33238 shortest
33239 See xstack.
33240
33241 layout
33242 See xstack. Moreover, this permits the user to supply output size
33243 for each input stream.
33244
33245 xstack_vaapi=inputs=4:layout=0_0_1920x1080|0_h0_1920x1080|w0_0_1920x1080|w0_h0_1920x1080
33246
33247 grid
33248 See xstack.
33249
33250 grid_tile_size
33251 Set output size for each input stream when grid is set. If this
33252 option is not set, this filter will set output size by default to
33253 the size of the first input stream. For the syntax of this option,
33254 check the "Video size" section in the ffmpeg-utils manual.
33255
33256 fill
33257 See xstack.
33258
33260 Below is a description of the currently available QSV video filters.
33261
33262 To enable compilation of these filters you need to configure FFmpeg
33263 with "--enable-libmfx" or "--enable-libvpl".
33264
33265 To use QSV filters, you need to setup the QSV device correctly. For
33266 more information, please read
33267 <https://trac.ffmpeg.org/wiki/Hardware/QuickSync>
33268
33269 hstack_qsv
33270 Stack input videos horizontally.
33271
33272 This is the QSV variant of the hstack filter, each input stream may
33273 have different height, this filter will scale down/up each input stream
33274 while keeping the orignal aspect.
33275
33276 It accepts the following options:
33277
33278 inputs
33279 See hstack.
33280
33281 shortest
33282 See hstack.
33283
33284 height
33285 Set height of output. If set to 0, this filter will set height of
33286 output to height of the first input stream. Default value is 0.
33287
33288 vstack_qsv
33289 Stack input videos vertically.
33290
33291 This is the QSV variant of the vstack filter, each input stream may
33292 have different width, this filter will scale down/up each input stream
33293 while keeping the orignal aspect.
33294
33295 It accepts the following options:
33296
33297 inputs
33298 See vstack.
33299
33300 shortest
33301 See vstack.
33302
33303 width
33304 Set width of output. If set to 0, this filter will set width of
33305 output to width of the first input stream. Default value is 0.
33306
33307 xstack_qsv
33308 Stack video inputs into custom layout.
33309
33310 This is the QSV variant of the xstack filter.
33311
33312 It accepts the following options:
33313
33314 inputs
33315 See xstack.
33316
33317 shortest
33318 See xstack.
33319
33320 layout
33321 See xstack. Moreover, this permits the user to supply output size
33322 for each input stream.
33323
33324 xstack_qsv=inputs=4:layout=0_0_1920x1080|0_h0_1920x1080|w0_0_1920x1080|w0_h0_1920x1080
33325
33326 grid
33327 See xstack.
33328
33329 grid_tile_size
33330 Set output size for each input stream when grid is set. If this
33331 option is not set, this filter will set output size by default to
33332 the size of the first input stream. For the syntax of this option,
33333 check the "Video size" section in the ffmpeg-utils manual.
33334
33335 fill
33336 See xstack.
33337
33339 Below is a description of the currently available video sources.
33340
33341 buffer
33342 Buffer video frames, and make them available to the filter chain.
33343
33344 This source is mainly intended for a programmatic use, in particular
33345 through the interface defined in libavfilter/buffersrc.h.
33346
33347 It accepts the following parameters:
33348
33349 video_size
33350 Specify the size (width and height) of the buffered video frames.
33351 For the syntax of this option, check the "Video size" section in
33352 the ffmpeg-utils manual.
33353
33354 width
33355 The input video width.
33356
33357 height
33358 The input video height.
33359
33360 pix_fmt
33361 A string representing the pixel format of the buffered video
33362 frames. It may be a number corresponding to a pixel format, or a
33363 pixel format name.
33364
33365 time_base
33366 Specify the timebase assumed by the timestamps of the buffered
33367 frames.
33368
33369 frame_rate
33370 Specify the frame rate expected for the video stream.
33371
33372 pixel_aspect, sar
33373 The sample (pixel) aspect ratio of the input video.
33374
33375 hw_frames_ctx
33376 When using a hardware pixel format, this should be a reference to
33377 an AVHWFramesContext describing input frames.
33378
33379 For example:
33380
33381 buffer=width=320:height=240:pix_fmt=yuv410p:time_base=1/24:sar=1
33382
33383 will instruct the source to accept video frames with size 320x240 and
33384 with format "yuv410p", assuming 1/24 as the timestamps timebase and
33385 square pixels (1:1 sample aspect ratio). Since the pixel format with
33386 name "yuv410p" corresponds to the number 6 (check the enum
33387 AVPixelFormat definition in libavutil/pixfmt.h), this example
33388 corresponds to:
33389
33390 buffer=size=320x240:pixfmt=6:time_base=1/24:pixel_aspect=1/1
33391
33392 Alternatively, the options can be specified as a flat string, but this
33393 syntax is deprecated:
33394
33395 width:height:pix_fmt:time_base.num:time_base.den:pixel_aspect.num:pixel_aspect.den
33396
33397 cellauto
33398 Create a pattern generated by an elementary cellular automaton.
33399
33400 The initial state of the cellular automaton can be defined through the
33401 filename and pattern options. If such options are not specified an
33402 initial state is created randomly.
33403
33404 At each new frame a new row in the video is filled with the result of
33405 the cellular automaton next generation. The behavior when the whole
33406 frame is filled is defined by the scroll option.
33407
33408 This source accepts the following options:
33409
33410 filename, f
33411 Read the initial cellular automaton state, i.e. the starting row,
33412 from the specified file. In the file, each non-whitespace
33413 character is considered an alive cell, a newline will terminate the
33414 row, and further characters in the file will be ignored.
33415
33416 pattern, p
33417 Read the initial cellular automaton state, i.e. the starting row,
33418 from the specified string.
33419
33420 Each non-whitespace character in the string is considered an alive
33421 cell, a newline will terminate the row, and further characters in
33422 the string will be ignored.
33423
33424 rate, r
33425 Set the video rate, that is the number of frames generated per
33426 second. Default is 25.
33427
33428 random_fill_ratio, ratio
33429 Set the random fill ratio for the initial cellular automaton row.
33430 It is a floating point number value ranging from 0 to 1, defaults
33431 to 1/PHI.
33432
33433 This option is ignored when a file or a pattern is specified.
33434
33435 random_seed, seed
33436 Set the seed for filling randomly the initial row, must be an
33437 integer included between 0 and UINT32_MAX. If not specified, or if
33438 explicitly set to -1, the filter will try to use a good random seed
33439 on a best effort basis.
33440
33441 rule
33442 Set the cellular automaton rule, it is a number ranging from 0 to
33443 255. Default value is 110.
33444
33445 size, s
33446 Set the size of the output video. For the syntax of this option,
33447 check the "Video size" section in the ffmpeg-utils manual.
33448
33449 If filename or pattern is specified, the size is set by default to
33450 the width of the specified initial state row, and the height is set
33451 to width * PHI.
33452
33453 If size is set, it must contain the width of the specified pattern
33454 string, and the specified pattern will be centered in the larger
33455 row.
33456
33457 If a filename or a pattern string is not specified, the size value
33458 defaults to "320x518" (used for a randomly generated initial
33459 state).
33460
33461 scroll
33462 If set to 1, scroll the output upward when all the rows in the
33463 output have been already filled. If set to 0, the new generated row
33464 will be written over the top row just after the bottom row is
33465 filled. Defaults to 1.
33466
33467 start_full, full
33468 If set to 1, completely fill the output with generated rows before
33469 outputting the first frame. This is the default behavior, for
33470 disabling set the value to 0.
33471
33472 stitch
33473 If set to 1, stitch the left and right row edges together. This is
33474 the default behavior, for disabling set the value to 0.
33475
33476 Examples
33477
33478 • Read the initial state from pattern, and specify an output of size
33479 200x400.
33480
33481 cellauto=f=pattern:s=200x400
33482
33483 • Generate a random initial row with a width of 200 cells, with a
33484 fill ratio of 2/3:
33485
33486 cellauto=ratio=2/3:s=200x200
33487
33488 • Create a pattern generated by rule 18 starting by a single alive
33489 cell centered on an initial row with width 100:
33490
33491 cellauto=p=@s=100x400:full=0:rule=18
33492
33493 • Specify a more elaborated initial pattern:
33494
33495 cellauto=p='@@ @ @@':s=100x400:full=0:rule=18
33496
33497 coreimagesrc
33498 Video source generated on GPU using Apple's CoreImage API on OSX.
33499
33500 This video source is a specialized version of the coreimage video
33501 filter. Use a core image generator at the beginning of the applied
33502 filterchain to generate the content.
33503
33504 The coreimagesrc video source accepts the following options:
33505
33506 list_generators
33507 List all available generators along with all their respective
33508 options as well as possible minimum and maximum values along with
33509 the default values.
33510
33511 list_generators=true
33512
33513 size, s
33514 Specify the size of the sourced video. For the syntax of this
33515 option, check the "Video size" section in the ffmpeg-utils manual.
33516 The default value is "320x240".
33517
33518 rate, r
33519 Specify the frame rate of the sourced video, as the number of
33520 frames generated per second. It has to be a string in the format
33521 frame_rate_num/frame_rate_den, an integer number, a floating point
33522 number or a valid video frame rate abbreviation. The default value
33523 is "25".
33524
33525 sar Set the sample aspect ratio of the sourced video.
33526
33527 duration, d
33528 Set the duration of the sourced video. See the Time duration
33529 section in the ffmpeg-utils(1) manual for the accepted syntax.
33530
33531 If not specified, or the expressed duration is negative, the video
33532 is supposed to be generated forever.
33533
33534 Additionally, all options of the coreimage video filter are accepted.
33535 A complete filterchain can be used for further processing of the
33536 generated input without CPU-HOST transfer. See coreimage documentation
33537 and examples for details.
33538
33539 Examples
33540
33541 • Use CIQRCodeGenerator to create a QR code for the FFmpeg homepage,
33542 given as complete and escaped command-line for Apple's standard
33543 bash shell:
33544
33545 ffmpeg -f lavfi -i coreimagesrc=s=100x100:filter=CIQRCodeGenerator@inputMessage=https\\\\\://FFmpeg.org/@inputCorrectionLevel=H -frames:v 1 QRCode.png
33546
33547 This example is equivalent to the QRCode example of coreimage
33548 without the need for a nullsrc video source.
33549
33550 ddagrab
33551 Captures the Windows Desktop via Desktop Duplication API.
33552
33553 The filter exclusively returns D3D11 Hardware Frames, for on-gpu
33554 encoding or processing. So an explicit hwdownload is needed for any
33555 kind of software processing.
33556
33557 It accepts the following options:
33558
33559 output_idx
33560 DXGI Output Index to capture.
33561
33562 Usually corresponds to the index Windows has given the screen minus
33563 one, so it's starting at 0.
33564
33565 Defaults to output 0.
33566
33567 draw_mouse
33568 Whether to draw the mouse cursor.
33569
33570 Defaults to true.
33571
33572 Only affects hardware cursors. If a game or application renders its
33573 own cursor, it'll always be captured.
33574
33575 framerate
33576 Framerate at which the desktop will be captured.
33577
33578 Defaults to 30 FPS.
33579
33580 video_size
33581 Specify the size of the captured video.
33582
33583 Defaults to the full size of the screen.
33584
33585 Cropped from the bottom/right if smaller than screen size.
33586
33587 offset_x
33588 Horizontal offset of the captured video.
33589
33590 offset_y
33591 Vertical offset of the captured video.
33592
33593 output_fmt
33594 Desired filter output format. Defaults to 8 Bit BGRA.
33595
33596 It accepts the following values:
33597
33598 auto
33599 Passes all supported output formats to DDA and returns what DDA
33600 decides to use.
33601
33602 8bit
33603 bgra
33604 8 Bit formats always work, and DDA will convert to them if
33605 neccesary.
33606
33607 10bit
33608 x2bgr10
33609 Filter initialization will fail if 10 bit format is requested
33610 but unavailable.
33611
33612 Examples
33613
33614 Capture primary screen and encode using nvenc:
33615
33616 ffmpeg -f lavfi -i ddagrab -c:v h264_nvenc -cq 18 output.mp4
33617
33618 You can also skip the lavfi device and directly use the filter. Also
33619 demonstrates downloading the frame and encoding with libx264. Explicit
33620 output format specification is required in this case:
33621
33622 ffmpeg -filter_complex ddagrab=output_idx=1:framerate=60,hwdownload,format=bgra -c:v libx264 -crf 18 output.mp4
33623
33624 If you want to capture only a subsection of the desktop, this can be
33625 achieved by specifying a smaller size and its offsets into the screen:
33626
33627 ddagrab=video_size=800x600:offset_x=100:offset_y=100
33628
33629 gradients
33630 Generate several gradients.
33631
33632 size, s
33633 Set frame size. For the syntax of this option, check the "Video
33634 size" section in the ffmpeg-utils manual. Default value is
33635 "640x480".
33636
33637 rate, r
33638 Set frame rate, expressed as number of frames per second. Default
33639 value is "25".
33640
33641 c0, c1, c2, c3, c4, c5, c6, c7
33642 Set 8 colors. Default values for colors is to pick random one.
33643
33644 x0, y0, y0, y1
33645 Set gradient line source and destination points. If negative or out
33646 of range, random ones are picked.
33647
33648 nb_colors, n
33649 Set number of colors to use at once. Allowed range is from 2 to 8.
33650 Default value is 2.
33651
33652 seed
33653 Set seed for picking gradient line points.
33654
33655 duration, d
33656 Set the duration of the sourced video. See the Time duration
33657 section in the ffmpeg-utils(1) manual for the accepted syntax.
33658
33659 If not specified, or the expressed duration is negative, the video
33660 is supposed to be generated forever.
33661
33662 speed
33663 Set speed of gradients rotation.
33664
33665 type, t
33666 Set type of gradients, can be "linear" or "radial" or "circular" or
33667 "spiral".
33668
33669 mandelbrot
33670 Generate a Mandelbrot set fractal, and progressively zoom towards the
33671 point specified with start_x and start_y.
33672
33673 This source accepts the following options:
33674
33675 end_pts
33676 Set the terminal pts value. Default value is 400.
33677
33678 end_scale
33679 Set the terminal scale value. Must be a floating point value.
33680 Default value is 0.3.
33681
33682 inner
33683 Set the inner coloring mode, that is the algorithm used to draw the
33684 Mandelbrot fractal internal region.
33685
33686 It shall assume one of the following values:
33687
33688 black
33689 Set black mode.
33690
33691 convergence
33692 Show time until convergence.
33693
33694 mincol
33695 Set color based on point closest to the origin of the
33696 iterations.
33697
33698 period
33699 Set period mode.
33700
33701 Default value is mincol.
33702
33703 bailout
33704 Set the bailout value. Default value is 10.0.
33705
33706 maxiter
33707 Set the maximum of iterations performed by the rendering algorithm.
33708 Default value is 7189.
33709
33710 outer
33711 Set outer coloring mode. It shall assume one of following values:
33712
33713 iteration_count
33714 Set iteration count mode.
33715
33716 normalized_iteration_count
33717 set normalized iteration count mode.
33718
33719 Default value is normalized_iteration_count.
33720
33721 rate, r
33722 Set frame rate, expressed as number of frames per second. Default
33723 value is "25".
33724
33725 size, s
33726 Set frame size. For the syntax of this option, check the "Video
33727 size" section in the ffmpeg-utils manual. Default value is
33728 "640x480".
33729
33730 start_scale
33731 Set the initial scale value. Default value is 3.0.
33732
33733 start_x
33734 Set the initial x position. Must be a floating point value between
33735 -100 and 100. Default value is
33736 -0.743643887037158704752191506114774.
33737
33738 start_y
33739 Set the initial y position. Must be a floating point value between
33740 -100 and 100. Default value is
33741 -0.131825904205311970493132056385139.
33742
33743 mptestsrc
33744 Generate various test patterns, as generated by the MPlayer test
33745 filter.
33746
33747 The size of the generated video is fixed, and is 256x256. This source
33748 is useful in particular for testing encoding features.
33749
33750 This source accepts the following options:
33751
33752 rate, r
33753 Specify the frame rate of the sourced video, as the number of
33754 frames generated per second. It has to be a string in the format
33755 frame_rate_num/frame_rate_den, an integer number, a floating point
33756 number or a valid video frame rate abbreviation. The default value
33757 is "25".
33758
33759 duration, d
33760 Set the duration of the sourced video. See the Time duration
33761 section in the ffmpeg-utils(1) manual for the accepted syntax.
33762
33763 If not specified, or the expressed duration is negative, the video
33764 is supposed to be generated forever.
33765
33766 test, t
33767 Set the number or the name of the test to perform. Supported tests
33768 are:
33769
33770 dc_luma
33771 dc_chroma
33772 freq_luma
33773 freq_chroma
33774 amp_luma
33775 amp_chroma
33776 cbp
33777 mv
33778 ring1
33779 ring2
33780 all
33781 max_frames, m
33782 Set the maximum number of frames generated for each test,
33783 default value is 30.
33784
33785 Default value is "all", which will cycle through the list of all
33786 tests.
33787
33788 Some examples:
33789
33790 mptestsrc=t=dc_luma
33791
33792 will generate a "dc_luma" test pattern.
33793
33794 frei0r_src
33795 Provide a frei0r source.
33796
33797 To enable compilation of this filter you need to install the frei0r
33798 header and configure FFmpeg with "--enable-frei0r".
33799
33800 This source accepts the following parameters:
33801
33802 size
33803 The size of the video to generate. For the syntax of this option,
33804 check the "Video size" section in the ffmpeg-utils manual.
33805
33806 framerate
33807 The framerate of the generated video. It may be a string of the
33808 form num/den or a frame rate abbreviation.
33809
33810 filter_name
33811 The name to the frei0r source to load. For more information
33812 regarding frei0r and how to set the parameters, read the frei0r
33813 section in the video filters documentation.
33814
33815 filter_params
33816 A '|'-separated list of parameters to pass to the frei0r source.
33817
33818 For example, to generate a frei0r partik0l source with size 200x200 and
33819 frame rate 10 which is overlaid on the overlay filter main input:
33820
33821 frei0r_src=size=200x200:framerate=10:filter_name=partik0l:filter_params=1234 [overlay]; [in][overlay] overlay
33822
33823 life
33824 Generate a life pattern.
33825
33826 This source is based on a generalization of John Conway's life game.
33827
33828 The sourced input represents a life grid, each pixel represents a cell
33829 which can be in one of two possible states, alive or dead. Every cell
33830 interacts with its eight neighbours, which are the cells that are
33831 horizontally, vertically, or diagonally adjacent.
33832
33833 At each interaction the grid evolves according to the adopted rule,
33834 which specifies the number of neighbor alive cells which will make a
33835 cell stay alive or born. The rule option allows one to specify the rule
33836 to adopt.
33837
33838 This source accepts the following options:
33839
33840 filename, f
33841 Set the file from which to read the initial grid state. In the
33842 file, each non-whitespace character is considered an alive cell,
33843 and newline is used to delimit the end of each row.
33844
33845 If this option is not specified, the initial grid is generated
33846 randomly.
33847
33848 rate, r
33849 Set the video rate, that is the number of frames generated per
33850 second. Default is 25.
33851
33852 random_fill_ratio, ratio
33853 Set the random fill ratio for the initial random grid. It is a
33854 floating point number value ranging from 0 to 1, defaults to 1/PHI.
33855 It is ignored when a file is specified.
33856
33857 random_seed, seed
33858 Set the seed for filling the initial random grid, must be an
33859 integer included between 0 and UINT32_MAX. If not specified, or if
33860 explicitly set to -1, the filter will try to use a good random seed
33861 on a best effort basis.
33862
33863 rule
33864 Set the life rule.
33865
33866 A rule can be specified with a code of the kind "SNS/BNB", where NS
33867 and NB are sequences of numbers in the range 0-8, NS specifies the
33868 number of alive neighbor cells which make a live cell stay alive,
33869 and NB the number of alive neighbor cells which make a dead cell to
33870 become alive (i.e. to "born"). "s" and "b" can be used in place of
33871 "S" and "B", respectively.
33872
33873 Alternatively a rule can be specified by an 18-bits integer. The 9
33874 high order bits are used to encode the next cell state if it is
33875 alive for each number of neighbor alive cells, the low order bits
33876 specify the rule for "borning" new cells. Higher order bits encode
33877 for an higher number of neighbor cells. For example the number
33878 6153 = "(12<<9)+9" specifies a stay alive rule of 12 and a born
33879 rule of 9, which corresponds to "S23/B03".
33880
33881 Default value is "S23/B3", which is the original Conway's game of
33882 life rule, and will keep a cell alive if it has 2 or 3 neighbor
33883 alive cells, and will born a new cell if there are three alive
33884 cells around a dead cell.
33885
33886 size, s
33887 Set the size of the output video. For the syntax of this option,
33888 check the "Video size" section in the ffmpeg-utils manual.
33889
33890 If filename is specified, the size is set by default to the same
33891 size of the input file. If size is set, it must contain the size
33892 specified in the input file, and the initial grid defined in that
33893 file is centered in the larger resulting area.
33894
33895 If a filename is not specified, the size value defaults to
33896 "320x240" (used for a randomly generated initial grid).
33897
33898 stitch
33899 If set to 1, stitch the left and right grid edges together, and the
33900 top and bottom edges also. Defaults to 1.
33901
33902 mold
33903 Set cell mold speed. If set, a dead cell will go from death_color
33904 to mold_color with a step of mold. mold can have a value from 0 to
33905 255.
33906
33907 life_color
33908 Set the color of living (or new born) cells.
33909
33910 death_color
33911 Set the color of dead cells. If mold is set, this is the first
33912 color used to represent a dead cell.
33913
33914 mold_color
33915 Set mold color, for definitely dead and moldy cells.
33916
33917 For the syntax of these 3 color options, check the "Color" section
33918 in the ffmpeg-utils manual.
33919
33920 Examples
33921
33922 • Read a grid from pattern, and center it on a grid of size 300x300
33923 pixels:
33924
33925 life=f=pattern:s=300x300
33926
33927 • Generate a random grid of size 200x200, with a fill ratio of 2/3:
33928
33929 life=ratio=2/3:s=200x200
33930
33931 • Specify a custom rule for evolving a randomly generated grid:
33932
33933 life=rule=S14/B34
33934
33935 • Full example with slow death effect (mold) using ffplay:
33936
33937 ffplay -f lavfi life=s=300x200:mold=10:r=60:ratio=0.1:death_color=#C83232:life_color=#00ff00,scale=1200:800:flags=16
33938
33939 allrgb, allyuv, color, colorchart, colorspectrum, haldclutsrc, nullsrc,
33940 pal75bars, pal100bars, rgbtestsrc, smptebars, smptehdbars, testsrc,
33941 testsrc2, yuvtestsrc
33942 The "allrgb" source returns frames of size 4096x4096 of all rgb colors.
33943
33944 The "allyuv" source returns frames of size 4096x4096 of all yuv colors.
33945
33946 The "color" source provides an uniformly colored input.
33947
33948 The "colorchart" source provides a colors checker chart.
33949
33950 The "colorspectrum" source provides a color spectrum input.
33951
33952 The "haldclutsrc" source provides an identity Hald CLUT. See also
33953 haldclut filter.
33954
33955 The "nullsrc" source returns unprocessed video frames. It is mainly
33956 useful to be employed in analysis / debugging tools, or as the source
33957 for filters which ignore the input data.
33958
33959 The "pal75bars" source generates a color bars pattern, based on EBU PAL
33960 recommendations with 75% color levels.
33961
33962 The "pal100bars" source generates a color bars pattern, based on EBU
33963 PAL recommendations with 100% color levels.
33964
33965 The "rgbtestsrc" source generates an RGB test pattern useful for
33966 detecting RGB vs BGR issues. You should see a red, green and blue
33967 stripe from top to bottom.
33968
33969 The "smptebars" source generates a color bars pattern, based on the
33970 SMPTE Engineering Guideline EG 1-1990.
33971
33972 The "smptehdbars" source generates a color bars pattern, based on the
33973 SMPTE RP 219-2002.
33974
33975 The "testsrc" source generates a test video pattern, showing a color
33976 pattern, a scrolling gradient and a timestamp. This is mainly intended
33977 for testing purposes.
33978
33979 The "testsrc2" source is similar to testsrc, but supports more pixel
33980 formats instead of just "rgb24". This allows using it as an input for
33981 other tests without requiring a format conversion.
33982
33983 The "yuvtestsrc" source generates an YUV test pattern. You should see a
33984 y, cb and cr stripe from top to bottom.
33985
33986 The sources accept the following parameters:
33987
33988 level
33989 Specify the level of the Hald CLUT, only available in the
33990 "haldclutsrc" source. A level of "N" generates a picture of "N*N*N"
33991 by "N*N*N" pixels to be used as identity matrix for 3D lookup
33992 tables. Each component is coded on a "1/(N*N)" scale.
33993
33994 color, c
33995 Specify the color of the source, only available in the "color"
33996 source. For the syntax of this option, check the "Color" section in
33997 the ffmpeg-utils manual.
33998
33999 size, s
34000 Specify the size of the sourced video. For the syntax of this
34001 option, check the "Video size" section in the ffmpeg-utils manual.
34002 The default value is "320x240".
34003
34004 This option is not available with the "allrgb", "allyuv", and
34005 "haldclutsrc" filters.
34006
34007 rate, r
34008 Specify the frame rate of the sourced video, as the number of
34009 frames generated per second. It has to be a string in the format
34010 frame_rate_num/frame_rate_den, an integer number, a floating point
34011 number or a valid video frame rate abbreviation. The default value
34012 is "25".
34013
34014 duration, d
34015 Set the duration of the sourced video. See the Time duration
34016 section in the ffmpeg-utils(1) manual for the accepted syntax.
34017
34018 If not specified, or the expressed duration is negative, the video
34019 is supposed to be generated forever.
34020
34021 Since the frame rate is used as time base, all frames including the
34022 last one will have their full duration. If the specified duration
34023 is not a multiple of the frame duration, it will be rounded up.
34024
34025 sar Set the sample aspect ratio of the sourced video.
34026
34027 alpha
34028 Specify the alpha (opacity) of the background, only available in
34029 the "testsrc2" source. The value must be between 0 (fully
34030 transparent) and 255 (fully opaque, the default).
34031
34032 decimals, n
34033 Set the number of decimals to show in the timestamp, only available
34034 in the "testsrc" source.
34035
34036 The displayed timestamp value will correspond to the original
34037 timestamp value multiplied by the power of 10 of the specified
34038 value. Default value is 0.
34039
34040 type
34041 Set the type of the color spectrum, only available in the
34042 "colorspectrum" source. Can be one of the following:
34043
34044 black
34045 white
34046 all
34047 patch_size
34048 Set patch size of single color patch, only available in the
34049 "colorchart" source. Default is "64x64".
34050
34051 preset
34052 Set colorchecker colors preset, only available in the "colorchart"
34053 source.
34054
34055 Available values are:
34056
34057 reference
34058 skintones
34059
34060 Default value is "reference".
34061
34062 Examples
34063
34064 • Generate a video with a duration of 5.3 seconds, with size 176x144
34065 and a frame rate of 10 frames per second:
34066
34067 testsrc=duration=5.3:size=qcif:rate=10
34068
34069 • The following graph description will generate a red source with an
34070 opacity of 0.2, with size "qcif" and a frame rate of 10 frames per
34071 second:
34072
34073 color=c=red@0.2:s=qcif:r=10
34074
34075 • If the input content is to be ignored, "nullsrc" can be used. The
34076 following command generates noise in the luminance plane by
34077 employing the "geq" filter:
34078
34079 nullsrc=s=256x256, geq=random(1)*255:128:128
34080
34081 Commands
34082
34083 The "color" source supports the following commands:
34084
34085 c, color
34086 Set the color of the created image. Accepts the same syntax of the
34087 corresponding color option.
34088
34089 openclsrc
34090 Generate video using an OpenCL program.
34091
34092 source
34093 OpenCL program source file.
34094
34095 kernel
34096 Kernel name in program.
34097
34098 size, s
34099 Size of frames to generate. This must be set.
34100
34101 format
34102 Pixel format to use for the generated frames. This must be set.
34103
34104 rate, r
34105 Number of frames generated every second. Default value is '25'.
34106
34107 For details of how the program loading works, see the program_opencl
34108 filter.
34109
34110 Example programs:
34111
34112 • Generate a colour ramp by setting pixel values from the position of
34113 the pixel in the output image. (Note that this will work with all
34114 pixel formats, but the generated output will not be the same.)
34115
34116 __kernel void ramp(__write_only image2d_t dst,
34117 unsigned int index)
34118 {
34119 int2 loc = (int2)(get_global_id(0), get_global_id(1));
34120
34121 float4 val;
34122 val.xy = val.zw = convert_float2(loc) / convert_float2(get_image_dim(dst));
34123
34124 write_imagef(dst, loc, val);
34125 }
34126
34127 • Generate a Sierpinski carpet pattern, panning by a single pixel
34128 each frame.
34129
34130 __kernel void sierpinski_carpet(__write_only image2d_t dst,
34131 unsigned int index)
34132 {
34133 int2 loc = (int2)(get_global_id(0), get_global_id(1));
34134
34135 float4 value = 0.0f;
34136 int x = loc.x + index;
34137 int y = loc.y + index;
34138 while (x > 0 || y > 0) {
34139 if (x % 3 == 1 && y % 3 == 1) {
34140 value = 1.0f;
34141 break;
34142 }
34143 x /= 3;
34144 y /= 3;
34145 }
34146
34147 write_imagef(dst, loc, value);
34148 }
34149
34150 sierpinski
34151 Generate a Sierpinski carpet/triangle fractal, and randomly pan around.
34152
34153 This source accepts the following options:
34154
34155 size, s
34156 Set frame size. For the syntax of this option, check the "Video
34157 size" section in the ffmpeg-utils manual. Default value is
34158 "640x480".
34159
34160 rate, r
34161 Set frame rate, expressed as number of frames per second. Default
34162 value is "25".
34163
34164 seed
34165 Set seed which is used for random panning.
34166
34167 jump
34168 Set max jump for single pan destination. Allowed range is from 1 to
34169 10000.
34170
34171 type
34172 Set fractal type, can be default "carpet" or "triangle".
34173
34175 Below is a description of the currently available video sinks.
34176
34177 buffersink
34178 Buffer video frames, and make them available to the end of the filter
34179 graph.
34180
34181 This sink is mainly intended for programmatic use, in particular
34182 through the interface defined in libavfilter/buffersink.h or the
34183 options system.
34184
34185 It accepts a pointer to an AVBufferSinkContext structure, which defines
34186 the incoming buffers' formats, to be passed as the opaque parameter to
34187 "avfilter_init_filter" for initialization.
34188
34189 nullsink
34190 Null video sink: do absolutely nothing with the input video. It is
34191 mainly useful as a template and for use in analysis / debugging tools.
34192
34194 Below is a description of the currently available multimedia filters.
34195
34196 a3dscope
34197 Convert input audio to 3d scope video output.
34198
34199 The filter accepts the following options:
34200
34201 rate, r
34202 Set frame rate, expressed as number of frames per second. Default
34203 value is "25".
34204
34205 size, s
34206 Specify the video size for the output. For the syntax of this
34207 option, check the "Video size" section in the ffmpeg-utils manual.
34208 Default value is "hd720".
34209
34210 fov Set the camera field of view. Default is 90 degrees. Allowed range
34211 is from 40 to 150.
34212
34213 roll
34214 Set the camera roll.
34215
34216 pitch
34217 Set the camera pitch.
34218
34219 yaw Set the camera yaw.
34220
34221 xzoom
34222 Set the camera zoom on X-axis.
34223
34224 yzoom
34225 Set the camera zoom on Y-axis.
34226
34227 zzoom
34228 Set the camera zoom on Z-axis.
34229
34230 xpos
34231 Set the camera position on X-axis.
34232
34233 ypos
34234 Set the camera position on Y-axis.
34235
34236 zpos
34237 Set the camera position on Z-axis.
34238
34239 length
34240 Set the length of displayed audio waves in number of frames.
34241
34242 Commands
34243
34244 Filter supports the some above options as commands.
34245
34246 abitscope
34247 Convert input audio to a video output, displaying the audio bit scope.
34248
34249 The filter accepts the following options:
34250
34251 rate, r
34252 Set frame rate, expressed as number of frames per second. Default
34253 value is "25".
34254
34255 size, s
34256 Specify the video size for the output. For the syntax of this
34257 option, check the "Video size" section in the ffmpeg-utils manual.
34258 Default value is "1024x256".
34259
34260 colors
34261 Specify list of colors separated by space or by '|' which will be
34262 used to draw channels. Unrecognized or missing colors will be
34263 replaced by white color.
34264
34265 mode, m
34266 Set output mode. Can be "bars" or "trace". Default is "bars".
34267
34268 adrawgraph
34269 Draw a graph using input audio metadata.
34270
34271 See drawgraph
34272
34273 agraphmonitor
34274 See graphmonitor.
34275
34276 ahistogram
34277 Convert input audio to a video output, displaying the volume histogram.
34278
34279 The filter accepts the following options:
34280
34281 dmode
34282 Specify how histogram is calculated.
34283
34284 It accepts the following values:
34285
34286 single
34287 Use single histogram for all channels.
34288
34289 separate
34290 Use separate histogram for each channel.
34291
34292 Default is "single".
34293
34294 rate, r
34295 Set frame rate, expressed as number of frames per second. Default
34296 value is "25".
34297
34298 size, s
34299 Specify the video size for the output. For the syntax of this
34300 option, check the "Video size" section in the ffmpeg-utils manual.
34301 Default value is "hd720".
34302
34303 scale
34304 Set display scale.
34305
34306 It accepts the following values:
34307
34308 log logarithmic
34309
34310 sqrt
34311 square root
34312
34313 cbrt
34314 cubic root
34315
34316 lin linear
34317
34318 rlog
34319 reverse logarithmic
34320
34321 Default is "log".
34322
34323 ascale
34324 Set amplitude scale.
34325
34326 It accepts the following values:
34327
34328 log logarithmic
34329
34330 lin linear
34331
34332 Default is "log".
34333
34334 acount
34335 Set how much frames to accumulate in histogram. Default is 1.
34336 Setting this to -1 accumulates all frames.
34337
34338 rheight
34339 Set histogram ratio of window height.
34340
34341 slide
34342 Set sonogram sliding.
34343
34344 It accepts the following values:
34345
34346 replace
34347 replace old rows with new ones.
34348
34349 scroll
34350 scroll from top to bottom.
34351
34352 Default is "replace".
34353
34354 hmode
34355 Set histogram mode.
34356
34357 It accepts the following values:
34358
34359 abs Use absolute values of samples.
34360
34361 sign
34362 Use untouched values of samples.
34363
34364 Default is "abs".
34365
34366 aphasemeter
34367 Measures phase of input audio, which is exported as metadata
34368 "lavfi.aphasemeter.phase", representing mean phase of current audio
34369 frame. A video output can also be produced and is enabled by default.
34370 The audio is passed through as first output.
34371
34372 Audio will be rematrixed to stereo if it has a different channel
34373 layout. Phase value is in range "[-1, 1]" where -1 means left and right
34374 channels are completely out of phase and 1 means channels are in phase.
34375
34376 The filter accepts the following options, all related to its video
34377 output:
34378
34379 rate, r
34380 Set the output frame rate. Default value is 25.
34381
34382 size, s
34383 Set the video size for the output. For the syntax of this option,
34384 check the "Video size" section in the ffmpeg-utils manual. Default
34385 value is "800x400".
34386
34387 rc
34388 gc
34389 bc Specify the red, green, blue contrast. Default values are 2, 7 and
34390 1. Allowed range is "[0, 255]".
34391
34392 mpc Set color which will be used for drawing median phase. If color is
34393 "none" which is default, no median phase value will be drawn.
34394
34395 video
34396 Enable video output. Default is enabled.
34397
34398 phasing detection
34399
34400 The filter also detects out of phase and mono sequences in stereo
34401 streams. It logs the sequence start, end and duration when it lasts
34402 longer or as long as the minimum set.
34403
34404 The filter accepts the following options for this detection:
34405
34406 phasing
34407 Enable mono and out of phase detection. Default is disabled.
34408
34409 tolerance, t
34410 Set phase tolerance for mono detection, in amplitude ratio. Default
34411 is 0. Allowed range is "[0, 1]".
34412
34413 angle, a
34414 Set angle threshold for out of phase detection, in degree. Default
34415 is 170. Allowed range is "[90, 180]".
34416
34417 duration, d
34418 Set mono or out of phase duration until notification, expressed in
34419 seconds. Default is 2.
34420
34421 Examples
34422
34423 • Complete example with ffmpeg to detect 1 second of mono with 0.001
34424 phase tolerance:
34425
34426 ffmpeg -i stereo.wav -af aphasemeter=video=0:phasing=1:duration=1:tolerance=0.001 -f null -
34427
34428 avectorscope
34429 Convert input audio to a video output, representing the audio vector
34430 scope.
34431
34432 The filter is used to measure the difference between channels of stereo
34433 audio stream. A monaural signal, consisting of identical left and right
34434 signal, results in straight vertical line. Any stereo separation is
34435 visible as a deviation from this line, creating a Lissajous figure. If
34436 the straight (or deviation from it) but horizontal line appears this
34437 indicates that the left and right channels are out of phase.
34438
34439 The filter accepts the following options:
34440
34441 mode, m
34442 Set the vectorscope mode.
34443
34444 Available values are:
34445
34446 lissajous
34447 Lissajous rotated by 45 degrees.
34448
34449 lissajous_xy
34450 Same as above but not rotated.
34451
34452 polar
34453 Shape resembling half of circle.
34454
34455 Default value is lissajous.
34456
34457 size, s
34458 Set the video size for the output. For the syntax of this option,
34459 check the "Video size" section in the ffmpeg-utils manual. Default
34460 value is "400x400".
34461
34462 rate, r
34463 Set the output frame rate. Default value is 25.
34464
34465 rc
34466 gc
34467 bc
34468 ac Specify the red, green, blue and alpha contrast. Default values are
34469 40, 160, 80 and 255. Allowed range is "[0, 255]".
34470
34471 rf
34472 gf
34473 bf
34474 af Specify the red, green, blue and alpha fade. Default values are 15,
34475 10, 5 and 5. Allowed range is "[0, 255]".
34476
34477 zoom
34478 Set the zoom factor. Default value is 1. Allowed range is "[0,
34479 10]". Values lower than 1 will auto adjust zoom factor to maximal
34480 possible value.
34481
34482 draw
34483 Set the vectorscope drawing mode.
34484
34485 Available values are:
34486
34487 dot Draw dot for each sample.
34488
34489 line
34490 Draw line between previous and current sample.
34491
34492 aaline
34493 Draw anti-aliased line between previous and current sample.
34494
34495 Default value is dot.
34496
34497 scale
34498 Specify amplitude scale of audio samples.
34499
34500 Available values are:
34501
34502 lin Linear.
34503
34504 sqrt
34505 Square root.
34506
34507 cbrt
34508 Cubic root.
34509
34510 log Logarithmic.
34511
34512 swap
34513 Swap left channel axis with right channel axis.
34514
34515 mirror
34516 Mirror axis.
34517
34518 none
34519 No mirror.
34520
34521 x Mirror only x axis.
34522
34523 y Mirror only y axis.
34524
34525 xy Mirror both axis.
34526
34527 Examples
34528
34529 • Complete example using ffplay:
34530
34531 ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
34532 [a] avectorscope=zoom=1.3:rc=2:gc=200:bc=10:rf=1:gf=8:bf=7 [out0]'
34533
34534 Commands
34535
34536 This filter supports the all above options as commands except options
34537 "size" and "rate".
34538
34539 bench, abench
34540 Benchmark part of a filtergraph.
34541
34542 The filter accepts the following options:
34543
34544 action
34545 Start or stop a timer.
34546
34547 Available values are:
34548
34549 start
34550 Get the current time, set it as frame metadata (using the key
34551 "lavfi.bench.start_time"), and forward the frame to the next
34552 filter.
34553
34554 stop
34555 Get the current time and fetch the "lavfi.bench.start_time"
34556 metadata from the input frame metadata to get the time
34557 difference. Time difference, average, maximum and minimum time
34558 (respectively "t", "avg", "max" and "min") are then printed.
34559 The timestamps are expressed in seconds.
34560
34561 Examples
34562
34563 • Benchmark selectivecolor filter:
34564
34565 bench=start,selectivecolor=reds=-.2 .12 -.49,bench=stop
34566
34567 concat
34568 Concatenate audio and video streams, joining them together one after
34569 the other.
34570
34571 The filter works on segments of synchronized video and audio streams.
34572 All segments must have the same number of streams of each type, and
34573 that will also be the number of streams at output.
34574
34575 The filter accepts the following options:
34576
34577 n Set the number of segments. Default is 2.
34578
34579 v Set the number of output video streams, that is also the number of
34580 video streams in each segment. Default is 1.
34581
34582 a Set the number of output audio streams, that is also the number of
34583 audio streams in each segment. Default is 0.
34584
34585 unsafe
34586 Activate unsafe mode: do not fail if segments have a different
34587 format.
34588
34589 The filter has v+a outputs: first v video outputs, then a audio
34590 outputs.
34591
34592 There are nx(v+a) inputs: first the inputs for the first segment, in
34593 the same order as the outputs, then the inputs for the second segment,
34594 etc.
34595
34596 Related streams do not always have exactly the same duration, for
34597 various reasons including codec frame size or sloppy authoring. For
34598 that reason, related synchronized streams (e.g. a video and its audio
34599 track) should be concatenated at once. The concat filter will use the
34600 duration of the longest stream in each segment (except the last one),
34601 and if necessary pad shorter audio streams with silence.
34602
34603 For this filter to work correctly, all segments must start at timestamp
34604 0.
34605
34606 All corresponding streams must have the same parameters in all
34607 segments; the filtering system will automatically select a common pixel
34608 format for video streams, and a common sample format, sample rate and
34609 channel layout for audio streams, but other settings, such as
34610 resolution, must be converted explicitly by the user.
34611
34612 Different frame rates are acceptable but will result in variable frame
34613 rate at output; be sure to configure the output file to handle it.
34614
34615 Examples
34616
34617 • Concatenate an opening, an episode and an ending, all in bilingual
34618 version (video in stream 0, audio in streams 1 and 2):
34619
34620 ffmpeg -i opening.mkv -i episode.mkv -i ending.mkv -filter_complex \
34621 '[0:0] [0:1] [0:2] [1:0] [1:1] [1:2] [2:0] [2:1] [2:2]
34622 concat=n=3:v=1:a=2 [v] [a1] [a2]' \
34623 -map '[v]' -map '[a1]' -map '[a2]' output.mkv
34624
34625 • Concatenate two parts, handling audio and video separately, using
34626 the (a)movie sources, and adjusting the resolution:
34627
34628 movie=part1.mp4, scale=512:288 [v1] ; amovie=part1.mp4 [a1] ;
34629 movie=part2.mp4, scale=512:288 [v2] ; amovie=part2.mp4 [a2] ;
34630 [v1] [v2] concat [outv] ; [a1] [a2] concat=v=0:a=1 [outa]
34631
34632 Note that a desync will happen at the stitch if the audio and video
34633 streams do not have exactly the same duration in the first file.
34634
34635 Commands
34636
34637 This filter supports the following commands:
34638
34639 next
34640 Close the current segment and step to the next one
34641
34642 ebur128
34643 EBU R128 scanner filter. This filter takes an audio stream and analyzes
34644 its loudness level. By default, it logs a message at a frequency of
34645 10Hz with the Momentary loudness (identified by "M"), Short-term
34646 loudness ("S"), Integrated loudness ("I") and Loudness Range ("LRA").
34647
34648 The filter can only analyze streams which have sample format is double-
34649 precision floating point. The input stream will be converted to this
34650 specification, if needed. Users may need to insert aformat and/or
34651 aresample filters after this filter to obtain the original parameters.
34652
34653 The filter also has a video output (see the video option) with a real
34654 time graph to observe the loudness evolution. The graphic contains the
34655 logged message mentioned above, so it is not printed anymore when this
34656 option is set, unless the verbose logging is set. The main graphing
34657 area contains the short-term loudness (3 seconds of analysis), and the
34658 gauge on the right is for the momentary loudness (400 milliseconds),
34659 but can optionally be configured to instead display short-term loudness
34660 (see gauge).
34661
34662 The green area marks a +/- 1LU target range around the target loudness
34663 (-23LUFS by default, unless modified through target).
34664
34665 More information about the Loudness Recommendation EBU R128 on
34666 <http://tech.ebu.ch/loudness>.
34667
34668 The filter accepts the following options:
34669
34670 video
34671 Activate the video output. The audio stream is passed unchanged
34672 whether this option is set or no. The video stream will be the
34673 first output stream if activated. Default is 0.
34674
34675 size
34676 Set the video size. This option is for video only. For the syntax
34677 of this option, check the "Video size" section in the ffmpeg-utils
34678 manual. Default and minimum resolution is "640x480".
34679
34680 meter
34681 Set the EBU scale meter. Default is 9. Common values are 9 and 18,
34682 respectively for EBU scale meter +9 and EBU scale meter +18. Any
34683 other integer value between this range is allowed.
34684
34685 metadata
34686 Set metadata injection. If set to 1, the audio input will be
34687 segmented into 100ms output frames, each of them containing various
34688 loudness information in metadata. All the metadata keys are
34689 prefixed with "lavfi.r128.".
34690
34691 Default is 0.
34692
34693 framelog
34694 Force the frame logging level.
34695
34696 Available values are:
34697
34698 quiet
34699 logging disabled
34700
34701 info
34702 information logging level
34703
34704 verbose
34705 verbose logging level
34706
34707 By default, the logging level is set to info. If the video or the
34708 metadata options are set, it switches to verbose.
34709
34710 peak
34711 Set peak mode(s).
34712
34713 Available modes can be cumulated (the option is a "flag" type).
34714 Possible values are:
34715
34716 none
34717 Disable any peak mode (default).
34718
34719 sample
34720 Enable sample-peak mode.
34721
34722 Simple peak mode looking for the higher sample value. It logs a
34723 message for sample-peak (identified by "SPK").
34724
34725 true
34726 Enable true-peak mode.
34727
34728 If enabled, the peak lookup is done on an over-sampled version
34729 of the input stream for better peak accuracy. It logs a message
34730 for true-peak. (identified by "TPK") and true-peak per frame
34731 (identified by "FTPK"). This mode requires a build with
34732 "libswresample".
34733
34734 dualmono
34735 Treat mono input files as "dual mono". If a mono file is intended
34736 for playback on a stereo system, its EBU R128 measurement will be
34737 perceptually incorrect. If set to "true", this option will
34738 compensate for this effect. Multi-channel input files are not
34739 affected by this option.
34740
34741 panlaw
34742 Set a specific pan law to be used for the measurement of dual mono
34743 files. This parameter is optional, and has a default value of
34744 -3.01dB.
34745
34746 target
34747 Set a specific target level (in LUFS) used as relative zero in the
34748 visualization. This parameter is optional and has a default value
34749 of -23LUFS as specified by EBU R128. However, material published
34750 online may prefer a level of -16LUFS (e.g. for use with podcasts or
34751 video platforms).
34752
34753 gauge
34754 Set the value displayed by the gauge. Valid values are "momentary"
34755 and s "shortterm". By default the momentary value will be used, but
34756 in certain scenarios it may be more useful to observe the short
34757 term value instead (e.g. live mixing).
34758
34759 scale
34760 Sets the display scale for the loudness. Valid parameters are
34761 "absolute" (in LUFS) or "relative" (LU) relative to the target.
34762 This only affects the video output, not the summary or continuous
34763 log output.
34764
34765 Examples
34766
34767 • Real-time graph using ffplay, with a EBU scale meter +18:
34768
34769 ffplay -f lavfi -i "amovie=input.mp3,ebur128=video=1:meter=18 [out0][out1]"
34770
34771 • Run an analysis with ffmpeg:
34772
34773 ffmpeg -nostats -i input.mp3 -filter_complex ebur128 -f null -
34774
34775 interleave, ainterleave
34776 Temporally interleave frames from several inputs.
34777
34778 "interleave" works with video inputs, "ainterleave" with audio.
34779
34780 These filters read frames from several inputs and send the oldest
34781 queued frame to the output.
34782
34783 Input streams must have well defined, monotonically increasing frame
34784 timestamp values.
34785
34786 In order to submit one frame to output, these filters need to enqueue
34787 at least one frame for each input, so they cannot work in case one
34788 input is not yet terminated and will not receive incoming frames.
34789
34790 For example consider the case when one input is a "select" filter which
34791 always drops input frames. The "interleave" filter will keep reading
34792 from that input, but it will never be able to send new frames to output
34793 until the input sends an end-of-stream signal.
34794
34795 Also, depending on inputs synchronization, the filters will drop frames
34796 in case one input receives more frames than the other ones, and the
34797 queue is already filled.
34798
34799 These filters accept the following options:
34800
34801 nb_inputs, n
34802 Set the number of different inputs, it is 2 by default.
34803
34804 duration
34805 How to determine the end-of-stream.
34806
34807 longest
34808 The duration of the longest input. (default)
34809
34810 shortest
34811 The duration of the shortest input.
34812
34813 first
34814 The duration of the first input.
34815
34816 Examples
34817
34818 • Interleave frames belonging to different streams using ffmpeg:
34819
34820 ffmpeg -i bambi.avi -i pr0n.mkv -filter_complex "[0:v][1:v] interleave" out.avi
34821
34822 • Add flickering blur effect:
34823
34824 select='if(gt(random(0), 0.2), 1, 2)':n=2 [tmp], boxblur=2:2, [tmp] interleave
34825
34826 latency, alatency
34827 Measure filtering latency.
34828
34829 Report previous filter filtering latency, delay in number of audio
34830 samples for audio filters or number of video frames for video filters.
34831
34832 On end of input stream, filter will report min and max measured latency
34833 for previous running filter in filtergraph.
34834
34835 metadata, ametadata
34836 Manipulate frame metadata.
34837
34838 This filter accepts the following options:
34839
34840 mode
34841 Set mode of operation of the filter.
34842
34843 Can be one of the following:
34844
34845 select
34846 If both "value" and "key" is set, select frames which have such
34847 metadata. If only "key" is set, select every frame that has
34848 such key in metadata.
34849
34850 add Add new metadata "key" and "value". If key is already available
34851 do nothing.
34852
34853 modify
34854 Modify value of already present key.
34855
34856 delete
34857 If "value" is set, delete only keys that have such value.
34858 Otherwise, delete key. If "key" is not set, delete all metadata
34859 values in the frame.
34860
34861 print
34862 Print key and its value if metadata was found. If "key" is not
34863 set print all metadata values available in frame.
34864
34865 key Set key used with all modes. Must be set for all modes except
34866 "print" and "delete".
34867
34868 value
34869 Set metadata value which will be used. This option is mandatory for
34870 "modify" and "add" mode.
34871
34872 function
34873 Which function to use when comparing metadata value and "value".
34874
34875 Can be one of following:
34876
34877 same_str
34878 Values are interpreted as strings, returns true if metadata
34879 value is same as "value".
34880
34881 starts_with
34882 Values are interpreted as strings, returns true if metadata
34883 value starts with the "value" option string.
34884
34885 less
34886 Values are interpreted as floats, returns true if metadata
34887 value is less than "value".
34888
34889 equal
34890 Values are interpreted as floats, returns true if "value" is
34891 equal with metadata value.
34892
34893 greater
34894 Values are interpreted as floats, returns true if metadata
34895 value is greater than "value".
34896
34897 expr
34898 Values are interpreted as floats, returns true if expression
34899 from option "expr" evaluates to true.
34900
34901 ends_with
34902 Values are interpreted as strings, returns true if metadata
34903 value ends with the "value" option string.
34904
34905 expr
34906 Set expression which is used when "function" is set to "expr". The
34907 expression is evaluated through the eval API and can contain the
34908 following constants:
34909
34910 VALUE1, FRAMEVAL
34911 Float representation of "value" from metadata key.
34912
34913 VALUE2, USERVAL
34914 Float representation of "value" as supplied by user in "value"
34915 option.
34916
34917 file
34918 If specified in "print" mode, output is written to the named file.
34919 Instead of plain filename any writable url can be specified.
34920 Filename ``-'' is a shorthand for standard output. If "file" option
34921 is not set, output is written to the log with AV_LOG_INFO loglevel.
34922
34923 direct
34924 Reduces buffering in print mode when output is written to a URL set
34925 using file.
34926
34927 Examples
34928
34929 • Print all metadata values for frames with key
34930 "lavfi.signalstats.YDIF" with values between 0 and 1.
34931
34932 signalstats,metadata=print:key=lavfi.signalstats.YDIF:value=0:function=expr:expr='between(VALUE1,0,1)'
34933
34934 • Print silencedetect output to file metadata.txt.
34935
34936 silencedetect,ametadata=mode=print:file=metadata.txt
34937
34938 • Direct all metadata to a pipe with file descriptor 4.
34939
34940 metadata=mode=print:file='pipe\:4'
34941
34942 perms, aperms
34943 Set read/write permissions for the output frames.
34944
34945 These filters are mainly aimed at developers to test direct path in the
34946 following filter in the filtergraph.
34947
34948 The filters accept the following options:
34949
34950 mode
34951 Select the permissions mode.
34952
34953 It accepts the following values:
34954
34955 none
34956 Do nothing. This is the default.
34957
34958 ro Set all the output frames read-only.
34959
34960 rw Set all the output frames directly writable.
34961
34962 toggle
34963 Make the frame read-only if writable, and writable if read-
34964 only.
34965
34966 random
34967 Set each output frame read-only or writable randomly.
34968
34969 seed
34970 Set the seed for the random mode, must be an integer included
34971 between 0 and "UINT32_MAX". If not specified, or if explicitly set
34972 to -1, the filter will try to use a good random seed on a best
34973 effort basis.
34974
34975 Note: in case of auto-inserted filter between the permission filter and
34976 the following one, the permission might not be received as expected in
34977 that following filter. Inserting a format or aformat filter before the
34978 perms/aperms filter can avoid this problem.
34979
34980 realtime, arealtime
34981 Slow down filtering to match real time approximately.
34982
34983 These filters will pause the filtering for a variable amount of time to
34984 match the output rate with the input timestamps. They are similar to
34985 the re option to "ffmpeg".
34986
34987 They accept the following options:
34988
34989 limit
34990 Time limit for the pauses. Any pause longer than that will be
34991 considered a timestamp discontinuity and reset the timer. Default
34992 is 2 seconds.
34993
34994 speed
34995 Speed factor for processing. The value must be a float larger than
34996 zero. Values larger than 1.0 will result in faster than realtime
34997 processing, smaller will slow processing down. The limit is
34998 automatically adapted accordingly. Default is 1.0.
34999
35000 A processing speed faster than what is possible without these
35001 filters cannot be achieved.
35002
35003 Commands
35004
35005 Both filters supports the all above options as commands.
35006
35007 segment, asegment
35008 Split single input stream into multiple streams.
35009
35010 This filter does opposite of concat filters.
35011
35012 "segment" works on video frames, "asegment" on audio samples.
35013
35014 This filter accepts the following options:
35015
35016 timestamps
35017 Timestamps of output segments separated by '|'. The first segment
35018 will run from the beginning of the input stream. The last segment
35019 will run until the end of the input stream
35020
35021 frames, samples
35022 Exact frame/sample count to split the segments.
35023
35024 In all cases, prefixing an each segment with '+' will make it relative
35025 to the previous segment.
35026
35027 Examples
35028
35029 • Split input audio stream into three output audio streams, starting
35030 at start of input audio stream and storing that in 1st output audio
35031 stream, then following at 60th second and storing than in 2nd
35032 output audio stream, and last after 150th second of input audio
35033 stream store in 3rd output audio stream:
35034
35035 asegment=timestamps="60|150"
35036
35037 select, aselect
35038 Select frames to pass in output.
35039
35040 This filter accepts the following options:
35041
35042 expr, e
35043 Set expression, which is evaluated for each input frame.
35044
35045 If the expression is evaluated to zero, the frame is discarded.
35046
35047 If the evaluation result is negative or NaN, the frame is sent to
35048 the first output; otherwise it is sent to the output with index
35049 "ceil(val)-1", assuming that the input index starts from 0.
35050
35051 For example a value of 1.2 corresponds to the output with index
35052 "ceil(1.2)-1 = 2-1 = 1", that is the second output.
35053
35054 outputs, n
35055 Set the number of outputs. The output to which to send the selected
35056 frame is based on the result of the evaluation. Default value is 1.
35057
35058 The expression can contain the following constants:
35059
35060 n The (sequential) number of the filtered frame, starting from 0.
35061
35062 selected_n
35063 The (sequential) number of the selected frame, starting from 0.
35064
35065 prev_selected_n
35066 The sequential number of the last selected frame. It's NAN if
35067 undefined.
35068
35069 TB The timebase of the input timestamps.
35070
35071 pts The PTS (Presentation TimeStamp) of the filtered frame, expressed
35072 in TB units. It's NAN if undefined.
35073
35074 t The PTS of the filtered frame, expressed in seconds. It's NAN if
35075 undefined.
35076
35077 prev_pts
35078 The PTS of the previously filtered frame. It's NAN if undefined.
35079
35080 prev_selected_pts
35081 The PTS of the last previously filtered frame. It's NAN if
35082 undefined.
35083
35084 prev_selected_t
35085 The PTS of the last previously selected frame, expressed in
35086 seconds. It's NAN if undefined.
35087
35088 start_pts
35089 The first PTS in the stream which is not NAN. It remains NAN if not
35090 found.
35091
35092 start_t
35093 The first PTS, in seconds, in the stream which is not NAN. It
35094 remains NAN if not found.
35095
35096 pict_type (video only)
35097 The type of the filtered frame. It can assume one of the following
35098 values:
35099
35100 I
35101 P
35102 B
35103 S
35104 SI
35105 SP
35106 BI
35107 interlace_type (video only)
35108 The frame interlace type. It can assume one of the following
35109 values:
35110
35111 PROGRESSIVE
35112 The frame is progressive (not interlaced).
35113
35114 TOPFIRST
35115 The frame is top-field-first.
35116
35117 BOTTOMFIRST
35118 The frame is bottom-field-first.
35119
35120 consumed_sample_n (audio only)
35121 the number of selected samples before the current frame
35122
35123 samples_n (audio only)
35124 the number of samples in the current frame
35125
35126 sample_rate (audio only)
35127 the input sample rate
35128
35129 key This is 1 if the filtered frame is a key-frame, 0 otherwise.
35130
35131 pos the position in the file of the filtered frame, -1 if the
35132 information is not available (e.g. for synthetic video)
35133
35134 scene (video only)
35135 value between 0 and 1 to indicate a new scene; a low value reflects
35136 a low probability for the current frame to introduce a new scene,
35137 while a higher value means the current frame is more likely to be
35138 one (see the example below)
35139
35140 concatdec_select
35141 The concat demuxer can select only part of a concat input file by
35142 setting an inpoint and an outpoint, but the output packets may not
35143 be entirely contained in the selected interval. By using this
35144 variable, it is possible to skip frames generated by the concat
35145 demuxer which are not exactly contained in the selected interval.
35146
35147 This works by comparing the frame pts against the
35148 lavf.concat.start_time and the lavf.concat.duration packet metadata
35149 values which are also present in the decoded frames.
35150
35151 The concatdec_select variable is -1 if the frame pts is at least
35152 start_time and either the duration metadata is missing or the frame
35153 pts is less than start_time + duration, 0 otherwise, and NaN if the
35154 start_time metadata is missing.
35155
35156 That basically means that an input frame is selected if its pts is
35157 within the interval set by the concat demuxer.
35158
35159 The default value of the select expression is "1".
35160
35161 Examples
35162
35163 • Select all frames in input:
35164
35165 select
35166
35167 The example above is the same as:
35168
35169 select=1
35170
35171 • Skip all frames:
35172
35173 select=0
35174
35175 • Select only I-frames:
35176
35177 select='eq(pict_type\,I)'
35178
35179 • Select one frame every 100:
35180
35181 select='not(mod(n\,100))'
35182
35183 • Select only frames contained in the 10-20 time interval:
35184
35185 select=between(t\,10\,20)
35186
35187 • Select only I-frames contained in the 10-20 time interval:
35188
35189 select=between(t\,10\,20)*eq(pict_type\,I)
35190
35191 • Select frames with a minimum distance of 10 seconds:
35192
35193 select='isnan(prev_selected_t)+gte(t-prev_selected_t\,10)'
35194
35195 • Use aselect to select only audio frames with samples number > 100:
35196
35197 aselect='gt(samples_n\,100)'
35198
35199 • Create a mosaic of the first scenes:
35200
35201 ffmpeg -i video.avi -vf select='gt(scene\,0.4)',scale=160:120,tile -frames:v 1 preview.png
35202
35203 Comparing scene against a value between 0.3 and 0.5 is generally a
35204 sane choice.
35205
35206 • Send even and odd frames to separate outputs, and compose them:
35207
35208 select=n=2:e='mod(n, 2)+1' [odd][even]; [odd] pad=h=2*ih [tmp]; [tmp][even] overlay=y=h
35209
35210 • Select useful frames from an ffconcat file which is using inpoints
35211 and outpoints but where the source files are not intra frame only.
35212
35213 ffmpeg -copyts -vsync 0 -segment_time_metadata 1 -i input.ffconcat -vf select=concatdec_select -af aselect=concatdec_select output.avi
35214
35215 sendcmd, asendcmd
35216 Send commands to filters in the filtergraph.
35217
35218 These filters read commands to be sent to other filters in the
35219 filtergraph.
35220
35221 "sendcmd" must be inserted between two video filters, "asendcmd" must
35222 be inserted between two audio filters, but apart from that they act the
35223 same way.
35224
35225 The specification of commands can be provided in the filter arguments
35226 with the commands option, or in a file specified by the filename
35227 option.
35228
35229 These filters accept the following options:
35230
35231 commands, c
35232 Set the commands to be read and sent to the other filters.
35233
35234 filename, f
35235 Set the filename of the commands to be read and sent to the other
35236 filters.
35237
35238 Commands syntax
35239
35240 A commands description consists of a sequence of interval
35241 specifications, comprising a list of commands to be executed when a
35242 particular event related to that interval occurs. The occurring event
35243 is typically the current frame time entering or leaving a given time
35244 interval.
35245
35246 An interval is specified by the following syntax:
35247
35248 <START>[-<END>] <COMMANDS>;
35249
35250 The time interval is specified by the START and END times. END is
35251 optional and defaults to the maximum time.
35252
35253 The current frame time is considered within the specified interval if
35254 it is included in the interval [START, END), that is when the time is
35255 greater or equal to START and is lesser than END.
35256
35257 COMMANDS consists of a sequence of one or more command specifications,
35258 separated by ",", relating to that interval. The syntax of a command
35259 specification is given by:
35260
35261 [<FLAGS>] <TARGET> <COMMAND> <ARG>
35262
35263 FLAGS is optional and specifies the type of events relating to the time
35264 interval which enable sending the specified command, and must be a non-
35265 null sequence of identifier flags separated by "+" or "|" and enclosed
35266 between "[" and "]".
35267
35268 The following flags are recognized:
35269
35270 enter
35271 The command is sent when the current frame timestamp enters the
35272 specified interval. In other words, the command is sent when the
35273 previous frame timestamp was not in the given interval, and the
35274 current is.
35275
35276 leave
35277 The command is sent when the current frame timestamp leaves the
35278 specified interval. In other words, the command is sent when the
35279 previous frame timestamp was in the given interval, and the current
35280 is not.
35281
35282 expr
35283 The command ARG is interpreted as expression and result of
35284 expression is passed as ARG.
35285
35286 The expression is evaluated through the eval API and can contain
35287 the following constants:
35288
35289 POS Original position in the file of the frame, or undefined if
35290 undefined for the current frame.
35291
35292 PTS The presentation timestamp in input.
35293
35294 N The count of the input frame for video or audio, starting from
35295 0.
35296
35297 T The time in seconds of the current frame.
35298
35299 TS The start time in seconds of the current command interval.
35300
35301 TE The end time in seconds of the current command interval.
35302
35303 TI The interpolated time of the current command interval, TI = (T
35304 - TS) / (TE - TS).
35305
35306 W The video frame width.
35307
35308 H The video frame height.
35309
35310 If FLAGS is not specified, a default value of "[enter]" is assumed.
35311
35312 TARGET specifies the target of the command, usually the name of the
35313 filter class or a specific filter instance name.
35314
35315 COMMAND specifies the name of the command for the target filter.
35316
35317 ARG is optional and specifies the optional list of argument for the
35318 given COMMAND.
35319
35320 Between one interval specification and another, whitespaces, or
35321 sequences of characters starting with "#" until the end of line, are
35322 ignored and can be used to annotate comments.
35323
35324 A simplified BNF description of the commands specification syntax
35325 follows:
35326
35327 <COMMAND_FLAG> ::= "enter" | "leave"
35328 <COMMAND_FLAGS> ::= <COMMAND_FLAG> [(+|"|")<COMMAND_FLAG>]
35329 <COMMAND> ::= ["[" <COMMAND_FLAGS> "]"] <TARGET> <COMMAND> [<ARG>]
35330 <COMMANDS> ::= <COMMAND> [,<COMMANDS>]
35331 <INTERVAL> ::= <START>[-<END>] <COMMANDS>
35332 <INTERVALS> ::= <INTERVAL>[;<INTERVALS>]
35333
35334 Examples
35335
35336 • Specify audio tempo change at second 4:
35337
35338 asendcmd=c='4.0 atempo tempo 1.5',atempo
35339
35340 • Target a specific filter instance:
35341
35342 asendcmd=c='4.0 atempo@my tempo 1.5',atempo@my
35343
35344 • Specify a list of drawtext and hue commands in a file.
35345
35346 # show text in the interval 5-10
35347 5.0-10.0 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=hello world',
35348 [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=';
35349
35350 # desaturate the image in the interval 15-20
35351 15.0-20.0 [enter] hue s 0,
35352 [enter] drawtext reinit 'fontfile=FreeSerif.ttf:text=nocolor',
35353 [leave] hue s 1,
35354 [leave] drawtext reinit 'fontfile=FreeSerif.ttf:text=color';
35355
35356 # apply an exponential saturation fade-out effect, starting from time 25
35357 25 [enter] hue s exp(25-t)
35358
35359 A filtergraph allowing to read and process the above command list
35360 stored in a file test.cmd, can be specified with:
35361
35362 sendcmd=f=test.cmd,drawtext=fontfile=FreeSerif.ttf:text='',hue
35363
35364 setpts, asetpts
35365 Change the PTS (presentation timestamp) of the input frames.
35366
35367 "setpts" works on video frames, "asetpts" on audio frames.
35368
35369 This filter accepts the following options:
35370
35371 expr
35372 The expression which is evaluated for each frame to construct its
35373 timestamp.
35374
35375 The expression is evaluated through the eval API and can contain the
35376 following constants:
35377
35378 FRAME_RATE, FR
35379 frame rate, only defined for constant frame-rate video
35380
35381 PTS The presentation timestamp in input
35382
35383 N The count of the input frame for video or the number of consumed
35384 samples, not including the current frame for audio, starting from
35385 0.
35386
35387 NB_CONSUMED_SAMPLES
35388 The number of consumed samples, not including the current frame
35389 (only audio)
35390
35391 NB_SAMPLES, S
35392 The number of samples in the current frame (only audio)
35393
35394 SAMPLE_RATE, SR
35395 The audio sample rate.
35396
35397 STARTPTS
35398 The PTS of the first frame.
35399
35400 STARTT
35401 the time in seconds of the first frame
35402
35403 INTERLACED
35404 State whether the current frame is interlaced.
35405
35406 T the time in seconds of the current frame
35407
35408 POS original position in the file of the frame, or undefined if
35409 undefined for the current frame
35410
35411 PREV_INPTS
35412 The previous input PTS.
35413
35414 PREV_INT
35415 previous input time in seconds
35416
35417 PREV_OUTPTS
35418 The previous output PTS.
35419
35420 PREV_OUTT
35421 previous output time in seconds
35422
35423 RTCTIME
35424 The wallclock (RTC) time in microseconds. This is deprecated, use
35425 time(0) instead.
35426
35427 RTCSTART
35428 The wallclock (RTC) time at the start of the movie in microseconds.
35429
35430 TB The timebase of the input timestamps.
35431
35432 Examples
35433
35434 • Start counting PTS from zero
35435
35436 setpts=PTS-STARTPTS
35437
35438 • Apply fast motion effect:
35439
35440 setpts=0.5*PTS
35441
35442 • Apply slow motion effect:
35443
35444 setpts=2.0*PTS
35445
35446 • Set fixed rate of 25 frames per second:
35447
35448 setpts=N/(25*TB)
35449
35450 • Set fixed rate 25 fps with some jitter:
35451
35452 setpts='1/(25*TB) * (N + 0.05 * sin(N*2*PI/25))'
35453
35454 • Apply an offset of 10 seconds to the input PTS:
35455
35456 setpts=PTS+10/TB
35457
35458 • Generate timestamps from a "live source" and rebase onto the
35459 current timebase:
35460
35461 setpts='(RTCTIME - RTCSTART) / (TB * 1000000)'
35462
35463 • Generate timestamps by counting samples:
35464
35465 asetpts=N/SR/TB
35466
35467 setrange
35468 Force color range for the output video frame.
35469
35470 The "setrange" filter marks the color range property for the output
35471 frames. It does not change the input frame, but only sets the
35472 corresponding property, which affects how the frame is treated by
35473 following filters.
35474
35475 The filter accepts the following options:
35476
35477 range
35478 Available values are:
35479
35480 auto
35481 Keep the same color range property.
35482
35483 unspecified, unknown
35484 Set the color range as unspecified.
35485
35486 limited, tv, mpeg
35487 Set the color range as limited.
35488
35489 full, pc, jpeg
35490 Set the color range as full.
35491
35492 settb, asettb
35493 Set the timebase to use for the output frames timestamps. It is mainly
35494 useful for testing timebase configuration.
35495
35496 It accepts the following parameters:
35497
35498 expr, tb
35499 The expression which is evaluated into the output timebase.
35500
35501 The value for tb is an arithmetic expression representing a rational.
35502 The expression can contain the constants "AVTB" (the default timebase),
35503 "intb" (the input timebase) and "sr" (the sample rate, audio only).
35504 Default value is "intb".
35505
35506 Examples
35507
35508 • Set the timebase to 1/25:
35509
35510 settb=expr=1/25
35511
35512 • Set the timebase to 1/10:
35513
35514 settb=expr=0.1
35515
35516 • Set the timebase to 1001/1000:
35517
35518 settb=1+0.001
35519
35520 • Set the timebase to 2*intb:
35521
35522 settb=2*intb
35523
35524 • Set the default timebase value:
35525
35526 settb=AVTB
35527
35528 showcqt
35529 Convert input audio to a video output representing frequency spectrum
35530 logarithmically using Brown-Puckette constant Q transform algorithm
35531 with direct frequency domain coefficient calculation (but the transform
35532 itself is not really constant Q, instead the Q factor is actually
35533 variable/clamped), with musical tone scale, from E0 to D#10.
35534
35535 The filter accepts the following options:
35536
35537 size, s
35538 Specify the video size for the output. It must be even. For the
35539 syntax of this option, check the "Video size" section in the
35540 ffmpeg-utils manual. Default value is "1920x1080".
35541
35542 fps, rate, r
35543 Set the output frame rate. Default value is 25.
35544
35545 bar_h
35546 Set the bargraph height. It must be even. Default value is -1 which
35547 computes the bargraph height automatically.
35548
35549 axis_h
35550 Set the axis height. It must be even. Default value is -1 which
35551 computes the axis height automatically.
35552
35553 sono_h
35554 Set the sonogram height. It must be even. Default value is -1 which
35555 computes the sonogram height automatically.
35556
35557 fullhd
35558 Set the fullhd resolution. This option is deprecated, use size, s
35559 instead. Default value is 1.
35560
35561 sono_v, volume
35562 Specify the sonogram volume expression. It can contain variables:
35563
35564 bar_v
35565 the bar_v evaluated expression
35566
35567 frequency, freq, f
35568 the frequency where it is evaluated
35569
35570 timeclamp, tc
35571 the value of timeclamp option
35572
35573 and functions:
35574
35575 a_weighting(f)
35576 A-weighting of equal loudness
35577
35578 b_weighting(f)
35579 B-weighting of equal loudness
35580
35581 c_weighting(f)
35582 C-weighting of equal loudness.
35583
35584 Default value is 16.
35585
35586 bar_v, volume2
35587 Specify the bargraph volume expression. It can contain variables:
35588
35589 sono_v
35590 the sono_v evaluated expression
35591
35592 frequency, freq, f
35593 the frequency where it is evaluated
35594
35595 timeclamp, tc
35596 the value of timeclamp option
35597
35598 and functions:
35599
35600 a_weighting(f)
35601 A-weighting of equal loudness
35602
35603 b_weighting(f)
35604 B-weighting of equal loudness
35605
35606 c_weighting(f)
35607 C-weighting of equal loudness.
35608
35609 Default value is "sono_v".
35610
35611 sono_g, gamma
35612 Specify the sonogram gamma. Lower gamma makes the spectrum more
35613 contrast, higher gamma makes the spectrum having more range.
35614 Default value is 3. Acceptable range is "[1, 7]".
35615
35616 bar_g, gamma2
35617 Specify the bargraph gamma. Default value is 1. Acceptable range is
35618 "[1, 7]".
35619
35620 bar_t
35621 Specify the bargraph transparency level. Lower value makes the
35622 bargraph sharper. Default value is 1. Acceptable range is "[0,
35623 1]".
35624
35625 timeclamp, tc
35626 Specify the transform timeclamp. At low frequency, there is trade-
35627 off between accuracy in time domain and frequency domain. If
35628 timeclamp is lower, event in time domain is represented more
35629 accurately (such as fast bass drum), otherwise event in frequency
35630 domain is represented more accurately (such as bass guitar).
35631 Acceptable range is "[0.002, 1]". Default value is 0.17.
35632
35633 attack
35634 Set attack time in seconds. The default is 0 (disabled). Otherwise,
35635 it limits future samples by applying asymmetric windowing in time
35636 domain, useful when low latency is required. Accepted range is "[0,
35637 1]".
35638
35639 basefreq
35640 Specify the transform base frequency. Default value is
35641 20.01523126408007475, which is frequency 50 cents below E0.
35642 Acceptable range is "[10, 100000]".
35643
35644 endfreq
35645 Specify the transform end frequency. Default value is
35646 20495.59681441799654, which is frequency 50 cents above D#10.
35647 Acceptable range is "[10, 100000]".
35648
35649 coeffclamp
35650 This option is deprecated and ignored.
35651
35652 tlength
35653 Specify the transform length in time domain. Use this option to
35654 control accuracy trade-off between time domain and frequency domain
35655 at every frequency sample. It can contain variables:
35656
35657 frequency, freq, f
35658 the frequency where it is evaluated
35659
35660 timeclamp, tc
35661 the value of timeclamp option.
35662
35663 Default value is "384*tc/(384+tc*f)".
35664
35665 count
35666 Specify the transform count for every video frame. Default value is
35667 6. Acceptable range is "[1, 30]".
35668
35669 fcount
35670 Specify the transform count for every single pixel. Default value
35671 is 0, which makes it computed automatically. Acceptable range is
35672 "[0, 10]".
35673
35674 fontfile
35675 Specify font file for use with freetype to draw the axis. If not
35676 specified, use embedded font. Note that drawing with font file or
35677 embedded font is not implemented with custom basefreq and endfreq,
35678 use axisfile option instead.
35679
35680 font
35681 Specify fontconfig pattern. This has lower priority than fontfile.
35682 The ":" in the pattern may be replaced by "|" to avoid unnecessary
35683 escaping.
35684
35685 fontcolor
35686 Specify font color expression. This is arithmetic expression that
35687 should return integer value 0xRRGGBB. It can contain variables:
35688
35689 frequency, freq, f
35690 the frequency where it is evaluated
35691
35692 timeclamp, tc
35693 the value of timeclamp option
35694
35695 and functions:
35696
35697 midi(f)
35698 midi number of frequency f, some midi numbers: E0(16), C1(24),
35699 C2(36), A4(69)
35700
35701 r(x), g(x), b(x)
35702 red, green, and blue value of intensity x.
35703
35704 Default value is "st(0, (midi(f)-59.5)/12); st(1,
35705 if(between(ld(0),0,1), 0.5-0.5*cos(2*PI*ld(0)), 0)); r(1-ld(1)) +
35706 b(ld(1))".
35707
35708 axisfile
35709 Specify image file to draw the axis. This option override fontfile
35710 and fontcolor option.
35711
35712 axis, text
35713 Enable/disable drawing text to the axis. If it is set to 0, drawing
35714 to the axis is disabled, ignoring fontfile and axisfile option.
35715 Default value is 1.
35716
35717 csp Set colorspace. The accepted values are:
35718
35719 unspecified
35720 Unspecified (default)
35721
35722 bt709
35723 BT.709
35724
35725 fcc FCC
35726
35727 bt470bg
35728 BT.470BG or BT.601-6 625
35729
35730 smpte170m
35731 SMPTE-170M or BT.601-6 525
35732
35733 smpte240m
35734 SMPTE-240M
35735
35736 bt2020ncl
35737 BT.2020 with non-constant luminance
35738
35739 cscheme
35740 Set spectrogram color scheme. This is list of floating point values
35741 with format "left_r|left_g|left_b|right_r|right_g|right_b". The
35742 default is "1|0.5|0|0|0.5|1".
35743
35744 Examples
35745
35746 • Playing audio while showing the spectrum:
35747
35748 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt [out0]'
35749
35750 • Same as above, but with frame rate 30 fps:
35751
35752 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=fps=30:count=5 [out0]'
35753
35754 • Playing at 1280x720:
35755
35756 ffplay -f lavfi 'amovie=a.mp3, asplit [a][out1]; [a] showcqt=s=1280x720:count=4 [out0]'
35757
35758 • Disable sonogram display:
35759
35760 sono_h=0
35761
35762 • A1 and its harmonics: A1, A2, (near)E3, A3:
35763
35764 ffplay -f lavfi 'aevalsrc=0.1*sin(2*PI*55*t)+0.1*sin(4*PI*55*t)+0.1*sin(6*PI*55*t)+0.1*sin(8*PI*55*t),
35765 asplit[a][out1]; [a] showcqt [out0]'
35766
35767 • Same as above, but with more accuracy in frequency domain:
35768
35769 ffplay -f lavfi 'aevalsrc=0.1*sin(2*PI*55*t)+0.1*sin(4*PI*55*t)+0.1*sin(6*PI*55*t)+0.1*sin(8*PI*55*t),
35770 asplit[a][out1]; [a] showcqt=timeclamp=0.5 [out0]'
35771
35772 • Custom volume:
35773
35774 bar_v=10:sono_v=bar_v*a_weighting(f)
35775
35776 • Custom gamma, now spectrum is linear to the amplitude.
35777
35778 bar_g=2:sono_g=2
35779
35780 • Custom tlength equation:
35781
35782 tc=0.33:tlength='st(0,0.17); 384*tc / (384 / ld(0) + tc*f /(1-ld(0))) + 384*tc / (tc*f / ld(0) + 384 /(1-ld(0)))'
35783
35784 • Custom fontcolor and fontfile, C-note is colored green, others are
35785 colored blue:
35786
35787 fontcolor='if(mod(floor(midi(f)+0.5),12), 0x0000FF, g(1))':fontfile=myfont.ttf
35788
35789 • Custom font using fontconfig:
35790
35791 font='Courier New,Monospace,mono|bold'
35792
35793 • Custom frequency range with custom axis using image file:
35794
35795 axisfile=myaxis.png:basefreq=40:endfreq=10000
35796
35797 showcwt
35798 Convert input audio to video output representing frequency spectrum
35799 using Continuous Wavelet Transform and Morlet wavelet.
35800
35801 The filter accepts the following options:
35802
35803 size, s
35804 Specify the video size for the output. For the syntax of this
35805 option, check the "Video size" section in the ffmpeg-utils manual.
35806 Default value is "640x512".
35807
35808 rate, r
35809 Set the output frame rate. Default value is 25.
35810
35811 scale
35812 Set the frequency scale used. Allowed values are:
35813
35814 linear
35815 log2
35816 bark
35817 mel
35818 erbs
35819
35820 Default value is "linear".
35821
35822 min Set the minimum frequency that will be used in output. Default is
35823 20 Hz.
35824
35825 max Set the maximum frequency that will be used in output. Default is
35826 20000 Hz. The real frequency upper limit depends on input audio's
35827 sample rate and such will be enforced on this value when it is set
35828 to value greater than Nyquist frequency.
35829
35830 logb
35831 Set the logarithmic basis for brightness strength when mapping
35832 calculated magnitude values to pixel values. Allowed range is from
35833 0 to 1. Default value is 0.0001.
35834
35835 deviation
35836 Set the frequency deviation. Lower values than 1 are more
35837 frequency oriented, while higher values than 1 are more time
35838 oriented. Allowed range is from 0 to 10. Default value is 1.
35839
35840 pps Set the number of pixel output per each second in one row. Allowed
35841 range is from 1 to 1024. Default value is 64.
35842
35843 mode
35844 Set the output visual mode. Allowed values are:
35845
35846 magnitude
35847 Show magnitude.
35848
35849 phase
35850 Show only phase.
35851
35852 magphase
35853 Show combination of magnitude and phase. Magnitude is mapped
35854 to brightness and phase to color.
35855
35856 channel
35857 Show unique color per channel magnitude.
35858
35859 stereo
35860 Show unique color per stereo difference.
35861
35862 Default value is "magnitude".
35863
35864 slide
35865 Set the output slide method. Allowed values are:
35866
35867 replace
35868 scroll
35869 frame
35870 direction
35871 Set the direction method for output slide method. Allowed values
35872 are:
35873
35874 lr Direction from left to right.
35875
35876 rl Direction from right to left.
35877
35878 ud Direction from up to down.
35879
35880 du Direction from down to up.
35881
35882 showfreqs
35883 Convert input audio to video output representing the audio power
35884 spectrum. Audio amplitude is on Y-axis while frequency is on X-axis.
35885
35886 The filter accepts the following options:
35887
35888 size, s
35889 Specify size of video. For the syntax of this option, check the
35890 "Video size" section in the ffmpeg-utils manual. Default is
35891 "1024x512".
35892
35893 rate, r
35894 Set video rate. Default is 25.
35895
35896 mode
35897 Set display mode. This set how each frequency bin will be
35898 represented.
35899
35900 It accepts the following values:
35901
35902 line
35903 bar
35904 dot
35905
35906 Default is "bar".
35907
35908 ascale
35909 Set amplitude scale.
35910
35911 It accepts the following values:
35912
35913 lin Linear scale.
35914
35915 sqrt
35916 Square root scale.
35917
35918 cbrt
35919 Cubic root scale.
35920
35921 log Logarithmic scale.
35922
35923 Default is "log".
35924
35925 fscale
35926 Set frequency scale.
35927
35928 It accepts the following values:
35929
35930 lin Linear scale.
35931
35932 log Logarithmic scale.
35933
35934 rlog
35935 Reverse logarithmic scale.
35936
35937 Default is "lin".
35938
35939 win_size
35940 Set window size. Allowed range is from 16 to 65536.
35941
35942 Default is 2048
35943
35944 win_func
35945 Set windowing function.
35946
35947 It accepts the following values:
35948
35949 rect
35950 bartlett
35951 hanning
35952 hamming
35953 blackman
35954 welch
35955 flattop
35956 bharris
35957 bnuttall
35958 bhann
35959 sine
35960 nuttall
35961 lanczos
35962 gauss
35963 tukey
35964 dolph
35965 cauchy
35966 parzen
35967 poisson
35968 bohman
35969 kaiser
35970
35971 Default is "hanning".
35972
35973 overlap
35974 Set window overlap. In range "[0, 1]". Default is 1, which means
35975 optimal overlap for selected window function will be picked.
35976
35977 averaging
35978 Set time averaging. Setting this to 0 will display current maximal
35979 peaks. Default is 1, which means time averaging is disabled.
35980
35981 colors
35982 Specify list of colors separated by space or by '|' which will be
35983 used to draw channel frequencies. Unrecognized or missing colors
35984 will be replaced by white color.
35985
35986 cmode
35987 Set channel display mode.
35988
35989 It accepts the following values:
35990
35991 combined
35992 separate
35993
35994 Default is "combined".
35995
35996 minamp
35997 Set minimum amplitude used in "log" amplitude scaler.
35998
35999 data
36000 Set data display mode.
36001
36002 It accepts the following values:
36003
36004 magnitude
36005 phase
36006 delay
36007
36008 Default is "magnitude".
36009
36010 channels
36011 Set channels to use when processing audio. By default all are
36012 processed.
36013
36014 showspatial
36015 Convert stereo input audio to a video output, representing the spatial
36016 relationship between two channels.
36017
36018 The filter accepts the following options:
36019
36020 size, s
36021 Specify the video size for the output. For the syntax of this
36022 option, check the "Video size" section in the ffmpeg-utils manual.
36023 Default value is "512x512".
36024
36025 win_size
36026 Set window size. Allowed range is from 1024 to 65536. Default size
36027 is 4096.
36028
36029 win_func
36030 Set window function.
36031
36032 It accepts the following values:
36033
36034 rect
36035 bartlett
36036 hann
36037 hanning
36038 hamming
36039 blackman
36040 welch
36041 flattop
36042 bharris
36043 bnuttall
36044 bhann
36045 sine
36046 nuttall
36047 lanczos
36048 gauss
36049 tukey
36050 dolph
36051 cauchy
36052 parzen
36053 poisson
36054 bohman
36055 kaiser
36056
36057 Default value is "hann".
36058
36059 rate, r
36060 Set output framerate.
36061
36062 showspectrum
36063 Convert input audio to a video output, representing the audio frequency
36064 spectrum.
36065
36066 The filter accepts the following options:
36067
36068 size, s
36069 Specify the video size for the output. For the syntax of this
36070 option, check the "Video size" section in the ffmpeg-utils manual.
36071 Default value is "640x512".
36072
36073 slide
36074 Specify how the spectrum should slide along the window.
36075
36076 It accepts the following values:
36077
36078 replace
36079 the samples start again on the left when they reach the right
36080
36081 scroll
36082 the samples scroll from right to left
36083
36084 fullframe
36085 frames are only produced when the samples reach the right
36086
36087 rscroll
36088 the samples scroll from left to right
36089
36090 lreplace
36091 the samples start again on the right when they reach the left
36092
36093 Default value is "replace".
36094
36095 mode
36096 Specify display mode.
36097
36098 It accepts the following values:
36099
36100 combined
36101 all channels are displayed in the same row
36102
36103 separate
36104 all channels are displayed in separate rows
36105
36106 Default value is combined.
36107
36108 color
36109 Specify display color mode.
36110
36111 It accepts the following values:
36112
36113 channel
36114 each channel is displayed in a separate color
36115
36116 intensity
36117 each channel is displayed using the same color scheme
36118
36119 rainbow
36120 each channel is displayed using the rainbow color scheme
36121
36122 moreland
36123 each channel is displayed using the moreland color scheme
36124
36125 nebulae
36126 each channel is displayed using the nebulae color scheme
36127
36128 fire
36129 each channel is displayed using the fire color scheme
36130
36131 fiery
36132 each channel is displayed using the fiery color scheme
36133
36134 fruit
36135 each channel is displayed using the fruit color scheme
36136
36137 cool
36138 each channel is displayed using the cool color scheme
36139
36140 magma
36141 each channel is displayed using the magma color scheme
36142
36143 green
36144 each channel is displayed using the green color scheme
36145
36146 viridis
36147 each channel is displayed using the viridis color scheme
36148
36149 plasma
36150 each channel is displayed using the plasma color scheme
36151
36152 cividis
36153 each channel is displayed using the cividis color scheme
36154
36155 terrain
36156 each channel is displayed using the terrain color scheme
36157
36158 Default value is channel.
36159
36160 scale
36161 Specify scale used for calculating intensity color values.
36162
36163 It accepts the following values:
36164
36165 lin linear
36166
36167 sqrt
36168 square root, default
36169
36170 cbrt
36171 cubic root
36172
36173 log logarithmic
36174
36175 4thrt
36176 4th root
36177
36178 5thrt
36179 5th root
36180
36181 Default value is sqrt.
36182
36183 fscale
36184 Specify frequency scale.
36185
36186 It accepts the following values:
36187
36188 lin linear
36189
36190 log logarithmic
36191
36192 Default value is lin.
36193
36194 saturation
36195 Set saturation modifier for displayed colors. Negative values
36196 provide alternative color scheme. 0 is no saturation at all.
36197 Saturation must be in [-10.0, 10.0] range. Default value is 1.
36198
36199 win_func
36200 Set window function.
36201
36202 It accepts the following values:
36203
36204 rect
36205 bartlett
36206 hann
36207 hanning
36208 hamming
36209 blackman
36210 welch
36211 flattop
36212 bharris
36213 bnuttall
36214 bhann
36215 sine
36216 nuttall
36217 lanczos
36218 gauss
36219 tukey
36220 dolph
36221 cauchy
36222 parzen
36223 poisson
36224 bohman
36225 kaiser
36226
36227 Default value is "hann".
36228
36229 orientation
36230 Set orientation of time vs frequency axis. Can be "vertical" or
36231 "horizontal". Default is "vertical".
36232
36233 overlap
36234 Set ratio of overlap window. Default value is 0. When value is 1
36235 overlap is set to recommended size for specific window function
36236 currently used.
36237
36238 gain
36239 Set scale gain for calculating intensity color values. Default
36240 value is 1.
36241
36242 data
36243 Set which data to display. Can be "magnitude", default or "phase",
36244 or unwrapped phase: "uphase".
36245
36246 rotation
36247 Set color rotation, must be in [-1.0, 1.0] range. Default value is
36248 0.
36249
36250 start
36251 Set start frequency from which to display spectrogram. Default is
36252 0.
36253
36254 stop
36255 Set stop frequency to which to display spectrogram. Default is 0.
36256
36257 fps Set upper frame rate limit. Default is "auto", unlimited.
36258
36259 legend
36260 Draw time and frequency axes and legends. Default is disabled.
36261
36262 drange
36263 Set dynamic range used to calculate intensity color values. Default
36264 is 120 dBFS. Allowed range is from 10 to 200.
36265
36266 limit
36267 Set upper limit of input audio samples volume in dBFS. Default is 0
36268 dBFS. Allowed range is from -100 to 100.
36269
36270 opacity
36271 Set opacity strength when using pixel format output with alpha
36272 component.
36273
36274 The usage is very similar to the showwaves filter; see the examples in
36275 that section.
36276
36277 Examples
36278
36279 • Large window with logarithmic color scaling:
36280
36281 showspectrum=s=1280x480:scale=log
36282
36283 • Complete example for a colored and sliding spectrum per channel
36284 using ffplay:
36285
36286 ffplay -f lavfi 'amovie=input.mp3, asplit [a][out1];
36287 [a] showspectrum=mode=separate:color=intensity:slide=1:scale=cbrt [out0]'
36288
36289 showspectrumpic
36290 Convert input audio to a single video frame, representing the audio
36291 frequency spectrum.
36292
36293 The filter accepts the following options:
36294
36295 size, s
36296 Specify the video size for the output. For the syntax of this
36297 option, check the "Video size" section in the ffmpeg-utils manual.
36298 Default value is "4096x2048".
36299
36300 mode
36301 Specify display mode.
36302
36303 It accepts the following values:
36304
36305 combined
36306 all channels are displayed in the same row
36307
36308 separate
36309 all channels are displayed in separate rows
36310
36311 Default value is combined.
36312
36313 color
36314 Specify display color mode.
36315
36316 It accepts the following values:
36317
36318 channel
36319 each channel is displayed in a separate color
36320
36321 intensity
36322 each channel is displayed using the same color scheme
36323
36324 rainbow
36325 each channel is displayed using the rainbow color scheme
36326
36327 moreland
36328 each channel is displayed using the moreland color scheme
36329
36330 nebulae
36331 each channel is displayed using the nebulae color scheme
36332
36333 fire
36334 each channel is displayed using the fire color scheme
36335
36336 fiery
36337 each channel is displayed using the fiery color scheme
36338
36339 fruit
36340 each channel is displayed using the fruit color scheme
36341
36342 cool
36343 each channel is displayed using the cool color scheme
36344
36345 magma
36346 each channel is displayed using the magma color scheme
36347
36348 green
36349 each channel is displayed using the green color scheme
36350
36351 viridis
36352 each channel is displayed using the viridis color scheme
36353
36354 plasma
36355 each channel is displayed using the plasma color scheme
36356
36357 cividis
36358 each channel is displayed using the cividis color scheme
36359
36360 terrain
36361 each channel is displayed using the terrain color scheme
36362
36363 Default value is intensity.
36364
36365 scale
36366 Specify scale used for calculating intensity color values.
36367
36368 It accepts the following values:
36369
36370 lin linear
36371
36372 sqrt
36373 square root, default
36374
36375 cbrt
36376 cubic root
36377
36378 log logarithmic
36379
36380 4thrt
36381 4th root
36382
36383 5thrt
36384 5th root
36385
36386 Default value is log.
36387
36388 fscale
36389 Specify frequency scale.
36390
36391 It accepts the following values:
36392
36393 lin linear
36394
36395 log logarithmic
36396
36397 Default value is lin.
36398
36399 saturation
36400 Set saturation modifier for displayed colors. Negative values
36401 provide alternative color scheme. 0 is no saturation at all.
36402 Saturation must be in [-10.0, 10.0] range. Default value is 1.
36403
36404 win_func
36405 Set window function.
36406
36407 It accepts the following values:
36408
36409 rect
36410 bartlett
36411 hann
36412 hanning
36413 hamming
36414 blackman
36415 welch
36416 flattop
36417 bharris
36418 bnuttall
36419 bhann
36420 sine
36421 nuttall
36422 lanczos
36423 gauss
36424 tukey
36425 dolph
36426 cauchy
36427 parzen
36428 poisson
36429 bohman
36430 kaiser
36431
36432 Default value is "hann".
36433
36434 orientation
36435 Set orientation of time vs frequency axis. Can be "vertical" or
36436 "horizontal". Default is "vertical".
36437
36438 gain
36439 Set scale gain for calculating intensity color values. Default
36440 value is 1.
36441
36442 legend
36443 Draw time and frequency axes and legends. Default is enabled.
36444
36445 rotation
36446 Set color rotation, must be in [-1.0, 1.0] range. Default value is
36447 0.
36448
36449 start
36450 Set start frequency from which to display spectrogram. Default is
36451 0.
36452
36453 stop
36454 Set stop frequency to which to display spectrogram. Default is 0.
36455
36456 drange
36457 Set dynamic range used to calculate intensity color values. Default
36458 is 120 dBFS. Allowed range is from 10 to 200.
36459
36460 limit
36461 Set upper limit of input audio samples volume in dBFS. Default is 0
36462 dBFS. Allowed range is from -100 to 100.
36463
36464 opacity
36465 Set opacity strength when using pixel format output with alpha
36466 component.
36467
36468 Examples
36469
36470 • Extract an audio spectrogram of a whole audio track in a 1024x1024
36471 picture using ffmpeg:
36472
36473 ffmpeg -i audio.flac -lavfi showspectrumpic=s=1024x1024 spectrogram.png
36474
36475 showvolume
36476 Convert input audio volume to a video output.
36477
36478 The filter accepts the following options:
36479
36480 rate, r
36481 Set video rate.
36482
36483 b Set border width, allowed range is [0, 5]. Default is 1.
36484
36485 w Set channel width, allowed range is [80, 8192]. Default is 400.
36486
36487 h Set channel height, allowed range is [1, 900]. Default is 20.
36488
36489 f Set fade, allowed range is [0, 1]. Default is 0.95.
36490
36491 c Set volume color expression.
36492
36493 The expression can use the following variables:
36494
36495 VOLUME
36496 Current max volume of channel in dB.
36497
36498 PEAK
36499 Current peak.
36500
36501 CHANNEL
36502 Current channel number, starting from 0.
36503
36504 t If set, displays channel names. Default is enabled.
36505
36506 v If set, displays volume values. Default is enabled.
36507
36508 o Set orientation, can be horizontal: "h" or vertical: "v", default
36509 is "h".
36510
36511 s Set step size, allowed range is [0, 5]. Default is 0, which means
36512 step is disabled.
36513
36514 p Set background opacity, allowed range is [0, 1]. Default is 0.
36515
36516 m Set metering mode, can be peak: "p" or rms: "r", default is "p".
36517
36518 ds Set display scale, can be linear: "lin" or log: "log", default is
36519 "lin".
36520
36521 dm In second. If set to > 0., display a line for the max level in the
36522 previous seconds. default is disabled: 0.
36523
36524 dmc The color of the max line. Use when "dm" option is set to > 0.
36525 default is: "orange"
36526
36527 showwaves
36528 Convert input audio to a video output, representing the samples waves.
36529
36530 The filter accepts the following options:
36531
36532 size, s
36533 Specify the video size for the output. For the syntax of this
36534 option, check the "Video size" section in the ffmpeg-utils manual.
36535 Default value is "600x240".
36536
36537 mode
36538 Set display mode.
36539
36540 Available values are:
36541
36542 point
36543 Draw a point for each sample.
36544
36545 line
36546 Draw a vertical line for each sample.
36547
36548 p2p Draw a point for each sample and a line between them.
36549
36550 cline
36551 Draw a centered vertical line for each sample.
36552
36553 Default value is "point".
36554
36555 n Set the number of samples which are printed on the same column. A
36556 larger value will decrease the frame rate. Must be a positive
36557 integer. This option can be set only if the value for rate is not
36558 explicitly specified.
36559
36560 rate, r
36561 Set the (approximate) output frame rate. This is done by setting
36562 the option n. Default value is "25".
36563
36564 split_channels
36565 Set if channels should be drawn separately or overlap. Default
36566 value is 0.
36567
36568 colors
36569 Set colors separated by '|' which are going to be used for drawing
36570 of each channel.
36571
36572 scale
36573 Set amplitude scale.
36574
36575 Available values are:
36576
36577 lin Linear.
36578
36579 log Logarithmic.
36580
36581 sqrt
36582 Square root.
36583
36584 cbrt
36585 Cubic root.
36586
36587 Default is linear.
36588
36589 draw
36590 Set the draw mode. This is mostly useful to set for high n.
36591
36592 Available values are:
36593
36594 scale
36595 Scale pixel values for each drawn sample.
36596
36597 full
36598 Draw every sample directly.
36599
36600 Default value is "scale".
36601
36602 Examples
36603
36604 • Output the input file audio and the corresponding video
36605 representation at the same time:
36606
36607 amovie=a.mp3,asplit[out0],showwaves[out1]
36608
36609 • Create a synthetic signal and show it with showwaves, forcing a
36610 frame rate of 30 frames per second:
36611
36612 aevalsrc=sin(1*2*PI*t)*sin(880*2*PI*t):cos(2*PI*200*t),asplit[out0],showwaves=r=30[out1]
36613
36614 showwavespic
36615 Convert input audio to a single video frame, representing the samples
36616 waves.
36617
36618 The filter accepts the following options:
36619
36620 size, s
36621 Specify the video size for the output. For the syntax of this
36622 option, check the "Video size" section in the ffmpeg-utils manual.
36623 Default value is "600x240".
36624
36625 split_channels
36626 Set if channels should be drawn separately or overlap. Default
36627 value is 0.
36628
36629 colors
36630 Set colors separated by '|' which are going to be used for drawing
36631 of each channel.
36632
36633 scale
36634 Set amplitude scale.
36635
36636 Available values are:
36637
36638 lin Linear.
36639
36640 log Logarithmic.
36641
36642 sqrt
36643 Square root.
36644
36645 cbrt
36646 Cubic root.
36647
36648 Default is linear.
36649
36650 draw
36651 Set the draw mode.
36652
36653 Available values are:
36654
36655 scale
36656 Scale pixel values for each drawn sample.
36657
36658 full
36659 Draw every sample directly.
36660
36661 Default value is "scale".
36662
36663 filter
36664 Set the filter mode.
36665
36666 Available values are:
36667
36668 average
36669 Use average samples values for each drawn sample.
36670
36671 peak
36672 Use peak samples values for each drawn sample.
36673
36674 Default value is "average".
36675
36676 Examples
36677
36678 • Extract a channel split representation of the wave form of a whole
36679 audio track in a 1024x800 picture using ffmpeg:
36680
36681 ffmpeg -i audio.flac -lavfi showwavespic=split_channels=1:s=1024x800 waveform.png
36682
36683 sidedata, asidedata
36684 Delete frame side data, or select frames based on it.
36685
36686 This filter accepts the following options:
36687
36688 mode
36689 Set mode of operation of the filter.
36690
36691 Can be one of the following:
36692
36693 select
36694 Select every frame with side data of "type".
36695
36696 delete
36697 Delete side data of "type". If "type" is not set, delete all
36698 side data in the frame.
36699
36700 type
36701 Set side data type used with all modes. Must be set for "select"
36702 mode. For the list of frame side data types, refer to the
36703 "AVFrameSideDataType" enum in libavutil/frame.h. For example, to
36704 choose "AV_FRAME_DATA_PANSCAN" side data, you must specify
36705 "PANSCAN".
36706
36707 spectrumsynth
36708 Synthesize audio from 2 input video spectrums, first input stream
36709 represents magnitude across time and second represents phase across
36710 time. The filter will transform from frequency domain as displayed in
36711 videos back to time domain as presented in audio output.
36712
36713 This filter is primarily created for reversing processed showspectrum
36714 filter outputs, but can synthesize sound from other spectrograms too.
36715 But in such case results are going to be poor if the phase data is not
36716 available, because in such cases phase data need to be recreated,
36717 usually it's just recreated from random noise. For best results use
36718 gray only output ("channel" color mode in showspectrum filter) and
36719 "log" scale for magnitude video and "lin" scale for phase video. To
36720 produce phase, for 2nd video, use "data" option. Inputs videos should
36721 generally use "fullframe" slide mode as that saves resources needed for
36722 decoding video.
36723
36724 The filter accepts the following options:
36725
36726 sample_rate
36727 Specify sample rate of output audio, the sample rate of audio from
36728 which spectrum was generated may differ.
36729
36730 channels
36731 Set number of channels represented in input video spectrums.
36732
36733 scale
36734 Set scale which was used when generating magnitude input spectrum.
36735 Can be "lin" or "log". Default is "log".
36736
36737 slide
36738 Set slide which was used when generating inputs spectrums. Can be
36739 "replace", "scroll", "fullframe" or "rscroll". Default is
36740 "fullframe".
36741
36742 win_func
36743 Set window function used for resynthesis.
36744
36745 overlap
36746 Set window overlap. In range "[0, 1]". Default is 1, which means
36747 optimal overlap for selected window function will be picked.
36748
36749 orientation
36750 Set orientation of input videos. Can be "vertical" or "horizontal".
36751 Default is "vertical".
36752
36753 Examples
36754
36755 • First create magnitude and phase videos from audio, assuming audio
36756 is stereo with 44100 sample rate, then resynthesize videos back to
36757 audio with spectrumsynth:
36758
36759 ffmpeg -i input.flac -lavfi showspectrum=mode=separate:scale=log:overlap=0.875:color=channel:slide=fullframe:data=magnitude -an -c:v rawvideo magnitude.nut
36760 ffmpeg -i input.flac -lavfi showspectrum=mode=separate:scale=lin:overlap=0.875:color=channel:slide=fullframe:data=phase -an -c:v rawvideo phase.nut
36761 ffmpeg -i magnitude.nut -i phase.nut -lavfi spectrumsynth=channels=2:sample_rate=44100:win_func=hann:overlap=0.875:slide=fullframe output.flac
36762
36763 split, asplit
36764 Split input into several identical outputs.
36765
36766 "asplit" works with audio input, "split" with video.
36767
36768 The filter accepts a single parameter which specifies the number of
36769 outputs. If unspecified, it defaults to 2.
36770
36771 Examples
36772
36773 • Create two separate outputs from the same input:
36774
36775 [in] split [out0][out1]
36776
36777 • To create 3 or more outputs, you need to specify the number of
36778 outputs, like in:
36779
36780 [in] asplit=3 [out0][out1][out2]
36781
36782 • Create two separate outputs from the same input, one cropped and
36783 one padded:
36784
36785 [in] split [splitout1][splitout2];
36786 [splitout1] crop=100:100:0:0 [cropout];
36787 [splitout2] pad=200:200:100:100 [padout];
36788
36789 • Create 5 copies of the input audio with ffmpeg:
36790
36791 ffmpeg -i INPUT -filter_complex asplit=5 OUTPUT
36792
36793 zmq, azmq
36794 Receive commands sent through a libzmq client, and forward them to
36795 filters in the filtergraph.
36796
36797 "zmq" and "azmq" work as a pass-through filters. "zmq" must be inserted
36798 between two video filters, "azmq" between two audio filters. Both are
36799 capable to send messages to any filter type.
36800
36801 To enable these filters you need to install the libzmq library and
36802 headers and configure FFmpeg with "--enable-libzmq".
36803
36804 For more information about libzmq see: <http://www.zeromq.org/>
36805
36806 The "zmq" and "azmq" filters work as a libzmq server, which receives
36807 messages sent through a network interface defined by the bind_address
36808 (or the abbreviation "b") option. Default value of this option is
36809 tcp://localhost:5555. You may want to alter this value to your needs,
36810 but do not forget to escape any ':' signs (see filtergraph escaping).
36811
36812 The received message must be in the form:
36813
36814 <TARGET> <COMMAND> [<ARG>]
36815
36816 TARGET specifies the target of the command, usually the name of the
36817 filter class or a specific filter instance name. The default filter
36818 instance name uses the pattern Parsed_<filter_name>_<index>, but you
36819 can override this by using the filter_name@id syntax (see Filtergraph
36820 syntax).
36821
36822 COMMAND specifies the name of the command for the target filter.
36823
36824 ARG is optional and specifies the optional argument list for the given
36825 COMMAND.
36826
36827 Upon reception, the message is processed and the corresponding command
36828 is injected into the filtergraph. Depending on the result, the filter
36829 will send a reply to the client, adopting the format:
36830
36831 <ERROR_CODE> <ERROR_REASON>
36832 <MESSAGE>
36833
36834 MESSAGE is optional.
36835
36836 Examples
36837
36838 Look at tools/zmqsend for an example of a zmq client which can be used
36839 to send commands processed by these filters.
36840
36841 Consider the following filtergraph generated by ffplay. In this
36842 example the last overlay filter has an instance name. All other filters
36843 will have default instance names.
36844
36845 ffplay -dumpgraph 1 -f lavfi "
36846 color=s=100x100:c=red [l];
36847 color=s=100x100:c=blue [r];
36848 nullsrc=s=200x100, zmq [bg];
36849 [bg][l] overlay [bg+l];
36850 [bg+l][r] overlay@my=x=100 "
36851
36852 To change the color of the left side of the video, the following
36853 command can be used:
36854
36855 echo Parsed_color_0 c yellow | tools/zmqsend
36856
36857 To change the right side:
36858
36859 echo Parsed_color_1 c pink | tools/zmqsend
36860
36861 To change the position of the right side:
36862
36863 echo overlay@my x 150 | tools/zmqsend
36864
36866 Below is a description of the currently available multimedia sources.
36867
36868 amovie
36869 This is the same as movie source, except it selects an audio stream by
36870 default.
36871
36872 avsynctest
36873 Generate an Audio/Video Sync Test.
36874
36875 Generated stream periodically shows flash video frame and emits beep in
36876 audio. Useful to inspect A/V sync issues.
36877
36878 It accepts the following options:
36879
36880 size, s
36881 Set output video size. Default value is "hd720".
36882
36883 framerate, fr
36884 Set output video frame rate. Default value is 30.
36885
36886 samplerate, sr
36887 Set output audio sample rate. Default value is 44100.
36888
36889 amplitude, a
36890 Set output audio beep amplitude. Default value is 0.7.
36891
36892 period, p
36893 Set output audio beep period in seconds. Default value is 3.
36894
36895 delay, dl
36896 Set output video flash delay in number of frames. Default value is
36897 0.
36898
36899 cycle, c
36900 Enable cycling of video delays, by default is disabled.
36901
36902 duration, d
36903 Set stream output duration. By default duration is unlimited.
36904
36905 fg, bg, ag
36906 Set foreground/background/additional color.
36907
36908 movie
36909 Read audio and/or video stream(s) from a movie container.
36910
36911 It accepts the following parameters:
36912
36913 filename
36914 The name of the resource to read (not necessarily a file; it can
36915 also be a device or a stream accessed through some protocol).
36916
36917 format_name, f
36918 Specifies the format assumed for the movie to read, and can be
36919 either the name of a container or an input device. If not
36920 specified, the format is guessed from movie_name or by probing.
36921
36922 seek_point, sp
36923 Specifies the seek point in seconds. The frames will be output
36924 starting from this seek point. The parameter is evaluated with
36925 "av_strtod", so the numerical value may be suffixed by an IS
36926 postfix. The default value is "0".
36927
36928 streams, s
36929 Specifies the streams to read. Several streams can be specified,
36930 separated by "+". The source will then have as many outputs, in the
36931 same order. The syntax is explained in the "Stream specifiers"
36932 section in the ffmpeg manual. Two special names, "dv" and "da"
36933 specify respectively the default (best suited) video and audio
36934 stream. Default is "dv", or "da" if the filter is called as
36935 "amovie".
36936
36937 stream_index, si
36938 Specifies the index of the video stream to read. If the value is
36939 -1, the most suitable video stream will be automatically selected.
36940 The default value is "-1". Deprecated. If the filter is called
36941 "amovie", it will select audio instead of video.
36942
36943 loop
36944 Specifies how many times to read the stream in sequence. If the
36945 value is 0, the stream will be looped infinitely. Default value is
36946 "1".
36947
36948 Note that when the movie is looped the source timestamps are not
36949 changed, so it will generate non monotonically increasing
36950 timestamps.
36951
36952 discontinuity
36953 Specifies the time difference between frames above which the point
36954 is considered a timestamp discontinuity which is removed by
36955 adjusting the later timestamps.
36956
36957 dec_threads
36958 Specifies the number of threads for decoding
36959
36960 format_opts
36961 Specify format options for the opened file. Format options can be
36962 specified as a list of key=value pairs separated by ':'. The
36963 following example shows how to add protocol_whitelist and
36964 protocol_blacklist options:
36965
36966 ffplay -f lavfi
36967 "movie=filename='1.sdp':format_opts='protocol_whitelist=file,rtp,udp\:protocol_blacklist=http'"
36968
36969 It allows overlaying a second video on top of the main input of a
36970 filtergraph, as shown in this graph:
36971
36972 input -----------> deltapts0 --> overlay --> output
36973 ^
36974 |
36975 movie --> scale--> deltapts1 -------+
36976
36977 Examples
36978
36979 • Skip 3.2 seconds from the start of the AVI file in.avi, and overlay
36980 it on top of the input labelled "in":
36981
36982 movie=in.avi:seek_point=3.2, scale=180:-1, setpts=PTS-STARTPTS [over];
36983 [in] setpts=PTS-STARTPTS [main];
36984 [main][over] overlay=16:16 [out]
36985
36986 • Read from a video4linux2 device, and overlay it on top of the input
36987 labelled "in":
36988
36989 movie=/dev/video0:f=video4linux2, scale=180:-1, setpts=PTS-STARTPTS [over];
36990 [in] setpts=PTS-STARTPTS [main];
36991 [main][over] overlay=16:16 [out]
36992
36993 • Read the first video stream and the audio stream with id 0x81 from
36994 dvd.vob; the video is connected to the pad named "video" and the
36995 audio is connected to the pad named "audio":
36996
36997 movie=dvd.vob:s=v:0+#0x81 [video] [audio]
36998
36999 Commands
37000
37001 Both movie and amovie support the following commands:
37002
37003 seek
37004 Perform seek using "av_seek_frame". The syntax is: seek
37005 stream_index|timestamp|flags
37006
37007 • stream_index: If stream_index is -1, a default stream is
37008 selected, and timestamp is automatically converted from
37009 AV_TIME_BASE units to the stream specific time_base.
37010
37011 • timestamp: Timestamp in AVStream.time_base units or, if no
37012 stream is specified, in AV_TIME_BASE units.
37013
37014 • flags: Flags which select direction and seeking mode.
37015
37016 get_duration
37017 Get movie duration in AV_TIME_BASE units.
37018
37020 FFmpeg can be hooked up with a number of external libraries to add
37021 support for more formats. None of them are used by default, their use
37022 has to be explicitly requested by passing the appropriate flags to
37023 ./configure.
37024
37025 Alliance for Open Media (AOM)
37026 FFmpeg can make use of the AOM library for AV1 decoding and encoding.
37027
37028 Go to <http://aomedia.org/> and follow the instructions for installing
37029 the library. Then pass "--enable-libaom" to configure to enable it.
37030
37031 AMD AMF/VCE
37032 FFmpeg can use the AMD Advanced Media Framework library for accelerated
37033 H.264 and HEVC(only windows) encoding on hardware with Video Coding
37034 Engine (VCE).
37035
37036 To enable support you must obtain the AMF framework header
37037 files(version 1.4.9+) from
37038 <https://github.com/GPUOpen-LibrariesAndSDKs/AMF.git>.
37039
37040 Create an "AMF/" directory in the system include path. Copy the
37041 contents of "AMF/amf/public/include/" into that directory. Then
37042 configure FFmpeg with "--enable-amf".
37043
37044 Initialization of amf encoder occurs in this order: 1) trying to
37045 initialize through dx11(only windows) 2) trying to initialize through
37046 dx9(only windows) 3) trying to initialize through vulkan
37047
37048 To use h.264(AMD VCE) encoder on linux amdgru-pro version 19.20+ and
37049 amf-amdgpu-pro package(amdgru-pro contains, but does not install
37050 automatically) are required.
37051
37052 This driver can be installed using amdgpu-pro-install script in
37053 official amd driver archive.
37054
37055 AviSynth
37056 FFmpeg can read AviSynth scripts as input. To enable support, pass
37057 "--enable-avisynth" to configure after installing the headers provided
37058 by <https://github.com/AviSynth/AviSynthPlus>. AviSynth+ can be
37059 configured to install only the headers by either passing
37060 "-DHEADERS_ONLY:bool=on" to the normal CMake-based build system, or by
37061 using the supplied "GNUmakefile".
37062
37063 For Windows, supported AviSynth variants are <http://avisynth.nl> for
37064 32-bit builds and <http://avisynth.nl/index.php/AviSynth+> for 32-bit
37065 and 64-bit builds.
37066
37067 For Linux, macOS, and BSD, the only supported AviSynth variant is
37068 <https://github.com/AviSynth/AviSynthPlus>, starting with version 3.5.
37069
37070 In 2016, AviSynth+ added support for building with GCC. However,
37071 due to the eccentricities of Windows' calling conventions, 32-bit
37072 GCC builds of AviSynth+ are not compatible with typical 32-bit
37073 builds of FFmpeg.
37074
37075 By default, FFmpeg assumes compatibility with 32-bit MSVC builds of
37076 AviSynth+ since that is the most widely-used and entrenched build
37077 configuration. Users can override this and enable support for
37078 32-bit GCC builds of AviSynth+ by passing "-DAVSC_WIN32_GCC32" to
37079 "--extra-cflags" when configuring FFmpeg.
37080
37081 64-bit builds of FFmpeg are not affected, and can use either MSVC
37082 or GCC builds of AviSynth+ without any special flags.
37083
37084 AviSynth(+) is loaded dynamically. Distributors can build FFmpeg
37085 with "--enable-avisynth", and the binaries will work regardless of
37086 the end user having AviSynth installed. If/when an end user would
37087 like to use AviSynth scripts, then they can install AviSynth(+) and
37088 FFmpeg will be able to find and use it to open scripts.
37089
37090 Chromaprint
37091 FFmpeg can make use of the Chromaprint library for generating audio
37092 fingerprints. Pass "--enable-chromaprint" to configure to enable it.
37093 See <https://acoustid.org/chromaprint>.
37094
37095 codec2
37096 FFmpeg can make use of the codec2 library for codec2 decoding and
37097 encoding. There is currently no native decoder, so libcodec2 must be
37098 used for decoding.
37099
37100 Go to <http://freedv.org/>, download "Codec 2 source archive". Build
37101 and install using CMake. Debian users can install the libcodec2-dev
37102 package instead. Once libcodec2 is installed you can pass
37103 "--enable-libcodec2" to configure to enable it.
37104
37105 The easiest way to use codec2 is with .c2 files, since they contain the
37106 mode information required for decoding. To encode such a file, use a
37107 .c2 file extension and give the libcodec2 encoder the -mode option:
37108 "ffmpeg -i input.wav -mode 700C output.c2". Playback is as simple as
37109 "ffplay output.c2". For a list of supported modes, run "ffmpeg -h
37110 encoder=libcodec2". Raw codec2 files are also supported. To make
37111 sense of them the mode in use needs to be specified as a format option:
37112 "ffmpeg -f codec2raw -mode 1300 -i input.raw output.wav".
37113
37114 dav1d
37115 FFmpeg can make use of the dav1d library for AV1 video decoding.
37116
37117 Go to <https://code.videolan.org/videolan/dav1d> and follow the
37118 instructions for installing the library. Then pass "--enable-libdav1d"
37119 to configure to enable it.
37120
37121 davs2
37122 FFmpeg can make use of the davs2 library for AVS2-P2/IEEE1857.4 video
37123 decoding.
37124
37125 Go to <https://github.com/pkuvcl/davs2> and follow the instructions for
37126 installing the library. Then pass "--enable-libdavs2" to configure to
37127 enable it.
37128
37129 libdavs2 is under the GNU Public License Version 2 or later (see
37130 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
37131 details), you must upgrade FFmpeg's license to GPL in order to use
37132 it.
37133
37134 uavs3d
37135 FFmpeg can make use of the uavs3d library for AVS3-P2/IEEE1857.10 video
37136 decoding.
37137
37138 Go to <https://github.com/uavs3/uavs3d> and follow the instructions for
37139 installing the library. Then pass "--enable-libuavs3d" to configure to
37140 enable it.
37141
37142 Game Music Emu
37143 FFmpeg can make use of the Game Music Emu library to read audio from
37144 supported video game music file formats. Pass "--enable-libgme" to
37145 configure to enable it. See
37146 <https://bitbucket.org/mpyne/game-music-emu/overview>.
37147
37148 Intel QuickSync Video
37149 FFmpeg can use Intel QuickSync Video (QSV) for accelerated decoding and
37150 encoding of multiple codecs. To use QSV, FFmpeg must be linked against
37151 the "libmfx" dispatcher, which loads the actual decoding libraries.
37152
37153 The dispatcher is open source and can be downloaded from
37154 <https://github.com/lu-zero/mfx_dispatch.git>. FFmpeg needs to be
37155 configured with the "--enable-libmfx" option and "pkg-config" needs to
37156 be able to locate the dispatcher's ".pc" files.
37157
37158 Kvazaar
37159 FFmpeg can make use of the Kvazaar library for HEVC encoding.
37160
37161 Go to <https://github.com/ultravideo/kvazaar> and follow the
37162 instructions for installing the library. Then pass
37163 "--enable-libkvazaar" to configure to enable it.
37164
37165 LAME
37166 FFmpeg can make use of the LAME library for MP3 encoding.
37167
37168 Go to <http://lame.sourceforge.net/> and follow the instructions for
37169 installing the library. Then pass "--enable-libmp3lame" to configure
37170 to enable it.
37171
37172 libilbc
37173 iLBC is a narrowband speech codec that has been made freely available
37174 by Google as part of the WebRTC project. libilbc is a packaging
37175 friendly copy of the iLBC codec. FFmpeg can make use of the libilbc
37176 library for iLBC decoding and encoding.
37177
37178 Go to <https://github.com/TimothyGu/libilbc> and follow the
37179 instructions for installing the library. Then pass "--enable-libilbc"
37180 to configure to enable it.
37181
37182 libjxl
37183 JPEG XL is an image format intended to fully replace legacy JPEG for an
37184 extended period of life. See <https://jpegxl.info/> for more
37185 information, and see <https://github.com/libjxl/libjxl> for the library
37186 source. You can pass "--enable-libjxl" to configure in order enable the
37187 libjxl wrapper.
37188
37189 libvpx
37190 FFmpeg can make use of the libvpx library for VP8/VP9 decoding and
37191 encoding.
37192
37193 Go to <http://www.webmproject.org/> and follow the instructions for
37194 installing the library. Then pass "--enable-libvpx" to configure to
37195 enable it.
37196
37197 ModPlug
37198 FFmpeg can make use of this library, originating in Modplug-XMMS, to
37199 read from MOD-like music files. See
37200 <https://github.com/Konstanty/libmodplug>. Pass "--enable-libmodplug"
37201 to configure to enable it.
37202
37203 OpenCORE, VisualOn, and Fraunhofer libraries
37204 Spun off Google Android sources, OpenCore, VisualOn and Fraunhofer
37205 libraries provide encoders for a number of audio codecs.
37206
37207 OpenCORE and VisualOn libraries are under the Apache License 2.0
37208 (see <http://www.apache.org/licenses/LICENSE-2.0> for details),
37209 which is incompatible to the LGPL version 2.1 and GPL version 2.
37210 You have to upgrade FFmpeg's license to LGPL version 3 (or if you
37211 have enabled GPL components, GPL version 3) by passing
37212 "--enable-version3" to configure in order to use it.
37213
37214 The license of the Fraunhofer AAC library is incompatible with the
37215 GPL. Therefore, for GPL builds, you have to pass
37216 "--enable-nonfree" to configure in order to use it. To the best of
37217 our knowledge, it is compatible with the LGPL.
37218
37219 OpenCORE AMR
37220
37221 FFmpeg can make use of the OpenCORE libraries for AMR-NB
37222 decoding/encoding and AMR-WB decoding.
37223
37224 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
37225 instructions for installing the libraries. Then pass
37226 "--enable-libopencore-amrnb" and/or "--enable-libopencore-amrwb" to
37227 configure to enable them.
37228
37229 VisualOn AMR-WB encoder library
37230
37231 FFmpeg can make use of the VisualOn AMR-WBenc library for AMR-WB
37232 encoding.
37233
37234 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
37235 instructions for installing the library. Then pass
37236 "--enable-libvo-amrwbenc" to configure to enable it.
37237
37238 Fraunhofer AAC library
37239
37240 FFmpeg can make use of the Fraunhofer AAC library for AAC decoding &
37241 encoding.
37242
37243 Go to <http://sourceforge.net/projects/opencore-amr/> and follow the
37244 instructions for installing the library. Then pass
37245 "--enable-libfdk-aac" to configure to enable it.
37246
37247 OpenH264
37248 FFmpeg can make use of the OpenH264 library for H.264 decoding and
37249 encoding.
37250
37251 Go to <http://www.openh264.org/> and follow the instructions for
37252 installing the library. Then pass "--enable-libopenh264" to configure
37253 to enable it.
37254
37255 For decoding, this library is much more limited than the built-in
37256 decoder in libavcodec; currently, this library lacks support for
37257 decoding B-frames and some other main/high profile features. (It
37258 currently only supports constrained baseline profile and CABAC.) Using
37259 it is mostly useful for testing and for taking advantage of Cisco's
37260 patent portfolio license
37261 (<http://www.openh264.org/BINARY_LICENSE.txt>).
37262
37263 OpenJPEG
37264 FFmpeg can use the OpenJPEG libraries for decoding/encoding J2K videos.
37265 Go to <http://www.openjpeg.org/> to get the libraries and follow the
37266 installation instructions. To enable using OpenJPEG in FFmpeg, pass
37267 "--enable-libopenjpeg" to ./configure.
37268
37269 rav1e
37270 FFmpeg can make use of rav1e (Rust AV1 Encoder) via its C bindings to
37271 encode videos. Go to <https://github.com/xiph/rav1e/> and follow the
37272 instructions to build the C library. To enable using rav1e in FFmpeg,
37273 pass "--enable-librav1e" to ./configure.
37274
37275 SVT-AV1
37276 FFmpeg can make use of the Scalable Video Technology for AV1 library
37277 for AV1 encoding.
37278
37279 Go to <https://gitlab.com/AOMediaCodec/SVT-AV1/> and follow the
37280 instructions for installing the library. Then pass "--enable-libsvtav1"
37281 to configure to enable it.
37282
37283 TwoLAME
37284 FFmpeg can make use of the TwoLAME library for MP2 encoding.
37285
37286 Go to <http://www.twolame.org/> and follow the instructions for
37287 installing the library. Then pass "--enable-libtwolame" to configure
37288 to enable it.
37289
37290 VapourSynth
37291 FFmpeg can read VapourSynth scripts as input. To enable support, pass
37292 "--enable-vapoursynth" to configure. Vapoursynth is detected via
37293 "pkg-config". Versions 42 or greater supported. See
37294 <http://www.vapoursynth.com/>.
37295
37296 Due to security concerns, Vapoursynth scripts will not be autodetected
37297 so the input format has to be forced. For ff* CLI tools, add "-f
37298 vapoursynth" before the input "-i yourscript.vpy".
37299
37300 x264
37301 FFmpeg can make use of the x264 library for H.264 encoding.
37302
37303 Go to <http://www.videolan.org/developers/x264.html> and follow the
37304 instructions for installing the library. Then pass "--enable-libx264"
37305 to configure to enable it.
37306
37307 x264 is under the GNU Public License Version 2 or later (see
37308 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
37309 details), you must upgrade FFmpeg's license to GPL in order to use
37310 it.
37311
37312 x265
37313 FFmpeg can make use of the x265 library for HEVC encoding.
37314
37315 Go to <http://x265.org/developers.html> and follow the instructions for
37316 installing the library. Then pass "--enable-libx265" to configure to
37317 enable it.
37318
37319 x265 is under the GNU Public License Version 2 or later (see
37320 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
37321 details), you must upgrade FFmpeg's license to GPL in order to use
37322 it.
37323
37324 xavs
37325 FFmpeg can make use of the xavs library for AVS encoding.
37326
37327 Go to <http://xavs.sf.net/> and follow the instructions for installing
37328 the library. Then pass "--enable-libxavs" to configure to enable it.
37329
37330 xavs2
37331 FFmpeg can make use of the xavs2 library for AVS2-P2/IEEE1857.4 video
37332 encoding.
37333
37334 Go to <https://github.com/pkuvcl/xavs2> and follow the instructions for
37335 installing the library. Then pass "--enable-libxavs2" to configure to
37336 enable it.
37337
37338 libxavs2 is under the GNU Public License Version 2 or later (see
37339 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html> for
37340 details), you must upgrade FFmpeg's license to GPL in order to use
37341 it.
37342
37343 ZVBI
37344 ZVBI is a VBI decoding library which can be used by FFmpeg to decode
37345 DVB teletext pages and DVB teletext subtitles.
37346
37347 Go to <http://sourceforge.net/projects/zapping/> and follow the
37348 instructions for installing the library. Then pass "--enable-libzvbi"
37349 to configure to enable it.
37350
37352 You can use the "-formats" and "-codecs" options to have an exhaustive
37353 list.
37354
37355 File Formats
37356 FFmpeg supports the following file formats through the "libavformat"
37357 library:
37358
37359 Name : Encoding @tab Decoding @tab Comments
37360 3dostr : @tab X
37361 4xm : @tab X
37362 @tab 4X Technologies format, used in some games.
37363
37364 8088flex TMV : @tab X
37365 AAX : @tab X
37366 @tab Audible Enhanced Audio format, used in audiobooks.
37367
37368 AA : @tab X
37369 @tab Audible Format 2, 3, and 4, used in audiobooks.
37370
37371 ACT Voice : @tab X
37372 @tab contains G.729 audio
37373
37374 Adobe Filmstrip : X @tab X
37375 Audio IFF (AIFF) : X @tab X
37376 American Laser Games MM : @tab X
37377 @tab Multimedia format used in games like Mad Dog McCree.
37378
37379 3GPP AMR : X @tab X
37380 Amazing Studio Packed Animation File : @tab X
37381 @tab Multimedia format used in game Heart Of Darkness.
37382
37383 Apple HTTP Live Streaming : @tab X
37384 Artworx Data Format : @tab X
37385 Interplay ACM : @tab X
37386 @tab Audio only format used in some Interplay games.
37387
37388 ADP : @tab X
37389 @tab Audio format used on the Nintendo Gamecube.
37390
37391 AFC : @tab X
37392 @tab Audio format used on the Nintendo Gamecube.
37393
37394 ADS/SS2 : @tab X
37395 @tab Audio format used on the PS2.
37396
37397 APNG : X @tab X
37398 ASF : X @tab X
37399 @tab Advanced / Active Streaming Format.
37400
37401 AST : X @tab X
37402 @tab Audio format used on the Nintendo Wii.
37403
37404 AVI : X @tab X
37405 AviSynth : @tab X
37406 AVR : @tab X
37407 @tab Audio format used on Mac.
37408
37409 AVS : @tab X
37410 @tab Multimedia format used by the Creature Shock game.
37411
37412 Beam Software SIFF : @tab X
37413 @tab Audio and video format used in some games by Beam Software.
37414
37415 Bethesda Softworks VID : @tab X
37416 @tab Used in some games from Bethesda Softworks.
37417
37418 Binary text : @tab X
37419 Bink : @tab X
37420 @tab Multimedia format used by many games.
37421
37422 Bink Audio : @tab X
37423 @tab Audio only multimedia format used by some games.
37424
37425 Bitmap Brothers JV : @tab X
37426 @tab Used in Z and Z95 games.
37427
37428 BRP : @tab X
37429 @tab Argonaut Games format.
37430
37431 Brute Force & Ignorance : @tab X
37432 @tab Used in the game Flash Traffic: City of Angels.
37433
37434 BFSTM : @tab X
37435 @tab Audio format used on the Nintendo WiiU (based on BRSTM).
37436
37437 BRSTM : @tab X
37438 @tab Audio format used on the Nintendo Wii.
37439
37440 BW64 : @tab X
37441 @tab Broadcast Wave 64bit.
37442
37443 BWF : X @tab X
37444 codec2 (raw) : X @tab X
37445 @tab Must be given -mode format option to decode correctly.
37446
37447 codec2 (.c2 files) : X @tab X
37448 @tab Contains header with version and mode info, simplifying playback.
37449
37450 CRI ADX : X @tab X
37451 @tab Audio-only format used in console video games.
37452
37453 CRI AIX : @tab X
37454 CRI HCA : @tab X
37455 @tab Audio-only format used in console video games.
37456
37457 Discworld II BMV : @tab X
37458 Interplay C93 : @tab X
37459 @tab Used in the game Cyberia from Interplay.
37460
37461 Delphine Software International CIN : @tab X
37462 @tab Multimedia format used by Delphine Software games.
37463
37464 Digital Speech Standard (DSS) : @tab X
37465 CD+G : @tab X
37466 @tab Video format used by CD+G karaoke disks
37467
37468 Phantom Cine : @tab X
37469 Commodore CDXL : @tab X
37470 @tab Amiga CD video format
37471
37472 Core Audio Format : X @tab X
37473 @tab Apple Core Audio Format
37474
37475 CRC testing format : X @tab
37476 Creative Voice : X @tab X
37477 @tab Created for the Sound Blaster Pro.
37478
37479 CRYO APC : @tab X
37480 @tab Audio format used in some games by CRYO Interactive Entertainment.
37481
37482 D-Cinema audio : X @tab X
37483 Deluxe Paint Animation : @tab X
37484 DCSTR : @tab X
37485 DFA : @tab X
37486 @tab This format is used in Chronomaster game
37487
37488 DirectDraw Surface : @tab X
37489 DSD Stream File (DSF) : @tab X
37490 DV video : X @tab X
37491 DXA : @tab X
37492 @tab This format is used in the non-Windows version of the Feeble Files
37493 game and different game cutscenes repacked for use with ScummVM.
37494
37495 Electronic Arts cdata : @tab X
37496 Electronic Arts Multimedia : @tab X
37497 @tab Used in various EA games; files have extensions like WVE and UV2.
37498
37499 Ensoniq Paris Audio File : @tab X
37500 FFM (FFserver live feed) : X @tab X
37501 Flash (SWF) : X @tab X
37502 Flash 9 (AVM2) : X @tab X
37503 @tab Only embedded audio is decoded.
37504
37505 FLI/FLC/FLX animation : @tab X
37506 @tab .fli/.flc files
37507
37508 Flash Video (FLV) : X @tab X
37509 @tab Macromedia Flash video files
37510
37511 framecrc testing format : X @tab
37512 FunCom ISS : @tab X
37513 @tab Audio format used in various games from FunCom like The Longest Journey.
37514
37515 G.723.1 : X @tab X
37516 G.726 : @tab X @tab Both left- and right-
37517 justified.
37518 G.729 BIT : X @tab X
37519 G.729 raw : @tab X
37520 GENH : @tab X
37521 @tab Audio format for various games.
37522
37523 GIF Animation : X @tab X
37524 GXF : X @tab X
37525 @tab General eXchange Format SMPTE 360M, used by Thomson Grass Valley
37526 playout servers.
37527
37528 HNM : @tab X
37529 @tab Only version 4 supported, used in some games from Cryo Interactive
37530
37531 iCEDraw File : @tab X
37532 ICO : X @tab X
37533 @tab Microsoft Windows ICO
37534
37535 id Quake II CIN video : @tab X
37536 id RoQ : X @tab X
37537 @tab Used in Quake III, Jedi Knight 2 and other computer games.
37538
37539 IEC61937 encapsulation : X @tab X
37540 IFF : @tab X
37541 @tab Interchange File Format
37542
37543 IFV : @tab X
37544 @tab A format used by some old CCTV DVRs.
37545
37546 iLBC : X @tab X
37547 Interplay MVE : @tab X
37548 @tab Format used in various Interplay computer games.
37549
37550 Iterated Systems ClearVideo : @tab X
37551 @tab I-frames only
37552
37553 IV8 : @tab X
37554 @tab A format generated by IndigoVision 8000 video server.
37555
37556 IVF (On2) : X @tab X
37557 @tab A format used by libvpx
37558
37559 Internet Video Recording : @tab X
37560 IRCAM : X @tab X
37561 LAF : @tab X
37562 @tab Limitless Audio Format
37563
37564 LATM : X @tab X
37565 LMLM4 : @tab X
37566 @tab Used by Linux Media Labs MPEG-4 PCI boards
37567
37568 LOAS : @tab X
37569 @tab contains LATM multiplexed AAC audio
37570
37571 LRC : X @tab X
37572 LVF : @tab X
37573 LXF : @tab X
37574 @tab VR native stream format, used by Leitch/Harris' video servers.
37575
37576 Magic Lantern Video (MLV) : @tab X
37577 Matroska : X @tab X
37578 Matroska audio : X @tab
37579 FFmpeg metadata : X @tab X
37580 @tab Metadata in text format.
37581
37582 MAXIS XA : @tab X
37583 @tab Used in Sim City 3000; file extension .xa.
37584
37585 MCA : @tab X
37586 @tab Used in some games from Capcom; file extension .mca.
37587
37588 MD Studio : @tab X
37589 Metal Gear Solid: The Twin Snakes : @tab X
37590 Megalux Frame : @tab X
37591 @tab Used by Megalux Ultimate Paint
37592
37593 MobiClip MODS : @tab X
37594 MobiClip MOFLEX : @tab X
37595 Mobotix .mxg : @tab X
37596 Monkey's Audio : @tab X
37597 Motion Pixels MVI : @tab X
37598 MOV/QuickTime/MP4 : X @tab X
37599 @tab 3GP, 3GP2, PSP, iPod variants supported
37600
37601 MP2 : X @tab X
37602 MP3 : X @tab X
37603 MPEG-1 System : X @tab X
37604 @tab muxed audio and video, VCD format supported
37605
37606 MPEG-PS (program stream) : X @tab X
37607 @tab also known as C<VOB> file, SVCD and DVD format supported
37608
37609 MPEG-TS (transport stream) : X @tab X
37610 @tab also known as DVB Transport Stream
37611
37612 MPEG-4 : X @tab X
37613 @tab MPEG-4 is a variant of QuickTime.
37614
37615 MSF : @tab X
37616 @tab Audio format used on the PS3.
37617
37618 Mirillis FIC video : @tab X
37619 @tab No cursor rendering.
37620
37621 MIDI Sample Dump Standard : @tab X
37622 MIME multipart JPEG : X @tab
37623 MSN TCP webcam : @tab X
37624 @tab Used by MSN Messenger webcam streams.
37625
37626 MTV : @tab X
37627 Musepack : @tab X
37628 Musepack SV8 : @tab X
37629 Material eXchange Format (MXF) : X @tab X
37630 @tab SMPTE 377M, used by D-Cinema, broadcast industry.
37631
37632 Material eXchange Format (MXF), D-10 Mapping : X @tab X
37633 @tab SMPTE 386M, D-10/IMX Mapping.
37634
37635 NC camera feed : @tab X
37636 @tab NC (AVIP NC4600) camera streams
37637
37638 NIST SPeech HEader REsources : @tab X
37639 Computerized Speech Lab NSP : @tab X
37640 NTT TwinVQ (VQF) : @tab X
37641 @tab Nippon Telegraph and Telephone Corporation TwinVQ.
37642
37643 Nullsoft Streaming Video : @tab X
37644 NuppelVideo : @tab X
37645 NUT : X @tab X
37646 @tab NUT Open Container Format
37647
37648 Ogg : X @tab X
37649 Playstation Portable PMP : @tab X
37650 Portable Voice Format : @tab X
37651 RK Audio (RKA) : @tab X
37652 TechnoTrend PVA : @tab X
37653 @tab Used by TechnoTrend DVB PCI boards.
37654
37655 QCP : @tab X
37656 raw ADTS (AAC) : X @tab X
37657 raw AC-3 : X @tab X
37658 raw AMR-NB : @tab X
37659 raw AMR-WB : @tab X
37660 raw APAC : @tab X
37661 raw aptX : X @tab X
37662 raw aptX HD : X @tab X
37663 raw Bonk : @tab X
37664 raw Chinese AVS video : X @tab X
37665 raw DFPWM : X @tab X
37666 raw Dirac : X @tab X
37667 raw DNxHD : X @tab X
37668 raw DTS : X @tab X
37669 raw DTS-HD : @tab X
37670 raw E-AC-3 : X @tab X
37671 raw FLAC : X @tab X
37672 raw GSM : @tab X
37673 raw H.261 : X @tab X
37674 raw H.263 : X @tab X
37675 raw H.264 : X @tab X
37676 raw HEVC : X @tab X
37677 raw Ingenient MJPEG : @tab X
37678 raw MJPEG : X @tab X
37679 raw MLP : @tab X
37680 raw MPEG : @tab X
37681 raw MPEG-1 : @tab X
37682 raw MPEG-2 : @tab X
37683 raw MPEG-4 : X @tab X
37684 raw NULL : X @tab
37685 raw video : X @tab X
37686 raw id RoQ : X @tab
37687 raw OBU : X @tab X
37688 raw SBC : X @tab X
37689 raw Shorten : @tab X
37690 raw TAK : @tab X
37691 raw TrueHD : X @tab X
37692 raw VC-1 : X @tab X
37693 raw PCM A-law : X @tab X
37694 raw PCM mu-law : X @tab X
37695 raw PCM Archimedes VIDC : X @tab X
37696 raw PCM signed 8 bit : X @tab X
37697 raw PCM signed 16 bit big-endian : X @tab X
37698 raw PCM signed 16 bit little-endian : X @tab X
37699 raw PCM signed 24 bit big-endian : X @tab X
37700 raw PCM signed 24 bit little-endian : X @tab X
37701 raw PCM signed 32 bit big-endian : X @tab X
37702 raw PCM signed 32 bit little-endian : X @tab X
37703 raw PCM signed 64 bit big-endian : X @tab X
37704 raw PCM signed 64 bit little-endian : X @tab X
37705 raw PCM unsigned 8 bit : X @tab X
37706 raw PCM unsigned 16 bit big-endian : X @tab X
37707 raw PCM unsigned 16 bit little-endian : X @tab X
37708 raw PCM unsigned 24 bit big-endian : X @tab X
37709 raw PCM unsigned 24 bit little-endian : X @tab X
37710 raw PCM unsigned 32 bit big-endian : X @tab X
37711 raw PCM unsigned 32 bit little-endian : X @tab X
37712 raw PCM 16.8 floating point little-endian : @tab X
37713 raw PCM 24.0 floating point little-endian : @tab X
37714 raw PCM floating-point 32 bit big-endian : X @tab X
37715 raw PCM floating-point 32 bit little-endian : X @tab X
37716 raw PCM floating-point 64 bit big-endian : X @tab X
37717 raw PCM floating-point 64 bit little-endian : X @tab X
37718 RDT : @tab X
37719 REDCODE R3D : @tab X
37720 @tab File format used by RED Digital cameras, contains JPEG 2000 frames and PCM audio.
37721
37722 RealMedia : X @tab X
37723 Redirector : @tab X
37724 RedSpark : @tab X
37725 Renderware TeXture Dictionary : @tab X
37726 Resolume DXV : @tab X
37727 RF64 : @tab X
37728 RL2 : @tab X
37729 @tab Audio and video format used in some games by Entertainment Software Partners.
37730
37731 RPL/ARMovie : @tab X
37732 Lego Mindstorms RSO : X @tab X
37733 RSD : @tab X
37734 RTMP : X @tab X
37735 @tab Output is performed by publishing stream to RTMP server
37736
37737 RTP : X @tab X
37738 RTSP : X @tab X
37739 Sample Dump eXchange : @tab X
37740 SAP : X @tab X
37741 SBG : @tab X
37742 SDNS : @tab X
37743 SDP : @tab X
37744 SER : @tab X
37745 Digital Pictures SGA : @tab X
37746 Sega FILM/CPK : X @tab X
37747 @tab Used in many Sega Saturn console games.
37748
37749 Silicon Graphics Movie : @tab X
37750 Sierra SOL : @tab X
37751 @tab .sol files used in Sierra Online games.
37752
37753 Sierra VMD : @tab X
37754 @tab Used in Sierra CD-ROM games.
37755
37756 Smacker : @tab X
37757 @tab Multimedia format used by many games.
37758
37759 SMJPEG : X @tab X
37760 @tab Used in certain Loki game ports.
37761
37762 SMPTE 337M encapsulation : @tab X
37763 Smush : @tab X
37764 @tab Multimedia format used in some LucasArts games.
37765
37766 Sony OpenMG (OMA) : X @tab X
37767 @tab Audio format used in Sony Sonic Stage and Sony Vegas.
37768
37769 Sony PlayStation STR : @tab X
37770 Sony Wave64 (W64) : X @tab X
37771 SoX native format : X @tab X
37772 SUN AU format : X @tab X
37773 SUP raw PGS subtitles : X @tab X
37774 SVAG : @tab X
37775 @tab Audio format used in Konami PS2 games.
37776
37777 TDSC : @tab X
37778 Text files : @tab X
37779 THP : @tab X
37780 @tab Used on the Nintendo GameCube.
37781
37782 Tiertex Limited SEQ : @tab X
37783 @tab Tiertex .seq files used in the DOS CD-ROM version of the game Flashback.
37784
37785 True Audio : X @tab X
37786 VAG : @tab X
37787 @tab Audio format used in many Sony PS2 games.
37788
37789 VC-1 test bitstream : X @tab X
37790 Vidvox Hap : X @tab X
37791 Vivo : @tab X
37792 VPK : @tab X
37793 @tab Audio format used in Sony PS games.
37794
37795 Marble WADY : @tab X
37796 WAV : X @tab X
37797 Waveform Archiver : @tab X
37798 WavPack : X @tab X
37799 WebM : X @tab X
37800 Windows Televison (WTV) : X @tab X
37801 Wing Commander III movie : @tab X
37802 @tab Multimedia format used in Origin's Wing Commander III computer game.
37803
37804 Westwood Studios audio : X @tab X
37805 @tab Multimedia format used in Westwood Studios games.
37806
37807 Westwood Studios VQA : @tab X
37808 @tab Multimedia format used in Westwood Studios games.
37809
37810 Wideband Single-bit Data (WSD) : @tab X
37811 WVE : @tab X
37812 Konami XMD : @tab X
37813 XMV : @tab X
37814 @tab Microsoft video container used in Xbox games.
37815
37816 XVAG : @tab X
37817 @tab Audio format used on the PS3.
37818
37819 xWMA : @tab X
37820 @tab Microsoft audio container used by XAudio 2.
37821
37822 eXtended BINary text (XBIN) : @tab X
37823 YUV4MPEG pipe : X @tab X
37824 Psygnosis YOP : @tab X
37825
37826 "X" means that the feature in that column (encoding / decoding) is
37827 supported.
37828
37829 Image Formats
37830 FFmpeg can read and write images for each frame of a video sequence.
37831 The following image formats are supported:
37832
37833 Name : Encoding @tab Decoding @tab Comments
37834 .Y.U.V : X @tab X
37835 @tab one raw file per component
37836
37837 Alias PIX : X @tab X
37838 @tab Alias/Wavefront PIX image format
37839
37840 animated GIF : X @tab X
37841 APNG : X @tab X
37842 @tab Animated Portable Network Graphics
37843
37844 BMP : X @tab X
37845 @tab Microsoft BMP image
37846
37847 BRender PIX : @tab X
37848 @tab Argonaut BRender 3D engine image format.
37849
37850 CRI : @tab X
37851 @tab Cintel RAW
37852
37853 DPX : X @tab X
37854 @tab Digital Picture Exchange
37855
37856 EXR : @tab X
37857 @tab OpenEXR
37858
37859 FITS : X @tab X
37860 @tab Flexible Image Transport System
37861
37862 HDR : X @tab X
37863 @tab Radiance HDR RGBE Image format
37864
37865 IMG : @tab X
37866 @tab GEM Raster image
37867
37868 JPEG : X @tab X
37869 @tab Progressive JPEG is not supported.
37870
37871 JPEG 2000 : X @tab X
37872 JPEG-LS : X @tab X
37873 LJPEG : X @tab
37874 @tab Lossless JPEG
37875
37876 Media 100 : @tab X
37877 MSP : @tab X
37878 @tab Microsoft Paint image
37879
37880 PAM : X @tab X
37881 @tab PAM is a PNM extension with alpha support.
37882
37883 PBM : X @tab X
37884 @tab Portable BitMap image
37885
37886 PCD : @tab X
37887 @tab PhotoCD
37888
37889 PCX : X @tab X
37890 @tab PC Paintbrush
37891
37892 PFM : X @tab X
37893 @tab Portable FloatMap image
37894
37895 PGM : X @tab X
37896 @tab Portable GrayMap image
37897
37898 PGMYUV : X @tab X
37899 @tab PGM with U and V components in YUV 4:2:0
37900
37901 PGX : @tab X
37902 @tab PGX file decoder
37903
37904 PHM : X @tab X
37905 @tab Portable HalfFloatMap image
37906
37907 PIC : @tab X
37908 @tab Pictor/PC Paint
37909
37910 PNG : X @tab X
37911 @tab Portable Network Graphics image
37912
37913 PPM : X @tab X
37914 @tab Portable PixelMap image
37915
37916 PSD : @tab X
37917 @tab Photoshop
37918
37919 PTX : @tab X
37920 @tab V.Flash PTX format
37921
37922 QOI : X @tab X
37923 @tab Quite OK Image format
37924
37925 SGI : X @tab X
37926 @tab SGI RGB image format
37927
37928 Sun Rasterfile : X @tab X
37929 @tab Sun RAS image format
37930
37931 TIFF : X @tab X
37932 @tab YUV, JPEG and some extension is not supported yet.
37933
37934 Truevision Targa : X @tab X
37935 @tab Targa (.TGA) image format
37936
37937 VBN : X @tab X
37938 @tab Vizrt Binary Image format
37939
37940 WBMP : X @tab X
37941 @tab Wireless Application Protocol Bitmap image format
37942
37943 WebP : E @tab X
37944 @tab WebP image format, encoding supported through external library libwebp
37945
37946 XBM : X @tab X
37947 @tab X BitMap image format
37948
37949 XFace : X @tab X
37950 @tab X-Face image format
37951
37952 XPM : @tab X
37953 @tab X PixMap image format
37954
37955 XWD : X @tab X
37956 @tab X Window Dump image format
37957
37958 "X" means that the feature in that column (encoding / decoding) is
37959 supported.
37960
37961 "E" means that support is provided through an external library.
37962
37963 Video Codecs
37964 Name : Encoding @tab Decoding @tab Comments
37965 4X Movie : @tab X
37966 @tab Used in certain computer games.
37967
37968 8088flex TMV : @tab X
37969 A64 multicolor : X @tab
37970 @tab Creates video suitable to be played on a commodore 64 (multicolor mode).
37971
37972 Amazing Studio PAF Video : @tab X
37973 American Laser Games MM : @tab X
37974 @tab Used in games like Mad Dog McCree.
37975
37976 Amuse Graphics Movie : @tab X
37977 AMV Video : X @tab X
37978 @tab Used in Chinese MP3 players.
37979
37980 ANSI/ASCII art : @tab X
37981 Apple Intermediate Codec : @tab X
37982 Apple MJPEG-B : @tab X
37983 Apple Pixlet : @tab X
37984 Apple ProRes : X @tab X
37985 @tab fourcc: apch,apcn,apcs,apco,ap4h,ap4x
37986
37987 Apple QuickDraw : @tab X
37988 @tab fourcc: qdrw
37989
37990 Argonaut Video : @tab X
37991 @tab Used in some Argonaut games.
37992
37993 Asus v1 : X @tab X
37994 @tab fourcc: ASV1
37995
37996 Asus v2 : X @tab X
37997 @tab fourcc: ASV2
37998
37999 ATI VCR1 : @tab X
38000 @tab fourcc: VCR1
38001
38002 ATI VCR2 : @tab X
38003 @tab fourcc: VCR2
38004
38005 Auravision Aura : @tab X
38006 Auravision Aura 2 : @tab X
38007 Autodesk Animator Flic video : @tab X
38008 Autodesk RLE : @tab X
38009 @tab fourcc: AASC
38010
38011 AV1 : E @tab E
38012 @tab Supported through external libraries libaom, libdav1d, librav1e and libsvtav1
38013
38014 Avid 1:1 10-bit RGB Packer : X @tab X
38015 @tab fourcc: AVrp
38016
38017 AVS (Audio Video Standard) video : @tab X
38018 @tab Video encoding used by the Creature Shock game.
38019
38020 AVS2-P2/IEEE1857.4 : E @tab E
38021 @tab Supported through external libraries libxavs2 and libdavs2
38022
38023 AVS3-P2/IEEE1857.10 : @tab E
38024 @tab Supported through external library libuavs3d
38025
38026 AYUV : X @tab X
38027 @tab Microsoft uncompressed packed 4:4:4:4
38028
38029 Beam Software VB : @tab X
38030 Bethesda VID video : @tab X
38031 @tab Used in some games from Bethesda Softworks.
38032
38033 Bink Video : @tab X
38034 BitJazz SheerVideo : @tab X
38035 Bitmap Brothers JV video : @tab X
38036 y41p Brooktree uncompressed 4:1:1 12-bit : X @tab X
38037 Brooktree ProSumer Video : @tab X
38038 @tab fourcc: BT20
38039
38040 Brute Force & Ignorance : @tab X
38041 @tab Used in the game Flash Traffic: City of Angels.
38042
38043 C93 video : @tab X
38044 @tab Codec used in Cyberia game.
38045
38046 CamStudio : @tab X
38047 @tab fourcc: CSCD
38048
38049 CD+G : @tab X
38050 @tab Video codec for CD+G karaoke disks
38051
38052 CDXL : @tab X
38053 @tab Amiga CD video codec
38054
38055 Chinese AVS video : E @tab X
38056 @tab AVS1-P2, JiZhun profile, encoding through external library libxavs
38057
38058 Delphine Software International CIN video : @tab X
38059 @tab Codec used in Delphine Software International games.
38060
38061 Discworld II BMV Video : @tab X
38062 CineForm HD : X @tab X
38063 Canopus HQ : @tab X
38064 Canopus HQA : @tab X
38065 Canopus HQX : @tab X
38066 Canopus Lossless Codec : @tab X
38067 CDToons : @tab X
38068 @tab Codec used in various Broderbund games.
38069
38070 Cinepak : @tab X
38071 Cirrus Logic AccuPak : X @tab X
38072 @tab fourcc: CLJR
38073
38074 CPiA Video Format : @tab X
38075 Creative YUV (CYUV) : @tab X
38076 DFA : @tab X
38077 @tab Codec used in Chronomaster game.
38078
38079 Dirac : E @tab X
38080 @tab supported though the native vc2 (Dirac Pro) encoder
38081
38082 Deluxe Paint Animation : @tab X
38083 DNxHD : X @tab X
38084 @tab aka SMPTE VC3
38085
38086 Duck TrueMotion 1.0 : @tab X
38087 @tab fourcc: DUCK
38088
38089 Duck TrueMotion 2.0 : @tab X
38090 @tab fourcc: TM20
38091
38092 Duck TrueMotion 2.0 RT : @tab X
38093 @tab fourcc: TR20
38094
38095 DV (Digital Video) : X @tab X
38096 Dxtory capture format : @tab X
38097 Feeble Files/ScummVM DXA : @tab X
38098 @tab Codec originally used in Feeble Files game.
38099
38100 Electronic Arts CMV video : @tab X
38101 @tab Used in NHL 95 game.
38102
38103 Electronic Arts Madcow video : @tab X
38104 Electronic Arts TGV video : @tab X
38105 Electronic Arts TGQ video : @tab X
38106 Electronic Arts TQI video : @tab X
38107 Escape 124 : @tab X
38108 Escape 130 : @tab X
38109 FFmpeg video codec #1 : X @tab X
38110 @tab lossless codec (fourcc: FFV1)
38111
38112 Flash Screen Video v1 : X @tab X
38113 @tab fourcc: FSV1
38114
38115 Flash Screen Video v2 : X @tab X
38116 Flash Video (FLV) : X @tab X
38117 @tab Sorenson H.263 used in Flash
38118
38119 FM Screen Capture Codec : @tab X
38120 Forward Uncompressed : @tab X
38121 Fraps : @tab X
38122 Go2Meeting : @tab X
38123 @tab fourcc: G2M2, G2M3
38124
38125 Go2Webinar : @tab X
38126 @tab fourcc: G2M4
38127
38128 Gremlin Digital Video : @tab X
38129 H.261 : X @tab X
38130 H.263 / H.263-1996 : X @tab X
38131 H.263+ / H.263-1998 / H.263 version 2 : X @tab X
38132 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 : E @tab X
38133 @tab encoding supported through external library libx264 and OpenH264
38134
38135 HEVC : X @tab X
38136 @tab encoding supported through external library libx265 and libkvazaar
38137
38138 HNM version 4 : @tab X
38139 HuffYUV : X @tab X
38140 HuffYUV FFmpeg variant : X @tab X
38141 IBM Ultimotion : @tab X
38142 @tab fourcc: ULTI
38143
38144 id Cinematic video : @tab X
38145 @tab Used in Quake II.
38146
38147 id RoQ video : X @tab X
38148 @tab Used in Quake III, Jedi Knight 2, other computer games.
38149
38150 IFF ILBM : @tab X
38151 @tab IFF interleaved bitmap
38152
38153 IFF ByteRun1 : @tab X
38154 @tab IFF run length encoded bitmap
38155
38156 Infinity IMM4 : @tab X
38157 Intel H.263 : @tab X
38158 Intel Indeo 2 : @tab X
38159 Intel Indeo 3 : @tab X
38160 Intel Indeo 4 : @tab X
38161 Intel Indeo 5 : @tab X
38162 Interplay C93 : @tab X
38163 @tab Used in the game Cyberia from Interplay.
38164
38165 Interplay MVE video : @tab X
38166 @tab Used in Interplay .MVE files.
38167
38168 J2K : X @tab X
38169 Karl Morton's video codec : @tab X
38170 @tab Codec used in Worms games.
38171
38172 Kega Game Video (KGV1) : @tab X
38173 @tab Kega emulator screen capture codec.
38174
38175 Lagarith : @tab X
38176 LCL (LossLess Codec Library) MSZH : @tab X
38177 LCL (LossLess Codec Library) ZLIB : E @tab E
38178 LOCO : @tab X
38179 LucasArts SANM/Smush : @tab X
38180 @tab Used in LucasArts games / SMUSH animations.
38181
38182 lossless MJPEG : X @tab X
38183 MagicYUV Video : X @tab X
38184 Mandsoft Screen Capture Codec : @tab X
38185 Microsoft ATC Screen : @tab X
38186 @tab Also known as Microsoft Screen 3.
38187
38188 Microsoft Expression Encoder Screen : @tab X
38189 @tab Also known as Microsoft Titanium Screen 2.
38190
38191 Microsoft RLE : @tab X
38192 Microsoft Screen 1 : @tab X
38193 @tab Also known as Windows Media Video V7 Screen.
38194
38195 Microsoft Screen 2 : @tab X
38196 @tab Also known as Windows Media Video V9 Screen.
38197
38198 Microsoft Video 1 : @tab X
38199 Mimic : @tab X
38200 @tab Used in MSN Messenger Webcam streams.
38201
38202 Miro VideoXL : @tab X
38203 @tab fourcc: VIXL
38204
38205 MJPEG (Motion JPEG) : X @tab X
38206 Mobotix MxPEG video : @tab X
38207 Motion Pixels video : @tab X
38208 MPEG-1 video : X @tab X
38209 MPEG-2 video : X @tab X
38210 MPEG-4 part 2 : X @tab X
38211 @tab libxvidcore can be used alternatively for encoding.
38212
38213 MPEG-4 part 2 Microsoft variant version 1 : @tab X
38214 MPEG-4 part 2 Microsoft variant version 2 : X @tab X
38215 MPEG-4 part 2 Microsoft variant version 3 : X @tab X
38216 Newtek SpeedHQ : X @tab X
38217 Nintendo Gamecube THP video : @tab X
38218 NotchLC : @tab X
38219 NuppelVideo/RTjpeg : @tab X
38220 @tab Video encoding used in NuppelVideo files.
38221
38222 On2 VP3 : @tab X
38223 @tab still experimental
38224
38225 On2 VP4 : @tab X
38226 @tab fourcc: VP40
38227
38228 On2 VP5 : @tab X
38229 @tab fourcc: VP50
38230
38231 On2 VP6 : @tab X
38232 @tab fourcc: VP60,VP61,VP62
38233
38234 On2 VP7 : @tab X
38235 @tab fourcc: VP70,VP71
38236
38237 VP8 : E @tab X
38238 @tab fourcc: VP80, encoding supported through external library libvpx
38239
38240 VP9 : E @tab X
38241 @tab encoding supported through external library libvpx
38242
38243 Pinnacle TARGA CineWave YUV16 : @tab X
38244 @tab fourcc: Y216
38245
38246 Q-team QPEG : @tab X
38247 @tab fourccs: QPEG, Q1.0, Q1.1
38248
38249 QuickTime 8BPS video : @tab X
38250 QuickTime Animation (RLE) video : X @tab X
38251 @tab fourcc: 'rle '
38252
38253 QuickTime Graphics (SMC) : X @tab X
38254 @tab fourcc: 'smc '
38255
38256 QuickTime video (RPZA) : X @tab X
38257 @tab fourcc: rpza
38258
38259 R10K AJA Kona 10-bit RGB Codec : X @tab X
38260 R210 Quicktime Uncompressed RGB 10-bit : X @tab X
38261 Raw Video : X @tab X
38262 RealVideo 1.0 : X @tab X
38263 RealVideo 2.0 : X @tab X
38264 RealVideo 3.0 : @tab X
38265 @tab still far from ideal
38266
38267 RealVideo 4.0 : @tab X
38268 Renderware TXD (TeXture Dictionary) : @tab X
38269 @tab Texture dictionaries used by the Renderware Engine.
38270
38271 RL2 video : @tab X
38272 @tab used in some games by Entertainment Software Partners
38273
38274 ScreenPressor : @tab X
38275 Screenpresso : @tab X
38276 Screen Recorder Gold Codec : @tab X
38277 Sierra VMD video : @tab X
38278 @tab Used in Sierra VMD files.
38279
38280 Silicon Graphics Motion Video Compressor 1 (MVC1) : @tab X
38281 Silicon Graphics Motion Video Compressor 2 (MVC2) : @tab X
38282 Silicon Graphics RLE 8-bit video : @tab X
38283 Smacker video : @tab X
38284 @tab Video encoding used in Smacker.
38285
38286 SMPTE VC-1 : @tab X
38287 Snow : X @tab X
38288 @tab experimental wavelet codec (fourcc: SNOW)
38289
38290 Sony PlayStation MDEC (Motion DECoder) : @tab X
38291 Sorenson Vector Quantizer 1 : X @tab X
38292 @tab fourcc: SVQ1
38293
38294 Sorenson Vector Quantizer 3 : @tab X
38295 @tab fourcc: SVQ3
38296
38297 Sunplus JPEG (SP5X) : @tab X
38298 @tab fourcc: SP5X
38299
38300 TechSmith Screen Capture Codec : @tab X
38301 @tab fourcc: TSCC
38302
38303 TechSmith Screen Capture Codec 2 : @tab X
38304 @tab fourcc: TSC2
38305
38306 Theora : E @tab X
38307 @tab encoding supported through external library libtheora
38308
38309 Tiertex Limited SEQ video : @tab X
38310 @tab Codec used in DOS CD-ROM FlashBack game.
38311
38312 Ut Video : X @tab X
38313 v210 QuickTime uncompressed 4:2:2 10-bit : X @tab X
38314 v308 QuickTime uncompressed 4:4:4 : X @tab X
38315 v408 QuickTime uncompressed 4:4:4:4 : X @tab X
38316 v410 QuickTime uncompressed 4:4:4 10-bit : X @tab X
38317 VBLE Lossless Codec : @tab X
38318 VMware Screen Codec / VMware Video : @tab X
38319 @tab Codec used in videos captured by VMware.
38320
38321 Westwood Studios VQA (Vector Quantized Animation) video : @tab
38322 X
38323 Windows Media Image : @tab X
38324 Windows Media Video 7 : X @tab X
38325 Windows Media Video 8 : X @tab X
38326 Windows Media Video 9 : @tab X
38327 @tab not completely working
38328
38329 Wing Commander III / Xan : @tab X
38330 @tab Used in Wing Commander III .MVE files.
38331
38332 Wing Commander IV / Xan : @tab X
38333 @tab Used in Wing Commander IV.
38334
38335 Winnov WNV1 : @tab X
38336 WMV7 : X @tab X
38337 YAMAHA SMAF : X @tab X
38338 Psygnosis YOP Video : @tab X
38339 yuv4 : X @tab X
38340 @tab libquicktime uncompressed packed 4:2:0
38341
38342 ZeroCodec Lossless Video : @tab X
38343 ZLIB : X @tab X
38344 @tab part of LCL, encoder experimental
38345
38346 Zip Motion Blocks Video : X @tab X
38347 @tab Encoder works only in PAL8.
38348
38349 "X" means that the feature in that column (encoding / decoding) is
38350 supported.
38351
38352 "E" means that support is provided through an external library.
38353
38354 Audio Codecs
38355 Name : Encoding @tab Decoding @tab Comments
38356 8SVX exponential : @tab X
38357 8SVX fibonacci : @tab X
38358 AAC : EX @tab X
38359 @tab encoding supported through internal encoder and external library libfdk-aac
38360
38361 AAC+ : E @tab IX
38362 @tab encoding supported through external library libfdk-aac
38363
38364 AC-3 : IX @tab IX
38365 ACELP.KELVIN : @tab X
38366 ADPCM 4X Movie : @tab X
38367 ADPCM Yamaha AICA : @tab X
38368 ADPCM AmuseGraphics Movie : @tab X
38369 ADPCM Argonaut Games : X @tab X
38370 ADPCM CDROM XA : @tab X
38371 ADPCM Creative Technology : @tab X
38372 @tab 16 -E<gt> 4, 8 -E<gt> 4, 8 -E<gt> 3, 8 -E<gt> 2
38373
38374 ADPCM Electronic Arts : @tab X
38375 @tab Used in various EA titles.
38376
38377 ADPCM Electronic Arts Maxis CDROM XS : @tab X
38378 @tab Used in Sim City 3000.
38379
38380 ADPCM Electronic Arts R1 : @tab X
38381 ADPCM Electronic Arts R2 : @tab X
38382 ADPCM Electronic Arts R3 : @tab X
38383 ADPCM Electronic Arts XAS : @tab X
38384 ADPCM G.722 : X @tab X
38385 ADPCM G.726 : X @tab X
38386 ADPCM IMA Acorn Replay : @tab X
38387 ADPCM IMA AMV : X @tab X
38388 @tab Used in AMV files
38389
38390 ADPCM IMA Cunning Developments : @tab X
38391 ADPCM IMA Electronic Arts EACS : @tab X
38392 ADPCM IMA Electronic Arts SEAD : @tab X
38393 ADPCM IMA Funcom : @tab X
38394 ADPCM IMA High Voltage Software ALP : X @tab X
38395 ADPCM IMA Mobiclip MOFLEX : @tab X
38396 ADPCM IMA QuickTime : X @tab X
38397 ADPCM IMA Simon & Schuster Interactive : X @tab X
38398 ADPCM IMA Ubisoft APM : X @tab X
38399 ADPCM IMA Loki SDL MJPEG : @tab X
38400 ADPCM IMA WAV : X @tab X
38401 ADPCM IMA Westwood : @tab X
38402 ADPCM ISS IMA : @tab X
38403 @tab Used in FunCom games.
38404
38405 ADPCM IMA Dialogic : @tab X
38406 ADPCM IMA Duck DK3 : @tab X
38407 @tab Used in some Sega Saturn console games.
38408
38409 ADPCM IMA Duck DK4 : @tab X
38410 @tab Used in some Sega Saturn console games.
38411
38412 ADPCM IMA Radical : @tab X
38413 ADPCM Microsoft : X @tab X
38414 ADPCM MS IMA : X @tab X
38415 ADPCM Nintendo Gamecube AFC : @tab X
38416 ADPCM Nintendo Gamecube DTK : @tab X
38417 ADPCM Nintendo THP : @tab X
38418 ADPCM Playstation : @tab X
38419 ADPCM QT IMA : X @tab X
38420 ADPCM SEGA CRI ADX : X @tab X
38421 @tab Used in Sega Dreamcast games.
38422
38423 ADPCM Shockwave Flash : X @tab X
38424 ADPCM Sound Blaster Pro 2-bit : @tab X
38425 ADPCM Sound Blaster Pro 2.6-bit : @tab X
38426 ADPCM Sound Blaster Pro 4-bit : @tab X
38427 ADPCM VIMA : @tab X
38428 @tab Used in LucasArts SMUSH animations.
38429
38430 ADPCM Konami XMD : @tab X
38431 ADPCM Westwood Studios IMA : X @tab X
38432 @tab Used in Westwood Studios games like Command and Conquer.
38433
38434 ADPCM Yamaha : X @tab X
38435 ADPCM Zork : @tab X
38436 AMR-NB : E @tab X
38437 @tab encoding supported through external library libopencore-amrnb
38438
38439 AMR-WB : E @tab X
38440 @tab encoding supported through external library libvo-amrwbenc
38441
38442 Amazing Studio PAF Audio : @tab X
38443 Apple lossless audio : X @tab X
38444 @tab QuickTime fourcc 'alac'
38445
38446 aptX : X @tab X
38447 @tab Used in Bluetooth A2DP
38448
38449 aptX HD : X @tab X
38450 @tab Used in Bluetooth A2DP
38451
38452 ATRAC1 : @tab X
38453 ATRAC3 : @tab X
38454 ATRAC3+ : @tab X
38455 ATRAC9 : @tab X
38456 Bink Audio : @tab X
38457 @tab Used in Bink and Smacker files in many games.
38458
38459 Bonk audio : @tab X
38460 CELT : @tab E
38461 @tab decoding supported through external library libcelt
38462
38463 codec2 : E @tab E
38464 @tab en/decoding supported through external library libcodec2
38465
38466 CRI HCA : @tab X
38467 Delphine Software International CIN audio : @tab X
38468 @tab Codec used in Delphine Software International games.
38469
38470 DFPWM : X @tab X
38471 Digital Speech Standard - Standard Play mode (DSS SP) : @tab X
38472 Discworld II BMV Audio : @tab X
38473 COOK : @tab X
38474 @tab All versions except 5.1 are supported.
38475
38476 DCA (DTS Coherent Acoustics) : X @tab X
38477 @tab supported extensions: XCh, XXCH, X96, XBR, XLL, LBR (partially)
38478
38479 Dolby E : @tab X
38480 DPCM Cuberoot-Delta-Exact : @tab X
38481 @tab Used in few games.
38482
38483 DPCM Gremlin : @tab X
38484 DPCM id RoQ : X @tab X
38485 @tab Used in Quake III, Jedi Knight 2 and other computer games.
38486
38487 DPCM Marble WADY : @tab X
38488 DPCM Interplay : @tab X
38489 @tab Used in various Interplay computer games.
38490
38491 DPCM Squareroot-Delta-Exact : @tab X
38492 @tab Used in various games.
38493
38494 DPCM Sierra Online : @tab X
38495 @tab Used in Sierra Online game audio files.
38496
38497 DPCM Sol : @tab X
38498 DPCM Xan : @tab X
38499 @tab Used in Origin's Wing Commander IV AVI files.
38500
38501 DPCM Xilam DERF : @tab X
38502 DSD (Direct Stream Digital), least significant bit first : @tab X
38503 DSD (Direct Stream Digital), most significant bit first : @tab X
38504 DSD (Direct Stream Digital), least significant bit first, planar :
38505 @tab X
38506 DSD (Direct Stream Digital), most significant bit first, planar :
38507 @tab X
38508 DSP Group TrueSpeech : @tab X
38509 DST (Direct Stream Transfer) : @tab X
38510 DV audio : @tab X
38511 Enhanced AC-3 : X @tab X
38512 EVRC (Enhanced Variable Rate Codec) : @tab X
38513 FLAC (Free Lossless Audio Codec) : X @tab IX
38514 FTR Voice : @tab X
38515 G.723.1 : X @tab X
38516 G.729 : @tab X
38517 GSM : E @tab X
38518 @tab encoding supported through external library libgsm
38519
38520 GSM Microsoft variant : E @tab X
38521 @tab encoding supported through external library libgsm
38522
38523 IAC (Indeo Audio Coder) : @tab X
38524 iLBC (Internet Low Bitrate Codec) : E @tab EX
38525 @tab encoding and decoding supported through external library libilbc
38526
38527 IMC (Intel Music Coder) : @tab X
38528 Interplay ACM : @tab X
38529 MACE (Macintosh Audio Compression/Expansion) 3:1 : @tab X
38530 MACE (Macintosh Audio Compression/Expansion) 6:1 : @tab X
38531 Marian's A-pac audio : @tab X
38532 MI-SC4 (Micronas SC-4 Audio) : @tab X
38533 MLP (Meridian Lossless Packing) : X @tab X
38534 @tab Used in DVD-Audio discs.
38535
38536 Monkey's Audio : @tab X
38537 MP1 (MPEG audio layer 1) : @tab IX
38538 MP2 (MPEG audio layer 2) : IX @tab IX
38539 @tab encoding supported also through external library TwoLAME
38540
38541 MP3 (MPEG audio layer 3) : E @tab IX
38542 @tab encoding supported through external library LAME, ADU MP3 and MP3onMP4 also supported
38543
38544 MPEG-4 Audio Lossless Coding (ALS) : @tab X
38545 MobiClip FastAudio : @tab X
38546 Musepack SV7 : @tab X
38547 Musepack SV8 : @tab X
38548 Nellymoser Asao : X @tab X
38549 On2 AVC (Audio for Video Codec) : @tab X
38550 Opus : E @tab X
38551 @tab encoding supported through external library libopus
38552
38553 PCM A-law : X @tab X
38554 PCM mu-law : X @tab X
38555 PCM Archimedes VIDC : X @tab X
38556 PCM signed 8-bit planar : X @tab X
38557 PCM signed 16-bit big-endian planar : X @tab X
38558 PCM signed 16-bit little-endian planar : X @tab X
38559 PCM signed 24-bit little-endian planar : X @tab X
38560 PCM signed 32-bit little-endian planar : X @tab X
38561 PCM 32-bit floating point big-endian : X @tab X
38562 PCM 32-bit floating point little-endian : X @tab X
38563 PCM 64-bit floating point big-endian : X @tab X
38564 PCM 64-bit floating point little-endian : X @tab X
38565 PCM D-Cinema audio signed 24-bit : X @tab X
38566 PCM signed 8-bit : X @tab X
38567 PCM signed 16-bit big-endian : X @tab X
38568 PCM signed 16-bit little-endian : X @tab X
38569 PCM signed 24-bit big-endian : X @tab X
38570 PCM signed 24-bit little-endian : X @tab X
38571 PCM signed 32-bit big-endian : X @tab X
38572 PCM signed 32-bit little-endian : X @tab X
38573 PCM signed 16/20/24-bit big-endian in MPEG-TS : @tab X
38574 PCM unsigned 8-bit : X @tab X
38575 PCM unsigned 16-bit big-endian : X @tab X
38576 PCM unsigned 16-bit little-endian : X @tab X
38577 PCM unsigned 24-bit big-endian : X @tab X
38578 PCM unsigned 24-bit little-endian : X @tab X
38579 PCM unsigned 32-bit big-endian : X @tab X
38580 PCM unsigned 32-bit little-endian : X @tab X
38581 PCM SGA : @tab X
38582 QCELP / PureVoice : @tab X
38583 QDesign Music Codec 1 : @tab X
38584 QDesign Music Codec 2 : @tab X
38585 @tab There are still some distortions.
38586
38587 RealAudio 1.0 (14.4K) : X @tab X
38588 @tab Real 14400 bit/s codec
38589
38590 RealAudio 2.0 (28.8K) : @tab X
38591 @tab Real 28800 bit/s codec
38592
38593 RealAudio 3.0 (dnet) : IX @tab X
38594 @tab Real low bitrate AC-3 codec
38595
38596 RealAudio Lossless : @tab X
38597 RealAudio SIPR / ACELP.NET : @tab X
38598 RK Audio (RKA) : @tab X
38599 SBC (low-complexity subband codec) : X @tab X
38600 @tab Used in Bluetooth A2DP
38601
38602 Shorten : @tab X
38603 Sierra VMD audio : @tab X
38604 @tab Used in Sierra VMD files.
38605
38606 Smacker audio : @tab X
38607 SMPTE 302M AES3 audio : X @tab X
38608 Sonic : X @tab X
38609 @tab experimental codec
38610
38611 Sonic lossless : X @tab X
38612 @tab experimental codec
38613
38614 Speex : E @tab EX
38615 @tab supported through external library libspeex
38616
38617 TAK (Tom's lossless Audio Kompressor) : @tab X
38618 True Audio (TTA) : X @tab X
38619 TrueHD : X @tab X
38620 @tab Used in HD-DVD and Blu-Ray discs.
38621
38622 TwinVQ (VQF flavor) : @tab X
38623 VIMA : @tab X
38624 @tab Used in LucasArts SMUSH animations.
38625
38626 ViewQuest VQC : @tab X
38627 Vorbis : E @tab X
38628 @tab A native but very primitive encoder exists.
38629
38630 Voxware MetaSound : @tab X
38631 Waveform Archiver : @tab X
38632 WavPack : X @tab X
38633 Westwood Audio (SND1) : @tab X
38634 Windows Media Audio 1 : X @tab X
38635 Windows Media Audio 2 : X @tab X
38636 Windows Media Audio Lossless : @tab X
38637 Windows Media Audio Pro : @tab X
38638 Windows Media Audio Voice : @tab X
38639 Xbox Media Audio 1 : @tab X
38640 Xbox Media Audio 2 : @tab X
38641
38642 "X" means that the feature in that column (encoding / decoding) is
38643 supported.
38644
38645 "E" means that support is provided through an external library.
38646
38647 "I" means that an integer-only version is available, too (ensures high
38648 performance on systems without hardware floating point support).
38649
38650 Subtitle Formats
38651 Name : Muxing @tab Demuxing @tab Encoding @tab Decoding
38652 3GPP Timed Text : @tab @tab X @tab X
38653 AQTitle : @tab X @tab @tab X
38654 DVB : X @tab X @tab X @tab X
38655 DVB teletext : @tab X @tab @tab E
38656 DVD : X @tab X @tab X @tab X
38657 JACOsub : X @tab X @tab @tab X
38658 MicroDVD : X @tab X @tab @tab X
38659 MPL2 : @tab X @tab @tab X
38660 MPsub (MPlayer) : @tab X @tab @tab X
38661 PGS : @tab @tab @tab X
38662 PJS (Phoenix) : @tab X @tab @tab X
38663 RealText : @tab X @tab @tab X
38664 SAMI : @tab X @tab @tab X
38665 Spruce format (STL) : @tab X @tab @tab X
38666 SSA/ASS : X @tab X @tab X @tab X
38667 SubRip (SRT) : X @tab X @tab X @tab X
38668 SubViewer v1 : @tab X @tab @tab X
38669 SubViewer : @tab X @tab @tab X
38670 TED Talks captions : @tab X @tab @tab X
38671 TTML : X @tab @tab X @tab
38672 VobSub (IDX+SUB) : @tab X @tab @tab X
38673 VPlayer : @tab X @tab @tab X
38674 WebVTT : X @tab X @tab X @tab X
38675 XSUB : @tab @tab X @tab X
38676
38677 "X" means that the feature is supported.
38678
38679 "E" means that support is provided through an external library.
38680
38681 Network Protocols
38682 Name : Support
38683 AMQP : E
38684 file : X
38685 FTP : X
38686 Gopher : X
38687 Gophers : X
38688 HLS : X
38689 HTTP : X
38690 HTTPS : X
38691 Icecast : X
38692 MMSH : X
38693 MMST : X
38694 pipe : X
38695 Pro-MPEG FEC : X
38696 RTMP : X
38697 RTMPE : X
38698 RTMPS : X
38699 RTMPT : X
38700 RTMPTE : X
38701 RTMPTS : X
38702 RTP : X
38703 SAMBA : E
38704 SCTP : X
38705 SFTP : E
38706 TCP : X
38707 TLS : X
38708 UDP : X
38709 ZMQ : E
38710
38711 "X" means that the protocol is supported.
38712
38713 "E" means that support is provided through an external library.
38714
38715 Input/Output Devices
38716 Name : Input @tab Output
38717 ALSA : X @tab X
38718 BKTR : X @tab
38719 caca : @tab X
38720 DV1394 : X @tab
38721 Lavfi virtual device : X @tab
38722 Linux framebuffer : X @tab X
38723 JACK : X @tab
38724 LIBCDIO : X
38725 LIBDC1394 : X @tab
38726 OpenAL : X
38727 OpenGL : @tab X
38728 OSS : X @tab X
38729 PulseAudio : X @tab X
38730 SDL : @tab X
38731 Video4Linux2 : X @tab X
38732 VfW capture : X @tab
38733 X11 grabbing : X @tab
38734 Win32 grabbing : X @tab
38735
38736 "X" means that input/output is supported.
38737
38738 Timecode
38739 Codec/format : Read @tab Write
38740 AVI : X @tab X
38741 DV : X @tab X
38742 GXF : X @tab X
38743 MOV : X @tab X
38744 MPEG1/2 : X @tab X
38745 MXF : X @tab X
38746
38748 ffprobe(1), ffmpeg(1), ffplay(1), ffmpeg-utils(1), ffmpeg-scaler(1),
38749 ffmpeg-resampler(1), ffmpeg-codecs(1), ffmpeg-bitstream-filters(1),
38750 ffmpeg-formats(1), ffmpeg-devices(1), ffmpeg-protocols(1),
38751 ffmpeg-filters(1)
38752
38754 The FFmpeg developers.
38755
38756 For details about the authorship, see the Git history of the project
38757 (https://git.ffmpeg.org/ffmpeg), e.g. by typing the command git log in
38758 the FFmpeg source directory, or browsing the online repository at
38759 <https://git.ffmpeg.org/ffmpeg>.
38760
38761 Maintainers for the specific components are listed in the file
38762 MAINTAINERS in the source code tree.
38763
38764
38765
38766 FFPROBE-ALL(1)